@bimetal/calendar-svelte-components 0.30.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -120,14 +120,14 @@
120
120
 
121
121
  function handleGridClick(e: MouseEvent) {
122
122
  if (!click.accept(config.clickThresholdMs)) return;
123
- if ((e.target as HTMLElement).closest('.time-event')) return;
123
+ if ((e.target as HTMLElement).closest('.bm-cal-time-event')) return;
124
124
  // Single click on empty grid deselects; create-dialog moves to dblclick.
125
125
  if (ctx.selectedEventId !== null) ctx.onClearSelection();
126
126
  }
127
127
 
128
128
  function handleGridDoubleClick(e: MouseEvent) {
129
129
  if (!click.accept(config.clickThresholdMs)) return;
130
- if ((e.target as HTMLElement).closest('.time-event')) return;
130
+ if ((e.target as HTMLElement).closest('.bm-cal-time-event')) return;
131
131
  if (!gridInnerEl) return;
132
132
  const gridRect = gridInnerEl.getBoundingClientRect();
133
133
  const hit = timeGridHit({ x: e.clientX, y: e.clientY }, gridRect, { labelWidth: DEFAULT_TIME_LABEL_WIDTH_WEEK, hourHeight: DEFAULT_HOUR_HEIGHT, snapMinutes: timeSnapMinutes });
@@ -139,15 +139,15 @@
139
139
  }
140
140
  </script>
141
141
 
142
- <div class="week-view">
142
+ <div class="bm-cal-week">
143
143
  <!-- Header -->
