Lines Matching refs:html

105             $html = $this->renderStandaloneEventList($data);
107 $html = $this->renderEventPanelOnly($data);
109 $html = $this->renderStaticCalendar($data);
111 $html = $this->renderCompactCalendar($data);
114 $renderer->doc .= $html;
168 …$html = '<div class="calendar-compact-container ' . $themeClass . '" id="' . $calId . '" data-name…
171 $html .= '<style>
203 $html .= '<script src="' . DOKU_BASE . 'lib/plugins/calendar/calendar-main.js"></script>';
206 …$html .= '<script>if(typeof DOKU_BASE==="undefined"){window.DOKU_BASE="' . DOKU_BASE . '";}</scrip…
209 …$html .= '<script type="application/json" id="events-data-' . $calId . '">' . json_encode($events)…
212 $html .= '<div class="calendar-compact-left">';
215 $html .= '<div class="calendar-compact-header">';
216 …$html .= '<button class="cal-nav-btn" onclick="navCalendar(\'' . $calId . '\', ' . $prevYear . ', …
217 …$html .= '<h3 class="calendar-month-picker" onclick="openMonthPicker(\'' . $calId . '\', ' . $year…
218 …$html .= '<button class="cal-nav-btn" onclick="navCalendar(\'' . $calId . '\', ' . $nextYear . ', …
219 …$html .= '<button class="cal-today-btn" onclick="jumpToToday(\'' . $calId . '\', \'' . $namespace …
220 $html .= '</div>';
223 $html .= '<div class="calendar-day-headers">';
224 …$html .= '<span>S</span><span>M</span><span>T</span><span>W</span><span>T</span><span>F</span><spa…
225 $html .= '</div>';
226 $html .= '<table class="calendar-compact-grid">';
227 $html .= '<tbody>';
287 $html .= '<tr>';
290 $html .= '<td class="cal-empty"></td>';
300 …$html .= '<td class="' . $classes . '" data-date="' . $dateKey . '" tabindex="0" role="gridcell" a…
303 $html .= '<span class="' . $dayNumClass . '">' . $currentDay . '</span>';
322 $html .= '<div class="event-indicators">';
359 $html .= '<span class="event-bar ' . $barClass . '" ';
360 $html .= 'style="background: ' . $eventColor . ';" ';
361 … $html .= 'title="' . $titlePrefix . $eventTitle . ($eventTime ? ' @ ' . $eventTime : '') . '" ';
362 …$html .= 'onclick="event.stopPropagation(); highlightEvent(\'' . $calId . '\', \'' . $eventId . '\…
363 $html .= '</span>';
365 $html .= '</div>';
368 $html .= '</td>';
372 $html .= '</tr>';
375 $html .= '</tbody></table>';
376 $html .= '</div>'; // End calendar-left
379 $html .= '<div class="calendar-compact-right">';
380 $html .= '<div class="event-list-header">';
381 $html .= '<div class="event-list-header-content">';
382 $html .= '<h4 id="eventlist-title-' . $calId . '">Events</h4>';
384 $html .= '<span class="namespace-badge">' . htmlspecialchars($namespace) . '</span>';
386 $html .= '</div>';
389 $html .= '<div class="event-search-container-inline">';
390 …$html .= '<input type="text" class="event-search-input-inline" id="event-search-' . $calId . '" pl…
391 …$html .= '<button class="event-search-clear-inline" id="search-clear-' . $calId . '" onclick="clea…
392 …$html .= '<button class="event-search-mode-inline" id="search-mode-' . $calId . '" onclick="toggle…
393 $html .= '</div>';
395 …$html .= '<button class="add-event-compact" onclick="openAddEvent(\'' . $calId . '\', \'' . $names…
396 $html .= '</div>';
398 $html .= '<div class="event-list-compact" id="eventlist-' . $calId . '">';
399 $html .= $this->renderEventListContent($events, $calId, $namespace, $themeStyles);
400 $html .= '</div>';
402 $html .= '</div>'; // End calendar-right
405 $html .= $this->renderEventDialog($calId, $namespace, $theme);
408 $html .= $this->renderMonthPicker($calId, $year, $month, $namespace, $theme, $themeStyles);
410 $html .= '</div>'; // End container
412 return $html;
463 …$html = '<div class="calendar-static ' . $themeClass . '" id="' . $calId . '" data-year="' . $year…
466 $html .= '<div class="static-screen-view">';
469 $html .= '<div class="static-header">';
471 …$html .= '<button class="static-nav-btn" onclick="navStaticCalendar(\'' . $calId . '\', -1)" title…
473 $html .= '<h2 class="static-month-title">' . hsc($displayTitle) . '</h2>';
475 …$html .= '<button class="static-nav-btn" onclick="navStaticCalendar(\'' . $calId . '\', 1)" title=…
478 …$html .= '<button class="static-print-btn" onclick="printStaticCalendar(\'' . $calId . '\')" title…
480 $html .= '</div>';
483 $html .= '<table class="static-calendar-grid">';
484 $html .= '<thead><tr>';
487 $html .= '<th>' . $day . '</th>';
489 $html .= '</tr></thead>';
490 $html .= '<tbody>';
497 $html .= '<tr>';
502 $html .= '<td class="static-day-empty"></td>';
514 $html .= '<td class="' . $cellClass . '">';
515 $html .= '<div class="static-day-number">' . $dayCount . '</div>';
518 $html .= '<div class="static-day-events">';
557 …$html .= '<div class="' . $eventClass . '" style="border-left-color: ' . $color . ';" title="' . h…
559 $html .= '<span class="static-event-star">⭐</span>';
562 … $html .= '<span class="static-event-time">' . $this->formatTime12Hour($time) . '</span> ';
564 $html .= '<span class="static-event-title">' . $title . '</span>';
565 $html .= '</div>';
567 $html .= '</div>';
570 $html .= '</td>';
574 $html .= '</tr>';
577 $html .= '</tbody></table>';
578 $html .= '</div>'; // End screen view
582 $html .= '<div class="static-print-view">';
583 $html .= '<h2 class="static-print-title">' . hsc($displayTitle) . '</h2>';
586 …$html .= '<p class="static-print-namespace">' . $this->getLang('calendar_label') . ': ' . hsc($nam…
608 … $html .= '<p class="static-print-empty">' . $this->getLang('no_events_scheduled') . '</p>';
610 $html .= '<table class="static-itinerary">';
611 … $html .= '<thead><tr><th>Date</th><th>Time</th><th>Event</th><th>Details</th></tr></thead>';
612 $html .= '<tbody>';
632 $html .= '<tr class="' . $rowClass . '">';
636 $html .= '<td class="static-itinerary-date">' . $dateDisplay . '</td>';
639 $html .= '<td></td>';
647 $html .= '<td class="static-itinerary-time">' . $time . '</td>';
650 $html .= '<td class="static-itinerary-title">';
652 $html .= '⭐ ';
654 $html .= hsc($event['title']);
655 $html .= '</td>';
659 $html .= '<td class="static-itinerary-desc">' . $desc . '</td>';
661 $html .= '</tr>';
664 $html .= '</tbody></table>';
667 $html .= '</div>'; // End print view
670 $html .= '</div>'; // End container
672 return $html;
1021 $html = '';
1025 $html .= '<div class="past-events-section">';
1026 … $html .= '<div class="past-events-toggle" onclick="togglePastEvents(\'' . $calId . '\')">';
1027 $html .= '<span class="past-events-arrow" id="past-arrow-' . $calId . '">▶</span> ';
1028 $html .= '<span class="past-events-label">Past Events (' . $pastCount . ')</span>';
1029 $html .= '</div>';
1030 …$html .= '<div class="past-events-content" id="past-events-' . $calId . '" style="display:none;">';
1031 $html .= $pastHtml;
1032 $html .= '</div>';
1033 $html .= '</div>';
1037 $html .= $futureHtml;
1039 return $html;
1201 …$html = '<div class="event-panel-standalone" id="' . $calId . '" data-height="' . htmlspecialchars…
1204 $html .= '<style>
1233 $html .= '<script src="' . DOKU_BASE . 'lib/plugins/calendar/calendar-main.js"></script>';
1236 …$html .= '<script>if(typeof DOKU_BASE==="undefined"){window.DOKU_BASE="' . DOKU_BASE . '";}</scrip…
1239 $html .= '<div class="panel-header-compact">';
1242 $html .= '<div class="panel-header-row-1">';
1243 …$html .= '<button class="panel-nav-btn" onclick="navEventPanel(\'' . $calId . '\', ' . $prevYear .…
1247 …$html .= '<h3 class="panel-month-title" onclick="openMonthPickerPanel(\'' . $calId . '\', ' . $yea…
1249 …$html .= '<button class="panel-nav-btn" onclick="navEventPanel(\'' . $calId . '\', ' . $nextYear .…
1255 …$html .= '<span class="panel-ns-badge" style="background:var(--cell-today-bg) !important; color:va…
1259 …$html .= '<span class="panel-ns-badge" style="background:var(--cell-today-bg) !important; color:va…
1264 …$html .= '<span class="panel-ns-badge filter-on" style="background:var(--text-bright) !important; …
1266 …$html .= '<span class="panel-ns-badge" style="background:var(--cell-today-bg) !important; color:va…
1271 …$html .= '<button class="panel-today-btn" onclick="jumpTodayPanel(\'' . $calId . '\', \'' . $names…
1272 $html .= '</div>';
1275 $html .= '<div class="panel-header-row-2">';
1276 $html .= '<div class="panel-search-box">';
1277 …$html .= '<input type="text" class="panel-search-input" id="event-search-' . $calId . '" placehold…
1278 …$html .= '<button class="panel-search-clear" id="search-clear-' . $calId . '" onclick="clearEventS…
1279 …$html .= '<button class="panel-search-mode" id="search-mode-' . $calId . '" onclick="toggleSearchM…
1280 $html .= '</div>';
1281 …$html .= '<button class="panel-add-btn" onclick="openAddEventPanel(\'' . $calId . '\', \'' . $name…
1282 $html .= '</div>';
1284 $html .= '</div>';
1286 …$html .= '<div class="event-list-compact" id="eventlist-' . $calId . '" style="max-height: ' . htm…
1287 $html .= $this->renderEventListContent($events, $calId, $namespace);
1288 $html .= '</div>';
1290 $html .= $this->renderEventDialog($calId, $namespace, $theme);
1293 $html .= $this->renderMonthPicker($calId, $year, $month, $namespace, $theme, $themeStyles);
1295 $html .= '</div>';
1297 return $html;
1500 …$html = '<div class="eventlist-simple ' . $themeClass . '" id="' . $calId . '" style="' . $contain…
1503 $html .= '<style>
1528 $html .= '<script src="' . DOKU_BASE . 'lib/plugins/calendar/calendar-main.js"></script>';
1531 …$html .= '<script>if(typeof DOKU_BASE==="undefined"){window.DOKU_BASE="' . DOKU_BASE . '";}</scrip…
1539 $html .= '<div class="eventlist-today-header">';
1540 …$html .= '<span class="eventlist-today-clock" id="clock-' . $calId . '">' . $currentTime . '</span…
1541 $html .= '<div class="eventlist-bottom-info">';
1542 …$html .= '<span class="eventlist-weather"><span id="weather-icon-' . $calId . '">��️</span> <span …
1543 $html .= '<span class="eventlist-today-date">' . $displayDate . '</span>';
1544 $html .= '</div>';
1549 $html .= '<div class="eventlist-stats-container">';
1552 …$html .= '<div class="eventlist-cpu-bar" style="background:' . $themeStyles['cell_today_bg'] . ' !…
1553 …$html .= '<div class="eventlist-cpu-fill" id="cpu-5min-' . $calId . '" style="width: 0%; backgroun…
1554 …$html .= '<div class="system-tooltip" id="tooltip-green-' . $calId . '" style="display:none;"></di…
1555 $html .= '</div>';
1558 …$html .= '<div class="eventlist-cpu-bar eventlist-cpu-realtime" style="background:' . $themeStyles…
1559 …$html .= '<div class="eventlist-cpu-fill eventlist-cpu-fill-purple" id="cpu-realtime-' . $calId . …
1560 …$html .= '<div class="system-tooltip" id="tooltip-purple-' . $calId . '" style="display:none;"></d…
1561 $html .= '</div>';
1564 …$html .= '<div class="eventlist-cpu-bar eventlist-mem-realtime" style="background:' . $themeStyles…
1565 …$html .= '<div class="eventlist-cpu-fill eventlist-cpu-fill-orange" id="mem-realtime-' . $calId . …
1566 …$html .= '<div class="system-tooltip" id="tooltip-orange-' . $calId . '" style="display:none;"></d…
1567 $html .= '</div>';
1569 $html .= '</div>';
1571 $html .= '</div>';
1574 $html .= '<script>
1861 $html .= '<div class="eventlist-simple-empty">';
1862 $html .= '<div class="eventlist-simple-header">' . htmlspecialchars($headerText);
1864 … $html .= ' <span class="eventlist-simple-namespace">' . htmlspecialchars($namespace) . '</span>';
1866 $html .= '</div>';
1867 $html .= '<div class="eventlist-simple-body">No events</div>';
1868 $html .= '</div>';
1907 …$html .= '<div class="eventlist-simple-item' . $todayClass . $tomorrowClass . $pastDueClass . '">';
1908 $html .= '<div class="eventlist-simple-header">';
1911 … $html .= '<span class="eventlist-simple-title">' . htmlspecialchars($event['title']) . '</span>';
1922 … $html .= ' <span class="eventlist-simple-time">' . $displayTime . '</span>';
1927 $html .= ' <span class="eventlist-simple-date">' . $displayDate . '</span>';
1931 …$html .= ' <span class="eventlist-simple-pastdue-badge" style="background:' . $themeStyles['pastdu…
1933 …$html .= ' <span class="eventlist-simple-today-badge" style="background:' . $themeStyles['border']…
1942 …$html .= ' <span class="eventlist-simple-namespace">' . htmlspecialchars($eventNamespace) . '</spa…
1945 $html .= '</div>'; // header
1949 …$html .= '<div class="eventlist-simple-body">' . $this->renderDescription($event['description']) .…
1952 $html .= '</div>'; // item
1957 $html .= '</div>'; // eventlist-simple
1959 return $html;
1969 … $html = '<div class="event-dialog-compact" id="dialog-' . $calId . '" style="display:none;">';
1970 … $html .= '<div class="dialog-overlay" onclick="closeEventDialog(\'' . $calId . '\')"></div>';
1973 $html .= '<div class="dialog-content-sleek" id="dialog-content-' . $calId . '">';
1976 … $html .= '<div class="dialog-header-sleek dialog-drag-handle" id="drag-handle-' . $calId . '">';
1977 $html .= '<h3 id="dialog-title-' . $calId . '">Add Event</h3>';
1978 …$html .= '<button type="button" class="dialog-close-btn" onclick="closeEventDialog(\'' . $calId . …
1979 $html .= '</div>';
1982 …$html .= '<form id="eventform-' . $calId . '" onsubmit="saveEventCompact(\'' . $calId . '\', \'' .…
1985 $html .= '<input type="hidden" id="event-id-' . $calId . '" name="eventId" value="">';
1988 $html .= '<div class="form-field">';
1989 $html .= '<label class="field-label">�� Title</label>';
1990 …$html .= '<input type="text" id="event-title-' . $calId . '" name="title" required class="input-sl…
1991 $html .= '</div>';
1994 $html .= '<div class="form-field">';
1995 $html .= '<label class="field-label">�� Namespace</label>';
1998 … $html .= '<input type="hidden" id="event-namespace-' . $calId . '" name="namespace" value="">';
2001 $html .= '<div class="namespace-search-wrapper">';
2002 …$html .= '<input type="text" id="event-namespace-search-' . $calId . '" class="input-sleek input-c…
2003 …$html .= '<div class="namespace-dropdown" id="event-namespace-dropdown-' . $calId . '" style="disp…
2004 $html .= '</div>';
2008 …$html .= '<script type="application/json" id="namespaces-data-' . $calId . '">' . json_encode($all…
2010 $html .= '</div>';
2013 $html .= '<div class="form-field">';
2014 $html .= '<label class="field-label">�� Description</label>';
2015 …$html .= '<textarea id="event-desc-' . $calId . '" name="description" rows="2" class="input-sleek …
2016 $html .= '</div>';
2019 $html .= '<div class="form-row-group">';
2021 $html .= '<div class="form-field form-field-half">';
2022 $html .= '<label class="field-label-compact">�� Start Date</label>';
2023 $html .= '<div class="date-picker-wrapper">';
2024 … $html .= '<input type="hidden" id="event-date-' . $calId . '" name="date" required value="">';
2025 …$html .= '<button type="button" class="custom-date-picker input-sleek input-compact" id="date-pick…
2026 $html .= '<span class="date-display">Select date</span>';
2027 $html .= '<span class="date-arrow">▼</span>';
2028 $html .= '</button>';
2029 $html .= '<div class="date-dropdown" id="date-dropdown-' . $calId . '"></div>';
2030 $html .= '</div>';
2031 $html .= '</div>';
2033 $html .= '<div class="form-field form-field-half">';
2034 $html .= '<label class="field-label-compact">�� End Date</label>';
2035 $html .= '<div class="date-picker-wrapper">';
2036 $html .= '<input type="hidden" id="event-end-date-' . $calId . '" name="endDate" value="">';
2037 …$html .= '<button type="button" class="custom-date-picker input-sleek input-compact" id="end-date-…
2038 $html .= '<span class="date-display">Optional</span>';
2039 $html .= '<span class="date-arrow">▼</span>';
2040 $html .= '</button>';
2041 $html .= '<div class="date-dropdown" id="end-date-dropdown-' . $calId . '"></div>';
2042 $html .= '</div>';
2043 $html .= '</div>';
2045 $html .= '</div>'; // End row
2048 $html .= '<div class="form-field form-field-checkbox form-field-checkbox-compact">';
2049 $html .= '<label class="checkbox-label checkbox-label-compact">';
2050 …$html .= '<input type="checkbox" id="event-recurring-' . $calId . '" name="isRecurring" class="rec…
2051 $html .= '<span>�� Repeating Event</span>';
2052 $html .= '</label>';
2053 $html .= '</div>';
2056 …$html .= '<div id="recurring-options-' . $calId . '" class="recurring-options" style="display:none…
2059 $html .= '<div class="form-row-group" style="margin-bottom:6px;">';
2061 $html .= '<div class="form-field" style="flex:0 0 auto; min-width:0;">';
2062 $html .= '<label class="field-label-compact">Repeat every</label>';
2063 …$html .= '<input type="number" id="event-recurrence-interval-' . $calId . '" name="recurrenceInter…
2064 $html .= '</div>';
2066 $html .= '<div class="form-field" style="flex:1; min-width:0;">';
2067 $html .= '<label class="field-label-compact">&nbsp;</label>';
2068 …$html .= '<select id="event-recurrence-type-' . $calId . '" name="recurrenceType" class="input-sle…
2069 $html .= '<option value="daily">Day(s)</option>';
2070 $html .= '<option value="weekly">Week(s)</option>';
2071 $html .= '<option value="monthly">Month(s)</option>';
2072 $html .= '<option value="yearly">Year(s)</option>';
2073 $html .= '</select>';
2074 $html .= '</div>';
2076 $html .= '</div>'; // End row 1
2079 …$html .= '<div id="weekly-options-' . $calId . '" class="weekly-options" style="display:none; marg…
2080 …$html .= '<label class="field-label-compact" style="display:block; margin-bottom:4px;">On these da…
2081 $html .= '<div style="display:flex; flex-wrap:wrap; gap:2px;">';
2084 …$html .= '<label style="display:inline-flex; align-items:center; padding:2px 6px; background:var(-…
2085 …$html .= '<input type="checkbox" name="weekDays[]" value="' . $idx . '" style="margin-right:3px; w…
2086 $html .= '<span>' . $day . '</span>';
2087 $html .= '</label>';
2089 $html .= '</div>';
2090 $html .= '</div>'; // End weekly options
2093 …$html .= '<div id="monthly-options-' . $calId . '" class="monthly-options" style="display:none; ma…
2094 …$html .= '<label class="field-label-compact" style="display:block; margin-bottom:4px;">Repeat on:<…
2097 $html .= '<div style="margin-bottom:6px;">';
2098 …$html .= '<label style="display:inline-flex; align-items:center; margin-right:12px; cursor:pointer…
2099 …$html .= '<input type="radio" name="monthlyType" value="dayOfMonth" checked onchange="updateMonthl…
2100 $html .= 'Day of month';
2101 $html .= '</label>';
2102 …$html .= '<label style="display:inline-flex; align-items:center; cursor:pointer; font-size:11px;">…
2103 …$html .= '<input type="radio" name="monthlyType" value="ordinalWeekday" onchange="updateMonthlyTyp…
2104 $html .= 'Weekday pattern';
2105 $html .= '</label>';
2106 $html .= '</div>';
2109 …$html .= '<div id="monthly-day-' . $calId . '" style="display:flex; align-items:center; gap:6px;">…
2110 $html .= '<span style="font-size:11px;">Day</span>';
2111 …$html .= '<input type="number" id="event-month-day-' . $calId . '" name="monthDay" class="input-sl…
2112 $html .= '<span style="font-size:10px; color:var(--text-dim, #666);">of each month</span>';
2113 $html .= '</div>';
2116 $html .= '<div id="monthly-ordinal-' . $calId . '" style="display:none;">';
2117 $html .= '<div style="display:flex; align-items:center; gap:4px; flex-wrap:wrap;">';
2118 …$html .= '<select id="event-ordinal-' . $calId . '" name="ordinalWeek" class="input-sleek input-co…
2119 $html .= '<option value="1">First</option>';
2120 $html .= '<option value="2">Second</option>';
2121 $html .= '<option value="3">Third</option>';
2122 $html .= '<option value="4">Fourth</option>';
2123 $html .= '<option value="5">Fifth</option>';
2124 $html .= '<option value="-1">Last</option>';
2125 $html .= '</select>';
2126 …$html .= '<select id="event-ordinal-day-' . $calId . '" name="ordinalDay" class="input-sleek input…
2127 $html .= '<option value="0">Sunday</option>';
2128 $html .= '<option value="1">Monday</option>';
2129 $html .= '<option value="2">Tuesday</option>';
2130 $html .= '<option value="3">Wednesday</option>';
2131 $html .= '<option value="4">Thursday</option>';
2132 $html .= '<option value="5">Friday</option>';
2133 $html .= '<option value="6">Saturday</option>';
2134 $html .= '</select>';
2135 $html .= '<span style="font-size:10px; color:var(--text-dim, #666);">of each month</span>';
2136 $html .= '</div>';
2137 $html .= '</div>';
2139 $html .= '</div>'; // End monthly options
2142 $html .= '<div class="form-row-group">';
2143 $html .= '<div class="form-field">';
2144 $html .= '<label class="field-label-compact">Repeat Until (optional)</label>';
2145 …$html .= '<input type="date" id="event-recurrence-end-' . $calId . '" name="recurrenceEnd" class="…
2146 …$html .= '<div style="font-size:9px; color:var(--text-dim, #666); margin-top:2px;">Leave empty for…
2147 $html .= '</div>';
2148 $html .= '</div>'; // End row 4
2150 $html .= '</div>'; // End recurring options
2153 $html .= '<div class="form-row-group">';
2155 $html .= '<div class="form-field form-field-half">';
2156 $html .= '<label class="field-label-compact">�� Start Time</label>';
2157 $html .= '<div class="time-picker-wrapper">';
2159 $html .= '<input type="hidden" id="event-time-' . $calId . '" name="time" value="">';
2160 …$html .= '<button type="button" class="custom-time-picker input-sleek input-compact" id="time-pick…
2161 $html .= '<span class="time-display">All day</span>';
2162 $html .= '<span class="time-arrow">▼</span>';
2163 $html .= '</button>';
2164 $html .= '<div class="time-dropdown" id="time-dropdown-' . $calId . '"></div>';
2165 $html .= '</div>';
2166 $html .= '</div>';
2168 $html .= '<div class="form-field form-field-half">';
2169 $html .= '<label class="field-label-compact">�� End Time</label>';
2170 $html .= '<div class="time-picker-wrapper">';
2172 $html .= '<input type="hidden" id="event-end-time-' . $calId . '" name="endTime" value="">';
2173 …$html .= '<button type="button" class="custom-time-picker input-sleek input-compact" id="end-time-…
2174 $html .= '<span class="time-display">Same as start</span>';
2175 $html .= '<span class="time-arrow">▼</span>';
2176 $html .= '</button>';
2177 $html .= '<div class="time-dropdown" id="end-time-dropdown-' . $calId . '"></div>';
2178 $html .= '</div>';
2179 $html .= '</div>';
2181 $html .= '</div>'; // End row
2184 $html .= '<div class="form-row-group">';
2186 $html .= '<div class="form-field form-field-full">';
2187 $html .= '<label class="field-label-compact">�� Color</label>';
2188 $html .= '<div class="color-picker-wrapper">';
2189 …$html .= '<select id="event-color-' . $calId . '" name="color" class="input-sleek input-compact co…
2190 $html .= '<option value="#3498db" style="background:#3498db;color:white">�� Blue</option>';
2191 $html .= '<option value="#2ecc71" style="background:#2ecc71;color:white">�� Green</option>';
2192 $html .= '<option value="#e74c3c" style="background:#e74c3c;color:white">�� Red</option>';
2193 … $html .= '<option value="#f39c12" style="background:#f39c12;color:white">�� Orange</option>';
2194 … $html .= '<option value="#9b59b6" style="background:#9b59b6;color:white">�� Purple</option>';
2195 $html .= '<option value="#e91e63" style="background:#e91e63;color:white">�� Pink</option>';
2196 $html .= '<option value="#1abc9c" style="background:#1abc9c;color:white">�� Teal</option>';
2197 $html .= '<option value="custom">�� Custom...</option>';
2198 $html .= '</select>';
2199 …$html .= '<input type="color" id="event-color-custom-' . $calId . '" class="color-picker-input col…
2200 $html .= '</div>';
2201 $html .= '</div>';
2203 $html .= '</div>'; // End row
2206 $html .= '<div class="form-field form-field-checkbox form-field-checkbox-compact">';
2207 $html .= '<label class="checkbox-label checkbox-label-compact">';
2208 …$html .= '<input type="checkbox" id="event-is-task-' . $calId . '" name="isTask" class="task-toggl…
2209 $html .= '<span>�� This is a task (can be checked off)</span>';
2210 $html .= '</label>';
2211 $html .= '</div>';
2214 $html .= '<div class="dialog-actions-sleek">';
2215 …$html .= '<button type="button" class="btn-sleek btn-cancel-sleek" onclick="closeEventDialog(\'' .…
2216 $html .= '<button type="submit" class="btn-sleek btn-save-sleek">�� Save</button>';
2217 $html .= '</div>';
2219 $html .= '</form>';
2220 $html .= '</div>';
2221 $html .= '</div>';
2223 return $html;
2234 …$html = '<div class="month-picker-overlay ' . $themeClass . '" id="month-picker-overlay-' . $calId…
2235 $html .= '<div class="month-picker-dialog" onclick="event.stopPropagation();">';
2236 $html .= '<h4>Jump to Month</h4>';
2238 $html .= '<div class="month-picker-selects">';
2239 $html .= '<select id="month-picker-month-' . $calId . '" class="month-picker-select">';
2243 … $html .= '<option value="' . $m . '"' . $selected . '>' . $monthNames[$m - 1] . '</option>';
2245 $html .= '</select>';
2247 $html .= '<select id="month-picker-year-' . $calId . '" class="month-picker-select">';
2251 $html .= '<option value="' . $y . '"' . $selected . '>' . $y . '</option>';
2253 $html .= '</select>';
2254 $html .= '</div>';
2256 $html .= '<div class="month-picker-actions">';
2257 …$html .= '<button class="btn-sleek btn-cancel-sleek" onclick="closeMonthPicker(\'' . $calId . '\')…
2258 …$html .= '<button class="btn-sleek btn-save-sleek" onclick="jumpToSelectedMonth(\'' . $calId . '\'…
2259 $html .= '</div>';
2261 $html .= '</div>';
2262 $html .= '</div>';
2264 return $html;
2394 foreach ($tokens as $i => $html) {
2395 $rendered = str_replace("\x00TOKEN" . $i . "\x00", $html, $rendered);
2696 …$html = '<div class="sidebar-widget ' . $themeClass . '" id="sidebar-widget-' . $calId . '" style=…
2700 $html .= '<style>
2729 $html .= '<style>
2773 $html .= '<script>
2826 $html .= '<script>
3048 …$html .= '<div class="eventlist-today-header" style="background:' . $themeStyles['header_bg'] . ';…
3049 …$html .= '<span class="eventlist-today-clock" id="clock-' . $calId . '" style="color:' . $themeSty…
3050 $html .= '<div class="eventlist-bottom-info">';
3051 …$html .= '<span class="eventlist-weather"><span id="weather-icon-' . $calId . '">��️</span> <span …
3052 …$html .= '<span class="eventlist-today-date" style="color:' . $themeStyles['text_dim'] . ';">' . $…
3053 $html .= '</div>';
3058 $html .= '<div class="eventlist-stats-container">';
3061 …$html .= '<div class="eventlist-cpu-bar" style="background:' . $themeStyles['cell_today_bg'] . ' !…
3062 …$html .= '<div class="eventlist-cpu-fill" id="cpu-5min-' . $calId . '" style="width: 0%; backgroun…
3063 …$html .= '<div class="system-tooltip" id="tooltip-green-' . $calId . '" style="display:none;"></di…
3064 $html .= '</div>';
3067 …$html .= '<div class="eventlist-cpu-bar eventlist-cpu-realtime" style="background:' . $themeStyles…
3068 …$html .= '<div class="eventlist-cpu-fill eventlist-cpu-fill-purple" id="cpu-realtime-' . $calId . …
3069 …$html .= '<div class="system-tooltip" id="tooltip-purple-' . $calId . '" style="display:none;"></d…
3070 $html .= '</div>';
3073 …$html .= '<div class="eventlist-cpu-bar eventlist-mem-realtime" style="background:' . $themeStyles…
3074 …$html .= '<div class="eventlist-cpu-fill eventlist-cpu-fill-orange" id="mem-realtime-' . $calId . …
3075 …$html .= '<div class="system-tooltip" id="tooltip-orange-' . $calId . '" style="display:none;"></d…
3076 $html .= '</div>';
3078 $html .= '</div>';
3080 $html .= '</div>';
3095 …$html .= '<div style="background:' . $addBtnBg . '; padding:0; margin:0; height:12px; line-height:…
3097 …$html .= '<span style="color:' . $addBtnTextColor . '; font-size:8px; font-weight:700; letter-spac…
3098 $html .= '</div>';
3101 $html .= $this->renderWeekGrid($weekEvents, $weekStart, $themeStyles, $theme);
3150 …$html .= '<div id="itinerary-bar-' . $calId . '" style="background:' . $itineraryBg . '; padding:0…
3151 …$html .= '<span id="itinerary-arrow-' . $calId . '" style="color:' . $itineraryTextColor . '; font…
3152 …$html .= '<span style="color:' . $itineraryTextColor . '; font-size:8px; font-weight:700; letter-s…
3153 $html .= '</div>';
3156 …$html .= '<div id="itinerary-content-' . $calId . '" style="transition:max-height 0.3s ease-out, o…
3160 …$html .= $this->renderSidebarSection('Today', $todayEvents, $todayColor, $calId, $themeStyles, $th…
3165 …$html .= $this->renderSidebarSection('Tomorrow', $tomorrowEvents, $tomorrowColor, $calId, $themeSt…
3170 …$html .= $this->renderSidebarSection('Important Events', $importantEvents, $importantColor, $calId…
3175 …$html .= '<div style="padding:8px; text-align:center; color:' . $themeStyles['text_dim'] . '; font…
3178 $html .= '</div>'; // Close itinerary-content
3187 $html .= '<script>
3233 $html .= '</div>';
3236 $html .= $this->renderEventDialog($calId, $namespace, $theme);
3239 $html .= '<script>
3278 return $html;
3289 …$html = '<div style="display:grid; grid-template-columns:repeat(7, 1fr); gap:1px; background:' . $…
3333 …$html .= '<div style="background:' . $bgColor . '; padding:4px 2px; text-align:center; min-height:…
3337 …$html .= '<div style="font-size:9px; color:' . $dayLetterColor . '; font-weight:500; font-family:s…
3340 …$html .= '<div style="font-size:12px; color:' . $textColor . '; font-weight:' . $fontWeight . '; m…
3349 …$html .= '<div style="height:2px; background:' . htmlspecialchars($color) . '; margin:1px 0; borde…
3355 …$html .= '<div style="font-size:7px; color:' . $moreTextColor . '; margin-top:1px; font-family:sys…
3359 $html .= '</div>';
3362 $html .= '</div>';
3378 …$html .= '<div id="selected-day-events-' . $calId . '" style="display:none; margin:8px 4px; border…
3380 …$html .= '<div style="background:' . $panelHeaderBg . '; color:' . $panelHeaderColor . '; padding:…
3381 $html .= '<span id="selected-day-title-' . $calId . '"></span>';
3382 …$html .= '<span onclick="document.getElementById(\'selected-day-events-' . $calId . '\').style.dis…
3384 …$html .= '<div style="background:' . $panelHeaderBg . ' !important; color:' . $panelHeaderColor . …
3385 $html .= '<span id="selected-day-title-' . $calId . '"></span>';
3386 …$html .= '<span onclick="document.getElementById(\'selected-day-events-' . $calId . '\').style.dis…
3388 $html .= '</div>';
3389 …$html .= '<div id="selected-day-content-' . $calId . '" style="padding:4px 0; background:' . $pane…
3390 $html .= '</div>';
3393 $html .= '<script>';
3396 $html .= 'window.weekEventsData_' . $jsCalId . ' = ' . json_encode($weekEvents) . ';';
3414 $html .= 'window.themeColors_' . $jsCalId . ' = ' . $jsThemeColors . ';';
3415 $html .= '
3515 $html .= '</script>';
3517 return $html;
3583 …$html = '<div style="display:flex; margin:8px 4px; box-shadow:' . $sectionShadow . '; background:'…
3584 … $html .= '<div style="width:3px; flex-shrink:0; background:' . $borderColor . ';"></div>';
3585 $html .= '<div style="flex:1; min-width:0;">';
3587 …$html = '<div style="border-left:3px solid ' . $borderColor . ' !important; margin:8px 4px; box-sh…
3596 …$html .= '<div style="background:' . $accentColor . '; color:' . $headerTextColor . '; padding:4px…
3599 …$html .= '<div style="background:' . $accentColor . ' !important; color:' . $headerTextColor . ' !…
3601 $html .= htmlspecialchars($title);
3602 $html .= '</div>';
3605 $html .= '<div style="padding:4px 0;">';
3608 …$html .= $this->renderSidebarEvent($event, $calId, $showDate, $accentColor, $themeStyles, $theme, …
3611 $html .= '</div>';
3612 $html .= '</div>';
3614 $html .= '</div>'; // Close flex wrapper
3617 return $html;
3697 …$html = '<div style="padding:4px 6px; border-bottom:1px solid ' . $borderColor . ' !important; fon…
3701 …$html .= '<div style="width:3px; align-self:stretch; background:' . $eventColor . '; border-radius…
3704 $html .= '<div style="flex:1; min-width:0;">';
3707 …$html .= '<div style="font-weight:600; color:' . $titleColor . '; word-wrap:break-word; font-famil…
3711 …$html .= '<span style="color:' . $timeColor . '; font-weight:500; font-size:9px;">' . htmlspecialc…
3718 … $html .= '<span style="font-size:11px; color:' . $checkColor . ';">' . $checkIcon . '</span> ';
3723 $html .= '<span style="font-size:9px;" title="Important">⭐</span> ';
3726 $html .= $title; // Already HTML-escaped on line 2625
3731 …$html .= ' <span class="event-conflict-badge" style="font-size:10px;" data-conflicts="' . $conflic…
3734 $html .= '</div>';
3743 …$html .= '<div style="font-size:8px; color:' . $dateColor . '; font-weight:500; margin-top:2px; ' …
3746 $html .= '</div>';
3747 $html .= '</div>';
3749 return $html;