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,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.3.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 };
@@ -1,79 +0,0 @@
1
- import { useIryxUiConfig as e } from "../config.js";
2
- import { checkboxTheme as t } from "../theme/checkbox.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, mergeProps as u, normalizeClass as d, openBlock as f, renderSlot as p, toDisplayString as m, unref as h, withCtx as g } from "vue";
4
- import { Check as _, Minus as v } from "lucide-vue-next";
5
- import { CheckboxIndicator as y, CheckboxRoot as b, Label as x, useForwardPropsEmits as S, useId as C } from "reka-ui";
6
- //#region src/components/Checkbox.vue?vue&type=script&setup=true&lang.ts
7
- var w = ["id"], T = /*@__PURE__*/ l({
8
- __name: "Checkbox",
9
- props: {
10
- label: {},
11
- description: {},
12
- size: {},
13
- id: {},
14
- unstyled: {
15
- type: Boolean,
16
- default: void 0
17
- },
18
- class: {},
19
- ui: {},
20
- defaultValue: {},
21
- modelValue: {},
22
- disabled: { type: Boolean },
23
- value: {},
24
- trueValue: {},
25
- falseValue: {},
26
- asChild: { type: Boolean },
27
- as: {},
28
- name: {},
29
- required: { type: Boolean }
30
- },
31
- emits: ["update:modelValue"],
32
- setup(l, { emit: T }) {
33
- let E = l, D = T, O = S(n(() => {
34
- let { label: e, description: t, size: n, id: r, unstyled: i, class: a, ui: o, ...s } = E;
35
- return s;
36
- }), D), k = C(), A = n(() => E.id ?? k), j = n(() => !!(E.label || E.description)), M = e(), N = n(() => E.unstyled ?? M.unstyled), P = n(() => t({
37
- size: E.size,
38
- withText: j.value
39
- })), F = n(() => N.value ? E.ui?.wrapper : P.value.wrapper({ class: E.ui?.wrapper })), I = n(() => N.value ? [E.ui?.root, E.class] : P.value.root({ class: [E.ui?.root, E.class] })), L = n(() => N.value ? E.ui?.indicator : P.value.indicator({ class: E.ui?.indicator })), R = n(() => N.value ? E.ui?.content : P.value.content({ class: E.ui?.content })), z = n(() => N.value ? E.ui?.label : P.value.label({ class: E.ui?.label })), B = n(() => N.value ? E.ui?.description : P.value.description({ class: E.ui?.description }));
40
- return (e, t) => j.value ? (f(), a("div", {
41
- key: 0,
42
- class: d(F.value)
43
- }, [c(h(b), u({ id: A.value }, h(O), {
44
- "aria-describedby": E.description ? `${A.value}-description` : void 0,
45
- class: I.value
46
- }), {
47
- default: g(() => [c(h(y), { class: d(L.value) }, {
48
- default: g(() => [p(e.$slots, "default", {}, () => [E.modelValue === "indeterminate" ? (f(), r(h(v), { key: 0 })) : (f(), r(h(_), { key: 1 }))])]),
49
- _: 3
50
- }, 8, ["class"])]),
51
- _: 3
52
- }, 16, [
53
- "id",
54
- "aria-describedby",
55
- "class"
56
- ]), o("div", { class: d(R.value) }, [c(h(x), {
57
- for: A.value,
58
- class: d(z.value)
59
- }, {
60
- default: g(() => [p(e.$slots, "label", {}, () => [s(m(E.label), 1)])]),
61
- _: 3
62
- }, 8, ["for", "class"]), E.description || e.$slots.description ? (f(), a("p", {
63
- key: 0,
64
- id: `${A.value}-description`,
65
- class: d(B.value)
66
- }, [p(e.$slots, "description", {}, () => [s(m(E.description), 1)])], 10, w)) : i("", !0)], 2)], 2)) : (f(), r(h(b), u({
67
- key: 1,
68
- id: E.id
69
- }, h(O), { class: I.value }), {
70
- default: g(() => [c(h(y), { class: d(L.value) }, {
71
- default: g(() => [p(e.$slots, "default", {}, () => [E.modelValue === "indeterminate" ? (f(), r(h(v), { key: 0 })) : (f(), r(h(_), { key: 1 }))])]),
72
- _: 3
73
- }, 8, ["class"])]),
74
- _: 3
75
- }, 16, ["id", "class"]));
76
- }
77
- });
78
- //#endregion
79
- export { T as default };