@ziyarago/ui 0.13.0 → 0.15.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.
Files changed (75) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +5 -5
  3. package/dist/llms-full.txt +3 -3
  4. package/dist/llms.txt +2 -2
  5. package/dist/manifest.json +316 -2
  6. package/docs/INTEGRATION.md +14 -0
  7. package/package.json +10 -25
  8. package/src/core/components.js +0 -11
  9. package/src/core/components2.js +1 -71
  10. package/src/core/components3.js +2 -44
  11. package/src/core/components4.js +0 -38
  12. package/src/core/components6.js +0 -50
  13. package/src/core/components7.js +0 -34
  14. package/src/core/index.js +6 -0
  15. package/src/core/pages.js +2 -36
  16. package/src/i18n/components/index.js +0 -72
  17. package/src/internal.js +10 -0
  18. package/src/meta/index.js +15 -0
  19. package/src/meta/pages.js +1 -1
  20. package/src/nuxt/module.mjs +9 -1
  21. package/src/react/index.js +8 -107
  22. package/src/resolver.js +17 -4
  23. package/src/vue/index.js +9 -2
  24. package/types/core.d.ts +3 -0
  25. package/types/internal.d.ts +30 -0
  26. package/types/meta.d.ts +8 -0
  27. package/types/nuxt.d.ts +2 -0
  28. package/types/react.d.ts +138 -4143
  29. package/types/resolver.d.ts +2 -0
  30. package/types/vue-global.d.ts +0 -106
  31. package/types/vue.d.ts +147 -3598
  32. package/docs/MIGRATION.md +0 -455
  33. package/src/compat/index.js +0 -469
  34. package/src/compat/map.js +0 -282
  35. package/src/compat/resolver.js +0 -22
  36. package/src/compat/vite.js +0 -29
  37. package/src/i18n/components/ActionCard.js +0 -5
  38. package/src/i18n/components/Actionsheet.js +0 -5
  39. package/src/i18n/components/CallCard.js +0 -5
  40. package/src/i18n/components/CallRow.js +0 -5
  41. package/src/i18n/components/Carousel.js +0 -5
  42. package/src/i18n/components/ChartCard.js +0 -5
  43. package/src/i18n/components/ChatAi.js +0 -5
  44. package/src/i18n/components/ChipInput.js +0 -5
  45. package/src/i18n/components/ContactPanel.js +0 -5
  46. package/src/i18n/components/DataGroup.js +0 -5
  47. package/src/i18n/components/DealCard.js +0 -5
  48. package/src/i18n/components/FullscreenDialog.js +0 -5
  49. package/src/i18n/components/Gallery.js +0 -5
  50. package/src/i18n/components/GuestCard.js +0 -5
  51. package/src/i18n/components/ImageUpload.js +0 -5
  52. package/src/i18n/components/ImageViewer.js +0 -5
  53. package/src/i18n/components/IncomingCall.js +0 -5
  54. package/src/i18n/components/InlineEdit.js +0 -5
  55. package/src/i18n/components/IntegrationCard.js +0 -5
  56. package/src/i18n/components/Map.js +0 -5
  57. package/src/i18n/components/NotificationBell.js +0 -5
  58. package/src/i18n/components/PricingCard.js +0 -5
  59. package/src/i18n/components/QiblaCompass.js +0 -5
  60. package/src/i18n/components/RamadanTracker.js +0 -5
  61. package/src/i18n/components/RangeCalendar.js +0 -5
  62. package/src/i18n/components/RangeSlider.js +0 -5
  63. package/src/i18n/components/RichEditor.js +0 -5
  64. package/src/i18n/components/Screensaver.js +0 -5
  65. package/src/i18n/components/Sortable.js +0 -5
  66. package/src/i18n/components/StepDialog.js +0 -5
  67. package/src/i18n/components/StepForm.js +0 -5
  68. package/src/i18n/components/TabTiles.js +0 -5
  69. package/src/i18n/components/Tour.js +0 -5
  70. package/src/i18n/components/TourCard.js +0 -5
  71. package/src/i18n/components/TourPopover.js +0 -5
  72. package/src/i18n/components/TreeSelect.js +0 -5
  73. package/types/compat-resolver.d.ts +0 -12
  74. package/types/compat-vite.d.ts +0 -11
  75. package/types/compat.d.ts +0 -176
@@ -2,7 +2,7 @@
2
2
  // React 18+ adapter. Usage: import { UiButton, UiAppShell } from '@ziyarago/ui/react'
3
3
  import React, { useState, useRef, useEffect, useLayoutEffect, useSyncExternalStore, createElement, cloneElement, isValidElement } from 'react';
4
4
  import { createPortal } from 'react-dom';
