iryx-ui 0.2.0 → 0.4.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 (166) hide show
  1. package/README.md +200 -19
  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/Icon.vue.d.ts +8 -0
  13. package/dist/components/NumberInput.vue.d.ts +63 -0
  14. package/dist/components/Pagination.vue.d.ts +57 -0
  15. package/dist/components/Progress.vue.d.ts +52 -0
  16. package/dist/components/Separator.vue.d.ts +36 -0
  17. package/dist/components/Skeleton.vue.d.ts +20 -0
  18. package/dist/components/Stat.vue.d.ts +57 -0
  19. package/dist/components/Stepper.vue.d.ts +61 -0
  20. package/dist/components/Tabs.vue.d.ts +63 -0
  21. package/dist/components/Toaster.vue.d.ts +28 -0
  22. package/dist/components/Tooltip.vue.d.ts +49 -0
  23. package/dist/components/index.d.ts +16 -0
  24. package/dist/composables/button-group.d.ts +12 -0
  25. package/dist/composables/confirm.d.ts +36 -0
  26. package/dist/composables/decimal.d.ts +53 -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 +21 -0
  32. package/dist/index.js +67 -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/packages/iryx-ui/src/components/Icon.js +5 -0
  57. package/dist/packages/iryx-ui/src/components/Icon.vue_vue_type_script_setup_true_lang.js +26 -0
  58. package/dist/packages/iryx-ui/src/components/NumberInput.js +5 -0
  59. package/dist/packages/iryx-ui/src/components/NumberInput.vue_vue_type_script_setup_true_lang.js +136 -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 +66 -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/decimal.js +79 -0
  84. package/dist/packages/iryx-ui/src/composables/dropdown-menu.js +9 -0
  85. package/dist/packages/iryx-ui/src/composables/icon.js +6 -0
  86. package/dist/packages/iryx-ui/src/composables/toast.js +38 -0
  87. package/dist/{theme → packages/iryx-ui/src/theme}/badge.js +3 -3
  88. package/dist/packages/iryx-ui/src/theme/breadcrumb.js +12 -0
  89. package/dist/packages/iryx-ui/src/theme/button-group.js +15 -0
  90. package/dist/packages/iryx-ui/src/theme/button.js +59 -0
  91. package/dist/packages/iryx-ui/src/theme/dialog.js +23 -0
  92. package/dist/packages/iryx-ui/src/theme/dropdown-menu.js +16 -0
  93. package/dist/packages/iryx-ui/src/theme/empty-state.js +34 -0
  94. package/dist/{theme → packages/iryx-ui/src/theme}/form.js +1 -1
  95. package/dist/packages/iryx-ui/src/theme/number-input.js +49 -0
  96. package/dist/packages/iryx-ui/src/theme/pagination.js +29 -0
  97. package/dist/packages/iryx-ui/src/theme/progress.js +33 -0
  98. package/dist/packages/iryx-ui/src/theme/separator.js +22 -0
  99. package/dist/packages/iryx-ui/src/theme/skeleton.js +13 -0
  100. package/dist/packages/iryx-ui/src/theme/stat.js +30 -0
  101. package/dist/packages/iryx-ui/src/theme/stepper.js +25 -0
  102. package/dist/packages/iryx-ui/src/theme/tabs.js +52 -0
  103. package/dist/packages/iryx-ui/src/theme/toast.js +53 -0
  104. package/dist/packages/iryx-ui/src/theme/tooltip.js +8 -0
  105. package/dist/theme/breadcrumb.d.ts +59 -0
  106. package/dist/theme/button-group.d.ts +29 -0
  107. package/dist/theme/button.d.ts +17 -2
  108. package/dist/theme/dialog.d.ts +74 -0
  109. package/dist/theme/dropdown-menu.d.ts +53 -0
  110. package/dist/theme/empty-state.d.ts +86 -0
  111. package/dist/theme/index.d.ts +15 -0
  112. package/dist/theme/number-input.d.ts +92 -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/{components → packages/iryx-ui/src/components}/Alert.js +0 -0
  132. /package/dist/{components → packages/iryx-ui/src/components}/App.js +0 -0
  133. /package/dist/{components → packages/iryx-ui/src/components}/App.vue_vue_type_script_setup_true_lang.js +0 -0
  134. /package/dist/{components → packages/iryx-ui/src/components}/Badge.js +0 -0
  135. /package/dist/{components → packages/iryx-ui/src/components}/Badge.vue_vue_type_script_setup_true_lang.js +0 -0
  136. /package/dist/{components → packages/iryx-ui/src/components}/Button.js +0 -0
  137. /package/dist/{components → packages/iryx-ui/src/components}/Card.js +0 -0
  138. /package/dist/{components → packages/iryx-ui/src/components}/Card.vue_vue_type_script_setup_true_lang.js +0 -0
  139. /package/dist/{components → packages/iryx-ui/src/components}/Checkbox.js +0 -0
  140. /package/dist/{components → packages/iryx-ui/src/components}/Form.js +0 -0
  141. /package/dist/{components → packages/iryx-ui/src/components}/Form.vue_vue_type_script_setup_true_lang.js +0 -0
  142. /package/dist/{components → packages/iryx-ui/src/components}/FormField.js +0 -0
  143. /package/dist/{components → packages/iryx-ui/src/components}/FormField.vue_vue_type_script_setup_true_lang.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}/Label.vue_vue_type_script_setup_true_lang.js +0 -0
  148. /package/dist/{components → packages/iryx-ui/src/components}/RadioGroup.js +0 -0
  149. /package/dist/{components → packages/iryx-ui/src/components}/RadioGroup.vue_vue_type_script_setup_true_lang.js +0 -0
  150. /package/dist/{components → packages/iryx-ui/src/components}/Select.js +0 -0
  151. /package/dist/{components → packages/iryx-ui/src/components}/Switch.js +0 -0
  152. /package/dist/{components → packages/iryx-ui/src/components}/Switch.vue_vue_type_script_setup_true_lang.js +0 -0
  153. /package/dist/{components → packages/iryx-ui/src/components}/Textarea.js +0 -0
  154. /package/dist/{components → packages/iryx-ui/src/components}/Textarea.vue_vue_type_script_setup_true_lang.js +0 -0
  155. /package/dist/{composables → packages/iryx-ui/src/composables}/form.js +0 -0
  156. /package/dist/{config.js → packages/iryx-ui/src/config.js} +0 -0
  157. /package/dist/{plugin.js → packages/iryx-ui/src/plugin.js} +0 -0
  158. /package/dist/{theme → packages/iryx-ui/src/theme}/alert.js +0 -0
  159. /package/dist/{theme → packages/iryx-ui/src/theme}/card.js +0 -0
  160. /package/dist/{theme → packages/iryx-ui/src/theme}/checkbox.js +0 -0
  161. /package/dist/{theme → packages/iryx-ui/src/theme}/input.js +0 -0
  162. /package/dist/{theme → packages/iryx-ui/src/theme}/label.js +0 -0
  163. /package/dist/{theme → packages/iryx-ui/src/theme}/presets.js +0 -0
  164. /package/dist/{theme → packages/iryx-ui/src/theme}/radio-group.js +0 -0
  165. /package/dist/{theme → packages/iryx-ui/src/theme}/select.js +0 -0
  166. /package/dist/{theme → packages/iryx-ui/src/theme}/switch.js +0 -0
