@gluhar/theme 2.0.0-dev.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 (206) hide show
  1. package/CHANGELOG.md +147 -0
  2. package/README.md +162 -0
  3. package/dist/module.cjs +5 -0
  4. package/dist/module.d.mts +13 -0
  5. package/dist/module.d.ts +13 -0
  6. package/dist/module.json +9 -0
  7. package/dist/module.mjs +34 -0
  8. package/dist/runtime/composables/useTheme.d.ts +10 -0
  9. package/dist/runtime/composables/useTheme.js +29 -0
  10. package/dist/runtime/fonts/object-sans/PPObjectSans-Heavy.otf +0 -0
  11. package/dist/runtime/fonts/object-sans/PPObjectSans-HeavySlanted.otf +0 -0
  12. package/dist/runtime/fonts/object-sans/PPObjectSans-Regular.otf +0 -0
  13. package/dist/runtime/fonts/object-sans/PPObjectSans-Slanted.otf +0 -0
  14. package/dist/runtime/fonts/object-sans/stylesheet.css +1 -0
  15. package/dist/runtime/presets/lara/accordion/index.d.ts +49 -0
  16. package/dist/runtime/presets/lara/accordion/index.js +78 -0
  17. package/dist/runtime/presets/lara/autocomplete/index.d.ts +200 -0
  18. package/dist/runtime/presets/lara/autocomplete/index.js +259 -0
  19. package/dist/runtime/presets/lara/avatar/index.d.ts +83 -0
  20. package/dist/runtime/presets/lara/avatar/index.js +43 -0
  21. package/dist/runtime/presets/lara/avatargroup/index.d.ts +7 -0
  22. package/dist/runtime/presets/lara/avatargroup/index.js +5 -0
  23. package/dist/runtime/presets/lara/badge/index.d.ts +72 -0
  24. package/dist/runtime/presets/lara/badge/index.js +43 -0
  25. package/dist/runtime/presets/lara/badgedirective/index.d.ts +50 -0
  26. package/dist/runtime/presets/lara/badgedirective/index.js +43 -0
  27. package/dist/runtime/presets/lara/blockui/index.d.ts +11 -0
  28. package/dist/runtime/presets/lara/blockui/index.js +8 -0
  29. package/dist/runtime/presets/lara/breadcrumb/index.d.ts +23 -0
  30. package/dist/runtime/presets/lara/breadcrumb/index.js +64 -0
  31. package/dist/runtime/presets/lara/button/index.d.ts +3790 -0
  32. package/dist/runtime/presets/lara/button/index.js +220 -0
  33. package/dist/runtime/presets/lara/calendar/index.d.ts +334 -0
  34. package/dist/runtime/presets/lara/calendar/index.js +643 -0
  35. package/dist/runtime/presets/lara/card/index.d.ts +27 -0
  36. package/dist/runtime/presets/lara/card/index.js +37 -0
  37. package/dist/runtime/presets/lara/carousel/index.d.ts +71 -0
  38. package/dist/runtime/presets/lara/carousel/index.js +149 -0
  39. package/dist/runtime/presets/lara/cascadeselect/index.d.ts +112 -0
  40. package/dist/runtime/presets/lara/cascadeselect/index.js +209 -0
  41. package/dist/runtime/presets/lara/checkbox/index.d.ts +45 -0
  42. package/dist/runtime/presets/lara/checkbox/index.js +101 -0
  43. package/dist/runtime/presets/lara/chip/index.d.ts +23 -0
  44. package/dist/runtime/presets/lara/chip/index.js +45 -0
  45. package/dist/runtime/presets/lara/chips/index.d.ts +56 -0
  46. package/dist/runtime/presets/lara/chips/index.js +114 -0
  47. package/dist/runtime/presets/lara/colorpicker/index.d.ts +51 -0
  48. package/dist/runtime/presets/lara/colorpicker/index.js +123 -0
  49. package/dist/runtime/presets/lara/confirmpopup/index.d.ts +39 -0
  50. package/dist/runtime/presets/lara/confirmpopup/index.js +106 -0
  51. package/dist/runtime/presets/lara/contextmenu/index.d.ts +72 -0
  52. package/dist/runtime/presets/lara/contextmenu/index.js +125 -0
  53. package/dist/runtime/presets/lara/datatable/index.d.ts +695 -0
  54. package/dist/runtime/presets/lara/datatable/index.js +1170 -0
  55. package/dist/runtime/presets/lara/dataview/index.d.ts +15 -0
  56. package/dist/runtime/presets/lara/dataview/index.js +40 -0
  57. package/dist/runtime/presets/lara/dataviewlayoutoptions/index.d.ts +13 -0
  58. package/dist/runtime/presets/lara/dataviewlayoutoptions/index.js +62 -0
  59. package/dist/runtime/presets/lara/deferred/index.d.ts +4 -0
  60. package/dist/runtime/presets/lara/deferred/index.js +3 -0
  61. package/dist/runtime/presets/lara/dialog/index.d.ts +79 -0
  62. package/dist/runtime/presets/lara/dialog/index.js +235 -0
  63. package/dist/runtime/presets/lara/divider/index.d.ts +192 -0
  64. package/dist/runtime/presets/lara/divider/index.js +67 -0
  65. package/dist/runtime/presets/lara/dock/index.d.ts +51 -0
  66. package/dist/runtime/presets/lara/dock/index.js +93 -0
  67. package/dist/runtime/presets/lara/dropdown/index.d.ts +207 -0
  68. package/dist/runtime/presets/lara/dropdown/index.js +265 -0
  69. package/dist/runtime/presets/lara/fieldset/index.d.ts +87 -0
  70. package/dist/runtime/presets/lara/fieldset/index.js +84 -0
  71. package/dist/runtime/presets/lara/fileupload/index.d.ts +70 -0
  72. package/dist/runtime/presets/lara/fileupload/index.js +173 -0
  73. package/dist/runtime/presets/lara/floatlabel/index.d.ts +7 -0
  74. package/dist/runtime/presets/lara/floatlabel/index.js +26 -0
  75. package/dist/runtime/presets/lara/galleria/index.d.ts +194 -0
  76. package/dist/runtime/presets/lara/galleria/index.js +306 -0
  77. package/dist/runtime/presets/lara/global.d.ts +4 -0
  78. package/dist/runtime/presets/lara/global.js +90 -0
  79. package/dist/runtime/presets/lara/iconfield/index.d.ts +18 -0
  80. package/dist/runtime/presets/lara/iconfield/index.js +22 -0
  81. package/dist/runtime/presets/lara/image/index.d.ts +65 -0
  82. package/dist/runtime/presets/lara/image/index.js +206 -0
  83. package/dist/runtime/presets/lara/index.d.ts +187 -0
  84. package/dist/runtime/presets/lara/index.js +207 -0
  85. package/dist/runtime/presets/lara/inlinemessage/index.d.ts +55 -0
  86. package/dist/runtime/presets/lara/inlinemessage/index.js +36 -0
  87. package/dist/runtime/presets/lara/inplace/index.d.ts +7 -0
  88. package/dist/runtime/presets/lara/inplace/index.js +27 -0
  89. package/dist/runtime/presets/lara/inputgroup/index.d.ts +7 -0
  90. package/dist/runtime/presets/lara/inputgroup/index.js +5 -0
  91. package/dist/runtime/presets/lara/inputgroupaddon/index.d.ts +7 -0
  92. package/dist/runtime/presets/lara/inputgroupaddon/index.js +28 -0
  93. package/dist/runtime/presets/lara/inputmask/index.d.ts +27 -0
  94. package/dist/runtime/presets/lara/inputmask/index.js +34 -0
  95. package/dist/runtime/presets/lara/inputnumber/index.d.ts +390 -0
  96. package/dist/runtime/presets/lara/inputnumber/index.js +164 -0
  97. package/dist/runtime/presets/lara/inputotp/index.d.ts +147 -0
  98. package/dist/runtime/presets/lara/inputotp/index.js +60 -0
  99. package/dist/runtime/presets/lara/inputswitch/index.d.ts +67 -0
  100. package/dist/runtime/presets/lara/inputswitch/index.js +80 -0
  101. package/dist/runtime/presets/lara/inputtext/index.d.ts +160 -0
  102. package/dist/runtime/presets/lara/inputtext/index.js +49 -0
  103. package/dist/runtime/presets/lara/knob/index.d.ts +22 -0
  104. package/dist/runtime/presets/lara/knob/index.js +44 -0
  105. package/dist/runtime/presets/lara/listbox/index.d.ts +93 -0
  106. package/dist/runtime/presets/lara/listbox/index.js +152 -0
  107. package/dist/runtime/presets/lara/megamenu/index.d.ts +105 -0
  108. package/dist/runtime/presets/lara/megamenu/index.js +199 -0
  109. package/dist/runtime/presets/lara/menu/index.d.ts +40 -0
  110. package/dist/runtime/presets/lara/menu/index.js +96 -0
  111. package/dist/runtime/presets/lara/menubar/index.d.ts +85 -0
  112. package/dist/runtime/presets/lara/menubar/index.js +176 -0
  113. package/dist/runtime/presets/lara/message/index.d.ts +70 -0
  114. package/dist/runtime/presets/lara/message/index.js +87 -0
  115. package/dist/runtime/presets/lara/metergroup/index.d.ts +92 -0
  116. package/dist/runtime/presets/lara/metergroup/index.js +97 -0
  117. package/dist/runtime/presets/lara/multiselect/index.d.ts +260 -0
  118. package/dist/runtime/presets/lara/multiselect/index.js +546 -0
  119. package/dist/runtime/presets/lara/orderlist/index.d.ts +99 -0
  120. package/dist/runtime/presets/lara/orderlist/index.js +257 -0
  121. package/dist/runtime/presets/lara/organizationchart/index.d.ts +81 -0
  122. package/dist/runtime/presets/lara/organizationchart/index.js +138 -0
  123. package/dist/runtime/presets/lara/overlaypanel/index.d.ts +17 -0
  124. package/dist/runtime/presets/lara/overlaypanel/index.js +40 -0
  125. package/dist/runtime/presets/lara/paginator/index.d.ts +280 -0
  126. package/dist/runtime/presets/lara/paginator/index.js +533 -0
  127. package/dist/runtime/presets/lara/panel/index.d.ts +39 -0
  128. package/dist/runtime/presets/lara/panel/index.js +91 -0
  129. package/dist/runtime/presets/lara/panelmenu/index.d.ts +76 -0
  130. package/dist/runtime/presets/lara/panelmenu/index.js +127 -0
  131. package/dist/runtime/presets/lara/password/index.d.ts +181 -0
  132. package/dist/runtime/presets/lara/password/index.js +118 -0
  133. package/dist/runtime/presets/lara/picklist/index.d.ts +245 -0
  134. package/dist/runtime/presets/lara/picklist/index.js +650 -0
  135. package/dist/runtime/presets/lara/progressbar/index.d.ts +44 -0
  136. package/dist/runtime/presets/lara/progressbar/index.js +55 -0
  137. package/dist/runtime/presets/lara/progressspinner/index.d.ts +15 -0
  138. package/dist/runtime/presets/lara/progressspinner/index.js +51 -0
  139. package/dist/runtime/presets/lara/radiobutton/index.d.ts +57 -0
  140. package/dist/runtime/presets/lara/radiobutton/index.js +104 -0
  141. package/dist/runtime/presets/lara/rating/index.d.ts +49 -0
  142. package/dist/runtime/presets/lara/rating/index.js +92 -0
  143. package/dist/runtime/presets/lara/ripple/index.d.ts +8 -0
  144. package/dist/runtime/presets/lara/ripple/index.js +6 -0
  145. package/dist/runtime/presets/lara/scrollpanel/index.d.ts +19 -0
  146. package/dist/runtime/presets/lara/scrollpanel/index.js +77 -0
  147. package/dist/runtime/presets/lara/scrolltop/index.d.ts +50 -0
  148. package/dist/runtime/presets/lara/scrolltop/index.js +41 -0
  149. package/dist/runtime/presets/lara/selectbutton/index.d.ts +56 -0
  150. package/dist/runtime/presets/lara/selectbutton/index.js +49 -0
  151. package/dist/runtime/presets/lara/sidebar/index.d.ts +66 -0
  152. package/dist/runtime/presets/lara/sidebar/index.js +149 -0
  153. package/dist/runtime/presets/lara/skeleton/index.d.ts +16 -0
  154. package/dist/runtime/presets/lara/skeleton/index.js +16 -0
  155. package/dist/runtime/presets/lara/slider/index.d.ts +55 -0
  156. package/dist/runtime/presets/lara/slider/index.js +137 -0
  157. package/dist/runtime/presets/lara/speeddial/index.d.ts +3091 -0
  158. package/dist/runtime/presets/lara/speeddial/index.js +283 -0
  159. package/dist/runtime/presets/lara/splitbutton/index.d.ts +6749 -0
  160. package/dist/runtime/presets/lara/splitbutton/index.js +502 -0
  161. package/dist/runtime/presets/lara/splitter/index.d.ts +30 -0
  162. package/dist/runtime/presets/lara/splitter/index.js +61 -0
  163. package/dist/runtime/presets/lara/splitterpanel/index.d.ts +10 -0
  164. package/dist/runtime/presets/lara/splitterpanel/index.js +5 -0
  165. package/dist/runtime/presets/lara/stepper/index.d.ts +66 -0
  166. package/dist/runtime/presets/lara/stepper/index.js +161 -0
  167. package/dist/runtime/presets/lara/steps/index.d.ts +57 -0
  168. package/dist/runtime/presets/lara/steps/index.js +111 -0
  169. package/dist/runtime/presets/lara/tabmenu/index.d.ts +43 -0
  170. package/dist/runtime/presets/lara/tabmenu/index.js +73 -0
  171. package/dist/runtime/presets/lara/tabview/index.d.ts +67 -0
  172. package/dist/runtime/presets/lara/tabview/index.js +156 -0
  173. package/dist/runtime/presets/lara/tag/index.d.ts +32 -0
  174. package/dist/runtime/presets/lara/tag/index.js +36 -0
  175. package/dist/runtime/presets/lara/terminal/index.d.ts +27 -0
  176. package/dist/runtime/presets/lara/terminal/index.js +60 -0
  177. package/dist/runtime/presets/lara/textarea/index.d.ts +27 -0
  178. package/dist/runtime/presets/lara/textarea/index.js +36 -0
  179. package/dist/runtime/presets/lara/tieredmenu/index.d.ts +56 -0
  180. package/dist/runtime/presets/lara/tieredmenu/index.js +120 -0
  181. package/dist/runtime/presets/lara/timeline/index.d.ts +84 -0
  182. package/dist/runtime/presets/lara/timeline/index.js +81 -0
  183. package/dist/runtime/presets/lara/toast/index.d.ts +92 -0
  184. package/dist/runtime/presets/lara/toast/index.js +102 -0
  185. package/dist/runtime/presets/lara/togglebutton/index.d.ts +72 -0
  186. package/dist/runtime/presets/lara/togglebutton/index.js +91 -0
  187. package/dist/runtime/presets/lara/toolbar/index.d.ts +19 -0
  188. package/dist/runtime/presets/lara/toolbar/index.js +28 -0
  189. package/dist/runtime/presets/lara/tooltip/index.d.ts +38 -0
  190. package/dist/runtime/presets/lara/tooltip/index.js +46 -0
  191. package/dist/runtime/presets/lara/tree/index.d.ts +105 -0
  192. package/dist/runtime/presets/lara/tree/index.js +258 -0
  193. package/dist/runtime/presets/lara/treeselect/index.d.ts +181 -0
  194. package/dist/runtime/presets/lara/treeselect/index.js +352 -0
  195. package/dist/runtime/presets/lara/treetable/index.d.ts +316 -0
  196. package/dist/runtime/presets/lara/treetable/index.js +434 -0
  197. package/dist/runtime/presets/lara/tristatecheckbox/index.d.ts +49 -0
  198. package/dist/runtime/presets/lara/tristatecheckbox/index.js +104 -0
  199. package/dist/runtime/styles/core.css +27 -0
  200. package/dist/runtime/tailwind/gluharTheme.d.ts +3 -0
  201. package/dist/runtime/tailwind/gluharTheme.js +52 -0
  202. package/dist/runtime/tailwind/handleTailwind.d.ts +3 -0
  203. package/dist/runtime/tailwind/handleTailwind.js +22 -0
  204. package/dist/types.d.mts +7 -0
  205. package/dist/types.d.ts +7 -0
  206. package/package.json +56 -0