5
- import { components, subscribeUiLocale, getUiVersion } from '../core/index.js';
5
+ import { components, registerComponents, subscribeUiLocale, getUiVersion } from '../core/index.js';
6
6
 
7
7
  const C = {};
8
8
  const useIsoLayoutEffect = typeof document === 'undefined' ? useEffect : useLayoutEffect;
@@ -37,6 +37,13 @@ const wrap = (name, def) => {
37
37
  return Comp;
38
38
  };
39
39
  for (const [name, def] of Object.entries(components)) C[name] = wrap(name, def);
40
+ /** Wraps definitions like the built-in ones, registers them in C (cross references work both ways) and returns { UiName: Component }. */
41
+ export function defineUiComponents(defs, { override = false } = {}) {
42
+ registerComponents(defs, { override });
43
+ const out = {};
44
+ for (const [name, def] of Object.entries(defs)) out['Ui' + name] = C[name] = wrap(name, def);
45
+ return out;
46
+ }
40
47
 
41
48
  // Explicit named exports (not destructuring): Next.js reads the export names of a 'use client' module statically.
42
49
  export const UiButton = C.Button;
@@ -51,7 +58,6 @@ export const UiFilterChips = C.FilterChips;
51
58
  export const UiTextField = C.TextField;
52
59
  export const UiSelect = C.Select;
53
60
  export const UiCodeInput = C.CodeInput;
54
- export const UiStepper = C.Stepper;
55
61
  export const UiCard = C.Card;
56
62
  export const UiModal = C.Modal;
57
63
  export const UiDrawer = C.Drawer;
@@ -62,21 +68,12 @@ export const UiProgress = C.Progress;
62
68
  export const UiRing = C.Ring;
63
69
  export const UiKpiTile = C.KpiTile;
64
70
  export const UiDataTable = C.DataTable;
65
- export const UiKanbanColumn = C.KanbanColumn;
66
- export const UiKanbanCard = C.KanbanCard;
67
71
  export const UiTimeline = C.Timeline;
68
72
  export const UiTopNav = C.TopNav;
69
73
  export const UiSideNav = C.SideNav;
70
74
  export const UiAppShell = C.AppShell;
71
75
  export const UiPageHeader = C.PageHeader;
72
76
  export const UiAuthLayout = C.AuthLayout;
73
- export const UiLeadCard = C.LeadCard;
74
- export const UiHotelCard = C.HotelCard;
75
- export const UiTourCard = C.TourCard;
76
- export const UiPrayerTimes = C.PrayerTimes;
77
- export const UiRamadanTracker = C.RamadanTracker;
78
- export const UiQiblaCompass = C.QiblaCompass;
79
- export const UiCallRow = C.CallRow;
80
77
  export const UiAlert = C.Alert;
81
78
  export const UiBanner = C.Banner;
82
79
  export const UiAccordion = C.Accordion;
@@ -89,24 +86,14 @@ export const UiDataState = C.DataState;
89
86
  export const UiLoadingOverlay = C.LoadingOverlay;
90
87
  export const UiConfirmDialog = C.ConfirmDialog;
91
88
  export const UiPopconfirm = C.Popconfirm;
92
- export const UiCarousel = C.Carousel;
93
- export const UiGallery = C.Gallery;
94
89
  export const UiCode = C.Code;
95
- export const UiPricingCard = C.PricingCard;
96
- export const UiIntegrationCard = C.IntegrationCard;
97
- export const UiIncomingCall = C.IncomingCall;
98
- export const UiCallCard = C.CallCard;
99
90
  export const UiDropdown = C.Dropdown;
100
91
  export const UiMenu = C.Menu;
101
92
  export const UiTooltip = C.Tooltip;
102
- export const UiHoverCard = C.HoverCard;
103
93
  export const UiPopover = C.Popover;
104
94
  export const UiCopyButton = C.CopyButton;
105
- export const UiCommandBar = C.CommandBar;
106
95
  export const UiCommandPalette = C.CommandPalette;
107
- export const UiNotificationBell = C.NotificationBell;
108
96
  export const UiToggleGroup = C.ToggleGroup;
109
- export const UiFab = C.Fab;
110
97
  export const UiTextarea = C.Textarea;
111
98
  export const UiNumberInput = C.NumberInput;
112
99
  export const UiPasswordInput = C.PasswordInput;
@@ -114,123 +101,41 @@ export const UiSearchInput = C.SearchInput;
114
101
  export const UiRadioGroup = C.RadioGroup;
115
102
  export const UiSlider = C.Slider;
116
103
  export const UiRating = C.Rating;
117
- export const UiChipInput = C.ChipInput;
118
- export const UiInlineEdit = C.InlineEdit;
119
- export const UiColorPicker = C.ColorPicker;
120
104
  export const UiFileUpload = C.FileUpload;
121
105
  export const UiCombobox = C.Combobox;
122
106
  export const UiMultiSelect = C.MultiSelect;
123
- export const UiGroupedSelect = C.GroupedSelect;
124
107
  export const UiPhoneInput = C.PhoneInput;
125
108
  export const UiCalendar = C.Calendar;
126
109
  export const UiDatePicker = C.DatePicker;
127
110
  export const UiTimePicker = C.TimePicker;
128
111
  export const UiFormField = C.FormField;
129
112
  export const UiLoginForm = C.LoginForm;
130
- export const UiStepForm = C.StepForm;
131
113
  export const UiTag = C.Tag;
132
114
  export const UiKbd = C.Kbd;
133
115
  export const UiStatsCard = C.StatsCard;
134
- export const UiKpiInline = C.KpiInline;
135
116
  export const UiMiniChart = C.MiniChart;
136
117
  export const UiDescriptions = C.Descriptions;
137
118
  export const UiLazyImage = C.LazyImage;
138
- export const UiSystemStatus = C.SystemStatus;
139
- export const UiTreeView = C.TreeView;
140
- export const UiCalendarView = C.CalendarView;
141
119
  export const UiSubNav = C.SubNav;
142
- export const UiActionRail = C.ActionRail;
143
120
  export const UiSplitLayout = C.SplitLayout;
144
121
  export const UiSettingsSection = C.SettingsSection;
145
122
  export const UiScrollArea = C.ScrollArea;
146
- export const UiDealCard = C.DealCard;
147
- export const UiPipelineBoard = C.PipelineBoard;
148
- export const UiContactPanel = C.ContactPanel;
149
- export const UiSalesFunnel = C.SalesFunnel;
150
- export const UiBookingCard = C.BookingCard;
151
- export const UiGuestCard = C.GuestCard;
152
- export const UiRoomGrid = C.RoomGrid;
153
- export const UiRoomCalendar = C.RoomCalendar;
154
- export const UiOccupancyChart = C.OccupancyChart;
155
123
  export const UiChip = C.Chip;
156
124
  export const UiIconTile = C.IconTile;
157
125
  export const UiStatusIcon = C.StatusIcon;
158
- export const UiUserCell = C.UserCell;
159
- export const UiStatRow = C.StatRow;
160
- export const UiCountryRow = C.CountryRow;
161
- export const UiStatLine = C.StatLine;
162
- export const UiStatStrip = C.StatStrip;
163
- export const UiVersusBar = C.VersusBar;
164
- export const UiSegBar = C.SegBar;
165
- export const UiHeroBanner = C.HeroBanner;
166
- export const UiTabTiles = C.TabTiles;
167
126
  export const UiPillTabs = C.PillTabs;
168
- export const UiPillSelect = C.PillSelect;
169
- export const UiChartCard = C.ChartCard;
170
- export const UiActionCard = C.ActionCard;
171
127
  export const UiSnackbar = C.Snackbar;
172
- export const UiTourPopover = C.TourPopover;
173
- export const UiProfileHeader = C.ProfileHeader;
174
128
  export const UiAuthSplit = C.AuthSplit;
175
- export const UiAuthShowcase = C.AuthShowcase;
176
129
  export const UiSocialAuth = C.SocialAuth;
177
130
  export const UiStatusPage = C.StatusPage;
178
- export const UiValidatedField = C.ValidatedField;
179
131
  export const UiFooter = C.Footer;
180
- export const UiDataGroup = C.DataGroup;
181
- export const UiOptionCard = C.OptionCard;
182
- export const UiOptionCards = C.OptionCards;
183
- export const UiRichEditor = C.RichEditor;
184
- export const UiRangeSlider = C.RangeSlider;
185
- export const UiRangeCalendar = C.RangeCalendar;
186
- export const UiStepDialog = C.StepDialog;
187
- export const UiFullscreenDialog = C.FullscreenDialog;
188
132
  export const UiPageDashboard = C.PageDashboard;
189
- export const UiPagePatterns = C.PagePatterns;
190
- export const UiPageCrm = C.PageCrm;
191
- export const UiPageBookings = C.PageBookings;
192
- export const UiPageCatalog = C.PageCatalog;
193
- export const UiPageDetail = C.PageDetail;
194
133
  export const UiPageSettings = C.PageSettings;
195
134
  export const UiPageUserList = C.PageUserList;
196
- export const UiPageProfile = C.PageProfile;
197
- export const UiPageForm = C.PageForm;
198
- export const UiPageOrder = C.PageOrder;
199
- export const UiPageAccount = C.PageAccount;
200
135
  export const UiPagePricing = C.PagePricing;
201
- export const UiPageFaq = C.PageFaq;
202
- export const UiPageAnalytics = C.PageAnalytics;
203
- export const UiPageCalendar = C.PageCalendar;
204
- export const UiPageKanban = C.PageKanban;
205
- export const UiPageBilling = C.PageBilling;
206
- export const UiPageTeam = C.PageTeam;
207
- export const UiPageIntegrations = C.PageIntegrations;
208
- export const UiPageSearch = C.PageSearch;
209
- export const UiPageArticle = C.PageArticle;
210
- export const UiPageChangelog = C.PageChangelog;
211
- export const UiPageHelp = C.PageHelp;
212
- export const UiPageStates = C.PageStates;
213
- export const UiPageLegal = C.PageLegal;
214
- export const UiPageLocations = C.PageLocations;
215
- export const UiPageBookingFlow = C.PageBookingFlow;
216
- export const UiPageItinerary = C.PageItinerary;
217
- export const UiPagePrayer = C.PagePrayer;
218
- export const UiPageGroupManager = C.PageGroupManager;
219
- export const UiPageTourPublic = C.PageTourPublic;
220
- export const UiPageNotifications = C.PageNotifications;
221
- export const UiPageInbox = C.PageInbox;
222
- export const UiPageCheckout = C.PageCheckout;
223
- export const UiPageOnboarding = C.PageOnboarding;
224
- export const UiPageLanding = C.PageLanding;
225
136
  export const UiPageAuth = C.PageAuth;
226
137
  export const UiPageStatus = C.PageStatus;
227
- export const UiTreeSelect = C.TreeSelect;
228
138
  export const UiContextMenu = C.ContextMenu;
229
- export const UiSortable = C.Sortable;
230
- export const UiMap = C.Map;
231
- export const UiImageUpload = C.ImageUpload;
232
- export const UiScreensaver = C.Screensaver;
233
- export const UiTour = C.Tour;
234
139
  export const UiHeading = C.Heading;
235
140
  export const UiText = C.Text;
236
141
  export const UiBox = C.Box;
@@ -242,10 +147,6 @@ export const UiLink = C.Link;
242
147
  export const UiPressable = C.Pressable;
243
148
  export const UiIcon = C.Icon;
244
149
  export const UiPortal = C.Portal;
245
- export const UiLiquidGlass = C.LiquidGlass;
246
150
  export const UiBottomSheet = C.BottomSheet;
247
- export const UiActionsheet = C.Actionsheet;
248
- export const UiImageViewer = C.ImageViewer;
249
- export const UiChatAi = C.ChatAi;
250
151
  export { fmt, setIconBase, rules, LOCALES, setUiLocale, getUiLocale, setUiMessages, isRtlLocale } from '../core/index.js';
251
152
  export { useUiTheme } from '../theme.js';
package/src/resolver.js CHANGED
@@ -3,20 +3,31 @@
3
3
  // import { ZiyaragoUiResolver } from '@ziyarago/ui/resolver'
4
4
  // Components({ resolvers: [ZiyaragoUiResolver()] })
5
5
  // Zero dependencies: it only maps <UiButton> to { name: 'UiButton', from: '@ziyarago/ui/vue' }.
6
+ import { createRequire } from 'node:module';
6
7
  import { components } from './core/index.js';
7
8
 
8
9
  const NAMES = new Set(Object.keys(components));
9
10
 
11
+ // Plugin packages (see docs-private/PRO-SPLIT.md, "Plugin contract") export ./names (JSON array of component names without the Ui prefix) and ./vue.
12
+ // A plugin may be a package name or { from, names } for tests and custom setups.
13
+ const loadPlugin = p => {
14
+ if (typeof p !== 'string') return { from: p.from, names: new Set(p.names) };
15
+ const req = createRequire(process.cwd() + '/');
16
+ return { from: p + '/vue', names: new Set(req(p + '/names')) };
17
+ };
18
+
10
19
  /**
11
- * @param {{ prefix?: string, css?: boolean | string, exclude?: string[], from?: string }} [options]
20
+ * @param {{ prefix?: string, css?: boolean | string, exclude?: string[], from?: string, plugins?: Array<string | { from: string, names: string[] }> }} [options]
12
21
  * prefix component prefix, default 'Ui' (must match the registered names, which are always Ui*)
13
22
  * css true: import '@ziyarago/ui/style.css' as a side effect together with the first resolved component (once per module that uses one);
14
23
  * a string: import that path instead (for example your own entry that imports the css inside a Tailwind @layer). Default false.
15
24
  * exclude component names (without prefix) that must not be auto-imported, e.g. ['Button'] if you keep your own UiButton.
16
25
  * from module the components are imported from, default '@ziyarago/ui/vue'
26
+ * plugins add-on packages whose components auto-import too: ['@ziyarago/ui-pro'] (needs its ./names and ./vue exports) or [{ from, names }]
17
27
  */
18
28
  export function ZiyaragoUiResolver(options = {}) {
19
- const { prefix = 'Ui', css = false, exclude = [], from = '@ziyarago/ui/vue' } = options;
29
+ const { prefix = 'Ui', css = false, exclude = [], from = '@ziyarago/ui/vue', plugins = [] } = options;
30
+ const loaded = plugins.map(loadPlugin);
20
31
  const skip = new Set(exclude.map(n => n.replace(/^Ui/, '')));
21
32
  const sideEffects = css ? (css === true ? '@ziyarago/ui/style.css' : css) : undefined;
22
33
  return {
@@ -24,8 +35,10 @@ export function ZiyaragoUiResolver(options = {}) {
24
35
  resolve(name) {
25
36
  if (!name.startsWith(prefix)) return;
26
37
  const bare = name.slice(prefix.length);
27
- if (!NAMES.has(bare) || skip.has(bare)) return;
28
- return { name: 'Ui' + bare, from, ...(sideEffects ? { sideEffects } : {}) };
38
+ if (skip.has(bare)) return;
39
+ const pl = NAMES.has(bare) ? null : loaded.find(x => x.names.has(bare));
40
+ if (!pl && !NAMES.has(bare)) return;
41
+ return { name: 'Ui' + bare, from: pl ? pl.from : from, ...(sideEffects ? { sideEffects } : {}) };
29
42
  },
30
43
  };
31
44
  }
package/src/vue/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Vue 3 adapter. Usage: import { UiButton, UiAppShell } from '@ziyarago/ui/vue'
2
2
  import { h, ref, reactive, defineComponent, onMounted, onBeforeUnmount, Teleport, cloneVNode, isVNode } from 'vue';
3
- import { components, subscribeUiLocale } from '../core/index.js';
3
+ import { components, registerComponents, subscribeUiLocale } from '../core/index.js';
4
4
  import { BOOL_PROPS } from '../core/bools.js';
5
5
 
6
6
  const C = {};
@@ -28,8 +28,15 @@ const wrap = (name, def) => defineComponent({
28
28
  },
29
29
  });
30
30
  for (const [name, def] of Object.entries(components)) C[name] = wrap(name, def);
31
+ /** Wraps definitions like the built-in ones, registers them in C (cross references work both ways) and returns { UiName: Component }. */
32
+ export function defineUiComponents(defs, { override = false } = {}) {
33
+ registerComponents(defs, { override });
34
+ const out = {};
35
+ for (const [name, def] of Object.entries(defs)) out['Ui' + name] = C[name] = wrap(name, def);
36
+ return out;
37
+ }
31
38
 
