@astrake/lumora-ui 0.2.1 → 0.7.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.
- package/CHANGELOG.md +230 -141
- package/README.md +23 -21
- package/dist/LuAccordion.vue_vue_type_script_setup_true_lang-CwG5Ml8t.js +5032 -0
- package/dist/{LuEmbeddedStatusBar.vue_vue_type_script_setup_true_lang-CIksvebU.js → LuEmbeddedStatusBar.vue_vue_type_script_setup_true_lang-D4rqklgo.js} +1 -1
- package/dist/LuOverlay.vue_vue_type_script_setup_true_lang-C5jhqCgy.js +221 -0
- package/dist/__mocks__/empty.d.ts +4 -0
- package/dist/components/LuAccordion.vue.d.ts +23 -0
- package/dist/components/LuBarChart.vue.d.ts +22 -0
- package/dist/components/LuBottomSheet.vue.d.ts +27 -0
- package/dist/components/LuCalendar.vue.d.ts +34 -0
- package/dist/components/LuCard.vue.d.ts +0 -3
- package/dist/components/LuCheckbox.vue.d.ts +19 -5
- package/dist/components/LuChip.vue.d.ts +35 -0
- package/dist/components/LuChipGroup.vue.d.ts +23 -0
- package/dist/components/LuCodeBlock.vue.d.ts +11 -14
- package/dist/components/LuCollapsible.vue.d.ts +7 -4
- package/dist/components/LuCommandPalette.vue.d.ts +25 -0
- package/dist/components/LuDataGrid.types.d.ts +39 -0
- package/dist/components/LuDataGrid.vue.d.ts +84 -0
- package/dist/components/LuDateRangePicker.vue.d.ts +29 -0
- package/dist/components/LuDoughnutChart.vue.d.ts +17 -0
- package/dist/components/LuDrawer.vue.d.ts +33 -0
- package/dist/components/LuFileUpload.vue.d.ts +38 -0
- package/dist/components/LuForm.vue.d.ts +2 -2
- package/dist/components/LuFormField.vue.d.ts +21 -0
- package/dist/components/LuFormWizard.types.d.ts +7 -0
- package/dist/components/LuFormWizard.vue.d.ts +33 -0
- package/dist/components/LuGaugeChart.vue.d.ts +16 -0
- package/dist/components/LuKanban.types.d.ts +24 -0
- package/dist/components/LuKanban.vue.d.ts +30 -0
- package/dist/components/LuLineChart.vue.d.ts +19 -0
- package/dist/components/LuList.vue.d.ts +18 -0
- package/dist/components/LuListDivider.vue.d.ts +5 -0
- package/dist/components/LuListItem.vue.d.ts +32 -0
- package/dist/components/LuListSubheader.vue.d.ts +16 -0
- package/dist/components/LuMediaGallery.vue.d.ts +25 -0
- package/dist/components/LuMenu.vue.d.ts +2 -2
- package/dist/components/LuModal.vue.d.ts +5 -5
- package/dist/components/LuPagination.vue.d.ts +2 -2
- package/dist/components/LuPlanner.types.d.ts +14 -0
- package/dist/components/LuPlanner.vue.d.ts +23 -0
- package/dist/components/LuPopover.vue.d.ts +24 -0
- package/dist/components/LuRadioGroup.types.d.ts +1 -0
- package/dist/components/LuRadioGroup.vue.d.ts +2 -2
- package/dist/components/LuRichTextEditor.vue.d.ts +27 -0
- package/dist/components/LuSelect.vue.d.ts +35 -2
- package/dist/components/{LuPageHeader.vue.d.ts → LuSparkline.vue.d.ts} +9 -5
- package/dist/components/LuSwitch.vue.d.ts +19 -5
- package/dist/components/LuTimeline.vue.d.ts +17 -0
- package/dist/components/LuTimelineItem.vue.d.ts +24 -0
- package/dist/components/LuToast.vue.d.ts +5 -0
- package/dist/components/LuTree.types.d.ts +9 -0
- package/dist/components/LuTree.vue.d.ts +25 -0
- package/dist/components/LuTreeNode.vue.d.ts +37 -0
- package/dist/components/__tests__/LuAccordion.test.d.ts +1 -0
- package/dist/components/__tests__/LuBarChart.test.d.ts +1 -0
- package/dist/components/__tests__/LuBottomSheet.test.d.ts +1 -0
- package/dist/components/__tests__/LuCalendar.test.d.ts +1 -0
- package/dist/components/__tests__/LuCheckbox.test.d.ts +1 -0
- package/dist/components/__tests__/LuChip.test.d.ts +1 -0
- package/dist/components/__tests__/LuCommandPalette.test.d.ts +1 -0
- package/dist/components/__tests__/LuDataGrid.test.d.ts +1 -0
- package/dist/components/__tests__/LuDateRangePicker.test.d.ts +1 -0
- package/dist/components/__tests__/LuDoughnutChart.test.d.ts +1 -0
- package/dist/components/__tests__/LuDrawer.test.d.ts +1 -0
- package/dist/components/__tests__/LuFileUpload.test.d.ts +1 -0
- package/dist/components/__tests__/LuFormWizard.test.d.ts +1 -0
- package/dist/components/__tests__/LuGaugeChart.test.d.ts +1 -0
- package/dist/components/__tests__/LuKanban.test.d.ts +1 -0
- package/dist/components/__tests__/LuLineChart.test.d.ts +1 -0
- package/dist/components/__tests__/LuList.test.d.ts +1 -0
- package/dist/components/__tests__/LuMediaGallery.test.d.ts +1 -0
- package/dist/components/__tests__/LuPlanner.test.d.ts +1 -0
- package/dist/components/__tests__/LuPopover.test.d.ts +1 -0
- package/dist/components/__tests__/LuRadio.test.d.ts +1 -0
- package/dist/components/__tests__/LuRichTextEditor.test.d.ts +1 -0
- package/dist/components/__tests__/LuSelect.test.d.ts +1 -0
- package/dist/components/__tests__/LuSparkline.test.d.ts +1 -0
- package/dist/components/__tests__/LuSwitch.test.d.ts +1 -0
- package/dist/components/__tests__/LuTimeline.test.d.ts +1 -0
- package/dist/components/__tests__/LuToast.test.d.ts +1 -0
- package/dist/components/__tests__/LuTree.test.d.ts +1 -0
- package/dist/components/_all.d.ts +3 -0
- package/dist/components/index.d.ts +42 -3
- package/dist/components/index.js +73 -44
- package/dist/composables/index.d.ts +3 -0
- package/dist/composables/index.js +34 -14
- package/dist/composables/lazyVChart.d.ts +10 -0
- package/dist/composables/useChartTheme.d.ts +65 -0
- package/dist/composables/useDataGrid.d.ts +52 -0
- package/dist/composables/useFloating.d.ts +12 -0
- package/dist/composables/useLuToast.d.ts +14 -0
- package/dist/composables/useShiki.d.ts +2 -0
- package/dist/context-CGS7Ou_x.js +36 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +217 -81
- package/dist/layout/LuFill.vue.d.ts +0 -3
- package/dist/layout/LuFixed.vue.d.ts +0 -3
- package/dist/layout/LuGrid.vue.d.ts +0 -4
- package/dist/layout/LuStack.vue.d.ts +5 -3
- package/dist/layout/index.js +1 -1
- package/dist/shell/index.js +1 -1
- package/dist/skins/components.d.ts +2 -0
- package/dist/skins/index.js +1053 -219
- package/dist/skins/layout.d.ts +2 -0
- package/dist/skins/shell/desktop.d.ts +2 -0
- package/dist/skins/shell/embedded.d.ts +2 -0
- package/dist/skins/shell/mobile.d.ts +2 -0
- package/dist/useLuToast-D5d7Wrcr.js +1029 -0
- package/dist/utils.d.ts +0 -11
- package/package.json +95 -94
- package/src/lumora.css +259 -16
- package/dist/LuCodeBlock.vue_vue_type_script_setup_true_lang-BjwcjuXF.js +0 -1623
- package/dist/LuOverlay.vue_vue_type_script_setup_true_lang-DZch4Vrw.js +0 -226
- package/dist/components/LuThemeSelect.vue.d.ts +0 -2
- package/dist/components/LuThemeSwitch.vue.d.ts +0 -2
- package/dist/context-0gENwESP.js +0 -62
- package/dist/useTheme-Cd4wVaLs.js +0 -21
package/CHANGELOG.md
CHANGED
|
@@ -1,141 +1,230 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- `
|
|
25
|
-
- `
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
###
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## [0.
|
|
41
|
-
|
|
42
|
-
### Breaking Changes
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
###
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
- `
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
- `
|
|
53
|
-
- `
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
###
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
-
|
|
123
|
-
- `
|
|
124
|
-
- `
|
|
125
|
-
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
- `
|
|
129
|
-
- `
|
|
130
|
-
- `
|
|
131
|
-
- `
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
- `
|
|
135
|
-
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## [0.7.2] — 2026-05-23
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- Fixed CI release workflow git authentication: added `token: ${{ secrets.GITHUB_TOKEN }}` to checkout step and explicit remote URL configuration before tag push to resolve "No such device or address" error.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## [0.7.1] — 2026-05-23
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- Fixed GitHub Actions release workflow `npm publish` double-packing issue.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## [0.7.0] — 2026-05-23
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- `LuPlanner` — Weekly scheduling grid with absolute-positioned time slots, event blocks, and `slot-click` / `event-click` emissions
|
|
25
|
+
- `LuSelect` — Rebuilt with text search/filter, option groups, chip-based multi-select, clearable state, and async-ready slot API
|
|
26
|
+
- `LuDataGrid` — Column sorting (asc/desc/none cycle), header select-all checkbox, local text search bar, per-column filter support
|
|
27
|
+
- `LuTimeline` — `compact` and `numbered` layout variants; `status` prop for per-item color coding (success/warning/error/info)
|
|
28
|
+
- `LuSwitch` — Indeterminate / tri-state variant via `indeterminate` prop
|
|
29
|
+
- `LuCalendar` — `size="mini"` compact variant and `showEventLabels` boolean prop
|
|
30
|
+
- Showcase: `LuCodeBlock` dedicated documentation page
|
|
31
|
+
- New skin keys: `timeline.*`, `calendar.*`, `planner.*`, `select.*` (chip, group, search, clearable styles)
|
|
32
|
+
- Test coverage: 5 new test files — `LuCheckbox`, `LuRadio`, `LuSwitch`, `LuSelect`, `LuPlanner`
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
- `LuFormWizard` — Step navigation regressions and layout rendering corrected
|
|
36
|
+
- `LuCheckbox` / `LuRadio` / `LuSwitch` — Complete default-skin visual overhaul: accessible focus rings, checked/disabled states, label alignment
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## [0.6.0] — 2026-05-23
|
|
41
|
+
|
|
42
|
+
### ⚠ Breaking Changes
|
|
43
|
+
- Removed from core exports: `LuEntityCard`, `LuEntityCardStat`, `LuPageHeader`, `LuNotificationCenter`, `LuDashboardGrid`, `LuThemeSwitch`, `LuThemeSelect`, `LuEmbeddedPOS*` (5 components). Moved to showcase recipes.
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
- `LuDrawer` — Overlay/push drawer panel (left/right/top/bottom)
|
|
47
|
+
- `LuList`, `LuListItem`, `LuListDivider`, `LuListSubheader` — Structured list primitives
|
|
48
|
+
- `LuPopover` — Rich content anchored to trigger (floating-ui)
|
|
49
|
+
- `LuBottomSheet` — Mobile-friendly bottom panel with drag support
|
|
50
|
+
- `LuToast` + `useLuToast()` — Non-blocking notification system
|
|
51
|
+
- `LuChip`, `LuChipGroup` — Interactive selection chips
|
|
52
|
+
- `LuAccordion` — Grouped collapsibles with exclusive-open mode
|
|
53
|
+
- `useFloating()` — Shared floating-ui composable
|
|
54
|
+
- Showcase: 11 functional navigation categories + Recipes section
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
- `LuTooltip` — Now uses floating-ui for precise positioning with auto-flip
|
|
58
|
+
- `LuMenu` — Now uses floating-ui, replaces hardcoded CSS alignment
|
|
59
|
+
- `LuDesktopRailBar` promoted as the recommended rail/mini-drawer pattern
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## [0.5.0] — 2026-05-22
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
|
|
67
|
+
- **`LuEntityCard` + `LuEntityCardStat`** — Rich entity summary cards with avatar, meta, stats grid, and actions slots.
|
|
68
|
+
- Complete v0.3.0 to v0.5.0 roadmap implementation.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## [0.2.2] — 2026-05-14
|
|
73
|
+
|
|
74
|
+
### Fixed
|
|
75
|
+
|
|
76
|
+
- **`LuButton`** — `to` and `href` declared props are now explicitly re-bound on the dynamic
|
|
77
|
+
`<component>`, fixing Vue Router console warnings (`Missing required prop: "to"`) when rendering
|
|
78
|
+
as `RouterLink` with `inheritAttrs: false`.
|
|
79
|
+
- **`LuTab` active indicator** — Changed `border-rose-500` → `border-b-rose-500` so the bottom
|
|
80
|
+
underline correctly overrides the `border-transparent` default in light mode (was invisible).
|
|
81
|
+
- **`LuToggleButton` active skin** — `activeSkin` resolver is now variant-aware: resolves
|
|
82
|
+
`${variant}-active` (e.g. `ghost-active`) before falling back to the generic `active` skin key.
|
|
83
|
+
- **`LuCodeBlock` copy button** — Hover style uses `hover:bg-white/10 hover:text-zinc-100`
|
|
84
|
+
(alpha overlay) instead of the mode-sensitive `hover:bg-zinc-700 hover:text-white`, ensuring
|
|
85
|
+
icon visibility on the always-dark `#282c34` code header in both light and dark themes.
|
|
86
|
+
- **`LuCollapsibleTrigger` default skin** — Removed hard-coded sidebar typography
|
|
87
|
+
(`text-[10px] uppercase tracking-widest text-zinc-400`). The skin is now a generic neutral
|
|
88
|
+
trigger container; label typography is delegated to slot content via `LuText variant="label"`.
|
|
89
|
+
- **Tab list borders** — `LuTabList` default and `card-header` variants changed from
|
|
90
|
+
`dark:border-zinc-800` → `dark:border-zinc-700`, normalising separator visual weight across modes.
|
|
91
|
+
- **Showcase build** — `apps/showcase/vite.config.ts` now uses an ordered alias array covering all
|
|
92
|
+
`@astrake/lumora-ui` sub-path exports (`/style`, `/composables`, `/layout`, `/shell`,
|
|
93
|
+
`/components`, `/skins`), fixing standalone `bun run build` without pre-built core artifacts.
|
|
94
|
+
|
|
95
|
+
### Added
|
|
96
|
+
|
|
97
|
+
- **`LuToggleGroup ghost` variant** — Removes the segmented-control background container for use
|
|
98
|
+
in minimal topbar / toolbar contexts.
|
|
99
|
+
- **`LuToggleButton ghost` + `ghost-active` variants** — Subtle icon-button states with an elevated
|
|
100
|
+
`ring` on the active element; consumed by the documentation `ThemeToggle` topbar widget.
|
|
101
|
+
|
|
102
|
+
### Refactored (Showcase)
|
|
103
|
+
|
|
104
|
+
- **`DocsSearch`** — Rebuilt as a floating dropdown (`absolute top-full z-50`) with styled result
|
|
105
|
+
rows: muted section caption, bold item label, per-row hover highlight, Escape-key dismiss, and
|
|
106
|
+
external-link icon indicator.
|
|
107
|
+
- **`DocsSidebar`** — Removed redundant nested `LuStack` wrappers inside the `#trigger` slot that
|
|
108
|
+
created double padding and triple hover-layer stacking in dark mode.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## [0.2.1] — 2026-05-12
|
|
113
|
+
|
|
114
|
+
- Package publishing now ships compiled `dist` outputs (`.js` + `.d.ts`) and exports no longer point to raw `src/*.ts` entrypoints, preventing downstream strict TypeScript checks from surfacing Lumora internals.
|
|
115
|
+
- Cleaned internal type noise in core source (`unused imports/params`, `type`-only `VNode` import) so workspace `vue-tsc` checks remain clean.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## [0.2.0] — 2026-04-27
|
|
120
|
+
|
|
121
|
+
### Added
|
|
122
|
+
- `LuCodeBlock` — Native Shiki-powered syntax highlighter with `default` and `preview` variants (supporting `tabbed` and `split` layouts).
|
|
123
|
+
- `LuToggleGroup` & `LuToggleButton` — New layout primitives for grouped button selections.
|
|
124
|
+
- `LuMenu` — Refactored and renamed from legacy `LuDropdown` to align with the core primitives naming convention.
|
|
125
|
+
- New showcase documentation dedicated to Toggle Group and components.
|
|
126
|
+
|
|
127
|
+
### Fixed
|
|
128
|
+
- WPF-like edge-docking regressions in `LuDock` via a newly implemented programmatic render function.
|
|
129
|
+
- Reactivity bugs in `LuSplit` (`LuSplitPane`, `LuSplitResizer`) failing to unwrap injected `direction` refs.
|
|
130
|
+
- Missing `LuSplit` component skins.
|
|
131
|
+
- Various visual hierarchy issues in documentation via typography `LuText` adjustments.
|
|
132
|
+
|
|
133
|
+
### Changed
|
|
134
|
+
- **Zero-Raw-HTML Adherence**: Removed all raw DOM nodes (`div`, `span`, etc.) and `PreviewBlock` from the showcase application in favor of 100% native `Lu*` primitives.
|
|
135
|
+
- Integrated Shiki to `@astrake/lumora-ui` core package dependencies.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## [0.1.7] — 2026-04-26
|
|
140
|
+
|
|
141
|
+
### Breaking Changes (structurally additive — no API surface removed)
|
|
142
|
+
- Framework now ships `lumora.css` — consumers must add `import '@astrake/lumora-ui/style'` to their app entry
|
|
143
|
+
|
|
144
|
+
### Fixed
|
|
145
|
+
- Shell components (`LuDesktopShell`, `LuMobileShell`, `LuEmbeddedShell`) no longer require Tailwind CSS to be configured for `node_modules` — structural layout is now framework-owned CSS
|
|
146
|
+
- Layout primitives (`LuDock`, `LuStack`, `LuFill`, `LuScroll`, `LuGrid`, etc.) structural classes are now framework-owned, not Tailwind fallbacks
|
|
147
|
+
- `LuDesktopRailItem` icon and label structural defaults are now framework-owned
|
|
148
|
+
- Plugin config is now `shallowReactive` — dynamic skin switching and `config.skin = newSkin` mutations now correctly trigger reactive re-renders in all components
|
|
149
|
+
|
|
150
|
+
### Added
|
|
151
|
+
- `lumora.css` — zero-dependency CSS baseline for all structural/layout defaults; exported at `@astrake/lumora-ui/style`
|
|
152
|
+
- `tailwindContent()` helper exported at `@astrake/lumora-ui/tailwind` — resolves correct `node_modules` source glob for Tailwind `content` config
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## [0.1.6] — 2026-04-26
|
|
157
|
+
|
|
158
|
+
### Added
|
|
159
|
+
- `LuForm` — headless validation orchestrator component with slot-based API
|
|
160
|
+
- `LuForm.types.ts` — `LuFormRules`, `LuFormErrors`, `LuFormValidator`, `LuFormContext` types
|
|
161
|
+
- Form context integration for `LuInput`, `LuSelect`, `LuSwitch` — `name`, `error` props; register/unregister lifecycle
|
|
162
|
+
- `LuFormContextKey` injection key (internal Symbol) for child-field coordination
|
|
163
|
+
- 10 vitest test cases covering submit, validation, reset, blur, disabled, and programmatic API
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## [0.1.5] — 2026-04-25
|
|
168
|
+
|
|
169
|
+
### Fixed
|
|
170
|
+
|
|
171
|
+
- ci workflow errors — npm publish auth and correct artifact path (`af81e69`)
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## [0.1.4] — 2026-04-25
|
|
176
|
+
|
|
177
|
+
### Fixed
|
|
178
|
+
|
|
179
|
+
- prepack hook to include README and CHANGELOG in npm tarball (`e69bdfb`)
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## [0.1.3] — 2026-04-25
|
|
184
|
+
|
|
185
|
+
### Maintenance
|
|
186
|
+
|
|
187
|
+
- fix CI pipeline failures (`cde8248`)
|
|
188
|
+
- verify automated release pipeline (`c153464`)
|
|
189
|
+
|
|
190
|
+
All notable changes to `@astrake/lumora-ui` are documented here.
|
|
191
|
+
|
|
192
|
+
Format: [Keep a Changelog](https://keepachangelog.com/) · Commits: [Conventional Commits](https://www.conventionalcommits.org/)
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## [0.1.0] — 2026-04-25
|
|
197
|
+
|
|
198
|
+
### Added
|
|
199
|
+
|
|
200
|
+
- Initial workspace scaffold (`packages/core`, `apps/showcase`, `tools/`)
|
|
201
|
+
- Headless Vue 3 primitive component library targeting three surface types:
|
|
202
|
+
- **Mobile (`LuM*`):** touch-first components for PWA apps (≥44px targets, bottom nav, swipe)
|
|
203
|
+
- **Desktop (`LuD*`):** feature-rich browser/Electron components (sidebars, tables, modals)
|
|
204
|
+
- **Embedded (`LuE*`):** fixed-viewport components for kiosk/IoT/in-car screens
|
|
205
|
+
- **Shared (`Lu*`):** cross-surface primitives (`LuIcon`, `LuSpinner`, `LuBadge`, `LuPortal`)
|
|
206
|
+
- Design token system (`--lu-*` CSS custom properties) — color, typography, spacing, radius, shadow, motion
|
|
207
|
+
- Three package entry points: `@astrake/lumora-ui`, `/mobile`, `/desktop`, `/embedded`
|
|
208
|
+
- Skin configuration system via `LumoraUI` Vue plugin
|
|
209
|
+
- Shell components (`LuMobileShell`, `LuDesktopShell`, `LuEmbeddedShell`) with named-slot architecture
|
|
210
|
+
- Layout primitives and composable layer
|
|
211
|
+
- Reference showcase app (Vite + Vue 3) with `/mobile`, `/desktop`, `/embedded` routes
|
|
212
|
+
- `tools/build.ts` — Vite library-mode build (three entry points)
|
|
213
|
+
- `tools/check.ts` — vue-tsc typecheck
|
|
214
|
+
- `tools/version.ts` — VERSION → package.json sync
|
|
215
|
+
- `tools/changelog.ts` — automated changelog generator (zero npm deps)
|
|
216
|
+
- `LICENSE` — MIT license
|
|
217
|
+
- `SECURITY.md` — responsible disclosure policy
|
|
218
|
+
- `README.md` — badges, install, usage, design token overview, automation table, disclaimer
|
|
219
|
+
- `docs/LEGAL.md` — full warranty disclaimer and legal notice
|
|
220
|
+
- `docs/PROJECT.md` — project overview
|
|
221
|
+
- `docs/ARCHITECTURE.md` — architecture guide
|
|
222
|
+
- `docs/DEVELOPMENT.md` — development workflow
|
|
223
|
+
- `docs/RELEASES.md` — release workflow documentation
|
|
224
|
+
- `docs/AI_AGENT_GUIDE.md` — AI coding agent guide
|
|
225
|
+
- `AGENTS.md` — agent working rules and repo map
|
|
226
|
+
- `.npmrc` — `@astrake` scope, `git-tag-version=false`
|
|
227
|
+
- GitHub Actions: `ci.yml` — install, version-check, typecheck, test, build, artifact upload
|
|
228
|
+
- GitHub Actions: `release.yml` — dual trigger, changelog, GitHub Release, npm publish
|
|
229
|
+
- GitHub Actions: `version-check.yml` — VERSION single-source-of-truth enforcement
|
|
230
|
+
- GitHub Actions: `codeql.yml` — weekly TypeScript security scan
|
package/README.md
CHANGED
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
|
|
21
21
|
| Target | Components | Use case |
|
|
22
22
|
|--------|-----------|---------|
|
|
23
|
-
| **Mobile** (`
|
|
24
|
-
| **Desktop** (`
|
|
25
|
-
| **Embedded** (`
|
|
26
|
-
| **Shared** (`Lu*`) | `
|
|
23
|
+
| **Mobile** (`LuMobile*`) | `LuMobileShell`, `LuMobileHeader`, `LuMobileNavBar` | PWA-ready apps — touch targets ≥44px, swipe gestures, bottom nav |
|
|
24
|
+
| **Desktop** (`LuDesktop*`) | `LuDesktopShell`, `LuDesktopSidebar`, `LuDesktopTopBar` | Feature-rich browser / Electron apps — resizable splits, keyboard shortcuts |
|
|
25
|
+
| **Embedded** (`LuEmbedded*`) | `LuEmbeddedShell` | Retail POS, Kiosk, IoT, in-car screens — fixed viewport, high contrast, touch-first |
|
|
26
|
+
| **Shared** (`Lu*`) | `LuDataGrid`, `LuKanban`, `LuBarChart`, `LuRichTextEditor`, `LuButton` | Cross-surface primitives, data-rich components, and operational features |
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
@@ -48,13 +48,11 @@ bun add vue@^3.5.0
|
|
|
48
48
|
## Usage
|
|
49
49
|
|
|
50
50
|
```ts
|
|
51
|
-
// Import
|
|
52
|
-
import {
|
|
51
|
+
// Import shared components and layout primitives
|
|
52
|
+
import { LuButton, LuDataGrid, LuKanban, LuStack } from "@astrake/lumora-ui"
|
|
53
53
|
|
|
54
|
-
// Import
|
|
55
|
-
import {
|
|
56
|
-
import { LuDTable, LuDSidebar } from "@astrake/lumora-ui/desktop"
|
|
57
|
-
import { LuEDisplay, LuEGrid } from "@astrake/lumora-ui/embedded"
|
|
54
|
+
// Import surface-specific shells
|
|
55
|
+
import { LuMobileShell, LuDesktopShell, LuEmbeddedShell } from "@astrake/lumora-ui"
|
|
58
56
|
```
|
|
59
57
|
|
|
60
58
|
**Register the plugin:**
|
|
@@ -62,10 +60,11 @@ import { LuEDisplay, LuEGrid } from "@astrake/lumora-ui/embedded"
|
|
|
62
60
|
```ts
|
|
63
61
|
// main.ts
|
|
64
62
|
import { createApp } from "vue"
|
|
65
|
-
import {
|
|
63
|
+
import { createLumoraUI } from "@astrake/lumora-ui"
|
|
64
|
+
import "@astrake/lumora-ui/style"
|
|
66
65
|
import App from "./App.vue"
|
|
67
66
|
|
|
68
|
-
createApp(App).use(
|
|
67
|
+
createApp(App).use(createLumoraUI()).mount("#app")
|
|
69
68
|
```
|
|
70
69
|
|
|
71
70
|
---
|
|
@@ -94,9 +93,10 @@ Each target root overrides tokens as appropriate (e.g., Embedded reduces shadow
|
|
|
94
93
|
| Component framework | Vue 3.5+ (Composition API) |
|
|
95
94
|
| Language | TypeScript 5.9+ |
|
|
96
95
|
| Bundler | Vite (library mode, three entry points) |
|
|
96
|
+
| Interactive Add-ons (Peer) | Apache ECharts, Tiptap, Sortable.js (`vue-draggable-plus`) |
|
|
97
97
|
| Type check | vue-tsc |
|
|
98
98
|
| Tests | Vitest + @vue/test-utils |
|
|
99
|
-
| Package manager | Bun 1.3
|
|
99
|
+
| Package manager | Bun 1.3+ |
|
|
100
100
|
|
|
101
101
|
---
|
|
102
102
|
|
|
@@ -106,14 +106,16 @@ Each target root overrides tokens as appropriate (e.g., Embedded reduces shadow
|
|
|
106
106
|
LumoraUI/
|
|
107
107
|
├── packages/core/ ← @astrake/lumora-ui (published package)
|
|
108
108
|
│ └── src/
|
|
109
|
-
│ ├──
|
|
110
|
-
│ ├──
|
|
111
|
-
│ ├──
|
|
112
|
-
│ ├──
|
|
113
|
-
│ ├──
|
|
109
|
+
│ ├── components/ ← shared primitives + complex components (Lu*)
|
|
110
|
+
│ ├── layout/ ← layout primitives (LuStack, LuGrid, LuDock, etc.)
|
|
111
|
+
│ ├── shell/ ← surface shells (LuDesktopShell, LuMobileShell, etc.)
|
|
112
|
+
│ ├── composables/ ← shared composition functions
|
|
113
|
+
│ ├── skins/ ← SkinMap default theme
|
|
114
|
+
│ ├── lumora.css ← structural CSS baseline
|
|
114
115
|
│ └── index.ts
|
|
115
|
-
├── apps/showcase/ ← reference Vite + Vue 3 app
|
|
116
|
+
├── apps/showcase/ ← reference Vite + Vue 3 showcase app
|
|
116
117
|
├── tools/ ← build, check, version, changelog scripts
|
|
118
|
+
├── .agent/ ← AI agent rules and authoring guides
|
|
117
119
|
└── docs/ ← architecture, development, releases, legal
|
|
118
120
|
```
|
|
119
121
|
|
|
@@ -126,7 +128,7 @@ git clone https://github.com/madlybong/LumoraUI.git
|
|
|
126
128
|
cd LumoraUI
|
|
127
129
|
bun install
|
|
128
130
|
bun run check # typecheck
|
|
129
|
-
bun test
|
|
131
|
+
bun run test --run # run test suite
|
|
130
132
|
bun run dev # start the showcase app
|
|
131
133
|
```
|
|
132
134
|
|
|
@@ -138,7 +140,7 @@ bun run dev # start the showcase app
|
|
|
138
140
|
- [Architecture Guide](./docs/ARCHITECTURE.md)
|
|
139
141
|
- [Development Workflow](./docs/DEVELOPMENT.md)
|
|
140
142
|
- [Release Workflow](./docs/RELEASES.md)
|
|
141
|
-
- [AI Agent
|
|
143
|
+
- [AI Agent Knowledge Base](./.agent/README.md)
|
|
142
144
|
- [Legal Notice & Disclaimer](./docs/LEGAL.md)
|
|
143
145
|
|
|
144
146
|
---
|