iryx-ui 0.5.0 → 0.6.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 (42) hide show
  1. package/README.md +205 -3
  2. package/dist/component-names.d.ts +1 -1
  3. package/dist/components/Alert.vue.d.ts +19 -4
  4. package/dist/components/Badge.vue.d.ts +4 -3
  5. package/dist/components/Banner.vue.d.ts +81 -0
  6. package/dist/components/Combobox.vue.d.ts +3 -3
  7. package/dist/components/DropdownMenu.vue.d.ts +1 -1
  8. package/dist/components/Pagination.vue.d.ts +2 -0
  9. package/dist/components/Select.vue.d.ts +2 -2
  10. package/dist/components/Table.vue.d.ts +131 -0
  11. package/dist/components/index.d.ts +2 -0
  12. package/dist/composables/data-table.d.ts +93 -0
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.js +65 -60
  15. package/dist/node_modules/.pnpm/@hugeicons_core-free-icons@4.2.3/node_modules/@hugeicons/core-free-icons/dist/esm/index.js +15 -1
  16. package/dist/packages/iryx-ui/src/component-names.js +1 -1
  17. package/dist/packages/iryx-ui/src/components/Alert.vue_vue_type_script_setup_true_lang.js +51 -35
  18. package/dist/packages/iryx-ui/src/components/Badge.vue_vue_type_script_setup_true_lang.js +1 -2
  19. package/dist/packages/iryx-ui/src/components/Banner.js +5 -0
  20. package/dist/packages/iryx-ui/src/components/Banner.vue_vue_type_script_setup_true_lang.js +93 -0
  21. package/dist/packages/iryx-ui/src/components/Pagination.vue_vue_type_script_setup_true_lang.js +5 -1
  22. package/dist/packages/iryx-ui/src/components/Table.js +5 -0
  23. package/dist/packages/iryx-ui/src/components/Table.vue_vue_type_script_setup_true_lang.js +217 -0
  24. package/dist/packages/iryx-ui/src/components/index.js +62 -58
  25. package/dist/packages/iryx-ui/src/composables/data-table.js +106 -0
  26. package/dist/packages/iryx-ui/src/theme/alert.js +10 -21
  27. package/dist/packages/iryx-ui/src/theme/badge.js +37 -37
  28. package/dist/packages/iryx-ui/src/theme/banner.js +62 -0
  29. package/dist/packages/iryx-ui/src/theme/pagination.js +23 -13
  30. package/dist/packages/iryx-ui/src/theme/stat.js +4 -4
  31. package/dist/packages/iryx-ui/src/theme/table.js +62 -0
  32. package/dist/packages/iryx-ui/src/theme/toast.js +11 -26
  33. package/dist/theme/alert.d.ts +6 -12
  34. package/dist/theme/badge.d.ts +15 -12
  35. package/dist/theme/banner.d.ts +185 -0
  36. package/dist/theme/index.d.ts +2 -0
  37. package/dist/theme/pagination.d.ts +33 -0
  38. package/dist/theme/stat.d.ts +0 -3
  39. package/dist/theme/table.d.ts +230 -0
  40. package/dist/theme/toast.d.ts +0 -15
  41. package/package.json +1 -1
  42. package/theme.css +10 -0
