@nomideusz/svelte-calendar 1.3.0 → 1.4.1

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.
@@ -22,7 +22,7 @@ import EventContent from "../shared/EventContent.svelte";
22
22
  import { createClock } from "../../core/clock.svelte.js";
23
23
  import { HOUR_MS, sod, addDaysMs, diffDays } from "../../core/time.js";
24
24
  import { startOfWeek as sowFn, isAllDay, segmentForDay } from "../../core/time.js";
25
- import { weekdayShort, monthLong, fmtTime as _fmtTime } from "../../core/locale.js";
25
+ import { weekdayShort, monthLong, fmtDayNum, fmtTime as _fmtTime } from "../../core/locale.js";
26
26
  import { createChipFit } from "../shared/chip-fit.svelte.js";
27
27
  let { mondayStart = true, locale, height = 520, events = [], style = "", focusDate, oneventclick, oneventcreate, onexternaldrop, selectedEventId = null, readOnly = false, visibleHours } = $props();
28
28
  const ctx = useCalendarContext();
@@ -873,7 +873,7 @@ function onCellKeydown(e, ms) {
873
873
  <div class="wg-cell-hd" class:wg-cell-hd--today={day.isToday}>
874
874
  <span class="wg-day-wd">{weekdayShort(day.ms, locale)}</span>
875
875
  {#if showDates}
876
- <span class="wg-day-num">{day.dayNum}</span>
876
+ <span class="wg-day-num">{fmtDayNum(day.ms, locale)}</span>
877
877
  {/if}
878
878
  </div>
879
879
 
@@ -926,7 +926,7 @@ function onCellKeydown(e, ms) {
926
926
  class:wg-ev--tentative={ev.status === 'tentative'}
927
927
  class:wg-ev--full={ev.status === 'full'}
928
928
  class:wg-ev--limited={ev.status === 'limited'}
929
- style:--ev-color={ev.color ?? 'var(--dt-accent)'}
929
+ style:--ev-color={ev.color ?? 'var(--dt-event, var(--dt-accent))'}
930
930
  style:margin-top="{tops[i] - (i ? tops[i - 1] + CHIP_H : 0)}px"
931
931
  role="button"
932
932
  tabindex="0"
@@ -951,7 +951,7 @@ function onCellKeydown(e, ms) {
951
951
  <!-- The ghost floats at its own time; it pushes nothing aside -->
952
952
  <div
953
953
  class="wg-ev wg-ev--drag-preview"
954
- style:--ev-color={previewTimedEvent.color ?? 'var(--dt-accent)'}
954
+ style:--ev-color={previewTimedEvent.color ?? 'var(--dt-event, var(--dt-accent))'}
955
955
  style:top="{timeTop(hourOf(previewTimedEvent.start.getTime(), day.ms))}px"
956
956
  aria-hidden="true"
957
957
  in:previewReceive={{ key: previewKeySnapshot.get('timed') ?? '' }}
@@ -1046,13 +1046,13 @@ function onCellKeydown(e, ms) {
1046
1046
  overflow-x: auto;
1047
1047
  box-sizing: border-box;
1048
1048
  scrollbar-width: thin;
1049
- scrollbar-color: var(--dt-scrollbar, rgba(0, 0, 0, 0.1)) transparent;
1049
+ scrollbar-color: var(--dt-scrollbar, rgba(15, 15, 15, 0.1)) transparent;
1050
1050
  }
1051
1051
  .wg--auto .wg-body { overflow-y: visible; }
1052
1052
 
1053
1053
  .wg-body::-webkit-scrollbar { width: 4px; }
1054
1054
  .wg-body::-webkit-scrollbar-thumb {
1055
- background: var(--dt-scrollbar, rgba(0, 0, 0, 0.1));
1055
+ background: var(--dt-scrollbar, rgba(15, 15, 15, 0.1));
1056
1056
  border-radius: 0;
1057
1057
  }
1058
1058
  .wg-body::-webkit-scrollbar-track { background: transparent; }
@@ -1070,14 +1070,14 @@ function onCellKeydown(e, ms) {
1070
1070
  display: flex;
1071
1071
  border-radius: 0;
1072
1072
  margin: var(--wg-row-margin, 12px) 8px;
1073
- border: 1px solid var(--dt-border, rgba(0, 0, 0, 0.08));
1073
+ border: 1px solid var(--dt-border, rgba(15, 15, 15, 0.08));
1074
1074
  overflow: hidden;
1075
1075
  }
1076
1076
 
1077
1077
  .wg-week--current {
1078
- background: var(--dt-today-bg, rgba(37, 99, 235, 0.04));
1078
+ background: var(--dt-today-bg, rgba(29, 79, 215, 0.04));
1079
1079
  /* The current row's frame is a day rule, not the accent */
1080
- border-color: var(--dt-border-day, rgba(0, 0, 0, 0.3));
1080
+ border-color: var(--dt-border-day, rgba(15, 15, 15, 0.3));
1081
1081
  }
1082
1082
 
1083
1083
  /* ─── Week body ──────────────────────────────────── */
@@ -1102,7 +1102,7 @@ function onCellKeydown(e, ms) {
1102
1102
  min-width: 90px;
1103
1103
  box-sizing: border-box;
1104
1104
  padding: 4px 4px 8px;
1105
- border-right: 1px solid var(--dt-border, rgba(0, 0, 0, 0.08));
1105
+ border-right: 1px solid var(--dt-border, rgba(15, 15, 15, 0.08));
1106
1106
  cursor: pointer;
1107
1107
  transition: background 0.15s;
1108
1108
  }
@@ -1124,11 +1124,11 @@ function onCellKeydown(e, ms) {
1124
1124
  letter-spacing: 0.08em;
1125
1125
  white-space: nowrap;
1126
1126
  overflow: hidden;
1127
- color: var(--dt-text-3, rgba(0, 0, 0, 0.38));
1127
+ color: var(--dt-text-3, rgba(15, 15, 15, 0.38));
1128
1128
  }
1129
1129
  .wg-week--current .wg-month,
1130
1130
  .wg-month--start {
1131
- color: var(--dt-text, rgba(0, 0, 0, 0.87));
1131
+ color: var(--dt-text, rgba(15, 15, 15, 0.87));
1132
1132
  }
1133
1133
  .wg-month--inset {
1134
1134
  position: absolute;
@@ -1136,19 +1136,19 @@ function onCellKeydown(e, ms) {
1136
1136
  left: 2px;
1137
1137
  pointer-events: none;
1138
1138
  }
1139
- .wg-cell:hover { background: var(--dt-hover, rgba(0, 0, 0, 0.015)); }
1139
+ .wg-cell:hover { background: var(--dt-hover, rgba(15, 15, 15, 0.015)); }
1140
1140
 
1141
- .wg-cell--today { background: var(--dt-today-bg, rgba(37, 99, 235, 0.04)); }
1141
+ .wg-cell--today { background: var(--dt-today-bg, rgba(29, 79, 215, 0.04)); }
1142
1142
  .wg-cell--drop {
1143
- background: var(--dt-accent-dim, rgba(37, 99, 235, 0.12)) !important;
1144
- box-shadow: inset 0 0 0 2px var(--dt-accent, #2563eb);
1143
+ background: var(--dt-accent-dim, rgba(29, 79, 215, 0.12)) !important;
1144
+ box-shadow: inset 0 0 0 2px var(--dt-accent, #1d4fd7);
1145
1145
  }
1146
- .wg-cell--today:hover { background: var(--dt-hover, rgba(0, 0, 0, 0.04)); }
1146
+ .wg-cell--today:hover { background: var(--dt-hover, rgba(15, 15, 15, 0.04)); }
1147
1147
 
1148
1148
  /* Non-current weeks sit on the same paper; only the header ink softens,
1149
1149
  and past events print a shade lighter. */
1150
1150
  .wg-week:not(.wg-week--current) .wg-day-num {
1151
- color: var(--dt-text-2, rgba(0, 0, 0, 0.54));
1151
+ color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
1152
1152
  }
1153
1153
  .wg-cell--past .wg-ev:not(.wg-ev--cancelled) {
1154
1154
  opacity: 0.78;
@@ -1156,7 +1156,7 @@ function onCellKeydown(e, ms) {
1156
1156
 
1157
1157
  /* equalDays: when no cells are marked past, all are full brightness */
1158
1158
 
1159
- .wg-cell--weekend { background: var(--dt-weekend-bg, rgba(0, 0, 0, 0.012)); }
1159
+ .wg-cell--weekend { background: var(--dt-weekend-bg, rgba(15, 15, 15, 0.012)); }
1160
1160
 
1161
1161
  /* ─── Disabled cell ──────────────────────────────── */
1162
1162
  .wg-cell--disabled {
@@ -1164,8 +1164,8 @@ function onCellKeydown(e, ms) {
1164
1164
  45deg,
1165
1165
  transparent,
1166
1166
  transparent 6px,
1167
- var(--dt-border, rgba(0, 0, 0, 0.08)) 6px,
1168
- var(--dt-border, rgba(0, 0, 0, 0.08)) 7px
1167
+ var(--dt-border, rgba(15, 15, 15, 0.08)) 6px,
1168
+ var(--dt-border, rgba(15, 15, 15, 0.08)) 7px
1169
1169
  ) !important;
1170
1170
  }
1171
1171
 
@@ -1184,8 +1184,8 @@ function onCellKeydown(e, ms) {
1184
1184
  border-radius: 0;
1185
1185
  background: repeating-linear-gradient(
1186
1186
  -45deg,
1187
- color-mix(in srgb, var(--dt-text, rgba(0, 0, 0, 0.87)) 4%, transparent),
1188
- color-mix(in srgb, var(--dt-text, rgba(0, 0, 0, 0.87)) 4%, transparent) 3px,
1187
+ color-mix(in srgb, var(--dt-text, rgba(15, 15, 15, 0.87)) 4%, transparent),
1188
+ color-mix(in srgb, var(--dt-text, rgba(15, 15, 15, 0.87)) 4%, transparent) 3px,
1189
1189
  transparent 3px,
1190
1190
  transparent 6px
1191
1191
  );
@@ -1193,7 +1193,7 @@ function onCellKeydown(e, ms) {
1193
1193
 
1194
1194
  .wg-blocked-label {
1195
1195
  font: 500 11px/1 var(--dt-sans, system-ui, sans-serif);
1196
- color: var(--dt-text-2, rgba(0, 0, 0, 0.54));
1196
+ color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
1197
1197
  text-transform: uppercase;
1198
1198
  letter-spacing: 0.04em;
1199
1199
  white-space: nowrap;
@@ -1219,30 +1219,30 @@ function onCellKeydown(e, ms) {
1219
1219
  font: 500 12px / 1 var(--dt-sans, system-ui, sans-serif);
1220
1220
  letter-spacing: 0.08em;
1221
1221
  text-transform: uppercase;
1222
- color: var(--dt-text-3, rgba(0, 0, 0, 0.38));
1222
+ color: var(--dt-text-3, rgba(15, 15, 15, 0.38));
1223
1223
  }
1224
1224
 
1225
1225
  .wg-week--current .wg-day-wd {
1226
- color: var(--dt-text-2, rgba(0, 0, 0, 0.54));
1226
+ color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
1227
1227
  }
1228
1228
 
1229
1229
  .wg-day-num {
1230
1230
  font: 400 15px / 1 var(--dt-sans, system-ui, sans-serif);
1231
1231
  font-variant-numeric: tabular-nums;
1232
- color: var(--dt-text, rgba(0, 0, 0, 0.87));
1232
+ color: var(--dt-text, rgba(15, 15, 15, 0.87));
1233
1233
  }
1234
1234
 
1235
1235
  .wg-week--current .wg-day-num {
1236
- color: var(--dt-text, rgba(0, 0, 0, 0.87));
1236
+ color: var(--dt-text, rgba(15, 15, 15, 0.87));
1237
1237
  }
1238
1238
 
1239
1239
  /* Today's pill — after the week rules above, which it must beat */
1240
1240
  .wg-cell-hd--today .wg-day-wd,
1241
1241
  .wg-cell-hd--today .wg-day-num {
1242
- color: var(--dt-accent, #2563eb);
1242
+ color: var(--dt-accent, #1d4fd7);
1243
1243
  }
1244
1244
  .wg-cell-hd--today .wg-day-num {
1245
- box-shadow: inset 0 -2px 0 var(--dt-accent, #2563eb);
1245
+ box-shadow: inset 0 -2px 0 var(--dt-accent, #1d4fd7);
1246
1246
  padding-bottom: 2px;
1247
1247
  }
1248
1248
 
@@ -1291,7 +1291,7 @@ function onCellKeydown(e, ms) {
1291
1291
 
1292
1292
  .wg-ad:focus-visible {
1293
1293
  outline: none;
1294
- box-shadow: inset 0 0 0 2px var(--dt-btn-text, #fff), 0 0 0 2px var(--dt-accent, #2563eb);
1294
+ box-shadow: inset 0 0 0 2px var(--dt-btn-text, #fff), 0 0 0 2px var(--dt-accent, #1d4fd7);
1295
1295
  }
1296
1296
 
1297
1297
  .wg-ad-title {
@@ -1341,14 +1341,14 @@ function onCellKeydown(e, ms) {
1341
1341
  .wg-now::after {
1342
1342
  content: '';
1343
1343
  flex: 1;
1344
- border-top: 2px solid var(--dt-accent, #2563eb);
1344
+ border-top: 2px solid var(--dt-accent, #1d4fd7);
1345
1345
  }
1346
1346
  .wg-now-time {
1347
1347
  font: 500 11px / 1.2 var(--dt-sans, system-ui, sans-serif);
1348
1348
  font-variant-numeric: tabular-nums;
1349
1349
  padding: 2px 4px;
1350
1350
  border-radius: 0;
1351
- background: var(--dt-accent, #2563eb);
1351
+ background: var(--dt-accent, #1d4fd7);
1352
1352
  color: var(--dt-btn-text, #fff);
1353
1353
  }
1354
1354
  /* Where a dragged-in class would land: the now-line's shape, dashed */
@@ -1386,7 +1386,7 @@ function onCellKeydown(e, ms) {
1386
1386
  }
1387
1387
 
1388
1388
  .wg-ev:hover {
1389
- background: var(--dt-hover, rgba(0, 0, 0, 0.04));
1389
+ background: var(--dt-hover, rgba(15, 15, 15, 0.04));
1390
1390
  }
1391
1391
 
1392
1392
  .wg-ev--drag-preview {
@@ -1396,7 +1396,7 @@ function onCellKeydown(e, ms) {
1396
1396
  z-index: 8;
1397
1397
  opacity: 0.95;
1398
1398
  pointer-events: none;
1399
- background: var(--dt-hover, rgba(0, 0, 0, 0.04));
1399
+ background: var(--dt-hover, rgba(15, 15, 15, 0.04));
1400
1400
  box-shadow: inset 0 0 0 1px var(--ev-color);
1401
1401
  cursor: grabbing;
1402
1402
  }
@@ -1406,13 +1406,13 @@ function onCellKeydown(e, ms) {
1406
1406
  }
1407
1407
 
1408
1408
  .wg-ev--current {
1409
- background: var(--dt-accent-dim, rgba(37, 99, 235, 0.12));
1409
+ background: var(--dt-accent-dim, rgba(29, 79, 215, 0.12));
1410
1410
  }
1411
1411
 
1412
1412
  /* Printed states: struck through, grey, or a dashed bar — never a tint */
1413
1413
  .wg-ev--cancelled .wg-ev-title {
1414
1414
  text-decoration: line-through;
1415
- color: var(--dt-text-2, rgba(0, 0, 0, 0.54));
1415
+ color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
1416
1416
  }
1417
1417
  .wg-ev--cancelled::before,
1418
1418
  .wg-ev--full::before {
@@ -1420,7 +1420,7 @@ function onCellKeydown(e, ms) {
1420
1420
  }
1421
1421
  .wg-ev--tentative .wg-ev-title,
1422
1422
  .wg-ev--full .wg-ev-title {
1423
- color: var(--dt-text-2, rgba(0, 0, 0, 0.54));
1423
+ color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
1424
1424
  }
1425
1425
  .wg-ev--tentative::before,
1426
1426
  .wg-ev--limited::before {
@@ -1433,14 +1433,14 @@ function onCellKeydown(e, ms) {
1433
1433
  .wg-ev-time {
1434
1434
  font: 400 14px / 1 var(--dt-sans, system-ui, sans-serif);
1435
1435
  font-variant-numeric: tabular-nums;
1436
- color: var(--dt-text, rgba(0, 0, 0, 0.87));
1436
+ color: var(--dt-text, rgba(15, 15, 15, 0.87));
1437
1437
  flex-shrink: 0;
1438
1438
  white-space: nowrap;
1439
1439
  }
1440
1440
 
1441
1441
  .wg-ev-title {
1442
1442
  font: 500 15px / 1.25 var(--dt-sans, system-ui, sans-serif);
1443
- color: var(--dt-text, rgba(0, 0, 0, 0.87));
1443
+ color: var(--dt-text, rgba(15, 15, 15, 0.87));
1444
1444
  white-space: nowrap;
1445
1445
  overflow: hidden;
1446
1446
  text-overflow: ellipsis;
@@ -1450,7 +1450,7 @@ function onCellKeydown(e, ms) {
1450
1450
 
1451
1451
  .wg-ev-loc {
1452
1452
  font: 400 12.5px / 1 var(--dt-sans, system-ui, sans-serif);
1453
- color: var(--dt-text, rgba(0, 0, 0, 0.87));
1453
+ color: var(--dt-text, rgba(15, 15, 15, 0.87));
1454
1454
  white-space: nowrap;
1455
1455
  flex-shrink: 0; /* shown only when measured to fit — never squeezed */
1456
1456
  }
@@ -1464,35 +1464,35 @@ function onCellKeydown(e, ms) {
1464
1464
  text-align: left;
1465
1465
  align-self: flex-start;
1466
1466
  font: 400 12.5px / 1 var(--dt-sans, system-ui, sans-serif);
1467
- color: var(--dt-text-2, rgba(0, 0, 0, 0.54));
1467
+ color: var(--dt-text-2, rgba(15, 15, 15, 0.54));
1468
1468
  padding: 2px 8px;
1469
1469
  cursor: pointer;
1470
1470
  flex-shrink: 0;
1471
1471
  }
1472
1472
 
1473
1473
  .wg-ev-more:hover {
1474
- color: var(--dt-text, rgba(0, 0, 0, 0.87));
1474
+ color: var(--dt-text, rgba(15, 15, 15, 0.87));
1475
1475
  }
1476
1476
 
1477
1477
  .wg-ev-more:focus-visible {
1478
1478
  outline: none;
1479
- box-shadow: 0 0 0 2px var(--dt-accent, #2563eb);
1479
+ box-shadow: 0 0 0 2px var(--dt-text, #0f0f0f);
1480
1480
  }
1481
1481
 
1482
1482
  /* ─── Focus-visible ──────────────────────────────── */
1483
1483
  .wg-cell:focus-visible {
1484
- outline: 2px solid var(--dt-accent, #2563eb);
1484
+ outline: 2px solid var(--dt-text, #0f0f0f);
1485
1485
  outline-offset: -2px;
1486
1486
  }
1487
1487
 
1488
1488
  .wg-ev:focus-visible {
1489
1489
  outline: none;
1490
- box-shadow: 0 0 0 2px var(--dt-accent, #2563eb);
1490
+ box-shadow: 0 0 0 2px var(--dt-accent, #1d4fd7);
1491
1491
  }
1492
1492
 
1493
1493
  .wg-ev--dragging {
1494
1494
  cursor: grabbing;
1495
- background: var(--dt-hover, rgba(0, 0, 0, 0.04));
1495
+ background: var(--dt-hover, rgba(15, 15, 15, 0.04));
1496
1496
  box-shadow: inset 0 0 0 1px var(--ev-color);
1497
1497
  }
1498
1498
  </style>