iryx-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 (164) hide show
  1. package/README.md +180 -20
  2. package/dist/component-names.d.ts +1 -1
  3. package/dist/components/Alert.vue.d.ts +3 -3
  4. package/dist/components/Breadcrumb.vue.d.ts +45 -0
  5. package/dist/components/Button.vue.d.ts +8 -0
  6. package/dist/components/ButtonGroup.vue.d.ts +32 -0
  7. package/dist/components/ConfirmDialog.vue.d.ts +18 -0
  8. package/dist/components/Dialog.vue.d.ts +65 -0
  9. package/dist/components/DropdownMenu.vue.d.ts +49 -0
  10. package/dist/components/DropdownMenuItems.vue.d.ts +24 -0
  11. package/dist/components/EmptyState.vue.d.ts +46 -0
  12. package/dist/components/FormField.vue.d.ts +9 -0
  13. package/dist/components/Icon.vue.d.ts +8 -0
  14. package/dist/components/Label.vue.d.ts +6 -0
  15. package/dist/components/Pagination.vue.d.ts +57 -0
  16. package/dist/components/Progress.vue.d.ts +52 -0
  17. package/dist/components/Separator.vue.d.ts +36 -0
  18. package/dist/components/Skeleton.vue.d.ts +20 -0
  19. package/dist/components/Stat.vue.d.ts +57 -0
  20. package/dist/components/Stepper.vue.d.ts +61 -0
  21. package/dist/components/Tabs.vue.d.ts +63 -0
  22. package/dist/components/Toaster.vue.d.ts +28 -0
  23. package/dist/components/Tooltip.vue.d.ts +49 -0
  24. package/dist/components/index.d.ts +15 -0
  25. package/dist/composables/button-group.d.ts +12 -0
  26. package/dist/composables/confirm.d.ts +36 -0
  27. package/dist/composables/dropdown-menu.d.ts +22 -0
  28. package/dist/composables/icon.d.ts +10 -0
  29. package/dist/composables/toast.d.ts +42 -0
  30. package/dist/config.d.ts +9 -0
  31. package/dist/index.d.ts +19 -0
  32. package/dist/index.js +64 -31
  33. package/dist/node_modules/.pnpm/@hugeicons_core-free-icons@4.2.3/node_modules/@hugeicons/core-free-icons/dist/esm/index.js +201 -0
  34. package/dist/node_modules/.pnpm/@hugeicons_vue@1.0.7_vue@3.5.35_typescript@6.0.3_/node_modules/@hugeicons/vue/dist/esm/_virtual/_plugin-vue_export-helper.js +8 -0
  35. package/dist/node_modules/.pnpm/@hugeicons_vue@1.0.7_vue@3.5.35_typescript@6.0.3_/node_modules/@hugeicons/vue/dist/esm/components/HugeiconsIcon.vue.js +25 -0
  36. package/dist/node_modules/.pnpm/@hugeicons_vue@1.0.7_vue@3.5.35_typescript@6.0.3_/node_modules/@hugeicons/vue/dist/esm/components/HugeiconsIcon.vue2.js +63 -0
  37. package/dist/nuxt.js +1 -1
  38. package/dist/packages/iryx-ui/src/component-names.js +4 -0
  39. package/dist/packages/iryx-ui/src/components/Alert.vue_vue_type_script_setup_true_lang.js +75 -0
  40. package/dist/packages/iryx-ui/src/components/Breadcrumb.js +5 -0
  41. package/dist/packages/iryx-ui/src/components/Breadcrumb.vue_vue_type_script_setup_true_lang.js +68 -0
  42. package/dist/packages/iryx-ui/src/components/Button.vue_vue_type_script_setup_true_lang.js +59 -0
  43. package/dist/packages/iryx-ui/src/components/ButtonGroup.js +5 -0
  44. package/dist/packages/iryx-ui/src/components/ButtonGroup.vue_vue_type_script_setup_true_lang.js +39 -0
  45. package/dist/packages/iryx-ui/src/components/Checkbox.vue_vue_type_script_setup_true_lang.js +92 -0
  46. package/dist/packages/iryx-ui/src/components/ConfirmDialog.js +5 -0
  47. package/dist/packages/iryx-ui/src/components/ConfirmDialog.vue_vue_type_script_setup_true_lang.js +63 -0
  48. package/dist/packages/iryx-ui/src/components/Dialog.js +5 -0
  49. package/dist/packages/iryx-ui/src/components/Dialog.vue_vue_type_script_setup_true_lang.js +99 -0
  50. package/dist/packages/iryx-ui/src/components/DropdownMenu.js +5 -0
  51. package/dist/packages/iryx-ui/src/components/DropdownMenu.vue_vue_type_script_setup_true_lang.js +67 -0
  52. package/dist/packages/iryx-ui/src/components/DropdownMenuItems.js +5 -0
  53. package/dist/packages/iryx-ui/src/components/DropdownMenuItems.vue_vue_type_script_setup_true_lang.js +92 -0
  54. package/dist/packages/iryx-ui/src/components/EmptyState.js +5 -0
  55. package/dist/packages/iryx-ui/src/components/EmptyState.vue_vue_type_script_setup_true_lang.js +55 -0
  56. package/dist/{components → packages/iryx-ui/src/components}/FormField.vue_vue_type_script_setup_true_lang.js +5 -3
  57. package/dist/packages/iryx-ui/src/components/Icon.js +5 -0
  58. package/dist/packages/iryx-ui/src/components/Icon.vue_vue_type_script_setup_true_lang.js +26 -0
  59. package/dist/{components → packages/iryx-ui/src/components}/Label.vue_vue_type_script_setup_true_lang.js +2 -0
  60. package/dist/packages/iryx-ui/src/components/Pagination.js +5 -0
  61. package/dist/packages/iryx-ui/src/components/Pagination.vue_vue_type_script_setup_true_lang.js +94 -0
  62. package/dist/packages/iryx-ui/src/components/Progress.js +5 -0
  63. package/dist/packages/iryx-ui/src/components/Progress.vue_vue_type_script_setup_true_lang.js +65 -0
  64. package/dist/packages/iryx-ui/src/components/Select.vue_vue_type_script_setup_true_lang.js +85 -0
  65. package/dist/packages/iryx-ui/src/components/Separator.js +5 -0
  66. package/dist/packages/iryx-ui/src/components/Separator.vue_vue_type_script_setup_true_lang.js +56 -0
  67. package/dist/packages/iryx-ui/src/components/Skeleton.js +5 -0
  68. package/dist/packages/iryx-ui/src/components/Skeleton.vue_vue_type_script_setup_true_lang.js +48 -0
  69. package/dist/packages/iryx-ui/src/components/Stat.js +5 -0
  70. package/dist/packages/iryx-ui/src/components/Stat.vue_vue_type_script_setup_true_lang.js +63 -0
  71. package/dist/packages/iryx-ui/src/components/Stepper.js +5 -0
  72. package/dist/packages/iryx-ui/src/components/Stepper.vue_vue_type_script_setup_true_lang.js +89 -0
  73. package/dist/packages/iryx-ui/src/components/Tabs.js +5 -0
  74. package/dist/packages/iryx-ui/src/components/Tabs.vue_vue_type_script_setup_true_lang.js +78 -0
  75. package/dist/packages/iryx-ui/src/components/Toaster.js +5 -0
  76. package/dist/packages/iryx-ui/src/components/Toaster.vue_vue_type_script_setup_true_lang.js +115 -0
  77. package/dist/packages/iryx-ui/src/components/Tooltip.js +5 -0
  78. package/dist/packages/iryx-ui/src/components/Tooltip.vue_vue_type_script_setup_true_lang.js +70 -0
  79. package/dist/packages/iryx-ui/src/components/index.js +64 -0
  80. package/dist/{composables → packages/iryx-ui/src/composables}/appearance.js +11 -7
  81. package/dist/packages/iryx-ui/src/composables/button-group.js +8 -0
  82. package/dist/packages/iryx-ui/src/composables/confirm.js +25 -0
  83. package/dist/packages/iryx-ui/src/composables/dropdown-menu.js +9 -0
  84. package/dist/packages/iryx-ui/src/composables/icon.js +6 -0
  85. package/dist/packages/iryx-ui/src/composables/toast.js +38 -0
  86. package/dist/{theme → packages/iryx-ui/src/theme}/badge.js +3 -3
  87. package/dist/packages/iryx-ui/src/theme/breadcrumb.js +12 -0
  88. package/dist/packages/iryx-ui/src/theme/button-group.js +15 -0
  89. package/dist/packages/iryx-ui/src/theme/button.js +59 -0
  90. package/dist/packages/iryx-ui/src/theme/dialog.js +23 -0
  91. package/dist/packages/iryx-ui/src/theme/dropdown-menu.js +16 -0
  92. package/dist/packages/iryx-ui/src/theme/empty-state.js +34 -0
  93. package/dist/packages/iryx-ui/src/theme/form.js +38 -0
  94. package/dist/{theme → packages/iryx-ui/src/theme}/label.js +10 -1
  95. package/dist/packages/iryx-ui/src/theme/pagination.js +29 -0
  96. package/dist/packages/iryx-ui/src/theme/progress.js +33 -0
  97. package/dist/packages/iryx-ui/src/theme/separator.js +22 -0
  98. package/dist/packages/iryx-ui/src/theme/skeleton.js +13 -0
  99. package/dist/packages/iryx-ui/src/theme/stat.js +30 -0
  100. package/dist/packages/iryx-ui/src/theme/stepper.js +25 -0
  101. package/dist/packages/iryx-ui/src/theme/tabs.js +52 -0
  102. package/dist/packages/iryx-ui/src/theme/toast.js +53 -0
  103. package/dist/packages/iryx-ui/src/theme/tooltip.js +8 -0
  104. package/dist/theme/breadcrumb.d.ts +59 -0
  105. package/dist/theme/button-group.d.ts +29 -0
  106. package/dist/theme/button.d.ts +17 -2
  107. package/dist/theme/dialog.d.ts +74 -0
  108. package/dist/theme/dropdown-menu.d.ts +53 -0
  109. package/dist/theme/empty-state.d.ts +86 -0
  110. package/dist/theme/form.d.ts +62 -35
  111. package/dist/theme/index.d.ts +14 -0
  112. package/dist/theme/label.d.ts +18 -0
  113. package/dist/theme/pagination.d.ts +71 -0
  114. package/dist/theme/progress.d.ts +143 -0
  115. package/dist/theme/separator.d.ts +50 -0
  116. package/dist/theme/skeleton.d.ts +23 -0
  117. package/dist/theme/stat.d.ts +110 -0
  118. package/dist/theme/stepper.d.ts +56 -0
  119. package/dist/theme/tabs.d.ts +104 -0
  120. package/dist/theme/toast.d.ts +176 -0
  121. package/dist/theme/tooltip.d.ts +32 -0
  122. package/package.json +4 -3
  123. package/theme.css +55 -0
  124. package/dist/component-names.js +0 -19
  125. package/dist/components/Alert.vue_vue_type_script_setup_true_lang.js +0 -74
  126. package/dist/components/Button.vue_vue_type_script_setup_true_lang.js +0 -54
  127. package/dist/components/Checkbox.vue_vue_type_script_setup_true_lang.js +0 -79
  128. package/dist/components/Select.vue_vue_type_script_setup_true_lang.js +0 -84
  129. package/dist/components/index.js +0 -34
  130. package/dist/theme/button.js +0 -27
  131. package/dist/theme/form.js +0 -14
  132. /package/dist/{components → packages/iryx-ui/src/components}/Alert.js +0 -0
  133. /package/dist/{components → packages/iryx-ui/src/components}/App.js +0 -0
  134. /package/dist/{components → packages/iryx-ui/src/components}/App.vue_vue_type_script_setup_true_lang.js +0 -0
  135. /package/dist/{components → packages/iryx-ui/src/components}/Badge.js +0 -0
  136. /package/dist/{components → packages/iryx-ui/src/components}/Badge.vue_vue_type_script_setup_true_lang.js +0 -0
  137. /package/dist/{components → packages/iryx-ui/src/components}/Button.js +0 -0
  138. /package/dist/{components → packages/iryx-ui/src/components}/Card.js +0 -0
  139. /package/dist/{components → packages/iryx-ui/src/components}/Card.vue_vue_type_script_setup_true_lang.js +0 -0
  140. /package/dist/{components → packages/iryx-ui/src/components}/Checkbox.js +0 -0
  141. /package/dist/{components → packages/iryx-ui/src/components}/Form.js +0 -0
  142. /package/dist/{components → packages/iryx-ui/src/components}/Form.vue_vue_type_script_setup_true_lang.js +0 -0
  143. /package/dist/{components → packages/iryx-ui/src/components}/FormField.js +0 -0
  144. /package/dist/{components → packages/iryx-ui/src/components}/Input.js +0 -0
  145. /package/dist/{components → packages/iryx-ui/src/components}/Input.vue_vue_type_script_setup_true_lang.js +0 -0
  146. /package/dist/{components → packages/iryx-ui/src/components}/Label.js +0 -0
  147. /package/dist/{components → packages/iryx-ui/src/components}/RadioGroup.js +0 -0
  148. /package/dist/{components → packages/iryx-ui/src/components}/RadioGroup.vue_vue_type_script_setup_true_lang.js +0 -0
  149. /package/dist/{components → packages/iryx-ui/src/components}/Select.js +0 -0
  150. /package/dist/{components → packages/iryx-ui/src/components}/Switch.js +0 -0
  151. /package/dist/{components → packages/iryx-ui/src/components}/Switch.vue_vue_type_script_setup_true_lang.js +0 -0
  152. /package/dist/{components → packages/iryx-ui/src/components}/Textarea.js +0 -0
  153. /package/dist/{components → packages/iryx-ui/src/components}/Textarea.vue_vue_type_script_setup_true_lang.js +0 -0
  154. /package/dist/{composables → packages/iryx-ui/src/composables}/form.js +0 -0
  155. /package/dist/{config.js → packages/iryx-ui/src/config.js} +0 -0
  156. /package/dist/{plugin.js → packages/iryx-ui/src/plugin.js} +0 -0
  157. /package/dist/{theme → packages/iryx-ui/src/theme}/alert.js +0 -0
  158. /package/dist/{theme → packages/iryx-ui/src/theme}/card.js +0 -0
  159. /package/dist/{theme → packages/iryx-ui/src/theme}/checkbox.js +0 -0
  160. /package/dist/{theme → packages/iryx-ui/src/theme}/input.js +0 -0
  161. /package/dist/{theme → packages/iryx-ui/src/theme}/presets.js +0 -0
  162. /package/dist/{theme → packages/iryx-ui/src/theme}/radio-group.js +0 -0
  163. /package/dist/{theme → packages/iryx-ui/src/theme}/select.js +0 -0
  164. /package/dist/{theme → packages/iryx-ui/src/theme}/switch.js +0 -0
