iryx-ui 0.1.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 (171) 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 +59 -0
  4. package/dist/components/App.vue.d.ts +1 -1
  5. package/dist/components/Badge.vue.d.ts +38 -0
  6. package/dist/components/Breadcrumb.vue.d.ts +45 -0
  7. package/dist/components/Button.vue.d.ts +9 -1
  8. package/dist/components/ButtonGroup.vue.d.ts +32 -0
  9. package/dist/components/Card.vue.d.ts +49 -0
  10. package/dist/components/ConfirmDialog.vue.d.ts +18 -0
  11. package/dist/components/Dialog.vue.d.ts +65 -0
  12. package/dist/components/DropdownMenu.vue.d.ts +49 -0
  13. package/dist/components/DropdownMenuItems.vue.d.ts +24 -0
  14. package/dist/components/EmptyState.vue.d.ts +46 -0
  15. package/dist/components/FormField.vue.d.ts +9 -0
  16. package/dist/components/Icon.vue.d.ts +8 -0
  17. package/dist/components/Label.vue.d.ts +6 -0
  18. package/dist/components/Pagination.vue.d.ts +57 -0
  19. package/dist/components/Progress.vue.d.ts +52 -0
  20. package/dist/components/Separator.vue.d.ts +36 -0
  21. package/dist/components/Skeleton.vue.d.ts +20 -0
  22. package/dist/components/Stat.vue.d.ts +57 -0
  23. package/dist/components/Stepper.vue.d.ts +61 -0
  24. package/dist/components/Tabs.vue.d.ts +63 -0
  25. package/dist/components/Toaster.vue.d.ts +28 -0
  26. package/dist/components/Tooltip.vue.d.ts +49 -0
  27. package/dist/components/index.d.ts +18 -0
  28. package/dist/composables/button-group.d.ts +12 -0
  29. package/dist/composables/confirm.d.ts +36 -0
  30. package/dist/composables/dropdown-menu.d.ts +22 -0
  31. package/dist/composables/icon.d.ts +10 -0
  32. package/dist/composables/toast.d.ts +42 -0
  33. package/dist/config.d.ts +9 -0
  34. package/dist/index.d.ts +22 -0
  35. package/dist/index.js +64 -25
  36. package/dist/node_modules/.pnpm/@hugeicons_core-free-icons@4.2.3/node_modules/@hugeicons/core-free-icons/dist/esm/index.js +201 -0
  37. 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
  38. 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
  39. 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
  40. package/dist/nuxt.js +1 -1
  41. package/dist/packages/iryx-ui/src/component-names.js +4 -0
  42. package/dist/packages/iryx-ui/src/components/Alert.js +5 -0
  43. package/dist/packages/iryx-ui/src/components/Alert.vue_vue_type_script_setup_true_lang.js +75 -0
  44. package/dist/{components → packages/iryx-ui/src/components}/App.vue_vue_type_script_setup_true_lang.js +7 -7
  45. package/dist/packages/iryx-ui/src/components/Badge.js +5 -0
  46. package/dist/packages/iryx-ui/src/components/Badge.vue_vue_type_script_setup_true_lang.js +48 -0
  47. package/dist/packages/iryx-ui/src/components/Breadcrumb.js +5 -0
  48. package/dist/packages/iryx-ui/src/components/Breadcrumb.vue_vue_type_script_setup_true_lang.js +68 -0
  49. package/dist/packages/iryx-ui/src/components/Button.vue_vue_type_script_setup_true_lang.js +59 -0
  50. package/dist/packages/iryx-ui/src/components/ButtonGroup.js +5 -0
  51. package/dist/packages/iryx-ui/src/components/ButtonGroup.vue_vue_type_script_setup_true_lang.js +39 -0
  52. package/dist/packages/iryx-ui/src/components/Card.js +5 -0
  53. package/dist/packages/iryx-ui/src/components/Card.vue_vue_type_script_setup_true_lang.js +58 -0
  54. package/dist/packages/iryx-ui/src/components/Checkbox.vue_vue_type_script_setup_true_lang.js +92 -0
  55. package/dist/packages/iryx-ui/src/components/ConfirmDialog.js +5 -0
  56. package/dist/packages/iryx-ui/src/components/ConfirmDialog.vue_vue_type_script_setup_true_lang.js +63 -0
  57. package/dist/packages/iryx-ui/src/components/Dialog.js +5 -0
  58. package/dist/packages/iryx-ui/src/components/Dialog.vue_vue_type_script_setup_true_lang.js +99 -0
  59. package/dist/packages/iryx-ui/src/components/DropdownMenu.js +5 -0
  60. package/dist/packages/iryx-ui/src/components/DropdownMenu.vue_vue_type_script_setup_true_lang.js +67 -0
  61. package/dist/packages/iryx-ui/src/components/DropdownMenuItems.js +5 -0
  62. package/dist/packages/iryx-ui/src/components/DropdownMenuItems.vue_vue_type_script_setup_true_lang.js +92 -0
  63. package/dist/packages/iryx-ui/src/components/EmptyState.js +5 -0
  64. package/dist/packages/iryx-ui/src/components/EmptyState.vue_vue_type_script_setup_true_lang.js +55 -0
  65. package/dist/{components → packages/iryx-ui/src/components}/FormField.vue_vue_type_script_setup_true_lang.js +5 -3
  66. package/dist/packages/iryx-ui/src/components/Icon.js +5 -0
  67. package/dist/packages/iryx-ui/src/components/Icon.vue_vue_type_script_setup_true_lang.js +26 -0
  68. package/dist/{components → packages/iryx-ui/src/components}/Label.vue_vue_type_script_setup_true_lang.js +2 -0
  69. package/dist/packages/iryx-ui/src/components/Pagination.js +5 -0
  70. package/dist/packages/iryx-ui/src/components/Pagination.vue_vue_type_script_setup_true_lang.js +94 -0
  71. package/dist/packages/iryx-ui/src/components/Progress.js +5 -0
  72. package/dist/packages/iryx-ui/src/components/Progress.vue_vue_type_script_setup_true_lang.js +65 -0
  73. package/dist/packages/iryx-ui/src/components/Select.vue_vue_type_script_setup_true_lang.js +85 -0
  74. package/dist/packages/iryx-ui/src/components/Separator.js +5 -0
  75. package/dist/packages/iryx-ui/src/components/Separator.vue_vue_type_script_setup_true_lang.js +56 -0
  76. package/dist/packages/iryx-ui/src/components/Skeleton.js +5 -0
  77. package/dist/packages/iryx-ui/src/components/Skeleton.vue_vue_type_script_setup_true_lang.js +48 -0
  78. package/dist/packages/iryx-ui/src/components/Stat.js +5 -0
  79. package/dist/packages/iryx-ui/src/components/Stat.vue_vue_type_script_setup_true_lang.js +63 -0
  80. package/dist/packages/iryx-ui/src/components/Stepper.js +5 -0
  81. package/dist/packages/iryx-ui/src/components/Stepper.vue_vue_type_script_setup_true_lang.js +89 -0
  82. package/dist/packages/iryx-ui/src/components/Tabs.js +5 -0
  83. package/dist/packages/iryx-ui/src/components/Tabs.vue_vue_type_script_setup_true_lang.js +78 -0
  84. package/dist/packages/iryx-ui/src/components/Toaster.js +5 -0
  85. package/dist/packages/iryx-ui/src/components/Toaster.vue_vue_type_script_setup_true_lang.js +115 -0
  86. package/dist/packages/iryx-ui/src/components/Tooltip.js +5 -0
  87. package/dist/packages/iryx-ui/src/components/Tooltip.vue_vue_type_script_setup_true_lang.js +70 -0
  88. package/dist/packages/iryx-ui/src/components/index.js +64 -0
  89. package/dist/{composables → packages/iryx-ui/src/composables}/appearance.js +11 -7
  90. package/dist/packages/iryx-ui/src/composables/button-group.js +8 -0
  91. package/dist/packages/iryx-ui/src/composables/confirm.js +25 -0
  92. package/dist/packages/iryx-ui/src/composables/dropdown-menu.js +9 -0
  93. package/dist/packages/iryx-ui/src/composables/icon.js +6 -0
  94. package/dist/packages/iryx-ui/src/composables/toast.js +38 -0
  95. package/dist/{plugin.js → packages/iryx-ui/src/plugin.js} +5 -5
  96. package/dist/packages/iryx-ui/src/theme/alert.js +36 -0
  97. package/dist/packages/iryx-ui/src/theme/badge.js +94 -0
  98. package/dist/packages/iryx-ui/src/theme/breadcrumb.js +12 -0
  99. package/dist/packages/iryx-ui/src/theme/button-group.js +15 -0
  100. package/dist/packages/iryx-ui/src/theme/button.js +59 -0
  101. package/dist/packages/iryx-ui/src/theme/card.js +42 -0
  102. package/dist/packages/iryx-ui/src/theme/dialog.js +23 -0
  103. package/dist/packages/iryx-ui/src/theme/dropdown-menu.js +16 -0
  104. package/dist/packages/iryx-ui/src/theme/empty-state.js +34 -0
  105. package/dist/packages/iryx-ui/src/theme/form.js +38 -0
  106. package/dist/{theme → packages/iryx-ui/src/theme}/label.js +10 -1
  107. package/dist/packages/iryx-ui/src/theme/pagination.js +29 -0
  108. package/dist/{theme → packages/iryx-ui/src/theme}/presets.js +21 -1
  109. package/dist/packages/iryx-ui/src/theme/progress.js +33 -0
  110. package/dist/packages/iryx-ui/src/theme/separator.js +22 -0
  111. package/dist/packages/iryx-ui/src/theme/skeleton.js +13 -0
  112. package/dist/packages/iryx-ui/src/theme/stat.js +30 -0
  113. package/dist/packages/iryx-ui/src/theme/stepper.js +25 -0
  114. package/dist/packages/iryx-ui/src/theme/tabs.js +52 -0
  115. package/dist/packages/iryx-ui/src/theme/toast.js +53 -0
  116. package/dist/packages/iryx-ui/src/theme/tooltip.js +8 -0
  117. package/dist/theme/alert.d.ts +98 -0
  118. package/dist/theme/badge.d.ts +92 -0
  119. package/dist/theme/breadcrumb.d.ts +59 -0
  120. package/dist/theme/button-group.d.ts +29 -0
  121. package/dist/theme/button.d.ts +17 -2
  122. package/dist/theme/card.d.ts +110 -0
  123. package/dist/theme/dialog.d.ts +74 -0
  124. package/dist/theme/dropdown-menu.d.ts +53 -0
  125. package/dist/theme/empty-state.d.ts +86 -0
  126. package/dist/theme/form.d.ts +62 -35
  127. package/dist/theme/index.d.ts +17 -0
  128. package/dist/theme/label.d.ts +18 -0
  129. package/dist/theme/pagination.d.ts +71 -0
  130. package/dist/theme/presets.d.ts +20 -0
  131. package/dist/theme/progress.d.ts +143 -0
  132. package/dist/theme/separator.d.ts +50 -0
  133. package/dist/theme/skeleton.d.ts +23 -0
  134. package/dist/theme/stat.d.ts +110 -0
  135. package/dist/theme/stepper.d.ts +56 -0
  136. package/dist/theme/switch.d.ts +6 -6
  137. package/dist/theme/tabs.d.ts +104 -0
  138. package/dist/theme/toast.d.ts +176 -0
  139. package/dist/theme/tooltip.d.ts +32 -0
  140. package/package.json +4 -3
  141. package/theme.css +121 -0
  142. package/dist/component-names.js +0 -16
  143. package/dist/components/Button.vue_vue_type_script_setup_true_lang.js +0 -54
  144. package/dist/components/Checkbox.vue_vue_type_script_setup_true_lang.js +0 -79
  145. package/dist/components/Select.vue_vue_type_script_setup_true_lang.js +0 -84
  146. package/dist/components/index.js +0 -28
  147. package/dist/theme/button.js +0 -27
  148. package/dist/theme/form.js +0 -14
  149. /package/dist/{components → packages/iryx-ui/src/components}/App.js +0 -0
  150. /package/dist/{components → packages/iryx-ui/src/components}/Button.js +0 -0
  151. /package/dist/{components → packages/iryx-ui/src/components}/Checkbox.js +0 -0
  152. /package/dist/{components → packages/iryx-ui/src/components}/Form.js +0 -0
  153. /package/dist/{components → packages/iryx-ui/src/components}/Form.vue_vue_type_script_setup_true_lang.js +0 -0
  154. /package/dist/{components → packages/iryx-ui/src/components}/FormField.js +0 -0
  155. /package/dist/{components → packages/iryx-ui/src/components}/Input.js +0 -0
  156. /package/dist/{components → packages/iryx-ui/src/components}/Input.vue_vue_type_script_setup_true_lang.js +0 -0
  157. /package/dist/{components → packages/iryx-ui/src/components}/Label.js +0 -0
  158. /package/dist/{components → packages/iryx-ui/src/components}/RadioGroup.js +0 -0
  159. /package/dist/{components → packages/iryx-ui/src/components}/RadioGroup.vue_vue_type_script_setup_true_lang.js +0 -0
  160. /package/dist/{components → packages/iryx-ui/src/components}/Select.js +0 -0
  161. /package/dist/{components → packages/iryx-ui/src/components}/Switch.js +0 -0
  162. /package/dist/{components → packages/iryx-ui/src/components}/Switch.vue_vue_type_script_setup_true_lang.js +0 -0
  163. /package/dist/{components → packages/iryx-ui/src/components}/Textarea.js +0 -0
  164. /package/dist/{components → packages/iryx-ui/src/components}/Textarea.vue_vue_type_script_setup_true_lang.js +0 -0
  165. /package/dist/{composables → packages/iryx-ui/src/composables}/form.js +0 -0
  166. /package/dist/{config.js → packages/iryx-ui/src/config.js} +0 -0
  167. /package/dist/{theme → packages/iryx-ui/src/theme}/checkbox.js +0 -0
  168. /package/dist/{theme → packages/iryx-ui/src/theme}/input.js +0 -0
  169. /package/dist/{theme → packages/iryx-ui/src/theme}/radio-group.js +0 -0
  170. /package/dist/{theme → packages/iryx-ui/src/theme}/select.js +0 -0
  171. /package/dist/{theme → packages/iryx-ui/src/theme}/switch.js +0 -0
