@astrake/lumora-ui 0.2.0 → 0.2.1

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 (179) hide show
  1. package/CHANGELOG.md +141 -137
  2. package/dist/LuCodeBlock.vue_vue_type_script_setup_true_lang-BjwcjuXF.js +1623 -0
  3. package/dist/LuEmbeddedStatusBar.vue_vue_type_script_setup_true_lang-CIksvebU.js +218 -0
  4. package/dist/LuOverlay.vue_vue_type_script_setup_true_lang-DZch4Vrw.js +226 -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 +21 -0
  11. package/dist/components/LuCheckbox.vue.d.ts +27 -0
  12. package/dist/components/LuCodeBlock.vue.d.ts +29 -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/index.js +47 -0
  53. package/{src/composables/index.ts → dist/composables/index.d.ts} +0 -1
  54. package/dist/composables/index.js +30 -0
  55. package/dist/composables/useRail.d.ts +6 -0
  56. package/dist/composables/useSplit.d.ts +4 -0
  57. package/dist/composables/useTheme.d.ts +7 -0
  58. package/dist/context-0gENwESP.js +62 -0
  59. package/dist/context.d.ts +8 -0
  60. package/{src/index.ts → dist/index.d.ts} +0 -1
  61. package/dist/index.js +94 -0
  62. package/dist/layout/LuDock.vue.d.ts +9 -0
  63. package/dist/layout/LuDockItem.vue.d.ts +16 -0
  64. package/dist/layout/LuFill.vue.d.ts +21 -0
  65. package/dist/layout/LuFixed.vue.d.ts +21 -0
  66. package/dist/layout/LuGrid.vue.d.ts +26 -0
  67. package/dist/layout/LuOverlay.vue.d.ts +15 -0
  68. package/dist/layout/LuScroll.vue.d.ts +15 -0
  69. package/dist/layout/LuSplit.vue.d.ts +16 -0
  70. package/dist/layout/LuSplitPane.vue.d.ts +18 -0
  71. package/dist/layout/LuSplitResizer.vue.d.ts +5 -0
  72. package/dist/layout/LuStack.vue.d.ts +23 -0
  73. package/{src/layout/index.ts → dist/layout/index.d.ts} +1 -14
  74. package/dist/layout/index.js +14 -0
  75. package/dist/plugin.d.ts +6 -0
  76. package/dist/shell/desktop/LuDesktopRailBar.vue.d.ts +17 -0
  77. package/dist/shell/desktop/LuDesktopRailItem.vue.d.ts +18 -0
  78. package/dist/shell/desktop/LuDesktopShell.vue.d.ts +23 -0
  79. package/dist/shell/desktop/LuDesktopSidebar.vue.d.ts +21 -0
  80. package/dist/shell/desktop/LuDesktopStatusBar.vue.d.ts +15 -0
  81. package/dist/shell/desktop/LuDesktopTopBar.vue.d.ts +15 -0
  82. package/dist/shell/embedded/LuEmbeddedShell.vue.d.ts +19 -0
  83. package/dist/shell/embedded/LuEmbeddedStatusBar.vue.d.ts +17 -0
  84. package/dist/shell/embedded/LuEmbeddedTopBar.vue.d.ts +19 -0
  85. package/{src/shell/index.ts → dist/shell/index.d.ts} +0 -1
  86. package/dist/shell/index.js +15 -0
  87. package/dist/shell/mobile/LuMobileHeader.vue.d.ts +19 -0
  88. package/dist/shell/mobile/LuMobileNavBar.vue.d.ts +15 -0
  89. package/dist/shell/mobile/LuMobileShell.vue.d.ts +21 -0
  90. package/dist/skins/default.d.ts +2 -0
  91. package/{src/skins/default.ts → dist/skins/index.js} +119 -129
  92. package/dist/tailwind.d.ts +1 -0
  93. package/dist/tailwind.js +13 -0
  94. package/dist/types.d.ts +15 -0
  95. package/dist/useTheme-Cd4wVaLs.js +21 -0
  96. package/dist/utils.d.ts +21 -0
  97. package/package.json +94 -69
  98. package/src/lumora.css +16 -16
  99. package/src/components/LuAlert.vue +0 -33
  100. package/src/components/LuAvatar.vue +0 -22
  101. package/src/components/LuBadge.vue +0 -15
  102. package/src/components/LuBreadcrumb.vue +0 -63
  103. package/src/components/LuButton.vue +0 -58
  104. package/src/components/LuCard.vue +0 -27
  105. package/src/components/LuCheckbox.vue +0 -94
  106. package/src/components/LuCodeBlock.vue +0 -168
  107. package/src/components/LuCollapsible.vue +0 -34
  108. package/src/components/LuDivider.vue +0 -18
  109. package/src/components/LuForm.types.ts +0 -24
  110. package/src/components/LuForm.vue +0 -121
  111. package/src/components/LuIcon.vue +0 -39
  112. package/src/components/LuInput.vue +0 -82
  113. package/src/components/LuLink.vue +0 -47
  114. package/src/components/LuMenu.vue +0 -86
  115. package/src/components/LuMenuItem.vue +0 -37
  116. package/src/components/LuModal.vue +0 -115
  117. package/src/components/LuPageHeader.vue +0 -24
  118. package/src/components/LuPagination.vue +0 -118
  119. package/src/components/LuProgressBar.vue +0 -21
  120. package/src/components/LuRadio.vue +0 -55
  121. package/src/components/LuRadioGroup.types.ts +0 -10
  122. package/src/components/LuRadioGroup.vue +0 -66
  123. package/src/components/LuSelect.vue +0 -67
  124. package/src/components/LuSkeleton.vue +0 -15
  125. package/src/components/LuSpinner.vue +0 -36
  126. package/src/components/LuSwitch.vue +0 -76
  127. package/src/components/LuTab.vue +0 -26
  128. package/src/components/LuTabList.vue +0 -15
  129. package/src/components/LuTabPanel.vue +0 -19
  130. package/src/components/LuTable.vue +0 -15
  131. package/src/components/LuTableBody.vue +0 -15
  132. package/src/components/LuTableCell.vue +0 -15
  133. package/src/components/LuTableHead.vue +0 -15
  134. package/src/components/LuTableHeadCell.vue +0 -15
  135. package/src/components/LuTableRow.vue +0 -15
  136. package/src/components/LuTabs.vue +0 -30
  137. package/src/components/LuTag.vue +0 -35
  138. package/src/components/LuText.vue +0 -18
  139. package/src/components/LuTextarea.vue +0 -62
  140. package/src/components/LuThemeSelect.vue +0 -26
  141. package/src/components/LuThemeSwitch.vue +0 -22
  142. package/src/components/LuToggleButton.vue +0 -35
  143. package/src/components/LuToggleGroup.vue +0 -27
  144. package/src/components/LuTooltip.vue +0 -36
  145. package/src/components/__tests__/LuForm.test.ts +0 -206
  146. package/src/composables/useRail.ts +0 -24
  147. package/src/composables/useSplit.ts +0 -17
  148. package/src/composables/useTheme.ts +0 -36
  149. package/src/context.ts +0 -39
  150. package/src/layout/LuDock.vue +0 -56
  151. package/src/layout/LuDockItem.vue +0 -20
  152. package/src/layout/LuFill.vue +0 -27
  153. package/src/layout/LuFixed.vue +0 -27
  154. package/src/layout/LuGrid.vue +0 -45
  155. package/src/layout/LuOverlay.vue +0 -17
  156. package/src/layout/LuScroll.vue +0 -19
  157. package/src/layout/LuSplit.vue +0 -23
  158. package/src/layout/LuSplitPane.vue +0 -32
  159. package/src/layout/LuSplitResizer.vue +0 -19
  160. package/src/layout/LuStack.vue +0 -29
  161. package/src/plugin.ts +0 -28
  162. package/src/shell/desktop/LuDesktopRailBar.vue +0 -23
  163. package/src/shell/desktop/LuDesktopRailItem.vue +0 -23
  164. package/src/shell/desktop/LuDesktopShell.vue +0 -25
  165. package/src/shell/desktop/LuDesktopSidebar.vue +0 -36
  166. package/src/shell/desktop/LuDesktopStatusBar.vue +0 -15
  167. package/src/shell/desktop/LuDesktopTopBar.vue +0 -15
  168. package/src/shell/embedded/LuEmbeddedShell.vue +0 -20
  169. package/src/shell/embedded/LuEmbeddedStatusBar.vue +0 -16
  170. package/src/shell/embedded/LuEmbeddedTopBar.vue +0 -17
  171. package/src/shell/mobile/LuMobileHeader.vue +0 -17
  172. package/src/shell/mobile/LuMobileNavBar.vue +0 -15
  173. package/src/shell/mobile/LuMobileShell.vue +0 -21
  174. package/src/tailwind.ts +0 -25
  175. package/src/types.ts +0 -18
  176. package/src/utils.ts +0 -95
  177. package/tsconfig.json +0 -10
  178. /package/{src/components/index.ts → dist/components/index.d.ts} +0 -0
  179. /package/{src/skins/index.ts → dist/skins/index.d.ts} +0 -0