@@ -0,0 +1,110 @@
1
+ export declare const statTheme: import("tailwind-variants").TVReturnType<{
2
+ size: {
3
+ sm: {
4
+ value: string;
5
+ };
6
+ md: {
7
+ value: string;
8
+ };
9
+ lg: {
10
+ value: string;
11
+ };
12
+ };
13
+ /**
14
+ * Direction of change. `neutral` is used when the delta is zero, so a flat
15
+ * result does not read as either good or bad.
16
+ */
17
+ trend: {
18
+ up: {
19
+ delta: string;
20
+ };
21
+ down: {
22
+ delta: string;
23
+ };
24
+ neutral: {
25
+ delta: string;
26
+ };
27
+ };
28
+ }, {
29
+ root: string;
30
+ /** Small, uppercase and tracked out, so the value carries the weight. */
31
+ label: string;
32
+ value: string;
33
+ delta: string;
34
+ hint: string;
35
+ /** Column, so the delta always sits on its own line under the value. */
36
+ row: string;
37
+ }, undefined, {
38
+ size: {
39
+ sm: {
40
+ value: string;
41
+ };
42
+ md: {
43
+ value: string;
44
+ };
45
+ lg: {
46
+ value: string;
47
+ };
48
+ };
49
+ /**
50
+ * Direction of change. `neutral` is used when the delta is zero, so a flat
51
+ * result does not read as either good or bad.
52
+ */
53
+ trend: {
54
+ up: {
55
+ delta: string;
56
+ };
57
+ down: {
58
+ delta: string;
59
+ };
60
+ neutral: {
61
+ delta: string;
62
+ };
63
+ };
64
+ }, {
65
+ root: string;
66
+ /** Small, uppercase and tracked out, so the value carries the weight. */
67
+ label: string;
68
+ value: string;
69
+ delta: string;
70
+ hint: string;
71
+ /** Column, so the delta always sits on its own line under the value. */
72
+ row: string;
73
+ }, import("tailwind-variants").TVReturnType<{
74
+ size: {
75
+ sm: {
76
+ value: string;
77
+ };
78
+ md: {
79
+ value: string;
80
+ };
81
+ lg: {
82
+ value: string;
83
+ };
84
+ };
85
+ /**
86
+ * Direction of change. `neutral` is used when the delta is zero, so a flat
87
+ * result does not read as either good or bad.
88
+ */
89
+ trend: {
90
+ up: {
91
+ delta: string;
92
+ };
93
+ down: {
94
+ delta: string;
95
+ };
96
+ neutral: {
97
+ delta: string;
98
+ };
99
+ };
100
+ }, {
101
+ root: string;
102
+ /** Small, uppercase and tracked out, so the value carries the weight. */
103
+ label: string;
104
+ value: string;
105
+ delta: string;
106
+ hint: string;
107
+ /** Column, so the delta always sits on its own line under the value. */
108
+ row: string;
109
+ }, undefined, unknown, unknown, undefined>>;
110
+ export type StatSlots = keyof ReturnType<typeof statTheme>;
@@ -0,0 +1,56 @@
1
+ export declare const stepperTheme: import("tailwind-variants").TVReturnType<{
2
+ orientation: {
3
+ horizontal: {};
4
+ vertical: {
5
+ root: string;
6
+ item: string;
7
+ separator: string;
8
+ };
9
+ };
10
+ }, {
11
+ root: string;
12
+ item: string;
13
+ trigger: string;
14
+ indicator: string;
15
+ content: string;
16
+ title: string;
17
+ description: string;
18
+ separator: string;
19
+ }, undefined, {
20
+ orientation: {
21
+ horizontal: {};
22
+ vertical: {
23
+ root: string;
24
+ item: string;
25
+ separator: string;
26
+ };
27
+ };
28
+ }, {
29
+ root: string;
30
+ item: string;
31
+ trigger: string;
32
+ indicator: string;
33
+ content: string;
34
+ title: string;
35
+ description: string;
36
+ separator: string;
37
+ }, import("tailwind-variants").TVReturnType<{
38
+ orientation: {
39
+ horizontal: {};
40
+ vertical: {
41
+ root: string;
42
+ item: string;
43
+ separator: string;
44
+ };
45
+ };
46
+ }, {
47
+ root: string;
48
+ item: string;
49
+ trigger: string;
50
+ indicator: string;
51
+ content: string;
52
+ title: string;
53
+ description: string;
54
+ separator: string;
55
+ }, undefined, unknown, unknown, undefined>>;
56
+ export type StepperSlots = keyof ReturnType<typeof stepperTheme>;
@@ -0,0 +1,104 @@
1
+ export declare const tabsTheme: import("tailwind-variants").TVReturnType<{
2
+ variant: {
3
+ /** Pill sliding along a muted track. */
4
+ solid: {
5
+ list: string;
6
+ indicator: string;
7
+ trigger: string;
8
+ };
9
+ /**
10
+ * Underline for page-level navigation. The trigger is square: a rounded
11
+ * corner would bend the bar that sits under it.
12
+ */
13
+ line: {
14
+ list: string;
15
+ indicator: string;
16
+ trigger: string;
17
+ };
18
+ };
19
+ orientation: {
20
+ horizontal: {
21
+ indicator: string;
22
+ };
23
+ vertical: {
24
+ root: string;
25
+ list: string;
26
+ indicator: string;
27
+ };
28
+ };
29
+ }, {
30
+ root: string;
31
+ list: string;
32
+ indicator: string;
33
+ trigger: string;
34
+ content: string;
35
+ }, undefined, {
36
+ variant: {
37
+ /** Pill sliding along a muted track. */
38
+ solid: {
39
+ list: string;
40
+ indicator: string;
41
+ trigger: string;
42
+ };
43
+ /**
44
+ * Underline for page-level navigation. The trigger is square: a rounded
45
+ * corner would bend the bar that sits under it.
46
+ */
47
+ line: {
48
+ list: string;
49
+ indicator: string;
50
+ trigger: string;
51
+ };
52
+ };
53
+ orientation: {
54
+ horizontal: {
55
+ indicator: string;
56
+ };
57
+ vertical: {
58
+ root: string;
59
+ list: string;
60
+ indicator: string;
61
+ };
62
+ };
63
+ }, {
64
+ root: string;
65
+ list: string;
66
+ indicator: string;
67
+ trigger: string;
68
+ content: string;
69
+ }, import("tailwind-variants").TVReturnType<{
70
+ variant: {
71
+ /** Pill sliding along a muted track. */
72
+ solid: {
73
+ list: string;
74
+ indicator: string;
75
+ trigger: string;
76
+ };
77
+ /**
78
+ * Underline for page-level navigation. The trigger is square: a rounded
79
+ * corner would bend the bar that sits under it.
80
+ */
81
+ line: {
82
+ list: string;
83
+ indicator: string;
84
+ trigger: string;
85
+ };
86
+ };
87
+ orientation: {
88
+ horizontal: {
89
+ indicator: string;
90
+ };
91
+ vertical: {
92
+ root: string;
93
+ list: string;
94
+ indicator: string;
95
+ };
96
+ };
97
+ }, {
98
+ root: string;
99
+ list: string;
100
+ indicator: string;
101
+ trigger: string;
102
+ content: string;
103
+ }, undefined, unknown, unknown, undefined>>;
104
+ export type TabsSlots = keyof ReturnType<typeof tabsTheme>;
@@ -0,0 +1,176 @@
1
+ export declare const toastTheme: import("tailwind-variants").TVReturnType<{
2
+ variant: {
3
+ neutral: {
4
+ root: string;
5
+ icon: string;
6
+ };
7
+ success: {
8
+ root: string;
9
+ icon: string;
10
+ };
11
+ warning: {
12
+ root: string;
13
+ icon: string;
14
+ };
15
+ danger: {
16
+ root: string;
17
+ icon: string;
18
+ };
19
+ info: {
20
+ root: string;
21
+ icon: string;
22
+ };
23
+ };
24
+ position: {
25
+ 'top-left': {
26
+ viewport: string;
27
+ };
28
+ 'top-center': {
29
+ viewport: string;
30
+ };
31
+ 'top-right': {
32
+ viewport: string;
33
+ };
34
+ 'bottom-left': {
35
+ viewport: string;
36
+ };
37
+ 'bottom-center': {
38
+ viewport: string;
39
+ };
40
+ 'bottom-right': {
41
+ viewport: string;
42
+ };
43
+ };
44
+ /** Tightens the title/description gap when both are present. */
45
+ withTitle: {
46
+ true: {
47
+ description: string;
48
+ };
49
+ };
50
+ }, {
51
+ viewport: string;
52
+ root: string;
53
+ icon: string;
54
+ content: string;
55
+ title: string;
56
+ description: string;
57
+ action: string;
58
+ close: string;
59
+ }, undefined, {
60
+ variant: {
61
+ neutral: {
62
+ root: string;
63
+ icon: string;
64
+ };
65
+ success: {
66
+ root: string;
67
+ icon: string;
68
+ };
69
+ warning: {
70
+ root: string;
71
+ icon: string;
72
+ };
73
+ danger: {
74
+ root: string;
75
+ icon: string;
76
+ };
77
+ info: {
78
+ root: string;
79
+ icon: string;
80
+ };
81
+ };
82
+ position: {
83
+ 'top-left': {
84
+ viewport: string;
85
+ };
86
+ 'top-center': {
87
+ viewport: string;
88
+ };
89
+ 'top-right': {
90
+ viewport: string;
91
+ };
92
+ 'bottom-left': {
93
+ viewport: string;
94
+ };
95
+ 'bottom-center': {
96
+ viewport: string;
97
+ };
98
+ 'bottom-right': {
99
+ viewport: string;
100
+ };
101
+ };
102
+ /** Tightens the title/description gap when both are present. */
103
+ withTitle: {
104
+ true: {
105
+ description: string;
106
+ };
107
+ };
108
+ }, {
109
+ viewport: string;
110
+ root: string;
111
+ icon: string;
112
+ content: string;
113
+ title: string;
114
+ description: string;
115
+ action: string;
116
+ close: string;
117
+ }, import("tailwind-variants").TVReturnType<{
118
+ variant: {
119
+ neutral: {
120
+ root: string;
121
+ icon: string;
122
+ };
123
+ success: {
124
+ root: string;
125
+ icon: string;
126
+ };
127
+ warning: {
128
+ root: string;
129
+ icon: string;
130
+ };
131
+ danger: {
132
+ root: string;
133
+ icon: string;
134
+ };
135
+ info: {
136
+ root: string;
137
+ icon: string;
138
+ };
139
+ };
140
+ position: {
141
+ 'top-left': {
142
+ viewport: string;
143
+ };
144
+ 'top-center': {
145
+ viewport: string;
146
+ };
147
+ 'top-right': {
148
+ viewport: string;
149
+ };
150
+ 'bottom-left': {
151
+ viewport: string;
152
+ };
153
+ 'bottom-center': {
154
+ viewport: string;
155
+ };
156
+ 'bottom-right': {
157
+ viewport: string;
158
+ };
159
+ };
160
+ /** Tightens the title/description gap when both are present. */
161
+ withTitle: {
162
+ true: {
163
+ description: string;
164
+ };
165
+ };
166
+ }, {
167
+ viewport: string;
168
+ root: string;
169
+ icon: string;
170
+ content: string;
171
+ title: string;
172
+ description: string;
173
+ action: string;
174
+ close: string;
175
+ }, undefined, unknown, unknown, undefined>>;
176
+ export type ToastSlots = keyof ReturnType<typeof toastTheme>;
@@ -0,0 +1,32 @@
1
+ export declare const tooltipTheme: import("tailwind-variants").TVReturnType<{
2
+ [key: string]: {
3
+ [key: string]: import("tailwind-variants").ClassValue | {
4
+ content?: import("tailwind-variants").ClassValue;
5
+ arrow?: import("tailwind-variants").ClassValue;
6
+ };
7
+ };
8
+ } | {
9
+ [x: string]: {
10
+ [x: string]: import("tailwind-variants").ClassValue | {
11
+ content?: import("tailwind-variants").ClassValue;
12
+ arrow?: import("tailwind-variants").ClassValue;
13
+ };
14
+ };
15
+ } | {}, {
16
+ content: string;
17
+ arrow: string;
18
+ }, undefined, {
19
+ [key: string]: {
20
+ [key: string]: import("tailwind-variants").ClassValue | {
21
+ content?: import("tailwind-variants").ClassValue;
22
+ arrow?: import("tailwind-variants").ClassValue;
23
+ };
24
+ };
25
+ } | {}, {
26
+ content: string;
27
+ arrow: string;
28
+ }, import("tailwind-variants").TVReturnType<unknown, {
29
+ content: string;
30
+ arrow: string;
31
+ }, undefined, unknown, unknown, undefined>>;
32
+ export type TooltipSlots = keyof ReturnType<typeof tooltipTheme>;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "iryx-ui",
3
3
  "type": "module",
