@nice2dev/ui 1.0.5 → 1.0.6
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/README.md +253 -207
- package/dist/NiceButton-B5RXLDwI.cjs +1 -0
- package/dist/NiceButton-DmTHNHet.js +450 -0
- package/dist/NiceErrorBoundary-D1hh5GGe.js +732 -0
- package/dist/NiceErrorBoundary-Dta4TGee.cjs +1 -0
- package/dist/NiceModuleLifecyclePanel-BapdidD6.js +4776 -0
- package/dist/NiceModuleLifecyclePanel-CsFsm534.cjs +1 -0
- package/dist/NicePinCodeInput-4q8yULuo.js +13359 -0
- package/dist/NicePinCodeInput-eD2q8nGa.cjs +692 -0
- package/dist/NicePinCodeInput.css +1 -0
- package/dist/NiceSavedQueryPanel-DUw8plYP.js +5666 -0
- package/dist/NiceSavedQueryPanel-xpk09zy1.cjs +596 -0
- package/dist/NiceSavedQueryPanel.css +1 -0
- package/dist/NiceStockChart-CHlOnWzN.cjs +287 -0
- package/dist/NiceStockChart-Cpmv9_Cc.js +2341 -0
- package/dist/NiceStockChart.css +1 -0
- package/dist/NiceToggle-C1UKGXmJ.js +209 -0
- package/dist/NiceToggle-lVi-ETi0.cjs +1 -0
- package/dist/NiceWindow-D1awkyFl.js +1636 -0
- package/dist/NiceWindow-yARTUJsg.cjs +1 -0
- package/dist/charts.cjs +1 -0
- package/dist/charts.d.ts +1043 -0
- package/dist/charts.mjs +23 -0
- package/dist/core-CfXsl755.js +16305 -0
- package/dist/core-DGJSUW64.cjs +96 -0
- package/dist/data.cjs +1 -0
- package/dist/data.d.ts +2003 -0
- package/dist/data.mjs +21 -0
- package/dist/editors.cjs +1 -0
- package/dist/editors.d.ts +2728 -0
- package/dist/editors.mjs +66 -0
- package/dist/feedback.cjs +1 -0
- package/dist/feedback.d.ts +339 -0
- package/dist/feedback.mjs +16 -0
- package/dist/index-C853adw1.cjs +6199 -0
- package/dist/index-CNwVELPJ.js +62857 -0
- package/dist/index-CUx_-gKK.cjs +1 -0
- package/dist/index-x8mRM4Jc.js +17 -0
- package/dist/index.cjs +1 -7866
- package/dist/index.css +1 -0
- package/dist/index.d.ts +1160 -2
- package/dist/index.mjs +972 -105889
- package/dist/navigation.cjs +1 -0
- package/dist/navigation.d.ts +1862 -0
- package/dist/navigation.mjs +519 -0
- package/dist/overlays.cjs +1 -0
- package/dist/overlays.d.ts +706 -0
- package/dist/overlays.mjs +26 -0
- package/package.json +31 -1
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { ComponentType } from 'react';
|
|
|
4
4
|
import { Context } from 'react';
|
|
5
5
|
import { CSSProperties } from 'react';
|
|
6
6
|
import { default as default_2 } from 'react';
|
|
7
|
+
import { Dispatch } from 'react';
|
|
7
8
|
import { ForwardedRef } from 'react';
|
|
8
9
|
import { ForwardRefExoticComponent } from 'react';
|
|
9
10
|
import { HTMLAttributes } from 'react';
|
|
@@ -12,6 +13,7 @@ import { PointerEvent as PointerEvent_2 } from 'react';
|
|
|
12
13
|
import { ReactNode } from 'react';
|
|
13
14
|
import { RefAttributes } from 'react';
|
|
14
15
|
import { RefObject } from 'react';
|
|
16
|
+
import { SetStateAction } from 'react';
|
|
15
17
|
|
|
16
18
|
declare interface A11yContextValue {
|
|
17
19
|
config: NiceA11yConfig;
|
|
@@ -358,6 +360,36 @@ export declare interface Allocation {
|
|
|
358
360
|
|
|
359
361
|
export declare const AmazonMarketplaceConnector: ConnectorDefinition;
|
|
360
362
|
|
|
363
|
+
declare interface AnalyticsContextValue {
|
|
364
|
+
isActive: boolean;
|
|
365
|
+
trackEvent: (event: AnalyticsEvent) => void;
|
|
366
|
+
trackPageView: (event: PageViewEvent) => void;
|
|
367
|
+
setUserProperties: (properties: Record<string, unknown>) => void;
|
|
368
|
+
mode: TracelessMode;
|
|
369
|
+
provider: AnalyticsProvider;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Analytics event type.
|
|
374
|
+
*/
|
|
375
|
+
export declare interface AnalyticsEvent {
|
|
376
|
+
/** Event name/action */
|
|
377
|
+
name: string;
|
|
378
|
+
/** Event category */
|
|
379
|
+
category?: string;
|
|
380
|
+
/** Event label */
|
|
381
|
+
label?: string;
|
|
382
|
+
/** Event value */
|
|
383
|
+
value?: number;
|
|
384
|
+
/** Additional properties */
|
|
385
|
+
properties?: Record<string, unknown>;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Analytics provider type.
|
|
390
|
+
*/
|
|
391
|
+
export declare type AnalyticsProvider = 'google-analytics' | 'google-tag-manager' | 'matomo' | 'plausible' | 'simple-analytics' | 'umami' | 'fathom' | 'pirsch' | 'custom';
|
|
392
|
+
|
|
361
393
|
/**
|
|
362
394
|
* Animation timing presets
|
|
363
395
|
*/
|
|
@@ -609,6 +641,12 @@ export declare interface AudioEncodingSettings {
|
|
|
609
641
|
loudnessTarget?: number;
|
|
610
642
|
}
|
|
611
643
|
|
|
644
|
+
/**
|
|
645
|
+
* Audit scanner: checks if any storage is being used against policy.
|
|
646
|
+
* Returns violations found.
|
|
647
|
+
*/
|
|
648
|
+
export declare function auditStorageCompliance(policy: ITracelessPolicy): StorageAuditResult;
|
|
649
|
+
|
|
612
650
|
/**
|
|
613
651
|
* Run a comprehensive WCAG 2.2 AAA audit on the current document.
|
|
614
652
|
*/
|
|
@@ -2791,6 +2829,24 @@ export declare interface CurrencyDef {
|
|
|
2791
2829
|
/** Current schema version. */
|
|
2792
2830
|
export declare const CURRENT_SCHEMA_VERSION = 2;
|
|
2793
2831
|
|
|
2832
|
+
/**
|
|
2833
|
+
* Custom analytics handler for 'custom' provider.
|
|
2834
|
+
*/
|
|
2835
|
+
export declare interface CustomAnalyticsHandler {
|
|
2836
|
+
/** Initialize analytics */
|
|
2837
|
+
init: () => void | Promise<void>;
|
|
2838
|
+
/** Track page view */
|
|
2839
|
+
trackPageView: (event: PageViewEvent) => void;
|
|
2840
|
+
/** Track custom event */
|
|
2841
|
+
trackEvent: (event: AnalyticsEvent) => void;
|
|
2842
|
+
/** Set user properties */
|
|
2843
|
+
setUserProperties?: (properties: Record<string, unknown>) => void;
|
|
2844
|
+
/** Opt out of tracking */
|
|
2845
|
+
optOut?: () => void;
|
|
2846
|
+
/** Opt in to tracking */
|
|
2847
|
+
optIn?: () => void;
|
|
2848
|
+
}
|
|
2849
|
+
|
|
2794
2850
|
export declare interface CustomEmoji {
|
|
2795
2851
|
id: string;
|
|
2796
2852
|
name: string;
|
|
@@ -3749,6 +3805,23 @@ export declare const DynamicsBCConnector: ConnectorDefinition;
|
|
|
3749
3805
|
|
|
3750
3806
|
export declare const EBayConnector: ConnectorDefinition;
|
|
3751
3807
|
|
|
3808
|
+
/**
|
|
3809
|
+
* State type for text editor persistence (drafts, history, etc.)
|
|
3810
|
+
*/
|
|
3811
|
+
export declare interface EditorPersistentState {
|
|
3812
|
+
content?: string;
|
|
3813
|
+
cursorPosition?: {
|
|
3814
|
+
line: number;
|
|
3815
|
+
column: number;
|
|
3816
|
+
};
|
|
3817
|
+
selectionRange?: {
|
|
3818
|
+
start: number;
|
|
3819
|
+
end: number;
|
|
3820
|
+
};
|
|
3821
|
+
lastModified?: number;
|
|
3822
|
+
version?: number;
|
|
3823
|
+
}
|
|
3824
|
+
|
|
3752
3825
|
export declare interface EllipseAnnotation extends AnnotationBase {
|
|
3753
3826
|
tool: 'ellipse';
|
|
3754
3827
|
}
|
|
@@ -5147,6 +5220,11 @@ export declare function generateTokens(tokens: FlatTokenMap, format: TokenFormat
|
|
|
5147
5220
|
/** Generate tooltip styles */
|
|
5148
5221
|
export declare function generateTooltipStyles(variant: TooltipStyleVariant): Record<string, string>;
|
|
5149
5222
|
|
|
5223
|
+
/**
|
|
5224
|
+
* Generates a compliance report for the current traceless configuration.
|
|
5225
|
+
*/
|
|
5226
|
+
export declare function generateTracelessComplianceReport(policy: ITracelessPolicy, instanceId: string, tenantId?: string): TracelessComplianceReport;
|
|
5227
|
+
|
|
5150
5228
|
/** Generate a TypeScript interface from a view definition's data bindings. */
|
|
5151
5229
|
export declare function generateTypescriptModel(view: NiceViewDefinitionV2): NiceGeneratedFile;
|
|
5152
5230
|
|
|
@@ -5275,6 +5353,11 @@ export declare function getRecentTimings(limit?: number): RenderTiming[];
|
|
|
5275
5353
|
*/
|
|
5276
5354
|
export declare function getSlowRenders(thresholdMs?: number): RenderTiming[];
|
|
5277
5355
|
|
|
5356
|
+
/**
|
|
5357
|
+
* Gets badge display info for the current mode.
|
|
5358
|
+
*/
|
|
5359
|
+
export declare function getTracelessBadgeInfo(policy: ITracelessPolicy): TracelessBadgeInfo;
|
|
5360
|
+
|
|
5278
5361
|
export declare interface GitBlameEntry {
|
|
5279
5362
|
lineStart: number;
|
|
5280
5363
|
lineEnd: number;
|
|
@@ -5470,6 +5553,20 @@ export declare interface GridColumnPreference {
|
|
|
5470
5553
|
cellColor?: string;
|
|
5471
5554
|
}
|
|
5472
5555
|
|
|
5556
|
+
/**
|
|
5557
|
+
* State type for NiceDataGrid persistence.
|
|
5558
|
+
*/
|
|
5559
|
+
export declare interface GridPersistentState {
|
|
5560
|
+
columnWidths?: Record<string, number>;
|
|
5561
|
+
columnOrder?: string[];
|
|
5562
|
+
sortField?: string;
|
|
5563
|
+
sortDirection?: 'asc' | 'desc' | null;
|
|
5564
|
+
pageSize?: number;
|
|
5565
|
+
expandedGroups?: string[];
|
|
5566
|
+
filters?: Record<string, any>;
|
|
5567
|
+
hiddenColumns?: string[];
|
|
5568
|
+
}
|
|
5569
|
+
|
|
5473
5570
|
/**
|
|
5474
5571
|
* Grid preferences
|
|
5475
5572
|
*/
|
|
@@ -5492,6 +5589,20 @@ export declare interface GridPreferences {
|
|
|
5492
5589
|
rowColors?: Record<string | number, string>;
|
|
5493
5590
|
}
|
|
5494
5591
|
|
|
5592
|
+
/**
|
|
5593
|
+
* Options for useGridStatePersistence hook.
|
|
5594
|
+
*/
|
|
5595
|
+
export declare interface GridStatePersistenceOptions {
|
|
5596
|
+
/** Unique storage key for this grid instance */
|
|
5597
|
+
storageKey: string;
|
|
5598
|
+
/** Initial state (used when no saved state exists) */
|
|
5599
|
+
initialState?: GridPersistentState;
|
|
5600
|
+
/** Callback when state changes */
|
|
5601
|
+
onStateChange?: (state: GridPersistentState) => void;
|
|
5602
|
+
/** Specific storage type override */
|
|
5603
|
+
storageType?: 'local' | 'session' | 'auto';
|
|
5604
|
+
}
|
|
5605
|
+
|
|
5495
5606
|
/**
|
|
5496
5607
|
* Groups data by specified fields with optional aggregation.
|
|
5497
5608
|
*/
|
|
@@ -5646,6 +5757,56 @@ export declare type HeaderVariant = 'default' | 'transparent' | 'blur' | 'solid'
|
|
|
5646
5757
|
/** Health check severity levels. */
|
|
5647
5758
|
export declare type HealthSeverity = 'error' | 'warning' | 'info';
|
|
5648
5759
|
|
|
5760
|
+
export declare interface HelpConfig {
|
|
5761
|
+
/** Global enable/disable for all inline help */
|
|
5762
|
+
enabled: boolean;
|
|
5763
|
+
/** Default visibility for help panels (collapsed/expanded) */
|
|
5764
|
+
defaultExpanded: boolean;
|
|
5765
|
+
/** Show help icon in component headers */
|
|
5766
|
+
showHelpIcon: boolean;
|
|
5767
|
+
/** Help panel position */
|
|
5768
|
+
position: 'top' | 'bottom' | 'tooltip' | 'sidebar';
|
|
5769
|
+
/** Locale for help content */
|
|
5770
|
+
locale: string;
|
|
5771
|
+
/** Custom help content loader */
|
|
5772
|
+
contentLoader?: (componentName: string, locale: string) => Promise<HelpContent | null>;
|
|
5773
|
+
}
|
|
5774
|
+
|
|
5775
|
+
export declare interface HelpContent {
|
|
5776
|
+
name: string;
|
|
5777
|
+
description: string;
|
|
5778
|
+
category: string;
|
|
5779
|
+
version?: string;
|
|
5780
|
+
since?: string;
|
|
5781
|
+
status?: 'stable' | 'beta' | 'deprecated';
|
|
5782
|
+
author?: string;
|
|
5783
|
+
props?: HelpProp[];
|
|
5784
|
+
examples?: HelpExample[];
|
|
5785
|
+
tips?: string[];
|
|
5786
|
+
seeAlso?: string[];
|
|
5787
|
+
}
|
|
5788
|
+
|
|
5789
|
+
export declare interface HelpContextValue {
|
|
5790
|
+
/** Current help configuration */
|
|
5791
|
+
config: HelpConfig;
|
|
5792
|
+
/** Update help configuration */
|
|
5793
|
+
setConfig: (config: Partial<HelpConfig>) => void;
|
|
5794
|
+
/** Toggle global help visibility */
|
|
5795
|
+
toggleGlobalHelp: () => void;
|
|
5796
|
+
/** Per-component disabled set */
|
|
5797
|
+
disabledComponents: Set<string>;
|
|
5798
|
+
/** Disable help for specific component */
|
|
5799
|
+
disableComponentHelp: (componentName: string) => void;
|
|
5800
|
+
/** Enable help for specific component */
|
|
5801
|
+
enableComponentHelp: (componentName: string) => void;
|
|
5802
|
+
/** Check if help is enabled for component */
|
|
5803
|
+
isHelpEnabled: (componentName: string) => boolean;
|
|
5804
|
+
/** Get help content for component */
|
|
5805
|
+
getHelpContent: (componentName: string) => Promise<HelpContent | null>;
|
|
5806
|
+
/** Loaded help content cache */
|
|
5807
|
+
helpCache: Map<string, HelpContent>;
|
|
5808
|
+
}
|
|
5809
|
+
|
|
5649
5810
|
declare interface HelpDeskAttachment {
|
|
5650
5811
|
id: string;
|
|
5651
5812
|
filename: string;
|
|
@@ -5737,6 +5898,20 @@ declare interface HelpDeskUser {
|
|
|
5737
5898
|
|
|
5738
5899
|
declare type HelpDeskView = 'list' | 'detail' | 'create' | 'dashboard' | 'knowledge-base' | 'settings';
|
|
5739
5900
|
|
|
5901
|
+
export declare interface HelpExample {
|
|
5902
|
+
title: string;
|
|
5903
|
+
code: string;
|
|
5904
|
+
language?: string;
|
|
5905
|
+
}
|
|
5906
|
+
|
|
5907
|
+
export declare interface HelpProp {
|
|
5908
|
+
name: string;
|
|
5909
|
+
type: string;
|
|
5910
|
+
required?: boolean;
|
|
5911
|
+
default?: string | number | boolean;
|
|
5912
|
+
description: string;
|
|
5913
|
+
}
|
|
5914
|
+
|
|
5740
5915
|
/**
|
|
5741
5916
|
* Hero header with background image
|
|
5742
5917
|
*/
|
|
@@ -6032,6 +6207,31 @@ export declare function isVibrationSupported(): boolean;
|
|
|
6032
6207
|
/** Check if a view is compatible with a given platform. */
|
|
6033
6208
|
export declare function isViewCompatibleWith(view: NiceCrossPlatformView, platform: NicePlatformCapability): boolean;
|
|
6034
6209
|
|
|
6210
|
+
/**
|
|
6211
|
+
* Main policy interface for Traceless system.
|
|
6212
|
+
* Three independent flags for granular control.
|
|
6213
|
+
*/
|
|
6214
|
+
export declare interface ITracelessPolicy {
|
|
6215
|
+
/** Whether cookies are allowed (any cookies) */
|
|
6216
|
+
cookiesAllowed: boolean;
|
|
6217
|
+
/** Whether localStorage is allowed */
|
|
6218
|
+
localStorageAllowed: boolean;
|
|
6219
|
+
/** Whether sessionStorage is allowed */
|
|
6220
|
+
sessionStorageAllowed: boolean;
|
|
6221
|
+
/** Whether only strictly necessary auth cookie is allowed (httpOnly) */
|
|
6222
|
+
strictAuthCookieOnly: boolean;
|
|
6223
|
+
/** The effective mode derived from flags */
|
|
6224
|
+
effectiveMode: TracelessMode;
|
|
6225
|
+
/** Source of the policy (instance, tenant, group, user) */
|
|
6226
|
+
source: TracelessPolicySource;
|
|
6227
|
+
/** Whether consent banner should be shown */
|
|
6228
|
+
requiresConsentBanner: boolean;
|
|
6229
|
+
/** Timestamp when policy was resolved */
|
|
6230
|
+
resolvedAt: number;
|
|
6231
|
+
/** Policy version for cache invalidation */
|
|
6232
|
+
version: string;
|
|
6233
|
+
}
|
|
6234
|
+
|
|
6035
6235
|
/** Job priority */
|
|
6036
6236
|
export declare type JobPriority = 'low' | 'normal' | 'high' | 'urgent';
|
|
6037
6237
|
|
|
@@ -7837,6 +8037,63 @@ export declare interface NiceAmountBreakdownProps extends NiceFormFieldProps {
|
|
|
7837
8037
|
compact?: boolean;
|
|
7838
8038
|
}
|
|
7839
8039
|
|
|
8040
|
+
/**
|
|
8041
|
+
* NiceAnalyticsTracker — Traceless-aware analytics wrapper.
|
|
8042
|
+
*
|
|
8043
|
+
* @example
|
|
8044
|
+
* ```tsx
|
|
8045
|
+
* // Wrap your app
|
|
8046
|
+
* <NiceAnalyticsTracker
|
|
8047
|
+
* provider="plausible"
|
|
8048
|
+
* trackingId="your-domain.com"
|
|
8049
|
+
* autoTrackPageViews
|
|
8050
|
+
* >
|
|
8051
|
+
* <App />
|
|
8052
|
+
* </NiceAnalyticsTracker>
|
|
8053
|
+
*
|
|
8054
|
+
* // Or use the hook in components
|
|
8055
|
+
* const { trackEvent, isActive } = useAnalytics();
|
|
8056
|
+
* trackEvent({ name: 'button_click', category: 'engagement' });
|
|
8057
|
+
* ```
|
|
8058
|
+
*/
|
|
8059
|
+
export declare function NiceAnalyticsTracker({ children, provider, trackingId, endpoint, customHandler, cookies, localStorage, minMode, autoTrackPageViews, respectDoNotTrack, debug, domain, scriptUrl, anonymizeIp, cookieless, }: NiceAnalyticsTrackerProps): default_2.ReactElement | null;
|
|
8060
|
+
|
|
8061
|
+
/**
|
|
8062
|
+
* Props for NiceAnalyticsTracker.
|
|
8063
|
+
*/
|
|
8064
|
+
export declare interface NiceAnalyticsTrackerProps {
|
|
8065
|
+
/** Children to render (optional - can be used as wrapper or standalone) */
|
|
8066
|
+
children?: ReactNode;
|
|
8067
|
+
/** Analytics provider */
|
|
8068
|
+
provider: AnalyticsProvider;
|
|
8069
|
+
/** Provider-specific ID (e.g., GA measurement ID) */
|
|
8070
|
+
trackingId?: string;
|
|
8071
|
+
/** Provider endpoint URL (for self-hosted solutions) */
|
|
8072
|
+
endpoint?: string;
|
|
8073
|
+
/** Custom handler for 'custom' provider */
|
|
8074
|
+
customHandler?: CustomAnalyticsHandler;
|
|
8075
|
+
/** Whether this component may use cookies */
|
|
8076
|
+
cookies?: boolean;
|
|
8077
|
+
/** Whether this component may use localStorage */
|
|
8078
|
+
localStorage?: boolean;
|
|
8079
|
+
/** Minimum mode required for tracking to be active */
|
|
8080
|
+
minMode?: TracelessMode;
|
|
8081
|
+
/** Auto-track page views */
|
|
8082
|
+
autoTrackPageViews?: boolean;
|
|
8083
|
+
/** Respect Do Not Track header */
|
|
8084
|
+
respectDoNotTrack?: boolean;
|
|
8085
|
+
/** Debug mode - logs events to console */
|
|
8086
|
+
debug?: boolean;
|
|
8087
|
+
/** Domain for analytics (for cross-domain tracking) */
|
|
8088
|
+
domain?: string;
|
|
8089
|
+
/** Custom script URL override */
|
|
8090
|
+
scriptUrl?: string;
|
|
8091
|
+
/** Anonymize IP addresses */
|
|
8092
|
+
anonymizeIp?: boolean;
|
|
8093
|
+
/** Disable cookies (use cookieless tracking) */
|
|
8094
|
+
cookieless?: boolean;
|
|
8095
|
+
}
|
|
8096
|
+
|
|
7840
8097
|
export declare interface NiceAnimationConfig {
|
|
7841
8098
|
/** Animation preset or 'none' to disable */
|
|
7842
8099
|
type: NiceAnimationPreset;
|
|
@@ -8614,7 +8871,7 @@ export declare const NiceCalculatorKeyboard: default_2.ForwardRefExoticComponent
|
|
|
8614
8871
|
export declare const NiceCalendar: default_2.FC<NiceCalendarProps>;
|
|
8615
8872
|
|
|
8616
8873
|
/** Props for the {@link NiceCalendar} component — an inline month calendar with day/month/year views and multi-select support. */
|
|
8617
|
-
export declare interface NiceCalendarProps extends NiceBaseProps {
|
|
8874
|
+
export declare interface NiceCalendarProps extends NiceBaseProps, TracelessStorageProps {
|
|
8618
8875
|
/** Single selected date (ISO). Use together with onChange for single-select mode. */
|
|
8619
8876
|
value?: string;
|
|
8620
8877
|
onChange?: (date: string) => void;
|
|
@@ -8634,6 +8891,8 @@ export declare interface NiceCalendarProps extends NiceBaseProps {
|
|
|
8634
8891
|
renderDay?: (date: string, day: number) => default_2.ReactNode;
|
|
8635
8892
|
/** Show keyboard hints. */
|
|
8636
8893
|
showKeyboardHints?: boolean;
|
|
8894
|
+
/** Persist view preferences (requires Traceless storage props) */
|
|
8895
|
+
persistPreferences?: boolean;
|
|
8637
8896
|
}
|
|
8638
8897
|
|
|
8639
8898
|
export declare type NiceCalendarView = 'days' | 'months' | 'years' | 'decade';
|
|
@@ -9695,6 +9954,35 @@ export declare interface NiceConnectorSelectorProps extends NiceBaseProps {
|
|
|
9695
9954
|
disabledConnectors?: string[];
|
|
9696
9955
|
}
|
|
9697
9956
|
|
|
9957
|
+
/**
|
|
9958
|
+
* Cookie/storage consent banner that auto-hides based on Traceless policy.
|
|
9959
|
+
*/
|
|
9960
|
+
export declare function NiceConsentBanner({ className, position, variant, onAccept, onDecline, onCustomize, privacyPolicyUrl, acceptText, declineText, }: NiceConsentBannerProps): default_2.ReactElement | null;
|
|
9961
|
+
|
|
9962
|
+
/**
|
|
9963
|
+
* Props for NiceConsentBanner.
|
|
9964
|
+
*/
|
|
9965
|
+
export declare interface NiceConsentBannerProps {
|
|
9966
|
+
/** Custom class name */
|
|
9967
|
+
className?: string;
|
|
9968
|
+
/** Position */
|
|
9969
|
+
position?: 'top' | 'bottom';
|
|
9970
|
+
/** Theme variant */
|
|
9971
|
+
variant?: 'minimal' | 'detailed';
|
|
9972
|
+
/** Callback when consent is given */
|
|
9973
|
+
onAccept?: () => void;
|
|
9974
|
+
/** Callback when consent is declined */
|
|
9975
|
+
onDecline?: () => void;
|
|
9976
|
+
/** Callback when user wants to customize */
|
|
9977
|
+
onCustomize?: () => void;
|
|
9978
|
+
/** Privacy policy URL */
|
|
9979
|
+
privacyPolicyUrl?: string;
|
|
9980
|
+
/** Custom accept button text */
|
|
9981
|
+
acceptText?: string;
|
|
9982
|
+
/** Custom decline button text */
|
|
9983
|
+
declineText?: string;
|
|
9984
|
+
}
|
|
9985
|
+
|
|
9698
9986
|
/**
|
|
9699
9987
|
* {@link NiceConsentPanel} — GDPR/terms consent tracking panel with individual
|
|
9700
9988
|
* accept/reject toggles, required consent markers, bulk actions, and confirm button.
|
|
@@ -12961,6 +13249,32 @@ export declare interface NiceHelpDeskProps extends NiceBaseProps {
|
|
|
12961
13249
|
onExportTickets?: (filter: TicketFilter, format: 'csv' | 'xlsx' | 'pdf') => Promise<void>;
|
|
12962
13250
|
}
|
|
12963
13251
|
|
|
13252
|
+
/**
|
|
13253
|
+
* Help icon that shows help content on click
|
|
13254
|
+
*/
|
|
13255
|
+
export declare const NiceHelpIcon: default_2.FC<NiceHelpIconProps>;
|
|
13256
|
+
|
|
13257
|
+
export declare interface NiceHelpIconProps {
|
|
13258
|
+
/** Help content to show */
|
|
13259
|
+
content: string | HelpContent;
|
|
13260
|
+
/** Button size */
|
|
13261
|
+
size?: 'sm' | 'md' | 'lg';
|
|
13262
|
+
/** Custom className */
|
|
13263
|
+
className?: string;
|
|
13264
|
+
/** Callback when help is opened */
|
|
13265
|
+
onOpen?: () => void;
|
|
13266
|
+
}
|
|
13267
|
+
|
|
13268
|
+
export declare const NiceHelpProvider: default_2.FC<NiceHelpProviderProps>;
|
|
13269
|
+
|
|
13270
|
+
export declare interface NiceHelpProviderProps {
|
|
13271
|
+
children: ReactNode;
|
|
13272
|
+
/** Initial configuration */
|
|
13273
|
+
config?: Partial<HelpConfig>;
|
|
13274
|
+
/** Preloaded help content */
|
|
13275
|
+
helpContent?: Record<string, HelpContent>;
|
|
13276
|
+
}
|
|
13277
|
+
|
|
12964
13278
|
/**
|
|
12965
13279
|
* Conditionally hide content based on breakpoint
|
|
12966
13280
|
*
|
|
@@ -13450,6 +13764,37 @@ export declare interface NiceInfiniteScrollState<T> {
|
|
|
13450
13764
|
totalCount: number;
|
|
13451
13765
|
}
|
|
13452
13766
|
|
|
13767
|
+
export declare const NiceInlineHelp: default_2.FC<NiceInlineHelpProps>;
|
|
13768
|
+
|
|
13769
|
+
export declare interface NiceInlineHelpProps {
|
|
13770
|
+
/** Component name for help lookup */
|
|
13771
|
+
componentName: string;
|
|
13772
|
+
/** Override help content (instead of loading from .doc.json) */
|
|
13773
|
+
content?: HelpContent;
|
|
13774
|
+
/** Custom children to render inside help panel */
|
|
13775
|
+
children?: ReactNode;
|
|
13776
|
+
/** Position override */
|
|
13777
|
+
position?: 'top' | 'bottom' | 'tooltip' | 'inline';
|
|
13778
|
+
/** Initial expanded state */
|
|
13779
|
+
defaultExpanded?: boolean;
|
|
13780
|
+
/** Disable help for this instance */
|
|
13781
|
+
disabled?: boolean;
|
|
13782
|
+
/** Additional className */
|
|
13783
|
+
className?: string;
|
|
13784
|
+
/** Custom trigger icon */
|
|
13785
|
+
icon?: ReactNode;
|
|
13786
|
+
/** Title override */
|
|
13787
|
+
title?: string;
|
|
13788
|
+
/** Show props table */
|
|
13789
|
+
showProps?: boolean;
|
|
13790
|
+
/** Show examples */
|
|
13791
|
+
showExamples?: boolean;
|
|
13792
|
+
/** Show tips */
|
|
13793
|
+
showTips?: boolean;
|
|
13794
|
+
/** Compact mode */
|
|
13795
|
+
compact?: boolean;
|
|
13796
|
+
}
|
|
13797
|
+
|
|
13453
13798
|
export declare const NiceInPlaceEditor: default_2.ForwardRefExoticComponent<NiceInPlaceEditorProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
13454
13799
|
|
|
13455
13800
|
declare interface NiceInPlaceEditorOption {
|
|
@@ -13606,7 +13951,7 @@ declare interface NiceJSONOptions extends NiceExportOptions {
|
|
|
13606
13951
|
export declare const NiceKanbanBoard: default_2.ForwardRefExoticComponent<NiceKanbanBoardProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
13607
13952
|
|
|
13608
13953
|
/** Props for the {@link NiceKanbanBoard} component — a drag-and-drop kanban board with columns, WIP limits, and custom card rendering. */
|
|
13609
|
-
export declare interface NiceKanbanBoardProps extends NiceBaseProps {
|
|
13954
|
+
export declare interface NiceKanbanBoardProps extends NiceBaseProps, TracelessStorageProps {
|
|
13610
13955
|
/** Column definitions. */
|
|
13611
13956
|
columns: NiceKanbanColumn[];
|
|
13612
13957
|
/** Card data. */
|
|
@@ -13623,6 +13968,16 @@ export declare interface NiceKanbanBoardProps extends NiceBaseProps {
|
|
|
13623
13968
|
disabled?: boolean;
|
|
13624
13969
|
/** Size preset. */
|
|
13625
13970
|
size?: NiceSize;
|
|
13971
|
+
/** Allow columns to be collapsed */
|
|
13972
|
+
collapsible?: boolean;
|
|
13973
|
+
/** View mode (default, compact, detailed) */
|
|
13974
|
+
viewMode?: NiceKanbanViewMode;
|
|
13975
|
+
/** Callback when view mode changes */
|
|
13976
|
+
onViewModeChange?: (mode: NiceKanbanViewMode) => void;
|
|
13977
|
+
/** Initial collapsed columns (controlled) */
|
|
13978
|
+
collapsedColumns?: (string | number)[];
|
|
13979
|
+
/** Callback when collapsed columns change */
|
|
13980
|
+
onCollapsedColumnsChange?: (keys: (string | number)[]) => void;
|
|
13626
13981
|
}
|
|
13627
13982
|
|
|
13628
13983
|
/** A card on the {@link NiceKanbanBoard}. */
|
|
@@ -13653,6 +14008,19 @@ export declare interface NiceKanbanColumn {
|
|
|
13653
14008
|
limit?: number;
|
|
13654
14009
|
}
|
|
13655
14010
|
|
|
14011
|
+
/** Persisted state for NiceKanbanBoard */
|
|
14012
|
+
export declare interface NiceKanbanPersistedState {
|
|
14013
|
+
/** Collapsed column keys */
|
|
14014
|
+
collapsedColumns?: (string | number)[];
|
|
14015
|
+
/** Current view mode */
|
|
14016
|
+
viewMode?: NiceKanbanViewMode;
|
|
14017
|
+
/** Custom column widths (key -> width) */
|
|
14018
|
+
columnWidths?: Record<string, number>;
|
|
14019
|
+
}
|
|
14020
|
+
|
|
14021
|
+
/** Display mode for kanban cards */
|
|
14022
|
+
export declare type NiceKanbanViewMode = 'default' | 'compact' | 'detailed';
|
|
14023
|
+
|
|
13656
14024
|
/**
|
|
13657
14025
|
* A small question mark icon that shows keyboard shortcuts on hover.
|
|
13658
14026
|
* Use this to inform users about available keyboard interactions.
|
|
@@ -17037,6 +17405,22 @@ export declare interface NiceQuickAction {
|
|
|
17037
17405
|
shortcut?: string;
|
|
17038
17406
|
}
|
|
17039
17407
|
|
|
17408
|
+
/**
|
|
17409
|
+
* Lightweight inline help that shows on hover/focus
|
|
17410
|
+
*/
|
|
17411
|
+
export declare const NiceQuickHelp: default_2.FC<NiceQuickHelpProps>;
|
|
17412
|
+
|
|
17413
|
+
export declare interface NiceQuickHelpProps {
|
|
17414
|
+
/** Help text to display */
|
|
17415
|
+
text: string;
|
|
17416
|
+
/** Help position */
|
|
17417
|
+
position?: 'top' | 'right' | 'bottom' | 'left';
|
|
17418
|
+
/** Custom className */
|
|
17419
|
+
className?: string;
|
|
17420
|
+
/** Trigger element */
|
|
17421
|
+
children: ReactNode;
|
|
17422
|
+
}
|
|
17423
|
+
|
|
17040
17424
|
/**
|
|
17041
17425
|
* NiceQuiz — Interactive quiz component with gamification features
|
|
17042
17426
|
*
|
|
@@ -19850,6 +20234,55 @@ export declare interface NiceThemeSpacing {
|
|
|
19850
20234
|
space16?: string;
|
|
19851
20235
|
}
|
|
19852
20236
|
|
|
20237
|
+
/**
|
|
20238
|
+
* NiceThemeSwitcher — Traceless-aware theme selection component.
|
|
20239
|
+
*
|
|
20240
|
+
* @example
|
|
20241
|
+
* ```tsx
|
|
20242
|
+
* // Basic usage with themes
|
|
20243
|
+
* <NiceThemeSwitcher
|
|
20244
|
+
* themes={[
|
|
20245
|
+
* { key: 'light', label: 'Light', icon: '☀️', theme: lightTheme },
|
|
20246
|
+
* { key: 'dark', label: 'Dark', icon: '🌙', theme: darkTheme },
|
|
20247
|
+
* ]}
|
|
20248
|
+
* />
|
|
20249
|
+
*
|
|
20250
|
+
* // In traceless mode (no persistence)
|
|
20251
|
+
* <NiceThemeSwitcher themes={myThemes} storageMode="traceless" />
|
|
20252
|
+
* ```
|
|
20253
|
+
*/
|
|
20254
|
+
export declare function NiceThemeSwitcher({ variant, themes, size, showLabels, onThemeChange, defaultTheme, showSystemOption, className, style, disabled, label, hideLabel, cookies, localStorage, sessionStorage, storageMode, storageKey, }: NiceThemeSwitcherProps): default_2.ReactElement;
|
|
20255
|
+
|
|
20256
|
+
/**
|
|
20257
|
+
* Props for NiceThemeSwitcher.
|
|
20258
|
+
*/
|
|
20259
|
+
export declare interface NiceThemeSwitcherProps extends ThemeSwitcherStorageProps {
|
|
20260
|
+
/** Display variant */
|
|
20261
|
+
variant?: ThemeSwitcherVariant;
|
|
20262
|
+
/** Available theme options (required - define your light/dark themes) */
|
|
20263
|
+
themes: ThemeOption[];
|
|
20264
|
+
/** Size */
|
|
20265
|
+
size?: 'sm' | 'md' | 'lg';
|
|
20266
|
+
/** Show labels (only applies to 'icons' and 'buttons' variants) */
|
|
20267
|
+
showLabels?: boolean;
|
|
20268
|
+
/** Callback when theme changes */
|
|
20269
|
+
onThemeChange?: (theme: NiceTheme, key: string) => void;
|
|
20270
|
+
/** Default theme key (if not persisted or in traceless mode) */
|
|
20271
|
+
defaultTheme?: string;
|
|
20272
|
+
/** Show "System" option that follows OS preference */
|
|
20273
|
+
showSystemOption?: boolean;
|
|
20274
|
+
/** Custom class name */
|
|
20275
|
+
className?: string;
|
|
20276
|
+
/** Inline styles */
|
|
20277
|
+
style?: default_2.CSSProperties;
|
|
20278
|
+
/** Disabled state */
|
|
20279
|
+
disabled?: boolean;
|
|
20280
|
+
/** Label for the switcher */
|
|
20281
|
+
label?: string;
|
|
20282
|
+
/** Hide label visually (still accessible) */
|
|
20283
|
+
hideLabel?: boolean;
|
|
20284
|
+
}
|
|
20285
|
+
|
|
19853
20286
|
/** Text colour levels. */
|
|
19854
20287
|
export declare interface NiceThemeText {
|
|
19855
20288
|
primary: string;
|
|
@@ -22885,6 +23318,20 @@ export declare interface PackageDoc {
|
|
|
22885
23318
|
}>;
|
|
22886
23319
|
}
|
|
22887
23320
|
|
|
23321
|
+
/**
|
|
23322
|
+
* Page view event.
|
|
23323
|
+
*/
|
|
23324
|
+
export declare interface PageViewEvent {
|
|
23325
|
+
/** Page path */
|
|
23326
|
+
path: string;
|
|
23327
|
+
/** Page title */
|
|
23328
|
+
title?: string;
|
|
23329
|
+
/** Referrer */
|
|
23330
|
+
referrer?: string;
|
|
23331
|
+
/** Additional properties */
|
|
23332
|
+
properties?: Record<string, unknown>;
|
|
23333
|
+
}
|
|
23334
|
+
|
|
22888
23335
|
/**
|
|
22889
23336
|
* Panel customization.
|
|
22890
23337
|
*/
|
|
@@ -23277,6 +23724,11 @@ export declare type PreloadFn = () => Promise<void>;
|
|
|
23277
23724
|
*/
|
|
23278
23725
|
export declare function printPerformanceReport(): void;
|
|
23279
23726
|
|
|
23727
|
+
/**
|
|
23728
|
+
* Privacy level ordering (lower index = more private).
|
|
23729
|
+
*/
|
|
23730
|
+
export declare const PRIVACY_LEVEL_ORDER: TracelessMode[];
|
|
23731
|
+
|
|
23280
23732
|
export declare interface ProcessIncident {
|
|
23281
23733
|
id: string;
|
|
23282
23734
|
instanceId: string;
|
|
@@ -23942,6 +24394,12 @@ export declare function resolveDisplayStyleConfig(style: NiceDisplayStyle): Them
|
|
|
23942
24394
|
/** Resolve permissions for a set of user roles. */
|
|
23943
24395
|
export declare function resolvePermissions(userRoleIds: string[], policy: NiceRbacPolicy): NiceResolvedPermissions;
|
|
23944
24396
|
|
|
24397
|
+
/**
|
|
24398
|
+
* Resolves effective policy from hierarchy.
|
|
24399
|
+
* Instance ceiling → Tenant policy → Group policy → User preference
|
|
24400
|
+
*/
|
|
24401
|
+
export declare function resolveTracelessPolicy(instanceCeiling: TracelessInstanceCeiling, tenantPolicy?: TracelessTenantPolicy, groupPolicy?: TracelessGroupPolicy, userPreference?: TracelessUserPreference): ITracelessPolicy;
|
|
24402
|
+
|
|
23945
24403
|
export declare interface Resource {
|
|
23946
24404
|
id: string;
|
|
23947
24405
|
name: string;
|
|
@@ -25052,6 +25510,99 @@ export declare function startMark(name: string, detail?: Record<string, unknown>
|
|
|
25052
25510
|
/** Predefined status semantic categories. */
|
|
25053
25511
|
export declare type StatusCategory = 'success' | 'warning' | 'error' | 'info' | 'neutral' | 'custom';
|
|
25054
25512
|
|
|
25513
|
+
/**
|
|
25514
|
+
* Unified storage adapter that respects Traceless policy.
|
|
25515
|
+
* Gracefully degrades based on what's available.
|
|
25516
|
+
*/
|
|
25517
|
+
export declare class StorageAdapter {
|
|
25518
|
+
private policy;
|
|
25519
|
+
private namespace;
|
|
25520
|
+
private defaultBackend;
|
|
25521
|
+
constructor(policy: ITracelessPolicy, namespace?: string, defaultBackend?: StorageBackendType);
|
|
25522
|
+
/**
|
|
25523
|
+
* Gets the appropriate storage backend based on policy.
|
|
25524
|
+
*/
|
|
25525
|
+
private getBackend;
|
|
25526
|
+
/**
|
|
25527
|
+
* Gets the prefixed key.
|
|
25528
|
+
*/
|
|
25529
|
+
private getKey;
|
|
25530
|
+
/**
|
|
25531
|
+
* Gets a value from storage.
|
|
25532
|
+
*/
|
|
25533
|
+
get<T = string>(key: string, preferredBackend?: StorageBackendType): T | null;
|
|
25534
|
+
/**
|
|
25535
|
+
* Sets a value in storage.
|
|
25536
|
+
* Silently no-ops if storage is not available (graceful degradation).
|
|
25537
|
+
*/
|
|
25538
|
+
set(key: string, value: unknown, preferredBackend?: StorageBackendType): boolean;
|
|
25539
|
+
/**
|
|
25540
|
+
* Removes a value from storage.
|
|
25541
|
+
*/
|
|
25542
|
+
remove(key: string, preferredBackend?: StorageBackendType): boolean;
|
|
25543
|
+
/**
|
|
25544
|
+
* Clears all namespaced values from storage.
|
|
25545
|
+
*/
|
|
25546
|
+
clear(preferredBackend?: StorageBackendType): void;
|
|
25547
|
+
/**
|
|
25548
|
+
* Gets all keys in the namespace.
|
|
25549
|
+
*/
|
|
25550
|
+
keys(preferredBackend?: StorageBackendType): string[];
|
|
25551
|
+
/**
|
|
25552
|
+
* Checks if a key exists.
|
|
25553
|
+
*/
|
|
25554
|
+
has(key: string, preferredBackend?: StorageBackendType): boolean;
|
|
25555
|
+
/**
|
|
25556
|
+
* Gets info about current storage capabilities.
|
|
25557
|
+
*/
|
|
25558
|
+
getCapabilities(): StorageCapabilities;
|
|
25559
|
+
/**
|
|
25560
|
+
* Gets the actual backend type being used.
|
|
25561
|
+
*/
|
|
25562
|
+
private getActualBackendType;
|
|
25563
|
+
/**
|
|
25564
|
+
* Updates the policy (e.g., after user changes preferences).
|
|
25565
|
+
*/
|
|
25566
|
+
updatePolicy(policy: ITracelessPolicy): void;
|
|
25567
|
+
}
|
|
25568
|
+
|
|
25569
|
+
/**
|
|
25570
|
+
* Storage audit result.
|
|
25571
|
+
*/
|
|
25572
|
+
export declare interface StorageAuditResult {
|
|
25573
|
+
compliant: boolean;
|
|
25574
|
+
violations: StorageViolation[];
|
|
25575
|
+
auditedAt: number;
|
|
25576
|
+
policy: TracelessMode;
|
|
25577
|
+
}
|
|
25578
|
+
|
|
25579
|
+
/**
|
|
25580
|
+
* Storage backend type.
|
|
25581
|
+
*/
|
|
25582
|
+
export declare type StorageBackendType = 'memory' | 'session' | 'local';
|
|
25583
|
+
|
|
25584
|
+
/**
|
|
25585
|
+
* Storage capabilities info.
|
|
25586
|
+
*/
|
|
25587
|
+
declare interface StorageCapabilities {
|
|
25588
|
+
canUseCookies: boolean;
|
|
25589
|
+
canUseLocalStorage: boolean;
|
|
25590
|
+
canUseSessionStorage: boolean;
|
|
25591
|
+
canPersist: boolean;
|
|
25592
|
+
effectiveMode: TracelessMode;
|
|
25593
|
+
actualBackend: StorageBackendType;
|
|
25594
|
+
}
|
|
25595
|
+
|
|
25596
|
+
/**
|
|
25597
|
+
* Storage violation entry.
|
|
25598
|
+
*/
|
|
25599
|
+
export declare interface StorageViolation {
|
|
25600
|
+
type: 'cookie' | 'localStorage' | 'sessionStorage';
|
|
25601
|
+
severity: 'low' | 'medium' | 'high';
|
|
25602
|
+
message: string;
|
|
25603
|
+
data?: string;
|
|
25604
|
+
}
|
|
25605
|
+
|
|
25055
25606
|
/** Stream analytics */
|
|
25056
25607
|
export declare interface StreamAnalytics {
|
|
25057
25608
|
totalViewers: number;
|
|
@@ -25681,6 +26232,22 @@ export declare const themeOneDark: NiceTheme;
|
|
|
25681
26232
|
|
|
25682
26233
|
export declare const themeOnyx: NiceTheme;
|
|
25683
26234
|
|
|
26235
|
+
/**
|
|
26236
|
+
* Theme option for the switcher.
|
|
26237
|
+
*/
|
|
26238
|
+
export declare interface ThemeOption {
|
|
26239
|
+
/** Unique key */
|
|
26240
|
+
key: string;
|
|
26241
|
+
/** Display label */
|
|
26242
|
+
label: string;
|
|
26243
|
+
/** Icon or emoji */
|
|
26244
|
+
icon?: default_2.ReactNode;
|
|
26245
|
+
/** The theme object */
|
|
26246
|
+
theme: NiceTheme;
|
|
26247
|
+
/** Whether this is the system theme (follows OS preference) */
|
|
26248
|
+
isSystem?: boolean;
|
|
26249
|
+
}
|
|
26250
|
+
|
|
25684
26251
|
export declare const themeOrange: NiceTheme;
|
|
25685
26252
|
|
|
25686
26253
|
export declare const themePastelCoral: NiceTheme;
|
|
@@ -25701,6 +26268,11 @@ export declare const themePastelSky: NiceTheme;
|
|
|
25701
26268
|
|
|
25702
26269
|
export declare const themePink: NiceTheme;
|
|
25703
26270
|
|
|
26271
|
+
/**
|
|
26272
|
+
* Built-in theme presets.
|
|
26273
|
+
*/
|
|
26274
|
+
export declare type ThemePreset = 'light' | 'dark' | 'system' | 'custom';
|
|
26275
|
+
|
|
25704
26276
|
export declare const themeRealEstate: NiceTheme;
|
|
25705
26277
|
|
|
25706
26278
|
export declare const themeRetrowave: NiceTheme;
|
|
@@ -25735,6 +26307,27 @@ export declare const themeSummerBeach: NiceTheme;
|
|
|
25735
26307
|
|
|
25736
26308
|
export declare const themeSunset: NiceTheme;
|
|
25737
26309
|
|
|
26310
|
+
/**
|
|
26311
|
+
* Traceless storage props interface for theme switcher.
|
|
26312
|
+
*/
|
|
26313
|
+
declare interface ThemeSwitcherStorageProps {
|
|
26314
|
+
/** Whether this component may use cookies */
|
|
26315
|
+
cookies?: boolean;
|
|
26316
|
+
/** Whether this component may use localStorage */
|
|
26317
|
+
localStorage?: boolean;
|
|
26318
|
+
/** Whether this component may use sessionStorage */
|
|
26319
|
+
sessionStorage?: boolean;
|
|
26320
|
+
/** Override storage mode for this component */
|
|
26321
|
+
storageMode?: TracelessMode;
|
|
26322
|
+
/** Storage key for persisting component state */
|
|
26323
|
+
storageKey?: string;
|
|
26324
|
+
}
|
|
26325
|
+
|
|
26326
|
+
/**
|
|
26327
|
+
* Display variant for the theme switcher.
|
|
26328
|
+
*/
|
|
26329
|
+
export declare type ThemeSwitcherVariant = 'dropdown' | 'radio' | 'buttons' | 'icons';
|
|
26330
|
+
|
|
25738
26331
|
export declare const themeSynthwave: NiceTheme;
|
|
25739
26332
|
|
|
25740
26333
|
export declare const themeTeal: NiceTheme;
|
|
@@ -26151,6 +26744,360 @@ export declare interface TouchTargetProps {
|
|
|
26151
26744
|
onClick?: () => void;
|
|
26152
26745
|
}
|
|
26153
26746
|
|
|
26747
|
+
/**
|
|
26748
|
+
* Default values for Traceless storage props (safe by default).
|
|
26749
|
+
*/
|
|
26750
|
+
export declare const TRACELESS_DEFAULT_PROPS: Record<string, unknown>;
|
|
26751
|
+
|
|
26752
|
+
/**
|
|
26753
|
+
* Policy presets for each mode.
|
|
26754
|
+
*/
|
|
26755
|
+
export declare const TRACELESS_MODE_PRESETS: Record<TracelessMode, Omit<ITracelessPolicy, 'source' | 'resolvedAt' | 'version'>>;
|
|
26756
|
+
|
|
26757
|
+
/**
|
|
26758
|
+
* Standard Traceless storage prop descriptors.
|
|
26759
|
+
* Add these to any control that can persist state.
|
|
26760
|
+
*/
|
|
26761
|
+
export declare const TRACELESS_PROP_DESCRIPTORS: NiceConfiguratorPropDescriptor[];
|
|
26762
|
+
|
|
26763
|
+
/**
|
|
26764
|
+
* Displays current Traceless mode with visual indicator.
|
|
26765
|
+
*
|
|
26766
|
+
* @example
|
|
26767
|
+
* ```tsx
|
|
26768
|
+
* <TracelessBadge showTooltip onClick={() => openPrivacySettings()} />
|
|
26769
|
+
* ```
|
|
26770
|
+
*/
|
|
26771
|
+
export declare function TracelessBadge({ className, size, showTooltip, showLabel, onClick, label: customLabel, tooltipPosition, }: TracelessBadgeProps): default_2.ReactElement;
|
|
26772
|
+
|
|
26773
|
+
/**
|
|
26774
|
+
* Badge display info for TracelessBadge component.
|
|
26775
|
+
*/
|
|
26776
|
+
export declare interface TracelessBadgeInfo {
|
|
26777
|
+
mode: TracelessMode;
|
|
26778
|
+
icon: string;
|
|
26779
|
+
color: string;
|
|
26780
|
+
label: string;
|
|
26781
|
+
tooltip: string;
|
|
26782
|
+
cssClass: string;
|
|
26783
|
+
}
|
|
26784
|
+
|
|
26785
|
+
/**
|
|
26786
|
+
* Props for TracelessBadge component.
|
|
26787
|
+
*/
|
|
26788
|
+
export declare interface TracelessBadgeProps {
|
|
26789
|
+
/** Custom class name */
|
|
26790
|
+
className?: string;
|
|
26791
|
+
/** Size variant */
|
|
26792
|
+
size?: 'sm' | 'md' | 'lg';
|
|
26793
|
+
/** Show tooltip on hover */
|
|
26794
|
+
showTooltip?: boolean;
|
|
26795
|
+
/** Show label text */
|
|
26796
|
+
showLabel?: boolean;
|
|
26797
|
+
/** Click handler (e.g., to open settings) */
|
|
26798
|
+
onClick?: () => void;
|
|
26799
|
+
/** Custom label override */
|
|
26800
|
+
label?: string;
|
|
26801
|
+
/** Position for tooltip */
|
|
26802
|
+
tooltipPosition?: 'top' | 'bottom' | 'left' | 'right';
|
|
26803
|
+
}
|
|
26804
|
+
|
|
26805
|
+
/**
|
|
26806
|
+
* Compliance report structure.
|
|
26807
|
+
*/
|
|
26808
|
+
export declare interface TracelessComplianceReport {
|
|
26809
|
+
generatedAt: string;
|
|
26810
|
+
instanceId: string;
|
|
26811
|
+
tenantId?: string;
|
|
26812
|
+
effectiveMode: TracelessMode;
|
|
26813
|
+
cookies: {
|
|
26814
|
+
count: number;
|
|
26815
|
+
allowed: boolean;
|
|
26816
|
+
strictAuthOnly: boolean;
|
|
26817
|
+
thirdParty: boolean;
|
|
26818
|
+
tracking: boolean;
|
|
26819
|
+
};
|
|
26820
|
+
localStorage: {
|
|
26821
|
+
bytesUsed: number;
|
|
26822
|
+
allowed: boolean;
|
|
26823
|
+
keysCount: number;
|
|
26824
|
+
};
|
|
26825
|
+
sessionStorage: {
|
|
26826
|
+
bytesUsed: number;
|
|
26827
|
+
allowed: boolean;
|
|
26828
|
+
keysCount: number;
|
|
26829
|
+
};
|
|
26830
|
+
consentBanner: {
|
|
26831
|
+
required: boolean;
|
|
26832
|
+
shown: boolean;
|
|
26833
|
+
};
|
|
26834
|
+
compliance: {
|
|
26835
|
+
ePrivacyCompliant: boolean;
|
|
26836
|
+
gdprCompliant: boolean;
|
|
26837
|
+
pecrCompliant: boolean;
|
|
26838
|
+
};
|
|
26839
|
+
statement: string;
|
|
26840
|
+
}
|
|
26841
|
+
|
|
26842
|
+
/**
|
|
26843
|
+
* Traceless context value.
|
|
26844
|
+
*/
|
|
26845
|
+
export declare interface TracelessContextValue {
|
|
26846
|
+
/** Current effective policy */
|
|
26847
|
+
policy: ITracelessPolicy;
|
|
26848
|
+
/** Whether cookies are allowed */
|
|
26849
|
+
canUseCookies: boolean;
|
|
26850
|
+
/** Whether localStorage is allowed */
|
|
26851
|
+
canUseLocalStorage: boolean;
|
|
26852
|
+
/** Whether sessionStorage is allowed */
|
|
26853
|
+
canUseSessionStorage: boolean;
|
|
26854
|
+
/** Whether data can be persisted across sessions */
|
|
26855
|
+
canPersist: boolean;
|
|
26856
|
+
/** Current mode */
|
|
26857
|
+
mode: TracelessMode;
|
|
26858
|
+
/** Whether consent banner should be shown */
|
|
26859
|
+
requiresConsentBanner: boolean;
|
|
26860
|
+
/** Badge info for UI display */
|
|
26861
|
+
badgeInfo: TracelessBadgeInfo;
|
|
26862
|
+
/** Update user preference (can only increase privacy) */
|
|
26863
|
+
setUserPreference: (preference: Partial<TracelessUserPreference>) => void;
|
|
26864
|
+
/** Generate compliance report */
|
|
26865
|
+
generateReport: () => TracelessComplianceReport;
|
|
26866
|
+
/** Run storage audit */
|
|
26867
|
+
runAudit: () => StorageAuditResult;
|
|
26868
|
+
/** Force refresh policy from API */
|
|
26869
|
+
refreshPolicy: () => Promise<void>;
|
|
26870
|
+
/** Get storage adapter for a namespace */
|
|
26871
|
+
getStorageAdapter: (namespace?: string) => StorageAdapter;
|
|
26872
|
+
/** Whether policy is still loading */
|
|
26873
|
+
isLoading: boolean;
|
|
26874
|
+
/** Error if policy fetch failed */
|
|
26875
|
+
error: Error | null;
|
|
26876
|
+
}
|
|
26877
|
+
|
|
26878
|
+
/**
|
|
26879
|
+
* User group policy.
|
|
26880
|
+
*/
|
|
26881
|
+
declare interface TracelessGroupPolicy {
|
|
26882
|
+
groupId: string;
|
|
26883
|
+
tenantId: string;
|
|
26884
|
+
/** Policy mode (cannot exceed tenant policy) */
|
|
26885
|
+
mode: TracelessMode;
|
|
26886
|
+
/** Allow users in this group to self-lockdown? */
|
|
26887
|
+
allowUserLockdown: boolean;
|
|
26888
|
+
}
|
|
26889
|
+
|
|
26890
|
+
/**
|
|
26891
|
+
* Instance-level ceiling configuration.
|
|
26892
|
+
* Sets the maximum permissions any tenant/user can have.
|
|
26893
|
+
*/
|
|
26894
|
+
declare interface TracelessInstanceCeiling {
|
|
26895
|
+
/** Maximum cookie permission for all tenants */
|
|
26896
|
+
maxCookies: boolean;
|
|
26897
|
+
/** Maximum localStorage permission for all tenants */
|
|
26898
|
+
maxLocalStorage: boolean;
|
|
26899
|
+
/** Maximum sessionStorage permission for all tenants */
|
|
26900
|
+
maxSessionStorage: boolean;
|
|
26901
|
+
/** Instance-wide default mode */
|
|
26902
|
+
defaultMode: TracelessMode;
|
|
26903
|
+
/** Allow tenants to override? */
|
|
26904
|
+
allowTenantOverride: boolean;
|
|
26905
|
+
/** Instance ID for audit */
|
|
26906
|
+
instanceId: string;
|
|
26907
|
+
}
|
|
26908
|
+
|
|
26909
|
+
/**
|
|
26910
|
+
* @fileoverview Traceless™ — Zero-Trace Privacy Architecture
|
|
26911
|
+
* @module @nice2dev/ui/core/traceless
|
|
26912
|
+
*
|
|
26913
|
+
* Traceless™ is OmniVerk's flagship privacy feature that allows complete control
|
|
26914
|
+
* over client-side storage (cookies, localStorage, sessionStorage).
|
|
26915
|
+
*
|
|
26916
|
+
* "Żadnych śladów. Żadnych cookies. Żadnego localStorage. Żadnego bannera. Traceless."
|
|
26917
|
+
*
|
|
26918
|
+
* @example
|
|
26919
|
+
* ```tsx
|
|
26920
|
+
* import { TracelessProvider, useTracelessPolicy, StorageAdapter } from '@nice2dev/ui';
|
|
26921
|
+
*
|
|
26922
|
+
* // In your app root:
|
|
26923
|
+
* <TracelessProvider>
|
|
26924
|
+
* <App />
|
|
26925
|
+
* </TracelessProvider>
|
|
26926
|
+
*
|
|
26927
|
+
* // In components:
|
|
26928
|
+
* const { mode, canUseCookies, canUseLocalStorage } = useTracelessPolicy();
|
|
26929
|
+
* const storage = useStorageAdapter();
|
|
26930
|
+
* storage.set('key', 'value'); // Automatically respects policy
|
|
26931
|
+
* ```
|
|
26932
|
+
*/
|
|
26933
|
+
/**
|
|
26934
|
+
* Privacy storage modes from most private to most permissive.
|
|
26935
|
+
*
|
|
26936
|
+
* | Mode | Cookies | localStorage | sessionStorage | Consent Banner |
|
|
26937
|
+
* |------------|---------|--------------|----------------|----------------|
|
|
26938
|
+
* | traceless | ❌ | ❌ | ❌ | ❌ Never |
|
|
26939
|
+
* | ephemeral | ❌ | ❌ | ✅ | ❌ Never |
|
|
26940
|
+
* | private | 1 auth | ❌ | ✅ | ❌ Exempt |
|
|
26941
|
+
* | balanced | ❌ | ✅ | ✅ | ⚠️ Maybe |
|
|
26942
|
+
* | full | ✅ | ✅ | ✅ | ✅ Required |
|
|
26943
|
+
* | custom | Config | Config | Config | Config |
|
|
26944
|
+
*/
|
|
26945
|
+
export declare type TracelessMode = 'traceless' | 'ephemeral' | 'private' | 'balanced' | 'full' | 'custom';
|
|
26946
|
+
|
|
26947
|
+
/**
|
|
26948
|
+
* Full privacy settings panel.
|
|
26949
|
+
*/
|
|
26950
|
+
export declare function TracelessPanel({ className, showReport, showAudit, showModeSelector, availableModes, onModeChange, }: TracelessPanelProps): default_2.ReactElement;
|
|
26951
|
+
|
|
26952
|
+
/**
|
|
26953
|
+
* Props for TracelessPanel component.
|
|
26954
|
+
*/
|
|
26955
|
+
export declare interface TracelessPanelProps {
|
|
26956
|
+
/** Custom class name */
|
|
26957
|
+
className?: string;
|
|
26958
|
+
/** Show compliance report */
|
|
26959
|
+
showReport?: boolean;
|
|
26960
|
+
/** Show audit results */
|
|
26961
|
+
showAudit?: boolean;
|
|
26962
|
+
/** Show mode selector */
|
|
26963
|
+
showModeSelector?: boolean;
|
|
26964
|
+
/** Available modes to select from */
|
|
26965
|
+
availableModes?: TracelessMode[];
|
|
26966
|
+
/** Callback when user changes mode */
|
|
26967
|
+
onModeChange?: (mode: TracelessMode) => void;
|
|
26968
|
+
}
|
|
26969
|
+
|
|
26970
|
+
/**
|
|
26971
|
+
* Source hierarchy for policy resolution.
|
|
26972
|
+
* Lower sources cannot exceed permissions of higher sources.
|
|
26973
|
+
*/
|
|
26974
|
+
export declare type TracelessPolicySource = 'instance' | 'tenant' | 'group' | 'user' | 'control' | 'default';
|
|
26975
|
+
|
|
26976
|
+
/**
|
|
26977
|
+
* Provider component for Traceless context.
|
|
26978
|
+
*/
|
|
26979
|
+
export declare function TracelessProvider({ children, initialPolicy, policyEndpoint, instanceCeiling, tenantPolicy, groupPolicy, userPreference: initialUserPreference, instanceId, tenantId, onPolicyChange, }: TracelessProviderProps): default_2.ReactElement;
|
|
26980
|
+
|
|
26981
|
+
/**
|
|
26982
|
+
* Props for TracelessProvider.
|
|
26983
|
+
*/
|
|
26984
|
+
export declare interface TracelessProviderProps {
|
|
26985
|
+
children: ReactNode;
|
|
26986
|
+
/**
|
|
26987
|
+
* Initial policy to use before fetching from API.
|
|
26988
|
+
* Defaults to most restrictive (traceless).
|
|
26989
|
+
*/
|
|
26990
|
+
initialPolicy?: ITracelessPolicy;
|
|
26991
|
+
/**
|
|
26992
|
+
* API endpoint to fetch policy from.
|
|
26993
|
+
* If not provided, uses initialPolicy or default.
|
|
26994
|
+
*/
|
|
26995
|
+
policyEndpoint?: string;
|
|
26996
|
+
/**
|
|
26997
|
+
* Instance ceiling configuration.
|
|
26998
|
+
* If not provided, uses permissive defaults.
|
|
26999
|
+
*/
|
|
27000
|
+
instanceCeiling?: TracelessInstanceCeiling;
|
|
27001
|
+
/**
|
|
27002
|
+
* Tenant policy configuration.
|
|
27003
|
+
*/
|
|
27004
|
+
tenantPolicy?: TracelessTenantPolicy;
|
|
27005
|
+
/**
|
|
27006
|
+
* Group policy configuration.
|
|
27007
|
+
*/
|
|
27008
|
+
groupPolicy?: TracelessGroupPolicy;
|
|
27009
|
+
/**
|
|
27010
|
+
* User preference configuration.
|
|
27011
|
+
*/
|
|
27012
|
+
userPreference?: TracelessUserPreference;
|
|
27013
|
+
/**
|
|
27014
|
+
* Instance ID for reports.
|
|
27015
|
+
*/
|
|
27016
|
+
instanceId?: string;
|
|
27017
|
+
/**
|
|
27018
|
+
* Tenant ID for reports.
|
|
27019
|
+
*/
|
|
27020
|
+
tenantId?: string;
|
|
27021
|
+
/**
|
|
27022
|
+
* Callback when policy changes.
|
|
27023
|
+
*/
|
|
27024
|
+
onPolicyChange?: (policy: ITracelessPolicy) => void;
|
|
27025
|
+
}
|
|
27026
|
+
|
|
27027
|
+
/**
|
|
27028
|
+
* Standard props that can be added to any component to support Traceless policy.
|
|
27029
|
+
*/
|
|
27030
|
+
export declare interface TracelessStorageProps {
|
|
27031
|
+
/** Whether this component may use cookies */
|
|
27032
|
+
cookies?: boolean;
|
|
27033
|
+
/** Whether this component may use localStorage */
|
|
27034
|
+
localStorage?: boolean;
|
|
27035
|
+
/** Whether this component may use sessionStorage */
|
|
27036
|
+
sessionStorage?: boolean;
|
|
27037
|
+
/** Override storage mode for this component */
|
|
27038
|
+
storageMode?: TracelessMode;
|
|
27039
|
+
/** Storage key for persisting component state */
|
|
27040
|
+
storageKey?: string;
|
|
27041
|
+
}
|
|
27042
|
+
|
|
27043
|
+
/**
|
|
27044
|
+
* Tenant-level policy configuration.
|
|
27045
|
+
*/
|
|
27046
|
+
declare interface TracelessTenantPolicy {
|
|
27047
|
+
tenantId: string;
|
|
27048
|
+
/** Policy mode (cannot exceed instance ceiling) */
|
|
27049
|
+
mode: TracelessMode;
|
|
27050
|
+
/** Custom overrides */
|
|
27051
|
+
customPolicy?: Partial<ITracelessPolicy>;
|
|
27052
|
+
/** Allow user groups to override? */
|
|
27053
|
+
allowGroupOverride: boolean;
|
|
27054
|
+
/** Allow individual users to override? */
|
|
27055
|
+
allowUserOverride: boolean;
|
|
27056
|
+
/** Last updated timestamp */
|
|
27057
|
+
updatedAt: number;
|
|
27058
|
+
/** Updated by user ID */
|
|
27059
|
+
updatedBy?: string;
|
|
27060
|
+
}
|
|
27061
|
+
|
|
27062
|
+
/**
|
|
27063
|
+
* User self-lockdown configuration.
|
|
27064
|
+
* Users can only INCREASE privacy, never decrease it.
|
|
27065
|
+
*/
|
|
27066
|
+
declare interface TracelessUserPreference {
|
|
27067
|
+
userId: string;
|
|
27068
|
+
/** User's preferred mode (must be >= group mode in privacy) */
|
|
27069
|
+
preferredMode: TracelessMode;
|
|
27070
|
+
/** Explicit overrides (can only restrict, not permit) */
|
|
27071
|
+
restrictCookies?: boolean;
|
|
27072
|
+
restrictLocalStorage?: boolean;
|
|
27073
|
+
restrictSessionStorage?: boolean;
|
|
27074
|
+
/** When user set this preference */
|
|
27075
|
+
setAt: number;
|
|
27076
|
+
}
|
|
27077
|
+
|
|
27078
|
+
/**
|
|
27079
|
+
* Shows warning when functionality is degraded due to privacy settings.
|
|
27080
|
+
*/
|
|
27081
|
+
export declare function TracelessWarning({ useCase, className, message: customMessage, variant, dismissible, onDismiss, }: TracelessWarningProps): default_2.ReactElement | null;
|
|
27082
|
+
|
|
27083
|
+
/**
|
|
27084
|
+
* Props for TracelessWarning.
|
|
27085
|
+
*/
|
|
27086
|
+
export declare interface TracelessWarningProps {
|
|
27087
|
+
/** Use case type */
|
|
27088
|
+
useCase: 'preferences' | 'draft' | 'history' | 'auth' | 'grid-state';
|
|
27089
|
+
/** Custom class name */
|
|
27090
|
+
className?: string;
|
|
27091
|
+
/** Custom message override */
|
|
27092
|
+
message?: string;
|
|
27093
|
+
/** Variant */
|
|
27094
|
+
variant?: 'inline' | 'banner' | 'toast';
|
|
27095
|
+
/** Show dismiss button */
|
|
27096
|
+
dismissible?: boolean;
|
|
27097
|
+
/** Callback when dismissed */
|
|
27098
|
+
onDismiss?: () => void;
|
|
27099
|
+
}
|
|
27100
|
+
|
|
26154
27101
|
export declare interface Track {
|
|
26155
27102
|
id: string;
|
|
26156
27103
|
type: TrackType;
|
|
@@ -26475,6 +27422,11 @@ declare interface UseAICompletionResult {
|
|
|
26475
27422
|
clearHistory: () => void;
|
|
26476
27423
|
}
|
|
26477
27424
|
|
|
27425
|
+
/**
|
|
27426
|
+
* Hook to access analytics tracking functions.
|
|
27427
|
+
*/
|
|
27428
|
+
export declare function useAnalytics(): AnalyticsContextValue;
|
|
27429
|
+
|
|
26478
27430
|
export declare function useAuditLog(options?: UseAuditLogOptions): UseAuditLogResult;
|
|
26479
27431
|
|
|
26480
27432
|
export declare interface UseAuditLogOptions {
|
|
@@ -26826,6 +27778,19 @@ export declare function useComponentDisplayClass(componentType: NiceComponentTyp
|
|
|
26826
27778
|
*/
|
|
26827
27779
|
export declare function useComponentDisplayStyle(componentType: NiceComponentType, propStyle?: NiceDisplayStyle, primaryColor?: string): React.CSSProperties;
|
|
26828
27780
|
|
|
27781
|
+
/**
|
|
27782
|
+
* Hook to get help content for a specific component
|
|
27783
|
+
*/
|
|
27784
|
+
export declare function useComponentHelp(componentName: string): {
|
|
27785
|
+
content: HelpContent | null;
|
|
27786
|
+
loading: boolean;
|
|
27787
|
+
enabled: boolean;
|
|
27788
|
+
loadContent: () => Promise<void>;
|
|
27789
|
+
position: "tooltip" | "top" | "bottom" | "sidebar";
|
|
27790
|
+
defaultExpanded: boolean;
|
|
27791
|
+
showHelpIcon: boolean;
|
|
27792
|
+
};
|
|
27793
|
+
|
|
26829
27794
|
export declare function useContainerSize(ref: React.RefObject<HTMLElement | null>): UseContainerSizeResult;
|
|
26830
27795
|
|
|
26831
27796
|
export declare interface UseContainerSizeResult {
|
|
@@ -26849,6 +27814,15 @@ ControlPreferences[T] | undefined,
|
|
|
26849
27814
|
(updates: Partial<NonNullable<ControlPreferences[T]>>) => void
|
|
26850
27815
|
];
|
|
26851
27816
|
|
|
27817
|
+
/**
|
|
27818
|
+
* Hook for cookie banner visibility.
|
|
27819
|
+
*/
|
|
27820
|
+
export declare function useCookieBannerVisibility(): {
|
|
27821
|
+
shouldShow: boolean;
|
|
27822
|
+
mode: TracelessMode;
|
|
27823
|
+
dismiss: () => void;
|
|
27824
|
+
};
|
|
27825
|
+
|
|
26852
27826
|
/**
|
|
26853
27827
|
* Hook for managing dark mode with system preference detection and persistence.
|
|
26854
27828
|
* Automatically applies CSS classes to documentElement.
|
|
@@ -26949,6 +27923,29 @@ export declare interface UseDrawerResult {
|
|
|
26949
27923
|
setOpen: (open: boolean) => void;
|
|
26950
27924
|
}
|
|
26951
27925
|
|
|
27926
|
+
/**
|
|
27927
|
+
* Hook for persisting editor state with Traceless policy awareness.
|
|
27928
|
+
* Useful for NiceRichTextEditor, NiceCodeEditor, etc.
|
|
27929
|
+
*/
|
|
27930
|
+
export declare function useEditorStatePersistence({ storageKey, autoSaveInterval, maxVersions, }: {
|
|
27931
|
+
storageKey: string;
|
|
27932
|
+
autoSaveInterval?: number;
|
|
27933
|
+
maxVersions?: number;
|
|
27934
|
+
}): {
|
|
27935
|
+
draft: EditorPersistentState | null;
|
|
27936
|
+
saveDraft: (content: string, cursorPosition?: {
|
|
27937
|
+
line: number;
|
|
27938
|
+
column: number;
|
|
27939
|
+
}) => void;
|
|
27940
|
+
saveToHistory: () => void;
|
|
27941
|
+
restoreVersion: (version: number) => void;
|
|
27942
|
+
clearDraft: () => void;
|
|
27943
|
+
history: EditorPersistentState[];
|
|
27944
|
+
hasDraft: boolean;
|
|
27945
|
+
degraded: boolean;
|
|
27946
|
+
policy: ITracelessPolicy;
|
|
27947
|
+
};
|
|
27948
|
+
|
|
26952
27949
|
export declare function useERPReportDesigner(): ERPReportDesignerContextValue;
|
|
26953
27950
|
|
|
26954
27951
|
export declare function useFAQ(): FAQContextValue;
|
|
@@ -27053,6 +28050,30 @@ export declare interface UseGesturesReturn {
|
|
|
27053
28050
|
*/
|
|
27054
28051
|
export declare function useGridPreferences(gridId: string): [GridPreferences | undefined, (prefs: GridPreferences | undefined) => void, (updates: Partial<GridPreferences>) => void];
|
|
27055
28052
|
|
|
28053
|
+
/**
|
|
28054
|
+
* Hook for persisting grid state with Traceless policy awareness.
|
|
28055
|
+
*
|
|
28056
|
+
* @example
|
|
28057
|
+
* ```tsx
|
|
28058
|
+
* const { state, updateState, clearState, degraded } = useGridStatePersistence({
|
|
28059
|
+
* storageKey: 'my-grid',
|
|
28060
|
+
* initialState: { pageSize: 10 },
|
|
28061
|
+
* });
|
|
28062
|
+
*
|
|
28063
|
+
* // Show warning if storage is degraded
|
|
28064
|
+
* {degraded && <TracelessWarning useCase="grid-state" />}
|
|
28065
|
+
* ```
|
|
28066
|
+
*/
|
|
28067
|
+
export declare function useGridStatePersistence({ storageKey, initialState, onStateChange, storageType, }: GridStatePersistenceOptions): {
|
|
28068
|
+
state: GridPersistentState;
|
|
28069
|
+
updateState: (partial: Partial<GridPersistentState>) => void;
|
|
28070
|
+
setState: Dispatch<SetStateAction<GridPersistentState>>;
|
|
28071
|
+
clearState: () => void;
|
|
28072
|
+
degraded: boolean;
|
|
28073
|
+
effectiveStorageType: "local" | "memory" | "session";
|
|
28074
|
+
policy: ITracelessPolicy;
|
|
28075
|
+
};
|
|
28076
|
+
|
|
27056
28077
|
/**
|
|
27057
28078
|
* Hook that returns a function to trigger haptic feedback.
|
|
27058
28079
|
*/
|
|
@@ -27415,6 +28436,11 @@ export declare function useNiceDisplayStyle(): NiceDisplayStyleContextValue;
|
|
|
27415
28436
|
|
|
27416
28437
|
export declare function useNiceField<T = any>(source: NiceDataSource<T> | null | undefined, key: unknown, field: string): NiceFieldState;
|
|
27417
28438
|
|
|
28439
|
+
/**
|
|
28440
|
+
* Hook to access global help configuration and utilities
|
|
28441
|
+
*/
|
|
28442
|
+
export declare function useNiceHelp(): HelpContextValue;
|
|
28443
|
+
|
|
27418
28444
|
/**
|
|
27419
28445
|
* Hook that provides a `renderIcon` helper for resolving icon names or React nodes.
|
|
27420
28446
|
* Used internally by components that accept `icon: string | ReactNode` props.
|
|
@@ -27549,6 +28575,15 @@ export declare interface UsePanResult {
|
|
|
27549
28575
|
deltaY: number;
|
|
27550
28576
|
}
|
|
27551
28577
|
|
|
28578
|
+
/**
|
|
28579
|
+
* Hook for persisted state with graceful degradation.
|
|
28580
|
+
* Falls back to in-memory state if storage not available.
|
|
28581
|
+
*/
|
|
28582
|
+
export declare function usePersistedState<T>(key: string, defaultValue: T, options?: {
|
|
28583
|
+
namespace?: string;
|
|
28584
|
+
storageMode?: 'local' | 'session';
|
|
28585
|
+
}): [T, (value: T | ((prev: T) => T)) => void, boolean];
|
|
28586
|
+
|
|
27552
28587
|
/**
|
|
27553
28588
|
* Hook for detecting pinch-to-zoom gestures.
|
|
27554
28589
|
*/
|
|
@@ -27660,6 +28695,19 @@ export declare function useResolvedDisplayStyle(propStyle?: NiceDisplayStyle): {
|
|
|
27660
28695
|
config: ThemeVariantConfig;
|
|
27661
28696
|
};
|
|
27662
28697
|
|
|
28698
|
+
/**
|
|
28699
|
+
* Resolve storage props against the current Traceless policy.
|
|
28700
|
+
* Components can use this to determine what storage is actually available.
|
|
28701
|
+
*/
|
|
28702
|
+
export declare function useResolvedStorageProps(props: TracelessStorageProps): {
|
|
28703
|
+
cookiesAllowed: boolean;
|
|
28704
|
+
localStorageAllowed: boolean;
|
|
28705
|
+
sessionStorageAllowed: boolean;
|
|
28706
|
+
effectiveMode: TracelessMode;
|
|
28707
|
+
canPersist: boolean;
|
|
28708
|
+
degraded: boolean;
|
|
28709
|
+
};
|
|
28710
|
+
|
|
27663
28711
|
export declare function useResponsiveValue<T>(value: NiceResponsiveValue<T>, breakpoints?: NiceBreakpoints): T;
|
|
27664
28712
|
|
|
27665
28713
|
/** Return focus to the element that was focused before the component mounted */
|
|
@@ -27955,6 +29003,20 @@ export declare interface UseSliderReturn {
|
|
|
27955
29003
|
snap: (value: number) => number;
|
|
27956
29004
|
}
|
|
27957
29005
|
|
|
29006
|
+
/**
|
|
29007
|
+
* Hook to get a namespaced storage adapter.
|
|
29008
|
+
*/
|
|
29009
|
+
export declare function useStorageAdapter(namespace?: string): StorageAdapter;
|
|
29010
|
+
|
|
29011
|
+
/**
|
|
29012
|
+
* Hook for running compliance audit on mount.
|
|
29013
|
+
*/
|
|
29014
|
+
export declare function useStorageAudit(autoRun?: boolean): {
|
|
29015
|
+
result: StorageAuditResult | null;
|
|
29016
|
+
run: () => StorageAuditResult;
|
|
29017
|
+
isCompliant: boolean | null;
|
|
29018
|
+
};
|
|
29019
|
+
|
|
27958
29020
|
export declare function useStreamDashboard(): StreamDashboardContextValue;
|
|
27959
29021
|
|
|
27960
29022
|
/**
|
|
@@ -28087,6 +29149,80 @@ export declare function useTouchForm(): TouchFormContextType;
|
|
|
28087
29149
|
*/
|
|
28088
29150
|
export declare function useTouchSlider(options: UseSliderOptions): UseSliderReturn;
|
|
28089
29151
|
|
|
29152
|
+
/**
|
|
29153
|
+
* Drop-in replacement for localStorage that respects Traceless policy.
|
|
29154
|
+
* Use this when migrating existing components that use localStorage directly.
|
|
29155
|
+
*
|
|
29156
|
+
* @example
|
|
29157
|
+
* ```tsx
|
|
29158
|
+
* // Before:
|
|
29159
|
+
* const savedValue = localStorage.getItem('my-key');
|
|
29160
|
+
* localStorage.setItem('my-key', value);
|
|
29161
|
+
*
|
|
29162
|
+
* // After:
|
|
29163
|
+
* const { getItem, setItem } = useTracelessLocalStorage();
|
|
29164
|
+
* const savedValue = getItem('my-key');
|
|
29165
|
+
* setItem('my-key', value);
|
|
29166
|
+
* ```
|
|
29167
|
+
*/
|
|
29168
|
+
export declare function useTracelessLocalStorage(): {
|
|
29169
|
+
getItem: (key: string) => string | null;
|
|
29170
|
+
setItem: (key: string, value: string) => void;
|
|
29171
|
+
removeItem: (key: string) => void;
|
|
29172
|
+
clear: () => void;
|
|
29173
|
+
isAvailable: boolean;
|
|
29174
|
+
effectiveMode: TracelessMode;
|
|
29175
|
+
policy: ITracelessPolicy;
|
|
29176
|
+
};
|
|
29177
|
+
|
|
29178
|
+
/**
|
|
29179
|
+
* Hook to access the Traceless policy context.
|
|
29180
|
+
* Throws if used outside TracelessProvider.
|
|
29181
|
+
*/
|
|
29182
|
+
export declare function useTracelessPolicy(): TracelessContextValue;
|
|
29183
|
+
|
|
29184
|
+
/**
|
|
29185
|
+
* Hook to access Traceless policy with fallback.
|
|
29186
|
+
* Returns default policy if outside provider.
|
|
29187
|
+
*/
|
|
29188
|
+
export declare function useTracelessPolicySafe(): TracelessContextValue;
|
|
29189
|
+
|
|
29190
|
+
/**
|
|
29191
|
+
* Drop-in replacement for sessionStorage that respects Traceless policy.
|
|
29192
|
+
*/
|
|
29193
|
+
export declare function useTracelessSessionStorage(): {
|
|
29194
|
+
getItem: (key: string) => string | null;
|
|
29195
|
+
setItem: (key: string, value: string) => void;
|
|
29196
|
+
removeItem: (key: string) => void;
|
|
29197
|
+
clear: () => void;
|
|
29198
|
+
isAvailable: boolean;
|
|
29199
|
+
effectiveMode: TracelessMode;
|
|
29200
|
+
};
|
|
29201
|
+
|
|
29202
|
+
/**
|
|
29203
|
+
* Creates a storage object that mimics the Storage interface but respects
|
|
29204
|
+
* Traceless policy. Use this for migrating existing code that expects a
|
|
29205
|
+
* Storage-like object.
|
|
29206
|
+
*
|
|
29207
|
+
* @example
|
|
29208
|
+
* ```tsx
|
|
29209
|
+
* // In component
|
|
29210
|
+
* const storage = useTracelessStorage();
|
|
29211
|
+
*
|
|
29212
|
+
* // Uses same interface as localStorage/sessionStorage
|
|
29213
|
+
* storage.setItem('key', 'value');
|
|
29214
|
+
* const val = storage.getItem('key');
|
|
29215
|
+
* ```
|
|
29216
|
+
*/
|
|
29217
|
+
export declare function useTracelessStorage(preferredType?: 'local' | 'session'): {
|
|
29218
|
+
getItem(key: string): string | null;
|
|
29219
|
+
setItem(key: string, value: string): void;
|
|
29220
|
+
removeItem(key: string): void;
|
|
29221
|
+
clear(): void;
|
|
29222
|
+
readonly length: number;
|
|
29223
|
+
key(index: number): string | null;
|
|
29224
|
+
};
|
|
29225
|
+
|
|
28090
29226
|
export declare function useTranscoder(): TranscoderContextValue;
|
|
28091
29227
|
|
|
28092
29228
|
export declare function useUndoKeyboard<T = unknown>(manager: NiceUndoManager<T>): void;
|
|
@@ -28818,6 +29954,28 @@ export declare function withPolling<T extends Record<string, any>>(source: NiceD
|
|
|
28818
29954
|
setInterval(ms: number): void;
|
|
28819
29955
|
};
|
|
28820
29956
|
|
|
29957
|
+
/**
|
|
29958
|
+
* Adds Traceless storage props to a control registry entry.
|
|
29959
|
+
* Use this when registering controls that can persist state.
|
|
29960
|
+
*
|
|
29961
|
+
* @example
|
|
29962
|
+
* ```ts
|
|
29963
|
+
* const myControl = withTracelessProps({
|
|
29964
|
+
* type: 'NiceDataGrid',
|
|
29965
|
+
* label: 'Data Grid',
|
|
29966
|
+
* category: 'Data',
|
|
29967
|
+
* propDescriptors: [...myProps],
|
|
29968
|
+
* defaultProps: { ...myDefaults },
|
|
29969
|
+
* });
|
|
29970
|
+
* ```
|
|
29971
|
+
*/
|
|
29972
|
+
export declare function withTracelessProps(entry: NiceControlRegistryEntry): NiceControlRegistryEntry;
|
|
29973
|
+
|
|
29974
|
+
/**
|
|
29975
|
+
* Adds Traceless storage props to all entries in a control registry array.
|
|
29976
|
+
*/
|
|
29977
|
+
export declare function withTracelessPropsAll(entries: NiceControlRegistryEntry[]): NiceControlRegistryEntry[];
|
|
29978
|
+
|
|
28821
29979
|
/**
|
|
28822
29980
|
* HOC version of useWhyDidYouRender
|
|
28823
29981
|
*/
|