32
- export const { Button: UiButton, IconButton: UiIconButton, Badge: UiBadge, Avatar: UiAvatar, Switch: UiSwitch, Checkbox: UiCheckbox, SegmentedControl: UiSegmentedControl, Tabs: UiTabs, FilterChips: UiFilterChips, TextField: UiTextField, Select: UiSelect, CodeInput: UiCodeInput, Stepper: UiStepper, Card: UiCard, Modal: UiModal, Drawer: UiDrawer, Toast: UiToast, Breadcrumbs: UiBreadcrumbs, Pagination: UiPagination, Progress: UiProgress, Ring: UiRing, KpiTile: UiKpiTile, DataTable: UiDataTable, KanbanColumn: UiKanbanColumn, KanbanCard: UiKanbanCard, Timeline: UiTimeline, TopNav: UiTopNav, SideNav: UiSideNav, AppShell: UiAppShell, PageHeader: UiPageHeader, AuthLayout: UiAuthLayout, LeadCard: UiLeadCard, HotelCard: UiHotelCard, TourCard: UiTourCard, PrayerTimes: UiPrayerTimes, RamadanTracker: UiRamadanTracker, QiblaCompass: UiQiblaCompass, CallRow: UiCallRow, Alert: UiAlert, Banner: UiBanner, Accordion: UiAccordion, Skeleton: UiSkeleton, Spinner: UiSpinner, Divider: UiDivider, EmptyState: UiEmptyState, ErrorPage: UiErrorPage, DataState: UiDataState, LoadingOverlay: UiLoadingOverlay, ConfirmDialog: UiConfirmDialog, Popconfirm: UiPopconfirm, Carousel: UiCarousel, Gallery: UiGallery, Code: UiCode, PricingCard: UiPricingCard, IntegrationCard: UiIntegrationCard, IncomingCall: UiIncomingCall, CallCard: UiCallCard, Dropdown: UiDropdown, Menu: UiMenu, Tooltip: UiTooltip, HoverCard: UiHoverCard, Popover: UiPopover, CopyButton: UiCopyButton, CommandBar: UiCommandBar, CommandPalette: UiCommandPalette, NotificationBell: UiNotificationBell, ToggleGroup: UiToggleGroup, Fab: UiFab, Textarea: UiTextarea, NumberInput: UiNumberInput, PasswordInput: UiPasswordInput, SearchInput: UiSearchInput, RadioGroup: UiRadioGroup, Slider: UiSlider, Rating: UiRating, ChipInput: UiChipInput, InlineEdit: UiInlineEdit, ColorPicker: UiColorPicker, FileUpload: UiFileUpload, Combobox: UiCombobox, MultiSelect: UiMultiSelect, GroupedSelect: UiGroupedSelect, PhoneInput: UiPhoneInput, Calendar: UiCalendar, DatePicker: UiDatePicker, TimePicker: UiTimePicker, FormField: UiFormField, LoginForm: UiLoginForm, StepForm: UiStepForm, Tag: UiTag, Kbd: UiKbd, StatsCard: UiStatsCard, KpiInline: UiKpiInline, MiniChart: UiMiniChart, Descriptions: UiDescriptions, LazyImage: UiLazyImage, SystemStatus: UiSystemStatus, TreeView: UiTreeView, CalendarView: UiCalendarView, SubNav: UiSubNav, ActionRail: UiActionRail, SplitLayout: UiSplitLayout, SettingsSection: UiSettingsSection, ScrollArea: UiScrollArea, DealCard: UiDealCard, PipelineBoard: UiPipelineBoard, ContactPanel: UiContactPanel, SalesFunnel: UiSalesFunnel, BookingCard: UiBookingCard, GuestCard: UiGuestCard, RoomGrid: UiRoomGrid, RoomCalendar: UiRoomCalendar, OccupancyChart: UiOccupancyChart, Chip: UiChip, IconTile: UiIconTile, StatusIcon: UiStatusIcon, UserCell: UiUserCell, StatRow: UiStatRow, CountryRow: UiCountryRow, StatLine: UiStatLine, StatStrip: UiStatStrip, VersusBar: UiVersusBar, SegBar: UiSegBar, HeroBanner: UiHeroBanner, TabTiles: UiTabTiles, PillTabs: UiPillTabs, PillSelect: UiPillSelect, ChartCard: UiChartCard, ActionCard: UiActionCard, Snackbar: UiSnackbar, TourPopover: UiTourPopover, ProfileHeader: UiProfileHeader, AuthSplit: UiAuthSplit, AuthShowcase: UiAuthShowcase, SocialAuth: UiSocialAuth, StatusPage: UiStatusPage, ValidatedField: UiValidatedField, Footer: UiFooter, DataGroup: UiDataGroup, OptionCard: UiOptionCard, OptionCards: UiOptionCards, RichEditor: UiRichEditor, RangeSlider: UiRangeSlider, RangeCalendar: UiRangeCalendar, StepDialog: UiStepDialog, FullscreenDialog: UiFullscreenDialog, PageDashboard: UiPageDashboard, PagePatterns: UiPagePatterns, PageCrm: UiPageCrm, PageBookings: UiPageBookings, PageCatalog: UiPageCatalog, PageDetail: UiPageDetail, PageSettings: UiPageSettings, PageUserList: UiPageUserList, PageProfile: UiPageProfile, PageForm: UiPageForm, PageOrder: UiPageOrder, PageAccount: UiPageAccount, PagePricing: UiPagePricing, PageFaq: UiPageFaq, PageAnalytics: UiPageAnalytics, PageCalendar: UiPageCalendar, PageKanban: UiPageKanban, PageBilling: UiPageBilling, PageTeam: UiPageTeam, PageIntegrations: UiPageIntegrations, PageSearch: UiPageSearch, PageArticle: UiPageArticle, PageChangelog: UiPageChangelog, PageHelp: UiPageHelp, PageStates: UiPageStates, PageLegal: UiPageLegal, PageLocations: UiPageLocations, PageBookingFlow: UiPageBookingFlow, PageItinerary: UiPageItinerary, PagePrayer: UiPagePrayer, PageGroupManager: UiPageGroupManager, PageTourPublic: UiPageTourPublic, PageNotifications: UiPageNotifications, PageInbox: UiPageInbox, PageCheckout: UiPageCheckout, PageOnboarding: UiPageOnboarding, PageLanding: UiPageLanding, PageAuth: UiPageAuth, PageStatus: UiPageStatus, TreeSelect: UiTreeSelect, ContextMenu: UiContextMenu, Sortable: UiSortable, Map: UiMap, ImageUpload: UiImageUpload, Screensaver: UiScreensaver, Tour: UiTour, Heading: UiHeading, Text: UiText, Box: UiBox, Center: UiCenter, HStack: UiHStack, VStack: UiVStack, Grid: UiGrid, Link: UiLink, Pressable: UiPressable, Icon: UiIcon, Portal: UiPortal, LiquidGlass: UiLiquidGlass, BottomSheet: UiBottomSheet, Actionsheet: UiActionsheet, ImageViewer: UiImageViewer, ChatAi: UiChatAi } = C;
39
+ export const { Button: UiButton, IconButton: UiIconButton, Badge: UiBadge, Avatar: UiAvatar, Switch: UiSwitch, Checkbox: UiCheckbox, SegmentedControl: UiSegmentedControl, Tabs: UiTabs, FilterChips: UiFilterChips, TextField: UiTextField, Select: UiSelect, CodeInput: UiCodeInput, Card: UiCard, Modal: UiModal, Drawer: UiDrawer, Toast: UiToast, Breadcrumbs: UiBreadcrumbs, Pagination: UiPagination, Progress: UiProgress, Ring: UiRing, KpiTile: UiKpiTile, DataTable: UiDataTable, Timeline: UiTimeline, TopNav: UiTopNav, SideNav: UiSideNav, AppShell: UiAppShell, PageHeader: UiPageHeader, AuthLayout: UiAuthLayout, Alert: UiAlert, Banner: UiBanner, Accordion: UiAccordion, Skeleton: UiSkeleton, Spinner: UiSpinner, Divider: UiDivider, EmptyState: UiEmptyState, ErrorPage: UiErrorPage, DataState: UiDataState, LoadingOverlay: UiLoadingOverlay, ConfirmDialog: UiConfirmDialog, Popconfirm: UiPopconfirm, Code: UiCode, Dropdown: UiDropdown, Menu: UiMenu, Tooltip: UiTooltip, Popover: UiPopover, CopyButton: UiCopyButton, CommandPalette: UiCommandPalette, ToggleGroup: UiToggleGroup, Textarea: UiTextarea, NumberInput: UiNumberInput, PasswordInput: UiPasswordInput, SearchInput: UiSearchInput, RadioGroup: UiRadioGroup, Slider: UiSlider, Rating: UiRating, FileUpload: UiFileUpload, Combobox: UiCombobox, MultiSelect: UiMultiSelect, PhoneInput: UiPhoneInput, Calendar: UiCalendar, DatePicker: UiDatePicker, TimePicker: UiTimePicker, FormField: UiFormField, LoginForm: UiLoginForm, Tag: UiTag, Kbd: UiKbd, StatsCard: UiStatsCard, MiniChart: UiMiniChart, Descriptions: UiDescriptions, LazyImage: UiLazyImage, SubNav: UiSubNav, SplitLayout: UiSplitLayout, SettingsSection: UiSettingsSection, ScrollArea: UiScrollArea, Chip: UiChip, IconTile: UiIconTile, StatusIcon: UiStatusIcon, PillTabs: UiPillTabs, Snackbar: UiSnackbar, AuthSplit: UiAuthSplit, SocialAuth: UiSocialAuth, StatusPage: UiStatusPage, Footer: UiFooter, PageDashboard: UiPageDashboard, PageSettings: UiPageSettings, PageUserList: UiPageUserList, PagePricing: UiPagePricing, PageAuth: UiPageAuth, PageStatus: UiPageStatus, ContextMenu: UiContextMenu, Heading: UiHeading, Text: UiText, Box: UiBox, Center: UiCenter, HStack: UiHStack, VStack: UiVStack, Grid: UiGrid, Link: UiLink, Pressable: UiPressable, Icon: UiIcon, Portal: UiPortal, BottomSheet: UiBottomSheet } = C;
33
40
  export const install = app => { for (const [n, c] of Object.entries(C)) app.component('Ui' + n, c); };
