@ornery/ui-grid-vanilla 1.0.7 → 1.0.8

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 (75) hide show
  1. package/dist/adopt-styles.d.ts +2 -0
  2. package/dist/adopt-styles.d.ts.map +1 -0
  3. package/dist/attribute-bridge.d.ts +39 -0
  4. package/dist/attribute-bridge.d.ts.map +1 -0
  5. package/dist/browser.d.ts +3 -0
  6. package/dist/browser.d.ts.map +1 -0
  7. package/dist/components/grid-body-cell/grid-body-cell.d.ts +19 -0
  8. package/dist/components/grid-body-cell/grid-body-cell.d.ts.map +1 -0
  9. package/dist/components/grid-body-cell/index.d.ts +2 -0
  10. package/dist/components/grid-body-cell/index.d.ts.map +1 -0
  11. package/dist/components/grid-cell-editor/grid-cell-editor.d.ts +28 -0
  12. package/dist/components/grid-cell-editor/grid-cell-editor.d.ts.map +1 -0
  13. package/dist/components/grid-cell-editor/index.d.ts +2 -0
  14. package/dist/components/grid-cell-editor/index.d.ts.map +1 -0
  15. package/dist/components/grid-filter-cell/grid-filter-cell.d.ts +32 -0
  16. package/dist/components/grid-filter-cell/grid-filter-cell.d.ts.map +1 -0
  17. package/dist/components/grid-filter-cell/grid-filter-cell.template.d.ts +8 -0
  18. package/dist/components/grid-filter-cell/grid-filter-cell.template.d.ts.map +1 -0
  19. package/dist/components/grid-filter-cell/index.d.ts +2 -0
  20. package/dist/components/grid-filter-cell/index.d.ts.map +1 -0
  21. package/dist/components/grid-group-row/grid-group-row.d.ts +55 -0
  22. package/dist/components/grid-group-row/grid-group-row.d.ts.map +1 -0
  23. package/dist/components/grid-group-row/grid-group-row.template.d.ts +12 -0
  24. package/dist/components/grid-group-row/grid-group-row.template.d.ts.map +1 -0
  25. package/dist/components/grid-group-row/index.d.ts +2 -0
  26. package/dist/components/grid-group-row/index.d.ts.map +1 -0
  27. package/dist/components/grid-header-cell/grid-header-cell.d.ts +13 -0
  28. package/dist/components/grid-header-cell/grid-header-cell.d.ts.map +1 -0
  29. package/dist/components/grid-header-cell/index.d.ts +2 -0
  30. package/dist/components/grid-header-cell/index.d.ts.map +1 -0
  31. package/dist/components/grid-pagination/grid-pagination.d.ts +45 -0
  32. package/dist/components/grid-pagination/grid-pagination.d.ts.map +1 -0
  33. package/dist/components/grid-pagination/grid-pagination.template.d.ts +17 -0
  34. package/dist/components/grid-pagination/grid-pagination.template.d.ts.map +1 -0
  35. package/dist/components/grid-pagination/index.d.ts +2 -0
  36. package/dist/components/grid-pagination/index.d.ts.map +1 -0
  37. package/dist/components/grid-template/grid-template.d.ts +31 -0
  38. package/dist/components/grid-template/grid-template.d.ts.map +1 -0
  39. package/dist/components/grid-template/index.d.ts +2 -0
  40. package/dist/components/grid-template/index.d.ts.map +1 -0
  41. package/dist/events.d.ts +43 -0
  42. package/dist/events.d.ts.map +1 -0
  43. package/dist/focus.d.ts +100 -0
  44. package/dist/focus.d.ts.map +1 -0
  45. package/dist/framework-slots.d.ts +170 -0
  46. package/dist/framework-slots.d.ts.map +1 -0
  47. package/dist/grid-controller.d.ts +363 -0
  48. package/dist/grid-controller.d.ts.map +1 -0
  49. package/dist/icons.d.ts +34 -0
  50. package/dist/icons.d.ts.map +1 -0
  51. package/dist/index.d.ts +11 -902
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/patch.d.ts +88 -0
  54. package/dist/patch.d.ts.map +1 -0
  55. package/dist/render.d.ts +62 -0
  56. package/dist/render.d.ts.map +1 -0
  57. package/dist/templates/index.d.ts +24 -0
  58. package/dist/templates/index.d.ts.map +1 -0
  59. package/dist/ui-grid-empty.template.d.ts +8 -0
  60. package/dist/ui-grid-empty.template.d.ts.map +1 -0
  61. package/dist/ui-grid-shell.template.d.ts +17 -0
  62. package/dist/ui-grid-shell.template.d.ts.map +1 -0
  63. package/dist/ui-grid-standalone.element.d.ts +309 -0
  64. package/dist/ui-grid-standalone.element.d.ts.map +1 -0
  65. package/dist/utils/cell-class.d.ts +9 -0
  66. package/dist/utils/cell-class.d.ts.map +1 -0
  67. package/dist/utils/display-items.d.ts +11 -0
  68. package/dist/utils/display-items.d.ts.map +1 -0
  69. package/dist/utils/dom.d.ts +22 -0
  70. package/dist/utils/dom.d.ts.map +1 -0
  71. package/package.json +10 -10
  72. package/tsconfig.dts.json +15 -0
  73. package/tsconfig.json +0 -1
  74. package/tsup.config.ts +1 -1
  75. package/dist/index.d.mts +0 -904
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACL,6BAA6B,EAC7B,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAED,OAAO,EAAE,6BAA6B,IAAI,mBAAmB,EAAE,CAAC;AAEhE,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,mBAAmB,EAC3B,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,mBAAmB,EAChC,OAAO,SAAoB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAe/B"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Patch path: apply the next snapshot onto the existing shadow-DOM tree
3
+ * without rebuilding it. The initial mount produces the full structure
4
+ * via `renderFull`; subsequent renders pass through `renderPatch` here,
5
+ * which walks the existing nodes and only mutates what changed. This is
6
+ * what keeps focus inside mounted `<ui-grid-cell-editor>` components and
7
+ * what makes per-keystroke snapshot rebroadcasts cheap.
8
+ *
9
+ * Every function takes the element as its first argument and reads its
10
+ * internal state directly. See the @internal field markers on the class
11
+ * for the coupling contract.
12
+ */
13
+ import type { DisplayItem, GridColumnDef, GridOptions, GridRow, GroupItem } from '@ornery/ui-grid-core';
14
+ import type { GridControllerSnapshot } from './grid-controller';
15
+ import type { UiGridStandaloneElement } from './ui-grid-standalone.element';
16
+ /**
17
+ * Fast-path data refresh: walk every rendered body cell and re-interpolate
18
+ * its content. Used when the data changed but the row / column identity
19
+ * didn't, so we can avoid a full render + scroll-position restore.
20
+ */
21
+ export declare function patchCells(el: UiGridStandaloneElement, changedRowIds?: ReadonlySet<string>): void;
22
+ /**
23
+ * Structural patch: apply a full `RenderPlan` to the existing shadow-DOM
24
+ * tree. Replaces `renderFull`'s innerHTML-dump path whenever the structure
25
+ * key hasn't changed between snapshots.
26
+ */
27
+ export declare function renderPatch(el: UiGridStandaloneElement, plan: {
28
+ snapshot: GridControllerSnapshot;
29
+ options: GridOptions;
30
+ labels: GridControllerSnapshot['labels'];
31
+ templateColumns: string;
32
+ sortEnabled: boolean;
33
+ filterEnabled: boolean;
34
+ groupingEnabled: boolean;
35
+ pinningEnabled: boolean;
36
+ paginationEnabled: boolean;
37
+ showPagination: boolean;
38
+ virtualizationEnabled: boolean;
39
+ itemsToRender: readonly DisplayItem[];
40
+ startIndex: number;
41
+ virtualOffset: number;
42
+ totalVirtualHeight: number;
43
+ }, root: ShadowRoot): void;
44
+ /**
45
+ * Ensures the grid-body-viewport contains the right body node for the
46
+ * desired kind (empty-state / virtual / static), reusing the existing
47
+ * node where possible. Returns the body container the caller should
48
+ * patch into, or null for the empty state.
49
+ */
50
+ export declare function reconcileBodyRoot(el: UiGridStandaloneElement, root: ShadowRoot, kind: 'empty' | 'virtual' | 'static', options: GridOptions, labels: GridControllerSnapshot['labels'], templateColumns: string, virtualOffset: number, totalVirtualHeight: number): HTMLElement | null;
51
+ /**
52
+ * Pagination reconciliation: mount, patch, or remove the `<ui-grid-pagination>`
53
+ * based on whether the snapshot should show it. Lives inside `.grid-table`
54
+ * (after `.grid-body-viewport`) matching the Angular layout.
55
+ */
56
+ export declare function reconcilePagination(el: UiGridStandaloneElement, root: ShadowRoot, snapshot: GridControllerSnapshot, shouldShow: boolean): void;
57
+ /**
58
+ * Patch the filter-cell data-attrs on the existing `<ui-grid-filter-cell>`
59
+ * instances — this preserves native input focus + caret across snapshot
60
+ * rebuilds. `renderPatch` takes this path instead of swapping innerHTML.
61
+ */
62
+ export declare function patchFilterCells(el: UiGridStandaloneElement, filterGrid: HTMLElement, snapshot: GridControllerSnapshot): void;
63
+ /**
64
+ * Reconcile the body region: pick the right container kind (empty /
65
+ * virtual / static), apply its styles, and either in-place-patch or
66
+ * innerHTML-swap the rows depending on whether the fingerprint changed.
67
+ */
68
+ export declare function patchBodyRegion(el: UiGridStandaloneElement, root: ShadowRoot, snapshot: GridControllerSnapshot, options: GridOptions, labels: GridControllerSnapshot['labels'], templateColumns: string, virtualizationEnabled: boolean, itemsToRender: readonly DisplayItem[], startIndex: number, virtualOffset: number, totalVirtualHeight: number): void;
69
+ /**
70
+ * Lean per-item fingerprint: `kind:id` joined by `|`. If any row/group is
71
+ * added/removed/reordered between renders, the fingerprint shifts and the
72
+ * body-region patch falls back to the innerHTML path.
73
+ */
74
+ export declare function fingerprintItems(items: readonly DisplayItem[]): string;
75
+ /**
76
+ * Walk the rendered body container, match existing DOM nodes to display
77
+ * items by identity, and patch each in place. Called only on the fast
78
+ * path where the fingerprint matches.
79
+ */
80
+ export declare function patchExistingRows(el: UiGridStandaloneElement, bodyContainer: HTMLElement, snapshot: GridControllerSnapshot, itemsToRender: readonly DisplayItem[], startIndex: number): void;
81
+ /** Patch a group-row element's data-attrs. */
82
+ export declare function patchGroupRow(el: UiGridStandaloneElement, target: HTMLElement, group: GroupItem): void;
83
+ /** Patch a body-cell element in place: class, sticky style, data-attrs,
84
+ * and the cell-shell's interpolated content. */
85
+ export declare function patchBodyCell(el: UiGridStandaloneElement, cell: HTMLElement, row: GridRow, column: GridColumnDef, displayIndex: number, templateMarkupMap: Map<string, string | null>): void;
86
+ /** Patch the pagination component's data-attrs without re-mounting it. */
87
+ export declare function patchPagination(el: UiGridStandaloneElement, paginationEl: HTMLElement, snapshot: GridControllerSnapshot): void;
88
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Pure markup builders used by the grid element's initial-render and patch
3
+ * paths. Every function here returns an HTML string — none of them touch
4
+ * the DOM or the element's scroll state. The element's top-level `render()`
5
+ * / `renderFull()` / `renderPatch()` orchestrators wire these into the
6
+ * actual mount pipeline.
7
+ *
8
+ * The element is passed in as the first argument; these functions read its
9
+ * internal state (controller / snapshot / focusedCell / …) directly.
10
+ * TypeScript's @internal JSDoc markers on those fields document the
11
+ * coupling — nothing outside this package should depend on the fields.
12
+ */
13
+ import { type DisplayItem, type GridColumnDef, type GridOptions, type GridRow } from '@ornery/ui-grid-core';
14
+ import type { GridControllerSnapshot } from './grid-controller';
15
+ import type { UiGridStandaloneElement } from './ui-grid-standalone.element';
16
+ /**
17
+ * Render a single column's header cell. Emits the selection-row-header
18
+ * variant, the framework-rendered `<slot>` variant, or the full
19
+ * header-cell markup with sort / group / pin / resize chrome.
20
+ */
21
+ export declare function renderHeaderCell(el: UiGridStandaloneElement, column: GridColumnDef, sortEnabled: boolean, groupingEnabled: boolean, pinningEnabled: boolean, options: GridOptions): string;
22
+ /** Render the filter-row cell for one column. Selection column gets a bare
23
+ * spacer div; framework-rendered columns get a `<slot>`; everything else
24
+ * renders a `<ui-grid-filter-cell>` component with data-attributes. */
25
+ export declare function renderFilterCell(el: UiGridStandaloneElement, column: GridColumnDef): string;
26
+ /** Render one display-item: group row, expandable row, or the cells of a
27
+ * regular data row. */
28
+ export declare function renderDisplayItem(el: UiGridStandaloneElement, item: DisplayItem, displayIndex: number): string;
29
+ /** Render one body cell including its pin / focus / edit / validation
30
+ * chrome. The inner `.cell-content` is produced by `renderCellTemplate`. */
31
+ export declare function renderBodyCell(el: UiGridStandaloneElement, row: GridRow, column: GridColumnDef, displayIndex: number): string;
32
+ /** Render the contents of `.cell-shell` (tree/expand toggles + the
33
+ * interpolated cell content). Used by the patch path to replace inner
34
+ * HTML without rebuilding the body-cell wrapper. */
35
+ export declare function renderCellShellContents(el: UiGridStandaloneElement, row: GridRow, column: GridColumnDef, displayIndex: number, editing: boolean, templateMarkupMap?: Map<string, string | null>): string;
36
+ /** Pagination footer markup. Reads page-size options + labels + icons off
37
+ * the snapshot; emits a `<ui-grid-pagination>` component with data-* attrs. */
38
+ export declare function renderPagination(el: UiGridStandaloneElement, snapshot: GridControllerSnapshot): string;
39
+ /** Hidden `<slot>` registry block so the element's shadow DOM exposes a
40
+ * named slot for every visible column's default `<template slot="cell-…">`
41
+ * markup. Matches the old grid's slot-exposure contract. */
42
+ export declare function renderSlotRegistry(columns: readonly GridColumnDef[]): string;
43
+ /** Render the inner `.cell-content` of one cell — the value interpolated
44
+ * through a consumer template, or the default display value. */
45
+ export declare function renderCellTemplate(el: UiGridStandaloneElement, row: GridRow, column: GridColumnDef, displayIndex: number): string;
46
+ /** Render the inner `.cell-content` from a pre-fetched template markup
47
+ * string. Used by the patch path which resolves templates once per column
48
+ * and reuses the result across every cell. */
49
+ export declare function renderCellTemplateFromMarkup(el: UiGridStandaloneElement, row: GridRow, column: GridColumnDef, displayIndex: number, templateMarkup: string | null): string;
50
+ /** Render the body of an expandable detail row — either a framework slot
51
+ * placeholder or the interpolated `<template slot="expandable-row">`. */
52
+ export declare function renderExpandableTemplate(el: UiGridStandaloneElement, row: GridRow): string;
53
+ /** Render the no-data empty-state panel. In framework-rendered mode,
54
+ * stages the singleton `empty` slot and emits a slot placeholder. */
55
+ export declare function renderEmptyState(el: UiGridStandaloneElement, headingRaw: string, descriptionRaw: string): string;
56
+ /** Read a consumer-provided `<template slot="…">` out of the element's
57
+ * light DOM. Returns the template's innerHTML or null when absent. */
58
+ export declare function getTemplateMarkup(el: UiGridStandaloneElement, slotName: string): string | null;
59
+ /** Resolve the visible-rows index for a given row, falling back to the
60
+ * render-pass displayIndex when the row isn't in `visibleRows`. */
61
+ export declare function rowIndexFor(el: UiGridStandaloneElement, row: GridRow, fallback?: number): number;
62
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAmBhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAK5E;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,uBAAuB,EAC3B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,OAAO,EACpB,eAAe,EAAE,OAAO,EACxB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,WAAW,GACnB,MAAM,CAsER;AAED;;uEAEuE;AACvE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAmB3F;AAED;uBACuB;AACvB,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,uBAAuB,EAC3B,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CA0BR;AAED;4EAC4E;AAC5E,wBAAgB,cAAc,CAC5B,EAAE,EAAE,uBAAuB,EAC3B,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,GACnB,MAAM,CAyER;AAED;;oDAEoD;AACpD,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,uBAAuB,EAC3B,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAC7C,MAAM,CAuCR;AAED;+EAC+E;AAC/E,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,uBAAuB,EAC3B,QAAQ,EAAE,sBAAsB,GAC/B,MAAM,CAKR;AAED;;4DAE4D;AAC5D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAK5E;AAED;gEACgE;AAChE,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,uBAAuB,EAC3B,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,GACnB,MAAM,CAGR;AAED;;8CAE8C;AAC9C,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,uBAAuB,EAC3B,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,MAAM,CAkCR;AAED;yEACyE;AACzE,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,uBAAuB,EAC3B,GAAG,EAAE,OAAO,GACX,MAAM,CAkBR;AAED;qEACqE;AACrE,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,uBAAuB,EAC3B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CAQR;AAED;sEACsE;AACtE,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,uBAAuB,EAC3B,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAGf;AAED;mEACmE;AACnE,wBAAgB,WAAW,CACzB,EAAE,EAAE,uBAAuB,EAC3B,GAAG,EAAE,OAAO,EACZ,QAAQ,SAAI,GACX,MAAM,CAIR"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * String template helpers for grid markup fragments.
3
+ *
4
+ * These are simple functions that return HTML strings for use in innerHTML
5
+ * concatenation (the hot render path). They are NOT .html template imports —
6
+ * .html templates should only be used where connect() is called against
7
+ * a DOM target (shell, components with shadow DOM).
8
+ *
9
+ * This avoids the DOM→string→DOM round-trip that toHTML() would cause.
10
+ */
11
+ export declare function iconMarkup(svgClass: string, viewBox: string, path: string): string;
12
+ export declare function slotRegistryMarkup(cellSlots: string): string;
13
+ export declare function filterRowMarkup(templateColumns: string, filterCells: string): string;
14
+ export declare function bodyVirtualMarkup(templateColumns: string, totalVirtualHeight: number, virtualOffset: number, bodyContent: string): string;
15
+ export declare function bodyStaticMarkup(templateColumns: string, bodyContent: string): string;
16
+ export declare function emptyDataMarkup(heading: string, description: string): string;
17
+ export declare function expandableRowMarkup(expandableContent: string): string;
18
+ export declare function treeToggleMarkup(rowId: string, toggleLabel: string, iconViewBox: string, iconPath: string): string;
19
+ export declare function expandToggleMarkup(rowId: string, toggleLabel: string, iconViewBox: string, iconPath: string): string;
20
+ export declare function cellEditorMarkup(rowId: string, columnName: string, inputType: string, editingValue: string): string;
21
+ export declare function cellValueMarkup(displayValue: string): string;
22
+ export declare function defaultExpandableMarkup(label: string): string;
23
+ export declare function resizerMarkup(columnName: string, headerValue: string): string;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzI;AAED,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAErF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElH;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpH;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEnH;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7E"}
@@ -0,0 +1,8 @@
1
+ interface EmptyContext {
2
+ message: string;
3
+ }
4
+ export default function emptyTemplate(ctx: EmptyContext): {
5
+ connect(root?: ShadowRoot): void;
6
+ };
7
+ export {};
8
+ //# sourceMappingURL=ui-grid-empty.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-grid-empty.template.d.ts","sourceRoot":"","sources":["../src/ui-grid-empty.template.ts"],"names":[],"mappings":"AAKA,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,GAAG,EAAE,YAAY;mBAEpC,UAAU,GAAG,IAAI;EAWnC"}
@@ -0,0 +1,17 @@
1
+ interface ShellContext {
2
+ shadowRoot?: ShadowRoot | null;
3
+ slotRegistry: string;
4
+ gridTitle: string;
5
+ gridTableStyle: string;
6
+ templateColumns: string;
7
+ headerContent: string;
8
+ filterRowContent: string;
9
+ bodyViewportStyle: string;
10
+ bodyContent: string;
11
+ paginationContent: string;
12
+ }
13
+ export default function gridShellTemplate(ctx: ShellContext): {
14
+ connect(root?: ShadowRoot): void;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=ui-grid-shell.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-grid-shell.template.d.ts","sourceRoot":"","sources":["../src/ui-grid-shell.template.ts"],"names":[],"mappings":"AAKA,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,YAAY;mBAExC,UAAU,GAAG,IAAI;EAwBnC"}
@@ -0,0 +1,309 @@
1
+ import { type GridColumnDef, type GridOptions, type GridRecord } from '@ornery/ui-grid-core';
2
+ import { FrameworkSlotBridge, type FrameworkRenderedSlotsConfig } from './framework-slots';
3
+ export type { FrameworkRenderedSlotsConfig, FrameworkCellSlot, FrameworkHeaderSlot, FrameworkFilterSlot, FrameworkGroupRowSlot, FrameworkExpandableRowSlot, FrameworkEmptyStateSlot, FrameworkSlotDelta, } from './framework-slots';
4
+ import { IconRegistry, type UiGridIconOverrides } from './icons';
5
+ export type { UiGridControlIconKey, UiGridIconDefinition, UiGridIconOverrides } from './icons';
6
+ import { type GridControllerSnapshot, type GridSaveState, type VanillaGridController } from './grid-controller';
7
+ export type VanillaUiGridElement = HTMLElement & {
8
+ options: GridOptions;
9
+ getState(): GridSaveState | null;
10
+ setState(state: Partial<GridSaveState>): void;
11
+ /**
12
+ * Fast-path data update: patches only visible cell content in the existing
13
+ * shadow DOM. Does NOT rebuild the scroll container or header, so scrolling
14
+ * remains completely smooth while data ticks in the background.
15
+ */
16
+ setData(rows: GridRecord[]): void;
17
+ /**
18
+ * Declare which slots the grid should emit as `<slot>` placeholders for a
19
+ * framework wrapper to project into. See `FrameworkSlotBridge` for the
20
+ * full contract.
21
+ */
22
+ setFrameworkRenderedSlots(config: FrameworkRenderedSlotsConfig): void;
23
+ };
24
+ type VanillaGridOptions = GridOptions & {
25
+ iconOverrides?: UiGridIconOverrides;
26
+ };
27
+ export declare class UiGridStandaloneElement extends HTMLElement {
28
+ /** @internal */ controller: VanillaGridController | null;
29
+ /** @internal */ snapshot: GridControllerSnapshot | null;
30
+ /** @internal */ unsubscribe: (() => void) | null;
31
+ /** @internal */ activeOptions: VanillaGridOptions | null;
32
+ /** @internal */ attributeOptions: Partial<GridOptions>;
33
+ /** @internal */ attributeSyncScheduled: boolean;
34
+ /** @internal Owns the SVG-icon registry: defaults merged with consumer
35
+ * overrides plus rendering helpers. See `./icons.ts`. */
36
+ icons: IconRegistry;
37
+ /** @internal */ templateObserver: MutationObserver | null;
38
+ /** @internal */ openPinMenuColumn: string | null;
39
+ /** @internal */ focusedCell: {
40
+ rowId: string;
41
+ columnName: string;
42
+ } | null;
43
+ /** @internal */ draggedColumnName: string | null;
44
+ /** @internal */ dropTargetColumnName: string | null;
45
+ /** @internal */ scrollPosition: number;
46
+ /** @internal */ horizontalScrollPosition: number;
47
+ /** @internal */ scrollFrame: number | null;
48
+ /** @internal */ suppressScrollEvent: boolean;
49
+ /** @internal */ lastVirtualStartIndex: number;
50
+ /** @internal */ measuredHeaderStickyHeight: number;
51
+ /** @internal */ measuredFilterStickyHeight: number;
52
+ /** @internal */ stickyHeightRelayoutQueued: boolean;
53
+ /** @internal */ benchmarkAverage: string;
54
+ /** @internal */ skipNextRender: boolean;
55
+ /** @internal */ autoResizeObserver: ResizeObserver | null;
56
+ /** @internal */ autoResizeDebounceHandle: number | null;
57
+ gridTitle: string;
58
+ gridTableStyle: string;
59
+ bodyViewportStyle: string;
60
+ templateColumns: string;
61
+ slotRegistry: string;
62
+ headerContent: string;
63
+ filterRowContent: string;
64
+ bodyContent: string;
65
+ paginationContent: string;
66
+ /** @internal */ dataFrame: number | null;
67
+ /** @internal */ pendingPatchedRowIds: Set<string> | null;
68
+ /** @internal */ pendingDataRefreshMode: 'patch' | 'virtual' | 'full' | null;
69
+ /** @internal */ lastScrollActivityAt: number;
70
+ /** @internal */ lastStructureKey: string | null;
71
+ /** @internal */ lastItemsFingerprint: string | null;
72
+ /** @internal */ lastVirtualOffset: number;
73
+ /** @internal */ lastTotalVirtualHeight: number;
74
+ /**
75
+ * @internal Per-row visual-state fingerprint from the previous patch pass.
76
+ * The patch path uses this to skip cells whose row state hasn't changed
77
+ * (selection, expand, dirty/saving/error flags) when the structure
78
+ * fingerprint matches. Cleared on full re-render.
79
+ */
80
+ lastRowStateFingerprints: Map<string, {
81
+ fingerprint: string;
82
+ entity: unknown;
83
+ }>;
84
+ /** @internal */ lastEditingCellKey: string | null;
85
+ /** @internal */ lastFocusedCellKey: string | null;
86
+ /**
87
+ * @internal Framework-rendered slot bridge. See `./framework-slots.ts`.
88
+ */
89
+ frameworkSlots: FrameworkSlotBridge;
90
+ static get observedAttributes(): string[];
91
+ get options(): GridOptions;
92
+ set options(value: GridOptions);
93
+ /**
94
+ * Declare which slots are framework-rendered. When a slot is flagged, the
95
+ * element renders a `<slot name="…">` placeholder at the usual site instead
96
+ * of running its string-interpolation template, and dispatches
97
+ * `*SlotsChanged` events so a wrapper can insert light-DOM content with a
98
+ * matching `slot` attribute.
99
+ *
100
+ * Pass an empty object (or `{}`) to revert every slot kind back to the
101
+ * default interpolation path. Individual fields behave the same way:
102
+ * omitting `cells` means the cells list is unchanged; passing
103
+ * `cells: []` clears it.
104
+ *
105
+ * This is the bridge the Angular / React wrappers use to project native
106
+ * templates (ng-template, JSX render props) into the grid. Consumers of
107
+ * the web component directly can ignore this method — the default
108
+ * `<template slot="cell-columnName">` workflow still works.
109
+ */
110
+ setFrameworkRenderedSlots(config: FrameworkRenderedSlotsConfig): void;
111
+ attributeChangedCallback(_name: string, _oldValue: string | null, _newValue: string | null): void;
112
+ private syncAttributesToOptions;
113
+ get controlIcons(): UiGridIconOverrides;
114
+ set controlIcons(value: UiGridIconOverrides);
115
+ private resolveIcon;
116
+ get gridId(): string;
117
+ set gridId(value: string);
118
+ get title(): string;
119
+ set title(value: string);
120
+ get rowHeight(): number;
121
+ set rowHeight(value: number);
122
+ get headerRowHeight(): number;
123
+ set headerRowHeight(value: number);
124
+ get paginationPageSize(): number;
125
+ set paginationPageSize(value: number);
126
+ get paginationCurrentPage(): number;
127
+ set paginationCurrentPage(value: number);
128
+ get totalItems(): number | undefined;
129
+ set totalItems(value: number | undefined);
130
+ get virtualizationThreshold(): number;
131
+ set virtualizationThreshold(value: number);
132
+ get treeChildrenField(): string;
133
+ set treeChildrenField(value: string);
134
+ get treeIndent(): number;
135
+ set treeIndent(value: number);
136
+ get expandableRowHeight(): number;
137
+ set expandableRowHeight(value: number);
138
+ get expandableRowHeaderWidth(): number;
139
+ set expandableRowHeaderWidth(value: number);
140
+ get emptyMessage(): string;
141
+ set emptyMessage(value: string);
142
+ get infiniteScrollRowsFromEnd(): number;
143
+ set infiniteScrollRowsFromEnd(value: number);
144
+ get columnDefs(): readonly GridColumnDef[];
145
+ set columnDefs(value: readonly GridColumnDef[]);
146
+ get data(): readonly GridRecord[];
147
+ set data(value: readonly GridRecord[]);
148
+ get enableSorting(): boolean;
149
+ set enableSorting(value: boolean);
150
+ get enableFiltering(): boolean;
151
+ set enableFiltering(value: boolean);
152
+ get enableGrouping(): boolean;
153
+ set enableGrouping(value: boolean);
154
+ get enablePinning(): boolean;
155
+ set enablePinning(value: boolean);
156
+ get enableColumnMoving(): boolean;
157
+ set enableColumnMoving(value: boolean);
158
+ get enableColumnResizing(): boolean;
159
+ set enableColumnResizing(value: boolean);
160
+ get enableCellEdit(): boolean;
161
+ set enableCellEdit(value: boolean);
162
+ get enableCellEditOnFocus(): boolean;
163
+ set enableCellEditOnFocus(value: boolean);
164
+ get enablePagination(): boolean;
165
+ set enablePagination(value: boolean);
166
+ get enablePaginationControls(): boolean;
167
+ set enablePaginationControls(value: boolean);
168
+ get useExternalPagination(): boolean;
169
+ set useExternalPagination(value: boolean);
170
+ get enableExpandable(): boolean;
171
+ set enableExpandable(value: boolean);
172
+ get enableTreeView(): boolean;
173
+ set enableTreeView(value: boolean);
174
+ get showTreeExpandNoChildren(): boolean;
175
+ set showTreeExpandNoChildren(value: boolean);
176
+ get treeRowHeaderAlwaysVisible(): boolean;
177
+ set treeRowHeaderAlwaysVisible(value: boolean);
178
+ get enableAutoResize(): boolean;
179
+ set enableAutoResize(value: boolean);
180
+ get enableVirtualization(): boolean;
181
+ set enableVirtualization(value: boolean);
182
+ get infiniteScrollUp(): boolean;
183
+ set infiniteScrollUp(value: boolean);
184
+ get infiniteScrollDown(): boolean;
185
+ set infiniteScrollDown(value: boolean);
186
+ get grouping(): unknown;
187
+ set grouping(value: unknown);
188
+ get paginationPageSizes(): number[] | null | undefined;
189
+ set paginationPageSizes(value: number[] | null | undefined);
190
+ getState(): GridSaveState | null;
191
+ setState(state: Partial<GridSaveState>): void;
192
+ /**
193
+ * Fast-path: update only row data without rebuilding the shadow DOM.
194
+ * The pipeline is updated synchronously; DOM patching is deferred to the
195
+ * next animation frame so it never interrupts an in-progress scroll paint.
196
+ * If multiple ticks arrive before the frame fires, only the latest wins.
197
+ * If a scroll-triggered full render fires first, the frame is cancelled
198
+ * (the fresh innerHTML already reflects the latest data).
199
+ */
200
+ setData(rows: GridRecord[]): void;
201
+ private flushPendingDataRefresh;
202
+ private patchCells;
203
+ connectedCallback(): void;
204
+ disconnectedCallback(): void;
205
+ private benchmarkRender;
206
+ /** @internal */
207
+ ensureShadowRoot(): ShadowRoot;
208
+ /** @internal */
209
+ ensureController(options: VanillaGridOptions): void;
210
+ /** Hidden file input used by `gridApi.importer.importAFile()`. Lazily
211
+ * created on first use and reused thereafter. */
212
+ private importerFileInput;
213
+ private openImporterFilePicker;
214
+ private observeTemplateSlots;
215
+ private bindEvents;
216
+ private syncHeaderHorizontalScroll;
217
+ private maybeTriggerInfiniteScroll;
218
+ /** @internal */
219
+ buildEffectiveOptions(options: VanillaGridOptions): VanillaGridOptions;
220
+ /**
221
+ * Ask the controller to evaluate whether the current scroll position
222
+ * should request more data at the top or bottom — ports the old grid's
223
+ * handleScroll → loadData check. The controller does the actual
224
+ * needLoadMoreData / needLoadMoreDataTop raise.
225
+ */
226
+ /**
227
+ * Mirror horizontal scroll from the body viewport onto the header + filter
228
+ * strips by setting `scrollLeft` on them. Because those strips are real
229
+ * scroll containers (with their scrollbars hidden), `position: sticky` on
230
+ * pinned header / filter cells anchors to the strip's scroll position the
231
+ * same way body cells anchor to `.grid-body-viewport`. This is the
232
+ * imperative sync strategy the old ui-grid used in ui-grid-viewport.js.
233
+ */
234
+ /**
235
+ * Targeted update for virtual scroll: replaces only the rendered rows inside
236
+ * the existing `.grid-virtual-body` without touching the scroll container.
237
+ * This preserves momentum/inertia scrolling because the `.grid-table` element
238
+ * is never destroyed.
239
+ */
240
+ /** @internal */
241
+ renderVirtualBody(): void;
242
+ /** @internal */
243
+ render(): void;
244
+ /** @internal */
245
+ private inAutoAdjust;
246
+ private lastAutoHeight;
247
+ private autoAdjustHeight;
248
+ measuredPaginationHeight(): number;
249
+ /** @internal */
250
+ setupAutoResize(): void;
251
+ /** @internal */
252
+ teardownAutoResize(): void;
253
+ private buildRenderPlan;
254
+ private renderFull;
255
+ private renderPatch;
256
+ private reconcileBodyRoot;
257
+ private reconcilePagination;
258
+ private patchFilterCells;
259
+ private fingerprintItems;
260
+ private patchExistingRows;
261
+ private patchGroupRow;
262
+ private patchBodyCell;
263
+ private patchPagination;
264
+ private renderHeaderCell;
265
+ private renderFilterCell;
266
+ /**
267
+ * Commit the in-flight edit, then move keyboard focus relative to the
268
+ * committed cell. Splits commit + focus across two paint frames: commit
269
+ * runs synchronously (editor unmounts, cell re-renders with the new value),
270
+ * then focus moves to the adjacent cell. Scheduling the focus in a
271
+ * microtask avoids racing the blur handler's re-entry guard and ensures
272
+ * the destination cell is fully reattached in the DOM.
273
+ *
274
+ * If the source cell was being edited, the destination cell enters edit
275
+ * mode too (provided the destination column is editable). This keeps
276
+ * Tab/Enter nav inside an edit session continuous — you keep editing as
277
+ * you move. Arrow nav outside an edit session does NOT auto-enter edit.
278
+ */
279
+ private commitAndMove;
280
+ private moveGridFocus;
281
+ private scrollFocusedRowIntoView;
282
+ private handleRowSelectionClick;
283
+ private handleRowHeaderCheckboxClick;
284
+ private matchesKeyOverride;
285
+ private applyFocusedCellClass;
286
+ private focusCellElement;
287
+ private measureAutoColumnWidth;
288
+ private renderDisplayItem;
289
+ private renderBodyCell;
290
+ private renderPagination;
291
+ private renderSlotRegistry;
292
+ private renderCellTemplate;
293
+ private renderCellTemplateFromMarkup;
294
+ private renderExpandableTemplate;
295
+ private getTemplateMarkup;
296
+ /** @internal Used by the render module to interpolate consumer templates. */
297
+ interpolateTemplate(templateMarkup: string, context: Record<string, unknown>): string;
298
+ private rowIndexFor;
299
+ private classifyDataRefresh;
300
+ private getRenderedDisplayWindow;
301
+ private cellSlotName;
302
+ private renderEmptyState;
303
+ /** @internal */
304
+ downloadCsv(rowType?: 'all' | 'visible' | 'selected', colType?: 'all' | 'visible'): void;
305
+ private renderControlIcon;
306
+ private renderIconWithClass;
307
+ }
308
+ export declare function defineStandaloneUiGridElement(tagName?: string): Promise<void>;
309
+ //# sourceMappingURL=ui-grid-standalone.element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-grid-standalone.element.d.ts","sourceRoot":"","sources":["../src/ui-grid-standalone.element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Class-name builders for header / body cells. Shared between the initial
3
+ * markup builder and the patch path so both code paths produce identical
4
+ * output.
5
+ */
6
+ export declare function bodyCellClass(isOdd: boolean, align: string, isPinned: boolean, isPinnedLeftLast: boolean, isPinnedRightFirst: boolean, isFocused: boolean, isEditing: boolean, isRowSelected: boolean, isRowFocused: boolean, isRowDirty: boolean, isRowSaving: boolean, isRowError: boolean, isCellInvalid: boolean): string;
7
+ export declare function headerCellClass(isSortActive: boolean, isPinned: boolean, isPinnedLeftLast: boolean, isPinnedRightFirst: boolean, isPinMenuOpen: boolean, isDragTarget: boolean, isDragging: boolean): string;
8
+ export declare function cssEscape(value: string): string;
9
+ //# sourceMappingURL=cell-class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-class.d.ts","sourceRoot":"","sources":["../../src/utils/cell-class.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EACjB,gBAAgB,EAAE,OAAO,EACzB,kBAAkB,EAAE,OAAO,EAC3B,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,OAAO,EACpB,UAAU,EAAE,OAAO,EACnB,aAAa,EAAE,OAAO,GACrB,MAAM,CAuBR;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,OAAO,EACjB,gBAAgB,EAAE,OAAO,EACzB,kBAAkB,EAAE,OAAO,EAC3B,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,GAClB,MAAM,CAUR;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI/C"}
@@ -0,0 +1,11 @@
1
+ import type { DisplayItem, GridRow, GroupItem } from '@ornery/ui-grid-core';
2
+ /** Narrow a DisplayItem to a GroupItem. The grid pipeline's DisplayItem
3
+ * union already guarantees the `kind === 'group'` case; this helper keeps
4
+ * the cast in one place. */
5
+ export declare function asGroupItem(item: DisplayItem): GroupItem;
6
+ /** Type guard for row items with the `row: GridRow` payload attached. */
7
+ export declare function isRowItem(item: DisplayItem): item is DisplayItem & {
8
+ kind: 'row';
9
+ row: GridRow;
10
+ };
11
+ //# sourceMappingURL=display-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-items.d.ts","sourceRoot":"","sources":["../../src/utils/display-items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE5E;;4BAE4B;AAC5B,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAExD;AAED,yEAAyE;AACzE,wBAAgB,SAAS,CACvB,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,WAAW,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAErD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * DOM + HTML utility helpers shared across the element's render / patch paths.
3
+ *
4
+ * `utils/*` modules may only depend on package-level imports — never on any
5
+ * other file in `src/`. Anything else risks forming an import cycle through
6
+ * the element root.
7
+ */
8
+ export declare function escapeHtml(value: unknown): string;
9
+ export declare function setAttr(el: HTMLElement, name: string, value: string): void;
10
+ export declare function setClass(el: HTMLElement, value: string): void;
11
+ export declare function setStyle(el: HTMLElement, value: string): void;
12
+ /**
13
+ * Parse a fragment of HTML and return its first element child. Returns null
14
+ * when the markup is empty or contains only non-element nodes.
15
+ */
16
+ export declare function createFromMarkup(html: string): HTMLElement | null;
17
+ /**
18
+ * Swap an element inside a container, preserving the container's other
19
+ * children. Appends when there is no existing element.
20
+ */
21
+ export declare function swapBodyChild(container: HTMLElement, current: HTMLElement | null, next: HTMLElement): void;
22
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/utils/dom.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQjD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI1E;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI7D;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAO7D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAIjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,IAAI,EAAE,WAAW,GAChB,IAAI,CAMN"}