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,12 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/breadcrumb.ts
3
+ var t = e({ slots: {
4
+ root: "text-sm",
5
+ list: "flex flex-wrap items-center gap-1.5",
6
+ item: "inline-flex items-center gap-1.5",
7
+ link: "inline-flex items-center gap-1.5 rounded text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4 [&_svg]:shrink-0",
8
+ current: "inline-flex items-center gap-1.5 font-medium text-foreground [&_svg]:size-4 [&_svg]:shrink-0",
9
+ separator: "text-muted-foreground [&_svg]:size-3.5"
10
+ } });
11
+ //#endregion
12
+ export { t as breadcrumbTheme };
@@ -0,0 +1,15 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/button-group.ts
3
+ var t = e({
4
+ base: "isolate inline-flex [&>*]:relative [&>*:focus-visible]:z-10 [&>*:hover]:z-10",
5
+ variants: {
6
+ orientation: {
7
+ horizontal: "[&>*:not(:first-child)]:-ml-px [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none",
8
+ vertical: "flex-col [&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none"
9
+ },
10
+ block: { true: "flex w-full [&>*]:flex-1" }
11
+ },
12
+ defaultVariants: { orientation: "horizontal" }
13
+ });
14
+ //#endregion
15
+ export { t as buttonGroupTheme };
@@ -0,0 +1,59 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/button.ts
3
+ var t = e({
4
+ base: "inline-flex shrink-0 items-center justify-center gap-2 rounded-lg border border-transparent font-medium transition-[color,background-color,border-color,box-shadow,opacity,filter,translate] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
5
+ variants: {
6
+ variant: {
7
+ solid: "bg-linear-to-b from-primary-from to-primary-to text-primary-foreground hover:brightness-110 active:brightness-95",
8
+ outline: "border-border bg-background text-foreground hover:bg-accent hover:text-accent-foreground",
9
+ ghost: "text-foreground hover:bg-accent hover:text-accent-foreground",
10
+ link: "text-primary underline-offset-4 hover:underline active:translate-y-0"
11
+ },
12
+ size: {
13
+ xs: "h-7 gap-1.5 px-2 text-xs has-[[data-icon=inline-end]]:pr-1.5 has-[[data-icon=inline-start]]:pl-1.5 [&_svg]:size-3.5",
14
+ sm: "h-8 px-3 text-sm has-[[data-icon=inline-end]]:pr-2 has-[[data-icon=inline-start]]:pl-2 [&_svg]:size-4",
15
+ md: "h-9 px-4 text-sm has-[[data-icon=inline-end]]:pr-3 has-[[data-icon=inline-start]]:pl-3 [&_svg]:size-4",
16
+ lg: "h-10 px-5 text-base has-[[data-icon=inline-end]]:pr-4 has-[[data-icon=inline-start]]:pl-4 [&_svg]:size-5",
17
+ xl: "h-12 px-6 text-base has-[[data-icon=inline-end]]:pr-5 has-[[data-icon=inline-start]]:pl-5 [&_svg]:size-5"
18
+ },
19
+ square: {
20
+ true: "",
21
+ false: ""
22
+ },
23
+ block: { true: "w-full" }
24
+ },
25
+ compoundVariants: [
26
+ {
27
+ square: !0,
28
+ size: "xs",
29
+ class: "w-7 px-0 has-[[data-icon]]:px-0"
30
+ },
31
+ {
32
+ square: !0,
33
+ size: "sm",
34
+ class: "w-8 px-0 has-[[data-icon]]:px-0"
35
+ },
36
+ {
37
+ square: !0,
38
+ size: "md",
39
+ class: "w-9 px-0 has-[[data-icon]]:px-0"
40
+ },
41
+ {
42
+ square: !0,
43
+ size: "lg",
44
+ class: "w-10 px-0 has-[[data-icon]]:px-0"
45
+ },
46
+ {
47
+ square: !0,
48
+ size: "xl",
49
+ class: "w-12 px-0 has-[[data-icon]]:px-0"
50
+ }
51
+ ],
52
+ defaultVariants: {
53
+ variant: "solid",
54
+ size: "md",
55
+ square: !1
56
+ }
57
+ });
58
+ //#endregion
59
+ export { t as buttonTheme };
@@ -0,0 +1,23 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/dialog.ts
3
+ var t = e({
4
+ slots: {
5
+ overlay: "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
6
+ content: "fixed top-1/2 left-1/2 z-50 flex max-h-[calc(100dvh-2rem)] w-[calc(100vw-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col gap-4 rounded-xl border border-border bg-background p-6 text-foreground shadow-lg outline-none data-[state=closed]:animate-dialog-out data-[state=open]:animate-dialog-in",
7
+ header: "flex flex-col gap-1",
8
+ title: "text-base leading-none font-semibold",
9
+ description: "text-sm text-muted-foreground",
10
+ body: "-m-1 min-h-0 flex-1 overflow-y-auto p-1",
11
+ footer: "flex flex-wrap items-center justify-end gap-2",
12
+ close: "absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 focus-visible:ring-primary/50 [&_svg]:size-4"
13
+ },
14
+ variants: { size: {
15
+ sm: { content: "sm:max-w-sm" },
16
+ md: { content: "sm:max-w-md" },
17
+ lg: { content: "sm:max-w-lg" },
18
+ xl: { content: "sm:max-w-2xl" }
19
+ } },
20
+ defaultVariants: { size: "md" }
21
+ });
22
+ //#endregion
23
+ export { t as dialogTheme };
@@ -0,0 +1,16 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/dropdown-menu.ts
3
+ var t = e({
4
+ slots: {
5
+ content: "z-50 min-w-40 overflow-hidden rounded-lg border border-border bg-background p-1 text-foreground shadow-lg outline-none data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
6
+ item: "flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
7
+ label: "px-2 py-1.5 text-xs font-medium text-muted-foreground",
8
+ separator: "-mx-1 my-1 h-px bg-border",
9
+ subTrigger: "flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0",
10
+ subContent: "z-50 min-w-40 overflow-hidden rounded-lg border border-border bg-background p-1 text-foreground shadow-lg outline-none data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in",
11
+ subTriggerIcon: "ml-auto"
12
+ },
13
+ variants: { danger: { true: { item: "text-danger data-[highlighted]:bg-danger-muted data-[highlighted]:text-danger-muted-foreground" } } }
14
+ });
15
+ //#endregion
16
+ export { t as dropdownMenuTheme };
@@ -0,0 +1,34 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/empty-state.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex flex-col items-center justify-center text-center",
6
+ icon: "text-muted-foreground",
7
+ title: "font-medium text-foreground",
8
+ description: "max-w-sm text-sm text-muted-foreground",
9
+ actions: "flex flex-wrap items-center justify-center gap-2"
10
+ },
11
+ variants: { size: {
12
+ sm: {
13
+ root: "gap-1.5 px-4 py-8",
14
+ icon: "[&_svg]:size-8",
15
+ title: "text-sm",
16
+ actions: "mt-2"
17
+ },
18
+ md: {
19
+ root: "gap-2 px-6 py-12",
20
+ icon: "[&_svg]:size-10",
21
+ title: "text-base",
22
+ actions: "mt-4"
23
+ },
24
+ lg: {
25
+ root: "gap-2.5 px-8 py-16",
26
+ icon: "[&_svg]:size-12",
27
+ title: "text-lg",
28
+ actions: "mt-6"
29
+ }
30
+ } },
31
+ defaultVariants: { size: "md" }
32
+ });
33
+ //#endregion
34
+ export { t as emptyStateTheme };
@@ -1,7 +1,7 @@
1
1
  import { tv as e } from "tailwind-variants";
