@akcelik/strct 1.3.0 → 1.5.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": "1.3.0",
3
+ "version": "1.5.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",
@@ -1,8 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { OnDestroy, TemplateRef } from '@angular/core';
3
3
  import { SafeHtml } from '@angular/platform-browser';
4
- import * as _akcelik_strct from '@akcelik/strct';
5
4
  import { ControlValueAccessor } from '@angular/forms';
5
+ import * as _akcelik_strct from '@akcelik/strct';
6
6
 
7
7
  /** Available color palettes. */
8
8
  type StrctPalette = 'arctic' | 'ember' | 'sage';
@@ -319,6 +319,37 @@ declare class StrctLogin {
319
319
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctLogin, "strct-login", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "split": { "alias": "split"; "required": false; "isSignal": true; }; }, {}, never, ["[strctLoginAside]", "[strctLoginMain]", "*"], true, never>;
320
320
  }
321
321
 
322
+ /** Marks the breadcrumb row projected above the title. */
323
+ declare class StrctPageHeaderCrumbs {
324
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctPageHeaderCrumbs, never>;
325
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StrctPageHeaderCrumbs, "[strctPageHeaderCrumbs]", never, {}, {}, never, never, true, never>;
326
+ }
327
+ /** Marks the action buttons aligned to the end of the title row. */
328
+ declare class StrctPageHeaderActions {
329
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctPageHeaderActions, never>;
330
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StrctPageHeaderActions, "[strctPageHeaderActions]", never, {}, {}, never, never, true, never>;
331
+ }
332
+ /**
333
+ * Page header — the top of every console object page: an optional breadcrumb
334
+ * row, a title + subtitle, and actions aligned to the end. Default content
335
+ * projects below the title row (status badges, meta strips).
336
+ *
337
+ * <strct-page-header title="hv-02" subtitle="Hypervisor · cluster-01">
338
+ * <strct-breadcrumb strctPageHeaderCrumbs>…</strct-breadcrumb>
339
+ * <button strct-button strctPageHeaderActions variant="primary">Migrate</button>
340
+ * </strct-page-header>
341
+ */
342
+ declare class StrctPageHeader {
343
+ /** Page title (an h1). */
344
+ readonly title: _angular_core.InputSignal<string>;
345
+ /** One-line description under the title. */
346
+ readonly subtitle: _angular_core.InputSignal<string>;
347
+ /** Draw a hairline divider under the header. */
348
+ readonly divider: _angular_core.InputSignalWithTransform<boolean, unknown>;
349
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctPageHeader, never>;
350
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctPageHeader, "strct-page-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "divider": { "alias": "divider"; "required": false; "isSignal": true; }; }, {}, never, ["[strctPageHeaderCrumbs]", "[strctPageHeaderActions]", "*"], true, never>;
351
+ }
352
+
322
353
  /** Button visual variants. */
323
354
  type StrctButtonVariant = 'primary' | 'critical' | 'outline' | 'flat' | 'neutral';
324
355
  /** Button size variants. */
@@ -1260,6 +1291,159 @@ declare class StrctKbd {
1260
1291
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctKbd, "strct-kbd", never, {}, {}, never, ["*"], true, never>;
1261
1292
  }
1262
1293
 
