@pacem/pacem-ui 2.0.0-goldbach → 2.0.0-hadamard

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.
Files changed (54) hide show
  1. package/dist/browser/pacem-ui.js +228 -145
  2. package/dist/browser/pacem-ui.js.map +1 -1
  3. package/dist/browser/pacem-ui.min.js +2 -2
  4. package/dist/bundle/pacem-ui.min.mjs +71 -71
  5. package/dist/bundle/pacem-ui.mjs +282 -226
  6. package/dist/bundle/pacem-ui.mjs.map +4 -4
  7. package/dist/docs/pacem-ui.json +171 -149
  8. package/dist/esm/adapter.js +1 -1
  9. package/dist/esm/anchor.js +1 -1
  10. package/dist/esm/balloon.js +94 -28
  11. package/dist/esm/binder.js +1 -1
  12. package/dist/esm/blade.js +1 -1
  13. package/dist/esm/bottom-sheet.js +1 -1
  14. package/dist/esm/button.js +4 -5
  15. package/dist/esm/buttonset.js +1 -1
  16. package/dist/esm/calendar.js +1 -1
  17. package/dist/esm/collapse.js +1 -1
  18. package/dist/esm/dialog-abstractions.js +17 -5
  19. package/dist/esm/dialog.js +1 -1
  20. package/dist/esm/divider.js +1 -1
  21. package/dist/esm/icon.js +1 -1
  22. package/dist/esm/image.js +1 -1
  23. package/dist/esm/index-components-ui.js +1 -1
  24. package/dist/esm/index-components.js +1 -1
  25. package/dist/esm/index-iife.js +1 -1
  26. package/dist/esm/index.js +1 -1
  27. package/dist/esm/infinite-scroller.js +1 -1
  28. package/dist/esm/iterative.js +1 -1
  29. package/dist/esm/lightbox-abstractions.js +1 -1
  30. package/dist/esm/lightbox.js +1 -1
  31. package/dist/esm/loader.js +1 -1
  32. package/dist/esm/markdown-svc.js +1 -1
  33. package/dist/esm/markdown.js +1 -1
  34. package/dist/esm/marquee.js +1 -1
  35. package/dist/esm/media-query.js +1 -1
  36. package/dist/esm/menu.js +1 -1
  37. package/dist/esm/pager.js +1 -1
  38. package/dist/esm/picture.js +1 -1
  39. package/dist/esm/progressbar.js +1 -1
  40. package/dist/esm/sidebar.js +1 -1
  41. package/dist/esm/slideshow.js +1 -1
  42. package/dist/esm/social-twitter.js +1 -1
  43. package/dist/esm/sticky-header.js +1 -1
  44. package/dist/esm/tabs.js +1 -1
  45. package/dist/esm/ticker.js +5 -2
  46. package/dist/esm/toast.js +1 -1
  47. package/dist/esm/toc.js +1 -1
  48. package/dist/esm/tuner.js +1 -1
  49. package/dist/esm/types.js +1 -1
  50. package/dist/esm/vibration.js +1 -1
  51. package/dist/esm/view.js +1 -1
  52. package/dist/esm/window.js +1 -1
  53. package/package.json +1 -1
  54. package/typings/index.d.ts +47 -10
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-ui v2.0.0-goldbach (https://js.pacem.it)
2
+ * @pacem/pacem-ui v2.0.0-hadamard (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -18,11 +18,13 @@ __export(index_components_exports, {
18
18
  // packages/ui/dist/esm/index-components-ui.js
19
19
  var index_components_ui_exports = {};
20
20
  __export(index_components_ui_exports, {
21
+ AVAILABLE_HEIGHT_VAR: () => AVAILABLE_HEIGHT_VAR,
21
22
  AdapterOrientation: () => AdapterOrientation,
22
23
  AdapterPageButtonRefreshEvent: () => AdapterPageButtonRefreshEvent,
23
24
  AdapterPageButtonRefreshEventName: () => AdapterPageButtonRefreshEventName,
24
25
  BalloonAlignment: () => BalloonAlignment,
25
26
  BalloonBehavior: () => BalloonBehavior,
27
+ BalloonPlacement: () => BalloonPlacement,
26
28
  BalloonPopoutEventName: () => BalloonPopoutEventName,
27
29
  BalloonPopupEventName: () => BalloonPopupEventName,
28
30
  BalloonPosition: () => BalloonPosition,
@@ -628,16 +630,21 @@ var BalloonAlignment;
628
630
  BalloonAlignment2["End"] = "end";
629
631
  BalloonAlignment2["Auto"] = "auto";
630
632
  })(BalloonAlignment || (BalloonAlignment = {}));
631
- var BalloonPosition;
632
- (function(BalloonPosition2) {
633
- BalloonPosition2["Top"] = "top";
634
- BalloonPosition2["Left"] = "left";
635
- BalloonPosition2["Bottom"] = "bottom";
636
- BalloonPosition2["Right"] = "right";
637
- BalloonPosition2["Auto"] = "auto";
638
- BalloonPosition2["HorizontalAuto"] = "x";
639
- BalloonPosition2["VerticalAuto"] = "y";
640
- })(BalloonPosition || (BalloonPosition = {}));
633
+ var BalloonPlacement = {
634
+ Top: "top",
635
+ Left: "left",
636
+ Bottom: "bottom",
637
+ Right: "right"
638
+ };
639
+ var BalloonPlacementOption = {
640
+ Auto: "auto",
641
+ HorizontalAuto: "x",
642
+ VerticalAuto: "y"
643
+ };
644
+ var BalloonPosition = {
645
+ ...BalloonPlacement,
646
+ ...BalloonPlacementOption
647
+ };
641
648
  var BalloonSizing;
642
649
  (function(BalloonSizing2) {
643
650
  BalloonSizing2["Auto"] = "auto";
@@ -659,6 +666,8 @@ var BalloonConsts = {
659
666
  "track": true
660
667
  }
661
668
  };
669
+ var AVAILABLE_HEIGHT_VAR = "--pacem-balloon-available-height";
670
+ var AVAILABLE_HEIGHT_GUTTER = 8;
662
671
  var positioningStyles = "balloon-right balloon-left balloon-bottom balloon-top balloon-start balloon-center balloon-end";
663
672
  var allStyles = PCSS3 + "-balloon " + positioningStyles + " balloon-out balloon-in balloon-on";
664
673
  var PacemBalloonElement = class PacemBalloonElement2 extends Components3.PacemElement {
@@ -843,6 +852,32 @@ var PacemBalloonElement = class PacemBalloonElement2 extends Components3.PacemEl
843
852
  this._adjust();
844
853
  }
845
854
  }
855
+ /**
856
+ * The side {@link BalloonOptions.prefer} asks for, when the balloon fits there (its natural size, on that side of the
857
+ * target, within the viewport); `null` otherwise, or when nothing is preferred.
858
+ * @param room The room around the target, per side.
859
+ */
860
+ _preferredSide(opts, room) {
861
+ const prefer = opts.prefer;
862
+ if (Utils3.isNull(prefer) || !(prefer in room)) {
863
+ return null;
864
+ }
865
+ const isVertical = prefer === BalloonPlacement.Top || prefer === BalloonPlacement.Bottom;
866
+ const size = isVertical ? this.offsetHeight : this.offsetWidth;
867
+ const fits = size + AVAILABLE_HEIGHT_GUTTER <= room[prefer];
868
+ return fits ? prefer : null;
869
+ }
870
+ /** The room left on a side of the target (the whole viewport height for a side that is not above or below). */
871
+ _availableHeight(position, offsetTop, offsetBottom, viewportHeight) {
872
+ switch (position) {
873
+ case BalloonPosition.Top:
874
+ return Math.max(offsetTop - AVAILABLE_HEIGHT_GUTTER, 0);
875
+ case BalloonPosition.Bottom:
876
+ return Math.max(offsetBottom - AVAILABLE_HEIGHT_GUTTER, 0);
877
+ default:
878
+ return viewportHeight;
879
+ }
880
+ }
846
881
  _adjust() {
847
882
  const popup = this, el = popup.target;
848
883
  if (Utils3.isNull(el)) {
@@ -852,22 +887,31 @@ var PacemBalloonElement = class PacemBalloonElement2 extends Components3.PacemEl
852
887
  const vieportSize = Utils3.windowSize;
853
888
  var opts = this._options;
854
889
  var chosenPosition = opts.position, chosenAlignment = opts.align;
890
+ const viewportHeight = vieportSize.height;
891
+ const viewportWidth = vieportSize.width;
892
+ const offsetLeft = coords.left - Utils3.scrollLeft;
893
+ const offsetTop = coords.top - Utils3.scrollTop;
894
+ const offsetBottom = viewportHeight - (offsetTop + coords.height);
895
+ const offsetRight = viewportWidth - (offsetLeft + coords.width);
896
+ popup.style.removeProperty(AVAILABLE_HEIGHT_VAR);
855
897
  if (chosenPosition != BalloonPosition.Top && chosenPosition != BalloonPosition.Bottom && chosenPosition != BalloonPosition.Left && chosenPosition != BalloonPosition.Right) {
856
- let viewportHeight = vieportSize.height;
857
- let viewportWidth = vieportSize.width;
858
- const offsetLeft = coords.left - Utils3.scrollLeft;
859
- const offsetTop = coords.top - Utils3.scrollTop;
860
- const offsetBottom = viewportHeight - (offsetTop + coords.height);
861
- const offsetRight = viewportWidth - (offsetLeft + coords.width);
862
- switch (chosenPosition) {
863
- case BalloonPosition.HorizontalAuto:
864
- chosenPosition = offsetLeft > offsetRight ? BalloonPosition.Left : BalloonPosition.Right;
865
- break;
866
- default:
867
- chosenPosition = offsetTop > offsetBottom ? BalloonPosition.Top : BalloonPosition.Bottom;
868
- break;
898
+ const room = { top: offsetTop, bottom: offsetBottom, left: offsetLeft, right: offsetRight };
899
+ const preferred = this._preferredSide(opts, room);
900
+ if (!Utils3.isNull(preferred)) {
901
+ chosenPosition = preferred;
902
+ } else {
903
+ switch (chosenPosition) {
904
+ case BalloonPosition.HorizontalAuto:
905
+ chosenPosition = offsetLeft > offsetRight ? BalloonPosition.Left : BalloonPosition.Right;
906
+ break;
907
+ default:
908
+ chosenPosition = offsetTop > offsetBottom ? BalloonPosition.Top : BalloonPosition.Bottom;
909
+ break;
910
+ }
869
911
  }
870
912
  }
913
+ const availableHeight = this._availableHeight(chosenPosition, offsetTop, offsetBottom, viewportHeight);
914
+ popup.style.setProperty(AVAILABLE_HEIGHT_VAR, `${availableHeight}px`);
871
915
  if (opts.size === BalloonSizing.Match) {
872
916
  switch (chosenPosition) {
873
917
  case BalloonPosition.Bottom:
@@ -1026,11 +1070,12 @@ var PacemBalloonElement = class PacemBalloonElement2 extends Components3.PacemEl
1026
1070
  this._timer = setTimeout(() => this.popup(), delay);
1027
1071
  return;
1028
1072
  }
1029
- const popup = this, isVisible = Utils3.isVisible(popup);
1073
+ const popup = this, isVisible = Utils3.isVisible(popup), isLeaving = Utils3.hasClass(popup, "balloon-out");
1030
1074
  this._adjustWatchers(true);
1031
- if (isVisible || this.disabled) {
1075
+ if (isVisible && !isLeaving || this.disabled) {
1032
1076
  return;
1033
1077
  }
1078
+ Utils3.removeClass(popup, "balloon-out");
1034
1079
  this._registerEvents();
1035
1080
  popup.style.pointerEvents = "none";
1036
1081
  this._visible = true;
@@ -1064,6 +1109,9 @@ var PacemBalloonElement = class PacemBalloonElement2 extends Components3.PacemEl
1064
1109
  Utils3.removeClass(popup, "balloon-in balloon-on");
1065
1110
  Utils3.addClass(popup, "balloon-out");
1066
1111
  Utils3.addAnimationEndCallback(popup, () => {
1112
+ if (!Utils3.hasClass(popup, "balloon-out")) {
1113
+ return;
1114
+ }
1067
1115
  popup.style.visibility = "hidden";
1068
1116
  this._visible = false;
1069
1117
  Utils3.removeClass(popup, allStyles);
@@ -1146,7 +1194,7 @@ PacemBalloonElement = __decorate3([
1146
1194
  shadow: true,
1147
1195
  template: `<${P3}-resize target="{{ :host.target }}" disabled="true" watch-position="true" on-${Components3.ResizeEventName}=":host._onLayoutChange($event)"></${P3}-resize>
1148
1196
  <div class="${PCSS3}-balloon-face"></div>
1149
- <div class="${PCSS3}-balloon"><${P3}-resize on-${Components3.ResizeEventName}=":host._onLayoutChange($event)" disabled="true" content><slot></slot></${P3}-resize></div>
1197
+ <div class="${PCSS3}-balloon"><${P3}-resize on-${Components3.ResizeEventName}=":host._onLayoutChange($event)" disabled="true" content style="display: block"><slot></slot></${P3}-resize></div>
1150
1198
  <div class="corner top-left" part="corner-topleft"></div><div class="corner bottom-left" part="corner-bottomleft"></div><div class="corner top-right" part="corner-topright"></div><div class="corner bottom-right" part="corner-bottomright"></div>`
1151
1199
  })
1152
1200
  ], PacemBalloonElement);
@@ -2193,79 +2241,14 @@ PacemBottomSheetElement = __decorate6([
2193
2241
  ], PacemBottomSheetElement);
2194
2242
 
2195
2243
  // packages/ui/dist/esm/button.js
2196
- import { P as P7, PCSS as PCSS6, CustomElement as CustomElement7, Watch as Watch8, Utils as Utils8, PropertyConverters as PropertyConverters7, Components as Components8, CommandEvent } from "@pacem/pacem-core";
2197
-
2198
- // packages/ui/dist/esm/dialog-abstractions.js
2199
- import { Watch as Watch7, Utils as Utils7, Components as Components7, CustomTypedEvent, Logging, avoidHandler as avoidHandler3 } from "@pacem/pacem-core";
2244
+ import { P as P7, PCSS as PCSS6, CustomElement as CustomElement7, Watch as Watch7, Utils as Utils7, PropertyConverters as PropertyConverters7, Components as Components7, CommandEvent } from "@pacem/pacem-core";
2200
2245
  var __decorate7 = function(decorators, target, key, desc) {
2201
2246
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2202
2247
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2203
2248
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2204
2249
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2205
2250
  };
2206
- var DialogButtons;
2207
- (function(DialogButtons2) {
2208
- DialogButtons2["YesNo"] = "yesno";
2209
- DialogButtons2["YesNoCancel"] = "yesnocancel";
2210
- DialogButtons2["Ok"] = "ok";
2211
- DialogButtons2["OkCancel"] = "okcancel";
2212
- })(DialogButtons || (DialogButtons = {}));
2213
- var DialogButton;
2214
- (function(DialogButton2) {
2215
- DialogButton2["Yes"] = "yes";
2216
- DialogButton2["No"] = "no";
2217
- DialogButton2["Cancel"] = "cancel";
2218
- DialogButton2["Ok"] = "ok";
2219
- })(DialogButton || (DialogButton = {}));
2220
- var DialogResultEventName = "commit";
2221
- var DialogResultEvent = class extends CustomTypedEvent {
2222
- constructor(args) {
2223
- super(DialogResultEventName, args);
2224
- }
2225
- };
2226
- var PacemDialogBase = class extends Components7.PacemElement {
2227
- #deferred;
2228
- /** Opens the dialog, optionally seeding its `state`. @returns A promise resolved with the {@link DialogResultEventArgs} once the dialog is committed. */
2229
- open(state) {
2230
- const lb = this.lightbox;
2231
- if (!Utils7.isNull(this.#deferred)) {
2232
- throw `Dialog already open.`;
2233
- }
2234
- const deferred = this.#deferred = Promise.withResolvers();
2235
- if (this.hide || this.disabled) {
2236
- this.log(Logging.LogLevel.Warn, "Dialog hidden or disabled, opening forbidden.");
2237
- deferred.reject();
2238
- } else {
2239
- this.dispatchEvent(new Event("open"));
2240
- lb.show = true;
2241
- this.state = state;
2242
- }
2243
- return deferred.promise;
2244
- }
2245
- /** Closes the dialog with the given button outcome, resolving the pending `open()` promise and dispatching a {@link DialogResultEvent}. */
2246
- commit(btn, evt) {
2247
- avoidHandler3(evt);
2248
- this.log(Logging.LogLevel.Debug, `Committing dialog by clicking '${btn}'.`);
2249
- const state = this.state;
2250
- var drevt = new DialogResultEvent({ button: btn, state });
2251
- this.lightbox.show = false;
2252
- this.#deferred.resolve(drevt.detail);
2253
- this.#deferred = null;
2254
- this.dispatchEvent(drevt);
2255
- }
2256
- };
2257
- __decorate7([
2258
- Watch7()
2259
- ], PacemDialogBase.prototype, "state", void 0);
2260
-
2261
- // packages/ui/dist/esm/button.js
2262
- var __decorate8 = function(decorators, target, key, desc) {
2263
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2264
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2265
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2266
- return c > 3 && r && Object.defineProperty(target, key, r), r;
2267
- };
2268
- var PacemButtonElement = class PacemButtonElement2 extends Components8.PacemIterableElement {
2251
+ var PacemButtonElement = class PacemButtonElement2 extends Components7.PacemIterableElement {
2269
2252
  constructor() {
2270
2253
  super("button");
2271
2254
  }
@@ -2289,68 +2272,67 @@ var PacemButtonElement = class PacemButtonElement2 extends Components8.PacemIter
2289
2272
  let fn = (ev) => {
2290
2273
  super.emit(ev);
2291
2274
  if (!ev.defaultPrevented) {
2292
- if (ev.type === "click" && !Utils8.isNullOrEmpty(this.commandName)) {
2275
+ if (ev.type === "click" && !Utils7.isNullOrEmpty(this.commandName)) {
2293
2276
  this.dispatchEvent(new CommandEvent({ commandName: this.commandName, commandArgument: this.commandArgument }));
2294
2277
  }
2295
2278
  switch (ev.type) {
2296
2279
  case "mousedown":
2297
2280
  if (evt.button === 0) {
2298
- Utils8.addClass(this, PCSS6 + "-active");
2281
+ Utils7.addClass(this, PCSS6 + "-active");
2299
2282
  }
2300
2283
  break;
2301
2284
  case "pointerdown":
2302
- Utils8.addClass(this, PCSS6 + "-active");
2285
+ Utils7.addClass(this, PCSS6 + "-active");
2303
2286
  break;
2304
2287
  case "keydown":
2305
2288
  if (ev.keyCode === 32 || ev.keyCode === 13) {
2306
2289
  evt.preventDefault();
2307
- Utils8.addClass(this, PCSS6 + "-active");
2290
+ Utils7.addClass(this, PCSS6 + "-active");
2308
2291
  }
2309
2292
  break;
2310
2293
  case "blur":
2311
2294
  case "mouseup":
2312
2295
  case "pointerup":
2313
2296
  case "click":
2314
- Utils8.removeClass(this, PCSS6 + "-active");
2297
+ Utils7.removeClass(this, PCSS6 + "-active");
2315
2298
  break;
2316
2299
  case "keyup":
2317
2300
  if (ev.keyCode === 32 || ev.keyCode === 13) {
2318
2301
  this.click();
2319
- Utils8.removeClass(this, PCSS6 + "-active");
2302
+ Utils7.removeClass(this, PCSS6 + "-active");
2320
2303
  }
2321
2304
  break;
2322
2305
  }
2323
2306
  }
2324
2307
  };
2325
- if (!this.disabled && evt.type === "click" && !Utils8.isNull(this.confirmationDialog)) {
2326
- this.confirmationDialog.open(this.confirmationMessage).then((r) => {
2327
- if (r.button === DialogButton.Yes || r.button === DialogButton.Ok)
2328
- fn(evt);
2308
+ if (!this.disabled && evt.type === "click" && !Utils7.isNull(this.confirmationDialog)) {
2309
+ this.confirmationDialog.open(this.confirmationMessage, true).then((r) => {
2310
+ fn(evt);
2329
2311
  });
2330
2312
  } else if (!(evt instanceof MouseEvent) || evt.button === 0) {
2331
2313
  fn(evt);
2332
2314
  }
2333
2315
  }
2334
2316
  };
2335
- __decorate8([
2336
- Watch8({ emit: false, converter: PropertyConverters7.String })
2317
+ __decorate7([
2318
+ Watch7({ emit: false, converter: PropertyConverters7.String })
2337
2319
  ], PacemButtonElement.prototype, "iconGlyph", void 0);
2338
- __decorate8([
2339
- Watch8({ emit: false, converter: PropertyConverters7.String })
2320
+ __decorate7([
2321
+ Watch7({ emit: false, converter: PropertyConverters7.String })
2340
2322
  ], PacemButtonElement.prototype, "iconUrl", void 0);
2341
- __decorate8([
2342
- Watch8({ emit: false, converter: PropertyConverters7.String })
2323
+ __decorate7([
2324
+ Watch7({ emit: false, converter: PropertyConverters7.String })
2343
2325
  ], PacemButtonElement.prototype, "commandName", void 0);
2344
- __decorate8([
2345
- Watch8({ emit: false, converter: PropertyConverters7.Json })
2326
+ __decorate7([
2327
+ Watch7({ emit: false, converter: PropertyConverters7.Json })
2346
2328
  ], PacemButtonElement.prototype, "commandArgument", void 0);
2347
- __decorate8([
2348
- Watch8({ emit: false, converter: PropertyConverters7.String })
2329
+ __decorate7([
2330
+ Watch7({ emit: false, converter: PropertyConverters7.String })
2349
2331
  ], PacemButtonElement.prototype, "confirmationMessage", void 0);
2350
- __decorate8([
2351
- Watch8({ emit: false, converter: PropertyConverters7.Element })
2332
+ __decorate7([
2333
+ Watch7({ emit: false, converter: PropertyConverters7.Element })
2352
2334
  ], PacemButtonElement.prototype, "confirmationDialog", void 0);
2353
- PacemButtonElement = __decorate8([
2335
+ PacemButtonElement = __decorate7([
2354
2336
  CustomElement7({
2355
2337
  tagName: P7 + "-button",
2356
2338
  modifiers: ["hoverable", "focusable", "clickable"]
@@ -2358,14 +2340,14 @@ PacemButtonElement = __decorate8([
2358
2340
  ], PacemButtonElement);
2359
2341
 
2360
2342
  // packages/ui/dist/esm/buttonset.js
2361
- import { P as P8, CustomElement as CustomElement8, Components as Components9 } from "@pacem/pacem-core";
2362
- var __decorate9 = function(decorators, target, key, desc) {
2343
+ import { P as P8, CustomElement as CustomElement8, Components as Components8 } from "@pacem/pacem-core";
2344
+ var __decorate8 = function(decorators, target, key, desc) {
2363
2345
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2364
2346
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2365
2347
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2366
2348
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2367
2349
  };
2368
- var PacemButtonsetElement = class PacemButtonsetElement2 extends Components9.PacemIterativeElement {
2350
+ var PacemButtonsetElement = class PacemButtonsetElement2 extends Components8.PacemIterativeElement {
2369
2351
  connectedCallback() {
2370
2352
  super.connectedCallback();
2371
2353
  if (!("tabindex" in this.attributes))
@@ -2390,15 +2372,15 @@ var PacemButtonsetElement = class PacemButtonsetElement2 extends Components9.Pac
2390
2372
  return item instanceof PacemButtonElement;
2391
2373
  }
2392
2374
  };
2393
- PacemButtonsetElement = __decorate9([
2375
+ PacemButtonsetElement = __decorate8([
2394
2376
  CustomElement8({
2395
2377
  tagName: P8 + "-buttonset"
2396
2378
  })
2397
2379
  ], PacemButtonsetElement);
2398
2380
 
2399
2381
  // packages/ui/dist/esm/calendar.js
2400
- import { P as P9, PCSS as PCSS7, CustomElement as CustomElement9, Watch as Watch9, ViewChild as ViewChild4, Utils as Utils9, PropertyConverters as PropertyConverters8, Components as Components10, CustomTypedEvent as CustomTypedEvent2, PropertyChangeEvent as PropertyChangeEvent3, Defaults as Defaults2, CustomElementUtils as CustomElementUtils4, Debounce as Debounce2, PropertyChangeEventName } from "@pacem/pacem-core";
2401
- var __decorate10 = function(decorators, target, key, desc) {
2382
+ import { P as P9, PCSS as PCSS7, CustomElement as CustomElement9, Watch as Watch8, ViewChild as ViewChild4, Utils as Utils8, PropertyConverters as PropertyConverters8, Components as Components9, CustomTypedEvent, PropertyChangeEvent as PropertyChangeEvent3, Defaults as Defaults2, CustomElementUtils as CustomElementUtils4, Debounce as Debounce2, PropertyChangeEventName } from "@pacem/pacem-core";
2383
+ var __decorate9 = function(decorators, target, key, desc) {
2402
2384
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2403
2385
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2404
2386
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -2410,17 +2392,17 @@ var CalendarZoom;
2410
2392
  CalendarZoom2["Week"] = "week";
2411
2393
  CalendarZoom2["Day"] = "day";
2412
2394
  })(CalendarZoom || (CalendarZoom = {}));
2413
- var ViewDateChangeEvent = class extends CustomTypedEvent2 {
2395
+ var ViewDateChangeEvent = class extends CustomTypedEvent {
2414
2396
  constructor(date) {
2415
2397
  super("viewdatechange", date);
2416
2398
  }
2417
2399
  };
2418
- var DateSelectEvent = class extends CustomTypedEvent2 {
2400
+ var DateSelectEvent = class extends CustomTypedEvent {
2419
2401
  constructor(date) {
2420
2402
  super("dateselect", date, { bubbles: true });
2421
2403
  }
2422
2404
  };
2423
- var TimeSelectEvent = class extends CustomTypedEvent2 {
2405
+ var TimeSelectEvent = class extends CustomTypedEvent {
2424
2406
  constructor(date) {
2425
2407
  super("timeselect", date, { bubbles: true });
2426
2408
  }
@@ -2478,51 +2460,51 @@ var DAY_HOURS = [
2478
2460
  23.5
2479
2461
  ];
2480
2462
  var now = /* @__PURE__ */ new Date();
2481
- var DUMMY_DATE = Utils9.Dates.dateOnly(now).valueOf();
2463
+ var DUMMY_DATE = Utils8.Dates.dateOnly(now).valueOf();
2482
2464
  var DAYS_OF_WEEK = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
2483
- var PacemCalendarEventElement = class PacemCalendarEventElement2 extends Components10.PacemItemElement {
2465
+ var PacemCalendarEventElement = class PacemCalendarEventElement2 extends Components9.PacemItemElement {
2484
2466
  propertyChangedCallback(name, old, val, first) {
2485
2467
  super.propertyChangedCallback(name, old, val, first);
2486
2468
  cancelAnimationFrame(this._handle);
2487
2469
  this._handle = requestAnimationFrame(() => {
2488
2470
  let container = this.container;
2489
- if (!Utils9.isNull(container)) {
2471
+ if (!Utils8.isNull(container)) {
2490
2472
  container.dispatchEvent(new PropertyChangeEvent3({ propertyName: "items", oldValue: container.items, currentValue: container.items }));
2491
2473
  }
2492
2474
  });
2493
2475
  }
2494
2476
  };
2495
- __decorate10([
2496
- Watch9({ converter: PropertyConverters8.Datetime })
2477
+ __decorate9([
2478
+ Watch8({ converter: PropertyConverters8.Datetime })
2497
2479
  ], PacemCalendarEventElement.prototype, "start", void 0);
2498
- __decorate10([
2499
- Watch9({ converter: PropertyConverters8.Datetime })
2480
+ __decorate9([
2481
+ Watch8({ converter: PropertyConverters8.Datetime })
2500
2482
  ], PacemCalendarEventElement.prototype, "end", void 0);
2501
- __decorate10([
2502
- Watch9({ converter: PropertyConverters8.String })
2483
+ __decorate9([
2484
+ Watch8({ converter: PropertyConverters8.String })
2503
2485
  ], PacemCalendarEventElement.prototype, "caption", void 0);
2504
- __decorate10([
2505
- Watch9({ converter: PropertyConverters8.Json })
2486
+ __decorate9([
2487
+ Watch8({ converter: PropertyConverters8.Json })
2506
2488
  ], PacemCalendarEventElement.prototype, "place", void 0);
2507
- __decorate10([
2508
- Watch9({ converter: PropertyConverters8.Boolean })
2489
+ __decorate9([
2490
+ Watch8({ converter: PropertyConverters8.Boolean })
2509
2491
  ], PacemCalendarEventElement.prototype, "allDay", void 0);
2510
- PacemCalendarEventElement = __decorate10([
2492
+ PacemCalendarEventElement = __decorate9([
2511
2493
  CustomElement9({
2512
2494
  tagName: P9 + "-calendar-event"
2513
2495
  })
2514
2496
  ], PacemCalendarEventElement);
2515
- var CalendarEventSelectEvent = class extends CustomTypedEvent2 {
2497
+ var CalendarEventSelectEvent = class extends CustomTypedEvent {
2516
2498
  constructor(args) {
2517
2499
  super("eventselect", args, { bubbles: false, cancelable: true });
2518
2500
  }
2519
2501
  };
2520
- var CalendarEventUnselectEvent = class extends CustomTypedEvent2 {
2502
+ var CalendarEventUnselectEvent = class extends CustomTypedEvent {
2521
2503
  constructor(args) {
2522
2504
  super("eventunselect", args, { bubbles: false, cancelable: true });
2523
2505
  }
2524
2506
  };
2525
- var PacemCalendarBaseElement = class extends Components10.PacemItemsContainerElement {
2507
+ var PacemCalendarBaseElement = class extends Components9.PacemItemsContainerElement {
2526
2508
  validate(item) {
2527
2509
  return item instanceof PacemCalendarEventElement;
2528
2510
  }
@@ -2534,13 +2516,13 @@ var PacemCalendarBaseElement = class extends Components10.PacemItemsContainerEle
2534
2516
  switch (name) {
2535
2517
  case "viewDate":
2536
2518
  this.dispatchEvent(new ViewDateChangeEvent(val));
2537
- Utils9.removeClass(this, "viewdate-next viewdate-previous");
2519
+ Utils8.removeClass(this, "viewdate-next viewdate-previous");
2538
2520
  requestAnimationFrame(() => {
2539
- Utils9.addClass(this, old > val ? "viewdate-previous" : "viewdate-next");
2521
+ Utils8.addClass(this, old > val ? "viewdate-previous" : "viewdate-next");
2540
2522
  });
2541
2523
  break;
2542
2524
  case "zoom":
2543
- Utils9.removeClass(this, "viewdate-next viewdate-previous");
2525
+ Utils8.removeClass(this, "viewdate-next viewdate-previous");
2544
2526
  break;
2545
2527
  }
2546
2528
  }
@@ -2556,25 +2538,25 @@ var PacemCalendarBaseElement = class extends Components10.PacemItemsContainerEle
2556
2538
  /* fallback: month */
2557
2539
  { weekday: "short" }
2558
2540
  );
2559
- return Utils9.parseDate(d).toLocaleString(Utils9.lang(this), options);
2541
+ return Utils8.parseDate(d).toLocaleString(Utils8.lang(this), options);
2560
2542
  }
2561
2543
  getDayLabel(d) {
2562
2544
  const options = d.getDate() == 1 ? { month: "short", day: "numeric" } : { day: "numeric" };
2563
- return Utils9.parseDate(d).toLocaleString(Utils9.lang(this), options);
2545
+ return Utils8.parseDate(d).toLocaleString(Utils8.lang(this), options);
2564
2546
  }
2565
2547
  getHourLabel(d) {
2566
2548
  const options = {
2567
2549
  hour: "numeric"
2568
2550
  /*, minute: 'numeric'*/
2569
2551
  };
2570
- return Utils9.parseDate(d).toLocaleString(Utils9.lang(this), options);
2552
+ return Utils8.parseDate(d).toLocaleString(Utils8.lang(this), options);
2571
2553
  }
2572
2554
  getTimeLabel(d) {
2573
2555
  const options = { hour: "numeric", minute: "numeric" };
2574
- return Utils9.parseDate(d).toLocaleString(Utils9.lang(this), options);
2556
+ return Utils8.parseDate(d).toLocaleString(Utils8.lang(this), options);
2575
2557
  }
2576
2558
  isNow(d, now2) {
2577
- const d0 = Utils9.parseDate(d), v = Utils9.parseDate(now2 || /* @__PURE__ */ new Date());
2559
+ const d0 = Utils8.parseDate(d), v = Utils8.parseDate(now2 || /* @__PURE__ */ new Date());
2578
2560
  return d0.getHours() === v.getHours() && this.isToday(d, now2);
2579
2561
  }
2580
2562
  isToday(d, now2) {
@@ -2584,26 +2566,26 @@ var PacemCalendarBaseElement = class extends Components10.PacemItemsContainerEle
2584
2566
  return this.isDate(d, vd || this.viewDate || /* @__PURE__ */ new Date());
2585
2567
  }
2586
2568
  isDate(expected, d) {
2587
- if (!Utils9.Dates.isDate(d) || !Utils9.Dates.isDate(expected)) {
2569
+ if (!Utils8.Dates.isDate(d) || !Utils8.Dates.isDate(expected)) {
2588
2570
  return false;
2589
2571
  }
2590
- const d0 = Utils9.parseDate(expected), v = Utils9.parseDate(d);
2572
+ const d0 = Utils8.parseDate(expected), v = Utils8.parseDate(d);
2591
2573
  return d0.getDate() === v.getDate() && d0.getMonth() == v.getMonth() && d0.getFullYear() === v.getFullYear();
2592
2574
  }
2593
2575
  isViewWeek(d) {
2594
- const d0 = Utils9.parseDate(d);
2576
+ const d0 = Utils8.parseDate(d);
2595
2577
  return this.week && this.week.find((d1) => d1.getDate() == d0.getDate() && d1.getMonth() == d0.getMonth() && d1.getDate() == d0.getDate());
2596
2578
  }
2597
2579
  isViewMonth(d) {
2598
- const d0 = Utils9.parseDate(d), v = Utils9.parseDate(this.viewDate || /* @__PURE__ */ new Date());
2580
+ const d0 = Utils8.parseDate(d), v = Utils8.parseDate(this.viewDate || /* @__PURE__ */ new Date());
2599
2581
  return d0.getMonth() == v.getMonth() && d0.getFullYear() === v.getFullYear();
2600
2582
  }
2601
2583
  isTimeSlotDisabled(ranges, d, h) {
2602
- if (!Utils9.isNullOrEmpty(ranges)) {
2584
+ if (!Utils8.isNullOrEmpty(ranges)) {
2603
2585
  h = h || 0;
2604
2586
  const slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), Math.floor(h), 60 * (h % 1)), tz = slotDate.getTimezoneOffset(), slot = slotDate.valueOf() - tz * 60 * 1e3;
2605
2587
  for (let range of ranges) {
2606
- let from = Utils9.Dates.parse(range.from), to = Utils9.Dates.parse(range.to);
2588
+ let from = Utils8.Dates.parse(range.from), to = Utils8.Dates.parse(range.to);
2607
2589
  if ((!from || from && from.valueOf() <= slot) && (!to || to && to.valueOf() > slot) && (to || from)) {
2608
2590
  return true;
2609
2591
  }
@@ -2625,10 +2607,10 @@ var PacemCalendarBaseElement = class extends Components10.PacemItemsContainerEle
2625
2607
  return v + (tget - dow) * MSECS_PER_DAY;
2626
2608
  }
2627
2609
  _getDatasource(d, w = this.weekStart) {
2628
- let day = Utils9.Dates.dateOnly(Utils9.parseDate(d));
2610
+ let day = Utils8.Dates.dateOnly(Utils8.parseDate(d));
2629
2611
  const ds = this.month;
2630
2612
  let _d0 = ds && ds.length && ds[0] && ds[0].length && ds[0][0];
2631
- if (_d0 && _d0.getMonth() == day.getMonth() && _d0.getFullYear() == day.getFullYear() && ds.find((wk) => !Utils9.isNull(wk.find((dy) => dy.valueOf() == day.valueOf())))) {
2613
+ if (_d0 && _d0.getMonth() == day.getMonth() && _d0.getFullYear() == day.getFullYear() && ds.find((wk) => !Utils8.isNull(wk.find((dy) => dy.valueOf() == day.valueOf())))) {
2632
2614
  return ds;
2633
2615
  }
2634
2616
  let d1 = new Date(day.getFullYear(), day.getMonth(), 1);
@@ -2636,7 +2618,7 @@ var PacemCalendarBaseElement = class extends Components10.PacemItemsContainerEle
2636
2618
  let month = [];
2637
2619
  let week = [];
2638
2620
  do {
2639
- let date = Utils9.Dates.dateOnly(new Date(date1));
2621
+ let date = Utils8.Dates.dateOnly(new Date(date1));
2640
2622
  week.push(date);
2641
2623
  if (week.length == 7) {
2642
2624
  month.push(week.splice(0));
@@ -2647,7 +2629,7 @@ var PacemCalendarBaseElement = class extends Components10.PacemItemsContainerEle
2647
2629
  return this.month = month;
2648
2630
  }
2649
2631
  _synchronizeWeek() {
2650
- const viewDate = Utils9.parseDate(this.viewDate);
2632
+ const viewDate = Utils8.parseDate(this.viewDate);
2651
2633
  const vd = new Date(viewDate.getFullYear(), viewDate.getMonth(), 1);
2652
2634
  const ds = this._getDatasource(vd, this.weekStart);
2653
2635
  const week = ds.filter((w, j) => w.some((d) => d.getDate() == viewDate.getDate() && d.getMonth() == viewDate.getMonth() && d.getFullYear() == viewDate.getFullYear()))[0];
@@ -2656,26 +2638,26 @@ var PacemCalendarBaseElement = class extends Components10.PacemItemsContainerEle
2656
2638
  }
2657
2639
  }
2658
2640
  };
2659
- __decorate10([
2660
- Watch9({ converter: PropertyConverters8.Datetime })
2641
+ __decorate9([
2642
+ Watch8({ converter: PropertyConverters8.Datetime })
2661
2643
  ], PacemCalendarBaseElement.prototype, "viewDate", void 0);
2662
- __decorate10([
2663
- Watch9({ converter: PropertyConverters8.Datetime })
2644
+ __decorate9([
2645
+ Watch8({ converter: PropertyConverters8.Datetime })
2664
2646
  ], PacemCalendarBaseElement.prototype, "now", void 0);
2665
- __decorate10([
2666
- Watch9({ converter: PropertyConverters8.String })
2647
+ __decorate9([
2648
+ Watch8({ converter: PropertyConverters8.String })
2667
2649
  ], PacemCalendarBaseElement.prototype, "zoom", void 0);
2668
- __decorate10([
2669
- Watch9({ converter: PropertyConverters8.String })
2650
+ __decorate9([
2651
+ Watch8({ converter: PropertyConverters8.String })
2670
2652
  ], PacemCalendarBaseElement.prototype, "weekStart", void 0);
2671
- __decorate10([
2672
- Watch9({ converter: PropertyConverters8.Eval })
2653
+ __decorate9([
2654
+ Watch8({ converter: PropertyConverters8.Eval })
2673
2655
  ], PacemCalendarBaseElement.prototype, "week", void 0);
2674
- __decorate10([
2675
- Watch9({ converter: PropertyConverters8.Eval })
2656
+ __decorate9([
2657
+ Watch8({ converter: PropertyConverters8.Eval })
2676
2658
  ], PacemCalendarBaseElement.prototype, "month", void 0);
2677
- __decorate10([
2678
- Watch9({ converter: PropertyConverters8.Eval })
2659
+ __decorate9([
2660
+ Watch8({ converter: PropertyConverters8.Eval })
2679
2661
  ], PacemCalendarBaseElement.prototype, "disabledRanges", void 0);
2680
2662
  var PacemCalendarWithEventsBaseElement = class extends PacemCalendarBaseElement {
2681
2663
  constructor() {
@@ -2720,12 +2702,12 @@ var PacemCalendarWithEventsBaseElement = class extends PacemCalendarBaseElement
2720
2702
  function getWeeklyEventDataItems(items, week) {
2721
2703
  let lbound = week.length - 1, wstart = week[0].valueOf(), wend = week[lbound].valueOf();
2722
2704
  return items.filter((evt) => {
2723
- let startDate = Utils9.Dates.dateOnly(evt.start);
2724
- let endDate = Utils9.Dates.dateOnly(evt.end);
2705
+ let startDate = Utils8.Dates.dateOnly(evt.start);
2706
+ let endDate = Utils8.Dates.dateOnly(evt.end);
2725
2707
  return startDate.valueOf() <= wend && endDate.valueOf() >= wstart;
2726
2708
  }).map((evt) => {
2727
- let startDate = Utils9.Dates.dateOnly(evt.start), start = week.find((d) => d.valueOf() == startDate.valueOf()), startIndex = week.indexOf(start);
2728
- let endDate = Utils9.Dates.dateOnly(evt.end), end = week.find((d) => d.valueOf() == endDate.valueOf()), endIndex = week.indexOf(end);
2709
+ let startDate = Utils8.Dates.dateOnly(evt.start), start = week.find((d) => d.valueOf() == startDate.valueOf()), startIndex = week.indexOf(start);
2710
+ let endDate = Utils8.Dates.dateOnly(evt.end), end = week.find((d) => d.valueOf() == endDate.valueOf()), endIndex = week.indexOf(end);
2729
2711
  let ndx0 = startIndex == -1 ? 0 : startIndex, ndx1 = endIndex == -1 ? lbound : endIndex;
2730
2712
  return {
2731
2713
  start: evt.start,
@@ -2769,10 +2751,10 @@ var PacemAgendaElement = class PacemAgendaElement2 extends PacemCalendarWithEven
2769
2751
  buildDataSource(items) {
2770
2752
  var week = this.week;
2771
2753
  if (this.zoom === CalendarZoom.Day) {
2772
- week = [Utils9.Dates.dateOnly(this.viewDate)];
2754
+ week = [Utils8.Dates.dateOnly(this.viewDate)];
2773
2755
  }
2774
2756
  let ds = [];
2775
- if (!Utils9.isNull(week)) {
2757
+ if (!Utils8.isNull(week)) {
2776
2758
  this.dispatchEvent(new PropertyChangeEvent3({
2777
2759
  propertyName: "allDayDatasource",
2778
2760
  oldValue: this._allDayDatasource,
@@ -2782,8 +2764,8 @@ var PacemAgendaElement = class PacemAgendaElement2 extends PacemCalendarWithEven
2782
2764
  }));
2783
2765
  for (let j = 0; j < week.length; j++) {
2784
2766
  let day = week[j], dayValue = day.valueOf(), dayItems = items.filter((evt) => {
2785
- let startDate = Utils9.Dates.dateOnly(evt.start);
2786
- let endDate = Utils9.Dates.dateOnly(evt.end);
2767
+ let startDate = Utils8.Dates.dateOnly(evt.start);
2768
+ let endDate = Utils8.Dates.dateOnly(evt.end);
2787
2769
  return startDate.valueOf() <= dayValue && endDate.valueOf() >= dayValue;
2788
2770
  }).map((evt) => {
2789
2771
  let evtStart = evt.start.valueOf(), evtEnd = evt.end.valueOf();
@@ -2823,7 +2805,7 @@ var PacemAgendaElement = class PacemAgendaElement2 extends PacemCalendarWithEven
2823
2805
  const clock = this._clock;
2824
2806
  if (name === "time") {
2825
2807
  this.dispatchEvent(new TimeSelectEvent(val));
2826
- } else if (!Utils9.isNull(clock)) {
2808
+ } else if (!Utils8.isNull(clock)) {
2827
2809
  if (name === "now") {
2828
2810
  clock.now = val;
2829
2811
  clock.className = `hour-${val.getHours()} minute-${val.getMinutes()}`;
@@ -2836,13 +2818,13 @@ var PacemAgendaElement = class PacemAgendaElement2 extends PacemCalendarWithEven
2836
2818
  }
2837
2819
  }
2838
2820
  };
2839
- __decorate10([
2821
+ __decorate9([
2840
2822
  ViewChild4(P9 + "-clock")
2841
2823
  ], PacemAgendaElement.prototype, "_clock", void 0);
2842
- __decorate10([
2843
- Watch9({ converter: PropertyConverters8.Datetime })
2824
+ __decorate9([
2825
+ Watch8({ converter: PropertyConverters8.Datetime })
2844
2826
  ], PacemAgendaElement.prototype, "time", void 0);
2845
- PacemAgendaElement = __decorate10([
2827
+ PacemAgendaElement = __decorate9([
2846
2828
  CustomElement9({
2847
2829
  tagName: P9 + "-agenda",
2848
2830
  shadow: Defaults2.USE_SHADOW_ROOT,
@@ -2885,7 +2867,7 @@ var PacemCalendarElement = class PacemCalendarElement2 extends PacemCalendarWith
2885
2867
  buildDataSource(items) {
2886
2868
  const month = this.month;
2887
2869
  let ds = [];
2888
- if (!Utils9.isNull(month)) {
2870
+ if (!Utils8.isNull(month)) {
2889
2871
  for (let j = 0; j < month.length; j++) {
2890
2872
  let week = month[j], weekItems = getWeeklyEventDataItems(items, week);
2891
2873
  ds.push(weekItems);
@@ -2918,16 +2900,16 @@ var PacemCalendarElement = class PacemCalendarElement2 extends PacemCalendarWith
2918
2900
  return super.getDayLabel(d);
2919
2901
  }
2920
2902
  };
2921
- __decorate10([
2922
- Watch9({ converter: PropertyConverters8.Datetime })
2903
+ __decorate9([
2904
+ Watch8({ converter: PropertyConverters8.Datetime })
2923
2905
  ], PacemCalendarElement.prototype, "date", void 0);
2924
- __decorate10([
2925
- Watch9({ emit: false })
2906
+ __decorate9([
2907
+ Watch8({ emit: false })
2926
2908
  ], PacemCalendarElement.prototype, "dayLabelFormatter", void 0);
2927
- __decorate10([
2928
- Watch9()
2909
+ __decorate9([
2910
+ Watch8()
2929
2911
  ], PacemCalendarElement.prototype, "_formatVersion", void 0);
2930
- PacemCalendarElement = __decorate10([
2912
+ PacemCalendarElement = __decorate9([
2931
2913
  CustomElement9({
2932
2914
  tagName: P9 + "-calendar",
2933
2915
  shadow: Defaults2.USE_SHADOW_ROOT,
@@ -2947,12 +2929,12 @@ PacemCalendarElement = __decorate10([
2947
2929
  </${P9}-repeater><${P9}-content></${P9}-content>`
2948
2930
  })
2949
2931
  ], PacemCalendarElement);
2950
- var PacemClockElement = class PacemClockElement2 extends Components10.PacemElement {
2932
+ var PacemClockElement = class PacemClockElement2 extends Components9.PacemElement {
2951
2933
  };
2952
- __decorate10([
2953
- Watch9({ converter: PropertyConverters8.Datetime })
2934
+ __decorate9([
2935
+ Watch8({ converter: PropertyConverters8.Datetime })
2954
2936
  ], PacemClockElement.prototype, "now", void 0);
2955
- PacemClockElement = __decorate10([
2937
+ PacemClockElement = __decorate9([
2956
2938
  CustomElement9({ tagName: P9 + "-clock" })
2957
2939
  ], PacemClockElement);
2958
2940
  function buildCalendarHeader() {
@@ -2960,7 +2942,7 @@ function buildCalendarHeader() {
2960
2942
  for (let day = 0; day < 7; day++) {
2961
2943
  header += `<${P9}-span culture="{{ :host.culture }}" css-class="{{ {'viewday': :host.isViewDay(:host.week[${day}], :host.viewDate)} }}" class="schedule-heading day-${day + 1} text-ellipsed" text="{{ :host.getHeaderLabel(:host.week[${day}], :host.zoom) }}"></${P9}-span>`;
2962
2944
  }
2963
- const id = "dock_" + Utils9.uniqueCode();
2945
+ const id = "dock_" + Utils8.uniqueCode();
2964
2946
  return `<div class="schedule-header schedule-grid"><div class="heading-left"></div>${header}</div>`;
2965
2947
  }
2966
2948
  var PacemScheduleElement = class PacemScheduleElement2 extends PacemCalendarBaseElement {
@@ -2978,13 +2960,13 @@ var PacemScheduleElement = class PacemScheduleElement2 extends PacemCalendarBase
2978
2960
  super.disconnectedCallback();
2979
2961
  }
2980
2962
  };
2981
- __decorate10([
2963
+ __decorate9([
2982
2964
  ViewChild4(P9 + "-calendar")
2983
2965
  ], PacemScheduleElement.prototype, "_calendar", void 0);
2984
- __decorate10([
2966
+ __decorate9([
2985
2967
  ViewChild4(P9 + "-agenda")
2986
2968
  ], PacemScheduleElement.prototype, "_agenda", void 0);
2987
- PacemScheduleElement = __decorate10([
2969
+ PacemScheduleElement = __decorate9([
2988
2970
  CustomElement9({
2989
2971
  tagName: P9 + "-schedule",
2990
2972
  shadow: Defaults2.USE_SHADOW_ROOT,
@@ -3003,7 +2985,7 @@ var PacemCalendarRuleBaseElement = class extends HTMLElement {
3003
2985
  this._disabledRanges = [];
3004
2986
  }
3005
2987
  viewActivatedCallback() {
3006
- if (!Utils9.isNull(this._target = CustomElementUtils4.findAncestor(this, (node) => node instanceof PacemCalendarBaseElement))) {
2988
+ if (!Utils8.isNull(this._target = CustomElementUtils4.findAncestor(this, (node) => node instanceof PacemCalendarBaseElement))) {
3007
2989
  this.refreshDisabledRanges();
3008
2990
  } else {
3009
2991
  throw `Missing ancestor calendar element for ${this.constructor.name}.`;
@@ -3017,7 +2999,7 @@ var PacemCalendarRuleBaseElement = class extends HTMLElement {
3017
2999
  return this._target;
3018
3000
  }
3019
3001
  refreshDisabledRanges() {
3020
- if (Utils9.isNullOrEmpty(this._target)) {
3002
+ if (Utils8.isNullOrEmpty(this._target)) {
3021
3003
  return;
3022
3004
  }
3023
3005
  let actualRanges = this._target.disabledRanges || [];
@@ -3034,7 +3016,7 @@ var PacemCalendarRuleBaseElement = class extends HTMLElement {
3034
3016
  this._target.disabledRanges = actualRanges;
3035
3017
  }
3036
3018
  };
3037
- __decorate10([
3019
+ __decorate9([
3038
3020
  Debounce2(true)
3039
3021
  ], PacemCalendarRuleBaseElement.prototype, "refreshDisabledRanges", null);
3040
3022
  var PacemCalendarDayOfWeekRuleElement = class PacemCalendarDayOfWeekRuleElement2 extends PacemCalendarRuleBaseElement {
@@ -3062,7 +3044,7 @@ var PacemCalendarDayOfWeekRuleElement = class PacemCalendarDayOfWeekRuleElement2
3062
3044
  for (let week of this.target.month) {
3063
3045
  for (let day of week) {
3064
3046
  if (this._daysOfWeek.indexOf(day.getDay()) == -1) {
3065
- let from = Utils9.Dates.dateOnly(day), to = Utils9.Dates.dateOnly(new Date(from.valueOf() + MSECS_PER_DAY + /* get rid of daylight saving switches */
3047
+ let from = Utils8.Dates.dateOnly(day), to = Utils8.Dates.dateOnly(new Date(from.valueOf() + MSECS_PER_DAY + /* get rid of daylight saving switches */
3066
3048
  MSECS_PER_HOUR));
3067
3049
  retval.push({ from, to });
3068
3050
  }
@@ -3071,16 +3053,16 @@ var PacemCalendarDayOfWeekRuleElement = class PacemCalendarDayOfWeekRuleElement2
3071
3053
  return retval;
3072
3054
  }
3073
3055
  };
3074
- __decorate10([
3075
- Watch9({ emit: false, converter: PropertyConverters8.StringArray })
3056
+ __decorate9([
3057
+ Watch8({ emit: false, converter: PropertyConverters8.StringArray })
3076
3058
  ], PacemCalendarDayOfWeekRuleElement.prototype, "days", void 0);
3077
- PacemCalendarDayOfWeekRuleElement = __decorate10([
3059
+ PacemCalendarDayOfWeekRuleElement = __decorate9([
3078
3060
  CustomElement9({ tagName: P9 + "-calendar-daysofweek-rule" })
3079
3061
  ], PacemCalendarDayOfWeekRuleElement);
3080
3062
 
3081
3063
  // packages/ui/dist/esm/collapse.js
3082
- import { P as P10, PCSS as PCSS8, CustomElement as CustomElement10, Watch as Watch10, ViewChild as ViewChild5, Utils as Utils10, PropertyConverters as PropertyConverters9, PacemEventTarget, Components as Components11 } from "@pacem/pacem-core";
3083
- var __decorate11 = function(decorators, target, key, desc) {
3064
+ import { P as P10, PCSS as PCSS8, CustomElement as CustomElement10, Watch as Watch9, ViewChild as ViewChild5, Utils as Utils9, PropertyConverters as PropertyConverters9, PacemEventTarget, Components as Components10 } from "@pacem/pacem-core";
3065
+ var __decorate10 = function(decorators, target, key, desc) {
3084
3066
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3085
3067
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3086
3068
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
@@ -3102,7 +3084,7 @@ var PacemCollapseElement = class PacemCollapseElement2 extends PacemEventTarget
3102
3084
  case "collapse":
3103
3085
  this._toggle();
3104
3086
  case "disabled":
3105
- if (!Utils10.isNull(this._resizer)) {
3087
+ if (!Utils9.isNull(this._resizer)) {
3106
3088
  this._resizer.disabled = this.disabled || this.collapse;
3107
3089
  }
3108
3090
  break;
@@ -3117,38 +3099,112 @@ var PacemCollapseElement = class PacemCollapseElement2 extends PacemEventTarget
3117
3099
  }
3118
3100
  _toggle() {
3119
3101
  const div = this, collapse = this.collapse, state = this.#state;
3120
- if (this.disabled || Utils10.isNull(div))
3102
+ if (this.disabled || Utils9.isNull(div))
3121
3103
  return;
3122
3104
  if (this.horizontal) {
3123
- Utils10.addClass(div, PCSS8 + "-horizontal");
3105
+ Utils9.addClass(div, PCSS8 + "-horizontal");
3124
3106
  div.style.height = state && state.height + "px" || "";
3125
3107
  div.style.width = collapse ? "0" : state && state.width + "px" || "";
3126
3108
  } else {
3127
- Utils10.removeClass(div, PCSS8 + "-horizontal");
3109
+ Utils9.removeClass(div, PCSS8 + "-horizontal");
3128
3110
  div.style.height = collapse ? "0" : state && state.height + "px" || "";
3129
3111
  }
3130
3112
  }
3131
3113
  };
3132
- __decorate11([
3133
- Watch10({ converter: PropertyConverters9.Boolean })
3114
+ __decorate10([
3115
+ Watch9({ converter: PropertyConverters9.Boolean })
3134
3116
  ], PacemCollapseElement.prototype, "collapse", void 0);
3135
- __decorate11([
3136
- Watch10({ emit: false, converter: PropertyConverters9.Boolean })
3117
+ __decorate10([
3118
+ Watch9({ emit: false, converter: PropertyConverters9.Boolean })
3137
3119
  ], PacemCollapseElement.prototype, "horizontal", void 0);
3138
- __decorate11([
3120
+ __decorate10([
3139
3121
  ViewChild5(P10 + "-resize")
3140
3122
  ], PacemCollapseElement.prototype, "_resizer", void 0);
3141
- __decorate11([
3123
+ __decorate10([
3142
3124
  ViewChild5(`[part=content]`)
3143
3125
  ], PacemCollapseElement.prototype, "_container", void 0);
3144
- PacemCollapseElement = __decorate11([
3126
+ PacemCollapseElement = __decorate10([
3145
3127
  CustomElement10({
3146
3128
  tagName: P10 + "-collapse",
3147
3129
  shadow: true,
3148
- template: `<${P10}-resize on-${Components11.ResizeEventName}=":host._resizeHandler($event)" target="{{ ::_container }}"></${P10}-resize><div part="container"><div part="content"><slot></slot></div></div>`
3130
+ template: `<${P10}-resize on-${Components10.ResizeEventName}=":host._resizeHandler($event)" target="{{ ::_container }}"></${P10}-resize><div part="container"><div part="content"><slot></slot></div></div>`
3149
3131
  })
3150
3132
  ], PacemCollapseElement);
3151
3133
 
3134
+ // packages/ui/dist/esm/dialog-abstractions.js
3135
+ import { Watch as Watch10, Utils as Utils10, Components as Components11, CustomTypedEvent as CustomTypedEvent2, Logging, avoidHandler as avoidHandler3 } from "@pacem/pacem-core";
3136
+ var __decorate11 = function(decorators, target, key, desc) {
3137
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3138
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3139
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3140
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3141
+ };
3142
+ var DialogButtons;
3143
+ (function(DialogButtons2) {
3144
+ DialogButtons2["YesNo"] = "yesno";
3145
+ DialogButtons2["YesNoCancel"] = "yesnocancel";
3146
+ DialogButtons2["Ok"] = "ok";
3147
+ DialogButtons2["OkCancel"] = "okcancel";
3148
+ })(DialogButtons || (DialogButtons = {}));
3149
+ var DialogButton;
3150
+ (function(DialogButton2) {
3151
+ DialogButton2["Yes"] = "yes";
3152
+ DialogButton2["No"] = "no";
3153
+ DialogButton2["Cancel"] = "cancel";
3154
+ DialogButton2["Ok"] = "ok";
3155
+ })(DialogButton || (DialogButton = {}));
3156
+ var DialogResultEventName = "commit";
3157
+ var DialogResultEvent = class extends CustomTypedEvent2 {
3158
+ constructor(args) {
3159
+ super(DialogResultEventName, args);
3160
+ }
3161
+ };
3162
+ var PacemDialogBase = class extends Components11.PacemElement {
3163
+ #deferred;
3164
+ /** Opens the dialog, optionally seeding its `state`. @returns A promise resolved with the {@link DialogResultEventArgs} once the dialog is committed. */
3165
+ open(state, rejectOnDeny = false) {
3166
+ const lb = this.lightbox;
3167
+ if (!Utils10.isNull(this.#deferred)) {
3168
+ throw `Dialog already open.`;
3169
+ }
3170
+ const deferred = (this.#deferred = { promise: Promise.withResolvers(), rejectOnDeny }).promise;
3171
+ if (this.hide || this.disabled) {
3172
+ this.log(Logging.LogLevel.Warn, "Dialog hidden or disabled, opening forbidden.");
3173
+ deferred.reject();
3174
+ } else {
3175
+ this.dispatchEvent(new Event("open"));
3176
+ lb.show = true;
3177
+ this.state = state;
3178
+ }
3179
+ return deferred.promise;
3180
+ }
3181
+ /** Closes the dialog with the given button outcome, resolving the pending `open()` promise and dispatching a {@link DialogResultEvent}. */
3182
+ commit(btn, evt) {
3183
+ avoidHandler3(evt);
3184
+ this.log(Logging.LogLevel.Debug, `Committing dialog by clicking '${btn}'.`);
3185
+ const state = this.state;
3186
+ var drevt = new DialogResultEvent({ button: btn, state });
3187
+ this.lightbox.show = false;
3188
+ const { promise, rejectOnDeny } = this.#deferred;
3189
+ if (rejectOnDeny) {
3190
+ switch (btn) {
3191
+ case DialogButton.Cancel:
3192
+ case DialogButton.No:
3193
+ promise.reject(drevt.detail);
3194
+ default:
3195
+ promise.resolve(drevt.detail);
3196
+ }
3197
+ } else {
3198
+ promise.resolve(drevt.detail);
3199
+ }
3200
+ this.#deferred = null;
3201
+ this.dispatchEvent(drevt);
3202
+ }
3203
+ };
3204
+ __decorate11([
3205
+ Watch10()
3206
+ ], PacemDialogBase.prototype, "state", void 0);
3207
+
3152
3208
  // packages/ui/dist/esm/dialog.js
3153
3209
  import { P as P11, PCSS as PCSS9, Defaults as Defaults3, CustomElement as CustomElement11, ViewChild as ViewChild6, Watch as Watch11, PropertyConverters as PropertyConverters10 } from "@pacem/pacem-core";
3154
3210
  var __decorate12 = function(decorators, target, key, desc) {
@@ -5233,7 +5289,7 @@ var PacemTickerElement = class PacemTickerElement2 extends Components29.PacemSaf
5233
5289
  }
5234
5290
  if (typeof content === "string") {
5235
5291
  const safeContent = this.sanitize(content);
5236
- this.#newContent = this._buildMarkupNode(safeContent);
5292
+ this.#newContent = typeof safeContent === "string" ? this._buildMarkupNode(safeContent) : Array.from(safeContent.childNodes);
5237
5293
  } else if (content instanceof Node) {
5238
5294
  const safeContent = this.sanitize(content);
5239
5295
  this.replaceChildren(...this.#newContent = [safeContent]);