4
- "version": "0.2.0",
5
- "description": "Iryx — an artful Vue 3 component library built on Reka UI and Tailwind CSS v4.",
4
+ "version": "0.4.0",
5
+ "description": "A Vue 3 component library built on Reka UI and Tailwind CSS v4.",
6
6
  "author": "therok1",
7
7
  "license": "MIT",
8
8
  "homepage": "https://github.com/therok1/iryx-ui#readme",
@@ -45,8 +45,9 @@
45
45
  "vue": "^3.5.0"
46
46
  },
47
47
  "dependencies": {
48
+ "@hugeicons/core-free-icons": "^4.2.3",
49
+ "@hugeicons/vue": "^1.0.7",
48
50
  "@nuxt/kit": "^4.4.8",
49
- "lucide-vue-next": "^1.0.0",
50
51
  "reka-ui": "^2.9.10",
51
52
  "tailwind-merge": "^3.6.0",
52
53
  "tailwind-variants": "^3.2.2"
package/theme.css CHANGED
@@ -128,4 +128,59 @@
128
128
  --color-info-muted: var(--iryx-info-muted);
129
129
  --color-info-muted-foreground: var(--iryx-info-muted-foreground);
130
130
  --color-info-border: var(--iryx-info-border);
131
+ --animate-progress-indeterminate: progress-indeterminate 1.5s ease-in-out infinite;
132
+ --animate-fade-in: fade-in 150ms ease-out;
133
+ --animate-fade-out: fade-out 150ms ease-in;
134
+ --animate-dialog-in: dialog-in 150ms ease-out;
135
+ --animate-dialog-out: dialog-out 150ms ease-in;
136
+ --animate-toast-in: toast-in 150ms ease-out;
137
+ }
138
+
139
+ /* Indeterminate Progress: slide a short bar back and forth across the track. */
140
+ @keyframes progress-indeterminate {
141
+ 0% {
142
+ transform: translateX(-100%);
143
+ }
144
+ 100% {
145
+ transform: translateX(300%);
146
+ }
147
+ }
148
+
149
+ @keyframes fade-in {
150
+ from {
151
+ opacity: 0;
152
+ }
153
+ }
154
+
155
+ @keyframes fade-out {
156
+ to {
157
+ opacity: 0;
158
+ }
159
+ }
160
+
161
+ /*
162
+ * Dialog enter/exit. Centring uses Tailwind's `translate` property, which is
163
+ * applied independently of `transform` — so these keyframes must only touch
164
+ * scale. Adding a translate here would compose with the centring one and slide
165
+ * the dialog in from the top-left.
166
+ */
167
+ @keyframes dialog-in {
168
+ from {
169
+ opacity: 0;
170
+ transform: scale(0.96);
171
+ }
172
+ }
173
+
174
+ @keyframes dialog-out {
175
+ to {
176
+ opacity: 0;
177
+ transform: scale(0.96);
178
+ }
179
+ }
180
+
181
+ @keyframes toast-in {
182
+ from {
183
+ opacity: 0;
184
+ transform: translateY(0.5rem);
185
+ }
131
186
  }
