@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.
@@ -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: () => {
@@ -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.5",
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",