@@ -0,0 +1,115 @@
1
+ import { Alert02Icon as e, AlertCircleIcon as t, Cancel01Icon as n, CheckmarkCircle02Icon as r, InformationCircleIcon as i } 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 a } from "../config.js";
3
+ import o from "./Icon.js";
4
+ import { useToast as s, useToastState as c } from "../composables/toast.js";
5
+ import { toastTheme as l } from "../theme/toast.js";
6
+ import { Fragment as u, computed as d, createBlock as f, createCommentVNode as p, createElementBlock as m, createElementVNode as h, createTextVNode as g, createVNode as _, defineComponent as v, normalizeClass as y, openBlock as b, renderList as x, toDisplayString as S, unref as C, withCtx as w } from "vue";
7
+ import { ToastAction as T, ToastClose as E, ToastDescription as D, ToastPortal as O, ToastProvider as k, ToastRoot as A, ToastTitle as j, ToastViewport as M } from "reka-ui";
8
+ //#region src/components/Toaster.vue?vue&type=script&setup=true&lang.ts
9
+ var N = /*@__PURE__*/ v({
10
+ __name: "Toaster",
11
+ props: {
12
+ position: {},
13
+ duration: { default: 5e3 },
14
+ closeLabel: { default: "Close" },
15
+ unstyled: {
16
+ type: Boolean,
17
+ default: void 0
18
+ },
19
+ class: {},
20
+ ui: {}
21
+ },
22
+ setup(v) {
23
+ let N = v, P = c(), { dismiss: F } = s(), I = {
24
+ success: r,
25
+ warning: e,
26
+ danger: t,
27
+ info: i
28
+ };
29
+ function L(e) {
30
+ return e.variant && e.variant !== "neutral" ? I[e.variant] : void 0;
31
+ }
32
+ function R(e) {
33
+ let t = e.duration ?? N.duration;
34
+ return t === 0 ? Infinity : t;
35
+ }
36
+ let z = a(), B = d(() => N.unstyled ?? z.unstyled);
37
+ function V(e) {
38
+ return l({
39
+ variant: e.variant,
40
+ position: N.position,
41
+ withTitle: !!e.title
42
+ });
43
+ }
44
+ let H = d(() => {
45
+ let e = l({ position: N.position });
46
+ return B.value ? [N.ui?.viewport, N.class] : e.viewport({ class: [N.ui?.viewport, N.class] });
47
+ });
48
+ function U(e, t) {
49
+ let n = N.ui?.[t];
50
+ return B.value ? n : V(e)[t]({ class: n });
51
+ }
52
+ function W(e) {
53
+ e.action?.onClick(), F(e.id);
54
+ }
55
+ return (e, t) => (b(), f(C(k), null, {
56
+ default: w(() => [(b(!0), m(u, null, x(C(P), (e) => (b(), f(C(A), {
57
+ key: e.id,
58
+ duration: R(e),
59
+ class: y(U(e, "root")),
60
+ "onUpdate:open": (t) => !t && C(F)(e.id)
61
+ }, {
62
+ default: w(() => [
63
+ L(e) ? (b(), m("div", {
64
+ key: 0,
65
+ class: y(U(e, "icon"))
66
+ }, [_(o, { icon: L(e) }, null, 8, ["icon"])], 2)) : p("", !0),
67
+ h("div", { class: y(U(e, "content")) }, [e.title ? (b(), f(C(j), {
68
+ key: 0,
69
+ class: y(U(e, "title"))
70
+ }, {
71
+ default: w(() => [g(S(e.title), 1)]),
72
+ _: 2
73
+ }, 1032, ["class"])) : p("", !0), e.description ? (b(), f(C(D), {
74
+ key: 1,
75
+ class: y(U(e, "description"))
76
+ }, {
77
+ default: w(() => [g(S(e.description), 1)]),
78
+ _: 2
79
+ }, 1032, ["class"])) : p("", !0)], 2),
80
+ e.action ? (b(), f(C(T), {
81
+ key: 1,
82
+ "alt-text": e.action.label,
83
+ class: y(U(e, "action")),
84
+ onClick: (t) => W(e)
85
+ }, {
86
+ default: w(() => [g(S(e.action.label), 1)]),
87
+ _: 2
88
+ }, 1032, [
89
+ "alt-text",
90
+ "class",
91
+ "onClick"
92
+ ])) : p("", !0),
93
+ _(C(E), {
94
+ "aria-label": N.closeLabel,
95
+ class: y(U(e, "close"))
96
+ }, {
97
+ default: w(() => [_(o, { icon: C(n) }, null, 8, ["icon"])]),
98
+ _: 1
99
+ }, 8, ["aria-label", "class"])
100
+ ]),
101
+ _: 2
102
+ }, 1032, [
103
+ "duration",
104
+ "class",
105
+ "onUpdate:open"
106
+ ]))), 128)), _(C(O), null, {
107
+ default: w(() => [_(C(M), { class: y(H.value) }, null, 8, ["class"])]),
108
+ _: 1
109
+ })]),
110
+ _: 1
111
+ }));
112
+ }
113
+ });
114
+ //#endregion
115
+ export { N as default };
@@ -0,0 +1,5 @@
1
+ import e from "./Tooltip.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/Tooltip.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,70 @@
1
+ import { useIryxUiConfig as e } from "../config.js";
2
+ import { tooltipTheme as t } from "../theme/tooltip.js";
3
+ import { computed as n, createBlock as r, createCommentVNode as i, createTextVNode as a, createVNode as o, defineComponent as s, mergeModels as c, normalizeClass as l, openBlock as u, renderSlot as d, toDisplayString as f, unref as p, useModel as m, withCtx as h } from "vue";
4
+ import { TooltipArrow as g, TooltipContent as _, TooltipPortal as v, TooltipProvider as y, TooltipRoot as b, TooltipTrigger as x } from "reka-ui";
5
+ //#region src/components/Tooltip.vue?vue&type=script&setup=true&lang.ts
6
+ var S = /*@__PURE__*/ s({
7
+ __name: "Tooltip",
8
+ props: /*@__PURE__*/ c({
9
+ text: {},
10
+ side: { default: "top" },
11
+ align: {},
12
+ sideOffset: { default: 6 },
13
+ delay: { default: 300 },
14
+ arrow: { type: Boolean },
15
+ disabled: { type: Boolean },
16
+ unstyled: {
17
+ type: Boolean,
18
+ default: void 0
19
+ },
20
+ class: {},
21
+ ui: {}
22
+ }, {
23
+ open: {
24
+ type: Boolean,
25
+ default: void 0
26
+ },
27
+ openModifiers: {}
28
+ }),
29
+ emits: ["update:open"],
30
+ setup(s) {
31
+ let c = s, S = m(s, "open"), C = e(), w = n(() => c.unstyled ?? C.unstyled), T = n(() => t()), E = n(() => w.value ? [c.ui?.content, c.class] : T.value.content({ class: [c.ui?.content, c.class] })), D = n(() => w.value ? c.ui?.arrow : T.value.arrow({ class: c.ui?.arrow }));
32
+ return (e, t) => (u(), r(p(y), { "delay-duration": c.delay }, {
33
+ default: h(() => [o(p(b), {
34
+ open: S.value,
35
+ "onUpdate:open": t[0] ||= (e) => S.value = e,
36
+ disabled: c.disabled
37
+ }, {
38
+ default: h(() => [o(p(x), { "as-child": "" }, {
39
+ default: h(() => [d(e.$slots, "trigger")]),
40
+ _: 3
41
+ }), o(p(v), null, {
42
+ default: h(() => [o(p(_), {
43
+ side: c.side,
44
+ align: c.align,
45
+ "side-offset": c.sideOffset,
46
+ class: l(E.value)
47
+ }, {
48
+ default: h(() => [d(e.$slots, "content", {}, () => [a(f(c.text), 1)]), c.arrow ? (u(), r(p(g), {
49
+ key: 0,
50
+ class: l(D.value),
51
+ width: 10,
52
+ height: 5
53
+ }, null, 8, ["class"])) : i("", !0)]),
54
+ _: 3
55
+ }, 8, [
56
+ "side",
57
+ "align",
58
+ "side-offset",
59
+ "class"
60
+ ])]),
61
+ _: 3
62
+ })]),
63
+ _: 3
64
+ }, 8, ["open", "disabled"])]),
65
+ _: 3
66
+ }, 8, ["delay-duration"]));
67
+ }
68
+ });
69
+ //#endregion
70
+ export { S as default };
@@ -0,0 +1,64 @@
1
+ import { __exportAll as e } from "../../../../_virtual/_rolldown/runtime.js";
2
+ import t from "./Alert.js";
3
+ import n from "./App.js";
4
+ import r from "./Badge.js";
5
+ import i from "./Breadcrumb.js";
6
+ import a from "./Button.js";
7
+ import o from "./ButtonGroup.js";
8
+ import s from "./Card.js";
9
+ import c from "./Checkbox.js";
10
+ import l from "./Dialog.js";
11
+ import u from "./ConfirmDialog.js";
12
+ import d from "./DropdownMenu.js";
13
+ import f from "./EmptyState.js";
14
+ import p from "./Form.js";
15
+ import m from "./Label.js";
16
+ import h from "./FormField.js";
17
+ import g from "./Input.js";
18
+ import _ from "./Pagination.js";
19
+ import v from "./Progress.js";
20
+ import y from "./RadioGroup.js";
21
+ import b from "./Select.js";
22
+ import x from "./Separator.js";
23
+ import S from "./Skeleton.js";
24
+ import C from "./Stat.js";
25
+ import w from "./Stepper.js";
26
+ import T from "./Switch.js";
27
+ import E from "./Tabs.js";
28
+ import D from "./Textarea.js";
29
+ import O from "./Toaster.js";
30
+ import k from "./Tooltip.js";
31
+ //#region src/components/index.ts
32
+ var A = /* @__PURE__ */ e({
33
+ Alert: () => t,
34
+ App: () => n,
35
+ Badge: () => r,
36
+ Breadcrumb: () => i,
37
+ Button: () => a,
38
+ ButtonGroup: () => o,
39
+ Card: () => s,
40
+ Checkbox: () => c,
41
+ ConfirmDialog: () => u,
42
+ Dialog: () => l,
43
+ DropdownMenu: () => d,
44
+ EmptyState: () => f,
45
+ Form: () => p,
46
+ FormField: () => h,
47
+ Input: () => g,
48
+ Label: () => m,
49
+ Pagination: () => _,
50
+ Progress: () => v,
51
+ RadioGroup: () => y,
52
+ Select: () => b,
53
+ Separator: () => x,
54
+ Skeleton: () => S,
55
+ Stat: () => C,
56
+ Stepper: () => w,
57
+ Switch: () => T,
58
+ Tabs: () => E,
59
+ Textarea: () => D,
60
+ Toaster: () => O,
61
+ Tooltip: () => k
62
+ });
63
+ //#endregion
64
+ export { A as components_exports };
@@ -4,7 +4,11 @@ var r = "iryx-ui:appearance", i = t("system"), a = t(!1), o = !1;
4
4
  function s() {
5
5
  return i.value === "dark" || i.value === "system" && a.value;
6
6
  }
