@ixfx/components 0.9.8 → 0.10.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.
Files changed (98) hide show
  1. package/bundle/index.d.ts +747 -4
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +12240 -9065
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +1 -1
  6. package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -2
  7. package/dist/{ac-token-TCLAZeVg.d.ts.map → ac-token--_vCHXWw.d.ts.map} +1 -1
  8. package/dist/ac-token.d.ts +1 -1
  9. package/dist/button.d.ts +1 -1
  10. package/dist/button.d.ts.map +1 -1
  11. package/dist/colour-picker.d.ts +1 -1
  12. package/dist/crumbs.d.ts +2 -2
  13. package/dist/{data-grid-BUeZjnvj.d.ts → data-grid-C5hk_pzK.d.ts} +5 -4
  14. package/dist/{data-grid-BUeZjnvj.d.ts.map → data-grid-C5hk_pzK.d.ts.map} +1 -1
  15. package/dist/data-grid.d.ts +2 -2
  16. package/dist/data-grid.js +3 -1
  17. package/dist/data-grid.js.map +1 -1
  18. package/dist/{detail-list-CQguZg9h.d.ts → detail-list-CxPpv89T.d.ts} +6 -5
  19. package/dist/detail-list-CxPpv89T.d.ts.map +1 -0
  20. package/dist/detail-list.d.ts +3 -3
  21. package/dist/detail-list.js +3 -1
  22. package/dist/detail-list.js.map +1 -1
  23. package/dist/{grid-list-lTwg4lp7.d.ts → grid-list-BGvoWbZz.d.ts} +28 -4
  24. package/dist/{grid-list-lTwg4lp7.d.ts.map → grid-list-BGvoWbZz.d.ts.map} +1 -1
  25. package/dist/{grid-list-40blkeza.js → grid-list-DSnYOGh7.js} +60 -2
  26. package/dist/grid-list-DSnYOGh7.js.map +1 -0
  27. package/dist/grid-list.d.ts +2 -2
  28. package/dist/grid-list.js +1 -1
  29. package/dist/{grouped-item-lister-CEZ72VOs.d.ts → grouped-item-lister-fdZHVxFM.d.ts} +2 -2
  30. package/dist/{grouped-item-lister-CEZ72VOs.d.ts.map → grouped-item-lister-fdZHVxFM.d.ts.map} +1 -1
  31. package/dist/grouped-item-lister.d.ts +1 -1
  32. package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -2
  33. package/dist/icon-CDGprSdE.d.ts.map +1 -0
  34. package/dist/icons.d.ts +2 -2
  35. package/dist/incr-search.d.ts +1 -1
  36. package/dist/{index--qnhBWZJ.d.ts → index--5BSdbnL.d.ts} +2 -2
  37. package/dist/{index--qnhBWZJ.d.ts.map → index--5BSdbnL.d.ts.map} +1 -1
  38. package/dist/{index-C59-JEPl.d.ts → index-9AhaHIT2.d.ts} +3 -3
  39. package/dist/{index-C59-JEPl.d.ts.map → index-9AhaHIT2.d.ts.map} +1 -1
  40. package/dist/{index-DsjpDksO.d.ts → index-CS9yM8L-.d.ts} +2 -2
  41. package/dist/{index-DsjpDksO.d.ts.map → index-CS9yM8L-.d.ts.map} +1 -1
  42. package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -2
  43. package/dist/{index-BUB5SICW.d.ts.map → index-CoqtMSd9.d.ts.map} +1 -1
  44. package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -2
  45. package/dist/{index-CJ5fshD3.d.ts.map → index-UvnoZUAo.d.ts.map} +1 -1
  46. package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -2
  47. package/dist/{index-BOUaDIW-.d.ts.map → index-tq6f8007.d.ts.map} +1 -1
  48. package/dist/index.d.ts +647 -22
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4804 -2313
  51. package/dist/index.js.map +1 -1
  52. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -2
  53. package/dist/{labelled-input-base-Dp_9KP0G.d.ts.map → labelled-input-base-DiTme1JO.d.ts.map} +1 -1
  54. package/dist/labelled-radial-input.d.ts +2 -2
  55. package/dist/labelled-radial-input.d.ts.map +1 -1
  56. package/dist/labelled-range-input.d.ts +1 -1
  57. package/dist/labelled-slider-input.d.ts +1 -1
  58. package/dist/{list-native-drag-controller-B0hWdbtM.js → list-native-drag-controller-D97TYjn1.js} +36 -5
  59. package/dist/list-native-drag-controller-D97TYjn1.js.map +1 -0
  60. package/dist/{list-native-drag-controller-Cmpx7jnx.d.ts → list-native-drag-controller-DWiXQZou.d.ts} +3 -2
  61. package/dist/list-native-drag-controller-DWiXQZou.d.ts.map +1 -0
  62. package/dist/{menu-item-ZmkXNjek.d.ts → menu-item-CZi9vy5O.d.ts} +2 -2
  63. package/dist/{menu-item-ZmkXNjek.d.ts.map → menu-item-CZi9vy5O.d.ts.map} +1 -1
  64. package/dist/menu.d.ts +2 -2
  65. package/dist/miller.d.ts +2 -2
  66. package/dist/panel.d.ts +1 -1
  67. package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -2
  68. package/dist/{split-layout-C5SYbDrq.d.ts.map → split-layout-JK3xWVX2.d.ts.map} +1 -1
  69. package/dist/split-layout.d.ts +1 -1
  70. package/dist/{tab-list-DbMIL520.d.ts → tab-list-CGyPt07Z.d.ts} +2 -2
  71. package/dist/{tab-list-DbMIL520.d.ts.map → tab-list-CGyPt07Z.d.ts.map} +1 -1
  72. package/dist/tabs.d.ts +1 -1
  73. package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +2 -2
  74. package/dist/{titlebar-B5zSTZnF.d.ts.map → titlebar-Tqu-VvMU.d.ts.map} +1 -1
  75. package/dist/titlebar.d.ts +1 -1
  76. package/dist/{tree-CVj7TIk2.js → tree-C25xYUa6.js} +4 -2
  77. package/dist/tree-C25xYUa6.js.map +1 -0
  78. package/dist/{tree-component-BW2iCFq9.d.ts → tree-component-mw8x-n2Y.d.ts} +4 -2
  79. package/dist/tree-component-mw8x-n2Y.d.ts.map +1 -0
  80. package/dist/tree.d.ts +4 -3
  81. package/dist/tree.d.ts.map +1 -1
  82. package/dist/tree.js +1 -1
  83. package/dist/{vertical-list-CHrXmmQ3.d.ts → vertical-list--tFanQwM.d.ts} +92 -4
  84. package/dist/vertical-list--tFanQwM.d.ts.map +1 -0
  85. package/dist/vertical-list.d.ts +2 -2
  86. package/dist/vertical-list.js +617 -28
  87. package/dist/vertical-list.js.map +1 -1
  88. package/docs-user/grid-list.md +14 -0
  89. package/docs-user/index.json +1 -1
  90. package/package.json +1 -1
  91. package/dist/detail-list-CQguZg9h.d.ts.map +0 -1
  92. package/dist/grid-list-40blkeza.js.map +0 -1
  93. package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
  94. package/dist/list-native-drag-controller-B0hWdbtM.js.map +0 -1
  95. package/dist/list-native-drag-controller-Cmpx7jnx.d.ts.map +0 -1
  96. package/dist/tree-CVj7TIk2.js.map +0 -1
  97. package/dist/tree-component-BW2iCFq9.d.ts.map +0 -1
  98. package/dist/vertical-list-CHrXmmQ3.d.ts.map +0 -1
@@ -33,9 +33,9 @@ declare abstract class LabelledInputBase extends LitElement {
33
33
  value: number;
34
34
  }>) => void;
35
35
  protected _syncValue(v: number): void;
36
- protected _renderEditableNumber(): import("lit").TemplateResult<1> | typeof nothing;
36
+ protected _renderEditableNumber(): typeof nothing | import("lit").TemplateResult<1>;
37
37
  updated(changedProperties: Map<string, unknown>): void;
38
38
  }
39
39
  //#endregion
40
40
  export { LabelledInputBase as t };
41
- //# sourceMappingURL=labelled-input-base-Dp_9KP0G.d.ts.map
41
+ //# sourceMappingURL=labelled-input-base-DiTme1JO.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"labelled-input-base-Dp_9KP0G.d.ts","names":[],"sources":["../src/mixins/labelled-input-base.ts"],"mappings":";;uBAIsB,0BAA0B;EAClC;EAEgB;EACA;EACA;EACA;EACA;EAC+B;EAEI;EACC;EAEjB;YAE5B;YACA;YACA,cAAc;UAEzB;UACA;oBAEU;MAEd,cAAc;MAId,UAAU,SAAS;gBAIT;EAIL;EAMA;YAMC,cAAc,SAAS;YAcvB,sBAAuB,GAAG;IAAc;;YAWxC,qBAAsB,GAAG;IAAc;;YAavC,qBAAsB,GAAG;IAAc;;YAYvC,WAAW;YAYX,uCAAqB,2BAAA;EAuBtB,QAAQ,mBAAmB"}
1
+ {"version":3,"file":"labelled-input-base-DiTme1JO.d.ts","names":[],"sources":["../src/mixins/labelled-input-base.ts"],"mappings":";;uBAIsB,0BAA0B;EAClC;EAEgB;EACA;EACA;EACA;EACA;EAC+B;EAEI;EACC;EAEjB;YAE5B;YACA;YACA,cAAc;UAEzB;UACA;oBAEU;MAEd,cAAc;MAId,UAAU,SAAS;gBAIT;EAIL;EAMA;YAMC,cAAc,SAAS;YAcvB,sBAAuB,GAAG;IAAc;;YAWxC,qBAAsB,GAAG;IAAc;;YAavC,qBAAsB,GAAG;IAAc;;YAYvC,WAAW;YAYX,gCAAqB,wBAAA;EAuBtB,QAAQ,mBAAmB"}
@@ -1,4 +1,4 @@
1
- import { t as LabelledInputBase } from "./labelled-input-base-Dp_9KP0G.js";
1
+ import { t as LabelledInputBase } from "./labelled-input-base-DiTme1JO.js";
2
2
  import { i as MarkerStyle, l as ValueMode } from "./radial-input-DU6t2hYO.js";
