@stfrigerio/sito-template 0.1.18 → 0.1.20

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.
@@ -19,6 +19,8 @@ export interface CalendarEvent {
19
19
  priority?: 'high' | 'medium' | 'low' | string;
20
20
  /** Background color override */
21
21
  color?: string;
22
+ /** Text color override */
23
+ textColor?: string;
22
24
  /** Additional metadata */
23
25
  metadata?: Record<string, any>;
24
26
  }
@@ -58,7 +60,7 @@ export interface CalendarProps {
58
60
  /** Callback when a date is clicked */
59
61
  onDateClick?: (date: Date) => void;
60
62
  /** Initial view mode */
61
- viewMode?: 'month' | 'week';
63
+ viewMode?: 'month' | 'week' | 'day';
62
64
  /** Initial date to display */
63
65
  initialDate?: Date;
64
66
  /** Configuration options */
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Calendar/Calendar.tsx"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IACxD,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9C,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,CAAC;IACzD,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yBAAyB;IACzB,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC;IACxC,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,iCAAiC;IACjC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,8BAA8B;IAC9B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,QAAQ,CAAC,EACrB,MAAM,EACN,YAAY,EACZ,WAAW,EACX,QAAkB,EAClB,WAAwB,EACxB,MAAW,EACX,SAAc,EACd,KAAU,EACV,OAAe,EACf,UAAU,EACb,EAAE,aAAa,2CAgUf"}
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Calendar/Calendar.tsx"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IACxD,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9C,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,CAAC;IACzD,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yBAAyB;IACzB,UAAU,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC;IACxC,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,iCAAiC;IACjC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACpC,8BAA8B;IAC9B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,QAAQ,CAAC,EACrB,MAAM,EACN,YAAY,EACZ,WAAW,EACX,QAAkB,EAClB,WAAwB,EACxB,MAAW,EACX,SAAc,EACd,KAAU,EACV,OAAe,EACf,UAAU,EACb,EAAE,aAAa,2CAodf"}
@@ -34,6 +34,7 @@ export default meta;
34
34
  type Story = StoryObj<typeof meta>;
35
35
  export declare const MonthView: Story;
36
36
  export declare const WeekView: Story;
37
+ export declare const DayView: Story;
37
38
  export declare const ClickInteractions: Story;
38
39
  export declare const HabitTracker: Story;
39
40
  export declare const EventScheduler: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Calendar/Calendar.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAC;AAE1D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBuB,CAAC;AAElC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAyBnC,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwI/B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KA8C1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqF5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA2DjC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAsD7B,CAAC"}
1
+ {"version":3,"file":"Calendar.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Calendar/Calendar.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAC;AAE1D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBuB,CAAC;AAElC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAyBnC,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KA4DrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwI/B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KA8C1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqF5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA2DjC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAsD7B,CAAC"}
package/dist/index.esm.js CHANGED
@@ -1773,7 +1773,7 @@ const Tabs = ({ activeTab, onTabChange, tabs: customTabs, className = '' }) => {
1773
1773
  }) }));
1774
1774
  };
1775
1775
 
