@htmlbricks/hb-calendar-appointments 0.68.5 → 0.68.7

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/manifest.json CHANGED
@@ -197,12 +197,12 @@
197
197
  "data": {
198
198
  "events": [
199
199
  {
200
- "date": "2026-03-30T21:39:25.852Z",
200
+ "date": "2026-03-30T22:06:21.128Z",
201
201
  "id": "test",
202
202
  "label": "thetest"
203
203
  },
204
204
  {
205
- "date": "2026-02-28T22:39:25.852Z",
205
+ "date": "2026-02-27T23:06:21.128Z",
206
206
  "id": "test2",
207
207
  "label": "thetest start",
208
208
  "color": "red"
@@ -223,12 +223,12 @@
223
223
  "data": {
224
224
  "events": [
225
225
  {
226
- "date": "2026-03-30T21:39:25.852Z",
226
+ "date": "2026-03-30T22:06:21.128Z",
227
227
  "id": "test",
228
228
  "label": "thetest"
229
229
  },
230
230
  {
231
- "date": "2026-02-28T22:39:25.852Z",
231
+ "date": "2026-02-27T23:06:21.128Z",
232
232
  "id": "test2",
233
233
  "label": "thetest start",
234
234
  "color": "red"
@@ -243,18 +243,18 @@
243
243
  "data": {
244
244
  "events": [
245
245
  {
246
- "date": "2026-03-30T21:39:25.852Z",
246
+ "date": "2026-03-30T22:06:21.128Z",
247
247
  "id": "test",
248
248
  "label": "thetest"
249
249
  },
250
250
  {
251
- "date": "2026-02-28T22:39:25.852Z",
251
+ "date": "2026-02-27T23:06:21.128Z",
252
252
  "id": "test2",
253
253
  "label": "thetest start",
254
254
  "color": "red"
255
255
  }
256
256
  ],
257
- "selected": "2026-03-30T21:39:25.852Z"
257
+ "selected": "2026-03-30T22:06:21.128Z"
258
258
  }
259
259
  }
260
260
  ],
@@ -279,5 +279,5 @@
279
279
  "size": {},
280
280
  "iifePath": "main.iife.js",
281
281
  "repoName": "@htmlbricks/hb-calendar-appointments",
282
- "version": "0.68.5"
282
+ "version": "0.68.7"
283
283
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@htmlbricks/hb-calendar-appointments",
3
- "version": "0.68.5",
3
+ "version": "0.68.7",
4
4
  "contributors": [],
5
5
  "description": "Month agenda view: events for the current month are grouped by calendar day and listed chronologically with weekday, day number, time, and colored markers. Optional header with month navigation; changing month or selecting a day dispatches `changeCalendarDate`, `changeSelectedDate`, and clicking a row dispatches `calendarEventClick`. Uses Italian public holidays metadata and accepts `events` as JSON.",
6
6
  "licenses": [
@@ -4,17 +4,30 @@
4
4
  */
5
5
  import type { Component, Events } from "./webcomponent.type";
6
6
 
7
+ /**
8
+ * Host properties already on `HTMLElement` (no `svelte/elements` here — DOM typings stay
9
+ * usable without Svelte). Custom `Component` keys that collide stay on the native typing.
10
+ */
7
11
  type DomKeys = keyof HTMLElement;
8
12
  type HbComponentAttrs = {
9
13
  [K in keyof Component as K extends DomKeys ? never : K]?: string;
10
14
  };
11
15
 
16
+ type HbHtmlElementWithoutListeners = Omit<
17
+ HTMLElement,
18
+ "addEventListener" | "removeEventListener"
19
+ >;
20
+
12
21
  /**
13
22
  * Re-declare listener methods so custom `Events` overloads are compatible with
14
23
  * `HTMLElement` (subclass methods must remain assignable to the base signatures).
24
+ *
25
+ * Like `svelte-elements.d.ts`, we `Omit` keys we define on `HbComponentAttrs` from the DOM
26
+ * base, then add them back: avoids `extends A, B` merging the same key with incompatible types
27
+ * if a name slips past `DomKeys`.
15
28
  */
16
29
  export interface HbCalendarAppointmentsElement
17
- extends Omit<HTMLElement, "addEventListener" | "removeEventListener">,
30
+ extends Omit<HbHtmlElementWithoutListeners, keyof HbComponentAttrs>,
18
31
  HbComponentAttrs {
19
32
  addEventListener<K extends keyof HTMLElementEventMap>(
20
33
  type: K,
@@ -8,9 +8,13 @@
8
8
  import type { HTMLAttributes } from "svelte/elements";
9
9
  import type { Component, Events } from "./webcomponent.type";
10
10
 
11
- type DomKeys = keyof HTMLElement;
11
+ /**
12
+ * Keys already modeled on `HTMLAttributes` (global attrs + DOM listeners). Exclude these from
13
+ * `Component` so host props stay plain strings and are not merged with unrelated DOM typings.
14
+ */
15
+ type HtmlReservedAttrKeys = keyof HTMLAttributes<HTMLElement>;
12
16
  type HbSvelteAttrs = {
13
- [K in keyof Component as K extends DomKeys ? never : K]?: string;
17
+ [K in keyof Component as K extends HtmlReservedAttrKeys ? never : K]?: string;
14
18
  };
15
19
 
16
20
  /** `detail` matches `Events[K]`; `currentTarget` is the host element. */
@@ -26,9 +30,21 @@ type HbSvelteEventAttrs = {
26
30
  [K in keyof Events & string as `on:${K}`]?: HbSvelteCustomEventHandler<Events[K]>;
27
31
  };
28
32
 
33
+ /**
34
+ * Strip keys we re-declare from Svelte’s base, then add them back: plain intersection would
35
+ * merge `on*` / attrs with conflicting DOM typings (`string & EventHandler` → errors or
36
+ * props treated like listeners).
37
+ */
38
+ type HbSvelteHostAttributes = Omit<
39
+ HTMLAttributes<HTMLElement>,
40
+ keyof HbSvelteAttrs | keyof HbSvelteEventAttrs
41
+ > &
42
+ HbSvelteAttrs &
43
+ HbSvelteEventAttrs;
44
+
29
45
  declare module "svelte/elements" {
30
46
  export interface SvelteHTMLElements {
31
- "hb-calendar-appointments": HTMLAttributes<HTMLElement> & HbSvelteAttrs & HbSvelteEventAttrs;
47
+ "hb-calendar-appointments": HbSvelteHostAttributes;
32
48
  }
33
49
  }
34
50