@@ -0,0 +1,93 @@
1
+ import type { ModelRef } from 'vue';
2
+ /** Which way a column is sorted. */
3
+ export type SortOrder = 'asc' | 'desc';
4
+ /** The active sort, or `null` when nothing is sorted. */
5
+ export interface TableSort {
6
+ /** A column's `sortKey`, falling back to its `key`. */
7
+ key: string;
8
+ order: SortOrder;
9
+ }
10
+ /**
11
+ * A column definition. Plain data, no render functions — anything beyond the
12
+ * raw accessor value is a `#cell-<key>` slot on the component.
13
+ */
14
+ export interface TableColumn<T = any> {
15
+ /** Accessor path into the row, dot-notation for nested values. Also the slot suffix. */
16
+ key: string;
17
+ /** Header text. */
18
+ label?: string;
19
+ sortable?: boolean;
20
+ /** Sort by a different field than the one displayed, e.g. `'customer.name'` → `'customer_name'`. */
21
+ sortKey?: string;
22
+ align?: 'start' | 'center' | 'end';
23
+ /**
24
+ * Render the column's cells with tabular figures, so digits line up down the
25
+ * column instead of wandering with the width of each glyph. Implies end
26
+ * alignment unless `align` says otherwise.
27
+ */
28
+ numeric?: boolean;
29
+ /** Inline width, e.g. `'12rem'` or `'1px'` to shrink to content. */
30
+ width?: string;
31
+ /** Extra classes on every cell in the column; a function receives the row. */
32
+ class?: string | ((row: T) => string);
33
+ /** Hide the column outright, or per row (the cell renders empty). */
34
+ hidden?: boolean | ((row: T) => boolean);
35
+ }
36
+ export interface UseDataTableOptions<T = any> {
37
+ rows: () => T[];
38
+ columns: () => TableColumn<T>[];
39
+ /**
40
+ * Total row count on the server. Providing it switches the table to server
41
+ * mode: sorting and pagination are emitted rather than applied locally,
42
+ * because the rows you passed are already the page the server returned.
43
+ */
44
+ total?: () => number | undefined;
45
+ /** Field identifying a row, used for selection and expansion. */
46
+ rowKey?: () => string;
47
+ /** Controlled models. Any left undefined falls back to internal state. */
48
+ sort?: ModelRef<TableSort | null | undefined>;
49
+ page?: ModelRef<number | undefined>;
50
+ perPage?: ModelRef<number | undefined>;
51
+ selection?: ModelRef<(string | number)[] | undefined>;
52
+ expanded?: ModelRef<(string | number)[] | undefined>;
53
+ /** Rows that cannot be selected are skipped by the header checkbox. */
54
+ isRowSelectable?: (row: T) => boolean;
55
+ }
56
+ /** Read a dot-notation path off a row. */
57
+ export declare function getRowValue(row: any, path: string): unknown;
58
+ /**
59
+ * Headless state and derivations behind `ITable` — usable on its own if you
60
+ * want the logic without the markup.
61
+ */
62
+ export declare function useDataTable<T = any>(options: UseDataTableOptions<T>): {
63
+ sort: {
64
+ value: TableSort | null;
65
+ };
66
+ page: {
67
+ value: number;
68
+ };
69
+ perPage: {
70
+ value: number;
71
+ };
72
+ selection: {
73
+ value: (string | number)[];
74
+ };
75
+ expanded: {
76
+ value: (string | number)[];
77
+ };
78
+ isServerMode: import("vue").ComputedRef<boolean>;
79
+ visibleColumns: import("vue").ComputedRef<TableColumn<T>[]>;
80
+ pageRows: import("vue").ComputedRef<T[]>;
81
+ total: import("vue").ComputedRef<number>;
82
+ pageCount: import("vue").ComputedRef<number>;
83
+ keyOf: (row: T) => string | number;
84
+ toggleSort: (column: TableColumn<T>) => void;
85
+ sortOrderFor: (column: TableColumn<T>) => SortOrder | null;
86
+ headerSelection: import("vue").ComputedRef<boolean | "indeterminate">;
87
+ isSelected: (row: T) => boolean;
88
+ toggleRow: (row: T) => void;
89
+ toggleAll: (value: boolean | "indeterminate") => void;
90
+ isExpanded: (row: T) => boolean;
91
+ toggleExpanded: (row: T) => void;
92
+ getRowValue: typeof getRowValue;
93
+ };
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './components';
4
4
  export type { AlertProps } from './components/Alert.vue';
5
5
  export type { AppProps } from './components/App.vue';
6
6
  export type { BadgeProps } from './components/Badge.vue';
7
+ export type { BannerProps } from './components/Banner.vue';
7
8
  export type { BreadcrumbItem, BreadcrumbProps } from './components/Breadcrumb.vue';
8
9
  export type { ButtonProps } from './components/Button.vue';
9
10
  export type { ButtonGroupProps } from './components/ButtonGroup.vue';
@@ -28,6 +29,7 @@ export type { SkeletonProps } from './components/Skeleton.vue';
28
29
  export type { StatProps } from './components/Stat.vue';
29
30
  export type { StepperItemOption, StepperProps } from './components/Stepper.vue';
30
31
  export type { SwitchProps } from './components/Switch.vue';
32
+ export type { TableProps } from './components/Table.vue';
31
33
  export type { TabsItem, TabsProps } from './components/Tabs.vue';
32
34
  export type { TextareaProps } from './components/Textarea.vue';
33
35
  export type { ToasterProps } from './components/Toaster.vue';
@@ -35,6 +37,7 @@ export type { TooltipProps } from './components/Tooltip.vue';
35
37
  export * from './composables/appearance';
36
38
  export * from './composables/button-group';
37
39
  export * from './composables/confirm';
40
+ export * from './composables/data-table';
38
41
  export * from './composables/decimal';
39
42
  export * from './composables/dropdown-menu';
40
43
  export * from './composables/form';
package/dist/index.js CHANGED
@@ -7,63 +7,68 @@ import { applyTheme as c, clearTheme as l, themes as u } from "./packages/iryx-u
7
7
  import d from "./packages/iryx-ui/src/components/App.js";
8
8
  import { badgeTheme as f } from "./packages/iryx-ui/src/theme/badge.js";
9
9
  import p from "./packages/iryx-ui/src/components/Badge.js";