2
2
  //#region src/theme/form.ts
3
3
  var t = e({ slots: {
4
- root: "space-y-1.5",
4
+ root: "space-y-2",
5
5
  header: "flex items-center justify-between gap-2",
6
6
  label: "",
7
7
  hint: "text-sm leading-none text-muted-foreground",
@@ -0,0 +1,49 @@
1
+ import { fieldBase as e } from "./input.js";
2
+ import { tv as t } from "tailwind-variants";
3
+ //#region src/theme/number-input.ts
4
+ var n = t({
5
+ slots: {
6
+ root: "relative inline-flex w-full items-stretch",
7
+ input: `flex w-full text-right tabular-nums ${e}`,
8
+ stepper: "absolute inset-y-px end-px flex flex-col justify-center overflow-hidden rounded-e-lg border-s border-border",
9
+ step: "flex flex-1 items-center justify-center px-1.5 text-muted-foreground transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-3"
10
+ },
11
+ variants: {
12
+ size: {
13
+ sm: {
14
+ input: "h-8 px-2.5 text-sm",
15
+ stepper: "w-5"
16
+ },
17
+ md: {
18
+ input: "h-9 px-3 text-sm",
19
+ stepper: "w-6"
20
+ },
21
+ lg: {
22
+ input: "h-10 px-4 text-base",
23
+ stepper: "w-7"
24
+ }
25
+ },
26
+ invalid: { true: { input: "border-red-500 focus-visible:ring-red-500/40" } },
27
+ withStepper: { true: {} }
28
+ },
29
+ compoundVariants: [
30
+ {
31
+ withStepper: !0,
32
+ size: "sm",
33
+ class: { input: "pe-7" }
34
+ },
35
+ {
36
+ withStepper: !0,
37
+ size: "md",
38
+ class: { input: "pe-8" }
39
+ },
40
+ {
41
+ withStepper: !0,
42
+ size: "lg",
43
+ class: { input: "pe-10" }
44
+ }
45
+ ],
46
+ defaultVariants: { size: "md" }
47
+ });
48
+ //#endregion
49
+ export { n as numberInputTheme };
@@ -0,0 +1,29 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/pagination.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex items-center gap-2",
6
+ list: "flex items-center gap-1",
7
+ item: "inline-flex items-center justify-center rounded-lg border border-transparent text-sm font-medium transition-[color,background-color,border-color,box-shadow] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4",
8
+ active: "bg-linear-to-b from-primary-from to-primary-to text-primary-foreground hover:brightness-110",
9
+ inactive: "text-foreground hover:bg-accent hover:text-accent-foreground",
10
+ ellipsis: "inline-flex items-center justify-center text-sm text-muted-foreground"
11
+ },
12
+ variants: { size: {
13
+ sm: {
14
+ item: "h-8 min-w-8 px-2",
15
+ ellipsis: "h-8 min-w-8"
16
+ },
17
+ md: {
18
+ item: "h-9 min-w-9 px-2.5",
19
+ ellipsis: "h-9 min-w-9"
20
+ },
21
+ lg: {
22
+ item: "h-10 min-w-10 px-3",
23
+ ellipsis: "h-10 min-w-10"
24
+ }
25
+ } },
26
+ defaultVariants: { size: "md" }
27
+ });
28
+ //#endregion
29
+ export { t as paginationTheme };
@@ -0,0 +1,33 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/progress.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex w-full flex-col gap-1.5",
6
+ header: "flex items-baseline justify-between gap-2 text-sm",
7
+ label: "font-medium text-foreground",
8
+ value: "text-muted-foreground tabular-nums",
9
+ track: "relative w-full overflow-hidden rounded-full bg-muted",
10
+ indicator: "h-full w-full flex-1 rounded-full transition-transform duration-300 ease-out"
11
+ },
12
+ variants: {
13
+ variant: {
14
+ primary: { indicator: "bg-linear-to-b from-primary-from to-primary-to" },
15
+ success: { indicator: "bg-success" },
16
+ warning: { indicator: "bg-warning" },
17
+ danger: { indicator: "bg-danger" },
18
+ info: { indicator: "bg-info" }
19
+ },
20
+ size: {
21
+ sm: { track: "h-1" },
22
+ md: { track: "h-2" },
23
+ lg: { track: "h-3" }
24
+ },
25
+ indeterminate: { true: { indicator: "w-1/3 animate-progress-indeterminate" } }
26
+ },
27
+ defaultVariants: {
28
+ variant: "primary",
29
+ size: "md"
30
+ }
31
+ });
32
+ //#endregion
33
+ export { t as progressTheme };
@@ -0,0 +1,22 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/separator.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex shrink-0 items-center",
6
+ line: "bg-border",
7
+ label: "shrink-0 text-xs text-muted-foreground"
8
+ },
9
+ variants: { orientation: {
10
+ horizontal: {
11
+ root: "w-full gap-3",
12
+ line: "h-px w-full"
13
+ },
14
+ vertical: {
15
+ root: "h-full flex-col gap-3",
16
+ line: "h-full w-px"
17
+ }
18
+ } },
19
+ defaultVariants: { orientation: "horizontal" }
20
+ });
21
+ //#endregion
22
+ export { t as separatorTheme };
@@ -0,0 +1,13 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/skeleton.ts
3
+ var t = e({
4
+ base: "animate-pulse bg-muted",
5
+ variants: { variant: {
6
+ text: "h-[1em] w-full rounded",
7
+ rect: "rounded-lg",
8
+ circle: "aspect-square rounded-full"
9
+ } },
10
+ defaultVariants: { variant: "rect" }
11
+ });
12
+ //#endregion
13
+ export { t as skeletonTheme };
@@ -0,0 +1,30 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/stat.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex flex-col gap-2",
6
+ label: "text-xs font-medium tracking-wide text-muted-foreground uppercase",
7
+ value: "font-semibold tracking-tight text-foreground tabular-nums",
8
+ delta: "inline-flex items-center gap-0.5 rounded-full px-2 py-0.5 text-xs font-medium tabular-nums has-[[data-icon=inline-end]]:pe-1 has-[[data-icon=inline-start]]:ps-1 [&_svg]:size-3.5",
9
+ hint: "text-xs text-muted-foreground",
10
+ row: "flex flex-col items-start gap-1.5"
11
+ },
12
+ variants: {
13
+ size: {
14
+ sm: { value: "text-2xl" },
15
+ md: { value: "text-3xl" },
16
+ lg: { value: "text-4xl" }
17
+ },
18
+ trend: {
19
+ up: { delta: "bg-success-muted text-success-muted-foreground" },
20
+ down: { delta: "bg-danger-muted text-danger-muted-foreground" },
21
+ neutral: { delta: "bg-muted text-muted-foreground" }
22
+ }
23
+ },
24
+ defaultVariants: {
25
+ size: "md",
26
+ trend: "neutral"
27
+ }
28
+ });
29
+ //#endregion
30
+ export { t as statTheme };
@@ -0,0 +1,25 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/stepper.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex w-full",
6
+ item: "group relative flex flex-1 items-center gap-3",
7
+ trigger: "flex items-center gap-3 rounded-lg text-left outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50",
8
+ indicator: "flex size-8 shrink-0 items-center justify-center rounded-full border border-border bg-linear-to-b text-sm font-medium transition-[color,border-color] group-data-[state=active]:border-primary group-data-[state=active]:from-primary-from group-data-[state=active]:to-primary-to group-data-[state=active]:text-primary-foreground group-data-[state=completed]:border-primary group-data-[state=completed]:from-primary-from group-data-[state=completed]:to-primary-to group-data-[state=completed]:text-primary-foreground [&_svg]:size-4",
9
+ content: "flex flex-col gap-0.5",
10
+ title: "text-sm font-medium text-foreground",
11
+ description: "text-xs text-muted-foreground",
12
+ separator: "h-px flex-1 bg-border group-data-[state=completed]:bg-primary"
13
+ },
14
+ variants: { orientation: {
15
+ horizontal: {},
16
+ vertical: {
17
+ root: "flex-col gap-2",
18
+ item: "flex-none items-start",
19
+ separator: "ml-4 h-6 w-px flex-none"
20
+ }
21
+ } },
22
+ defaultVariants: { orientation: "horizontal" }
23
+ });
24
+ //#endregion
25
+ export { t as stepperTheme };
@@ -0,0 +1,52 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/tabs.ts
3
+ var t = e({
4
+ slots: {
5
+ root: "flex flex-col gap-4",
6
+ list: "relative flex shrink-0 items-center gap-1",
7
+ indicator: "absolute left-0 transition-[translate,width,height] duration-200 ease-out",
8
+ trigger: "relative z-10 inline-flex items-center justify-center gap-2 text-sm font-medium whitespace-nowrap transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0",
9
+ content: "outline-none"
10
+ },
11
+ variants: {
12
+ variant: {
13
+ solid: {
14
+ list: "rounded-lg bg-muted p-1",
15
+ indicator: "top-1 h-[calc(100%---spacing(2))] rounded-md bg-background shadow-sm",
16
+ trigger: "rounded-md px-3 py-1.5 text-muted-foreground data-[state=active]:text-foreground"
17
+ },
18
+ line: {
19
+ list: "gap-4 border-b border-border",
20
+ indicator: "bottom-0 h-0.5 rounded-none bg-primary",
21
+ trigger: "rounded-none px-1 py-2 text-muted-foreground data-[state=active]:text-foreground"
22
+ }
23
+ },
24
+ orientation: {
25
+ horizontal: { indicator: "w-(--reka-tabs-indicator-size) translate-x-(--reka-tabs-indicator-position)" },
26
+ vertical: {
27
+ root: "flex-row",
28
+ list: "flex-col items-stretch",
29
+ indicator: "h-(--reka-tabs-indicator-size) translate-y-(--reka-tabs-indicator-position)"
30
+ }
31
+ }
32
+ },
33
+ compoundVariants: [{
34
+ variant: "solid",
35
+ orientation: "vertical",
36
+ class: { indicator: "top-0 left-1 w-[calc(100%---spacing(2))]" }
37
+ }, {
38
+ variant: "line",
39
+ orientation: "vertical",
40
+ class: {
41
+ list: "border-r border-b-0",
42
+ indicator: "right-0 bottom-auto h-(--reka-tabs-indicator-size) w-0.5",
43
+ trigger: "text-left"
44
+ }
45
+ }],
46
+ defaultVariants: {
47
+ variant: "solid",
48
+ orientation: "horizontal"
49
+ }
50
+ });
51
+ //#endregion
52
+ export { t as tabsTheme };
@@ -0,0 +1,53 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/toast.ts
3
+ var t = e({
4
+ slots: {
5
+ viewport: "fixed z-50 flex max-h-screen w-full flex-col gap-2 p-4 outline-none sm:max-w-sm",
6
+ root: "flex items-start gap-3 rounded-lg border p-4 shadow-lg data-[state=closed]:animate-fade-out data-[state=open]:animate-toast-in",
7
+ icon: "mt-0.5 shrink-0 [&_svg]:size-5",
8
+ content: "min-w-0 flex-1",
9
+ title: "text-sm font-medium",
10
+ description: "text-sm opacity-90",
11
+ action: "shrink-0 self-center rounded-md px-2 py-1 text-sm font-medium underline-offset-4 transition-colors outline-none hover:underline focus-visible:ring-2 focus-visible:ring-current/50",
12
+ close: "-m-1 shrink-0 self-start rounded-md p-1 opacity-70 transition-opacity outline-none hover:opacity-100 focus-visible:ring-2 focus-visible:ring-current/50 [&_svg]:size-4"
13
+ },
14
+ variants: {
15
+ variant: {
16
+ neutral: {
17
+ root: "border-border bg-background text-foreground",
18
+ icon: "text-muted-foreground"
19
+ },
20
+ success: {
21
+ root: "border-success-border bg-success-muted text-success-muted-foreground",
22
+ icon: "text-success"
23
+ },
24
+ warning: {
25
+ root: "border-warning-border bg-warning-muted text-warning-muted-foreground",
26
+ icon: "text-warning"
27
+ },
28
+ danger: {
29
+ root: "border-danger-border bg-danger-muted text-danger-muted-foreground",
30
+ icon: "text-danger"
31
+ },
32
+ info: {
33
+ root: "border-info-border bg-info-muted text-info-muted-foreground",
34
+ icon: "text-info"
35
+ }
36
+ },
37
+ position: {
38
+ "top-left": { viewport: "top-0 left-0" },
39
+ "top-center": { viewport: "top-0 left-1/2 -translate-x-1/2" },
40
+ "top-right": { viewport: "top-0 right-0" },
41
+ "bottom-left": { viewport: "bottom-0 left-0 flex-col-reverse" },
42
+ "bottom-center": { viewport: "bottom-0 left-1/2 -translate-x-1/2 flex-col-reverse" },
43
+ "bottom-right": { viewport: "right-0 bottom-0 flex-col-reverse" }
44
+ },
45
+ withTitle: { true: { description: "mt-1" } }
46
+ },
47
+ defaultVariants: {
48
+ variant: "neutral",
49
+ position: "bottom-right"
50
+ }
51
+ });
52
+ //#endregion
53
+ export { t as toastTheme };
@@ -0,0 +1,8 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ //#region src/theme/tooltip.ts
3
+ var t = e({ slots: {
4
+ content: "z-50 max-w-xs rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md data-[state=closed]:animate-fade-out data-[state=delayed-open]:animate-fade-in",
5
+ arrow: "fill-foreground"
6
+ } });
7
+ //#endregion
8
+ export { t as tooltipTheme };
@@ -0,0 +1,59 @@
1
+ export declare const breadcrumbTheme: import("tailwind-variants").TVReturnType<{
2
+ [key: string]: {
3
+ [key: string]: import("tailwind-variants").ClassValue | {
4
+ root?: import("tailwind-variants").ClassValue;
5
+ link?: import("tailwind-variants").ClassValue;
6
+ list?: import("tailwind-variants").ClassValue;
7
+ item?: import("tailwind-variants").ClassValue;
8
+ current?: import("tailwind-variants").ClassValue;
9
+ separator?: import("tailwind-variants").ClassValue;
10
+ };
11
+ };
12
+ } | {
13
+ [x: string]: {
14
+ [x: string]: import("tailwind-variants").ClassValue | {
15
+ root?: import("tailwind-variants").ClassValue;
16
+ link?: import("tailwind-variants").ClassValue;
17
+ list?: import("tailwind-variants").ClassValue;
18
+ item?: import("tailwind-variants").ClassValue;
19
+ current?: import("tailwind-variants").ClassValue;
20
+ separator?: import("tailwind-variants").ClassValue;
21
+ };
22
+ };
23
+ } | {}, {
24
+ root: string;
25
+ list: string;
26
+ item: string;
27
+ link: string;
28
+ /** The last crumb: current page, so not a link. */
29
+ current: string;
30
+ separator: string;
31
+ }, undefined, {
32
+ [key: string]: {
33
+ [key: string]: import("tailwind-variants").ClassValue | {
34
+ root?: import("tailwind-variants").ClassValue;
35
+ link?: import("tailwind-variants").ClassValue;
36
+ list?: import("tailwind-variants").ClassValue;
37
+ item?: import("tailwind-variants").ClassValue;
38
+ current?: import("tailwind-variants").ClassValue;
39
+ separator?: import("tailwind-variants").ClassValue;
40
+ };
41
+ };
42
+ } | {}, {
43
+ root: string;
44
+ list: string;
45
+ item: string;
46
+ link: string;
47
+ /** The last crumb: current page, so not a link. */
48
+ current: string;
49
+ separator: string;
50
+ }, import("tailwind-variants").TVReturnType<unknown, {
51
+ root: string;
52
+ list: string;
53
+ item: string;
54
+ link: string;
55
+ /** The last crumb: current page, so not a link. */
56
+ current: string;
57
+ separator: string;
58
+ }, undefined, unknown, unknown, undefined>>;
59
+ export type BreadcrumbSlots = keyof ReturnType<typeof breadcrumbTheme>;
@@ -0,0 +1,29 @@
1
+ export declare const buttonGroupTheme: import("tailwind-variants").TVReturnType<{
2
+ orientation: {
3
+ horizontal: string;
4
+ vertical: string;
5
+ };
6
+ /** Stretch to fill the container, splitting the width between children. */
7
+ block: {
8
+ true: string;
9
+ };
10
+ }, undefined, "isolate inline-flex [&>*]:relative [&>*:focus-visible]:z-10 [&>*:hover]:z-10", {
11
+ orientation: {
12
+ horizontal: string;
13
+ vertical: string;
14
+ };
15
+ /** Stretch to fill the container, splitting the width between children. */
16
+ block: {
17
+ true: string;
18
+ };
19
+ }, undefined, import("tailwind-variants").TVReturnType<{
20
+ orientation: {
21
+ horizontal: string;
22
+ vertical: string;
23
+ };
24
+ /** Stretch to fill the container, splitting the width between children. */
25
+ block: {
26
+ true: string;
27
+ };
28
+ }, undefined, "isolate inline-flex [&>*]:relative [&>*:focus-visible]:z-10 [&>*:hover]:z-10", unknown, unknown, undefined>>;
29
+ export type ButtonGroupVariants = Parameters<typeof buttonGroupTheme>[0];
@@ -12,10 +12,15 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
12
12
  lg: string;
