@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
package/CHANGELOG.md ADDED
@@ -0,0 +1,63 @@
1
+ # @nice2dev/ui-core — Changelog
2
+
3
+ All notable changes to the cross-framework core package.
4
+
5
+ ## [0.2.0] — 2026-03-25
6
+
7
+ ### Added — Component Core Abstractions (FAZA 8.1)
8
+
9
+ Framework-agnostic TypeScript contracts, state machines, validation utilities, and behavior logic for all major UI component categories. These are consumed by Angular/Vue/Web Component/Blazor adapters.
10
+
11
+ #### Shared
12
+ - `ComponentBaseProps`, `ComponentEvent`, `createComponentEvent`
13
+ - Types: `ComponentSize`, `ComponentVariant`, `ComponentDensity`, `Orientation`, `Placement`, `Alignment`
14
+
15
+ #### Buttons
16
+ - Contracts: `ButtonProps`, `ButtonGroupProps`, `DropDownButtonProps`, `IconButtonProps`, `SpeedDialProps`
17
+ - Types: `ButtonType`, `ButtonStyle`, `DropDownItem`, `SpeedDialAction`
18
+
19
+ #### Form Controls
20
+ - `FormFieldProps`, `ValidationRule`, `ValidationResult` + `validateField()` (pure validation, no framework deps)
21
+ - `TextInputProps` (type, mask, prefix/suffix, maxLength)
22
+ - `NumberInputProps` + `clampNumber()` (min/max/precision clamping)
23
+ - `SelectProps` + `filterOptions()`, `groupOptions()` (search/group utilities)
24
+ - `CheckboxProps`, `ToggleProps`, `SliderProps`
25
+ - `DatePickerProps` (date/datetime/time/month/year/range modes)
26
+ - `TextAreaProps`, `AutocompleteProps`, `ColorPickerProps`, `FileUploadProps`
27
+
28
+ #### Data Display
29
+ - `DataGridProps`, `ColumnDef`, `SortState`, `FilterState` + `multiSort()`, `applyFilters()`, `paginate()`
30
+ - `BadgeProps`, `ProgressProps`, `AvatarProps` + `getInitials()`
31
+
32
+ #### Navigation
33
+ - `TabsProps`, `TabItem` + `createTabsState()` (state machine with getActive/setActive/getNext/getPrev)
34
+ - `BreadcrumbProps`, `BreadcrumbItem` + `collapseBreadcrumb()` (keeps first + last N items)
35
+ - `AccordionProps`, `AccordionItem` + `toggleAccordion()` (single/multiple mode logic)
36
+ - `MenuProps`, `MenuItem`, `DrawerProps`
37
+
38
+ #### Overlays & Feedback
39
+ - `ModalProps`, `AlertProps`, `ToastConfig` + `ToastManager` class (queue, subscribe, dismiss, auto-expire)
40
+ - `PopoverProps`, `TooltipProps`
41
+
42
+ #### Charts
43
+ - `ChartProps`, `ChartSeries`, `ChartAxis`, `ChartLegend` (17 chart types)
44
+
45
+ #### Planning
46
+ - `SchedulerProps`, `SchedulerEvent`, `SchedulerResource` (day/week/month/timeline/agenda views)
47
+ - `GanttProps`, `GanttTask` (with dependencies, milestones, progress)
48
+
49
+ #### Tree View
50
+ - `TreeViewProps`, `TreeNode` + `flattenTree()` (for virtual scrolling), `searchTree()` (match with paths)
51
+
52
+ #### Layout
53
+ - `SplitterProps`, `SplitterPane` + `calculatePaneSizes()` (constrained resize logic)
54
+
55
+ ---
56
+
57
+ ## [0.1.0] — 2025-06-01
58
+
59
+ Initial release — facade package re-exporting core utilities from @nice2dev/ui.
60
+
61
+ - Types, Hooks, i18n, Icons, Accessibility, RTL, Animations, Responsive, Testing
62
+ - Access Control, Touch, Theme, DataSource (core + advanced + offline + aggregation)
63
+ - Display Style system
package/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # @nice2dev/ui-core
2
+
3
+ > Framework-agnostic component contracts — pure TypeScript types, validation logic, and state utilities powering cross-framework adapters (Angular, Vue, Web Components, Blazor).
4
+
5
+ ## Features
6
+
7
+ - **Component Contracts** — TypeScript interfaces for 30+ component types (buttons, forms, data display, navigation, overlays, charts, planning, layout)
8
+ - **Validation Engine** — `validateField()` with 10 rule types: required, minLength, maxLength, min, max, pattern, email, url, custom
9
+ - **State Utilities** — `createTabsState()`, `ToastManager`, `toggleAccordion()`, `calculatePaneSizes()`
10
+ - **Data Helpers** — `multiSort()`, `applyFilters()`, `paginate()`, `filterOptions()`, `groupOptions()`, `flattenTree()`, `searchTree()`
11
+ - **Display Styles** — animation tokens, responsive breakpoints, theme contracts, i18n types, DataSource abstraction
12
+ - **Zero Dependencies** — pure TypeScript, no runtime framework dependency
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install @nice2dev/ui-core
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```typescript
23
+ import {
24
+ type ButtonProps,
25
+ type TextInputProps,
26
+ type DataGridProps,
27
+ validateField,
28
+ multiSort,
29
+ applyFilters,
30
+ paginate,
31
+ ToastManager,
32
+ createTabsState,
33
+ } from '@nice2dev/ui-core';
34
+
35
+ // Validate a form field
36
+ const errors = validateField('email', 'user@example.com', [
37
+ { type: 'required' },
38
+ { type: 'email' },
39
+ ]);
40
+
41
+ // Manage toast notifications
42
+ const toasts = new ToastManager();
43
+ toasts.subscribe((list) => console.log('Toasts:', list));
44
+ toasts.add({ message: 'Saved!', severity: 'success' });
45
+ ```
46
+
47
+ ## Component Categories
48
+
49
+ | Category | Types |
50
+ |----------|-------|
51
+ | **Buttons** | Button, ButtonGroup, DropDownButton, IconButton, SpeedDial |
52
+ | **Form Controls** | TextInput, NumberInput, Select, Checkbox, Toggle, Slider, DatePicker, TextArea, Autocomplete, ColorPicker, FileUpload |
53
+ | **Data Display** | DataGrid (sort, filter, paginate), Badge, Progress, Avatar |
54
+ | **Navigation** | Tabs, Breadcrumb, Accordion, Menu, Drawer |
55
+ | **Overlays** | Modal, Alert, Toast, Popover, Tooltip |
56
+ | **Charts** | 17 chart types with series, axis, legend contracts |
57
+ | **Planning** | Scheduler, Gantt |
58
+ | **Tree & Layout** | TreeView, Splitter |
59
+
60
+ ## License
61
+
62
+ MIT © NiceToDev
@@ -0,0 +1,69 @@
1
+ /**
2
+ * NiceInlineHelp — Inline help panel for components
3
+ *
4
+ * Shows contextual help, tips, and documentation directly within the component.
5
+ * Supports multiple display modes: tooltip, collapsible panel, sidebar.
6
+ *
7
+ * @since 2.6.0
8
+ */
9
+ import React, { type ReactNode } from 'react';
10
+ import { type HelpContent } from './helpContext';
11
+ export interface NiceInlineHelpProps {
12
+ /** Component name for help lookup */
13
+ componentName: string;
14
+ /** Override help content (instead of loading from .doc.json) */
15
+ content?: HelpContent;
16
+ /** Custom children to render inside help panel */
17
+ children?: ReactNode;
18
+ /** Position override */
19
+ position?: 'top' | 'bottom' | 'tooltip' | 'inline';
20
+ /** Initial expanded state */
21
+ defaultExpanded?: boolean;
22
+ /** Disable help for this instance */
23
+ disabled?: boolean;
24
+ /** Additional className */
25
+ className?: string;
26
+ /** Custom trigger icon */
27
+ icon?: ReactNode;
28
+ /** Title override */
29
+ title?: string;
30
+ /** Show props table */
31
+ showProps?: boolean;
32
+ /** Show examples */
33
+ showExamples?: boolean;
34
+ /** Show tips */
35
+ showTips?: boolean;
36
+ /** Compact mode */
37
+ compact?: boolean;
38
+ }
39
+ export declare const NiceInlineHelp: React.FC<NiceInlineHelpProps>;
40
+ export interface NiceQuickHelpProps {
41
+ /** Help text to display */
42
+ text: string;
43
+ /** Help position */
44
+ position?: 'top' | 'right' | 'bottom' | 'left';
45
+ /** Custom className */
46
+ className?: string;
47
+ /** Trigger element */
48
+ children: ReactNode;
49
+ }
50
+ /**
51
+ * Lightweight inline help that shows on hover/focus
52
+ */
53
+ export declare const NiceQuickHelp: React.FC<NiceQuickHelpProps>;
54
+ export interface NiceHelpIconProps {
55
+ /** Help content to show */
56
+ content: string | HelpContent;
57
+ /** Button size */
58
+ size?: 'sm' | 'md' | 'lg';
59
+ /** Custom className */
60
+ className?: string;
61
+ /** Callback when help is opened */
62
+ onOpen?: () => void;
63
+ }
64
+ /**
65
+ * Help icon that shows help content on click
66
+ */
67
+ export declare const NiceHelpIcon: React.FC<NiceHelpIconProps>;
68
+ export default NiceInlineHelp;
69
+ //# sourceMappingURL=NiceInlineHelp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiceInlineHelp.d.ts","sourceRoot":"","sources":["../../src/core/NiceInlineHelp.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhF,OAAO,EAAoB,KAAK,WAAW,EAAiB,MAAM,eAAe,CAAC;AAKlF,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnD,6BAA6B;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAuID,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqHxD,CAAC;AA8EF,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwBtD,CAAC;AAMF,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B,kBAAkB;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0CpD,CAAC;AAIF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import type { NiceDisplayStyle } from '../core/displayStyle';
3
+ import type { NiceTheme, NiceThemeDarkMode } from '../core/theme';
4
+ import type { ThemeVariantConfig } from '../core/themeVariants';
5
+ export interface NiceThemeProviderProps {
6
+ /** Current theme */
7
+ theme: NiceTheme;
8
+ /** Optional dark companion theme (used when darkMode='auto' and system prefers dark) */
9
+ darkTheme?: NiceTheme;
10
+ /** Variant configuration for component styles */
11
+ variantConfig?: Partial<ThemeVariantConfig>;
12
+ /** Override dark mode preference ('light' | 'dark' | 'auto'); defaults to theme.darkMode */
13
+ darkMode?: NiceThemeDarkMode;
14
+ /**
15
+ * Global display style applied to all child Nice* components.
16
+ * Each component can override via its own `displayStyle` prop.
17
+ *
18
+ * Resolution order:
19
+ * 1. This prop (if set)
20
+ * 2. theme.recommendedDisplayStyle (if the theme pack carries one)
21
+ * 3. 'default'
22
+ *
23
+ * @see NiceDisplayStyle
24
+ */
25
+ displayStyle?: NiceDisplayStyle;
26
+ /** Animate theme transitions (default: true) */
27
+ animateTransitions?: boolean;
28
+ children: React.ReactNode;
29
+ }
30
+ export declare const NiceThemeProvider: React.FC<NiceThemeProviderProps>;
31
+ //# sourceMappingURL=NiceThemeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiceThemeProvider.d.ts","sourceRoot":"","sources":["../../src/core/NiceThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmE,MAAM,OAAO,CAAC;AAExF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAOhE,MAAM,WAAW,sBAAsB;IACrC,oBAAoB;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,wFAAwF;IACxF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,iDAAiD;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAUD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAgN9D,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @file NiceThemeVariants.tsx
3
+ * @description React components for theme variant configuration and preview
4
+ *
5
+ * @version 1.0.0
6
+ * @since 2026-03
7
+ * @license MIT
8
+ */
9
+ import React from 'react';
10
+ import { ThemeVariantConfig } from './themeVariants';
11
+ interface ThemeVariantContextValue {
12
+ config: ThemeVariantConfig;
13
+ setConfig: (config: Partial<ThemeVariantConfig>) => void;
14
+ applyPreset: (presetName: string) => void;
15
+ reset: () => void;
16
+ }
17
+ /**
18
+ * Hook to access theme variant context
19
+ */
20
+ export declare function useThemeVariants(): ThemeVariantContextValue;
21
+ export interface NiceThemeVariantProviderProps {
22
+ /** Initial variant config */
23
+ initialConfig?: Partial<ThemeVariantConfig>;
24
+ /** Storage key for persistence */
25
+ storageKey?: string;
26
+ /** Auto-apply to DOM */
27
+ autoApply?: boolean;
28
+ /** Children */
29
+ children: React.ReactNode;
30
+ }
31
+ /**
32
+ * Provider for theme variant configuration
33
+ */
34
+ export declare function NiceThemeVariantProvider({ initialConfig, storageKey, autoApply, children, }: NiceThemeVariantProviderProps): JSX.Element;
35
+ export interface NiceThemeVariantConfiguratorProps {
36
+ /** Show preset selector */
37
+ showPresets?: boolean;
38
+ /** Show live preview */
39
+ showPreview?: boolean;
40
+ /** Show CSS output */
41
+ showCSS?: boolean;
42
+ /** Collapsible sections */
43
+ collapsible?: boolean;
44
+ /** Custom class */
45
+ className?: string;
46
+ /** Style */
47
+ style?: React.CSSProperties;
48
+ }
49
+ /**
50
+ * UI for configuring theme variants
51
+ */
52
+ export declare function NiceThemeVariantConfigurator({ showPresets, showPreview, showCSS, collapsible, className, style, }: NiceThemeVariantConfiguratorProps): JSX.Element;
53
+ export type { ThemeVariantConfig, RadiusVariant, ShadowVariant, FillVariant, ButtonStyleVariant, InputStyleVariant, CardStyleVariant, AnimationIntensity, DensityVariant, } from './themeVariants';
54
+ export { DEFAULT_VARIANT_CONFIG, VARIANT_PRESETS, applyVariantConfig, generateVariantCSS, } from './themeVariants';
55
+ //# sourceMappingURL=NiceThemeVariants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiceThemeVariants.d.ts","sourceRoot":"","sources":["../../src/core/NiceThemeVariants.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAsE,MAAM,OAAO,CAAC;AAE3F,OAAO,EACL,kBAAkB,EAoBnB,MAAM,iBAAiB,CAAC;AAMzB,UAAU,wBAAwB;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IACzD,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAID;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,wBAAwB,CAM3D;AAMD,MAAM,WAAW,6BAA6B;IAC5C,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,aAAa,EACb,UAAiC,EACjC,SAAgB,EAChB,QAAQ,GACT,EAAE,6BAA6B,GAAG,GAAG,CAAC,OAAO,CAkD7C;AAMD,MAAM,WAAW,iCAAiC;IAChD,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,WAAkB,EAClB,WAAkB,EAClB,OAAe,EACf,WAAkB,EAClB,SAAS,EACT,KAAK,GACN,EAAE,iCAAiC,GAAG,GAAG,CAAC,OAAO,CAyPjD;AAyLD,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,304 @@
1
+ /**
2
+ * @file NiceUserPreferences.tsx
3
+ * @description User preferences system for storing and managing per-control customizations
4
+ *
5
+ * Features:
6
+ * - Per-control preferences storage
7
+ * - Grid column customization
8
+ * - Custom colors and styles
9
+ * - Layout preferences
10
+ * - Import/Export
11
+ * - Backend sync support
12
+ *
13
+ * @version 1.0.0
14
+ * @since 2026-03
15
+ * @license MIT
16
+ */
17
+ import React from 'react';
18
+ /**
19
+ * Grid column preferences
20
+ */
21
+ export interface GridColumnPreference {
22
+ /** Column ID */
23
+ id: string;
24
+ /** Visible */
25
+ visible?: boolean;
26
+ /** Width */
27
+ width?: number;
28
+ /** Order/index */
29
+ order?: number;
30
+ /** Pinned position */
31
+ pinned?: 'left' | 'right' | null;
32
+ /** Sort direction */
33
+ sort?: 'asc' | 'desc' | null;
34
+ /** Sort order for multi-sort */
35
+ sortIndex?: number;
36
+ /** Custom header */
37
+ customHeader?: string;
38
+ /** Custom cell background */
39
+ cellBackground?: string;
40
+ /** Custom cell text color */
41
+ cellColor?: string;
42
+ }
43
+ /**
44
+ * Grid preferences
45
+ */
46
+ export interface GridPreferences {
47
+ /** Column configs */
48
+ columns?: GridColumnPreference[];
49
+ /** Page size */
50
+ pageSize?: number;
51
+ /** Row height */
52
+ rowHeight?: number;
53
+ /** Filter state */
54
+ filters?: Record<string, any>;
55
+ /** Grouping columns */
56
+ groupBy?: string[];
57
+ /** Expanded groups */
58
+ expandedGroups?: string[];
59
+ /** Selected rows */
60
+ selectedRows?: (string | number)[];
61
+ /** Custom row colors */
62
+ rowColors?: Record<string | number, string>;
63
+ }
64
+ /**
65
+ * Chart preferences
66
+ */
67
+ export interface ChartPreferences {
68
+ /** Chart type override */
69
+ chartType?: string;
70
+ /** Custom colors */
71
+ colors?: string[];
72
+ /** Show/hide legend */
73
+ showLegend?: boolean;
74
+ /** Legend position */
75
+ legendPosition?: 'top' | 'bottom' | 'left' | 'right';
76
+ /** Show data labels */
77
+ showDataLabels?: boolean;
78
+ /** Custom title */
79
+ customTitle?: string;
80
+ /** Zoom state */
81
+ zoomState?: {
82
+ min: number;
83
+ max: number;
84
+ };
85
+ }
86
+ /**
87
+ * Form preferences
88
+ */
89
+ export interface FormPreferences {
90
+ /** Field order */
91
+ fieldOrder?: string[];
92
+ /** Hidden fields */
93
+ hiddenFields?: string[];
94
+ /** Column layout */
95
+ columns?: number;
96
+ /** Collapsed sections */
97
+ collapsedSections?: string[];
98
+ /** Default values */
99
+ defaultValues?: Record<string, any>;
100
+ }
101
+ /**
102
+ * Layout preferences
103
+ */
104
+ export interface LayoutPreferences {
105
+ /** Sidebar collapsed */
106
+ sidebarCollapsed?: boolean;
107
+ /** Sidebar width */
108
+ sidebarWidth?: number;
109
+ /** Panel sizes */
110
+ panelSizes?: Record<string, number>;
111
+ /** Tab order */
112
+ tabOrder?: string[];
113
+ /** Active tab */
114
+ activeTab?: string;
115
+ /** Splitter positions */
116
+ splitterPositions?: Record<string, number>;
117
+ }
118
+ /**
119
+ * Display preferences
120
+ */
121
+ export interface DisplayPreferences {
122
+ /** Date format */
123
+ dateFormat?: string;
124
+ /** Time format */
125
+ timeFormat?: string;
126
+ /** Number format */
127
+ numberFormat?: string;
128
+ /** Currency */
129
+ currency?: string;
130
+ /** Locale */
131
+ locale?: string;
132
+ /** Font size scale */
133
+ fontScale?: number;
134
+ /** High contrast mode */
135
+ highContrast?: boolean;
136
+ /** Reduced motion */
137
+ reducedMotion?: boolean;
138
+ }
139
+ /**
140
+ * Control-specific preferences
141
+ */
142
+ export interface ControlPreferences {
143
+ /** Grid preferences */
144
+ grid?: GridPreferences;
145
+ /** Chart preferences */
146
+ chart?: ChartPreferences;
147
+ /** Form preferences */
148
+ form?: FormPreferences;
149
+ /** Layout preferences */
150
+ layout?: LayoutPreferences;
151
+ /** Display preferences */
152
+ display?: DisplayPreferences;
153
+ /** Custom data */
154
+ custom?: Record<string, any>;
155
+ /** Last modified timestamp */
156
+ lastModified?: number;
157
+ }
158
+ /**
159
+ * User preferences store
160
+ */
161
+ export interface UserPreferencesStore {
162
+ /** Version for migrations */
163
+ version: number;
164
+ /** Global preferences */
165
+ global: {
166
+ display?: DisplayPreferences;
167
+ layout?: LayoutPreferences;
168
+ custom?: Record<string, any>;
169
+ };
170
+ /** Per-control preferences keyed by control ID */
171
+ controls: Record<string, ControlPreferences>;
172
+ /** Last sync timestamp */
173
+ lastSync?: number;
174
+ }
175
+ /**
176
+ * Storage adapter interface
177
+ */
178
+ export interface PreferencesStorageAdapter {
179
+ /** Load preferences */
180
+ load(): Promise<UserPreferencesStore | null>;
181
+ /** Save preferences */
182
+ save(preferences: UserPreferencesStore): Promise<void>;
183
+ /** Clear preferences */
184
+ clear(): Promise<void>;
185
+ }
186
+ /**
187
+ * Sync adapter interface for backend sync
188
+ */
189
+ export interface PreferencesSyncAdapter {
190
+ /** Fetch preferences from backend */
191
+ fetch(): Promise<UserPreferencesStore | null>;
192
+ /** Push preferences to backend */
193
+ push(preferences: UserPreferencesStore): Promise<void>;
194
+ /** Get last server timestamp */
195
+ getServerTimestamp(): Promise<number>;
196
+ }
197
+ /**
198
+ * LocalStorage adapter
199
+ */
200
+ export declare class LocalStorageAdapter implements PreferencesStorageAdapter {
201
+ private key;
202
+ constructor(key?: string);
203
+ load(): Promise<UserPreferencesStore | null>;
204
+ save(preferences: UserPreferencesStore): Promise<void>;
205
+ clear(): Promise<void>;
206
+ }
207
+ /**
208
+ * IndexedDB adapter for larger datasets
209
+ */
210
+ export declare class IndexedDBAdapter implements PreferencesStorageAdapter {
211
+ private dbName;
212
+ private storeName;
213
+ private db;
214
+ constructor(dbName?: string, storeName?: string);
215
+ private getDB;
216
+ load(): Promise<UserPreferencesStore | null>;
217
+ save(preferences: UserPreferencesStore): Promise<void>;
218
+ clear(): Promise<void>;
219
+ }
220
+ /**
221
+ * REST API sync adapter
222
+ */
223
+ export declare class RestAPISyncAdapter implements PreferencesSyncAdapter {
224
+ private baseUrl;
225
+ private getAuthHeaders?;
226
+ constructor(baseUrl: string, getAuthHeaders?: (() => Record<string, string>) | undefined);
227
+ private getHeaders;
228
+ fetch(): Promise<UserPreferencesStore | null>;
229
+ push(preferences: UserPreferencesStore): Promise<void>;
230
+ getServerTimestamp(): Promise<number>;
231
+ }
232
+ interface UserPreferencesContextValue {
233
+ /** Current preferences store */
234
+ preferences: UserPreferencesStore;
235
+ /** Is loading */
236
+ isLoading: boolean;
237
+ /** Is syncing */
238
+ isSyncing: boolean;
239
+ /** Last error */
240
+ error: Error | null;
241
+ getControlPreferences<T extends keyof ControlPreferences>(controlId: string, type: T): ControlPreferences[T] | undefined;
242
+ setControlPreferences<T extends keyof ControlPreferences>(controlId: string, type: T, prefs: ControlPreferences[T]): void;
243
+ updateControlPreferences<T extends keyof ControlPreferences>(controlId: string, type: T, updates: Partial<NonNullable<ControlPreferences[T]>>): void;
244
+ clearControlPreferences(controlId: string, type?: keyof ControlPreferences): void;
245
+ getGlobalPreferences<T extends 'display' | 'layout' | 'custom'>(type: T): UserPreferencesStore['global'][T];
246
+ setGlobalPreferences<T extends 'display' | 'layout' | 'custom'>(type: T, prefs: UserPreferencesStore['global'][T]): void;
247
+ sync(): Promise<void>;
248
+ exportPreferences(): string;
249
+ importPreferences(json: string): void;
250
+ resetAllPreferences(): void;
251
+ }
252
+ /**
253
+ * Hook to access user preferences
254
+ */
255
+ export declare function useUserPreferences(): UserPreferencesContextValue;
256
+ /**
257
+ * Hook for specific control preferences
258
+ */
259
+ export declare function useControlPreferences<T extends keyof ControlPreferences>(controlId: string, type: T): [
260
+ ControlPreferences[T] | undefined,
261
+ (prefs: ControlPreferences[T]) => void,
262
+ (updates: Partial<NonNullable<ControlPreferences[T]>>) => void
263
+ ];
264
+ /**
265
+ * Hook for grid-specific preferences (convenience)
266
+ */
267
+ export declare function useGridPreferences(gridId: string): [GridPreferences | undefined, (prefs: GridPreferences | undefined) => void, (updates: Partial<GridPreferences>) => void];
268
+ /**
269
+ * Hook for chart-specific preferences (convenience)
270
+ */
271
+ export declare function useChartPreferences(chartId: string): [ChartPreferences | undefined, (prefs: ChartPreferences | undefined) => void, (updates: Partial<ChartPreferences>) => void];
272
+ export interface NiceUserPreferencesProviderProps {
273
+ /** Storage adapter */
274
+ storage?: PreferencesStorageAdapter;
275
+ /** Sync adapter for backend sync */
276
+ syncAdapter?: PreferencesSyncAdapter;
277
+ /** Auto-sync interval in ms (0 = disabled) */
278
+ autoSyncInterval?: number;
279
+ /** Debounce save delay in ms */
280
+ saveDebounce?: number;
281
+ /** Children */
282
+ children: React.ReactNode;
283
+ }
284
+ export declare function NiceUserPreferencesProvider({ storage, syncAdapter, autoSyncInterval, saveDebounce, children, }: NiceUserPreferencesProviderProps): JSX.Element;
285
+ export interface NicePreferencesPanelProps {
286
+ /** Show global preferences section */
287
+ showGlobal?: boolean;
288
+ /** Show control preferences section */
289
+ showControls?: boolean;
290
+ /** Show export/import buttons */
291
+ showExportImport?: boolean;
292
+ /** Show sync button */
293
+ showSync?: boolean;
294
+ /** Custom class */
295
+ className?: string;
296
+ /** Style */
297
+ style?: React.CSSProperties;
298
+ }
299
+ /**
300
+ * UI panel for managing user preferences
301
+ */
302
+ export declare function NicePreferencesPanel({ showGlobal, showControls, showExportImport, showSync, className, style, }: NicePreferencesPanelProps): JSX.Element;
303
+ export {};
304
+ //# sourceMappingURL=NiceUserPreferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiceUserPreferences.d.ts","sourceRoot":"","sources":["../../src/core/NiceUserPreferences.tsx"],"names":[],"mappings":"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"}