7
- function c() {
7
+ function c(e) {
8
+ let t = document.createElement("style");
9
+ t.textContent = "*,*::before,*::after{transition:none !important;animation:none !important}", document.head.appendChild(t), document.documentElement.classList.toggle("dark", e), document.body?.offsetHeight, requestAnimationFrame(() => t.remove());
10
+ }
11
+ function l() {
8
12
  if (o || typeof window > "u") return;
9
13
  o = !0;
10
14
  let e = window.localStorage.getItem(r);
@@ -15,16 +19,16 @@ function c() {
15
19
  });
16
20
  }
17
21
  n(() => {
18
- document.documentElement.classList.toggle("dark", s()), window.localStorage.setItem(r, i.value);
22
+ c(s()), window.localStorage.setItem(r, i.value);
19
23
  });
20
24
  }
21
- function l(e) {
25
+ function u(e) {
22
26
  if (typeof window > "u") return;
23
27
  let t = window.localStorage.getItem(r) !== null;
24
- c(), t || (i.value = e);
28
+ l(), t || (i.value = e);
25
29
  }
26
- function u() {
27
- return c(), {
30
+ function d() {
31
+ return l(), {
28
32
  appearance: i,
29
33
  isDark: e(() => s()),
30
34
  setAppearance: (e) => {
@@ -36,4 +40,4 @@ function u() {
36
40
  };
37
41
  }
38
42
  //#endregion
39
- export { l as initAppearance, u as useAppearance };
43
+ export { u as initAppearance, d as useAppearance };
@@ -0,0 +1,8 @@
1
+ import { inject as e } from "vue";
2
+ //#region src/composables/button-group.ts
3
+ var t = Symbol.for("iryx-ui:button-group");
4
+ function n() {
5
+ return e(t, void 0);
6
+ }
7
+ //#endregion
8
+ export { t as buttonGroupContextKey, n as useButtonGroup };
@@ -0,0 +1,25 @@
1
+ import { shallowRef as e } from "vue";
2
+ //#region src/composables/confirm.ts
3
+ var t = e(null), n = 0;
4
+ function r() {
5
+ return t;
6
+ }
7
+ function i(e) {
8
+ let n = t.value;
9
+ n && (t.value = null, n.resolve(e));
10
+ }
11
+ function a() {
12
+ function e(e) {
13
+ let r = typeof e == "string" ? { title: e } : e;
14
+ return i(!1), new Promise((e) => {
15
+ t.value = {
16
+ ...r,
17
+ id: n++,
18
+ resolve: e
19
+ };
20
+ });
21
+ }
22
+ return { confirm: e };
23
+ }
24
+ //#endregion
25
+ export { i as resolveConfirm, a as useConfirm, r as useConfirmState };
@@ -0,0 +1,9 @@
1
+ //#region src/composables/dropdown-menu.ts
2
+ function e(e) {
3
+ return e === "-";
4
+ }
5
+ function t(e) {
6
+ return Array.isArray(e.items) && e.items.length > 0;
7
+ }
8
+ //#endregion
9
+ export { e as isSeparator, t as isSubmenu };
@@ -0,0 +1,6 @@
1
+ //#region src/composables/icon.ts
2
+ function e(e) {
3
+ return Array.isArray(e);
4
+ }
5
+ //#endregion
6
+ export { e as isIconArray };
@@ -0,0 +1,38 @@
1
+ import { shallowRef as e } from "vue";
2
+ //#region src/composables/toast.ts
3
+ var t = e([]), n = 0;
4
+ function r() {
5
+ return t;
6
+ }
7
+ function i(e) {
8
+ return typeof e == "string" ? { title: e } : e;
9
+ }
10
+ function a() {
11
+ function e(e) {
12
+ let r = n++;
13
+ return t.value = [...t.value, {
14
+ ...i(e),
15
+ id: r
16
+ }], r;
17
+ }
18
+ function r(t) {
19
+ return (n) => e({
20
+ ...i(n),
21
+ variant: t
22
+ });
23
+ }
24
+ function a(e) {
25
+ t.value = t.value.filter((t) => t.id !== e);
26
+ }
27
+ return {
28
+ toast: e,
29
+ success: r("success"),
30
+ warning: r("warning"),
31
+ danger: r("danger"),
32
+ info: r("info"),
33
+ dismiss: a,
34
+ clear: () => t.value = []
35
+ };
36
+ }
37
+ //#endregion
38
+ export { a as useToast, r as useToastState };
@@ -19,15 +19,15 @@ var t = e({
19
19
  },
20
20
  size: {
21
21
  sm: {
22
- root: "h-5 gap-1 px-2 text-xs [&_svg]:size-3",
22
+ root: "h-5 gap-1 px-2 text-xs has-[[data-icon=inline-end]]:pr-1.5 has-[[data-icon=inline-start]]:pl-1.5 [&_svg]:size-3",
23
23
  dot: "size-1.5"
24
24
  },
25
25
  md: {
26
- root: "h-6 gap-1.5 px-2.5 text-xs [&_svg]:size-3.5",
26
+ root: "h-6 gap-1.5 px-2.5 text-xs has-[[data-icon=inline-end]]:pr-2 has-[[data-icon=inline-start]]:pl-2 [&_svg]:size-3.5",
27
27
  dot: "size-2"
28
28
  },
29
29
  lg: {
30
- root: "h-7 gap-1.5 px-3 text-sm [&_svg]:size-4",
30
+ root: "h-7 gap-1.5 px-3 text-sm has-[[data-icon=inline-end]]:pr-2.5 has-[[data-icon=inline-start]]:pl-2.5 [&_svg]:size-4",
31
31
  dot: "size-2"
32
32
  }
33
33
  }
@@ -0,0 +1,12 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/breadcrumb.ts
3
+ var t = e({ slots: {
4
+ root: "text-sm",
5
+ list: "flex flex-wrap items-center gap-1.5",
6
+ item: "inline-flex items-center gap-1.5",
7
+ link: "inline-flex items-center gap-1.5 rounded text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4 [&_svg]:shrink-0",
8
+ current: "inline-flex items-center gap-1.5 font-medium text-foreground [&_svg]:size-4 [&_svg]:shrink-0",
9
+ separator: "text-muted-foreground [&_svg]:size-3.5"
10
+ } });
11
+ //#endregion
12
+ export { t as breadcrumbTheme };
@@ -0,0 +1,15 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/button-group.ts
3
+ var t = e({
4
+ base: "isolate inline-flex [&>*]:relative [&>*:focus-visible]:z-10 [&>*:hover]:z-10",
5
+ variants: {
6
+ orientation: {
7
+ horizontal: "[&>*:not(:first-child)]:-ml-px [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none",
8
+ vertical: "flex-col [&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none"
9
+ },
10
+ block: { true: "flex w-full [&>*]:flex-1" }
11
+ },
12
+ defaultVariants: { orientation: "horizontal" }
13
+ });
14
+ //#endregion
15
+ export { t as buttonGroupTheme };
@@ -0,0 +1,59 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/button.ts
3
+ var t = e({
4
+ base: "inline-flex shrink-0 items-center justify-center gap-2 rounded-lg border border-transparent font-medium transition-[color,background-color,border-color,box-shadow,opacity,filter,translate] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
5
+ variants: {
6
+ variant: {
7
+ solid: "bg-linear-to-b from-primary-from to-primary-to text-primary-foreground hover:brightness-110 active:brightness-95",
8
+ outline: "border-border bg-background text-foreground hover:bg-accent hover:text-accent-foreground",
9
+ ghost: "text-foreground hover:bg-accent hover:text-accent-foreground",
10
+ link: "text-primary underline-offset-4 hover:underline active:translate-y-0"
11
+ },
12
+ size: {
13
+ xs: "h-7 gap-1.5 px-2 text-xs has-[[data-icon=inline-end]]:pr-1.5 has-[[data-icon=inline-start]]:pl-1.5 [&_svg]:size-3.5",
14
+ sm: "h-8 px-3 text-sm has-[[data-icon=inline-end]]:pr-2 has-[[data-icon=inline-start]]:pl-2 [&_svg]:size-4",
15
+ md: "h-9 px-4 text-sm has-[[data-icon=inline-end]]:pr-3 has-[[data-icon=inline-start]]:pl-3 [&_svg]:size-4",
16
+ lg: "h-10 px-5 text-base has-[[data-icon=inline-end]]:pr-4 has-[[data-icon=inline-start]]:pl-4 [&_svg]:size-5",
17
+ xl: "h-12 px-6 text-base has-[[data-icon=inline-end]]:pr-5 has-[[data-icon=inline-start]]:pl-5 [&_svg]:size-5"
18
+ },
19
+ square: {
20
+ true: "",
21
+ false: ""
22
+ },
23
+ block: { true: "w-full" }
24
+ },
25
+ compoundVariants: [
26
+ {
27
+ square: !0,
28
+ size: "xs",
29
+ class: "w-7 px-0 has-[[data-icon]]:px-0"
30
+ },
31
+ {
32
+ square: !0,
33
+ size: "sm",
34
+ class: "w-8 px-0 has-[[data-icon]]:px-0"
35
+ },
36
+ {
37
+ square: !0,
38
+ size: "md",
39
+ class: "w-9 px-0 has-[[data-icon]]:px-0"
40
+ },
41
+ {
42
+ square: !0,
43
+ size: "lg",
44
+ class: "w-10 px-0 has-[[data-icon]]:px-0"
45
+ },
46
+ {
47
+ square: !0,
48
+ size: "xl",
49
+ class: "w-12 px-0 has-[[data-icon]]:px-0"
50
+ }
51
+ ],
52
+ defaultVariants: {
53
+ variant: "solid",
54
+ size: "md",
55
+ square: !1
56
+ }
57
+ });
58
+ //#endregion
59
+ export { t as buttonTheme };
@@ -0,0 +1,23 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/dialog.ts
3
+ var t = e({
4
+ slots: {
5
+ overlay: "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
6
+ content: "fixed top-1/2 left-1/2 z-50 flex max-h-[calc(100dvh-2rem)] w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col gap-4 rounded-xl border border-border bg-background p-6 text-foreground shadow-lg outline-none data-[state=closed]:animate-dialog-out data-[state=open]:animate-dialog-in",
7
+ header: "flex flex-col gap-1",
8
+ title: "text-base leading-none font-semibold",
9
+ description: "text-sm text-muted-foreground",
10
+ body: "-m-1 min-h-0 flex-1 overflow-y-auto p-1",
11
+ footer: "flex flex-wrap items-center justify-end gap-2",
12
+ close: "absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4"
13
+ },
14
+ variants: { size: {
15
+ sm: { content: "sm:max-w-sm" },
16
+ md: { content: "sm:max-w-md" },
17
+ lg: { content: "sm:max-w-lg" },
18
+ xl: { content: "sm:max-w-2xl" }
19
+ } },
20
+ defaultVariants: { size: "md" }
21
+ });
22
+ //#endregion
23
+ export { t as dialogTheme };
@@ -0,0 +1,16 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/dropdown-menu.ts
3
+ var t = e({
4
+ slots: {
5
+ content: "z-50 min-w-40 overflow-hidden rounded-lg border border-border bg-background p-1 text-foreground shadow-lg outline-none data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
6
+ item: "flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
7
+ label: "px-2 py-1.5 text-xs font-medium text-muted-foreground",
8
+ separator: "-mx-1 my-1 h-px bg-border",
9
+ subTrigger: "flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
10
+ subContent: "z-50 min-w-40 overflow-hidden rounded-lg border border-border bg-background p-1 text-foreground shadow-lg outline-none data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
11
+ subTriggerIcon: "ml-auto"
12
+ },
13
+ variants: { danger: { true: { item: "text-danger data-[highlighted]:bg-danger-muted data-[highlighted]:text-danger-muted-foreground" } } }
14
+ });
15
+ //#endregion
16
+ export { t as dropdownMenuTheme };
@@ -0,0 +1,34 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/empty-state.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex flex-col items-center justify-center text-center",
6
+ icon: "text-muted-foreground",
7
+ title: "font-medium text-foreground",
8
+ description: "max-w-sm text-sm text-muted-foreground",
9
+ actions: "flex flex-wrap items-center justify-center gap-2"
10
+ },
11
+ variants: { size: {
12
+ sm: {
13
+ root: "gap-1.5 px-4 py-8",
14
+ icon: "[&_svg]:size-8",
15
+ title: "text-sm",
16
+ actions: "mt-2"
17
+ },
18
+ md: {
19
+ root: "gap-2 px-6 py-12",
20
+ icon: "[&_svg]:size-10",
21
+ title: "text-base",
22
+ actions: "mt-4"
23
+ },
24
+ lg: {
25
+ root: "gap-2.5 px-8 py-16",
26
+ icon: "[&_svg]:size-12",
27
+ title: "text-lg",
28
+ actions: "mt-6"
29
+ }
30
+ } },
31
+ defaultVariants: { size: "md" }
32
+ });
33
+ //#endregion
34
+ export { t as emptyStateTheme };
@@ -0,0 +1,38 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/form.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "space-y-2",
6
+ header: "flex items-center justify-between gap-2",
7
+ label: "",
8
+ hint: "text-sm leading-none text-muted-foreground",
9
+ description: "text-sm leading-snug text-muted-foreground",
10
+ control: "",
11
+ error: "text-sm leading-snug text-red-500",
12
+ help: "text-sm leading-snug text-muted-foreground"
13
+ },
14
+ variants: { indent: {
15
+ none: {},
16
+ sm: {
17
+ header: "px-2.5",
18
+ description: "px-2.5",
19
+ error: "px-2.5",
20
+ help: "px-2.5"
21
+ },
22
+ md: {
23
+ header: "px-3",
24
+ description: "px-3",
25
+ error: "px-3",
26
+ help: "px-3"
27
+ },
28
+ lg: {
29
+ header: "px-4",
30
+ description: "px-4",
31
+ error: "px-4",
32
+ help: "px-4"
33
+ }
34
+ } },
35
+ defaultVariants: { indent: "md" }
36
+ });
37
+ //#endregion
38
+ export { t as formFieldTheme };
@@ -2,7 +2,16 @@ import { tv as e } from "tailwind-variants";
2
2
  //#region src/theme/label.ts
