@1771technologies/lytenyte-pro 1.0.7 → 1.0.9

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 (90) hide show
  1. package/dist/cell-selection/cell-selection-containers.js +5 -5
  2. package/dist/cell-selection/cell-selection-driver.js +9 -9
  3. package/dist/cell-selection/cell-style-row.js +1 -1
  4. package/dist/cell-selection/split-on-pivot.js +1 -1
  5. package/dist/cells/+types.cell.d.ts +13 -0
  6. package/dist/cells/+types.cell.js +1 -0
  7. package/dist/cells/cell-editor.js +2 -2
  8. package/dist/cells/cell-spacer.d.ts +9 -3
  9. package/dist/cells/cell-spacer.js +10 -13
  10. package/dist/cells/cell.js +20 -17
  11. package/dist/cells/use-cell-style.d.ts +3 -0
  12. package/dist/cells/use-cell-style.js +51 -0
  13. package/dist/column-manager/branch.js +4 -4
  14. package/dist/column-manager/column-manager.d.ts +7 -7
  15. package/dist/column-manager/column-manager.js +8 -8
  16. package/dist/column-manager/label.js +1 -1
  17. package/dist/column-manager/leaf.js +4 -4
  18. package/dist/column-manager/move-handle.js +3 -3
  19. package/dist/column-manager/panel.js +1 -1
  20. package/dist/column-manager/root.js +3 -3
  21. package/dist/column-manager/use-column-manager.js +1 -1
  22. package/dist/column-manager/visibility-checkbox.js +3 -3
  23. package/dist/filter-tree/branch.js +3 -3
  24. package/dist/filter-tree/context.d.ts +2 -2
  25. package/dist/filter-tree/hooks/use-filter-tree.js +1 -1
  26. package/dist/filter-tree/inclusion-checkbox.js +1 -1
  27. package/dist/filter-tree/label.js +1 -1
  28. package/dist/filter-tree/leaf.js +3 -3
  29. package/dist/filter-tree/root.js +3 -3
  30. package/dist/grid-box/grid-box.d.ts +5 -5
  31. package/dist/grid-box/grid-box.js +6 -6
  32. package/dist/grid-box/item.js +2 -2
  33. package/dist/grid-box/panel.js +2 -2
  34. package/dist/grid-box/root.d.ts +1 -1
  35. package/dist/grid-box/root.js +3 -3
  36. package/dist/grid.d.ts +8 -8
  37. package/dist/grid.js +12 -12
  38. package/dist/header/header-cell.js +4 -4
  39. package/dist/header/header-group-cell.js +2 -2
  40. package/dist/header/header-row.js +1 -1
  41. package/dist/header/header.js +1 -1
  42. package/dist/header/resize-handler.js +1 -1
  43. package/dist/header/use-header-cell-renderer.js +1 -1
  44. package/dist/icons/index.js +3 -1
  45. package/dist/index.d.ts +4 -4
  46. package/dist/index.js +4 -4
  47. package/dist/listbox/item.js +1 -1
  48. package/dist/listbox/panel.js +1 -1
  49. package/dist/listbox/root.js +1 -1
  50. package/dist/root/dialog-driver.js +1 -1
  51. package/dist/root/popover-driver.js +1 -1
  52. package/dist/root/root.js +5 -5
  53. package/dist/row-data-source-client/pivots/create-agg-model.d.ts +2 -2
  54. package/dist/row-data-source-client/pivots/create-agg-model.js +1 -1
  55. package/dist/row-data-source-client/use-client-data-source-paginated.js +2 -0
  56. package/dist/row-data-source-client/use-client-data-source.js +2 -0
  57. package/dist/row-data-source-client/use-client-tree-data-source.js +2 -0
  58. package/dist/rows/row/context.d.ts +8 -0
  59. package/dist/rows/row/context.js +11 -1
  60. package/dist/rows/row/row.d.ts +1 -1
  61. package/dist/rows/row/row.js +9 -7
  62. package/dist/rows/row/use-row-context-value.d.ts +4 -4
  63. package/dist/rows/row/use-row-context-value.js +18 -3
  64. package/dist/rows/row-detail-row.js +1 -1
  65. package/dist/rows/row-full-width.js +7 -5
  66. package/dist/rows/rows-container.js +1 -1
  67. package/dist/rows/rows-sections.js +3 -3
  68. package/dist/rows/scrollers/native-scroller.js +1 -15
  69. package/dist/sort-manager/root.d.ts +1 -1
  70. package/dist/sort-manager/root.js +1 -1
  71. package/dist/sort-manager/sort-add.js +1 -1
  72. package/dist/sort-manager/sort-apply.js +2 -2
  73. package/dist/sort-manager/sort-cancel.js +2 -2
  74. package/dist/sort-manager/sort-clear.js +1 -1
  75. package/dist/sort-manager/sort-column-select.js +1 -1
  76. package/dist/sort-manager/sort-direction-select.js +1 -1
  77. package/dist/sort-manager/sort-manager.d.ts +11 -11
  78. package/dist/sort-manager/sort-manager.js +12 -12
  79. package/dist/sort-manager/sort-remove.js +1 -1
  80. package/dist/sort-manager/sort-row.d.ts +1 -1
  81. package/dist/sort-manager/sort-row.js +2 -2
  82. package/dist/sort-manager/sort-rows.js +1 -1
  83. package/dist/sort-manager/sort-value-select.js +1 -1
  84. package/dist/state/+types.d.ts +2 -0
  85. package/dist/state/api/cell-root.js +2 -2
  86. package/dist/state/helpers/row-layout/row-layout.js +8 -7
  87. package/dist/state/use-lytenyte.js +12 -2
  88. package/dist/tree-view/root.js +1 -1
  89. package/dist/viewport/viewport.js +2 -2
  90. package/package.json +7 -7
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { memo, useMemo } from "react";
3
- import { CellStyleRow } from "./cell-style-row";
4
- import { useGridRoot } from "../context";
5
- import { isTopRect } from "./is-top-rect";
6
- import { isCenterRect } from "./is-center-rect";
7
- import { isBottomRect } from "./is-bottom-rect";
3
+ import { CellStyleRow } from "./cell-style-row.js";
4
+ import { useGridRoot } from "../context.js";
5
+ import { isTopRect } from "./is-top-rect.js";
6
+ import { isCenterRect } from "./is-center-rect.js";
7
+ import { isBottomRect } from "./is-bottom-rect.js";
8
8
  export const CellSelectionTop = memo(function CellSelectionTop() {
9
9
  const cx = useGridRoot();
10
10
  const allRects = cx.grid.internal.cellSelectionSplits.useValue();
@@ -1,17 +1,17 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect } from "react";
3
- import { useGridRoot } from "../context";
4
- import { useEdgeScroll } from "./use-edge-scroll";
3
+ import { useGridRoot } from "../context.js";
4
+ import { useEdgeScroll } from "./use-edge-scroll.js";
5
5
  import { equal, getClientX, getClientY, getRelativeXPosition, getRelativeYPosition, } from "@1771technologies/lytenyte-js-utils";
6
6
  import { getNearestFocusable, getPositionFromFocusable } from "@1771technologies/lytenyte-shared";
7
7
  import { isHTMLElement } from "@1771technologies/lytenyte-dom-utils";
8
- import { updateAdditiveCellSelection } from "./update-additive-cell-selection";
9
- import { deselectRectRange } from "./deselect-rect-range";
10
- import { isWithinSelectionRect } from "./is-within-selection-rect";
11
- import { expandCellSelectionStart } from "./expand-cell-selection-start";
12
- import { expandCellSelectionEnd } from "./expand-cell-selection-end";
13
- import { expandCellSelectionDown } from "./expand-cell-selection-down";
14
- import { expandCellSelectionUp } from "./expand-cell-selection-up";
8
+ import { updateAdditiveCellSelection } from "./update-additive-cell-selection.js";
9
+ import { deselectRectRange } from "./deselect-rect-range.js";
10
+ import { isWithinSelectionRect } from "./is-within-selection-rect.js";
11
+ import { expandCellSelectionStart } from "./expand-cell-selection-start.js";
12
+ import { expandCellSelectionEnd } from "./expand-cell-selection-end.js";
13
+ import { expandCellSelectionDown } from "./expand-cell-selection-down.js";
14
+ import { expandCellSelectionUp } from "./expand-cell-selection-up.js";
15
15
  function isNormalClick(event) {
16
16
  return event.button === 0 && !event.altKey;
17
17
  }
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
- import { useGridRoot } from "../context";
3
+ import { useGridRoot } from "../context.js";
4
4
  import { getTranslate, sizeFromCoord } from "@1771technologies/lytenyte-shared";
5
5
  export function CellStyleRow({ rect, isRowPinnedTop, isDeselect, isRowPinnedBottom, isPivot, }) {
6
6
  const cx = useGridRoot();
@@ -1,4 +1,4 @@
1
- import { areRectsEqual } from "./are-rects-equal";
1
+ import { areRectsEqual } from "./are-rects-equal.js";
2
2
  export function splitOnPivot(rect, pivot) {
3
3
  if (rect.isUnit || areRectsEqual(rect, pivot))
4
4
  return null;
@@ -0,0 +1,13 @@
1
+ import type { ColumnPin } from "../+types";
2
+ export interface Cell {
3
+ readonly rowIndex: number;
4
+ readonly colIndex: number;
5
+ readonly colSpan: number;
6
+ readonly rowSpan: number;
7
+ readonly rowLastPinTop?: boolean;
8
+ readonly rowFirstPinBottom?: boolean;
9
+ readonly colLastStartPin?: boolean;
10
+ readonly colFirstEndPin?: boolean;
11
+ readonly colPin?: ColumnPin;
12
+ readonly rowPin?: "top" | "bottom" | null;
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useState } from "react";
3
3
  import { getTabbables } from "@1771technologies/lytenyte-dom-utils";
4
- import { useGridRoot } from "../context";
5
- import { editOnChange } from "../state/helpers/edit-on-change";
4
+ import { useGridRoot } from "../context.js";
5
+ import { editOnChange } from "../state/helpers/edit-on-change.js";
6
6
  import { handleNavigationKeys } from "@1771technologies/lytenyte-shared";
7
7
  export function CellEditor({ cell }) {
8
8
  const [el, setEl] = useState(null);
@@ -1,3 +1,9 @@
1
- export declare function CellSpacePinStart(): import("react/jsx-runtime").JSX.Element | null;
2
- export declare function CellSpacerPinEnd(): import("react/jsx-runtime").JSX.Element | null;
3
- export declare function CellSpacerNoPin(): import("react/jsx-runtime").JSX.Element | null;
1
+ export declare function CellSpacePinStart({ xPositions: x }: {
2
+ xPositions: Uint32Array;
3
+ }): import("react/jsx-runtime").JSX.Element | null;
4
+ export declare function CellSpacerPinEnd({ xPositions: x }: {
5
+ xPositions: Uint32Array;
6
+ }): import("react/jsx-runtime").JSX.Element | null;
7
+ export declare function CellSpacerNoPin({ xPositions: x }: {
8
+ xPositions: Uint32Array;
9
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,35 +1,32 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useGridRoot } from "../context";
3
- export function CellSpacePinStart() {
2
+ import { useGridRoot } from "../context.js";
3
+ export function CellSpacePinStart({ xPositions: x }) {
4
4
  const ctx = useGridRoot().grid;
5
- const xPos = ctx.state.xPositions.useValue();
6
5
  const bounds = ctx.state.viewBounds.useValue();
7
- const offset = xPos[bounds.colCenterStart] - xPos[bounds.colStartEnd];
6
+ const offset = x[bounds.colCenterStart] - x[bounds.colStartEnd];
8
7
  const meta = ctx.state.columnMeta.useValue();
9
8
  if (meta.columnVisibleStartCount === 0)
10
9
  return null;
11
10
  return _jsx("div", { style: { display: "inline-block", width: offset, height: 0 } });
12
11
  }
13
- export function CellSpacerPinEnd() {
12
+ export function CellSpacerPinEnd({ xPositions: x }) {
14
13
  const ctx = useGridRoot().grid;
15
- const xPos = ctx.state.xPositions.useValue();
16
14
  const bounds = ctx.state.viewBounds.useValue();
17
- const startOffset = xPos[bounds.colCenterEnd];
18
- let offset = xPos[bounds.colEndStart] - startOffset;
15
+ const startOffset = x[bounds.colCenterEnd];
16
+ let offset = x[bounds.colEndStart] - startOffset;
19
17
  const viewWidth = ctx.state.viewportWidthInner.useValue();
20
- if (xPos.at(-1) < viewWidth) {
21
- offset = viewWidth - xPos.at(-1);
18
+ if (x.at(-1) < viewWidth) {
19
+ offset = viewWidth - x.at(-1);
22
20
  }
23
21
  const meta = ctx.state.columnMeta.useValue();
24
22
  if (meta.columnVisibleEndCount === 0)
25
23
  return null;
26
24
  return _jsx("div", { style: { display: "inline-block", width: offset, height: 0 } });
27
25
  }
28
- export function CellSpacerNoPin() {
26
+ export function CellSpacerNoPin({ xPositions: x }) {
29
27
  const ctx = useGridRoot().grid;
30
- const xPos = ctx.state.xPositions.useValue();
31
28
  const bounds = ctx.state.viewBounds.useValue();
32
- const offset = xPos[bounds.colCenterStart - bounds.colStartEnd];
29
+ const offset = x[bounds.colCenterStart - bounds.colStartEnd];
33
30
  const meta = ctx.state.columnMeta.useValue();
34
31
  if (meta.columnVisibleStartCount > 0)
35
32
  return null;
@@ -1,17 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { forwardRef, useEffect, useState } from "react";
3
- import { useGridRoot } from "../context";
4
- import { CellReact, sizeFromCoord } from "@1771technologies/lytenyte-shared";
5
- import { CellDefault } from "./cell-default";
6
- import { CellEditor } from "./cell-editor";
7
- import { useRowMeta } from "../rows/row/context";
8
- import { CellSpacePinStart, CellSpacerPinEnd } from "./cell-spacer";
9
- export const Cell = forwardRef(function Cell({ cell, ...props }, forwarded) {
2
+ import { forwardRef, memo, useEffect, useState } from "react";
3
+ import { useGridRoot } from "../context.js";
4
+ import { sizeFromCoord } from "@1771technologies/lytenyte-shared";
5
+ import { CellDefault } from "./cell-default.js";
6
+ import { CellEditor } from "./cell-editor.js";
7
+ import { useRowMeta } from "../rows/row/context.js";
8
+ import { CellSpacePinStart, CellSpacerPinEnd } from "./cell-spacer.js";
9
+ import { useCellStyle } from "./use-cell-style.js";
10
+ export const Cell = forwardRef(function Cell(props, forwarded) {
11
+ const { colBounds: [start, end], ...rowMeta } = useRowMeta();
12
+ // This enforces our column virtualization.
13
+ if (props.cell.colPin == null && (props.cell.colIndex >= end || props.cell.colIndex < start)) {
14
+ return null;
15
+ }
16
+ return _jsx(CellImpl, { ...props, ref: forwarded, ...rowMeta });
17
+ });
18
+ const CellImpl = memo(forwardRef(function Cell({ cell, row, selected, indeterminate, xPositions, yPositions, base, renderers, rtl, ...props }, forwarded) {
10
19
  const grid = useGridRoot().grid;
11
- const cx = grid.state;
12
- const base = grid.state.columnBase.useValue();
13
- const row = cell.row.useValue();
14
- const renderers = cx.cellRenderers.useValue();
15
20
  const providedRenderer = cell.column.cellRenderer ?? base.cellRenderer;
16
21
  const Renderer = providedRenderer
17
22
  ? typeof providedRenderer === "string"
@@ -29,12 +34,10 @@ export const Cell = forwardRef(function Cell({ cell, ...props }, forwarded) {
29
34
  pos.rowIndex < cell.rowIndex + cell.rowSpan);
30
35
  });
31
36
  }, [cell.column, cell.rowIndex, cell.rowSpan, grid.internal.editActivePos]);
32
- const xPositions = cx.xPositions.useValue();
33
- const yPositions = cx.yPositions.useValue();
34
- const rowMeta = useRowMeta();
37
+ const style = useCellStyle(xPositions, yPositions, cell, rtl, grid.api.rowDetailRenderedHeight(row ?? ""), undefined);
35
38
  if (cell.isDeadRow)
36
39
  return _jsx("div", { style: { width: sizeFromCoord(cell.colIndex, xPositions) } });
37
40
  if (!row || cell.isDeadCol)
38
41
  return null;
39
- return (_jsxs(_Fragment, { children: [cell.colFirstEndPin && _jsx(CellSpacerPinEnd, {}), _jsxs(CellReact, { ...props, ref: forwarded, cell: cell, isEditing: isEditing, detailHeight: grid.api.rowDetailRenderedHeight(row ?? ""), rtl: cx.rtl.useValue(), xPosition: xPositions, yPosition: yPositions, children: [isEditing && _jsx(CellEditor, { cell: cell }), !isEditing && (_jsx(Renderer, { column: cell.column, rowSelected: rowMeta.selected, rowIndeterminate: rowMeta.indeterminate, row: row, grid: grid, rowIndex: cell.rowIndex, colIndex: cell.colIndex, rowPin: cell.rowPin }))] }), cell.colLastStartPin && _jsx(CellSpacePinStart, {})] }));
40
- });
42
+ return (_jsxs(_Fragment, { children: [cell.colFirstEndPin && _jsx(CellSpacerPinEnd, { xPositions: xPositions }), _jsxs("div", { ...props, ref: forwarded, role: "gridcell", "data-ln-rowindex": cell.rowIndex, "data-ln-colindex": cell.colIndex, "data-ln-colspan": cell.colSpan, "data-ln-rowspan": cell.rowSpan, "data-ln-pin": cell.colPin ?? "center", "data-ln-cell": true, "data-ln-last-top-pin": cell.rowLastPinTop, "data-ln-first-bottom-pin": cell.rowFirstPinBottom, "data-ln-last-start-pin": cell.colLastStartPin, "data-ln-first-end-pin": cell.colFirstEndPin, tabIndex: isEditing ? -1 : 0, style: style, children: [isEditing && _jsx(CellEditor, { cell: cell }), !isEditing && (_jsx(Renderer, { column: cell.column, rowSelected: selected, rowIndeterminate: indeterminate, row: row, grid: grid, rowIndex: cell.rowIndex, colIndex: cell.colIndex, rowPin: cell.rowPin }))] }), cell.colLastStartPin && _jsx(CellSpacePinStart, { xPositions: xPositions })] }));
43
+ }));
@@ -0,0 +1,3 @@
1
+ import { type CSSProperties } from "react";
2
+ import type { Cell } from "./+types.cell";
3
+ export declare function useCellStyle(xPositions: Uint32Array, yPositions: Uint32Array, cell: Cell, rtl: boolean, detailHeight: number, additional: CSSProperties | undefined): CSSProperties;
@@ -0,0 +1,51 @@
1
+ import { useMemo } from "react";
2
+ import { sizeFromCoord } from "@1771technologies/lytenyte-shared";
3
+ export function useCellStyle(xPositions, yPositions, cell, rtl, detailHeight, additional) {
4
+ const width = sizeFromCoord(cell.colIndex, xPositions, cell.colSpan);
5
+ const height = sizeFromCoord(cell.rowIndex, yPositions, cell.rowSpan) - detailHeight;
6
+ const isSticky = !!cell.colPin;
7
+ const isRowPinned = !!cell.rowPin;
8
+ const styles = useMemo(() => {
9
+ const styles = {
10
+ height,
11
+ width,
12
+ minWidth: width,
13
+ maxWidth: width,
14
+ boxSizing: "border-box",
15
+ pointerEvents: "all",
16
+ display: "inline-block",
17
+ overflow: "hidden",
18
+ };
19
+ if (cell.colPin === "end") {
20
+ styles.position = "sticky";
21
+ const x = xPositions.at(-1) - xPositions[cell.colIndex + cell.colSpan];
22
+ if (rtl)
23
+ styles.left = x;
24
+ else
25
+ styles.right = x;
26
+ styles.zIndex = isRowPinned ? 5 : 2;
27
+ }
28
+ else if (isSticky) {
29
+ styles.position = "sticky";
30
+ const x = xPositions[cell.colIndex];
31
+ if (rtl)
32
+ styles.right = x;
33
+ else
34
+ styles.left = x;
35
+ styles.zIndex = isRowPinned ? 5 : 2;
36
+ }
37
+ return { ...additional, ...styles };
38
+ }, [
39
+ additional,
40
+ cell.colIndex,
41
+ cell.colPin,
42
+ cell.colSpan,
43
+ height,
44
+ isRowPinned,
45
+ isSticky,
46
+ rtl,
47
+ width,
48
+ xPositions,
49
+ ]);
50
+ return styles;
51
+ }
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useCallback, useMemo } from "react";
3
- import { TreeBranch } from "../tree-view/branch/branch";
4
- import { ColumnItemContext } from "./context";
3
+ import { TreeBranch } from "../tree-view/branch/branch.js";
4
+ import { ColumnItemContext } from "./context.js";
5
5
  import { dragState, DropWrap } from "@1771technologies/lytenyte-dragon";
6
- import { useGrid } from "../grid-provider/use-grid";
7
- import { useColumnsFromContext } from "./use-columns-from-context";
6
+ import { useGrid } from "../grid-provider/use-grid.js";
7
+ import { useColumnsFromContext } from "./use-columns-from-context.js";
8
8
  export const Branch = forwardRef(function Branch({ item, label, labelWrapClassName, labelWrapStyle, ...props }, forwarded) {
9
9
  const grid = useGrid();
10
10
  const id = grid.state.gridId.useValue();
@@ -1,13 +1,13 @@
1
- import { Root } from "./root";
2
- import { useColumnManager } from "./use-column-manager";
3
- import { VisibilityCheckbox } from "./visibility-checkbox";
1
+ import { Root } from "./root.js";
2
+ import { useColumnManager } from "./use-column-manager.js";
3
+ import { VisibilityCheckbox } from "./visibility-checkbox.js";
4
4
  export declare const ColumnManager: {
5
5
  Root: typeof Root;
6
- Leaf: import("react").ForwardRefExoticComponent<Omit<import("./leaf").ColumnManagerLeafProps & import("react").ClassAttributes<HTMLLIElement> & import("react").LiHTMLAttributes<HTMLLIElement>, "ref"> & import("react").RefAttributes<HTMLLIElement>>;
7
- Label: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./label").LabelProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
8
- Branch: import("react").ForwardRefExoticComponent<Omit<import("./branch").ColumnManagerBranchProps & import("react").ClassAttributes<HTMLLIElement> & import("react").LiHTMLAttributes<HTMLLIElement>, "ref"> & import("react").RefAttributes<HTMLLIElement>>;
6
+ Leaf: import("react").ForwardRefExoticComponent<Omit<import("./leaf.js").ColumnManagerLeafProps & import("react").ClassAttributes<HTMLLIElement> & import("react").LiHTMLAttributes<HTMLLIElement>, "ref"> & import("react").RefAttributes<HTMLLIElement>>;
7
+ Label: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./label.js").LabelProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
8
+ Branch: import("react").ForwardRefExoticComponent<Omit<import("./branch.js").ColumnManagerBranchProps & import("react").ClassAttributes<HTMLLIElement> & import("react").LiHTMLAttributes<HTMLLIElement>, "ref"> & import("react").RefAttributes<HTMLLIElement>>;
9
9
  Panel: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & import("react").RefAttributes<HTMLUListElement>>;
10
- MoveHandle: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./move-handle").MoveHandleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
10
+ MoveHandle: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./move-handle.js").MoveHandleProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
11
11
  VisibilityCheckbox: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & VisibilityCheckbox, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
12
12
  useColumnManager: typeof useColumnManager;
13
13
  };
@@ -1,11 +1,11 @@
1
- import { Branch } from "./branch";
2
- import { Label } from "./label";
3
- import { Leaf } from "./leaf";
4
- import { MoveHandle } from "./move-handle";
5
- import { Panel } from "./panel";
6
- import { Root } from "./root";
7
- import { useColumnManager } from "./use-column-manager";
8
- import { VisibilityCheckbox } from "./visibility-checkbox";
1
+ import { Branch } from "./branch.js";
2
+ import { Label } from "./label.js";
3
+ import { Leaf } from "./leaf.js";
4
+ import { MoveHandle } from "./move-handle.js";
5
+ import { Panel } from "./panel.js";
6
+ import { Root } from "./root.js";
7
+ import { useColumnManager } from "./use-column-manager.js";
8
+ import { VisibilityCheckbox } from "./visibility-checkbox.js";
9
9
  export const ColumnManager = {
10
10
  Root,
11
11
  Leaf,
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useSlot } from "@1771technologies/lytenyte-react-hooks";
3
3
  import { forwardRef, useMemo } from "react";
4
- import { useColumnItemContext } from "./context";
4
+ import { useColumnItemContext } from "./context.js";
5
5
  export const Label = forwardRef(function Label({ as, ...props }, forwarded) {
6
6
  const { item } = useColumnItemContext();
7
7
  const label = useMemo(() => {
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useCallback, useMemo } from "react";
3
- import { ColumnItemContext } from "./context";
4
- import { TreeLeaf } from "../tree-view/leaf";
3
+ import { ColumnItemContext } from "./context.js";
4
+ import { TreeLeaf } from "../tree-view/leaf.js";
5
5
  import { dragState, DropWrap } from "@1771technologies/lytenyte-dragon";
6
- import { useGrid } from "../grid-provider/use-grid";
7
- import { useColumnsFromContext } from "./use-columns-from-context";
6
+ import { useGrid } from "../grid-provider/use-grid.js";
7
+ import { useColumnsFromContext } from "./use-columns-from-context.js";
8
8
  export const Leaf = forwardRef(function ColumnManagerLeaf({ item, ...props }, forwarded) {
9
9
  const context = useMemo(() => {
10
10
  return { item: item };
@@ -2,9 +2,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useDraggable } from "@1771technologies/lytenyte-dragon";
3
3
  import { useCombinedRefs, useSlot, } from "@1771technologies/lytenyte-react-hooks";
4
4
  import { forwardRef, useMemo } from "react";
5
- import { useColumnItemContext } from "./context";
6
- import { useColumnsFromContext } from "./use-columns-from-context";
7
- import { useGrid } from "../grid-provider/use-grid";
5
+ import { useColumnItemContext } from "./context.js";
6
+ import { useColumnsFromContext } from "./use-columns-from-context.js";
7
+ import { useGrid } from "../grid-provider/use-grid.js";
8
8
  export const MoveHandle = forwardRef(function MoveHandle({ as, ...props }, forwarded) {
9
9
  const item = useColumnItemContext().item;
10
10
  const grid = useGrid();
@@ -1,2 +1,2 @@
1
- import { TreePanel } from "../tree-view/panel/panel";
1
+ import { TreePanel } from "../tree-view/panel/panel.js";
2
2
  export const Panel = TreePanel;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { GridProvider } from "../grid-provider/provider";
3
- import { TreeRoot } from "../tree-view/root";
4
- import { branchLookupContext } from "./branch-lookup-context";
2
+ import { GridProvider } from "../grid-provider/provider.js";
3
+ import { TreeRoot } from "../tree-view/root.js";
4
+ import { branchLookupContext } from "./branch-lookup-context.js";
5
5
  export function Root({ grid, lookup, children }) {
6
6
  return (_jsx(branchLookupContext.Provider, { value: lookup, children: _jsx(GridProvider, { value: grid, children: _jsx(TreeRoot, { children: children }) }) }));
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import { useMemo } from "react";
2
- import { useTreeViewPaths } from "../tree-view/hooks/use-tree-view-paths";
2
+ import { useTreeViewPaths } from "../tree-view/hooks/use-tree-view-paths.js";
3
3
  export function useColumnManager({ grid, query }) {
4
4
  const columns = grid.state.columns.useValue();
5
5
  const filteredColumns = useMemo(() => {
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useSlot } from "@1771technologies/lytenyte-react-hooks";
3
- import { useColumnItemContext } from "./context";
3
+ import { useColumnItemContext } from "./context.js";
4
4
  import { forwardRef, useCallback, useMemo } from "react";
5
- import { useGrid } from "../grid-provider/use-grid";
6
- import { useColumnsFromContext } from "./use-columns-from-context";
5
+ import { useGrid } from "../grid-provider/use-grid.js";
6
+ import { useColumnsFromContext } from "./use-columns-from-context.js";
7
7
  export const VisibilityCheckbox = forwardRef(function VisibilityCheckbox({ as, ...props }, forwarded) {
8
8
  const { item } = useColumnItemContext();
9
9
  const grid = useGrid();
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { TreeBranch } from "../tree-view/branch/branch";
3
+ import { TreeBranch } from "../tree-view/branch/branch.js";
4
4
  import { useSlot } from "@1771technologies/lytenyte-react-hooks";
5
- import { FilterTreeItemContext } from "./context";
6
- import { useTreeItem } from "./hooks/use-tree-item";
5
+ import { FilterTreeItemContext } from "./context.js";
6
+ import { useTreeItem } from "./hooks/use-tree-item.js";
7
7
  export const Branch = forwardRef(function Branch({ item, labelWrap, label, ...props }, forwarded) {
8
8
  const value = useTreeItem(item);
9
9
  const labelSlot = useSlot({
@@ -1,6 +1,6 @@
1
1
  import { type Dispatch, type SetStateAction } from "react";
2
- import type { TreeVirtualItem } from "../tree-view/virtualized/make-virtual-tree";
3
- import type { FilterIn, FilterInFilterItem } from "../+types";
2
+ import type { TreeVirtualItem } from "../tree-view/virtualized/make-virtual-tree.js";
3
+ import type { FilterIn, FilterInFilterItem } from "../+types.js";
4
4
  export interface TreeItemContextValue {
5
5
  readonly item: TreeVirtualItem<FilterInFilterItem>;
6
6
  readonly onCheckChange: (b?: boolean) => void;
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useMemo, useState } from "react";
2
- import { useVirtualizedTree } from "../../tree-view/virtualized/use-virtualized-tree";
2
+ import { useVirtualizedTree } from "../../tree-view/virtualized/use-virtualized-tree.js";
3
3
  import { useEvent } from "@1771technologies/lytenyte-react-hooks";
4
4
  export function useFilterTree({ grid, column, treeItemHeight = 24, pivotMode, applyChangesImmediately = false, query, }) {
5
5
  const [items, setItems] = useState([]);
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useSlot } from "@1771technologies/lytenyte-react-hooks";
3
3
  import { forwardRef } from "react";
4
- import { useTreeItemContext } from "./context";
4
+ import { useTreeItemContext } from "./context.js";
5
5
  export const InclusionCheckbox = forwardRef(function InclusionCheckbox({ as, ...props }, forwarded) {
6
6
  const { isChecked, onCheckChange, isIndeterminate } = useTreeItemContext();
7
7
  const rendered = useSlot({
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useSlot } from "@1771technologies/lytenyte-react-hooks";
3
3
  import { forwardRef, useMemo } from "react";
4
- import { useTreeItemContext } from "./context";
4
+ import { useTreeItemContext } from "./context.js";
5
5
  export const Label = forwardRef(function Label({ as, ...props }, forwarded) {
6
6
  const { item } = useTreeItemContext();
7
7
  const label = useMemo(() => {
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { TreeLeaf } from "../tree-view/leaf";
4
- import { FilterTreeItemContext } from "./context";
5
- import { useTreeItem } from "./hooks/use-tree-item";
3
+ import { TreeLeaf } from "../tree-view/leaf.js";
4
+ import { FilterTreeItemContext } from "./context.js";
5
+ import { useTreeItem } from "./hooks/use-tree-item.js";
6
6
  export const Leaf = forwardRef(function Leaf({ item, ...props }, forwarded) {
7
7
  const value = useTreeItem(item);
8
8
  return (_jsx(FilterTreeItemContext.Provider, { value: value, children: _jsx(TreeLeaf, { ...props, itemId: item.leaf.data.id, ref: forwarded, ...item.attrs, style: { ...props.style, ...item.attrs.style }, onClick: () => value.onCheckChange(), onKeyDown: (ev) => {
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
- import { GridProvider } from "../grid-provider/provider";
4
- import { TreeRoot } from "../tree-view/root";
5
- import { FilterTreeContext } from "./context";
3
+ import { GridProvider } from "../grid-provider/provider.js";
4
+ import { TreeRoot } from "../tree-view/root.js";
5
+ import { FilterTreeContext } from "./context.js";
6
6
  import { useSlot } from "@1771technologies/lytenyte-react-hooks";
7
7
  export function Root({ grid, treeRef, filterIn, pivotMode, columnId, children, error, loading, errorAs, loadingAs, fetchItems, items, applyChangesImmediately, filterInChange, ...rootProps }) {
8
8
  const value = useMemo(() => {
@@ -1,11 +1,11 @@
1
- import { GridBoxRoot } from "./root";
2
- import { useAggregationBoxItems } from "./use-aggregation-box-items";
3
- import { useColumnBoxItems } from "./use-column-box-items";
4
- import { useRowGroupBoxItems } from "./use-row-group-box-items";
1
+ import { GridBoxRoot } from "./root.js";
2
+ import { useAggregationBoxItems } from "./use-aggregation-box-items.js";
3
+ import { useColumnBoxItems } from "./use-column-box-items.js";
4
+ import { useRowGroupBoxItems } from "./use-row-group-box-items.js";
5
5
  export declare const GridBox: {
6
6
  Root: typeof GridBoxRoot;
7
7
  Panel: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "onDrop">, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
8
- Item: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./item").GridBoxItemProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
8
+ Item: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./item.js").GridBoxItemProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
9
9
  useColumnBoxItems: typeof useColumnBoxItems;
10
10
  useRowGroupBoxItems: typeof useRowGroupBoxItems;
11
11
  useAggregationBoxItems: typeof useAggregationBoxItems;
@@ -1,9 +1,9 @@
1
- import { BoxItem } from "./item";
2
- import { GridBoxPanel } from "./panel";
3
- import { GridBoxRoot } from "./root";
4
- import { useAggregationBoxItems } from "./use-aggregation-box-items";
5
- import { useColumnBoxItems } from "./use-column-box-items";
6
- import { useRowGroupBoxItems } from "./use-row-group-box-items";
1
+ import { BoxItem } from "./item.js";
2
+ import { GridBoxPanel } from "./panel.js";
3
+ import { GridBoxRoot } from "./root.js";
4
+ import { useAggregationBoxItems } from "./use-aggregation-box-items.js";
5
+ import { useColumnBoxItems } from "./use-column-box-items.js";
6
+ import { useRowGroupBoxItems } from "./use-row-group-box-items.js";
7
7
  export const GridBox = {
8
8
  Root: GridBoxRoot,
9
9
  Panel: GridBoxPanel,
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { Item } from "../listbox/item";
3
+ import { Item } from "../listbox/item.js";
4
4
  import { dragState, DropWrap, useDraggable } from "@1771technologies/lytenyte-dragon";
5
5
  import { useCombinedRefs, useSlot, } from "@1771technologies/lytenyte-react-hooks";
6
- import { useGridBoxContext } from "./context";
6
+ import { useGridBoxContext } from "./context.js";
7
7
  export const BoxItem = forwardRef(function BoxItem({ item, itemAs, itemClassName, itemStyle, children, ...props }, forwarded) {
8
8
  const { accepted } = useGridBoxContext();
9
9
  const { dragProps } = useDraggable({
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { Panel } from "../listbox/panel";
3
+ import { Panel } from "../listbox/panel.js";
4
4
  import { DropWrap } from "@1771technologies/lytenyte-dragon";
5
- import { useGridBoxContext } from "./context";
5
+ import { useGridBoxContext } from "./context.js";
6
6
  export const GridBoxPanel = forwardRef(function GridBoxPanel(props, forwarded) {
7
7
  const ctx = useGridBoxContext();
8
8
  return (_jsx(DropWrap, { ...props, accepted: ctx.accepted, "data-ln-orientation": ctx.orientation, onDrop: ctx.onRootDrop, ref: forwarded, as: _jsx(Panel, {}) }));
@@ -1,5 +1,5 @@
1
1
  import { type PropsWithChildren } from "react";
2
- import type { DropEventParams, Grid } from "../+types";
2
+ import type { DropEventParams, Grid } from "../+types.js";
3
3
  export interface GridBoxRootProps<T> {
4
4
  readonly orientation?: "vertical" | "horizontal";
5
5
  readonly onRootDrop: (p: DropEventParams) => void;
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
- import { Root } from "../listbox/root";
4
- import { GridProvider } from "../grid-provider/provider";
5
- import { GridBoxContext } from "./context";
3
+ import { Root } from "../listbox/root.js";
4
+ import { GridProvider } from "../grid-provider/provider.js";
5
+ import { GridBoxContext } from "./context.js";
6
6
  export function GridBoxRoot({ grid, orientation = "vertical", accepted, onRootDrop, children, }) {
7
7
  return (_jsx(GridProvider, { value: grid, children: _jsx(GridBoxContext.Provider, { value: useMemo(() => ({ accepted, orientation, onRootDrop }), [accepted, onRootDrop, orientation]), children: _jsx(Root, { orientation: orientation, children: children }) }) }));
8
8
  }
package/dist/grid.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { Root } from "./root/root";
2
- import { useLyteNyte } from "./state/use-lytenyte";
1
+ import { Root } from "./root/root.js";
2
+ import { useLyteNyte } from "./state/use-lytenyte.js";
3
3
  export declare const Grid: {
4
4
  Root: typeof Root;
5
5
  Header: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
6
- HeaderGroupCell: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./header/header-group-cell").HeaderGroupCellProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
7
- HeaderRow: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./header/header-row").HeaderRowProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
8
- HeaderCell: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./header/header-cell").HeaderCellProps<any>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
9
- Cell: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children"> & import("./cells/cell").CellProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
10
- RowFullWidth: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./rows/row-full-width").RowFullWidthProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
6
+ HeaderGroupCell: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./header/header-group-cell.js").HeaderGroupCellProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
7
+ HeaderRow: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./header/header-row.js").HeaderRowProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
8
+ HeaderCell: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./header/header-cell.js").HeaderCellProps<any>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
9
+ Cell: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children"> & import("./cells/cell.js").CellProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
10
+ RowFullWidth: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & import("./rows/row-full-width.js").RowFullWidthProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
11
11
  RowsContainer: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
12
12
  RowsBottom: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
13
13
  RowsTop: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
14
- Row: import("react").NamedExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "onDrag"> & import("./rows/row/row").RowProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
14
+ Row: import("react").NamedExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "onDrag"> & import("./rows/row/row.js").RowProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
15
15
  RowsCenter: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
16
16
  Viewport: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
17
17
  useLyteNyte: typeof useLyteNyte;