@toolbox-web/grid-react 0.8.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -8
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -1
- package/index.js +470 -437
- package/lib/data-grid.d.ts +35 -0
- package/lib/data-grid.d.ts.map +1 -1
- package/lib/feature-props.d.ts +5 -1
- package/lib/feature-props.d.ts.map +1 -1
- package/lib/grid-icon-registry.d.ts +95 -0
- package/lib/grid-icon-registry.d.ts.map +1 -0
- package/lib/grid-provider.d.ts +90 -0
- package/lib/grid-provider.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ React adapter for `@toolbox-web/grid` data grid component. Provides components a
|
|
|
14
14
|
- ✅ **Declarative columns** - Define columns via props or `GridColumn` components
|
|
15
15
|
- ✅ **Render props** - Clean `children` syntax for custom cells
|
|
16
16
|
- ✅ **Type-level defaults** - App-wide renderers/editors via `GridTypeProvider`
|
|
17
|
+
- ✅ **Icon configuration** - App-wide icon overrides via `GridProvider` or `GridIconProvider`
|
|
17
18
|
- ✅ **Hooks API** - `useGrid` and `useGridEvent` for programmatic access
|
|
18
19
|
- ✅ **Ref forwarding** - Access grid instance via `DataGridRef`
|
|
19
20
|
- ✅ **Master-detail** - `GridDetailPanel` for expandable rows
|
|
@@ -534,6 +535,80 @@ function Dashboard() {
|
|
|
534
535
|
| `useGridTypeDefaults()` | Get all type defaults from context |
|
|
535
536
|
| `useTypeDefault(type)` | Get defaults for a specific type |
|
|
536
537
|
|
|
538
|
+
## App-Wide Icon Configuration
|
|
539
|
+
|
|
540
|
+
Customize grid icons at the application level using `GridIconProvider` or the combined `GridProvider`:
|
|
541
|
+
|
|
542
|
+
### Using GridProvider (Recommended)
|
|
543
|
+
|
|
544
|
+
```tsx
|
|
545
|
+
import { GridProvider, DataGrid } from '@toolbox-web/grid-react';
|
|
546
|
+
|
|
547
|
+
// Define icon overrides and type defaults together
|
|
548
|
+
const icons = {
|
|
549
|
+
expand: '➕',
|
|
550
|
+
collapse: '➖',
|
|
551
|
+
sortAsc: '↑',
|
|
552
|
+
sortDesc: '↓',
|
|
553
|
+
};
|
|
554
|
+
|
|
555
|
+
const typeDefaults = {
|
|
556
|
+
country: { renderer: (ctx) => <span>🌍 {ctx.value}</span> },
|
|
557
|
+
};
|
|
558
|
+
|
|
559
|
+
function App() {
|
|
560
|
+
return (
|
|
561
|
+
<GridProvider icons={icons} defaults={typeDefaults}>
|
|
562
|
+
<Dashboard />
|
|
563
|
+
</GridProvider>
|
|
564
|
+
);
|
|
565
|
+
}
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### Using GridIconProvider (Icons Only)
|
|
569
|
+
|
|
570
|
+
```tsx
|
|
571
|
+
import { GridIconProvider, DataGrid } from '@toolbox-web/grid-react';
|
|
572
|
+
|
|
573
|
+
const customIcons = {
|
|
574
|
+
expand: '▶',
|
|
575
|
+
collapse: '▼',
|
|
576
|
+
sortAsc: '△',
|
|
577
|
+
sortDesc: '▽',
|
|
578
|
+
filter: '<svg>...</svg>', // SVG markup supported
|
|
579
|
+
};
|
|
580
|
+
|
|
581
|
+
function App() {
|
|
582
|
+
return (
|
|
583
|
+
<GridIconProvider icons={customIcons}>
|
|
584
|
+
<DataGrid rows={data} columns={columns} />
|
|
585
|
+
</GridIconProvider>
|
|
586
|
+
);
|
|
587
|
+
}
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
**Available Icons:**
|
|
591
|
+
|
|
592
|
+
| Icon | Default | Description |
|
|
593
|
+
| -------------- | ------- | ------------------------------------ |
|
|
594
|
+
| `expand` | `▶` | Expand icon for trees/groups/details |
|
|
595
|
+
| `collapse` | `▼` | Collapse icon |
|
|
596
|
+
| `sortAsc` | `▲` | Sort ascending indicator |
|
|
597
|
+
| `sortDesc` | `▼` | Sort descending indicator |
|
|
598
|
+
| `sortNone` | `⇅` | Unsorted indicator |
|
|
599
|
+
| `filter` | SVG | Filter icon in headers |
|
|
600
|
+
| `filterActive` | SVG | Filter icon when active |
|
|
601
|
+
| `submenuArrow` | `▶` | Context menu submenu arrow |
|
|
602
|
+
| `dragHandle` | `⋮⋮` | Drag handle for reordering |
|
|
603
|
+
| `toolPanel` | `☰` | Tool panel toggle icon |
|
|
604
|
+
| `print` | `🖨️` | Print button icon |
|
|
605
|
+
|
|
606
|
+
**Precedence (highest wins):**
|
|
607
|
+
|
|
608
|
+
1. `gridConfig.icons` - Per-grid overrides
|
|
609
|
+
2. `GridProvider`/`GridIconProvider` - App-level defaults
|
|
610
|
+
3. Built-in defaults
|
|
611
|
+
|
|
537
612
|
## Using Plugins (Advanced)
|
|
538
613
|
|
|
539
614
|
> **Note:** For most use cases, prefer the [declarative feature props](#enabling-features) approach above.
|
|
@@ -588,14 +663,16 @@ Inject custom CSS into the grid:
|
|
|
588
663
|
|
|
589
664
|
### Exported Components
|
|
590
665
|
|
|
591
|
-
| Component | Description
|
|
592
|
-
| ------------------ |
|
|
593
|
-
| `DataGrid` | Main grid component wrapper
|
|
594
|
-
| `GridColumn` | Declarative column with render props
|
|
595
|
-
| `GridDetailPanel` | Master-detail expandable panel
|
|
596
|
-
| `GridToolPanel` | Custom sidebar panel
|
|
597
|
-
| `GridToolButtons` | Toolbar button container
|
|
598
|
-
| `
|
|
666
|
+
| Component | Description |
|
|
667
|
+
| ------------------ | ------------------------------------------- |
|
|
668
|
+
| `DataGrid` | Main grid component wrapper |
|
|
669
|
+
| `GridColumn` | Declarative column with render props |
|
|
670
|
+
| `GridDetailPanel` | Master-detail expandable panel |
|
|
671
|
+
| `GridToolPanel` | Custom sidebar panel |
|
|
672
|
+
| `GridToolButtons` | Toolbar button container |
|
|
673
|
+
| `GridProvider` | Combined provider for icons & type defaults |
|
|
674
|
+
| `GridTypeProvider` | App-level type defaults context |
|
|
675
|
+
| `GridIconProvider` | App-level icon overrides context |
|
|
599
676
|
|
|
600
677
|
### Exported Hooks
|
|
601
678
|
|
|
@@ -605,6 +682,7 @@ Inject custom CSS into the grid:
|
|
|
605
682
|
| `useGridEvent` | Type-safe event subscription with cleanup |
|
|
606
683
|
| `useGridTypeDefaults()` | Get all type defaults from context |
|
|
607
684
|
| `useTypeDefault(type)` | Get defaults for a specific type |
|
|
685
|
+
| `useGridIcons()` | Get icon overrides from context |
|
|
608
686
|
|
|
609
687
|
### Exported Types
|
|
610
688
|
|
|
@@ -625,6 +703,9 @@ import type {
|
|
|
625
703
|
ReactTypeDefault,
|
|
626
704
|
TypeDefaultsMap,
|
|
627
705
|
GridTypeProviderProps,
|
|
706
|
+
// Icon overrides
|
|
707
|
+
GridIconProviderProps,
|
|
708
|
+
GridProviderProps,
|
|
628
709
|
} from '@toolbox-web/grid-react';
|
|
629
710
|
```
|
|
630
711
|
|
package/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export type { AllFeatureProps, FeatureProps, SSRProps } from './lib/feature-prop
|
|
|
9
9
|
export type { ColumnShorthand } from './lib/column-shorthand';
|
|
10
10
|
export type { EventHandler, EventProps } from './lib/event-props';
|
|
11
11
|
export { GridTypeProvider, useGridTypeDefaults, useTypeDefault, type GridTypeProviderProps, type ReactTypeDefault, type TypeDefaultsMap, } from './lib/grid-type-registry';
|
|
12
|
+
export { GridIconProvider, useGridIcons, type GridIconProviderProps } from './lib/grid-icon-registry';
|
|
13
|
+
export { GridProvider, type GridProviderProps } from './lib/grid-provider';
|
|
12
14
|
export type { ReactColumnConfig, ReactGridConfig } from './lib/react-column-config';
|
|
13
15
|
export { useGrid, type ExportMethods, type SelectionMethods, type UseGridReturn } from './lib/use-grid';
|
|
14
16
|
export { useGridEvent } from './lib/use-grid-event';
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/grid-react/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGnF,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGpF,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/grid-react/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGnF,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtG,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG3E,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGpF,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|