10
- import { breadcrumbTheme as m } from "./packages/iryx-ui/src/theme/breadcrumb.js";
11
- import h from "./packages/iryx-ui/src/components/Breadcrumb.js";
12
- import { buttonGroupContextKey as g, useButtonGroup as _ } from "./packages/iryx-ui/src/composables/button-group.js";
13
- import { buttonTheme as v } from "./packages/iryx-ui/src/theme/button.js";
14
- import y from "./packages/iryx-ui/src/components/Button.js";
15
- import { buttonGroupTheme as b } from "./packages/iryx-ui/src/theme/button-group.js";
16
- import x from "./packages/iryx-ui/src/components/ButtonGroup.js";
17
- import { cardTheme as S } from "./packages/iryx-ui/src/theme/card.js";
18
- import C from "./packages/iryx-ui/src/components/Card.js";
19
- import { checkboxTheme as w } from "./packages/iryx-ui/src/theme/checkbox.js";
20
- import T from "./packages/iryx-ui/src/components/Checkbox.js";
21
- import { formContextKey as E, formFieldContextKey as D, getByPath as O, isStandardSchema as k, issuePath as A, useForm as j, useFormField as M } from "./packages/iryx-ui/src/composables/form.js";
22
- import { fieldBase as N, inputTheme as P, textareaTheme as F } from "./packages/iryx-ui/src/theme/input.js";
23
- import { comboboxTheme as I } from "./packages/iryx-ui/src/theme/combobox.js";
24
- import L from "./packages/iryx-ui/src/components/Combobox.js";
25
- import { resolveConfirm as R, useConfirm as z, useConfirmState as B } from "./packages/iryx-ui/src/composables/confirm.js";
26
- import { dialogTheme as V } from "./packages/iryx-ui/src/theme/dialog.js";
27
- import H from "./packages/iryx-ui/src/components/Dialog.js";
28
- import U from "./packages/iryx-ui/src/components/ConfirmDialog.js";
29
- import { dropdownMenuTheme as W } from "./packages/iryx-ui/src/theme/dropdown-menu.js";
30
- import { isSeparator as G, isSubmenu as K } from "./packages/iryx-ui/src/composables/dropdown-menu.js";
31
- import q from "./packages/iryx-ui/src/components/DropdownMenu.js";
32
- import { emptyStateTheme as J } from "./packages/iryx-ui/src/theme/empty-state.js";
33
- import Y from "./packages/iryx-ui/src/components/EmptyState.js";
34
- import X from "./packages/iryx-ui/src/components/Form.js";
35
- import { labelTheme as Z } from "./packages/iryx-ui/src/theme/label.js";
36
- import Q from "./packages/iryx-ui/src/components/Label.js";
37
- import $ from "./packages/iryx-ui/src/components/FormField.js";
38
- import ee from "./packages/iryx-ui/src/components/Input.js";
39
- import { addDecimals as te, clampDecimal as ne, compareDecimals as re, formatDecimal as ie, formatForLocale as ae, isDecimal as oe, localeSeparators as se, parseDecimal as ce, parseFromLocale as le, roundDecimal as ue, toEditable as de } from "./packages/iryx-ui/src/composables/decimal.js";
40
- import { numberInputTheme as fe } from "./packages/iryx-ui/src/theme/number-input.js";
41
- import pe from "./packages/iryx-ui/src/components/NumberInput.js";
42
- import { paginationTheme as me } from "./packages/iryx-ui/src/theme/pagination.js";
43
- import he from "./packages/iryx-ui/src/components/Pagination.js";
44
- import { progressTheme as ge } from "./packages/iryx-ui/src/theme/progress.js";
45
- import _e from "./packages/iryx-ui/src/components/Progress.js";
46
- import { radioGroupTheme as ve } from "./packages/iryx-ui/src/theme/radio-group.js";
47
- import ye from "./packages/iryx-ui/src/components/RadioGroup.js";
48
- import { selectTheme as be } from "./packages/iryx-ui/src/theme/select.js";
49
- import xe from "./packages/iryx-ui/src/components/Select.js";
50
- import { separatorTheme as Se } from "./packages/iryx-ui/src/theme/separator.js";
51
- import Ce from "./packages/iryx-ui/src/components/Separator.js";
52
- import { skeletonTheme as we } from "./packages/iryx-ui/src/theme/skeleton.js";
53
- import Te from "./packages/iryx-ui/src/components/Skeleton.js";
54
- import { statTheme as Ee } from "./packages/iryx-ui/src/theme/stat.js";
55
- import De from "./packages/iryx-ui/src/components/Stat.js";
56
- import { stepperTheme as Oe } from "./packages/iryx-ui/src/theme/stepper.js";
57
- import ke from "./packages/iryx-ui/src/components/Stepper.js";
58
- import { switchTheme as Ae } from "./packages/iryx-ui/src/theme/switch.js";
59
- import je from "./packages/iryx-ui/src/components/Switch.js";
60
- import { tabsTheme as Me } from "./packages/iryx-ui/src/theme/tabs.js";
61
- import Ne from "./packages/iryx-ui/src/components/Tabs.js";
62
- import Pe from "./packages/iryx-ui/src/components/Textarea.js";
63
- import { useToast as Fe, useToastState as Ie } from "./packages/iryx-ui/src/composables/toast.js";
64
- import { toastTheme as Le } from "./packages/iryx-ui/src/theme/toast.js";
65
- import Re from "./packages/iryx-ui/src/components/Toaster.js";
66
- import { tooltipTheme as ze } from "./packages/iryx-ui/src/theme/tooltip.js";
67
- import Be from "./packages/iryx-ui/src/components/Tooltip.js";
68
- import { IryxUi as Ve, createIryxUi as He } from "./packages/iryx-ui/src/plugin.js";
69
- export { a as Alert, d as App, p as Badge, h as Breadcrumb, y as Button, x as ButtonGroup, C as Card, T as Checkbox, L as Combobox, U as ConfirmDialog, H as Dialog, q as DropdownMenu, Y as EmptyState, X as Form, $ as FormField, ee as Input, Ve as IryxUi, Q as Label, pe as NumberInput, he as Pagination, _e as Progress, ye as RadioGroup, xe as Select, Ce as Separator, Te as Skeleton, De as Stat, ke as Stepper, je as Switch, Ne as Tabs, Pe as Textarea, Re as Toaster, Be as Tooltip, te as addDecimals, i as alertTheme, c as applyTheme, f as badgeTheme, m as breadcrumbTheme, g as buttonGroupContextKey, b as buttonGroupTheme, v as buttonTheme, S as cardTheme, w as checkboxTheme, ne as clampDecimal, l as clearTheme, I as comboboxTheme, re as compareDecimals, e as componentNames, He as createIryxUi, t as defaultConfig, V as dialogTheme, W as dropdownMenuTheme, J as emptyStateTheme, N as fieldBase, E as formContextKey, D as formFieldContextKey, ie as formatDecimal, ae as formatForLocale, O as getByPath, o as initAppearance, P as inputTheme, n as iryxUiConfigKey, oe as isDecimal, G as isSeparator, k as isStandardSchema, K as isSubmenu, A as issuePath, Z as labelTheme, se as localeSeparators, fe as numberInputTheme, me as paginationTheme, ce as parseDecimal, le as parseFromLocale, ge as progressTheme, ve as radioGroupTheme, R as resolveConfirm, ue as roundDecimal, be as selectTheme, Se as separatorTheme, we as skeletonTheme, Ee as statTheme, Oe as stepperTheme, Ae as switchTheme, Me as tabsTheme, F as textareaTheme, u as themes, de as toEditable, Le as toastTheme, ze as tooltipTheme, s as useAppearance, _ as useButtonGroup, z as useConfirm, B as useConfirmState, j as useForm, M as useFormField, r as useIryxUiConfig, Fe as useToast, Ie as useToastState };
10
+ import { bannerTheme as m } from "./packages/iryx-ui/src/theme/banner.js";
11
+ import h from "./packages/iryx-ui/src/components/Banner.js";
12
+ import { breadcrumbTheme as g } from "./packages/iryx-ui/src/theme/breadcrumb.js";
13
+ import _ from "./packages/iryx-ui/src/components/Breadcrumb.js";
14
+ import { buttonGroupContextKey as v, useButtonGroup as y } from "./packages/iryx-ui/src/composables/button-group.js";
15
+ import { buttonTheme as b } from "./packages/iryx-ui/src/theme/button.js";
16
+ import x from "./packages/iryx-ui/src/components/Button.js";
17
+ import { buttonGroupTheme as S } from "./packages/iryx-ui/src/theme/button-group.js";
18
+ import C from "./packages/iryx-ui/src/components/ButtonGroup.js";
19
+ import { cardTheme as w } from "./packages/iryx-ui/src/theme/card.js";
20
+ import T from "./packages/iryx-ui/src/components/Card.js";
21
+ import { checkboxTheme as E } from "./packages/iryx-ui/src/theme/checkbox.js";
22
+ import D from "./packages/iryx-ui/src/components/Checkbox.js";
23
+ import { formContextKey as O, formFieldContextKey as k, getByPath as A, isStandardSchema as j, issuePath as M, useForm as N, useFormField as P } from "./packages/iryx-ui/src/composables/form.js";
24
+ import { fieldBase as F, inputTheme as I, textareaTheme as L } from "./packages/iryx-ui/src/theme/input.js";
25
+ import { comboboxTheme as R } from "./packages/iryx-ui/src/theme/combobox.js";
26
+ import z from "./packages/iryx-ui/src/components/Combobox.js";
27
+ import { resolveConfirm as B, useConfirm as V, useConfirmState as H } from "./packages/iryx-ui/src/composables/confirm.js";
28
+ import { dialogTheme as U } from "./packages/iryx-ui/src/theme/dialog.js";
29
+ import W from "./packages/iryx-ui/src/components/Dialog.js";
30
+ import G from "./packages/iryx-ui/src/components/ConfirmDialog.js";
31
+ import { dropdownMenuTheme as K } from "./packages/iryx-ui/src/theme/dropdown-menu.js";
32
+ import { isSeparator as q, isSubmenu as J } from "./packages/iryx-ui/src/composables/dropdown-menu.js";
33
+ import Y from "./packages/iryx-ui/src/components/DropdownMenu.js";
34
+ import { emptyStateTheme as X } from "./packages/iryx-ui/src/theme/empty-state.js";
35
+ import Z from "./packages/iryx-ui/src/components/EmptyState.js";
36
+ import Q from "./packages/iryx-ui/src/components/Form.js";
37
+ import { labelTheme as $ } from "./packages/iryx-ui/src/theme/label.js";
38
+ import ee from "./packages/iryx-ui/src/components/Label.js";
39
+ import te from "./packages/iryx-ui/src/components/FormField.js";
40
+ import ne from "./packages/iryx-ui/src/components/Input.js";
41
+ import { addDecimals as re, clampDecimal as ie, compareDecimals as ae, formatDecimal as oe, formatForLocale as se, isDecimal as ce, localeSeparators as le, parseDecimal as ue, parseFromLocale as de, roundDecimal as fe, toEditable as pe } from "./packages/iryx-ui/src/composables/decimal.js";
42
+ import { numberInputTheme as me } from "./packages/iryx-ui/src/theme/number-input.js";
43
+ import he from "./packages/iryx-ui/src/components/NumberInput.js";
44
+ import { paginationTheme as ge } from "./packages/iryx-ui/src/theme/pagination.js";
45
+ import _e from "./packages/iryx-ui/src/components/Pagination.js";
46
+ import { progressTheme as ve } from "./packages/iryx-ui/src/theme/progress.js";
47
+ import ye from "./packages/iryx-ui/src/components/Progress.js";
48
+ import { radioGroupTheme as be } from "./packages/iryx-ui/src/theme/radio-group.js";
49
+ import xe from "./packages/iryx-ui/src/components/RadioGroup.js";
50
+ import { selectTheme as Se } from "./packages/iryx-ui/src/theme/select.js";
51
+ import Ce from "./packages/iryx-ui/src/components/Select.js";
52
+ import { separatorTheme as we } from "./packages/iryx-ui/src/theme/separator.js";
53
+ import Te from "./packages/iryx-ui/src/components/Separator.js";
54
+ import { skeletonTheme as Ee } from "./packages/iryx-ui/src/theme/skeleton.js";
55
+ import De from "./packages/iryx-ui/src/components/Skeleton.js";
56
+ import { statTheme as Oe } from "./packages/iryx-ui/src/theme/stat.js";
57
+ import ke from "./packages/iryx-ui/src/components/Stat.js";
58
+ import { stepperTheme as Ae } from "./packages/iryx-ui/src/theme/stepper.js";
59
+ import je from "./packages/iryx-ui/src/components/Stepper.js";
60
+ import { switchTheme as Me } from "./packages/iryx-ui/src/theme/switch.js";
61
+ import Ne from "./packages/iryx-ui/src/components/Switch.js";
62
+ import { getRowValue as Pe, useDataTable as Fe } from "./packages/iryx-ui/src/composables/data-table.js";
63
+ import { tableTheme as Ie } from "./packages/iryx-ui/src/theme/table.js";
64
+ import Le from "./packages/iryx-ui/src/components/Table.js";
65
+ import { tabsTheme as Re } from "./packages/iryx-ui/src/theme/tabs.js";
66
+ import ze from "./packages/iryx-ui/src/components/Tabs.js";
67
+ import Be from "./packages/iryx-ui/src/components/Textarea.js";
68
+ import { useToast as Ve, useToastState as He } from "./packages/iryx-ui/src/composables/toast.js";
69
+ import { toastTheme as Ue } from "./packages/iryx-ui/src/theme/toast.js";
70
+ import We from "./packages/iryx-ui/src/components/Toaster.js";
71
+ import { tooltipTheme as Ge } from "./packages/iryx-ui/src/theme/tooltip.js";
72
+ import Ke from "./packages/iryx-ui/src/components/Tooltip.js";
73
+ import { IryxUi as qe, createIryxUi as Je } from "./packages/iryx-ui/src/plugin.js";
74
+ export { a as Alert, d as App, p as Badge, h as Banner, _ as Breadcrumb, x as Button, C as ButtonGroup, T as Card, D as Checkbox, z as Combobox, G as ConfirmDialog, W as Dialog, Y as DropdownMenu, Z as EmptyState, Q as Form, te as FormField, ne as Input, qe as IryxUi, ee as Label, he as NumberInput, _e as Pagination, ye as Progress, xe as RadioGroup, Ce as Select, Te as Separator, De as Skeleton, ke as Stat, je as Stepper, Ne as Switch, Le as Table, ze as Tabs, Be as Textarea, We as Toaster, Ke as Tooltip, re as addDecimals, i as alertTheme, c as applyTheme, f as badgeTheme, m as bannerTheme, g as breadcrumbTheme, v as buttonGroupContextKey, S as buttonGroupTheme, b as buttonTheme, w as cardTheme, E as checkboxTheme, ie as clampDecimal, l as clearTheme, R as comboboxTheme, ae as compareDecimals, e as componentNames, Je as createIryxUi, t as defaultConfig, U as dialogTheme, K as dropdownMenuTheme, X as emptyStateTheme, F as fieldBase, O as formContextKey, k as formFieldContextKey, oe as formatDecimal, se as formatForLocale, A as getByPath, Pe as getRowValue, o as initAppearance, I as inputTheme, n as iryxUiConfigKey, ce as isDecimal, q as isSeparator, j as isStandardSchema, J as isSubmenu, M as issuePath, $ as labelTheme, le as localeSeparators, me as numberInputTheme, ge as paginationTheme, ue as parseDecimal, de as parseFromLocale, ve as progressTheme, be as radioGroupTheme, B as resolveConfirm, fe as roundDecimal, Se as selectTheme, we as separatorTheme, Ee as skeletonTheme, Oe as statTheme, Ae as stepperTheme, Me as switchTheme, Ie as tableTheme, Re as tabsTheme, L as textareaTheme, u as themes, pe as toEditable, Ue as toastTheme, Ge as tooltipTheme, s as useAppearance, y as useButtonGroup, V as useConfirm, H as useConfirmState, Fe as useDataTable, N as useForm, P as useFormField, r as useIryxUiConfig, Ve as useToast, He as useToastState };
@@ -196,6 +196,20 @@ var e = [
196
196
  strokeLinejoin: "round",
197
197
  strokeWidth: "1.5",
198
198
  key: "0"
199
+ }]], f = [["path", {
200
+ d: "M18 14C18 14 13.5811 19 12 19C10.4188 19 6 14 6 14",
201
+ stroke: "currentColor",
202
+ strokeLinecap: "round",
203
+ strokeLinejoin: "round",
204
+ strokeWidth: "1.5",
205
+ key: "0"
206
+ }], ["path", {
207
+ d: "M18 9.99996C18 9.99996 13.5811 5.00001 12 5C10.4188 4.99999 6 10 6 10",
208
+ stroke: "currentColor",
209
+ strokeLinecap: "round",
210
+ strokeLinejoin: "round",
211
+ strokeWidth: "1.5",
212
+ key: "1"
199
213
  }]];
