@astrake/lumora-ui 0.2.1 → 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 (39) hide show
  1. package/CHANGELOG.md +180 -141
  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-CIksvebU.js → LuEmbeddedStatusBar.vue_vue_type_script_setup_true_lang-D4rqklgo.js} +1 -1
  4. package/dist/LuOverlay.vue_vue_type_script_setup_true_lang-C5jhqCgy.js +221 -0
  5. package/dist/components/LuCard.vue.d.ts +0 -3
  6. package/dist/components/LuCheckbox.vue.d.ts +2 -2
  7. package/dist/components/LuCodeBlock.vue.d.ts +11 -14
  8. package/dist/components/LuCollapsible.vue.d.ts +2 -2
  9. package/dist/components/LuForm.vue.d.ts +2 -2
  10. package/dist/components/LuModal.vue.d.ts +5 -5
  11. package/dist/components/LuPagination.vue.d.ts +2 -2
  12. package/dist/components/LuRadioGroup.vue.d.ts +2 -2
  13. package/dist/components/_all.d.ts +3 -0
  14. package/dist/components/index.js +1 -1
  15. package/dist/composables/index.d.ts +1 -0
  16. package/dist/composables/index.js +15 -14
  17. package/dist/composables/useShiki.d.ts +2 -0
  18. package/dist/context-CGS7Ou_x.js +36 -0
  19. package/dist/index.js +154 -82
  20. package/dist/layout/LuFill.vue.d.ts +0 -3
  21. package/dist/layout/LuFixed.vue.d.ts +0 -3
  22. package/dist/layout/LuGrid.vue.d.ts +0 -4
  23. package/dist/layout/LuStack.vue.d.ts +5 -3
  24. package/dist/layout/index.js +1 -1
  25. package/dist/shell/index.js +1 -1
  26. package/dist/skins/components.d.ts +2 -0
  27. package/dist/skins/index.js +251 -221
  28. package/dist/skins/layout.d.ts +2 -0
  29. package/dist/skins/shell/desktop.d.ts +2 -0
  30. package/dist/skins/shell/embedded.d.ts +2 -0
  31. package/dist/skins/shell/mobile.d.ts +2 -0
  32. package/dist/useShiki-DPOJfneq.js +30 -0
  33. package/dist/utils.d.ts +0 -11
  34. package/package.json +94 -94
  35. package/src/lumora.css +48 -16
  36. package/dist/LuCodeBlock.vue_vue_type_script_setup_true_lang-BjwcjuXF.js +0 -1623
  37. package/dist/LuOverlay.vue_vue_type_script_setup_true_lang-DZch4Vrw.js +0 -226
  38. package/dist/context-0gENwESP.js +0 -62
  39. package/dist/useTheme-Cd4wVaLs.js +0 -21
@@ -0,0 +1,2 @@
1
+ import type { SkinMap } from "../types";
2
+ export declare const layoutSkin: SkinMap;
@@ -0,0 +1,2 @@
1
+ import type { SkinMap } from "../../types";
2
+ export declare const desktopSkin: SkinMap;
@@ -0,0 +1,2 @@
1
+ import type { SkinMap } from "../../types";
2
+ export declare const embeddedSkin: SkinMap;
@@ -0,0 +1,2 @@
1
+ import type { SkinMap } from "../../types";
2
+ export declare const mobileSkin: SkinMap;
@@ -0,0 +1,30 @@
1
+ import { ref as o, computed as i } from "vue";
2
+ import { createHighlighter as l } from "shiki";
3
+ const t = o("system"), n = o(!1);
4
+ if (typeof window < "u") {
5
+ const r = window.matchMedia("(prefers-color-scheme: dark)");
6
+ n.value = r.matches, r.addEventListener("change", (s) => {
7
+ n.value = s.matches;
8
+ });
9
+ }
10
+ const u = i(() => t.value === "system" ? n.value ? "dark" : "light" : t.value);
11
+ function c() {
12
+ return {
13
+ mode: t,
14
+ resolved: u,
15
+ setMode: (s) => {
16
+ t.value = s;
17
+ }
18
+ };
19
+ }
20
+ let e = null, a = null;
21
+ async function d() {
22
+ return e || (a || (a = l({
23
+ themes: ["one-dark-pro"],
24
+ langs: ["bash", "vue", "ts", "html", "css", "json"]
25
+ })), e = await a, e);
26
+ }
27
+ export {
28
+ d as g,
29
+ c as u
30
+ };
package/dist/utils.d.ts CHANGED
@@ -8,14 +8,3 @@ export declare function cn(...inputs: ClassValue[]): string;
8
8
  * Extends a base skin with a user skin, intelligently merging Tailwind classes
9
9
  */