1294
+ /**
1295
+ * Compact search pill — the pattern from the docs header: a leading search
1296
+ * icon, a label / input and an optional keyboard-hint chip. Two modes:
1297
+ *
1298
+ * - **input** (default): a real search field. Two-way `value` (also
1299
+ * CVA-compatible), `(search)` emits on Enter, Escape / the × clears.
1300
+ *
1301
+ * <strct-searchbox [(value)]="q" (search)="run($event)" />
1302
+ *
1303
+ * - **`trigger`**: a button that only announces activation — the classic
1304
+ * "fake search that opens the command palette" header pattern:
1305
+ *
1306
+ * <strct-searchbox trigger hint="⌘K" (activated)="palette.open.set(true)" />
1307
+ */
1308
+ declare class StrctSearchbox implements ControlValueAccessor {
1309
+ private readonly host;
1310
+ /** Placeholder text (and the trigger mode's label). */
1311
+ readonly placeholder: _angular_core.InputSignal<string>;
1312
+ /** Keyboard-hint chip (e.g. "⌘K"); hidden while typing. */
1313
+ readonly hint: _angular_core.InputSignal<string>;
1314
+ /** Render as an activation button instead of a real input (palette opener). */
1315
+ readonly trigger: _angular_core.InputSignalWithTransform<boolean, unknown>;
1316
+ /** Show the × clear button when there is a value. */
1317
+ readonly clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
1318
+ /** Accessible label; falls back to `placeholder`. */
1319
+ readonly ariaLabel: _angular_core.InputSignal<string>;
1320
+ /** Accessible label of the clear button (localizable). */
1321
+ readonly clearLabel: _angular_core.InputSignal<string>;
1322
+ /** Current text (two-way; also drives the CVA value). */
1323
+ readonly value: _angular_core.ModelSignal<string>;
1324
+ /** Enter pressed in input mode — run the search with the current text. */
1325
+ readonly search: _angular_core.OutputEmitterRef<string>;
1326
+ /** Trigger mode clicked (open your command palette / search surface). */
1327
+ readonly activated: _angular_core.OutputEmitterRef<void>;
1328
+ protected readonly focused: _angular_core.WritableSignal<boolean>;
1329
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
1330
+ private onChange;
1331
+ protected onTouched: () => void;
1332
+ protected onInput(event: Event): void;
1333
+ /** Clear the text (Escape / the × button). */
1334
+ clear(): void;
1335
+ /** Focus the input programmatically (e.g. from a global shortcut). */
1336
+ focus(): void;
1337
+ writeValue(value: string): void;
1338
+ registerOnChange(fn: (value: string) => void): void;
1339
+ registerOnTouched(fn: () => void): void;
1340
+ setDisabledState(isDisabled: boolean): void;
1341
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctSearchbox, never>;
1342
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctSearchbox, "strct-searchbox", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "search": "search"; "activated": "activated"; }, never, never, true, never>;
1343
+ }
1344
+
1345
+ /**
1346
+ * Click-to-copy chip with built-in feedback: an icon (or icon + label) button
1347
+ * that writes `text` to the clipboard and flips to a ✓ "Copied" state for a
1348
+ * moment. The console workhorse for UUIDs, IPs, serials and snippets:
1349
+ *
1350
+ * <strct-copy text="172.16.75.100" />
1351
+ * <strct-copy [text]="host.id" label="Copy ID" />
1352
+ */
1353
+ declare class StrctCopy {
1354
+ private readonly destroyRef;
1355
+ /** The text written to the clipboard. */
1356
+ readonly text: _angular_core.InputSignal<string>;
1357
+ /** Optional visible label next to the icon (icon-only by default). */
1358
+ readonly label: _angular_core.InputSignal<string>;
1359
+ /** Accessible label; falls back to `copyLabel`. */
1360
+ readonly ariaLabel: _angular_core.InputSignal<string>;
1361
+ /** Localizable strings. */
1362
+ readonly copyLabel: _angular_core.InputSignal<string>;
1363
+ readonly copiedLabel: _angular_core.InputSignal<string>;
1364
+ /** Emitted after a successful copy, with the copied text. */
1365
+ readonly copied: _angular_core.OutputEmitterRef<string>;
1366
+ protected readonly done: _angular_core.WritableSignal<boolean>;
1367
+ private timer;
1368
+ constructor();
1369
+ /** Write `text` to the clipboard and show the ✓ feedback. */
1370
+ copy(): void;
1371
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctCopy, never>;
1372
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCopy, "strct-copy", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "copyLabel": { "alias": "copyLabel"; "required": false; "isSignal": true; }; "copiedLabel": { "alias": "copiedLabel"; "required": false; "isSignal": true; }; }, { "copied": "copied"; }, never, never, true, never>;
1373
+ }
1374
+
1375
+ /**
1376
+ * Copyable mono code / rendered-config block — the component form of the
1377
+ * `<details><pre>` pattern consoles keep hand-rolling. A header row carries an
1378
+ * optional title, a language tag, a copy button and (when `collapsible`) a
1379
+ * chevron; the body is a scrollable, keyboard-focusable `<pre>`.
1380
+ *
1381
+ * <strct-code [code]="yaml" language="yaml" title="cloud-init" collapsible />
1382
+ */
1383
+ declare class StrctCode {
1384
+ /** The code / rendered config text (copied verbatim). */
1385
+ readonly code: _angular_core.InputSignal<string>;
1386
+ /** Header title (e.g. a filename). */
1387
+ readonly title: _angular_core.InputSignal<string>;
1388
+ /** Small uppercase language tag (yaml, json, bash …). */
1389
+ readonly language: _angular_core.InputSignal<string>;
1390
+ /** Show the copy button. */
1391
+ readonly copyable: _angular_core.InputSignalWithTransform<boolean, unknown>;
1392
+ /** Collapse to just the header (the `<details><pre>` pattern, done right). */
1393
+ readonly collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
1394
+ /** Collapsed state (two-way; only meaningful with `collapsible`). */
1395
+ readonly collapsed: _angular_core.ModelSignal<boolean>;
1396
+ /** Show a line-number gutter (numbers are never copied — `code` is). */
1397
+ readonly lineNumbers: _angular_core.InputSignalWithTransform<boolean, unknown>;
1398
+ /** Scroll the body past this height (px); null grows freely. */
1399
+ readonly maxHeight: _angular_core.InputSignal<number | null>;
1400
+ /** Localizable labels for the collapse toggle. */
1401
+ readonly collapseLabel: _angular_core.InputSignal<string>;
1402
+ readonly expandLabel: _angular_core.InputSignal<string>;
1403
+ protected readonly lineNos: _angular_core.Signal<number[]>;
1404
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctCode, never>;
1405
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCode, "strct-code", never, { "code": { "alias": "code"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "copyable": { "alias": "copyable"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "lineNumbers": { "alias": "lineNumbers"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, never, true, never>;
1406
+ }
1407
+
1408
+ /** One active filter chip in a {@link StrctFilterBar}. */
1409
+ interface StrctFilterChip {
1410
+ /** Stable identity, returned with (removed). */
1411
+ id: string;
1412
+ /** Chip text, e.g. "state: running". */
1413
+ label: string;
1414
+ /** Arbitrary payload carried back with (removed). */
1415
+ data?: unknown;
1416
+ }
1417
+ /**
1418
+ * The standard strip above a data grid: a search field, the active filter
1419
+ * chips (each removable), a result count and a clear-all action. The bar owns
1420
+ * no filtering logic — it renders state and announces intent:
1421
+ *
1422
+ * <strct-filter-bar [(query)]="q" [filters]="chips" [count]="rows.length"
1423
+ * (removed)="drop($event)" (cleared)="reset()" />
1424
+ */
1425
+ declare class StrctFilterBar {
1426
+ /** Search text (two-way; forwards to the embedded searchbox). */
1427
+ readonly query: _angular_core.ModelSignal<string>;
1428
+ /** Active filter chips. */
1429
+ readonly filters: _angular_core.InputSignal<StrctFilterChip[]>;
1430
+ /** Result count shown at the end; null hides it. */
1431
+ readonly count: _angular_core.InputSignal<number | null>;
1432
+ /** Localizable strings. */
1433
+ readonly placeholder: _angular_core.InputSignal<string>;
1434
+ readonly countLabel: _angular_core.InputSignal<string>;
1435
+ readonly clearLabel: _angular_core.InputSignal<string>;
1436
+ readonly removeLabel: _angular_core.InputSignal<string>;
1437
+ /** Enter pressed in the search field. */
1438
+ readonly search: _angular_core.OutputEmitterRef<string>;
1439
+ /** A chip's × was clicked. */
1440
+ readonly removed: _angular_core.OutputEmitterRef<StrctFilterChip>;
1441
+ /** "Clear filters" was clicked. */
1442
+ readonly cleared: _angular_core.OutputEmitterRef<void>;
1443
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctFilterBar, never>;
1444
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctFilterBar, "strct-filter-bar", never, { "query": { "alias": "query"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "countLabel": { "alias": "countLabel"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; }, { "query": "queryChange"; "search": "search"; "removed": "removed"; "cleared": "cleared"; }, never, ["*"], true, never>;
1445
+ }
1446
+
1263
1447
  /** Lifecycle of an async (or deferred) validation check. */
1264
1448
  type StrctValidationStatus = 'idle' | 'checking' | 'ok' | 'warning' | 'error';
1265
1449
  /**
@@ -3140,5 +3324,5 @@ declare class StrctEmptyState {
3140
3324
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctEmptyState, "strct-empty-state", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
3141
3325
  }
3142
3326
 
3143
- export { STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_MASKS, STRCT_PALETTES, STRCT_RAW_ICONS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeHost, StrctCascadeNode, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctContextMenu, StrctContextMenuTrigger, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDesc, StrctDescriptionList, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctEmptyState, StrctField, StrctFile, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHero, StrctIcon, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctOverlay, StrctPagination, StrctPassword, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRating, StrctRowDetailDef, StrctSectionMenu, StrctSegmented, StrctShell, StrctShellService, StrctSignpost, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctStack, StrctStackItem, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctTooltip, StrctTree, StrctTreeNode, StrctVerticalNav, StrctWizard, registerStrctIcon, strctValidationIcon, strctValidationTone };
3144
- export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartAnnotation, StrctChartColor, StrctChartCurve, StrctChartSeries, StrctChartSlot, StrctChartStatus, StrctChartThreshold, StrctChartType, StrctColumn, StrctCommandItem, StrctDatagridColumn, StrctDatagridColumnState, StrctDatagridLabels, StrctDatagridLazyState, StrctDescAlign, StrctDescItem, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFlowDirection, StrctFlowNode, StrctFlowOrientation, StrctIconBadge, StrctKnobStatus, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuSection, StrctMetricStatus, StrctModalSize, StrctMode, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressStatus, StrctRailItem, StrctRailStatus, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctTagStatus, StrctThresholds, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus };
3327
+ export { STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_MASKS, STRCT_PALETTES, STRCT_RAW_ICONS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeHost, StrctCascadeNode, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDesc, StrctDescriptionList, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHero, StrctIcon, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRating, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctShell, StrctShellService, StrctSignpost, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctStack, StrctStackItem, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctTooltip, StrctTree, StrctTreeNode, StrctVerticalNav, StrctWizard, registerStrctIcon, strctValidationIcon, strctValidationTone };
3328
+ export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartAnnotation, StrctChartColor, StrctChartCurve, StrctChartSeries, StrctChartSlot, StrctChartStatus, StrctChartThreshold, StrctChartType, StrctColumn, StrctCommandItem, StrctDatagridColumn, StrctDatagridColumnState, StrctDatagridLabels, StrctDatagridLazyState, StrctDescAlign, StrctDescItem, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFilterChip, StrctFlowDirection, StrctFlowNode, StrctFlowOrientation, StrctIconBadge, StrctKnobStatus, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuSection, StrctMetricStatus, StrctModalSize, StrctMode, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressStatus, StrctRailItem, StrctRailStatus, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctTagStatus, StrctThresholds, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus };