@astrake/lumora-ui 0.2.0 → 0.2.2

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 (187) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/dist/LuCodeBlock.vue_vue_type_script_setup_true_lang-BdXflBkJ.js +1672 -0
  3. package/dist/LuEmbeddedStatusBar.vue_vue_type_script_setup_true_lang-D4rqklgo.js +218 -0
  4. package/dist/LuOverlay.vue_vue_type_script_setup_true_lang-C5jhqCgy.js +221 -0
  5. package/dist/components/LuAlert.vue.d.ts +20 -0
  6. package/dist/components/LuAvatar.vue.d.ts +19 -0
  7. package/dist/components/LuBadge.vue.d.ts +16 -0
  8. package/dist/components/LuBreadcrumb.vue.d.ts +16 -0
  9. package/dist/components/LuButton.vue.d.ts +24 -0
  10. package/dist/components/LuCard.vue.d.ts +18 -0
  11. package/dist/components/LuCheckbox.vue.d.ts +27 -0
  12. package/dist/components/LuCodeBlock.vue.d.ts +26 -0
  13. package/dist/components/LuCollapsible.vue.d.ts +25 -0
  14. package/dist/components/LuDivider.vue.d.ts +8 -0
  15. package/dist/components/LuForm.types.d.ts +18 -0
  16. package/dist/components/LuForm.vue.d.ts +55 -0
  17. package/dist/components/LuIcon.vue.d.ts +18 -0
  18. package/dist/components/LuInput.vue.d.ts +26 -0
  19. package/dist/components/LuLink.vue.d.ts +23 -0
  20. package/dist/components/LuMenu.vue.d.ts +26 -0
  21. package/dist/components/LuMenuItem.vue.d.ts +20 -0
  22. package/dist/components/LuModal.vue.d.ts +32 -0
  23. package/dist/components/LuPageHeader.vue.d.ts +10 -0
  24. package/dist/components/LuPagination.vue.d.ts +18 -0
  25. package/dist/components/LuProgressBar.vue.d.ts +7 -0
  26. package/dist/components/LuRadio.vue.d.ts +18 -0
  27. package/dist/components/LuRadioGroup.types.d.ts +8 -0
  28. package/dist/components/LuRadioGroup.vue.d.ts +24 -0
  29. package/dist/components/LuSelect.vue.d.ts +18 -0
  30. package/dist/components/LuSkeleton.vue.d.ts +5 -0
  31. package/dist/components/LuSpinner.vue.d.ts +5 -0
  32. package/dist/components/LuSwitch.vue.d.ts +15 -0
  33. package/dist/components/LuTab.vue.d.ts +16 -0
  34. package/dist/components/LuTabList.vue.d.ts +15 -0
  35. package/dist/components/LuTabPanel.vue.d.ts +16 -0
  36. package/dist/components/LuTable.vue.d.ts +15 -0
  37. package/dist/components/LuTableBody.vue.d.ts +15 -0
  38. package/dist/components/LuTableCell.vue.d.ts +15 -0
  39. package/dist/components/LuTableHead.vue.d.ts +15 -0
  40. package/dist/components/LuTableHeadCell.vue.d.ts +15 -0
  41. package/dist/components/LuTableRow.vue.d.ts +15 -0
  42. package/dist/components/LuTabs.vue.d.ts +20 -0
  43. package/dist/components/LuTag.vue.d.ts +20 -0
  44. package/dist/components/LuText.vue.d.ts +16 -0
  45. package/dist/components/LuTextarea.vue.d.ts +14 -0
  46. package/dist/components/LuThemeSelect.vue.d.ts +2 -0
  47. package/dist/components/LuThemeSwitch.vue.d.ts +2 -0
  48. package/dist/components/LuToggleButton.vue.d.ts +16 -0
  49. package/dist/components/LuToggleGroup.vue.d.ts +20 -0
  50. package/dist/components/LuTooltip.vue.d.ts +19 -0
  51. package/dist/components/__tests__/LuForm.test.d.ts +1 -0
  52. package/dist/components/_all.d.ts +3 -0
  53. package/dist/components/index.js +47 -0
  54. package/{src/composables/index.ts → dist/composables/index.d.ts} +1 -1
  55. package/dist/composables/index.js +31 -0
  56. package/dist/composables/useRail.d.ts +6 -0
  57. package/dist/composables/useShiki.d.ts +2 -0
  58. package/dist/composables/useSplit.d.ts +4 -0
  59. package/dist/composables/useTheme.d.ts +7 -0
  60. package/dist/context-CGS7Ou_x.js +36 -0
  61. package/dist/context.d.ts +8 -0
  62. package/{src/index.ts → dist/index.d.ts} +0 -1
  63. package/dist/index.js +166 -0
  64. package/dist/layout/LuDock.vue.d.ts +9 -0
  65. package/dist/layout/LuDockItem.vue.d.ts +16 -0
  66. package/dist/layout/LuFill.vue.d.ts +18 -0
  67. package/dist/layout/LuFixed.vue.d.ts +18 -0
  68. package/dist/layout/LuGrid.vue.d.ts +22 -0
  69. package/dist/layout/LuOverlay.vue.d.ts +15 -0
  70. package/dist/layout/LuScroll.vue.d.ts +15 -0
  71. package/dist/layout/LuSplit.vue.d.ts +16 -0
  72. package/dist/layout/LuSplitPane.vue.d.ts +18 -0
  73. package/dist/layout/LuSplitResizer.vue.d.ts +5 -0
  74. package/dist/layout/LuStack.vue.d.ts +25 -0
  75. package/{src/layout/index.ts → dist/layout/index.d.ts} +1 -14
  76. package/dist/layout/index.js +14 -0
  77. package/dist/plugin.d.ts +6 -0
  78. package/dist/shell/desktop/LuDesktopRailBar.vue.d.ts +17 -0
  79. package/dist/shell/desktop/LuDesktopRailItem.vue.d.ts +18 -0
  80. package/dist/shell/desktop/LuDesktopShell.vue.d.ts +23 -0
  81. package/dist/shell/desktop/LuDesktopSidebar.vue.d.ts +21 -0
  82. package/dist/shell/desktop/LuDesktopStatusBar.vue.d.ts +15 -0
  83. package/dist/shell/desktop/LuDesktopTopBar.vue.d.ts +15 -0
  84. package/dist/shell/embedded/LuEmbeddedShell.vue.d.ts +19 -0
  85. package/dist/shell/embedded/LuEmbeddedStatusBar.vue.d.ts +17 -0
  86. package/dist/shell/embedded/LuEmbeddedTopBar.vue.d.ts +19 -0
  87. package/{src/shell/index.ts → dist/shell/index.d.ts} +0 -1
  88. package/dist/shell/index.js +15 -0
  89. package/dist/shell/mobile/LuMobileHeader.vue.d.ts +19 -0
  90. package/dist/shell/mobile/LuMobileNavBar.vue.d.ts +15 -0
  91. package/dist/shell/mobile/LuMobileShell.vue.d.ts +21 -0
  92. package/dist/skins/components.d.ts +2 -0
  93. package/dist/skins/default.d.ts +2 -0
  94. package/dist/skins/index.js +446 -0
  95. package/dist/skins/layout.d.ts +2 -0
  96. package/dist/skins/shell/desktop.d.ts +2 -0
  97. package/dist/skins/shell/embedded.d.ts +2 -0
  98. package/dist/skins/shell/mobile.d.ts +2 -0
  99. package/dist/tailwind.d.ts +1 -0
  100. package/dist/tailwind.js +13 -0
  101. package/dist/types.d.ts +15 -0
  102. package/dist/useShiki-DPOJfneq.js +30 -0
  103. package/dist/utils.d.ts +10 -0
  104. package/package.json +37 -12
  105. package/src/lumora.css +32 -0
  106. package/src/components/LuAlert.vue +0 -33
  107. package/src/components/LuAvatar.vue +0 -22
  108. package/src/components/LuBadge.vue +0 -15
  109. package/src/components/LuBreadcrumb.vue +0 -63
  110. package/src/components/LuButton.vue +0 -58
  111. package/src/components/LuCard.vue +0 -27
  112. package/src/components/LuCheckbox.vue +0 -94
  113. package/src/components/LuCodeBlock.vue +0 -168
  114. package/src/components/LuCollapsible.vue +0 -34
  115. package/src/components/LuDivider.vue +0 -18
  116. package/src/components/LuForm.types.ts +0 -24
  117. package/src/components/LuForm.vue +0 -121
  118. package/src/components/LuIcon.vue +0 -39
  119. package/src/components/LuInput.vue +0 -82
  120. package/src/components/LuLink.vue +0 -47
  121. package/src/components/LuMenu.vue +0 -86
  122. package/src/components/LuMenuItem.vue +0 -37
  123. package/src/components/LuModal.vue +0 -115
  124. package/src/components/LuPageHeader.vue +0 -24
  125. package/src/components/LuPagination.vue +0 -118
  126. package/src/components/LuProgressBar.vue +0 -21
  127. package/src/components/LuRadio.vue +0 -55
  128. package/src/components/LuRadioGroup.types.ts +0 -10
  129. package/src/components/LuRadioGroup.vue +0 -66
  130. package/src/components/LuSelect.vue +0 -67
  131. package/src/components/LuSkeleton.vue +0 -15
  132. package/src/components/LuSpinner.vue +0 -36
  133. package/src/components/LuSwitch.vue +0 -76
  134. package/src/components/LuTab.vue +0 -26
  135. package/src/components/LuTabList.vue +0 -15
  136. package/src/components/LuTabPanel.vue +0 -19
  137. package/src/components/LuTable.vue +0 -15
  138. package/src/components/LuTableBody.vue +0 -15
  139. package/src/components/LuTableCell.vue +0 -15
  140. package/src/components/LuTableHead.vue +0 -15
  141. package/src/components/LuTableHeadCell.vue +0 -15
  142. package/src/components/LuTableRow.vue +0 -15
  143. package/src/components/LuTabs.vue +0 -30
  144. package/src/components/LuTag.vue +0 -35
  145. package/src/components/LuText.vue +0 -18
  146. package/src/components/LuTextarea.vue +0 -62
  147. package/src/components/LuThemeSelect.vue +0 -26
  148. package/src/components/LuThemeSwitch.vue +0 -22
  149. package/src/components/LuToggleButton.vue +0 -35
  150. package/src/components/LuToggleGroup.vue +0 -27
  151. package/src/components/LuTooltip.vue +0 -36
  152. package/src/components/__tests__/LuForm.test.ts +0 -206
  153. package/src/composables/useRail.ts +0 -24
  154. package/src/composables/useSplit.ts +0 -17
  155. package/src/composables/useTheme.ts +0 -36
  156. package/src/context.ts +0 -39
  157. package/src/layout/LuDock.vue +0 -56
  158. package/src/layout/LuDockItem.vue +0 -20
  159. package/src/layout/LuFill.vue +0 -27
  160. package/src/layout/LuFixed.vue +0 -27
  161. package/src/layout/LuGrid.vue +0 -45
  162. package/src/layout/LuOverlay.vue +0 -17
  163. package/src/layout/LuScroll.vue +0 -19
  164. package/src/layout/LuSplit.vue +0 -23
  165. package/src/layout/LuSplitPane.vue +0 -32
  166. package/src/layout/LuSplitResizer.vue +0 -19
  167. package/src/layout/LuStack.vue +0 -29
  168. package/src/plugin.ts +0 -28
  169. package/src/shell/desktop/LuDesktopRailBar.vue +0 -23
  170. package/src/shell/desktop/LuDesktopRailItem.vue +0 -23
  171. package/src/shell/desktop/LuDesktopShell.vue +0 -25
  172. package/src/shell/desktop/LuDesktopSidebar.vue +0 -36
  173. package/src/shell/desktop/LuDesktopStatusBar.vue +0 -15
  174. package/src/shell/desktop/LuDesktopTopBar.vue +0 -15
  175. package/src/shell/embedded/LuEmbeddedShell.vue +0 -20
  176. package/src/shell/embedded/LuEmbeddedStatusBar.vue +0 -16
  177. package/src/shell/embedded/LuEmbeddedTopBar.vue +0 -17
  178. package/src/shell/mobile/LuMobileHeader.vue +0 -17
  179. package/src/shell/mobile/LuMobileNavBar.vue +0 -15
  180. package/src/shell/mobile/LuMobileShell.vue +0 -21
  181. package/src/skins/default.ts +0 -426
  182. package/src/tailwind.ts +0 -25
  183. package/src/types.ts +0 -18
  184. package/src/utils.ts +0 -95
  185. package/tsconfig.json +0 -10
  186. /package/{src/components/index.ts → dist/components/index.d.ts} +0 -0
  187. /package/{src/skins/index.ts → dist/skins/index.d.ts} +0 -0
@@ -0,0 +1,21 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {};
5
+ type __VLS_Slots = {} & {
6
+ header?: (props: typeof __VLS_1) => any;
7
+ } & {
8
+ content?: (props: typeof __VLS_3) => any;
9
+ } & {
10
+ footer?: (props: typeof __VLS_5) => any;
11
+ } & {
12
+ default?: (props: typeof __VLS_7) => any;
13
+ };
14
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };
@@ -0,0 +1,15 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
10
+ export default _default;
11
+ type __VLS_WithSlots<T, S> = T & {
12
+ new (): {
13
+ $slots: S;
14
+ };
15
+ };
@@ -0,0 +1,15 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
10
+ export default _default;
11
+ type __VLS_WithSlots<T, S> = T & {
12
+ new (): {
13
+ $slots: S;
14
+ };
15
+ };
@@ -0,0 +1,19 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
5
+ type __VLS_Slots = {} & {
6
+ topbar?: (props: typeof __VLS_1) => any;
7
+ } & {
8
+ content?: (props: typeof __VLS_3) => any;
9
+ } & {
10
+ bottombar?: (props: typeof __VLS_5) => any;
11
+ };
12
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
@@ -0,0 +1,17 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {}, __VLS_3: {};
5
+ type __VLS_Slots = {} & {
6
+ left?: (props: typeof __VLS_1) => any;
7
+ } & {
8
+ right?: (props: typeof __VLS_3) => any;
9
+ };
10
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
12
+ export default _default;
13
+ type __VLS_WithSlots<T, S> = T & {
14
+ new (): {
15
+ $slots: S;
16
+ };
17
+ };
@@ -0,0 +1,19 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
5
+ type __VLS_Slots = {} & {
6
+ left?: (props: typeof __VLS_1) => any;
7
+ } & {
8
+ default?: (props: typeof __VLS_3) => any;
9
+ } & {
10
+ right?: (props: typeof __VLS_5) => any;
11
+ };
12
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
@@ -4,7 +4,6 @@ export { default as LuDesktopRailItem } from "./desktop/LuDesktopRailItem.vue";
4
4
  export { default as LuDesktopTopBar } from "./desktop/LuDesktopTopBar.vue";
5
5
  export { default as LuDesktopSidebar } from "./desktop/LuDesktopSidebar.vue";
6
6
  export { default as LuDesktopStatusBar } from "./desktop/LuDesktopStatusBar.vue";
7
-
8
7
  export { default as LuMobileShell } from "./mobile/LuMobileShell.vue";
9
8
  export { default as LuMobileHeader } from "./mobile/LuMobileHeader.vue";
10
9
  export { default as LuMobileNavBar } from "./mobile/LuMobileNavBar.vue";
@@ -0,0 +1,15 @@
1
+ import { _ as s, a as u, b as o, c as d, d as t, e as L, f as l, g as r, h as p, i as b, j as i, k } from "../LuEmbeddedStatusBar.vue_vue_type_script_setup_true_lang-D4rqklgo.js";
2
+ export {
3
+ s as LuDesktopRailBar,
4
+ u as LuDesktopRailItem,
5
+ o as LuDesktopShell,
6
+ d as LuDesktopSidebar,
7
+ t as LuDesktopStatusBar,
8
+ L as LuDesktopTopBar,
9
+ l as LuEmbeddedShell,
10
+ r as LuEmbeddedStatusBar,
11
+ p as LuEmbeddedTopBar,
12
+ b as LuMobileHeader,
13
+ i as LuMobileNavBar,
14
+ k as LuMobileShell
15
+ };
@@ -0,0 +1,19 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
5
+ type __VLS_Slots = {} & {
6
+ left?: (props: typeof __VLS_1) => any;
7
+ } & {
8
+ default?: (props: typeof __VLS_3) => any;
9
+ } & {
10
+ right?: (props: typeof __VLS_5) => any;
11
+ };
12
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
@@ -0,0 +1,15 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
10
+ export default _default;
11
+ type __VLS_WithSlots<T, S> = T & {
12
+ new (): {
13
+ $slots: S;
14
+ };
15
+ };
@@ -0,0 +1,21 @@
1
+ type __VLS_Props = {
2
+ variant?: string;
3
+ };
4
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {};
5
+ type __VLS_Slots = {} & {
6
+ header?: (props: typeof __VLS_1) => any;
7
+ } & {
8
+ content?: (props: typeof __VLS_3) => any;
9
+ } & {
10
+ navbar?: (props: typeof __VLS_5) => any;
11
+ } & {
12
+ drawer?: (props: typeof __VLS_7) => any;
13
+ };
14
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };
@@ -0,0 +1,2 @@
1
+ import type { SkinMap } from "../types";
2
+ export declare const componentsSkin: SkinMap;
@@ -0,0 +1,2 @@
1
+ import type { SkinMap } from "../types";
2
+ export declare const defaultSkin: SkinMap;
@@ -0,0 +1,446 @@
1
+ const e = {
2
+ LuButton: {
3
+ default: "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg border border-zinc-200 bg-white text-zinc-800 px-3.5 py-2 text-sm font-medium shadow-xs transition-all duration-150 ease-in-out hover:bg-zinc-50 hover:border-zinc-300 active:bg-zinc-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-rose-500/70 focus-visible:ring-offset-1 disabled:cursor-not-allowed disabled:opacity-40 dark:border-zinc-700/60 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700 dark:hover:border-zinc-600 dark:active:bg-zinc-600 dark:focus-visible:ring-rose-400/70",
4
+ primary: "bg-rose-600 text-white shadow-sm rounded-lg hover:bg-rose-700 active:bg-rose-800 focus-visible:ring-rose-500 dark:bg-rose-500 dark:hover:bg-rose-600",
5
+ secondary: "border border-zinc-300 bg-transparent dark:bg-transparent text-zinc-700 rounded-lg hover:bg-zinc-50 hover:border-zinc-400 active:bg-zinc-100 dark:border-zinc-700 dark:text-zinc-300 dark:hover:bg-zinc-800/80",
6
+ ghost: "border-transparent bg-transparent dark:bg-transparent text-zinc-600 rounded-lg hover:bg-zinc-100 hover:text-zinc-900 active:bg-zinc-200 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-100",
7
+ danger: "bg-red-600 text-white shadow-sm rounded-lg hover:bg-red-700 active:bg-red-800 dark:bg-red-500 dark:hover:bg-red-600",
8
+ icon: "border-transparent bg-transparent dark:bg-transparent p-1.5 text-zinc-500 rounded-lg hover:bg-zinc-100 hover:text-zinc-700 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",
9
+ "code-action": "h-8 w-8 rounded-md border-transparent bg-zinc-950/50 dark:bg-zinc-950/50 text-white backdrop-blur-sm hover:bg-zinc-950/80 active:bg-zinc-950"
10
+ },
11
+ LuIcon: {
12
+ default: "inline-flex items-center justify-center shrink-0",
13
+ sm: "w-4 h-4",
14
+ md: "w-5 h-5",
15
+ lg: "w-6 h-6",
16
+ xl: "w-8 h-8"
17
+ },
18
+ LuInput: {
19
+ default: "flex h-9 w-full rounded-lg border border-zinc-300 bg-zinc-50 px-3 py-2 text-sm text-zinc-900 placeholder:text-zinc-400 transition-[border-color,box-shadow] duration-150 focus:outline-none focus:border-rose-500 focus:ring-1 focus:ring-rose-500 disabled:cursor-not-allowed disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-50 dark:placeholder:text-zinc-500 dark:focus:border-rose-400 dark:focus:ring-rose-400"
20
+ },
21
+ LuInputPrepend: {
22
+ default: "absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none text-zinc-400 dark:text-zinc-500"
23
+ },
24
+ LuInputAppend: {
25
+ default: "absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-zinc-400 dark:text-zinc-500"
26
+ },
27
+ LuTextarea: {
28
+ default: "flex min-h-[72px] w-full rounded-lg border border-zinc-300 bg-zinc-50 px-3 py-2 text-sm text-zinc-900 placeholder:text-zinc-400 transition-[border-color,box-shadow] duration-150 focus:outline-none focus:border-rose-500 focus:ring-1 focus:ring-rose-500 disabled:cursor-not-allowed disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-50 dark:placeholder:text-zinc-500 dark:focus:border-rose-400 dark:focus:ring-rose-400",
29
+ error: "flex min-h-[72px] w-full rounded-lg border border-red-500 bg-zinc-50 px-3 py-2 text-sm text-zinc-900 placeholder:text-zinc-400 transition-[border-color,box-shadow] duration-150 focus:outline-none focus:border-red-500 focus:ring-1 focus:ring-red-500 disabled:cursor-not-allowed disabled:opacity-40 dark:border-red-500 dark:bg-zinc-900 dark:text-zinc-50 dark:placeholder:text-zinc-500"
30
+ },
31
+ LuCheckboxContainer: {
32
+ default: "flex items-center space-x-2"
33
+ },
34
+ LuCheckbox: {
35
+ default: "h-4 w-4 rounded border-zinc-300 text-rose-600 focus:ring-rose-500 focus:ring-offset-0 disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900 dark:focus:ring-rose-500"
36
+ },
37
+ LuCheckboxLabel: {
38
+ default: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-40 text-zinc-900 dark:text-zinc-100 cursor-pointer"
39
+ },
40
+ LuRadioGroup: {
41
+ default: "flex flex-col space-y-2",
42
+ horizontal: "flex flex-row space-x-4"
43
+ },
44
+ LuRadioContainer: {
45
+ default: "flex items-center space-x-2"
46
+ },
47
+ LuRadio: {
48
+ default: "h-4 w-4 rounded-full border-zinc-300 text-rose-600 focus:ring-rose-500 disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900 dark:focus:ring-rose-500"
49
+ },
50
+ LuRadioLabel: {
51
+ default: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-40 text-zinc-900 dark:text-zinc-100 cursor-pointer"
52
+ },
53
+ LuAlert: {
54
+ default: "relative w-full rounded-lg border-l-[3px] border-l-zinc-400 bg-zinc-50 p-4 flex gap-3 text-sm text-zinc-800 dark:border-l-zinc-600 dark:bg-zinc-900 dark:text-zinc-200",
55
+ success: "relative w-full rounded-lg border-l-[3px] border-l-emerald-500 bg-emerald-50/70 p-4 flex gap-3 text-sm text-emerald-900 dark:border-l-emerald-500 dark:bg-emerald-950/40 dark:text-emerald-100",
56
+ warning: "relative w-full rounded-lg border-l-[3px] border-l-amber-500 bg-amber-50/70 p-4 flex gap-3 text-sm text-amber-900 dark:border-l-amber-500 dark:bg-amber-950/40 dark:text-amber-100",
57
+ destructive: "relative w-full rounded-lg border-l-[3px] border-l-red-500 bg-red-50/70 p-4 flex gap-3 text-sm text-red-900 dark:border-l-red-500 dark:bg-red-950/40 dark:text-red-100",
58
+ info: "relative w-full rounded-lg border-l-[3px] border-l-rose-500 bg-rose-50/70 p-4 flex gap-3 text-sm text-rose-900 dark:border-l-rose-500 dark:bg-rose-950/40 dark:text-rose-100"
59
+ },
60
+ LuAlertIcon: {
61
+ default: "shrink-0 mt-0.5 w-5 h-5"
62
+ },
63
+ LuAlertContent: {
64
+ default: "flex-1 flex flex-col gap-1"
65
+ },
66
+ LuAlertAction: {
67
+ default: "shrink-0 ml-auto"
68
+ },
69
+ LuSpinner: {
70
+ default: "animate-spin text-zinc-800 dark:text-zinc-200 h-5 w-5",
71
+ sm: "animate-spin text-zinc-800 dark:text-zinc-200 h-4 w-4",
72
+ md: "animate-spin text-zinc-800 dark:text-zinc-200 h-5 w-5",
73
+ lg: "animate-spin text-zinc-800 dark:text-zinc-200 h-8 w-8",
74
+ primary: "animate-spin text-rose-600 dark:text-rose-400 h-5 w-5"
75
+ },
76
+ LuSkeleton: {
77
+ default: "animate-pulse rounded-lg bg-zinc-100 dark:bg-zinc-800",
78
+ circle: "animate-pulse rounded-full bg-zinc-100 dark:bg-zinc-800",
79
+ line: "animate-pulse rounded bg-zinc-100 dark:bg-zinc-800 h-3.5 w-full",
80
+ block: "animate-pulse rounded-lg bg-zinc-100 dark:bg-zinc-800 h-24 w-full"
81
+ },
82
+ LuTag: {
83
+ default: "inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-zinc-200 bg-zinc-50 text-zinc-700 transition-colors focus:outline-none focus:ring-2 focus:ring-zinc-950 focus:ring-offset-2 dark:ring-zinc-700 dark:bg-zinc-800 dark:text-zinc-300 dark:focus:ring-zinc-300"
84
+ },
85
+ LuTagCloseButton: {
86
+ default: "ml-1 inline-flex items-center rounded p-0.5 hover:bg-zinc-200 hover:text-zinc-900 transition-colors focus:outline-none dark:hover:bg-zinc-700 dark:hover:text-zinc-100"
87
+ },
88
+ LuTagIcon: {
89
+ default: "h-3 w-3"
90
+ },
91
+ LuBreadcrumb: {
92
+ default: "flex flex-wrap items-center gap-1.5 break-words text-sm text-zinc-500 sm:gap-2.5 dark:text-zinc-400"
93
+ },
94
+ LuBreadcrumbItem: {
95
+ default: "inline-flex items-center gap-1.5"
96
+ },
97
+ LuBreadcrumbLink: {
98
+ default: "transition-colors hover:text-zinc-950 dark:hover:text-zinc-50"
99
+ },
100
+ LuBreadcrumbPage: {
101
+ default: "font-medium text-zinc-950 dark:text-zinc-50"
102
+ },
103
+ LuBreadcrumbSeparator: {
104
+ default: "h-3.5 w-3.5"
105
+ },
106
+ LuMenu: {
107
+ default: "relative inline-block text-left"
108
+ },
109
+ LuMenuTrigger: {
110
+ default: "inline-flex items-center justify-center"
111
+ },
112
+ LuMenuContent: {
113
+ default: "absolute z-50 mt-2 min-w-[9rem] rounded-xl border border-zinc-200/80 bg-white/95 backdrop-blur-sm p-1 text-zinc-950 shadow-lg shadow-zinc-900/10 lu-fade-in dark:border-zinc-700/80 dark:bg-zinc-900/95 dark:text-zinc-50 dark:shadow-zinc-950/50"
114
+ },
115
+ LuMenuGroup: {
116
+ default: "flex flex-col gap-1"
117
+ },
118
+ LuMenuItem: {
119
+ default: "relative flex w-full cursor-default select-none items-center rounded-lg px-2 py-1.5 text-sm outline-none transition-colors hover:bg-zinc-100 hover:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-40 dark:hover:bg-zinc-800 dark:hover:text-zinc-50"
120
+ },
121
+ LuPagination: {
122
+ default: "flex flex-row items-center justify-center gap-2"
123
+ },
124
+ LuPaginationButton: {
125
+ default: "h-9 w-9 p-0 disabled:opacity-40 disabled:pointer-events-none"
126
+ },
127
+ LuPaginationPages: {
128
+ default: "flex flex-row items-center gap-1"
129
+ },
130
+ LuPaginationPageButton: {
131
+ default: "h-9 w-9 p-0"
132
+ },
133
+ LuPaginationEllipsis: {
134
+ default: "flex h-9 w-9 items-center justify-center"
135
+ },
136
+ LuModalOverlay: {
137
+ default: "fixed inset-0 z-50 bg-black/40 backdrop-blur-sm grid place-items-center p-4"
138
+ },
139
+ LuModal: {
140
+ default: "relative w-full max-w-lg rounded-2xl border border-zinc-200/80 bg-white shadow-2xl shadow-zinc-900/15 dark:border-zinc-800 dark:bg-zinc-900 dark:shadow-zinc-950/60"
141
+ },
142
+ LuModalHeader: {
143
+ default: "flex flex-col space-y-1 p-6 text-center sm:text-left"
144
+ },
145
+ LuModalContent: {
146
+ default: "p-6 pt-0"
147
+ },
148
+ LuModalFooter: {
149
+ default: "flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-2 p-6 pt-0"
150
+ },
151
+ LuModalCloseButton: {
152
+ default: "absolute right-4 top-4 rounded-lg p-1 opacity-60 transition-opacity hover:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-rose-500 disabled:pointer-events-none dark:focus-visible:ring-rose-400"
153
+ },
154
+ LuModalTransitionOverlay: {
155
+ enterActive: "transition ease-out duration-200",
156
+ enterFrom: "opacity-0",
157
+ enterTo: "opacity-100",
158
+ leaveActive: "transition ease-in duration-150",
159
+ leaveFrom: "opacity-100",
160
+ leaveTo: "opacity-0"
161
+ },
162
+ LuModalTransitionContent: {
163
+ enterActive: "transition ease-out duration-200",
164
+ enterFrom: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
165
+ enterTo: "opacity-100 translate-y-0 sm:scale-100",
166
+ leaveActive: "transition ease-in duration-150",
167
+ leaveFrom: "opacity-100 translate-y-0 sm:scale-100",
168
+ leaveTo: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
169
+ },
170
+ LuAvatar: {
171
+ default: "relative inline-flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
172
+ sm: "h-8 w-8",
173
+ md: "h-10 w-10",
174
+ lg: "h-12 w-12",
175
+ xl: "h-16 w-16"
176
+ },
177
+ LuAvatarImage: {
178
+ default: "aspect-square h-full w-full object-cover"
179
+ },
180
+ LuAvatarFallback: {
181
+ default: "flex h-full w-full items-center justify-center rounded-full bg-zinc-200 text-zinc-700 text-xs font-semibold dark:bg-zinc-700 dark:text-zinc-200"
182
+ },
183
+ LuBadge: {
184
+ default: "inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ring-1 ring-zinc-200 bg-zinc-50 text-zinc-600 transition-colors focus:outline-none focus:ring-2 focus:ring-rose-500 focus:ring-offset-2 dark:ring-zinc-700 dark:bg-zinc-800 dark:text-zinc-400",
185
+ primary: "ring-1 ring-rose-200 bg-rose-50 text-rose-700 dark:ring-rose-800/50 dark:bg-rose-950/40 dark:text-rose-300",
186
+ secondary: "ring-1 ring-zinc-200 bg-zinc-50 text-zinc-600 dark:ring-zinc-700 dark:bg-zinc-800 dark:text-zinc-400",
187
+ danger: "ring-1 ring-red-200 bg-red-50 text-red-700 dark:ring-red-800/50 dark:bg-red-950/40 dark:text-red-300",
188
+ success: "ring-1 ring-emerald-200 bg-emerald-50 text-emerald-700 dark:ring-emerald-800/50 dark:bg-emerald-950/40 dark:text-emerald-300",
189
+ warning: "ring-1 ring-amber-200 bg-amber-50 text-amber-700 dark:ring-amber-800/50 dark:bg-amber-950/40 dark:text-amber-300",
190
+ info: "ring-1 ring-rose-200 bg-rose-50 text-rose-700 dark:ring-rose-800/50 dark:bg-rose-950/40 dark:text-rose-300"
191
+ },
192
+ LuCard: {
193
+ default: "rounded-xl border border-zinc-200/80 bg-white shadow-sm text-zinc-950 p-6 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-50",
194
+ panel: "rounded-xl border border-zinc-200/80 bg-white shadow-sm text-zinc-950 p-8 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-50",
195
+ surface: "rounded-xl border border-zinc-200/80 bg-white shadow-sm text-zinc-950 overflow-hidden dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-50",
196
+ footer: "rounded-b-xl border-t border-zinc-100 bg-zinc-50/50 p-6 dark:border-zinc-800 dark:bg-zinc-900/50"
197
+ },
198
+ LuDivider: {
199
+ default: "shrink-0 bg-zinc-100 dark:bg-zinc-800/60",
200
+ horizontal: "h-px w-full",
201
+ vertical: "h-full w-px"
202
+ },
203
+ LuSelect: {
204
+ default: "flex h-9 w-full items-center justify-between rounded-lg border border-zinc-300 bg-zinc-50 px-3 py-2 text-sm focus:outline-none focus:border-rose-500 focus:ring-1 focus:ring-rose-500 disabled:cursor-not-allowed disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900 dark:focus:border-rose-400 dark:focus:ring-rose-400",
205
+ theme: "w-32"
206
+ },
207
+ LuSwitch: {
208
+ default: "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-40 bg-zinc-200 dark:bg-zinc-700 dark:focus-visible:ring-rose-400 dark:focus-visible:ring-offset-zinc-950",
209
+ checked: "bg-rose-600 dark:bg-rose-500",
210
+ thumb: "pointer-events-none block h-5 w-5 rounded-full bg-white shadow-md ring-0 transition-transform duration-150 dark:bg-white",
211
+ thumbChecked: "translate-x-5",
212
+ thumbUnchecked: "translate-x-0",
213
+ theme: "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-rose-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-40 bg-zinc-200 dark:bg-zinc-700 dark:focus-visible:ring-offset-zinc-950"
214
+ },
215
+ LuSwitchThumb: {
216
+ default: "pointer-events-none block h-5 w-5 rounded-full bg-white shadow-md ring-0 transition-transform duration-150 dark:bg-white",
217
+ checked: "translate-x-5"
218
+ },
219
+ LuTable: {
220
+ default: "w-full caption-bottom text-sm"
221
+ },
222
+ LuTableHead: {
223
+ default: "border-b border-zinc-200 dark:border-zinc-800"
224
+ },
225
+ LuTableBody: {
226
+ default: "[&_tr:last-child]:border-0"
227
+ },
228
+ LuTableRow: {
229
+ default: "border-b border-zinc-100 transition-colors hover:bg-zinc-50/80 data-[state=selected]:bg-zinc-100 dark:border-zinc-800 dark:hover:bg-zinc-800/50 dark:data-[state=selected]:bg-zinc-800"
230
+ },
231
+ LuTableHeadCell: {
232
+ default: "h-11 px-4 text-left align-middle text-xs font-semibold uppercase tracking-wide text-zinc-400 dark:text-zinc-500 [&:has([role=checkbox])]:pr-0"
233
+ },
234
+ LuTableCell: {
235
+ default: "p-4 align-middle [&:has([role=checkbox])]:pr-0"
236
+ },
237
+ LuTabs: {
238
+ default: "flex flex-col w-full"
239
+ },
240
+ LuTabList: {
241
+ default: "flex items-center gap-0.5 border-b border-zinc-200 dark:border-zinc-700",
242
+ "card-header": "flex items-center gap-0.5 w-full border-b border-zinc-200 px-4 dark:border-zinc-700"
243
+ },
244
+ LuTab: {
245
+ default: "relative px-3 py-2 text-sm font-medium text-zinc-500 hover:text-zinc-900 border-b-2 border-transparent -mb-px transition-colors duration-150 cursor-pointer focus:outline-none dark:text-zinc-400 dark:hover:text-zinc-100",
246
+ active: "text-zinc-900 border-b-rose-500 dark:text-zinc-50 dark:border-b-rose-500"
247
+ },
248
+ LuTabPanel: {
249
+ default: "pt-6 focus:outline-none"
250
+ },
251
+ LuTooltip: {
252
+ default: "relative inline-block"
253
+ },
254
+ LuTooltipContent: {
255
+ default: "absolute z-50 whitespace-nowrap rounded-lg bg-zinc-900 px-2.5 py-1 text-xs font-medium text-zinc-50 shadow-md lu-fade-in dark:bg-zinc-50 dark:text-zinc-900",
256
+ top: "bottom-full mb-2 left-1/2 -translate-x-1/2",
257
+ bottom: "top-full mt-2 left-1/2 -translate-x-1/2",
258
+ left: "right-full mr-2 top-1/2 -translate-y-1/2",
259
+ right: "left-full ml-2 top-1/2 -translate-y-1/2"
260
+ },
261
+ LuProgressBar: {
262
+ default: "h-1.5 w-full bg-zinc-100 rounded-full overflow-hidden dark:bg-zinc-800",
263
+ primary: "bg-rose-100 dark:bg-rose-900/30",
264
+ success: "bg-emerald-100 dark:bg-emerald-900/30"
265
+ },
266
+ LuProgressBarFill: {
267
+ default: "h-full bg-zinc-900 dark:bg-zinc-100 transition-all duration-500 ease-in-out",
268
+ primary: "bg-rose-600 dark:bg-rose-500",
269
+ success: "bg-emerald-500 dark:bg-emerald-400"
270
+ },
271
+ LuCollapsible: {
272
+ default: "w-full"
273
+ },
274
+ LuCollapsibleTrigger: {
275
+ default: "w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm text-zinc-700 hover:bg-zinc-100/60 hover:text-zinc-900 transition-colors duration-100 cursor-pointer focus:outline-none dark:text-zinc-300 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-100"
276
+ },
277
+ LuCollapsibleContent: {
278
+ default: "overflow-hidden",
279
+ inner: "min-h-0"
280
+ },
281
+ LuLink: {
282
+ default: "no-underline inline-flex items-center gap-1 text-sm font-medium text-zinc-700 hover:text-zinc-950 transition-colors duration-150 focus:outline-none dark:text-zinc-300 dark:hover:text-zinc-50",
283
+ nav: "no-underline inline-flex items-center gap-2 rounded-md px-2.5 py-1.5 text-sm font-medium text-zinc-600 transition-colors cursor-pointer hover:bg-zinc-100 hover:text-zinc-900 focus:outline-none focus-visible:ring-2 focus-visible:ring-rose-500 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-100",
284
+ "nav-active": "no-underline inline-flex items-center gap-2 rounded-md px-2.5 py-1.5 text-sm font-medium bg-rose-50 text-rose-700 border-l-2 border-rose-500 -ml-px cursor-pointer dark:bg-rose-950/30 dark:text-rose-300 dark:border-rose-500",
285
+ brand: "no-underline inline-flex items-center gap-1.5 font-semibold text-zinc-900 hover:opacity-75 transition-opacity focus:outline-none dark:text-zinc-50",
286
+ "footer-link": "no-underline inline-flex items-center gap-2 text-sm text-zinc-500 hover:text-zinc-900 transition-colors duration-150 focus:outline-none dark:text-zinc-400 dark:hover:text-zinc-200"
287
+ },
288
+ LuText: {
289
+ default: "text-zinc-900 dark:text-zinc-100",
290
+ "page-title": "text-[1.875rem] sm:text-[2.25rem] font-bold tracking-[-0.02em] leading-tight text-zinc-950 dark:text-white",
291
+ "page-subtitle": "text-base text-zinc-500 dark:text-zinc-400 leading-relaxed max-w-2xl",
292
+ "section-title": "text-xl font-semibold tracking-[-0.01em] leading-snug text-zinc-900 dark:text-zinc-50",
293
+ body: "text-sm leading-6 text-zinc-600 dark:text-zinc-400",
294
+ label: "text-[10px] font-semibold uppercase tracking-[0.08em] text-zinc-400 dark:text-zinc-500",
295
+ muted: "text-xs text-zinc-400 dark:text-zinc-600",
296
+ code: "font-mono text-[0.8125rem] border border-zinc-200 bg-zinc-100/60 text-zinc-700 px-1 py-px rounded dark:border-zinc-700 dark:bg-zinc-800/50 dark:text-zinc-300",
297
+ "brand-label": "text-sm font-semibold text-zinc-900 dark:text-zinc-50"
298
+ },
299
+ LuPageHeader: {
300
+ default: "pt-2 pb-8 border-b border-zinc-100 dark:border-zinc-800"
301
+ },
302
+ LuToggleGroup: {
303
+ default: "inline-flex items-center rounded-lg bg-zinc-100 p-0.5 gap-0.5 dark:bg-zinc-800",
304
+ ghost: "inline-flex items-center gap-0.5"
305
+ },
306
+ LuToggleButton: {
307
+ default: "inline-flex items-center justify-center rounded-md p-2 text-zinc-500 transition-all duration-150 focus:outline-none hover:bg-white hover:text-zinc-700 dark:text-zinc-400 dark:hover:bg-zinc-700 dark:hover:text-zinc-200",
308
+ active: "bg-white text-zinc-900 shadow-sm dark:bg-zinc-700 dark:text-zinc-50",
309
+ ghost: "inline-flex items-center justify-center rounded-md p-1.5 text-zinc-500 transition-all duration-150 focus:outline-none hover:bg-zinc-100 hover:text-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",
310
+ "ghost-active": "inline-flex items-center justify-center rounded-md p-1.5 text-zinc-900 bg-white shadow-sm ring-1 ring-zinc-200 transition-all duration-150 focus:outline-none dark:text-zinc-50 dark:bg-zinc-700 dark:ring-zinc-600/60"
311
+ },
312
+ LuCodeBlockWrapper: { default: "flex flex-col gap-6" },
313
+ LuCodeBlockHeader: { default: "flex flex-col gap-2" },
314
+ LuCodeBlockTitle: { default: "text-xl font-semibold tracking-tight text-zinc-900 dark:text-zinc-50" },
315
+ LuCodeBlockDescription: { default: "text-base text-zinc-600 dark:text-zinc-400" },
316
+ LuCodeBlockCard: { default: "flex flex-col overflow-hidden rounded-xl border border-zinc-200/80 bg-white shadow-sm dark:border-zinc-700 dark:bg-zinc-900" },
317
+ LuCodeBlockPreviewArea: { default: "flex flex-col p-8 items-center justify-center min-h-[200px] w-full overflow-auto bg-zinc-50 dark:bg-zinc-800/60" },
318
+ LuCodeBlockCodeArea: { default: "flex flex-col relative w-full" },
319
+ LuCodeBlockSplitArea: { default: "flex flex-col relative border-t md:border-t-0 md:border-l border-zinc-200 dark:border-zinc-800 w-full md:w-1/2 shrink-0" },
320
+ LuCodeBlockSplitContainer: { default: "flex flex-col md:flex-row min-h-[300px]" },
321
+ LuCodeBlockCodeHeader: { default: "flex items-center justify-between px-4 py-2 border-b border-zinc-800 bg-[#282c34]" },
322
+ LuCodeBlockBadge: { default: "text-xs font-mono font-medium text-zinc-400 uppercase tracking-widest" },
323
+ LuCodeBlockCopyButton: { default: "text-zinc-400 hover:text-zinc-100 hover:bg-white/10 transition-colors duration-150 p-1.5 rounded-md focus:outline-none" },
324
+ LuCodeBlockCodeContent: { default: "p-4 overflow-x-auto text-sm bg-[#282c34] [&>pre]:!bg-transparent [&>pre]:!m-0 [&>pre]:!p-0" }
325
+ }, r = {
326
+ LuStack: {
327
+ default: "flex",
328
+ vertical: "flex flex-col",
329
+ horizontal: "flex flex-row",
330
+ container: "flex flex-col w-full max-w-3xl mx-auto min-h-full gap-10 px-8 py-10"
331
+ },
332
+ LuDock: {
333
+ default: "flex flex-col h-full w-full overflow-hidden",
334
+ vertical: "flex flex-col h-full w-full overflow-hidden",
335
+ horizontal: "flex flex-row h-full w-full overflow-hidden"
336
+ },
337
+ LuDockItem: {
338
+ default: "shrink-0",
339
+ top: "shrink-0",
340
+ bottom: "shrink-0",
341
+ left: "shrink-0 h-full",
342
+ right: "shrink-0 h-full",
343
+ fill: "flex-1 min-h-0 min-w-0 overflow-hidden"
344
+ },
345
+ LuFixed: {
346
+ default: "shrink-0"
347
+ },
348
+ LuFill: {
349
+ default: "flex-1 min-h-0 min-w-0 overflow-hidden"
350
+ },
351
+ LuScroll: {
352
+ default: "overflow-y-auto h-full",
353
+ horizontal: "overflow-x-auto w-full"
354
+ },
355
+ LuOverlay: {
356
+ default: "absolute inset-0 z-50"
357
+ },
358
+ LuGrid: {
359
+ default: "grid",
360
+ "responsive-3": "grid grid-cols-1 md:grid-cols-3 lg:grid-cols-3 gap-8"
361
+ },
362
+ LuSplit: {
363
+ default: "flex w-full h-full overflow-hidden",
364
+ horizontal: "flex flex-row w-full h-full overflow-hidden",
365
+ vertical: "flex flex-col w-full h-full overflow-hidden"
366
+ },
367
+ LuSplitPane: {
368
+ default: "relative overflow-hidden"
369
+ },
370
+ LuSplitResizer: {
371
+ default: "bg-zinc-200 hover:bg-rose-400 transition-colors z-10 dark:bg-zinc-800 dark:hover:bg-rose-600",
372
+ horizontal: "w-1 cursor-col-resize",
373
+ vertical: "h-1 cursor-row-resize"
374
+ }
375
+ }, t = {
376
+ LuDesktopRailBar: {
377
+ default: "flex flex-col w-12 h-full border-r border-zinc-100 bg-white transition-all duration-200 overflow-hidden shrink-0 dark:bg-zinc-950 dark:border-zinc-900",
378
+ expanded: "w-56"
379
+ },
380
+ LuDesktopRailItem: {
381
+ default: "flex items-center gap-3 px-3 py-2 text-zinc-500 cursor-pointer hover:bg-zinc-100 hover:text-zinc-700 whitespace-nowrap transition-colors dark:text-zinc-500 dark:hover:bg-zinc-800/80 dark:hover:text-zinc-300",
382
+ active: "bg-rose-50 text-rose-700 font-medium dark:bg-rose-950/30 dark:text-rose-300"
383
+ },
384
+ LuDesktopTopBar: {
385
+ default: "flex items-center justify-between w-full h-14 border-b border-zinc-100 bg-white/95 backdrop-blur-sm px-4 shrink-0 dark:bg-zinc-950/95 dark:border-zinc-900"
386
+ },
387
+ LuDesktopSidebar: {
388
+ default: "flex flex-col w-[248px] shrink-0 border-r border-zinc-100 bg-zinc-50 h-full dark:bg-zinc-900 dark:border-zinc-800/60"
389
+ },
390
+ LuDesktopSidebarHeader: {
391
+ default: "px-3 pt-3 pb-2 shrink-0"
392
+ },
393
+ LuDesktopSidebarContent: {
394
+ default: "flex-1 overflow-y-auto px-3 py-2"
395
+ },
396
+ LuDesktopSidebarFooter: {
397
+ default: "px-3 pb-3 pt-2 shrink-0 border-t border-zinc-100 dark:border-zinc-800/60"
398
+ },
399
+ LuDesktopStatusBar: {
400
+ default: "flex items-center justify-between w-full h-7 border-t border-zinc-100 bg-zinc-50/80 px-4 text-[11px] text-zinc-400 shrink-0 dark:bg-zinc-900 dark:border-zinc-800/60 dark:text-zinc-600"
401
+ },
402
+ LuDesktopShell: {
403
+ default: "flex flex-col h-screen w-full overflow-hidden bg-white text-zinc-900 dark:bg-zinc-950 dark:text-zinc-100"
404
+ },
405
+ LuDesktopShellContentWrapper: {
406
+ default: "flex flex-1 w-full overflow-hidden"
407
+ },
408
+ LuDesktopShellMainContent: {
409
+ default: "flex flex-1 flex-col overflow-hidden relative"
410
+ }
411
+ }, n = {
412
+ LuMobileShell: {
413
+ default: "flex flex-col h-full w-full overflow-hidden bg-white text-zinc-900 dark:bg-zinc-950 dark:text-zinc-100"
414
+ },
415
+ LuMobileShellContent: {
416
+ default: "flex flex-1 flex-col overflow-hidden relative"
417
+ },
418
+ LuMobileNavBar: {
419
+ default: "flex items-center justify-around w-full h-[60px] border-t border-zinc-100 bg-white/95 backdrop-blur-sm shrink-0 pb-safe dark:bg-zinc-950/95 dark:border-zinc-900"
420
+ },
421
+ LuMobileHeader: {
422
+ default: "flex items-center justify-between w-full h-14 border-b border-zinc-100 bg-white/95 backdrop-blur-sm px-4 shrink-0 pt-safe dark:bg-zinc-950/95 dark:border-zinc-900"
423
+ }
424
+ }, i = {
425
+ LuEmbeddedShell: {
426
+ default: "flex flex-col h-full w-full bg-white text-zinc-900 border border-zinc-200 rounded-lg overflow-hidden dark:bg-zinc-950 dark:text-zinc-100 dark:border-zinc-800"
427
+ },
428
+ LuEmbeddedShellContent: {
429
+ default: "flex flex-1 flex-col overflow-hidden relative"
430
+ },
431
+ LuEmbeddedStatusBar: {
432
+ default: "flex items-center justify-between w-full h-8 border-t border-zinc-200 bg-zinc-50 px-4 text-xs text-zinc-500 shrink-0 dark:bg-zinc-900 dark:border-zinc-800 dark:text-zinc-400"
433
+ },
434
+ LuEmbeddedToolbar: {
435
+ default: "flex items-center gap-2 p-2 border-b border-zinc-200 bg-zinc-50 shrink-0 dark:bg-zinc-900 dark:border-zinc-800"
436
+ }
437
+ }, o = {
438
+ ...e,
439
+ ...r,
440
+ ...t,
441
+ ...n,
442
+ ...i
443
+ };
444
+ export {
445
+ o as defaultSkin
446
+ };