34
41
  export { fmt, setIconBase, rules } from '../core/index.js';
35
42
  export { useUiTheme } from '../theme.js';
package/types/core.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  // Core (framework-neutral) entry. Most apps import from '@ziyarago/ui/vue' or '@ziyarago/ui/react' instead.
2
2
  export { rules, setIconBase, fmt } from './shared';
3
3
  export type * from './shared';
4
+ export interface ComponentDefinition { state?: Record<string, unknown>; slots?: string[]; render: (ctx: any) => unknown }
5
+ /** Extension API for add-on packages: adds definitions to the shared registry. Throws on a name clash with a different definition unless { override: true }. */
6
+ export function registerComponents(defs: Record<string, ComponentDefinition>, options?: { override?: boolean }): Record<string, ComponentDefinition>;
4
7
  export const components: Record<string, { state?: Record<string, unknown>; slots?: string[]; render: (ctx: any) => unknown }>;
@@ -0,0 +1,30 @@
1
+ // Semi-internal helpers for add-on packages such as @ziyarago/ui-pro. Not a public API: may change in any minor release.
2
+ export const cx: (...a: unknown[]) => string;
3
+ export const pick: (props: Record<string, any>, keys: string[]) => Record<string, any>;
4
+ export const INPUT_ATTRS: string[];
5
+ export const DZ: Record<string, number>;
6
+ export const dzp: (props: any, base: number) => number;
7
+ export const dzf: (n: number) => string;
8
+ export const dzb: (props: any) => string;
9
+ export const ddRef: (close: () => void, options?: Record<string, any>) => (el: any) => void;
10
+ export const icon: (h: any, name: string, size?: number) => any;
11
+ export const fmt: Record<string, (...args: any[]) => string>;
12
+ export const trap: (options?: Record<string, any>) => (el: any) => void;
13
+ export const life: (options?: Record<string, any>) => (el: any) => void;
14
+ export const rove: (selector: string, options?: Record<string, any>) => (e: any) => void;
15
+ export const tabIdx: (items: any[], isOn: (item: any) => boolean) => (i: number) => 0 | -1;
16
+ export const listKeys: (selector: string, options?: Record<string, any>) => (e: any) => void;
17
+ export const openKeys: (isOpen: boolean, open: () => void) => (e: any) => void;
18
+ export const focusIn: (el: any) => void;
19
+ export const toTrigger: (e: any) => void;
20
+ export const trigger: (list: any) => any;
21
+ export const rules: typeof import('./shared').rules;
22
+ /** Page template helper: page(name, slotIds, layoutTree) returns [name, definition]. */
23
+ export function page(name: string, slots: string[], tree: unknown): [string, import('./core').ComponentDefinition];
24
+ export function t(component: string, key: string, params?: Record<string, string | number>): string;
25
+ export function getUiLocale(): string;
26
+ export function intlLocale(): string;
27
+ export function defineMessages(component: string, messages: Record<string, Record<string, string>>): void;
28
+ export function registerComponents(defs: Record<string, import('./core').ComponentDefinition>, options?: { override?: boolean }): Record<string, import('./core').ComponentDefinition>;
29
+ export const components: Record<string, import('./core').ComponentDefinition>;
30
+ export const BOOL_PROPS: Set<string>;
package/types/meta.d.ts CHANGED
@@ -1,4 +1,12 @@
1
1
  export interface MetaProp { type: string; values?: string[]; default?: unknown; description?: string; required?: boolean; model?: boolean; forwarded?: boolean }
