@openvoxproject/voxblocks 0.9.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.
Files changed (97) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +66 -0
  3. package/dist/cdn/voxblocks.css +1 -0
  4. package/dist/cdn/voxblocks.js +5057 -0
  5. package/dist/types/components/accordion/vox-accordion.d.ts +32 -0
  6. package/dist/types/components/alert/vox-alert.d.ts +23 -0
  7. package/dist/types/components/avatar/vox-avatar.d.ts +18 -0
  8. package/dist/types/components/badge/vox-badge.d.ts +17 -0
  9. package/dist/types/components/billboard/vox-billboard.d.ts +22 -0
  10. package/dist/types/components/breadcrumbs/vox-breadcrumbs.d.ts +24 -0
  11. package/dist/types/components/button/vox-button.d.ts +24 -0
  12. package/dist/types/components/calendar-tile/vox-calendar-tile.d.ts +18 -0
  13. package/dist/types/components/callout/vox-callout.d.ts +20 -0
  14. package/dist/types/components/card/vox-card.d.ts +28 -0
  15. package/dist/types/components/checkbox/vox-checkbox.d.ts +20 -0
  16. package/dist/types/components/cta/vox-cta.d.ts +17 -0
  17. package/dist/types/components/cta-band/vox-cta-band.d.ts +22 -0
  18. package/dist/types/components/dialog/vox-dialog.d.ts +30 -0
  19. package/dist/types/components/disclosure/vox-disclosure.d.ts +19 -0
  20. package/dist/types/components/dropdown/vox-dropdown.d.ts +29 -0
  21. package/dist/types/components/empty-state/vox-empty-state.d.ts +18 -0
  22. package/dist/types/components/file-input/vox-file-input.d.ts +22 -0
  23. package/dist/types/components/footer/vox-footer.d.ts +28 -0
  24. package/dist/types/components/grid/vox-grid.d.ts +22 -0
  25. package/dist/types/components/header/vox-header.d.ts +23 -0
  26. package/dist/types/components/hero/vox-hero.d.ts +21 -0
  27. package/dist/types/components/input/vox-input.d.ts +24 -0
  28. package/dist/types/components/input-group/vox-input-group.d.ts +25 -0
  29. package/dist/types/components/link-hub/vox-link-hub.d.ts +27 -0
  30. package/dist/types/components/loader/vox-loader.d.ts +16 -0
  31. package/dist/types/components/pagination/vox-pagination.d.ts +25 -0
  32. package/dist/types/components/quote/vox-quote.d.ts +18 -0
  33. package/dist/types/components/radio/vox-radio-group.d.ts +23 -0
  34. package/dist/types/components/radio/vox-radio.d.ts +21 -0
  35. package/dist/types/components/select/vox-select.d.ts +27 -0
  36. package/dist/types/components/series-nav/vox-series-nav.d.ts +18 -0
  37. package/dist/types/components/sidenav/vox-sidenav.d.ts +50 -0
  38. package/dist/types/components/sponsor/vox-sponsor.d.ts +35 -0
  39. package/dist/types/components/stat/vox-stat.d.ts +17 -0
  40. package/dist/types/components/step-indicator/vox-step-indicator.d.ts +28 -0
  41. package/dist/types/components/subnav/vox-subnav.d.ts +18 -0
  42. package/dist/types/components/switch/vox-switch.d.ts +20 -0
  43. package/dist/types/components/tabs/vox-tabs.d.ts +57 -0
  44. package/dist/types/components/textarea/vox-textarea.d.ts +22 -0
  45. package/dist/types/components/theme-toggle/vox-theme-toggle.d.ts +35 -0
  46. package/dist/types/components/timeline/vox-timeline.d.ts +27 -0
  47. package/dist/types/index.d.ts +51 -0
  48. package/dist/types/internal/field.d.ts +27 -0
  49. package/dist/voxblocks.css +1 -0
  50. package/dist/voxblocks.js +4350 -0
  51. package/package.json +59 -0
  52. package/src/components/accordion/vox-accordion.ts +150 -0
  53. package/src/components/alert/vox-alert.ts +155 -0
  54. package/src/components/avatar/vox-avatar.ts +80 -0
  55. package/src/components/badge/vox-badge.ts +67 -0
  56. package/src/components/billboard/vox-billboard.ts +109 -0
  57. package/src/components/breadcrumbs/vox-breadcrumbs.ts +68 -0
  58. package/src/components/button/vox-button.ts +165 -0
  59. package/src/components/calendar-tile/vox-calendar-tile.ts +74 -0
  60. package/src/components/callout/vox-callout.ts +97 -0
  61. package/src/components/card/vox-card.ts +147 -0
  62. package/src/components/checkbox/vox-checkbox.ts +101 -0
  63. package/src/components/cta/vox-cta.ts +69 -0
  64. package/src/components/cta-band/vox-cta-band.ts +105 -0
  65. package/src/components/dialog/vox-dialog.ts +176 -0
  66. package/src/components/disclosure/vox-disclosure.ts +98 -0
  67. package/src/components/dropdown/vox-dropdown.ts +186 -0
  68. package/src/components/empty-state/vox-empty-state.ts +76 -0
  69. package/src/components/file-input/vox-file-input.ts +127 -0
  70. package/src/components/footer/vox-footer.ts +109 -0
  71. package/src/components/grid/vox-grid.ts +54 -0
  72. package/src/components/header/vox-header.ts +109 -0
  73. package/src/components/hero/vox-hero.ts +100 -0
  74. package/src/components/input/vox-input.ts +72 -0
  75. package/src/components/input-group/vox-input-group.ts +85 -0
  76. package/src/components/link-hub/vox-link-hub.ts +108 -0
  77. package/src/components/loader/vox-loader.ts +82 -0
  78. package/src/components/pagination/vox-pagination.ts +76 -0
  79. package/src/components/quote/vox-quote.ts +82 -0
  80. package/src/components/radio/vox-radio-group.ts +117 -0
  81. package/src/components/radio/vox-radio.ts +102 -0
  82. package/src/components/select/vox-select.ts +89 -0
  83. package/src/components/series-nav/vox-series-nav.ts +94 -0
  84. package/src/components/sidenav/vox-sidenav.ts +192 -0
  85. package/src/components/sponsor/vox-sponsor.ts +187 -0
  86. package/src/components/stat/vox-stat.ts +55 -0
  87. package/src/components/step-indicator/vox-step-indicator.ts +152 -0
  88. package/src/components/subnav/vox-subnav.ts +64 -0
  89. package/src/components/switch/vox-switch.ts +90 -0
  90. package/src/components/tabs/vox-tabs.ts +201 -0
  91. package/src/components/textarea/vox-textarea.ts +75 -0
  92. package/src/components/theme-toggle/vox-theme-toggle.ts +164 -0
  93. package/src/components/timeline/vox-timeline.ts +100 -0
  94. package/src/index.ts +65 -0
  95. package/src/internal/field.ts +165 -0
  96. package/src/styles/utilities.css +409 -0
  97. package/src/tokens/tokens.css +161 -0
@@ -0,0 +1,32 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A stack of expandable panels.
4
+ *
5
+ * @slot - `<vox-accordion-item>` elements.
6
+ */
7
+ export declare class VoxAccordion extends LitElement {
8
+ /** Allow only one panel open at a time. */
9
+ single: boolean;
10
+ static styles: import("lit").CSSResult;
11
+ private handleToggle;
12
+ render(): import("lit-html").TemplateResult<1>;
13
+ }
14
+ /**
15
+ * One panel of a `<vox-accordion>`.
16
+ *
17
+ * @slot - Panel content.
18
+ * @fires vox-toggle - When the panel opens or closes.
19
+ */
20
+ export declare class VoxAccordionItem extends LitElement {
21
+ heading: string;
22
+ open: boolean;
23
+ static styles: import("lit").CSSResult;
24
+ toggle(): void;
25
+ render(): import("lit-html").TemplateResult<1>;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ 'vox-accordion': VoxAccordion;
30
+ 'vox-accordion-item': VoxAccordionItem;
31
+ }
32
+ }
@@ -0,0 +1,23 @@
1
+ import { LitElement } from 'lit';
2
+ export type AlertVariant = 'info' | 'success' | 'warning' | 'danger';
3
+ /**
4
+ * A page-level notification message, optionally dismissible.
5
+ * For static advisory text inside prose, see `<vox-callout>`.
6
+ *
7
+ * @slot - Alert message.
8
+ * @fires vox-dismiss - When the user dismisses the alert.
9
+ */
10
+ export declare class VoxAlert extends LitElement {
11
+ variant: AlertVariant;
12
+ heading: string;
13
+ dismissible: boolean;
14
+ open: boolean;
15
+ static styles: import("lit").CSSResult;
16
+ dismiss(): void;
17
+ render(): import("lit-html").TemplateResult<1>;
18
+ }
19
+ declare global {
20
+ interface HTMLElementTagNameMap {
21
+ 'vox-alert': VoxAlert;
22
+ }
23
+ }
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ export type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';
3
+ /**
4
+ * A circular avatar showing an image, or initials as a fallback.
5
+ */
6
+ export declare class VoxAvatar extends LitElement {
7
+ src?: string;
8
+ alt: string;
9
+ initials: string;
10
+ size: AvatarSize;
11
+ static styles: import("lit").CSSResult;
12
+ render(): import("lit-html").TemplateResult<1>;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'vox-avatar': VoxAvatar;
17
+ }
18
+ }
@@ -0,0 +1,17 @@
1
+ import { LitElement } from 'lit';
2
+ export type BadgeVariant = 'brand' | 'tip' | 'warning' | 'danger' | 'neutral';
3
+ /**
4
+ * A small status pill, e.g. for version labels or deprecation notices.
5
+ *
6
+ * @slot - Badge label.
7
+ */
8
+ export declare class VoxBadge extends LitElement {
9
+ variant: BadgeVariant;
10
+ static styles: import("lit").CSSResult;
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ }
13
+ declare global {
14
+ interface HTMLElementTagNameMap {
15
+ 'vox-badge': VoxBadge;
16
+ }
17
+ }
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A split media-and-content section for landing pages.
4
+ *
5
+ * @slot media - Image or other media shown beside the content.
6
+ * @slot - Body content.
7
+ * @slot actions - Buttons or CTA links below the body.
8
+ */
9
+ export declare class VoxBillboard extends LitElement {
10
+ heading: string;
11
+ /** Put the media on the right instead of the left. */
12
+ reverse: boolean;
13
+ static styles: import("lit").CSSResult;
14
+ private hasActions;
15
+ private handleActionsSlotChange;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'vox-billboard': VoxBillboard;
21
+ }
22
+ }
@@ -0,0 +1,24 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A breadcrumb trail. Children are plain links, with the current page
4
+ * as a `<span aria-current="page">`:
5
+ *
6
+ * ```html
7
+ * <vox-breadcrumbs>
8
+ * <a href="/">Home</a>
9
+ * <a href="/modules">Modules</a>
10
+ * <span aria-current="page">puppet-nginx</span>
11
+ * </vox-breadcrumbs>
12
+ * ```
13
+ *
14
+ * @slot - Links and the current-page span.
15
+ */
16
+ export declare class VoxBreadcrumbs extends LitElement {
17
+ static styles: import("lit").CSSResult;
18
+ render(): import("lit-html").TemplateResult<1>;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'vox-breadcrumbs': VoxBreadcrumbs;
23
+ }
24
+ }
@@ -0,0 +1,24 @@
1
+ import { LitElement } from 'lit';
2
+ export type ButtonVariant = 'brand' | 'alt' | 'danger' | 'ghost';
3
+ export type ButtonSize = 'sm' | 'md' | 'lg';
4
+ /**
5
+ * A button styled after the OpenVox docs action buttons.
6
+ * Renders an anchor when `href` is set, a real button otherwise.
7
+ *
8
+ * @slot - Button label.
9
+ */
10
+ export declare class VoxButton extends LitElement {
11
+ variant: ButtonVariant;
12
+ size: ButtonSize;
13
+ href?: string;
14
+ target?: string;
15
+ type: 'button' | 'submit' | 'reset';
16
+ disabled: boolean;
17
+ static styles: import("lit").CSSResult;
18
+ render(): import("lit-html").TemplateResult<1>;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'vox-button': VoxButton;
23
+ }
24
+ }
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A compact date tile for event listings. Give it an ISO date
4
+ * (`date="2026-09-18"`); month and day render localized.
5
+ */
6
+ export declare class VoxCalendarTile extends LitElement {
7
+ /** ISO date string, e.g. "2026-09-18". */
8
+ date: string;
9
+ /** BCP 47 locale for month formatting; defaults to the page locale. */
10
+ locale?: string;
11
+ static styles: import("lit").CSSResult;
12
+ render(): import("lit-html").TemplateResult<1>;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'vox-calendar-tile': VoxCalendarTile;
17
+ }
18
+ }
@@ -0,0 +1,20 @@
1
+ import { LitElement } from 'lit';
2
+ export type CalloutVariant = 'info' | 'tip' | 'warning' | 'danger';
3
+ /**
4
+ * An admonition block matching the custom containers on the OpenVox docs
5
+ * (::: tip, ::: warning, ...).
6
+ *
7
+ * @slot - Callout body content.
8
+ */
9
+ export declare class VoxCallout extends LitElement {
10
+ variant: CalloutVariant;
11
+ /** Heading text; defaults to the capitalized variant name. */
12
+ heading?: string;
13
+ static styles: import("lit").CSSResult;
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'vox-callout': VoxCallout;
19
+ }
20
+ }
@@ -0,0 +1,28 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A feature card in the style of the OpenVox docs landing page tiles.
4
+ * Becomes a single large link when `href` is set.
5
+ *
6
+ * @slot icon - Optional icon or emoji shown above the heading.
7
+ * @slot badge - Optional badge or label shown in the top-right corner.
8
+ * @slot - Card body text.
9
+ * @slot footer - Optional content pinned to the bottom of the card, e.g. stats.
10
+ */
11
+ export declare class VoxCard extends LitElement {
12
+ heading: string;
13
+ href?: string;
14
+ target?: string;
15
+ static styles: import("lit").CSSResult;
16
+ private hasIcon;
17
+ private hasBadge;
18
+ private hasFooter;
19
+ private handleIconSlotChange;
20
+ private handleBadgeSlotChange;
21
+ private handleFooterSlotChange;
22
+ render(): import("lit-html").TemplateResult<1>;
23
+ }
24
+ declare global {
25
+ interface HTMLElementTagNameMap {
26
+ 'vox-card': VoxCard;
27
+ }
28
+ }
@@ -0,0 +1,20 @@
1
+ import { VoxFieldElement } from '../../internal/field.js';
2
+ /**
3
+ * A checkbox with a custom visual that follows the VoxBlocks theme.
4
+ *
5
+ * @slot - Checkbox label.
6
+ */
7
+ export declare class VoxCheckbox extends VoxFieldElement {
8
+ checked: boolean;
9
+ value: string;
10
+ static styles: import("lit").CSSResult[];
11
+ formResetCallback(): void;
12
+ updated(): void;
13
+ private handleChange;
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'vox-checkbox': VoxCheckbox;
19
+ }
20
+ }
@@ -0,0 +1,17 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A call-to-action link with a trailing arrow that nudges on hover.
4
+ *
5
+ * @slot - Link text.
6
+ */
7
+ export declare class VoxCta extends LitElement {
8
+ href: string;
9
+ target?: string;
10
+ static styles: import("lit").CSSResult;
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ }
13
+ declare global {
14
+ interface HTMLElementTagNameMap {
15
+ 'vox-cta': VoxCta;
16
+ }
17
+ }
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A centered, full-width call-to-action panel: heading, supporting copy,
4
+ * and a row of buttons — the closing pitch at the bottom of a page.
5
+ *
6
+ * @slot - Supporting copy under the heading.
7
+ * @slot actions - Buttons or CTA links.
8
+ */
9
+ export declare class VoxCtaBand extends LitElement {
10
+ heading: string;
11
+ static styles: import("lit").CSSResult;
12
+ private hasBody;
13
+ private hasActions;
14
+ private handleBodySlotChange;
15
+ private handleActionsSlotChange;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'vox-cta-band': VoxCtaBand;
21
+ }
22
+ }
@@ -0,0 +1,30 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A modal dialog built on the native `<dialog>` element, which provides
4
+ * focus trapping and Escape-to-close for free.
5
+ *
6
+ * @slot - Dialog body.
7
+ * @slot footer - Action buttons.
8
+ * @fires vox-close - When the dialog closes.
9
+ */
10
+ export declare class VoxDialog extends LitElement {
11
+ heading: string;
12
+ open: boolean;
13
+ /** Close when the backdrop is clicked. */
14
+ lightDismiss: boolean;
15
+ private dialogEl;
16
+ static styles: import("lit").CSSResult;
17
+ private hasFooter;
18
+ show(): void;
19
+ close(): void;
20
+ updated(): void;
21
+ private handleNativeClose;
22
+ private handleClick;
23
+ private handleFooterSlotChange;
24
+ render(): import("lit-html").TemplateResult<1>;
25
+ }
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ 'vox-dialog': VoxDialog;
29
+ }
30
+ }
@@ -0,0 +1,19 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A single show/hide toggle for supplementary content.
4
+ *
5
+ * @slot - Hidden content.
6
+ * @fires vox-toggle - When the content is shown or hidden.
7
+ */
8
+ export declare class VoxDisclosure extends LitElement {
9
+ summary: string;
10
+ open: boolean;
11
+ static styles: import("lit").CSSResult;
12
+ toggle(): void;
13
+ render(): import("lit-html").TemplateResult<1>;
14
+ }
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ 'vox-disclosure': VoxDisclosure;
18
+ }
19
+ }
@@ -0,0 +1,29 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A menu button. Menu entries are light-DOM `<a>` or `<button>` children:
4
+ *
5
+ * ```html
6
+ * <vox-dropdown label="Resources">
7
+ * <a href="/docs">Documentation</a>
8
+ * <button type="button">Copy install command</button>
9
+ * </vox-dropdown>
10
+ * ```
11
+ *
12
+ * @slot - Menu entries (`<a>`, `<button>`, `<hr>` for separators).
13
+ */
14
+ export declare class VoxDropdown extends LitElement {
15
+ label: string;
16
+ open: boolean;
17
+ static styles: import("lit").CSSResult;
18
+ connectedCallback(): void;
19
+ disconnectedCallback(): void;
20
+ private handleOutsideClick;
21
+ private handleKeydown;
22
+ private toggle;
23
+ render(): import("lit-html").TemplateResult<1>;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ 'vox-dropdown': VoxDropdown;
28
+ }
29
+ }
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A placeholder for views with nothing to show yet.
4
+ *
5
+ * @slot icon - Icon or emoji above the heading.
6
+ * @slot - Explanatory text.
7
+ * @slot actions - Buttons or links suggesting a next step.
8
+ */
9
+ export declare class VoxEmptyState extends LitElement {
10
+ heading: string;
11
+ static styles: import("lit").CSSResult;
12
+ render(): import("lit-html").TemplateResult<1>;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'vox-empty-state': VoxEmptyState;
17
+ }
18
+ }
@@ -0,0 +1,22 @@
1
+ import { VoxFieldElement } from '../../internal/field.js';
2
+ /**
3
+ * A file picker: a themed button backed by a native file input,
4
+ * showing the selected file name(s).
5
+ */
6
+ export declare class VoxFileInput extends VoxFieldElement {
7
+ accept?: string;
8
+ multiple: boolean;
9
+ /** Label on the picker button. */
10
+ buttonLabel: string;
11
+ private fileNames;
12
+ private inputEl;
13
+ static styles: import("lit").CSSResult[];
14
+ formResetCallback(): void;
15
+ private handleChange;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'vox-file-input': VoxFileInput;
21
+ }
22
+ }
@@ -0,0 +1,28 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A site footer. The default slot holds link columns
4
+ * (`<vox-footer-column>`), the `bottom` slot holds copyright text.
5
+ *
6
+ * @slot - `<vox-footer-column>` elements.
7
+ * @slot bottom - Copyright / legal line.
8
+ */
9
+ export declare class VoxFooter extends LitElement {
10
+ static styles: import("lit").CSSResult;
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ }
13
+ /**
14
+ * One column of footer links.
15
+ *
16
+ * @slot - `<a>` elements.
17
+ */
18
+ export declare class VoxFooterColumn extends LitElement {
19
+ heading: string;
20
+ static styles: import("lit").CSSResult;
21
+ render(): import("lit-html").TemplateResult<1>;
22
+ }
23
+ declare global {
24
+ interface HTMLElementTagNameMap {
25
+ 'vox-footer': VoxFooter;
26
+ 'vox-footer-column': VoxFooterColumn;
27
+ }
28
+ }
@@ -0,0 +1,22 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A responsive CSS grid container. By default columns auto-fit to the
4
+ * `min` track width; set `cols` for a fixed column count.
5
+ *
6
+ * @slot - Grid items.
7
+ */
8
+ export declare class VoxGrid extends LitElement {
9
+ /** Fixed number of columns; 0 means auto-fit. */
10
+ cols: number;
11
+ /** Minimum column width used when auto-fitting. */
12
+ min: string;
13
+ gap: 'sm' | 'md' | 'lg';
14
+ static styles: import("lit").CSSResult;
15
+ updated(): void;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ declare global {
19
+ interface HTMLElementTagNameMap {
20
+ 'vox-grid': VoxGrid;
21
+ }
22
+ }
@@ -0,0 +1,23 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A site header with brand, primary navigation, and an actions area.
4
+ * Nav entries are plain links; mark the current page with
5
+ * `aria-current="page"`.
6
+ *
7
+ * @slot logo - Brand mark shown before the site title.
8
+ * @slot - Navigation links.
9
+ * @slot actions - Right-aligned extras (buttons, theme toggle, ...).
10
+ */
11
+ export declare class VoxHeader extends LitElement {
12
+ /** Site title shown next to the logo. */
13
+ siteTitle: string;
14
+ /** Where the brand links to. */
15
+ href: string;
16
+ static styles: import("lit").CSSResult;
17
+ render(): import("lit-html").TemplateResult<1>;
18
+ }
19
+ declare global {
20
+ interface HTMLElementTagNameMap {
21
+ 'vox-header': VoxHeader;
22
+ }
23
+ }
@@ -0,0 +1,21 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A page-title header section.
4
+ *
5
+ * @slot - Intro text under the heading.
6
+ * @slot actions - Buttons or CTA links.
7
+ */
8
+ export declare class VoxHero extends LitElement {
9
+ /** Small label displayed above the heading. */
10
+ eyebrow: string;
11
+ heading: string;
12
+ static styles: import("lit").CSSResult;
13
+ private hasActions;
14
+ private handleActionsSlotChange;
15
+ render(): import("lit-html").TemplateResult<1>;
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'vox-hero': VoxHero;
20
+ }
21
+ }
@@ -0,0 +1,24 @@
1
+ import { VoxFieldElement } from '../../internal/field.js';
2
+ /**
3
+ * A single-line text input with label and help note.
4
+ * Participates in native form submission via ElementInternals.
5
+ */
6
+ export declare class VoxInput extends VoxFieldElement {
7
+ type: string;
8
+ value: string;
9
+ placeholder?: string;
10
+ autocomplete?: string;
11
+ readonly: boolean;
12
+ static styles: import("lit").CSSResult;
13
+ formResetCallback(): void;
14
+ updated(): void;
15
+ focus(options?: FocusOptions): void;
16
+ private handleInput;
17
+ private handleChange;
18
+ render(): import("lit-html").TemplateResult<1>;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'vox-input': VoxInput;
23
+ }
24
+ }
@@ -0,0 +1,25 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Joins inputs, selects, buttons, and text segments into one attached row:
4
+ *
5
+ * ```html
6
+ * <vox-input-group>
7
+ * <vox-input aria-label="Search modules"></vox-input>
8
+ * <vox-button>Search</vox-button>
9
+ * </vox-input-group>
10
+ * ```
11
+ *
12
+ * The group marks each child with a `data-vox-group` position attribute
13
+ * (`start` / `middle` / `end`); VoxBlocks controls flatten their inner
14
+ * corners accordingly. Plain `<span>` children render as text addons.
15
+ */
16
+ export declare class VoxInputGroup extends LitElement {
17
+ static styles: import("lit").CSSResult;
18
+ private handleSlotChange;
19
+ render(): import("lit-html").TemplateResult<1>;
20
+ }
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ 'vox-input-group': VoxInputGroup;
24
+ }
25
+ }
@@ -0,0 +1,27 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A grid of prominent links with descriptions, for hub/landing pages.
4
+ *
5
+ * @slot - `<vox-link-hub-item>` elements.
6
+ */
7
+ export declare class VoxLinkHub extends LitElement {
8
+ static styles: import("lit").CSSResult;
9
+ render(): import("lit-html").TemplateResult<1>;
10
+ }
11
+ /**
12
+ * One link in a `<vox-link-hub>`.
13
+ *
14
+ * @slot - Short description under the link title.
15
+ */
16
+ export declare class VoxLinkHubItem extends LitElement {
17
+ href: string;
18
+ heading: string;
19
+ static styles: import("lit").CSSResult;
20
+ render(): import("lit-html").TemplateResult<1>;
21
+ }
22
+ declare global {
23
+ interface HTMLElementTagNameMap {
24
+ 'vox-link-hub': VoxLinkHub;
25
+ 'vox-link-hub-item': VoxLinkHubItem;
26
+ }
27
+ }
@@ -0,0 +1,16 @@
1
+ import { LitElement } from 'lit';
2
+ export type LoaderSize = 'sm' | 'md' | 'lg';
3
+ /**
4
+ * A loading spinner. The `label` is announced to screen readers.
5
+ */
6
+ export declare class VoxLoader extends LitElement {
7
+ size: LoaderSize;
8
+ label: string;
9
+ static styles: import("lit").CSSResult;
10
+ render(): import("lit-html").TemplateResult<1>;
11
+ }
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'vox-loader': VoxLoader;
15
+ }
16
+ }
@@ -0,0 +1,25 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Page-number navigation. Children are plain links; mark the current
4
+ * page with `aria-current="page"`:
5
+ *
6
+ * ```html
7
+ * <vox-pagination>
8
+ * <a href="?page=1">1</a>
9
+ * <a href="?page=2" aria-current="page">2</a>
10
+ * <a href="?page=3">3</a>
11
+ * </vox-pagination>
12
+ * ```
13
+ *
14
+ * @slot - `<a>` elements (including any prev/next links).
15
+ */
16
+ export declare class VoxPagination extends LitElement {
17
+ label: string;
18
+ static styles: import("lit").CSSResult;
19
+ render(): import("lit-html").TemplateResult<1>;
20
+ }
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ 'vox-pagination': VoxPagination;
24
+ }
25
+ }
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * A pull quote with optional attribution.
4
+ *
5
+ * @slot - Quote text.
6
+ */
7
+ export declare class VoxQuote extends LitElement {
8
+ attribution: string;
9
+ /** Additional context under the attribution, e.g. a role or company. */
10
+ detail: string;
11
+ static styles: import("lit").CSSResult;
12
+ render(): import("lit-html").TemplateResult<1>;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'vox-quote': VoxQuote;
17
+ }
18
+ }