1776
- var styles$7 = {"calendar":"Calendar-module_calendar__3mIJS","loading":"Calendar-module_loading__59Z9-","loadingSpinner":"Calendar-module_loadingSpinner__7MXqV","header":"Calendar-module_header__cZHNA","navigation":"Calendar-module_navigation__PGkpY","navButton":"Calendar-module_navButton__kOe-w","title":"Calendar-module_title__oJZ7m","controls":"Calendar-module_controls__i1Z38","todayButton":"Calendar-module_todayButton__Ac9zc","viewToggle":"Calendar-module_viewToggle__Fhg2t","viewButton":"Calendar-module_viewButton__J2WY6","active":"Calendar-module_active__lIqH-","weekDays":"Calendar-module_weekDays__4J-8f","weekNumberHeader":"Calendar-module_weekNumberHeader__xhKbB","weekDay":"Calendar-module_weekDay__cg8Gr","daysGrid":"Calendar-module_daysGrid__ER0GM","weekView":"Calendar-module_weekView__bdtGs","dayCell":"Calendar-module_dayCell__TV-HR","dayNumber":"Calendar-module_dayNumber__ICH-X","today":"Calendar-module_today__eGuUU","events":"Calendar-module_events__qdbs7","event":"Calendar-module_event__Q1Zq3","eventTitle":"Calendar-module_eventTitle__XU7Wd","eventTime":"Calendar-module_eventTime__pMGEB","otherMonth":"Calendar-module_otherMonth__r6VJK","weekNumber":"Calendar-module_weekNumber__nlo50","completed":"Calendar-module_completed__B-SHI","completedIcon":"Calendar-module_completedIcon__-oDZ9","moreEvents":"Calendar-module_moreEvents__TIKaT","emptyState":"Calendar-module_emptyState__2fcj7"};
1776
+ var styles$7 = {"calendar":"Calendar-module_calendar__3mIJS","loading":"Calendar-module_loading__59Z9-","loadingSpinner":"Calendar-module_loadingSpinner__7MXqV","header":"Calendar-module_header__cZHNA","navigation":"Calendar-module_navigation__PGkpY","navButton":"Calendar-module_navButton__kOe-w","title":"Calendar-module_title__oJZ7m","controls":"Calendar-module_controls__i1Z38","todayButton":"Calendar-module_todayButton__Ac9zc","viewToggle":"Calendar-module_viewToggle__Fhg2t","viewButton":"Calendar-module_viewButton__J2WY6","active":"Calendar-module_active__lIqH-","weekDays":"Calendar-module_weekDays__4J-8f","weekNumberHeader":"Calendar-module_weekNumberHeader__xhKbB","weekDay":"Calendar-module_weekDay__cg8Gr","daysGrid":"Calendar-module_daysGrid__ER0GM","weekView":"Calendar-module_weekView__bdtGs","dayCell":"Calendar-module_dayCell__TV-HR","dayNumber":"Calendar-module_dayNumber__ICH-X","today":"Calendar-module_today__eGuUU","events":"Calendar-module_events__qdbs7","event":"Calendar-module_event__Q1Zq3","eventTitle":"Calendar-module_eventTitle__XU7Wd","eventTime":"Calendar-module_eventTime__pMGEB","otherMonth":"Calendar-module_otherMonth__r6VJK","weekNumber":"Calendar-module_weekNumber__nlo50","completed":"Calendar-module_completed__B-SHI","completedIcon":"Calendar-module_completedIcon__-oDZ9","moreEvents":"Calendar-module_moreEvents__TIKaT","emptyState":"Calendar-module_emptyState__2fcj7","dayView":"Calendar-module_dayView__PCIos","dayViewHeader":"Calendar-module_dayViewHeader__Gvxx2","timeColumnHeader":"Calendar-module_timeColumnHeader__B0btR","dayColumnHeader":"Calendar-module_dayColumnHeader__Rjqwg","dayViewScrollContainer":"Calendar-module_dayViewScrollContainer__84Byq","dayViewContent":"Calendar-module_dayViewContent__VU9JI","timeColumn":"Calendar-module_timeColumn__Sce-X","dayColumn":"Calendar-module_dayColumn__-j2oT","timeSlot":"Calendar-module_timeSlot__jldHq","timeLabel":"Calendar-module_timeLabel__9xLiK","hourSlot":"Calendar-module_hourSlot__z-80Q","hourLine":"Calendar-module_hourLine__fofdD","dayEvent":"Calendar-module_dayEvent__tSPFa","dayEventTitle":"Calendar-module_dayEventTitle__er03k","dayEventTime":"Calendar-module_dayEventTime__TlkeQ","currentTimeIndicator":"Calendar-module_currentTimeIndicator__GntOZ"};
1777
1777
 