3
3
  var t = e({
4
4
  base: "inline-flex items-center gap-1 text-sm leading-none font-medium text-foreground select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
5
- variants: { required: { true: "after:text-red-500 after:content-['*']" } }
5
+ variants: {
6
+ required: { true: "after:text-red-500 after:content-['*']" },
7
+ indent: {
8
+ none: "",
9
+ sm: "ps-2.5",
10
+ md: "ps-3",
11
+ lg: "ps-4"
12
+ }
13
+ },
14
+ defaultVariants: { indent: "md" }
6
15
  });
7
16
  //#endregion
8
17
  export { t as labelTheme };
@@ -0,0 +1,29 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/pagination.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex items-center gap-2",
6
+ list: "flex items-center gap-1",
7
+ item: "inline-flex items-center justify-center rounded-lg border border-transparent text-sm font-medium transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4",
8
+ active: "bg-linear-to-b from-primary-from to-primary-to text-primary-foreground hover:brightness-110",
9
+ inactive: "text-foreground hover:bg-accent hover:text-accent-foreground",
10
+ ellipsis: "inline-flex items-center justify-center text-sm text-muted-foreground"
11
+ },
12
+ variants: { size: {
13
+ sm: {
14
+ item: "h-8 min-w-8 px-2",
15
+ ellipsis: "h-8 min-w-8"
16
+ },
17
+ md: {
18
+ item: "h-9 min-w-9 px-2.5",
19
+ ellipsis: "h-9 min-w-9"
20
+ },
21
+ lg: {
22
+ item: "h-10 min-w-10 px-3",
23
+ ellipsis: "h-10 min-w-10"
24
+ }
25
+ } },
26
+ defaultVariants: { size: "md" }
27
+ });
28
+ //#endregion
29
+ export { t as paginationTheme };