@nice2dev/ui-core 1.0.10

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.
Files changed (107) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +62 -0
  3. package/dist/core/NiceInlineHelp.d.ts +69 -0
  4. package/dist/core/NiceInlineHelp.d.ts.map +1 -0
  5. package/dist/core/NiceThemeProvider.d.ts +31 -0
  6. package/dist/core/NiceThemeProvider.d.ts.map +1 -0
  7. package/dist/core/NiceThemeVariants.d.ts +55 -0
  8. package/dist/core/NiceThemeVariants.d.ts.map +1 -0
  9. package/dist/core/NiceUserPreferences.d.ts +304 -0
  10. package/dist/core/NiceUserPreferences.d.ts.map +1 -0
  11. package/dist/core/a11y-advanced.d.ts +157 -0
  12. package/dist/core/a11y-advanced.d.ts.map +1 -0
  13. package/dist/core/a11y.d.ts +299 -0
  14. package/dist/core/a11y.d.ts.map +1 -0
  15. package/dist/core/access-control.d.ts +59 -0
  16. package/dist/core/access-control.d.ts.map +1 -0
  17. package/dist/core/adapters.d.ts +178 -0
  18. package/dist/core/adapters.d.ts.map +1 -0
  19. package/dist/core/ai.d.ts +191 -0
  20. package/dist/core/ai.d.ts.map +1 -0
  21. package/dist/core/animations.d.ts +48 -0
  22. package/dist/core/animations.d.ts.map +1 -0
  23. package/dist/core/colorBlind.d.ts +22 -0
  24. package/dist/core/colorBlind.d.ts.map +1 -0
  25. package/dist/core/datasource-advanced.d.ts +261 -0
  26. package/dist/core/datasource-advanced.d.ts.map +1 -0
  27. package/dist/core/datasource-aggregation.d.ts +221 -0
  28. package/dist/core/datasource-aggregation.d.ts.map +1 -0
  29. package/dist/core/datasource-hooks.d.ts +93 -0
  30. package/dist/core/datasource-hooks.d.ts.map +1 -0
  31. package/dist/core/datasource-offline.d.ts +201 -0
  32. package/dist/core/datasource-offline.d.ts.map +1 -0
  33. package/dist/core/datasource.d.ts +181 -0
  34. package/dist/core/datasource.d.ts.map +1 -0
  35. package/dist/core/displayMode.d.ts +46 -0
  36. package/dist/core/displayMode.d.ts.map +1 -0
  37. package/dist/core/displayStyle.d.ts +79 -0
  38. package/dist/core/displayStyle.d.ts.map +1 -0
  39. package/dist/core/helpContext.d.ts +97 -0
  40. package/dist/core/helpContext.d.ts.map +1 -0
  41. package/dist/core/hooks.d.ts +149 -0
  42. package/dist/core/hooks.d.ts.map +1 -0
  43. package/dist/core/i18n.d.ts +10 -0
  44. package/dist/core/i18n.d.ts.map +1 -0
  45. package/dist/core/i18nDictionaries.d.ts +4 -0
  46. package/dist/core/i18nDictionaries.d.ts.map +1 -0
  47. package/dist/core/icons.d.ts +45 -0
  48. package/dist/core/icons.d.ts.map +1 -0
  49. package/dist/core/icuMessageFormat.d.ts +10 -0
  50. package/dist/core/icuMessageFormat.d.ts.map +1 -0
  51. package/dist/core/leak-detector.d.ts +263 -0
  52. package/dist/core/leak-detector.d.ts.map +1 -0
  53. package/dist/core/omniverkTypes.d.ts +164 -0
  54. package/dist/core/omniverkTypes.d.ts.map +1 -0
  55. package/dist/core/pluginSystem.d.ts +97 -0
  56. package/dist/core/pluginSystem.d.ts.map +1 -0
  57. package/dist/core/profiling.d.ts +276 -0
  58. package/dist/core/profiling.d.ts.map +1 -0
  59. package/dist/core/responsive.d.ts +107 -0
  60. package/dist/core/responsive.d.ts.map +1 -0
  61. package/dist/core/rtl.d.ts +47 -0
  62. package/dist/core/rtl.d.ts.map +1 -0
  63. package/dist/core/sanitizeHtml.d.ts +16 -0
  64. package/dist/core/sanitizeHtml.d.ts.map +1 -0
  65. package/dist/core/testing.d.ts +107 -0
  66. package/dist/core/testing.d.ts.map +1 -0
  67. package/dist/core/theme.d.ts +213 -0
  68. package/dist/core/theme.d.ts.map +1 -0
  69. package/dist/core/themeGallery.d.ts +104 -0
  70. package/dist/core/themeGallery.d.ts.map +1 -0
  71. package/dist/core/themePacks.d.ts +53 -0
  72. package/dist/core/themePacks.d.ts.map +1 -0
  73. package/dist/core/themePacksExtended.d.ts +59 -0
  74. package/dist/core/themePacksExtended.d.ts.map +1 -0
  75. package/dist/core/themePresets.d.ts +10 -0
  76. package/dist/core/themePresets.d.ts.map +1 -0
  77. package/dist/core/themeVariants.d.ts +204 -0
  78. package/dist/core/themeVariants.d.ts.map +1 -0
  79. package/dist/core/touch.d.ts +208 -0
  80. package/dist/core/touch.d.ts.map +1 -0
  81. package/dist/core/traceless.d.ts +461 -0
  82. package/dist/core/traceless.d.ts.map +1 -0
  83. package/dist/core/types.d.ts +105 -0
  84. package/dist/core/types.d.ts.map +1 -0
  85. package/dist/core/useThemeIsDark.d.ts +15 -0
  86. package/dist/core/useThemeIsDark.d.ts.map +1 -0
  87. package/dist/index.cjs +128 -0
  88. package/dist/index.cjs.map +1 -0
  89. package/dist/index.d.ts +49 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.mjs +16881 -0
  92. package/dist/index.mjs.map +1 -0
  93. package/dist/performance/concurrent.d.ts +190 -0
  94. package/dist/performance/concurrent.d.ts.map +1 -0
  95. package/dist/performance/images.d.ts +189 -0
  96. package/dist/performance/images.d.ts.map +1 -0
  97. package/dist/performance/index.d.ts +17 -0
  98. package/dist/performance/index.d.ts.map +1 -0
  99. package/dist/performance/memory.d.ts +223 -0
  100. package/dist/performance/memory.d.ts.map +1 -0
  101. package/dist/performance/virtualization.d.ts +166 -0
  102. package/dist/performance/virtualization.d.ts.map +1 -0
  103. package/dist/performance/workers.d.ts +125 -0
  104. package/dist/performance/workers.d.ts.map +1 -0
  105. package/dist/viewSchema.d.ts +81 -0
  106. package/dist/viewSchema.d.ts.map +1 -0
  107. package/package.json +61 -0
