@ziyarago/ui 0.6.0 → 0.7.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 +12 -0
- package/README.md +6 -6
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/dist/llms-full.txt +102 -2
- package/dist/llms.txt +9 -3
- package/dist/manifest.json +931 -1
- package/package.json +3 -3
- package/src/core/pages.js +7 -1
- package/src/meta/groups.js +1 -1
- package/src/meta/pages.js +76 -0
- package/src/meta/templates.json +747 -1
- package/src/react/index.js +6 -0
- package/src/vue/index.js +1 -1
- package/types/react.d.ts +329 -0
- package/types/vue-global.d.ts +6 -0
- package/types/vue.d.ts +219 -0
- package/assets/3d/_sheet.png +0 -0
- package/assets/3d/archive.png +0 -0
- package/assets/3d/bag.png +0 -0
- package/assets/3d/cameraoff.png +0 -0
- package/assets/3d/comment.png +0 -0
- package/assets/3d/crowd.png +0 -0
- package/assets/3d/firstaid.png +0 -0
- package/assets/3d/flag.png +0 -0
- package/assets/3d/grain.png +0 -0
- package/assets/3d/guide.png +0 -0
- package/assets/3d/hotel.png +0 -0
- package/assets/3d/kaaba.png +0 -0
- package/assets/3d/logo.png +0 -0
- package/assets/3d/luggage.png +0 -0
- package/assets/3d/map.png +0 -0
- package/assets/3d/mosque.png +0 -0
- package/assets/3d/plane.png +0 -0
- package/assets/3d/profile.png +0 -0
- package/assets/3d/restaurant.png +0 -0
- package/assets/3d/ring360.png +0 -0
- package/assets/3d/shoes.png +0 -0
- package/assets/3d/star.png +0 -0
- package/assets/3d/store.png +0 -0
- package/assets/3d/taxi.png +0 -0
- package/assets/3d/threads.png +0 -0
- package/assets/3d/tour360.png +0 -0
- package/assets/3d/trash.png +0 -0
- package/assets/3d/umbrella.png +0 -0
- package/assets/3d/video.png +0 -0
- package/assets/3d/water.png +0 -0
- package/assets/brand/mark.png +0 -0
- package/assets/brand/ziyarago-logo-light.svg +0 -21
- package/assets/brand/ziyarago-logo.svg +0 -21
- package/assets/brand/ziyarago-mark-light.svg +0 -13
- package/assets/brand/ziyarago-mark.svg +0 -13
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ziyarago/ui",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "ZiyaraGo UI — glass design system for Umrah and Hajj products. OKLCH tokens, two palettes, dark and light, RTL, Thmanyah. One framework-neutral core with Vue 3, Nuxt and React adapters,
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "ZiyaraGo UI — glass design system for Umrah and Hajj products. OKLCH tokens, two palettes, dark and light, RTL, Thmanyah. One framework-neutral core with Vue 3, Nuxt and React adapters, 190 components and 23 page templates.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ui",
|
|
7
7
|
"design-system",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"files": [
|
|
96
96
|
"dist",
|
|
97
97
|
"types",
|
|
98
|
-
"assets",
|
|
98
|
+
"assets/fonts",
|
|
99
99
|
"tokens",
|
|
100
100
|
"README.md",
|
|
101
101
|
"LICENSE",
|
package/src/core/pages.js
CHANGED
|
@@ -37,7 +37,13 @@ const T = Object.fromEntries([
|
|
|
37
37
|
page('PageOrder', ['header', 'status', 'items', 'shipping', 'side'], ['col', 'header', 'status', ['two', ['items', 'shipping'], ['side']]]),
|
|
38
38
|
page('PageAccount', ['header', 'tabs', 'panel'], ['col', 'header', 'tabs', 'panel']),
|
|
39
39
|
page('PagePricing', ['header', 'toggle', 'plans', 'faq'], ['col', 'header', 'toggle', 'plans', 'faq']),
|
|
40
|
-
page('PageFaq', ['header', 'search', 'cats', 'answers', 'contact'], ['col', 'header', 'search', ['wrap', ['cats'], ['answers'], 200], 'contact'])
|
|
40
|
+
page('PageFaq', ['header', 'search', 'cats', 'answers', 'contact'], ['col', 'header', 'search', ['wrap', ['cats'], ['answers'], 200], 'contact']),
|
|
41
|
+
page('PageLanding', ['hero', 'logos', 'features', 'proof', 'pricing', 'cta', 'footer'], ['col', 'hero', 'logos', 'features', 'proof', 'pricing', 'cta', 'footer']),
|
|
42
|
+
page('PageOnboarding', ['header', 'progress', 'steps', 'checklist', 'tips'], ['col', 'header', 'progress', ['two', ['steps', 'checklist'], ['tips']]]),
|
|
43
|
+
page('PageCheckout', ['header', 'steps', 'items', 'address', 'payment', 'summary'], ['col', 'header', 'steps', ['two', ['items', 'address', 'payment'], ['summary']]]),
|
|
44
|
+
page('PageInbox', ['header', 'filters', 'list', 'thread', 'composer', 'customer'], ['col', 'header', ['wrap', ['filters', 'list'], [['two', ['thread', 'composer'], ['customer']]], 320]]),
|
|
45
|
+
page('PageNotifications', ['header', 'filters', 'feed', 'empty'], ['col', 'header', 'filters', 'feed', 'empty']),
|
|
46
|
+
page('PageAnalytics', ['header', 'period', 'kpis', 'trend', 'breakdown', 'table'], ['col', 'header', 'period', 'kpis', ['auto', 420, 'trend', 'breakdown'], 'table'])
|
|
41
47
|
]);
|
|
42
48
|
|
|
43
49
|
T.PageAuth = { slots: ['background', 'logo', 'aside', 'form', 'footer'], render: ({ C, h, props: p, slots: s }) => {
|
package/src/meta/groups.js
CHANGED
|
@@ -10,7 +10,7 @@ export const GROUPS = [
|
|
|
10
10
|
{ id: 'navigation', title: 'Navigation', blurb: 'Menus, tabs and paging.', names: ['TopNav', 'SideNav', 'SubNav', 'Tabs', 'PillTabs', 'Breadcrumbs', 'Pagination', 'Accordion'] },
|
|
11
11
|
{ id: 'media', title: 'Media and icons', blurb: 'Avatars, images, maps and icons.', names: ['Avatar', 'Icon', 'LazyImage', 'Gallery', 'Carousel', 'Map', 'ProfileHeader', 'ChatAi'] },
|
|
12
12
|
{ id: 'domain', title: 'Domain', blurb: 'Umrah, Hajj, hotel and CRM blocks.', names: ['HotelCard', 'TourCard', 'PrayerTimes', 'RamadanTracker', 'BookingCard', 'GuestCard', 'RoomGrid', 'RoomCalendar', 'LeadCard', 'DealCard', 'PipelineBoard', 'ContactPanel', 'KanbanColumn', 'KanbanCard', 'CallRow', 'CallCard', 'IncomingCall', 'AuthSplit', 'AuthShowcase', 'SocialAuth'] },
|
|
13
|
-
{ id: 'pages', title: 'Page templates', blurb: 'Ready layouts with named slots.', names: ['PageDashboard', 'PagePatterns', 'PageCrm', 'PageBookings', 'PageCatalog', 'PageDetail', 'PageSettings', 'PageUserList', 'PageProfile', 'PageForm', 'PageOrder', 'PageAccount', 'PagePricing', 'PageFaq', 'PageAuth', 'PageStatus'] },
|
|
13
|
+
{ id: 'pages', title: 'Page templates', blurb: 'Ready layouts with named slots.', names: ['PageDashboard', 'PagePatterns', 'PageCrm', 'PageBookings', 'PageCatalog', 'PageDetail', 'PageSettings', 'PageUserList', 'PageProfile', 'PageForm', 'PageOrder', 'PageAccount', 'PagePricing', 'PageFaq', 'PageAnalytics', 'PageNotifications', 'PageInbox', 'PageCheckout', 'PageOnboarding', 'PageLanding', 'PageAuth', 'PageStatus'] },
|
|
14
14
|
];
|
|
15
15
|
|
|
16
16
|
export const groupOf = name => GROUPS.find(g => g.names.includes(name));
|
package/src/meta/pages.js
CHANGED
|
@@ -191,6 +191,82 @@ export default {
|
|
|
191
191
|
},
|
|
192
192
|
notes: [hdrNote],
|
|
193
193
|
},
|
|
194
|
+
PageLanding: {
|
|
195
|
+
description: "Landing template: hero, logo strip, features, social proof, pricing teaser, call to action and footer. Used without the app shell.",
|
|
196
|
+
props: {},
|
|
197
|
+
slots: {
|
|
198
|
+
hero: "Hero block; HeroBanner, Card, Button.",
|
|
199
|
+
logos: "Partner row; Chip or Text.",
|
|
200
|
+
features: "Feature cards; Card, IconTile.",
|
|
201
|
+
proof: "Numbers and quotes; StatStrip, Card, Avatar.",
|
|
202
|
+
pricing: "Plan cards; PricingCard.",
|
|
203
|
+
cta: "Closing block; Card variant=\"gradient\", Button.",
|
|
204
|
+
footer: "Page footer; Footer.",
|
|
205
|
+
},
|
|
206
|
+
notes: ["Landing does not use the app shell: render it on its own page. Blocks stack in one column; each block may use its own grid and wraps on narrow screens."],
|
|
207
|
+
},
|
|
208
|
+
PageOnboarding: {
|
|
209
|
+
description: "Onboarding template: progress block, active step content, setup checklist and a column of tips.",
|
|
210
|
+
props: header,
|
|
211
|
+
slots: {
|
|
212
|
+
...headSlots,
|
|
213
|
+
progress: "Stepper and a completion bar above the content; Stepper, Progress.",
|
|
214
|
+
steps: "Content of the active step; Card with form fields.",
|
|
215
|
+
checklist: "Remaining setup tasks; Card with Checkbox rows.",
|
|
216
|
+
tips: "Side column with help cards; Card, IconTile, Button.",
|
|
217
|
+
},
|
|
218
|
+
notes: [hdrNote, "Keep the active step in your own state; the template does not switch steps. Steps and checklist share the main column, tips go to the side and stack below it on narrow screens."],
|
|
219
|
+
},
|
|
220
|
+
PageCheckout: {
|
|
221
|
+
description: "Checkout template: step indicator, cart items, delivery address, payment and an order summary column.",
|
|
222
|
+
props: header,
|
|
223
|
+
slots: {
|
|
224
|
+
...headSlots,
|
|
225
|
+
steps: "Checkout steps above the content; Stepper.",
|
|
226
|
+
items: "Cart lines with quantity and price; Card with NumberInput.",
|
|
227
|
+
address: "Contact and delivery fields; Card with TextField and Select.",
|
|
228
|
+
payment: "Payment method and card fields; OptionCards, TextField.",
|
|
229
|
+
summary: "Totals, promo code and the pay button; Card, Descriptions, Button.",
|
|
230
|
+
},
|
|
231
|
+
notes: [hdrNote, "Summary sits in the side column and drops below the form on narrow screens."],
|
|
232
|
+
},
|
|
233
|
+
PageInbox: {
|
|
234
|
+
description: "Inbox template: filters and conversation list, the open thread with a composer, and a customer panel.",
|
|
235
|
+
props: header,
|
|
236
|
+
slots: {
|
|
237
|
+
...headSlots,
|
|
238
|
+
filters: "Search and folder chips above the list; SearchInput, FilterChips.",
|
|
239
|
+
list: "Conversation rows with unread marks; Card, Avatar, Badge.",
|
|
240
|
+
thread: "Messages of the open conversation; Card, Avatar.",
|
|
241
|
+
composer: "Reply field and send button; Textarea, Button.",
|
|
242
|
+
customer: "Customer details; ContactPanel, Descriptions, Tag.",
|
|
243
|
+
},
|
|
244
|
+
notes: [hdrNote, "List, thread and customer panel sit side by side and stack in that order at 860px and below. Keep the selected conversation in your own state."],
|
|
245
|
+
},
|
|
246
|
+
PageNotifications: {
|
|
247
|
+
description: "Notifications template: filters, a feed grouped by day and an empty state. Put Mark all read in actions.",
|
|
248
|
+
props: header,
|
|
249
|
+
slots: {
|
|
250
|
+
...headSlots,
|
|
251
|
+
filters: "Filter chips such as all, unread and mentions; FilterChips.",
|
|
252
|
+
feed: "Notification rows grouped by day; Card, IconTile, Badge, Divider.",
|
|
253
|
+
empty: "Shown instead of the feed when nothing matches; EmptyState.",
|
|
254
|
+
},
|
|
255
|
+
notes: [hdrNote, "Fill empty only when the feed has no rows. Mark all read goes in the actions slot."],
|
|
256
|
+
},
|
|
257
|
+
PageAnalytics: {
|
|
258
|
+
description: "Analytics template: period picker, KPI strip, trend charts, a breakdown block and a table. Put Export in actions.",
|
|
259
|
+
props: header,
|
|
260
|
+
slots: {
|
|
261
|
+
...headSlots,
|
|
262
|
+
period: "Period presets and compare toggle; SegmentedControl, Select, Switch.",
|
|
263
|
+
kpis: "Headline numbers with deltas; KpiTile, StatLine.",
|
|
264
|
+
trend: "Main time series; ChartCard with MiniChart.",
|
|
265
|
+
breakdown: "Split by channel or country; ChartCard with SegBar and CountryRow.",
|
|
266
|
+
table: "Rows behind the numbers; DataTable.",
|
|
267
|
+
},
|
|
268
|
+
notes: [hdrNote, "Trend and breakdown share a row and wrap on narrow screens. Put Export in the actions slot."],
|
|
269
|
+
},
|
|
194
270
|
PageAuth: {
|
|
195
271
|
description: 'Sign-in page template without the app shell, as a centered card or a split layout.',
|
|
196
272
|
props: {
|