@@ -0,0 +1,283 @@
1
+ export default {
2
+ root: {
3
+ class: 'absolute flex'
4
+ },
5
+ button: {
6
+ root: ({ props, context, parent }) => ({
7
+ class: [
8
+ 'relative',
9
+ 'z-20',
10
+
11
+ // Alignments
12
+ 'items-center inline-flex text-center align-bottom justify-center',
13
+
14
+ // Sizes & Spacing
15
+ 'leading-[normal]',
16
+ 'w-16 h-16 p-0 py-3',
17
+
18
+ // Shapes
19
+ 'rounded-full',
20
+ 'shadow-md',
21
+
22
+ // Link Button
23
+ { 'text-primary-600 bg-transparent border-transparent': props.link },
24
+
25
+ // Plain Button
26
+ { 'text-white bg-gray-500 border border-gray-500': props.plain && !props.outlined && !props.text },
27
+ // Plain Text Button
28
+ { 'text-surface-500': props.plain && props.text },
29
+ // Plain Outlined Button
30
+ { 'text-surface-500 border border-gray-500': props.plain && props.outlined },
31
+
32
+ // Text Button
33
+ { 'bg-transparent border-transparent': props.text && !props.plain },
34
+
35
+ // Outlined Button
36
+ { 'bg-transparent border': props.outlined && !props.plain },
37
+
38
+ // --- Severity Buttons ---
39
+
40
+ // Primary Button
41
+ {
42
+ 'text-white dark:text-surface-900': !props.link && props.severity === null && !props.text && !props.outlined && !props.plain,
43
+ 'bg-primary-500 dark:bg-primary-400': !props.link && props.severity === null && !props.text && !props.outlined && !props.plain,
44
+ 'border border-primary-500 dark:border-primary-400': !props.link && props.severity === null && !props.text && !props.outlined && !props.plain
45
+ },
46
+ // Primary Text Button
47
+ { 'text-primary-500 dark:text-primary-400': props.text && props.severity === null && !props.plain },
48
+ // Primary Outlined Button
49
+ { 'text-primary-500 border border-primary-500 hover:bg-primary-300/20': props.outlined && props.severity === null && !props.plain },
50
+
51
+ // Secondary Button
52
+ {
53
+ 'text-white dark:text-surface-900': props.severity === 'secondary' && !props.text && !props.outlined && !props.plain,
54
+ 'bg-surface-500 dark:bg-surface-400': props.severity === 'secondary' && !props.text && !props.outlined && !props.plain,
55
+ 'border border-surface-500 dark:border-surface-400': props.severity === 'secondary' && !props.text && !props.outlined && !props.plain
56
+ },
57
+ // Secondary Text Button
58
+ { 'text-surface-500 dark:text-surface-300': props.text && props.severity === 'secondary' && !props.plain },
59
+ // Secondary Outlined Button
60
+ { 'text-surface-500 dark:text-surface-300 border border-surface-500 hover:bg-surface-300/20': props.outlined && props.severity === 'secondary' && !props.plain },
61
+
62
+ // Success Button
63
+ {
64
+ 'text-white dark:text-green-900': props.severity === 'success' && !props.text && !props.outlined && !props.plain,
65
+ 'bg-green-500 dark:bg-green-400': props.severity === 'success' && !props.text && !props.outlined && !props.plain,
66
+ 'border border-green-500 dark:border-green-400': props.severity === 'success' && !props.text && !props.outlined && !props.plain
67
+ },
68
+ // Success Text Button
69
+ { 'text-green-500 dark:text-green-400': props.text && props.severity === 'success' && !props.plain },
70
+ // Success Outlined Button
71
+ { 'text-green-500 border border-green-500 hover:bg-green-300/20': props.outlined && props.severity === 'success' && !props.plain },
72
+
73
+ // Info Button
74
+ {
75
+ 'text-white dark:text-surface-900': props.severity === 'info' && !props.text && !props.outlined && !props.plain,
76
+ 'bg-blue-500 dark:bg-blue-400': props.severity === 'info' && !props.text && !props.outlined && !props.plain,
77
+ 'border border-blue-500 dark:border-blue-400': props.severity === 'info' && !props.text && !props.outlined && !props.plain
78
+ },
79
+ // Info Text Button
80
+ { 'text-blue-500 dark:text-blue-400': props.text && props.severity === 'info' && !props.plain },
81
+ // Info Outlined Button
82
+ { 'text-blue-500 border border-blue-500 hover:bg-blue-300/20 ': props.outlined && props.severity === 'info' && !props.plain },
83
+
84
+ // Warning Button
85
+ {
86
+ 'text-white dark:text-surface-900': props.severity === 'warning' && !props.text && !props.outlined && !props.plain,
87
+ 'bg-orange-500 dark:bg-orange-400': props.severity === 'warning' && !props.text && !props.outlined && !props.plain,
88
+ 'border border-orange-500 dark:border-orange-400': props.severity === 'warning' && !props.text && !props.outlined && !props.plain
89
+ },
90
+ // Warning Text Button
91
+ { 'text-orange-500 dark:text-orange-400': props.text && props.severity === 'warning' && !props.plain },
92
+ // Warning Outlined Button
93
+ { 'text-orange-500 border border-orange-500 hover:bg-orange-300/20': props.outlined && props.severity === 'warning' && !props.plain },
94
+
95
+ // Help Button
96
+ {
97
+ 'text-white dark:text-surface-900': props.severity === 'help' && !props.text && !props.outlined && !props.plain,
98
+ 'bg-purple-500 dark:bg-purple-400': props.severity === 'help' && !props.text && !props.outlined && !props.plain,
99
+ 'border border-purple-500 dark:border-purple-400': props.severity === 'help' && !props.text && !props.outlined && !props.plain
100
+ },
101
+ // Help Text Button
102
+ { 'text-purple-500 dark:text-purple-400': props.text && props.severity === 'help' && !props.plain },
103
+ // Help Outlined Button
104
+ { 'text-purple-500 border border-purple-500 hover:bg-purple-300/20': props.outlined && props.severity === 'help' && !props.plain },
105
+
106
+ // Danger Button
107
+ {
108
+ 'text-white dark:text-surface-900': props.severity === 'danger' && !props.text && !props.outlined && !props.plain,
109
+ 'bg-red-500 dark:bg-red-400': props.severity === 'danger' && !props.text && !props.outlined && !props.plain,
110
+ 'border border-red-500 dark:border-red-400': props.severity === 'danger' && !props.text && !props.outlined && !props.plain
111
+ },
112
+ // Danger Text Button
113
+ { 'text-red-500 dark:text-red-400': props.text && props.severity === 'danger' && !props.plain },
114
+ // Danger Outlined Button
115
+ { 'text-red-500 border border-red-500 hover:bg-red-300/20': props.outlined && props.severity === 'danger' && !props.plain },
116
+
117
+ // --- Severity Button States ---
118
+ 'focus:outline-none focus:outline-offset-0 focus:ring',
119
+
120
+ // Link
121
+ { 'focus:ring-primary-400/50 dark:focus:ring-primary-300/50': props.link },
122
+
123
+ // Plain
124
+ { 'hover:bg-gray-600 hover:border-gray-600': props.plain && !props.outlined && !props.text },
125
+ // Text & Outlined Button
126
+ { 'hover:bg-surface-300/20': props.plain && (props.text || props.outlined) },
127
+
128
+ // Primary
129
+ { 'hover:bg-primary-600 dark:hover:bg-primary-300 hover:border-primary-600 dark:hover:border-primary-300': !props.link && props.severity === null && !props.text && !props.outlined && !props.plain },
130
+ { 'focus:ring-primary-400/50 dark:focus:ring-primary-300/50': props.severity === null },
131
+ // Text & Outlined Button
132
+ { 'hover:bg-primary-300/20': (props.text || props.outlined) && props.severity === null && !props.plain },
133
+
134
+ // Secondary
135
+ { 'hover:bg-surface-600 dark:hover:bg-surface-300 hover:border-surface-600 dark:hover:border-surface-300': props.severity === 'secondary' && !props.text && !props.outlined && !props.plain },
136
+ { 'focus:ring-surface-400/50 dark:focus:ring-surface-300/50': props.severity === 'secondary' },
137
+ // Text & Outlined Button
138
+ { 'hover:bg-surface-300/20': (props.text || props.outlined) && props.severity === 'secondary' && !props.plain },
139
+
140
+ // Success
141
+ { 'hover:bg-green-600 dark:hover:bg-green-300 hover:border-green-600 dark:hover:border-green-300': props.severity === 'success' && !props.text && !props.outlined && !props.plain },
142
+ { 'focus:ring-green-400/50 dark:focus:ring-green-300/50': props.severity === 'success' },
143
+ // Text & Outlined Button
144
+ { 'hover:bg-green-300/20': (props.text || props.outlined) && props.severity === 'success' && !props.plain },
145
+
146
+ // Info
147
+ { 'hover:bg-blue-600 dark:hover:bg-blue-300 hover:border-blue-600 dark:hover:border-blue-300': props.severity === 'info' && !props.text && !props.outlined && !props.plain },
148
+ { 'focus:ring-blue-400/50 dark:focus:ring-blue-300/50': props.severity === 'info' },
149
+ // Text & Outlined Button
150
+ { 'hover:bg-blue-300/20': (props.text || props.outlined) && props.severity === 'info' && !props.plain },
151
+
152
+ // Warning
153
+ { 'hover:bg-orange-600 dark:hover:bg-orange-300 hover:border-orange-600 dark:hover:border-orange-300': props.severity === 'warning' && !props.text && !props.outlined && !props.plain },
154
+ { 'focus:ring-orange-400/50 dark:focus:ring-orange-300/50': props.severity === 'warning' },
155
+ // Text & Outlined Button
156
+ { 'hover:bg-orange-300/20': (props.text || props.outlined) && props.severity === 'warning' && !props.plain },
157
+
158
+ // Help
159
+ { 'hover:bg-purple-600 dark:hover:bg-purple-300 hover:border-purple-600 dark:hover:border-purple-300': props.severity === 'help' && !props.text && !props.outlined && !props.plain },
160
+ { 'focus:ring-purple-400/50 dark:focus:ring-purple-300/50': props.severity === 'help' },
161
+ // Text & Outlined Button
162
+ { 'hover:bg-purple-300/20': (props.text || props.outlined) && props.severity === 'help' && !props.plain },
163
+
164
+ // Danger
165
+ { 'hover:bg-red-600 dark:hover:bg-red-300 hover:border-red-600 dark:hover:border-red-300': props.severity === 'danger' && !props.text && !props.outlined && !props.plain },
166
+ { 'focus:ring-red-400/50 dark:focus:ring-red-300/50': props.severity === 'danger' },
167
+ // Text & Outlined Button
168
+ { 'hover:bg-red-300/20': (props.text || props.outlined) && props.severity === 'danger' && !props.plain },
169
+
170
+ // Disabled
171
+ { 'opacity-60 pointer-events-none cursor-default': context.disabled },
172
+
173
+ // Transitions
174
+ 'transition duration-200 ease-in-out',
175
+ parent.state.d_visible ? 'rotate-45' : 'rotate-0',
176
+
177
+ // Misc
178
+ 'cursor-pointer overflow-hidden select-none'
179
+ ]
180
+ }),
181
+ label: ({ props }) => ({
182
+ class: [
183
+ 'duration-200',
184
+ 'font-bold',
185
+ {
186
+ 'hover:underline': props.link
187
+ },
188
+ { 'flex-1': props.label !== null, 'invisible w-0': props.label == null }
189
+ ]
190
+ }),
191
+ icon: ({ props }) => ({
192
+ class: [
193
+ 'mx-0',
194
+ {
195
+ 'mr-2': props.iconPos == 'left' && props.label != null,
196
+ 'ml-2 order-1': props.iconPos == 'right' && props.label != null,
197
+ 'mb-2': props.iconPos == 'top' && props.label != null,
198
+ 'mt-2': props.iconPos == 'bottom' && props.label != null
199
+ }
200
+ ]
201
+ }),
202
+ loadingicon: ({ props }) => ({
203
+ class: [
204
+ 'h-4 w-4',
205
+ 'mx-0',
206
+ {
207
+ 'mr-2': props.iconPos == 'left' && props.label != null,
208
+ 'ml-2 order-1': props.iconPos == 'right' && props.label != null,
209
+ 'mb-2': props.iconPos == 'top' && props.label != null,
210
+ 'mt-2': props.iconPos == 'bottom' && props.label != null
211
+ },
212
+ 'animate-spin'
213
+ ]
214
+ }),
215
+ badge: ({ props }) => ({
216
+ class: [{ 'ml-2 w-4 h-4 leading-none flex items-center justify-center': props.badge }]
217
+ })
218
+ },
219
+ menu: {
220
+ class: [
221
+ // Spacing
222
+ 'm-0 p-0',
223
+
224
+ // Layout & Flexbox
225
+ 'list-none flex items-center justify-center',
226
+
227
+ // Transitions
228
+ 'transition delay-200',
229
+
230
+ // Z-Index (Positioning)
231
+ 'z-20'
232
+ ]
233
+ },
234
+ menuitem: ({ props, context }) => ({
235
+ class: [
236
+ 'transform transition-transform duration-200 ease-out transition-opacity duration-800',
237
+
238
+ // Conditional Appearance
239
+ context.hidden ? 'opacity-0 scale-0' : 'opacity-100 scale-100',
240
+
241
+ // Conditional Spacing
242
+ {
243
+ 'my-1 first:mb-2': props.direction == 'up' && props.type == 'linear',
244
+ 'my-1 first:mt-2': props.direction == 'down' && props.type == 'linear',
245
+ 'mx-1 first:mr-2': props.direction == 'left' && props.type == 'linear',
246
+ 'mx-1 first:ml-2': props.direction == 'right' && props.type == 'linear'
247
+ },
248
+
249
+ // Conditional Positioning
250
+ { absolute: props.type !== 'linear' }
251
+ ]
252
+ }),
253
+ action: {
254
+ class: [
255
+ // Flexbox & Alignment
256
+ 'flex items-center justify-center',
257
+
258
+ // Size
259
+ 'w-12 h-12',
260
+
261
+ // Shape
262
+ 'rounded-full relative overflow-hidden',
263
+
264
+ // Appearance
265
+ 'bg-surface-600 dark:bg-surface-0/80 text-white dark:text-surface-900/80',
266
+
267
+ // Hover Effects
268
+ 'hover:bg-surface-700 dark:hover:bg-surface-200/80'
269
+ ]
270
+ },
271
+ mask: ({ state }) => ({
272
+ class: [
273
+ // Base Styles
274
+ 'absolute left-0 top-0 w-full h-full transition-opacity duration-250 ease-in-out bg-black/40 z-0',
275
+
276
+ // Conditional Appearance
277
+ {
278
+ 'opacity-0 pointer-events-none': !state.d_visible,
279
+ 'opacity-100 transition-opacity duration-400 ease-in-out': state.d_visible
280
+ }
281
+ ]
282
+ })
283
+ };