@tenorlab/react-dashboard 1.3.5 → 1.3.7
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/dist/react-dashboard.d.ts +174 -15
- package/dist/styles.css +1 -0
- package/package.json +3 -2
|
@@ -10,18 +10,75 @@ import { UseBoundStore } from 'zustand';
|
|
|
10
10
|
|
|
11
11
|
export declare function AddIcon({ className }: TIconProps): JSX_2.Element;
|
|
12
12
|
|
|
13
|
+
export declare const blankDashboardConfig: IDashboardConfig;
|
|
14
|
+
|
|
13
15
|
export declare function Button(props: IButtonProps): JSX_2.Element;
|
|
14
16
|
|
|
15
17
|
export declare function CircleQuestionMark({ className }: TIconProps): JSX_2.Element;
|
|
16
18
|
|
|
19
|
+
/**
|
|
20
|
+
* @name createDynamicEntry
|
|
21
|
+
* Helper function to create dynamic entries
|
|
22
|
+
* This helps keep the catalog registration clean
|
|
23
|
+
*/
|
|
24
|
+
export declare const createDynamicEntry: (key: string, loader: TWidgetFactoryBase, metaData: TWidgetMetaInfoBase) => [string, IDynamicWidgetCatalogEntryBase];
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @name createStaticEntry
|
|
28
|
+
* Helper function to create static entries
|
|
29
|
+
* This helps keep the catalog registration clean
|
|
30
|
+
*/
|
|
31
|
+
export declare const createStaticEntry: <TFrameworkComponentType = any>(key: string, component: TFrameworkComponentType, metaData?: TWidgetMetaInfoBase) => [string, IDynamicWidgetCatalogEntryBase];
|
|
32
|
+
|
|
17
33
|
export declare function CrosshairIcon({ className }: TIconProps): JSX_2.Element;
|
|
18
34
|
|
|
35
|
+
export declare const cssSettingsCatalog: IDashboardSettingEntry[];
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @name cssVarsUtils
|
|
39
|
+
* @description Provides helpers method like getCssVariableValue, setCssVariableValue etc
|
|
40
|
+
*/
|
|
41
|
+
export declare const cssVarsUtils: {
|
|
42
|
+
/**
|
|
43
|
+
* @name getCssVariableValue
|
|
44
|
+
* @description Return the value of a CSS custom property from the current HTML document
|
|
45
|
+
* @param cssPropertyName
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
getCssVariableValue: (cssPropertyName: string) => string | null;
|
|
49
|
+
/**
|
|
50
|
+
* @name setCssVariableValue
|
|
51
|
+
* @description Sets the value of a CSS custom property on the current HTML document
|
|
52
|
+
* @param cssPropertyName
|
|
53
|
+
* @param value
|
|
54
|
+
*/
|
|
55
|
+
setCssVariableValue: (cssPropertyName: string, value: string) => void;
|
|
56
|
+
/**
|
|
57
|
+
* @name restoreCssVarsFromSettings
|
|
58
|
+
* @description
|
|
59
|
+
* Sets the values of many CSS custom properties on the current HTML document
|
|
60
|
+
* from the list of dashboard settings provided
|
|
61
|
+
* @param settings, an array of IDashboardSettingEntry
|
|
62
|
+
*/
|
|
63
|
+
restoreCssVarsFromSettings: (settings: IDashboardSettingEntry[]) => void;
|
|
64
|
+
};
|
|
65
|
+
|
|
19
66
|
export declare const DashboardGrid: ForwardRefExoticComponent<IDashboardGridProps & RefAttributes<HTMLDivElement>>;
|
|
20
67
|
|
|
68
|
+
export declare const DashboardMaxZoomScale: 1;
|
|
69
|
+
|
|
70
|
+
export declare const DashboardMinZoomScale: 0.7;
|
|
71
|
+
|
|
72
|
+
export declare const dashboardSettingsUtils: {
|
|
73
|
+
incrementOrDecrementValue: (item: IDashboardSettingEntry, direction: -1 | 1) => IDashboardSettingEntry;
|
|
74
|
+
};
|
|
75
|
+
|
|
21
76
|
export declare const DashboardWidgetBase: (props: IDashboardWidgetProps & {
|
|
22
77
|
ref?: React.ForwardedRef<HTMLDivElement>;
|
|
23
78
|
}) => React.ReactElement | null;
|
|
24
79
|
|
|
80
|
+
export declare const DashboardZoomStep: 0.05;
|
|
81
|
+
|
|
25
82
|
export declare function DeleteIcon({ className }: TIconProps): JSX_2.Element;
|
|
26
83
|
|
|
27
84
|
export declare const DraggablePanel: ForwardRefExoticComponent<DraggablePanelProps & RefAttributes<HTMLDivElement>>;
|
|
@@ -45,6 +102,45 @@ export declare function DynamicWidgetLoader({ index, maxIndex, widgetKey, parent
|
|
|
45
102
|
|
|
46
103
|
export declare function EditIcon({ className }: TIconProps): JSX_2.Element;
|
|
47
104
|
|
|
105
|
+
/**
|
|
106
|
+
* @name ensureContainersSequence
|
|
107
|
+
* @description
|
|
108
|
+
* Ensures that the container widgets are numbered sequentially in the dashboardConfig, but the original order is preserved.
|
|
109
|
+
*/
|
|
110
|
+
export declare const ensureContainersSequence: (dashboardConfig: IDashboardConfig) => IDashboardConfig;
|
|
111
|
+
|
|
112
|
+
export declare const ensureZoomScaleIsWithinRange: (value: number) => number;
|
|
113
|
+
|
|
114
|
+
export declare const getDefaultWidgetMetaFromKey: TGetDefaultWidgetMetaFromKey;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* @name getDefaultWidgetMetaFromMap
|
|
118
|
+
* @description Helper to get widget meta info from the catalog by key.
|
|
119
|
+
*/
|
|
120
|
+
export declare const getDefaultWidgetMetaFromMap: <TFrameworkElementType = any>(widgetKey: TDashboardWidgetKey, defaultWidgetMetaMap: Record<TDashboardWidgetKey, TWidgetMetaInfoBase<TFrameworkElementType>>, options?: {
|
|
121
|
+
title?: string;
|
|
122
|
+
description?: string;
|
|
123
|
+
}) => TWidgetMetaInfoBase<TFrameworkElementType>;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @name getDistinctCssClasses
|
|
127
|
+
* @description Ensures a distinct list off css classes, avoiding duplicates
|
|
128
|
+
* @param defaultClasses
|
|
129
|
+
* @param additionalClasses
|
|
130
|
+
* @returns the distinct list as a string
|
|
131
|
+
*/
|
|
132
|
+
export declare const getDistinctCssClasses: (defaultClasses: string, ...additionalClasses: string[]) => string;
|
|
133
|
+
|
|
134
|
+
export declare const getMetaInfoFromFile: (widgetMetaModules: Record<string, Record<string, TWidgetMetaInfoBase>>, baseSrcPath: string, folder: string, key: string) => TWidgetMetaInfoBase | undefined;
|
|
135
|
+
|
|
136
|
+
export declare const getNewZoomScaleWithinRange: (currentZoomScale: number, direction: -1 | 1) => number;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* @name getWidgetMetaFromCatalog
|
|
140
|
+
* @description Helper to get widget meta info from the catalog by key.
|
|
141
|
+
*/
|
|
142
|
+
export declare const getWidgetMetaFromCatalog: <TFrameworkElementType = any, TFrameworkComponentType = any>(widgetKey: TDashboardWidgetKey, widgetsCatalog: TDashboardWidgetCatalogBase<TFrameworkElementType, TFrameworkComponentType>) => TWidgetMetaInfoBase<TFrameworkElementType>;
|
|
143
|
+
|
|
48
144
|
export declare function GridIcon({ className }: TIconProps): JSX_2.Element;
|
|
49
145
|
|
|
50
146
|
export declare function HandGrabIcon({ className }: TIconProps): JSX_2.Element;
|
|
@@ -78,12 +174,12 @@ export declare interface IButtonProps {
|
|
|
78
174
|
tooltip?: ITooltipProps;
|
|
79
175
|
}
|
|
80
176
|
|
|
81
|
-
declare interface IChildWidgetConfigEntry {
|
|
177
|
+
export declare interface IChildWidgetConfigEntry {
|
|
82
178
|
parentWidgetKey: TDashboardWidgetKey;
|
|
83
179
|
widgetKey: TDashboardWidgetKey;
|
|
84
180
|
}
|
|
85
181
|
|
|
86
|
-
declare interface IDashboardConfig {
|
|
182
|
+
export declare interface IDashboardConfig {
|
|
87
183
|
userID: number | string;
|
|
88
184
|
clientAppKey: string;
|
|
89
185
|
dashboardId: string;
|
|
@@ -101,13 +197,13 @@ export declare interface IDashboardGridProps extends IDashboardGridPropsBase {
|
|
|
101
197
|
children?: ReactNode;
|
|
102
198
|
}
|
|
103
199
|
|
|
104
|
-
declare interface IDashboardGridPropsBase {
|
|
200
|
+
export declare interface IDashboardGridPropsBase {
|
|
105
201
|
isEditing: boolean;
|
|
106
202
|
zoomScale: number;
|
|
107
203
|
responsiveGrid: boolean;
|
|
108
204
|
}
|
|
109
205
|
|
|
110
|
-
declare interface IDashboardSettingEntry {
|
|
206
|
+
export declare interface IDashboardSettingEntry {
|
|
111
207
|
key: string;
|
|
112
208
|
name: string;
|
|
113
209
|
description: string;
|
|
@@ -119,6 +215,11 @@ declare interface IDashboardSettingEntry {
|
|
|
119
215
|
value: string;
|
|
120
216
|
}
|
|
121
217
|
|
|
218
|
+
export declare interface IDashboardStorageService {
|
|
219
|
+
getSavedDashboards: TGetSavedDashboards;
|
|
220
|
+
saveDashboards: TSaveDashboards;
|
|
221
|
+
}
|
|
222
|
+
|
|
122
223
|
export declare interface IDashboardWidget extends JSX.Element {
|
|
123
224
|
}
|
|
124
225
|
|
|
@@ -129,7 +230,7 @@ export declare interface IDashboardWidgetProps<TExtraProps = any> extends IDashb
|
|
|
129
230
|
selectContainer?: (containerKey?: TDashboardWidgetKey) => void;
|
|
130
231
|
}
|
|
131
232
|
|
|
132
|
-
declare interface IDashboardWidgetPropsBase<TExtraProps = any> {
|
|
233
|
+
export declare interface IDashboardWidgetPropsBase<TExtraProps = any> {
|
|
133
234
|
index: number;
|
|
134
235
|
maxIndex: number;
|
|
135
236
|
widgetKey: TDashboardWidgetKey;
|
|
@@ -160,7 +261,7 @@ export declare interface IDynamicWidgetCatalogEntry extends IDynamicWidgetCatalo
|
|
|
160
261
|
* TFrameworkElementType: see TWidgetMetaInfoBase
|
|
161
262
|
* TFrameworkComponentType: i.e. React.ComponentType<any> (see TWidgetFactoryBase)
|
|
162
263
|
*/
|
|
163
|
-
declare interface IDynamicWidgetCatalogEntryBase<TFrameworkElementType = any, TFrameworkComponentType = any> {
|
|
264
|
+
export declare interface IDynamicWidgetCatalogEntryBase<TFrameworkElementType = any, TFrameworkComponentType = any> {
|
|
164
265
|
key: TDashboardWidgetKey;
|
|
165
266
|
title: string;
|
|
166
267
|
isContainer?: boolean;
|
|
@@ -206,6 +307,14 @@ export declare const ListItemMiddleChild: ForwardRefExoticComponent<TListItemChi
|
|
|
206
307
|
|
|
207
308
|
export declare const ListItemRightChild: ForwardRefExoticComponent<TListItemChildProps & RefAttributes<HTMLDivElement>>;
|
|
208
309
|
|
|
310
|
+
/**
|
|
311
|
+
* @name localWidgetDiscovery
|
|
312
|
+
* @description Scans local directories for widgets.
|
|
313
|
+
* If lazy is true, it registers loaders. If false, it registers static components.
|
|
314
|
+
*/
|
|
315
|
+
export declare const localWidgetDiscovery: (baseSrcPath: string, // e.g., "/src/async-widgets" or "/src/bundled-widgets"
|
|
316
|
+
widgetModules: Record<string, any>, widgetMetaModules: Record<string, any>, lazy?: boolean) => [string, IDynamicWidgetCatalogEntryBase][];
|
|
317
|
+
|
|
209
318
|
export declare function MonitorIcon({ className }: TIconProps): JSX_2.Element;
|
|
210
319
|
|
|
211
320
|
export declare function MonitorSmartphoneIcon({ className }: TIconProps): JSX_2.Element;
|
|
@@ -214,8 +323,40 @@ export declare function MoveLeftIcon({ className }: TIconProps): JSX_2.Element;
|
|
|
214
323
|
|
|
215
324
|
export declare function MoveRightIcon({ className }: TIconProps): JSX_2.Element;
|
|
216
325
|
|
|
326
|
+
export declare const parseContainerTitle: (containerWidgetKey: TDashboardWidgetKey) => string;
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Enhanced helper to derive key and title from widget file paths.
|
|
330
|
+
* Handles:
|
|
331
|
+
* - widget-revenue-trends1 -> WidgetRevenueTrends1
|
|
332
|
+
* - widget-with-extraprops -> WidgetWithExtraprops
|
|
333
|
+
* - widget-revenue-trends-async -> WidgetRevenueTrendsAsync
|
|
334
|
+
*/
|
|
335
|
+
export declare const parseKeyAndTitleFromFilePath: (path: string) => {
|
|
336
|
+
key: TDashboardWidgetKey;
|
|
337
|
+
title: string;
|
|
338
|
+
folder: string;
|
|
339
|
+
} | null;
|
|
340
|
+
|
|
217
341
|
export declare function RedoIcon({ className }: TIconProps): JSX_2.Element;
|
|
218
342
|
|
|
343
|
+
export declare const remoteWidgetDiscovery: (manifestUrl: string) => Promise<{
|
|
344
|
+
entries: [string, IDynamicWidgetCatalogEntryBase][];
|
|
345
|
+
message: string;
|
|
346
|
+
details: string;
|
|
347
|
+
}>;
|
|
348
|
+
|
|
349
|
+
export declare const removeEmptyContainers: (dashboardConfig: IDashboardConfig) => IDashboardConfig;
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* @name resolveColorFromClass
|
|
353
|
+
* @description Resolves the current computed color using your existing CSS classes
|
|
354
|
+
* @param classNames, i.e. 'bg-primary'
|
|
355
|
+
* @param property to resolve, i.e. 'backgroundColor'
|
|
356
|
+
* @returns
|
|
357
|
+
*/
|
|
358
|
+
export declare const resolveColorFromClass: (classNames: string | string[], property?: "color" | "backgroundColor") => string;
|
|
359
|
+
|
|
219
360
|
export declare function SettingsIcon({ className }: TIconProps): JSX_2.Element;
|
|
220
361
|
|
|
221
362
|
export declare const showToast: (options: any) => void;
|
|
@@ -268,7 +409,7 @@ declare type TDashboardSlice = {
|
|
|
268
409
|
|
|
269
410
|
export declare type TDashboardUndoService = ReturnType<typeof useDashboardUndoService>;
|
|
270
411
|
|
|
271
|
-
declare type TDashboardUndoStatus = {
|
|
412
|
+
export declare type TDashboardUndoStatus = {
|
|
272
413
|
isUndoDisabled: boolean;
|
|
273
414
|
isRedoDisabled: boolean;
|
|
274
415
|
_currentIndex?: number;
|
|
@@ -277,9 +418,9 @@ declare type TDashboardUndoStatus = {
|
|
|
277
418
|
|
|
278
419
|
export declare type TDashboardWidgetCatalog = TDashboardWidgetCatalogBase<TFrameworkElementType, TFrameworkComponentType>;
|
|
279
420
|
|
|
280
|
-
declare type TDashboardWidgetCatalogBase<TFrameworkElementType = any, TFrameworkComponentType = any> = Map<TDashboardWidgetKey, IDynamicWidgetCatalogEntryBase<TFrameworkElementType, TFrameworkComponentType>>;
|
|
421
|
+
export declare type TDashboardWidgetCatalogBase<TFrameworkElementType = any, TFrameworkComponentType = any> = Map<TDashboardWidgetKey, IDynamicWidgetCatalogEntryBase<TFrameworkElementType, TFrameworkComponentType>>;
|
|
281
422
|
|
|
282
|
-
declare type TDashboardWidgetKey = string;
|
|
423
|
+
export declare type TDashboardWidgetKey = string;
|
|
283
424
|
|
|
284
425
|
declare type TDynamicWidgetLoaderProps<TExtraProps = any> = {
|
|
285
426
|
index: number;
|
|
@@ -305,6 +446,15 @@ declare type TFrameworkComponentType = React.ComponentType<any>;
|
|
|
305
446
|
|
|
306
447
|
declare type TFrameworkElementType = React.ElementType;
|
|
307
448
|
|
|
449
|
+
export declare type TGetDefaultWidgetMetaFromKey = (widgetKey: TDashboardWidgetKey, options?: TGetDefaultWidgetMetaFromKeyOptions) => TWidgetMetaInfoBase<any>;
|
|
450
|
+
|
|
451
|
+
export declare type TGetDefaultWidgetMetaFromKeyOptions = {
|
|
452
|
+
title?: string;
|
|
453
|
+
description?: string;
|
|
454
|
+
};
|
|
455
|
+
|
|
456
|
+
export declare type TGetSavedDashboards = (userID: number | string, clientAppKey: string, widgetCatalog: TDashboardWidgetCatalogBase, defaultDashboardConfig: IDashboardConfig) => Promise<IDashboardConfig[]>;
|
|
457
|
+
|
|
308
458
|
declare type TIconProps = {
|
|
309
459
|
className?: string;
|
|
310
460
|
};
|
|
@@ -317,6 +467,11 @@ declare type TListItemChildProps = {
|
|
|
317
467
|
children?: ReactNode;
|
|
318
468
|
};
|
|
319
469
|
|
|
470
|
+
export declare type TManifestEntry = {
|
|
471
|
+
url: string;
|
|
472
|
+
meta: TWidgetMetaInfoBase;
|
|
473
|
+
};
|
|
474
|
+
|
|
320
475
|
declare type TProps = {
|
|
321
476
|
children: React.ReactNode;
|
|
322
477
|
addCssClasses?: string;
|
|
@@ -324,6 +479,8 @@ declare type TProps = {
|
|
|
324
479
|
|
|
325
480
|
declare type TRemoveWidgetResponse = TAddWidgetResponse;
|
|
326
481
|
|
|
482
|
+
export declare type TSaveDashboards = (userID: number | string, clientAppKey: string, dashboardConfigs: IDashboardConfig[], widgetCatalog: TDashboardWidgetCatalogBase) => Promise<boolean>;
|
|
483
|
+
|
|
327
484
|
declare type TSize = 'small' | 'medium';
|
|
328
485
|
|
|
329
486
|
export declare type TStackProps = {
|
|
@@ -334,14 +491,14 @@ export declare type TStackProps = {
|
|
|
334
491
|
children: React.ReactNode;
|
|
335
492
|
};
|
|
336
493
|
|
|
337
|
-
declare type TUndoHistoryEntry = {
|
|
494
|
+
export declare type TUndoHistoryEntry = {
|
|
338
495
|
undoIndex: number;
|
|
339
496
|
config: IDashboardConfig;
|
|
340
497
|
};
|
|
341
498
|
|
|
342
|
-
declare type TWidgetCategory = 'Widget' | 'Chart' | 'Container';
|
|
499
|
+
export declare type TWidgetCategory = 'Widget' | 'Chart' | 'Container';
|
|
343
500
|
|
|
344
|
-
declare type TWidgetDirection = 'row' | 'column';
|
|
501
|
+
export declare type TWidgetDirection = 'row' | 'column';
|
|
345
502
|
|
|
346
503
|
export declare type TWidgetFactory = TWidgetFactoryBase<TFrameworkComponentType>;
|
|
347
504
|
|
|
@@ -353,13 +510,13 @@ export declare type TWidgetFactory = TWidgetFactoryBase<TFrameworkComponentType>
|
|
|
353
510
|
*
|
|
354
511
|
* TFrameworkComponent could be "React.ComponentType<any>"" or "VueComponent" etc
|
|
355
512
|
*/
|
|
356
|
-
declare type TWidgetFactoryBase<TFrameworkComponent = any> = () => Promise<{
|
|
513
|
+
export declare type TWidgetFactoryBase<TFrameworkComponent = any> = () => Promise<{
|
|
357
514
|
default: TFrameworkComponent;
|
|
358
515
|
}>;
|
|
359
516
|
|
|
360
517
|
export declare type TWidgetMetaInfo = TWidgetMetaInfoBase<TFrameworkElementType | undefined>;
|
|
361
518
|
|
|
362
|
-
declare type TWidgetMetaInfoBase<TFrameworkElementType = any> = {
|
|
519
|
+
export declare type TWidgetMetaInfoBase<TFrameworkElementType = any> = {
|
|
363
520
|
name: string;
|
|
364
521
|
description: string;
|
|
365
522
|
categories: TWidgetCategory[];
|
|
@@ -381,10 +538,12 @@ export declare type TWidgetsCatalogFlyoutProps = {
|
|
|
381
538
|
onDoneClick: () => any;
|
|
382
539
|
};
|
|
383
540
|
|
|
384
|
-
declare type TWidgetSize = 'default' | 'large' | 'xlarge';
|
|
541
|
+
export declare type TWidgetSize = 'default' | 'large' | 'xlarge';
|
|
385
542
|
|
|
386
543
|
export declare function UndoIcon({ className }: TIconProps): JSX_2.Element;
|
|
387
544
|
|
|
545
|
+
export declare const useDashboardStorageService: () => IDashboardStorageService;
|
|
546
|
+
|
|
388
547
|
export declare const useDashboardStore: UseBoundStore<StoreApi<TDashboardSlice>>;
|
|
389
548
|
|
|
390
549
|
export declare const useDashboardUndoService: () => {
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
html{--bwj-dashboard-num-columns: 3;--bwj-dashboard-gap: 1.25rem;--bwj-dashboard-transform-scale: 1;--bwj-dashboard-add-cols: 1;--bwj-widget-width: 21rem;--bwj-widget-border-radius: .33rem;--bwj-widget-inner-px: 1rem;--bwj-widget-inner-py: .75rem;--bwj-widget-header-px: var(--bwj-widget-inner-px);--bwj-widget-header-py: 1rem;--bwj-widget-title-size: .8rem;--bwj-widget-title-weight: 600;--bwj-dashboard-debug-container-flex-row: none;--bwj-dashboard-debug-container-flex-column: none;--bwj-dashboard-debug-container-grid-large-inner: none}html .dashboard-main-grid{width:100%;display:grid;grid-template-columns:repeat(var(--bwj-dashboard-num-columns, 4),minmax(var(--bwj-widget-width),1fr));gap:var(--bwj-dashboard-gap, 1.5rem);transform:scale(var(--bwj-dashboard-transform-scale, 1));transform-origin:top left}html .dashboard-main-grid.editing{row-gap:calc(var(--bwj-dashboard-gap) + .8rem)}html .dashboard-main-grid:not(.responsive-grid){max-width:min-content}html .dashboard-main-grid.responsive-grid{width:100%}html .dashboard-widget-container{--bwj-border-opacity: .5;flex:1 1 0%;width:100%}html .dashboard-widget-container .widget-container-header{display:none;position:absolute;height:1.85rem;inset:-1.85rem -1px auto;cursor:pointer;padding:0 .33rem}html .dashboard-widget-container .widget-container-header .actions-inner{transition:all .3s ease-in-out;width:100%;display:none;align-items:center;justify-content:space-between;font-size:.8rem}html .dashboard-widget-container.editing{border-top:none!important;border-bottom-left-radius:var(--bwj-widget-border-radius, .3rem);border-bottom-right-radius:var(--bwj-widget-border-radius, .3rem)}html .dashboard-widget-container.editing .widget-container-header{display:flex;border-bottom:none!important;border-top-left-radius:var(--bwj-widget-border-radius, .3rem);border-top-right-radius:var(--bwj-widget-border-radius, .3rem)}html .dashboard-widget-container.editing .widget-container-header>.actions-inner{display:flex!important}html .dashboard-widget-container.editing.highlight-container:before{content:"";position:absolute;inset:-1.85rem 0 0;box-shadow:0 2px 10px 6px oklch(var(--bwj-primary-okl) var(--bwj-primary-okc) var(--bwj-primary-okh) / .5);pointer-events:none}html .dashboard-widget{flex:1 1 0%;display:flex;flex-direction:column;position:relative;border-radius:var(--bwj-widget-border-radius, .3rem);height:100%;width:100%}html .dashboard-widget:not(.no-shadow){box-shadow:1px 2px 8px #0000001a}html .dashboard-widget.no-shadow{box-shadow:none}html .dashboard-widget.transparent-widget{background-color:transparent}html .dashboard-widget .widget-title-wrapper .widget-title{font-size:var(--bwj-widget-title-size, .75rem);font-weight:var(--bwj-widget-title-weight, 600)}html .dashboard-widget .widget-inner{flex:1 1 0%;display:flex;flex-direction:column;justify-content:space-between}html .dashboard-widget:not(.no-padding) .widget-inner{padding:var(--bwj-widget-inner-py, 1rem) var(--bwj-widget-inner-px, 1.5rem)}html .dashboard-widget.no-padding .widget-inner{padding:0}html .dashboard-widget .widget-header{padding:var(--bwj-widget-header-py, 1rem) var(--bwj-widget-header-px, 1.5rem)}html .dashboard-widget-container .widget-container-inner{padding:0;gap:var(--bwj-dashboard-gap, 1.5rem)}html .dashboard-widget-container.direction-row.widget-container-flex{grid-column:1 / -1;width:100%;outline:var(--bwj-dashboard-debug-container-flex-row)}html .dashboard-widget-container.direction-row.widget-container-flex .widget-container-inner{display:flex;flex-direction:row;height:100%}html .dashboard-widget-container.direction-row.widget-container-flex .widget-container-inner .dashboard-widget{min-width:5%;max-width:100%}html .dashboard-widget-container.direction-column.widget-container-flex .widget-container-inner{display:flex;flex-direction:column;height:100%;outline:var(--bwj-dashboard-debug-container-flex-column)}html .dashboard-widget-container.direction-column.widget-container-flex .widget-container-inner .dashboard-widget{min-width:5%;max-width:100%}html .dashboard-widget-container.large-widget.widget-container-grid .widget-container-inner{display:grid;grid-template-columns:repeat(2,minmax(var(--bwj-widget-width),1fr));outline:var(--bwj-dashboard-debug-container-grid-large-inner)}html .dashboard-main-grid.responsive-grid .dashboard-widget-container:not(.large-widget):not(.xlarge-widget),html .dashboard-main-grid.responsive-grid .dashboard-widget:not(.large-widget):not(.xlarge-widget){min-width:20%;max-width:100%}html .dashboard-main-grid:not(.responsive-grid) .dashboard-widget-container:not(.widget-container-flex):not(.large-widget):not(.xlarge-widget),html .widget-container-flex:not(.direction-row) .dashboard-main-grid:not(.responsive-grid) .dashboard-widget:not(.large-widget):not(.xlarge-widget){min-width:var(--bwj-widget-width);max-width:var(--bwj-widget-width)}html .dashboard-widget-container.large-widget,html .dashboard-widget.large-widget{grid-column:span 2}html .dashboard-main-grid:not(.responsive-grid) .dashboard-widget-container.large-widget,html .dashboard-main-grid:not(.responsive-grid) .dashboard-widget.large-widget{max-width:calc(680px + var(--bwj-dashboard-gap, 1.5rem))}html .dashboard-widget-container.xlarge-widget,html .dashboard-widget.xlarge-widget{grid-column:span 3}html .dashboard-main-grid:not(.responsive-grid) .dashboard-widget-container.xlarge-widget,html .dashboard-main-grid:not(.responsive-grid) .dashboard-widget.xlarge-widget{max-width:calc(1020px + (var(--bwj-dashboard-gap, 1.5rem) * 2))}html .widget-header .actions-inner{display:none;align-items:center;gap:.25rem}html .widget-header .actions-inner .actions-buttons-container{align-items:center;gap:.25rem}html .dashboard-widget.editing:hover .actions-inner{display:flex!important}html .dashboard-widget-container.editing .widget-container-header .actions-inner{display:flex}html .actions-buttons-container{display:flex!important;align-items:center!important;gap:.25rem!important}html .dashboard-number{font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:700}html .dashboard-number.number-xl{font-size:3.5rem}html .dashboard-number.number-lg{font-size:2.5rem}html .dashboard-number.number-base{font-size:1.5rem}html .dashboard-progress-bar{padding:0;width:100%;height:1.5rem;border-radius:.75rem}html .dashboard-progress{padding:0;height:1.25rem;border-radius:.75rem}@media(max-width:769px){html .dashboard-main-grid{display:flex;flex-direction:column;width:100%;max-width:100%!important}html .dashboard-widget-container.widget-container-flex.direction-row{max-width:100%;grid-column:auto}html .dashboard-widget-container.widget-container-flex.direction-row .widget-container-inner{display:flex;flex-wrap:wrap;flex-direction:column!important;width:100%}}@media(min-width:770px){html .dashboard-main-grid{--bwj-dashboard-num-columns: calc(2 + var(--bwj-dashboard-add-cols))}}@media(max-width:1119px){html .dashboard-widget-container.widget-container-flex.direction-row{max-width:100%;grid-column:auto}html .dashboard-widget-container.widget-container-flex.direction-row .widget-container-inner{display:flex;flex-wrap:wrap;flex-direction:column!important;width:100%}}@media(min-width:1120px){html .dashboard-main-grid{--bwj-dashboard-num-columns: calc(3 + var(--bwj-dashboard-add-cols))}}@media(min-width:1480px){html .dashboard-main-grid{--bwj-dashboard-num-columns: calc(4 + var(--bwj-dashboard-add-cols))}}@media(min-width:1840px){html .dashboard-main-grid{--bwj-dashboard-num-columns: calc(5 + var(--bwj-dashboard-add-cols))}}@media(min-width:2220px){html .dashboard-main-grid{--bwj-dashboard-num-columns: calc(6 + var(--bwj-dashboard-add-cols))}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tenorlab/react-dashboard",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "Foundation components for creating user-configurable dashboards in React",
|
|
5
5
|
"author": "Damiano Fusco",
|
|
6
6
|
"type": "module",
|
|
@@ -42,7 +42,8 @@
|
|
|
42
42
|
"./core": {
|
|
43
43
|
"types": "./dist/core.d.ts",
|
|
44
44
|
"import": "./dist/core.es.js"
|
|
45
|
-
}
|
|
45
|
+
},
|
|
46
|
+
"./styles.css": "./dist/style.css"
|
|
46
47
|
},
|
|
47
48
|
"types": "./dist/react-dashboard.d.ts",
|
|
48
49
|
"main": "./dist/react-dashboard.es.js",
|