@@ -1,19 +0,0 @@
1
- //#region src/component-names.ts
2
- var e = [
3
- "Alert",
4
- "App",
5
- "Badge",
6
- "Button",
7
- "Card",
8
- "Checkbox",
9
- "Form",
10
- "FormField",
11
- "Input",
12
- "Label",
13
- "RadioGroup",
14
- "Select",
15
- "Switch",
16
- "Textarea"
17
- ];
18
- //#endregion
19
- export { e as componentNames };
@@ -1,74 +0,0 @@
1
- import { useIryxUiConfig as e } from "../config.js";
2
- import { alertTheme as t } from "../theme/alert.js";
3
- import { computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createTextVNode as s, createVNode as c, defineComponent as l, normalizeClass as u, openBlock as d, renderSlot as f, resolveDynamicComponent as p, toDisplayString as m, unref as h, withCtx as g } from "vue";
4
- import { CircleAlert as _, CircleCheck as v, Info as y, TriangleAlert as b, X as x } from "lucide-vue-next";
5
- import { Primitive as S } from "reka-ui";
6
- //#region src/components/Alert.vue?vue&type=script&setup=true&lang.ts
7
- var C = ["aria-label"], w = /*@__PURE__*/ l({
8
- __name: "Alert",
9
- props: {
10
- as: { default: "div" },
11
- variant: {},
12
- title: {},
13
- description: {},
14
- icon: {
15
- type: Boolean,
16
- default: void 0
17
- },
18
- closable: { type: Boolean },
19
- closeLabel: { default: "Close" },
20
- unstyled: {
21
- type: Boolean,
22
- default: void 0
23
- },
24
- class: {},
25
- ui: {}
26
- },
27
- emits: ["close"],
28
- setup(l) {
29
- let w = l, T = {
30
- info: y,
31
- success: v,
32
- warning: b,
33
- danger: _
34
- }, E = n(() => {
35
- if (w.icon !== !1) return w.icon ?? T[w.variant ?? "info"];
36
- }), D = n(() => w.variant === "danger" || w.variant === "warning" ? "alert" : "status"), O = e(), k = n(() => w.unstyled ?? O.unstyled), A = n(() => t({
37
- variant: w.variant,
38
- withTitle: !!w.title
39
- })), j = n(() => k.value ? [w.ui?.root, w.class] : A.value.root({ class: [w.ui?.root, w.class] })), M = n(() => k.value ? w.ui?.icon : A.value.icon({ class: w.ui?.icon })), N = n(() => k.value ? w.ui?.content : A.value.content({ class: w.ui?.content })), P = n(() => k.value ? w.ui?.title : A.value.title({ class: w.ui?.title })), F = n(() => k.value ? w.ui?.description : A.value.description({ class: w.ui?.description })), I = n(() => k.value ? w.ui?.close : A.value.close({ class: w.ui?.close }));
40
- return (e, t) => (d(), r(h(S), {
41
- as: w.as,
42
- role: D.value,
43
- class: u(j.value)
44
- }, {
45
- default: g(() => [
46
- E.value || e.$slots.icon ? (d(), a("div", {
47
- key: 0,
48
- class: u(M.value)
49
- }, [f(e.$slots, "icon", {}, () => [(d(), r(p(E.value), { "aria-hidden": "true" }))])], 2)) : i("", !0),
50
- o("div", { class: u(N.value) }, [w.title || e.$slots.title ? (d(), a("p", {
51
- key: 0,
52
- class: u(P.value)
53
- }, [f(e.$slots, "title", {}, () => [s(m(w.title), 1)])], 2)) : i("", !0), w.description || e.$slots.default ? (d(), a("div", {
54
- key: 1,
55
- class: u(F.value)
56
- }, [f(e.$slots, "default", {}, () => [s(m(w.description), 1)])], 2)) : i("", !0)], 2),
57
- w.closable ? (d(), a("button", {
58
- key: 1,
59
- type: "button",
60
- "aria-label": w.closeLabel,
61
- class: u(I.value),
62
- onClick: t[0] ||= (t) => e.$emit("close")
63
- }, [f(e.$slots, "close", {}, () => [c(h(x), { "aria-hidden": "true" })])], 10, C)) : i("", !0)
64
- ]),
65
- _: 3
66
- }, 8, [
67
- "as",
68
- "role",
69
- "class"
70
- ]));
71
- }
72
- });
73
- //#endregion
74
- export { w as default };
@@ -1,54 +0,0 @@
1
- import { useIryxUiConfig as e } from "../config.js";
2
- import { buttonTheme as t } from "../theme/button.js";
3
- import { computed as n, createBlock as r, createCommentVNode as i, defineComponent as a, normalizeClass as o, openBlock as s, renderSlot as c, unref as l, withCtx as u } from "vue";
4
- import { LoaderCircle as d } from "lucide-vue-next";
5
- import { Primitive as f } from "reka-ui";
6
- //#region src/components/Button.vue?vue&type=script&setup=true&lang.ts
7
- var p = /*@__PURE__*/ a({
8
- __name: "Button",
9
- props: {
10
- as: { default: "button" },
11
- asChild: { type: Boolean },
12
- variant: {},
13
- size: {},
14
- block: { type: Boolean },
15
- loading: { type: Boolean },
16
- disabled: { type: Boolean },
17
- unstyled: {
18
- type: Boolean,
19
- default: void 0
20
- },
21
- type: { default: "button" },
22
- class: {}
23
- },
24
- setup(a) {
25
- let p = a, m = e(), h = n(() => p.unstyled ?? m.unstyled), g = n(() => h.value ? p.class : t({
26
- variant: p.variant,
27
- size: p.size,
28
- block: p.block,
29
- class: p.class
30
- }));
31
- return (e, t) => (s(), r(l(f), {
32
- as: p.as,
33
- "as-child": p.asChild,
34
- type: p.as === "button" ? p.type : void 0,
35
- disabled: p.disabled || p.loading || void 0,
36
- class: o(g.value)
37
- }, {
38
- default: u(() => [p.loading ? (s(), r(l(d), {
39
- key: 0,
40
- class: "animate-spin",
41
- "aria-hidden": "true"
42
- })) : i("", !0), c(e.$slots, "default")]),
43
- _: 3
44
- }, 8, [
45
- "as",
46
- "as-child",
47
- "type",
48
- "disabled",
49
- "class"
50
- ]));
51
- }
52
- });
53
- //#endregion
54
- export { p as default };