200
214
  //#endregion
201
- export { e as Alert02Icon, t as AlertCircleIcon, n as ArrowDown01Icon, r as ArrowLeft01Icon, i as ArrowRight01Icon, a as ArrowUp01Icon, o as Cancel01Icon, s as CheckmarkCircle02Icon, c as InformationCircleIcon, l as Loading03Icon, u as MinusSignIcon, d as Tick02Icon };
215
+ export { e as Alert02Icon, t as AlertCircleIcon, n as ArrowDown01Icon, r as ArrowLeft01Icon, i as ArrowRight01Icon, a as ArrowUp01Icon, o as Cancel01Icon, s as CheckmarkCircle02Icon, c as InformationCircleIcon, l as Loading03Icon, u as MinusSignIcon, d as Tick02Icon, f as UnfoldMoreIcon };
@@ -1,4 +1,4 @@
1
1
  //#region src/component-names.ts
2
- var e = /* @__PURE__ */ "Alert.App.Badge.Breadcrumb.Button.ButtonGroup.Card.Checkbox.Combobox.ConfirmDialog.Dialog.DropdownMenu.EmptyState.Form.FormField.Input.Label.NumberInput.Pagination.Progress.RadioGroup.Select.Separator.Skeleton.Stat.Stepper.Switch.Tabs.Textarea.Toaster.Tooltip".split(".");
2
+ var e = /* @__PURE__ */ "Alert.App.Badge.Banner.Breadcrumb.Button.ButtonGroup.Card.Checkbox.Combobox.ConfirmDialog.Dialog.DropdownMenu.EmptyState.Form.FormField.Input.Label.NumberInput.Pagination.Progress.RadioGroup.Select.Separator.Skeleton.Stat.Stepper.Switch.Table.Tabs.Textarea.Toaster.Tooltip".split(".");
3
3
  //#endregion