3
3
  import { CSSResultGroup, nothing } from "lit";
4
4
  //#region src/labelled-radial-input/labelled-radial-input.d.ts
@@ -19,7 +19,7 @@ declare class LabelledRadialInput extends LabelledInputBase {
19
19
  private _isWide;
20
20
  private _getEffectivePrecision;
21
21
  protected _handleResize(entries: ResizeObserverEntry[]): void;
22
- protected _renderEditableNumber(): import("lit").TemplateResult<1> | typeof nothing;
22
+ protected _renderEditableNumber(): typeof nothing | import("lit").TemplateResult<1>;
23
23
  render(): import("lit").TemplateResult<1>;
24
24
  private _getTooltipValue;
25
25
  static styles: CSSResultGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"labelled-radial-input.d.ts","names":[],"sources":["../src/labelled-radial-input/labelled-radial-input.ts"],"mappings":";;;;cA0Da,4BAA4B;WAC9B;EAGA;EACA;EAEmB;EACA;EAC2B,aAAa;EACvC;EACwB,WAAW;EACnC;EACA;EAEoC;;EAGpC;UAEZ;UAIT;YAeW,cAAc,SAAS;YAMvB,uCAAqB,2BAAA;EA0B/B,wBAAM;UA6BP;SAYD,QAAQ;;QA0ET;YACI;IACR,8BAA8B"}
1
+ {"version":3,"file":"labelled-radial-input.d.ts","names":[],"sources":["../src/labelled-radial-input/labelled-radial-input.ts"],"mappings":";;;;cA0Da,4BAA4B;WAC9B;EAGA;EACA;EAEmB;EACA;EAC2B,aAAa;EACvC;EACwB,WAAW;EACnC;EACA;EAEoC;;EAGpC;UAEZ;UAIT;YAeW,cAAc,SAAS;YAMvB,gCAAqB,wBAAA;EA0B/B,wBAAM;UA6BP;SAYD,QAAQ;;QA0ET;YACI;IACR,8BAA8B"}
@@ -1,2 +1,2 @@
1
- import { t as LabelledRangeInput } from "./index-BUB5SICW.js";
1
+ import { t as LabelledRangeInput } from "./index-CoqtMSd9.js";
2
2
  export { LabelledRangeInput };
@@ -1,2 +1,2 @@
1
- import { t as LabelledSliderInput } from "./index-CJ5fshD3.js";
1
+ import { t as LabelledSliderInput } from "./index-UvnoZUAo.js";
2
2
  export { LabelledSliderInput };
@@ -48,6 +48,22 @@ function glyphFor(caption) {
48
48
  const first = caption.trim().at(0);
49
49
  return first ? first.toLocaleUpperCase() : `?`;
50
50
  }
51
+ function hasUsableDimensions(source) {
52
+ if (source instanceof HTMLImageElement || source instanceof HTMLVideoElement || source instanceof HTMLCanvasElement) return source.clientWidth > 0 && source.clientHeight > 0;
53
+ if (source instanceof ImageBitmap) return source.width > 0 && source.height > 0;
54
+ if (`naturalWidth` in source && `naturalHeight` in source) {
55
+ const sized = source;
56
+ return sized.naturalWidth > 0 && sized.naturalHeight > 0;
57
+ }
58
+ return true;
59
+ }
60
+ function sourceImage(entry, resolveDragPreviewSource) {
61
+ if (resolveDragPreviewSource) try {
62
+ const source = resolveDragPreviewSource(entry);
63
+ if (source && hasUsableDimensions(source)) return source;
64
+ } catch {}
65
+ return decodedImage(entry);
66
+ }
51
67
  /** A decoded `<img>` ready for `drawImage`, if the entry's element has one. */
