@akcelik/strct 5.3.0 → 5.4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akcelik/strct",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "UIStruct — a standalone Angular component library with a tokenised, multi-palette theme system, built for datacenter / infrastructure management UIs.",
5
5
  "author": "Serkan Akcelik <serkan.akcelik@gmail.com>",
6
6
  "license": "MIT",
@@ -5034,6 +5034,16 @@ interface StrctFlowEdge {
5034
5034
  style?: 'solid' | 'dashed';
5035
5035
  animated?: boolean;
5036
5036
  }
5037
+ /**
5038
+ * A column of a `fan-out` / `tree`, when a heading alone is not enough: a
5039
+ * column that no node lands in is still part of the answer — "Lands on: no
5040
+ * other member" — so it is drawn with its note in it.
5041
+ */
5042
+ interface StrctFlowColumn {
5043
+ heading: string;
5044
+ /** What the column says when nothing is in it. Empty keeps it undrawn. */
5045
+ emptyText?: string;
5046
+ }
5037
5047
  /** One endpoint in a `StrctFlow`. */
5038
5048
  interface StrctFlowNode {
5039
5049
  /** Stable identity (used as the @for track key). */
@@ -5048,6 +5058,12 @@ interface StrctFlowNode {
5048
5058
  status?: StrctStatus;
5049
5059
  /** Which column this node sits in (`fan-out`). Derived from depth in `tree`. */
5050
5060
  column?: number;
5061
+ /**
5062
+ * How far the node's `status` reaches. `border` (the default) tints the
5063
+ * outline; `surface` tints the whole box — for a node that *is* the finding,
5064
+ * like a blast radius's "Nowhere".
5065
+ */
5066
+ emphasis?: 'border' | 'surface';
5051
5067
  /** Anything the node template needs — chips, a bar, a count. */
5052
5068
  data?: unknown;
5053
5069
  }
@@ -5091,8 +5107,13 @@ declare class StrctFlow {
5091
5107
  readonly layout: _angular_core.InputSignal<"tree" | "chain" | "fan-out">;
5092
5108
  /** The edges of a fan-out / tree. `null` keeps the consecutive chain. */
5093
5109
  readonly edges: _angular_core.InputSignal<StrctFlowEdge[] | null>;
5094
- /** Column headings, in order. */
5095
- readonly columns: _angular_core.InputSignal<string[] | null>;
5110
+ /**
5111
+ * Column headings, in order — a string, or a `{ heading, emptyText }` for a
5112
+ * column that must be drawn even when no node lands in it.
5113
+ */
5114
+ readonly columns: _angular_core.InputSignal<readonly (string | StrctFlowColumn)[] | null>;
5115
+ /** The columns as declared, normalised. */
5116
+ private readonly columnDefs;
5096
5117
  private readonly host;
5097
5118
  private readonly destroyRef;
5098
5119
  protected readonly nodeTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
@@ -5102,6 +5123,7 @@ declare class StrctFlow {
5102
5123
  protected readonly columnsView: _angular_core.Signal<{
5103
5124
  index: number;
5104
5125
  heading: string;
5126
+ emptyText: string;
5105
5127
  nodes: StrctFlowNode[];
5106
5128
  }[]>;
5107
5129
  /** What a node says to assistive tech: itself, then where it leads. */
@@ -5164,10 +5186,27 @@ declare class StrctMetricTile {
5164
5186
  readonly href: _angular_core.InputSignal<string | null>;
5165
5187
  /** Makes the whole tile a control that emits `activated`. */
5166
5188
  readonly interactive: _angular_core.InputSignalWithTransform<boolean, unknown>;
5189
+ /**
5190
+ * What a plain click on an `href` tile does. `browser` follows the link, as
5191
+ * today. `app` belongs to a single-page app: the click is prevented and
5192
+ * `activated` fires, so the router navigates and the page is not reloaded —
5193
+ * while a middle click or a modified one (Ctrl / Cmd / Shift / Alt) still
5194
+ * opens the link the way the browser would, because the tile is a real
5195
+ * link, not a button painted like one.
5196
+ */
5197
+ readonly navigate: _angular_core.InputSignal<"browser" | "app">;
5167
5198
  /** Emitted when an `interactive` tile is activated. */
5168
5199
  readonly activated: _angular_core.OutputEmitterRef<void>;
5169
5200
  /** The link / button's name: the KPI and its value, since the tile is the target. */
5170
5201
  protected readonly hitLabel: _angular_core.Signal<string>;
5202
+ /**
5203
+ * A plain primary click on an `href` tile, when `navigate="app"`: the
5204
+ * browser's own navigation is prevented and `activated` carries it, so a
5205
+ * single-page app routes instead of reloading. Anything the browser treats
5206
+ * as "open this somewhere else" — a middle click, Ctrl / Cmd / Shift / Alt,
5207
+ * or a link with a target — is left alone.
5208
+ */
5209
+ protected onHrefClick(event: MouseEvent): void;
5171
5210
  /** Change indicator; sign drives the arrow + colour. Null hides it. */
5172
5211
  readonly delta: _angular_core.InputSignal<number | null>;
5173
5212
  /** Suffix for the delta number. */
@@ -5192,7 +5231,7 @@ declare class StrctMetricTile {
5192
5231
  protected readonly deltaTone: _angular_core.Signal<"flat" | "up" | "down">;
5193
5232
  protected readonly sparkStatus: _angular_core.Signal<StrctChartStatus>;
5194
5233
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctMetricTile, never>;
5195
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctMetricTile, "strct-metric-tile", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "captionStatus": { "alias": "captionStatus"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "delta": { "alias": "delta"; "required": false; "isSignal": true; }; "deltaSuffix": { "alias": "deltaSuffix"; "required": false; "isSignal": true; }; "deltaAriaLabel": { "alias": "deltaAriaLabel"; "required": false; "isSignal": true; }; "invertDelta": { "alias": "invertDelta"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "activated": "activated"; }, never, ["[strctMetricMeter]"], true, never>;
5234
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctMetricTile, "strct-metric-tile", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "captionStatus": { "alias": "captionStatus"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "navigate": { "alias": "navigate"; "required": false; "isSignal": true; }; "delta": { "alias": "delta"; "required": false; "isSignal": true; }; "deltaSuffix": { "alias": "deltaSuffix"; "required": false; "isSignal": true; }; "deltaAriaLabel": { "alias": "deltaAriaLabel"; "required": false; "isSignal": true; }; "invertDelta": { "alias": "invertDelta"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "activated": "activated"; }, never, ["[strctMetricMeter]"], true, never>;
5196
5235
  }
5197
5236
 
5198
5237
  /**
@@ -6427,6 +6466,14 @@ interface StrctLegendItem {
6427
6466
  muted?: boolean;
6428
6467
  /** Only with `interactive`: the row reads as switched off. */
6429
6468
  off?: boolean;
6469
+ /**
6470
+ * Only with `interactive`: the row cannot be switched at all — a counter
6471
+ * this host does not collect, a series the query cannot answer. Give
6472
+ * `reason` with it: an item that cannot be picked must say why.
6473
+ */
6474
+ disabled?: boolean;
6475
+ /** Why a `disabled` row cannot be picked; its title and its description. */
6476
+ reason?: string;
6430
6477
  }
6431
6478
  /**
6432
6479
  * A chart's key is a component. The same swatch · label · value rows serve a
@@ -6446,17 +6493,24 @@ declare class StrctLegend {
6446
6493
  readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
6447
6494
  /** Rows become toggle buttons carrying `aria-pressed`. */
6448
6495
  readonly interactive: _angular_core.InputSignalWithTransform<boolean, unknown>;
6496
+ /**
6497
+ * `legend` is the key of what is drawn: an off row is struck through,
6498
+ * because it is a series that has been hidden. `picker` is a catalogue —
6499
+ * the counters a host could show — where an off row is simply not picked,
6500
+ * so it stays plain and the picked ones carry a check.
6501
+ */
6502
+ readonly appearance: _angular_core.InputSignal<"legend" | "picker">;
6449
6503
  /** The label of the row that was toggled. */
6450
6504
  readonly itemToggle: _angular_core.OutputEmitterRef<string>;
6451
6505
  /** The status vocabulary's own tokens — 'accent' is `--acc`, not `--accent`. */
6452
6506
  private static readonly TONE;
6453
6507
  protected swatchColor(item: StrctLegendItem): string;
6454
6508
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctLegend, never>;
6455
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctLegend, "strct-legend", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, { "itemToggle": "itemToggle"; }, never, never, true, never>;
6509
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctLegend, "strct-legend", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; }, { "itemToggle": "itemToggle"; }, never, never, true, never>;
6456
6510
  }
6457
6511
 
6458
6512
  /** Where one step of a watched process has got to. */
6459
- type StrctStepPhase = 'pending' | 'active' | 'done' | 'failed' | 'skipped' | 'blocked';
6513
+ type StrctStepPhase = 'planned' | 'pending' | 'active' | 'done' | 'failed' | 'skipped' | 'blocked';
6460
6514
  /** One step of a process the user watches rather than drives. */
6461
6515
  interface StrctStepState {
6462
6516
  id: string;
@@ -6499,13 +6553,20 @@ declare class StrctSteps {
6499
6553
  readonly numbered: _angular_core.InputSignalWithTransform<boolean, unknown>;
6500
6554
  /** Tighter pills, for one row per host in a long list. */
6501
6555
  readonly dense: _angular_core.InputSignalWithTransform<boolean, unknown>;
6556
+ /**
6557
+ * The list's accessible name — "Migration plan", "Upgrade progress". An
6558
+ * `<ol>` of steps with no name is one of several lists on a page.
6559
+ */
6560
+ readonly label: _angular_core.InputSignal<string>;
6561
+ /** Let a long pill label wrap instead of ending in an ellipsis. */
6562
+ readonly wrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
6502
6563
  /** The state words read after each label. */
6503
6564
  readonly labels: _angular_core.InputSignal<Partial<StrctStepsLabels>>;
6504
6565
  protected readonly actionTpl: _angular_core.Signal<TemplateRef<any> | undefined>;
6505
6566
  private readonly L;
6506
6567
  protected stateWord(state: StrctStepPhase): string;
6507
6568
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctSteps, never>;
6508
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctSteps, "strct-steps", never, { "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "numbered": { "alias": "numbered"; "required": false; "isSignal": true; }; "dense": { "alias": "dense"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; }, {}, ["actionTpl"], never, true, never>;
6569
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctSteps, "strct-steps", never, { "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "numbered": { "alias": "numbered"; "required": false; "isSignal": true; }; "dense": { "alias": "dense"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; }, {}, ["actionTpl"], never, true, never>;
6509
6570
  }
6510
6571
 
6511
6572
  /** What the frame is showing instead of a picture. */
@@ -7492,4 +7553,4 @@ declare function strctCheckHostInputs(host: HTMLElement, selector: string, owns:
7492
7553
  declare function strctCheckHostDisplay(host: HTMLElement, selector: string, expected: string): void;
7493
7554
 
7494
7555
  export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAlertActions, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderLeading, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChange, StrctChart, StrctChatAttachment, StrctChatComposer, StrctChatMessage, StrctChatThread, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctQr, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderGroup, StrctReorderHandle, StrctReorderItem, StrctResizeHandle, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctStepAction, StrctSteps, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctTagLeading, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWindow, StrctWindowDock, StrctWindowService, StrctWizard, StrctWizardAside, __qrInternals, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctQrMatrix, strctValidationIcon, strctValidationTone, unlockBodyScroll };
7495
- export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartAnnotation, StrctChartColor, StrctChartCurve, StrctChartSeries, StrctChartSlot, StrctChartStatus, StrctChartSummaryInfo, StrctChartThreshold, StrctChartType, StrctChatAuthor, StrctColumn, StrctCommandItem, StrctConfirmOptions, StrctConfirmTone, StrctDatagridColumn, StrctDatagridColumnState, StrctDatagridFilters, StrctDatagridLabels, StrctDatagridLazyState, StrctDescAlign, StrctDescItem, StrctDiffRow, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFilterChip, StrctFlowDirection, StrctFlowEdge, StrctFlowNode, StrctFlowOrientation, StrctHeatmapCell, StrctHeatmapSummaryInfo, StrctHotkey, StrctIconBadge, StrctIconName, StrctKnobStatus, StrctLegendItem, StrctLiveLabels, StrctLiveState, StrctLogLine, StrctMediaState, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuPlacement, StrctMenuSection, StrctMenubarItem, StrctMetricStatus, StrctModalSize, StrctMode, StrctNotification, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressSegment, StrctProgressStatus, StrctQrEcc, StrctRailItem, StrctRailStatus, StrctReorderEvent, StrctReorderMoveEvent, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctStatusDotSize, StrctStepPhase, StrctStepState, StrctStepsLabels, StrctTagStatus, StrctThresholds, StrctTimeRange, StrctTimeRangePreset, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTourStep, StrctTransferItem, StrctTreeDropEvent, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus, StrctWindowBounds, StrctWindowLabels, StrctWizardDefaults };
7556
+ export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartAnnotation, StrctChartColor, StrctChartCurve, StrctChartSeries, StrctChartSlot, StrctChartStatus, StrctChartSummaryInfo, StrctChartThreshold, StrctChartType, StrctChatAuthor, StrctColumn, StrctCommandItem, StrctConfirmOptions, StrctConfirmTone, StrctDatagridColumn, StrctDatagridColumnState, StrctDatagridFilters, StrctDatagridLabels, StrctDatagridLazyState, StrctDescAlign, StrctDescItem, StrctDiffRow, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFilterChip, StrctFlowColumn, StrctFlowDirection, StrctFlowEdge, StrctFlowNode, StrctFlowOrientation, StrctHeatmapCell, StrctHeatmapSummaryInfo, StrctHotkey, StrctIconBadge, StrctIconName, StrctKnobStatus, StrctLegendItem, StrctLiveLabels, StrctLiveState, StrctLogLine, StrctMediaState, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuPlacement, StrctMenuSection, StrctMenubarItem, StrctMetricStatus, StrctModalSize, StrctMode, StrctNotification, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressSegment, StrctProgressStatus, StrctQrEcc, StrctRailItem, StrctRailStatus, StrctReorderEvent, StrctReorderMoveEvent, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctStatusDotSize, StrctStepPhase, StrctStepState, StrctStepsLabels, StrctTagStatus, StrctThresholds, StrctTimeRange, StrctTimeRangePreset, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTourStep, StrctTransferItem, StrctTreeDropEvent, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus, StrctWindowBounds, StrctWindowLabels, StrctWizardDefaults };