@ziyarago/ui 0.2.0 → 0.3.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 (53) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -0
  3. package/dist/llms-full.txt +100 -8
  4. package/dist/llms.txt +1 -1
  5. package/dist/manifest.json +412 -20
  6. package/dist/style.css +73 -4
  7. package/docs/INTEGRATION.md +153 -0
  8. package/docs/MIGRATION.md +453 -0
  9. package/package.json +87 -7
  10. package/src/compat/index.js +468 -0
  11. package/src/compat/map.js +282 -0
  12. package/src/compat/resolver.js +22 -0
  13. package/src/compat/vite.js +29 -0
  14. package/src/core/bools.js +4 -0
  15. package/src/core/components.js +31 -23
  16. package/src/core/components2.js +20 -16
  17. package/src/core/components4.js +3 -3
  18. package/src/core/components6.js +25 -16
  19. package/src/core/index.js +2 -0
  20. package/src/i18n/components/CopyButton.js +3 -0
  21. package/src/i18n/components/index.js +5 -0
  22. package/src/i18n/index.js +48 -0
  23. package/src/meta/actions.js +10 -3
  24. package/src/meta/data.js +8 -3
  25. package/src/meta/feedback.js +2 -1
  26. package/src/meta/forms.js +44 -4
  27. package/src/meta/media.js +7 -2
  28. package/src/meta/navigation.js +3 -0
  29. package/src/meta/overlay.js +8 -2
  30. package/src/nuxt/module.mjs +2 -2
  31. package/src/nuxt/plugin.mjs +6 -5
  32. package/src/react/index.js +202 -8
  33. package/src/resolver.js +33 -0
  34. package/src/styles/components.css +7 -0
  35. package/src/styles/components6.css +2 -0
  36. package/src/styles/effects.css +6 -4
  37. package/src/styles/extras.css +55 -0
  38. package/src/styles/index.css +1 -0
  39. package/src/theme.js +16 -4
  40. package/src/vue/global.js +2 -0
  41. package/src/vue/index.js +13 -5
  42. package/types/compat-resolver.d.ts +12 -0
  43. package/types/compat-vite.d.ts +11 -0
  44. package/types/compat.d.ts +176 -0
  45. package/types/i18n.d.ts +12 -0
  46. package/types/meta.d.ts +4 -0
  47. package/types/nuxt.d.ts +1 -1
  48. package/types/react.d.ts +6282 -186
  49. package/types/resolver.d.ts +14 -0
  50. package/types/shared.d.ts +7 -7
  51. package/types/theme.d.ts +20 -1
  52. package/types/vue-global.d.ts +193 -0
  53. package/types/vue.d.ts +6178 -186
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [0.3.0](https://github.com/ziyarago/ui/compare/v0.2.0...v0.3.0) (2026-10-21)
2
+
3
+ ### Features
4
+
5
+ * animated aurora background, kit-owned i18n core, glass-ui-kit compat layer, new landing ([f3882ca](https://github.com/ziyarago/ui/commit/f3882caa86a7bdddf4996c28140e0363d9af7e1b))
6
+
1
7
  ## [0.2.0](https://github.com/ziyarago/ui/compare/v0.1.1...v0.2.0) (2026-10-21)
2
8
 
3
9
  ### Features
package/README.md CHANGED
@@ -42,6 +42,7 @@ Types ship with the package. Only 9 core components have typed props so far; the
42
42
  - SSR: components render on the server; icons, `UiMap`, `UiRichEditor`, `UiTour` and `useUiTheme()` touch `document` only on the client.
43
43
  - Palettes via `data-palette="gold|tamam"`, theme via `data-theme="dark|light"`, direction via `dir="rtl"` on `<html>`.
44
44
  - Releases: see `docs/PUBLISHING.md`, history in `CHANGELOG.md`.
45
+ - Coming from `@ziyarago/glass-ui-kit` (Vue 3, `Ui*` local copies)? `@ziyarago/ui/compat` exports the old component names as wrappers over the new ones; step by step guide with prop tables: `docs/MIGRATION.md`.
45
46
 
46
47
  ## License
47
48
  Code: MIT (`LICENSE`). Brand assets (logo, 3D icons) are not MIT: see `LICENSE-ASSETS.md`.
@@ -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, 160+ components and 16 page templates.
4
4
 
5
- Version 0.2.0. Docs: https://ziyara.vip . Manifest (machine readable): https://ziyara.vip/manifest.json
5
+ Version 0.3.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'
@@ -257,12 +257,15 @@ Props:
257
257
  - `loading`: boolean = false. Shows a spinner instead of the icon and disables the button.
258
258
  - `disabled`: boolean = false. Blocks interaction and dims the button.
259
259
  - `block`: boolean = false. Stretches the button to the full width of its container.
260
+ - `type`: 'button' | 'submit' | 'reset' = "button". Native button type. Use submit inside a form.
261
+ - `iconOnly`: boolean = false. Square button (width equals height) with no horizontal padding, for a lone icon. Pass an aria-label.
262
+ - `title`: string. Native tooltip text.
260
263
  Slots:
261
264
  - default: Button label.
262
265
  Events:
263
266
  - click: Native click event. Not fired while disabled or loading.
264
267
  Notes:
265
- - Always renders type="button", so it never submits a form by itself.
268
+ - Renders type="button" unless type is set, so it never submits a form by itself.
266
269
 
267
270
  ## UiIconButton (actions)
268
271
  Square button with only an icon; use for toolbars and compact actions.
@@ -328,9 +331,12 @@ Notes:
328
331
  ## UiSegmentedControl (actions)
329
332
  Segmented switch for choosing exactly one of a few options.
330
333
  Props:
331
- - `items` (required): { value: string; label: string }[] = "[]". Segments to render.
334
+ - `items` (required): { value: string; label: string; icon?: string; disabled?: boolean }[] = "[]". Segments to render. icon is an icon name; disabled: true dims one segment.
332
335
  - `modelValue`: string [v-model]. Value of the selected segment.
333
336
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Control size. sm and md also have a dedicated compact style.
337
+ - `block`: boolean = false. Stretches the control to the container width with equal-width segments.
338
+ - `iconOnly`: boolean = false. Hides labels of segments that have an icon; the label stays as tooltip and aria-label.
339
+ - `ariaLabel`: string. Accessible name of the group.
334
340
  Events:
335
341
  - change: Called with the value of the clicked segment.
336
342
 
@@ -371,8 +377,9 @@ Events:
371
377
  ## UiBadge (actions)
372
378
  Status badge with a colored tone and optional dot.
373
379
  Props:
374
- - `tone`: 'brand' | 'success' | 'warning' | 'danger' | 'info'. Color. Omit for the neutral style.
380
+ - `tone`: 'brand' | 'success' | 'warning' | 'danger' | 'info' | 'inverse'. Color. inverse is a solid high-contrast badge (dark on light themes, light on dark). Omit for the neutral style.
375
381
  - `dot`: boolean = false. Shows a status dot before the content.
382
+ - `shape`: 'pill' | 'square' = "pill". square uses small rounded corners instead of a full pill.
376
383
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Badge height: xs 18px, sm 20px, md 24px, lg 28px, xl 32px.
377
384
  Slots:
378
385
  - default: Badge content.
@@ -436,11 +443,32 @@ Props:
436
443
  - `density`: 'compact' | 'default' = "default". compact uses the small control height.
437
444
  - `disabled`: boolean = false. Disables the control.
438
445
  - `readonly`: boolean = false. Makes the input read-only.
446
+ - `required`: boolean = false. Adds a red asterisk to the label and the native required attribute (browser validation inside a form).
447
+ - `name`: string. Native name attribute of the input.
448
+ - `autocomplete`: string. Native autocomplete hint, for example "email" or "new-password".
449
+ - `min`: number | string. Native min for number, date and time types.
450
+ - `max`: number | string. Native max for number, date and time types.
451
+ - `step`: number | string. Native step for number, date and time types.
452
+ - `maxlength`: number. Maximum number of characters.
453
+ - `minlength`: number. Minimum number of characters (native validation).
454
+ - `inputmode`: string. Virtual keyboard hint: numeric, decimal, tel, email, url, search or none.
455
+ - `pattern`: string. Native validation pattern.
456
+ - `spellcheck`: boolean. Enables or disables spell checking.
457
+ - `autofocus`: boolean. Focuses the input on mount.
458
+ - `autocapitalize`: string. Native autocapitalize hint.
439
459
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Control height, font and padding scale.
460
+ Slots:
461
+ - prefix: Content before the input (icon or text). Replaces the icon prop. React: prefix prop.
462
+ - suffix: Content after the input (button, unit). Same as the suffix prop. React: suffix prop.
440
463
  Events:
441
464
  - change: Called with the new string on every keystroke.
465
+ - blur: Native blur of the input (Vue @blur, React onBlur).
466
+ - focus: Native focus of the input.
467
+ - keydown: Native keydown of the input; modifiers like @keydown.enter work in Vue.
468
+ - input: Native input event (after change), receives the Event.
442
469
  Notes:
443
470
  - Wrapped in a label, so clicking the label focuses the input.
471
+ - Native attributes (name, autocomplete, min, max, step, maxlength, inputmode, pattern ...) and the blur, focus, keydown, keyup and paste listeners are forwarded to the inner input. id, class, style, aria-* and data-* land on the root label.
444
472
 
445
473
  ## UiTextarea (forms)
446
474
  Multi-line text input. Use for comments, descriptions and other long text.
@@ -453,9 +481,18 @@ Props:
453
481
  - `disabled`: boolean = false. Disables the control.
454
482
  - `rows`: number = 4. Visible text rows.
455
483
  - `maxlength`: number. Maximum number of characters.
484
+ - `readonly`: boolean = false. Makes the textarea read-only.
485
+ - `required`: boolean = false. Adds a red asterisk to the label and the native required attribute.
486
+ - `autoResize`: boolean = false. Grows with the content (CSS field-sizing: content, Chromium and Safari).
487
+ - `resize`: boolean = true. false removes the manual resize handle.
488
+ - `showCount`: boolean = false. Shows the character count under the field, as "n / maxlength" when maxlength is set.
489
+ - `name`: string. Native name attribute.
456
490
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Control height, font and padding scale.
457
491
  Events:
458
492
  - change: Called with the new string on every keystroke.
493
+ - input: Native input event (after change), receives the Event.
494
+ - blur: Native blur.
495
+ - focus: Native focus.
459
496
 
460
497
  ## UiNumberInput (forms)
461
498
  Numeric stepper with minus and plus buttons and a typed value. Use for quantities, guest counts and small integers.
@@ -576,6 +613,10 @@ Props:
576
613
  - `options` (required): { value: string | number; label: string; disabled?: boolean }[] = "[]". Available options. An option with disabled: true is dimmed and cannot be chosen.
577
614
  - `label`: string. Label shown above the control.
578
615
  - `placeholder`: string. Shown when nothing is selected. Defaults to "—".
616
+ - `hint`: string. Helper text under the control. Hidden while error is set.
617
+ - `error`: string. Error message under the control. Turns the control red and is announced with role="alert".
618
+ - `required`: boolean = false. Adds a red asterisk to the label. Does not validate.
619
+ - `name`: string. Renders a hidden input with this name and the selected value, so the control posts with a native form.
579
620
  - `disabled`: boolean = false. Disables the control.
580
621
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Control height, font and padding scale.
581
622
  Events:
@@ -621,6 +662,8 @@ Props:
621
662
  - `error`: string. Error message under the control. Turns the control red and is announced with role="alert".
622
663
  - `placeholder`: string. Defaults to "Search…".
623
664
  - `emptyText`: string = "—". Shown when no option matches the query.
665
+ - `clearable`: boolean = false. Shows a clear (x) button while a value is selected; it calls change with null.
666
+ - `filter`: (option, query) => boolean. Custom matcher. Default is a case-insensitive substring match on label.
624
667
  - `disabled`: boolean = false. Disables the control.
625
668
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Control height, font and padding scale.
626
669
  Events:
@@ -664,6 +707,9 @@ Boolean checkbox with an inline label. Use for opt-ins and independent yes/no ch
664
707
  Props:
665
708
  - `modelValue`: boolean = false [v-model]. Checked state.
666
709
  - `label`: string. Text next to the box.
710
+ - `hint`: string. Second line under the label.
711
+ - `error`: string. Error message under the label (announced with role="alert"); a boolean or empty string shows nothing.
712
+ - `indeterminate`: boolean = false. Shows a dash instead of a check (aria-checked="mixed"). Clicking calls change with true.
667
713
  - `disabled`: boolean = false. Disables the control.
668
714
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Box and label size.
669
715
  Events:
@@ -676,6 +722,9 @@ On/off toggle with an inline label. Use for settings that apply immediately.
676
722
  Props:
677
723
  - `modelValue`: boolean = false [v-model]. On state.
678
724
  - `label`: string. Text next to the toggle.
725
+ - `hint`: string. Second line under the label.
726
+ - `error`: string. Error message under the label (announced with role="alert").
727
+ - `labelLeft`: boolean = false. Places the label before the toggle instead of after it.
679
728
  - `disabled`: boolean = false. Disables the control.
680
729
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Track and label size.
681
730
  Events:
@@ -689,6 +738,9 @@ Props:
689
738
  - `modelValue`: string | number [v-model]. Value of the selected option.
690
739
  - `options`: { value: string | number; label: string; hint?: string; disabled?: boolean }[] = "[]". Radio options. hint is a second line under the label; disabled: true disables that option only.
691
740
  - `label`: string. Label shown above the control.
741
+ - `hint`: string. Helper text under the control. Hidden while error is set.
742
+ - `error`: string. Error message under the control. Turns the control red and is announced with role="alert".
743
+ - `orientation`: 'vertical' | 'horizontal' = "vertical". horizontal lays the options out in a wrapping row under the label.
692
744
  - `disabled`: boolean = false. Disables the control.
693
745
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Control height, font and padding scale.
694
746
  Events:
@@ -778,6 +830,9 @@ Props:
778
830
  - `modelValue`: Date | string | number [v-model]. Selected date: a Date, ISO string or timestamp. Also sets the visible month. A date-only string like "2026-10-21" is read as a local date, so the day does not shift with the time zone.
779
831
  - `locale`: string = "en-GB". BCP 47 locale for month and weekday names.
780
832
  - `weekStartsOn`: number = 1. First day of the week: 0 = Sunday, 1 = Monday.
833
+ - `min`: Date | string | number. Earliest selectable day; earlier days are disabled.
834
+ - `max`: Date | string | number. Latest selectable day; later days are disabled.
835
+ - `disabledDate`: (date: Date) => boolean. Return true to disable a specific day.
781
836
  - `events`: Record<string, string> = "{}". Marked days: keys are YYYY-MM-DD, values are the tooltip text.
782
837
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Day cell and header size.
783
838
  Events:
@@ -804,6 +859,11 @@ Props:
804
859
  - `modelValue`: string | Date | number [v-model]. Selected date (ISO string recommended, e.g. 2026-10-21).
805
860
  - `locale`: string = "en-GB". BCP 47 locale used for the trigger text and the calendar.
806
861
  - `weekStartsOn`: number = 1. First day of the week: 0 = Sunday, 1 = Monday.
862
+ - `clearable`: boolean = false. Shows a clear (x) button while a date is set; it calls change with null.
863
+ - `min`: Date | string | number. Earliest selectable day, forwarded to the calendar.
864
+ - `max`: Date | string | number. Latest selectable day, forwarded to the calendar.
865
+ - `disabledDate`: (date: Date) => boolean. Return true to disable a specific day, forwarded to the calendar.
866
+ - `required`: boolean = false. Adds a red asterisk to the label. Does not validate.
807
867
  - `label`: string. Label shown above the control.
808
868
  - `hint`: string. Helper text under the control. Hidden while error is set.
809
869
  - `error`: string. Error message under the control. Turns the control red and is announced with role="alert".
@@ -934,20 +994,26 @@ Glass surface container with an optional title header, used to group related con
934
994
  Props:
935
995
  - `title`: string. Header title. The header renders only when title or the actions slot is set.
936
996
  - `subtitle`: string. Muted line under the title.
937
- - `variant`: 'inverse' | 'gradient'. inverse is a dark card regardless of the page theme; gradient is a tinted gradient card colored by tone. Omit for the default glass card.
997
+ - `variant`: 'inverse' | 'gradient' | 'outline'. inverse is a dark card regardless of the page theme; gradient is a tinted gradient card colored by tone; outline is transparent with a border. Omit for the default glass card.
938
998
  - `tone`: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral' | 'rose' | 'violet' = "brand". Gradient color. Used only with variant="gradient".
939
999
  - `intensity`: 'vivid'. With variant="gradient", fills the card with a saturated color instead of a soft tint.
1000
+ - `padding`: 'none'. none removes the inner padding (for full-bleed tables or images). Other paddings come from size.
1001
+ - `interactive`: boolean = false. Adds a pointer cursor and hover lift. With a click handler the card also becomes keyboard focusable (Enter activates).
940
1002
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Padding, gap and title size.
941
1003
  Slots:
942
1004
  - default: Card body.
943
1005
  - actions: Right side of the header, for buttons or menus.
1006
+ - header: Replaces the whole title/actions header with custom content.
1007
+ - footer: Row under the body, for buttons or meta.
1008
+ Events:
1009
+ - click: Native click on the card. Combine with interactive.
944
1010
  Notes:
945
1011
  - Vue slot names are React props (actions) and children (default).
946
1012
 
947
1013
  ## UiDataTable (data)
948
1014
  Table with sortable columns, custom cell rendering and optional row selection checkboxes.
949
1015
  Props:
950
- - `columns` (required): { key: string; label: string; sortable?: boolean; num?: boolean; render?: (value, row, h) => VNode | string }[] = []. Column definitions. key reads row[key]; num right-aligns numbers; render customizes the cell; sortable shows a sort button in the header.
1016
+ - `columns` (required): { key: string; label: string; sortable?: boolean; num?: boolean; align?: "left" | "center" | "right"; width?: string; render?: (value, row, h) => VNode | string }[] = []. Column definitions. key reads row[key]; num right-aligns numbers; render customizes the cell; sortable shows a sort button in the header.
951
1017
  - `rows` (required): ({ id: string | number; [key: string]: any })[] = []. Row objects. Every row needs a unique id; missing cell values render as an em dash.
952
1018
  - `selected`: (string | number)[] = []. Ids of selected rows. Checkboxes show only when the select event is handled.
953
1019
  - `sortKey`: string. Key of the column currently sorted. The component does not sort rows itself.
@@ -955,7 +1021,10 @@ Props:
955
1021
  - `empty`: string = "—". Text shown when rows is empty.
956
1022
  - `labels`: { selectAll?: string; selectRow?: string } = "{ selectAll: 'Select all', selectRow: 'Select row' }". Accessible names of the selection checkboxes.
957
1023
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Row density and font size.
1024
+ Slots:
1025
+ - empty: Replaces the empty text with custom content when rows is empty.
958
1026
  Events:
1027
+ - rowClick: Called with (row, index) when a body row is clicked. Rows get a pointer cursor.
959
1028
  - select: Called with the new array of selected row ids. Handling it enables the checkbox column and select-all.
960
1029
  - sort: Called with (key, dir) where dir is "asc" or "desc". Sort the rows yourself and pass sortKey/sortDir back.
961
1030
  Notes:
@@ -1218,8 +1287,12 @@ Props:
1218
1287
  - `title`: string. Bold first line above the message.
1219
1288
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scale of padding, icon and text.
1220
1289
  - `banner`: boolean = false. Removes the border radius so the alert spans the full width like a Banner.
1290
+ - `hideIcon`: boolean = false. Hides the leading tone icon (the icon slot is hidden too).
1221
1291
  Slots:
1222
1292
  - default: Message text.
1293
+ - title: Replaces the title prop with custom content.
1294
+ - icon: Replaces the tone icon inside the icon tile.
1295
+ - actions: Row under the message for buttons or links.
1223
1296
  Events:
1224
1297
  - close: Called when the close button is clicked. The button is rendered only when this handler is set.
1225
1298
  Notes:
@@ -1360,10 +1433,17 @@ Centered dialog with a title, close button, body and optional footer; use for fo
1360
1433
  Props:
1361
1434
  - `open`: boolean = false. Shows the dialog when true; renders nothing when false.
1362
1435
  - `title`: string. Header text and aria-label of the dialog.
1436
+ - `subtitle`: string. Muted line under the title in the header.
1437
+ - `closable`: boolean = true. false hides the close (x) button in the header.
1438
+ - `closeOnBackdrop`: boolean = true. false ignores clicks on the scrim.
1439
+ - `closeOnEsc`: boolean = true. false ignores the Escape key (focus trap stays active).
1440
+ - `width`: string. CSS max-width of the dialog, for example "960px". Overrides the width of size.
1363
1441
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scale of width (320 to 720 px max), padding and text.
1364
1442
  Slots:
1365
1443
  - default: Dialog body.
1366
1444
  - footer: Footer area, usually action buttons. Rendered only when provided.
1445
+ - title: Replaces the title prop with custom header content.
1446
+ - subtitle: Replaces the subtitle prop.
1367
1447
  Events:
1368
1448
  - close: Called on the close button, a click on the scrim or the Escape key. Set open to false in the handler.
1369
1449
  Notes:
@@ -1502,11 +1582,12 @@ Notes:
1502
1582
  Short text bubble shown on hover or focus of the wrapped element; use for icon-only controls and hints.
1503
1583
  Props:
1504
1584
  - `text` (required): string. Tooltip text.
1585
+ - `placement`: 'top' | 'bottom' | 'left' | 'right' = "top". Side of the wrapped element where the bubble appears.
1505
1586
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scale of bubble padding and font.
1506
1587
  Slots:
1507
1588
  - default: The element the tooltip is attached to.
1508
1589
  Notes:
1509
- - Pure CSS bubble with fixed placement; it cannot contain markup. For rich content use HoverCard.
1590
+ - Pure CSS bubble; it cannot contain markup. For rich content use HoverCard.
1510
1591
 
1511
1592
  ## UiDropdown (overlay)
1512
1593
  Button that opens a menu of actions; use for "more" menus and action lists.
@@ -1690,6 +1771,7 @@ Path trail with chevron separators; the last item is the current page.
1690
1771
  Props:
1691
1772
  - `items`: { label: string; href?: string }[] = "[]". Trail from root to current. All but the last render as links (href defaults to "#"); the last is bold with aria-current="page".
1692
1773
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scale of text and separator size.
1774
+ - `separator`: 'chevron' | 'slash' | 'dot' = "chevron". Glyph between items.
1693
1775
 
1694
1776
  ## UiPagination (navigation)
1695
1777
  Page navigation with numbered buttons, ellipsis windowing and previous/next; use under tables and lists.
@@ -1698,6 +1780,8 @@ Props:
1698
1780
  - `pages`: number = 1. Total number of pages.
1699
1781
  - `siblings`: number = 1. Page buttons shown on each side of the current page. First and last page are always shown; gaps become an ellipsis.
1700
1782
  - `label`: string = "Pagination". Accessible name of the navigation landmark.
1783
+ - `hideArrows`: boolean = false. Hides the previous and next buttons.
1784
+ - `labels`: { prev?: string; next?: string; page?: string } = "{ prev: 'Previous page', next: 'Next page', page: 'Page' }". Accessible names of the arrow buttons and of each page button ("Page 3").
1701
1785
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scale of button size and text.
1702
1786
  Events:
1703
1787
  - change: Called with the clicked page number (also from the previous and next buttons).
@@ -1718,6 +1802,11 @@ Round user picture that falls back to initials when there is no image.
1718
1802
  Props:
1719
1803
  - `name`: string. Full name. Shown as the tooltip and used for up to two initials; "?" when empty.
1720
1804
  - `src`: string. Image URL. Initials are shown without it.
1805
+ - `initials`: string. Explicit initials (up to 3 characters, uppercased) instead of the ones derived from name.
1806
+ - `tone`: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral' = "brand". Background color of the initials avatar.
1807
+ - `shape`: 'circle' | 'rounded' = "circle". rounded gives a squircle with a 30% corner radius.
1808
+ - `ring`: boolean = false. Adds a background-colored ring so overlapping avatars stay separated.
1809
+ - `status`: 'online' | 'offline' | 'away' | 'busy'. Shows a presence dot in the bottom corner.
1721
1810
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number = "md". Diameter: xs 24, sm 32, md 40, lg 56, xl 72 px. A number is used directly as px.
1722
1811
  Notes:
1723
1812
  - Avatar sizes differ from other components (lg 56, xl 72), and a number gives any custom size.
@@ -1782,8 +1871,11 @@ Props:
1782
1871
  - `labels`: { zoomIn?: string; zoomOut?: string } = "{ zoomIn: 'Zoom in', zoomOut: 'Zoom out' }". Accessible names of the zoom buttons.
1783
1872
  Events:
1784
1873
  - select: Called with the marker object when a marker is clicked.
1874
+ - move: Called with { lat, lon, zoom } while the user pans or zooms (drag, touch, wheel, double click or the +/- buttons).
1875
+ - zoom: Called with the new zoom level when it changes.
1785
1876
  Notes:
1786
- - The center and zoom props are initial values; user panning and zooming is kept in internal state.
1877
+ - The center and zoom props are initial values; user panning and zooming is kept in internal state. Listen to move/zoom to track it.
1878
+ - Drag or touch to pan, wheel or double click to zoom around the pointer. The tile theme follows the page data-theme after mount (light tiles on the server render) unless theme or style is set.
1787
1879
  - Tiles come from a third-party CDN, so it needs network access.
1788
1880
 
1789
1881
  ## UiProfileHeader (media)
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, 160+ components and 16 page templates.
4
4
 
5
- Version 0.2.0. Docs: https://ziyara.vip . Manifest (machine readable): https://ziyara.vip/manifest.json
5
+ Version 0.3.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'