1778
1778
  /**
1779
1779
  * Calendar component - A flexible, reusable calendar for displaying events
@@ -1832,6 +1832,18 @@ function Calendar({ events, onEventClick, onDateClick, viewMode = 'month', initi
1832
1832
  const weekEnd = endDate.toLocaleDateString(locale, { day: 'numeric', month: 'short' });
1833
1833
  displayTitle = `${weekStart} - ${weekEnd}`;
1834
1834
  }
1835
+ else if (currentViewMode === 'day') {
1836
+ startDate = new Date(currentDate);
1837
+ startDate.setHours(0, 0, 0, 0);
1838
+ endDate = new Date(currentDate);
1839
+ endDate.setHours(23, 59, 59, 999);
1840
+ displayTitle = currentDate.toLocaleDateString(locale, {
1841
+ weekday: 'long',
1842
+ year: 'numeric',
1843
+ month: 'long',
1844
+ day: 'numeric'
1845
+ });
1846
+ }
1835
1847
  else {
1836
1848
  const firstDay = new Date(year, month, 1);
1837
1849
  const lastDay = new Date(year, month + 1, 0);
@@ -1884,6 +1896,9 @@ function Calendar({ events, onEventClick, onDateClick, viewMode = 'month', initi
1884
1896
  if (currentViewMode === 'week') {
1885
1897
  newDate.setDate(newDate.getDate() - 7);
1886
1898
  }
1899
+ else if (currentViewMode === 'day') {
1900
+ newDate.setDate(newDate.getDate() - 1);
1901
+ }
1887
1902
  else {
1888
1903
  newDate.setMonth(newDate.getMonth() - 1);
1889
1904
  }
@@ -1894,6 +1909,9 @@ function Calendar({ events, onEventClick, onDateClick, viewMode = 'month', initi
1894
1909
  if (currentViewMode === 'week') {
1895
1910
  newDate.setDate(newDate.getDate() + 7);
1896
1911
  }
1912
+ else if (currentViewMode === 'day') {
1913
+ newDate.setDate(newDate.getDate() + 1);
1914
+ }
1897
1915
  else {
1898
1916
  newDate.setMonth(newDate.getMonth() + 1);
1899
1917
  }
@@ -1918,6 +1936,23 @@ function Calendar({ events, onEventClick, onDateClick, viewMode = 'month', initi
1918
1936
  }
1919
1937
  return '#4A90E2'; // Default blue
1920
1938
  };
1939
+ const getContrastColor = (bgColor) => {
1940
+ // Convert hex to RGB
1941
+ const hex = bgColor.replace('#', '');
1942
+ const r = parseInt(hex.substring(0, 2), 16);
1943
+ const g = parseInt(hex.substring(2, 4), 16);
1944
+ const b = parseInt(hex.substring(4, 6), 16);
1945
+ // Calculate luminance
1946
+ const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
1947
+ // Return black or white based on luminance
1948
+ return luminance > 0.5 ? '#000000' : '#FFFFFF';
1949
+ };
1950
+ const getEventTextColor = (event) => {
1951
+ if (event.textColor)
1952
+ return event.textColor;
1953
+ const bgColor = getEventColor(event);
1954
+ return getContrastColor(bgColor);
1955
+ };
1921
1956
  const handleEventClick = (event) => {
1922
1957
  if (onEventClick) {
1923
1958
  onEventClick(event);
@@ -1944,7 +1979,44 @@ function Calendar({ events, onEventClick, onDateClick, viewMode = 'month', initi
1944
1979
  if (loading) {
1945
1980
  return (jsx("div", { className: `${styles$7.calendar} ${styles$7.loading} ${className}`, style: style, children: jsx("div", { className: styles$7.loadingSpinner, children: "Loading..." }) }));
1946
1981
  }
1947
- return (jsxs("div", { className: `${styles$7.calendar} ${className}`, style: style, children: [jsxs("div", { className: styles$7.header, children: [jsxs("div", { className: styles$7.navigation, children: [jsx("button", { onClick: handlePrevious, className: styles$7.navButton, "aria-label": "Previous", children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "15,18 9,12 15,6" }) }) }), jsx("h3", { className: styles$7.title, children: calendarData.displayTitle }), jsx("button", { onClick: handleNext, className: styles$7.navButton, "aria-label": "Next", children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "9,6 15,12 9,18" }) }) })] }), jsxs("div", { className: styles$7.controls, children: [jsx("button", { onClick: handleToday, className: styles$7.todayButton, children: "Today" }), jsxs("div", { className: styles$7.viewToggle, children: [jsx("button", { className: `${styles$7.viewButton} ${currentViewMode === 'month' ? styles$7.active : ''}`, onClick: () => setCurrentViewMode('month'), children: "Month" }), jsx("button", { className: `${styles$7.viewButton} ${currentViewMode === 'week' ? styles$7.active : ''}`, onClick: () => setCurrentViewMode('week'), children: "Week" })] })] })] }), jsxs("div", { className: styles$7.weekDays, children: [showWeekNumbers && jsx("div", { className: styles$7.weekNumberHeader, children: "Week" }), finalDayLabels.map((day) => (jsx("div", { className: styles$7.weekDay, children: day }, day)))] }), jsx("div", { className: `${styles$7.daysGrid} ${currentViewMode === 'week' ? styles$7.weekView : ''}`, children: calendarData.days.map((day, index) => {
1982
+ return (jsxs("div", { className: `${styles$7.calendar} ${className}`, style: style, children: [jsxs("div", { className: styles$7.header, children: [jsxs("div", { className: styles$7.navigation, children: [jsx("button", { onClick: handlePrevious, className: styles$7.navButton, "aria-label": "Previous", children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "15,18 9,12 15,6" }) }) }), jsx("h3", { className: styles$7.title, children: calendarData.displayTitle }), jsx("button", { onClick: handleNext, className: styles$7.navButton, "aria-label": "Next", children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "9,6 15,12 9,18" }) }) })] }), jsxs("div", { className: styles$7.controls, children: [jsx("button", { onClick: handleToday, className: styles$7.todayButton, children: "Today" }), jsxs("div", { className: styles$7.viewToggle, children: [jsx("button", { className: `${styles$7.viewButton} ${currentViewMode === 'month' ? styles$7.active : ''}`, onClick: () => setCurrentViewMode('month'), children: "Month" }), jsx("button", { className: `${styles$7.viewButton} ${currentViewMode === 'week' ? styles$7.active : ''}`, onClick: () => setCurrentViewMode('week'), children: "Week" }), jsx("button", { className: `${styles$7.viewButton} ${currentViewMode === 'day' ? styles$7.active : ''}`, onClick: () => setCurrentViewMode('day'), children: "Day" })] })] })] }), currentViewMode !== 'day' && (jsxs("div", { className: styles$7.weekDays, children: [showWeekNumbers && jsx("div", { className: styles$7.weekNumberHeader, children: "Week" }), finalDayLabels.map((day) => (jsx("div", { className: styles$7.weekDay, children: day }, day)))] })), currentViewMode === 'day' ? (
1983
+ // Day view layout
1984
+ jsxs("div", { className: styles$7.dayView, children: [jsxs("div", { className: styles$7.dayViewHeader, children: [jsx("div", { className: styles$7.timeColumnHeader }), jsx("div", { className: styles$7.dayColumnHeader, children: currentDate.toLocaleDateString(locale, { weekday: 'short', day: 'numeric' }) })] }), jsx("div", { className: styles$7.dayViewScrollContainer, children: jsxs("div", { className: styles$7.dayViewContent, children: [(() => {
1985
+ const now = new Date();
1986
+ const currentHour = now.getHours();
1987
+ const currentMinute = now.getMinutes();
1988
+ const minutesSinceMidnight = currentHour * 60 + currentMinute;
1989
+ const topPosition = (minutesSinceMidnight / 1440) * (24 * 60); // 24 hours * 60px per hour
1990
+ // Only show if viewing today
1991
+ const isToday = currentDate.toDateString() === now.toDateString();
1992
+ return isToday ? (jsx("div", { className: styles$7.currentTimeIndicator, style: { top: `${topPosition}px` } })) : null;
1993
+ })(), jsx("div", { className: styles$7.timeColumn, children: Array.from({ length: 24 }, (_, hour) => (jsx("div", { className: styles$7.timeSlot, children: jsxs("span", { className: styles$7.timeLabel, children: [hour.toString().padStart(2, '0'), ":00"] }) }, hour))) }), jsx("div", { className: styles$7.dayColumn, children: Array.from({ length: 24 }, (_, hour) => {
1994
+ const hourEvents = getDayEvents(currentDate).filter(event => {
1995
+ if (!event.time)
1996
+ return false;
1997
+ const eventHour = parseInt(event.time.split(':')[0]);
1998
+ return eventHour === hour;
1999
+ });
2000
+ return (jsxs("div", { className: styles$7.hourSlot, children: [jsx("div", { className: styles$7.hourLine }), hourEvents.map((event, eventIndex) => (jsxs(motion.div, { className: `${styles$7.dayEvent} ${event.status === 'completed' ? styles$7.completed : ''}`, style: {
2001
+ backgroundColor: getEventColor(event),
2002
+ color: getEventTextColor(event),
2003
+ opacity: event.status === 'completed' ? 0.7 : 1
2004
+ }, onClick: (e) => {
2005
+ e.stopPropagation();
2006
+ handleEventClick(event);
2007
+ }, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, transition: {
2008
+ duration: 0.2,
2009
+ delay: eventIndex * 0.05,
2010
+ ease: "easeOut"
2011
+ }, whileHover: {
2012
+ scale: 1.02,
2013
+ y: -1,
2014
+ transition: { duration: 0.1 }
2015
+ }, whileTap: {
2016
+ scale: 0.98,
2017
+ transition: { duration: 0.1 }
2018
+ }, children: [iconRenderer && iconRenderer(event), jsxs("span", { className: styles$7.dayEventTitle, children: [jsx("span", { className: styles$7.dayEventTime, children: event.time }), event.title] }), event.status === 'completed' && (jsx("svg", { className: styles$7.completedIcon, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "20,6 9,17 4,12" }) }))] }, event.id)))] }, hour));
2019
+ }) })] }) })] })) : (jsx("div", { className: `${styles$7.daysGrid} ${currentViewMode === 'week' ? styles$7.weekView : ''}`, children: calendarData.days.map((day, index) => {
1948
2020
  const dayEvents = getDayEvents(day);
1949
2021
  const dayIsToday = isToday(day);
1950
2022
  const isInCurrentMonth = currentViewMode === 'week' || isCurrentMonth(day);
@@ -1955,6 +2027,7 @@ function Calendar({ events, onEventClick, onDateClick, viewMode = 'month', initi
1955
2027
  ease: "easeOut"
1956
2028
  }, onClick: () => handleDateClick(day), children: [isWeekStart && (jsx("div", { className: styles$7.weekNumber, children: getWeekNumber(day) })), jsx("div", { className: styles$7.dayNumber, children: day.getDate() }), dayEvents.length > 0 && (jsxs("div", { className: styles$7.events, children: [dayEvents.slice(0, maxEventsPerDay).map((event, eventIndex) => (jsxs(motion.div, { className: `${styles$7.event} ${event.status === 'completed' ? styles$7.completed : ''}`, style: {
1957
2029
  backgroundColor: getEventColor(event),
2030
+ color: getEventTextColor(event),
1958
2031
  opacity: event.status === 'completed' ? 0.7 : 1
1959
2032
  }, onClick: (e) => {
1960
2033
  e.stopPropagation();
@@ -1971,7 +2044,7 @@ function Calendar({ events, onEventClick, onDateClick, viewMode = 'month', initi
1971
2044
  scale: 0.98,
1972
2045
  transition: { duration: 0.1 }
1973
2046
  }, children: [iconRenderer && iconRenderer(event), jsxs("span", { className: styles$7.eventTitle, children: [event.time && (jsx("span", { className: styles$7.eventTime, children: event.time })), event.title] }), event.status === 'completed' && (jsx("svg", { className: styles$7.completedIcon, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "20,6 9,17 4,12" }) }))] }, event.id))), dayEvents.length > maxEventsPerDay && (jsxs("div", { className: styles$7.moreEvents, children: ["+", dayEvents.length - maxEventsPerDay, " more"] }))] })), dayEvents.length === 0 && emptyState && (jsx("div", { className: styles$7.emptyState, children: emptyState }))] }, `${day.getFullYear()}-${day.getMonth()}-${day.getDate()}`));
1974
- }) })] }));
2047
+ }) }))] }));
1975
2048
  }
1976
2049
 
1977
2050
  var desktopStyles = {"navbar":"Navbar-module_navbar__-SNiN","navbarSidebar":"Navbar-module_navbarSidebar__RVVL8","navbarTop":"Navbar-module_navbarTop__MLI-S","navList":"Navbar-module_navList__764oY","navItem":"Navbar-module_navItem__cbeLP","navbarMinimal":"Navbar-module_navbarMinimal__7gs0n","navLogo":"Navbar-module_navLogo__y0AxI","logoContainer":"Navbar-module_logoContainer__zJG3x","logoImage":"Navbar-module_logoImage__1Ptmz","logoPlaceholder":"Navbar-module_logoPlaceholder__aIREi","logoContent":"Navbar-module_logoContent__CjPyL","logoText":"Navbar-module_logoText__bTwI0","logoSubtitle":"Navbar-module_logoSubtitle__UA95I","subNavItem":"Navbar-module_subNavItem__WN9is","navLink":"Navbar-module_navLink__I-45k","active":"Navbar-module_active__tLLqx","activeBackground":"Navbar-module_activeBackground__ikyOn","navIcon":"Navbar-module_navIcon__uU4yD","activeIcon":"Navbar-module_activeIcon__omRDk","navText":"Navbar-module_navText__4e0cK","activeText":"Navbar-module_activeText__zSzJC","navBadge":"Navbar-module_navBadge__mLur9","chevron":"Navbar-module_chevron__nmRNk","subNavList":"Navbar-module_subNavList__YsOQP","navFooter":"Navbar-module_navFooter__p1wMO","mobileMenuButton":"Navbar-module_mobileMenuButton__BrALw","mobileBackdrop":"Navbar-module_mobileBackdrop__bgxCV","mobileMenuOpen":"Navbar-module_mobileMenuOpen__oICVa"};