@@ -0,0 +1,178 @@
1
+ /**
2
+ * adapters.ts — Integration adapters for popular state management & data libraries.
3
+ *
4
+ * React Query, Zustand, Redux, GraphQL subscriptions, OpenAPI.
5
+ */
6
+ export interface NiceDataSourceConfig<T = unknown> {
7
+ load: (params?: Record<string, unknown>) => Promise<T[]>;
8
+ insert?: (item: T) => Promise<T>;
9
+ update?: (key: unknown, values: Partial<T>) => Promise<T>;
10
+ remove?: (key: unknown) => Promise<void>;
11
+ }
12
+ /**
13
+ * Creates a NiceDataSource-compatible config from React Query hooks.
14
+ *
15
+ * Usage:
16
+ * const config = createReactQueryAdapter({
17
+ * queryKey: ['users'],
18
+ * queryFn: () => fetch('/api/users').then(r => r.json()),
19
+ * mutationFn: (item) => fetch('/api/users', { method: 'POST', body: JSON.stringify(item) }),
20
+ * });
21
+ */
22
+ export interface ReactQueryAdapterConfig<T> {
23
+ queryKey: unknown[];
24
+ queryFn: (params?: Record<string, unknown>) => Promise<T[]>;
25
+ mutationFn?: (item: T) => Promise<T>;
26
+ updateMutationFn?: (args: {
27
+ key: unknown;
28
+ values: Partial<T>;
29
+ }) => Promise<T>;
30
+ deleteMutationFn?: (key: unknown) => Promise<void>;
31
+ /** React Query's QueryClient instance. */
32
+ queryClient?: {
33
+ invalidateQueries: (opts: {
34
+ queryKey: unknown[];
35
+ }) => void;
36
+ };
37
+ }
38
+ export declare function createReactQueryAdapter<T>(config: ReactQueryAdapterConfig<T>): NiceDataSourceConfig<T>;
39
+ /**
40
+ * Connects a Zustand store to NiceDataSource.
41
+ *
42
+ * Usage:
43
+ * const adapter = createZustandAdapter(useUserStore, {
44
+ * getData: (state) => state.users,
45
+ * addItem: (state) => state.addUser,
46
+ * updateItem: (state) => state.updateUser,
47
+ * removeItem: (state) => state.removeUser,
48
+ * });
49
+ */
50
+ export interface ZustandAdapterConfig<TStore, T> {
51
+ getData: (state: TStore) => T[];
52
+ addItem?: (state: TStore) => (item: T) => void;
53
+ updateItem?: (state: TStore) => (key: unknown, values: Partial<T>) => void;
54
+ removeItem?: (state: TStore) => (key: unknown) => void;
55
+ }
56
+ export declare function createZustandAdapter<TStore, T>(useStore: {
57
+ getState: () => TStore;
58
+ }, config: ZustandAdapterConfig<TStore, T>): NiceDataSourceConfig<T>;
59
+ /**
60
+ * Redux middleware that syncs NiceDataGrid/NiceForm state with Redux store.
61
+ *
62
+ * Usage:
63
+ * const middleware = createNiceReduxMiddleware({
64
+ * actionPrefix: 'nice',
65
+ * onGridStateChange: (gridId, state) => store.dispatch(setGridState(gridId, state)),
66
+ * });
67
+ * const store = configureStore({ middleware: [middleware] });
68
+ */
69
+ export interface NiceReduxMiddlewareConfig {
70
+ actionPrefix?: string;
71
+ onGridStateChange?: (gridId: string, state: Record<string, unknown>) => void;
72
+ onFormStateChange?: (formId: string, values: Record<string, unknown>) => void;
73
+ }
74
+ export interface ReduxAction {
75
+ type: string;
76
+ payload?: unknown;
77
+ meta?: Record<string, unknown>;
78
+ }
79
+ export type ReduxMiddleware = (store: {
80
+ getState: () => unknown;
81
+ dispatch: (action: ReduxAction) => void;
82
+ }) => (next: (action: ReduxAction) => unknown) => (action: ReduxAction) => unknown;
83
+ export declare function createNiceReduxMiddleware(config?: NiceReduxMiddlewareConfig): ReduxMiddleware;
84
+ /** Redux actions for Nice components. */
85
+ export declare function niceReduxActions(prefix?: string): {
86
+ setGridState: (gridId: string, state: Record<string, unknown>) => ReduxAction;
87
+ setGridFilter: (gridId: string, filter: unknown) => ReduxAction;
88
+ setGridSort: (gridId: string, sort: unknown) => ReduxAction;
89
+ setFormValues: (formId: string, values: Record<string, unknown>) => ReduxAction;
90
+ resetForm: (formId: string) => ReduxAction;
91
+ };
92
+ /** Redux reducer for Nice component state. */
93
+ export declare function niceReduxReducer(prefix?: string): (state: Record<string, Record<string, unknown>> | undefined, action: ReduxAction) => Record<string, Record<string, unknown>>;
94
+ /**
95
+ * Creates a data source backed by GraphQL subscriptions for real-time data.
96
+ *
97
+ * Usage:
98
+ * const source = createGraphQLSubscriptionSource({
99
+ * url: 'wss://api.example.com/graphql',
100
+ * query: 'subscription { usersUpdated { id name } }',
101
+ * queryFn: () => fetch('/api/users').then(r => r.json()),
102
+ * });
103
+ */
104
+ export interface GraphQLSubscriptionConfig<T> {
105
+ url: string;
106
+ query: string;
107
+ variables?: Record<string, unknown>;
108
+ queryFn: () => Promise<T[]>;
109
+ onData?: (data: T[]) => void;
110
+ extractData?: (payload: unknown) => T[];
111
+ connectionParams?: Record<string, unknown>;
112
+ }
113
+ export interface GraphQLSubscriptionSource<T> extends NiceDataSourceConfig<T> {
114
+ subscribe: () => () => void;
115
+ unsubscribe: () => void;
116
+ }
117
+ export declare function createGraphQLSubscriptionSource<T>(config: GraphQLSubscriptionConfig<T>): GraphQLSubscriptionSource<T>;
118
+ /**
119
+ * Generates NiceDataGrid columns and NiceForm fields from an OpenAPI schema.
120
+ *
121
+ * Usage:
122
+ * const { columns, formFields } = await generateFromOpenAPI('/api/swagger.json', 'User');
123
+ */
124
+ export interface OpenAPIProperty {
125
+ type?: string;
126
+ format?: string;
127
+ title?: string;
128
+ description?: string;
129
+ enum?: string[];
130
+ minimum?: number;
131
+ maximum?: number;
132
+ minLength?: number;
133
+ maxLength?: number;
134
+ pattern?: string;
135
+ readOnly?: boolean;
136
+ nullable?: boolean;
137
+ $ref?: string;
138
+ items?: OpenAPIProperty;
139
+ }
140
+ export interface OpenAPISchema {
141
+ type?: string;
142
+ properties?: Record<string, OpenAPIProperty>;
143
+ required?: string[];
144
+ }
145
+ export interface GridColumnDef {
146
+ dataField: string;
147
+ caption: string;
148
+ dataType: 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'object';
149
+ width?: number;
150
+ allowEditing?: boolean;
151
+ visible?: boolean;
152
+ validationRules?: Record<string, unknown>[];
153
+ lookup?: {
154
+ dataSource: string[];
155
+ valueExpr: string;
156
+ displayExpr: string;
157
+ };
158
+ }
159
+ export interface FormFieldDef {
160
+ dataField: string;
161
+ label: string;
162
+ editorType: string;
163
+ editorOptions?: Record<string, unknown>;
164
+ validationRules?: Record<string, unknown>[];
165
+ isRequired?: boolean;
166
+ colSpan?: number;
167
+ }
168
+ export interface OpenAPIGeneratedUI {
169
+ columns: GridColumnDef[];
170
+ formFields: FormFieldDef[];
171
+ schema: OpenAPISchema;
172
+ }
173
+ export declare function generateFromOpenAPI(swaggerUrl: string, schemaName: string): Promise<OpenAPIGeneratedUI>;
174
+ /** Generate columns from schema object directly (no fetch). */
175
+ export declare function generateColumnsFromSchema(schema: OpenAPISchema): GridColumnDef[];
176
+ /** Generate form fields from schema object directly (no fetch). */
177
+ export declare function generateFormFieldsFromSchema(schema: OpenAPISchema): FormFieldDef[];
178
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/core/adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ import React from 'react';
2
+ /** Supported AI providers */
3
+ export type AIProvider = 'openai' | 'anthropic' | 'azure-openai' | 'local' | 'custom';
4
+ /** AI request message */
5
+ export interface AIMessage {
6
+ role: 'system' | 'user' | 'assistant';
7
+ content: string;
8
+ }
9
+ /** AI completion options */
10
+ export interface AICompletionOptions {
11
+ /** Model to use (e.g., 'gpt-4', 'claude-3') */
12
+ model?: string;
13
+ /** Temperature (0-2, lower = more deterministic) */
14
+ temperature?: number;
15
+ /** Max tokens to generate */
16
+ maxTokens?: number;
17
+ /** Stop sequences */
18
+ stop?: string[];
19
+ /** Enable streaming */
20
+ stream?: boolean;
21
+ /** Tool/function definitions for function calling */
22
+ tools?: AIToolDefinition[];
23
+ /** System prompt override */
24
+ systemPrompt?: string;
25
+ }
26
+ /** AI tool/function definition */
27
+ export interface AIToolDefinition {
28
+ name: string;
29
+ description: string;
30
+ parameters: Record<string, unknown>;
31
+ }
32
+ /** AI tool call result */
33
+ export interface AIToolCall {
34
+ id: string;
35
+ name: string;
36
+ arguments: Record<string, unknown>;
37
+ }
38
+ /** AI completion response */
39
+ export interface AICompletionResponse {
40
+ content: string;
41
+ finishReason: 'stop' | 'length' | 'tool_calls' | 'content_filter';
42
+ toolCalls?: AIToolCall[];
43
+ usage?: {
44
+ promptTokens: number;
45
+ completionTokens: number;
46
+ totalTokens: number;
47
+ };
48
+ }
49
+ /** Streaming chunk */
50
+ export interface AIStreamChunk {
51
+ content: string;
52
+ done: boolean;
53
+ toolCalls?: AIToolCall[];
54
+ }
55
+ /** AI provider configuration */
56
+ export interface AIProviderConfig {
57
+ /** Provider type */
58
+ provider: AIProvider;
59
+ /** API key (for hosted providers) */
60
+ apiKey?: string;
61
+ /** API endpoint URL */
62
+ endpoint?: string;
63
+ /** Default model */
64
+ defaultModel?: string;
65
+ /** Organization ID (for OpenAI) */
66
+ organizationId?: string;
67
+ /** Custom headers */
68
+ headers?: Record<string, string>;
69
+ /** Custom request handler for 'custom' provider */
70
+ customHandler?: (messages: AIMessage[], options: AICompletionOptions) => Promise<AICompletionResponse>;
71
+ /** Custom streaming handler */
72
+ customStreamHandler?: (messages: AIMessage[], options: AICompletionOptions, onChunk: (chunk: AIStreamChunk) => void) => Promise<void>;
73
+ }
74
+ /** AI context value */
75
+ export interface NiceAIContextValue {
76
+ /** Check if AI is configured */
77
+ isConfigured: boolean;
78
+ /** Current provider */
79
+ provider: AIProvider | null;
80
+ /** Default model */
81
+ defaultModel: string | null;
82
+ /** Complete a prompt (non-streaming) */
83
+ complete: (messages: AIMessage[], options?: AICompletionOptions) => Promise<AICompletionResponse>;
84
+ /** Stream a completion */
85
+ stream: (messages: AIMessage[], onChunk: (chunk: AIStreamChunk) => void, options?: AICompletionOptions) => Promise<void>;
86
+ /** Cancel ongoing requests */
87
+ cancel: () => void;
88
+ /** Check if a request is in progress */
89
+ isLoading: boolean;
90
+ /** Last error */
91
+ error: Error | null;
92
+ }
93
+ /** AI provider props */
94
+ export interface NiceAIProviderProps {
95
+ /** AI configuration */
96
+ config: AIProviderConfig;
97
+ /** Children */
98
+ children: React.ReactNode;
99
+ }
100
+ export declare const NiceAIProvider: React.FC<NiceAIProviderProps>;
101
+ export declare function useNiceAI(): NiceAIContextValue;
102
+ export interface UseAICompletionOptions {
103
+ /** Initial system prompt */
104
+ systemPrompt?: string;
105
+ /** Model to use */
106
+ model?: string;
107
+ /** Temperature */
108
+ temperature?: number;
109
+ /** Enable streaming by default */
110
+ streaming?: boolean;
111
+ }
112
+ export interface UseAICompletionResult {
113
+ /** Generated response */
114
+ response: string;
115
+ /** Is request in progress */
116
+ isLoading: boolean;
117
+ /** Error if any */
118
+ error: Error | null;
119
+ /** Send a message */
120
+ send: (message: string) => Promise<string>;
121
+ /** Send with streaming */
122
+ sendStreaming: (message: string, onChunk?: (content: string) => void) => Promise<string>;
123
+ /** Clear response */
124
+ clear: () => void;
125
+ /** Cancel ongoing request */
126
+ cancel: () => void;
127
+ /** Conversation history */
128
+ history: AIMessage[];
129
+ /** Clear history */
130
+ clearHistory: () => void;
131
+ }
132
+ export declare function useAICompletion(options?: UseAICompletionOptions): UseAICompletionResult;
133
+ /** Code completion options */
134
+ export interface UseCodeCompletionOptions {
135
+ /** Programming language */
136
+ language?: string;
137
+ /** Model to use */
138
+ model?: string;
139
+ }
140
+ /** Code completion hook for inline code suggestions */
141
+ export declare function useCodeCompletion(options?: UseCodeCompletionOptions): {
142
+ suggestion: string;
143
+ isLoading: boolean;
144
+ complete: (prefix: string, suffix?: string) => Promise<string>;
145
+ explain: (code: string) => Promise<string>;
146
+ refactor: (code: string, instruction: string) => Promise<string>;
147
+ generateFromComment: (comment: string) => Promise<string>;
148
+ };
149
+ /** Natural language filter hook for DataGrid */
150
+ export declare function useNaturalLanguageFilter(): {
151
+ parseFilter: (query: string, columns: {
152
+ field: string;
153
+ type: string;
154
+ label?: string;
155
+ }[]) => Promise<{
156
+ field: string;
157
+ operator: string;
158
+ value: unknown;
159
+ }[]>;
160
+ isLoading: boolean;
161
+ };
162
+ /** Chart type suggestion hook */
163
+ export declare function useChartSuggestion(): {
164
+ suggestChartType: (data: unknown[], description?: string) => Promise<{
165
+ type: string;
166
+ reason: string;
167
+ config: Record<string, unknown>;
168
+ }>;
169
+ generateInsights: (data: unknown[], chartType: string) => Promise<string[]>;
170
+ isLoading: boolean;
171
+ };
172
+ /** Form generation hook */
173
+ export declare function useFormGeneration(): {
174
+ generateForm: (description: string) => Promise<{
175
+ label: string;
176
+ field: string;
177
+ type: string;
178
+ required?: boolean;
179
+ options?: string[];
180
+ }[]>;
181
+ isLoading: boolean;
182
+ };
183
+ /** Text improvement hook for HtmlEditor */
184
+ export declare function useTextImprovement(): {
185
+ improveText: (text: string, style?: "professional" | "casual" | "formal" | "concise") => Promise<string>;
186
+ translate: (text: string, targetLanguage: string) => Promise<string>;
187
+ generateHtml: (prompt: string) => Promise<string>;
188
+ isLoading: boolean;
189
+ };
190
+ export default NiceAIProvider;
191
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/core/ai.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export type NiceAnimationPreset = 'fade' | 'slideUp' | 'slideDown' | 'slideLeft' | 'slideRight' | 'scaleUp' | 'scaleDown' | 'zoom' | 'flip' | 'none';
2
+ export type NiceAnimationTiming = 'fast' | 'normal' | 'slow' | number;
3
+ export interface NiceAnimationConfig {
4
+ /** Animation preset or 'none' to disable */
5
+ type: NiceAnimationPreset;
6
+ /** Duration: 'fast'=120ms, 'normal'=200ms, 'slow'=300ms, or number in ms */
7
+ duration?: NiceAnimationTiming;
8
+ /** CSS easing function */
9
+ easing?: string;
10
+ /** Delay before animation starts (ms) */
11
+ delay?: number;
12
+ }
13
+ export type NiceTransitionState = 'entering' | 'entered' | 'exiting' | 'exited';
14
+ export interface UseNiceTransitionOptions {
15
+ /** Whether the element is visible/shown */
16
+ visible: boolean;
17
+ /** Animation preset */
18
+ animation?: NiceAnimationPreset;
19
+ /** Duration */
20
+ duration?: NiceAnimationTiming;
21
+ /** Called when enter transition completes */
22
+ onEntered?: () => void;
23
+ /** Called when exit transition completes */
24
+ onExited?: () => void;
25
+ }
26
+ export interface UseNiceTransitionResult {
27
+ /** Current transition state */
28
+ state: NiceTransitionState;
29
+ /** Whether element should be rendered in DOM */
30
+ shouldRender: boolean;
31
+ /** CSS class name to apply */
32
+ className: string;
33
+ /** Inline style with transition duration */
34
+ style: React.CSSProperties;
35
+ }
36
+ export declare function useNiceTransition(options: UseNiceTransitionOptions): UseNiceTransitionResult;
37
+ export interface UseNiceCollapseOptions {
38
+ expanded: boolean;
39
+ duration?: NiceAnimationTiming;
40
+ }
41
+ export declare function useNiceCollapse(ref: React.RefObject<HTMLElement | null>, options: UseNiceCollapseOptions): React.CSSProperties;
42
+ /**
43
+ * Returns animation-delay for staggering child animations.
44
+ * Usage: style={{ animationDelay: niceStaggerDelay(index, 50) }}
45
+ */
46
+ export declare function niceStaggerDelay(index: number, interval?: number): string;
47
+ export declare function getNiceAnimationClass(preset: NiceAnimationPreset, phase: 'enter' | 'exit'): string;
48
+ //# sourceMappingURL=animations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../../src/core/animations.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,GACZ,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyCD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,eAAe;IACf,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,+BAA+B;IAC/B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,gDAAgD;IAChD,YAAY,EAAE,OAAO,CAAC;IACtB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB,CAsE5F;AAID,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EACxC,OAAO,EAAE,sBAAsB,GAC9B,KAAK,CAAC,aAAa,CA8BrB;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAE7E;AAID,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,OAAO,GAAG,MAAM,GACtB,MAAM,CAER"}
@@ -0,0 +1,22 @@
1
+ export type NiceColorBlindMode = 'none' | 'protanopia' | 'protanomaly' | 'deuteranopia' | 'deuteranomaly' | 'tritanopia' | 'tritanomaly' | 'achromatopsia' | 'achromatomaly';
2
+ export declare const NICE_COLOR_BLIND_MODES: NiceColorBlindMode[];
3
+ /** Apply a color-blind simulation filter to the given element. */
4
+ export declare function applyColorBlindMode(mode: NiceColorBlindMode, target?: HTMLElement | null): void;
5
+ export interface UseColorBlindModeOptions {
6
+ /** Element to filter. Defaults to <html>. */
7
+ target?: HTMLElement | null;
8
+ }
9
+ /**
10
+ * React hook that applies the chosen color-blind simulation filter to the
11
+ * target element (defaults to <html>) and cleans up automatically on unmount.
12
+ *
13
+ * Useful for accessibility audits — drop into your app shell and expose a
14
+ * select control to QA teams or designers.
15
+ */
16
+ export declare function useColorBlindMode(mode: NiceColorBlindMode, options?: UseColorBlindModeOptions): void;
17
+ /** Imperative helper exposed to controls outside React. */
18
+ export declare function createColorBlindController(target?: HTMLElement | null): {
19
+ set: (mode: NiceColorBlindMode) => void;
20
+ clear: () => void;
21
+ };
22
+ //# sourceMappingURL=colorBlind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorBlind.d.ts","sourceRoot":"","sources":["../../src/core/colorBlind.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,YAAY,GACZ,aAAa,GACb,cAAc,GACd,eAAe,GACf,YAAY,GACZ,aAAa,GACb,eAAe,GACf,eAAe,CAAC;AAEpB,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,EAUtD,CAAC;AAmEF,kEAAkE;AAClE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,kBAAkB,EACxB,MAAM,GAAE,WAAW,GAAG,IAAwE,GAC7F,IAAI,CASN;AAED,MAAM,WAAW,wBAAwB;IACvC,6CAA6C;IAC7C,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,wBAA6B,GACrC,IAAI,CAeN;AAED,2DAA2D;AAC3D,wBAAgB,0BAA0B,CACxC,MAAM,GAAE,WAAW,GAAG,IAAwE,GAC7F;IACD,GAAG,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACxC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CASA"}