@@ -0,0 +1,63 @@
1
+ import { ArrowDown01Icon as e, ArrowRight01Icon as t, ArrowUp01Icon as n } 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 r } from "../config.js";
3
+ import i from "./Icon.js";
4
+ import { statTheme as a } from "../theme/stat.js";
5
+ import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, openBlock as h, renderSlot as g, toDisplayString as _, unref as v, withCtx as y } from "vue";
6
+ import { Primitive as b } from "reka-ui";
7
+ //#region src/components/Stat.vue?vue&type=script&setup=true&lang.ts
8
+ var x = /*@__PURE__*/ p({
9
+ __name: "Stat",
10
+ props: {
11
+ as: { default: "div" },
12
+ label: {},
13
+ value: {},
14
+ delta: {},
15
+ trend: {},
16
+ hint: {},
17
+ size: {},
18
+ formatDelta: {},
19
+ unstyled: {
20
+ type: Boolean,
21
+ default: void 0
22
+ },
23
+ class: {},
24
+ ui: {}
25
+ },
26
+ setup(p) {
27
+ let x = p, S = o(() => x.trend ? x.trend : x.delta == null || x.delta === 0 ? "neutral" : x.delta > 0 ? "up" : "down"), C = o(() => ({
28
+ up: n,
29
+ down: e,
30
+ neutral: t
31
+ })[S.value]), w = o(() => {
32
+ if (x.delta != null) return x.formatDelta ? x.formatDelta(x.delta) : `${x.delta > 0 ? "+" : ""}${x.delta}%`;
33
+ }), T = r(), E = o(() => x.unstyled ?? T.unstyled), D = o(() => a({
34
+ size: x.size,
35
+ trend: S.value
36
+ })), O = o(() => E.value ? [x.ui?.root, x.class] : D.value.root({ class: [x.ui?.root, x.class] })), k = o(() => E.value ? x.ui?.label : D.value.label({ class: x.ui?.label })), A = o(() => E.value ? x.ui?.value : D.value.value({ class: x.ui?.value })), j = o(() => E.value ? x.ui?.delta : D.value.delta({ class: x.ui?.delta })), M = o(() => E.value ? x.ui?.hint : D.value.hint({ class: x.ui?.hint })), N = o(() => E.value ? x.ui?.row : D.value.row({ class: x.ui?.row }));
37
+ return (e, t) => (h(), s(v(b), {
38
+ as: x.as,
39
+ class: m(O.value)
40
+ }, {
41
+ default: y(() => [
42
+ x.label || e.$slots.label ? (h(), l("span", {
43
+ key: 0,
44
+ class: m(k.value)
45
+ }, [g(e.$slots, "label", {}, () => [d(_(x.label), 1)])], 2)) : c("", !0),
46
+ u("span", { class: m(N.value) }, [u("span", { class: m(A.value) }, [g(e.$slots, "default", {}, () => [d(_(x.value), 1)])], 2), w.value || e.$slots.delta ? (h(), l("span", {
47
+ key: 0,
48
+ class: m(j.value)
49
+ }, [g(e.$slots, "delta", { trend: S.value }, () => [f(i, {
50
+ icon: C.value,
51
+ "data-icon": "inline-start"
52
+ }, null, 8, ["icon"]), d(" " + _(w.value), 1)])], 2)) : c("", !0)], 2),
53
+ x.hint || e.$slots.hint ? (h(), l("span", {
54
+ key: 1,
55
+ class: m(M.value)
56
+ }, [g(e.$slots, "hint", {}, () => [d(_(x.hint), 1)])], 2)) : c("", !0)
57
+ ]),
58
+ _: 3
59
+ }, 8, ["as", "class"]));
60
+ }
61
+ });
62
+ //#endregion
63
+ export { x as default };
@@ -0,0 +1,5 @@
1
+ import e from "./Stepper.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/Stepper.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,89 @@
1
+ import { Tick02Icon 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 { stepperTheme as r } from "../theme/stepper.js";
5
+ import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, mergeModels as p, normalizeClass as m, openBlock as h, renderList as g, renderSlot as _, toDisplayString as v, unref as y, useModel as b, withCtx as x } from "vue";
6
+ import { StepperDescription as S, StepperIndicator as C, StepperItem as w, StepperRoot as T, StepperSeparator as E, StepperTitle as D, StepperTrigger as O } from "reka-ui";
7
+ //#region src/components/Stepper.vue?vue&type=script&setup=true&lang.ts
8
+ var k = /*@__PURE__*/ f({
9
+ __name: "Stepper",
10
+ props: /*@__PURE__*/ p({
11
+ items: {},
12
+ orientation: {},
13
+ linear: {
14
+ type: Boolean,
15
+ default: !1
16
+ },
17
+ unstyled: {
18
+ type: Boolean,
19
+ default: void 0
20
+ },
21
+ class: {},
22
+ ui: {}
23
+ }, {
24
+ modelValue: { default: 1 },
25
+ modelModifiers: {}
26
+ }),
27
+ emits: ["update:modelValue"],
28
+ setup(f) {
29
+ let p = f, k = b(f, "modelValue"), A = a(() => (p.items ?? []).map((e) => typeof e == "string" ? { title: e } : e)), j = t(), M = a(() => p.unstyled ?? j.unstyled), N = a(() => r({ orientation: p.orientation }));
30
+ function P(e) {
31
+ let t = p.ui?.[e];
32
+ return M.value ? t : N.value[e]({ class: t });
33
+ }
34
+ let F = a(() => M.value ? [p.ui?.root, p.class] : N.value.root({ class: [p.ui?.root, p.class] }));
35
+ return (t, r) => (h(), o(y(T), {
36
+ modelValue: k.value,
37
+ "onUpdate:modelValue": r[0] ||= (e) => k.value = e,
38
+ orientation: p.orientation,
39
+ linear: p.linear,
40
+ class: m(F.value)
41
+ }, {
42
+ default: x(() => [(h(!0), c(i, null, g(A.value, (r, a) => (h(), o(y(w), {
43
+ key: a,
44
+ step: a + 1,
45
+ disabled: r.disabled,
46
+ class: m(P("item"))
47
+ }, {
48
+ default: x(() => [d(y(O), { class: m(P("trigger")) }, {
49
+ default: x(() => [d(y(C), { class: m(P("indicator")) }, {
50
+ default: x(() => [_(t.$slots, "indicator", {
51
+ step: a + 1,
52
+ item: r
53
+ }, () => [a + 1 < k.value ? (h(), o(n, {
54
+ key: 0,
55
+ icon: y(e)
56
+ }, null, 8, ["icon"])) : (h(), c(i, { key: 1 }, [u(v(a + 1), 1)], 64))])]),
57
+ _: 2
58
+ }, 1032, ["class"]), l("span", { class: m(P("content")) }, [d(y(D), { class: m(P("title")) }, {
59
+ default: x(() => [u(v(r.title), 1)]),
60
+ _: 2
61
+ }, 1032, ["class"]), r.description ? (h(), o(y(S), {
62
+ key: 0,
63
+ class: m(P("description"))
64
+ }, {
65
+ default: x(() => [u(v(r.description), 1)]),
66
+ _: 2
67
+ }, 1032, ["class"])) : s("", !0)], 2)]),
68
+ _: 2
69
+ }, 1032, ["class"]), a < A.value.length - 1 ? (h(), o(y(E), {
70
+ key: 0,
71
+ class: m(P("separator"))
72
+ }, null, 8, ["class"])) : s("", !0)]),
73
+ _: 2
74
+ }, 1032, [
75
+ "step",
76
+ "disabled",
77
+ "class"
78
+ ]))), 128))]),
79
+ _: 3
80
+ }, 8, [
81
+ "modelValue",
82
+ "orientation",
83
+ "linear",
84
+ "class"
85
+ ]));
86
+ }
87
+ });
88
+ //#endregion
89
+ export { k as default };
@@ -0,0 +1,5 @@
1
+ import e from "./Tabs.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/Tabs.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,78 @@
1
+ import { useIryxUiConfig as e } from "../config.js";
2
+ import t from "./Icon.js";
3
+ import { tabsTheme as n } from "../theme/tabs.js";
4
+ import { Fragment as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createTextVNode as c, createVNode as l, defineComponent as u, mergeModels as d, normalizeClass as f, openBlock as p, renderList as m, renderSlot as h, toDisplayString as g, unref as _, useModel as v, withCtx as y } from "vue";
5
+ import { TabsContent as b, TabsIndicator as x, TabsList as S, TabsRoot as C, TabsTrigger as w } from "reka-ui";
6
+ //#region src/components/Tabs.vue?vue&type=script&setup=true&lang.ts
7
+ var T = /*@__PURE__*/ u({
8
+ __name: "Tabs",
9
+ props: /*@__PURE__*/ d({
10
+ items: {},
11
+ variant: {},
12
+ orientation: {},
13
+ keepMounted: { type: Boolean },
14
+ unstyled: {
15
+ type: Boolean,
16
+ default: void 0
17
+ },
18
+ class: {},
19
+ ui: {}
20
+ }, {
21
+ modelValue: { default: void 0 },
22
+ modelModifiers: {}
23
+ }),
24
+ emits: ["update:modelValue"],
25
+ setup(u) {
26
+ let d = u, T = i(() => (d.items ?? []).map((e) => typeof e == "string" ? { label: e } : e)), E = (e) => e.value ?? e.label, D = v(u, "modelValue"), O = e(), k = i(() => d.unstyled ?? O.unstyled), A = i(() => n({
27
+ variant: d.variant,
28
+ orientation: d.orientation
29
+ })), j = i(() => k.value ? [d.ui?.root, d.class] : A.value.root({ class: [d.ui?.root, d.class] })), M = i(() => k.value ? d.ui?.list : A.value.list({ class: d.ui?.list })), N = i(() => k.value ? d.ui?.indicator : A.value.indicator({ class: d.ui?.indicator })), P = i(() => k.value ? d.ui?.trigger : A.value.trigger({ class: d.ui?.trigger })), F = i(() => k.value ? d.ui?.content : A.value.content({ class: d.ui?.content }));
30
+ return (e, n) => (p(), a(_(C), {
31
+ modelValue: D.value,
32
+ "onUpdate:modelValue": n[0] ||= (e) => D.value = e,
33
+ "default-value": T.value[0] ? E(T.value[0]) : void 0,
34
+ orientation: d.orientation,
35
+ class: f(j.value)
36
+ }, {
37
+ default: y(() => [l(_(S), { class: f(M.value) }, {
38
+ default: y(() => [l(_(x), { class: f(N.value) }, null, 8, ["class"]), h(e.$slots, "list", {}, () => [(p(!0), s(r, null, m(T.value, (n) => (p(), a(_(w), {
39
+ key: E(n),
40
+ value: E(n),
41
+ disabled: n.disabled,
42
+ class: f(P.value)
43
+ }, {
44
+ default: y(() => [h(e.$slots, "trigger", { item: n }, () => [n.icon ? (p(), a(t, {
45
+ key: 0,
46
+ icon: n.icon
47
+ }, null, 8, ["icon"])) : o("", !0), c(" " + g(n.label), 1)])]),
48
+ _: 2
49
+ }, 1032, [
50
+ "value",
51
+ "disabled",
52
+ "class"
53
+ ]))), 128))])]),
54
+ _: 3
55
+ }, 8, ["class"]), h(e.$slots, "default", {}, () => [(p(!0), s(r, null, m(T.value, (t) => (p(), a(_(b), {
56
+ key: E(t),
57
+ value: E(t),
58
+ "force-mount": d.keepMounted || void 0,
59
+ class: f(F.value)
60
+ }, {
61
+ default: y(() => [h(e.$slots, E(t), { item: t })]),
62
+ _: 2
63
+ }, 1032, [
64
+ "value",
65
+ "force-mount",
66
+ "class"
67
+ ]))), 128))])]),
68
+ _: 3
69
+ }, 8, [
70
+ "modelValue",
71
+ "default-value",
72
+ "orientation",
73
+ "class"
74
+ ]));
75
+ }
76
+ });
77
+ //#endregion
78
+ export { T as default };
@@ -0,0 +1,5 @@
1
+ import e from "./Toaster.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/Toaster.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -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 };
@@ -1,18 +1,18 @@
1
1
  import { componentNames as e } from "./component-names.js";
2
- import { initAppearance as t } from "./composables/appearance.js";
3
- import { defaultConfig as n, iryxUiConfigKey as r } from "./config.js";
2
+ import { defaultConfig as t, iryxUiConfigKey as n } from "./config.js";
3
+ import { initAppearance as r } from "./composables/appearance.js";
4
4
  import { applyTheme as i } from "./theme/presets.js";
5
5
  import { components_exports as a } from "./components/index.js";
6
6
  //#region src/plugin.ts
7
7
  function o(o = {}) {
8
8
  let { prefix: s = "I", appearance: c, theme: l, ...u } = o;
9
9
  return { install(o) {
10
- o.provide(r, {
11
- ...n,
10
+ o.provide(n, {
11
+ ...t,
12
12
  ...u
13
13
  });
14
14
  for (let t of e) o.component(`${s}${t}`, a[t]);
15
- l && i(l), c && t(c);
15
+ l && i(l), c && r(c);
16
16
  } };
17
17
  }
18
18
  var s = o();