@flipdish/ui-library 0.33.0 → 0.34.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/components/atoms/Flag/flag.utils.cjs +1 -1
- package/dist/components/atoms/Flag/flag.utils.cjs.map +1 -1
- package/dist/components/atoms/Flag/flag.utils.js +2 -2
- package/dist/components/atoms/Flag/flag.utils.js.map +1 -1
- package/dist/components/molecules/CodeSnippet/codeSnippet.utils.cjs +73 -0
- package/dist/components/molecules/CodeSnippet/codeSnippet.utils.cjs.map +1 -1
- package/dist/components/molecules/CodeSnippet/codeSnippet.utils.d.ts +48 -0
- package/dist/components/molecules/CodeSnippet/codeSnippet.utils.d.ts.map +1 -1
- package/dist/components/molecules/CodeSnippet/codeSnippet.utils.js +70 -1
- package/dist/components/molecules/CodeSnippet/codeSnippet.utils.js.map +1 -1
- package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.cjs +24 -2
- package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.cjs.map +1 -1
- package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.d.ts +2 -1
- package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.d.ts.map +1 -1
- package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.js +25 -3
- package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.js.map +1 -1
- package/dist/components/molecules/CodeSnippet/index.cjs +7 -25
- package/dist/components/molecules/CodeSnippet/index.cjs.map +1 -1
- package/dist/components/molecules/CodeSnippet/index.d.ts +8 -4
- package/dist/components/molecules/CodeSnippet/index.d.ts.map +1 -1
- package/dist/components/molecules/CodeSnippet/index.js +8 -26
- package/dist/components/molecules/CodeSnippet/index.js.map +1 -1
- package/dist/components/organisms/Calendar/calendar.utils.cjs +35 -0
- package/dist/components/organisms/Calendar/calendar.utils.cjs.map +1 -1
- package/dist/components/organisms/Calendar/calendar.utils.d.ts +29 -0
- package/dist/components/organisms/Calendar/calendar.utils.d.ts.map +1 -1
- package/dist/components/organisms/Calendar/calendar.utils.js +36 -2
- package/dist/components/organisms/Calendar/calendar.utils.js.map +1 -1
- package/dist/components/organisms/Calendar/hooks/useCalendarClock.cjs +30 -0
- package/dist/components/organisms/Calendar/hooks/useCalendarClock.cjs.map +1 -0
- package/dist/components/organisms/Calendar/hooks/useCalendarClock.d.ts +12 -0
- package/dist/components/organisms/Calendar/hooks/useCalendarClock.d.ts.map +1 -0
- package/dist/components/organisms/Calendar/hooks/useCalendarClock.js +28 -0
- package/dist/components/organisms/Calendar/hooks/useCalendarClock.js.map +1 -0
- package/dist/components/organisms/Calendar/index.cjs +13 -42
- package/dist/components/organisms/Calendar/index.cjs.map +1 -1
- package/dist/components/organisms/Calendar/index.d.ts.map +1 -1
- package/dist/components/organisms/Calendar/index.js +15 -44
- package/dist/components/organisms/Calendar/index.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/NavAccountCard.cjs +9 -2
- package/dist/components/organisms/SidebarNavigation/components/NavAccountCard.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/NavAccountCard.d.ts +12 -1
- package/dist/components/organisms/SidebarNavigation/components/NavAccountCard.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/NavAccountCard.js +9 -2
- package/dist/components/organisms/SidebarNavigation/components/NavAccountCard.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/NavItem.cjs +10 -4
- package/dist/components/organisms/SidebarNavigation/components/NavItem.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/NavItem.d.ts +12 -1
- package/dist/components/organisms/SidebarNavigation/components/NavItem.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/components/NavItem.js +10 -4
- package/dist/components/organisms/SidebarNavigation/components/NavItem.js.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.cjs +36 -11
- package/dist/components/organisms/SidebarNavigation/index.cjs.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.d.ts.map +1 -1
- package/dist/components/organisms/SidebarNavigation/index.js +38 -13
- package/dist/components/organisms/SidebarNavigation/index.js.map +1 -1
- package/dist/utilities/renderUtils/index.cjs +21 -0
- package/dist/utilities/renderUtils/index.cjs.map +1 -1
- package/dist/utilities/renderUtils/index.d.ts +10 -0
- package/dist/utilities/renderUtils/index.d.ts.map +1 -1
- package/dist/utilities/renderUtils/index.js +21 -1
- package/dist/utilities/renderUtils/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/organisms/SidebarNavigation/components/NavButton.cjs +0 -32
- package/dist/components/organisms/SidebarNavigation/components/NavButton.cjs.map +0 -1
- package/dist/components/organisms/SidebarNavigation/components/NavButton.d.ts +0 -36
- package/dist/components/organisms/SidebarNavigation/components/NavButton.d.ts.map +0 -1
- package/dist/components/organisms/SidebarNavigation/components/NavButton.js +0 -30
- package/dist/components/organisms/SidebarNavigation/components/NavButton.js.map +0 -1
|
@@ -47,6 +47,40 @@ const getEventsForDay = (allEvents, targetDate, timeZone) => {
|
|
|
47
47
|
})
|
|
48
48
|
.sort((a, b) => a.start.compare(b.start));
|
|
49
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* Resolves the next month anchor and selected day after a header Prev, Next, or Today press.
|
|
52
|
+
* Month steps the visible month, week steps from the start of the anchored week, and day steps one day and keeps it selected.
|
|
53
|
+
*
|
|
54
|
+
* @param options The current view, anchors, locale, and the viewer's today.
|
|
55
|
+
* @returns The month anchor to store and the selected day, or `null` when the step clears the selection.
|
|
56
|
+
*/
|
|
57
|
+
const navigateCalendar = ({ action, view, currentMonthDate, selectedDate, locale, todayDate, }) => {
|
|
58
|
+
if (action === 'TODAY') {
|
|
59
|
+
return { currentMonthDate: todayDate, selectedDate: todayDate };
|
|
60
|
+
}
|
|
61
|
+
// Week and day step from the selected day when there is one, otherwise from the month anchor.
|
|
62
|
+
const anchorDate = selectedDate || currentMonthDate;
|
|
63
|
+
const direction = action === 'PREV' ? -1 : 1;
|
|
64
|
+
let nextDate;
|
|
65
|
+
switch (view) {
|
|
66
|
+
case 'month':
|
|
67
|
+
nextDate = currentMonthDate.add({ months: direction });
|
|
68
|
+
break;
|
|
69
|
+
case 'week':
|
|
70
|
+
nextDate = date.startOfWeek(anchorDate, locale).add({ weeks: direction });
|
|
71
|
+
break;
|
|
72
|
+
case 'day':
|
|
73
|
+
nextDate = anchorDate.add({ days: direction });
|
|
74
|
+
break;
|
|
75
|
+
default:
|
|
76
|
+
nextDate = currentMonthDate;
|
|
77
|
+
}
|
|
78
|
+
// The header reads the month anchor, so every step writes it. Month and week steps clear the selection; a day step keeps the landed day.
|
|
79
|
+
return {
|
|
80
|
+
currentMonthDate: nextDate,
|
|
81
|
+
selectedDate: view === 'day' ? nextDate : null,
|
|
82
|
+
};
|
|
83
|
+
};
|
|
50
84
|
|
|
51
85
|
exports.SLOT_HEIGHT = SLOT_HEIGHT;
|
|
52
86
|
exports.getDaysInVisibleMonthGrid = getDaysInVisibleMonthGrid;
|
|
@@ -54,4 +88,5 @@ exports.getEndOfDay = getEndOfDay;
|
|
|
54
88
|
exports.getEventsForDay = getEventsForDay;
|
|
55
89
|
exports.getISOWeek = getISOWeek;
|
|
56
90
|
exports.getStartOfDay = getStartOfDay;
|
|
91
|
+
exports.navigateCalendar = navigateCalendar;
|
|
57
92
|
//# sourceMappingURL=calendar.utils.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.utils.cjs","sources":["../../../../src/components/organisms/Calendar/calendar.utils.ts"],"sourcesContent":[null],"names":["date","CalendarDate","toZoned","startOfMonth","endOfMonth","startOfWeek","endOfWeek"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"calendar.utils.cjs","sources":["../../../../src/components/organisms/Calendar/calendar.utils.ts"],"sourcesContent":[null],"names":["date","CalendarDate","toZoned","startOfMonth","endOfMonth","startOfWeek","endOfWeek"],"mappings":"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"}
|
|
@@ -23,4 +23,33 @@ export declare const getEventsForDay: <T extends {
|
|
|
23
23
|
start: ZonedDateTime;
|
|
24
24
|
end: ZonedDateTime;
|
|
25
25
|
}>(allEvents: T[], targetDate: CalendarDate, timeZone: string) => T[];
|
|
26
|
+
export interface NavigateCalendarOptions {
|
|
27
|
+
/** Header control that was pressed. */
|
|
28
|
+
action: 'PREV' | 'NEXT' | 'TODAY';
|
|
29
|
+
/** Active view. An unrecognised view leaves the month anchor where it is and clears the selection. */
|
|
30
|
+
view: string;
|
|
31
|
+
/** Month currently anchoring the header. */
|
|
32
|
+
currentMonthDate: CalendarDate;
|
|
33
|
+
/** Last selected day, or `null` after a month or week step cleared it. */
|
|
34
|
+
selectedDate: CalendarDate | null;
|
|
35
|
+
/** Locale that decides which weekday a week starts on. */
|
|
36
|
+
locale: string;
|
|
37
|
+
/** The viewer's today. Read only when `action` is `TODAY`, so a step does not consult the clock. */
|
|
38
|
+
todayDate: CalendarDate;
|
|
39
|
+
}
|
|
40
|
+
/** Month anchor and selected day after one header navigation step. */
|
|
41
|
+
export interface CalendarNavigationState {
|
|
42
|
+
/** Date the header and month grid anchor on. */
|
|
43
|
+
currentMonthDate: CalendarDate;
|
|
44
|
+
/** Selected day, or `null` when the step cleared the selection. */
|
|
45
|
+
selectedDate: CalendarDate | null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolves the next month anchor and selected day after a header Prev, Next, or Today press.
|
|
49
|
+
* Month steps the visible month, week steps from the start of the anchored week, and day steps one day and keeps it selected.
|
|
50
|
+
*
|
|
51
|
+
* @param options The current view, anchors, locale, and the viewer's today.
|
|
52
|
+
* @returns The month anchor to store and the selected day, or `null` when the step clears the selection.
|
|
53
|
+
*/
|
|
54
|
+
export declare const navigateCalendar: ({ action, view, currentMonthDate, selectedDate, locale, todayDate, }: NavigateCalendarOptions) => CalendarNavigationState;
|
|
26
55
|
//# sourceMappingURL=calendar.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Calendar/calendar.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6D,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACtI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,MAMvC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,mFAAmF;AACnF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,aAAa,GAAG,YAAY,EAAE,UAAU,MAAM,KAAG,aAIpF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,MAAM,aAAa,GAAG,YAAY,EAAE,UAAU,MAAM,KAAG,aAIlF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,YAAY,YAAY,EAAE,QAAQ,MAAM,KAAG,YAAY,EAahG,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,EACpF,WAAW,CAAC,EAAE,EACd,YAAY,YAAY,EACxB,UAAU,MAAM,KACf,CAAC,EAWH,CAAC"}
|
|
1
|
+
{"version":3,"file":"calendar.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Calendar/calendar.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6D,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACtI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,MAMvC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,mFAAmF;AACnF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,aAAa,GAAG,YAAY,EAAE,UAAU,MAAM,KAAG,aAIpF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,MAAM,aAAa,GAAG,YAAY,EAAE,UAAU,MAAM,KAAG,aAIlF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,YAAY,YAAY,EAAE,QAAQ,MAAM,KAAG,YAAY,EAahG,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,EACpF,WAAW,CAAC,EAAE,EACd,YAAY,YAAY,EACxB,UAAU,MAAM,KACf,CAAC,EAWH,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,sGAAsG;IACtG,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,gBAAgB,EAAE,YAAY,CAAC;IAC/B,0EAA0E;IAC1E,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,gBAAgB,EAAE,YAAY,CAAC;IAC/B,mEAAmE;IACnE,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,sEAO9B,uBAAuB,KAAG,uBA6B5B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { startOfMonth, endOfMonth,
|
|
1
|
+
import { startOfWeek, startOfMonth, endOfMonth, endOfWeek, CalendarDate, toZoned } from '@internationalized/date';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* ISO 8601 week-of-year: weeks start on Monday and week 1 is the week containing
|
|
@@ -45,6 +45,40 @@ const getEventsForDay = (allEvents, targetDate, timeZone) => {
|
|
|
45
45
|
})
|
|
46
46
|
.sort((a, b) => a.start.compare(b.start));
|
|
47
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* Resolves the next month anchor and selected day after a header Prev, Next, or Today press.
|
|
50
|
+
* Month steps the visible month, week steps from the start of the anchored week, and day steps one day and keeps it selected.
|
|
51
|
+
*
|
|
52
|
+
* @param options The current view, anchors, locale, and the viewer's today.
|
|
53
|
+
* @returns The month anchor to store and the selected day, or `null` when the step clears the selection.
|
|
54
|
+
*/
|
|
55
|
+
const navigateCalendar = ({ action, view, currentMonthDate, selectedDate, locale, todayDate, }) => {
|
|
56
|
+
if (action === 'TODAY') {
|
|
57
|
+
return { currentMonthDate: todayDate, selectedDate: todayDate };
|
|
58
|
+
}
|
|
59
|
+
// Week and day step from the selected day when there is one, otherwise from the month anchor.
|
|
60
|
+
const anchorDate = selectedDate || currentMonthDate;
|
|
61
|
+
const direction = action === 'PREV' ? -1 : 1;
|
|
62
|
+
let nextDate;
|
|
63
|
+
switch (view) {
|
|
64
|
+
case 'month':
|
|
65
|
+
nextDate = currentMonthDate.add({ months: direction });
|
|
66
|
+
break;
|
|
67
|
+
case 'week':
|
|
68
|
+
nextDate = startOfWeek(anchorDate, locale).add({ weeks: direction });
|
|
69
|
+
break;
|
|
70
|
+
case 'day':
|
|
71
|
+
nextDate = anchorDate.add({ days: direction });
|
|
72
|
+
break;
|
|
73
|
+
default:
|
|
74
|
+
nextDate = currentMonthDate;
|
|
75
|
+
}
|
|
76
|
+
// The header reads the month anchor, so every step writes it. Month and week steps clear the selection; a day step keeps the landed day.
|
|
77
|
+
return {
|
|
78
|
+
currentMonthDate: nextDate,
|
|
79
|
+
selectedDate: view === 'day' ? nextDate : null,
|
|
80
|
+
};
|
|
81
|
+
};
|
|
48
82
|
|
|
49
|
-
export { SLOT_HEIGHT, getDaysInVisibleMonthGrid, getEndOfDay, getEventsForDay, getISOWeek, getStartOfDay };
|
|
83
|
+
export { SLOT_HEIGHT, getDaysInVisibleMonthGrid, getEndOfDay, getEventsForDay, getISOWeek, getStartOfDay, navigateCalendar };
|
|
50
84
|
//# sourceMappingURL=calendar.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.utils.js","sources":["../../../../src/components/organisms/Calendar/calendar.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar.utils.js","sources":["../../../../src/components/organisms/Calendar/calendar.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var date = require('@internationalized/date');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Tracks whether the calendar has mounted and the viewer's current minute in the local time zone.
|
|
8
|
+
* The calendar paints nothing until mount, because "today" depends on the client time zone and would mismatch hydration.
|
|
9
|
+
*
|
|
10
|
+
* @returns The local time zone, the current zoned time refreshed once a minute, and whether the client has mounted.
|
|
11
|
+
*/
|
|
12
|
+
const useCalendarClock = () => {
|
|
13
|
+
const timeZone = React.useMemo(() => date.getLocalTimeZone(), []);
|
|
14
|
+
const [currentTime, setCurrentTime] = React.useState(() => date.now(timeZone));
|
|
15
|
+
const [isMounted, setIsMounted] = React.useState(false);
|
|
16
|
+
React.useEffect(() => {
|
|
17
|
+
setIsMounted(true);
|
|
18
|
+
}, []);
|
|
19
|
+
React.useEffect(() => {
|
|
20
|
+
// The time marker only needs minute resolution; a faster tick would re-render every view.
|
|
21
|
+
const intervalId = setInterval(() => {
|
|
22
|
+
setCurrentTime(date.now(timeZone));
|
|
23
|
+
}, 60000);
|
|
24
|
+
return () => clearInterval(intervalId);
|
|
25
|
+
}, [timeZone]);
|
|
26
|
+
return { timeZone, currentTime, isMounted };
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.useCalendarClock = useCalendarClock;
|
|
30
|
+
//# sourceMappingURL=useCalendarClock.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCalendarClock.cjs","sources":["../../../../../src/components/organisms/Calendar/hooks/useCalendarClock.ts"],"sourcesContent":[null],"names":["useMemo","getLocalTimeZone","useState","now","useEffect"],"mappings":";;;;;AAKA;;;;;AAKG;AACI,MAAM,gBAAgB,GAAG,MAAK;AACnC,IAAA,MAAM,QAAQ,GAAGA,aAAO,CAAC,MAAMC,qBAAgB,EAAE,EAAE,EAAE,CAAC;AACtD,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGC,cAAQ,CAAC,MAAMC,QAAG,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGD,cAAQ,CAAC,KAAK,CAAC;IAEjDE,eAAS,CAAC,MAAK;QACb,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC;IAENA,eAAS,CAAC,MAAK;;AAEb,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAK;AAClC,YAAA,cAAc,CAACD,QAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,EAAE,KAAK,CAAC;AACT,QAAA,OAAO,MAAM,aAAa,CAAC,UAAU,CAAC;AACxC,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AAC7C;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracks whether the calendar has mounted and the viewer's current minute in the local time zone.
|
|
3
|
+
* The calendar paints nothing until mount, because "today" depends on the client time zone and would mismatch hydration.
|
|
4
|
+
*
|
|
5
|
+
* @returns The local time zone, the current zoned time refreshed once a minute, and whether the client has mounted.
|
|
6
|
+
*/
|
|
7
|
+
export declare const useCalendarClock: () => {
|
|
8
|
+
timeZone: string;
|
|
9
|
+
currentTime: import("@internationalized/date").ZonedDateTime;
|
|
10
|
+
isMounted: boolean;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useCalendarClock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCalendarClock.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/Calendar/hooks/useCalendarClock.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;CAkB5B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getLocalTimeZone, now } from '@internationalized/date';
|
|
2
|
+
import { useMemo, useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Tracks whether the calendar has mounted and the viewer's current minute in the local time zone.
|
|
6
|
+
* The calendar paints nothing until mount, because "today" depends on the client time zone and would mismatch hydration.
|
|
7
|
+
*
|
|
8
|
+
* @returns The local time zone, the current zoned time refreshed once a minute, and whether the client has mounted.
|
|
9
|
+
*/
|
|
10
|
+
const useCalendarClock = () => {
|
|
11
|
+
const timeZone = useMemo(() => getLocalTimeZone(), []);
|
|
12
|
+
const [currentTime, setCurrentTime] = useState(() => now(timeZone));
|
|
13
|
+
const [isMounted, setIsMounted] = useState(false);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setIsMounted(true);
|
|
16
|
+
}, []);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
// The time marker only needs minute resolution; a faster tick would re-render every view.
|
|
19
|
+
const intervalId = setInterval(() => {
|
|
20
|
+
setCurrentTime(now(timeZone));
|
|
21
|
+
}, 60000);
|
|
22
|
+
return () => clearInterval(intervalId);
|
|
23
|
+
}, [timeZone]);
|
|
24
|
+
return { timeZone, currentTime, isMounted };
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { useCalendarClock };
|
|
28
|
+
//# sourceMappingURL=useCalendarClock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCalendarClock.js","sources":["../../../../../src/components/organisms/Calendar/hooks/useCalendarClock.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAKA;;;;;AAKG;AACI,MAAM,gBAAgB,GAAG,MAAK;AACnC,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,gBAAgB,EAAE,EAAE,EAAE,CAAC;AACtD,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEjD,SAAS,CAAC,MAAK;QACb,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;;AAEb,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAK;AAClC,YAAA,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,EAAE,KAAK,CAAC;AACT,QAAA,OAAO,MAAM,aAAa,CAAC,UAAU,CAAC;AACxC,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;AAC7C;;"}
|
|
@@ -6,10 +6,12 @@ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
|
|
|
6
6
|
var date = require('@internationalized/date');
|
|
7
7
|
var i18n = require('@react-aria/i18n');
|
|
8
8
|
var React = require('react');
|
|
9
|
+
var calendar_utils = require('./calendar.utils.cjs');
|
|
9
10
|
var CalendarDayView = require('./components/CalendarDayView.cjs');
|
|
10
11
|
var CalendarHeader = require('./components/CalendarHeader.cjs');
|
|
11
12
|
var CalendarMonthView = require('./components/CalendarMonthView.cjs');
|
|
12
13
|
var CalendarWeekView = require('./components/CalendarWeekView.cjs');
|
|
14
|
+
var useCalendarClock = require('./hooks/useCalendarClock.cjs');
|
|
13
15
|
|
|
14
16
|
const viewOptions = [
|
|
15
17
|
{ value: 'day', label: 'Day view' },
|
|
@@ -26,7 +28,7 @@ const viewOptions = [
|
|
|
26
28
|
const Calendar = ({ events, view: defaultView = 'month', className, 'data-testid': dataTestId }) => {
|
|
27
29
|
const rootTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'calendar', rootName: 'calendar' });
|
|
28
30
|
const { locale } = i18n.useLocale();
|
|
29
|
-
const timeZone
|
|
31
|
+
const { timeZone, currentTime, isMounted } = useCalendarClock.useCalendarClock();
|
|
30
32
|
const timeFormatter = i18n.useDateFormatter({ hour: 'numeric', minute: '2-digit', hour12: true });
|
|
31
33
|
const shortWeekdayFormatter = i18n.useDateFormatter({ weekday: 'short' });
|
|
32
34
|
const fullDateFormatter = i18n.useDateFormatter({ weekday: 'long', month: 'long', day: 'numeric', year: 'numeric' });
|
|
@@ -34,17 +36,6 @@ const Calendar = ({ events, view: defaultView = 'month', className, 'data-testid
|
|
|
34
36
|
const [currentMonthDate, setCurrentMonthDate] = React.useState(() => date.today(timeZone));
|
|
35
37
|
const [selectedDate, setSelectedDate] = React.useState(currentMonthDate);
|
|
36
38
|
const [view, setView] = React.useState(defaultView);
|
|
37
|
-
const [currentTime, setCurrentTime] = React.useState(() => date.now(timeZone));
|
|
38
|
-
const [isMounted, setIsMounted] = React.useState(false);
|
|
39
|
-
React.useEffect(() => {
|
|
40
|
-
setIsMounted(true);
|
|
41
|
-
}, []);
|
|
42
|
-
React.useEffect(() => {
|
|
43
|
-
const intervalId = setInterval(() => {
|
|
44
|
-
setCurrentTime(date.now(timeZone));
|
|
45
|
-
}, 60000);
|
|
46
|
-
return () => clearInterval(intervalId);
|
|
47
|
-
}, [timeZone]);
|
|
48
39
|
const zonedEvents = React.useMemo(() => {
|
|
49
40
|
return events.map((event) => ({
|
|
50
41
|
...event,
|
|
@@ -54,36 +45,16 @@ const Calendar = ({ events, view: defaultView = 'month', className, 'data-testid
|
|
|
54
45
|
}, [events]);
|
|
55
46
|
const headerDate = React.useMemo(() => (view === 'day' && selectedDate ? selectedDate.toDate(timeZone) : currentMonthDate.toDate(timeZone)), [view, selectedDate, currentMonthDate, timeZone]);
|
|
56
47
|
const handleNavigate = (action) => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
break;
|
|
68
|
-
case 'week':
|
|
69
|
-
// biome-ignore lint/correctness/noSwitchDeclarations: We need to use a switch statement to handle the different views
|
|
70
|
-
const currentWeekStart = date.startOfWeek(anchorDate, locale);
|
|
71
|
-
newDate = currentWeekStart.add({ weeks: P });
|
|
72
|
-
break;
|
|
73
|
-
case 'day':
|
|
74
|
-
newDate = anchorDate.add({ days: P });
|
|
75
|
-
break;
|
|
76
|
-
default:
|
|
77
|
-
newDate = currentMonthDate;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
setCurrentMonthDate(newDate); // Always update month anchor for header consistency
|
|
81
|
-
if (action === 'TODAY' || view === 'day') {
|
|
82
|
-
setSelectedDate(newDate); // Select today or the navigated day
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
setSelectedDate(null); // Clear selection when navigating months/weeks
|
|
86
|
-
}
|
|
48
|
+
const next = calendar_utils.navigateCalendar({
|
|
49
|
+
action,
|
|
50
|
+
view,
|
|
51
|
+
currentMonthDate,
|
|
52
|
+
selectedDate,
|
|
53
|
+
locale,
|
|
54
|
+
todayDate: date.today(timeZone),
|
|
55
|
+
});
|
|
56
|
+
setCurrentMonthDate(next.currentMonthDate);
|
|
57
|
+
setSelectedDate(next.selectedDate);
|
|
87
58
|
};
|
|
88
59
|
const dayToDisplay = selectedDate || currentMonthDate;
|
|
89
60
|
if (!isMounted)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/Calendar/index.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","useLocale","
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/Calendar/index.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","useLocale","useCalendarClock","useDateFormatter","useState","today","useMemo","parseAbsoluteToLocal","navigateCalendar","_jsx","TestIdProvider","_jsxs","cx","CalendarHeader","MonthView","_Fragment","DayView","WeekView"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Calendar/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Calendar/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAK1E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAQF,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,qEAA+E,aAAa,uCAoIpH,CAAC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { cx } from '@flipdish/ui-library/utilities/cx';
|
|
3
3
|
import { useResolvedTestId, TestIdProvider } from '@flipdish/ui-library/utilities/testIdUtils';
|
|
4
|
-
import {
|
|
4
|
+
import { today, parseAbsoluteToLocal } from '@internationalized/date';
|
|
5
5
|
import { useLocale, useDateFormatter } from '@react-aria/i18n';
|
|
6
|
-
import {
|
|
6
|
+
import { useState, useMemo } from 'react';
|
|
7
|
+
import { navigateCalendar } from './calendar.utils.js';
|
|
7
8
|
import { DayView } from './components/CalendarDayView.js';
|
|
8
9
|
import { CalendarHeader } from './components/CalendarHeader.js';
|
|
9
10
|
import { MonthView } from './components/CalendarMonthView.js';
|
|
10
11
|
import { WeekView } from './components/CalendarWeekView.js';
|
|
12
|
+
import { useCalendarClock } from './hooks/useCalendarClock.js';
|
|
11
13
|
|
|
12
14
|
const viewOptions = [
|
|
13
15
|
{ value: 'day', label: 'Day view' },
|
|
@@ -24,7 +26,7 @@ const viewOptions = [
|
|
|
24
26
|
const Calendar = ({ events, view: defaultView = 'month', className, 'data-testid': dataTestId }) => {
|
|
25
27
|
const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'calendar', rootName: 'calendar' });
|
|
26
28
|
const { locale } = useLocale();
|
|
27
|
-
const timeZone
|
|
29
|
+
const { timeZone, currentTime, isMounted } = useCalendarClock();
|
|
28
30
|
const timeFormatter = useDateFormatter({ hour: 'numeric', minute: '2-digit', hour12: true });
|
|
29
31
|
const shortWeekdayFormatter = useDateFormatter({ weekday: 'short' });
|
|
30
32
|
const fullDateFormatter = useDateFormatter({ weekday: 'long', month: 'long', day: 'numeric', year: 'numeric' });
|
|
@@ -32,17 +34,6 @@ const Calendar = ({ events, view: defaultView = 'month', className, 'data-testid
|
|
|
32
34
|
const [currentMonthDate, setCurrentMonthDate] = useState(() => today(timeZone));
|
|
33
35
|
const [selectedDate, setSelectedDate] = useState(currentMonthDate);
|
|
34
36
|
const [view, setView] = useState(defaultView);
|
|
35
|
-
const [currentTime, setCurrentTime] = useState(() => now(timeZone));
|
|
36
|
-
const [isMounted, setIsMounted] = useState(false);
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
setIsMounted(true);
|
|
39
|
-
}, []);
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
const intervalId = setInterval(() => {
|
|
42
|
-
setCurrentTime(now(timeZone));
|
|
43
|
-
}, 60000);
|
|
44
|
-
return () => clearInterval(intervalId);
|
|
45
|
-
}, [timeZone]);
|
|
46
37
|
const zonedEvents = useMemo(() => {
|
|
47
38
|
return events.map((event) => ({
|
|
48
39
|
...event,
|
|
@@ -52,36 +43,16 @@ const Calendar = ({ events, view: defaultView = 'month', className, 'data-testid
|
|
|
52
43
|
}, [events]);
|
|
53
44
|
const headerDate = useMemo(() => (view === 'day' && selectedDate ? selectedDate.toDate(timeZone) : currentMonthDate.toDate(timeZone)), [view, selectedDate, currentMonthDate, timeZone]);
|
|
54
45
|
const handleNavigate = (action) => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
break;
|
|
66
|
-
case 'week':
|
|
67
|
-
// biome-ignore lint/correctness/noSwitchDeclarations: We need to use a switch statement to handle the different views
|
|
68
|
-
const currentWeekStart = startOfWeek(anchorDate, locale);
|
|
69
|
-
newDate = currentWeekStart.add({ weeks: P });
|
|
70
|
-
break;
|
|
71
|
-
case 'day':
|
|
72
|
-
newDate = anchorDate.add({ days: P });
|
|
73
|
-
break;
|
|
74
|
-
default:
|
|
75
|
-
newDate = currentMonthDate;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
setCurrentMonthDate(newDate); // Always update month anchor for header consistency
|
|
79
|
-
if (action === 'TODAY' || view === 'day') {
|
|
80
|
-
setSelectedDate(newDate); // Select today or the navigated day
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
setSelectedDate(null); // Clear selection when navigating months/weeks
|
|
84
|
-
}
|
|
46
|
+
const next = navigateCalendar({
|
|
47
|
+
action,
|
|
48
|
+
view,
|
|
49
|
+
currentMonthDate,
|
|
50
|
+
selectedDate,
|
|
51
|
+
locale,
|
|
52
|
+
todayDate: today(timeZone),
|
|
53
|
+
});
|
|
54
|
+
setCurrentMonthDate(next.currentMonthDate);
|
|
55
|
+
setSelectedDate(next.selectedDate);
|
|
85
56
|
};
|
|
86
57
|
const dayToDisplay = selectedDate || currentMonthDate;
|
|
87
58
|
if (!isMounted)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/organisms/Calendar/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/organisms/Calendar/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ const NavAccountMenu = ({ className, menuItems = [], bottomMenuItems = [], testI
|
|
|
36
36
|
}, "data-testid": menuItemTestId(prefix, item) }, item.label));
|
|
37
37
|
return (jsxRuntime.jsx(reactAriaComponents.Dialog, { ...dialogProps, className: cx.cx('w-66 rounded-xl bg-secondary_alt shadow-lg ring ring-secondary_alt outline-hidden', className), children: ({ close }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [menuItems.length > 0 && (jsxRuntime.jsx("div", { className: "rounded-xl bg-primary ring-1 ring-secondary", children: jsxRuntime.jsx("div", { className: "flex flex-col gap-0.5 py-1.5", children: menuItems.map((item) => renderItem(item, close)) }) })), bottomMenuItems.length > 0 && jsxRuntime.jsx("div", { className: "pt-1 pb-1.5", children: bottomMenuItems.map((item) => renderItem(item, close)) })] })) }));
|
|
38
38
|
};
|
|
39
|
-
const NavAccountCard = ({ popoverPlacement, account, avatarRounded, menuItems, bottomMenuItems, variant = 'full', onOpenChange, 'data-testid': dataTestId, }) => {
|
|
39
|
+
const NavAccountCard = ({ popoverPlacement, account, avatarRounded, menuItems, bottomMenuItems, variant = 'full', collapsed, resizing, onOpenChange, 'data-testid': dataTestId, }) => {
|
|
40
40
|
const triggerRef = React.useRef(null);
|
|
41
41
|
const isDesktop = useBreakpoints.useBreakpoints('lg');
|
|
42
42
|
// The trigger is icon/avatar-only with no visible text, so it needs an explicit
|
|
@@ -47,7 +47,14 @@ const NavAccountCard = ({ popoverPlacement, account, avatarRounded, menuItems, b
|
|
|
47
47
|
if (variant === 'avatar') {
|
|
48
48
|
return (jsxRuntime.jsxs(reactAriaComponents.DialogTrigger, { onOpenChange: onOpenChange, children: [jsxRuntime.jsx(reactAriaComponents.Button, { "aria-label": triggerLabel, ...testIdUtils.testIdProps(accountTestId), className: ({ isPressed, isFocused }) => cx.cx('group relative inline-flex cursor-pointer rounded-full', (isPressed || isFocused) && 'outline-2 outline-offset-2 outline-focus-ring'), children: jsxRuntime.jsx(Avatar.Avatar, { border: true, status: account.status, src: account.avatar, size: "md", alt: account.name, rounded: avatarRounded }) }), jsxRuntime.jsx(reactAriaComponents.Popover, { placement: popoverPlacement ?? 'right bottom', offset: 8, crossOffset: 6, className: POPOVER_ANIMATION, children: menu })] }));
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
const isRail = collapsed !== undefined;
|
|
51
|
+
// In rail mode the text and chevron fade as one; the fade-in waits for the rail to open a little.
|
|
52
|
+
const fadeClassName = isRail && cx.cx('transition-opacity motion-reduce:transition-none', collapsed ? 'opacity-0 duration-150' : 'delay-100 duration-150');
|
|
53
|
+
return (jsxRuntime.jsxs("div", { ref: triggerRef, className: cx.cx('relative flex items-center rounded-xl bg-primary p-3 ring-1 ring-secondary ring-inset', isRail && 'transition-[padding,margin,background-color,box-shadow] duration-300 ease-out motion-reduce:transition-none',
|
|
54
|
+
// Collapsed, the card is the 44px avatar slot of the icon-only rail: 2px of padding around the 40px avatar, overhanging the 36px rows by 4px.
|
|
55
|
+
collapsed && '-mx-1 bg-transparent p-0.5 ring-transparent'), children: [jsxRuntime.jsx("div", { className: "-m-1 flex min-w-0 flex-1 overflow-hidden p-1", children: jsxRuntime.jsx(Avatar.AvatarLabelGroup, { size: "md", src: account.avatar,
|
|
56
|
+
// Block spans keep each line single-line at its natural width while the card resizes, so the name never wraps as the card narrows.
|
|
57
|
+
title: jsxRuntime.jsx("span", { className: cx.cx('block truncate', fadeClassName), children: account.name }), subtitle: jsxRuntime.jsx("span", { className: cx.cx('block truncate', fadeClassName), children: account.email }), status: account.status, rounded: avatarRounded, className: resizing ? 'min-w-max' : undefined }) }), jsxRuntime.jsxs(reactAriaComponents.DialogTrigger, { onOpenChange: onOpenChange, children: [jsxRuntime.jsx(reactAriaComponents.Button, { "aria-label": triggerLabel, ...testIdUtils.testIdProps(accountTestId), className: cx.cx('peer absolute flex cursor-pointer items-center justify-center outline-focus-ring transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2', collapsed ? 'inset-0.5 rounded-full' : 'top-2 right-2 size-7 rounded-md hover:bg-primary_hover pressed:bg-primary_hover') }), jsxRuntime.jsx(reactAriaComponents.Popover, { placement: popoverPlacement ?? (isDesktop ? 'right bottom' : 'top right'), triggerRef: triggerRef, offset: 8, className: POPOVER_ANIMATION, children: menu })] }), jsxRuntime.jsx(uiIcons.ChevronSelectorVertical, { "aria-hidden": "true", className: cx.cx('pointer-events-none absolute top-3.5 right-3.5 size-4 shrink-0 stroke-[2.25px] text-fg-quaternary peer-hover:text-fg-quaternary_hover peer-pressed:text-fg-quaternary_hover', fadeClassName) })] }));
|
|
51
58
|
};
|
|
52
59
|
|
|
53
60
|
exports.NavAccountCard = NavAccountCard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavAccountCard.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/components/NavAccountCard.tsx"],"sourcesContent":[null],"names":["joinTestId","slugifyTestId","cx","useHotkeyHint","_jsxs","_jsx","isExternalHref","AriaLink","safeHref","rootTestId","AriaDialog","_Fragment","useRef","useBreakpoints","useResolvedTestId","AriaDialogTrigger","AriaButton","testIdProps","Avatar","AriaPopover","AvatarLabelGroup","ChevronSelectorVertical"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NavAccountCard.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/components/NavAccountCard.tsx"],"sourcesContent":[null],"names":["joinTestId","slugifyTestId","cx","useHotkeyHint","_jsxs","_jsx","isExternalHref","AriaLink","safeHref","rootTestId","AriaDialog","_Fragment","useRef","useBreakpoints","useResolvedTestId","AriaDialogTrigger","AriaButton","testIdProps","Avatar","AriaPopover","AvatarLabelGroup","ChevronSelectorVertical"],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ export declare const NavAccountMenu: ({ className, menuItems, bottomMenuItems, t
|
|
|
54
54
|
/** Resolved testid of the account card, used to derive each menu item's default testid. */
|
|
55
55
|
testIdPrefix?: string;
|
|
56
56
|
}) => import("react").JSX.Element;
|
|
57
|
-
export declare const NavAccountCard: ({ popoverPlacement, account, avatarRounded, menuItems, bottomMenuItems, variant, onOpenChange, "data-testid": dataTestId, }: {
|
|
57
|
+
export declare const NavAccountCard: ({ popoverPlacement, account, avatarRounded, menuItems, bottomMenuItems, variant, collapsed, resizing, onOpenChange, "data-testid": dataTestId, }: {
|
|
58
58
|
popoverPlacement?: Placement;
|
|
59
59
|
/** The account to display. */
|
|
60
60
|
account: NavAccountType;
|
|
@@ -70,6 +70,17 @@ export declare const NavAccountCard: ({ popoverPlacement, account, avatarRounded
|
|
|
70
70
|
* @default 'full'
|
|
71
71
|
*/
|
|
72
72
|
variant?: "full" | "avatar";
|
|
73
|
+
/**
|
|
74
|
+
* Rail mode for the `full` variant: `true` shrinks the card to its avatar, which becomes the menu trigger,
|
|
75
|
+
* fading out the name, email and chevron as the card narrows with the rail; `false` restores the card.
|
|
76
|
+
* Omit outside the collapsible rail; the `avatar` variant ignores it.
|
|
77
|
+
*/
|
|
78
|
+
collapsed?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Set while the rail animates between widths. The name and email keep their full width and are clipped by
|
|
81
|
+
* the card's edge instead of re-truncating every frame.
|
|
82
|
+
*/
|
|
83
|
+
resizing?: boolean;
|
|
73
84
|
/** Called whenever the account menu popover opens or closes. */
|
|
74
85
|
onOpenChange?: (isOpen: boolean) => void;
|
|
75
86
|
/** Overrides the derived `data-testid` on the account menu trigger. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavAccountCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/SidebarNavigation/components/NavAccountCard.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAqB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAU1G,MAAM,MAAM,cAAc,GAAG;IAC3B,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,uJAAuJ;IACvJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uGAAuG;IACvG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0CAA0C;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,uEAAuE;IACvE,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,gDAAgD;IAChD,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAkEF,eAAO,MAAM,cAAc,GAAI,yEAM5B,eAAe,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,gCAkCA,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,
|
|
1
|
+
{"version":3,"file":"NavAccountCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/SidebarNavigation/components/NavAccountCard.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAqB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAU1G,MAAM,MAAM,cAAc,GAAG;IAC3B,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,uJAAuJ;IACvJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uGAAuG;IACvG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0CAA0C;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,uEAAuE;IACvE,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,gDAAgD;IAChD,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAkEF,eAAO,MAAM,cAAc,GAAI,yEAM5B,eAAe,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,gCAkCA,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,kJAW5B;IACD,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,8BAA8B;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uEAAuE;IACvE,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,gDAAgD;IAChD,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,gCAuFA,CAAC"}
|