@ziyarago/ui 0.15.3 → 0.17.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 -41
- package/README.md +2 -2
- package/dist/llms-full.txt +119 -3
- package/dist/llms.txt +6 -2
- package/dist/manifest.json +448 -6
- package/dist/style.css +78 -0
- package/package.json +1 -1
- package/src/core/bools.js +1 -1
- package/src/core/components2.js +26 -14
- package/src/core/keys.js +37 -0
- package/src/internal.js +1 -1
- package/src/meta/data.js +77 -0
- package/src/meta/forms.js +5 -3
- package/src/meta/groups.js +1 -1
- package/src/meta/overlay.js +3 -2
- package/src/meta/tiers.js +1 -1
- package/src/react/index.js +1 -1
- package/src/styles/charts.css +68 -0
- package/src/styles/components8.css +7 -0
- package/src/styles/index.css +1 -0
- package/types/react.d.ts +11 -1
- package/types/vue.d.ts +11 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [0.17.0](https://github.com/ziyarago/ui/compare/v0.16.0...v0.17.0) (2026-10-21)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* chart components metadata, charts docs page and styles (Pro: LineChart, AreaChart, BarChart, DonutChart) ([be37587](https://github.com/ziyarago/ui/commit/be37587030f01821117364d1ec3f8d7565964f53))
|
|
6
|
+
|
|
7
|
+
## [0.16.0](https://github.com/ziyarago/ui/compare/v0.15.3...v0.16.0) (2026-10-21)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* keyboard and ARIA for Combobox, MultiSelect, Calendar and DatePicker, Tooltip Escape, client-side today, changelog cleanup ([ec905ac](https://github.com/ziyarago/ui/commit/ec905ace4be6d59c884b62941a697b53a2d236b7))
|
|
12
|
+
|
|
1
13
|
## [0.15.3](https://github.com/ziyarago/ui/compare/v0.15.2...v0.15.3) (2026-10-21)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
|
@@ -117,44 +129,3 @@
|
|
|
117
129
|
### Features
|
|
118
130
|
|
|
119
131
|
* publish @ziyarago/ui and @ziyarago/ui-mcp to npm ([bc42145](https://github.com/ziyarago/ui/commit/bc42145f7750fdd8071a29bc088b8366a1adb391))
|
|
120
|
-
|
|
121
|
-
# Changelog
|
|
122
|
-
|
|
123
|
-
All notable changes follow [Keep a Changelog](https://keepachangelog.com) and [SemVer](https://semver.org). Pre-1.0: minor versions may break.
|
|
124
|
-
|
|
125
|
-
## 0.1.0 — first release
|
|
126
|
-
|
|
127
|
-
### Added
|
|
128
|
-
- Docs site SEO: canonical, Open Graph, Twitter and JSON-LD tags per page, generated `sitemap.xml` and `robots.txt`, 404 page with noindex, og.png, favicon; Google Analytics 4 and Yandex Metrika loaded from build variables.
|
|
129
|
-
- Deployment of the docs to your own server over SSH (releases directory, atomic switch, rollback): `deploy/`, `.github/workflows/deploy-docs.yml`, `docs/DEPLOYMENT.md`.
|
|
130
|
-
- Display settings: `useUiTheme()` gains `setMotion('auto|on|off')`, `setEffects('auto|full|lite')` and `setBackground(name)`; attributes `data-motion`, `data-fx`, `data-bg`; no-flash init script in the Nuxt module.
|
|
131
|
-
- Page backgrounds (`aurora`, `sunset`, `ocean`, `emerald`, `rose`, `mesh`) and gradient cards (`<UiCard variant="gradient" tone intensity>`; 8 tones, soft and vivid, dark and light).
|
|
132
|
-
- API metadata for all 182 components in `src/meta/` (props with every value, defaults, slots, events), validated against the render code by `npm run check`; shown as API reference tables in the docs.
|
|
133
|
-
- AI tooling: `dist/manifest.json`, `llms.txt`, `llms-full.txt` and the `@ziyarago/ui-mcp` package (MCP server + `init` for AGENTS.md, Claude skill, Cursor rule).
|
|
134
|
-
- Automated releases: GitHub Actions + semantic-release (version from commit messages), npm publish with provenance and docs deploy to ziyara.vip. See CONTRIBUTING.md.
|
|
135
|
-
- Page templates gallery in the docs site (`/docs/templates`): 17 live templates in the app shell with top or side menu, slot highlighting and an inspector (accepted components, props, example) for 89 page slots and 5 shell slots.
|
|
136
|
-
- `size` prop (`xs | sm | md | lg | xl`, default `md`) on controls and density-bearing components (about 120). Adapters set `data-size` on the root; `md` keeps the previous look. Scale tokens `--zg-sz-*` live in `tokens.css`, per-group overrides in `src/styles/sizes/`.
|
|
137
|
-
- Popup surfaces (`--zg-pop`), stacking tokens (`--zg-z-bar`, `--zg-z-pop`, `--zg-z-modal`) and entrance motion for selects, calendars, menus, hover cards, modals and drawers.
|
|
138
|
-
- Docs pages for Fonts and Colors (families, tokens, weight mapping, swatches in both themes and both palettes).
|
|
139
|
-
- Documentation site in `site/` (Nuxt): landing, getting started, theming, 182 component pages with live previews and Vue/React code.
|
|
140
|
-
- gluestack parity, 16 components: Heading, Text, Box, Center, HStack, VStack, Grid, Link, Pressable, Icon, Portal, LiquidGlass, BottomSheet, Actionsheet, ImageViewer, ChatAi.
|
|
141
|
-
- Nuxt module `@ziyarago/ui/nuxt` (auto-registered components, CSS, theme attributes, SSR).
|
|
142
|
-
- Framework-neutral core with Vue 3 (`@ziyarago/ui/vue`) and React 18+ (`@ziyarago/ui/react`) adapters.
|
|
143
|
-
- 160+ components in 12 groups: actions, forms, surfaces, data, navigation, layout, CRM, hotels, tours and 360°, prayer and Ramadan.
|
|
144
|
-
- 16 page templates with named slots (`PageDashboard`, `PageCrm`, `PageBookings`, `PageCatalog`, `PageDetail`, `PageSettings`, `PageUserList`, `PageProfile`, `PageForm`, `PageOrder`, `PageAccount`, `PagePricing`, `PageFaq`, `PagePatterns`, `PageAuth`, `PageStatus`).
|
|
145
|
-
- Two menus in one shell: top and side, with a collapsible sidebar.
|
|
146
|
-
- OKLCH tokens, palettes `gold` and `tamam`, dark and light themes, RTL, Thmanyah and Manrope.
|
|
147
|
-
- Validation rules (`rules`) and `ValidatedField`.
|
|
148
|
-
- `UiMap`, `UiTour` with spotlight, `UiSortable`, `UiTreeSelect`, `UiRichEditor`.
|
|
149
|
-
- `tokens/tokens.json` for Flutter and native clients; `dist/style.css` single-file stylesheet.
|
|
150
|
-
|
|
151
|
-
### Known gaps
|
|
152
|
-
- Props are typed for 9 core components; the rest accept `Record<string, any>`.
|
|
153
|
-
- Installed from the packed tarball into clean Vite+Vue, Vite+React and Nuxt 3 apps: all build, Nuxt SSR renders. No automated tests yet.
|
|
154
|
-
- Light theme and RTL are covered by tokens but not yet screenshot-tested for every component.
|
|
155
|
-
|
|
156
|
-
### Fixed before release
|
|
157
|
-
- Arabic looked bold: Thmanyah has no 600 face and is heavier than Manrope. `fonts.css` now maps weights with ranges (200-300 Light, 400-600 Regular, 700 Medium, 800 Bold, 900 Black).
|
|
158
|
-
- Light theme: stronger card separation (`--zg-s1/s2/s3`, `--zg-stroke`, `--zg-rim`, `--zg-shadow-1`); `UiCard variant="inverse"` re-scopes tokens to dark so content inside stays readable; bell counter and incoming-call button text contrast.
|
|
159
|
-
- `Page*` templates with `title` crashed in Vue/React (`C.PageHeader` was called as a function).
|
|
160
|
-
- `useUiTheme()` and `UiMap` touched `document` during SSR.
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
<p align="center"><a href="https://ziyara.vip"><img src="https://raw.githubusercontent.com/ziyarago/ui/main/docs/images/hero-dark.png" alt="ziyarago/ui: glass design system for Vue, Nuxt and React" width="100%"></a></p>
|
|
6
6
|
|
|
7
|
-
Glass design system for Vue 3, Nuxt and React: 102 free components and 6 page templates (the Pro package adds
|
|
7
|
+
Glass design system for Vue 3, Nuxt and React: 102 free components and 6 page templates (the Pro package adds 110 components and 33 templates), OKLCH tokens, dark and light, RTL and Arabic, 16 interface languages. One framework-neutral core with thin adapters. Built for Umrah and Hajj products, usable anywhere.
|
|
8
8
|
|
|
9
9
|
<table>
|
|
10
10
|
<tr>
|
|
@@ -12,7 +12,7 @@ Glass design system for Vue 3, Nuxt and React: 102 free components and 6 page te
|
|
|
12
12
|
<td width="50%"><img src="https://raw.githubusercontent.com/ziyarago/ui/main/docs/images/hero-rtl.png" alt="Arabic RTL"><br><sub>Arabic, RTL mirrored</sub></td>
|
|
13
13
|
</tr>
|
|
14
14
|
<tr>
|
|
15
|
-
<td><img src="https://raw.githubusercontent.com/ziyarago/ui/main/docs/images/components.png" alt="Component catalog"><br><sub>
|
|
15
|
+
<td><img src="https://raw.githubusercontent.com/ziyarago/ui/main/docs/images/components.png" alt="Component catalog"><br><sub>212 components documented with props and live examples (102 free, 110 Pro)</sub></td>
|
|
16
16
|
<td><img src="https://raw.githubusercontent.com/ziyarago/ui/main/docs/images/templates.png" alt="Page templates"><br><sub>page templates: 6 free, 33 Pro</sub></td>
|
|
17
17
|
</tr>
|
|
18
18
|
<tr>
|
package/dist/llms-full.txt
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 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, 102 free components and 6 page templates (more in @ziyarago/ui-pro).
|
|
4
4
|
|
|
5
|
-
Version 0.
|
|
5
|
+
Version 0.17.0. Docs: https://ziyara.vip . Manifest (machine readable): https://ziyara.vip/manifest.json
|
|
6
6
|
|
|
7
7
|
## Setup
|
|
8
8
|
- import { UiButton } from '@ziyarago/ui/vue'
|
|
@@ -674,6 +674,7 @@ Events:
|
|
|
674
674
|
Notes:
|
|
675
675
|
- Selecting from the list is the only way to set a value: free text is never emitted.
|
|
676
676
|
- The list closes on outside click and on Escape.
|
|
677
|
+
- Keyboard (WAI-ARIA combobox): the input has role=combobox with aria-expanded, aria-controls and aria-activedescendant; focus stays in the input, Arrow Down and Up open the list and move the active option (wraps, skips disabled), Enter chooses it, Escape closes.
|
|
677
678
|
|
|
678
679
|
## UiTreeSelect (forms, Pro)
|
|
679
680
|
Dropdown with a searchable tree. Use for hierarchical choices such as regions, categories or org units.
|
|
@@ -836,12 +837,14 @@ Props:
|
|
|
836
837
|
- `min`: Date | string | number. Earliest selectable day; earlier days are disabled.
|
|
837
838
|
- `max`: Date | string | number. Latest selectable day; later days are disabled.
|
|
838
839
|
- `disabledDate`: (date: Date) => boolean. Return true to disable a specific day.
|
|
840
|
+
- `today`: Date | string | number. The day marked as today. By default it is read from the browser clock after mount (nothing is marked in server-rendered HTML), so server and client never disagree near midnight or across time zones. Pass it to mark a day in the HTML too.
|
|
839
841
|
- `events`: Record<string, string> = "{}". Marked days: keys are YYYY-MM-DD, values are the tooltip text.
|
|
840
842
|
- `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Day cell and header size.
|
|
841
843
|
Events:
|
|
842
844
|
- change: Called with a Date object (local time) for the clicked day.
|
|
843
845
|
Notes:
|
|
844
846
|
- The event payload is a Date, not a string: convert to ISO yourself if the model is a string.
|
|
847
|
+
- Keyboard: one tab stop on the day grid; arrows move by day or week, Home and End to the week start and end, PageUp and PageDown change month (Shift: year), Enter or Space picks. Without a selected date the visible month is the current month, which server and client can disagree on right at a month boundary; pass modelValue or today to make it deterministic.
|
|
845
848
|
|
|
846
849
|
## UiRangeCalendar (forms, Pro)
|
|
847
850
|
Month grid for picking a date range with hover preview. Use for stays, trips and report periods.
|
|
@@ -866,6 +869,7 @@ Props:
|
|
|
866
869
|
- `min`: Date | string | number. Earliest selectable day, forwarded to the calendar.
|
|
867
870
|
- `max`: Date | string | number. Latest selectable day, forwarded to the calendar.
|
|
868
871
|
- `disabledDate`: (date: Date) => boolean. Return true to disable a specific day, forwarded to the calendar.
|
|
872
|
+
- `today`: Date | string | number. The day marked as today in the calendar; by default read from the browser clock after mount. Forwarded to the calendar.
|
|
869
873
|
- `required`: boolean = false. Adds a red asterisk to the label. Does not validate.
|
|
870
874
|
- `label`: string. Label shown above the control.
|
|
871
875
|
- `hint`: string. Helper text under the control. Hidden while error is set.
|
|
@@ -877,7 +881,7 @@ Events:
|
|
|
877
881
|
- change: Called with a Date object (local midnight) for the chosen day. The popup closes after picking.
|
|
878
882
|
Notes:
|
|
879
883
|
- The event payload is a Date, not a string: convert to ISO yourself if the model is a string.
|
|
880
|
-
- The popup closes on outside click and on Escape.
|
|
884
|
+
- The popup closes on outside click and on Escape (focus returns to the trigger). Arrow Down or Up on the trigger opens it and focus moves into the calendar, which uses the Calendar keys.
|
|
881
885
|
|
|
882
886
|
## UiTimePicker (forms)
|
|
883
887
|
Hour and minute selects for a time of day. Use for opening hours and appointment times.
|
|
@@ -1182,6 +1186,116 @@ Slots:
|
|
|
1182
1186
|
Events:
|
|
1183
1187
|
- menu: Called with the clicked menu item label (the string from menu); the menu closes afterwards.
|
|
1184
1188
|
|
|
1189
|
+
## UiLineChart (data, Pro)
|
|
1190
|
+
Line chart for time series with several series, a localized time axis with automatic label step, "nice" value ticks, gaps for null values, tooltip and keyboard navigation.
|
|
1191
|
+
Props:
|
|
1192
|
+
- `series` (required): { key: string; label: string; values: { x: string | number | Date; y: number | null }[]; tone?: 'brand' | 'success' | 'warning' | 'danger' | 'info' | 'neutral'; dashed?: boolean }[]. Series to draw. x is a Date, an ISO date string (day, week, month are detected from the spacing), a number or a category string; the series share one x list, a missing x or a null y is a gap. tone is brand, success, warning, danger, info or neutral; without it the series palette (--zg-chart-1 to 6) is used. dashed draws the line dashed, for example the previous week.
|
|
1193
|
+
- `unit`: 'count' | 'currency' | 'percent' = "count". Number format of the value axis, tooltip and legend. count: grouped digits, compact on the axis (1.2k, 1.2M, localized by Intl); currency: needs currency; percent: values are percent points (12 means 12%).
|
|
1194
|
+
- `currency`: string. ISO 4217 code for unit="currency", for example UZS, SAR or USD. The axis stays compact without the symbol; tooltip and legend show the full amount.
|
|
1195
|
+
- `yFormat`: (n: number) => string. Custom formatter for every number (axis, tooltip). Overrides unit and currency.
|
|
1196
|
+
- `locale`: string. BCP 47 tag for numbers and dates, for example "ar" or "uz-UZ". Defaults to the kit locale (en ru uz ar tr and the rest). An RTL language also mirrors the chart.
|
|
1197
|
+
- `dir`: 'ltr' | 'rtl'. Text direction. Defaults to the direction of the page (RTL mirrors the axis, the plot and the tooltip).
|
|
1198
|
+
- `label`: string. Accessible name, for example "Revenue". The generated summary (series, period, minimum, maximum, last value) follows it in the aria-label.
|
|
1199
|
+
- `height`: number. Chart height in px (without the legend). Overrides size. Horizontal bars grow with the number of categories when it is not set.
|
|
1200
|
+
- `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Preset height: xs 140, sm 180, md 240, lg 320, xl 400 px.
|
|
1201
|
+
- `loading`: boolean = false. Shows a skeleton in the shape of the chart.
|
|
1202
|
+
- `emptyText`: string. Text of the empty state. Default is the translated "No data for this period".
|
|
1203
|
+
- `emptyIcon`: string. Icon name shown above the empty text. None by default.
|
|
1204
|
+
- `legend`: boolean = "true when there is more than one series". Text legend of toggle buttons (aria-pressed). A button hides and shows its series; the scale is recomputed.
|
|
1205
|
+
- `yMin`: number. Fixed lower end of the value axis (otherwise nice ticks from the data, from 0 unless the data stays far above it).
|
|
1206
|
+
- `yMax`: number. Fixed upper end of the value axis.
|
|
1207
|
+
- `showPoints`: boolean. Dots on every point. Default: on up to 40 points; isolated points (between gaps) always get a dot.
|
|
1208
|
+
Events:
|
|
1209
|
+
- pointClick: Click or Enter on a point. Called with { seriesKey, series, index, x, label, y }: the series under the pointer (or the keyboard series), the index in the shared x list, the original x value, its formatted label and y.
|
|
1210
|
+
- legendToggle: A legend button was pressed. Called with { key, label, hidden } where hidden is the new state.
|
|
1211
|
+
Notes:
|
|
1212
|
+
- Pure inline SVG, no dependencies. Colors come from the --zg-chart-* tokens (light, dark, gold and tamam), so there is nothing to configure per theme.
|
|
1213
|
+
- Empty data (no points, only null values, or only zeros for bars and donut) shows the empty state instead of an axis of zeros. A null y is a gap in the line, never a zero. All values equal: the axis starts at 0 and leaves headroom.
|
|
1214
|
+
- Accessibility: the plot is one focusable role="img" with a generated aria-label, a visually hidden data table, and a live region that reads the point while you move. Keys: Left and Right (mirrored in RTL) move between points, Up and Down between series, Home and End jump, Escape hides the tooltip, Enter fires pointClick.
|
|
1215
|
+
- The chart fills the width of its container (ResizeObserver, client only) and renders at 640 px on the server.
|
|
1216
|
+
|
|
1217
|
+
## UiAreaChart (data, Pro)
|
|
1218
|
+
Line chart with a gradient fill under each line, made from the series color; same data, axes, tooltip and keyboard behavior as LineChart.
|
|
1219
|
+
Props:
|
|
1220
|
+
- `series` (required): { key: string; label: string; values: { x: string | number | Date; y: number | null }[]; tone?: 'brand' | 'success' | 'warning' | 'danger' | 'info' | 'neutral'; dashed?: boolean }[]. Series to draw, see LineChart. The fill goes down to the zero line (or the bottom of the plot when the axis does not include 0); each run between gaps is filled separately.
|
|
1221
|
+
- `unit`: 'count' | 'currency' | 'percent' = "count". Number format of the value axis, tooltip and legend. count: grouped digits, compact on the axis (1.2k, 1.2M, localized by Intl); currency: needs currency; percent: values are percent points (12 means 12%).
|
|
1222
|
+
- `currency`: string. ISO 4217 code for unit="currency", for example UZS, SAR or USD. The axis stays compact without the symbol; tooltip and legend show the full amount.
|
|
1223
|
+
- `yFormat`: (n: number) => string. Custom formatter for every number (axis, tooltip). Overrides unit and currency.
|
|
1224
|
+
- `locale`: string. BCP 47 tag for numbers and dates, for example "ar" or "uz-UZ". Defaults to the kit locale (en ru uz ar tr and the rest). An RTL language also mirrors the chart.
|
|
1225
|
+
- `dir`: 'ltr' | 'rtl'. Text direction. Defaults to the direction of the page (RTL mirrors the axis, the plot and the tooltip).
|
|
1226
|
+
- `label`: string. Accessible name, for example "Revenue". The generated summary (series, period, minimum, maximum, last value) follows it in the aria-label.
|
|
1227
|
+
- `height`: number. Chart height in px (without the legend). Overrides size. Horizontal bars grow with the number of categories when it is not set.
|
|
1228
|
+
- `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Preset height: xs 140, sm 180, md 240, lg 320, xl 400 px.
|
|
1229
|
+
- `loading`: boolean = false. Shows a skeleton in the shape of the chart.
|
|
1230
|
+
- `emptyText`: string. Text of the empty state. Default is the translated "No data for this period".
|
|
1231
|
+
- `emptyIcon`: string. Icon name shown above the empty text. None by default.
|
|
1232
|
+
- `legend`: boolean = "true when there is more than one series". Text legend of toggle buttons (aria-pressed). A button hides and shows its series; the scale is recomputed.
|
|
1233
|
+
- `yMin`: number. Fixed lower end of the value axis.
|
|
1234
|
+
- `yMax`: number. Fixed upper end of the value axis.
|
|
1235
|
+
- `showPoints`: boolean. Dots on every point. Default: on up to 40 points; isolated points always get a dot.
|
|
1236
|
+
Events:
|
|
1237
|
+
- pointClick: Click or Enter on a point. Called with { seriesKey, series, index, x, label, y }: the series under the pointer (or the keyboard series), the index in the shared x list, the original x value, its formatted label and y.
|
|
1238
|
+
- legendToggle: A legend button was pressed. Called with { key, label, hidden } where hidden is the new state.
|
|
1239
|
+
Notes:
|
|
1240
|
+
- Pure inline SVG, no dependencies. Colors come from the --zg-chart-* tokens (light, dark, gold and tamam), so there is nothing to configure per theme.
|
|
1241
|
+
- Empty data (no points, only null values, or only zeros for bars and donut) shows the empty state instead of an axis of zeros. A null y is a gap in the line, never a zero. All values equal: the axis starts at 0 and leaves headroom.
|
|
1242
|
+
- Accessibility: the plot is one focusable role="img" with a generated aria-label, a visually hidden data table, and a live region that reads the point while you move. Keys: Left and Right (mirrored in RTL) move between points, Up and Down between series, Home and End jump, Escape hides the tooltip, Enter fires pointClick.
|
|
1243
|
+
- The chart fills the width of its container (ResizeObserver, client only) and renders at 640 px on the server.
|
|
1244
|
+
|
|
1245
|
+
## UiBarChart (data, Pro)
|
|
1246
|
+
Vertical or horizontal bar chart, grouped or stacked, for categories such as days, 24 hours or revenue per branch; same axes, formats and accessibility as LineChart.
|
|
1247
|
+
Props:
|
|
1248
|
+
- `series` (required): { key: string; label: string; values: { x: string | number | Date; y: number | null }[]; tone?: 'brand' | 'success' | 'warning' | 'danger' | 'info' | 'neutral'; dashed?: boolean }[]. One entry per bar series. x is the category (string, number or Date); categories keep their order of first appearance, dates are sorted. Negative values draw below the zero line.
|
|
1249
|
+
- `orientation`: 'vertical' | 'horizontal' = "vertical". Horizontal puts the categories on the left (right in RTL) and grows with the number of categories.
|
|
1250
|
+
- `stacked`: boolean = false. Stacks the series of a category (positives and negatives stack apart) instead of placing them side by side; the tooltip adds a total.
|
|
1251
|
+
- `unit`: 'count' | 'currency' | 'percent' = "count". Number format of the value axis, tooltip and legend. count: grouped digits, compact on the axis (1.2k, 1.2M, localized by Intl); currency: needs currency; percent: values are percent points (12 means 12%).
|
|
1252
|
+
- `currency`: string. ISO 4217 code for unit="currency", for example UZS, SAR or USD. The axis stays compact without the symbol; tooltip and legend show the full amount.
|
|
1253
|
+
- `yFormat`: (n: number) => string. Custom formatter for every number (axis, tooltip). Overrides unit and currency.
|
|
1254
|
+
- `locale`: string. BCP 47 tag for numbers and dates, for example "ar" or "uz-UZ". Defaults to the kit locale (en ru uz ar tr and the rest). An RTL language also mirrors the chart.
|
|
1255
|
+
- `dir`: 'ltr' | 'rtl'. Text direction. Defaults to the direction of the page (RTL mirrors the axis, the plot and the tooltip).
|
|
1256
|
+
- `label`: string. Accessible name, for example "Revenue". The generated summary (series, period, minimum, maximum, last value) follows it in the aria-label.
|
|
1257
|
+
- `height`: number. Chart height in px (without the legend). Overrides size. Horizontal bars grow with the number of categories when it is not set.
|
|
1258
|
+
- `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Preset height: xs 140, sm 180, md 240, lg 320, xl 400 px.
|
|
1259
|
+
- `loading`: boolean = false. Shows a skeleton in the shape of the chart.
|
|
1260
|
+
- `emptyText`: string. Text of the empty state. Default is the translated "No data for this period".
|
|
1261
|
+
- `emptyIcon`: string. Icon name shown above the empty text. None by default.
|
|
1262
|
+
- `legend`: boolean = "true when there is more than one series". Text legend of toggle buttons (aria-pressed). A button hides and shows its series; the scale is recomputed.
|
|
1263
|
+
- `yMin`: number. Fixed lower end of the value axis.
|
|
1264
|
+
- `yMax`: number. Fixed upper end of the value axis.
|
|
1265
|
+
Events:
|
|
1266
|
+
- pointClick: Click or Enter on a point. Called with { seriesKey, series, index, x, label, y }: the series under the pointer (or the keyboard series), the index in the shared x list, the original x value, its formatted label and y.
|
|
1267
|
+
- legendToggle: A legend button was pressed. Called with { key, label, hidden } where hidden is the new state.
|
|
1268
|
+
Notes:
|
|
1269
|
+
- Pure inline SVG, no dependencies. Colors come from the --zg-chart-* tokens (light, dark, gold and tamam), so there is nothing to configure per theme.
|
|
1270
|
+
- Empty data (no points, only null values, or only zeros for bars and donut) shows the empty state instead of an axis of zeros. A null y is a gap in the line, never a zero. All values equal: the axis starts at 0 and leaves headroom.
|
|
1271
|
+
- Accessibility: the plot is one focusable role="img" with a generated aria-label, a visually hidden data table, and a live region that reads the point while you move. Keys: Left and Right (mirrored in RTL) move between points, Up and Down between series, Home and End jump, Escape hides the tooltip, Enter fires pointClick.
|
|
1272
|
+
- The chart fills the width of its container (ResizeObserver, client only) and renders at 640 px on the server.
|
|
1273
|
+
|
|
1274
|
+
## UiDonutChart (data, Pro)
|
|
1275
|
+
Donut chart of shares (sales channels, payment methods, plans) with a text legend, the total in the centre and a legend toggle.
|
|
1276
|
+
Props:
|
|
1277
|
+
- `data` (required): { key: string; label: string; value: number; tone?: 'brand' | 'success' | 'warning' | 'danger' | 'info' | 'neutral' }[]. Slices. Only positive values draw; others keep their legend row at 0. All zero or empty shows the empty state.
|
|
1278
|
+
- `unit`: 'count' | 'currency' | 'percent' = "count". Number format of the value axis, tooltip and centre total. count: grouped digits, compact on the axis (1.2k, 1.2M, localized by Intl); currency: needs currency; percent: values are percent points (12 means 12%).
|
|
1279
|
+
- `currency`: string. ISO 4217 code for unit="currency", for example UZS, SAR or USD. The axis stays compact without the symbol; tooltip and legend show the full amount.
|
|
1280
|
+
- `yFormat`: (n: number) => string. Custom formatter for every number (axis, tooltip, total). Overrides unit and currency.
|
|
1281
|
+
- `locale`: string. BCP 47 tag for numbers and dates, for example "ar" or "uz-UZ". Defaults to the kit locale (en ru uz ar tr and the rest). An RTL language also mirrors the chart.
|
|
1282
|
+
- `dir`: 'ltr' | 'rtl'. Text direction. Defaults to the direction of the page (RTL mirrors the axis, the plot and the tooltip).
|
|
1283
|
+
- `label`: string. Accessible name, for example "Revenue". The generated summary (series, period, minimum, maximum, last value) follows it in the aria-label.
|
|
1284
|
+
- `height`: number. Diameter in px. Overrides size.
|
|
1285
|
+
- `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Preset diameter: xs 120, sm 160, md 200, lg 240, xl 300 px.
|
|
1286
|
+
- `loading`: boolean = false. Shows a skeleton in the shape of the chart.
|
|
1287
|
+
- `emptyText`: string. Text of the empty state. Default is the translated "No data for this period".
|
|
1288
|
+
- `emptyIcon`: string. Icon name shown above the empty text. None by default.
|
|
1289
|
+
- `legend`: boolean = true. Text legend of toggle buttons (aria-pressed). A button hides and shows its slice; the scale is recomputed.
|
|
1290
|
+
Events:
|
|
1291
|
+
- pointClick: Click or Enter on a slice. Called with { key, label, value, share, index }; share is 0 to 1.
|
|
1292
|
+
- legendToggle: A legend button was pressed. Called with { key, label, hidden } where hidden is the new state.
|
|
1293
|
+
Notes:
|
|
1294
|
+
- Pure inline SVG, no dependencies. Colors come from the --zg-chart-* tokens (light, dark, gold and tamam), so there is nothing to configure per theme.
|
|
1295
|
+
- Empty data (no points, only null values, or only zeros for bars and donut) shows the empty state instead of an axis of zeros. A null y is a gap in the line, never a zero. All values equal: the axis starts at 0 and leaves headroom.
|
|
1296
|
+
- Accessibility: the plot is one focusable role="img" with a generated aria-label, a visually hidden data table, and a live region that reads the point while you move. Keys: Left and Right (mirrored in RTL) move between points, Up and Down between series, Home and End jump, Escape hides the tooltip, Enter fires pointClick.
|
|
1297
|
+
- The chart fills the width of its container (ResizeObserver, client only) and renders at 640 px on the server.
|
|
1298
|
+
|
|
1185
1299
|
## UiRing (data)
|
|
1186
1300
|
Circular progress gauge with a percentage in the center and a tick scale around it.
|
|
1187
1301
|
Props:
|
|
@@ -1596,6 +1710,7 @@ Slots:
|
|
|
1596
1710
|
- default: The element the tooltip is attached to.
|
|
1597
1711
|
Notes:
|
|
1598
1712
|
- Pure CSS bubble; it cannot contain markup. For rich content use HoverCard.
|
|
1713
|
+
- Escape hides the bubble while it is shown (hover or focus) without moving focus; it stays visible while the pointer is over the trigger or the bubble, and returns on the next hover or focus.
|
|
1599
1714
|
|
|
1600
1715
|
## UiDropdown (overlay)
|
|
1601
1716
|
Button that opens a menu of actions; use for "more" menus and action lists.
|
|
@@ -1696,11 +1811,12 @@ Events:
|
|
|
1696
1811
|
- close: Close icon.
|
|
1697
1812
|
|
|
1698
1813
|
## UiScreensaver (overlay, Pro)
|
|
1699
|
-
Full-screen idle screen with a large clock, date and
|
|
1814
|
+
Full-screen idle screen with a large clock, date and an optional logo; show it after inactivity.
|
|
1700
1815
|
Props:
|
|
1701
1816
|
- `open`: boolean = false. Shows the screensaver when true; renders nothing when false.
|
|
1702
1817
|
- `locale`: string = "en-GB". BCP 47 locale for the date line.
|
|
1703
1818
|
- `hint`: string. Small hint under the date, e.g. "Tap to continue".
|
|
1819
|
+
- `logo`: string. URL of an image shown above the clock. Use an absolute URL or a root-relative path such as "/brand/logo.svg". Nothing is shown when it is not set, so the screensaver never requests a missing file.
|
|
1704
1820
|
- `idleMs`: number = 0. When greater than 0 and the screensaver is closed, a hidden sentinel listens for pointer, key, wheel and touch activity and calls idle after this many milliseconds without any. 0 disables it.
|
|
1705
1821
|
Events:
|
|
1706
1822
|
- close: Called on click or any key (including Escape) while open.
|
package/dist/llms.txt
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 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, 102 free components and 6 page templates (more in @ziyarago/ui-pro).
|
|
4
4
|
|
|
5
|
-
Version 0.
|
|
5
|
+
Version 0.17.0. Docs: https://ziyara.vip . Manifest (machine readable): https://ziyara.vip/manifest.json
|
|
6
6
|
|
|
7
7
|
## Setup
|
|
8
8
|
- import { UiButton } from '@ziyarago/ui/vue'
|
|
@@ -122,6 +122,10 @@ Tables, stats, charts and lists.
|
|
|
122
122
|
- UiSegBar (Pro): Single stacked bar split into proportional segments with a legend, for distributions.
|
|
123
123
|
- UiMiniChart: Tiny sparkline in bar or line form for trends inside cards and tables.
|
|
124
124
|
- UiChartCard (Pro): Card shell for a chart with title, subtitle and an optional overflow menu; put the chart in the default slot.
|
|
125
|
+
- UiLineChart (Pro): Line chart for time series with several series, a localized time axis with automatic label step, "nice" value ticks, gaps for null values, tooltip and keyboard navigation.
|
|
126
|
+
- UiAreaChart (Pro): Line chart with a gradient fill under each line, made from the series color; same data, axes, tooltip and keyboard behavior as LineChart.
|
|
127
|
+
- UiBarChart (Pro): Vertical or horizontal bar chart, grouped or stacked, for categories such as days, 24 hours or revenue per branch; same axes, formats and accessibility as LineChart.
|
|
128
|
+
- UiDonutChart (Pro): Donut chart of shares (sales channels, payment methods, plans) with a text legend, the total in the centre and a legend toggle.
|
|
125
129
|
- UiRing: Circular progress gauge with a percentage in the center and a tick scale around it.
|
|
126
130
|
- UiOccupancyChart (Pro): Bar chart of percentages by label, such as hotel occupancy per day or month.
|
|
127
131
|
- UiSalesFunnel (Pro): Horizontal funnel of steps with bars scaled to the largest value, for conversion flows.
|
|
@@ -170,7 +174,7 @@ Dialogs, sheets and popovers.
|
|
|
170
174
|
- UiImageViewer (Pro): Full-screen lightbox for one or several images with previous/next buttons and a counter.
|
|
171
175
|
- UiTour (Pro): Guided product tour that dims the page, highlights a target element and shows a step popover.
|
|
172
176
|
- UiTourPopover (Pro): Step card of a tour with title, text, step counter and Back/Next buttons; used by Tour and usable standalone.
|
|
173
|
-
- UiScreensaver (Pro): Full-screen idle screen with a large clock, date and
|
|
177
|
+
- UiScreensaver (Pro): Full-screen idle screen with a large clock, date and an optional logo; show it after inactivity.
|
|
174
178
|
|
|
175
179
|
## Navigation
|
|
176
180
|
Menus, tabs and paging.
|