52
68
  function decodedImage(entry) {
53
69
  const scope = entry.element ?? (entry.item instanceof Element ? entry.item : void 0);
@@ -74,7 +90,7 @@ function thumbCell(doc, caption, img, size) {
74
90
  const well = doc.createElement(`div`);
75
91
  well.setAttribute(`data-thumb`, ``);
76
92
  well.style.cssText = `width:${size}px;height:${size}px;border-radius:4px;overflow:hidden;background:var(--surface-5, rgba(128,128,128,0.25));flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:${Math.round(size * .4)}px;font-weight:600;`;
77
- if (img) try {
93
+ if (img instanceof HTMLImageElement) try {
78
94
  const clone = img.cloneNode(true);
79
95
  clone.style.cssText = `width:100%;height:100%;object-fit:cover;`;
80
96
  clone.removeAttribute(`id`);
@@ -308,11 +324,19 @@ function paintList(context, scale, palette, captions, images, rh, cssW, cssH) {
308
324
  * Always returns an offscreen `element` for `DataTransfer.setDragImage()` and,
309
325
  * when a 2D context is available, a DPR-aware painted `canvas` for native
310
326
  * hosts. Colours track the active theme via `ctx.hostStyle` CSS variables.
327
+ *
328
+ * When `ctx.resolveDragPreviewSource` is provided, it is called for each
329
+ * selected entry before the default DOM-image lookup. The resolver must
330
+ * return an already-loaded `CanvasImageSource` (e.g. an `<img>`, `<canvas>`,
331
+ * `<video>`, or `ImageBitmap`) or `undefined`. Returning `undefined` or
332
+ * throwing causes the painter to fall back to the standard
333
+ * descendant-`<img>` inspection, and ultimately to the glyph fallback.
311
334
  */
312
- function createDefaultListDragPreview(ctx) {
335
+ function createDefaultListDragPreview(context) {
336
+ const ctx = context;
313
337
  const entries = ctx.selected;
314
338
  const captions = entries.map((entry) => captionForEntry(entry));
315
- const images = entries.map((entry) => decodedImage(entry));
339
+ const images = entries.map((entry) => sourceImage(entry, ctx.resolveDragPreviewSource));
316
340
  const isCards = entries.length <= 5;
317
341
  let element;
318
342
  let cssW;
@@ -496,12 +520,19 @@ var ListNativeDragController = class {
496
520
  } catch {
497
521
  metrics = {};
498
522
  }
523
+ let resolveDragPreviewSource;
524
+ try {
525
+ resolveDragPreviewSource = this.#config.getDragPreviewSourceResolver?.();
526
+ } catch {
527
+ resolveDragPreviewSource = void 0;
528
+ }
499
529
  const context = {
500
530
  source: this.#config.source,
501
531
  origin,
502
532
  selected,
503
533
  metrics,
504
- hostStyle
534
+ hostStyle,
535
+ ...resolveDragPreviewSource ? { resolveDragPreviewSource } : {}
505
536
  };
506
537
  let renderer;
507
538
  try {
@@ -578,4 +609,4 @@ var ListNativeDragController = class {
578
609
  //#endregion
579
610
  export { captionForEntry as n, createDefaultListDragPreview as r, ListNativeDragController as t };
580
611
 
581
- //# sourceMappingURL=list-native-drag-controller-B0hWdbtM.js.map
612
+ //# sourceMappingURL=list-native-drag-controller-D97TYjn1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-native-drag-controller-D97TYjn1.js","names":["#host","#config","#dragging","#bind","#observer","#unbind","#renderRoot","#boundRoot","#onDragStart","#onDragEnd","#boundHost","#seenDragStarts"],"sources":["../src/interaction/list-drag-preview-default.ts","../src/interaction/list-native-drag-controller.ts"],"sourcesContent":["import type { ListDragEntry, ListDragPreview, ListDragPreviewContext } from './list-drag-types.js';\n\nconst CARD_DEFAULT = 72;\nconst CARD_MIN = 48;\nconst CARD_MAX = 96;\nconst LIST_WIDTH = 220;\nconst LIST_MAX_ROWS = 5;\nconst MAX_CANVAS_DIM = 1024;\n\nfunction cssVar(style: CSSStyleDeclaration, name: string, fallback: string): string {\n try {\n const value = style.getPropertyValue(name)?.trim();\n return value || fallback;\n } catch {\n return fallback;\n }\n}\n\nfunction fontOf(style: CSSStyleDeclaration): string {\n try {\n const font = style.font?.trim();\n if (font)\n return font;\n } catch {\n // Ignore.\n }\n return `12px system-ui, sans-serif`;\n}\n\n/** Caption for a drag entry — element labels win, then string items, then common object fields, then the key. */\nexport function captionForEntry(entry: ListDragEntry<unknown>): string {\n const el = entry.element ?? (entry.item instanceof Element ? entry.item : undefined);\n if (el) {\n const labelled = el.getAttribute(`data-label`)\n ?? el.querySelector(`[data-grid-list-caption]`)?.textContent?.trim()\n ?? el.getAttribute(`data-search-label`)\n ?? el.querySelector(`.cell`)?.textContent?.trim();\n if (labelled)\n return labelled.slice(0, 80);\n const text = el.textContent?.trim();\n if (text)\n return text.slice(0, 80);\n }\n const item = entry.item;\n if (typeof item === `string` && item.length > 0)\n return item.slice(0, 80);\n if (item !== null && typeof item === `object` && !(item instanceof Element)) {\n const record = item as Record<string, unknown>;\n for (const field of [`label`, `name`, `title`, `text`]) {\n const value = record[field];\n if (typeof value === `string` && value.length > 0)\n return value.slice(0, 80);\n }\n }\n return entry.key;\n}\n\nfunction glyphFor(caption: string): string {\n const first = caption.trim().at(0);\n return first ? first.toLocaleUpperCase() : `?`;\n}\n\nfunction hasUsableDimensions(source: CanvasImageSource): boolean {\n if (source instanceof HTMLImageElement || source instanceof HTMLVideoElement || source instanceof HTMLCanvasElement) {\n return source.clientWidth > 0 && source.clientHeight > 0;\n }\n if (source instanceof ImageBitmap) {\n return source.width > 0 && source.height > 0;\n }\n if (`naturalWidth` in source && `naturalHeight` in source) {\n const sized = source as unknown as { naturalWidth: number; naturalHeight: number };\n return sized.naturalWidth > 0 && sized.naturalHeight > 0;\n }\n return true;\n}\n\nfunction sourceImage(entry: ListDragEntry<unknown>, resolveDragPreviewSource?: (entry: ListDragEntry<unknown>) => CanvasImageSource | undefined): CanvasImageSource | undefined {\n if (resolveDragPreviewSource) {\n try {\n const source = resolveDragPreviewSource(entry);\n if (source && hasUsableDimensions(source))\n return source;\n } catch {\n // resolver threw — fall through to DOM lookup\n }\n }\n return decodedImage(entry);\n}\n\n/** A decoded `<img>` ready for `drawImage`, if the entry's element has one. */\nfunction decodedImage(entry: ListDragEntry<unknown>): HTMLImageElement | undefined {\n const scope = entry.element ?? (entry.item instanceof Element ? entry.item : undefined);\n if (!scope || typeof scope.querySelector !== `function`)\n return undefined;\n // The entry element itself may be an <img> (e.g. slotted image content).\n if (scope instanceof HTMLImageElement) {\n if (scope.complete && scope.naturalWidth > 0)\n return scope;\n return undefined;\n }\n try {\n const img = scope.querySelector(`img`);\n if (img instanceof HTMLImageElement && img.complete && img.naturalWidth > 0)\n return img;\n } catch {\n // Ignore.\n }\n return undefined;\n}\n\nfunction cardSize(metrics: ListDragPreviewContext<unknown>[`metrics`]): number {\n if (metrics.itemSize !== undefined && Number.isFinite(metrics.itemSize))\n return Math.max(CARD_MIN, Math.min(CARD_MAX, Math.round(metrics.itemSize)));\n return CARD_DEFAULT;\n}\n\nfunction rowHeight(metrics: ListDragPreviewContext<unknown>[`metrics`]): number {\n const raw = metrics.rowHeight;\n if (raw !== undefined && Number.isFinite(raw))\n return Math.max(24, Math.min(36, Math.round(raw)));\n return 28;\n}\n\nfunction thumbCell(doc: Document, caption: string, img: CanvasImageSource | undefined, size: number): HTMLElement {\n const well = doc.createElement(`div`);\n well.setAttribute(`data-thumb`, ``);\n well.style.cssText = `width:${size}px;height:${size}px;border-radius:4px;overflow:hidden;`\n + `background:var(--surface-5, rgba(128,128,128,0.25));flex-shrink:0;display:flex;`\n + `align-items:center;justify-content:center;font-size:${Math.round(size * 0.4)}px;font-weight:600;`;\n if (img instanceof HTMLImageElement) {\n try {\n const clone = img.cloneNode(true) as HTMLImageElement;\n clone.style.cssText = `width:100%;height:100%;object-fit:cover;`;\n clone.removeAttribute(`id`);\n well.appendChild(clone);\n } catch {\n well.textContent = glyphFor(caption);\n }\n } else {\n well.textContent = glyphFor(caption);\n }\n return well;\n}\n\nfunction buildCardsElement(ctx: ListDragPreviewContext<unknown>, captions: string[], images: Array<CanvasImageSource | undefined>): HTMLElement {\n const doc = document;\n const size = cardSize(ctx.metrics);\n const gap = 6;\n const pad = 8;\n const root = doc.createElement(`div`);\n root.setAttribute(`data-preview`, `cards`);\n root.setAttribute(`part`, `drag-preview`);\n root.style.cssText = `position:fixed;top:-9999px;left:-9999px;display:flex;flex-direction:row;gap:${gap}px;`\n + `padding:${pad}px;background:var(--surface-4, #333);color:var(--surface-4-text, #fff);`\n + `border:1px solid var(--border-subtle, #555);border-radius:var(--radius-m, 8px);`\n + `box-shadow:0 4px 16px rgba(0,0,0,0.3);font-family:system-ui,sans-serif;font-size:11px;`\n + `max-width:320px;z-index:999999;pointer-events:none;`;\n const n = ctx.selected.length;\n for (let i = 0; i < n; i++) {\n const card = doc.createElement(`div`);\n card.setAttribute(`data-card`, ``);\n card.style.cssText = `display:flex;flex-direction:column;gap:4px;align-items:center;width:${size}px;`;\n card.appendChild(thumbCell(doc, captions[i], images[i], Math.round(size * 0.72)));\n const label = doc.createElement(`span`);\n label.setAttribute(`data-caption`, ``);\n label.style.cssText = `max-width:${size}px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:0.9;`;\n label.textContent = captions[i];\n card.appendChild(label);\n root.appendChild(card);\n }\n return root;\n}\n\nfunction buildListElement(\n ctx: ListDragPreviewContext<unknown>,\n captions: string[],\n images: Array<CanvasImageSource | undefined>,\n): HTMLElement {\n const doc = document;\n const rh = rowHeight(ctx.metrics);\n const thumb = Math.round(rh * 0.78);\n const root = doc.createElement(`div`);\n root.setAttribute(`data-preview`, `list`);\n root.setAttribute(`part`, `drag-preview`);\n root.style.cssText = `position:fixed;top:-9999px;left:-9999px;display:flex;flex-direction:column;gap:4px;`\n + `padding:8px;background:var(--surface-4, #333);color:var(--surface-4-text, #fff);`\n + `border:1px solid var(--border-subtle, #555);border-radius:var(--radius-m, 8px);`\n + `box-shadow:0 4px 16px rgba(0,0,0,0.3);font-family:system-ui,sans-serif;font-size:12px;`\n + `width:${LIST_WIDTH}px;max-width:${LIST_WIDTH}px;z-index:999999;pointer-events:none;`;\n const header = doc.createElement(`div`);\n header.setAttribute(`data-header`, ``);\n header.style.cssText = `font-weight:600;padding-bottom:4px;border-bottom:1px solid var(--border-subtle, #555);margin-bottom:4px;`;\n header.textContent = `${ctx.selected.length} items`;\n root.appendChild(header);\n for (let i = 0; i < Math.min(LIST_MAX_ROWS, captions.length); i++) {\n const row = doc.createElement(`div`);\n row.setAttribute(`data-row`, ``);\n row.style.cssText = `display:flex;align-items:center;gap:6px;height:${rh}px;overflow:hidden;`;\n row.appendChild(thumbCell(doc, captions[i], images[i], thumb));\n const label = doc.createElement(`span`);\n label.setAttribute(`data-caption`, ``);\n label.style.cssText = `flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;`;\n label.textContent = captions[i];\n row.appendChild(label);\n root.appendChild(row);\n }\n if (captions.length > LIST_MAX_ROWS) {\n const more = doc.createElement(`div`);\n more.setAttribute(`data-more`, ``);\n more.style.cssText = `opacity:0.6;text-align:center;`;\n more.textContent = `+${captions.length - LIST_MAX_ROWS} more`;\n root.appendChild(more);\n }\n return root;\n}\n\ntype Palette = {\n bg: string;\n fg: string;\n subtle: string;\n accent: string;\n radius: number;\n font: string;\n};\n\nfunction paletteOf(style: CSSStyleDeclaration): Palette {\n const bg = cssVar(style, `--surface-4`, `#333333`);\n const fg = cssVar(style, `--surface-4-text`, `#ffffff`);\n const subtle = cssVar(style, `--border-subtle`, `#555555`);\n const accent = cssVar(style, `--accent`, `#4da3ff`);\n const radiusRaw = cssVar(style, `--radius-m`, `8`);\n const radius = Number.parseFloat(radiusRaw) || 8;\n return { bg, fg, subtle, accent, radius, font: fontOf(style) };\n}\n\nfunction fitCanvas(canvas: HTMLCanvasElement, cssW: number, cssH: number): { scale: number; dpr: number } {\n const dpr = Math.max(1, Math.min(3, (typeof devicePixelRatio === `number` && devicePixelRatio > 0) ? devicePixelRatio : 1));\n let scale = dpr;\n // Bound the backing store so huge selections cannot allocate unbounded canvases.\n const maxScaleW = MAX_CANVAS_DIM / Math.max(1, cssW);\n const maxScaleH = MAX_CANVAS_DIM / Math.max(1, cssH);\n scale = Math.min(scale, maxScaleW, maxScaleH);\n canvas.width = Math.max(1, Math.round(cssW * scale));\n canvas.height = Math.max(1, Math.round(cssH * scale));\n canvas.style.width = `${cssW}px`;\n canvas.style.height = `${cssH}px`;\n return { scale, dpr: scale };\n}\n\nfunction roundRectPath(context: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, r: number): void {\n const radius = Math.max(0, Math.min(r, w / 2, h / 2));\n if (typeof context.roundRect === `function`) {\n context.beginPath();\n context.roundRect(x, y, w, h, radius);\n return;\n }\n context.beginPath();\n context.moveTo(x + radius, y);\n context.arcTo(x + w, y, x + w, y + h, radius);\n context.arcTo(x + w, y + h, x, y + h, radius);\n context.arcTo(x, y + h, x, y, radius);\n context.arcTo(x, y, x + w, y, radius);\n context.closePath();\n}\n\nfunction paintCards(\n context: CanvasRenderingContext2D,\n scale: number,\n palette: Palette,\n captions: string[],\n images: Array<CanvasImageSource | undefined>,\n size: number,\n cssW: number,\n cssH: number,\n): void {\n context.save();\n context.scale(scale, scale);\n roundRectPath(context, 0, 0, cssW, cssH, palette.radius);\n context.fillStyle = palette.bg;\n context.fill();\n context.strokeStyle = palette.subtle;\n context.lineWidth = 1;\n context.stroke();\n context.clip();\n\n const gap = 6;\n const pad = 8;\n const wellSize = Math.round(size * 0.72);\n context.font = palette.font;\n context.textBaseline = `middle`;\n for (let i = 0; i < captions.length; i++) {\n const x = pad + i * (size + gap);\n const wellX = x + (size - wellSize) / 2;\n const wellY = pad;\n roundRectPath(context, wellX, wellY, wellSize, wellSize, 4);\n context.fillStyle = palette.subtle;\n context.globalAlpha = 0.35;\n context.fill();\n context.globalAlpha = 1;\n const img = images[i];\n if (img) {\n try {\n context.save();\n context.clip();\n context.drawImage(img, wellX, wellY, wellSize, wellSize);\n context.restore();\n } catch {\n // Placeholder below already painted.\n }\n } else {\n context.fillStyle = palette.fg;\n context.globalAlpha = 0.9;\n context.font = `600 ${Math.round(wellSize * 0.4)}px system-ui, sans-serif`;\n context.textAlign = `center`;\n context.fillText(glyphFor(captions[i]), wellX + wellSize / 2, wellY + wellSize / 2 + 1);\n context.globalAlpha = 1;\n context.textAlign = `left`;\n context.font = palette.font;\n }\n context.fillStyle = palette.fg;\n context.globalAlpha = 0.9;\n context.font = palette.font;\n const label = captions[i].length > 12 ? `${captions[i].slice(0, 11)}…` : captions[i];\n const textWidth = context.measureText(label).width;\n context.fillText(label, x + (size - Math.min(size, textWidth)) / 2, wellY + wellSize + 10, size);\n context.globalAlpha = 1;\n }\n context.restore();\n}\n\nfunction paintList(\n context: CanvasRenderingContext2D,\n scale: number,\n palette: Palette,\n captions: string[],\n images: Array<CanvasImageSource | undefined>,\n rh: number,\n cssW: number,\n cssH: number,\n): void {\n context.save();\n context.scale(scale, scale);\n roundRectPath(context, 0, 0, cssW, cssH, palette.radius);\n context.fillStyle = palette.bg;\n context.fill();\n context.strokeStyle = palette.subtle;\n context.lineWidth = 1;\n context.stroke();\n context.clip();\n\n const pad = 8;\n context.fillStyle = palette.fg;\n context.font = `600 ${palette.font}`;\n context.textBaseline = `middle`;\n context.fillText(`${captions.length} items`, pad, pad + 8, cssW - pad * 2);\n context.strokeStyle = palette.subtle;\n context.beginPath();\n context.moveTo(pad, pad + 20);\n context.lineTo(cssW - pad, pad + 20);\n context.stroke();\n\n const thumb = Math.round(rh * 0.78);\n const rows = Math.min(LIST_MAX_ROWS, captions.length);\n context.font = palette.font;\n for (let i = 0; i < rows; i++) {\n const y = pad + 24 + i * rh;\n roundRectPath(context, pad, y + (rh - thumb) / 2, thumb, thumb, 4);\n context.fillStyle = palette.subtle;\n context.globalAlpha = 0.35;\n context.fill();\n context.globalAlpha = 1;\n const img = images[i];\n if (img) {\n try {\n context.save();\n context.clip();\n context.drawImage(img, pad, y + (rh - thumb) / 2, thumb, thumb);\n context.restore();\n } catch {\n // Placeholder already painted.\n }\n } else {\n context.fillStyle = palette.fg;\n context.font = `600 ${Math.round(thumb * 0.45)}px system-ui, sans-serif`;\n context.textAlign = `center`;\n context.fillText(glyphFor(captions[i]), pad + thumb / 2, y + rh / 2 + 1);\n context.textAlign = `left`;\n context.font = palette.font;\n }\n context.fillStyle = palette.fg;\n context.globalAlpha = 0.92;\n const maxText = cssW - pad * 2 - thumb - 6;\n context.fillText(captions[i], pad + thumb + 6, y + rh / 2 + 1, Math.max(8, maxText));\n context.globalAlpha = 1;\n }\n if (captions.length > LIST_MAX_ROWS) {\n context.fillStyle = palette.fg;\n context.globalAlpha = 0.6;\n context.textAlign = `center`;\n context.fillText(`+${captions.length - LIST_MAX_ROWS} more`, cssW / 2, cssH - pad - 6, cssW - pad * 2);\n context.textAlign = `left`;\n context.globalAlpha = 1;\n }\n context.restore();\n}\n\n/**\n * Uniform built-in HTML+canvas drag preview for all four list components.\n *\n * - ≤5 selected → a row of small cards (thumbnail well + caption).\n * - >5 selected → a compact list (`N items` header, up to 5 rows, `+N more`).\n *\n * Always returns an offscreen `element` for `DataTransfer.setDragImage()` and,\n * when a 2D context is available, a DPR-aware painted `canvas` for native\n * hosts. Colours track the active theme via `ctx.hostStyle` CSS variables.\n *\n * When `ctx.resolveDragPreviewSource` is provided, it is called for each\n * selected entry before the default DOM-image lookup. The resolver must\n * return an already-loaded `CanvasImageSource` (e.g. an `<img>`, `<canvas>`,\n * `<video>`, or `ImageBitmap`) or `undefined`. Returning `undefined` or\n * throwing causes the painter to fall back to the standard\n * descendant-`<img>` inspection, and ultimately to the glyph fallback.\n */\nexport function createDefaultListDragPreview<T>(context: ListDragPreviewContext<T>): ListDragPreview {\n // Safe: the resolver is only ever invoked below with entries drawn from\n // this same context's `selected`, so the erased `T` never actually mixes\n // with another list's entries. `resolveDragPreviewSource` is contravariant\n // in `T` (it's a function parameter position), so `ListDragPreviewContext<T>`\n // isn't structurally assignable to `<unknown>` — this cast is the one place\n // that boundary is crossed for the rest of this (internally `<unknown>`-typed) file.\n const ctx = context as unknown as ListDragPreviewContext<unknown>;\n const entries = ctx.selected;\n const captions = entries.map(entry => captionForEntry(entry));\n const images = entries.map(entry => sourceImage(entry, ctx.resolveDragPreviewSource));\n const isCards = entries.length <= 5;\n\n let element: HTMLElement;\n let cssW: number;\n let cssH: number;\n if (isCards) {\n const size = cardSize(ctx.metrics);\n const gap = 6;\n const pad = 8;\n cssW = entries.length * size + Math.max(0, entries.length - 1) * gap + pad * 2;\n cssH = Math.round(size * 0.72) + 22 + pad * 2;\n element = buildCardsElement(ctx, captions, images);\n } else {\n const rh = rowHeight(ctx.metrics);\n const pad = 8;\n const rows = Math.min(LIST_MAX_ROWS, entries.length);\n const more = entries.length > LIST_MAX_ROWS ? 18 : 0;\n cssW = LIST_WIDTH + 16;\n cssH = pad * 2 + 24 + rows * rh + more;\n element = buildListElement(ctx, captions, images);\n }\n\n let canvas: HTMLCanvasElement | undefined;\n try {\n const candidate = document.createElement(`canvas`);\n const paint = candidate.getContext(`2d`);\n if (paint) {\n const { scale } = fitCanvas(candidate, cssW, cssH);\n const palette = paletteOf(ctx.hostStyle);\n if (isCards) {\n paintCards(paint, scale, palette, captions, images, cardSize(ctx.metrics), cssW, cssH);\n } else {\n paintList(paint, scale, palette, captions, images, rowHeight(ctx.metrics), cssW, cssH);\n }\n canvas = candidate;\n }\n } catch {\n canvas = undefined;\n }\n\n return {\n element,\n hotspot: { x: 16, y: 16 },\n ...(canvas ? { canvas } : {}),\n dispose: () => {},\n };\n}\n","import type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type {\n ListDragEntry,\n ListDragPreview,\n ListDragPreviewContext,\n ListDragPreviewRenderer,\n ListDragPreviewSourceResolver,\n ListDragSource,\n ListNativeDragStartDetail,\n} from './list-drag-types.js';\nimport { createDefaultListDragPreview } from './list-drag-preview-default.js';\n\nexport type ListNativeDragControllerConfig<T> = {\n readonly source: ListDragSource;\n /** `itemsDraggable && selection usable` */\n isEnabled: () => boolean;\n /** Event target → item key, or `undefined` when the drag did not start on an item. */\n resolveEventToKey: (target: EventTarget | null) => string | undefined;\n /**\n * Apply the origin rule (origin ∉ selection ⇒ replace with origin); return\n * display-ordered `{ origin, selected }` for both modes, or `undefined` when\n * the origin is not selectable.\n */\n prepareSelection: (originKey: string) => { origin: ListDragEntry<T>; selected: Array<ListDragEntry<T>> } | undefined;\n getMetrics: () => ListDragPreviewContext<T>[`metrics`];\n getRenderer: () => ListDragPreviewRenderer<T> | undefined;\n getDragPreviewSourceResolver?: () => ListDragPreviewSourceResolver<T> | undefined;\n /** Fire the cancelable `list-native-drag-start`; return `!defaultPrevented`. */\n dispatch: (detail: ListNativeDragStartDetail<T>) => boolean;\n /**\n * Optional: write custom payloads onto the drag's `DataTransfer` (e.g. a\n * MIME type for same-app drops). Called once, after a non-cancelled dispatch,\n * inside the synchronous `dragstart` turn.\n */\n writeDataTransfer?: (dataTransfer: DataTransfer, detail: ListNativeDragStartDetail<T>) => void;\n /** Host toggles `data-native-dragging` / `aria-label`, re-renders. */\n onActiveChange: (active: boolean, originKey?: string) => void;\n /** Host clears state + starts its post-drag click-suppress timer. */\n onEnd: () => void;\n /** Optional: sync `draggable` on light-DOM / slotted children while enabled. */\n syncLightDomDraggable?: () => void;\n /**\n * Optional. Called at the very top of the capture-phase `dragstart`, before\n * enablement / key resolution. Return `false` to abort the native drag — the\n * controller calls `event.preventDefault()` so the browser starts no drag.\n * Use when the gesture belongs to another interaction (e.g. marquee select).\n */\n shouldStart?: (event: DragEvent) => boolean;\n};\n\ntype DragHost = ReactiveControllerHost & HTMLElement;\n\n/**\n * Shared native item/row drag-out for list components.\n *\n * Owns capture-phase `dragstart` / `dragend` listeners on the host and its\n * render root, a `MutationObserver` that keeps light-DOM / slotted item `draggable`\n * attributes in sync, and a single post-dispatch disposal on\n * `requestAnimationFrame`. All DOM / selection knowledge lives in the host\n * config callbacks.\n */\nexport class ListNativeDragController<T> implements ReactiveController {\n readonly #host: DragHost;\n readonly #config: ListNativeDragControllerConfig<T>;\n\n #dragging = false;\n #boundRoot: EventTarget | undefined;\n #boundHost = false;\n #seenDragStarts = new WeakSet<Event>();\n #observer: MutationObserver | undefined;\n\n constructor(host: DragHost, config: ListNativeDragControllerConfig<T>) {\n this.#host = host;\n this.#config = config;\n host.addController(this);\n }\n\n get isDragging(): boolean {\n return this.#dragging;\n }\n\n /** `\"true\"` when enabled, else `\"false\"` — for shadow-row template bindings. */\n get draggableAttr(): string {\n try {\n return this.#config.isEnabled() ? `true` : `false`;\n } catch {\n return `false`;\n }\n }\n\n /** Re-run the light-DOM `draggable` sync (e.g. after `itemsDraggable` flips). */\n refreshDraggable(): void {\n try {\n this.#config.syncLightDomDraggable?.();\n } catch {\n // Host sync must never break the controller.\n }\n }\n\n hostConnected(): void {\n this.#bind();\n this.#observer ??= new MutationObserver(() => this.refreshDraggable());\n try {\n this.#observer.observe(this.#host, { childList: true, subtree: true });\n } catch {\n // happy-dom-safe: observing must never throw.\n }\n this.refreshDraggable();\n }\n\n /** `renderRoot` does not exist yet at `hostConnected` for a shadow-DOM host — rebind once it does. */\n hostUpdated(): void {\n this.#bind();\n }\n\n hostDisconnected(): void {\n this.#unbind();\n try {\n this.#observer?.disconnect();\n } catch {\n // Ignore.\n }\n this.#dragging = false;\n }\n\n #renderRoot(): EventTarget {\n const maybe = this.#host as unknown as { renderRoot?: EventTarget };\n return maybe.renderRoot ?? this.#host;\n }\n\n #bind(): void {\n // Capture on both the host (light-DOM / slotted items, and everything in\n // happy-dom where slot distribution is not reflected in the event path)\n // and the render root (shadow cells). A shadow-originated drag reaches\n // both — `#seenDragStarts` dedups the second call.\n const root = this.#renderRoot();\n if (root !== this.#boundRoot) {\n this.#unbind();\n this.#boundRoot = root;\n root.addEventListener(`dragstart`, this.#onDragStart as EventListener, { capture: true });\n root.addEventListener(`dragend`, this.#onDragEnd as EventListener, { capture: true });\n }\n if (!this.#boundHost) {\n this.#boundHost = true;\n this.#host.addEventListener(`dragstart`, this.#onDragStart as EventListener, { capture: true });\n this.#host.addEventListener(`dragend`, this.#onDragEnd as EventListener, { capture: true });\n }\n }\n\n #unbind(): void {\n this.#boundRoot?.removeEventListener(`dragstart`, this.#onDragStart as EventListener, { capture: true });\n this.#boundRoot?.removeEventListener(`dragend`, this.#onDragEnd as EventListener, { capture: true });\n this.#boundRoot = undefined;\n if (this.#boundHost) {\n this.#boundHost = false;\n this.#host.removeEventListener(`dragstart`, this.#onDragStart as EventListener, { capture: true });\n this.#host.removeEventListener(`dragend`, this.#onDragEnd as EventListener, { capture: true });\n }\n }\n\n #onDragStart = (event: Event): void => {\n if (!(event instanceof DragEvent))\n return;\n if (this.#seenDragStarts.has(event))\n return;\n if (this.#config.shouldStart) {\n let ok = true;\n try {\n ok = this.#config.shouldStart(event);\n } catch {\n ok = false;\n }\n if (!ok) {\n try {\n event.preventDefault();\n } catch {\n // Ignore — stubbed events in tests.\n }\n return;\n }\n }\n let enabled = false;\n try {\n enabled = this.#config.isEnabled();\n } catch {\n return;\n }\n if (!enabled)\n return;\n let originKey: string | undefined;\n try {\n originKey = this.#config.resolveEventToKey(event.target);\n } catch {\n return;\n }\n // Do NOT mark the event seen until we have a key. This handler is bound to\n // both the host and the render root; on a shadow-DOM host the host-level\n // invocation sees a retargeted `event.target` and resolves no key — it must\n // not poison the dedup for the render-root invocation that will succeed.\n if (originKey)\n this.#seenDragStarts.add(event);\n if (!originKey)\n return;\n let prepared: { origin: ListDragEntry<T>; selected: Array<ListDragEntry<T>> } | undefined;\n try {\n prepared = this.#config.prepareSelection(originKey);\n } catch {\n return;\n }\n if (!prepared || prepared.selected.length === 0)\n return;\n const { origin, selected } = prepared;\n\n let hostStyle: CSSStyleDeclaration;\n try {\n hostStyle = getComputedStyle(this.#host);\n } catch {\n hostStyle = document.createElement(`div`).style as unknown as CSSStyleDeclaration;\n }\n let metrics: ListDragPreviewContext<T>[`metrics`] = {};\n try {\n metrics = this.#config.getMetrics() ?? {};\n } catch {\n metrics = {};\n }\n let resolveDragPreviewSource;\n try {\n resolveDragPreviewSource = this.#config.getDragPreviewSourceResolver?.();\n } catch {\n resolveDragPreviewSource = undefined;\n }\n const context: ListDragPreviewContext<T> = {\n source: this.#config.source,\n origin,\n selected,\n metrics,\n hostStyle,\n ...(resolveDragPreviewSource ? { resolveDragPreviewSource } : {}),\n };\n let renderer: ListDragPreviewRenderer<T> | undefined;\n try {\n renderer = this.#config.getRenderer();\n } catch {\n renderer = undefined;\n }\n let preview: ListDragPreview;\n try {\n preview = renderer ? renderer(context) : createDefaultListDragPreview(context);\n } catch {\n preview = createDefaultListDragPreview(context);\n }\n try {\n document.body.appendChild(preview.element);\n } catch {\n // happy-dom-safe.\n }\n\n const detail: ListNativeDragStartDetail<T> = {\n key: origin.key,\n index: origin.index,\n item: origin.item,\n selectedKeys: selected.map(entry => entry.key),\n selected,\n preview,\n };\n let notCancelled = true;\n try {\n notCancelled = this.#config.dispatch(detail);\n } catch {\n notCancelled = true;\n }\n\n if (notCancelled) {\n if (event.dataTransfer) {\n try {\n // Let drop targets show a \"move\" / \"copy\" cursor.\n if (event.dataTransfer.effectAllowed === `none` || event.dataTransfer.effectAllowed === `uninitialized`)\n event.dataTransfer.effectAllowed = `copyMove`;\n } catch {\n // read-only in some contexts — non-fatal.\n }\n try {\n this.#config.writeDataTransfer?.(event.dataTransfer, detail);\n } catch {\n // A misbehaving payload writer must not abort the drag.\n }\n }\n const hotspot = preview.hotspot ?? { x: 16, y: 16 };\n try {\n event.dataTransfer?.setDragImage(preview.element, hotspot.x, hotspot.y);\n } catch {\n // Stubbed dataTransfer in tests may throw — non-fatal.\n }\n this.#dragging = true;\n try {\n this.#config.onActiveChange(true, origin.key);\n } catch {\n // Ignore.\n }\n } else {\n try {\n event.preventDefault();\n } catch {\n // Ignore.\n }\n }\n requestAnimationFrame(() => {\n try {\n preview.element.remove();\n } catch {\n // Ignore.\n }\n try {\n preview.dispose?.();\n } catch {\n // Ignore.\n }\n });\n };\n\n #onDragEnd = (): void => {\n if (!this.#dragging)\n return;\n this.#dragging = false;\n try {\n this.#config.onActiveChange(false);\n } catch {\n // Ignore.\n }\n try {\n this.#config.onEnd();\n } catch {\n // Ignore.\n }\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { F as ListDragSource, I as ListNativeDragStartDetail, N as ListDragPreviewContext, P as ListDragPreviewRenderer, j as ListDragEntry } from "./tree-component-BW2iCFq9.js";
1
+ import { F as ListDragPreviewSourceResolver, I as ListDragSource, L as ListNativeDragStartDetail, N as ListDragPreviewContext, P as ListDragPreviewRenderer, j as ListDragEntry } from "./tree-component-mw8x-n2Y.js";
2
2
  import { ReactiveController, ReactiveControllerHost } from "lit";
3
3
  //#region src/interaction/list-native-drag-controller.d.ts
4
4
  type ListNativeDragControllerConfig<T> = {
@@ -18,6 +18,7 @@ type ListNativeDragControllerConfig<T> = {
18
18
  } | undefined;
19
19
  getMetrics: () => ListDragPreviewContext<T>[`metrics`];
20
20
  getRenderer: () => ListDragPreviewRenderer<T> | undefined;
21
+ getDragPreviewSourceResolver?: () => ListDragPreviewSourceResolver<T> | undefined;
21
22
  /** Fire the cancelable `list-native-drag-start`; return `!defaultPrevented`. */
22
23
  dispatch: (detail: ListNativeDragStartDetail<T>) => boolean;
23
24
  /**
@@ -65,4 +66,4 @@ declare class ListNativeDragController<T> implements ReactiveController {
65
66
  }
66
67
  //#endregion
67
68
  export { ListNativeDragControllerConfig as n, ListNativeDragController as t };
68
- //# sourceMappingURL=list-native-drag-controller-Cmpx7jnx.d.ts.map
69
+ //# sourceMappingURL=list-native-drag-controller-DWiXQZou.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-native-drag-controller-DWiXQZou.d.ts","names":[],"sources":["../src/interaction/list-native-drag-controller.ts"],"mappings":";;;KAYY,+BAA+B;WAChC,QAAQ;;EAEjB;;EAEA,oBAAoB,QAAQ;;;;;;EAM5B,mBAAmB;IAAwB,QAAQ,cAAc;IAAI,UAAU,MAAM,cAAc;;EACnG,kBAAkB,uBAAuB;EACzC,mBAAmB,wBAAwB;EAC3C,qCAAqC,8BAA8B;;EAEnE,WAAW,QAAQ,0BAA0B;;;;;;EAM7C,qBAAqB,cAAc,cAAc,QAAQ,0BAA0B;;EAEnF,iBAAiB,iBAAiB;;EAElC;;EAEA;;;;;;;EAOA,eAAe,OAAO;;KAGnB,WAAW,yBAAyB;;;;;;;;;;cAW5B,yBAAyB,cAAc;;EAUtC,YAAA,MAAM,UAAU,QAAQ,+BAA+B;MAM/D;;MAKA;;EASJ;EAQA;;EAYA;EAIA"}
@@ -1,4 +1,4 @@
1
- import "./icon-DR_3rSyZ.js";
1
+ import "./icon-CDGprSdE.js";
2
2
  import { LitElement } from "lit";
3
3
  import { CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
4
4
  //#region src/menu/menu-container.d.ts
@@ -128,4 +128,4 @@ declare global {
128
128
  }
129
129
  //#endregion
130
130
  export { MenuContainer as i, MenuTrigger as n, MenuTriggerCommandDetail as r, MenuItem as t };
131
- //# sourceMappingURL=menu-item-ZmkXNjek.d.ts.map
131
+ //# sourceMappingURL=menu-item-CZi9vy5O.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item-ZmkXNjek.d.ts","names":[],"sources":["../src/menu/menu-container.ts","../src/menu/menu-trigger.ts","../src/menu/menu-item.ts"],"mappings":";;;;cASa,sBAAsB;EACgB;EACjB,WAAW;EACX,kBAAkB;UACvB;UAGnB;SAwBD,sBAAM;UA4BL;UAkDA;EAYC,QAAQ,mBAAmB;;;;EASpC,WAAW,SAAS,IAAI;EAOxB,wBAAM;UAaE;;;;;UAoCA;UAiCA;EA0BR;UAIQ;UAQA;UAUA;UAqDA;;QAqCF;YACI;IACR,uBAAuB;;;;;KCvWtB;KACA;KAEO;WACD;WACA;WACA;;cAME,oBAAoB;EACH,MAAM;EACN;;EAEwB;EACpB,WAAW;EACX,kBAAkB;EACtB,WAAW;;EAEa;UAEnC;UACA;UACA;UAEc;UACN;iBAEV;UAEP;UACA;EAER;EAOA;EAQA;EAkBA,QAAQ,mBAAmB;UAMnB;UAqBA;UAWA;UAOA;MAKJ;EAIJ;EAIA;EAIA;UAIQ;UAgBA;UAQA;UAYA;UAUA;UAYA;UAOA;UAeA;UAeA;UAkBA;SAiBD,sBAAM;EAgFb,wBAAM;;QAwBA;YACI;IACR,qBAAqB;;;;;cC3WZ,iBAAiB;EACA;EAC2B;EAC3B;EACC;EACuB;EACpB,WAAW;EACX,kBAAkB;EAClB,iBAAiB;UAEhC;UACM;UAEf;EAER;UAOQ;UAKA;UAWA;UAQA;UAUA;UAUA;UAWA;UASA;EASR,WAAW,mBAAmB;EAU9B,QAAQ,mBAAmB;UAInB;SAaQ,sBAAM;EAkEtB,wBAAM;;QAwBA;YACI;IACR,kBAAkB"}
1
+ {"version":3,"file":"menu-item-CZi9vy5O.d.ts","names":[],"sources":["../src/menu/menu-container.ts","../src/menu/menu-trigger.ts","../src/menu/menu-item.ts"],"mappings":";;;;cASa,sBAAsB;EACgB;EACjB,WAAW;EACX,kBAAkB;UACvB;UAGnB;SAwBD,sBAAM;UA4BL;UAkDA;EAYC,QAAQ,mBAAmB;;;;EASpC,WAAW,SAAS,IAAI;EAOxB,wBAAM;UAaE;;;;;UAoCA;UAiCA;EA0BR;UAIQ;UAQA;UAUA;UAqDA;;QAqCF;YACI;IACR,uBAAuB;;;;;KCvWtB;KACA;KAEO;WACD;WACA;WACA;;cAME,oBAAoB;EACH,MAAM;EACN;;EAEwB;EACpB,WAAW;EACX,kBAAkB;EACtB,WAAW;;EAEa;UAEnC;UACA;UACA;UAEc;UACN;iBAEV;UAEP;UACA;EAER;EAOA;EAQA;EAkBA,QAAQ,mBAAmB;UAMnB;UAqBA;UAWA;UAOA;MAKJ;EAIJ;EAIA;EAIA;UAIQ;UAgBA;UAQA;UAYA;UAUA;UAYA;UAOA;UAeA;UAeA;UAkBA;SAiBD,sBAAM;EAgFb,wBAAM;;QAwBA;YACI;IACR,qBAAqB;;;;;cC3WZ,iBAAiB;EACA;EAC2B;EAC3B;EACC;EACuB;EACpB,WAAW;EACX,kBAAkB;EAClB,iBAAiB;UAEhC;UACM;UAEf;EAER;UAOQ;UAKA;UAWA;UAQA;UAUA;UAUA;UAWA;UASA;EASR,WAAW,mBAAmB;EAU9B,QAAQ,mBAAmB;UAInB;SAaQ,sBAAM;EAkEtB,wBAAM;;QAwBA;YACI;IACR,kBAAkB"}
package/dist/menu.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { i as MenuContainer, n as MenuTrigger, t as MenuItem } from "./menu-item-ZmkXNjek.js";
2
- import { a as menuFromTree, c as MenuSeparator, d as MenuCheckItem, f as MenuBar, i as MenuFromTreeOptions, l as MenuSubTrigger, n as MenuRadioGroup, o as menuFromTreeToElements, r as MenuRadioItem, s as MenuHeader, u as MenuCommandController } from "./index-C59-JEPl.js";
1
+ import { i as MenuContainer, n as MenuTrigger, t as MenuItem } from "./menu-item-CZi9vy5O.js";
2
+ import { a as menuFromTree, c as MenuSeparator, d as MenuCheckItem, f as MenuBar, i as MenuFromTreeOptions, l as MenuSubTrigger, n as MenuRadioGroup, o as menuFromTreeToElements, r as MenuRadioItem, s as MenuHeader, u as MenuCommandController } from "./index-9AhaHIT2.js";
3
3
  export { MenuBar, MenuCheckItem, MenuCommandController, MenuContainer, type MenuFromTreeOptions, MenuHeader, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubTrigger, MenuTrigger, menuFromTree, menuFromTreeToElements };
package/dist/miller.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { D as TreeTickleDetail, E as TreeSelectEvent, O as TreeTickleEvent, T as TreeSelectDetail, a as TreeComponent, b as TreeItemClickDetail, i as TreeCollapseEvent, k as TreeDataModel, n as TreeActivateEvent, o as TreeComponentEventMap, r as TreeCollapseDetail, t as TreeActivateDetail, v as TreeExpandDetail, w as TreeSearchHost, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-BW2iCFq9.js";
1
+ import { D as TreeTickleDetail, E as TreeSelectEvent, O as TreeTickleEvent, T as TreeSelectDetail, a as TreeComponent, b as TreeItemClickDetail, i as TreeCollapseEvent, k as TreeDataModel, n as TreeActivateEvent, o as TreeComponentEventMap, r as TreeCollapseDetail, t as TreeActivateDetail, v as TreeExpandDetail, w as TreeSearchHost, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-mw8x-n2Y.js";
2
2
  import { a as TreeItem, n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-Bc23SI94.js";
3
- import { S as ListSearchController } from "./index--qnhBWZJ.js";
3
+ import { S as ListSearchController } from "./index--5BSdbnL.js";
4
4
  import { n as TickledController } from "./tickled-controller-C1ZsHpyg.js";
5
5
  import { LitElement, PropertyValues, TemplateResult, nothing } from "lit";
6
6
  import { CommandRegistry } from "@clinth/ui-commands";
package/dist/panel.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as TitlebarToggleDetail, c as TitlebarVariant, i as TitlebarOrientation, o as TitlebarToggleEvent, s as TitlebarToggleInteraction, t as TitlebarCloseEvent } from "./titlebar-B5zSTZnF.js";
1
+ import { a as TitlebarToggleDetail, c as TitlebarVariant, i as TitlebarOrientation, o as TitlebarToggleEvent, s as TitlebarToggleInteraction, t as TitlebarCloseEvent } from "./titlebar-Tqu-VvMU.js";
2
2
  import { LitElement } from "lit";
3
3
  //#region src/panel/panel.d.ts
4
4
  /** Backwards-compatible aliases: canonical types now live in `../titlebar/titlebar.js`. */
@@ -156,7 +156,7 @@ declare class SplitLayoutElement extends LitElement {
156
156
  private _onPointerUp;
157
157
  private _emitResize;
158
158
  private _emitChange;
159
- protected render(): import("lit").TemplateResult<1> | typeof nothing;
159
+ protected render(): typeof nothing | import("lit").TemplateResult<1>;
160
160
  private _getTrackSizes;
161
161
  private _resolveTracks;
162
162
  private _renderGutter;
@@ -176,4 +176,4 @@ declare global {
176
176
  }
177
177
  //#endregion
178
178
  export { SplitExpandEvent as _, LayoutNode as a, SplitResizeEvent as b, PanelNode as c, SplitChangeEvent as d, SplitCloseDetail as f, SplitExpandDetail as g, SplitCollapseEvent as h, GroupNode as i, SnapshotNode as l, SplitCollapseDetail as m, SplitPanelElement as n, LayoutSnapshot as o, SplitCloseEvent as p, Axis as r, PanelInfo as s, SplitLayoutElement as t, SplitChangeDetail as u, SplitLayoutElementEventMap as v, WhenSmall as x, SplitResizeDetail as y };
179
- //# sourceMappingURL=split-layout-C5SYbDrq.d.ts.map
179
+ //# sourceMappingURL=split-layout-JK3xWVX2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"split-layout-C5SYbDrq.d.ts","names":[],"sources":["../src/split-layout/types.ts","../src/split-layout/split-panel.ts","../src/split-layout/split-layout.ts"],"mappings":";;KAAY;KAEA;UAEK;EACf;EACA;EACA,IAAI;EACJ;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;;UAGe;EACf;EACA;EACA,IAAI;EACJ,MAAM;EACN,UAAU;EACV;EACA;;KAGU,aAAa,YAAY;UAEpB;EACf;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf;EACA,MAAM;;UAGS;EACf;EACA,IAAI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf,OAAO;EACP;;KAGU,mBAAmB,YAAY;UAE1B;EACf;EACA;;KAGU,qBAAqB,YAAY;UAE5B;EACf;EACA;;KAGU,mBAAmB,YAAY;UAE1B;EACf;EACA;;KAGU,kBAAkB,YAAY;UAEzB;EACf,QAAQ;;KAGE,mBAAmB,YAAY;UAE1B;EACf,qBAAqB;EACrB,uBAAuB;EACvB,qBAAqB;EACrB,oBAAoB;EACpB,qBAAqB;;;;cCvFV,0BAA0B;EAErC;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAES,wBAAM;SAIC,sBAAM;;QAiBhB;YACI;IACR,oBAAoB;;;;;cC7CX,2BAA2B;EAEtC,WAAW;EAGX;EAGA;EAGA;UAGQ;UAGA;UAGA;UAEA;UACA;UACA;UACA;EASC;EAKA;EAKA;UAID;UAcA;MAaJ,UAAU;EAuBd,aAAa;EAMb,UAAU,GAAG;EAUb,SAAS,oBAAoB;EAY7B,SAAS,oBAAoB,wBAAwB;EA4BrD,SAAS,iBAAiB;EAI1B,OAAO,iBAAiB;EAIxB,OAAO,iBAAiB;EAOxB,WAAW,iBAAiB;;;;;;EAmC5B,kBAAkB;;;;;;;;;EAelB,gBAAgB,qBAAqB,mBAAmB,iBAAiB;UAwBjE;UAiDA;UAQA;UAOA;UAwBA;UAQA;UAKA;UAMA;UAiFA;UAWA;UAuBA;UAeA;UAsBA;UAIA;UAMA;UAcA;YAYW,wBAAM,2BAAA;UA2BjB;UAQA;UAgCA;SAuBQ,sBAAM;;QAiHhB;YACI;IACR,qBAAqB;;YAGb;IACR,qBAAqB,YAAY;IACjC,uBAAuB,YAAY;IACnC,qBAAqB,YAAY;IACjC,oBAAoB,YAAY;IAChC,qBAAqB,YAAY"}
1
+ {"version":3,"file":"split-layout-JK3xWVX2.d.ts","names":[],"sources":["../src/split-layout/types.ts","../src/split-layout/split-panel.ts","../src/split-layout/split-layout.ts"],"mappings":";;KAAY;KAEA;UAEK;EACf;EACA;EACA,IAAI;EACJ;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;;UAGe;EACf;EACA;EACA,IAAI;EACJ,MAAM;EACN,UAAU;EACV;EACA;;KAGU,aAAa,YAAY;UAEpB;EACf;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf;EACA,MAAM;;UAGS;EACf;EACA,IAAI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf,OAAO;EACP;;KAGU,mBAAmB,YAAY;UAE1B;EACf;EACA;;KAGU,qBAAqB,YAAY;UAE5B;EACf;EACA;;KAGU,mBAAmB,YAAY;UAE1B;EACf;EACA;;KAGU,kBAAkB,YAAY;UAEzB;EACf,QAAQ;;KAGE,mBAAmB,YAAY;UAE1B;EACf,qBAAqB;EACrB,uBAAuB;EACvB,qBAAqB;EACrB,oBAAoB;EACpB,qBAAqB;;;;cCvFV,0BAA0B;EAErC;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAES,wBAAM;SAIC,sBAAM;;QAiBhB;YACI;IACR,oBAAoB;;;;;cC7CX,2BAA2B;EAEtC,WAAW;EAGX;EAGA;EAGA;UAGQ;UAGA;UAGA;UAEA;UACA;UACA;UACA;EASC;EAKA;EAKA;UAID;UAcA;MAaJ,UAAU;EAuBd,aAAa;EAMb,UAAU,GAAG;EAUb,SAAS,oBAAoB;EAY7B,SAAS,oBAAoB,wBAAwB;EA4BrD,SAAS,iBAAiB;EAI1B,OAAO,iBAAiB;EAIxB,OAAO,iBAAiB;EAOxB,WAAW,iBAAiB;;;;;;EAmC5B,kBAAkB;;;;;;;;;EAelB,gBAAgB,qBAAqB,mBAAmB,iBAAiB;UAwBjE;UAiDA;UAQA;UAOA;UAwBA;UAQA;UAKA;UAMA;UAiFA;UAWA;UAuBA;UAeA;UAsBA;UAIA;UAMA;UAcA;YAYW,iBAAM,wBAAA;UA2BjB;UAQA;UAgCA;SAuBQ,sBAAM;;QAiHhB;YACI;IACR,qBAAqB;;YAGb;IACR,qBAAqB,YAAY;IACjC,uBAAuB,YAAY;IACnC,qBAAqB,YAAY;IACjC,oBAAoB,YAAY;IAChC,qBAAqB,YAAY"}
@@ -1,2 +1,2 @@
1
- import { t as SplitLayoutElement } from "./split-layout-C5SYbDrq.js";
1
+ import { t as SplitLayoutElement } from "./split-layout-JK3xWVX2.js";
2
2
  export { SplitLayoutElement };
@@ -1,4 +1,4 @@
1
- import "./icon-DR_3rSyZ.js";
1
+ import "./icon-CDGprSdE.js";
2
2
  import { LitElement, PropertyValues } from "lit";
3
3
  import { CommandRegistry } from "@clinth/ui-commands";
4
4
  //#region src/tabs/tab-list-item.d.ts
@@ -86,4 +86,4 @@ declare global {
86
86
  }
87
87
  //#endregion
88
88
  export { TabListReorderDetail as a, TabListElement as i, TabListChangeEvent as n, TabListReorderEvent as o, TabListDragMode as r, TabListItemElement as s, TabListChangeDetail as t };
89
- //# sourceMappingURL=tab-list-DbMIL520.d.ts.map
89
+ //# sourceMappingURL=tab-list-CGyPt07Z.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-list-DbMIL520.d.ts","names":[],"sources":["../src/tabs/tab-list-item.ts","../src/tabs/tab-list.ts"],"mappings":";;;;;;;;;;;cAiBa,2BAA2B;EAEtC;EAGA;EAGA;EAGA;EAGA;EAGA,UAAU;UAEO;UACA;UACT;UACA;UACA;EAEC;EAgBA;EAcA,QAAQ,SAAS;UAQlB;UAUA;UAWA;UAIA;;;;;UAQA;UAiBA;EAKC;EAKA,wBAAM;UA8BP;SAWQ,sBAAM;;QAmKhB;YACI;IACR,sBAAsB;;;;;;;;;;KC3Ud;WACD;WACA;WACA;;KAGC,qBAAqB,YAAY;KAEjC;WACD;WACA;WACA;;KAGC,sBAAsB,YAAY;KAElC;cAMC,uBAAuB;;EAElC;EAGA;EAGA;EAGA;EAGA;EAGA,UAAU;EA4BD,wBAAM;EAsDN;EAUA,QAAQ,mBAAmB;EAoGpC,sBAAkB;EAwBlB,cAAc,IAAI;SAwaX,sBAAM;;QAyKP;YACI;IACR,iBAAiB"}
1
+ {"version":3,"file":"tab-list-CGyPt07Z.d.ts","names":[],"sources":["../src/tabs/tab-list-item.ts","../src/tabs/tab-list.ts"],"mappings":";;;;;;;;;;;cAiBa,2BAA2B;EAEtC;EAGA;EAGA;EAGA;EAGA;EAGA,UAAU;UAEO;UACA;UACT;UACA;UACA;EAEC;EAgBA;EAcA,QAAQ,SAAS;UAQlB;UAUA;UAWA;UAIA;;;;;UAQA;UAiBA;EAKC;EAKA,wBAAM;UA8BP;SAWQ,sBAAM;;QAmKhB;YACI;IACR,sBAAsB;;;;;;;;;;KC3Ud;WACD;WACA;WACA;;KAGC,qBAAqB,YAAY;KAEjC;WACD;WACA;WACA;;KAGC,sBAAsB,YAAY;KAElC;cAMC,uBAAuB;;EAElC;EAGA;EAGA;EAGA;EAGA;EAGA,UAAU;EA4BD,wBAAM;EAsDN;EAUA,QAAQ,mBAAmB;EAoGpC,sBAAkB;EAwBlB,cAAc,IAAI;SAwaX,sBAAM;;QAyKP;YACI;IACR,iBAAiB"}
package/dist/tabs.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as TabListReorderDetail, i as TabListElement, n as TabListChangeEvent, o as TabListReorderEvent, r as TabListDragMode, t as TabListChangeDetail } from "./tab-list-DbMIL520.js";
1
+ import { a as TabListReorderDetail, i as TabListElement, n as TabListChangeEvent, o as TabListReorderEvent, r as TabListDragMode, t as TabListChangeDetail } from "./tab-list-CGyPt07Z.js";
2
2
  export { TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListReorderDetail, TabListReorderEvent };
@@ -1,4 +1,4 @@
1
- import "./icon-DR_3rSyZ.js";
1
+ import "./icon-CDGprSdE.js";
2
2
  import { LitElement } from "lit";
3
3
  //#region src/titlebar/titlebar.d.ts
4
4
  type TitlebarOrientation = `horizontal` | `vertical`;
@@ -51,4 +51,4 @@ interface TitlebarElement {
51
51
  }
52
52
  //#endregion
53
53
  export { TitlebarToggleDetail as a, TitlebarVariant as c, TitlebarOrientation as i, TitlebarElement as n, TitlebarToggleEvent as o, TitlebarElementEventMap as r, TitlebarToggleInteraction as s, TitlebarCloseEvent as t };
54
- //# sourceMappingURL=titlebar-B5zSTZnF.d.ts.map
54
+ //# sourceMappingURL=titlebar-Tqu-VvMU.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"titlebar-B5zSTZnF.d.ts","names":[],"sources":["../src/titlebar/titlebar.ts"],"mappings":";;;KAOY;KACA;KACA;UAEK;WACN;;KAGC,sBAAsB,YAAY;KAClC,qBAAqB;UAEhB;EACf,QAAQ;EACR,OAAO;;;;;;;;;;;;;;cAgBI,wBAAwB;EACP;EACwB;EACiB,aAAa;EACjB,SAAS;EAC7C;;EAEe;EACA;EACiB,mBAAmB;UAExE;UAaA;UASA;YAIW,wBAAM;SAkET,sBAAM;;QA4RhB;YACI;IACR,iBAAiB;;;UAIJ;EACf,oBAAoB,gBAAgB,yBAClC,MAAM,GACN,WAAW,MAAM,iBAAiB,OAAO,wBAAwB,aACjE,oBAAoB,sCAEpB,cACA,UAAU,oCACV,oBAAoB"}
1
+ {"version":3,"file":"titlebar-Tqu-VvMU.d.ts","names":[],"sources":["../src/titlebar/titlebar.ts"],"mappings":";;;KAOY;KACA;KACA;UAEK;WACN;;KAGC,sBAAsB,YAAY;KAClC,qBAAqB;UAEhB;EACf,QAAQ;EACR,OAAO;;;;;;;;;;;;;;cAgBI,wBAAwB;EACP;EACwB;EACiB,aAAa;EACjB,SAAS;EAC7C;;EAEe;EACA;EACiB,mBAAmB;UAExE;UAaA;UASA;YAIW,wBAAM;SAkET,sBAAM;;QA4RhB;YACI;IACR,iBAAiB;;;UAIJ;EACf,oBAAoB,gBAAgB,yBAClC,MAAM,GACN,WAAW,MAAM,iBAAiB,OAAO,wBAAwB,aACjE,oBAAoB,sCAEpB,cACA,UAAU,oCACV,oBAAoB"}
@@ -1,2 +1,2 @@
1
- import { a as TitlebarToggleDetail, c as TitlebarVariant, i as TitlebarOrientation, n as TitlebarElement, o as TitlebarToggleEvent, r as TitlebarElementEventMap, s as TitlebarToggleInteraction, t as TitlebarCloseEvent } from "./titlebar-B5zSTZnF.js";
1
+ import { a as TitlebarToggleDetail, c as TitlebarVariant, i as TitlebarOrientation, n as TitlebarElement, o as TitlebarToggleEvent, r as TitlebarElementEventMap, s as TitlebarToggleInteraction, t as TitlebarCloseEvent } from "./titlebar-Tqu-VvMU.js";
2
2
  export { TitlebarCloseEvent, TitlebarElement, TitlebarElementEventMap, TitlebarOrientation, TitlebarToggleDetail, TitlebarToggleEvent, TitlebarToggleInteraction, TitlebarVariant };
@@ -3,7 +3,7 @@ import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-BrA
3
3
  import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
4
4
  import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
5
5
  import { i as ListSearchController, n as listSearchStyles, o as registerListSearchCommands, r as LIST_SEARCH_MODES, t as createTreeListSearchAdapter } from "./incr-search-C05WjbZh.js";
6
- import { t as ListNativeDragController } from "./list-native-drag-controller-B0hWdbtM.js";
6
+ import { t as ListNativeDragController } from "./list-native-drag-controller-D97TYjn1.js";
7
7
  import { n as animateListItemIn, r as animateListItemOut } from "./list-item-animation-BUoEKi5s.js";
8
8
  import "./interaction-BskmlA9t.js";
9
9
  import { t as collectDataResult } from "./data-provider-35TyWclX.js";
@@ -1190,6 +1190,7 @@ let TreeBaseElement = class TreeBaseElement extends LitElement {
1190
1190
  },
1191
1191
  getMetrics: () => ({ rowHeight: this.#getItemHeight() }),
1192
1192
  getRenderer: () => this.dragPreviewRenderer,
1193
+ getDragPreviewSourceResolver: () => this.dragPreviewSource,
1193
1194
  dispatch: (detail) => {
1194
1195
  const keys = detail.selected.map((e) => e.key);
1195
1196
  const nodes = detail.selected.map((e) => e.item);
@@ -2340,6 +2341,7 @@ __decorate([property({
2340
2341
  }
2341
2342
  })], TreeBaseElement.prototype, "reorderable", void 0);
2342
2343
  __decorate([property({ attribute: false })], TreeBaseElement.prototype, "dragPreviewRenderer", void 0);
2344
+ __decorate([property({ attribute: false })], TreeBaseElement.prototype, "dragPreviewSource", void 0);
2343
2345
  __decorate([property({ attribute: false })], TreeBaseElement.prototype, "canDrag", void 0);
2344
2346
  __decorate([property({ attribute: false })], TreeBaseElement.prototype, "canDrop", void 0);
2345
2347
  __decorate([property({ attribute: false })], TreeBaseElement.prototype, "parseExternalDrop", void 0);
@@ -2630,4 +2632,4 @@ var TreeController = class {
2630
2632
  //#endregion
2631
2633
  export { TreeDataModel as a, pruneDraggedDescendants as c, TreeDropController as i, TreeListElement as n, applyTreeDrop as o, TreeBaseElement as r, dropTargetFor as s, TreeController as t };
2632
2634
 
2633
- //# sourceMappingURL=tree-CVj7TIk2.js.map
2635
+ //# sourceMappingURL=tree-C25xYUa6.js.map