@richardmcquiston01/dashboard-widgets-toolkit 0.8.0 → 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/dist/core.cjs +605 -14
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +134 -3
- package/dist/core.d.ts +134 -3
- package/dist/core.js +583 -15
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +605 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +583 -15
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +1202 -136
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +80 -3
- package/dist/react.d.ts +80 -3
- package/dist/react.js +1202 -136
- package/dist/react.js.map +1 -1
- package/dist/{scale-CrXxawQn.d.cts → scale-N69bo7wo.d.cts} +36 -1
- package/dist/{scale-CrXxawQn.d.ts → scale-N69bo7wo.d.ts} +36 -1
- package/dist/styles.css +173 -0
- package/package.json +1 -1
|
@@ -573,6 +573,12 @@ interface WidgetDefinition {
|
|
|
573
573
|
* are not locked.
|
|
574
574
|
*/
|
|
575
575
|
readonly locked?: boolean | WidgetLock;
|
|
576
|
+
/**
|
|
577
|
+
* The widget's home page in a paged dashboard: a page key or title. A
|
|
578
|
+
* widget no page lists yet (and a widget locked against moving) shows here;
|
|
579
|
+
* without it, on the first page. Ignored when the layout has no pages.
|
|
580
|
+
*/
|
|
581
|
+
readonly page?: string;
|
|
576
582
|
}
|
|
577
583
|
/** What a viewer may not do to a locked widget. */
|
|
578
584
|
interface WidgetLock {
|
|
@@ -616,6 +622,8 @@ interface LayoutItem {
|
|
|
616
622
|
readonly sortOrder?: number;
|
|
617
623
|
/** See `WidgetDefinition.locked`. Pinned widgets hold their slot. */
|
|
618
624
|
readonly locked?: boolean | WidgetLock;
|
|
625
|
+
/** See `WidgetDefinition.page`: the widget's home page. */
|
|
626
|
+
readonly page?: string;
|
|
619
627
|
}
|
|
620
628
|
interface DashboardLayout {
|
|
621
629
|
/** Widget keys in display order. Keys not listed follow, by sortOrder. */
|
|
@@ -624,7 +632,34 @@ interface DashboardLayout {
|
|
|
624
632
|
readonly hidden: readonly string[];
|
|
625
633
|
/** Widget keys collapsed to their header. */
|
|
626
634
|
readonly minimized: readonly string[];
|
|
635
|
+
/**
|
|
636
|
+
* Pages of widgets. Absent, the lists above are the one and only page. With
|
|
637
|
+
* pages, each page owns its own lists and the top-level lists are left
|
|
638
|
+
* empty. See `pages.ts`.
|
|
639
|
+
*/
|
|
640
|
+
readonly pages?: readonly LayoutPage[];
|
|
641
|
+
}
|
|
642
|
+
/** One page of a paged layout: the same lists as a layout, plus a name. */
|
|
643
|
+
interface LayoutPage {
|
|
644
|
+
/** Unique within the layout and stable when the page is renamed or moved. */
|
|
645
|
+
readonly key: string;
|
|
646
|
+
/** Shown in the page bar. At most `MAX_PAGE_TITLE_LENGTH` characters. */
|
|
647
|
+
readonly title: string;
|
|
648
|
+
readonly order: readonly string[];
|
|
649
|
+
readonly hidden: readonly string[];
|
|
650
|
+
readonly minimized: readonly string[];
|
|
651
|
+
/** Rows this page holds, overriding the dashboard's default. */
|
|
652
|
+
readonly maxRows?: number;
|
|
627
653
|
}
|
|
654
|
+
/** Longest page title; longer saved titles are cut. */
|
|
655
|
+
declare const MAX_PAGE_TITLE_LENGTH = 30;
|
|
656
|
+
/**
|
|
657
|
+
* Most pages `parseLayout` keeps: a safety ceiling against malformed or
|
|
658
|
+
* hostile JSON, not a product limit.
|
|
659
|
+
*/
|
|
660
|
+
declare const MAX_PARSED_PAGES = 50;
|
|
661
|
+
/** Most rows a page may be given with `maxRows`. */
|
|
662
|
+
declare const MAX_PAGE_ROWS = 20;
|
|
628
663
|
declare const EMPTY_LAYOUT: DashboardLayout;
|
|
629
664
|
/**
|
|
630
665
|
* Reads a saved layout: a JSON string or an already-parsed object. Missing,
|
|
@@ -720,4 +755,4 @@ declare function niceDomain(values: readonly number[], tickCount?: number): Nice
|
|
|
720
755
|
*/
|
|
721
756
|
declare function labelStride(count: number, maxLabels?: number): number;
|
|
722
757
|
|
|
723
|
-
export { type
|
|
758
|
+
export { type KpiDeltaOptions as $, type AlertListWidgetData as A, type BarListWidgetData as B, type CachedPayload as C, type DashboardWidget as D, type DetailCell as E, type DetailColumn as F, type GraphWidgetData as G, type DetailMode as H, type DetailPage as I, type DetailProvider as J, type KpiWidgetData as K, type Locale as L, type DetailProviders as M, type NiceDomain as N, type DetailSort as O, EMPTY_LAYOUT as P, type EmptyWidget as Q, type ResolvedTableControls as R, type EnforceLocksOptions as S, type TableWidgetData as T, type Err as U, type ErrorWidget as V, type WidgetSize as W, type FormatOptions as X, type GraphPoint as Y, type GraphSeries as Z, type KpiDelta as _, type WidgetFill as a, queryRows as a$, type LoadingWidget as a0, MAX_DETAIL_PAGE_SIZE as a1, MAX_GRAPH_SERIES as a2, MAX_PAGE_ROWS as a3, MAX_PAGE_TITLE_LENGTH as a4, MAX_PARSED_PAGES as a5, type Ok as a6, type OkWidget as a7, type ProviderOptions as a8, type ResolvedDetailOptions as a9, err as aA, failedWidget as aB, formatCount as aC, formatPercentChange as aD, formatValue as aE, hiddenWidgets as aF, hideWidget as aG, isHidden as aH, isMinimized as aI, isWidgetEmptyState as aJ, isWidgetKind as aK, isWidgetVisibleTo as aL, kpiDelta as aM, labelStride as aN, loadingWidgets as aO, minimizeWidget as aP, moveWidget as aQ, moveWidgetBy as aR, moveWidgetDown as aS, moveWidgetUp as aT, niceDomain as aU, niceStep as aV, ok as aW, parseDetailQuery as aX, parseLayout as aY, percentChange as aZ, pruneLayout as a_, type ResolvedWidget as aa, type ResolvedWidgetLock as ab, type SortDirection as ac, type TableCell as ad, type TableColumn as ae, VALUE_FORMATS as af, type ValueFormat as ag, WIDGET_FILLS as ah, WIDGET_KINDS as ai, WIDGET_SIZES as aj, type WidgetCache as ak, type WidgetDataOf as al, type WidgetDetailOptions as am, type WidgetEmptyState as an, type WidgetLock as ao, type WidgetProvider as ap, type WidgetStatus as aq, type WidgetTableControls as ar, cacheKeyFor as as, defaultDetailQuery as at, defineWidget as au, deriveDetailData as av, describeUnknownError as aw, emptyTextFor as ax, emptyWidget as ay, enforceLocks as az, type WidgetDefinition as b, resolveDetailOptions as b0, resolvePayload as b1, resolveTableControls as b2, resolveWidget as b3, resolveWidgetLock as b4, resolveWidgets as b5, restoreWidget as b6, serializeDetailQuery as b7, serializeLayout as b8, shareOf as b9, showWidget as ba, sortDefinitions as bb, tableDetailData as bc, toggleHidden as bd, toggleMinimized as be, validateDetailData as bf, visibleWidgets as bg, widgetsFor as bh, type DetailProviderOptions as c, type DetailData as d, type DetailQuery as e, type DashboardLayout as f, type GaugeWidgetData as g, type TextWidgetData as h, type WidgetData as i, type ResolveOptions as j, type WidgetContext as k, type WidgetProviders as l, type LayoutItem as m, type Result as n, type LayoutPage as o, type WidgetKind as p, type WidgetPayload as q, type AlertListItem as r, type BarListItem as s, DEFAULT_COMPARISON_LABEL as t, DEFAULT_CURRENCY as u, DEFAULT_DETAIL_PAGE_SIZE as v, DEFAULT_EMPTY_TEXT as w, DETAIL_MODES as x, type DeltaDirection as y, type DeltaSentiment as z };
|
|
@@ -573,6 +573,12 @@ interface WidgetDefinition {
|
|
|
573
573
|
* are not locked.
|
|
574
574
|
*/
|
|
575
575
|
readonly locked?: boolean | WidgetLock;
|
|
576
|
+
/**
|
|
577
|
+
* The widget's home page in a paged dashboard: a page key or title. A
|
|
578
|
+
* widget no page lists yet (and a widget locked against moving) shows here;
|
|
579
|
+
* without it, on the first page. Ignored when the layout has no pages.
|
|
580
|
+
*/
|
|
581
|
+
readonly page?: string;
|
|
576
582
|
}
|
|
577
583
|
/** What a viewer may not do to a locked widget. */
|
|
578
584
|
interface WidgetLock {
|
|
@@ -616,6 +622,8 @@ interface LayoutItem {
|
|
|
616
622
|
readonly sortOrder?: number;
|
|
617
623
|
/** See `WidgetDefinition.locked`. Pinned widgets hold their slot. */
|
|
618
624
|
readonly locked?: boolean | WidgetLock;
|
|
625
|
+
/** See `WidgetDefinition.page`: the widget's home page. */
|
|
626
|
+
readonly page?: string;
|
|
619
627
|
}
|
|
620
628
|
interface DashboardLayout {
|
|
621
629
|
/** Widget keys in display order. Keys not listed follow, by sortOrder. */
|
|
@@ -624,7 +632,34 @@ interface DashboardLayout {
|
|
|
624
632
|
readonly hidden: readonly string[];
|
|
625
633
|
/** Widget keys collapsed to their header. */
|
|
626
634
|
readonly minimized: readonly string[];
|
|
635
|
+
/**
|
|
636
|
+
* Pages of widgets. Absent, the lists above are the one and only page. With
|
|
637
|
+
* pages, each page owns its own lists and the top-level lists are left
|
|
638
|
+
* empty. See `pages.ts`.
|
|
639
|
+
*/
|
|
640
|
+
readonly pages?: readonly LayoutPage[];
|
|
641
|
+
}
|
|
642
|
+
/** One page of a paged layout: the same lists as a layout, plus a name. */
|
|
643
|
+
interface LayoutPage {
|
|
644
|
+
/** Unique within the layout and stable when the page is renamed or moved. */
|
|
645
|
+
readonly key: string;
|
|
646
|
+
/** Shown in the page bar. At most `MAX_PAGE_TITLE_LENGTH` characters. */
|
|
647
|
+
readonly title: string;
|
|
648
|
+
readonly order: readonly string[];
|
|
649
|
+
readonly hidden: readonly string[];
|
|
650
|
+
readonly minimized: readonly string[];
|
|
651
|
+
/** Rows this page holds, overriding the dashboard's default. */
|
|
652
|
+
readonly maxRows?: number;
|
|
627
653
|
}
|
|
654
|
+
/** Longest page title; longer saved titles are cut. */
|
|
655
|
+
declare const MAX_PAGE_TITLE_LENGTH = 30;
|
|
656
|
+
/**
|
|
657
|
+
* Most pages `parseLayout` keeps: a safety ceiling against malformed or
|
|
658
|
+
* hostile JSON, not a product limit.
|
|
659
|
+
*/
|
|
660
|
+
declare const MAX_PARSED_PAGES = 50;
|
|
661
|
+
/** Most rows a page may be given with `maxRows`. */
|
|
662
|
+
declare const MAX_PAGE_ROWS = 20;
|
|
628
663
|
declare const EMPTY_LAYOUT: DashboardLayout;
|
|
629
664
|
/**
|
|
630
665
|
* Reads a saved layout: a JSON string or an already-parsed object. Missing,
|
|
@@ -720,4 +755,4 @@ declare function niceDomain(values: readonly number[], tickCount?: number): Nice
|
|
|
720
755
|
*/
|
|
721
756
|
declare function labelStride(count: number, maxLabels?: number): number;
|
|
722
757
|
|
|
723
|
-
export { type
|
|
758
|
+
export { type KpiDeltaOptions as $, type AlertListWidgetData as A, type BarListWidgetData as B, type CachedPayload as C, type DashboardWidget as D, type DetailCell as E, type DetailColumn as F, type GraphWidgetData as G, type DetailMode as H, type DetailPage as I, type DetailProvider as J, type KpiWidgetData as K, type Locale as L, type DetailProviders as M, type NiceDomain as N, type DetailSort as O, EMPTY_LAYOUT as P, type EmptyWidget as Q, type ResolvedTableControls as R, type EnforceLocksOptions as S, type TableWidgetData as T, type Err as U, type ErrorWidget as V, type WidgetSize as W, type FormatOptions as X, type GraphPoint as Y, type GraphSeries as Z, type KpiDelta as _, type WidgetFill as a, queryRows as a$, type LoadingWidget as a0, MAX_DETAIL_PAGE_SIZE as a1, MAX_GRAPH_SERIES as a2, MAX_PAGE_ROWS as a3, MAX_PAGE_TITLE_LENGTH as a4, MAX_PARSED_PAGES as a5, type Ok as a6, type OkWidget as a7, type ProviderOptions as a8, type ResolvedDetailOptions as a9, err as aA, failedWidget as aB, formatCount as aC, formatPercentChange as aD, formatValue as aE, hiddenWidgets as aF, hideWidget as aG, isHidden as aH, isMinimized as aI, isWidgetEmptyState as aJ, isWidgetKind as aK, isWidgetVisibleTo as aL, kpiDelta as aM, labelStride as aN, loadingWidgets as aO, minimizeWidget as aP, moveWidget as aQ, moveWidgetBy as aR, moveWidgetDown as aS, moveWidgetUp as aT, niceDomain as aU, niceStep as aV, ok as aW, parseDetailQuery as aX, parseLayout as aY, percentChange as aZ, pruneLayout as a_, type ResolvedWidget as aa, type ResolvedWidgetLock as ab, type SortDirection as ac, type TableCell as ad, type TableColumn as ae, VALUE_FORMATS as af, type ValueFormat as ag, WIDGET_FILLS as ah, WIDGET_KINDS as ai, WIDGET_SIZES as aj, type WidgetCache as ak, type WidgetDataOf as al, type WidgetDetailOptions as am, type WidgetEmptyState as an, type WidgetLock as ao, type WidgetProvider as ap, type WidgetStatus as aq, type WidgetTableControls as ar, cacheKeyFor as as, defaultDetailQuery as at, defineWidget as au, deriveDetailData as av, describeUnknownError as aw, emptyTextFor as ax, emptyWidget as ay, enforceLocks as az, type WidgetDefinition as b, resolveDetailOptions as b0, resolvePayload as b1, resolveTableControls as b2, resolveWidget as b3, resolveWidgetLock as b4, resolveWidgets as b5, restoreWidget as b6, serializeDetailQuery as b7, serializeLayout as b8, shareOf as b9, showWidget as ba, sortDefinitions as bb, tableDetailData as bc, toggleHidden as bd, toggleMinimized as be, validateDetailData as bf, visibleWidgets as bg, widgetsFor as bh, type DetailProviderOptions as c, type DetailData as d, type DetailQuery as e, type DashboardLayout as f, type GaugeWidgetData as g, type TextWidgetData as h, type WidgetData as i, type ResolveOptions as j, type WidgetContext as k, type WidgetProviders as l, type LayoutItem as m, type Result as n, type LayoutPage as o, type WidgetKind as p, type WidgetPayload as q, type AlertListItem as r, type BarListItem as s, DEFAULT_COMPARISON_LABEL as t, DEFAULT_CURRENCY as u, DEFAULT_DETAIL_PAGE_SIZE as v, DEFAULT_EMPTY_TEXT as w, DETAIL_MODES as x, type DeltaDirection as y, type DeltaSentiment as z };
|
package/dist/styles.css
CHANGED
|
@@ -170,6 +170,162 @@
|
|
|
170
170
|
font-size: 0.875rem;
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
+
:where(.dwt-toolbar) {
|
|
174
|
+
display: flex;
|
|
175
|
+
flex-wrap: wrap;
|
|
176
|
+
align-items: center;
|
|
177
|
+
gap: 8px;
|
|
178
|
+
margin-bottom: 12px;
|
|
179
|
+
font-size: 0.875rem;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
:where(.dwt-pages) {
|
|
183
|
+
display: flex;
|
|
184
|
+
align-items: center;
|
|
185
|
+
gap: 8px;
|
|
186
|
+
margin-bottom: 12px;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
:where(.dwt-page-tabs) {
|
|
190
|
+
display: flex;
|
|
191
|
+
flex-wrap: wrap;
|
|
192
|
+
gap: 4px;
|
|
193
|
+
min-width: 0;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
:where(.dwt-page-tab) {
|
|
197
|
+
box-sizing: border-box;
|
|
198
|
+
min-height: 32px;
|
|
199
|
+
padding: 4px 12px;
|
|
200
|
+
font: inherit;
|
|
201
|
+
font-size: 0.875rem;
|
|
202
|
+
color: var(--dwt-text-secondary);
|
|
203
|
+
background: transparent;
|
|
204
|
+
border: 0;
|
|
205
|
+
border-bottom: 2px solid transparent;
|
|
206
|
+
cursor: pointer;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
:where(.dwt-page-tab[aria-selected='true']) {
|
|
210
|
+
color: var(--dwt-text);
|
|
211
|
+
font-weight: 600;
|
|
212
|
+
border-bottom-color: var(--dwt-text);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
:where(.dwt-page-tab:focus-visible) {
|
|
216
|
+
outline: 2px solid var(--dwt-focus);
|
|
217
|
+
outline-offset: 2px;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
:where(.dwt-page-dot) {
|
|
221
|
+
display: none;
|
|
222
|
+
box-sizing: border-box;
|
|
223
|
+
width: 12px;
|
|
224
|
+
height: 12px;
|
|
225
|
+
border: 2px solid var(--dwt-text-secondary);
|
|
226
|
+
border-radius: 50%;
|
|
227
|
+
background: transparent;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
:where(.dwt-page-tab[aria-selected='true'] .dwt-page-dot) {
|
|
231
|
+
border-color: var(--dwt-text);
|
|
232
|
+
background: var(--dwt-text);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
@media (max-width: 640px) {
|
|
236
|
+
:where(.dwt-pages) {
|
|
237
|
+
justify-content: center;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
:where(.dwt-page-tab) {
|
|
241
|
+
min-width: 24px;
|
|
242
|
+
min-height: 24px;
|
|
243
|
+
padding: 6px;
|
|
244
|
+
border-bottom: 0;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
:where(.dwt-page-tab-title) {
|
|
248
|
+
position: absolute;
|
|
249
|
+
width: 1px;
|
|
250
|
+
height: 1px;
|
|
251
|
+
overflow: hidden;
|
|
252
|
+
clip-path: inset(50%);
|
|
253
|
+
white-space: nowrap;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
:where(.dwt-page-dot) {
|
|
257
|
+
display: block;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
:where(.dwt-page-manage) {
|
|
262
|
+
display: flex;
|
|
263
|
+
flex-wrap: wrap;
|
|
264
|
+
align-items: center;
|
|
265
|
+
gap: 8px;
|
|
266
|
+
margin-bottom: 12px;
|
|
267
|
+
font-size: 0.875rem;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
:where(.dwt-page-rename) {
|
|
271
|
+
display: inline-flex;
|
|
272
|
+
align-items: center;
|
|
273
|
+
gap: 6px;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
:where(.dwt-page-title-input) {
|
|
277
|
+
box-sizing: border-box;
|
|
278
|
+
height: 28px;
|
|
279
|
+
padding: 0 8px;
|
|
280
|
+
font: inherit;
|
|
281
|
+
color: var(--dwt-text);
|
|
282
|
+
background: var(--dwt-surface, transparent);
|
|
283
|
+
border: 1px solid var(--dwt-border);
|
|
284
|
+
border-radius: 6px;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
:where(.dwt-page-error) {
|
|
288
|
+
color: var(--dwt-text);
|
|
289
|
+
font-weight: 600;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
:where(.dwt-move-select) {
|
|
293
|
+
box-sizing: border-box;
|
|
294
|
+
max-width: 9rem;
|
|
295
|
+
height: 28px;
|
|
296
|
+
font: inherit;
|
|
297
|
+
font-size: 0.8125rem;
|
|
298
|
+
color: var(--dwt-text);
|
|
299
|
+
background: var(--dwt-surface, transparent);
|
|
300
|
+
border: 1px solid var(--dwt-border);
|
|
301
|
+
border-radius: 6px;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
:where(.dwt-page-panel) {
|
|
305
|
+
min-width: 0;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
:where(.dwt-confirm) {
|
|
309
|
+
display: inline-flex;
|
|
310
|
+
align-items: center;
|
|
311
|
+
gap: 6px;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
:where(.dwt-confirm-message) {
|
|
315
|
+
color: var(--dwt-text-secondary);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/* A lock icon sits where a card's controls would be: same size, no action. */
|
|
319
|
+
:where(.dwt-lock) {
|
|
320
|
+
display: inline-flex;
|
|
321
|
+
align-items: center;
|
|
322
|
+
justify-content: center;
|
|
323
|
+
box-sizing: border-box;
|
|
324
|
+
width: 28px;
|
|
325
|
+
height: 28px;
|
|
326
|
+
color: var(--dwt-text-secondary);
|
|
327
|
+
}
|
|
328
|
+
|
|
173
329
|
:where(.dwt-hidden-label) {
|
|
174
330
|
color: var(--dwt-text-secondary);
|
|
175
331
|
}
|
|
@@ -188,6 +344,11 @@
|
|
|
188
344
|
font-family: var(--dwt-font);
|
|
189
345
|
}
|
|
190
346
|
|
|
347
|
+
:where(.dwt-dashboard--editing .dwt-card--editing) {
|
|
348
|
+
border-style: dashed;
|
|
349
|
+
border-color: var(--dwt-text-secondary);
|
|
350
|
+
}
|
|
351
|
+
|
|
191
352
|
:where(.dwt-card-header) {
|
|
192
353
|
display: flex;
|
|
193
354
|
align-items: flex-start;
|
|
@@ -716,3 +877,15 @@
|
|
|
716
877
|
border-radius: 6px;
|
|
717
878
|
padding: 4px 8px;
|
|
718
879
|
}
|
|
880
|
+
|
|
881
|
+
/* The previous and next buttons only help when the tabs collapse to dots.
|
|
882
|
+
After .dwt-icon-button so this display wins. */
|
|
883
|
+
:where(.dwt-page-nav) {
|
|
884
|
+
display: none;
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
@media (max-width: 640px) {
|
|
888
|
+
:where(.dwt-page-nav) {
|
|
889
|
+
display: inline-flex;
|
|
890
|
+
}
|
|
891
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@richardmcquiston01/dashboard-widgets-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Framework-agnostic dashboard widget toolkit: typed widget definitions and data payloads (KPI, gauge, table, bar list, alert list, chart), user layout (order, hide, minimise), and React renderers. Bring your own data providers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dashboard",
|