144
- <div class="week-view__header">
145
- <div class="week-view__corner">{config.locale.calendarWeek} {weekNumber}</div>
144
+ <div class="bm-cal-week__header">
145
+ <div class="bm-cal-week__corner">{config.locale.calendarWeek} {weekNumber}</div>
146
146
  {#each weekDates as date, i (i)}
147
147
  {@const isToday = isSameDay(date, currentNow)}
148
- <div class="week-view__day-header{isToday ? ' week-view__day-header--today' : ''}">
149
- <span class="week-view__day-name">{config.locale.dayNamesShort[i]}</span>
150
- <span class="week-view__day-number{isToday ? ' week-view__day-number--today' : ''}">
148
+ <div class="bm-cal-week__day-header{isToday ? ' bm-cal-week__day-header--today' : ''}">
149
+ <span class="bm-cal-week__day-name">{config.locale.dayNamesShort[i]}</span>
150
+ <span class="bm-cal-week__day-number{isToday ? ' bm-cal-week__day-number--today' : ''}">
151
151
  {getDayOfMonth(date)}
152
152
  </span>
153
153
  </div>
@@ -160,7 +160,7 @@
160
160
  <!-- Time grid -->
161
161
  <div
162
162
  bind:this={timeGridEl}
163
- class="week-view__time-grid"
163
+ class="bm-cal-week__time-grid"
164
164
  role="grid"
165
165
  tabindex="0"
166
166
  ondragover={handleGridDragOver}
@@ -173,7 +173,7 @@
173
173
  >
174
174
  <div
175
175
  bind:this={gridInnerEl}
176
- class="week-view__time-grid-inner"
176
+ class="bm-cal-week__time-grid-inner"
177
177
  style="height: {24 * DEFAULT_HOUR_HEIGHT}px;"
178
178
  >
179
179
  <!-- Hour rows -->
@@ -181,10 +181,10 @@
181
181
  {@const wh = config.core.workingHours}
182
182
  {@const isOff = wh ? (hr < wh.start || hr >= wh.end) : false}
183
183
  <div
184
- class="week-view__hour-row{isOff ? ' hour-slot--off' : ''}"
184
+ class="bm-cal-week__hour-row{isOff ? ' bm-cal__hour-slot--off' : ''}"
185
185
  style="top: {hr * DEFAULT_HOUR_HEIGHT}px; height: {DEFAULT_HOUR_HEIGHT}px;"
186
186
  >
187
- <div class="week-view__hour-label">
187
+ <div class="bm-cal-week__hour-label">
188
188
  {hr > 0 ? `${String(hr).padStart(2, '0')}:00` : ''}
189
189
  </div>
190
190
  </div>
@@ -193,7 +193,7 @@
193
193
  <!-- Day columns -->
194
194
  {#each weekDates as _, col (col)}
195
195
  <div
196
- class="week-view__day-col"
196
+ class="bm-cal-week__day-col"
197
197
  style="left: calc({DEFAULT_TIME_LABEL_WIDTH_WEEK}px + {col} * (100% - {DEFAULT_TIME_LABEL_WIDTH_WEEK}px) / 7); width: calc((100% - {DEFAULT_TIME_LABEL_WIDTH_WEEK}px) / 7);"
198
198
  ></div>
199
199
  {/each}
@@ -221,10 +221,10 @@
221
221
  <!-- Now line -->
222
222
  {#if nowCol >= 0}
223
223
  <div
224
- class="week-view__now-line"
224
+ class="bm-cal-week__now-line"
225
225
  style="top: {nowHours * DEFAULT_HOUR_HEIGHT}px; left: calc({DEFAULT_TIME_LABEL_WIDTH_WEEK}px + {nowCol} * (100% - {DEFAULT_TIME_LABEL_WIDTH_WEEK}px) / 7); width: calc((100% - {DEFAULT_TIME_LABEL_WIDTH_WEEK}px) / 7);"
226
226
  >
227
- <div class="week-view__now-dot"></div>
227
+ <div class="bm-cal-week__now-dot"></div>
228
228
  </div>
229
229
  {/if}
230
230
  </div>
@@ -51,22 +51,22 @@
51
51
  }
52
52
  </script>
53
53
 
54
- <div class="year-grid">
54
+ <div class="bm-cal-year">
55
55
  {#each months as { month, label, weeks } (month)}
56
- <div class="year-month">
56
+ <div class="bm-cal-year-month">
57
57
  {#if onMonthClick}
58
- <button type="button" class="year-month__header" onclick={() => onMonthClick?.(year, month)}>
58
+ <button type="button" class="bm-cal-year-month__header" onclick={() => onMonthClick?.(year, month)}>
59
59
  {label}
60
60
  </button>
61
61
  {:else}
62
- <div class="year-month__header">{label}</div>
62
+ <div class="bm-cal-year-month__header">{label}</div>
63
63
  {/if}
64
- <div class="year-month__day-headers">
64
+ <div class="bm-cal-year-month__day-headers">
65
65
  {#each config.locale.dayNamesShort as n (n)}
66
- <div class="year-month__day-header">{n[0]}</div>
66
+ <div class="bm-cal-year-month__day-header">{n[0]}</div>
67
67
  {/each}
68
68
  </div>
69
- <div class="year-month__days">
69
+ <div class="bm-cal-year-month__days">
70
70
  {#each weeks as week, wIdx (wIdx)}
71
71
  {#each week as date (date.epochMs)}
72
72
  {@const inMonth = getMonth(date) === month}
@@ -75,14 +75,14 @@
75
75
  <button
76
76
  type="button"
77
77
  class={
78
- 'year-month__day'
79
- + (inMonth ? '' : ' year-month__day--outside')
80
- + (isToday ? ' year-month__day--today' : '')
81
- + (hasEvents ? ' year-month__day--has-events' : '')
78
+ 'bm-cal-year-month__day'
79
+ + (inMonth ? '' : ' bm-cal-year-month__day--outside')
80
+ + (isToday ? ' bm-cal-year-month__day--today' : '')
81
+ + (hasEvents ? ' bm-cal-year-month__day--has-events' : '')
82
82
  }
83
83
  onclick={(e) => dayClick(e, date)}
84
84
  >
85
- <span class="year-month__day-num">{getDayOfMonth(date)}</span>
85
+ <span class="bm-cal-year-month__day-num">{getDayOfMonth(date)}</span>
86
86
  </button>
87
87
  {/each}
88
88
  {/each}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bimetal/calendar-svelte-components",
3
- "version": "0.30.0",
3
+ "version": "0.32.0",
4
4
  "description": "Default Svelte 5 calendar UI components",
5
5
  "type": "module",
6
6
  "svelte": "./dist/index.js",
@@ -27,13 +27,14 @@
27
27
  "prepublishOnly": "npm run build"
28
28
  },
29
29
  "dependencies": {
30
- "@bimetal/svelte": "^0.30.0",
31
- "@bimetal/core": "^0.30.0",
32
- "@bimetal/calendar-core": "^0.30.0",
33
- "@bimetal/calendar-data": "^0.30.0",
34
- "@bimetal/calendar-headless": "^0.30.0",
35
- "@bimetal/calendar-rules": "^0.30.0",
36
- "@bimetal/calendar-themes": "^0.30.0"
30
+ "@bimetal/svelte": "^0.32.0",
31
+ "@bimetal/core": "^0.32.0",
32
+ "@bimetal/calendar-core": "^0.32.0",
33
+ "@bimetal/calendar-data": "^0.32.0",
34
+ "@bimetal/calendar-headless": "^0.32.0",
35
+ "@bimetal/a11y-dom": "^0.32.0",
36
+ "@bimetal/calendar-rules": "^0.32.0",
37
+ "@bimetal/calendar-themes": "^0.32.0"
37
38
  },
38
39
  "peerDependencies": {
39
40
  "svelte": "^5.46.4"