13
13
  xl: string;
14
14
  };
15
+ /** Icon-only: square, no horizontal padding. */
16
+ square: {
17
+ true: string;
18
+ false: string;
19
+ };
15
20
  block: {
16
21
  true: string;
17
22
  };
18
- }, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-lg font-medium transition-all outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
23
+ }, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-lg border border-transparent font-medium transition-[color,background-color,border-color,box-shadow,opacity,filter,translate] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
19
24
  variant: {
20
25
  solid: string;
21
26
  outline: string;
@@ -29,6 +34,11 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
29
34
  lg: string;
30
35
  xl: string;
31
36
  };
37
+ /** Icon-only: square, no horizontal padding. */
38
+ square: {
39
+ true: string;
40
+ false: string;
41
+ };
32
42
  block: {
33
43
  true: string;
34
44
  };
@@ -46,8 +56,13 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
46
56
  lg: string;
47
57
  xl: string;
48
58
  };
59
+ /** Icon-only: square, no horizontal padding. */
60
+ square: {
61
+ true: string;
62
+ false: string;
63
+ };
49
64
  block: {
50
65
  true: string;
51
66
  };
52
- }, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-lg font-medium transition-all outline-none focus-visible:ring-2 focus-visible:ring-primary/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", unknown, unknown, undefined>>;
67
+ }, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-lg border border-transparent font-medium transition-[color,background-color,border-color,box-shadow,opacity,filter,translate] outline-none focus-visible:ring-2 focus-visible:ring-primary/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", unknown, unknown, undefined>>;
53
68
  export type ButtonVariants = Parameters<typeof buttonTheme>[0];