@richardmcquiston01/dashboard-widgets-toolkit 0.12.0 → 0.13.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/index.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- export { LegacyWidgetDefinition, MAX_REPORTED_PROBLEMS, RefreshOptions, ValidateWidgetDataOptions, WidgetLoader, WidgetLoaderOptions, createWidgetLoader, fromLegacyDefinition, isSafeHref, isSafeImageUrl, upgradeLegacyWidgetData, validateWidgetData, validateWidgetDefinition } from './core.cjs';
2
- export { s as AddPageOptions, t as AlertListItem, A as AlertListWidgetData, u as BarListItem, B as BarListWidgetData, v as BooleanOption, C as CachedPayload, w as ChoiceOption, x as ColorOption, y as ColumnsOption, z as ConflictPolicy, E as DATE_RANGE_PRESETS, F as DEFAULT_COMPARISON_LABEL, H as DEFAULT_CURRENCY, I as DEFAULT_DETAIL_PAGE_SIZE, J as DEFAULT_EMPTY_TEXT, M as DEFAULT_MAX_LAYOUT_BYTES, Q as DEFAULT_PAGE_KEY, U as DEFAULT_PAGE_ROWS, V as DETAIL_MODES, f as DashboardLayout, D as DashboardWidget, X as DateRangeOption, Y as DateRangePreset, Z as DeltaDirection, _ as DeltaSentiment, $ as DetailCell, a0 as DetailColumn, d as DetailData, a1 as DetailMode, a2 as DetailPage, a3 as DetailProvider, c as DetailProviderOptions, a4 as DetailProviders, e as DetailQuery, h as DetailSort, a5 as EMPTY_LAYOUT, a6 as EmptyWidget, a7 as EncodingOptions, a8 as EnforceLocksOptions, a9 as Err, aa as ErrorWidget, ab as FormatOptions, g as GaugeWidgetData, ac as GraphPoint, ad as GraphSeries, G as GraphWidgetData, ae as GridItem, af as KpiDelta, ag as KpiDeltaOptions, K as KpiWidgetData, ah as LAYOUT_ENVELOPE_VERSION, ai as LayoutItem, aj as LayoutPage, k as LayoutPersistence, ak as LayoutPersistenceOptions, al as LoadedLayout, am as LoadingWidget, L as Locale, an as MAX_DETAIL_PAGE_SIZE, ao as MAX_GRAPH_SERIES, ap as MAX_PAGE_ROWS, aq as MAX_PAGE_TITLE_LENGTH, ar as MAX_PARSED_PAGES, as as MAX_TEXT_OPTION_LENGTH, at as MAX_WIDGET_OPTIONS, au as MAX_WIDGET_WIDTH, av as MIN_WIDGET_WIDTH, N as NiceDomain, l as NormalizeOptions, aw as NumberOption, ax as OPTION_KEY_PATTERN, ay as Ok, az as OkWidget, aA as OptionContext, aB as OptionValue, O as OptionValues, P as PageItem, aC as PageOptions, aD as PageRoom, aE as PlacedRow, aF as ProviderOptions, m as ResolveOptions, aG as ResolvedDetailOptions, R as ResolvedTableControls, aH as ResolvedWidget, aI as ResolvedWidgetLock, q as Result, aJ as RetryOptions, aK as SaveOptions, aL as SavedLayout, aM as SortDirection, aN as SortOption, aO as StorageAdapter, aP as StorageLogEvent, aQ as StoreErrorCode, aR as StoreResult, S as StoreScope, aS as StoredValue, aT as TableCell, aU as TableColumn, T as TableWidgetData, aV as TextOption, i as TextWidgetData, aW as VALUE_FORMATS, aX as ValueFormat, aY as WIDGET_FILLS, aZ as WIDGET_KINDS, a_ as WIDGET_OPTION_TYPES, a$ as WIDGET_SIZES, b0 as WIDTH_COLUMNS, b1 as WidgetCache, n as WidgetContext, j as WidgetData, b2 as WidgetDataOf, b as WidgetDefinition, b3 as WidgetDetailOptions, b4 as WidgetEmptyState, a as WidgetFill, p as WidgetKind, b5 as WidgetLock, b6 as WidgetOption, r as WidgetPayload, b7 as WidgetProvider, o as WidgetProviders, W as WidgetSize, b8 as WidgetStatus, b9 as WidgetTableControls, ba as addPage, bb as applyClientOptions, bc as assignPages, bd as baseColumnSpan, be as cacheKeyFor, bf as coerceOptionValue, bg as createLayoutPersistence, bh as defaultDetailQuery, bi as defaultOptionValue, bj as defineWidget, bk as deriveDetailData, bl as describeUnknownError, bm as emptyTextFor, bn as emptyWidget, bo as enforceLocks, bp as err, bq as failedWidget, br as fillColumnSpans, bs as fillWidthSpans, bt as fillsHeight, bu as fillsWidth, bv as finalizeWidget, bw as fitCount, bx as formatCount, by as formatPercentChange, bz as formatValue, bA as hasPages, bB as hiddenWidgets, bC as hideWidget, bD as isClientApplied, bE as isColumnKeyFor, bF as isHidden, bG as isIsoInterval, bH as isMinimized, bI as isWidgetEmptyState, bJ as isWidgetKind, bK as isWidgetVisibleTo, bL as isWidgetWidth, bM as itemWidth, bN as kpiDelta, bO as labelStride, bP as loadingWidgets, bQ as memoryAdapter, bR as minimizeWidget, bS as movePage, bT as moveWidget, bU as moveWidgetBy, bV as moveWidgetDown, bW as moveWidgetToPage, bX as moveWidgetUp, bY as nextPageKey, bZ as niceDomain, b_ as niceStep, b$ as normalizeLayout, c0 as ok, c1 as optionValuesFor, c2 as optionsCacheSuffix, c3 as pageLayout, c4 as pageList, c5 as pageOf, c6 as pageRoom, c7 as pageWidgets, c8 as parseDetailQuery, c9 as parseLayout, ca as parseSortValue, cb as percentChange, cc as placeRows, cd as pruneLayout, ce as queryRows, cf as readOnly, cg as removePage, ch as renamePage, ci as resolveDateRange, cj as resolveDetailOptions, ck as resolveOptionValues, cl as resolvePageKey, cm as resolvePayload, cn as resolveTableControls, co as resolveWidget, cp as resolveWidgetLock, cq as resolveWidgetUnapplied, cr as resolveWidgets, cs as restoreWidget, ct as sameOptionValues, cu as serializeDetailQuery, cv as serializeLayout, cw as shareOf, cx as showWidget, cy as sortDefinitions, cz as sortFromOptions, cA as tableDetailData, cB as toggleHidden, cC as toggleMinimized, cD as usesWidthColumns, cE as utf8Length, cF as validateDetailData, cG as visibleWidgets, cH as widgetsFor, cI as widthForSize, cJ as withEncoding, cK as withFallback, cL as withLogging, cM as withPageLayout, cN as withPrefix, cO as withReadCache, cP as withRetry } from './storage-VaaysVnZ.cjs';
1
+ export { LegacyWidgetDefinition, MAX_REPORTED_PROBLEMS, RefreshOptions, THEME_TOKEN_VARIABLES, ThemeColorKey, ThemeLengthKey, ThemeMode, ThemeOptions, ThemeTokenKey, ThemeTokens, ValidateWidgetDataOptions, WidgetLoader, WidgetLoaderOptions, WidgetThemeStyles, createTheme, createWidgetLoader, fromLegacyDefinition, isSafeHref, isSafeImageUrl, upgradeLegacyWidgetData, validateWidgetData, validateWidgetDefinition } from './core.cjs';
2
+ export { s as AddPageOptions, t as AlertListItem, A as AlertListWidgetData, u as BarListItem, B as BarListWidgetData, v as BooleanOption, C as CachedPayload, w as ChoiceOption, x as ColorOption, y as ColumnsOption, z as ConflictPolicy, E as DATE_RANGE_PRESETS, F as DEFAULT_COMPARISON_LABEL, H as DEFAULT_CURRENCY, I as DEFAULT_DETAIL_PAGE_SIZE, J as DEFAULT_EMPTY_TEXT, M as DEFAULT_MAX_LAYOUT_BYTES, Q as DEFAULT_PAGE_KEY, U as DEFAULT_PAGE_ROWS, V as DETAIL_MODES, f as DashboardLayout, D as DashboardWidget, X as DateRangeOption, Y as DateRangePreset, Z as DeltaDirection, _ as DeltaSentiment, $ as DetailCell, a0 as DetailColumn, d as DetailData, a1 as DetailMode, a2 as DetailPage, a3 as DetailProvider, c as DetailProviderOptions, a4 as DetailProviders, e as DetailQuery, h as DetailSort, a5 as EMPTY_LAYOUT, a6 as EmptyWidget, a7 as EncodingOptions, a8 as EnforceLocksOptions, a9 as Err, aa as ErrorWidget, ab as FormatOptions, g as GaugeWidgetData, ac as GraphPoint, ad as GraphSeries, G as GraphWidgetData, ae as GridItem, af as KpiDelta, ag as KpiDeltaOptions, K as KpiWidgetData, ah as LAYOUT_ENVELOPE_VERSION, ai as LayoutItem, aj as LayoutPage, k as LayoutPersistence, ak as LayoutPersistenceOptions, al as LoadedLayout, am as LoadingWidget, L as Locale, an as MAX_DETAIL_PAGE_SIZE, ao as MAX_GRAPH_SERIES, ap as MAX_PAGE_ROWS, aq as MAX_PAGE_TITLE_LENGTH, ar as MAX_PARSED_PAGES, as as MAX_TEXT_OPTION_LENGTH, at as MAX_WIDGET_OPTIONS, au as MAX_WIDGET_WIDTH, av as MIN_WIDGET_WIDTH, N as NiceDomain, l as NormalizeOptions, aw as NumberOption, ax as OPTION_KEY_PATTERN, ay as Ok, az as OkWidget, aA as OptionContext, aB as OptionValue, O as OptionValues, P as PageItem, aC as PageOptions, aD as PageRoom, aE as PlacedRow, aF as ProviderOptions, m as ResolveOptions, aG as ResolvedDetailOptions, R as ResolvedTableControls, aH as ResolvedWidget, aI as ResolvedWidgetLock, p as Result, aJ as RetryOptions, aK as SaveOptions, aL as SavedLayout, aM as SortDirection, aN as SortOption, aO as StorageAdapter, aP as StorageLogEvent, aQ as StoreErrorCode, aR as StoreResult, S as StoreScope, aS as StoredValue, aT as TableCell, aU as TableColumn, T as TableWidgetData, aV as TextOption, i as TextWidgetData, aW as VALUE_FORMATS, aX as ValueFormat, aY as WIDGET_FILLS, aZ as WIDGET_KINDS, a_ as WIDGET_OPTION_TYPES, a$ as WIDGET_SIZES, b0 as WIDTH_COLUMNS, b1 as WidgetCache, n as WidgetContext, j as WidgetData, b2 as WidgetDataOf, b as WidgetDefinition, b3 as WidgetDetailOptions, b4 as WidgetEmptyState, a as WidgetFill, q as WidgetKind, b5 as WidgetLock, b6 as WidgetOption, r as WidgetPayload, b7 as WidgetProvider, o as WidgetProviders, W as WidgetSize, b8 as WidgetStatus, b9 as WidgetTableControls, ba as addPage, bb as applyClientOptions, bc as assignPages, bd as baseColumnSpan, be as cacheKeyFor, bf as coerceOptionValue, bg as createLayoutPersistence, bh as defaultDetailQuery, bi as defaultOptionValue, bj as defineWidget, bk as deriveDetailData, bl as describeUnknownError, bm as emptyTextFor, bn as emptyWidget, bo as enforceLocks, bp as err, bq as failedWidget, br as fillColumnSpans, bs as fillWidthSpans, bt as fillsHeight, bu as fillsWidth, bv as finalizeWidget, bw as fitCount, bx as formatCount, by as formatPercentChange, bz as formatValue, bA as hasPages, bB as hiddenWidgets, bC as hideWidget, bD as isClientApplied, bE as isColumnKeyFor, bF as isHidden, bG as isIsoInterval, bH as isMinimized, bI as isWidgetEmptyState, bJ as isWidgetKind, bK as isWidgetVisibleTo, bL as isWidgetWidth, bM as itemWidth, bN as kpiDelta, bO as labelStride, bP as loadingWidgets, bQ as memoryAdapter, bR as minimizeWidget, bS as movePage, bT as moveWidget, bU as moveWidgetBy, bV as moveWidgetDown, bW as moveWidgetToPage, bX as moveWidgetUp, bY as nextPageKey, bZ as niceDomain, b_ as niceStep, b$ as normalizeLayout, c0 as ok, c1 as optionValuesFor, c2 as optionsCacheSuffix, c3 as pageLayout, c4 as pageList, c5 as pageOf, c6 as pageRoom, c7 as pageWidgets, c8 as parseDetailQuery, c9 as parseLayout, ca as parseSortValue, cb as percentChange, cc as placeRows, cd as pruneLayout, ce as queryRows, cf as readOnly, cg as removePage, ch as renamePage, ci as resolveDateRange, cj as resolveDetailOptions, ck as resolveOptionValues, cl as resolvePageKey, cm as resolvePayload, cn as resolveTableControls, co as resolveWidget, cp as resolveWidgetLock, cq as resolveWidgetUnapplied, cr as resolveWidgets, cs as restoreWidget, ct as sameOptionValues, cu as serializeDetailQuery, cv as serializeLayout, cw as shareOf, cx as showWidget, cy as sortDefinitions, cz as sortFromOptions, cA as tableDetailData, cB as toggleHidden, cC as toggleMinimized, cD as usesWidthColumns, cE as utf8Length, cF as validateDetailData, cG as visibleWidgets, cH as widgetsFor, cI as widthForSize, cJ as withEncoding, cK as withFallback, cL as withLogging, cM as withPageLayout, cN as withPrefix, cO as withReadCache, cP as withRetry } from './storage-DNB7gjvT.cjs';
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { LegacyWidgetDefinition, MAX_REPORTED_PROBLEMS, RefreshOptions, ValidateWidgetDataOptions, WidgetLoader, WidgetLoaderOptions, createWidgetLoader, fromLegacyDefinition, isSafeHref, isSafeImageUrl, upgradeLegacyWidgetData, validateWidgetData, validateWidgetDefinition } from './core.js';
2
- export { s as AddPageOptions, t as AlertListItem, A as AlertListWidgetData, u as BarListItem, B as BarListWidgetData, v as BooleanOption, C as CachedPayload, w as ChoiceOption, x as ColorOption, y as ColumnsOption, z as ConflictPolicy, E as DATE_RANGE_PRESETS, F as DEFAULT_COMPARISON_LABEL, H as DEFAULT_CURRENCY, I as DEFAULT_DETAIL_PAGE_SIZE, J as DEFAULT_EMPTY_TEXT, M as DEFAULT_MAX_LAYOUT_BYTES, Q as DEFAULT_PAGE_KEY, U as DEFAULT_PAGE_ROWS, V as DETAIL_MODES, f as DashboardLayout, D as DashboardWidget, X as DateRangeOption, Y as DateRangePreset, Z as DeltaDirection, _ as DeltaSentiment, $ as DetailCell, a0 as DetailColumn, d as DetailData, a1 as DetailMode, a2 as DetailPage, a3 as DetailProvider, c as DetailProviderOptions, a4 as DetailProviders, e as DetailQuery, h as DetailSort, a5 as EMPTY_LAYOUT, a6 as EmptyWidget, a7 as EncodingOptions, a8 as EnforceLocksOptions, a9 as Err, aa as ErrorWidget, ab as FormatOptions, g as GaugeWidgetData, ac as GraphPoint, ad as GraphSeries, G as GraphWidgetData, ae as GridItem, af as KpiDelta, ag as KpiDeltaOptions, K as KpiWidgetData, ah as LAYOUT_ENVELOPE_VERSION, ai as LayoutItem, aj as LayoutPage, k as LayoutPersistence, ak as LayoutPersistenceOptions, al as LoadedLayout, am as LoadingWidget, L as Locale, an as MAX_DETAIL_PAGE_SIZE, ao as MAX_GRAPH_SERIES, ap as MAX_PAGE_ROWS, aq as MAX_PAGE_TITLE_LENGTH, ar as MAX_PARSED_PAGES, as as MAX_TEXT_OPTION_LENGTH, at as MAX_WIDGET_OPTIONS, au as MAX_WIDGET_WIDTH, av as MIN_WIDGET_WIDTH, N as NiceDomain, l as NormalizeOptions, aw as NumberOption, ax as OPTION_KEY_PATTERN, ay as Ok, az as OkWidget, aA as OptionContext, aB as OptionValue, O as OptionValues, P as PageItem, aC as PageOptions, aD as PageRoom, aE as PlacedRow, aF as ProviderOptions, m as ResolveOptions, aG as ResolvedDetailOptions, R as ResolvedTableControls, aH as ResolvedWidget, aI as ResolvedWidgetLock, q as Result, aJ as RetryOptions, aK as SaveOptions, aL as SavedLayout, aM as SortDirection, aN as SortOption, aO as StorageAdapter, aP as StorageLogEvent, aQ as StoreErrorCode, aR as StoreResult, S as StoreScope, aS as StoredValue, aT as TableCell, aU as TableColumn, T as TableWidgetData, aV as TextOption, i as TextWidgetData, aW as VALUE_FORMATS, aX as ValueFormat, aY as WIDGET_FILLS, aZ as WIDGET_KINDS, a_ as WIDGET_OPTION_TYPES, a$ as WIDGET_SIZES, b0 as WIDTH_COLUMNS, b1 as WidgetCache, n as WidgetContext, j as WidgetData, b2 as WidgetDataOf, b as WidgetDefinition, b3 as WidgetDetailOptions, b4 as WidgetEmptyState, a as WidgetFill, p as WidgetKind, b5 as WidgetLock, b6 as WidgetOption, r as WidgetPayload, b7 as WidgetProvider, o as WidgetProviders, W as WidgetSize, b8 as WidgetStatus, b9 as WidgetTableControls, ba as addPage, bb as applyClientOptions, bc as assignPages, bd as baseColumnSpan, be as cacheKeyFor, bf as coerceOptionValue, bg as createLayoutPersistence, bh as defaultDetailQuery, bi as defaultOptionValue, bj as defineWidget, bk as deriveDetailData, bl as describeUnknownError, bm as emptyTextFor, bn as emptyWidget, bo as enforceLocks, bp as err, bq as failedWidget, br as fillColumnSpans, bs as fillWidthSpans, bt as fillsHeight, bu as fillsWidth, bv as finalizeWidget, bw as fitCount, bx as formatCount, by as formatPercentChange, bz as formatValue, bA as hasPages, bB as hiddenWidgets, bC as hideWidget, bD as isClientApplied, bE as isColumnKeyFor, bF as isHidden, bG as isIsoInterval, bH as isMinimized, bI as isWidgetEmptyState, bJ as isWidgetKind, bK as isWidgetVisibleTo, bL as isWidgetWidth, bM as itemWidth, bN as kpiDelta, bO as labelStride, bP as loadingWidgets, bQ as memoryAdapter, bR as minimizeWidget, bS as movePage, bT as moveWidget, bU as moveWidgetBy, bV as moveWidgetDown, bW as moveWidgetToPage, bX as moveWidgetUp, bY as nextPageKey, bZ as niceDomain, b_ as niceStep, b$ as normalizeLayout, c0 as ok, c1 as optionValuesFor, c2 as optionsCacheSuffix, c3 as pageLayout, c4 as pageList, c5 as pageOf, c6 as pageRoom, c7 as pageWidgets, c8 as parseDetailQuery, c9 as parseLayout, ca as parseSortValue, cb as percentChange, cc as placeRows, cd as pruneLayout, ce as queryRows, cf as readOnly, cg as removePage, ch as renamePage, ci as resolveDateRange, cj as resolveDetailOptions, ck as resolveOptionValues, cl as resolvePageKey, cm as resolvePayload, cn as resolveTableControls, co as resolveWidget, cp as resolveWidgetLock, cq as resolveWidgetUnapplied, cr as resolveWidgets, cs as restoreWidget, ct as sameOptionValues, cu as serializeDetailQuery, cv as serializeLayout, cw as shareOf, cx as showWidget, cy as sortDefinitions, cz as sortFromOptions, cA as tableDetailData, cB as toggleHidden, cC as toggleMinimized, cD as usesWidthColumns, cE as utf8Length, cF as validateDetailData, cG as visibleWidgets, cH as widgetsFor, cI as widthForSize, cJ as withEncoding, cK as withFallback, cL as withLogging, cM as withPageLayout, cN as withPrefix, cO as withReadCache, cP as withRetry } from './storage-VaaysVnZ.js';
1
+ export { LegacyWidgetDefinition, MAX_REPORTED_PROBLEMS, RefreshOptions, THEME_TOKEN_VARIABLES, ThemeColorKey, ThemeLengthKey, ThemeMode, ThemeOptions, ThemeTokenKey, ThemeTokens, ValidateWidgetDataOptions, WidgetLoader, WidgetLoaderOptions, WidgetThemeStyles, createTheme, createWidgetLoader, fromLegacyDefinition, isSafeHref, isSafeImageUrl, upgradeLegacyWidgetData, validateWidgetData, validateWidgetDefinition } from './core.js';
2
+ export { s as AddPageOptions, t as AlertListItem, A as AlertListWidgetData, u as BarListItem, B as BarListWidgetData, v as BooleanOption, C as CachedPayload, w as ChoiceOption, x as ColorOption, y as ColumnsOption, z as ConflictPolicy, E as DATE_RANGE_PRESETS, F as DEFAULT_COMPARISON_LABEL, H as DEFAULT_CURRENCY, I as DEFAULT_DETAIL_PAGE_SIZE, J as DEFAULT_EMPTY_TEXT, M as DEFAULT_MAX_LAYOUT_BYTES, Q as DEFAULT_PAGE_KEY, U as DEFAULT_PAGE_ROWS, V as DETAIL_MODES, f as DashboardLayout, D as DashboardWidget, X as DateRangeOption, Y as DateRangePreset, Z as DeltaDirection, _ as DeltaSentiment, $ as DetailCell, a0 as DetailColumn, d as DetailData, a1 as DetailMode, a2 as DetailPage, a3 as DetailProvider, c as DetailProviderOptions, a4 as DetailProviders, e as DetailQuery, h as DetailSort, a5 as EMPTY_LAYOUT, a6 as EmptyWidget, a7 as EncodingOptions, a8 as EnforceLocksOptions, a9 as Err, aa as ErrorWidget, ab as FormatOptions, g as GaugeWidgetData, ac as GraphPoint, ad as GraphSeries, G as GraphWidgetData, ae as GridItem, af as KpiDelta, ag as KpiDeltaOptions, K as KpiWidgetData, ah as LAYOUT_ENVELOPE_VERSION, ai as LayoutItem, aj as LayoutPage, k as LayoutPersistence, ak as LayoutPersistenceOptions, al as LoadedLayout, am as LoadingWidget, L as Locale, an as MAX_DETAIL_PAGE_SIZE, ao as MAX_GRAPH_SERIES, ap as MAX_PAGE_ROWS, aq as MAX_PAGE_TITLE_LENGTH, ar as MAX_PARSED_PAGES, as as MAX_TEXT_OPTION_LENGTH, at as MAX_WIDGET_OPTIONS, au as MAX_WIDGET_WIDTH, av as MIN_WIDGET_WIDTH, N as NiceDomain, l as NormalizeOptions, aw as NumberOption, ax as OPTION_KEY_PATTERN, ay as Ok, az as OkWidget, aA as OptionContext, aB as OptionValue, O as OptionValues, P as PageItem, aC as PageOptions, aD as PageRoom, aE as PlacedRow, aF as ProviderOptions, m as ResolveOptions, aG as ResolvedDetailOptions, R as ResolvedTableControls, aH as ResolvedWidget, aI as ResolvedWidgetLock, p as Result, aJ as RetryOptions, aK as SaveOptions, aL as SavedLayout, aM as SortDirection, aN as SortOption, aO as StorageAdapter, aP as StorageLogEvent, aQ as StoreErrorCode, aR as StoreResult, S as StoreScope, aS as StoredValue, aT as TableCell, aU as TableColumn, T as TableWidgetData, aV as TextOption, i as TextWidgetData, aW as VALUE_FORMATS, aX as ValueFormat, aY as WIDGET_FILLS, aZ as WIDGET_KINDS, a_ as WIDGET_OPTION_TYPES, a$ as WIDGET_SIZES, b0 as WIDTH_COLUMNS, b1 as WidgetCache, n as WidgetContext, j as WidgetData, b2 as WidgetDataOf, b as WidgetDefinition, b3 as WidgetDetailOptions, b4 as WidgetEmptyState, a as WidgetFill, q as WidgetKind, b5 as WidgetLock, b6 as WidgetOption, r as WidgetPayload, b7 as WidgetProvider, o as WidgetProviders, W as WidgetSize, b8 as WidgetStatus, b9 as WidgetTableControls, ba as addPage, bb as applyClientOptions, bc as assignPages, bd as baseColumnSpan, be as cacheKeyFor, bf as coerceOptionValue, bg as createLayoutPersistence, bh as defaultDetailQuery, bi as defaultOptionValue, bj as defineWidget, bk as deriveDetailData, bl as describeUnknownError, bm as emptyTextFor, bn as emptyWidget, bo as enforceLocks, bp as err, bq as failedWidget, br as fillColumnSpans, bs as fillWidthSpans, bt as fillsHeight, bu as fillsWidth, bv as finalizeWidget, bw as fitCount, bx as formatCount, by as formatPercentChange, bz as formatValue, bA as hasPages, bB as hiddenWidgets, bC as hideWidget, bD as isClientApplied, bE as isColumnKeyFor, bF as isHidden, bG as isIsoInterval, bH as isMinimized, bI as isWidgetEmptyState, bJ as isWidgetKind, bK as isWidgetVisibleTo, bL as isWidgetWidth, bM as itemWidth, bN as kpiDelta, bO as labelStride, bP as loadingWidgets, bQ as memoryAdapter, bR as minimizeWidget, bS as movePage, bT as moveWidget, bU as moveWidgetBy, bV as moveWidgetDown, bW as moveWidgetToPage, bX as moveWidgetUp, bY as nextPageKey, bZ as niceDomain, b_ as niceStep, b$ as normalizeLayout, c0 as ok, c1 as optionValuesFor, c2 as optionsCacheSuffix, c3 as pageLayout, c4 as pageList, c5 as pageOf, c6 as pageRoom, c7 as pageWidgets, c8 as parseDetailQuery, c9 as parseLayout, ca as parseSortValue, cb as percentChange, cc as placeRows, cd as pruneLayout, ce as queryRows, cf as readOnly, cg as removePage, ch as renamePage, ci as resolveDateRange, cj as resolveDetailOptions, ck as resolveOptionValues, cl as resolvePageKey, cm as resolvePayload, cn as resolveTableControls, co as resolveWidget, cp as resolveWidgetLock, cq as resolveWidgetUnapplied, cr as resolveWidgets, cs as restoreWidget, ct as sameOptionValues, cu as serializeDetailQuery, cv as serializeLayout, cw as shareOf, cx as showWidget, cy as sortDefinitions, cz as sortFromOptions, cA as tableDetailData, cB as toggleHidden, cC as toggleMinimized, cD as usesWidthColumns, cE as utf8Length, cF as validateDetailData, cG as visibleWidgets, cH as widgetsFor, cI as widthForSize, cJ as withEncoding, cK as withFallback, cL as withLogging, cM as withPageLayout, cN as withPrefix, cO as withReadCache, cP as withRetry } from './storage-DNB7gjvT.js';
package/dist/index.js CHANGED
@@ -3234,6 +3234,255 @@ function createLayoutPersistence(adapter, options = {}) {
3234
3234
  };
