@raybase/datasheet-grid 0.0.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/LICENSE-react-datasheet-grid +21 -0
- package/README.md +32 -1
- package/dist/adapter.d.ts +34 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +2 -0
- package/dist/adapter.js.map +1 -0
- package/dist/cells.d.ts +111 -0
- package/dist/cells.d.ts.map +1 -0
- package/dist/cells.js +800 -0
- package/dist/cells.js.map +1 -0
- package/dist/colors.d.ts +10 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +42 -0
- package/dist/colors.js.map +1 -0
- package/dist/engine.d.ts +3 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +2 -0
- package/dist/engine.js.map +1 -0
- package/dist/filter-bar.d.ts +33 -0
- package/dist/filter-bar.d.ts.map +1 -0
- package/dist/filter-bar.js +304 -0
- package/dist/filter-bar.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/popover.d.ts +22 -0
- package/dist/popover.d.ts.map +1 -0
- package/dist/popover.js +67 -0
- package/dist/popover.js.map +1 -0
- package/dist/record-panel.d.ts +20 -0
- package/dist/record-panel.d.ts.map +1 -0
- package/dist/record-panel.js +193 -0
- package/dist/record-panel.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui.d.ts +28 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +108 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils.d.ts +16 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +79 -0
- package/dist/utils.js.map +1 -0
- package/dist/view.d.ts +5 -0
- package/dist/view.d.ts.map +1 -0
- package/dist/view.js +85 -0
- package/dist/view.js.map +1 -0
- package/package.json +55 -10
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Itself & Co
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Nicolas Keller
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,34 @@
|
|
|
1
1
|
# @raybase/datasheet-grid
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Reusable Raybase datasheet grid primitives, metadata types, adapter contracts, and CSS.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { DatasheetGridView, type DatasheetGridAdapter } from "@raybase/datasheet-grid";
|
|
7
|
+
import "@raybase/datasheet-grid/styles.css";
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
This package depends on the thin React grid engine fork `@raybase/react-datasheet-grid` and ships compiled CSS that includes the verified engine stylesheet path, `@raybase/react-datasheet-grid/dist/style.css`.
|
|
11
|
+
|
|
12
|
+
## Boundary
|
|
13
|
+
|
|
14
|
+
- Templates are complete runnable baselines and should include this package directly when they render a datasheet UI.
|
|
15
|
+
- Kits can copy app-level integration source and declare this package as a requirement, but should not mutate `package.json` or JSON/JSONC config.
|
|
16
|
+
- This package has no dependency on Raybase admin boot data, `/api/admin`, or `/api/data`.
|
|
17
|
+
|
|
18
|
+
## Metadata
|
|
19
|
+
|
|
20
|
+
Supported column `kind` conventions are `id`, `text`, `longText`, `integer`, `real`, `boolean`, `date`, `datetime`, `json`, and `ref`. The type stays structurally open so app schemas can add their own conventions over time.
|
|
21
|
+
|
|
22
|
+
## Adapter Contract
|
|
23
|
+
|
|
24
|
+
`DatasheetGridAdapter` supports generic list/create/update/delete operations plus optional reference option loading. `DatasheetGridView` accepts `mode: "batched"` for app-owned save flows and `mode: "immediate"` for optimistic adapter commits.
|
|
25
|
+
|
|
26
|
+
## Public API
|
|
27
|
+
|
|
28
|
+
The root export contains the reusable view, adapter and metadata types, filter helpers, `FilterBar`, `RecordPanel`, and grid column builders. Engine APIs are re-exported from `@raybase/datasheet-grid/engine`.
|
|
29
|
+
|
|
30
|
+
`@raybase/datasheet-grid/cells` exposes cell-level composition for first-party integrations in `0.1.0`; treat that subpath as internal and unstable.
|
|
31
|
+
|
|
32
|
+
## Styling
|
|
33
|
+
|
|
34
|
+
Import `@raybase/datasheet-grid/styles.css` once in the consuming app. The v0.1 stylesheet preserves the current Raybase admin visual language. Compact embedded layouts and theme hooks are future work.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { BackendFilterCondition, GridRow, GridTableMeta, ReferenceOption } from "./types.js";
|
|
2
|
+
export type ListInput = {
|
|
3
|
+
table: string;
|
|
4
|
+
filters?: Record<string, BackendFilterCondition[]>;
|
|
5
|
+
search?: string;
|
|
6
|
+
sort?: {
|
|
7
|
+
column: string;
|
|
8
|
+
direction: "asc" | "desc";
|
|
9
|
+
} | null;
|
|
10
|
+
limit?: number;
|
|
11
|
+
offset?: number;
|
|
12
|
+
cursor?: string | null;
|
|
13
|
+
};
|
|
14
|
+
export type DatasheetGridAdapter<Row = GridRow> = {
|
|
15
|
+
list(input: ListInput): Promise<{
|
|
16
|
+
rows: Row[];
|
|
17
|
+
total?: number;
|
|
18
|
+
}>;
|
|
19
|
+
create?(row: Partial<Row>): Promise<Row>;
|
|
20
|
+
update?(id: string, patch: Partial<Row>): Promise<Row>;
|
|
21
|
+
delete?(id: string): Promise<void>;
|
|
22
|
+
references?(table: string, column: string): Promise<ReferenceOption[]>;
|
|
23
|
+
};
|
|
24
|
+
export type DatasheetGridMode = "batched" | "immediate";
|
|
25
|
+
export type DatasheetGridViewProps<Row = GridRow> = {
|
|
26
|
+
table: GridTableMeta;
|
|
27
|
+
adapter: DatasheetGridAdapter<Row>;
|
|
28
|
+
mode?: DatasheetGridMode;
|
|
29
|
+
readOnly?: boolean;
|
|
30
|
+
getRowId?: (row: Row) => string;
|
|
31
|
+
onRowsChange?: (rows: Row[]) => void;
|
|
32
|
+
onError?: (error: Error) => void;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,GAAG,GAAG,OAAO,IAAI;IAChD,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAAC;AAExD,MAAM,MAAM,sBAAsB,CAAC,GAAG,GAAG,OAAO,IAAI;IAClD,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC"}
|
package/dist/adapter.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":""}
|
package/dist/cells.d.ts
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type CellProps, type Column } from "./engine.js";
|
|
3
|
+
import { type ColumnMeta, type ReferenceOption, type Row, type TableMeta } from "./types.js";
|
|
4
|
+
export declare function NullToken(): null;
|
|
5
|
+
/** Core's `raybaseSecretRedacted`: what a set `secret()` column reads as, and the write that leaves it alone. */
|
|
6
|
+
export declare const secretRedactedMarker = "[REDACTED]";
|
|
7
|
+
export type PickerOption = {
|
|
8
|
+
id: string;
|
|
9
|
+
label: string;
|
|
10
|
+
};
|
|
11
|
+
export type PickerColumnData = {
|
|
12
|
+
variant: "enum" | "reference";
|
|
13
|
+
options: PickerOption[];
|
|
14
|
+
allowClear: boolean;
|
|
15
|
+
enumValues?: string[];
|
|
16
|
+
};
|
|
17
|
+
export declare function PickerValue({ value, columnData }: {
|
|
18
|
+
value: string | null;
|
|
19
|
+
columnData: PickerColumnData;
|
|
20
|
+
}): React.JSX.Element | null;
|
|
21
|
+
export declare function PickerPopover({ anchor, columnData, value, onPick, onClose }: {
|
|
22
|
+
anchor: HTMLElement | null;
|
|
23
|
+
columnData: PickerColumnData;
|
|
24
|
+
value: string | null;
|
|
25
|
+
onPick: (value: string | null) => void;
|
|
26
|
+
onClose: () => void;
|
|
27
|
+
}): React.JSX.Element;
|
|
28
|
+
export declare function PickerCell({ rowData, setRowData, active, focus, disabled, columnData, stopEditing }: CellProps<string | null, PickerColumnData>): React.JSX.Element;
|
|
29
|
+
export type BooleanColumnData = {
|
|
30
|
+
allowClear: boolean;
|
|
31
|
+
};
|
|
32
|
+
export declare function BooleanCell({ rowData, setRowData, focus, active, disabled, stopEditing }: CellProps<boolean | null, BooleanColumnData>): React.JSX.Element;
|
|
33
|
+
export declare function Calendar({ selected, onPick }: {
|
|
34
|
+
selected: Date | null;
|
|
35
|
+
onPick: (date: Date) => void;
|
|
36
|
+
}): React.JSX.Element;
|
|
37
|
+
export type DateColumnData = {
|
|
38
|
+
withTime: boolean;
|
|
39
|
+
allowClear: boolean;
|
|
40
|
+
};
|
|
41
|
+
export declare function DatePopover({ anchor, value, withTime, allowClear, onCommit, onClose }: {
|
|
42
|
+
anchor: HTMLElement | null;
|
|
43
|
+
value: string | null;
|
|
44
|
+
withTime: boolean;
|
|
45
|
+
allowClear: boolean;
|
|
46
|
+
onCommit: (next: string | null) => void;
|
|
47
|
+
onClose: () => void;
|
|
48
|
+
}): React.JSX.Element;
|
|
49
|
+
export declare function DateCell({ rowData, setRowData, focus, disabled, columnData, stopEditing }: CellProps<string | null, DateColumnData>): React.JSX.Element;
|
|
50
|
+
export type LongTextColumnData = {
|
|
51
|
+
allowClear: boolean;
|
|
52
|
+
};
|
|
53
|
+
export declare function LongTextCell({ rowData, setRowData, focus, disabled, stopEditing }: CellProps<string | null, LongTextColumnData>): React.JSX.Element;
|
|
54
|
+
export type TagsColumnData = {
|
|
55
|
+
suggestions: string[];
|
|
56
|
+
allowClear: boolean;
|
|
57
|
+
};
|
|
58
|
+
export declare function TagPills({ tags }: {
|
|
59
|
+
tags: string[];
|
|
60
|
+
}): React.JSX.Element;
|
|
61
|
+
export declare function TagsEditorPopover({ anchor, tags, suggestions, onCommit, onCancel }: {
|
|
62
|
+
anchor: HTMLElement | null;
|
|
63
|
+
tags: string[];
|
|
64
|
+
suggestions: string[];
|
|
65
|
+
onCommit: (next: string[]) => void;
|
|
66
|
+
onCancel: () => void;
|
|
67
|
+
}): React.JSX.Element;
|
|
68
|
+
export declare function TagsCell({ rowData, setRowData, focus, disabled, columnData, stopEditing }: CellProps<unknown, TagsColumnData>): React.JSX.Element;
|
|
69
|
+
export declare function JsonEditorPopover({ anchor, value, allowClear, onCommit, onClose }: {
|
|
70
|
+
anchor: HTMLElement | null;
|
|
71
|
+
value: unknown;
|
|
72
|
+
allowClear: boolean;
|
|
73
|
+
onCommit: (next: unknown) => void;
|
|
74
|
+
onClose: () => void;
|
|
75
|
+
}): React.JSX.Element;
|
|
76
|
+
export type JsonColumnData = {
|
|
77
|
+
allowClear: boolean;
|
|
78
|
+
};
|
|
79
|
+
export declare function JsonCell({ rowData, setRowData, focus, disabled, columnData, stopEditing }: CellProps<unknown, JsonColumnData>): React.JSX.Element;
|
|
80
|
+
export type HeaderSortHandlers = {
|
|
81
|
+
activeKey: string;
|
|
82
|
+
direction: "asc" | "desc";
|
|
83
|
+
};
|
|
84
|
+
export declare function HeaderTitle({ columnKey, column, sort }: {
|
|
85
|
+
columnKey: string;
|
|
86
|
+
column: ColumnMeta;
|
|
87
|
+
sort?: HeaderSortHandlers;
|
|
88
|
+
}): React.JSX.Element;
|
|
89
|
+
export type ColumnResizeHandlers = {
|
|
90
|
+
/** Live width update while dragging. */
|
|
91
|
+
onResize: (key: string, width: number) => void;
|
|
92
|
+
/** Drag finished — persist the widths. */
|
|
93
|
+
onResizeEnd: () => void;
|
|
94
|
+
/** Double-click resets the column to its automatic width. */
|
|
95
|
+
onResizeReset: (key: string) => void;
|
|
96
|
+
};
|
|
97
|
+
export type BuildGridColumnsInput = {
|
|
98
|
+
table: TableMeta;
|
|
99
|
+
rows: Row[];
|
|
100
|
+
references: Record<string, ReferenceOption[]>;
|
|
101
|
+
readOnly: boolean;
|
|
102
|
+
jsonModes: Record<string, "tags" | "json">;
|
|
103
|
+
tagSuggestions: Record<string, string[]>;
|
|
104
|
+
dirtyCellKeys?: Map<number, Set<string>>;
|
|
105
|
+
sort?: HeaderSortHandlers;
|
|
106
|
+
/** Per-column width overrides (px), from user drag-resizing. */
|
|
107
|
+
columnWidths?: Record<string, number>;
|
|
108
|
+
resize?: ColumnResizeHandlers;
|
|
109
|
+
};
|
|
110
|
+
export declare function buildGridColumns(input: BuildGridColumnsInput): Column<Row, any, any>[];
|
|
111
|
+
//# sourceMappingURL=cells.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cells.d.ts","sourceRoot":"","sources":["../src/cells.tsx"],"names":[],"mappings":"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"}
|