@astrake/lumora-ui 0.1.6 → 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 (157) hide show
  1. package/CHANGELOG.md +141 -92
  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/{src/components/index.ts → dist/components/index.d.ts} +16 -0
  53. package/dist/components/index.js +47 -0
  54. package/{src/composables/index.ts → dist/composables/index.d.ts} +0 -1
  55. package/dist/composables/index.js +30 -0
  56. package/dist/composables/useRail.d.ts +6 -0
  57. package/dist/composables/useSplit.d.ts +4 -0
  58. package/dist/composables/useTheme.d.ts +7 -0
  59. package/dist/context-0gENwESP.js +62 -0
  60. package/dist/context.d.ts +8 -0
  61. package/{src/index.ts → dist/index.d.ts} +2 -3
  62. package/dist/index.js +94 -0
  63. package/dist/layout/LuDock.vue.d.ts +9 -0
  64. package/dist/layout/LuDockItem.vue.d.ts +16 -0
  65. package/dist/layout/LuFill.vue.d.ts +21 -0
  66. package/dist/layout/LuFixed.vue.d.ts +21 -0
  67. package/dist/layout/LuGrid.vue.d.ts +26 -0
  68. package/dist/layout/LuOverlay.vue.d.ts +15 -0
  69. package/dist/layout/LuScroll.vue.d.ts +15 -0
  70. package/dist/layout/LuSplit.vue.d.ts +16 -0
  71. package/dist/layout/LuSplitPane.vue.d.ts +18 -0
  72. package/dist/layout/LuSplitResizer.vue.d.ts +5 -0
  73. package/dist/layout/LuStack.vue.d.ts +23 -0
  74. package/{src/layout/index.ts → dist/layout/index.d.ts} +1 -14
  75. package/dist/layout/index.js +14 -0
  76. package/dist/plugin.d.ts +6 -0
  77. package/dist/shell/desktop/LuDesktopRailBar.vue.d.ts +17 -0
  78. package/dist/shell/desktop/LuDesktopRailItem.vue.d.ts +18 -0
  79. package/dist/shell/desktop/LuDesktopShell.vue.d.ts +23 -0
  80. package/dist/shell/desktop/LuDesktopSidebar.vue.d.ts +21 -0
  81. package/dist/shell/desktop/LuDesktopStatusBar.vue.d.ts +15 -0
  82. package/dist/shell/desktop/LuDesktopTopBar.vue.d.ts +15 -0
  83. package/dist/shell/embedded/LuEmbeddedShell.vue.d.ts +19 -0
  84. package/dist/shell/embedded/LuEmbeddedStatusBar.vue.d.ts +17 -0
  85. package/dist/shell/embedded/LuEmbeddedTopBar.vue.d.ts +19 -0
  86. package/{src/shell/index.ts → dist/shell/index.d.ts} +4 -2
  87. package/dist/shell/index.js +15 -0
  88. package/dist/shell/mobile/LuMobileHeader.vue.d.ts +19 -0
  89. package/dist/shell/mobile/LuMobileNavBar.vue.d.ts +15 -0
  90. package/dist/shell/mobile/LuMobileShell.vue.d.ts +21 -0
  91. package/dist/skins/default.d.ts +2 -0
  92. package/dist/skins/index.js +416 -0
  93. package/dist/tailwind.d.ts +1 -0
  94. package/dist/tailwind.js +13 -0
  95. package/dist/types.d.ts +15 -0
  96. package/dist/useTheme-Cd4wVaLs.js +21 -0
  97. package/dist/utils.d.ts +21 -0
  98. package/package.json +94 -61
  99. package/src/lumora.css +16 -0
  100. package/src/components/LuAvatar.vue +0 -22
  101. package/src/components/LuBadge.vue +0 -15
  102. package/src/components/LuButton.vue +0 -58
  103. package/src/components/LuCard.vue +0 -20
  104. package/src/components/LuCollapsible.vue +0 -34
  105. package/src/components/LuDivider.vue +0 -18
  106. package/src/components/LuForm.types.ts +0 -24
  107. package/src/components/LuForm.vue +0 -121
  108. package/src/components/LuIcon.vue +0 -39
  109. package/src/components/LuInput.vue +0 -62
  110. package/src/components/LuLink.vue +0 -47
  111. package/src/components/LuPageHeader.vue +0 -24
  112. package/src/components/LuProgressBar.vue +0 -21
  113. package/src/components/LuSelect.vue +0 -67
  114. package/src/components/LuSwitch.vue +0 -74
  115. package/src/components/LuTab.vue +0 -26
  116. package/src/components/LuTabList.vue +0 -15
  117. package/src/components/LuTabPanel.vue +0 -19
  118. package/src/components/LuTable.vue +0 -15
  119. package/src/components/LuTableBody.vue +0 -15
  120. package/src/components/LuTableCell.vue +0 -15
  121. package/src/components/LuTableHead.vue +0 -15
  122. package/src/components/LuTableHeadCell.vue +0 -15
  123. package/src/components/LuTableRow.vue +0 -15
  124. package/src/components/LuTabs.vue +0 -30
  125. package/src/components/LuText.vue +0 -18
  126. package/src/components/LuThemeSelect.vue +0 -26
  127. package/src/components/LuThemeSwitch.vue +0 -22
  128. package/src/components/LuTooltip.vue +0 -36
  129. package/src/components/__tests__/LuForm.test.ts +0 -206
  130. package/src/composables/useRail.ts +0 -24
  131. package/src/composables/useSplit.ts +0 -17
  132. package/src/composables/useTheme.ts +0 -36
  133. package/src/context.ts +0 -36
  134. package/src/layout/LuDock.vue +0 -23
  135. package/src/layout/LuDockItem.vue +0 -18
  136. package/src/layout/LuFill.vue +0 -17
  137. package/src/layout/LuFixed.vue +0 -17
  138. package/src/layout/LuGrid.vue +0 -22
  139. package/src/layout/LuOverlay.vue +0 -17
  140. package/src/layout/LuScroll.vue +0 -17
  141. package/src/layout/LuSplit.vue +0 -23
  142. package/src/layout/LuSplitPane.vue +0 -32
  143. package/src/layout/LuSplitResizer.vue +0 -17
  144. package/src/layout/LuStack.vue +0 -24
  145. package/src/plugin.ts +0 -27
  146. package/src/shell/desktop/LuDesktopRailBar.vue +0 -23
  147. package/src/shell/desktop/LuDesktopRailItem.vue +0 -23
  148. package/src/shell/desktop/LuDesktopShell.vue +0 -25
  149. package/src/shell/desktop/LuDesktopSidebar.vue +0 -36
  150. package/src/shell/desktop/LuDesktopStatusBar.vue +0 -15
  151. package/src/shell/desktop/LuDesktopTopBar.vue +0 -15
  152. package/src/shell/embedded/LuEmbeddedShell.vue +0 -20
  153. package/src/shell/mobile/LuMobileShell.vue +0 -21
  154. package/src/skins/default.ts +0 -94
  155. package/src/types.ts +0 -18
  156. package/tsconfig.json +0 -10
  157. /package/{src/skins/index.ts → dist/skins/index.d.ts} +0 -0
@@ -1,36 +0,0 @@
1
- <template>
2
- <div v-bind="$attrs" :class="resolvedSkin">
3
- <!-- Named slot layout: sticky header + scrollable content + sticky footer -->
4
- <template v-if="hasHeader || hasContent || hasFooter">
5
- <div v-if="hasHeader" :class="headerSkin">
6
- <slot name="header" />
7
- </div>
8
- <div :class="contentSkin">
9
- <slot name="content" />
10
- </div>
11
- <div v-if="hasFooter" :class="footerSkin">
12
- <slot name="footer" />
13
- </div>
14
- </template>
15
- <!-- Fallback: legacy default slot (no layout enforcement) -->
16
- <slot v-else />
17
- </div>
18
- </template>
19
-
20
- <script setup lang="ts">
21
- import { computed, useSlots } from "vue";
22
- import { useLumoraConfig } from "../../context";
23
-
24
- const props = defineProps<{ variant?: string }>();
25
-
26
- const slots = useSlots();
27
- const hasHeader = computed(() => !!slots.header);
28
- const hasContent = computed(() => !!slots.content);
29
- const hasFooter = computed(() => !!slots.footer);
30
-
31
- const { resolveSkin } = useLumoraConfig();
32
- const resolvedSkin = computed(() => resolveSkin("LuDesktopSidebar", props.variant));
33
- const headerSkin = computed(() => resolveSkin("LuDesktopSidebarHeader", props.variant));
34
- const contentSkin = computed(() => resolveSkin("LuDesktopSidebarContent", props.variant));
35
- const footerSkin = computed(() => resolveSkin("LuDesktopSidebarFooter", props.variant));
36
- </script>
@@ -1,15 +0,0 @@
1
- <template>
2
- <div v-bind="$attrs" :class="resolvedSkin">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <script setup lang="ts">
8
- import { computed } from "vue";
9
- import { useLumoraConfig } from "../../context";
10
-
11
- const props = defineProps<{ variant?: string }>();
12
-
13
- const { resolveSkin } = useLumoraConfig();
14
- const resolvedSkin = computed(() => resolveSkin("LuDesktopStatusBar", props.variant));
15
- </script>
@@ -1,15 +0,0 @@
1
- <template>
2
- <div v-bind="$attrs" :class="resolvedSkin">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <script setup lang="ts">
8
- import { computed } from "vue";
9
- import { useLumoraConfig } from "../../context";
10
-
11
- const props = defineProps<{ variant?: string }>();
12
-
13
- const { resolveSkin } = useLumoraConfig();
14
- const resolvedSkin = computed(() => resolveSkin("LuDesktopTopBar", props.variant));
15
- </script>
@@ -1,20 +0,0 @@
1
- <template>
2
- <div v-bind="$attrs" :class="resolvedSkin">
3
- <slot name="topbar" />
4
- <div :class="contentSkin">
5
- <slot name="content" />
6
- </div>
7
- <slot name="bottombar" />
8
- </div>
9
- </template>
10
-
11
- <script setup lang="ts">
12
- import { computed } from "vue";
13
- import { useLumoraConfig } from "../../context";
14
-
15
- const props = defineProps<{ variant?: string }>();
16
-
17
- const { resolveSkin } = useLumoraConfig();
18
- const resolvedSkin = computed(() => resolveSkin("LuEmbeddedShell", props.variant) || "flex flex-col h-screen w-screen overflow-hidden bg-black text-white touch-none select-none");
19
- const contentSkin = computed(() => resolveSkin("LuEmbeddedShellContent", props.variant) || "flex-1 min-h-0 min-w-0 flex flex-col relative overflow-hidden");
20
- </script>
@@ -1,21 +0,0 @@
1
- <template>
2
- <div v-bind="$attrs" :class="resolvedSkin">
3
- <slot name="header" />
4
- <div :class="contentSkin">
5
- <slot name="content" />
6
- </div>
7
- <slot name="navbar" />
8
- <slot name="drawer" />
9
- </div>
10
- </template>
11
-
12
- <script setup lang="ts">
13
- import { computed } from "vue";
14
- import { useLumoraConfig } from "../../context";
15
-
16
- const props = defineProps<{ variant?: string }>();
17
-
18
- const { resolveSkin } = useLumoraConfig();
19
- const resolvedSkin = computed(() => resolveSkin("LuMobileShell", props.variant) || "flex flex-col h-full w-full overflow-hidden bg-white relative");
20
- const contentSkin = computed(() => resolveSkin("LuMobileShellContent") || "flex flex-1 flex-col overflow-y-auto relative");
21
- </script>
@@ -1,94 +0,0 @@
1
- import type { SkinMap } from "../types";
2
-
3
- export const defaultSkin: SkinMap = {
4
- LuButton: {
5
- default:
6
- "inline-flex items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none",
7
- primary: "bg-blue-600 text-white hover:bg-blue-700 active:bg-blue-800",
8
- secondary: "bg-gray-100 text-gray-800 hover:bg-gray-200",
9
- ghost: "hover:bg-gray-100 text-gray-700",
10
- danger: "bg-red-600 text-white hover:bg-red-700",
11
- },
12
- LuIcon: {
13
- default: "inline-flex items-center justify-center shrink-0",
14
- sm: "w-4 h-4",
15
- md: "w-5 h-5",
16
- lg: "w-6 h-6",
17
- xl: "w-8 h-8",
18
- },
19
- LuInput: {
20
- default:
21
- "flex h-10 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",
22
- },
23
- LuDesktopRailBar: {
24
- default: "flex flex-col w-12 h-full border-r border-gray-200 bg-white transition-all duration-200 overflow-hidden",
25
- expanded: "w-56",
26
- },
27
- LuDesktopRailItem: {
28
- default: "flex items-center gap-3 px-3 py-2 text-gray-600 hover:bg-gray-100 cursor-pointer whitespace-nowrap",
29
- active: "bg-blue-50 text-blue-700 font-medium",
30
- },
31
- LuDesktopTopBar: {
32
- default: "flex items-center h-14 border-b border-gray-200 bg-white px-4 shrink-0",
33
- },
34
- LuDesktopSidebar: {
35
- default: "flex flex-col border-r border-gray-200 bg-gray-50 overflow-y-auto h-full",
36
- },
37
- LuDesktopStatusBar: {
38
- default: "flex items-center h-8 border-t border-gray-200 bg-gray-50 px-4 text-xs text-gray-500 shrink-0",
39
- },
40
- LuSplitPane: {
41
- default: "relative overflow-hidden",
42
- },
43
- LuSplitResizer: {
44
- default: "bg-gray-200 hover:bg-blue-400 transition-colors z-10",
45
- horizontal: "w-1 cursor-col-resize",
46
- vertical: "h-1 cursor-row-resize",
47
- },
48
- LuMobileNavBar: {
49
- default: "flex items-center justify-around h-14 border-t border-gray-200 bg-white shrink-0 pb-safe",
50
- },
51
- LuMobileHeader: {
52
- default: "flex items-center h-14 border-b border-gray-200 bg-white px-4 shrink-0 pt-safe",
53
- },
54
- LuStack: {
55
- default: "flex",
56
- vertical: "flex-col",
57
- horizontal: "flex-row",
58
- },
59
- LuDock: {
60
- default: "flex flex-col h-full w-full overflow-hidden",
61
- vertical: "flex flex-col h-full w-full overflow-hidden",
62
- horizontal: "flex flex-row h-full w-full overflow-hidden",
63
- },
64
- LuDockContent: {
65
- default: "flex flex-1 overflow-hidden",
66
- },
67
- LuFixed: {
68
- default: "shrink-0",
69
- },
70
- LuFill: {
71
- default: "flex-1 min-h-0 min-w-0 overflow-hidden",
72
- },
73
- LuScroll: {
74
- default: "overflow-y-auto h-full",
75
- horizontal: "overflow-x-auto w-full",
76
- },
77
- LuOverlay: {
78
- default: "absolute inset-0 z-50",
79
- },
80
- LuDockItem: {
81
- default: "shrink-0",
82
- top: "shrink-0",
83
- bottom: "shrink-0",
84
- left: "shrink-0 h-full",
85
- right: "shrink-0 h-full",
86
- fill: "flex-1 min-h-0 min-w-0 overflow-hidden",
87
- },
88
- LuGrid: {
89
- default: "grid",
90
- },
91
- LuMobileShellContent: {
92
- default: "flex flex-1 flex-col overflow-hidden relative",
93
- },
94
- };
package/src/types.ts DELETED
@@ -1,18 +0,0 @@
1
- import type { Component, Ref, ComputedRef } from "vue";
2
-
3
- export type SkinMap = {
4
- [componentName: string]: {
5
- default?: string;
6
- [variant: string]: string | undefined;
7
- };
8
- };
9
-
10
- export type IconResolver = (name: string, size?: number) => Component | null;
11
-
12
- export interface LumoraUIConfig {
13
- target?: "mobile" | "desktop" | "embedded";
14
- skin?: SkinMap | Ref<SkinMap> | ComputedRef<SkinMap>;
15
- locale?: string;
16
- a11y?: boolean;
17
- icons?: IconResolver;
18
- }
package/tsconfig.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "baseUrl": ".",
5
- "paths": {
6
- "@astrake/lumora-ui/*": ["./src/*"]
7
- }
8
- },
9
- "include": ["src/**/*.ts", "src/**/*.vue"]
10
- }
File without changes