3235
3235
  }
3236
3236
 
3237
- export { DATE_RANGE_PRESETS, DEFAULT_COMPARISON_LABEL, DEFAULT_CURRENCY, DEFAULT_DETAIL_PAGE_SIZE, DEFAULT_EMPTY_TEXT, DEFAULT_MAX_LAYOUT_BYTES, DEFAULT_PAGE_KEY, DEFAULT_PAGE_ROWS, DETAIL_MODES, EMPTY_LAYOUT, LAYOUT_ENVELOPE_VERSION, MAX_DETAIL_PAGE_SIZE, MAX_GRAPH_SERIES, MAX_PAGE_ROWS, MAX_PAGE_TITLE_LENGTH, MAX_PARSED_PAGES, MAX_REPORTED_PROBLEMS, MAX_TEXT_OPTION_LENGTH, MAX_WIDGET_OPTIONS, MAX_WIDGET_WIDTH, MIN_WIDGET_WIDTH, OPTION_KEY_PATTERN, VALUE_FORMATS, WIDGET_FILLS, WIDGET_KINDS, WIDGET_OPTION_TYPES, WIDGET_SIZES, WIDTH_COLUMNS, addPage, applyClientOptions, assignPages, baseColumnSpan, cacheKeyFor, coerceOptionValue, createLayoutPersistence, createWidgetLoader, defaultDetailQuery, defaultOptionValue, defineWidget, deriveDetailData, describeUnknownError, emptyTextFor, emptyWidget, enforceLocks, err, failedWidget, fillColumnSpans, fillWidthSpans, fillsHeight, fillsWidth, finalizeWidget, fitCount, formatCount, formatPercentChange, formatValue, fromLegacyDefinition, hasPages, hiddenWidgets, hideWidget, isClientApplied, isColumnKeyFor, isHidden, isIsoInterval, isMinimized, isSafeHref, isSafeImageUrl, isWidgetEmptyState, isWidgetKind, isWidgetVisibleTo, isWidgetWidth, itemWidth, kpiDelta, labelStride, loadingWidgets, memoryAdapter, minimizeWidget, movePage, moveWidget, moveWidgetBy, moveWidgetDown, moveWidgetToPage, moveWidgetUp, nextPageKey, niceDomain, niceStep, normalizeLayout, ok, optionValuesFor, optionsCacheSuffix, pageLayout, pageList, pageOf, pageRoom, pageWidgets, parseDetailQuery, parseLayout, parseSortValue, percentChange, placeRows, pruneLayout, queryRows, readOnly, removePage, renamePage, resolveDateRange, resolveDetailOptions, resolveOptionValues, resolvePageKey, resolvePayload, resolveTableControls, resolveWidget, resolveWidgetLock, resolveWidgetUnapplied, resolveWidgets, restoreWidget, sameOptionValues, serializeDetailQuery, serializeLayout, shareOf, showWidget, sortDefinitions, sortFromOptions, tableDetailData, toggleHidden, toggleMinimized, upgradeLegacyWidgetData, usesWidthColumns, utf8Length, validateDetailData, validateWidgetData, validateWidgetDefinition, visibleWidgets, widgetsFor, widthForSize, withEncoding, withFallback, withLogging, withPageLayout, withPrefix, withReadCache, withRetry };
3237
+ // src/core/theme.ts
3238
+ var THEME_TOKEN_VARIABLES = {
3239
+ font: "--dwt-font",
3240
+ surface: "--dwt-surface",
3241
+ page: "--dwt-page",
3242
+ text: "--dwt-text",
3243
+ textSecondary: "--dwt-text-secondary",
3244
+ textMuted: "--dwt-text-muted",
3245
+ border: "--dwt-border",
3246
+ grid: "--dwt-grid",
3247
+ baseline: "--dwt-baseline",
3248
+ crosshair: "--dwt-crosshair",
3249
+ link: "--dwt-link",
3250
+ focus: "--dwt-focus",
3251
+ good: "--dwt-good",
3252
+ bad: "--dwt-bad",
3253
+ meterTrack: "--dwt-meter-track",
3254
+ barTrack: "--dwt-bar-track",
3255
+ buttonHover: "--dwt-button-hover",
3256
+ radius: "--dwt-radius",
3257
+ gap: "--dwt-gap",
3258
+ padding: "--dwt-padding",
3259
+ minColumn: "--dwt-min-column"
3260
+ };
3261
+ var LENGTH_KEYS = /* @__PURE__ */ new Set([
3262
+ "radius",
3263
+ "gap",
3264
+ "padding",
3265
+ "minColumn"
3266
+ ]);
3267
+ function kindOf(key) {
3268
+ if (key === "font") {
3269
+ return "font";
3270
+ }
3271
+ return LENGTH_KEYS.has(key) ? "length" : "color";
3272
+ }
3273
+ var NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
3274
+ var SCOPE_PATTERN = /^[A-Za-z0-9_\-[\]=.# '"]+$/;
3275
+ var HEX_COLOR = /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
3276
+ var COLOR_FUNCTION = /^(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\(.+\)$/i;
3277
+ var VAR_REFERENCE = /^var\(\s*--[A-Za-z0-9_-]+\s*(?:,.+)?\)$/;
3278
+ var COLOR_KEYWORD = /^[A-Za-z]+$/;
3279
+ var LENGTH_VALUE = /^(?:0|-?(?:\d+\.?\d*|\.\d+)(?:px|rem|em|%|ch|vw|vh|cqw|cqh))$/;
3280
+ var LENGTH_FUNCTION = /^(?:calc|min|max|clamp)\(.+\)$/i;
3281
+ var FONT_VALUE = /^[A-Za-z0-9 ,'"_-]+$/;
3282
+ function unsafeReason(value) {
3283
+ if ([...value].some(
3284
+ (character) => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127
3285
+ )) {
3286
+ return "contains a control character or line break";
3287
+ }
3288
+ if (/[;{}<>\\@]/.test(value)) {
3289
+ return "contains one of ; { } < > \\ @";
3290
+ }
3291
+ const lower = value.toLowerCase();
3292
+ if (lower.includes("/*") || lower.includes("*/")) {
3293
+ return "contains a comment marker";
3294
+ }
3295
+ if (lower.includes("url(") || lower.includes("expression(")) {
3296
+ return "contains url( or expression(";
3297
+ }
3298
+ let depth = 0;
3299
+ for (const character of value) {
3300
+ if (character === "(") {
3301
+ depth += 1;
3302
+ } else if (character === ")") {
3303
+ depth -= 1;
3304
+ if (depth < 0) {
3305
+ return "has unbalanced parentheses";
3306
+ }
3307
+ }
3308
+ }
3309
+ return depth === 0 ? null : "has unbalanced parentheses";
3310
+ }
3311
+ function countOf(value, character) {
3312
+ return value.split(character).length - 1;
3313
+ }
3314
+ function invalidReason(kind, value) {
3315
+ if (value !== value.trim() || value === "") {
3316
+ return "must not be empty or have leading or trailing spaces";
3317
+ }
3318
+ if (kind === "font") {
3319
+ if (!FONT_VALUE.test(value)) {
3320
+ return "allows only letters, digits, spaces, commas, hyphens, underscores and quotes";
3321
+ }
3322
+ if (countOf(value, "'") % 2 !== 0 || countOf(value, '"') % 2 !== 0) {
3323
+ return "has an unclosed quote";
3324
+ }
3325
+ return null;
3326
+ }
3327
+ const unsafe = unsafeReason(value);
3328
+ if (unsafe !== null) {
3329
+ return unsafe;
3330
+ }
3331
+ if (value.includes("'") || value.includes('"')) {
3332
+ return "must not contain quotes";
3333
+ }
3334
+ if (kind === "color") {
3335
+ const valid2 = HEX_COLOR.test(value) || COLOR_FUNCTION.test(value) || VAR_REFERENCE.test(value) || COLOR_KEYWORD.test(value);
3336
+ return valid2 ? null : "is not a color (use #hex, rgb(), hsl(), oklch() and similar, var(--name) or a keyword)";
3337
+ }
3338
+ const valid = LENGTH_VALUE.test(value) || LENGTH_FUNCTION.test(value) || VAR_REFERENCE.test(value);
3339
+ return valid ? null : "is not a length (use a number with px, rem, em, %, ch, vw or vh, 0, calc(), min(), max(), clamp() or var(--name))";
3340
+ }
3341
+ function collectVariables(themeName, mode, tokens) {
3342
+ const variables = {};
3343
+ if (tokens === void 0) {
3344
+ return ok(variables);
3345
+ }
3346
+ const label = (key) => `createTheme "${themeName}": ${mode}.${key}`;
3347
+ const knownKeys = [
3348
+ ...Object.keys(THEME_TOKEN_VARIABLES),
3349
+ "series"
3350
+ ];
3351
+ for (const key of Object.keys(tokens)) {
3352
+ if (!knownKeys.includes(key)) {
3353
+ return err(
3354
+ `${label(key)} is not a theme token. Known tokens: ${knownKeys.join(", ")}.`
3355
+ );
3356
+ }
3357
+ }
3358
+ for (const key of Object.keys(THEME_TOKEN_VARIABLES)) {
3359
+ const value = tokens[key];
3360
+ if (value === void 0) {
3361
+ continue;
3362
+ }
3363
+ if (typeof value !== "string") {
3364
+ return err(`${label(key)} must be a string, got ${typeof value}.`);
3365
+ }
3366
+ const reason = invalidReason(kindOf(key), value);
3367
+ if (reason !== null) {
3368
+ return err(`${label(key)} "${value}" ${reason}.`);
3369
+ }
3370
+ variables[THEME_TOKEN_VARIABLES[key]] = value;
3371
+ }
3372
+ const series = tokens.series;
3373
+ if (series !== void 0) {
3374
+ if (!Array.isArray(series) || series.length === 0) {
3375
+ return err(`${label("series")} must be a non-empty array of colors.`);
3376
+ }
3377
+ if (series.length > MAX_GRAPH_SERIES) {
3378
+ return err(
3379
+ `${label("series")} has ${series.length} colors; charts draw at most ${MAX_GRAPH_SERIES} series.`
3380
+ );
3381
+ }
3382
+ for (const [index, value] of series.entries()) {
3383
+ const reason = typeof value === "string" ? invalidReason("color", value) : "must be a string";
3384
+ if (reason !== null) {
3385
+ return err(
3386
+ `${label(`series[${index}]`)} "${String(value)}" ${reason}.`
3387
+ );
3388
+ }
3389
+ variables[`--dwt-series-${index + 1}`] = value;
3390
+ }
3391
+ }
3392
+ return ok(variables);
3393
+ }
3394
+ function declarations(variables) {
3395
+ return Object.entries(variables).map(([variable, value]) => ` ${variable}: ${value};`).join("\n");
3396
+ }
3397
+ function targets(prefix, scope) {
3398
+ const lead = prefix === "" ? "" : `${prefix} `;
3399
+ return `${lead}${scope} .dwt-dashboard,
3400
+ ${lead}${scope} .dwt-card`;
3401
+ }
3402
+ function rule(prefix, scope, variables) {
3403
+ return `${targets(prefix, scope)} {
3404
+ ${declarations(variables)}
3405
+ }`;
3406
+ }
3407
+ function createTheme(options) {
3408
+ const name = options.name;
3409
+ if (typeof name !== "string" || !NAME_PATTERN.test(name)) {
3410
+ return err(
3411
+ `createTheme: name "${String(name)}" must start with a lower-case letter and contain only lower-case letters, digits and hyphens.`
3412
+ );
3413
+ }
3414
+ const scope = (options.scope ?? `[data-dwt-theme='${name}']`).trim();
3415
+ if (scope === "" || !SCOPE_PATTERN.test(scope)) {
3416
+ return err(
3417
+ `createTheme "${name}": scope "${scope}" must be a selector of letters, digits and _ - [ ] = . # ' " or spaces (no commas, colons or combinators).`
3418
+ );
3419
+ }
3420
+ const modes = ["base", "light", "dark"];
3421
+ const variables = {
3422
+ base: {},
3423
+ light: {},
3424
+ dark: {}
3425
+ };
3426
+ for (const mode of modes) {
3427
+ const collected = collectVariables(
3428
+ name,
3429
+ mode,
3430
+ options[mode]
3431
+ );
3432
+ if (!collected.ok) {
3433
+ return collected;
3434
+ }
3435
+ variables[mode] = collected.value;
3436
+ }
3437
+ if (modes.every((mode) => Object.keys(variables[mode]).length === 0)) {
3438
+ return err(
3439
+ `createTheme "${name}": no tokens were set. Pass at least one value in base, light or dark.`
3440
+ );
3441
+ }
3442
+ const blocks = [];
3443
+ if (Object.keys(variables.base).length > 0) {
3444
+ blocks.push(rule("", scope, variables.base));
3445
+ }
3446
+ if (Object.keys(variables.light).length > 0) {
3447
+ blocks.push(
3448
+ rule(":root:where([data-theme='light'])", scope, variables.light)
3449
+ );
3450
+ blocks.push(
3451
+ `@media (prefers-color-scheme: light) {
3452
+ ${indent(
3453
+ rule(
3454
+ ":root:where(:not([data-theme='dark'], .dark))",
3455
+ scope,
3456
+ variables.light
3457
+ )
3458
+ )}
3459
+ }`
3460
+ );
3461
+ }
3462
+ if (Object.keys(variables.dark).length > 0) {
3463
+ blocks.push(
3464
+ rule(":root:where([data-theme='dark'], .dark)", scope, variables.dark)
3465
+ );
3466
+ blocks.push(
3467
+ `@media (prefers-color-scheme: dark) {
3468
+ ${indent(
3469
+ rule(":root:where(:not([data-theme='light']))", scope, variables.dark)
3470
+ )}
3471
+ }`
3472
+ );
3473
+ }
3474
+ return ok({
3475
+ name,
3476
+ scope,
3477
+ css: `${blocks.join("\n\n")}
3478
+ `,
3479
+ variables
3480
+ });
3481
+ }
3482
+ function indent(block) {
3483
+ return block.split("\n").map((line) => ` ${line}`).join("\n");
3484
+ }
3485
+
3486
+ export { DATE_RANGE_PRESETS, DEFAULT_COMPARISON_LABEL, DEFAULT_CURRENCY, DEFAULT_DETAIL_PAGE_SIZE, DEFAULT_EMPTY_TEXT, DEFAULT_MAX_LAYOUT_BYTES, DEFAULT_PAGE_KEY, DEFAULT_PAGE_ROWS, DETAIL_MODES, EMPTY_LAYOUT, LAYOUT_ENVELOPE_VERSION, MAX_DETAIL_PAGE_SIZE, MAX_GRAPH_SERIES, MAX_PAGE_ROWS, MAX_PAGE_TITLE_LENGTH, MAX_PARSED_PAGES, MAX_REPORTED_PROBLEMS, MAX_TEXT_OPTION_LENGTH, MAX_WIDGET_OPTIONS, MAX_WIDGET_WIDTH, MIN_WIDGET_WIDTH, OPTION_KEY_PATTERN, THEME_TOKEN_VARIABLES, VALUE_FORMATS, WIDGET_FILLS, WIDGET_KINDS, WIDGET_OPTION_TYPES, WIDGET_SIZES, WIDTH_COLUMNS, addPage, applyClientOptions, assignPages, baseColumnSpan, cacheKeyFor, coerceOptionValue, createLayoutPersistence, createTheme, createWidgetLoader, defaultDetailQuery, defaultOptionValue, defineWidget, deriveDetailData, describeUnknownError, emptyTextFor, emptyWidget, enforceLocks, err, failedWidget, fillColumnSpans, fillWidthSpans, fillsHeight, fillsWidth, finalizeWidget, fitCount, formatCount, formatPercentChange, formatValue, fromLegacyDefinition, hasPages, hiddenWidgets, hideWidget, isClientApplied, isColumnKeyFor, isHidden, isIsoInterval, isMinimized, isSafeHref, isSafeImageUrl, isWidgetEmptyState, isWidgetKind, isWidgetVisibleTo, isWidgetWidth, itemWidth, kpiDelta, labelStride, loadingWidgets, memoryAdapter, minimizeWidget, movePage, moveWidget, moveWidgetBy, moveWidgetDown, moveWidgetToPage, moveWidgetUp, nextPageKey, niceDomain, niceStep, normalizeLayout, ok, optionValuesFor, optionsCacheSuffix, pageLayout, pageList, pageOf, pageRoom, pageWidgets, parseDetailQuery, parseLayout, parseSortValue, percentChange, placeRows, pruneLayout, queryRows, readOnly, removePage, renamePage, resolveDateRange, resolveDetailOptions, resolveOptionValues, resolvePageKey, resolvePayload, resolveTableControls, resolveWidget, resolveWidgetLock, resolveWidgetUnapplied, resolveWidgets, restoreWidget, sameOptionValues, serializeDetailQuery, serializeLayout, shareOf, showWidget, sortDefinitions, sortFromOptions, tableDetailData, toggleHidden, toggleMinimized, upgradeLegacyWidgetData, usesWidthColumns, utf8Length, validateDetailData, validateWidgetData, validateWidgetDefinition, visibleWidgets, widgetsFor, widthForSize, withEncoding, withFallback, withLogging, withPageLayout, withPrefix, withReadCache, withRetry };
3238
3487
  //# sourceMappingURL=index.js.map
3239
3488
  //# sourceMappingURL=index.js.map