@santi020k/lumen-elements 0.1.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Santiago Molina
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,141 @@
1
+ # @santi020k/lumen-elements
2
+
3
+ Web Components for Lumen UI.
4
+
5
+ This package registers standards-based custom elements for the shared Lumen primitive catalog.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pnpm add @santi020k/lumen-elements
11
+ ```
12
+
13
+ Load the shared stylesheet once from your app entry or global CSS.
14
+
15
+ ```css
16
+ @import "@santi020k/lumen-elements/styles.css";
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ Register the elements once, then use `lumen-*` tags anywhere HTML is valid.
22
+
23
+ ```html
24
+ <script type="module">
25
+ import { defineLumenElements } from '@santi020k/lumen-elements/define'
26
+
27
+ defineLumenElements()
28
+ </script>
29
+
30
+ <lumen-card>
31
+ <label for="email">Email</label>
32
+ <lumen-input id="email" type="email" placeholder="you@example.com"></lumen-input>
33
+ <lumen-button>Subscribe</lumen-button>
34
+ </lumen-card>
35
+ ```
36
+
37
+ Use `lumen-icon` for Lucide icons by name across framework adapters.
38
+
39
+ ```html
40
+ <lumen-button variant="secondary">
41
+ <lumen-icon name="wand-sparkles" decorative></lumen-icon>
42
+ Generate
43
+ </lumen-button>
44
+ <lumen-icon name="search" label="Search"></lumen-icon>
45
+ ```
46
+
47
+ ## Optimized images
48
+
49
+ Image optimization belongs to the host framework or CDN. Keep its generated `picture`, `srcset`,
50
+ and `sizes` output, and put Lumen's `ui-image` class on the final `img`. This works with optimized
51
+ markup from Nuxt, SvelteKit, a CMS, an image CDN, or a static build pipeline without sending the
52
+ image through a second component.
53
+
54
+ ```html
55
+ <picture>
56
+ <source srcset="/team.avif" type="image/avif">
57
+ <source srcset="/team.webp" type="image/webp">
58
+ <img
59
+ alt="Team collaborating around a table"
60
+ class="ui-image"
61
+ decoding="async"
62
+ height="800"
63
+ loading="lazy"
64
+ sizes="(max-width: 768px) 100vw, 50vw"
65
+ src="/team.jpg"
66
+ width="1200"
67
+ >
68
+ </picture>
69
+ ```
70
+
71
+ Add `ui-image--invert-dark` only to monochrome artwork that needs inversion on dark themes.
72
+
73
+ Elements emit the same `ui-*` classes and `data-ui-*` attributes as the Astro primitives. Astro
74
+ remains the reference package, and the Web Components adapter now carries matching light-DOM
75
+ behavior for DataTable, Dialog, Popover, DropdownMenu, ContextMenu, Tabs, Select, ThemeBuilder,
76
+ Toast, Tooltip, forms, Calendar, InputOTP, DateRangePicker, RichTextEditor, Schedule, Resizable,
77
+ and VirtualList: selection, validation, calendar grids, OTP segmentation, date range syncing, rich
78
+ text command, context menu, schedule drag/drop, resizable pane sizing, theme, and range events,
79
+ ARIA state, keyboard navigation, Escape/outside dismissal, focus return/trapping, native select
80
+ form participation, and the document-level toast controller events.
81
+
82
+ ## Interactive behavior
83
+
84
+ Registering the elements wires behavior-heavy primitives without a framework runtime. DataTable,
85
+ Dialog, Popover, DropdownMenu, ContextMenu, Tabs, Select, ThemeBuilder, Toast, Tooltip, forms,
86
+ Calendar, InputOTP, DateRangePicker, RichTextEditor, Schedule, Resizable, and VirtualList track the
87
+ Astro runtime's data event, validation, calendar grids, OTP segmentation, date range syncing, rich
88
+ text command, context menu, schedule drag/drop, resizable pane sizing, theme export, ARIA,
89
+ keyboard, Escape, dismissal, and toast controller semantics while keeping markup declarative and
90
+ Declarative-Shadow-DOM friendly.
91
+ Rich text controls may provide `data-ui-editor-value` for commands such as `formatBlock` and
92
+ `createLink`; editable surfaces emit `ui:editor-change` with both HTML and plain text, support common
93
+ formatting shortcuts, and keep toggle controls synchronized through `aria-pressed`.
94
+
95
+ ```html
96
+ <script type="module">
97
+ import { defineLumenElements, LumenToast } from '@santi020k/lumen-elements'
98
+
99
+ defineLumenElements()
100
+
101
+ LumenToast.create({
102
+ title: 'Saved',
103
+ description: 'Your changes are live.',
104
+ variant: 'success'
105
+ })
106
+ </script>
107
+
108
+ ```
109
+
110
+ You can also use the shared document events: dispatch `ui:toast` to create, `ui:toast-update` to
111
+ update, and `ui:toast-dismiss` to dismiss runtime toasts. Toast actions emit `ui:toast-action`
112
+ unless an action supplies a custom event name.
113
+
114
+ ## Motion
115
+
116
+ The elements adapter exposes the same motion vocabulary as Astro and React. Use
117
+ `lumen-scroll-reveal` for one entrance, `lumen-reveal-group` for a short staggered sequence, and
118
+ `lumen-animated-number` for meaningful metric changes. They honor reduced-motion preferences.
119
+
120
+ ```html
121
+ <lumen-reveal-group animation="slide-up" stagger="80">
122
+ <lumen-card>Plan</lumen-card>
123
+ <lumen-card>Build</lumen-card>
124
+ <lumen-card>Ship</lumen-card>
125
+ </lumen-reveal-group>
126
+
127
+ <lumen-animated-number decimals="1" suffix="%" value="99.8"></lumen-animated-number>
128
+ ```
129
+
130
+ ## Glass surfaces
131
+
132
+ Load `@santi020k/lumen-elements/styles.css` once, register the elements, then use the shared glass
133
+ attributes.
134
+
135
+ ```html
136
+ <lumen-card glass>Glass card</lumen-card>
137
+ <lumen-dialog glass>Glass dialog</lumen-dialog>
138
+ <lumen-popover glass>Glass popover</lumen-popover>
139
+ <lumen-date-picker glass="subtle"></lumen-date-picker>
140
+ <lumen-select glass="strong"></lumen-select>
141
+ ```
@@ -0,0 +1,153 @@
1
+ type AttributeClassMap = Record<string, Record<string, string>>;
2
+ type ToastPlacement = 'bottom-center' | 'bottom-left' | 'bottom-right' | 'top-center' | 'top-left' | 'top-right';
3
+ type ToastVariant = string;
4
+ export interface ToastAction {
5
+ event?: string;
6
+ label?: string;
7
+ onClick?: (event: MouseEvent, toast: HTMLElement) => void;
8
+ value?: unknown;
9
+ }
10
+ export interface ToastDetail {
11
+ action?: ToastAction;
12
+ description?: string;
13
+ duration?: number;
14
+ id?: string;
15
+ max?: number;
16
+ placement?: ToastPlacement;
17
+ title?: string;
18
+ variant?: ToastVariant;
19
+ }
20
+ export interface ToastApi {
21
+ create: (detail: ToastDetail) => string;
22
+ dismiss: (id?: string) => void;
23
+ update: (id: string, detail: ToastDetail) => void;
24
+ }
25
+ interface LumenElementConfig {
26
+ attributeClasses?: AttributeClassMap;
27
+ baseClassName: string;
28
+ defaults?: Record<string, string>;
29
+ role?: string;
30
+ tagName: string;
31
+ }
32
+ export declare const enhanceLumenForms: (scope?: ParentNode) => void;
33
+ export declare const enhanceLumenRichTextEditors: (scope?: ParentNode) => void;
34
+ export declare const enhanceLumenSchedules: (scope?: ParentNode) => void;
35
+ export declare const enhanceLumenResizable: (scope?: ParentNode) => void;
36
+ export declare const enhanceLumenDateRangePickers: (scope?: ParentNode) => void;
37
+ export declare const enhanceLumenDatePickers: (scope?: ParentNode) => void;
38
+ export declare const enhanceLumenInputOTPs: (scope?: ParentNode) => void;
39
+ export declare const enhanceLumenCalendars: (scope?: ParentNode) => void;
40
+ export declare const enhanceLumenContextMenus: (scope?: ParentNode) => void;
41
+ export declare const LumenToast: ToastApi;
42
+ export declare class LumenElement extends HTMLElement {
43
+ static config: LumenElementConfig;
44
+ static get observedAttributes(): string[];
45
+ connectedCallback(): void;
46
+ disconnectedCallback(): void;
47
+ attributeChangedCallback(): void;
48
+ protected get config(): LumenElementConfig;
49
+ private applyDefaults;
50
+ private applyClassNames;
51
+ }
52
+ export declare const enhanceLumenElements: (scope?: ParentNode) => void;
53
+ export declare const defineLumenElements: (customElementsRegistry?: CustomElementRegistry | undefined) => void;
54
+ export declare const installLumenControllers: () => void;
55
+ export declare const lumenElementDefinitions: (readonly ["lumen-accordion" | "lumen-alert" | "lumen-alert-dialog" | "lumen-agenda" | "lumen-aspect-ratio" | "lumen-attachment" | "lumen-autocomplete" | "lumen-avatar" | "lumen-back-to-top" | "lumen-badge" | "lumen-breadcrumb" | "lumen-bubble" | "lumen-button" | "lumen-button-group" | "lumen-calendar" | "lumen-callout" | "lumen-card" | "lumen-carousel" | "lumen-chart" | "lumen-checkbox" | "lumen-collapsible" | "lumen-code" | "lumen-combobox" | "lumen-command" | "lumen-color-picker" | "lumen-context-menu" | "lumen-data-table" | "lumen-date-picker" | "lumen-date-range-picker" | "lumen-dialog" | "lumen-direction" | "lumen-drawer" | "lumen-dropdown-menu" | "lumen-empty" | "lumen-eyebrow" | "lumen-field" | "lumen-floating-badge" | "lumen-formatted-date" | "lumen-hover-card" | "lumen-icon" | "lumen-image" | "lumen-input" | "lumen-input-group" | "lumen-input-otp" | "lumen-number-field" | "lumen-item" | "lumen-kbd" | "lumen-label" | "lumen-link" | "lumen-marker" | "lumen-menubar" | "lumen-message" | "lumen-message-scroller" | "lumen-native-select" | "lumen-navigation-menu" | "lumen-pagination" | "lumen-phone-input" | "lumen-pill" | "lumen-popover" | "lumen-progress" | "lumen-prose" | "lumen-radio-group" | "lumen-resizable" | "lumen-rich-text-editor" | "lumen-scroll-area" | "lumen-schedule" | "lumen-search-field" | "lumen-select" | "lumen-separator" | "lumen-sheet" | "lumen-sidebar" | "lumen-skeleton" | "lumen-skip-link" | "lumen-slider" | "lumen-sonner" | "lumen-spinner" | "lumen-switch" | "lumen-table" | "lumen-tabs" | "lumen-tag-group" | "lumen-textarea" | "lumen-theme-builder" | "lumen-theme-toggle" | "lumen-time-field" | "lumen-toast" | "lumen-toggle" | "lumen-toggle-group" | "lumen-tooltip" | "lumen-tree" | "lumen-tree-grid" | "lumen-typography" | "lumen-virtual-list" | "lumen-language-toggle" | "lumen-particles" | "lumen-animated-number" | "lumen-reveal-group" | "lumen-scroll-reveal" | "lumen-stat" | "lumen-meter" | "lumen-note" | "lumen-rating" | "lumen-timeline" | "lumen-animated-logo" | "lumen-animated-portrait" | "lumen-button-link" | "lumen-cover-image" | "lumen-gradient-divider" | "lumen-stepper" | "lumen-file-upload" | "lumen-tour" | "lumen-anchor" | "lumen-segmented" | "lumen-toolbar" | "lumen-descriptions" | "lumen-popconfirm" | "lumen-transfer" | "lumen-cascader" | "lumen-tree-select" | "lumen-mentions" | "lumen-qr-code" | "lumen-watermark" | "lumen-affix" | "lumen-speed-dial", typeof LumenElement])[];
56
+ export declare const LumenAccordionElement: typeof LumenElement;
57
+ export declare const LumenAlertElement: typeof LumenElement;
58
+ export declare const LumenAlertDialogElement: typeof LumenElement;
59
+ export declare const LumenAgendaElement: typeof LumenElement;
60
+ export declare const LumenAspectRatioElement: typeof LumenElement;
61
+ export declare const LumenAttachmentElement: typeof LumenElement;
62
+ export declare const LumenAutocompleteElement: typeof LumenElement;
63
+ export declare const LumenAvatarElement: typeof LumenElement;
64
+ export declare const LumenBadgeElement: typeof LumenElement;
65
+ export declare const LumenBreadcrumbElement: typeof LumenElement;
66
+ export declare const LumenBubbleElement: typeof LumenElement;
67
+ export declare const LumenButtonElement: typeof LumenElement;
68
+ export declare const LumenButtonGroupElement: typeof LumenElement;
69
+ export declare const LumenCalendarElement: typeof LumenElement;
70
+ export declare const LumenCardElement: typeof LumenElement;
71
+ export declare const LumenCarouselElement: typeof LumenElement;
72
+ export declare const LumenChartElement: typeof LumenElement;
73
+ export declare const LumenCheckboxElement: typeof LumenElement;
74
+ export declare const LumenCollapsibleElement: typeof LumenElement;
75
+ export declare const LumenCodeElement: typeof LumenElement;
76
+ export declare const LumenComboboxElement: typeof LumenElement;
77
+ export declare const LumenCommandElement: typeof LumenElement;
78
+ export declare const LumenColorPickerElement: typeof LumenElement;
79
+ export declare const LumenContextMenuElement: typeof LumenElement;
80
+ export declare const LumenDataTableElement: typeof LumenElement;
81
+ export declare const LumenDatePickerElement: typeof LumenElement;
82
+ export declare const LumenDateRangePickerElement: typeof LumenElement;
83
+ export declare const LumenDialogElement: typeof LumenElement;
84
+ export declare const LumenDirectionElement: typeof LumenElement;
85
+ export declare const LumenDrawerElement: typeof LumenElement;
86
+ export declare const LumenDropdownMenuElement: typeof LumenElement;
87
+ export declare const LumenEmptyElement: typeof LumenElement;
88
+ export declare const LumenFieldElement: typeof LumenElement;
89
+ export declare const LumenHoverCardElement: typeof LumenElement;
90
+ export declare const LumenIconElement: typeof LumenElement;
91
+ export declare const LumenInputElement: typeof LumenElement;
92
+ export declare const LumenInputGroupElement: typeof LumenElement;
93
+ export declare const LumenInputOTPElement: typeof LumenElement;
94
+ export declare const LumenNumberFieldElement: typeof LumenElement;
95
+ export declare const LumenItemElement: typeof LumenElement;
96
+ export declare const LumenKbdElement: typeof LumenElement;
97
+ export declare const LumenLabelElement: typeof LumenElement;
98
+ export declare const LumenMarkerElement: typeof LumenElement;
99
+ export declare const LumenMenubarElement: typeof LumenElement;
100
+ export declare const LumenMessageElement: typeof LumenElement;
101
+ export declare const LumenMessageScrollerElement: typeof LumenElement;
102
+ export declare const LumenNativeSelectElement: typeof LumenElement;
103
+ export declare const LumenNavigationMenuElement: typeof LumenElement;
104
+ export declare const LumenPaginationElement: typeof LumenElement;
105
+ export declare const LumenPhoneInputElement: typeof LumenElement;
106
+ export declare const LumenPopoverElement: typeof LumenElement;
107
+ export declare const LumenProgressElement: typeof LumenElement;
108
+ export declare const LumenRadioGroupElement: typeof LumenElement;
109
+ export declare const LumenResizableElement: typeof LumenElement;
110
+ export declare const LumenRichTextEditorElement: typeof LumenElement;
111
+ export declare const LumenScrollAreaElement: typeof LumenElement;
112
+ export declare const LumenScheduleElement: typeof LumenElement;
113
+ export declare const LumenSearchFieldElement: typeof LumenElement;
114
+ export declare const LumenSelectElement: typeof LumenElement;
115
+ export declare const LumenSeparatorElement: typeof LumenElement;
116
+ export declare const LumenSheetElement: typeof LumenElement;
117
+ export declare const LumenSidebarElement: typeof LumenElement;
118
+ export declare const LumenSkeletonElement: typeof LumenElement;
119
+ export declare const LumenSliderElement: typeof LumenElement;
120
+ export declare const LumenSonnerElement: typeof LumenElement;
121
+ export declare const LumenSpinnerElement: typeof LumenElement;
122
+ export declare const LumenSwitchElement: typeof LumenElement;
123
+ export declare const LumenTableElement: typeof LumenElement;
124
+ export declare const LumenTabsElement: typeof LumenElement;
125
+ export declare const LumenTagGroupElement: typeof LumenElement;
126
+ export declare const LumenTextareaElement: typeof LumenElement;
127
+ export declare const LumenThemeBuilderElement: typeof LumenElement;
128
+ export declare const LumenTimeFieldElement: typeof LumenElement;
129
+ export declare const LumenToastElement: typeof LumenElement;
130
+ export declare const LumenToggleElement: typeof LumenElement;
131
+ export declare const LumenToggleGroupElement: typeof LumenElement;
132
+ export declare const LumenTooltipElement: typeof LumenElement;
133
+ export declare const LumenTreeElement: typeof LumenElement;
134
+ export declare const LumenTreeGridElement: typeof LumenElement;
135
+ export declare const LumenTypographyElement: typeof LumenElement;
136
+ export declare const LumenVirtualListElement: typeof LumenElement;
137
+ export declare const LumenLanguageToggleElement: typeof LumenElement;
138
+ export declare const LumenParticlesElement: typeof LumenElement;
139
+ export declare const LumenAnimatedNumberElement: typeof LumenElement;
140
+ export declare const LumenRevealGroupElement: typeof LumenElement;
141
+ export declare const LumenScrollRevealElement: typeof LumenElement;
142
+ export declare const LumenStatElement: typeof LumenElement;
143
+ export declare const LumenMeterElement: typeof LumenElement;
144
+ export declare const LumenNoteElement: typeof LumenElement;
145
+ export declare const LumenRatingElement: typeof LumenElement;
146
+ export declare const LumenTimelineElement: typeof LumenElement;
147
+ export declare const LumenAnimatedLogoElement: typeof LumenElement;
148
+ export declare const LumenAnimatedPortraitElement: typeof LumenElement;
149
+ export declare const LumenButtonLinkElement: typeof LumenElement;
150
+ export declare const LumenCoverImageElement: typeof LumenElement;
151
+ export declare const LumenGradientDividerElement: typeof LumenElement;
152
+ export {};
153
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}