4
4
  export { e as componentNames };
@@ -2,12 +2,12 @@ import { Alert02Icon as e, AlertCircleIcon as t, Cancel01Icon as n, CheckmarkCir
2
2
  import { useIryxUiConfig as a } from "../config.js";
3
3
  import { alertTheme as o } from "../theme/alert.js";
4
4
  import s from "./Icon.js";
5
- import { computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as p, createVNode as m, defineComponent as h, normalizeClass as g, openBlock as _, renderSlot as v, toDisplayString as y, unref as b, withCtx as x } from "vue";
6
- import { Primitive as S } from "reka-ui";
5
+ import { computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as p, createVNode as m, defineComponent as h, mergeModels as g, normalizeClass as _, openBlock as v, renderSlot as y, toDisplayString as b, unref as x, useModel as S, withCtx as C } from "vue";
6
+ import { Primitive as w } from "reka-ui";
7
7
  //#region src/components/Alert.vue?vue&type=script&setup=true&lang.ts
8
- var C = ["aria-label"], w = /*@__PURE__*/ h({
8
+ var T = ["aria-label"], E = /*@__PURE__*/ h({
9
9
  __name: "Alert",
10
- props: {
10
+ props: /*@__PURE__*/ g({
11
11
  as: { default: "div" },
12
12
  variant: {},
13
13
  title: {},
@@ -24,52 +24,68 @@ var C = ["aria-label"], w = /*@__PURE__*/ h({
24
24
  },
25
25
  class: {},
26
26
  ui: {}
27
- },
28
- emits: ["close"],
27
+ }, {
28
+ open: {
29
+ type: Boolean,
30
+ default: !0
31
+ },
32
+ openModifiers: {}
33
+ }),
34
+ emits: /*@__PURE__*/ g(["close"], ["update:open"]),
29
35
  setup(h) {
30
- let w = h, T = {
36
+ let g = h, E = S(h, "open"), D = {
31
37
  info: i,
32
38
  success: r,
33
39
  warning: e,
34
40
  danger: t
35
- }, E = c(() => {
36
- if (w.icon !== !1) return w.icon ?? T[w.variant ?? "info"];
37
- }), D = c(() => w.variant === "danger" || w.variant === "warning" ? "alert" : "status"), O = a(), k = c(() => w.unstyled ?? O.unstyled), A = c(() => o({
38
- variant: w.variant,
39
- withTitle: !!w.title
40
- })), j = c(() => k.value ? [w.ui?.root, w.class] : A.value.root({ class: [w.ui?.root, w.class] })), M = c(() => k.value ? w.ui?.icon : A.value.icon({ class: w.ui?.icon })), N = c(() => k.value ? w.ui?.content : A.value.content({ class: w.ui?.content })), P = c(() => k.value ? w.ui?.title : A.value.title({ class: w.ui?.title })), F = c(() => k.value ? w.ui?.description : A.value.description({ class: w.ui?.description })), I = c(() => k.value ? w.ui?.close : A.value.close({ class: w.ui?.close }));
41
- return (e, t) => (_(), l(b(S), {
42
- as: w.as,
43
- role: D.value,
44
- class: g(j.value)
41
+ }, O = c(() => {
42
+ if (g.icon !== !1) return g.icon ?? D[g.variant ?? "info"];
43
+ }), k = c(() => g.variant === "danger" || g.variant === "warning" ? "alert" : "status"), A = a(), j = c(() => g.unstyled ?? A.unstyled), M = c(() => o({
44
+ variant: g.variant,
45
+ withTitle: !!g.title
46
+ })), N = c(() => j.value ? [g.ui?.root, g.class] : M.value.root({ class: [g.ui?.root, g.class] })), P = c(() => j.value ? g.ui?.icon : M.value.icon({ class: g.ui?.icon })), F = c(() => j.value ? g.ui?.content : M.value.content({ class: g.ui?.content })), I = c(() => j.value ? g.ui?.title : M.value.title({ class: g.ui?.title })), L = c(() => j.value ? g.ui?.description : M.value.description({ class: g.ui?.description })), R = c(() => j.value ? g.ui?.actions : M.value.actions({ class: g.ui?.actions })), z = c(() => j.value ? g.ui?.close : M.value.close({ class: g.ui?.close }));
47
+ return (e, t) => E.value ? (v(), l(x(w), {
48
+ key: 0,
49
+ as: g.as,
50
+ role: k.value,
51
+ class: _(N.value)
45
52
  }, {
46
- default: x(() => [
47
- E.value || e.$slots.icon ? (_(), d("div", {
53
+ default: C(() => [
54
+ O.value || e.$slots.icon ? (v(), d("div", {
48
55
  key: 0,
49
- class: g(M.value)
50
- }, [v(e.$slots, "icon", {}, () => [m(s, { icon: E.value }, null, 8, ["icon"])])], 2)) : u("", !0),
51
- f("div", { class: g(N.value) }, [w.title || e.$slots.title ? (_(), d("p", {
52
- key: 0,
53
- class: g(P.value)
54
- }, [v(e.$slots, "title", {}, () => [p(y(w.title), 1)])], 2)) : u("", !0), w.description || e.$slots.default ? (_(), d("div", {
55
- key: 1,
56
- class: g(F.value)
57
- }, [v(e.$slots, "default", {}, () => [p(y(w.description), 1)])], 2)) : u("", !0)], 2),
58
- w.closable ? (_(), d("button", {
56
+ class: _(P.value)
57
+ }, [y(e.$slots, "icon", {}, () => [m(s, { icon: O.value }, null, 8, ["icon"])])], 2)) : u("", !0),
58
+ f("div", { class: _(F.value) }, [
59
+ g.title || e.$slots.title ? (v(), d("p", {
60
+ key: 0,
61
+ class: _(I.value)
62
+ }, [y(e.$slots, "title", {}, () => [p(b(g.title), 1)])], 2)) : u("", !0),
63
+ g.description || e.$slots.default ? (v(), d("div", {
64
+ key: 1,
65
+ class: _(L.value)
66
+ }, [y(e.$slots, "default", {}, () => [p(b(g.description), 1)])], 2)) : u("", !0),
67
+ e.$slots.actions ? (v(), d("div", {
68
+ key: 2,
69
+ class: _(R.value)
70
+ }, [y(e.$slots, "actions")], 2)) : u("", !0)
71
+ ], 2),
72
+ g.closable ? (v(), d("button", {
59
73
  key: 1,
60
74
  type: "button",
61
- "aria-label": w.closeLabel,
62
- class: g(I.value),
63
- onClick: t[0] ||= (t) => e.$emit("close")
64
- }, [v(e.$slots, "close", {}, () => [m(s, { icon: b(n) }, null, 8, ["icon"])])], 10, C)) : u("", !0)
75
+ "aria-label": g.closeLabel,
76
+ class: _(z.value),
77
+ onClick: t[0] ||= (t) => {
78
+ E.value = !1, e.$emit("close");
79
+ }
80
+ }, [y(e.$slots, "close", {}, () => [m(s, { icon: x(n) }, null, 8, ["icon"])])], 10, T)) : u("", !0)
65
81
  ]),
66
82
  _: 3
67
83
  }, 8, [
68
84
  "as",
69
85
  "role",
70
86
  "class"
71
- ]));
87
+ ])) : u("", !0);
72
88
  }
73
89
  });
74
90
  //#endregion
75
- export { w as default };
91
+ export { E as default };
@@ -9,7 +9,6 @@ var h = /*@__PURE__*/ s({
9
9
  as: { default: "span" },
10
10
  asChild: { type: Boolean },
11
11
  variant: {},
12
- tone: {},
13
12
  size: {},
14
13
  dot: { type: Boolean },
15
14
  label: {},
@@ -23,7 +22,7 @@ var h = /*@__PURE__*/ s({
23
22
  setup(s) {
24
23
  let h = s, g = e(), _ = n(() => h.unstyled ?? g.unstyled), v = n(() => t({
25
24
  variant: h.variant,
26
- tone: h.tone,
25
+ withDot: h.dot ?? !1,
27
26
  size: h.size
28
27
  })), y = n(() => _.value ? [h.ui?.root, h.class] : v.value.root({ class: [h.ui?.root, h.class] })), b = n(() => _.value ? h.ui?.dot : v.value.dot({ class: h.ui?.dot }));
29
28
  return (e, t) => (l(), r(f(m), {
@@ -0,0 +1,5 @@
1
+ import e from "./Banner.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/Banner.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,93 @@
1
+ import { Cancel01Icon as e } from "../../../../node_modules/.pnpm/@hugeicons_core-free-icons@4.2.3/node_modules/@hugeicons/core-free-icons/dist/esm/index.js";
2
+ import { useIryxUiConfig as t } from "../config.js";
3
+ import n from "./Icon.js";
4
+ import { bannerTheme as r } from "../theme/banner.js";
5
+ import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, mergeModels as f, normalizeClass as p, openBlock as m, renderSlot as h, toDisplayString as g, unref as _, useModel as v, withCtx as y } from "vue";
6
+ import { Primitive as b } from "reka-ui";
7
+ //#region src/components/Banner.vue?vue&type=script&setup=true&lang.ts
8
+ var x = ["aria-label"], S = /*@__PURE__*/ d({
9
+ __name: "Banner",
10
+ props: /*@__PURE__*/ f({
11
+ as: { default: "div" },
12
+ variant: {},
13
+ position: {},
14
+ title: {},
15
+ description: {},
16
+ icon: {},
17
+ contained: {
18
+ type: Boolean,
19
+ default: void 0
20
+ },
21
+ align: {},
22
+ closable: { type: Boolean },
23
+ closeLabel: { default: "Dismiss" },
24
+ label: { default: "Announcement" },
25
+ unstyled: {
26
+ type: Boolean,
27
+ default: void 0
28
+ },
29
+ class: {},
30
+ ui: {}
31
+ }, {
32
+ open: {
33
+ type: Boolean,
34
+ default: !0
35
+ },
36
+ openModifiers: {}
37
+ }),
38
+ emits: /*@__PURE__*/ f(["close"], ["update:open"]),
39
+ setup(d) {
40
+ let f = d, S = v(d, "open"), C = t(), w = i(() => f.unstyled ?? C.unstyled), T = i(() => r({
41
+ variant: f.variant,
42
+ position: f.position,
43
+ contained: f.contained ?? !1,
44
+ align: f.align
45
+ })), E = i(() => w.value ? [f.ui?.root, f.class] : T.value.root({ class: [f.ui?.root, f.class] }));
46
+ function D(e) {
47
+ let t = f.ui?.[e];
48
+ return w.value ? t : T.value[e]({ class: t });
49
+ }
50
+ return (t, r) => S.value ? (m(), a(_(b), {
51
+ key: 0,
52
+ as: f.as,
53
+ role: "region",
54
+ "aria-label": f.label,
55
+ class: p(E.value)
56
+ }, {
57
+ default: y(() => [c("div", { class: p(D("container")) }, [
58
+ f.icon || t.$slots.icon ? (m(), s("span", {
59
+ key: 0,
60
+ class: p(D("icon"))
61
+ }, [h(t.$slots, "icon", {}, () => [u(n, { icon: f.icon }, null, 8, ["icon"])])], 2)) : o("", !0),
62
+ c("p", { class: p(D("content")) }, [
63
+ f.title || t.$slots.title ? (m(), s("strong", {
64
+ key: 0,
65
+ class: p(D("title"))
66
+ }, [h(t.$slots, "title", {}, () => [l(g(f.title), 1)])], 2)) : o("", !0),
67
+ r[1] ||= l(" " + g(" ") + " ", -1),
68
+ h(t.$slots, "default", {}, () => [l(g(f.description), 1)])
69
+ ], 2),
70
+ t.$slots.actions ? (m(), s("span", {
71
+ key: 1,
72
+ class: p(D("actions"))
73
+ }, [h(t.$slots, "actions")], 2)) : o("", !0),
74
+ f.closable ? (m(), s("button", {
75
+ key: 2,
76
+ type: "button",
77
+ "aria-label": f.closeLabel,
78
+ class: p(D("close")),
79
+ onClick: r[0] ||= (e) => {
80
+ S.value = !1, t.$emit("close");
81
+ }
82
+ }, [h(t.$slots, "close", {}, () => [u(n, { icon: _(e) }, null, 8, ["icon"])])], 10, x)) : o("", !0)
83
+ ], 2)]),
84
+ _: 3
85
+ }, 8, [
86
+ "as",
87
+ "aria-label",
88
+ "class"
89
+ ])) : o("", !0);
90
+ }
91
+ });
92
+ //#endregion
93
+ export { S as default };
@@ -16,6 +16,7 @@ var D = /*@__PURE__*/ d({
16
16
  default: !0
17
17
  },
18
18
  size: {},
19
+ align: {},
19
20
  prevLabel: { default: "Previous page" },
20
21
  nextLabel: { default: "Next page" },
21
22
  label: { default: "Pagination" },
@@ -31,7 +32,10 @@ var D = /*@__PURE__*/ d({
31
32
  }),
32
33
  emits: ["update:page"],
33
34
  setup(d) {
34
- let f = d, D = y(d, "page"), O = n(), k = o(() => f.unstyled ?? O.unstyled), A = o(() => i({ size: f.size })), j = o(() => k.value ? [f.ui?.root, f.class] : A.value.root({ class: [f.ui?.root, f.class] })), M = o(() => k.value ? f.ui?.list : A.value.list({ class: f.ui?.list })), N = o(() => k.value ? f.ui?.ellipsis : A.value.ellipsis({ class: f.ui?.ellipsis }));
35
+ let f = d, D = y(d, "page"), O = n(), k = o(() => f.unstyled ?? O.unstyled), A = o(() => i({
36
+ size: f.size,
37
+ align: f.align
38
+ })), j = o(() => k.value ? [f.ui?.root, f.class] : A.value.root({ class: [f.ui?.root, f.class] })), M = o(() => k.value ? f.ui?.list : A.value.list({ class: f.ui?.list })), N = o(() => k.value ? f.ui?.ellipsis : A.value.ellipsis({ class: f.ui?.ellipsis }));
35
39
  function P(e) {
36
40
  return k.value ? f.ui?.item : [A.value.item({ class: f.ui?.item }), e ? A.value.active() : A.value.inactive()];
37
41
  }
@@ -0,0 +1,5 @@
1
+ import e from "./Table.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/Table.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };