entangle-ui 0.1.0-alpha.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,73 @@
1
+ # entangle-ui
2
+
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#19](https://github.com/SebastianWebdev/entangle-ui/pull/19) [`497d0f5`](https://github.com/SebastianWebdev/entangle-ui/commit/497d0f540f8abdf853cdf88aff8e944fee59d378) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - ### App Shell and Navigation
8
+
9
+ - Added `topChromeSeparator` and `sideChromeSeparator` props in `AppShell` to control border/shadow separation between top and side chrome areas.
10
+ - Refined `Tabs` visual behavior for compact editor layouts and added `pillsFrame` prop to optionally disable the pills container frame.
11
+ - Updated closable tabs to use the library `CloseIcon` by default.
12
+
13
+ ### Menu and Inspector Improvements
14
+
15
+ - Added configurable menu dropdown gap via `menuOffset` in `MenuBar`.
16
+ - Extended `PropertyPanel` with configurable `contentTopSpacing` and new `contentBottomSpacing` for better control of inspector spacing.
17
+ - Adjusted property row padding and full-width control layout to better support dense controls (including sliders and curve editor rows).
18
+
19
+ ### Typography
20
+
21
+ - Bumped default UI text from 10px (`fontSize.xs`) to 12px (`fontSize.md`) across interactive components: `Menu`, `MenuBar`, `Select`, `Button`, `Input`, `NumberInput`, `TreeView`, `StatusBar`, `FloatingPanel`, and `PropertyInspector` (rows, sections, search, panel).
22
+ - Kept 10px for true secondary text: helper text, tooltips, group labels, toast messages, axis labels.
23
+ - `TreeView`: fixed `line-height: 1` cutting off descenders (p/q/g/y), now uses theme `lineHeight.normal`.
24
+ - `TreeView`: simplified selected item indicator to background-only (removed left border and box-shadow on selected).
25
+ - `FloatingPanel`: replaced hardcoded `12px` font-size with theme token.
26
+ - Added `ContextMenu` component with submenu support, icon slots, and keyboard navigation.
27
+
28
+ ### Layout and Rendering Fixes
29
+
30
+ - Fixed `SplitPane` size reconciliation to avoid 1-2px layout drift caused by rounding.
31
+ - Improved overflow behavior in shell regions (`Toolbar`, `StatusBar`, tabs panels, and side slots) to prevent content from bleeding outside container bounds.
32
+ - Improved `CurveEditor` axis label layout and spacing when `labelX` / `labelY` are provided.
33
+
34
+ ## 0.1.0
35
+
36
+ ### Minor Changes
37
+
38
+ - [#17](https://github.com/SebastianWebdev/entangle-ui/pull/17) [`0854066`](https://github.com/SebastianWebdev/entangle-ui/commit/0854066dbf38c5d45bca24dc861c9eb03a1e98b3) Thanks [@SebastianWebdev](https://github.com/SebastianWebdev)! - ### New Components
39
+
40
+ - **Checkbox & CheckboxGroup** — Controlled/uncontrolled boolean input with indeterminate state, label positioning, sizes (sm/md/lg), variants (default/filled), and array value management via CheckboxGroup
41
+ - **Switch** — Toggle control with controlled/uncontrolled modes, label positioning, sizes, error state, and animated track/thumb
42
+ - **Select** — Dropdown single-value selection with search/filter, grouped options, keyboard navigation, clearable option, portal-based dropdown, sizes and variants (default/ghost/filled)
43
+ - **Tabs** — Compound component (Tabs, TabList, Tab, TabPanel) with variants (underline/pills/enclosed), vertical orientation, closable tabs, fullWidth mode, and keepMounted option
44
+ - **Accordion** — Compound component (Accordion, AccordionItem, AccordionTrigger, AccordionContent) with single/multiple expansion, collapsible option, variants, CSS grid animation
45
+ - **Popover** — Floating content container with focus trap, click outside/Escape handling, 12 placements, matchTriggerWidth, portal rendering, and scale+opacity animation
46
+ - **ScrollArea** — Custom scrollbar styling with keyboard scrolling support
47
+ - **SplitPane** — Draggable panel divider with configurable min/max sizes and collapse/expand
48
+ - **TreeView** — Hierarchical tree with keyboard navigation, selection management, and useTreeState hook
49
+ - **VectorInput** — Multi-value input (x/y/z/w) with linked/unlinked mode and per-component NumberInput editing
50
+ - **ColorPicker** — Full-featured color input with ColorArea, HueSlider, AlphaSlider, ColorInputs (Hex/RGB/HSL), ColorPalette, ColorPresets (700+ colors), ColorSwatch, and EyeDropper
51
+ - **Dialog** — Modal overlay with DialogHeader, DialogBody, DialogFooter, DialogClose, focus trap, and animations
52
+ - **Toast** — Notification system with ToastProvider, ToastContainer, ToastItem, useToast hook, auto-dismiss, progress bar, and severity variants
53
+ - **Collapsible** — Headless collapsible primitive for expandable content
54
+
55
+ ### Refactoring & Improvements
56
+
57
+ - Translated all Polish comments and JSDoc to English across the entire codebase
58
+ - Added `forwardRef` and `displayName` to all primitive and layout components
59
+ - Added `React.memo` to stateless presentational components (Icon, Paper, Text, Spacer, FormLabel, FormHelperText, InputWrapper)
60
+ - Split monolithic Menu.tsx (693 lines) into modular files (types, hook, helpers, styled, component)
61
+ - Migrated Stack, Flex, Grid, Spacer to BaseComponent pattern with `css` prop support
62
+ - Hardened `mathExpression.ts` with blocked identifiers whitelist and 20 adversarial security tests
63
+ - Added comprehensive keyboard navigation tests for Button, Input, NumberInput, Slider, and Menu
64
+
65
+ ### CI/CD
66
+
67
+ - Added GitHub Actions CI workflow (lint, build, type-check, test on PRs and main)
68
+ - Added GitHub Actions release workflow with Changesets and npm OIDC Trusted Publishing
69
+ - Configured Changesets for automated version management and changelog generation
70
+
71
+ ## 0.1.0-alpha.0
72
+
73
+ Initial alpha release.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Sebastian Gołębiowski
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Sebastian Gołębiowski
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.
package/README.md CHANGED
@@ -1,117 +1,171 @@
1
- # ⚛️ Entangle UI
2
-
3
- > Components quantumly entangled for professional editor interfaces
4
-
5
- [![npm version](https://badge.fury.io/js/entangle-ui.svg)](https://www.npmjs.com/package/entangle-ui)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
-
8
- **🚧 ALPHA VERSION - In active development, not ready for production**
9
-
10
- ## 🌌 Philosophy
11
-
12
- Entangle UI brings quantum mechanics principles to interface design. Components are **quantumly entangled** - when one changes state, others respond instantly across your entire application. Built specifically for professional editor interfaces, 3D tools, and precision applications where every interaction matters.
13
-
14
- ## ⚡ Features
15
-
16
- - **🔗 Quantum Entanglement**: Components synchronize instantly across your app
17
- - **🎯 Precision Controls**: Built for professional editor interfaces
18
- - **⚫ Minimal & Powerful**: Maximum functionality, minimal visual footprint
19
- - **📐 TypeScript First**: Complete type safety and IntelliSense support
20
- - **🌙 Dark Matter Theme**: Designed for professionals who build worlds
21
- - **🧪 Base UI Foundation**: Built on rock-solid headless components
22
-
23
- ## 🚀 Quick Start
24
-
25
- ```bash
26
- # Install alpha version
27
- npm install entangle-ui@alpha
28
- ```
29
-
30
- ```tsx
31
- import { Button, Input } from 'entangle-ui';
32
-
33
- function App() {
34
- return (
35
- <div>
36
- <Button>Entangle Reality</Button>
37
- <Input placeholder="Enter coordinates..." precision={3} />
38
- </div>
39
- );
40
- }
41
- ```
42
-
43
- ## 🎯 Built For
44
-
45
- - 🌍 **Planet generators** & procedural tools
46
- - 🎮 **Node-based editors** & visual programming
47
- - 🎨 **3D modeling interfaces** & CAD applications
48
- - ⚙️ **Parameter control systems** & scientific tools
49
- - 🔬 **Precision applications** requiring exact values
50
-
51
- ## 📚 Documentation
52
-
53
- - **[GitHub](https://github.com/yourusername/entangle-ui)** - Source code and issues
54
-
55
- ## 🧪 Current Status (Alpha)
56
-
57
- ### ✅ Available Components
58
-
59
- - [ ] Button - Quantum interaction states
60
- - [ ] Input - Precision numeric controls
61
- - [ ] Slider - Fine-tuned value manipulation
62
- - [ ] Toggle - Binary state quantum switches
63
-
64
- ### 🚧 In Development
65
-
66
- - Vector input controls
67
- - Color precision pickers
68
- - Node connection components
69
- - 3D viewport controls
70
-
71
- ### 📋 Roadmap
72
-
73
- - Canvas integration helpers
74
- - Advanced theming system
75
- - Animation state management
76
- - Plugin architecture
77
-
78
- ## 🛠️ Development
79
-
80
- ```bash
81
- # Clone the repository
82
- git clone https://github.com/yourusername/entangle-ui.git
83
- cd entangle-ui
84
-
85
- # Install dependencies
86
- npm install
87
-
88
- # Start Storybook
89
- npm run dev
90
-
91
- # Run tests
92
- npm run test
93
-
94
- # Build library
95
- npm run build
96
- ```
97
-
98
- ## 🤝 Contributing
99
-
100
- Entangle UI is in active alpha development. We welcome:
101
-
102
- - 🐛 **Bug reports** - Help us squash quantum bugs
103
- - 💡 **Feature requests** - What components do you need?
104
- - 🔬 **Testing** - Try it in your editor projects
105
- - 📖 **Documentation** - Help us explain quantum principles
106
-
107
- See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines.
108
-
109
- ## 📄 License
110
-
111
- MIT © [Your Name](https://github.com/yourusername)
112
-
113
- ---
114
-
115
- > *"Spooky action at a distance, but for UI components"* ⚛️
116
-
117
- **Built for creators who shape digital realities**
1
+ # Entangle UI
2
+
3
+ React + TypeScript component library for building editor-style interfaces.
4
+
5
+ `entangle-ui` is focused on dense, keyboard-friendly UI patterns used in tools like 3D editors, node editors, scene inspectors, and technical dashboards.
6
+
7
+ ## Status
8
+
9
+ This package is in alpha (`0.1.0-alpha.x`) and still evolving.
10
+
11
+ - API can change between alpha releases.
12
+ - Use in production only if you are comfortable with rapid iteration.
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install entangle-ui@alpha
18
+ ```
19
+
20
+ Peer dependencies:
21
+
22
+ - `react >= 19.1.0`
23
+ - `react-dom >= 19.1.0`
24
+ - `@emotion/react ^11`
25
+ - `@emotion/styled ^11`
26
+
27
+ ## Quick Start
28
+
29
+ ```tsx
30
+ import React from 'react';
31
+ import {
32
+ ThemeProvider,
33
+ AppShell,
34
+ MenuBar,
35
+ Toolbar,
36
+ StatusBar,
37
+ } from 'entangle-ui';
38
+
39
+ export function App() {
40
+ return (
41
+ <ThemeProvider>
42
+ <div style={{ width: '100vw', height: '100vh' }}>
43
+ <AppShell>
44
+ <AppShell.MenuBar>
45
+ <MenuBar>
46
+ <MenuBar.Menu label="File">
47
+ <MenuBar.Item onClick={() => {}}>New</MenuBar.Item>
48
+ </MenuBar.Menu>
49
+ </MenuBar>
50
+ </AppShell.MenuBar>
51
+
52
+ <AppShell.Toolbar>
53
+ <Toolbar aria-label="Main toolbar">
54
+ <Toolbar.Button onClick={() => {}}>Run</Toolbar.Button>
55
+ </Toolbar>
56
+ </AppShell.Toolbar>
57
+
58
+ <AppShell.Dock>
59
+ <div style={{ padding: 16 }}>Editor content</div>
60
+ </AppShell.Dock>
61
+
62
+ <AppShell.StatusBar>
63
+ <StatusBar>
64
+ <StatusBar.Section>
65
+ <StatusBar.Item>Ready</StatusBar.Item>
66
+ </StatusBar.Section>
67
+ </StatusBar>
68
+ </AppShell.StatusBar>
69
+ </AppShell>
70
+ </div>
71
+ </ThemeProvider>
72
+ );
73
+ }
74
+ ```
75
+
76
+ ## Theming
77
+
78
+ Entangle UI ships with design tokens and an Emotion-based `ThemeProvider`.
79
+
80
+ ```tsx
81
+ import { ThemeProvider, createTheme } from 'entangle-ui';
82
+
83
+ const theme = createTheme({
84
+ colors: {
85
+ accent: {
86
+ primary: '#2aa1ff',
87
+ },
88
+ },
89
+ });
90
+
91
+ export function Root({ children }: { children: React.ReactNode }) {
92
+ return <ThemeProvider theme={theme}>{children}</ThemeProvider>;
93
+ }
94
+ ```
95
+
96
+ ## What Is Included
97
+
98
+ ### Primitives
99
+
100
+ - `Button`, `IconButton`
101
+ - `Input`, `Text`, `Paper`, `Icon`
102
+ - `Checkbox`, `CheckboxGroup`, `Switch`
103
+ - `Tooltip`, `Popover`, `Collapsible`
104
+
105
+ ### Layout
106
+
107
+ - `Stack`, `Flex`, `Grid`, `Spacer`
108
+ - `Accordion`
109
+ - `ScrollArea`
110
+ - `SplitPane`, `SplitPanePanel`
111
+
112
+ ### Controls
113
+
114
+ - `NumberInput`, `Slider`, `Select`, `VectorInput`
115
+ - `ColorPicker`, `ColorPalette`, `ColorSwatch`, `EyeDropper`
116
+ - `TreeView`
117
+ - `CurveEditor` + helpers (`evaluateCurve`, `sampleCurve`, `createLinearCurve`, `domainToCanvas`)
118
+
119
+ ### Navigation
120
+
121
+ - `Menu`, `useMenu`
122
+ - `Tabs`, `TabList`, `Tab`, `TabPanel`
123
+
124
+ ### Shell
125
+
126
+ - `AppShell`, `useAppShell`
127
+ - `MenuBar`
128
+ - `Toolbar`
129
+ - `StatusBar`
130
+ - `FloatingPanel`, `FloatingManager`
131
+
132
+ ### Editor
133
+
134
+ - `PropertyPanel`, `PropertySection`, `PropertyRow`, `PropertyGroup`
135
+ - `usePropertyUndo`
136
+
137
+ ### Feedback and Form
138
+
139
+ - `Dialog` primitives (`Dialog`, `DialogHeader`, `DialogBody`, `DialogFooter`, `DialogClose`)
140
+ - `ToastProvider`, `useToast`
141
+ - `FormLabel`, `FormHelperText`, `InputWrapper`
142
+
143
+ ## Development
144
+
145
+ ```bash
146
+ npm install
147
+ npm run dev # Storybook
148
+ npm run test # Vitest
149
+ npm run lint
150
+ npm run type-check
151
+ npm run build
152
+ ```
153
+
154
+ ## Release Workflow
155
+
156
+ This repository uses Changesets.
157
+
158
+ ```bash
159
+ npm run changeset
160
+ npm run version-packages
161
+ npm run release
162
+ ```
163
+
164
+ ## Repository
165
+
166
+ - Source: `https://github.com/SebastianWebdev/entangle-ui`
167
+ - Issues: `https://github.com/SebastianWebdev/entangle-ui/issues`
168
+
169
+ ## License
170
+
171
+ MIT
package/dist/index.d.ts CHANGED
@@ -1,5 +1,12 @@
1
1
  export { Theme, ThemeProvider, Tokens, createTheme, tokens } from '@/theme';
2
- export { Button, ButtonProps, ButtonSize, ButtonVariant, Icon, IconProps, IconSize, Input, InputProps } from '@/components/primitives';
2
+ export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionSize, AccordionTrigger, AccordionTriggerProps, AccordionVariant, Flex, FlexAlign, FlexAlignContent, FlexDirection, FlexJustify, FlexProps, FlexSpacing, FlexWrap, Grid, GridProps, GridSize, GridSpacing, PanelConfig, PanelSize, PanelSurface, PanelSurfaceBodyProps, PanelSurfaceFooterProps, PanelSurfaceHeaderProps, PanelSurfaceProps, PanelSurfaceSize, ScrollArea, ScrollAreaDirection, ScrollAreaProps, ScrollbarVisibility, Spacer, SplitDirection, SplitPane, SplitPanePanel, SplitPanePanelProps, SplitPaneProps, Stack } from '@/components/layout';
3
+ export { Button, ButtonProps, ButtonSize, ButtonVariant, Checkbox, CheckboxGroup, CheckboxGroupProps, CheckboxProps, CheckboxSize, CheckboxVariant, Collapsible, CollapsibleProps, CollapsibleSize, CollisionAvoidance, Icon, IconButton, IconProps, IconSize, Input, InputProps, InputSize, Paper, PaperElevation, PaperNestLevel, PaperProps, PaperSpacing, Popover, PopoverClose, PopoverCloseProps, PopoverContent, PopoverContentProps, PopoverPlacement, PopoverProps, PopoverTrigger, PopoverTriggerProps, Switch, SwitchProps, SwitchSize, Text, TextAlign, TextColor, TextElement, TextLineHeight, TextProps, TextSize, TextVariant, TextWeight, Tooltip, TooltipCollisionConfig, TooltipCollisionStrategy, TooltipPlacement, TooltipProps } from '@/components/primitives';
4
+ export { CURVE_PRESETS, ColorFormat, ColorInputMode, ColorPalette, ColorPaletteProps, ColorPicker, ColorPickerProps, ColorPickerSize, ColorPreset, ColorSwatch, ColorSwatchProps, CurveBackgroundInfo, CurveBottomBarInfo, CurveData, CurveEditor, CurveEditorProps, CurveEditorSize, CurveKeyframe, CurvePreset, EARTH_PALETTE, EyeDropper, EyeDropperProps, MATERIAL_PALETTE, MONOCHROME_PALETTE, NEON_PALETTE, NumberInput, NumberInputProps, PASTEL_PALETTE, PROFESSIONAL_PALETTES, Palette, PaletteColor, PaletteShade, SKIN_TONES_PALETTE, Select, SelectOptionGroup, SelectOptionItem, SelectProps, SelectSize, SelectVariant, Slider, SliderProps, TAILWIND_PALETTE, TangentMode, TreeNodeData, TreeNodeState, TreeSelectionMode, TreeView, TreeViewProps, TreeViewSize, VINTAGE_PALETTE, VectorColorPreset, VectorDimension, VectorInput, VectorInputProps, VectorInputSize, VectorLabelPreset, createLinearCurve, domainToCanvas, evaluateCurve, sampleCurve } from '@/components/controls';
5
+ export { ContextMenu, ContextMenuBaseProps, ContextMenuConfig, ContextMenuProps, ContextMenuTargetDetails, ItemSelectionType, Menu, MenuBaseProps, MenuConfig, MenuGroup, MenuItem, MenuProps, MenuSelection, SubmenuTrigger, Tab, TabList, TabListProps, TabPanel, TabPanelProps, TabProps, Tabs, TabsProps, TabsSize, TabsVariant, UseContextMenuTargetResult, useContextMenuTarget, useMenu } from '@/components/navigation';
6
+ export { FormHelperText, FormHelperTextProps, FormLabel, FormLabelProps, InputWrapper, InputWrapperProps } from '@/components/form';
7
+ export { Dialog, DialogBody, DialogBodyProps, DialogClose, DialogFooter, DialogFooterProps, DialogHeader, DialogHeaderProps, DialogProps, DialogSize, ToastData, ToastPosition, ToastProvider, ToastProviderProps, ToastSeverity, UseToastReturn, useToast } from '@/components/feedback';
8
+ export { PropertyGroup, PropertyGroupProps, PropertyInspectorSize, PropertyPanel, PropertyPanelProps, PropertyRow, PropertyRowProps, PropertySection, PropertySectionProps, PropertyUndoEntry, UsePropertyUndoOptions, UsePropertyUndoReturn, usePropertyUndo } from '@/components/editor';
9
+ export { AppShell, AppShellContextValue, AppShellProps, AppShellSlotProps, AppShellToolbarSlotProps, FloatingManager, FloatingManagerProps, FloatingPanel, FloatingPanelProps, FloatingPanelSize, MenuBar, MenuBarItemProps, MenuBarMenuProps, MenuBarProps, MenuBarSeparatorProps, MenuBarSize, MenuBarSubProps, Position, StatusBar, StatusBarItemProps, StatusBarProps, StatusBarSectionProps, StatusBarSectionSide, StatusBarSize, StatusBarVariant, Toolbar, ToolbarButtonProps, ToolbarButtonVariant, ToolbarGroupProps, ToolbarOrientation, ToolbarPosition, ToolbarProps, ToolbarSeparatorProps, ToolbarSize, ToolbarSpacerProps, ToolbarToggleProps, useAppShell } from '@/components/shell';
3
10
  export { BaseComponent, Size, Variant } from '@/types/common';
4
11
  export { Brand, DeepPartial, DeepReadonly, KeyOf, LiteralUnion, NonEmptyArray, Prettify, RequireFields, StrictExclude, ValueOf } from '@/types/utilities';
5
12
  export { cn } from '@/utils/cn';