@astrake/lumora-ui 0.1.1 → 0.1.5

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 (3) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/README.md +177 -0
  3. package/package.json +4 -3
package/CHANGELOG.md ADDED
@@ -0,0 +1,73 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ---
6
+
7
+ ## [0.1.5] — 2026-04-25
8
+
9
+ ### Fixed
10
+
11
+ - ci workflow errors — npm publish auth and correct artifact path (`af81e69`)
12
+
13
+
14
+ ---
15
+
16
+ ## [0.1.4] — 2026-04-25
17
+
18
+ ### Fixed
19
+
20
+ - prepack hook to include README and CHANGELOG in npm tarball (`e69bdfb`)
21
+
22
+
23
+ ---
24
+
25
+ ## [0.1.3] — 2026-04-25
26
+
27
+ ### Maintenance
28
+
29
+ - fix CI pipeline failures (`cde8248`)
30
+ - verify automated release pipeline (`c153464`)
31
+
32
+ All notable changes to `@astrake/lumora-ui` are documented here.
33
+
34
+ Format: [Keep a Changelog](https://keepachangelog.com/) · Commits: [Conventional Commits](https://www.conventionalcommits.org/)
35
+
36
+
37
+ ---
38
+
39
+ ## [0.1.0] — 2026-04-25
40
+
41
+ ### Added
42
+
43
+ - Initial workspace scaffold (`packages/core`, `apps/showcase`, `tools/`)
44
+ - Headless Vue 3 primitive component library targeting three surface types:
45
+ - **Mobile (`LuM*`):** touch-first components for PWA apps (≥44px targets, bottom nav, swipe)
46
+ - **Desktop (`LuD*`):** feature-rich browser/Electron components (sidebars, tables, modals)
47
+ - **Embedded (`LuE*`):** fixed-viewport components for kiosk/IoT/in-car screens
48
+ - **Shared (`Lu*`):** cross-surface primitives (`LuIcon`, `LuSpinner`, `LuBadge`, `LuPortal`)
49
+ - Design token system (`--lu-*` CSS custom properties) — color, typography, spacing, radius, shadow, motion
50
+ - Three package entry points: `@astrake/lumora-ui`, `/mobile`, `/desktop`, `/embedded`
51
+ - Skin configuration system via `LumoraUI` Vue plugin
52
+ - Shell components (`LuMobileShell`, `LuDesktopShell`, `LuEmbeddedShell`) with named-slot architecture
53
+ - Layout primitives and composable layer
54
+ - Reference showcase app (Vite + Vue 3) with `/mobile`, `/desktop`, `/embedded` routes
55
+ - `tools/build.ts` — Vite library-mode build (three entry points)
56
+ - `tools/check.ts` — vue-tsc typecheck
57
+ - `tools/version.ts` — VERSION → package.json sync
58
+ - `tools/changelog.ts` — automated changelog generator (zero npm deps)
59
+ - `LICENSE` — MIT license
60
+ - `SECURITY.md` — responsible disclosure policy
61
+ - `README.md` — badges, install, usage, design token overview, automation table, disclaimer
62
+ - `docs/LEGAL.md` — full warranty disclaimer and legal notice
63
+ - `docs/PROJECT.md` — project overview
64
+ - `docs/ARCHITECTURE.md` — architecture guide
65
+ - `docs/DEVELOPMENT.md` — development workflow
66
+ - `docs/RELEASES.md` — release workflow documentation
67
+ - `docs/AI_AGENT_GUIDE.md` — AI coding agent guide
68
+ - `AGENTS.md` — agent working rules and repo map
69
+ - `.npmrc` — `@astrake` scope, `git-tag-version=false`
70
+ - GitHub Actions: `ci.yml` — install, version-check, typecheck, test, build, artifact upload
71
+ - GitHub Actions: `release.yml` — dual trigger, changelog, GitHub Release, npm publish
72
+ - GitHub Actions: `version-check.yml` — VERSION single-source-of-truth enforcement
73
+ - GitHub Actions: `codeql.yml` — weekly TypeScript security scan
package/README.md ADDED
@@ -0,0 +1,177 @@
1
+ # @astrake/lumora-ui
2
+
3
+ [![CI](https://github.com/madlybong/LumoraUI/actions/workflows/ci.yml/badge.svg)](https://github.com/madlybong/LumoraUI/actions/workflows/ci.yml)
4
+ [![npm version](https://img.shields.io/npm/v/@astrake/lumora-ui.svg?style=flat)](https://www.npmjs.com/package/@astrake/lumora-ui)
5
+ [![npm downloads](https://img.shields.io/npm/dm/@astrake/lumora-ui.svg?style=flat)](https://www.npmjs.com/package/@astrake/lumora-ui)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
7
+ [![Bun](https://img.shields.io/badge/runtime-Bun_1.3-f9f1e1?logo=bun&logoColor=black)](https://bun.sh)
8
+ [![Vue 3](https://img.shields.io/badge/Vue-3.5%2B-42b883?logo=vue.js&logoColor=white)](https://vuejs.org)
9
+
10
+ > Headless **Vue 3** component framework targeting three distinct surface types —
11
+ > Mobile, Desktop, and Embedded — with a unified `--lu-*` design token system.
12
+
13
+ **[Documentation](https://ui.lumora.astrake.com)** · **[npm](https://www.npmjs.com/package/@astrake/lumora-ui)** · **[Changelog](./CHANGELOG.md)** · **[Issues](https://github.com/madlybong/LumoraUI/issues)**
14
+
15
+ ---
16
+
17
+ ## Overview
18
+
19
+ `@astrake/lumora-ui` provides a single component library with three surface targets:
20
+
21
+ | Target | Components | Use case |
22
+ |--------|-----------|---------|
23
+ | **Mobile** (`LuM*`) | `LuMButton`, `LuMInput`, `LuMCard`, `LuMList`, `LuMBottomSheet`, `LuMNavBar` | PWA-ready apps — touch targets ≥44px, swipe gestures, bottom nav |
24
+ | **Desktop** (`LuD*`) | `LuDButton`, `LuDInput`, `LuDTable`, `LuDSidebar`, `LuDDropdown`, `LuDModal` | Feature-rich browser / Electron apps — data tables, keyboard shortcuts |
25
+ | **Embedded** (`LuE*`) | `LuEButton`, `LuEDisplay`, `LuEGrid`, `LuEStatusBar`, `LuEAlert`, `LuENumpad` | Kiosk, IoT, in-car screens — fixed viewport, high contrast, minimal JS |
26
+ | **Shared** (`Lu*`) | `LuIcon`, `LuSpinner`, `LuBadge`, `LuPortal` | Cross-surface primitives |
27
+
28
+ ---
29
+
30
+ ## Install
31
+
32
+ ```bash
33
+ bun add @astrake/lumora-ui
34
+ # or
35
+ npm install @astrake/lumora-ui
36
+ # or
37
+ pnpm add @astrake/lumora-ui
38
+ ```
39
+
40
+ **Peer dependency:**
41
+
42
+ ```bash
43
+ bun add vue@^3.5.0
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Usage
49
+
50
+ ```ts
51
+ // Import all targets
52
+ import { LuIcon, LuSpinner } from "@astrake/lumora-ui"
53
+
54
+ // Import a specific target (recommended for tree-shaking)
55
+ import { LuMButton, LuMCard } from "@astrake/lumora-ui/mobile"
56
+ import { LuDTable, LuDSidebar } from "@astrake/lumora-ui/desktop"
57
+ import { LuEDisplay, LuEGrid } from "@astrake/lumora-ui/embedded"
58
+ ```
59
+
60
+ **Register the plugin:**
61
+
62
+ ```ts
63
+ // main.ts
64
+ import { createApp } from "vue"
65
+ import { LumoraUI } from "@astrake/lumora-ui"
66
+ import App from "./App.vue"
67
+
68
+ createApp(App).use(LumoraUI).mount("#app")
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Design Token System
74
+
75
+ All targets share a `--lu-*` CSS custom property namespace:
76
+
77
+ | Token group | Examples |
78
+ |-------------|---------|
79
+ | Color | `--lu-color-surface`, `--lu-color-accent`, `--lu-color-border` |
80
+ | Typography | `--lu-text-sm`, `--lu-font-weight-semibold` |
81
+ | Spacing | `--lu-space-1` … `--lu-space-16` (4px grid) |
82
+ | Radius | `--lu-radius-sm` … `--lu-radius-full` |
83
+ | Shadow | `--lu-shadow-sm` … `--lu-shadow-lg` |
84
+ | Motion | `--lu-duration-fast`, `--lu-easing-standard` |
85
+
86
+ Each target root overrides tokens as appropriate (e.g., Embedded reduces shadow and motion values for performance).
87
+
88
+ ---
89
+
90
+ ## Runtime Stack
91
+
92
+ | Concern | Technology |
93
+ |---------|-----------|
94
+ | Component framework | Vue 3.5+ (Composition API) |
95
+ | Language | TypeScript 5.9+ |
96
+ | Bundler | Vite (library mode, three entry points) |
97
+ | Type check | vue-tsc |
98
+ | Tests | Vitest + @vue/test-utils |
99
+ | Package manager | Bun 1.3.12 |
100
+
101
+ ---
102
+
103
+ ## Repo Shape
104
+
105
+ ```
106
+ LumoraUI/
107
+ ├── packages/core/ ← @astrake/lumora-ui (published package)
108
+ │ └── src/
109
+ │ ├── tokens/ ← CSS custom properties (--lu-*)
110
+ │ ├── shared/ ← cross-target primitives (Lu*)
111
+ │ ├── mobile/ ← Mobile components (LuM*)
112
+ │ ├── desktop/ ← Desktop components (LuD*)
113
+ │ ├── embedded/ ← Embedded components (LuE*)
114
+ │ └── index.ts
115
+ ├── apps/showcase/ ← reference Vite + Vue 3 app
116
+ ├── tools/ ← build, check, version, changelog scripts
117
+ └── docs/ ← architecture, development, releases, legal
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Local Development
123
+
124
+ ```bash
125
+ git clone https://github.com/madlybong/LumoraUI.git
126
+ cd LumoraUI
127
+ bun install
128
+ bun run check # typecheck
129
+ bun test # run test suite
130
+ bun run dev # start the showcase app
131
+ ```
132
+
133
+ ---
134
+
135
+ ## Documentation
136
+
137
+ - [Project Overview](./docs/PROJECT.md)
138
+ - [Architecture Guide](./docs/ARCHITECTURE.md)
139
+ - [Development Workflow](./docs/DEVELOPMENT.md)
140
+ - [Release Workflow](./docs/RELEASES.md)
141
+ - [AI Agent Guide](./docs/AI_AGENT_GUIDE.md)
142
+ - [Legal Notice & Disclaimer](./docs/LEGAL.md)
143
+
144
+ ---
145
+
146
+ ## Automation
147
+
148
+ | Trigger | Workflow | Effect |
149
+ |---------|----------|--------|
150
+ | Push to `main` | CI | Install → typecheck → test → build |
151
+ | PR with `VERSION` change | Version Check | Ensures VERSION is the single source of truth |
152
+ | `VERSION` bump on `main` | Release | Build → changelog → GitHub Release → npm publish |
153
+ | Manual tag `v*` | Release | Same as above |
154
+ | Every Monday | CodeQL | Security scan |
155
+
156
+ **Required secrets:** `NPM_TOKEN` — see [docs/RELEASES.md](./docs/RELEASES.md).
157
+
158
+ ---
159
+
160
+ ## Contributing
161
+
162
+ Contributions are welcome. Please read the working rules in [AGENTS.md](./AGENTS.md) before submitting a PR.
163
+ By contributing, you agree your work is licensed under MIT. See [docs/LEGAL.md](./docs/LEGAL.md).
164
+
165
+ ---
166
+
167
+ ## Disclaimer
168
+
169
+ > `@astrake/lumora-ui` is provided **"as is"** without warranty of any kind.
170
+ > The author accepts no liability for damages arising from the use of this software.
171
+ > See [docs/LEGAL.md](./docs/LEGAL.md) for the full warranty disclaimer and legal notice.
172
+
173
+ ---
174
+
175
+ ## License
176
+
177
+ [MIT](./LICENSE) © 2026 [Anuvab Chakraborty](https://github.com/madlybong)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrake/lumora-ui",
3
- "version": "0.1.1",
3
+ "version": "0.1.5",
4
4
  "description": "Headless Vue 3 component framework for three surface targets — Mobile, Desktop, and Embedded — with a unified --lu-* design token system.",
5
5
  "author": "Anuvab Chakraborty (https://github.com/madlybong)",
6
6
  "license": "MIT",
@@ -50,9 +50,10 @@
50
50
  "CHANGELOG.md"
51
51
  ],
52
52
  "scripts": {
53
+ "prepack": "bun -e \"await Bun.write('README.md', await Bun.file('../../README.md').text()); await Bun.write('CHANGELOG.md', await Bun.file('../../CHANGELOG.md').text())\"",
54
+ "postpack": "bun -e \"import { unlinkSync } from 'fs'; try { unlinkSync('README.md') } catch(e){} try { unlinkSync('CHANGELOG.md') } catch(e){}\"",
53
55
  "build": "bun run ../../tools/build.ts",
54
- "check": "vue-tsc -p ./tsconfig.json",
55
- "test": "vitest run"
56
+ "check": "vue-tsc -p ./tsconfig.json"
56
57
  },
57
58
  "peerDependencies": {
58
59
  "vue": "^3.5.0"