2
2
  export interface ComponentMeta { description: string; props?: Record<string, MetaProp>; slots?: Record<string, string>; events?: Record<string, string>; notes?: string[] }
3
+ export interface MetaGroup { id: string; title?: string; blurb?: string; names: string[] }
4
+ /** Extension API: adds metadata for plugin components. `tiers` are marked as pro, `groups` list them in the manifest. */
5
+ export function registerMeta(extra: Record<string, ComponentMeta>, options?: { tiers?: string[]; groups?: MetaGroup[] }): Record<string, ComponentMeta>;
3
6
  export const meta: Record<string, ComponentMeta>;
4
7
  export default meta;
8
+ /** Names of the Pro components by group (src/meta/tiers.js). Documented in the public meta, implemented in @ziyarago/ui-pro. */
9
+ export const PRO: Record<string, string[]>;
10
+ export const PRO_NAMES: Set<string>;
11
+ export function isPro(name: string): boolean;
12
+ export const GROUPS: MetaGroup[];
package/types/nuxt.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export interface ModuleOptions {
2
2
  css?: boolean;
3
3
  prefix?: string;
4
+ /** Add-on packages (for example '@ziyarago/ui-pro'): their components auto-import and their style.css is added after the core css. */
5
+ plugins?: string[];
4
6
  theme?: false | { theme?: 'dark' | 'light'; palette?: 'gold' | 'tamam'; dir?: 'ltr' | 'rtl'; bg?: 'none' | 'aurora' | 'sunset' | 'ocean' | 'emerald' | 'rose' | 'mesh' };
5
7
  }
6
8
  declare const _default: import('@nuxt/schema').NuxtModule<ModuleOptions>;