@propriety/court-calendar 1.0.165 → 1.0.166
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/__tests__/DayTypeChips.test.d.ts +1 -0
- package/dist/__tests__/helpers/dayTypeCounts.test.d.ts +1 -0
- package/dist/_components/DayTypeChips.d.ts +16 -0
- package/dist/court-calendar.css +1 -1
- package/dist/helpers/dayTypeCounts.d.ts +54 -0
- package/dist/hooks/UseCalendarEvents.d.ts +1 -0
- package/dist/index.mjs +7019 -6945
- package/dist/theme/tokens.d.ts +15 -0
- package/package.json +1 -1
- package/src/__tests__/DayTypeChips.test.tsx +57 -0
- package/src/__tests__/helpers/dayTypeCounts.test.ts +145 -0
- package/src/__tests__/hooks/UseCalendarEventsUploadMarkers.test.ts +76 -3
- package/src/_components/CCalendar.css +81 -0
- package/src/_components/CCalendar.tsx +25 -1
- package/src/_components/CalendarPrint.css +7 -0
- package/src/_components/DayTypeChips.tsx +38 -0
- package/src/helpers/dayTypeCounts.ts +107 -0
- package/src/hooks/UseCalendarEvents.ts +23 -0
- package/src/theme/tokens.ts +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DayTypeChip } from '../helpers/dayTypeCounts';
|
|
2
|
+
/**
|
|
3
|
+
* The breakdown row in a month day cell's header, beside the day number.
|
|
4
|
+
*
|
|
5
|
+
* Always on. Collapsed, a chip is a colour swatch and a count — the same swatch language
|
|
6
|
+
* as CalendarLegend, scaled down to fit the day-number line. Hovering one chip expands its
|
|
7
|
+
* label; the row never wraps, so the others slide along and clip rather than dropping to a
|
|
8
|
+
* second line. All of that is CSS (see .cc-day-chips in CCalendar.css); this stays a plain
|
|
9
|
+
* DOM tree with no hooks or context so it can be tested without rendering FullCalendar.
|
|
10
|
+
*
|
|
11
|
+
* Rendered through FullCalendar's `dayCellContent`, which portals it back into the app's
|
|
12
|
+
* own React tree — but it takes everything it needs as props, so that never matters here.
|
|
13
|
+
*/
|
|
14
|
+
export default function DayTypeChips({ chips }: {
|
|
15
|
+
chips: DayTypeChip[];
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
package/dist/court-calendar.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.pop-in-ccalendar-event{opacity:0;transform:scale(.8);transform-origin:center center;animation:popInBounce .4s cubic-bezier(.34,1.56,.64,1) forwards;will-change:opacity,transform}@keyframes popInBounce{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}#ccalendar-container *::-webkit-scrollbar{width:8px;background:var(--bg)}#ccalendar-container *::-webkit-scrollbar-thumb{background:var(--fc-border-color);border-radius:4px}#ccalendar-container *::-webkit-scrollbar-track{background:var(--bg)}#ccalendar-container *::-webkit-scrollbar-corner{background:var(--bg)}#ccalendar-container .MuiDataGrid-row:hover,#ccalendar-container .MuiDataGrid-row:hover>.MuiDataGrid-cell{background-color:var(--fc-today-bg-color)!important}.court-calendar a{color:var(--text)!important;text-decoration:none!important}.month-day-cell{background-color:var(--bg);color:var(--text);cursor:pointer;height:120px;padding:3px!important;position:relative}.month-day-cell.fc-day-other{filter:brightness(.9)}.month-day-cell.fc-day-today{background-color:var(--fc-today-bg-color)}.month-day-cell.overbooked-day{box-shadow:inset 0 0 0 2px #dc262673;background-color:#dc26260f}.month-day-cell.overbooked-day.fc-day-today{background-color:var(--fc-today-bg-color)}.month-day-cell:hover:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--fc-today-bg-color);opacity:.5;pointer-events:none}.day-header{background-color:var(--bg);color:var(--text);border-bottom:1px solid var(--fc-border-color)}.day-header a{padding:6px 4px!important;display:inline-block}.court-calendar th[role=presentation]{background-color:var(--bg)}.day-cell-allday{background-color:var(--bg)!important;color:var(--text)!important}.fc-daygrid-day-events{max-height:100px;min-height:100px;overflow-y:inherit;margin:0!important;overflow-y:auto;scrollbar-color:var(--fc-border-color) transparent}.fc-day-today .fc-daygrid-day-events{scrollbar-color:var(--fc-event-unknown-color) transparent}.court-calendar .fc-timegrid-slot-label{background-color:var(--bg);color:var(--text)}.court-calendar .fc-timegrid-axis{border-color:var(--fc-border-color);background-color:var(--bg);color:var(--text)}.court-calendar .fc-timegrid-divider{border-color:var(--fc-border-color);background-color:var(--bg)}.fc .fc-button,.fc-button{background-color:var(--bg);color:var(--text);border:1px solid var(--fc-border-color);font-family:Roboto,Helvetica,Arial,"sans-serif";padding:.25rem .5rem;cursor:pointer}:is(.fc .fc-button,.fc-button).fc-button-primary{background-color:var(--bg);color:var(--text);border:1px solid var(--fc-border-color)}:is(.fc .fc-button,.fc-button).fc-button-active.fc-button-primary{background-color:var(--fc-today-bg-color);color:var(--text)}:is(.fc .fc-button,.fc-button):hover{background-color:var(--fc-today-bg-color)}.fc.fc-media-screen{background-color:var(--bg);color:var(--text);font-family:Roboto,Helvetica,Arial,"sans-serif"}.CCButton{background-color:var(--bg);color:var(--text);border:1px solid var(--fc-border-color);font-family:Roboto,Helvetica,Arial,"sans-serif";padding:8px 16px;margin-right:8px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.CCButton:hover{background-color:var(--fc-today-bg-color)}.CCButton-Icon{min-width:35px;max-width:35px;min-height:35px;max-height:35px;border:none;padding:0;display:flex;align-items:center;justify-content:center}.CCDropdown-Button{width:75px}.CCDropdown-Menu{background-color:var(--bg);color:var(--text);border:1px solid var(--fc-border-color);font-family:Roboto,Helvetica,Arial,"sans-serif";box-shadow:0 2px 8px #00000026}.CCDropdown-Menu div{padding:8px 19px}.CCDropdown-Menu div:hover{background-color:var(--fc-today-bg-color)}.CCButton-Primary{background-color:#1976d2;color:#fff;border:none}.CCButton-Primary:hover{background-color:#1565c0}.CCButton-Error{background-color:#c15a5a;color:#fff;border:none}.CCButton-Error:hover{background-color:#953838}.ccdisabled{pointer-events:none;opacity:.6}.switch-track{outline:2px solid var(--fc-border-color)}.ccalendar-list-row{cursor:pointer;transition:background-color .2s ease-in-out}.CCAvatarIcon:hover{cursor:pointer;transform:scale(1.1);box-shadow:0 4px 8px #0003}#event-tooltip{background-color:var(--text);color:var(--bg);border:1px solid var(--fc-border-color);border-radius:4px;padding:8px;box-shadow:0 4px 8px #00000026;z-index:9999;font-size:16px}.court-event{cursor:pointer;padding:4px 2px}.fc-list .fc-list-day-cushion{background-color:var(--bg)!important;color:var(--text)}.fc-list .fc-list-event:hover td{background-color:var(--fc-today-bg-color)!important}.fc-list .deadline-event .fc-list-event-dot{border:none;width:1em;height:1em;vertical-align:middle;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><circle cx="8" cy="8" r="8" fill="%2300c853"/><path d="M4 8l3 3 5-5" stroke="white" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat center center;background-size:contain}.fc-list .deadline-event.inperson{--color: var(--fc-event-inperson-color)}.fc-list .deadline-event.virtual{--color: var(--fc-event-virtual-color)}.fc-list .deadline-event.unknown{--color: var(--fc-event-unknown-color)}.fc-list .deadline-event.negotiations{--color: var(--fc-event-negotiations-color)}.fc-list .deadline-event.collections{--color: var(--fc-event-collections-color)}.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event{background-color:transparent!important;border-color:transparent!important;display:flex;align-items:center;overflow-x:hidden;position:relative}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event) .fc-event-title{color:var(--text)!important}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).inperson{--color: var(--fc-event-inperson-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).virtual{--color: var(--fc-event-virtual-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).unknown{--color: var(--fc-event-unknown-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).negotiations{--color: var(--fc-event-negotiations-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).collections{--color: var(--fc-event-collections-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).adjourned-no-date{--color: rgb(151, 11, 134) !important}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).status-uploaded:before{content:"";display:inline-block;width:1em;height:1em;vertical-align:middle;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><circle cx="8" cy="8" r="8" fill="%2300c853"/><path d="M4 8l3 3 5-5" stroke="white" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat center center;background-size:contain;margin:0 4px 0 0;top:.5em;border:none;position:absolute}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).status-uploaded .fc-event-main{margin-left:1.5em!important}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event):not(.status-uploaded):before{content:"";display:inline-block;border-radius:calc(var(--fc-daygrid-event-dot-width) / 2);box-sizing:content-box;height:0px;margin:0 4px;width:0px;border:calc(var(--fc-daygrid-event-dot-width) / 2) solid var(--color)}.courtdate-event,.adjournment-event,.multipledate-event{border:1px solid var(--fc-border-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event) .fc-event-title,:is(.courtdate-event,.adjournment-event,.multipledate-event) .fc-event-time{color:#fff!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).inperson{background-color:var(--fc-event-inperson-color)!important;border-color:var(--fc-event-inperson-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).virtual{background-color:var(--fc-event-virtual-color)!important;border-color:var(--fc-event-virtual-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).unknown{background-color:var(--fc-event-unknown-color)!important;border-color:var(--fc-event-unknown-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).negotiations{background-color:var(--fc-event-negotiations-color)!important;border-color:var(--fc-event-negotiations-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).collections{background-color:var(--fc-event-collections-color)!important;border-color:var(--fc-event-collections-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event) .fc-daygrid-event-dot,:is(.courtdate-event,.adjournment-event,.multipledate-event) .fc-list-event-dot{display:none}:is(.courtdate-event,.adjournment-event,.multipledate-event).adjourned-no-date{border-color:#970b86!important;background-color:#970b86!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).scar-overbooked{border-color:var(--fc-event-overbooked-color)!important;background-color:var(--fc-event-overbooked-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).adjourned-no-date.scar-overbooked{background-image:linear-gradient(to right,rgb(151,11,134) 0 30%,var(--fc-event-overbooked-color) 70% 100%)!important}.village-date.courtdate-event,.village-date.adjournment-event,.village-date.multipledate-event{border:2px solid #f59e0b!important}.deadline-due-today.courtdate-event,.deadline-due-today.multipledate-event{border:2px solid #d32f2f!important;outline:1px solid #d32f2f}.deadline-due-today.courtdate-event .fc-event-main,.deadline-due-today.multipledate-event .fc-event-main{position:relative}.deadline-due-today.courtdate-event .fc-event-main:after,.deadline-due-today.multipledate-event .fc-event-main:after{content:"!";position:absolute;top:0;right:2px;background:#d32f2f;color:#fff;border-radius:50%;width:14px;height:14px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:99999}.fc-view:not(.fc-list) .deadline-due-today.deadline-event{border:2px solid #d32f2f!important;border-radius:2px;padding-bottom:2px}.fc-view:not(.fc-list) .deadline-due-today.deadline-event .fc-event-title{color:#d32f2f!important;font-weight:700}.fc-view:not(.fc-list) .deadline-due-today.deadline-event:after{content:"!";position:absolute;left:2px;top:.7em;background:#d32f2f;color:#fff;border-radius:50%;width:14px;height:14px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:99999}@keyframes overdueFlash{0%,to{border-color:#b71c1c!important;box-shadow:0 0 #b71c1c00}50%{border-color:#ff1744!important;box-shadow:0 0 8px 3px #ff174499}}.deadline-overdue.courtdate-event,.deadline-overdue.multipledate-event{border:2px solid #b71c1c!important;animation:overdueFlash 1.8s ease-in-out infinite!important}.deadline-overdue.courtdate-event .fc-event-main,.deadline-overdue.multipledate-event .fc-event-main{position:relative}.deadline-overdue.courtdate-event .fc-event-main:after,.deadline-overdue.multipledate-event .fc-event-main:after{content:"⚠";position:absolute;top:0;right:2px;background:#b71c1c;color:#fff;border-radius:50%;width:16px;height:16px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:5}.fc-view:not(.fc-list) .deadline-overdue.deadline-event{border:2px solid #b71c1c!important;border-radius:2px;padding-bottom:2px;animation:overdueFlash 1.8s ease-in-out infinite!important}.fc-view:not(.fc-list) .deadline-overdue.deadline-event .fc-event-title{color:#b71c1c!important;font-weight:700}.fc-view:not(.fc-list) .deadline-overdue.deadline-event:after{content:"⚠";position:absolute;left:2px;top:.5em;background:#b71c1c;color:#fff;border-radius:50%;width:14px;height:14px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:99999}#ccalendar-toolbar{position:relative}#ccalendar-header{box-shadow:0 2px 12px #00000012;position:relative}#ccalendar-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--cc-gradient);opacity:.55;pointer-events:none}#ccalendar-nav .MuiTypography-h6{background:var(--cc-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700!important}#ccalendar-toolbar .MuiButton-outlined:not([disabled]),#ccalendar-nav .MuiButton-outlined:not([disabled]){border:1.5px solid transparent!important;background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--cc-gradient) border-box!important;transition:box-shadow .15s ease!important}#ccalendar-toolbar .MuiButton-outlined:not([disabled]):hover,#ccalendar-nav .MuiButton-outlined:not([disabled]):hover{background:linear-gradient(var(--fc-today-bg-color),var(--fc-today-bg-color)) padding-box,var(--cc-gradient) border-box!important;box-shadow:0 0 8px 1px var(--cc-glow-purple)!important}.month-day-cell.fc-day-today{background-image:linear-gradient(135deg,#3b82f612,#8b5cf612,#06b6d40d)}.courtdate-event,.adjournment-event,.multipledate-event{border-radius:4px!important;transition:filter .12s ease,box-shadow .12s ease!important}.courtdate-event:hover,.adjournment-event:hover,.multipledate-event:hover{filter:brightness(1.1)!important;box-shadow:0 2px 10px #0000004d!important;z-index:5}#event-tooltip{border:1.5px solid transparent!important;background:linear-gradient(var(--text),var(--text)) padding-box,var(--cc-gradient) border-box!important;box-shadow:0 0 14px 2px #8b5cf638,0 4px 18px #00000047!important;border-radius:10px!important;padding:0!important;font-size:16px!important;font-family:Roboto,Helvetica,Arial,sans-serif!important;min-width:240px!important;max-width:340px!important}#event-tooltip .tt-card{padding:14px 16px}#event-tooltip .tt-title{font-size:17px;font-weight:700;line-height:1.3;margin-bottom:4px}#event-tooltip .tt-date{font-size:15px;opacity:.7;margin-bottom:8px}#event-tooltip .tt-badge{display:inline-block;padding:3px 9px;border-radius:4px;font-size:13px;font-weight:600;letter-spacing:.03em;margin-bottom:8px}#event-tooltip .tt-badge--blue{background:#3b82f659}#event-tooltip .tt-badge--purple{background:#8b5cf659}#event-tooltip .tt-badge--amber{background:#f59e0b59}#event-tooltip .tt-badge--cyan{background:#06b6d459}#event-tooltip .tt-badge--red{background:#dc262659}#event-tooltip .tt-divider{height:1px;background:#80808047;margin:8px 0}#event-tooltip .tt-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:15px}#event-tooltip .tt-label{opacity:.58;white-space:nowrap;line-height:1.5}#event-tooltip .tt-value{font-weight:500;line-height:1.5}#event-tooltip .tt-footer{font-size:13px;opacity:.42;text-align:center;margin-top:8px;padding-top:6px;border-top:1px solid rgba(128,128,128,.22)}#ccalendar-nav .MuiToggleButtonGroup-root .MuiToggleButton-root{color:#1976d2;border:1.5px solid transparent!important;background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--cc-gradient) border-box!important;transition:box-shadow .15s ease!important}#ccalendar-nav .MuiToggleButtonGroup-root .MuiToggleButton-root:hover{color:#1976d2!important;background:linear-gradient(var(--fc-today-bg-color),var(--fc-today-bg-color)) padding-box,var(--cc-gradient) border-box!important;box-shadow:0 0 8px 1px var(--cc-glow-purple)!important}#ccalendar-nav .MuiToggleButtonGroup-root .MuiToggleButton-root.Mui-selected{background:linear-gradient(var(--fc-today-bg-color),var(--fc-today-bg-color)) padding-box,var(--cc-gradient) border-box!important}#ccalendar-nav .MuiToggleButtonGroup-root .MuiToggleButton-root:not(.Mui-selected){color:#4397ecde}#ccalendar-toolbar .MuiToggleButton-root:hover:not(.Mui-selected){background-color:var(--fc-today-bg-color)!important}#ccalendar-toolbar .cc-more-btn-open{border:1.5px solid transparent!important;background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--cc-gradient) border-box!important}.modal-footer .MuiButton-containedPrimary{background-image:var(--cc-gradient)!important;box-shadow:0 0 10px 1px var(--cc-glow-purple),0 2px 6px #0000002e!important;transition:opacity .15s ease,box-shadow .15s ease!important}.modal-footer .MuiButton-containedPrimary:hover:not([disabled]){background-image:var(--cc-gradient)!important;opacity:.9;box-shadow:0 0 16px 2px var(--cc-glow-purple),0 2px 8px #00000038!important}.modal-footer .MuiButton-containedPrimary{text-shadow:0 1px 3px rgba(0,0,0,.35)!important}@page{size:landscape;margin:.5in}@media print{#ccalendar-container>.MuiStack-root:first-child,#event-tooltip,.ReactModal__Overlay,.MuiDataGrid-footerContainer{display:none!important}#ccalendar-container{width:100%!important;overflow:visible!important;padding-top:10px}.fc.fc-media-screen,.fc .fc-scrollgrid,.fc .fc-scrollgrid-section>td,.fc .fc-daygrid-body,.fc table{width:100%!important;max-width:100%!important}.fc .fc-scrollgrid{overflow:visible!important}.fc colgroup col{width:auto!important}.fc-daygrid-day-events{max-height:none!important;min-height:auto!important;overflow:visible!important}.month-day-cell{height:auto!important}#ccalendar-container .MuiDataGrid-root{height:auto!important;max-height:none!important}#ccalendar-container .MuiDataGrid-virtualScroller{overflow:visible!important;height:auto!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}@keyframes cc-crt-body{0%{transform:translate(0);filter:none;opacity:1}3%{filter:brightness(.85);opacity:.85}6%{filter:none;opacity:1}9%{filter:brightness(1.12);opacity:.75}12%{transform:translate(0);filter:none;opacity:1}15%{transform:translate(0);filter:blur(.5px) hue-rotate(80deg) brightness(.95);opacity:.95}18%{transform:translate(-3px) skew(-1.5deg);filter:blur(1px) hue-rotate(100deg) saturate(1.5);opacity:.9}22%{transform:translate(3px) skew(1.5deg);filter:blur(.5px) hue-rotate(90deg) brightness(1.1);opacity:.95}25%{transform:translate(0);filter:blur(1.5px) hue-rotate(110deg) saturate(1.8);opacity:.85}28%{transform:translate(-5px,1px) skew(-2deg);filter:blur(2px) hue-rotate(130deg) contrast(1.3);opacity:.8}31%{transform:translate(5px,-1px) skew(2deg);filter:blur(1px) hue-rotate(90deg) brightness(1.2);opacity:.88}35%{transform:translate(0);filter:blur(2px) hue-rotate(100deg) saturate(1.2);opacity:.75}38%{transform:translate(-8px,2px) skew(-4deg);filter:blur(3px) hue-rotate(160deg) contrast(1.6);opacity:.6}39%{transform:translate(8px,-2px) skew(4deg);filter:blur(1.5px) hue-rotate(60deg) brightness(1.4);opacity:.75}43%{transform:translate(-2px,1px);filter:blur(3.5px) grayscale(.2) saturate(.8);opacity:.65}47%{filter:blur(2px) brightness(.35);opacity:.18}50%{transform:translate(0);filter:blur(4px) grayscale(.4) contrast(1.4);opacity:.7}53%{transform:translate(-6px,2px) skew(-3deg);filter:blur(3px) grayscale(.3) hue-rotate(180deg);opacity:.55}55%{transform:translate(6px,-2px) skew(3deg);filter:blur(2px) brightness(1.5) contrast(1.8);opacity:.7}58%{transform:translate(0);filter:blur(5px) grayscale(.6) brightness(.6);opacity:.5}60%{filter:blur(4px) brightness(.25);opacity:.12}62%{filter:blur(3px) brightness(1.2);opacity:.6}65%{transform:translate(-10px,3px) skew(-5deg);filter:blur(6px) grayscale(.7) contrast(1.5);opacity:.45}66%{transform:translate(10px,-3px) skew(5deg);filter:blur(3px) grayscale(.5) brightness(1.8);opacity:.6}70%{transform:translate(-4px,2px);filter:blur(7px) grayscale(.8) saturate(.2);opacity:.35}73%{filter:blur(6px) brightness(.18);opacity:.08}75%{transform:translate(0);filter:blur(6px) grayscale(.85) brightness(.5);opacity:.4}78%{transform:translate(-12px,4px) skew(-6deg);filter:blur(8px) grayscale(.9) contrast(2);opacity:.3}79%{transform:translate(12px,-4px) skew(6deg);filter:blur(4px) grayscale(.7) brightness(1.6);opacity:.45}84%{transform:translate(-3px,1px);filter:blur(9px) grayscale(.95) brightness(.35);opacity:.2}88%{filter:blur(8px) brightness(.08);opacity:.04}90%{transform:translate(0);filter:blur(10px) grayscale(1) brightness(.25);opacity:.14}95%{transform:translate(0);filter:blur(12px) grayscale(1) brightness(.1);opacity:.05}to{transform:translate(0);filter:blur(14px) grayscale(1) brightness(0);opacity:0}}@keyframes cc-crt-scanlines{0%{opacity:0;background-position-y:0px}14%{opacity:0;background-position-y:0px}22%{opacity:.28;background-position-y:-4px}42%{opacity:.5;background-position-y:-18px}67%{opacity:.72;background-position-y:-42px}88%{opacity:.88;background-position-y:-66px}to{opacity:1;background-position-y:-84px}}@keyframes cc-crt-vignette{0%{opacity:0}22%{opacity:.25}to{opacity:.88}}.cc-glitch-active{position:relative;animation:cc-crt-body 2s linear forwards;pointer-events:none;overflow:hidden}.cc-glitch-active:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,rgba(0,0,0,.1) 2px,rgba(0,0,0,.1) 4px);z-index:9999;pointer-events:none;animation:cc-crt-scanlines 2s linear forwards}.cc-glitch-active:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.6) 100%);z-index:9998;pointer-events:none;animation:cc-crt-vignette 2s linear forwards}@keyframes cc-humphrey-appear{0%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}4%{color:red;text-shadow:0 0 30px #ff0000,0 0 60px #ff0000;opacity:.9;transform:skew(-8deg)}6%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}9%{color:red;text-shadow:0 0 20px #ff0000;opacity:.7;transform:skew(5deg)}11%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}14%{color:#ff2020;text-shadow:2px 0 0 #ff0000,-2px 0 0 #00ffff;opacity:1;transform:skew(-4deg)}17%{color:#dc143c;text-shadow:0 0 12px #dc143c;opacity:.4;transform:skew(2deg)}20%{color:#ff2020;text-shadow:4px 0 0 #ff0000,-4px 0 0 #00ffff;opacity:1;transform:skew(-6deg)}23%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}26%{color:#ff2020;text-shadow:0 0 8px #ff0000;opacity:.8;transform:skew(3deg)}30%{color:#ff2020;text-shadow:3px 0 0 #ff0000,-3px 0 0 #00ffff;opacity:1;transform:skew(-3deg)}34%{color:#dc143c;text-shadow:0 0 6px #dc143c,0 0 14px #dc143c50;opacity:.6;transform:skew(0)}38%{color:#ff2020;text-shadow:1px 0 0 #ff0000,-1px 0 0 #00ffff;opacity:1;transform:skew(-2deg)}43%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}45%{color:#ff1010;text-shadow:0 0 10px #ff0000;opacity:.9;transform:skew(4deg)}48%{color:#dc143c;text-shadow:0 0 4px #dc143c;opacity:.7;transform:skew(-1deg)}53%{color:#ff2020;text-shadow:2px 0 0 #ff0000,-2px 0 0 #00ffff;opacity:1;transform:skew(2deg)}57%{color:#dc143c;text-shadow:0 0 6px #dc143c;opacity:.85;transform:skew(0)}63%{color:transparent;text-shadow:none;opacity:0}65%{color:#dc143c;text-shadow:0 0 8px #dc143c,0 0 18px #dc143c60;opacity:1;transform:skew(-1deg)}72%{color:#dc143c;text-shadow:0 0 3px #dc143c;opacity:.9;transform:skew(0)}78%{opacity:.7}84%{color:#dc143c;text-shadow:0 0 5px #dc143c,0 0 10px #dc143c70;opacity:1}91%{opacity:.85}to{color:#dc143c;text-shadow:0 0 3px #dc143c,0 0 8px #dc143c90;opacity:1;transform:skew(0)}}.cc-humphrey{display:inline-block;animation:cc-humphrey-appear 1.6s steps(1,end) forwards}@keyframes cc-crt-flicker{0%,18%,22%,24%,53%,57%,to{opacity:1}20%,55%{opacity:.91}23%{opacity:.95}56%{opacity:.93}}@keyframes cc-crt-scanroll{0%{background-position-y:0}to{background-position-y:4px}}.cc-crt-ambient{position:relative;overflow:hidden;animation:cc-crt-flicker 7s linear infinite}.cc-crt-ambient:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,rgba(0,0,0,.07) 2px,rgba(0,0,0,.07) 4px);pointer-events:none;z-index:9999;animation:cc-crt-scanroll .18s linear infinite}.cc-crt-ambient:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.42) 100%);pointer-events:none;z-index:9998}.cc-crt-in{position:relative;overflow:hidden;animation:cc-crt-body 2s linear reverse both}.cc-crt-in:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,rgba(0,0,0,.1) 2px,rgba(0,0,0,.1) 4px);z-index:9999;pointer-events:none;animation:cc-crt-scanlines 2s linear reverse both}.cc-crt-in:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.6) 100%);z-index:9998;pointer-events:none;animation:cc-crt-vignette 2s linear reverse both}
|
|
1
|
+
.pop-in-ccalendar-event{opacity:0;transform:scale(.8);transform-origin:center center;animation:popInBounce .4s cubic-bezier(.34,1.56,.64,1) forwards;will-change:opacity,transform}@keyframes popInBounce{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}#ccalendar-container *::-webkit-scrollbar{width:8px;background:var(--bg)}#ccalendar-container *::-webkit-scrollbar-thumb{background:var(--fc-border-color);border-radius:4px}#ccalendar-container *::-webkit-scrollbar-track{background:var(--bg)}#ccalendar-container *::-webkit-scrollbar-corner{background:var(--bg)}#ccalendar-container .MuiDataGrid-row:hover,#ccalendar-container .MuiDataGrid-row:hover>.MuiDataGrid-cell{background-color:var(--fc-today-bg-color)!important}.court-calendar a{color:var(--text)!important;text-decoration:none!important}.month-day-cell{background-color:var(--bg);color:var(--text);cursor:pointer;height:120px;padding:3px!important;position:relative}.month-day-cell.fc-day-other{filter:brightness(.9)}.month-day-cell.fc-day-today{background-color:var(--fc-today-bg-color)}.month-day-cell.overbooked-day{box-shadow:inset 0 0 0 2px #dc262673;background-color:#dc26260f}.month-day-cell.overbooked-day.fc-day-today{background-color:var(--fc-today-bg-color)}.month-day-cell:hover:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--fc-today-bg-color);opacity:.5;pointer-events:none}.fc-daygrid-day-top .fc-daygrid-day-number{display:flex;width:100%;align-items:center;gap:4px;padding:2px 4px}.cc-day-number{flex-shrink:0;margin-left:auto}.cc-day-chips{display:flex;flex-wrap:nowrap;align-items:center;gap:3px;min-width:0;overflow:hidden}.cc-day-chip{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;font-size:.6rem;font-weight:600;line-height:1;padding:2px 3px;border-radius:4px;white-space:nowrap;background-color:color-mix(in srgb,currentColor 12%,transparent)}.cc-day-chip-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}.cc-day-chip-label{max-width:0;overflow:hidden;white-space:nowrap;transition:max-width .22s cubic-bezier(.4,0,.2,1)}.cc-day-chip:hover .cc-day-chip-label{max-width:90px;margin-right:1px}.cc-day-chip-count{flex-shrink:0}.day-header{background-color:var(--bg);color:var(--text);border-bottom:1px solid var(--fc-border-color)}.day-header a{padding:6px 4px!important;display:inline-block}.court-calendar th[role=presentation]{background-color:var(--bg)}.day-cell-allday{background-color:var(--bg)!important;color:var(--text)!important}.fc-daygrid-day-events{max-height:100px;min-height:100px;overflow-y:inherit;margin:0!important;overflow-y:auto;scrollbar-color:var(--fc-border-color) transparent}.fc-day-today .fc-daygrid-day-events{scrollbar-color:var(--fc-event-unknown-color) transparent}.court-calendar .fc-timegrid-slot-label{background-color:var(--bg);color:var(--text)}.court-calendar .fc-timegrid-axis{border-color:var(--fc-border-color);background-color:var(--bg);color:var(--text)}.court-calendar .fc-timegrid-divider{border-color:var(--fc-border-color);background-color:var(--bg)}.fc .fc-button,.fc-button{background-color:var(--bg);color:var(--text);border:1px solid var(--fc-border-color);font-family:Roboto,Helvetica,Arial,"sans-serif";padding:.25rem .5rem;cursor:pointer}:is(.fc .fc-button,.fc-button).fc-button-primary{background-color:var(--bg);color:var(--text);border:1px solid var(--fc-border-color)}:is(.fc .fc-button,.fc-button).fc-button-active.fc-button-primary{background-color:var(--fc-today-bg-color);color:var(--text)}:is(.fc .fc-button,.fc-button):hover{background-color:var(--fc-today-bg-color)}.fc.fc-media-screen{background-color:var(--bg);color:var(--text);font-family:Roboto,Helvetica,Arial,"sans-serif"}.CCButton{background-color:var(--bg);color:var(--text);border:1px solid var(--fc-border-color);font-family:Roboto,Helvetica,Arial,"sans-serif";padding:8px 16px;margin-right:8px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.CCButton:hover{background-color:var(--fc-today-bg-color)}.CCButton-Icon{min-width:35px;max-width:35px;min-height:35px;max-height:35px;border:none;padding:0;display:flex;align-items:center;justify-content:center}.CCDropdown-Button{width:75px}.CCDropdown-Menu{background-color:var(--bg);color:var(--text);border:1px solid var(--fc-border-color);font-family:Roboto,Helvetica,Arial,"sans-serif";box-shadow:0 2px 8px #00000026}.CCDropdown-Menu div{padding:8px 19px}.CCDropdown-Menu div:hover{background-color:var(--fc-today-bg-color)}.CCButton-Primary{background-color:#1976d2;color:#fff;border:none}.CCButton-Primary:hover{background-color:#1565c0}.CCButton-Error{background-color:#c15a5a;color:#fff;border:none}.CCButton-Error:hover{background-color:#953838}.ccdisabled{pointer-events:none;opacity:.6}.switch-track{outline:2px solid var(--fc-border-color)}.ccalendar-list-row{cursor:pointer;transition:background-color .2s ease-in-out}.CCAvatarIcon:hover{cursor:pointer;transform:scale(1.1);box-shadow:0 4px 8px #0003}#event-tooltip{background-color:var(--text);color:var(--bg);border:1px solid var(--fc-border-color);border-radius:4px;padding:8px;box-shadow:0 4px 8px #00000026;z-index:9999;font-size:16px}.court-event{cursor:pointer;padding:4px 2px}.fc-list .fc-list-day-cushion{background-color:var(--bg)!important;color:var(--text)}.fc-list .fc-list-event:hover td{background-color:var(--fc-today-bg-color)!important}.fc-list .deadline-event .fc-list-event-dot{border:none;width:1em;height:1em;vertical-align:middle;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><circle cx="8" cy="8" r="8" fill="%2300c853"/><path d="M4 8l3 3 5-5" stroke="white" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat center center;background-size:contain}.fc-list .deadline-event.inperson{--color: var(--fc-event-inperson-color)}.fc-list .deadline-event.virtual{--color: var(--fc-event-virtual-color)}.fc-list .deadline-event.unknown{--color: var(--fc-event-unknown-color)}.fc-list .deadline-event.negotiations{--color: var(--fc-event-negotiations-color)}.fc-list .deadline-event.collections{--color: var(--fc-event-collections-color)}.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event{background-color:transparent!important;border-color:transparent!important;display:flex;align-items:center;overflow-x:hidden;position:relative}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event) .fc-event-title{color:var(--text)!important}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).inperson{--color: var(--fc-event-inperson-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).virtual{--color: var(--fc-event-virtual-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).unknown{--color: var(--fc-event-unknown-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).negotiations{--color: var(--fc-event-negotiations-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).collections{--color: var(--fc-event-collections-color)}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).adjourned-no-date{--color: rgb(151, 11, 134) !important}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).status-uploaded:before{content:"";display:inline-block;width:1em;height:1em;vertical-align:middle;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><circle cx="8" cy="8" r="8" fill="%2300c853"/><path d="M4 8l3 3 5-5" stroke="white" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat center center;background-size:contain;margin:0 4px 0 0;top:.5em;border:none;position:absolute}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event).status-uploaded .fc-event-main{margin-left:1.5em!important}:is(.fc-view:not(.fc-list) .deadline-event,.fc-view:not(.fc-list) .motion-event):not(.status-uploaded):before{content:"";display:inline-block;border-radius:calc(var(--fc-daygrid-event-dot-width) / 2);box-sizing:content-box;height:0px;margin:0 4px;width:0px;border:calc(var(--fc-daygrid-event-dot-width) / 2) solid var(--color)}.courtdate-event,.adjournment-event,.multipledate-event{border:1px solid var(--fc-border-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event) .fc-event-title,:is(.courtdate-event,.adjournment-event,.multipledate-event) .fc-event-time{color:#fff!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).inperson{background-color:var(--fc-event-inperson-color)!important;border-color:var(--fc-event-inperson-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).virtual{background-color:var(--fc-event-virtual-color)!important;border-color:var(--fc-event-virtual-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).unknown{background-color:var(--fc-event-unknown-color)!important;border-color:var(--fc-event-unknown-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).negotiations{background-color:var(--fc-event-negotiations-color)!important;border-color:var(--fc-event-negotiations-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).collections{background-color:var(--fc-event-collections-color)!important;border-color:var(--fc-event-collections-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event) .fc-daygrid-event-dot,:is(.courtdate-event,.adjournment-event,.multipledate-event) .fc-list-event-dot{display:none}:is(.courtdate-event,.adjournment-event,.multipledate-event).adjourned-no-date{border-color:#970b86!important;background-color:#970b86!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).scar-overbooked{border-color:var(--fc-event-overbooked-color)!important;background-color:var(--fc-event-overbooked-color)!important}:is(.courtdate-event,.adjournment-event,.multipledate-event).adjourned-no-date.scar-overbooked{background-image:linear-gradient(to right,rgb(151,11,134) 0 30%,var(--fc-event-overbooked-color) 70% 100%)!important}.village-date.courtdate-event,.village-date.adjournment-event,.village-date.multipledate-event{border:2px solid #f59e0b!important}.deadline-due-today.courtdate-event,.deadline-due-today.multipledate-event{border:2px solid #d32f2f!important;outline:1px solid #d32f2f}.deadline-due-today.courtdate-event .fc-event-main,.deadline-due-today.multipledate-event .fc-event-main{position:relative}.deadline-due-today.courtdate-event .fc-event-main:after,.deadline-due-today.multipledate-event .fc-event-main:after{content:"!";position:absolute;top:0;right:2px;background:#d32f2f;color:#fff;border-radius:50%;width:14px;height:14px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:99999}.fc-view:not(.fc-list) .deadline-due-today.deadline-event{border:2px solid #d32f2f!important;border-radius:2px;padding-bottom:2px}.fc-view:not(.fc-list) .deadline-due-today.deadline-event .fc-event-title{color:#d32f2f!important;font-weight:700}.fc-view:not(.fc-list) .deadline-due-today.deadline-event:after{content:"!";position:absolute;left:2px;top:.7em;background:#d32f2f;color:#fff;border-radius:50%;width:14px;height:14px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:99999}@keyframes overdueFlash{0%,to{border-color:#b71c1c!important;box-shadow:0 0 #b71c1c00}50%{border-color:#ff1744!important;box-shadow:0 0 8px 3px #ff174499}}.deadline-overdue.courtdate-event,.deadline-overdue.multipledate-event{border:2px solid #b71c1c!important;animation:overdueFlash 1.8s ease-in-out infinite!important}.deadline-overdue.courtdate-event .fc-event-main,.deadline-overdue.multipledate-event .fc-event-main{position:relative}.deadline-overdue.courtdate-event .fc-event-main:after,.deadline-overdue.multipledate-event .fc-event-main:after{content:"⚠";position:absolute;top:0;right:2px;background:#b71c1c;color:#fff;border-radius:50%;width:16px;height:16px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:5}.fc-view:not(.fc-list) .deadline-overdue.deadline-event{border:2px solid #b71c1c!important;border-radius:2px;padding-bottom:2px;animation:overdueFlash 1.8s ease-in-out infinite!important}.fc-view:not(.fc-list) .deadline-overdue.deadline-event .fc-event-title{color:#b71c1c!important;font-weight:700}.fc-view:not(.fc-list) .deadline-overdue.deadline-event:after{content:"⚠";position:absolute;left:2px;top:.5em;background:#b71c1c;color:#fff;border-radius:50%;width:14px;height:14px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:99999}#ccalendar-toolbar{position:relative}#ccalendar-header{box-shadow:0 2px 12px #00000012;position:relative}#ccalendar-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--cc-gradient);opacity:.55;pointer-events:none}#ccalendar-nav .MuiTypography-h6{background:var(--cc-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700!important}#ccalendar-toolbar .MuiButton-outlined:not([disabled]),#ccalendar-nav .MuiButton-outlined:not([disabled]){border:1.5px solid transparent!important;background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--cc-gradient) border-box!important;transition:box-shadow .15s ease!important}#ccalendar-toolbar .MuiButton-outlined:not([disabled]):hover,#ccalendar-nav .MuiButton-outlined:not([disabled]):hover{background:linear-gradient(var(--fc-today-bg-color),var(--fc-today-bg-color)) padding-box,var(--cc-gradient) border-box!important;box-shadow:0 0 8px 1px var(--cc-glow-purple)!important}.month-day-cell.fc-day-today{background-image:linear-gradient(135deg,#3b82f612,#8b5cf612,#06b6d40d)}.courtdate-event,.adjournment-event,.multipledate-event{border-radius:4px!important;transition:filter .12s ease,box-shadow .12s ease!important}.courtdate-event:hover,.adjournment-event:hover,.multipledate-event:hover{filter:brightness(1.1)!important;box-shadow:0 2px 10px #0000004d!important;z-index:5}#event-tooltip{border:1.5px solid transparent!important;background:linear-gradient(var(--text),var(--text)) padding-box,var(--cc-gradient) border-box!important;box-shadow:0 0 14px 2px #8b5cf638,0 4px 18px #00000047!important;border-radius:10px!important;padding:0!important;font-size:16px!important;font-family:Roboto,Helvetica,Arial,sans-serif!important;min-width:240px!important;max-width:340px!important}#event-tooltip .tt-card{padding:14px 16px}#event-tooltip .tt-title{font-size:17px;font-weight:700;line-height:1.3;margin-bottom:4px}#event-tooltip .tt-date{font-size:15px;opacity:.7;margin-bottom:8px}#event-tooltip .tt-badge{display:inline-block;padding:3px 9px;border-radius:4px;font-size:13px;font-weight:600;letter-spacing:.03em;margin-bottom:8px}#event-tooltip .tt-badge--blue{background:#3b82f659}#event-tooltip .tt-badge--purple{background:#8b5cf659}#event-tooltip .tt-badge--amber{background:#f59e0b59}#event-tooltip .tt-badge--cyan{background:#06b6d459}#event-tooltip .tt-badge--red{background:#dc262659}#event-tooltip .tt-divider{height:1px;background:#80808047;margin:8px 0}#event-tooltip .tt-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:15px}#event-tooltip .tt-label{opacity:.58;white-space:nowrap;line-height:1.5}#event-tooltip .tt-value{font-weight:500;line-height:1.5}#event-tooltip .tt-footer{font-size:13px;opacity:.42;text-align:center;margin-top:8px;padding-top:6px;border-top:1px solid rgba(128,128,128,.22)}#ccalendar-nav .MuiToggleButtonGroup-root .MuiToggleButton-root{color:#1976d2;border:1.5px solid transparent!important;background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--cc-gradient) border-box!important;transition:box-shadow .15s ease!important}#ccalendar-nav .MuiToggleButtonGroup-root .MuiToggleButton-root:hover{color:#1976d2!important;background:linear-gradient(var(--fc-today-bg-color),var(--fc-today-bg-color)) padding-box,var(--cc-gradient) border-box!important;box-shadow:0 0 8px 1px var(--cc-glow-purple)!important}#ccalendar-nav .MuiToggleButtonGroup-root .MuiToggleButton-root.Mui-selected{background:linear-gradient(var(--fc-today-bg-color),var(--fc-today-bg-color)) padding-box,var(--cc-gradient) border-box!important}#ccalendar-nav .MuiToggleButtonGroup-root .MuiToggleButton-root:not(.Mui-selected){color:#4397ecde}#ccalendar-toolbar .MuiToggleButton-root:hover:not(.Mui-selected){background-color:var(--fc-today-bg-color)!important}#ccalendar-toolbar .cc-more-btn-open{border:1.5px solid transparent!important;background:linear-gradient(var(--bg),var(--bg)) padding-box,var(--cc-gradient) border-box!important}.modal-footer .MuiButton-containedPrimary{background-image:var(--cc-gradient)!important;box-shadow:0 0 10px 1px var(--cc-glow-purple),0 2px 6px #0000002e!important;transition:opacity .15s ease,box-shadow .15s ease!important}.modal-footer .MuiButton-containedPrimary:hover:not([disabled]){background-image:var(--cc-gradient)!important;opacity:.9;box-shadow:0 0 16px 2px var(--cc-glow-purple),0 2px 8px #00000038!important}.modal-footer .MuiButton-containedPrimary{text-shadow:0 1px 3px rgba(0,0,0,.35)!important}@page{size:landscape;margin:.5in}@media print{#ccalendar-container>.MuiStack-root:first-child,#event-tooltip,.ReactModal__Overlay,.MuiDataGrid-footerContainer{display:none!important}#ccalendar-container{width:100%!important;overflow:visible!important;padding-top:10px}.fc.fc-media-screen,.fc .fc-scrollgrid,.fc .fc-scrollgrid-section>td,.fc .fc-daygrid-body,.fc table{width:100%!important;max-width:100%!important}.fc .fc-scrollgrid{overflow:visible!important}.fc colgroup col{width:auto!important}.fc-daygrid-day-events{max-height:none!important;min-height:auto!important;overflow:visible!important}.month-day-cell{height:auto!important}.cc-day-chips{display:none!important}#ccalendar-container .MuiDataGrid-root{height:auto!important;max-height:none!important}#ccalendar-container .MuiDataGrid-virtualScroller{overflow:visible!important;height:auto!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}@keyframes cc-crt-body{0%{transform:translate(0);filter:none;opacity:1}3%{filter:brightness(.85);opacity:.85}6%{filter:none;opacity:1}9%{filter:brightness(1.12);opacity:.75}12%{transform:translate(0);filter:none;opacity:1}15%{transform:translate(0);filter:blur(.5px) hue-rotate(80deg) brightness(.95);opacity:.95}18%{transform:translate(-3px) skew(-1.5deg);filter:blur(1px) hue-rotate(100deg) saturate(1.5);opacity:.9}22%{transform:translate(3px) skew(1.5deg);filter:blur(.5px) hue-rotate(90deg) brightness(1.1);opacity:.95}25%{transform:translate(0);filter:blur(1.5px) hue-rotate(110deg) saturate(1.8);opacity:.85}28%{transform:translate(-5px,1px) skew(-2deg);filter:blur(2px) hue-rotate(130deg) contrast(1.3);opacity:.8}31%{transform:translate(5px,-1px) skew(2deg);filter:blur(1px) hue-rotate(90deg) brightness(1.2);opacity:.88}35%{transform:translate(0);filter:blur(2px) hue-rotate(100deg) saturate(1.2);opacity:.75}38%{transform:translate(-8px,2px) skew(-4deg);filter:blur(3px) hue-rotate(160deg) contrast(1.6);opacity:.6}39%{transform:translate(8px,-2px) skew(4deg);filter:blur(1.5px) hue-rotate(60deg) brightness(1.4);opacity:.75}43%{transform:translate(-2px,1px);filter:blur(3.5px) grayscale(.2) saturate(.8);opacity:.65}47%{filter:blur(2px) brightness(.35);opacity:.18}50%{transform:translate(0);filter:blur(4px) grayscale(.4) contrast(1.4);opacity:.7}53%{transform:translate(-6px,2px) skew(-3deg);filter:blur(3px) grayscale(.3) hue-rotate(180deg);opacity:.55}55%{transform:translate(6px,-2px) skew(3deg);filter:blur(2px) brightness(1.5) contrast(1.8);opacity:.7}58%{transform:translate(0);filter:blur(5px) grayscale(.6) brightness(.6);opacity:.5}60%{filter:blur(4px) brightness(.25);opacity:.12}62%{filter:blur(3px) brightness(1.2);opacity:.6}65%{transform:translate(-10px,3px) skew(-5deg);filter:blur(6px) grayscale(.7) contrast(1.5);opacity:.45}66%{transform:translate(10px,-3px) skew(5deg);filter:blur(3px) grayscale(.5) brightness(1.8);opacity:.6}70%{transform:translate(-4px,2px);filter:blur(7px) grayscale(.8) saturate(.2);opacity:.35}73%{filter:blur(6px) brightness(.18);opacity:.08}75%{transform:translate(0);filter:blur(6px) grayscale(.85) brightness(.5);opacity:.4}78%{transform:translate(-12px,4px) skew(-6deg);filter:blur(8px) grayscale(.9) contrast(2);opacity:.3}79%{transform:translate(12px,-4px) skew(6deg);filter:blur(4px) grayscale(.7) brightness(1.6);opacity:.45}84%{transform:translate(-3px,1px);filter:blur(9px) grayscale(.95) brightness(.35);opacity:.2}88%{filter:blur(8px) brightness(.08);opacity:.04}90%{transform:translate(0);filter:blur(10px) grayscale(1) brightness(.25);opacity:.14}95%{transform:translate(0);filter:blur(12px) grayscale(1) brightness(.1);opacity:.05}to{transform:translate(0);filter:blur(14px) grayscale(1) brightness(0);opacity:0}}@keyframes cc-crt-scanlines{0%{opacity:0;background-position-y:0px}14%{opacity:0;background-position-y:0px}22%{opacity:.28;background-position-y:-4px}42%{opacity:.5;background-position-y:-18px}67%{opacity:.72;background-position-y:-42px}88%{opacity:.88;background-position-y:-66px}to{opacity:1;background-position-y:-84px}}@keyframes cc-crt-vignette{0%{opacity:0}22%{opacity:.25}to{opacity:.88}}.cc-glitch-active{position:relative;animation:cc-crt-body 2s linear forwards;pointer-events:none;overflow:hidden}.cc-glitch-active:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,rgba(0,0,0,.1) 2px,rgba(0,0,0,.1) 4px);z-index:9999;pointer-events:none;animation:cc-crt-scanlines 2s linear forwards}.cc-glitch-active:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.6) 100%);z-index:9998;pointer-events:none;animation:cc-crt-vignette 2s linear forwards}@keyframes cc-humphrey-appear{0%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}4%{color:red;text-shadow:0 0 30px #ff0000,0 0 60px #ff0000;opacity:.9;transform:skew(-8deg)}6%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}9%{color:red;text-shadow:0 0 20px #ff0000;opacity:.7;transform:skew(5deg)}11%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}14%{color:#ff2020;text-shadow:2px 0 0 #ff0000,-2px 0 0 #00ffff;opacity:1;transform:skew(-4deg)}17%{color:#dc143c;text-shadow:0 0 12px #dc143c;opacity:.4;transform:skew(2deg)}20%{color:#ff2020;text-shadow:4px 0 0 #ff0000,-4px 0 0 #00ffff;opacity:1;transform:skew(-6deg)}23%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}26%{color:#ff2020;text-shadow:0 0 8px #ff0000;opacity:.8;transform:skew(3deg)}30%{color:#ff2020;text-shadow:3px 0 0 #ff0000,-3px 0 0 #00ffff;opacity:1;transform:skew(-3deg)}34%{color:#dc143c;text-shadow:0 0 6px #dc143c,0 0 14px #dc143c50;opacity:.6;transform:skew(0)}38%{color:#ff2020;text-shadow:1px 0 0 #ff0000,-1px 0 0 #00ffff;opacity:1;transform:skew(-2deg)}43%{color:transparent;text-shadow:none;opacity:0;transform:skew(0)}45%{color:#ff1010;text-shadow:0 0 10px #ff0000;opacity:.9;transform:skew(4deg)}48%{color:#dc143c;text-shadow:0 0 4px #dc143c;opacity:.7;transform:skew(-1deg)}53%{color:#ff2020;text-shadow:2px 0 0 #ff0000,-2px 0 0 #00ffff;opacity:1;transform:skew(2deg)}57%{color:#dc143c;text-shadow:0 0 6px #dc143c;opacity:.85;transform:skew(0)}63%{color:transparent;text-shadow:none;opacity:0}65%{color:#dc143c;text-shadow:0 0 8px #dc143c,0 0 18px #dc143c60;opacity:1;transform:skew(-1deg)}72%{color:#dc143c;text-shadow:0 0 3px #dc143c;opacity:.9;transform:skew(0)}78%{opacity:.7}84%{color:#dc143c;text-shadow:0 0 5px #dc143c,0 0 10px #dc143c70;opacity:1}91%{opacity:.85}to{color:#dc143c;text-shadow:0 0 3px #dc143c,0 0 8px #dc143c90;opacity:1;transform:skew(0)}}.cc-humphrey{display:inline-block;animation:cc-humphrey-appear 1.6s steps(1,end) forwards}@keyframes cc-crt-flicker{0%,18%,22%,24%,53%,57%,to{opacity:1}20%,55%{opacity:.91}23%{opacity:.95}56%{opacity:.93}}@keyframes cc-crt-scanroll{0%{background-position-y:0}to{background-position-y:4px}}.cc-crt-ambient{position:relative;overflow:hidden;animation:cc-crt-flicker 7s linear infinite}.cc-crt-ambient:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,rgba(0,0,0,.07) 2px,rgba(0,0,0,.07) 4px);pointer-events:none;z-index:9999;animation:cc-crt-scanroll .18s linear infinite}.cc-crt-ambient:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.42) 100%);pointer-events:none;z-index:9998}.cc-crt-in{position:relative;overflow:hidden;animation:cc-crt-body 2s linear reverse both}.cc-crt-in:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 2px,rgba(0,0,0,.1) 2px,rgba(0,0,0,.1) 4px);z-index:9999;pointer-events:none;animation:cc-crt-scanlines 2s linear reverse both}.cc-crt-in:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.6) 100%);z-index:9998;pointer-events:none;animation:cc-crt-vignette 2s linear reverse both}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { CalEvent } from './CalEvent';
|
|
2
|
+
/**
|
|
3
|
+
* The breakdown behind a month cell's header chips: how many of each kind of thing land on
|
|
4
|
+
* a given day. A cell shows only the first few events before the rest scroll out of the
|
|
5
|
+
* 100px events box, so three hearings plus an upload deadline read the same as one hearing
|
|
6
|
+
* plus three deadlines until you open the day.
|
|
7
|
+
*
|
|
8
|
+
* The split follows the calendar's own cascade — date type wins over hearing type, exactly
|
|
9
|
+
* as `.negotiations`/`.collections` overpaint `.inperson`/`.virtual` in CalendarEvents.css
|
|
10
|
+
* and as WeekWidget's eventColor resolves.
|
|
11
|
+
*/
|
|
12
|
+
export type DayEventType = 'inperson' | 'virtual' | 'unknown' | 'negotiations' | 'collections' | 'upload' | 'motion';
|
|
13
|
+
export interface DayTypeChip {
|
|
14
|
+
type: DayEventType;
|
|
15
|
+
label: string;
|
|
16
|
+
color: string;
|
|
17
|
+
count: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Label and swatch colour per type. Declaration order is render order, so the chip row
|
|
21
|
+
* reads the same way every day regardless of which types happen to be present.
|
|
22
|
+
*
|
|
23
|
+
* Every colour comes from a token — no hex literals here. The repo already carries four
|
|
24
|
+
* hand-copied type-to-colour tables that disagree with each other; this is not a fifth.
|
|
25
|
+
*/
|
|
26
|
+
export declare const DAY_TYPE_META: Record<DayEventType, {
|
|
27
|
+
label: string;
|
|
28
|
+
color: string;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Which chip a hearing occurrence belongs to.
|
|
32
|
+
*
|
|
33
|
+
* DateType.SCAR is the empty string, so these have to be equality checks — a truthiness
|
|
34
|
+
* test would send every SCAR date down the negotiations branch's fallback.
|
|
35
|
+
*/
|
|
36
|
+
export declare function hearingChipType(e: CalEvent): DayEventType;
|
|
37
|
+
export interface DayTypeEntry {
|
|
38
|
+
/** 'YYYY-MM-DD', from dateToKey. */
|
|
39
|
+
dayKey: string;
|
|
40
|
+
type: DayEventType;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Groups entries into per-day chip lists.
|
|
44
|
+
*
|
|
45
|
+
* Takes one flat list rather than the three event families separately because they land on
|
|
46
|
+
* *different* days: a hearing sits on its activeDate, an upload on its uploadDeadline and a
|
|
47
|
+
* motion on its motionDate, so a single court date can contribute to three different cells.
|
|
48
|
+
* Flattening at the call site keeps this a plain group-and-count.
|
|
49
|
+
*
|
|
50
|
+
* @param entries One per rendered occurrence. Pass only what survives the active filters —
|
|
51
|
+
* a chip reading 3 over a cell showing 1 is worse than no chip at all.
|
|
52
|
+
* @returns dayKey → chips in DAY_TYPE_META order. Days with no entries are absent.
|
|
53
|
+
*/
|
|
54
|
+
export declare function computeDayTypeCounts(entries: DayTypeEntry[]): Map<string, DayTypeChip[]>;
|
|
@@ -37,6 +37,7 @@ export declare function useCalendarEvents({ courtDates, allCases, apiKey, modalI
|
|
|
37
37
|
events: EventSourceInput;
|
|
38
38
|
filteredDates: CalEvent[];
|
|
39
39
|
overbookedDays: Set<string>;
|
|
40
|
+
dayTypeCounts: Map<string, import('../helpers/dayTypeCounts').DayTypeChip[]>;
|
|
40
41
|
handleEventMount: (info: EventMountArg, calendarApi: Calendar | null) => void;
|
|
41
42
|
getEventTooltipHtml: (eventId: string) => string;
|
|
42
43
|
firstSearchResultId: number | null;
|