xertica-ui 1.9.5 → 2.0.1
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 +36 -0
- package/README.md +48 -3
- package/components/assistant/index.ts +6 -0
- package/components/brand/index.ts +6 -0
- package/components/hooks/index.ts +6 -0
- package/components/layout/index.ts +2 -0
- package/components/media/index.ts +3 -0
- package/components/ui/index.ts +4 -1
- package/dist/AudioPlayer-BZ7bibzU.cjs +982 -0
- package/dist/AudioPlayer-e8LfNoqO.js +983 -0
- package/dist/CodeBlock-CuPtUM-7.cjs +2094 -0
- package/dist/CodeBlock-D6ffWXgc.js +2078 -0
- package/dist/ImageWithFallback-CGtidP6B.cjs +4542 -0
- package/dist/ImageWithFallback-lsg3pdFg.js +4508 -0
- package/dist/LanguageSelector-B5YfbHra.js +231 -0
- package/dist/LanguageSelector-D6uacAIM.cjs +230 -0
- package/dist/LayoutContext-BAql6ZRY.js +97 -0
- package/dist/LayoutContext-BvK-ggDa.cjs +96 -0
- package/dist/XerticaOrbe-KL1RBHzw.cjs +1354 -0
- package/dist/XerticaOrbe-zwS1p2a8.js +1355 -0
- package/dist/XerticaProvider-6btlAlzc.js +17 -0
- package/dist/XerticaProvider-BNoNOxQ5.cjs +16 -0
- package/dist/assistant.cjs.js +144 -0
- package/dist/assistant.es.js +144 -0
- package/dist/brand.cjs.js +11 -0
- package/dist/brand.es.js +11 -0
- package/dist/breadcrumb-CqJ7bHY5.js +161 -0
- package/dist/breadcrumb-m9Hb2_XN.cjs +177 -0
- package/dist/components/assistant/index.d.ts +6 -0
- package/dist/components/brand/index.d.ts +6 -0
- package/dist/components/hooks/index.d.ts +6 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/components/media/index.d.ts +3 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/contexts/ApiKeyContext.d.ts +17 -0
- package/dist/contexts/BrandColorsContext.d.ts +20 -0
- package/dist/contexts/LanguageContext.d.ts +11 -0
- package/dist/contexts/ThemeContext.d.ts +19 -0
- package/dist/contexts/index.d.ts +7 -0
- package/dist/contexts/theme-data.d.ts +81 -0
- package/dist/dropdown-menu-BDB5CmQs.cjs +247 -0
- package/dist/dropdown-menu-DQidbKBD.js +231 -0
- package/dist/google-maps-loader-BFWp6VPd.js +287 -0
- package/dist/google-maps-loader-eS3uQ5TA.cjs +287 -0
- package/dist/header-Dux00SI4.cjs +731 -0
- package/dist/header-EkGKXPsD.js +715 -0
- package/dist/hooks/useTheme.d.ts +1 -0
- package/dist/hooks.cjs.js +688 -0
- package/dist/hooks.es.js +688 -0
- package/dist/index-BhapVLVj.js +8 -0
- package/dist/index-D6fxYEY8.cjs +7 -0
- package/dist/index.cjs.js +2338 -0
- package/dist/index.es.js +2148 -14087
- package/dist/input-2R4loU86.js +127 -0
- package/dist/input-DWANSKGb.cjs +145 -0
- package/dist/layout.cjs.js +5 -0
- package/dist/layout.es.js +5 -0
- package/dist/media.cjs.js +6 -0
- package/dist/media.es.js +6 -0
- package/dist/rich-text-editor-B9UbSXNb.js +1203 -0
- package/dist/rich-text-editor-D6H84OcX.cjs +1220 -0
- package/dist/select-Bkbr0f-Z.cjs +162 -0
- package/dist/select-CvIVdX2n.js +145 -0
- package/dist/slider-Bc5Hd0y1.js +56 -0
- package/dist/slider-N7hFFj6X.cjs +73 -0
- package/dist/sonner-DeUIj0Zg.cjs +63 -0
- package/dist/sonner-g9RIfi35.js +47 -0
- package/dist/tooltip-Ded96neP.cjs +137 -0
- package/dist/tooltip-HDOoD2-0.js +120 -0
- package/dist/ui.cjs.js +269 -0
- package/dist/ui.es.js +269 -0
- package/dist/utils/demo-responses.d.ts +3 -0
- package/docs/ai-usage.md +1 -1
- package/docs/architecture.md +21 -1
- package/docs/components/accordion.md +1 -1
- package/docs/components/alert-dialog.md +1 -1
- package/docs/components/alert.md +1 -1
- package/docs/components/aspect-ratio.md +1 -1
- package/docs/components/assistant-chart.md +1 -1
- package/docs/components/assistant.md +2 -2
- package/docs/components/audio-player.md +1 -1
- package/docs/components/avatar.md +1 -1
- package/docs/components/badge.md +1 -1
- package/docs/components/breadcrumb.md +1 -1
- package/docs/components/button.md +1 -1
- package/docs/components/calendar.md +1 -1
- package/docs/components/card.md +2 -2
- package/docs/components/carousel.md +1 -1
- package/docs/components/chart.md +2 -2
- package/docs/components/checkbox.md +1 -1
- package/docs/components/collapsible.md +1 -1
- package/docs/components/command.md +1 -1
- package/docs/components/context-menu.md +1 -1
- package/docs/components/dialog.md +2 -2
- package/docs/components/drawer.md +1 -1
- package/docs/components/dropdown-menu.md +1 -1
- package/docs/components/empty.md +1 -1
- package/docs/components/file-upload.md +1 -1
- package/docs/components/floating-media-wrapper.md +1 -1
- package/docs/components/form.md +1 -1
- package/docs/components/header.md +1 -1
- package/docs/components/hover-card.md +1 -1
- package/docs/components/input-otp.md +1 -1
- package/docs/components/input.md +2 -2
- package/docs/components/label.md +2 -2
- package/docs/components/language-selector.md +1 -1
- package/docs/components/markdown-message.md +1 -1
- package/docs/components/menubar.md +1 -1
- package/docs/components/navigation-menu.md +1 -1
- package/docs/components/notification-badge.md +1 -1
- package/docs/components/page-header.md +3 -3
- package/docs/components/pagination.md +1 -1
- package/docs/components/popover.md +1 -1
- package/docs/components/progress.md +1 -1
- package/docs/components/radio-group.md +1 -1
- package/docs/components/rating.md +1 -1
- package/docs/components/resizable.md +1 -1
- package/docs/components/scroll-area.md +1 -1
- package/docs/components/search.md +2 -2
- package/docs/components/select.md +1 -1
- package/docs/components/separator.md +1 -1
- package/docs/components/sheet.md +1 -1
- package/docs/components/sidebar.md +2 -1
- package/docs/components/skeleton.md +1 -1
- package/docs/components/slider.md +1 -1
- package/docs/components/stats-card.md +1 -1
- package/docs/components/stepper.md +1 -1
- package/docs/components/switch.md +1 -1
- package/docs/components/table.md +1 -1
- package/docs/components/tabs.md +1 -1
- package/docs/components/textarea.md +1 -1
- package/docs/components/theme-toggle.md +1 -1
- package/docs/components/timeline.md +1 -1
- package/docs/components/toggle-group.md +1 -1
- package/docs/components/toggle.md +1 -1
- package/docs/components/tooltip.md +1 -1
- package/docs/components/tree-view.md +1 -1
- package/docs/components/use-mobile.md +1 -1
- package/docs/components/video-player.md +1 -1
- package/docs/components/xertica-logo.md +1 -1
- package/docs/components/xertica-orbe.md +1 -1
- package/docs/components/xertica-provider.md +2 -2
- package/docs/components/xertica-xlogo.md +1 -1
- package/docs/getting-started.md +23 -6
- package/docs/installation.md +23 -10
- package/docs/layout.md +4 -3
- package/docs/llms.md +17 -5
- package/docs/patterns/analytics.md +1 -1
- package/docs/patterns/crud.md +1 -1
- package/docs/patterns/dashboard.md +1 -1
- package/docs/patterns/form.md +1 -1
- package/docs/patterns/login.md +2 -2
- package/llms-full.txt +44 -0
- package/llms.txt +16 -1
- package/package.json +35 -3
- package/templates/guidelines/Guidelines.md +163 -76
- package/templates/package.json +2 -2
- package/templates/src/app/App.tsx +30 -155
- package/templates/src/app/components/AppLayout.tsx +40 -0
- package/templates/src/app/components/AuthGuard.tsx +76 -0
- package/templates/src/features/auth/index.ts +4 -0
- package/templates/src/features/auth/ui/AuthPageShell.tsx +34 -0
- package/templates/src/features/auth/ui/ForgotPasswordContent.tsx +70 -0
- package/templates/src/features/auth/ui/LoginContent.tsx +90 -0
- package/templates/src/features/auth/ui/ResetPasswordContent.tsx +151 -0
- package/templates/src/features/auth/ui/SocialLoginButtons.tsx +59 -0
- package/templates/src/features/auth/ui/VerifyEmailContent.tsx +82 -0
- package/templates/src/features/home/index.ts +1 -0
- package/templates/src/{app/pages/Home → features/home/ui}/HomeContent.tsx +100 -100
- package/templates/src/features/template/index.ts +5 -0
- package/templates/src/features/template/ui/FormTemplate.tsx +120 -0
- package/templates/src/{app/pages/Template → features/template/ui}/TemplateContent.tsx +3 -4
- package/templates/src/{app/pages → pages}/ForgotPasswordPage.tsx +6 -6
- package/templates/src/pages/HomePage.tsx +57 -0
- package/templates/src/{app/pages → pages}/LoginPage.tsx +10 -10
- package/templates/src/{app/pages → pages}/ResetPasswordPage.tsx +6 -6
- package/templates/src/pages/TemplatePage.tsx +30 -0
- package/templates/src/{app/pages → pages}/VerifyEmailPage.tsx +6 -6
- package/templates/src/shared/config/navigation.ts +20 -0
- package/templates/src/shared/lib/auth.ts +20 -0
- package/templates/src/shared/types/auth.ts +3 -0
- package/templates/src/app/App.d.ts +0 -1
- package/templates/src/app/App.js +0 -70
- package/templates/src/app/pages/CrudTemplate.d.ts +0 -1
- package/templates/src/app/pages/CrudTemplate.js +0 -6
- package/templates/src/app/pages/DashboardTemplate.d.ts +0 -1
- package/templates/src/app/pages/DashboardTemplate.js +0 -9
- package/templates/src/app/pages/ForgotPassword/ForgotPasswordContent.d.ts +0 -1
- package/templates/src/app/pages/ForgotPassword/ForgotPasswordContent.js +0 -21
- package/templates/src/app/pages/ForgotPassword/ForgotPasswordContent.tsx +0 -148
- package/templates/src/app/pages/ForgotPasswordPage.d.ts +0 -1
- package/templates/src/app/pages/ForgotPasswordPage.js +0 -5
- package/templates/src/app/pages/FormTemplate.d.ts +0 -1
- package/templates/src/app/pages/FormTemplate.js +0 -23
- package/templates/src/app/pages/FormTemplate.tsx +0 -109
- package/templates/src/app/pages/Home/HomeContent.d.ts +0 -1
- package/templates/src/app/pages/Home/HomeContent.js +0 -24
- package/templates/src/app/pages/HomePage.d.ts +0 -8
- package/templates/src/app/pages/HomePage.js +0 -24
- package/templates/src/app/pages/HomePage.tsx +0 -67
- package/templates/src/app/pages/Login/LoginContent.d.ts +0 -5
- package/templates/src/app/pages/Login/LoginContent.js +0 -28
- package/templates/src/app/pages/Login/LoginContent.tsx +0 -183
- package/templates/src/app/pages/LoginPage.d.ts +0 -5
- package/templates/src/app/pages/LoginPage.js +0 -5
- package/templates/src/app/pages/LoginTemplate.d.ts +0 -1
- package/templates/src/app/pages/LoginTemplate.js +0 -6
- package/templates/src/app/pages/ResetPassword/ResetPasswordContent.d.ts +0 -1
- package/templates/src/app/pages/ResetPassword/ResetPasswordContent.js +0 -73
- package/templates/src/app/pages/ResetPassword/ResetPasswordContent.tsx +0 -199
- package/templates/src/app/pages/ResetPasswordPage.d.ts +0 -1
- package/templates/src/app/pages/ResetPasswordPage.js +0 -5
- package/templates/src/app/pages/Template/TemplateContent.d.ts +0 -1
- package/templates/src/app/pages/Template/TemplateContent.js +0 -75
- package/templates/src/app/pages/TemplatePage.d.ts +0 -8
- package/templates/src/app/pages/TemplatePage.js +0 -11
- package/templates/src/app/pages/TemplatePage.tsx +0 -46
- package/templates/src/app/pages/VerifyEmail/VerifyEmailContent.d.ts +0 -1
- package/templates/src/app/pages/VerifyEmail/VerifyEmailContent.js +0 -24
- package/templates/src/app/pages/VerifyEmail/VerifyEmailContent.tsx +0 -166
- package/templates/src/app/pages/VerifyEmailPage.d.ts +0 -1
- package/templates/src/app/pages/VerifyEmailPage.js +0 -5
- package/templates/src/app/routes.d.ts +0 -10
- package/templates/src/app/routes.js +0 -22
- package/templates/src/app/routes.tsx +0 -33
- package/templates/src/main.d.ts +0 -1
- package/templates/src/main.js +0 -6
- /package/templates/src/{app/pages → features/template/ui}/CrudTemplate.tsx +0 -0
- /package/templates/src/{app/pages → features/template/ui}/DashboardTemplate.tsx +0 -0
- /package/templates/src/{app/pages → features/template/ui}/LoginTemplate.tsx +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,42 @@ Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [2.0.0] — 2026-05-11
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Subpath exports** — The package now exposes 6 granular entry points alongside the full root barrel:
|
|
15
|
+
- `xertica-ui/ui` — all UI primitives (Button, Card, Input, Table, Dialog, etc.)
|
|
16
|
+
- `xertica-ui/layout` — Sidebar and Header
|
|
17
|
+
- `xertica-ui/brand` — XerticaProvider, XerticaLogo, XerticaXLogo, XerticaOrbe, ThemeToggle, LanguageSelector
|
|
18
|
+
- `xertica-ui/assistant` — XerticaAssistant, MarkdownMessage, CodeBlock, FormattedDocument, ModernChatInput
|
|
19
|
+
- `xertica-ui/media` — VideoPlayer, AudioPlayer, FloatingMediaWrapper
|
|
20
|
+
- `xertica-ui/hooks` — useLayout, useTheme, useLanguage, useBrandColors, useAssistente, useApiKey
|
|
21
|
+
- Root `from 'xertica-ui'` remains fully supported for backward compatibility.
|
|
22
|
+
- **`ImageWithFallback` added to `xertica-ui/ui`** — previously only in the root barrel; now accessible via the `/ui` subpath.
|
|
23
|
+
- **Multi-entry Vite build** — `vite.config.ts` now uses `lib.entry` as an object (7 entry points). Output filenames follow `[entryName].[format].js` pattern.
|
|
24
|
+
- **CLI template — FSD/FDA architecture** — The scaffolded template was restructured to follow Feature-Sliced Design + Feature-Driven Architecture:
|
|
25
|
+
- `src/app/` — BrowserRouter, XerticaProvider, AuthGuard (auth state + route definitions), AppLayout (Sidebar + children shell)
|
|
26
|
+
- `src/shared/` — `config/navigation.ts` (route registry), `lib/auth.ts` (localStorage helpers), `types/auth.ts` (User interface)
|
|
27
|
+
- `src/features/auth/ui/` — LoginContent, ForgotPasswordContent, VerifyEmailContent, ResetPasswordContent; with shared `AuthPageShell` and `SocialLoginButtons` DRY extractions
|
|
28
|
+
- `src/features/home/ui/` — HomeContent
|
|
29
|
+
- `src/features/template/ui/` — TemplateContent, FormTemplate
|
|
30
|
+
- `src/pages/` — thin page wrappers (LoginPage, HomePage, TemplatePage, ForgotPasswordPage, VerifyEmailPage, ResetPasswordPage)
|
|
31
|
+
- **`templates/guidelines/Guidelines.md`** — new architecture guide documenting FSD/FDA layers, layer responsibilities, and "Adding New Routes" step-by-step.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- **Template imports** — All template source files updated to use subpath imports (`xertica-ui/ui`, `xertica-ui/brand`, `xertica-ui/layout`, `xertica-ui/assistant`, `xertica-ui/hooks`) instead of the root barrel.
|
|
36
|
+
- **`FormTemplate.tsx` rewritten** — Removed dependency on `@hookform/resolvers/zod`, `react-hook-form`, and `zod` (packages not included in the CLI template's `package.json`). Now uses plain React `useState` + inline validation with only `xertica-ui/ui` primitives.
|
|
37
|
+
- **`tsconfig.build.json`** — `include` array updated to cover all new barrel source directories (`components/**/*`, `contexts/**/*`, `hooks/**/*`).
|
|
38
|
+
- **Documentation** (`llms.txt`, `llms-full.txt`) — Added subpath import reference table and FSD/FDA layer mapping.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- **Stale compiled artifacts** — Removed `App.js`, `App.d.ts`, `main.js`, `main.d.ts` from `templates/src/app/` that were being resolved by Vite's extension priority (`.js` before `.tsx`), causing `Failed to fetch dynamically imported module` errors after the FSD restructure.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
10
46
|
## [1.10.0] — 2026-05-08
|
|
11
47
|
|
|
12
48
|
### Added
|
package/README.md
CHANGED
|
@@ -50,7 +50,7 @@ import 'xertica-ui/style.css';
|
|
|
50
50
|
**2. Wrap your app** with `XerticaProvider`:
|
|
51
51
|
|
|
52
52
|
```tsx
|
|
53
|
-
import { XerticaProvider } from 'xertica-ui';
|
|
53
|
+
import { XerticaProvider } from 'xertica-ui/brand';
|
|
54
54
|
|
|
55
55
|
function App() {
|
|
56
56
|
return (
|
|
@@ -63,6 +63,26 @@ function App() {
|
|
|
63
63
|
|
|
64
64
|
---
|
|
65
65
|
|
|
66
|
+
## 📂 Subpath Imports (FSD/FDA)
|
|
67
|
+
|
|
68
|
+
Xertica UI v2 exposes **granular subpath entries** — import only what your layer needs without loading the entire library:
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
import { Button, Card, Input } from 'xertica-ui/ui'; // shared/ui — primitives
|
|
72
|
+
import { Sidebar, Header } from 'xertica-ui/layout'; // layout shell
|
|
73
|
+
import { XerticaProvider } from 'xertica-ui/brand'; // app-level — providers & brand
|
|
74
|
+
import { XerticaAssistant } from 'xertica-ui/assistant'; // feature — AI assistant
|
|
75
|
+
import { VideoPlayer, AudioPlayer } from 'xertica-ui/media'; // feature — media players
|
|
76
|
+
import { useLayout, useTheme } from 'xertica-ui/hooks'; // shared/lib — hooks & contexts
|
|
77
|
+
import 'xertica-ui/style.css'; // styles — import once at root
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The root `from 'xertica-ui'` barrel remains available for full backward compatibility.
|
|
81
|
+
|
|
82
|
+
> **TypeScript**: requires `"moduleResolution": "bundler"` (or `"node16"` / `"nodenext"`) in `tsconfig.json` to resolve subpath exports.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
66
86
|
## 🛠️ The Layout System
|
|
67
87
|
|
|
68
88
|
Xertica UI features an autonomous layout system managed by `LayoutContext`.
|
|
@@ -71,7 +91,7 @@ Xertica UI features an autonomous layout system managed by `LayoutContext`.
|
|
|
71
91
|
Every page **must** use the `<PageHeader>` component for its title and primary actions. Never use raw `h1` or `div` for headers.
|
|
72
92
|
|
|
73
93
|
```tsx
|
|
74
|
-
import { PageHeader, PageHeaderHeading, Button } from 'xertica-ui';
|
|
94
|
+
import { PageHeader, PageHeaderHeading, Button } from 'xertica-ui/ui';
|
|
75
95
|
|
|
76
96
|
export function MyPage() {
|
|
77
97
|
return (
|
|
@@ -91,12 +111,37 @@ export function MyPage() {
|
|
|
91
111
|
### `useLayout()` Hook
|
|
92
112
|
Access the sidebar state, width, and toggle functions anywhere in the component tree:
|
|
93
113
|
```tsx
|
|
114
|
+
import { useLayout } from 'xertica-ui/hooks';
|
|
115
|
+
|
|
94
116
|
const { sidebarWidth, isSidebarOpen, toggleSidebar } = useLayout();
|
|
95
117
|
```
|
|
96
118
|
|
|
97
119
|
---
|
|
98
120
|
|
|
99
|
-
##
|
|
121
|
+
## 🏗️ CLI Template — FSD/FDA Architecture
|
|
122
|
+
|
|
123
|
+
Projects scaffolded with `npx xertica-ui@latest init` follow **Feature-Sliced Design (FSD) + Feature-Driven Architecture (FDA)**:
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
src/
|
|
127
|
+
app/ ← BrowserRouter, XerticaProvider, AuthGuard, AppLayout
|
|
128
|
+
shared/
|
|
129
|
+
config/ ← navigation.ts (route definitions)
|
|
130
|
+
lib/ ← auth.ts (localStorage helpers)
|
|
131
|
+
types/ ← auth.ts (User interface)
|
|
132
|
+
features/
|
|
133
|
+
auth/ui/ ← LoginContent, ForgotPasswordContent, VerifyEmailContent, ResetPasswordContent
|
|
134
|
+
home/ui/ ← HomeContent
|
|
135
|
+
template/ui/ ← TemplateContent, FormTemplate
|
|
136
|
+
pages/ ← thin wrappers: LoginPage, HomePage, TemplatePage, …
|
|
137
|
+
styles/ ← index.css, xertica/tokens.css
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Each feature only imports from `shared/` or its own domain. Pages only compose features. See `templates/guidelines/Guidelines.md` for the full architecture guide.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 🧩 Component Catalog (97 Components)
|
|
100
145
|
|
|
101
146
|
### Layout & Navigation
|
|
102
147
|
`Header` · `Sidebar` · `PageHeader` · `Breadcrumb` · `NavigationMenu` · `Tabs` · `Pagination` · `Accordion` · `Collapsible`
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './xertica-assistant';
|
|
2
|
+
export { CodeBlock } from './code-block';
|
|
3
|
+
export { MarkdownMessage } from './markdown-message';
|
|
4
|
+
export { ModernChatInput } from './modern-chat-input';
|
|
5
|
+
export { FormattedDocument } from './formatted-document';
|
|
6
|
+
export { generateDemoResponse } from '../../utils/demo-responses';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from '../../contexts/LayoutContext';
|
|
2
|
+
export * from '../../contexts/ThemeContext';
|
|
3
|
+
export * from '../../contexts/LanguageContext';
|
|
4
|
+
export * from '../../contexts/BrandColorsContext';
|
|
5
|
+
export * from '../../contexts/AssistenteContext';
|
|
6
|
+
export * from '../../contexts/ApiKeyContext';
|
package/components/ui/index.ts
CHANGED
|
@@ -216,4 +216,7 @@ export type { PageHeaderProps } from "./page-header";
|
|
|
216
216
|
export type { ChartConfig } from "./chart";
|
|
217
217
|
|
|
218
218
|
// Hooks
|
|
219
|
-
export { useMobile, useIsMobile } from "../shared/use-mobile";
|
|
219
|
+
export { useMobile, useIsMobile } from "../shared/use-mobile";
|
|
220
|
+
|
|
221
|
+
// Image Utilities
|
|
222
|
+
export { ImageWithFallback } from "../figma/ImageWithFallback";
|