10
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;
package/package.json CHANGED
@@ -1,94 +1,94 @@
1
- {
2
- "name": "@astrake/lumora-ui",
3
- "version": "0.2.1",
4
- "description": "Headless Vue 3 component framework for three surface targets — Mobile, Desktop, and Embedded — with a unified --lu-* design token system.",
5
- "author": "Anuvab Chakraborty (https://github.com/madlybong)",
6
- "license": "MIT",
7
- "type": "module",
8
- "main": "./dist/index.js",
9
- "module": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
- "exports": {
12
- ".": {
13
- "types": "./dist/index.d.ts",
14
- "import": "./dist/index.js"
15
- },
16
- "./style": "./src/lumora.css",
17
- "./tailwind": {
18
- "types": "./dist/tailwind.d.ts",
19
- "import": "./dist/tailwind.js"
20
- },
21
- "./layout": {
22
- "types": "./dist/layout/index.d.ts",
23
- "import": "./dist/layout/index.js"
24
- },
25
- "./shell": {
26
- "types": "./dist/shell/index.d.ts",
27
- "import": "./dist/shell/index.js"
28
- },
29
- "./components": {
30
- "types": "./dist/components/index.d.ts",
31
- "import": "./dist/components/index.js"
32
- },
33
- "./composables": {
34
- "types": "./dist/composables/index.d.ts",
35
- "import": "./dist/composables/index.js"
36
- },
37
- "./skins": {
38
- "types": "./dist/skins/index.d.ts",
39
- "import": "./dist/skins/index.js"
40
- }
41
- },
42
- "keywords": [
43
- "vue",
44
- "vue3",
45
- "ui",
46
- "components",
47
- "mobile",
48
- "desktop",
49
- "embedded",
50
- "headless",
51
- "design-tokens",
52
- "lumora",
53
- "astrake",
54
- "typescript"
55
- ],
56
- "repository": {
57
- "type": "git",
58
- "url": "https://github.com/madlybong/LumoraUI.git"
59
- },
60
- "homepage": "https://ui.lumora.astrake.com",
61
- "bugs": {
62
- "url": "https://github.com/madlybong/LumoraUI/issues"
63
- },
64
- "funding": {
65
- "type": "github",
66
- "url": "https://github.com/sponsors/madlybong"
67
- },
68
- "publishConfig": {
69
- "access": "public",
70
- "registry": "https://registry.npmjs.org/"
71
- },
72
- "files": [
73
- "dist",
74
- "src/lumora.css",
75
- "README.md",
76
- "CHANGELOG.md"
77
- ],
78
- "scripts": {
79
- "prepack": "bun run build && bun -e \"await Bun.write('README.md', await Bun.file('../../README.md').text()); await Bun.write('CHANGELOG.md', await Bun.file('../../CHANGELOG.md').text())\"",
80
- "postpack": "bun -e \"import { unlinkSync } from 'fs'; try { unlinkSync('README.md') } catch(e){} try { unlinkSync('CHANGELOG.md') } catch(e){}\"",
81
- "build:types": "bun -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\" && bun run vue-tsc -p tsconfig.build.json",
82
- "build": "bun -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\" && bun run vue-tsc -p tsconfig.build.json && bun run ../../node_modules/vite/bin/vite.js build -c vite.config.ts",
83
- "check": "vue-tsc -p ./tsconfig.json"
84
- },
85
- "peerDependencies": {
86
- "tailwindcss": "^4.0.0",
87
- "vue": "^3.5.0"
88
- },
89
- "dependencies": {
90
- "clsx": "^2.1.1",
91
- "shiki": "^4.0.2",
92
- "tailwind-merge": "^3.5.0"
93
- }
94
- }
1
+ {
2
+ "name": "@astrake/lumora-ui",
3
+ "version": "0.2.2",
4
+ "description": "Headless Vue 3 component framework for three surface targets — Mobile, Desktop, and Embedded — with a unified --lu-* design token system.",
5
+ "author": "Anuvab Chakraborty (https://github.com/madlybong)",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./style": "./src/lumora.css",
17
+ "./tailwind": {
18
+ "types": "./dist/tailwind.d.ts",
19
+ "import": "./dist/tailwind.js"
20
+ },
21
+ "./layout": {
22
+ "types": "./dist/layout/index.d.ts",
23
+ "import": "./dist/layout/index.js"
24
+ },
25
+ "./shell": {
26
+ "types": "./dist/shell/index.d.ts",
27
+ "import": "./dist/shell/index.js"
28
+ },
29
+ "./components": {
30
+ "types": "./dist/components/index.d.ts",
31
+ "import": "./dist/components/index.js"
32
+ },
33
+ "./composables": {
34
+ "types": "./dist/composables/index.d.ts",
35
+ "import": "./dist/composables/index.js"
36
+ },
37
+ "./skins": {
38
+ "types": "./dist/skins/index.d.ts",
39
+ "import": "./dist/skins/index.js"
40
+ }
41
+ },
42
+ "keywords": [
43
+ "vue",
44
+ "vue3",
45
+ "ui",
46
+ "components",
47
+ "mobile",
48
+ "desktop",
49
+ "embedded",
50
+ "headless",
51
+ "design-tokens",
52
+ "lumora",
53
+ "astrake",
54
+ "typescript"
55
+ ],
56
+ "repository": {
57
+ "type": "git",
58
+ "url": "https://github.com/madlybong/LumoraUI.git"
59
+ },
60
+ "homepage": "https://ui.lumora.astrake.com",
61
+ "bugs": {
62
+ "url": "https://github.com/madlybong/LumoraUI/issues"
63
+ },
64
+ "funding": {
65
+ "type": "github",
66
+ "url": "https://github.com/sponsors/madlybong"
67
+ },
68
+ "publishConfig": {
69
+ "access": "public",
70
+ "registry": "https://registry.npmjs.org/"
71
+ },
72
+ "files": [
73
+ "dist",
74
+ "src/lumora.css",
75
+ "README.md",
76
+ "CHANGELOG.md"
77
+ ],
78
+ "scripts": {
79
+ "prepack": "bun run build && bun -e \"await Bun.write('README.md', await Bun.file('../../README.md').text()); await Bun.write('CHANGELOG.md', await Bun.file('../../CHANGELOG.md').text())\"",
80
+ "postpack": "bun -e \"import { unlinkSync } from 'fs'; try { unlinkSync('README.md') } catch(e){} try { unlinkSync('CHANGELOG.md') } catch(e){}\"",
81
+ "build:types": "bun -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\" && bun run vue-tsc -p tsconfig.build.json",
82
+ "build": "bun -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\" && bun run vue-tsc -p tsconfig.build.json && bun run ../../node_modules/vite/bin/vite.js build -c vite.config.ts",
83
+ "check": "vue-tsc -p ./tsconfig.json"
84
+ },
85
+ "peerDependencies": {
86
+ "tailwindcss": "^4.0.0",
87
+ "vue": "^3.5.0"
88
+ },
89
+ "dependencies": {
90
+ "clsx": "^2.1.1",
91
+ "shiki": "^4.0.2",
92
+ "tailwind-merge": "^3.5.0"
93
+ }
94
+ }
package/src/lumora.css CHANGED
@@ -1,16 +1,48 @@
1
- /* LumoraUI structural baseline — Tailwind v4 Escape Hatch, v0.1.7+ */
2
- /* Consumers MUST import this: import '@astrake/lumora-ui/style' */
3
-
4
- /*
5
- With the transition to Tailwind v4 as the native design engine,
6
- all structural layout classes (e.g., .lu-button, .lu-stack) have been removed.
7
- Layout structure is now provided by the defaultSkin (`default.ts`) out of the box.
8
-
9
- This file serves as an escape hatch for:
10
- 1. Complex [data-state="..."] selector combinations.
11
- 2. Webkit scrollbar pseudoclasses.
12
- 3. Keyframe animations that Tailwind v4 cannot natively express.
13
- */
14
-
15
- /* Example: Webkit Scrollbar overrides can go here */
16
-
1
+ /* LumoraUI structural baseline — Tailwind v4 Escape Hatch, v0.1.7+ */
2
+ /* Consumers MUST import this: import '@astrake/lumora-ui/style' */
3
+
4
+ /*
5
+ With the transition to Tailwind v4 as the native design engine,
6
+ all structural layout classes (e.g., .lu-button, .lu-stack) have been removed.
7
+ Layout structure is now provided by the defaultSkin (`default.ts`) out of the box.
8
+
9
+ This file serves as an escape hatch for:
10
+ 1. Complex [data-state="..."] selector combinations.
11
+ 2. Webkit scrollbar pseudoclasses.
12
+ 3. Keyframe animations that Tailwind v4 cannot natively express.
13
+ */
14
+
15
+ /* Example: Webkit Scrollbar overrides can go here */
16
+
17
+ .lu-collapsible-enter-active,
18
+ .lu-collapsible-leave-active {
19
+ display: grid;
20
+ transition: grid-template-rows 200ms ease;
21
+ }
22
+ .lu-collapsible-enter-from,
23
+ .lu-collapsible-leave-to {
24
+ grid-template-rows: 0fr;
25
+ }
26
+ .lu-collapsible-enter-to,
27
+ .lu-collapsible-leave-from {
28
+ grid-template-rows: 1fr;
29
+ }
30
+
31
+ :root {
32
+ --lu-ease-spring: cubic-bezier(0.16, 1, 0.3, 1);
33
+ }
34
+
35
+ @keyframes lu-fade-in {
36
+ from {
37
+ opacity: 0;
38
+ transform: scale(0.97) translateY(-3px);
39
+ }
40
+ to {
41
+ opacity: 1;
42
+ transform: scale(1) translateY(0);
43
+ }
44
+ }
45
+
46
+ .lu-fade-in {
47
+ animation: lu-fade-in 130ms var(--lu-ease-spring) forwards;
48
+ }