@@ -1,32 +1,22 @@
1
- import type { SkinMap } from "../types";
2
-
3
- export const defaultSkin: SkinMap = {
1
+ const e = {
4
2
  LuButton: {
5
- default:
6
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md border border-gray-200 bg-white text-gray-900 shadow-sm hover:bg-gray-50 px-4 py-2 text-sm font-medium transition-all duration-150 ease-in-out focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50 dark:hover:bg-gray-900 dark:focus-visible:ring-offset-gray-900",
7
- primary:
8
- "border-blue-600 bg-blue-600 text-white shadow-sm hover:bg-blue-700 hover:border-blue-700 active:bg-blue-800 dark:border-blue-500 dark:bg-blue-500 dark:hover:bg-blue-600 dark:hover:border-blue-600",
9
- secondary:
10
- "border-gray-300 bg-white text-gray-700 shadow-sm hover:bg-gray-50 hover:border-gray-400 active:bg-gray-100 dark:border-gray-600 dark:bg-gray-900 dark:text-gray-200 dark:hover:bg-gray-800 dark:hover:border-gray-500",
11
- ghost:
12
- "border-transparent bg-transparent text-gray-600 hover:bg-gray-100 hover:text-gray-900 active:bg-gray-200 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-100",
13
- danger:
14
- "border-red-600 bg-red-600 text-white shadow-sm hover:bg-red-700 hover:border-red-700 active:bg-red-800 dark:border-red-500 dark:bg-red-500 dark:hover:bg-red-600",
15
- icon:
16
- "border-transparent bg-transparent p-2 text-gray-500 hover:bg-gray-100 hover:text-gray-700 active:bg-gray-200 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-200",
17
- "code-action":
18
- "h-8 w-8 rounded-md border-transparent bg-gray-950/50 text-white backdrop-blur-sm hover:bg-gray-950/80 active:bg-gray-950",
3
+ default: "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md border border-gray-200 bg-white text-gray-900 shadow-sm hover:bg-gray-50 px-4 py-2 text-sm font-medium transition-all duration-150 ease-in-out focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50 dark:hover:bg-gray-900 dark:focus-visible:ring-offset-gray-900",
4
+ primary: "border-blue-600 bg-blue-600 text-white shadow-sm hover:bg-blue-700 hover:border-blue-700 active:bg-blue-800 dark:border-blue-500 dark:bg-blue-500 dark:hover:bg-blue-600 dark:hover:border-blue-600",
5
+ secondary: "border-gray-300 bg-white text-gray-700 shadow-sm hover:bg-gray-50 hover:border-gray-400 active:bg-gray-100 dark:border-gray-600 dark:bg-gray-900 dark:text-gray-200 dark:hover:bg-gray-800 dark:hover:border-gray-500",
6
+ ghost: "border-transparent bg-transparent text-gray-600 hover:bg-gray-100 hover:text-gray-900 active:bg-gray-200 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-100",
7
+ danger: "border-red-600 bg-red-600 text-white shadow-sm hover:bg-red-700 hover:border-red-700 active:bg-red-800 dark:border-red-500 dark:bg-red-500 dark:hover:bg-red-600",
8
+ icon: "border-transparent bg-transparent p-2 text-gray-500 hover:bg-gray-100 hover:text-gray-700 active:bg-gray-200 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-200",
9
+ "code-action": "h-8 w-8 rounded-md border-transparent bg-gray-950/50 text-white backdrop-blur-sm hover:bg-gray-950/80 active:bg-gray-950"
19
10
  },
20
11
  LuIcon: {
21
12
  default: "inline-flex items-center justify-center shrink-0",
22
13
  sm: "w-4 h-4",
23
14
  md: "w-5 h-5",
24
15
  lg: "w-6 h-6",
25
- xl: "w-8 h-8",
16
+ xl: "w-8 h-8"
26
17
  },
27
18
  LuInput: {
28
- default:
29
- "flex h-10 w-full rounded-md border border-gray-300 bg-transparent px-3 py-2 text-sm placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-700 dark:text-gray-50 dark:focus:ring-blue-500",
19
+ default: "flex h-10 w-full rounded-md border border-gray-300 bg-transparent px-3 py-2 text-sm placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-700 dark:text-gray-50 dark:focus:ring-blue-500"
30
20
  },
31
21
  LuInputPrepend: {
32
22
  default: "absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none text-gray-400 dark:text-gray-500"
@@ -35,215 +25,214 @@ export const defaultSkin: SkinMap = {
35
25
  default: "absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-gray-400 dark:text-gray-500"
36
26
  },
37
27
  LuTextarea: {
38
- default:
39
- "flex min-h-[80px] w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:opacity-50 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:placeholder:text-gray-500",
40
- error: "flex min-h-[80px] w-full rounded-md border border-red-500 bg-white px-3 py-2 text-sm placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-red-500 disabled:opacity-50 dark:border-red-500 dark:bg-gray-900 dark:text-gray-100 dark:placeholder:text-gray-500",
28
+ default: "flex min-h-[80px] w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:opacity-50 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:placeholder:text-gray-500",
29
+ error: "flex min-h-[80px] w-full rounded-md border border-red-500 bg-white px-3 py-2 text-sm placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-red-500 disabled:opacity-50 dark:border-red-500 dark:bg-gray-900 dark:text-gray-100 dark:placeholder:text-gray-500"
41
30
  },
42
31
  LuCheckboxContainer: {
43
- default: "flex items-center space-x-2",
32
+ default: "flex items-center space-x-2"
44
33
  },
45
34
  LuCheckbox: {
46
- default: "h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 disabled:opacity-50 dark:border-gray-700 dark:bg-gray-900 dark:ring-offset-gray-900 dark:focus:ring-blue-500",
35
+ default: "h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 disabled:opacity-50 dark:border-gray-700 dark:bg-gray-900 dark:ring-offset-gray-900 dark:focus:ring-blue-500"
47
36
  },
48
37
  LuCheckboxLabel: {
49
- default: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-gray-900 dark:text-gray-100 cursor-pointer",
38
+ default: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-gray-900 dark:text-gray-100 cursor-pointer"
50
39
  },
51
40
  LuRadioGroup: {
52
41
  default: "flex flex-col space-y-2",
53
- horizontal: "flex flex-row space-x-4",
42
+ horizontal: "flex flex-row space-x-4"
54
43
  },
55
44
  LuRadioContainer: {
56
- default: "flex items-center space-x-2",
45
+ default: "flex items-center space-x-2"
57
46
  },
58
47
  LuRadio: {
59
- default: "h-4 w-4 rounded-full border-gray-300 text-blue-600 focus:ring-blue-500 disabled:opacity-50 dark:border-gray-700 dark:bg-gray-900 dark:ring-offset-gray-900 dark:focus:ring-blue-500",
48
+ default: "h-4 w-4 rounded-full border-gray-300 text-blue-600 focus:ring-blue-500 disabled:opacity-50 dark:border-gray-700 dark:bg-gray-900 dark:ring-offset-gray-900 dark:focus:ring-blue-500"
60
49
  },
61
50
  LuRadioLabel: {
62
- default: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-gray-900 dark:text-gray-100 cursor-pointer",
51
+ default: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-gray-900 dark:text-gray-100 cursor-pointer"
63
52
  },
64
53
  LuAlert: {
65
54
  default: "relative w-full rounded-lg border p-4 flex gap-3 text-sm bg-white text-gray-900 border-gray-200 dark:bg-gray-950 dark:text-gray-100 dark:border-gray-800",
66
55
  success: "relative w-full rounded-lg border p-4 flex gap-3 text-sm bg-green-50 text-green-900 border-green-200 dark:bg-green-900/20 dark:text-green-100 dark:border-green-900/50",
67
56
  warning: "relative w-full rounded-lg border p-4 flex gap-3 text-sm bg-yellow-50 text-yellow-900 border-yellow-200 dark:bg-yellow-900/20 dark:text-yellow-100 dark:border-yellow-900/50",
68
57
  destructive: "relative w-full rounded-lg border p-4 flex gap-3 text-sm bg-red-50 text-red-900 border-red-200 dark:bg-red-900/20 dark:text-red-100 dark:border-red-900/50",
69
- info: "relative w-full rounded-lg border p-4 flex gap-3 text-sm bg-blue-50 text-blue-900 border-blue-200 dark:bg-blue-900/20 dark:text-blue-100 dark:border-blue-900/50",
58
+ info: "relative w-full rounded-lg border p-4 flex gap-3 text-sm bg-blue-50 text-blue-900 border-blue-200 dark:bg-blue-900/20 dark:text-blue-100 dark:border-blue-900/50"
70
59
  },
71
60
  LuAlertIcon: {
72
- default: "shrink-0 mt-0.5 w-5 h-5",
61
+ default: "shrink-0 mt-0.5 w-5 h-5"
73
62
  },
74
63
  LuAlertContent: {
75
- default: "flex-1 flex flex-col gap-1",
64
+ default: "flex-1 flex flex-col gap-1"
76
65
  },
77
66
  LuAlertAction: {
78
- default: "shrink-0 ml-auto",
67
+ default: "shrink-0 ml-auto"
79
68
  },
80
69
  LuSpinner: {
81
70
  default: "animate-spin text-gray-900 dark:text-gray-100 h-5 w-5",
82
71
  sm: "animate-spin text-gray-900 dark:text-gray-100 h-4 w-4",
83
72
  md: "animate-spin text-gray-900 dark:text-gray-100 h-5 w-5",
84
73
  lg: "animate-spin text-gray-900 dark:text-gray-100 h-8 w-8",
85
- primary: "animate-spin text-blue-600 dark:text-blue-500 h-5 w-5",
74
+ primary: "animate-spin text-blue-600 dark:text-blue-500 h-5 w-5"
86
75
  },
87
76
  LuSkeleton: {
88
77
  default: "animate-pulse rounded-md bg-gray-200 dark:bg-gray-800",
89
78
  circle: "animate-pulse rounded-full bg-gray-200 dark:bg-gray-800",
90
79
  line: "animate-pulse rounded bg-gray-200 dark:bg-gray-800 h-4 w-full",
91
- block: "animate-pulse rounded-md bg-gray-200 dark:bg-gray-800 h-24 w-full",
80
+ block: "animate-pulse rounded-md bg-gray-200 dark:bg-gray-800 h-24 w-full"
92
81
  },
93
82
  LuTag: {
94
- default: "inline-flex items-center rounded-md border border-gray-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-gray-950 focus:ring-offset-2 dark:border-gray-800 dark:focus:ring-gray-300",
83
+ default: "inline-flex items-center rounded-md border border-gray-200 px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-gray-950 focus:ring-offset-2 dark:border-gray-800 dark:focus:ring-gray-300"
95
84
  },
96
85
  LuTagCloseButton: {
97
- default: "ml-1 inline-flex items-center rounded-full outline-none hover:bg-gray-200 focus:bg-gray-200 dark:hover:bg-gray-800 dark:focus:bg-gray-800",
86
+ default: "ml-1 inline-flex items-center rounded-full outline-none hover:bg-gray-200 focus:bg-gray-200 dark:hover:bg-gray-800 dark:focus:bg-gray-800"
98
87
  },
99
88
  LuTagIcon: {
100
- default: "h-3 w-3",
89
+ default: "h-3 w-3"
101
90
  },
102
91
  LuBreadcrumb: {
103
- default: "flex flex-wrap items-center gap-1.5 break-words text-sm text-gray-500 sm:gap-2.5 dark:text-gray-400",
92
+ default: "flex flex-wrap items-center gap-1.5 break-words text-sm text-gray-500 sm:gap-2.5 dark:text-gray-400"
104
93
  },
105
94
  LuBreadcrumbItem: {
106
- default: "inline-flex items-center gap-1.5",
95
+ default: "inline-flex items-center gap-1.5"
107
96
  },
108
97
  LuBreadcrumbLink: {
109
- default: "transition-colors hover:text-gray-950 dark:hover:text-gray-50",
98
+ default: "transition-colors hover:text-gray-950 dark:hover:text-gray-50"
110
99
  },
111
100
  LuBreadcrumbPage: {
112
- default: "font-normal text-gray-950 dark:text-gray-50",
101
+ default: "font-normal text-gray-950 dark:text-gray-50"
113
102
  },
114
103
  LuBreadcrumbSeparator: {
115
- default: "h-3.5 w-3.5",
104
+ default: "h-3.5 w-3.5"
116
105
  },
117
106
  LuMenu: {
118
- default: "relative inline-block text-left",
107
+ default: "relative inline-block text-left"
119
108
  },
120
109
  LuMenuTrigger: {
121
- default: "inline-flex items-center justify-center",
110
+ default: "inline-flex items-center justify-center"
122
111
  },
123
112
  LuMenuContent: {
124
- default: "absolute z-50 mt-2 min-w-[8rem] rounded-md border border-gray-200 bg-white p-1 text-gray-950 shadow-md dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50",
113
+ default: "absolute z-50 mt-2 min-w-[8rem] rounded-md border border-gray-200 bg-white p-1 text-gray-950 shadow-md dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50"
125
114
  },
126
115
  LuMenuGroup: {
127
- default: "flex flex-col gap-1",
116
+ default: "flex flex-col gap-1"
128
117
  },
129
118
  LuMenuItem: {
130
- default: "relative flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-gray-100 focus:bg-gray-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:hover:bg-gray-800 dark:focus:bg-gray-800",
119
+ default: "relative flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-gray-100 focus:bg-gray-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:hover:bg-gray-800 dark:focus:bg-gray-800"
131
120
  },
132
121
  LuPagination: {
133
- default: "flex flex-row items-center justify-center gap-2",
122
+ default: "flex flex-row items-center justify-center gap-2"
134
123
  },
135
124
  LuPaginationButton: {
136
- default: "h-9 w-9 p-0 disabled:opacity-50 disabled:pointer-events-none",
125
+ default: "h-9 w-9 p-0 disabled:opacity-50 disabled:pointer-events-none"
137
126
  },
138
127
  LuPaginationPages: {
139
- default: "flex flex-row items-center gap-1",
128
+ default: "flex flex-row items-center gap-1"
140
129
  },
141
130
  LuPaginationPageButton: {
142
- default: "h-9 w-9 p-0",
131
+ default: "h-9 w-9 p-0"
143
132
  },
144
133
  LuPaginationEllipsis: {
145
- default: "flex h-9 w-9 items-center justify-center",
134
+ default: "flex h-9 w-9 items-center justify-center"
146
135
  },
147
136
  LuModalOverlay: {
148
- default: "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm grid place-items-center p-4",
137
+ default: "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm grid place-items-center p-4"
149
138
  },
150
139
  LuModal: {
151
- default: "relative w-full max-w-lg rounded-xl border border-gray-200 bg-white shadow-lg dark:border-gray-800 dark:bg-gray-950",
140
+ default: "relative w-full max-w-lg rounded-xl border border-gray-200 bg-white shadow-lg dark:border-gray-800 dark:bg-gray-950"
152
141
  },
153
142
  LuModalHeader: {
154
- default: "flex flex-col space-y-1.5 p-6 text-center sm:text-left",
143
+ default: "flex flex-col space-y-1.5 p-6 text-center sm:text-left"
155
144
  },
156
145
  LuModalContent: {
157
- default: "p-6 pt-0",
146
+ default: "p-6 pt-0"
158
147
  },
159
148
  LuModalFooter: {
160
- default: "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 p-6 pt-0",
149
+ default: "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 p-6 pt-0"
161
150
  },
162
151
  LuModalCloseButton: {
163
- default: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500 dark:ring-offset-gray-950 dark:focus:ring-gray-300 dark:data-[state=open]:bg-gray-800 dark:data-[state=open]:text-gray-400",
152
+ default: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500 dark:ring-offset-gray-950 dark:focus:ring-gray-300 dark:data-[state=open]:bg-gray-800 dark:data-[state=open]:text-gray-400"
164
153
  },
165
154
  LuDesktopRailBar: {
166
155
  default: "flex flex-col w-12 h-full border-r border-gray-200 bg-white transition-all duration-200 overflow-hidden dark:bg-gray-900 dark:border-gray-800 shrink-0",
167
- expanded: "w-56",
156
+ expanded: "w-56"
168
157
  },
169
158
  LuDesktopRailItem: {
170
159
  default: "flex items-center gap-3 px-3 py-2 text-gray-600 hover:bg-gray-100 cursor-pointer whitespace-nowrap dark:text-gray-300 dark:hover:bg-gray-800",
171
- active: "bg-blue-50 text-blue-700 font-medium dark:bg-blue-900/50 dark:text-blue-400",
160
+ active: "bg-blue-50 text-blue-700 font-medium dark:bg-blue-900/50 dark:text-blue-400"
172
161
  },
173
162
  LuDesktopTopBar: {
174
- default: "flex items-center justify-between w-full h-14 border-b border-gray-200 bg-white px-4 shrink-0 dark:bg-gray-900 dark:border-gray-800",
163
+ default: "flex items-center justify-between w-full h-14 border-b border-gray-200 bg-white px-4 shrink-0 dark:bg-gray-900 dark:border-gray-800"
175
164
  },
176
165
  LuDesktopSidebar: {
177
- default: "flex flex-col w-64 shrink-0 border-r border-gray-200 bg-gray-50 overflow-y-auto h-full dark:bg-gray-800 dark:border-gray-800",
166
+ default: "flex flex-col w-64 shrink-0 border-r border-gray-200 bg-gray-50 overflow-y-auto h-full dark:bg-gray-800 dark:border-gray-800"
178
167
  },
179
168
  LuDesktopSidebarHeader: {
180
- default: "p-4 shrink-0",
169
+ default: "p-4 shrink-0"
181
170
  },
182
171
  LuDesktopSidebarContent: {
183
- default: "flex-1 overflow-y-auto p-4",
172
+ default: "flex-1 overflow-y-auto p-4"
184
173
  },
185
174
  LuDesktopSidebarFooter: {
186
- default: "p-4 shrink-0",
175
+ default: "p-4 shrink-0"
187
176
  },
188
177
  LuDesktopStatusBar: {
189
- default: "flex items-center justify-between w-full h-8 border-t border-gray-200 bg-gray-50 px-4 text-xs text-gray-500 shrink-0 dark:bg-gray-800 dark:border-gray-800 dark:text-gray-400",
178
+ default: "flex items-center justify-between w-full h-8 border-t border-gray-200 bg-gray-50 px-4 text-xs text-gray-500 shrink-0 dark:bg-gray-800 dark:border-gray-800 dark:text-gray-400"
190
179
  },
191
180
  LuDesktopShell: {
192
- default: "flex flex-col h-screen w-full overflow-hidden bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100",
181
+ default: "flex flex-col h-screen w-full overflow-hidden bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100"
193
182
  },
194
183
  LuDesktopShellContentWrapper: {
195
- default: "flex flex-1 w-full overflow-hidden",
184
+ default: "flex flex-1 w-full overflow-hidden"
196
185
  },
197
186
  LuDesktopShellMainContent: {
198
- default: "flex flex-1 flex-col overflow-hidden relative",
187
+ default: "flex flex-1 flex-col overflow-hidden relative"
199
188
  },
200
189
  LuSplit: {
201
190
  default: "flex w-full h-full overflow-hidden",
202
191
  horizontal: "flex flex-row w-full h-full overflow-hidden",
203
- vertical: "flex flex-col w-full h-full overflow-hidden",
192
+ vertical: "flex flex-col w-full h-full overflow-hidden"
204
193
  },
205
194
  LuSplitPane: {
206
- default: "relative overflow-hidden",
195
+ default: "relative overflow-hidden"
207
196
  },
208
197
  LuSplitResizer: {
209
198
  default: "bg-gray-200 hover:bg-blue-400 transition-colors z-10 dark:bg-gray-800 dark:hover:bg-blue-500",
210
199
  horizontal: "w-1 cursor-col-resize",
211
- vertical: "h-1 cursor-row-resize",
200
+ vertical: "h-1 cursor-row-resize"
212
201
  },
213
202
  LuMobileShell: {
214
- default: "flex flex-col h-full w-full overflow-hidden bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100",
203
+ default: "flex flex-col h-full w-full overflow-hidden bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100"
215
204
  },
216
205
  LuMobileShellContent: {
217
- default: "flex flex-1 flex-col overflow-hidden relative",
206
+ default: "flex flex-1 flex-col overflow-hidden relative"
218
207
  },
219
208
  LuMobileNavBar: {
220
- default: "flex items-center justify-around w-full h-14 border-t border-gray-200 bg-white shrink-0 pb-safe dark:bg-gray-900 dark:border-gray-800",
209
+ default: "flex items-center justify-around w-full h-14 border-t border-gray-200 bg-white shrink-0 pb-safe dark:bg-gray-900 dark:border-gray-800"
221
210
  },
222
211
  LuMobileHeader: {
223
- default: "flex items-center justify-between w-full h-14 border-b border-gray-200 bg-white px-4 shrink-0 pt-safe dark:bg-gray-900 dark:border-gray-800",
212
+ default: "flex items-center justify-between w-full h-14 border-b border-gray-200 bg-white px-4 shrink-0 pt-safe dark:bg-gray-900 dark:border-gray-800"
224
213
  },
225
214
  LuEmbeddedShell: {
226
- default: "flex flex-col h-full w-full overflow-hidden bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100 select-none",
215
+ default: "flex flex-col h-full w-full overflow-hidden bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100 select-none"
227
216
  },
228
217
  LuEmbeddedShellContent: {
229
- default: "flex flex-1 w-full overflow-hidden relative",
218
+ default: "flex flex-1 w-full overflow-hidden relative"
230
219
  },
231
220
  LuEmbeddedTopBar: {
232
- default: "flex items-center justify-between w-full h-16 bg-gray-900 text-white px-6 shrink-0",
221
+ default: "flex items-center justify-between w-full h-16 bg-gray-900 text-white px-6 shrink-0"
233
222
  },
234
223
  LuEmbeddedStatusBar: {
235
- default: "flex items-center justify-between w-full h-10 bg-gray-800 text-gray-300 px-6 text-sm shrink-0",
224
+ default: "flex items-center justify-between w-full h-10 bg-gray-800 text-gray-300 px-6 text-sm shrink-0"
236
225
  },
237
226
  LuStack: {
238
227
  default: "flex",
239
228
  vertical: "flex flex-col",
240
229
  horizontal: "flex flex-row",
241
- container: "flex flex-col w-full max-w-4xl mx-auto min-h-full",
230
+ container: "flex flex-col w-full max-w-4xl mx-auto min-h-full"
242
231
  },
243
232
  LuDock: {
244
233
  default: "flex flex-col h-full w-full overflow-hidden",
245
234
  vertical: "flex flex-col h-full w-full overflow-hidden",
246
- horizontal: "flex flex-row h-full w-full overflow-hidden",
235
+ horizontal: "flex flex-row h-full w-full overflow-hidden"
247
236
  },
248
237
  LuDockItem: {
249
238
  default: "shrink-0",
@@ -251,37 +240,37 @@ export const defaultSkin: SkinMap = {
251
240
  bottom: "shrink-0",
252
241
  left: "shrink-0 h-full",
253
242
  right: "shrink-0 h-full",
254
- fill: "flex-1 min-h-0 min-w-0 overflow-hidden",
243
+ fill: "flex-1 min-h-0 min-w-0 overflow-hidden"
255
244
  },
256
245
  LuFixed: {
257
- default: "shrink-0",
246
+ default: "shrink-0"
258
247
  },
259
248
  LuFill: {
260
- default: "flex-1 min-h-0 min-w-0 overflow-hidden",
249
+ default: "flex-1 min-h-0 min-w-0 overflow-hidden"
261
250
  },
262
251
  LuScroll: {
263
252
  default: "overflow-y-auto h-full",
264
- horizontal: "overflow-x-auto w-full",
253
+ horizontal: "overflow-x-auto w-full"
265
254
  },
266
255
  LuOverlay: {
267
- default: "absolute inset-0 z-50",
256
+ default: "absolute inset-0 z-50"
268
257
  },
269
258
  LuGrid: {
270
259
  default: "grid",
271
- "responsive-3": "grid grid-cols-1 md:grid-cols-3 lg:grid-cols-3",
260
+ "responsive-3": "grid grid-cols-1 md:grid-cols-3 lg:grid-cols-3"
272
261
  },
273
262
  LuAvatar: {
274
263
  default: "relative inline-flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
275
264
  sm: "h-8 w-8",
276
265
  md: "h-10 w-10",
277
266
  lg: "h-12 w-12",
278
- xl: "h-16 w-16",
267
+ xl: "h-16 w-16"
279
268
  },
280
269
  LuAvatarImage: {
281
- default: "aspect-square h-full w-full object-cover",
270
+ default: "aspect-square h-full w-full object-cover"
282
271
  },
283
272
  LuAvatarFallback: {
284
- default: "flex h-full w-full items-center justify-center rounded-full bg-gray-200 text-gray-700 text-sm font-medium dark:bg-gray-700 dark:text-gray-200",
273
+ default: "flex h-full w-full items-center justify-center rounded-full bg-gray-200 text-gray-700 text-sm font-medium dark:bg-gray-700 dark:text-gray-200"
285
274
  },
286
275
  LuBadge: {
287
276
  default: "inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-300",
@@ -290,22 +279,22 @@ export const defaultSkin: SkinMap = {
290
279
  danger: "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400",
291
280
  success: "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400",
292
281
  warning: "bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400",
293
- info: "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400",
282
+ info: "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400"
294
283
  },
295
284
  LuCard: {
296
285
  default: "rounded-xl border border-gray-200 bg-white text-gray-950 shadow-sm p-6 dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50",
297
286
  panel: "rounded-xl border border-gray-200 bg-white text-gray-950 shadow-sm p-8 dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50",
298
287
  surface: "rounded-xl border border-gray-200 bg-white text-gray-950 shadow-sm overflow-hidden dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50",
299
- footer: "border-t border-gray-200 bg-gray-50/50 dark:border-gray-800 dark:bg-gray-900/50 p-6",
288
+ footer: "border-t border-gray-200 bg-gray-50/50 dark:border-gray-800 dark:bg-gray-900/50 p-6"
300
289
  },
301
290
  LuDivider: {
302
291
  default: "shrink-0 bg-gray-200 dark:bg-gray-800",
303
292
  horizontal: "h-[1px] w-full",
304
- vertical: "h-full w-[1px]",
293
+ vertical: "h-full w-[1px]"
305
294
  },
306
295
  LuSelect: {
307
296
  default: "flex h-10 w-full items-center justify-between rounded-md border border-gray-300 bg-white px-3 py-2 text-sm ring-offset-white placeholder:text-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-700 dark:bg-gray-900 dark:ring-offset-gray-950 dark:placeholder:text-gray-400",
308
- theme: "w-32",
297
+ theme: "w-32"
309
298
  },
310
299
  LuSwitch: {
311
300
  default: "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-blue-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 bg-gray-200 dark:bg-gray-700 dark:focus-visible:ring-offset-gray-950",
@@ -313,100 +302,98 @@ export const defaultSkin: SkinMap = {
313
302
  thumb: "pointer-events-none block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform dark:bg-white",
314
303
  thumbChecked: "translate-x-5",
315
304
  thumbUnchecked: "translate-x-0",
316
- 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-blue-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 bg-gray-200 dark:bg-gray-700 dark:focus-visible:ring-offset-gray-950",
305
+ 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-blue-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 bg-gray-200 dark:bg-gray-700 dark:focus-visible:ring-offset-gray-950"
317
306
  },
318
307
  LuSwitchThumb: {
319
308
  default: "pointer-events-none block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform dark:bg-white",
320
- checked: "translate-x-5",
309
+ checked: "translate-x-5"
321
310
  },
322
311
  LuTable: {
323
- default: "w-full caption-bottom text-sm",
312
+ default: "w-full caption-bottom text-sm"
324
313
  },
325
314
  LuTableHead: {
326
- default: "border-b border-gray-200 dark:border-gray-800",
315
+ default: "border-b border-gray-200 dark:border-gray-800"
327
316
  },
328
317
  LuTableBody: {
329
- default: "[&_tr:last-child]:border-0",
318
+ default: "[&_tr:last-child]:border-0"
330
319
  },
331
320
  LuTableRow: {
332
- default: "border-b border-gray-200 transition-colors hover:bg-gray-100/50 data-[state=selected]:bg-gray-100 dark:border-gray-800 dark:hover:bg-gray-800/50 dark:data-[state=selected]:bg-gray-800",
321
+ default: "border-b border-gray-200 transition-colors hover:bg-gray-100/50 data-[state=selected]:bg-gray-100 dark:border-gray-800 dark:hover:bg-gray-800/50 dark:data-[state=selected]:bg-gray-800"
333
322
  },
334
323
  LuTableHeadCell: {
335
- default: "h-12 px-4 text-left align-middle font-medium text-gray-500 dark:text-gray-400 [&:has([role=checkbox])]:pr-0",
324
+ default: "h-12 px-4 text-left align-middle font-medium text-gray-500 dark:text-gray-400 [&:has([role=checkbox])]:pr-0"
336
325
  },
337
326
  LuTableCell: {
338
- default: "p-4 align-middle [&:has([role=checkbox])]:pr-0",
327
+ default: "p-4 align-middle [&:has([role=checkbox])]:pr-0"
339
328
  },
340
329
  LuTabs: {
341
- default: "flex flex-col w-full",
330
+ default: "flex flex-col w-full"
342
331
  },
343
332
  LuTabList: {
344
333
  default: "flex items-center gap-1 border-b border-gray-200 dark:border-gray-800",
345
- "card-header": "flex items-center gap-1 w-full border-b border-gray-200 px-4 dark:border-gray-800",
334
+ "card-header": "flex items-center gap-1 w-full border-b border-gray-200 px-4 dark:border-gray-800"
346
335
  },
347
336
  LuTab: {
348
337
  default: "relative px-3 py-2 text-sm font-medium text-gray-500 hover:text-gray-700 border-b-2 border-transparent -mb-px transition-colors duration-150 focus:outline-none cursor-pointer dark:text-gray-400 dark:hover:text-gray-200",
349
- active: "text-blue-600 border-blue-600 dark:text-blue-400 dark:border-blue-400",
338
+ active: "text-blue-600 border-blue-600 dark:text-blue-400 dark:border-blue-400"
350
339
  },
351
340
  LuTabPanel: {
352
- default: "pt-4 focus:outline-none",
341
+ default: "pt-4 focus:outline-none"
353
342
  },
354
343
  LuTooltip: {
355
- default: "relative inline-block",
344
+ default: "relative inline-block"
356
345
  },
357
346
  LuTooltipContent: {
358
347
  default: "absolute z-50 whitespace-nowrap overflow-hidden rounded-md border border-gray-200 bg-white px-3 py-1.5 text-sm text-gray-950 shadow-md animate-in fade-in-0 zoom-in-95 dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50",
359
348
  top: "bottom-full mb-2 left-1/2 -translate-x-1/2",
360
349
  bottom: "top-full mt-2 left-1/2 -translate-x-1/2",
361
350
  left: "right-full mr-2 top-1/2 -translate-y-1/2",
362
- right: "left-full ml-2 top-1/2 -translate-y-1/2",
351
+ right: "left-full ml-2 top-1/2 -translate-y-1/2"
363
352
  },
364
353
  LuProgressBar: {
365
354
  default: "h-2 w-full bg-gray-100 dark:bg-gray-800 rounded-full overflow-hidden",
366
355
  primary: "bg-blue-100 dark:bg-blue-900/30",
367
- success: "bg-green-100 dark:bg-green-900/30",
356
+ success: "bg-green-100 dark:bg-green-900/30"
368
357
  },
369
358
  LuProgressBarFill: {
370
359
  default: "h-full bg-gray-900 dark:bg-gray-50 transition-all duration-300 ease-in-out",
371
360
  primary: "bg-blue-600 dark:bg-blue-500",
372
- success: "bg-green-500 dark:bg-green-400",
361
+ success: "bg-green-500 dark:bg-green-400"
373
362
  },
374
363
  LuCollapsible: {
375
- default: "w-full",
364
+ default: "w-full"
376
365
  },
377
366
  LuCollapsibleTrigger: {
378
- default: "w-full text-left flex items-center justify-between px-2 py-2 rounded text-sm font-medium text-gray-700 hover:bg-gray-100 transition-colors dark:text-gray-300 dark:hover:bg-gray-800 cursor-pointer focus:outline-none",
367
+ default: "w-full text-left flex items-center justify-between px-2 py-2 rounded text-sm font-medium text-gray-700 hover:bg-gray-100 transition-colors dark:text-gray-300 dark:hover:bg-gray-800 cursor-pointer focus:outline-none"
379
368
  },
380
369
  LuCollapsibleContent: {
381
- default: "overflow-hidden",
370
+ default: "overflow-hidden"
382
371
  },
383
372
  LuLink: {
384
373
  default: "inline-flex items-center gap-1 font-medium hover:underline underline-offset-4 hover:text-gray-600 dark:hover:text-gray-300 focus:outline-none",
385
374
  nav: "inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500",
386
375
  "nav-active": "inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium bg-gray-100 text-gray-900 dark:bg-gray-800 dark:text-gray-50 focus:outline-none",
387
- brand: "inline-flex items-center gap-1 font-medium text-gray-900 dark:text-gray-50 hover:opacity-80 transition-opacity focus:outline-none",
376
+ brand: "inline-flex items-center gap-1 font-medium text-gray-900 dark:text-gray-50 hover:opacity-80 transition-opacity focus:outline-none"
388
377
  },
389
378
  LuText: {
390
379
  default: "text-gray-900 dark:text-gray-100",
391
380
  "page-title": "text-4xl sm:text-5xl font-extrabold tracking-tight text-gray-950 dark:text-white",
392
381
  "page-subtitle": "text-lg sm:text-xl text-gray-500 dark:text-gray-400 leading-relaxed max-w-[750px]",
393
382
  "section-title": "text-2xl font-semibold tracking-tight text-gray-900 dark:text-gray-50",
394
- "body": "text-base text-gray-600 dark:text-gray-300 leading-7",
395
- "label": "text-xs font-semibold uppercase tracking-widest text-gray-500 dark:text-gray-400",
396
- "muted": "text-sm text-gray-400 dark:text-gray-500",
397
- "code": "font-mono text-sm border border-gray-200 dark:border-gray-800 bg-gray-100/50 text-gray-800 dark:bg-gray-800/50 dark:text-gray-200 px-1.5 py-0.5 rounded-md",
383
+ body: "text-base text-gray-600 dark:text-gray-300 leading-7",
384
+ label: "text-xs font-semibold uppercase tracking-widest text-gray-500 dark:text-gray-400",
385
+ muted: "text-sm text-gray-400 dark:text-gray-500",
386
+ code: "font-mono text-sm border border-gray-200 dark:border-gray-800 bg-gray-100/50 text-gray-800 dark:bg-gray-800/50 dark:text-gray-200 px-1.5 py-0.5 rounded-md"
398
387
  },
399
388
  LuPageHeader: {
400
- default: "mb-10 pb-8 border-b border-gray-200 dark:border-gray-800",
389
+ default: "mb-10 pb-8 border-b border-gray-200 dark:border-gray-800"
401
390
  },
402
391
  LuToggleGroup: {
403
- default: "inline-flex items-center rounded-lg border border-gray-300 bg-gray-100 p-0.5 gap-0.5 shadow-sm dark:border-gray-600 dark:bg-gray-800",
392
+ default: "inline-flex items-center rounded-lg border border-gray-300 bg-gray-100 p-0.5 gap-0.5 shadow-sm dark:border-gray-600 dark:bg-gray-800"
404
393
  },
405
394
  LuToggleButton: {
406
- default:
407
- "inline-flex items-center justify-center rounded-md p-2 text-gray-500 transition-all duration-150 focus:outline-none hover:bg-white hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200",
408
- active:
409
- "bg-white text-gray-900 shadow-sm dark:bg-gray-600 dark:text-gray-100",
395
+ default: "inline-flex items-center justify-center rounded-md p-2 text-gray-500 transition-all duration-150 focus:outline-none hover:bg-white hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200",
396
+ active: "bg-white text-gray-900 shadow-sm dark:bg-gray-600 dark:text-gray-100"
410
397
  },
411
398
  LuCodeBlock: {
412
399
  container: "flex flex-col gap-4",
@@ -421,6 +408,9 @@ export const defaultSkin: SkinMap = {
421
408
  codeHeader: "flex items-center justify-between px-4 py-2 border-b border-gray-800 bg-[#282c34]",
422
409
  badge: "text-xs font-mono font-medium text-gray-400 uppercase tracking-widest",
423
410
  copyButton: "text-gray-400 hover:text-white transition-colors p-1.5 rounded-md hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-400",
424
- codeContent: "p-4 overflow-x-auto text-sm bg-[#282c34] [&>pre]:!bg-transparent [&>pre]:!m-0 [&>pre]:!p-0",
425
- },
411
+ codeContent: "p-4 overflow-x-auto text-sm bg-[#282c34] [&>pre]:!bg-transparent [&>pre]:!m-0 [&>pre]:!p-0"
412
+ }
413
+ };
414
+ export {
415
+ e as defaultSkin
426
416
  };
@@ -0,0 +1 @@
1
+ export declare function getLumoraSourceDir(importerUrl?: string): string;
@@ -0,0 +1,13 @@
1
+ import { createRequire as o } from "node:module";
2
+ import t from "node:path";
3
+ function m(r) {
4
+ try {
5
+ const e = o(r ?? import.meta.url);
6
+ return t.dirname(e.resolve("@astrake/lumora-ui/package.json"));
7
+ } catch {
8
+ return "./node_modules/@astrake/lumora-ui";
9
+ }
10
+ }
11
+ export {
12
+ m as getLumoraSourceDir
13
+ };
@@ -0,0 +1,15 @@
1
+ import type { Component, Ref, ComputedRef } from "vue";
2
+ export type SkinMap = {
3
+ [componentName: string]: {
4
+ default?: string;
5
+ [variant: string]: string | undefined;
6
+ };
7
+ };
8
+ export type IconResolver = (name: string, size?: number) => Component | null;
9
+ export interface LumoraUIConfig {
10
+ target?: "mobile" | "desktop" | "embedded";
11
+ skin?: SkinMap | Ref<SkinMap> | ComputedRef<SkinMap>;
12
+ locale?: string;
13
+ a11y?: boolean;
14
+ icons?: IconResolver;
15
+ }
@@ -0,0 +1,21 @@
1
+ import { ref as o, computed as a } from "vue";
2
+ const e = o("system"), r = o(!1);
3
+ if (typeof window < "u") {
4
+ const t = window.matchMedia("(prefers-color-scheme: dark)");
5
+ r.value = t.matches, t.addEventListener("change", (s) => {
6
+ r.value = s.matches;
7
+ });
8
+ }
9
+ const n = a(() => e.value === "system" ? r.value ? "dark" : "light" : e.value);
10
+ function u() {
11
+ return {
12
+ mode: e,
13
+ resolved: n,
14
+ setMode: (s) => {
15
+ e.value = s;
16
+ }
17
+ };
18
+ }
19
+ export {
20
+ u
21
+ };
@@ -0,0 +1,21 @@
1
+ import { type ClassValue } from "clsx";
2
+ import type { SkinMap } from "./types";
3
+ /**
4
+ * Merges Tailwind classes intelligently
5
+ */
6
+ export declare function cn(...inputs: ClassValue[]): string;
7
+ /**
8
+ * Extends a base skin with a user skin, intelligently merging Tailwind classes
9
+ */
10
+ export declare function extendSkin(baseSkin: SkinMap, userSkin: SkinMap): SkinMap;
11
+ /**
12
+ * Resolves standard layout props to Tailwind classes statically.
13
+ */
14
+ export declare function resolveLayoutProps(props: {
15
+ gap?: string | number;
16
+ padding?: string | number;
17
+ align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';
18
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
19
+ width?: string;
20
+ height?: string;
21
+ }): string;