@htmlbricks/hb-bundle 0.66.8 → 0.66.9
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/README.md +55 -0
- package/agents/docs/AGENT_WEBCOMPONENTS_REFERENCE.md +4591 -0
- package/bundle.json +1 -1
- package/list.json +1 -1
- package/main.iife.js +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,4591 @@
|
|
|
1
|
+
# HTML Bricks `hb-*` web components — agent & LLM reference
|
|
2
|
+
|
|
3
|
+
## What this document is
|
|
4
|
+
|
|
5
|
+
A **consumer-oriented reference** for **`hb-*` custom elements**: tags, attributes, events, slots, and how to theme and interact with them from **HTML, JavaScript, or any UI stack**. It does **not** describe how to build or publish the library.
|
|
6
|
+
|
|
7
|
+
## How to use these components
|
|
8
|
+
|
|
9
|
+
1. **Attributes** — Public properties use **snake_case**. In HTML, attributes are strings; objects and arrays are usually passed as **JSON strings** unless a component’s section says otherwise.
|
|
10
|
+
2. **Theming** — The UI follows **Bootstrap 5** and **Bootstrap Icons**. To change appearance (colors, spacing, typography, borders, radii), set **Bootstrap CSS custom properties** (`--bs-*`, e.g. `--bs-primary`, `--bs-body-bg`, `--bs-border-radius`) on the **host element**, a parent wrapper, or higher in the cascade. Those variables typically flow into **shadow DOM** content. Prefer **`--bs-*`** over unrelated ad-hoc rules. Each component section below may list extra **CSS variables** and **`::part(...)`** names when exposed.
|
|
11
|
+
3. **Shadow DOM** — Most hosts attach a **shadow root**. Style via inherited **variables** and documented **`::part(...)`** selectors; listen for **`CustomEvent`** on the host for outputs described in each section.
|
|
12
|
+
4. **Reading the entries** — Sections may use tables or TypeScript-like snippets for props and events; treat those as the **public contract** for that tag.
|
|
13
|
+
|
|
14
|
+
### Table of contents — how to use this with LLMs
|
|
15
|
+
|
|
16
|
+
- The **full text** of each component’s `README.md` is **included later in this same document**, under an HTML anchor `id="wc-<folder>"` (Markdown link: `#wc-<folder>`).
|
|
17
|
+
- The **jsDelivr** URL is the **canonical** `README.md` from npm (`@htmlbricks/hb-<folder>` at version **0.66.9**). The prose merged **below this TOC** is the **same document body** (duplicate for single-file reading).
|
|
18
|
+
- When answering **from this file only**, use the **in-document** link (`#wc-…`) so the model stays in one context. Use the **jsDelivr** link when you need the standalone README URL (e.g. fetching from the CDN).
|
|
19
|
+
|
|
20
|
+
## Table of contents
|
|
21
|
+
|
|
22
|
+
Each line lists: **tag — folder**, then **canonical README (npm/jsDelivr)**, then **same content inside this file**.
|
|
23
|
+
|
|
24
|
+
- **`hb-area-code` — `area-code`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-area-code@0.66.9/README.md) · [same text in this document](#wc-area-code)
|
|
25
|
+
- **`hb-auth` — `auth`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-auth@0.66.9/README.md) · [same text in this document](#wc-auth)
|
|
26
|
+
- **`hb-auth-social-login-button` — `auth-social-login-button`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-auth-social-login-button@0.66.9/README.md) · [same text in this document](#wc-auth-social-login-button)
|
|
27
|
+
- **`hb-banner` — `banner`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-banner@0.66.9/README.md) · [same text in this document](#wc-banner)
|
|
28
|
+
- **`hb-calendar-appointments` — `calendar-appointments`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-calendar-appointments@0.66.9/README.md) · [same text in this document](#wc-calendar-appointments)
|
|
29
|
+
- **`hb-calendar-events` — `calendar-events`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-calendar-events@0.66.9/README.md) · [same text in this document](#wc-calendar-events)
|
|
30
|
+
- **`hb-captcha-google-recaptcha-v2-invisible` — `captcha-google-recaptcha-v2-invisible`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-captcha-google-recaptcha-v2-invisible@0.66.9/README.md) · [same text in this document](#wc-captcha-google-recaptcha-v2-invisible)
|
|
31
|
+
- **`hb-card-video` — `card-video`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-card-video@0.66.9/README.md) · [same text in this document](#wc-card-video)
|
|
32
|
+
- **`hb-chartjs` — `chartjs`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-chartjs@0.66.9/README.md) · [same text in this document](#wc-chartjs)
|
|
33
|
+
- **`hb-checkout` — `checkout`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-checkout@0.66.9/README.md) · [same text in this document](#wc-checkout)
|
|
34
|
+
- **`hb-checkout-shopping-cart` — `checkout-shopping-cart`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-checkout-shopping-cart@0.66.9/README.md) · [same text in this document](#wc-checkout-shopping-cart)
|
|
35
|
+
- **`hb-contact-card` — `contact-card`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-contact-card@0.66.9/README.md) · [same text in this document](#wc-contact-card)
|
|
36
|
+
- **`hb-contact-item` — `contact-item`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-contact-item@0.66.9/README.md) · [same text in this document](#wc-contact-item)
|
|
37
|
+
- **`hb-cookie-law-banner` — `cookie-law-banner`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-cookie-law-banner@0.66.9/README.md) · [same text in this document](#wc-cookie-law-banner)
|
|
38
|
+
- **`hb-dashboard-card1` — `dashboard-card1`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-dashboard-card1@0.66.9/README.md) · [same text in this document](#wc-dashboard-card1)
|
|
39
|
+
- **`hb-dashboard-counter-lines` — `dashboard-counter-lines`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-dashboard-counter-lines@0.66.9/README.md) · [same text in this document](#wc-dashboard-counter-lines)
|
|
40
|
+
- **`hb-dashboard-indicator` — `dashboard-indicator`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-dashboard-indicator@0.66.9/README.md) · [same text in this document](#wc-dashboard-indicator)
|
|
41
|
+
- **`hb-dialog` — `dialog`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-dialog@0.66.9/README.md) · [same text in this document](#wc-dialog)
|
|
42
|
+
- **`hb-dialog-loader` — `dialog-loader`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-dialog-loader@0.66.9/README.md) · [same text in this document](#wc-dialog-loader)
|
|
43
|
+
- **`hb-dialogform` — `dialogform`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-dialogform@0.66.9/README.md) · [same text in this document](#wc-dialogform)
|
|
44
|
+
- **`hb-downloader` — `downloader`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-downloader@0.66.9/README.md) · [same text in this document](#wc-downloader)
|
|
45
|
+
- **`hb-dropdown-notifications` — `dropdown-notifications`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-dropdown-notifications@0.66.9/README.md) · [same text in this document](#wc-dropdown-notifications)
|
|
46
|
+
- **`hb-dropdown-simple` — `dropdown-simple`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-dropdown-simple@0.66.9/README.md) · [same text in this document](#wc-dropdown-simple)
|
|
47
|
+
- **`hb-editor-video` — `editor-video`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-editor-video@0.66.9/README.md) · [same text in this document](#wc-editor-video)
|
|
48
|
+
- **`hb-faq-component` — `faq-component`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-faq-component@0.66.9/README.md) · [same text in this document](#wc-faq-component)
|
|
49
|
+
- **`hb-footer` — `footer`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-footer@0.66.9/README.md) · [same text in this document](#wc-footer)
|
|
50
|
+
- **`hb-form` — `form`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-form@0.66.9/README.md) · [same text in this document](#wc-form)
|
|
51
|
+
- **`hb-form-composer` — `form-composer`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-form-composer@0.66.9/README.md) · [same text in this document](#wc-form-composer)
|
|
52
|
+
- **`hb-form-contact` — `form-contact`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-form-contact@0.66.9/README.md) · [same text in this document](#wc-form-contact)
|
|
53
|
+
- **`hb-funnel` — `funnel`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-funnel@0.66.9/README.md) · [same text in this document](#wc-funnel)
|
|
54
|
+
- **`hb-gallery-video` — `gallery-video`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-gallery-video@0.66.9/README.md) · [same text in this document](#wc-gallery-video)
|
|
55
|
+
- **`hb-gauge` — `gauge`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-gauge@0.66.9/README.md) · [same text in this document](#wc-gauge)
|
|
56
|
+
- **`hb-input-area` — `input-area`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-area@0.66.9/README.md) · [same text in this document](#wc-input-area)
|
|
57
|
+
- **`hb-input-array-objects` — `input-array-objects`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-array-objects@0.66.9/README.md) · [same text in this document](#wc-input-array-objects)
|
|
58
|
+
- **`hb-input-array-tags` — `input-array-tags`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-array-tags@0.66.9/README.md) · [same text in this document](#wc-input-array-tags)
|
|
59
|
+
- **`hb-input-checkbox` — `input-checkbox`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-checkbox@0.66.9/README.md) · [same text in this document](#wc-input-checkbox)
|
|
60
|
+
- **`hb-input-color` — `input-color`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-color@0.66.9/README.md) · [same text in this document](#wc-input-color)
|
|
61
|
+
- **`hb-input-coords` — `input-coords`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-coords@0.66.9/README.md) · [same text in this document](#wc-input-coords)
|
|
62
|
+
- **`hb-input-date` — `input-date`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-date@0.66.9/README.md) · [same text in this document](#wc-input-date)
|
|
63
|
+
- **`hb-input-datetime` — `input-datetime`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-datetime@0.66.9/README.md) · [same text in this document](#wc-input-datetime)
|
|
64
|
+
- **`hb-input-email` — `input-email`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-email@0.66.9/README.md) · [same text in this document](#wc-input-email)
|
|
65
|
+
- **`hb-input-file` — `input-file`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-file@0.66.9/README.md) · [same text in this document](#wc-input-file)
|
|
66
|
+
- **`hb-input-number` — `input-number`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-number@0.66.9/README.md) · [same text in this document](#wc-input-number)
|
|
67
|
+
- **`hb-input-radio` — `input-radio`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-radio@0.66.9/README.md) · [same text in this document](#wc-input-radio)
|
|
68
|
+
- **`hb-input-range` — `input-range`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-range@0.66.9/README.md) · [same text in this document](#wc-input-range)
|
|
69
|
+
- **`hb-input-select` — `input-select`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-select@0.66.9/README.md) · [same text in this document](#wc-input-select)
|
|
70
|
+
- **`hb-input-text` — `input-text`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-input-text@0.66.9/README.md) · [same text in this document](#wc-input-text)
|
|
71
|
+
- **`hb-json-viewer` — `json-viewer`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-json-viewer@0.66.9/README.md) · [same text in this document](#wc-json-viewer)
|
|
72
|
+
- **`hb-layout` — `layout`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-layout@0.66.9/README.md) · [same text in this document](#wc-layout)
|
|
73
|
+
- **`hb-layout-desktop` — `layout-desktop`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-layout-desktop@0.66.9/README.md) · [same text in this document](#wc-layout-desktop)
|
|
74
|
+
- **`hb-layout-mobile` — `layout-mobile`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-layout-mobile@0.66.9/README.md) · [same text in this document](#wc-layout-mobile)
|
|
75
|
+
- **`hb-map` — `map`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-map@0.66.9/README.md) · [same text in this document](#wc-map)
|
|
76
|
+
- **`hb-markdown-viewer` — `markdown-viewer`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-markdown-viewer@0.66.9/README.md) · [same text in this document](#wc-markdown-viewer)
|
|
77
|
+
- **`hb-matrix-video` — `matrix-video`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-matrix-video@0.66.9/README.md) · [same text in this document](#wc-matrix-video)
|
|
78
|
+
- **`hb-messages-box` — `messages-box`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-messages-box@0.66.9/README.md) · [same text in this document](#wc-messages-box)
|
|
79
|
+
- **`hb-messages-list` — `messages-list`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-messages-list@0.66.9/README.md) · [same text in this document](#wc-messages-list)
|
|
80
|
+
- **`hb-messages-send` — `messages-send`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-messages-send@0.66.9/README.md) · [same text in this document](#wc-messages-send)
|
|
81
|
+
- **`hb-messages-topics-card` — `messages-topics-card`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-messages-topics-card@0.66.9/README.md) · [same text in this document](#wc-messages-topics-card)
|
|
82
|
+
- **`hb-modal-video` — `modal-video`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-modal-video@0.66.9/README.md) · [same text in this document](#wc-modal-video)
|
|
83
|
+
- **`hb-navbar` — `navbar`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-navbar@0.66.9/README.md) · [same text in this document](#wc-navbar)
|
|
84
|
+
- **`hb-offcanvas` — `offcanvas`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-offcanvas@0.66.9/README.md) · [same text in this document](#wc-offcanvas)
|
|
85
|
+
- **`hb-order-list` — `order-list`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-order-list@0.66.9/README.md) · [same text in this document](#wc-order-list)
|
|
86
|
+
- **`hb-pad-joystick` — `pad-joystick`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-pad-joystick@0.66.9/README.md) · [same text in this document](#wc-pad-joystick)
|
|
87
|
+
- **`hb-page-checkout` — `page-checkout`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-page-checkout@0.66.9/README.md) · [same text in this document](#wc-page-checkout)
|
|
88
|
+
- **`hb-page-invoice` — `page-invoice`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-page-invoice@0.66.9/README.md) · [same text in this document](#wc-page-invoice)
|
|
89
|
+
- **`hb-paginate` — `paginate`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-paginate@0.66.9/README.md) · [same text in this document](#wc-paginate)
|
|
90
|
+
- **`hb-paragraps-around-image` — `paragraps-around-image`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-paragraps-around-image@0.66.9/README.md) · [same text in this document](#wc-paragraps-around-image)
|
|
91
|
+
- **`hb-paragraps-around-image-cell` — `paragraps-around-image-cell`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-paragraps-around-image-cell@0.66.9/README.md) · [same text in this document](#wc-paragraps-around-image-cell)
|
|
92
|
+
- **`hb-payment-paypal` — `payment-paypal`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-payment-paypal@0.66.9/README.md) · [same text in this document](#wc-payment-paypal)
|
|
93
|
+
- **`hb-player-input-streaming` — `player-input-streaming`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-player-input-streaming@0.66.9/README.md) · [same text in this document](#wc-player-input-streaming)
|
|
94
|
+
- **`hb-player-live` — `player-live`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-player-live@0.66.9/README.md) · [same text in this document](#wc-player-live)
|
|
95
|
+
- **`hb-player-live-camera-ptz` — `player-live-camera-ptz`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-player-live-camera-ptz@0.66.9/README.md) · [same text in this document](#wc-player-live-camera-ptz)
|
|
96
|
+
- **`hb-product-comparison` — `product-comparison`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-product-comparison@0.66.9/README.md) · [same text in this document](#wc-product-comparison)
|
|
97
|
+
- **`hb-range-slider` — `range-slider`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-range-slider@0.66.9/README.md) · [same text in this document](#wc-range-slider)
|
|
98
|
+
- **`hb-searchbar` — `searchbar`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-searchbar@0.66.9/README.md) · [same text in this document](#wc-searchbar)
|
|
99
|
+
- **`hb-shop-item-cell` — `shop-item-cell`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-shop-item-cell@0.66.9/README.md) · [same text in this document](#wc-shop-item-cell)
|
|
100
|
+
- **`hb-shop-item-row` — `shop-item-row`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-shop-item-row@0.66.9/README.md) · [same text in this document](#wc-shop-item-row)
|
|
101
|
+
- **`hb-sidebar-cards-navigator` — `sidebar-cards-navigator`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-sidebar-cards-navigator@0.66.9/README.md) · [same text in this document](#wc-sidebar-cards-navigator)
|
|
102
|
+
- **`hb-sidebar-desktop` — `sidebar-desktop`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-sidebar-desktop@0.66.9/README.md) · [same text in this document](#wc-sidebar-desktop)
|
|
103
|
+
- **`hb-sidenav-button` — `sidenav-button`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-sidenav-button@0.66.9/README.md) · [same text in this document](#wc-sidenav-button)
|
|
104
|
+
- **`hb-sidenav-link` — `sidenav-link`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-sidenav-link@0.66.9/README.md) · [same text in this document](#wc-sidenav-link)
|
|
105
|
+
- **`hb-site-contacts-row` — `site-contacts-row`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-site-contacts-row@0.66.9/README.md) · [same text in this document](#wc-site-contacts-row)
|
|
106
|
+
- **`hb-site-paragraph-with-image` — `site-paragraph-with-image`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-site-paragraph-with-image@0.66.9/README.md) · [same text in this document](#wc-site-paragraph-with-image)
|
|
107
|
+
- **`hb-site-slideshow` — `site-slideshow`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-site-slideshow@0.66.9/README.md) · [same text in this document](#wc-site-slideshow)
|
|
108
|
+
- **`hb-site-slideshow-horizontal` — `site-slideshow-horizontal`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-site-slideshow-horizontal@0.66.9/README.md) · [same text in this document](#wc-site-slideshow-horizontal)
|
|
109
|
+
- **`hb-skeleton-component` — `skeleton-component`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-skeleton-component@0.66.9/README.md) · [same text in this document](#wc-skeleton-component)
|
|
110
|
+
- **`hb-stylus-notebook` — `stylus-notebook`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-stylus-notebook@0.66.9/README.md) · [same text in this document](#wc-stylus-notebook)
|
|
111
|
+
- **`hb-stylus-paper` — `stylus-paper`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-stylus-paper@0.66.9/README.md) · [same text in this document](#wc-stylus-paper)
|
|
112
|
+
- **`hb-table` — `table`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-table@0.66.9/README.md) · [same text in this document](#wc-table)
|
|
113
|
+
- **`hb-terms-doc-templates` — `terms-doc-templates`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-terms-doc-templates@0.66.9/README.md) · [same text in this document](#wc-terms-doc-templates)
|
|
114
|
+
- **`hb-toast` — `toast`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-toast@0.66.9/README.md) · [same text in this document](#wc-toast)
|
|
115
|
+
- **`hb-tooltip` — `tooltip`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-tooltip@0.66.9/README.md) · [same text in this document](#wc-tooltip)
|
|
116
|
+
- **`hb-uploader` — `uploader`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-uploader@0.66.9/README.md) · [same text in this document](#wc-uploader)
|
|
117
|
+
- **`hb-vertical-img-txt-archive` — `vertical-img-txt-archive`** — [README on jsDelivr](https://cdn.jsdelivr.net/npm/@htmlbricks/hb-vertical-img-txt-archive@0.66.9/README.md) · [same text in this document](#wc-vertical-img-txt-archive)
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
<a id="wc-area-code"></a>
|
|
122
|
+
|
|
123
|
+
## `hb-area-code` — area-code
|
|
124
|
+
|
|
125
|
+
**Category:** utilities | **Tags:** utilities, developer
|
|
126
|
+
|
|
127
|
+
### What it does
|
|
128
|
+
|
|
129
|
+
Displays arbitrary text inside a `<code>` block with a themed background. A copy button copies the content to the clipboard, shows brief confirmation, and dispatches a `clipboardCopyText` custom event with the copied string.
|
|
130
|
+
|
|
131
|
+
### Custom element
|
|
132
|
+
|
|
133
|
+
`hb-area-code`
|
|
134
|
+
|
|
135
|
+
### Attributes / props (snake_case)
|
|
136
|
+
|
|
137
|
+
| Property | Type | Notes |
|
|
138
|
+
| --- | --- | --- |
|
|
139
|
+
| `id` | string (optional) | Element identifier. |
|
|
140
|
+
| `style` | string (optional) | Inline style string. |
|
|
141
|
+
| `content` | string (required) | Text shown inside the code block. |
|
|
142
|
+
|
|
143
|
+
**Style / theming:** CSS custom property `--hb-area-code-background` (color). **CSS part:** `content` (the code element). No HTML slots.
|
|
144
|
+
|
|
145
|
+
### Events (`CustomEvent` names)
|
|
146
|
+
|
|
147
|
+
- **`clipboardCopyText`** — `{ text: string }` — Fired after a successful clipboard copy with the copied text.
|
|
148
|
+
|
|
149
|
+
### Usage notes
|
|
150
|
+
|
|
151
|
+
- Uses Bootstrap-aligned theming patterns; primary styling is the component SCSS and `--hb-area-code-background`.
|
|
152
|
+
- Icons: not central to this component (copy UI is internal).
|
|
153
|
+
- Shadow DOM: `::part(content)` can target the code element.
|
|
154
|
+
- No i18n entries in `docs.ts`.
|
|
155
|
+
|
|
156
|
+
### Minimal HTML example
|
|
157
|
+
|
|
158
|
+
```html
|
|
159
|
+
<hb-area-code content="npm install @htmlbricks/hb-area-code"></hb-area-code>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
<a id="wc-auth"></a>
|
|
165
|
+
|
|
166
|
+
## `hb-auth` — auth
|
|
167
|
+
|
|
168
|
+
**Category:** auth | **Tags:** auth
|
|
169
|
+
|
|
170
|
+
### What it does
|
|
171
|
+
|
|
172
|
+
Full authentication UI driven by the `type` attribute: local login and registration (with optional “remember me”), email activation, password recovery and related notices, OTP and two-factor setup/verification. Supports OAuth2 social providers via embedded social-login buttons, configurable backend URIs and HTTP options, optional i18n, and dispatches events for login, registration, recovery/activation, and OAuth flow steps.
|
|
173
|
+
|
|
174
|
+
### Custom element
|
|
175
|
+
|
|
176
|
+
`hb-auth`
|
|
177
|
+
|
|
178
|
+
### Attributes / props (snake_case)
|
|
179
|
+
|
|
180
|
+
| Property | Type | Notes |
|
|
181
|
+
| --- | --- | --- |
|
|
182
|
+
| `id` | string (optional) | Element identifier. |
|
|
183
|
+
| `style` | string (optional) | Inline style string. |
|
|
184
|
+
| `type` | union (optional) | `"login"` \| `"register"` \| `"activate"` \| `"recover"` \| `"forgotpassword"` \| `"mailrecoverinfo"` \| `"otp"` \| `"2fa_code"` \| `"2fa_config"` — which screen to show. |
|
|
185
|
+
| `email` | string (optional) | Pre-filled or context email. |
|
|
186
|
+
| `i18nlang` | string (optional) | Language key (e.g. `en`, `it`). |
|
|
187
|
+
| `sessionkey` | string (optional) | Session-related key for flows. |
|
|
188
|
+
| `social_auth_server_url` | string (optional) | Base URL for social auth server. |
|
|
189
|
+
| `redirectonlogin` | string (optional) | Redirect after login. |
|
|
190
|
+
| `redirectoncreate` | string (optional) | Redirect after registration. |
|
|
191
|
+
| `loginuri` | string (optional) | Backend login endpoint. |
|
|
192
|
+
| `registeruri` | string (optional) | Backend register endpoint. |
|
|
193
|
+
| `activateuri` | string (optional) | Activation endpoint. |
|
|
194
|
+
| `recoveruri` | string (optional) | Recovery endpoint. |
|
|
195
|
+
| `requestmethod` | string (optional) | HTTP method for API calls. |
|
|
196
|
+
| `appendqueryparams` | string (optional) | Extra query params (often JSON string in HTML). |
|
|
197
|
+
| `appendbodyparams` | string (optional) | Extra body params (often JSON string in HTML). |
|
|
198
|
+
| `logouri` | string (optional) | Logo image URL. |
|
|
199
|
+
| `oauth2providers` | array (optional) | JSON array of `{ name, url?, params? }` provider configs (see `hb-auth-social-login-button` provider shape). |
|
|
200
|
+
| `disableregister` | boolean (optional) | Hide or disable registration. |
|
|
201
|
+
| `enable_recover_password` | boolean (optional) | Enable recover-password UI. |
|
|
202
|
+
| `passwordpattern` | string (optional) | Password validation pattern. |
|
|
203
|
+
| `recoverycode` | string (optional) | Recovery/activation code. |
|
|
204
|
+
| `disablelocal` | boolean (optional) | OAuth-only mode when true. |
|
|
205
|
+
|
|
206
|
+
**Slots:** `header`. **i18n:** Italian and English declared in metadata.
|
|
207
|
+
|
|
208
|
+
### Events (`CustomEvent` names)
|
|
209
|
+
|
|
210
|
+
- **`login`** — `{ token?: string; email?: string; password?: string; rememberMe?: boolean }`
|
|
211
|
+
- **`register`** — Intersection of `any` with `{ requestSent: { email: string; password: string }; email: string; password: string }` (types).
|
|
212
|
+
- **`recoverOrActivate`** — `{ password: string; recoverycode: string; email: string }`
|
|
213
|
+
- **`recoverPassword`** — `{ email: string }`
|
|
214
|
+
- **`oauthFlowInit`** — `{ token?: string; provider: "facebook" \| "google" \| "gitlab" \| "github" \| "authentik"; tmpCode?: string; redirect_uri?: string }`
|
|
215
|
+
- **`oauthFlowSuccess`** — `{ token: string }`
|
|
216
|
+
- **`oauthFlowCustom`** — `{ provider: ... }` (same provider union as above)
|
|
217
|
+
|
|
218
|
+
### Usage notes
|
|
219
|
+
|
|
220
|
+
- Built with Bootstrap 5 variables (`--bs-*` in style setup).
|
|
221
|
+
- Uses bootstrap-icons where the UI shows icons.
|
|
222
|
+
- Shadow DOM: slot `header` for custom branding; social buttons are composed internally.
|
|
223
|
+
- Set `i18nlang` for Italian or English strings where supported.
|
|
224
|
+
|
|
225
|
+
### Minimal HTML example
|
|
226
|
+
|
|
227
|
+
```html
|
|
228
|
+
<hb-auth
|
|
229
|
+
type="login"
|
|
230
|
+
i18nlang="en"
|
|
231
|
+
logouri="https://example.com/logo.svg"
|
|
232
|
+
loginuri="https://api.example.com/auth/login"
|
|
233
|
+
></hb-auth>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
<a id="wc-auth-social-login-button"></a>
|
|
239
|
+
|
|
240
|
+
## `hb-auth-social-login-button` — auth-social-login-button
|
|
241
|
+
|
|
242
|
+
**Category:** auth | **Tags:** auth, oauth
|
|
243
|
+
|
|
244
|
+
### What it does
|
|
245
|
+
|
|
246
|
+
Clickable OAuth provider tile (default SVGs for Google, GitHub, GitLab, Facebook, Authentik; overridable via slot). Builds the provider authorization URL from `provider` params or uses a prebuilt `url`, then parses the return URL to exchange code/token with `simple-serverless-auth-client` when `social_auth_server_url` and `auth_cookie_name` are set. Emits `oauthFlowInit`, `oauthFlowSuccess`, or `oauthFlowCustom` for custom flows.
|
|
247
|
+
|
|
248
|
+
### Custom element
|
|
249
|
+
|
|
250
|
+
`hb-auth-social-login-button`
|
|
251
|
+
|
|
252
|
+
### Attributes / props (snake_case)
|
|
253
|
+
|
|
254
|
+
| Property | Type | Notes |
|
|
255
|
+
| --- | --- | --- |
|
|
256
|
+
| `id` | string (optional) | Element identifier. |
|
|
257
|
+
| `style` | string (optional) | Inline style string. |
|
|
258
|
+
| `social_auth_server_url` | string (optional) | Server URL for token exchange. |
|
|
259
|
+
| `auth_cookie_name` | string (optional) | Cookie name used by the auth client. |
|
|
260
|
+
| `redirectonlogin` | string (optional) | Post-login redirect. |
|
|
261
|
+
| `provider` | object (optional) | JSON: `{ url?: string; name: "facebook" \| "google" \| "gitlab" \| "github" \| "authentik"; params?: { redirect_url; client_id; scope; auth_server_url? } }`. |
|
|
262
|
+
|
|
263
|
+
**Slots:** `header`. **i18n:** Italian and English in metadata.
|
|
264
|
+
|
|
265
|
+
### Events (`CustomEvent` names)
|
|
266
|
+
|
|
267
|
+
- **`oauthFlowSuccess`** — `{ token: string }`
|
|
268
|
+
- **`oauthFlowInit`** — `{ token?: string; provider: IProvider; tmpCode?: string; redirect_uri?: string }` (`IProvider` = facebook \| google \| gitlab \| github \| authentik)
|
|
269
|
+
- **`oauthFlowCustom`** — `{ provider: IProvider }`
|
|
270
|
+
|
|
271
|
+
### Usage notes
|
|
272
|
+
|
|
273
|
+
- Bootstrap 5 theme variables (`--bs-*`) apply to layout/button styling.
|
|
274
|
+
- Provider artwork aligns with common OAuth brands; slot `header` can override presentation.
|
|
275
|
+
- Shadow DOM encapsulates default SVGs; configure via attributes and slots.
|
|
276
|
+
- Use `i18nlang` on parent `hb-auth` or this component’s i18n metadata where wired.
|
|
277
|
+
|
|
278
|
+
### Minimal HTML example
|
|
279
|
+
|
|
280
|
+
```html
|
|
281
|
+
<hb-auth-social-login-button
|
|
282
|
+
provider='{"name":"google","url":"https://accounts.google.com/o/oauth2/v2/auth?..."}'
|
|
283
|
+
social_auth_server_url="https://auth.example.com"
|
|
284
|
+
auth_cookie_name="session"
|
|
285
|
+
></hb-auth-social-login-button>
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
<a id="wc-banner"></a>
|
|
291
|
+
|
|
292
|
+
## `hb-banner` — banner
|
|
293
|
+
|
|
294
|
+
**Category:** content | **Tags:** content, marketing
|
|
295
|
+
|
|
296
|
+
### What it does
|
|
297
|
+
|
|
298
|
+
Marketing-style hero strip: logo image beside a title and subtitle, using Bootstrap grid. Layout switches from side-by-side on large screens to stacked, centered content on smaller breakpoints.
|
|
299
|
+
|
|
300
|
+
### Custom element
|
|
301
|
+
|
|
302
|
+
`hb-banner`
|
|
303
|
+
|
|
304
|
+
### Attributes / props (snake_case)
|
|
305
|
+
|
|
306
|
+
| Property | Type | Notes |
|
|
307
|
+
| --- | --- | --- |
|
|
308
|
+
| `id` | string (optional) | Element identifier. |
|
|
309
|
+
| `style` | string (optional) | Inline style string. |
|
|
310
|
+
| `title` | string (optional) | Main heading text. |
|
|
311
|
+
| `description` | string (optional) | Subtitle or body text. |
|
|
312
|
+
| `logouri` | string (optional) | Logo image URL. |
|
|
313
|
+
|
|
314
|
+
No CSS vars or slots in style setup metadata.
|
|
315
|
+
|
|
316
|
+
### Events (`CustomEvent` names)
|
|
317
|
+
|
|
318
|
+
None declared in types (`Events` is an empty object).
|
|
319
|
+
|
|
320
|
+
### Usage notes
|
|
321
|
+
|
|
322
|
+
- Relies on Bootstrap 5 grid and responsive display utilities (`d-none`, `d-lg-block`, etc.).
|
|
323
|
+
- Use bootstrap-icons only if you extend the component; this banner is primarily image + text.
|
|
324
|
+
- Shadow DOM keeps typography/spacing internal unless slotted content is added in implementation.
|
|
325
|
+
- No i18n in `docs.ts`.
|
|
326
|
+
|
|
327
|
+
### Minimal HTML example
|
|
328
|
+
|
|
329
|
+
```html
|
|
330
|
+
<hb-banner
|
|
331
|
+
title="Welcome"
|
|
332
|
+
description="Build faster with our component library."
|
|
333
|
+
logouri="https://example.com/logo.svg"
|
|
334
|
+
></hb-banner>
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
<a id="wc-calendar-appointments"></a>
|
|
340
|
+
|
|
341
|
+
## `hb-calendar-appointments` — calendar-appointments
|
|
342
|
+
|
|
343
|
+
**Category:** calendar | **Tags:** calendar, appointments
|
|
344
|
+
|
|
345
|
+
### What it does
|
|
346
|
+
|
|
347
|
+
Month agenda view: events for the current month are grouped by calendar day and listed chronologically with weekday, day number, time, and colored markers. Optional header with month navigation; changing month or selecting a day dispatches `changeCalendarDate`, `changeSelectedDate`, and clicking a row dispatches `calendarEventClick`. Uses Italian public holidays metadata; `events` is supplied as JSON.
|
|
348
|
+
|
|
349
|
+
### Custom element
|
|
350
|
+
|
|
351
|
+
`hb-calendar-appointments`
|
|
352
|
+
|
|
353
|
+
### Attributes / props (snake_case)
|
|
354
|
+
|
|
355
|
+
| Property | Type | Notes |
|
|
356
|
+
| --- | --- | --- |
|
|
357
|
+
| `id` | string (optional) | Element identifier. |
|
|
358
|
+
| `style` | string (optional) | Inline style string. |
|
|
359
|
+
| `date` | Date (optional) | Current calendar month context; pass as ISO string / parsed JSON in HTML. |
|
|
360
|
+
| `events` | array (optional) | JSON array of `{ date: Date; label: string; id: string; link?; icon?; color? }`. |
|
|
361
|
+
| `selected` | Date (optional) | Selected day. |
|
|
362
|
+
| `disable_header` | boolean (optional) | Hide the navigation header when true. |
|
|
363
|
+
|
|
364
|
+
**Theme:** `--hb-calendar-selected`, `--hb-calendar-hover`, `--hb-calendar-today`. **Parts:** `calendar-header`, `calendar-current-time-header`, `cell`. **Slots:** `header_month_icon_prev`, `header_month_icon_next`, `header`, `calendar_month`.
|
|
365
|
+
|
|
366
|
+
### Events (`CustomEvent` names)
|
|
367
|
+
|
|
368
|
+
- **`calendarEventClick`** — `{ eventId: string }`
|
|
369
|
+
- **`changeCalendarDate`** — `{ date: Date }`
|
|
370
|
+
- **`changeSelectedDate`** — `{ selectedDate: Date }`
|
|
371
|
+
|
|
372
|
+
### Usage notes
|
|
373
|
+
|
|
374
|
+
- Bootstrap 5–oriented colors via CSS variables above.
|
|
375
|
+
- Italian holiday data is built in; adjust expectations for non-IT locales.
|
|
376
|
+
- Shadow DOM exposes named parts for deeper styling.
|
|
377
|
+
- Pass `events` and dates as JSON strings from HTML attributes; runtime parsing depends on the web component bridge.
|
|
378
|
+
|
|
379
|
+
### Minimal HTML example
|
|
380
|
+
|
|
381
|
+
```html
|
|
382
|
+
<hb-calendar-appointments
|
|
383
|
+
disable_header="false"
|
|
384
|
+
events='[{"id":"1","label":"Meeting","date":"2026-03-15T10:00:00.000Z"}]'
|
|
385
|
+
></hb-calendar-appointments>
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
<a id="wc-calendar-events"></a>
|
|
391
|
+
|
|
392
|
+
## `hb-calendar-events` — calendar-events
|
|
393
|
+
|
|
394
|
+
**Category:** calendar | **Tags:** calendar
|
|
395
|
+
|
|
396
|
+
### What it does
|
|
397
|
+
|
|
398
|
+
Classic month grid (7-day week header and variable rows) with selectable cells, “today” styling, and event chips inside each day. Supports adjacent-month padding cells, Italian holidays, JSON `events`, and the same navigation/selection events as the appointments calendar.
|
|
399
|
+
|
|
400
|
+
### Custom element
|
|
401
|
+
|
|
402
|
+
`hb-calendar-events`
|
|
403
|
+
|
|
404
|
+
### Attributes / props (snake_case)
|
|
405
|
+
|
|
406
|
+
| Property | Type | Notes |
|
|
407
|
+
| --- | --- | --- |
|
|
408
|
+
| `id` | string (optional) | Element identifier. |
|
|
409
|
+
| `style` | string (optional) | Inline style string. |
|
|
410
|
+
| `date` | Date (optional) | Visible month anchor. |
|
|
411
|
+
| `events` | array (optional) | JSON array of `{ date: Date; label: string; id: string; link?; icon?; color? }`. |
|
|
412
|
+
| `selected` | Date (optional) | Highlighted date. |
|
|
413
|
+
| `disable_header` | boolean (optional) | Hide month navigation when true. |
|
|
414
|
+
|
|
415
|
+
**Theme:** `--hb-calendar-selected`, `--hb-calendar-hover`, `--hb-calendar-today`. **Parts:** `calendar-header`, `calendar-current-time-header`, `cell`. **Slots:** `header_month_icon_prev`, `header_month_icon_next`, `header`, `calendar_month`.
|
|
416
|
+
|
|
417
|
+
### Events (`CustomEvent` names)
|
|
418
|
+
|
|
419
|
+
- **`calendarEventClick`** — `{ eventId: string }`
|
|
420
|
+
- **`changeCalendarDate`** — `{ date: Date }`
|
|
421
|
+
- **`changeSelectedDate`** — `{ selectedDate: Date }`
|
|
422
|
+
|
|
423
|
+
### Usage notes
|
|
424
|
+
|
|
425
|
+
- Styling aligns with Bootstrap-themed CSS variables on the host.
|
|
426
|
+
- Shares behavior with `hb-calendar-appointments` for events and navigation.
|
|
427
|
+
- Shadow DOM + parts allow styling cells and headers.
|
|
428
|
+
- No i18n entries in `docs.ts`; holidays skew Italian.
|
|
429
|
+
|
|
430
|
+
### Minimal HTML example
|
|
431
|
+
|
|
432
|
+
```html
|
|
433
|
+
<hb-calendar-events
|
|
434
|
+
events='[{"id":"a","label":"Launch","date":"2026-03-01T09:00:00.000Z","color":"#0d6efd"}]'
|
|
435
|
+
></hb-calendar-events>
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
<a id="wc-captcha-google-recaptcha-v2-invisible"></a>
|
|
441
|
+
|
|
442
|
+
## `hb-captcha-google-recaptcha-v2-invisible` — captcha-google-recaptcha-v2-invisible
|
|
443
|
+
|
|
444
|
+
**Category:** utilities | **Tags:** utilities, security
|
|
445
|
+
|
|
446
|
+
### What it does
|
|
447
|
+
|
|
448
|
+
Loads the Google reCAPTCHA v2 invisible SDK, renders the widget with your `api_key`, and exposes `grecaptcha.execute()` / reset when the `get` attribute changes after render. Dispatches `googleRecaptchaRendered` once mounted and `googleRecaptchaV2Response` with the token from the verification callback.
|
|
449
|
+
|
|
450
|
+
### Custom element
|
|
451
|
+
|
|
452
|
+
`hb-captcha-google-recaptcha-v2-invisible`
|
|
453
|
+
|
|
454
|
+
### Attributes / props (snake_case)
|
|
455
|
+
|
|
456
|
+
| Property | Type | Notes |
|
|
457
|
+
| --- | --- | --- |
|
|
458
|
+
| `id` | string (optional) | Element identifier. |
|
|
459
|
+
| `style` | string (optional) | Inline style string. |
|
|
460
|
+
| `api_key` | string (optional) | Google reCAPTCHA site key. |
|
|
461
|
+
| `get` | any (optional) | Trigger prop: changing after render drives execute/reset (see component behavior). |
|
|
462
|
+
|
|
463
|
+
**Bootstrap theme vars** in metadata. **CSS part:** `invalid-feedback`. No slots.
|
|
464
|
+
|
|
465
|
+
### Events (`CustomEvent` names)
|
|
466
|
+
|
|
467
|
+
- **`googleRecaptchaV2Response`** — `{ response: string }` — Verification token from Google.
|
|
468
|
+
- **`googleRecaptchaRendered`** — `{ render: true }` — Widget finished rendering.
|
|
469
|
+
|
|
470
|
+
### Usage notes
|
|
471
|
+
|
|
472
|
+
- Uses Bootstrap form-feedback styling via the `invalid-feedback` part.
|
|
473
|
+
- Requires loading Google’s script; CSP and domain allowlisting apply outside the component.
|
|
474
|
+
- Shadow DOM wraps the widget; style invalid states through the exposed part.
|
|
475
|
+
- No i18n in `docs.ts`.
|
|
476
|
+
|
|
477
|
+
### Minimal HTML example
|
|
478
|
+
|
|
479
|
+
```html
|
|
480
|
+
<hb-captcha-google-recaptcha-v2-invisible api_key="YOUR_SITE_KEY"></hb-captcha-google-recaptcha-v2-invisible>
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
<a id="wc-card-video"></a>
|
|
486
|
+
|
|
487
|
+
## `hb-card-video` — card-video
|
|
488
|
+
|
|
489
|
+
**Category:** media | **Tags:** media, video
|
|
490
|
+
|
|
491
|
+
### What it does
|
|
492
|
+
|
|
493
|
+
Bootstrap card with a 16:9 media area: YouTube embed when `provider` is `youtube`, otherwise an HTML5 `<video>` with MP4 source. Optional title, truncated description, formatted `time` via Day.js (`dateformat`), “read more” link label, and social share placeholders when `pageuri` is set.
|
|
494
|
+
|
|
495
|
+
### Custom element
|
|
496
|
+
|
|
497
|
+
`hb-card-video`
|
|
498
|
+
|
|
499
|
+
### Attributes / props (snake_case)
|
|
500
|
+
|
|
501
|
+
| Property | Type | Notes |
|
|
502
|
+
| --- | --- | --- |
|
|
503
|
+
| `id` | string (optional) | Element identifier. |
|
|
504
|
+
| `style` | string (optional) | Inline style string. |
|
|
505
|
+
| `title` | string (optional) | Card title. |
|
|
506
|
+
| `description` | string (optional) | Body text (truncated in UI). |
|
|
507
|
+
| `videosrc` | string (required) | Video URL or embed source. |
|
|
508
|
+
| `provider` | union (optional) | `"youtube"` or `""` for native video. |
|
|
509
|
+
| `pageuri` | string (optional) | Page URL for share widgets. |
|
|
510
|
+
| `linklabel` | string (optional) | Label for the “read more” style link. |
|
|
511
|
+
| `time` | Date (optional) | Publication or event time; pass parseable date string in HTML. |
|
|
512
|
+
| `dateformat` | string (optional) | Day.js format string for `time`. |
|
|
513
|
+
|
|
514
|
+
**Slot:** `card-footer`. No CSS vars in metadata.
|
|
515
|
+
|
|
516
|
+
### Events (`CustomEvent` names)
|
|
517
|
+
|
|
518
|
+
None declared in types (`Events` is an empty object).
|
|
519
|
+
|
|
520
|
+
### Usage notes
|
|
521
|
+
|
|
522
|
+
- Card layout follows Bootstrap card patterns.
|
|
523
|
+
- YouTube vs file video is selected only via `provider`; ensure `videosrc` matches the mode.
|
|
524
|
+
- Shadow DOM contains the player and share UI; slot `card-footer` extends the card.
|
|
525
|
+
- No i18n in `docs.ts`.
|
|
526
|
+
|
|
527
|
+
### Minimal HTML example
|
|
528
|
+
|
|
529
|
+
```html
|
|
530
|
+
<hb-card-video
|
|
531
|
+
videosrc="https://example.com/media/clip.mp4"
|
|
532
|
+
title="Product tour"
|
|
533
|
+
description="A short walkthrough of the dashboard."
|
|
534
|
+
time="2026-03-01T12:00:00.000Z"
|
|
535
|
+
dateformat="MMM D, YYYY"
|
|
536
|
+
></hb-card-video>
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
<a id="wc-chartjs"></a>
|
|
542
|
+
|
|
543
|
+
## `hb-chartjs` — chartjs
|
|
544
|
+
|
|
545
|
+
**Category:** data | **Tags:** data, chart
|
|
546
|
+
|
|
547
|
+
### What it does
|
|
548
|
+
|
|
549
|
+
Embeds Chart.js (line, bar, pie, radar, time scales, etc.) inside the shadow DOM. Pass a JSON `data` object with `type`, `data`, and optional `options`; the chart is recreated on data changes and when the container resizes. Clicking the canvas dispatches `chartClick` with the nearest point’s label and value.
|
|
550
|
+
|
|
551
|
+
### Custom element
|
|
552
|
+
|
|
553
|
+
`hb-chartjs`
|
|
554
|
+
|
|
555
|
+
### Attributes / props (snake_case)
|
|
556
|
+
|
|
557
|
+
| Property | Type | Notes |
|
|
558
|
+
| --- | --- | --- |
|
|
559
|
+
| `id` | string (optional) | Element identifier. |
|
|
560
|
+
| `style` | string (optional) | Inline style string. |
|
|
561
|
+
| `data` | any (required) | JSON Chart.js configuration: `{ type, data, options? }`. |
|
|
562
|
+
|
|
563
|
+
**CSS part:** `container`. No slots.
|
|
564
|
+
|
|
565
|
+
### Events (`CustomEvent` names)
|
|
566
|
+
|
|
567
|
+
- **`chartClick`** — `{ label?: string; value?: any }[]` — Per types, payload is an **array** of point-like objects (label/value pairs from the hit detection).
|
|
568
|
+
|
|
569
|
+
### Usage notes
|
|
570
|
+
|
|
571
|
+
- Chart.js runs inside shadow DOM; global Chart defaults may not apply unless duplicated.
|
|
572
|
+
- Bootstrap is not required for the canvas itself; host page can still use BS layout around the element.
|
|
573
|
+
- ResizeObserver + debounced window resize keep charts responsive.
|
|
574
|
+
- Pass `data` as a JSON string attribute from plain HTML.
|
|
575
|
+
|
|
576
|
+
### Minimal HTML example
|
|
577
|
+
|
|
578
|
+
```html
|
|
579
|
+
<hb-chartjs
|
|
580
|
+
data='{"type":"bar","data":{"labels":["A","B"],"datasets":[{"label":"K","data":[1,2]}]},"options":{}}'
|
|
581
|
+
></hb-chartjs>
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
---
|
|
585
|
+
|
|
586
|
+
<a id="wc-checkout"></a>
|
|
587
|
+
|
|
588
|
+
## `hb-checkout` — checkout
|
|
589
|
+
|
|
590
|
+
**Category:** commerce | **Tags:** commerce, checkout
|
|
591
|
+
|
|
592
|
+
### What it does
|
|
593
|
+
|
|
594
|
+
End-to-end checkout flow: editable billing/shipping user profile (`hb-form`), shipment method choice, optional card form, Google Pay, and PayPal via `hb-payment-paypal` according to `gateways` and `payment` JSON. Parses string props into objects, merges card network defaults, and tracks `completed` to switch between editable steps and a read-only confirmation summary with events for payment and form submissions.
|
|
595
|
+
|
|
596
|
+
### Custom element
|
|
597
|
+
|
|
598
|
+
`hb-checkout`
|
|
599
|
+
|
|
600
|
+
### Attributes / props (snake_case)
|
|
601
|
+
|
|
602
|
+
| Property | Type | Notes |
|
|
603
|
+
| --- | --- | --- |
|
|
604
|
+
| `id` | string (optional) | Element identifier. |
|
|
605
|
+
| `style` | string (optional) | Inline style string. |
|
|
606
|
+
| `shipments` | array (required) | JSON `IShipment[]`: price, selected?, standard?, arriveDate, available, id, label, currency. |
|
|
607
|
+
| `user` | object (optional) | JSON `IUser`: fullName, address fields, nationality, fixed?. |
|
|
608
|
+
| `gateways` | array (required) | JSON `IGateway[]`: id `google` \| `paypal`, label, fees, PayPal/Google Pay fields. |
|
|
609
|
+
| `payment` | object (required) | JSON `IPayment`: merchantName, total, currencyCode, countryCode, type?, shipmentFee?. |
|
|
610
|
+
| `completed` | union (optional) | `"yes"` \| `"no"` — controls summary vs edit flow. |
|
|
611
|
+
|
|
612
|
+
**CSS vars:** `--edit-color`, `--paypal-button-color`, `--hb-heckout-border`, plus Bootstrap `--bs-*`. **Parts:** `title`, `subtitle`. **Slots:** `payment_terms`, `payment_completed`, `userinfo`, `title`.
|
|
613
|
+
|
|
614
|
+
### Events (`CustomEvent` names)
|
|
615
|
+
|
|
616
|
+
- **`paymentCompleted`** — `{ total: number; method: string; completed: true }`
|
|
617
|
+
- **`saveUser`** — `IUser` payload
|
|
618
|
+
- **`saveShipment`** — `IShipment` payload
|
|
619
|
+
- **`completed`** — `"yes"` \| `"no"` (listed in `Events` interface)
|
|
620
|
+
|
|
621
|
+
### Usage notes
|
|
622
|
+
|
|
623
|
+
- Heavy use of Bootstrap 5 variables for chrome and buttons.
|
|
624
|
+
- Nested web components (`hb-form`, payment elements) live inside the flow.
|
|
625
|
+
- Large JSON props are typical; validate shapes before setting attributes.
|
|
626
|
+
- No i18n array in `docs.ts` for this component.
|
|
627
|
+
|
|
628
|
+
### Minimal HTML example
|
|
629
|
+
|
|
630
|
+
```html
|
|
631
|
+
<hb-checkout
|
|
632
|
+
completed="no"
|
|
633
|
+
payment='{"merchantName":"Acme","total":49.99,"currencyCode":"EUR","countryCode":"IT","type":"buy"}'
|
|
634
|
+
shipments='[{"id":"std","label":"Standard","price":5,"arriveDate":"2026-04-01T00:00:00.000Z","available":true,"currency":"€"}]'
|
|
635
|
+
gateways='[{"id":"paypal","label":"PayPal","paypalid":"sandbox"}]'
|
|
636
|
+
></hb-checkout>
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
|
|
641
|
+
<a id="wc-checkout-shopping-cart"></a>
|
|
642
|
+
|
|
643
|
+
## `hb-checkout-shopping-cart` — checkout-shopping-cart
|
|
644
|
+
|
|
645
|
+
**Category:** commerce | **Tags:** commerce, cart
|
|
646
|
+
|
|
647
|
+
### What it does
|
|
648
|
+
|
|
649
|
+
Order summary built on `hb-table`: maps `payment.items` into rows (name, quantity, line total), computes subtotal, tax, and grand total from item prices, and shows country/currency. When `completed` is enabled it switches to a compact “order placed” state; `payment` can be supplied as JSON.
|
|
650
|
+
|
|
651
|
+
### Custom element
|
|
652
|
+
|
|
653
|
+
`hb-checkout-shopping-cart`
|
|
654
|
+
|
|
655
|
+
### Attributes / props (snake_case)
|
|
656
|
+
|
|
657
|
+
| Property | Type | Notes |
|
|
658
|
+
| --- | --- | --- |
|
|
659
|
+
| `id` | string (optional) | Element identifier. |
|
|
660
|
+
| `style` | string (optional) | Inline style string. |
|
|
661
|
+
| `payment` | object (required) | JSON `IShoppingPayment`: countryCode `IT` \| `US` \| `EU`, currencySymbol?, shipmentFee?, items: `IShopItem[]` (id, name, unitaryPrice, taxPercentage, quantity?, unit?). |
|
|
662
|
+
| `completed` | union (optional) | `"yes"` \| `"no"` — order-placed compact UI when enabled. |
|
|
663
|
+
|
|
664
|
+
**CSS vars:** `--hb-checkout-border`, Bootstrap `--bs-*`. No slots or parts in metadata.
|
|
665
|
+
|
|
666
|
+
### Events (`CustomEvent` names)
|
|
667
|
+
|
|
668
|
+
None declared in types (`Events` is an empty object).
|
|
669
|
+
|
|
670
|
+
### Usage notes
|
|
671
|
+
|
|
672
|
+
- Styling follows Bootstrap 5 palette via shared variables.
|
|
673
|
+
- Depends on `hb-table` internally for row layout.
|
|
674
|
+
- Shadow DOM encapsulates the table presentation.
|
|
675
|
+
- No i18n in `docs.ts`.
|
|
676
|
+
|
|
677
|
+
### Minimal HTML example
|
|
678
|
+
|
|
679
|
+
```html
|
|
680
|
+
<hb-checkout-shopping-cart
|
|
681
|
+
payment='{"countryCode":"IT","currencySymbol":"€","items":[{"id":"sku1","name":"T-shirt","unitaryPrice":19.99,"taxPercentage":22,"quantity":2}]}'
|
|
682
|
+
completed="no"
|
|
683
|
+
></hb-checkout-shopping-cart>
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
---
|
|
687
|
+
|
|
688
|
+
<a id="wc-contact-card"></a>
|
|
689
|
+
|
|
690
|
+
## `hb-contact-card` — contact-card
|
|
691
|
+
|
|
692
|
+
**Category:** content | **Tags:** content, contact
|
|
693
|
+
|
|
694
|
+
### What it does
|
|
695
|
+
|
|
696
|
+
A comprehensive contact card: personal, contact, company, and social information in a Bootstrap-styled card. Uses one `data` object with structured arrays for phones, addresses, and social profiles. Features include avatar placeholder, clickable contact rows, social links, collapsible sections, and an actions dropdown with grouping, badges, and links.
|
|
697
|
+
|
|
698
|
+
### Custom element
|
|
699
|
+
|
|
700
|
+
`hb-contact-card`
|
|
701
|
+
|
|
702
|
+
### Attributes / props (snake_case)
|
|
703
|
+
|
|
704
|
+
| Property | Type | Notes |
|
|
705
|
+
| --- | --- | --- |
|
|
706
|
+
| `id` | string (optional) | Element identifier. |
|
|
707
|
+
| `style` | string (optional) | Inline style string. |
|
|
708
|
+
| `data` | object (required) | JSON `ContactData`: names, title, emails[], phones[], website, addresses[], company fields, notes, avatar, lat/long, socialMedia[], clickable?. |
|
|
709
|
+
| `actions_list` | array (optional) | JSON `IDropDownMenuListItem[]`: key, label, badge?, group?, linkHref?. |
|
|
710
|
+
| `i18nlang` | string (optional) | `en` \| `it` (storybook). |
|
|
711
|
+
| `show_header_collapse_button` | union (optional) | `"yes"` \| `"no"` — default `"yes"`. |
|
|
712
|
+
| `start_collapsed` | union (optional) | `"yes"` \| `"no"` — default `"no"`. |
|
|
713
|
+
|
|
714
|
+
**CSS vars:** `--hb--contact-card-*` (colors, radius, shadows). **Parts:** `card`, `header`, `body`, `avatar`, `actions`. No HTML slots.
|
|
715
|
+
|
|
716
|
+
### Events (`CustomEvent` names)
|
|
717
|
+
|
|
718
|
+
- **`contactClick`** — `{ id: string; contact: Component }` (`Component` = this element’s prop bag type)
|
|
719
|
+
- **`contactEdit`** — `{ id: string; contact: Component }`
|
|
720
|
+
- **`contactDelete`** — `{ id: string; contact: Component }`
|
|
721
|
+
- **`phoneClick`** — `{ id: string; phone: PhoneNumber }`
|
|
722
|
+
- **`emailClick`** — `{ id: string; email: EmailAddress }`
|
|
723
|
+
- **`websiteClick`** — `{ id: string; website: string }`
|
|
724
|
+
- **`socialClick`** — `{ id: string; social: SocialMedia }`
|
|
725
|
+
- **`addressClick`** — `{ id: string; address: Address }`
|
|
726
|
+
- **`collapseChange`** — `{ id: string; collapsed: boolean }`
|
|
727
|
+
|
|
728
|
+
### Usage notes
|
|
729
|
+
|
|
730
|
+
- Colors mirror Bootstrap 5 semantic tokens via custom properties.
|
|
731
|
+
- Icons use bootstrap-icons for contact and social affordances.
|
|
732
|
+
- Shadow DOM exposes `::part()` hooks for card regions.
|
|
733
|
+
- Set `i18nlang` for English or Italian strings.
|
|
734
|
+
|
|
735
|
+
### Minimal HTML example
|
|
736
|
+
|
|
737
|
+
```html
|
|
738
|
+
<hb-contact-card
|
|
739
|
+
id="c1"
|
|
740
|
+
i18nlang="en"
|
|
741
|
+
data='{"fullName":"Alex Doe","emails":[{"address":"alex@example.com","type":"work"}],"clickable":true}'
|
|
742
|
+
actions_list='[{"key":"edit","label":"Edit"}]'
|
|
743
|
+
></hb-contact-card>
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
---
|
|
747
|
+
|
|
748
|
+
<a id="wc-contact-item"></a>
|
|
749
|
+
|
|
750
|
+
## `hb-contact-item` — contact-item
|
|
751
|
+
|
|
752
|
+
**Category:** content | **Tags:** content, contact
|
|
753
|
+
|
|
754
|
+
### What it does
|
|
755
|
+
|
|
756
|
+
Single contact line (mutually exclusive props): phone, postal address, email, website, or social network. Renders a Bootstrap Icon and optional visible text; JSON `config` toggles icons (filled/outline), label text, and whether clicks dispatch `contactclick` with `{ action, options }` vs opening a window (maps URL, `mailto`, external site, or social page).
|
|
757
|
+
|
|
758
|
+
### Custom element
|
|
759
|
+
|
|
760
|
+
`hb-contact-item`
|
|
761
|
+
|
|
762
|
+
### Attributes / props (snake_case)
|
|
763
|
+
|
|
764
|
+
| Property | Type | Notes |
|
|
765
|
+
| --- | --- | --- |
|
|
766
|
+
| `id` | string (optional) | Element identifier. |
|
|
767
|
+
| `style` | string (optional) | Inline style string. |
|
|
768
|
+
| `phone` | object (optional) | JSON `IPhone`: number, callOnClick?. |
|
|
769
|
+
| `address` | object (optional) | JSON `IAddress`: mapUri?, latLang?, address, shortAddress?. |
|
|
770
|
+
| `email` | object (optional) | JSON `IEmail`: mailLink?, address. |
|
|
771
|
+
| `site` | object (optional) | JSON `ISite`: label?, uri?, open?. |
|
|
772
|
+
| `social` | object (optional) | JSON `ISocial`: label?, pageUri?, name. |
|
|
773
|
+
| `config` | object (optional) | JSON `IConfig`: icon?.fill, text?, dispatcher?. |
|
|
774
|
+
|
|
775
|
+
No CSS vars, parts, or slots in metadata.
|
|
776
|
+
|
|
777
|
+
### Events (`CustomEvent` names)
|
|
778
|
+
|
|
779
|
+
- **`contactclick`** — `{ action: string; options: any }` — Exact event name is lowercase in types.
|
|
780
|
+
|
|
781
|
+
### Usage notes
|
|
782
|
+
|
|
783
|
+
- Icons come from bootstrap-icons naming conventions.
|
|
784
|
+
- Only one of phone/address/email/site/social should be primary per row (per description).
|
|
785
|
+
- Shadow DOM wraps the row; no theme variables declared in docs.
|
|
786
|
+
- No i18n in `docs.ts`.
|
|
787
|
+
|
|
788
|
+
### Minimal HTML example
|
|
789
|
+
|
|
790
|
+
```html
|
|
791
|
+
<hb-contact-item
|
|
792
|
+
email='{"address":"hello@example.com","mailLink":true}'
|
|
793
|
+
config='{"text":true,"dispatcher":true}'
|
|
794
|
+
></hb-contact-item>
|
|
795
|
+
```
|
|
796
|
+
|
|
797
|
+
---
|
|
798
|
+
|
|
799
|
+
<a id="wc-cookie-law-banner"></a>
|
|
800
|
+
|
|
801
|
+
## `hb-cookie-law-banner` — cookie-law-banner
|
|
802
|
+
|
|
803
|
+
**Category:** layout | **Tags:** layout, compliance
|
|
804
|
+
|
|
805
|
+
### What it does
|
|
806
|
+
|
|
807
|
+
Bootstrap alert cookie notice until the user accepts or declines; the choice is stored in `localStorage` under `cookielaw`. Supports i18n via `i18nlang`, optional `cookielawuri4more` link, JSON `capabilities` for extended consent, slots to override title/text, and dispatches `acceptCookieLaw` with `{ accepted: "yes" | "no" }`.
|
|
808
|
+
|
|
809
|
+
### Custom element
|
|
810
|
+
|
|
811
|
+
`hb-cookie-law-banner`
|
|
812
|
+
|
|
813
|
+
### Attributes / props (snake_case)
|
|
814
|
+
|
|
815
|
+
| Property | Type | Notes |
|
|
816
|
+
| --- | --- | --- |
|
|
817
|
+
| `id` | string (optional) | Element identifier. |
|
|
818
|
+
| `style` | string (optional) | Inline style string. |
|
|
819
|
+
| `allowdecline` | union (optional) | `"yes"` \| `"no"` — show decline action. |
|
|
820
|
+
| `i18nlang` | string (optional) | Language key (e.g. `en`, `it`). |
|
|
821
|
+
| `capabilities` | object (optional) | JSON `ICapabilities`: cookie groups and items with scopes, mandatory flags, etc. |
|
|
822
|
+
| `cookielawuri4more` | string (optional) | “Learn more” URL. |
|
|
823
|
+
|
|
824
|
+
**Slots:** `title`, `text`. **i18n:** Italian and English in metadata.
|
|
825
|
+
|
|
826
|
+
### Events (`CustomEvent` names)
|
|
827
|
+
|
|
828
|
+
- **`acceptCookieLaw`** — `{ accepted: "yes" | "no" }`
|
|
829
|
+
|
|
830
|
+
### Usage notes
|
|
831
|
+
|
|
832
|
+
- Uses Bootstrap alert styling patterns.
|
|
833
|
+
- Fullscreen layout size hint in metadata for Storybook-style hosts.
|
|
834
|
+
- Shadow DOM; override copy via `title` and `text` slots.
|
|
835
|
+
- Set `i18nlang` to match declared languages.
|
|
836
|
+
|
|
837
|
+
### Minimal HTML example
|
|
838
|
+
|
|
839
|
+
```html
|
|
840
|
+
<hb-cookie-law-banner
|
|
841
|
+
allowdecline="yes"
|
|
842
|
+
i18nlang="en"
|
|
843
|
+
cookielawuri4more="https://example.com/cookies"
|
|
844
|
+
></hb-cookie-law-banner>
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
---
|
|
848
|
+
|
|
849
|
+
<a id="wc-dashboard-card1"></a>
|
|
850
|
+
|
|
851
|
+
## `hb-dashboard-card1` — dashboard-card1
|
|
852
|
+
|
|
853
|
+
**Category:** data | **Tags:** data, dashboard
|
|
854
|
+
|
|
855
|
+
### What it does
|
|
856
|
+
|
|
857
|
+
Bootstrap card shell for dashboards: JSON `header` supplies optional Bootstrap Icon name, title label, and right-aligned badge; JSON `body` can remove inner padding with `noborder`. Slots let you inject markup (metadata lists `content`; description also references `header_content` for layout between header and body—confirm in implementation if both exist).
|
|
858
|
+
|
|
859
|
+
### Custom element
|
|
860
|
+
|
|
861
|
+
`hb-dashboard-card1`
|
|
862
|
+
|
|
863
|
+
### Attributes / props (snake_case)
|
|
864
|
+
|
|
865
|
+
| Property | Type | Notes |
|
|
866
|
+
| --- | --- | --- |
|
|
867
|
+
| `id` | string (optional) | Element identifier. |
|
|
868
|
+
| `style` | string (optional) | Inline style string. |
|
|
869
|
+
| `header` | object (optional) | JSON `{ icon?: string; label: string; badge?: string }`. |
|
|
870
|
+
| `body` | object (optional) | JSON `{ noborder?: boolean }`. |
|
|
871
|
+
|
|
872
|
+
**Bootstrap `--bs-*` theme vars.** **Parts:** `text_placeholder`, `badge`, `card`. **Slot (metadata):** `content`.
|
|
873
|
+
|
|
874
|
+
### Events (`CustomEvent` names)
|
|
875
|
+
|
|
876
|
+
None declared in types (`Events` is an empty object).
|
|
877
|
+
|
|
878
|
+
### Usage notes
|
|
879
|
+
|
|
880
|
+
- Styling is Bootstrap 5–aligned via standard color variables.
|
|
881
|
+
- `header.icon` should be a bootstrap-icons icon name string.
|
|
882
|
+
- Use `::part(card)` and related parts for host-level theming inside shadow root.
|
|
883
|
+
- No i18n in `docs.ts`.
|
|
884
|
+
|
|
885
|
+
### Minimal HTML example
|
|
886
|
+
|
|
887
|
+
```html
|
|
888
|
+
<hb-dashboard-card1
|
|
889
|
+
header='{"label":"Revenue","icon":"graph-up","badge":"+12%"}'
|
|
890
|
+
body='{"noborder":false}'
|
|
891
|
+
></hb-dashboard-card1>
|
|
892
|
+
```
|
|
893
|
+
|
|
894
|
+
---
|
|
895
|
+
|
|
896
|
+
<a id="wc-dashboard-counter-lines"></a>
|
|
897
|
+
|
|
898
|
+
## `hb-dashboard-counter-lines` — dashboard-counter-lines
|
|
899
|
+
|
|
900
|
+
**Category:** data | **Tags:** data, dashboard
|
|
901
|
+
|
|
902
|
+
### What it does
|
|
903
|
+
|
|
904
|
+
Vertical list of metric rows from JSON `lines`: each row shows optional Bootstrap Icon, label text, and a secondary badge value. `link.type` chooses behavior—open URI in a new tab, same-window navigation, custom `counterClick` event with a key, or a static row with no click handler.
|
|
905
|
+
|
|
906
|
+
### Custom element
|
|
907
|
+
|
|
908
|
+
`hb-dashboard-counter-lines`
|
|
909
|
+
|
|
910
|
+
### Attributes / props (snake_case)
|
|
911
|
+
|
|
912
|
+
| Property | Type | Notes |
|
|
913
|
+
| --- | --- | --- |
|
|
914
|
+
| `id` | string (optional) | Element identifier. |
|
|
915
|
+
| `style` | string (optional) | Inline style string. |
|
|
916
|
+
| `lines` | array (optional) | JSON `Line[]`: text, value, link?: `{ type: "tab" \| "page" \| "event"; uri: string }`, index?, icon?. |
|
|
917
|
+
|
|
918
|
+
**Bootstrap `--bs-*` vars.** **Parts:** `item`, `icon`, `text`, `value`. No slots.
|
|
919
|
+
|
|
920
|
+
### Events (`CustomEvent` names)
|
|
921
|
+
|
|
922
|
+
- **`counterClick`** — `{ key: string }` — Used when a line’s `link.type` is `"event"` (per docs behavior).
|
|
923
|
+
|
|
924
|
+
### Usage notes
|
|
925
|
+
|
|
926
|
+
- Icons use bootstrap-icons names in the `icon` field.
|
|
927
|
+
- Rows are dashboard-style metrics, not a navigation menu.
|
|
928
|
+
- Shadow DOM exposes granular parts per row segment.
|
|
929
|
+
- No i18n in `docs.ts`.
|
|
930
|
+
|
|
931
|
+
### Minimal HTML example
|
|
932
|
+
|
|
933
|
+
```html
|
|
934
|
+
<hb-dashboard-counter-lines
|
|
935
|
+
lines='[{"text":"Active users","value":"1.2k","icon":"people"},{"text":"Errors","value":"3","icon":"exclamation-triangle"}]'
|
|
936
|
+
></hb-dashboard-counter-lines>
|
|
937
|
+
```
|
|
938
|
+
|
|
939
|
+
---
|
|
940
|
+
|
|
941
|
+
<a id="wc-dashboard-indicator"></a>
|
|
942
|
+
|
|
943
|
+
## `hb-dashboard-indicator` — dashboard-indicator
|
|
944
|
+
|
|
945
|
+
**Category:** data | **Tags:** data, dashboard
|
|
946
|
+
|
|
947
|
+
### What it does
|
|
948
|
+
|
|
949
|
+
Compact KPI tile: large `number`, caption `text`, and configurable Bootstrap Icon in a green panel. When `link_label` is set, a footer strip is shown and clicks dispatch `dashboardIndicatorClick` with the component `id`.
|
|
950
|
+
|
|
951
|
+
### Custom element
|
|
952
|
+
|
|
953
|
+
`hb-dashboard-indicator`
|
|
954
|
+
|
|
955
|
+
### Attributes / props (snake_case)
|
|
956
|
+
|
|
957
|
+
| Property | Type | Notes |
|
|
958
|
+
| --- | --- | --- |
|
|
959
|
+
| `id` | string (optional) | Element identifier (used in click payload). |
|
|
960
|
+
| `style` | string (optional) | Inline style string. |
|
|
961
|
+
| `number` | number (required) | Main KPI value. |
|
|
962
|
+
| `text` | string (optional) | Caption under the number. |
|
|
963
|
+
| `icon` | string (required) | Bootstrap Icons name. |
|
|
964
|
+
| `link_label` | string (optional) | If set, shows footer and enables click dispatch. |
|
|
965
|
+
|
|
966
|
+
**CSS var:** `--hb--dashboard-indicator-background`. No slots or parts in metadata.
|
|
967
|
+
|
|
968
|
+
### Events (`CustomEvent` names)
|
|
969
|
+
|
|
970
|
+
- **`dashboardIndicatorClick`** — `{ id: string }`
|
|
971
|
+
|
|
972
|
+
### Usage notes
|
|
973
|
+
|
|
974
|
+
- Default panel color is controlled by `--hb--dashboard-indicator-background` (green in defaults).
|
|
975
|
+
- Icon name must match bootstrap-icons.
|
|
976
|
+
- Shadow DOM wraps the tile; pass `id` when using click events.
|
|
977
|
+
- No i18n in `docs.ts`.
|
|
978
|
+
|
|
979
|
+
### Minimal HTML example
|
|
980
|
+
|
|
981
|
+
```html
|
|
982
|
+
<hb-dashboard-indicator
|
|
983
|
+
id="kpi-sales"
|
|
984
|
+
number="128"
|
|
985
|
+
text="Orders today"
|
|
986
|
+
icon="cart-check"
|
|
987
|
+
link_label="View details"
|
|
988
|
+
></hb-dashboard-indicator>
|
|
989
|
+
```
|
|
990
|
+
|
|
991
|
+
---
|
|
992
|
+
|
|
993
|
+
<a id="wc-dialog"></a>
|
|
994
|
+
|
|
995
|
+
## `hb-dialog` — dialog
|
|
996
|
+
|
|
997
|
+
**Category:** overlays | **Tags:** overlays, modal
|
|
998
|
+
|
|
999
|
+
### What it does
|
|
1000
|
+
|
|
1001
|
+
Bootstrap-styled modal controlled by string `show` (`yes`/`no`): fade transitions, optional backdrop click to close, Escape when `keyboard` is enabled, and `modal-open` on `document.body`. Slots replace title, body, footer, and button labels; default footer emits `modalConfirm` with `{ id, confirm }` and toggles visibility. Also emits `modalShow` when opened or closed.
|
|
1002
|
+
|
|
1003
|
+
### Custom element
|
|
1004
|
+
|
|
1005
|
+
`hb-dialog`
|
|
1006
|
+
|
|
1007
|
+
### Attributes / props (snake_case)
|
|
1008
|
+
|
|
1009
|
+
| Property | Type | Notes |
|
|
1010
|
+
| --- | --- | --- |
|
|
1011
|
+
| `id` | string (optional) | Element identifier (included in events). |
|
|
1012
|
+
| `style` | string (optional) | Inline style string. |
|
|
1013
|
+
| `show` | union (optional) | `"yes"` \| `"no"` — visibility. |
|
|
1014
|
+
| `confirm_btn_class` | string (optional) | Bootstrap button classes for confirm. |
|
|
1015
|
+
| `title` | string (optional) | Default title text if slot unused. |
|
|
1016
|
+
| `backdrop` | boolean (optional) | Show backdrop. |
|
|
1017
|
+
| `ignoreBackdrop` | boolean (optional) | Ignore backdrop interactions when true. |
|
|
1018
|
+
| `keyboard` | boolean (optional) | Escape to close. |
|
|
1019
|
+
| `describedby` | string (optional) | ARIA describedby id. |
|
|
1020
|
+
| `labelledby` | string (optional) | ARIA labelledby id. |
|
|
1021
|
+
| `content` | string (optional) | Default body string if slot unused. |
|
|
1022
|
+
| `closelabel` | string (optional) | Close button label. |
|
|
1023
|
+
| `confirmlabel` | string (optional) | Confirm button label. |
|
|
1024
|
+
| `disable_confirm` | boolean (optional) | Disable confirm button. |
|
|
1025
|
+
| `close_btn_class` | string (optional) | Classes for close button. |
|
|
1026
|
+
| `hide_close` | boolean (optional) | Hide close control. |
|
|
1027
|
+
| `hide_confirm` | boolean (optional) | Hide confirm control. |
|
|
1028
|
+
|
|
1029
|
+
**CSS vars:** Bootstrap `--bs-*`, `--hb-modal-max-width`. **Part:** `modal-dialog`. **Slots:** `header`, `modal-footer`, `body-content`, `footer`, `close-button-label`, `confirm-button-label`.
|
|
1030
|
+
|
|
1031
|
+
### Events (`CustomEvent` names)
|
|
1032
|
+
|
|
1033
|
+
- **`modalConfirm`** — `{ id: string; confirm: boolean }`
|
|
1034
|
+
- **`modalShow`** — `{ id: string; show: true }`
|
|
1035
|
+
|
|
1036
|
+
### Usage notes
|
|
1037
|
+
|
|
1038
|
+
- Full Bootstrap modal behavior patterns (body scroll lock, backdrop).
|
|
1039
|
+
- bootstrap-icons may appear on buttons depending on implementation.
|
|
1040
|
+
- Teleports/focus live in shadow DOM; test accessibility with real browsers.
|
|
1041
|
+
- No i18n array in `docs.ts`.
|
|
1042
|
+
|
|
1043
|
+
### Minimal HTML example
|
|
1044
|
+
|
|
1045
|
+
```html
|
|
1046
|
+
<hb-dialog
|
|
1047
|
+
id="confirm-delete"
|
|
1048
|
+
show="yes"
|
|
1049
|
+
title="Delete item?"
|
|
1050
|
+
content="This cannot be undone."
|
|
1051
|
+
confirmlabel="Delete"
|
|
1052
|
+
closelabel="Cancel"
|
|
1053
|
+
keyboard="true"
|
|
1054
|
+
></hb-dialog>
|
|
1055
|
+
```
|
|
1056
|
+
|
|
1057
|
+
---
|
|
1058
|
+
|
|
1059
|
+
<a id="wc-dialog-loader"></a>
|
|
1060
|
+
|
|
1061
|
+
## `hb-dialog-loader` — dialog-loader
|
|
1062
|
+
|
|
1063
|
+
**Category:** overlays | **Tags:** overlays, modal, loading
|
|
1064
|
+
|
|
1065
|
+
### What it does
|
|
1066
|
+
|
|
1067
|
+
Thin wrapper around `hb-dialog` that opens automatically while numeric `percentage` is non-zero and shows a Bootstrap progress bar filled to that value. Forwards `modalShow` from the inner dialog; slots allow overriding the dialog title.
|
|
1068
|
+
|
|
1069
|
+
### Custom element
|
|
1070
|
+
|
|
1071
|
+
`hb-dialog-loader`
|
|
1072
|
+
|
|
1073
|
+
### Attributes / props (snake_case)
|
|
1074
|
+
|
|
1075
|
+
| Property | Type | Notes |
|
|
1076
|
+
| --- | --- | --- |
|
|
1077
|
+
| `id` | string (optional) | Element identifier. |
|
|
1078
|
+
| `style` | string (optional) | Inline style string. |
|
|
1079
|
+
| `title` | string (optional) | Dialog title text. |
|
|
1080
|
+
| `percentage` | number (required) | 0 hides/closes behavior; non-zero shows progress (per description). |
|
|
1081
|
+
|
|
1082
|
+
**Bootstrap `--bs-*` vars.** **Slot:** `title`. No parts in metadata.
|
|
1083
|
+
|
|
1084
|
+
### Events (`CustomEvent` names)
|
|
1085
|
+
|
|
1086
|
+
- **`modalShow`** — `{ id: string; show: true }` — Forwarded from inner `hb-dialog`.
|
|
1087
|
+
|
|
1088
|
+
### Usage notes
|
|
1089
|
+
|
|
1090
|
+
- Progress UI uses Bootstrap progress component styling.
|
|
1091
|
+
- Parent should drive `percentage` from async task state.
|
|
1092
|
+
- Nested `hb-dialog` means the same overlay constraints as `hb-dialog`.
|
|
1093
|
+
- No i18n in `docs.ts`.
|
|
1094
|
+
|
|
1095
|
+
### Minimal HTML example
|
|
1096
|
+
|
|
1097
|
+
```html
|
|
1098
|
+
<hb-dialog-loader title="Uploading…" percentage="45"></hb-dialog-loader>
|
|
1099
|
+
```
|
|
1100
|
+
|
|
1101
|
+
---
|
|
1102
|
+
|
|
1103
|
+
<a id="wc-dialogform"></a>
|
|
1104
|
+
|
|
1105
|
+
## `hb-dialogform` — dialogform
|
|
1106
|
+
|
|
1107
|
+
**Category:** forms | **Tags:** forms, overlays
|
|
1108
|
+
|
|
1109
|
+
### What it does
|
|
1110
|
+
|
|
1111
|
+
Modal that embeds `hb-form` with the same `schema` contract: live form updates mirror validity and values via `changeForm`, and the confirm button dispatches `modalFormConfirm` with the last valid payload or `modalFormCancel` when dismissed or invalid. Composes `hb-dialog` (backdrop/keyboard, `show`) and re-dispatches `modalShow`.
|
|
1112
|
+
|
|
1113
|
+
### Custom element
|
|
1114
|
+
|
|
1115
|
+
`hb-dialogform`
|
|
1116
|
+
|
|
1117
|
+
### Attributes / props (snake_case)
|
|
1118
|
+
|
|
1119
|
+
| Property | Type | Notes |
|
|
1120
|
+
| --- | --- | --- |
|
|
1121
|
+
| `id` | string (optional) | Element identifier. |
|
|
1122
|
+
| `style` | string (optional) | Inline style string. |
|
|
1123
|
+
| `show` | union (optional) | `"yes"` \| `"no"`. |
|
|
1124
|
+
| `dialogclasses` | string (optional) | Extra classes on the dialog (types use `dialogclasses`). |
|
|
1125
|
+
| `title` | string (optional) | Modal title. |
|
|
1126
|
+
| `backdrop` | boolean (optional) | Backdrop toggle. |
|
|
1127
|
+
| `ignoreBackdrop` | boolean (optional) | Ignore backdrop clicks. |
|
|
1128
|
+
| `keyboard` | boolean (optional) | Escape closes when true. |
|
|
1129
|
+
| `describedby` | string (optional) | ARIA describedby. |
|
|
1130
|
+
| `labelledby` | string (optional) | ARIA labelledby. |
|
|
1131
|
+
| `content` | string (optional) | Supplemental content string. |
|
|
1132
|
+
| `closelabel` | string (optional) | Close button label. |
|
|
1133
|
+
| `confirmlabel` | string (optional) | Confirm button label. |
|
|
1134
|
+
| `schema` | array (required) | JSON form schema (same shape as `hb-form` `schema`). |
|
|
1135
|
+
|
|
1136
|
+
**Bootstrap `--bs-*` vars.** **Slots:** `form-header`, `form-footer`, `header`, `modal-footer`, `footer`, `close-button-label`, `confirm-button-label`.
|
|
1137
|
+
|
|
1138
|
+
### Events (`CustomEvent` names)
|
|
1139
|
+
|
|
1140
|
+
- **`modalFormConfirm`** — `{ [key: string]: any }` — Submitted field map / payload (types use open object).
|
|
1141
|
+
- **`modalShow`** — `{ id: string; show: true }`
|
|
1142
|
+
- **`modalFormCancel`** — `{ id: string; error?: string }`
|
|
1143
|
+
- **`changeForm`** — `{ _valid: boolean; _id: string; values: Record<string, string \| number \| boolean> }` (same as `hb-form` `update` event in form types)
|
|
1144
|
+
|
|
1145
|
+
### Usage notes
|
|
1146
|
+
|
|
1147
|
+
- Built on Bootstrap modal + form patterns shared with `hb-dialog` and `hb-form`.
|
|
1148
|
+
- `schema` is typically a JSON string in HTML; validate against `hb-form` field types.
|
|
1149
|
+
- Shadow DOM composes nested components; slots map to form and modal regions.
|
|
1150
|
+
- No i18n array in `docs.ts` for this component.
|
|
1151
|
+
|
|
1152
|
+
### Minimal HTML example
|
|
1153
|
+
|
|
1154
|
+
```html
|
|
1155
|
+
<hb-dialogform
|
|
1156
|
+
show="yes"
|
|
1157
|
+
title="Edit profile"
|
|
1158
|
+
schema='[{"type":"text","id":"name","label":"Name","required":true,"value":""}]'
|
|
1159
|
+
confirmlabel="Save"
|
|
1160
|
+
closelabel="Cancel"
|
|
1161
|
+
></hb-dialogform>
|
|
1162
|
+
```
|
|
1163
|
+
|
|
1164
|
+
---
|
|
1165
|
+
|
|
1166
|
+
<a id="wc-downloader"></a>
|
|
1167
|
+
|
|
1168
|
+
## `hb-downloader` — downloader
|
|
1169
|
+
|
|
1170
|
+
**Category:** utilities
|
|
1171
|
+
**Tags:** utilities, files
|
|
1172
|
+
|
|
1173
|
+
### What it does
|
|
1174
|
+
|
|
1175
|
+
Opens `hb-dialog` while `uri` is set and downloads the resource with `XMLHttpRequest` as a blob: optional JSON `headers`, inferred or explicit `targetfilename`, `Content-Disposition` parsing when exposed by CORS, progress bar from `onprogress`, then triggers a browser file save. Dispatches `downloadComplete` or `downloadError` (with `downloadid`) and propagates `modalShow`; clears/aborts when the dialog closes.
|
|
1176
|
+
|
|
1177
|
+
### Custom element
|
|
1178
|
+
|
|
1179
|
+
`hb-downloader`
|
|
1180
|
+
|
|
1181
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1182
|
+
|
|
1183
|
+
- `id` — optional string
|
|
1184
|
+
- `style` — optional string
|
|
1185
|
+
- `uri` — required string (resource URL)
|
|
1186
|
+
- `downloadid` — optional string (correlates emitted events)
|
|
1187
|
+
- `headers` — optional string (JSON object of request headers)
|
|
1188
|
+
- `targetfilename` — optional string (suggested download filename)
|
|
1189
|
+
|
|
1190
|
+
### Events
|
|
1191
|
+
|
|
1192
|
+
- `downloadError` — `{ downloaded: boolean; id: string; error: Error }`
|
|
1193
|
+
- `downloadComplete` — `{ downloaded: boolean; id: string }`
|
|
1194
|
+
- `modalShow` — `{ id: string; show: true }`
|
|
1195
|
+
|
|
1196
|
+
### Usage notes
|
|
1197
|
+
|
|
1198
|
+
Pass complex objects (`headers`) as JSON strings on attributes. Requires CORS and appropriate headers for progress and filename hints. Slot: `title` (dialog title).
|
|
1199
|
+
|
|
1200
|
+
### Minimal HTML example
|
|
1201
|
+
|
|
1202
|
+
```html
|
|
1203
|
+
<hb-downloader
|
|
1204
|
+
uri="https://example.com/file.pdf"
|
|
1205
|
+
targetfilename="document.pdf"
|
|
1206
|
+
headers="{"Authorization":"Bearer token"}"
|
|
1207
|
+
></hb-downloader>
|
|
1208
|
+
```
|
|
1209
|
+
|
|
1210
|
+
---
|
|
1211
|
+
|
|
1212
|
+
<a id="wc-dropdown-notifications"></a>
|
|
1213
|
+
|
|
1214
|
+
## `hb-dropdown-notifications` — dropdown-notifications
|
|
1215
|
+
|
|
1216
|
+
**Category:** overlays
|
|
1217
|
+
**Tags:** overlays, menu, notifications
|
|
1218
|
+
|
|
1219
|
+
### What it does
|
|
1220
|
+
|
|
1221
|
+
Navbar-style bell control that toggles a Bootstrap `dropdown-menu`: header row with optional “Clear all” (`clearurl`) and a default slot for notification rows, plus optional footer link “View all” (`viewurl`). `align` switches `dropdown-menu-end` for right alignment.
|
|
1222
|
+
|
|
1223
|
+
### Custom element
|
|
1224
|
+
|
|
1225
|
+
`hb-dropdown-notifications`
|
|
1226
|
+
|
|
1227
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1228
|
+
|
|
1229
|
+
- `id` — optional string
|
|
1230
|
+
- `style` — optional string
|
|
1231
|
+
- `clearurl` — string (URL for clear-all; empty disables)
|
|
1232
|
+
- `viewurl` — string (URL for view-all; empty disables)
|
|
1233
|
+
- `align` — `"left"` | `"right"`
|
|
1234
|
+
|
|
1235
|
+
### Events
|
|
1236
|
+
|
|
1237
|
+
None declared on the component type.
|
|
1238
|
+
|
|
1239
|
+
### Usage notes
|
|
1240
|
+
|
|
1241
|
+
Slot: `title` (dropdown header). Default slot holds notification row content.
|
|
1242
|
+
|
|
1243
|
+
### Minimal HTML example
|
|
1244
|
+
|
|
1245
|
+
```html
|
|
1246
|
+
<hb-dropdown-notifications
|
|
1247
|
+
clearurl=""
|
|
1248
|
+
viewurl="/notifications"
|
|
1249
|
+
align="right"
|
|
1250
|
+
>
|
|
1251
|
+
<span slot="title">Notifications</span>
|
|
1252
|
+
<div class="dropdown-item">Sample notification</div>
|
|
1253
|
+
</hb-dropdown-notifications>
|
|
1254
|
+
```
|
|
1255
|
+
|
|
1256
|
+
---
|
|
1257
|
+
|
|
1258
|
+
<a id="wc-dropdown-simple"></a>
|
|
1259
|
+
|
|
1260
|
+
## `hb-dropdown-simple` — dropdown-simple
|
|
1261
|
+
|
|
1262
|
+
**Category:** overlays
|
|
1263
|
+
**Tags:** overlays, menu
|
|
1264
|
+
|
|
1265
|
+
### What it does
|
|
1266
|
+
|
|
1267
|
+
Bootstrap dropdown menu: `list` is a JSON array of items with `key` (and labels per your schema). Toggle open state with the trigger; choosing an item emits `dropDownClick` with the item `key` and closes the menu. `open` accepts boolean or string (`yes`/`no`); `position` aligns the menu left or right (defaults from host `float: right` when unset). Emits `dropdownSwitch` when toggled.
|
|
1268
|
+
|
|
1269
|
+
### Custom element
|
|
1270
|
+
|
|
1271
|
+
`hb-dropdown-simple`
|
|
1272
|
+
|
|
1273
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1274
|
+
|
|
1275
|
+
- `id` — optional string
|
|
1276
|
+
- `style` — optional string (e.g. `float: right` influences default `position`)
|
|
1277
|
+
- `list` — string (JSON array of `{ key, label, … }`; optional `linkHref`, `badge`, `group`)
|
|
1278
|
+
- `open` — optional boolean or `"yes"` / `"no"`
|
|
1279
|
+
- `position` — optional `"left"` | `"right"`
|
|
1280
|
+
|
|
1281
|
+
### Events
|
|
1282
|
+
|
|
1283
|
+
- `dropdownSwitch` — `{ open: boolean; id: string }`
|
|
1284
|
+
- `dropDownClick` — `{ key: string }`
|
|
1285
|
+
|
|
1286
|
+
### Usage notes
|
|
1287
|
+
|
|
1288
|
+
CSS parts: `dropdown`, `dropdownbutton`, `dropdowncontent`.
|
|
1289
|
+
|
|
1290
|
+
### Minimal HTML example
|
|
1291
|
+
|
|
1292
|
+
```html
|
|
1293
|
+
<hb-dropdown-simple
|
|
1294
|
+
list="[{"key":"a","label":"Option A"},{"key":"b","label":"Option B"}]"
|
|
1295
|
+
position="left"
|
|
1296
|
+
></hb-dropdown-simple>
|
|
1297
|
+
```
|
|
1298
|
+
|
|
1299
|
+
---
|
|
1300
|
+
|
|
1301
|
+
<a id="wc-editor-video"></a>
|
|
1302
|
+
|
|
1303
|
+
## `hb-editor-video` — editor-video
|
|
1304
|
+
|
|
1305
|
+
**Category:** media
|
|
1306
|
+
**Tags:** media, video, editor
|
|
1307
|
+
|
|
1308
|
+
### What it does
|
|
1309
|
+
|
|
1310
|
+
Video trimmer UI: plays `src` with an `hb-range-slider` synced to the playhead and in/out bounds (`track` min/max seconds). Numeric time fields, cue-to-current-time buttons, and optional `hb-form` gate final submission. Emits `changeTrackValues`, `dispatchTrack` when no form is used, and form-driven submit when metadata is valid.
|
|
1311
|
+
|
|
1312
|
+
### Custom element
|
|
1313
|
+
|
|
1314
|
+
`hb-editor-video`
|
|
1315
|
+
|
|
1316
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1317
|
+
|
|
1318
|
+
- `id` — optional string
|
|
1319
|
+
- `style` — optional string
|
|
1320
|
+
- `src` — required string (video URL)
|
|
1321
|
+
- `form` — optional string (JSON / schema for embedded `hb-form` when gating submit)
|
|
1322
|
+
- `track` — optional string (JSON `{ minValue, maxValue }` in seconds)
|
|
1323
|
+
|
|
1324
|
+
### Events
|
|
1325
|
+
|
|
1326
|
+
- `changeTrackValues` — `{ minVaule: number; maxValue: number }` (note: first key is spelled `minVaule` in the implementation)
|
|
1327
|
+
- `dispatchTrack` — `ITrack` or track merged with form submit payload when `form` is set
|
|
1328
|
+
|
|
1329
|
+
### Usage notes
|
|
1330
|
+
|
|
1331
|
+
Registers `hb-range-slider` and `hb-form`. Without `form`, use `dispatchTrack` for the trimmed range; with `form`, submission dispatches `dispatchTrack` including validated form fields.
|
|
1332
|
+
|
|
1333
|
+
### Minimal HTML example
|
|
1334
|
+
|
|
1335
|
+
```html
|
|
1336
|
+
<hb-editor-video
|
|
1337
|
+
src="https://example.com/video.mp4"
|
|
1338
|
+
track="{"minValue":0,"maxValue":120}"
|
|
1339
|
+
></hb-editor-video>
|
|
1340
|
+
```
|
|
1341
|
+
|
|
1342
|
+
---
|
|
1343
|
+
|
|
1344
|
+
<a id="wc-faq-component"></a>
|
|
1345
|
+
|
|
1346
|
+
## `hb-faq-component` — faq-component
|
|
1347
|
+
|
|
1348
|
+
**Category:** content
|
|
1349
|
+
**Tags:** content
|
|
1350
|
+
|
|
1351
|
+
### What it does
|
|
1352
|
+
|
|
1353
|
+
FAQ layout with a horizontal topic strip (Bootstrap Icons + labels) that sets an optional `filter` key, and an accordion list built from JSON `info` entries (`title`, `topic`, HTML `text`). Checkbox hack expands/collapses answers; topics with `catchAll` clear the filter.
|
|
1354
|
+
|
|
1355
|
+
### Custom element
|
|
1356
|
+
|
|
1357
|
+
`hb-faq-component`
|
|
1358
|
+
|
|
1359
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1360
|
+
|
|
1361
|
+
- `id` — optional string
|
|
1362
|
+
- `style` — optional string
|
|
1363
|
+
- `info` — optional string (JSON array of `{ topic?, title, text }`; `text` may contain HTML)
|
|
1364
|
+
- `topics` — optional string (JSON array of `{ key, label, icon, catchAll?, index? }`)
|
|
1365
|
+
- `filter` — optional string (active topic key)
|
|
1366
|
+
|
|
1367
|
+
### Events
|
|
1368
|
+
|
|
1369
|
+
None declared on the component type.
|
|
1370
|
+
|
|
1371
|
+
### Usage notes
|
|
1372
|
+
|
|
1373
|
+
Drive content via `info` and `topics` as JSON strings. Icon names use Bootstrap Icons.
|
|
1374
|
+
|
|
1375
|
+
### Minimal HTML example
|
|
1376
|
+
|
|
1377
|
+
```html
|
|
1378
|
+
<hb-faq-component
|
|
1379
|
+
topics="[{"key":"general","label":"General","icon":"question-circle"}]"
|
|
1380
|
+
info="[{"topic":"general","title":"First question","text":"<p>Answer here.</p>"}]"
|
|
1381
|
+
></hb-faq-component>
|
|
1382
|
+
```
|
|
1383
|
+
|
|
1384
|
+
---
|
|
1385
|
+
|
|
1386
|
+
<a id="wc-footer"></a>
|
|
1387
|
+
|
|
1388
|
+
## `hb-footer` — footer
|
|
1389
|
+
|
|
1390
|
+
**Category:** layout
|
|
1391
|
+
**Tags:** layout, navigation
|
|
1392
|
+
|
|
1393
|
+
### What it does
|
|
1394
|
+
|
|
1395
|
+
Site footer in `small`, `regular`, or `large` layouts: company block, optional brand/contacts column, link columns, social icons, `hb-contact-item` rows, and policy links—all driven by JSON props. On small layouts the body can expand/collapse unless `disable_expanding_small` is set; slots `footerheader`, `footercontent`, and `footerbottom` wrap major regions.
|
|
1396
|
+
|
|
1397
|
+
### Custom element
|
|
1398
|
+
|
|
1399
|
+
`hb-footer`
|
|
1400
|
+
|
|
1401
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1402
|
+
|
|
1403
|
+
- `id` — optional string
|
|
1404
|
+
- `style` — optional string
|
|
1405
|
+
- `company` — required string (JSON: logo, names, description, VAT, etc.)
|
|
1406
|
+
- `brandandcontacts` — optional string (JSON)
|
|
1407
|
+
- `columns` — optional string (JSON array of titled link columns / cells)
|
|
1408
|
+
- `policies` — optional string (JSON array of `{ label, key, link? }`)
|
|
1409
|
+
- `contacts` — optional string (JSON: phones, addresses, emails, sites)
|
|
1410
|
+
- `socials` — optional string (JSON: facebook, youtube, …)
|
|
1411
|
+
- `type` — optional `"small"` | `"regular"` | `"large"`
|
|
1412
|
+
- `disable_expanding_small` — optional boolean (string in HTML)
|
|
1413
|
+
|
|
1414
|
+
### Events
|
|
1415
|
+
|
|
1416
|
+
- `footerClick` — `{ elClick: string }`
|
|
1417
|
+
|
|
1418
|
+
### Usage notes
|
|
1419
|
+
|
|
1420
|
+
Slots: `footerpolicy`, `footerheader`, `footercontent`, `footerbottom`, `footer_small`. CSS part: `column-cell-button-content`. Layout size metadata in docs: `fullscreen`.
|
|
1421
|
+
|
|
1422
|
+
### Minimal HTML example
|
|
1423
|
+
|
|
1424
|
+
```html
|
|
1425
|
+
<hb-footer
|
|
1426
|
+
type="regular"
|
|
1427
|
+
company="{"logoUri":"https://example.com/logo.svg","siteName":"Site","companyName":"ACME","description":"Tagline"}"
|
|
1428
|
+
columns="[]"
|
|
1429
|
+
policies="[]"
|
|
1430
|
+
></hb-footer>
|
|
1431
|
+
```
|
|
1432
|
+
|
|
1433
|
+
---
|
|
1434
|
+
|
|
1435
|
+
<a id="wc-form"></a>
|
|
1436
|
+
|
|
1437
|
+
## `hb-form` — form
|
|
1438
|
+
|
|
1439
|
+
**Category:** forms
|
|
1440
|
+
**Tags:** forms
|
|
1441
|
+
|
|
1442
|
+
### What it does
|
|
1443
|
+
|
|
1444
|
+
JSON `schema`-driven form engine: each entry’s `type` maps to an `hb-input-*` web component (text, select, date, file, arrays, coords, etc.) or layout `row`. Handles grouping, conditional visibility, validation messages, disabled state, and dispatches rich `update` payloads (field values + `_valid`) plus submit lifecycle events for programmatic backends.
|
|
1445
|
+
|
|
1446
|
+
### Custom element
|
|
1447
|
+
|
|
1448
|
+
`hb-form`
|
|
1449
|
+
|
|
1450
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1451
|
+
|
|
1452
|
+
- `id` — optional string
|
|
1453
|
+
- `style` — optional string
|
|
1454
|
+
- `schema` — required string (JSON array of field definitions: `type`, `id`, `label`, `value`, `required`, `params`, `dependencies`, etc.)
|
|
1455
|
+
- `submitted` — optional `"yes"` | `"no"` | null
|
|
1456
|
+
- `getvals` — optional `"yes"` | `"no"` | null (trigger read values)
|
|
1457
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
1458
|
+
- `hide_submit` — optional boolean
|
|
1459
|
+
- `i18nlang` — optional string (`en`, `it`, …)
|
|
1460
|
+
|
|
1461
|
+
### Events
|
|
1462
|
+
|
|
1463
|
+
- `submit` — submitted values as `Record<string, …>` plus `_valid`, `_id`
|
|
1464
|
+
- `getValues` — `{ _valid: boolean; values: Record<string, …> }`
|
|
1465
|
+
- `update` — `{ _valid: boolean; _id: string; values: Record<string, …> }`
|
|
1466
|
+
|
|
1467
|
+
### Usage notes
|
|
1468
|
+
|
|
1469
|
+
`schema` is the primary API; pass it as a single JSON string on the element. Slots: `submit_button`, `submit_label`, `other_buttons`. Supports i18n via `i18nlang`.
|
|
1470
|
+
|
|
1471
|
+
### Minimal HTML example
|
|
1472
|
+
|
|
1473
|
+
```html
|
|
1474
|
+
<hb-form
|
|
1475
|
+
schema="[{"type":"text","id":"name","label":"Name","required":true}]"
|
|
1476
|
+
show_validation="no"
|
|
1477
|
+
submitted="no"
|
|
1478
|
+
></hb-form>
|
|
1479
|
+
```
|
|
1480
|
+
|
|
1481
|
+
---
|
|
1482
|
+
|
|
1483
|
+
<a id="wc-form-composer"></a>
|
|
1484
|
+
|
|
1485
|
+
## `hb-form-composer` — form-composer
|
|
1486
|
+
|
|
1487
|
+
**Category:** forms
|
|
1488
|
+
**Tags:** forms, builder
|
|
1489
|
+
|
|
1490
|
+
### What it does
|
|
1491
|
+
|
|
1492
|
+
Visual form-schema builder: internal `hb-form` defines field types, validation flags, and options, mirrored into an `hb-table` preview and editable via `hb-dialogform`. Accumulates `output_schema` as the composed `hb-form` schema array and emits `done` when the schema is finalized (e.g. via the UI save action).
|
|
1493
|
+
|
|
1494
|
+
### Custom element
|
|
1495
|
+
|
|
1496
|
+
`hb-form-composer`
|
|
1497
|
+
|
|
1498
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1499
|
+
|
|
1500
|
+
- `id` — optional string
|
|
1501
|
+
- `style` — optional string
|
|
1502
|
+
- `debug` — optional boolean (string in HTML)
|
|
1503
|
+
- `output_schema` — optional string (JSON array of generator field descriptors; seed or inspect composed schema)
|
|
1504
|
+
|
|
1505
|
+
### Events
|
|
1506
|
+
|
|
1507
|
+
- `done` — `{ schema: any; id: string }`
|
|
1508
|
+
|
|
1509
|
+
### Usage notes
|
|
1510
|
+
|
|
1511
|
+
Uses nested `hb-form`, `hb-table`, and `hb-dialogform`. `output_schema` mirrors the live composed schema suitable for `hb-form`.
|
|
1512
|
+
|
|
1513
|
+
### Minimal HTML example
|
|
1514
|
+
|
|
1515
|
+
```html
|
|
1516
|
+
<hb-form-composer debug="no"></hb-form-composer>
|
|
1517
|
+
```
|
|
1518
|
+
|
|
1519
|
+
---
|
|
1520
|
+
|
|
1521
|
+
<a id="wc-form-contact"></a>
|
|
1522
|
+
|
|
1523
|
+
## `hb-form-contact` — form-contact
|
|
1524
|
+
|
|
1525
|
+
**Category:** forms
|
|
1526
|
+
**Tags:** forms, contact
|
|
1527
|
+
|
|
1528
|
+
### What it does
|
|
1529
|
+
|
|
1530
|
+
Opinionated contact form: JSON `informations` toggles and labels fields (name, email, phone, subject, message, etc.) and builds the `hb-form` schema at runtime, including privacy-policy checkbox from `privacy_policy`. Optional `captcha` config embeds `hb-captcha-google-recaptcha-v2-invisible` before submit; success UI uses Svelte transitions.
|
|
1531
|
+
|
|
1532
|
+
### Custom element
|
|
1533
|
+
|
|
1534
|
+
`hb-form-contact`
|
|
1535
|
+
|
|
1536
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1537
|
+
|
|
1538
|
+
- `id` — optional string
|
|
1539
|
+
- `style` — optional string
|
|
1540
|
+
- `informations` — optional string (JSON: which fields exist and their `required`, `label`, `placeholder`, `value`)
|
|
1541
|
+
- `privacy_policy` — optional string (JSON: `input`, `link?`, `policyId?`, `required?`)
|
|
1542
|
+
- `captcha` — optional string (JSON: `type` `googlev_recaptchav2_invisible` | `googlev_recaptchav3`, `siteKey`)
|
|
1543
|
+
|
|
1544
|
+
### Events
|
|
1545
|
+
|
|
1546
|
+
- `formContactSubmit` — `{ _valid: boolean; values: Record<string, string | number | boolean> }`
|
|
1547
|
+
- `formContactSubmitWithCaptcha` — same as above plus `response: string`
|
|
1548
|
+
|
|
1549
|
+
### Usage notes
|
|
1550
|
+
|
|
1551
|
+
CSS part: `container`. Bootstrap theme variables apply via component styles.
|
|
1552
|
+
|
|
1553
|
+
### Minimal HTML example
|
|
1554
|
+
|
|
1555
|
+
```html
|
|
1556
|
+
<hb-form-contact
|
|
1557
|
+
informations="{"email":{"required":true},"message":{}}"
|
|
1558
|
+
privacy_policy="{"input":"I agree","required":true}"
|
|
1559
|
+
></hb-form-contact>
|
|
1560
|
+
```
|
|
1561
|
+
|
|
1562
|
+
---
|
|
1563
|
+
|
|
1564
|
+
<a id="wc-funnel"></a>
|
|
1565
|
+
|
|
1566
|
+
## `hb-funnel` — funnel
|
|
1567
|
+
|
|
1568
|
+
**Category:** forms
|
|
1569
|
+
**Tags:** forms, multistep
|
|
1570
|
+
|
|
1571
|
+
### What it does
|
|
1572
|
+
|
|
1573
|
+
Multi-step funnel over stacked `hb-form` instances: JSON `schemes` supplies one schema per step (or derive step count from `steps`), tracks per-step validity, merges values as the user advances, and optionally shows a final submit step when `submitstep` is `yes`. Dispatches step navigation and aggregated form updates for the active index.
|
|
1574
|
+
|
|
1575
|
+
### Custom element
|
|
1576
|
+
|
|
1577
|
+
`hb-funnel`
|
|
1578
|
+
|
|
1579
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1580
|
+
|
|
1581
|
+
- `id` — optional string
|
|
1582
|
+
- `style` — optional string
|
|
1583
|
+
- `schemes` — required string (JSON array of `hb-form`-compatible schemas, one per step)
|
|
1584
|
+
- `steps` — optional number (string in HTML)
|
|
1585
|
+
- `step` — optional number (current step index; string in HTML)
|
|
1586
|
+
- `submitstep` — optional `"yes"` | `"no"` (final submit step)
|
|
1587
|
+
|
|
1588
|
+
### Events
|
|
1589
|
+
|
|
1590
|
+
- `update` — `{ step: number; scheme: { schema; valid }; valid: boolean }`
|
|
1591
|
+
- `submit` — `{ schemes: { schema; valid }[]; steps: number; step: number }`
|
|
1592
|
+
|
|
1593
|
+
### Usage notes
|
|
1594
|
+
|
|
1595
|
+
Each entry in `schemes` is a full form schema array like `hb-form`’s `schema`. CSS part: `invalid-feedback` (from inner form styling).
|
|
1596
|
+
|
|
1597
|
+
### Minimal HTML example
|
|
1598
|
+
|
|
1599
|
+
```html
|
|
1600
|
+
<hb-funnel
|
|
1601
|
+
submitstep="yes"
|
|
1602
|
+
schemes="[[{"type":"text","id":"name","label":"Name","required":true}]]"
|
|
1603
|
+
></hb-funnel>
|
|
1604
|
+
```
|
|
1605
|
+
|
|
1606
|
+
---
|
|
1607
|
+
|
|
1608
|
+
<a id="wc-gallery-video"></a>
|
|
1609
|
+
|
|
1610
|
+
## `hb-gallery-video` — gallery-video
|
|
1611
|
+
|
|
1612
|
+
**Category:** media
|
|
1613
|
+
**Tags:** media, video, gallery
|
|
1614
|
+
|
|
1615
|
+
### What it does
|
|
1616
|
+
|
|
1617
|
+
Paginated grid of `hb-card-video` tiles built from JSON `cards`, with `hb-paginate` for page/size and optional text or date-range filtering (`initialdate`/`lastdate`, `filter`, `externalfilter`). Passes date format, link label, and primary color into each card; listens to paginator events to sync `page`/`pages` and emits host events for paging and filters.
|
|
1618
|
+
|
|
1619
|
+
### Custom element
|
|
1620
|
+
|
|
1621
|
+
`hb-gallery-video`
|
|
1622
|
+
|
|
1623
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1624
|
+
|
|
1625
|
+
- `id` — optional string
|
|
1626
|
+
- `style` — optional string
|
|
1627
|
+
- `cards` — required string (JSON array: `videoSrc`, `title?`, `time?`, `provider?`, `dateformat?`, …)
|
|
1628
|
+
- `size` — optional number (items per page; string in HTML)
|
|
1629
|
+
- `page` — optional number (0-based; string in HTML)
|
|
1630
|
+
- `pages` — optional number (total pages when using external filter; string in HTML)
|
|
1631
|
+
- `link_label` — optional string
|
|
1632
|
+
- `dateformat` — optional string (day.js format)
|
|
1633
|
+
- `primarycolor` — optional string
|
|
1634
|
+
- `filter` — optional string (text filter)
|
|
1635
|
+
- `externalfilter` — optional string (truthy enables external pagination/filter behavior)
|
|
1636
|
+
- `disabletextfilter` — optional `"yes"` to disable text filter UI
|
|
1637
|
+
- `initialdate` — optional (ISO/date string when passed from host)
|
|
1638
|
+
- `lastdate` — optional (ISO/date string when passed from host)
|
|
1639
|
+
|
|
1640
|
+
### Events
|
|
1641
|
+
|
|
1642
|
+
- `pageChange` — `{ page: number; cards: ICard[] }`
|
|
1643
|
+
- `textFilterVideos` — `{ filter?: string }` (when `externalfilter` is set and filter changes)
|
|
1644
|
+
- `dateFilterVideos` — `{ start?: Date; end?: Date; dateKey: string }`
|
|
1645
|
+
|
|
1646
|
+
### Usage notes
|
|
1647
|
+
|
|
1648
|
+
CSS part: `container`. Registers `hb-paginate` and `hb-card-video`. `cards` must be valid JSON on the attribute.
|
|
1649
|
+
|
|
1650
|
+
### Minimal HTML example
|
|
1651
|
+
|
|
1652
|
+
```html
|
|
1653
|
+
<hb-gallery-video
|
|
1654
|
+
cards="[{"title":"Clip","videoSrc":"https://example.com/video.mp4"}]"
|
|
1655
|
+
size="12"
|
|
1656
|
+
page="0"
|
|
1657
|
+
></hb-gallery-video>
|
|
1658
|
+
```
|
|
1659
|
+
|
|
1660
|
+
---
|
|
1661
|
+
|
|
1662
|
+
<a id="wc-gauge"></a>
|
|
1663
|
+
|
|
1664
|
+
## `hb-gauge` — gauge
|
|
1665
|
+
|
|
1666
|
+
**Category:** data
|
|
1667
|
+
**Tags:** data, chart
|
|
1668
|
+
|
|
1669
|
+
### What it does
|
|
1670
|
+
|
|
1671
|
+
SVG gauge wrapper around JustGage: pass JustGage-compatible options as JSON (`value`, min/max, labels, colors, etc.). The gauge is created on the shadow host after mount, destroyed on teardown, and recreated when `options` changes or the window resizes (debounced) so it stays sized correctly.
|
|
1672
|
+
|
|
1673
|
+
### Custom element
|
|
1674
|
+
|
|
1675
|
+
`hb-gauge`
|
|
1676
|
+
|
|
1677
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1678
|
+
|
|
1679
|
+
- `id` — optional string
|
|
1680
|
+
- `style` — optional string
|
|
1681
|
+
- `options` — required string (JSON object; at minimum `value`, `min`, `max`; additional keys follow JustGage)
|
|
1682
|
+
|
|
1683
|
+
### Events
|
|
1684
|
+
|
|
1685
|
+
None declared on the component type.
|
|
1686
|
+
|
|
1687
|
+
### Usage notes
|
|
1688
|
+
|
|
1689
|
+
CSS part: `gauge`. `options` may be passed as a JSON string; the component parses it when needed.
|
|
1690
|
+
|
|
1691
|
+
### Minimal HTML example
|
|
1692
|
+
|
|
1693
|
+
```html
|
|
1694
|
+
<hb-gauge
|
|
1695
|
+
options="{"value":50,"min":0,"max":100}"
|
|
1696
|
+
></hb-gauge>
|
|
1697
|
+
```
|
|
1698
|
+
|
|
1699
|
+
---
|
|
1700
|
+
|
|
1701
|
+
<a id="wc-input-area"></a>
|
|
1702
|
+
|
|
1703
|
+
## `hb-input-area` — input-area
|
|
1704
|
+
|
|
1705
|
+
**Category:** inputs
|
|
1706
|
+
**Tags:** inputs
|
|
1707
|
+
|
|
1708
|
+
### What it does
|
|
1709
|
+
|
|
1710
|
+
Multi-line `<textarea>` controlled by `schemaentry` with the same validation ideas as text: optional `validationRegex` and `params` min/max length, required handling, and `show_validation` / `validationTip`. Dispatches `setVal` with `{ value, valid, id }` and `clickEnter` when Enter is pressed without Shift (Shift+Enter still inserts a newline).
|
|
1711
|
+
|
|
1712
|
+
### Custom element
|
|
1713
|
+
|
|
1714
|
+
`hb-input-area`
|
|
1715
|
+
|
|
1716
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1717
|
+
|
|
1718
|
+
- `id` — optional string
|
|
1719
|
+
- `style` — optional string
|
|
1720
|
+
- `schemaentry` — required string (JSON: `id`, `label?`, `placeholder?`, `required?`, `value?`, `validationTip?`, `validationRegex?`, `params?`)
|
|
1721
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
1722
|
+
|
|
1723
|
+
### Events
|
|
1724
|
+
|
|
1725
|
+
- `setVal` — `{ value: string; valid: boolean; id: string }`
|
|
1726
|
+
- `clickEnter` — `{ value: string; valid: boolean; id?: string }`
|
|
1727
|
+
|
|
1728
|
+
### Usage notes
|
|
1729
|
+
|
|
1730
|
+
CSS parts: `invalid-feedback`, `input`. Nested `schemaentry` fields follow the shared form-schema shape used by `hb-form`.
|
|
1731
|
+
|
|
1732
|
+
### Minimal HTML example
|
|
1733
|
+
|
|
1734
|
+
```html
|
|
1735
|
+
<hb-input-area
|
|
1736
|
+
schemaentry="{"id":"notes","label":"Notes","placeholder":"Type here…"}"
|
|
1737
|
+
show_validation="no"
|
|
1738
|
+
></hb-input-area>
|
|
1739
|
+
```
|
|
1740
|
+
|
|
1741
|
+
---
|
|
1742
|
+
|
|
1743
|
+
<a id="wc-input-array-objects"></a>
|
|
1744
|
+
|
|
1745
|
+
## `hb-input-array-objects` — input-array-objects
|
|
1746
|
+
|
|
1747
|
+
**Category:** inputs
|
|
1748
|
+
**Tags:** inputs
|
|
1749
|
+
|
|
1750
|
+
### What it does
|
|
1751
|
+
|
|
1752
|
+
Repeating records editor: `hb-table` lists existing rows (with delete actions), and `hb-form` renders the next row from `schemaentry.params.schema`; submitting appends to the array and updates the table. Registers `hb-form` and `hb-table`; optional `add-object-label` slot customizes the add button. Dispatches `setVal` with the objects array, `valid`, and `id`, and shows `validationTip` when `show_validation` is enabled.
|
|
1753
|
+
|
|
1754
|
+
### Custom element
|
|
1755
|
+
|
|
1756
|
+
`hb-input-array-objects`
|
|
1757
|
+
|
|
1758
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1759
|
+
|
|
1760
|
+
- `id` — optional string
|
|
1761
|
+
- `style` — optional string
|
|
1762
|
+
- `schemaentry` — required string (JSON: `id`, `params.schema` as nested form schema, optional `value` as row array with `_objId`, `validationTip?`, `required?`, …)
|
|
1763
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
1764
|
+
|
|
1765
|
+
### Events
|
|
1766
|
+
|
|
1767
|
+
- `setVal` — `{ value: string; valid: boolean; id: string }` (payload `value` is the serialized array/object representation used by the component)
|
|
1768
|
+
|
|
1769
|
+
### Usage notes
|
|
1770
|
+
|
|
1771
|
+
CSS part: `properties-container`. Slot: `add-object-label`.
|
|
1772
|
+
|
|
1773
|
+
### Minimal HTML example
|
|
1774
|
+
|
|
1775
|
+
```html
|
|
1776
|
+
<hb-input-array-objects
|
|
1777
|
+
schemaentry="{"id":"people","params":{"schema":[{"type":"text","id":"name","label":"Name"}]}}"
|
|
1778
|
+
show_validation="no"
|
|
1779
|
+
></hb-input-array-objects>
|
|
1780
|
+
```
|
|
1781
|
+
|
|
1782
|
+
---
|
|
1783
|
+
|
|
1784
|
+
<a id="wc-input-array-tags"></a>
|
|
1785
|
+
|
|
1786
|
+
## `hb-input-array-tags` — input-array-tags
|
|
1787
|
+
|
|
1788
|
+
**Category:** inputs
|
|
1789
|
+
**Tags:** inputs
|
|
1790
|
+
|
|
1791
|
+
### What it does
|
|
1792
|
+
|
|
1793
|
+
Tag list stored as objects `{ id, label }` (optional per-tag `colorVarName`); users add tags via free text or a dropdown from `params.availableTags`, with optional `freeTag` and `_custom` flow, removable badges when `allowRemove` is set, and styling via `params.colorVarName` or the `add-tag-label` slot. Dispatches `setVal` with the array `value`, `valid`, and `id`.
|
|
1794
|
+
|
|
1795
|
+
### Custom element
|
|
1796
|
+
|
|
1797
|
+
`hb-input-array-tags`
|
|
1798
|
+
|
|
1799
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1800
|
+
|
|
1801
|
+
- `id` — optional string
|
|
1802
|
+
- `style` — optional string
|
|
1803
|
+
- `schemaentry` — required string (JSON: `id`, `params` with `availableTags?`, `freeTag?`, `allowRemove?`, `colorVarName?`, `addTagLabel?`, optional `value` as tag array)
|
|
1804
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
1805
|
+
|
|
1806
|
+
### Events
|
|
1807
|
+
|
|
1808
|
+
- `setVal` — `{ value: string; valid: boolean; id: string }` (tag list is serialized for the custom event payload)
|
|
1809
|
+
|
|
1810
|
+
### Usage notes
|
|
1811
|
+
|
|
1812
|
+
Optional slot name in docs: `add-tag-label` for the add control label.
|
|
1813
|
+
|
|
1814
|
+
### Minimal HTML example
|
|
1815
|
+
|
|
1816
|
+
```html
|
|
1817
|
+
<hb-input-array-tags
|
|
1818
|
+
schemaentry="{"id":"tags","params":{"freeTag":true,"allowRemove":true}}"
|
|
1819
|
+
show_validation="no"
|
|
1820
|
+
></hb-input-array-tags>
|
|
1821
|
+
```
|
|
1822
|
+
|
|
1823
|
+
---
|
|
1824
|
+
|
|
1825
|
+
<a id="wc-input-checkbox"></a>
|
|
1826
|
+
|
|
1827
|
+
## `hb-input-checkbox` — input-checkbox
|
|
1828
|
+
|
|
1829
|
+
**Category:** inputs
|
|
1830
|
+
**Tags:** inputs
|
|
1831
|
+
|
|
1832
|
+
### What it does
|
|
1833
|
+
|
|
1834
|
+
Checkbox or, when `schemaentry.params.type` is `switch`, a Bootstrap switch, labeled from `schemaentry.label` with a required asterisk when needed. Boolean `value` is parsed from stringified `schemaentry`; required fields must be checked to be valid. Dispatches `setVal` with `{ value, valid, id }` and can show `validationTip` under `show_validation`.
|
|
1835
|
+
|
|
1836
|
+
### Custom element
|
|
1837
|
+
|
|
1838
|
+
`hb-input-checkbox`
|
|
1839
|
+
|
|
1840
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1841
|
+
|
|
1842
|
+
- `id` — optional string
|
|
1843
|
+
- `style` — optional string
|
|
1844
|
+
- `schemaentry` — required string (JSON: `id`, `label?`, `required?`, `value?`, `validationTip?`, `params.type` optional `"switch"`, …)
|
|
1845
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
1846
|
+
|
|
1847
|
+
### Events
|
|
1848
|
+
|
|
1849
|
+
- `setVal` — `{ value: string; valid: boolean; id: string }`
|
|
1850
|
+
|
|
1851
|
+
### Usage notes
|
|
1852
|
+
|
|
1853
|
+
CSS part: `invalid-feedback`.
|
|
1854
|
+
|
|
1855
|
+
### Minimal HTML example
|
|
1856
|
+
|
|
1857
|
+
```html
|
|
1858
|
+
<hb-input-checkbox
|
|
1859
|
+
schemaentry="{"id":"accept","label":"I agree","required":true}"
|
|
1860
|
+
show_validation="no"
|
|
1861
|
+
></hb-input-checkbox>
|
|
1862
|
+
```
|
|
1863
|
+
|
|
1864
|
+
---
|
|
1865
|
+
|
|
1866
|
+
<a id="wc-input-color"></a>
|
|
1867
|
+
|
|
1868
|
+
## `hb-input-color` — input-color
|
|
1869
|
+
|
|
1870
|
+
**Category:** inputs
|
|
1871
|
+
**Tags:** inputs
|
|
1872
|
+
|
|
1873
|
+
### What it does
|
|
1874
|
+
|
|
1875
|
+
Color input that normalizes named HTML colors and `rgb(...)` strings into a hex value for the native picker, with debounced syncing back to the bound value. Driven by `schemaentry` (including required and optional `validationTip` with `show_validation`). Dispatches `setVal` with the string `value`, `valid`, and `id`.
|
|
1876
|
+
|
|
1877
|
+
### Custom element
|
|
1878
|
+
|
|
1879
|
+
`hb-input-color`
|
|
1880
|
+
|
|
1881
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1882
|
+
|
|
1883
|
+
- `id` — optional string
|
|
1884
|
+
- `style` — optional string
|
|
1885
|
+
- `schemaentry` — required string (JSON: `id`, `label?`, `required?`, `value?`, `validationTip?`, `placeholder?`, …)
|
|
1886
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
1887
|
+
|
|
1888
|
+
### Events
|
|
1889
|
+
|
|
1890
|
+
- `setVal` — `{ value: string; valid: boolean; id: string }`
|
|
1891
|
+
|
|
1892
|
+
### Usage notes
|
|
1893
|
+
|
|
1894
|
+
CSS part: `invalid-feedback`.
|
|
1895
|
+
|
|
1896
|
+
### Minimal HTML example
|
|
1897
|
+
|
|
1898
|
+
```html
|
|
1899
|
+
<hb-input-color
|
|
1900
|
+
schemaentry="{"id":"accent","required":true,"value":"#07689f"}"
|
|
1901
|
+
show_validation="no"
|
|
1902
|
+
></hb-input-color>
|
|
1903
|
+
```
|
|
1904
|
+
|
|
1905
|
+
---
|
|
1906
|
+
|
|
1907
|
+
<a id="wc-input-coords"></a>
|
|
1908
|
+
|
|
1909
|
+
## `hb-input-coords` — input-coords
|
|
1910
|
+
|
|
1911
|
+
**Category:** inputs
|
|
1912
|
+
**Tags:** inputs, maps
|
|
1913
|
+
|
|
1914
|
+
### What it does
|
|
1915
|
+
|
|
1916
|
+
Latitude/longitude editor that embeds `hb-map` (marker and map `source` / `options` from `schemaentry.params`) and two `hb-input-number` fields, with labels translated via optional `i18nlang`. Supports initial `value` and `params` such as `zoom` and `center`. Registers `hb-map` and `hb-input-number` and dispatches `setVal` with `{ lat, lon }` as `value`, plus `valid` and `id`.
|
|
1917
|
+
|
|
1918
|
+
### Custom element
|
|
1919
|
+
|
|
1920
|
+
`hb-input-coords`
|
|
1921
|
+
|
|
1922
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1923
|
+
|
|
1924
|
+
- `id` — optional string
|
|
1925
|
+
- `style` — optional string
|
|
1926
|
+
- `schemaentry` — required string (JSON: `id`, `label?`, `required?`, `value` as `{ lat, lon }`, `validationTip?`, `params` for map/zoom/center/labels/placeholders)
|
|
1927
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
1928
|
+
- `i18nlang` — optional string
|
|
1929
|
+
|
|
1930
|
+
### Events
|
|
1931
|
+
|
|
1932
|
+
- `setVal` — `{ value: { lat: number; lon: number }; valid: boolean; id: string }`
|
|
1933
|
+
|
|
1934
|
+
### Usage notes
|
|
1935
|
+
|
|
1936
|
+
CSS part: `invalid-feedback`. Ensure map-related `params` match your deployment (tiles/source).
|
|
1937
|
+
|
|
1938
|
+
### Minimal HTML example
|
|
1939
|
+
|
|
1940
|
+
```html
|
|
1941
|
+
<hb-input-coords
|
|
1942
|
+
schemaentry="{"id":"loc","required":true,"value":{"lat":45.4,"lon":9.2}}"
|
|
1943
|
+
show_validation="no"
|
|
1944
|
+
></hb-input-coords>
|
|
1945
|
+
```
|
|
1946
|
+
|
|
1947
|
+
---
|
|
1948
|
+
|
|
1949
|
+
<a id="wc-input-date"></a>
|
|
1950
|
+
|
|
1951
|
+
## `hb-input-date` — input-date
|
|
1952
|
+
|
|
1953
|
+
**Category:** inputs
|
|
1954
|
+
**Tags:** inputs
|
|
1955
|
+
|
|
1956
|
+
### What it does
|
|
1957
|
+
|
|
1958
|
+
Native date input bound to `schemaentry` (string JSON or object), with optional `params.min` / `max` compared as `Date` values when the field is required. Shows Bootstrap validation and `validationTip` when `show_validation` is on. Dispatches `setVal` with the string date `value`, `valid`, and `id`, and `clickEnter` if the user presses Enter.
|
|
1959
|
+
|
|
1960
|
+
### Custom element
|
|
1961
|
+
|
|
1962
|
+
`hb-input-date`
|
|
1963
|
+
|
|
1964
|
+
### Attributes (snake_case; use string values in HTML)
|
|
1965
|
+
|
|
1966
|
+
- `id` — optional string
|
|
1967
|
+
- `style` — optional string
|
|
1968
|
+
- `schemaentry` — required string (JSON: `id`, `label?`, `required?`, `value?` as ISO date string, `validationTip?`, `params.min` / `params.max` as ISO strings, …)
|
|
1969
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
1970
|
+
|
|
1971
|
+
### Events
|
|
1972
|
+
|
|
1973
|
+
- `setVal` — `{ value: string; valid: boolean; id: string }`
|
|
1974
|
+
- `clickEnter` — `{ value: string; valid: boolean; id?: string }`
|
|
1975
|
+
|
|
1976
|
+
### Usage notes
|
|
1977
|
+
|
|
1978
|
+
CSS part: `invalid-feedback`.
|
|
1979
|
+
|
|
1980
|
+
### Minimal HTML example
|
|
1981
|
+
|
|
1982
|
+
```html
|
|
1983
|
+
<hb-input-date
|
|
1984
|
+
schemaentry="{"id":"birth","label":"Birth date","required":true}"
|
|
1985
|
+
show_validation="no"
|
|
1986
|
+
></hb-input-date>
|
|
1987
|
+
```
|
|
1988
|
+
|
|
1989
|
+
---
|
|
1990
|
+
|
|
1991
|
+
<a id="wc-input-datetime"></a>
|
|
1992
|
+
|
|
1993
|
+
## `hb-input-datetime` — input-datetime
|
|
1994
|
+
|
|
1995
|
+
**Category:** inputs
|
|
1996
|
+
**Tags:** inputs
|
|
1997
|
+
|
|
1998
|
+
### What it does
|
|
1999
|
+
|
|
2000
|
+
Composes `hb-input-date` and `hb-input-number` to edit date, hours, minutes, and (unless `params.removeSeconds`) seconds, then combines them into a single ISO string `value`. Honors `schemaentry.params.min` / `max` as date bounds when required. Registers `hb-input-date` and `hb-input-number` and dispatches `setVal` with `{ value, valid, id }`.
|
|
2001
|
+
|
|
2002
|
+
### Custom element
|
|
2003
|
+
|
|
2004
|
+
`hb-input-datetime`
|
|
2005
|
+
|
|
2006
|
+
### Attributes (snake_case; use string values in HTML)
|
|
2007
|
+
|
|
2008
|
+
- `id` — optional string
|
|
2009
|
+
- `style` — optional string
|
|
2010
|
+
- `schemaentry` — required string (JSON: `id`, `label?`, `required?`, `value?` as ISO datetime string, `validationTip?`, `params.removeSeconds?`, `params.min` / `params.max`, …)
|
|
2011
|
+
- `show_validation` — optional `"yes"` | `"no"`
|
|
2012
|
+
|
|
2013
|
+
### Events
|
|
2014
|
+
|
|
2015
|
+
- `setVal` — `{ value: string; valid: boolean; id: string }`
|
|
2016
|
+
|
|
2017
|
+
### Usage notes
|
|
2018
|
+
|
|
2019
|
+
No CSS parts declared in style setup; child inputs carry their own parts. Child components must be registered in the bundle.
|
|
2020
|
+
|
|
2021
|
+
### Minimal HTML example
|
|
2022
|
+
|
|
2023
|
+
```html
|
|
2024
|
+
<hb-input-datetime
|
|
2025
|
+
schemaentry="{"id":"starts_at","label":"Start","required":true,"params":{"removeSeconds":true}}"
|
|
2026
|
+
show_validation="no"
|
|
2027
|
+
></hb-input-datetime>
|
|
2028
|
+
```
|
|
2029
|
+
|
|
2030
|
+
---
|
|
2031
|
+
|
|
2032
|
+
<a id="wc-input-email"></a>
|
|
2033
|
+
|
|
2034
|
+
# hb-input-email
|
|
2035
|
+
|
|
2036
|
+
## Description
|
|
2037
|
+
|
|
2038
|
+
`type="email"` field using `schemaentry` for id, value, placeholder, readonly, and required, with extra checks for a sensible address shape plus optional `validationRegex` and `params` min/max length. Use `show_validation` for Bootstrap states and `validationTip`. Dispatches `setVal` on updates and `clickEnter` when Enter is pressed.
|
|
2039
|
+
|
|
2040
|
+
## Types
|
|
2041
|
+
|
|
2042
|
+
```typescript
|
|
2043
|
+
export type FormSchemaEntry = {
|
|
2044
|
+
/**
|
|
2045
|
+
* This will be both the key of the object when submitting the form's data,
|
|
2046
|
+
* and also the id in the DOM.
|
|
2047
|
+
*/
|
|
2048
|
+
id: string;
|
|
2049
|
+
|
|
2050
|
+
/**
|
|
2051
|
+
* The descriptive label that will show alongside the form control.
|
|
2052
|
+
*/
|
|
2053
|
+
label?: string;
|
|
2054
|
+
|
|
2055
|
+
/**
|
|
2056
|
+
* Optional default value.
|
|
2057
|
+
*/
|
|
2058
|
+
value?: string | number | boolean;
|
|
2059
|
+
|
|
2060
|
+
readonly?: boolean;
|
|
2061
|
+
|
|
2062
|
+
/**
|
|
2063
|
+
* This doesn't matter if the dependencies requirements aren't met.
|
|
2064
|
+
*/
|
|
2065
|
+
required?: boolean;
|
|
2066
|
+
|
|
2067
|
+
validationRegex?: string;
|
|
2068
|
+
/**
|
|
2069
|
+
* Shows if value is not valid.
|
|
2070
|
+
*/
|
|
2071
|
+
validationTip?: string;
|
|
2072
|
+
|
|
2073
|
+
placeholder?: string;
|
|
2074
|
+
|
|
2075
|
+
/**
|
|
2076
|
+
* Other parameters that may be specific to a certain kind of form control.
|
|
2077
|
+
*/
|
|
2078
|
+
params?: Record<string, any>;
|
|
2079
|
+
};
|
|
2080
|
+
|
|
2081
|
+
export type Component = {
|
|
2082
|
+
id?: string;
|
|
2083
|
+
style?: string;
|
|
2084
|
+
|
|
2085
|
+
show_validation?: "yes" | "no";
|
|
2086
|
+
schemaentry: FormSchemaEntry;
|
|
2087
|
+
};
|
|
2088
|
+
|
|
2089
|
+
export type Events = {
|
|
2090
|
+
setVal: { value: string; valid: boolean; id: string };
|
|
2091
|
+
clickEnter: { value: string; valid: boolean; id?: string };
|
|
2092
|
+
};
|
|
2093
|
+
```
|
|
2094
|
+
|
|
2095
|
+
---
|
|
2096
|
+
|
|
2097
|
+
<a id="wc-input-file"></a>
|
|
2098
|
+
|
|
2099
|
+
# hb-input-file
|
|
2100
|
+
|
|
2101
|
+
## Description
|
|
2102
|
+
|
|
2103
|
+
File picker with `accept` from `schemaentry.params.accept` (defaults to any file), optional image preview or Bootstrap Icons by MIME type, and an optional clickable `placeHolderImage` that opens the hidden input. Clears selection with the remove control; validates required fields against an actual chosen file. Dispatches `setVal` with `{ value, valid, id }`.
|
|
2104
|
+
|
|
2105
|
+
## Types
|
|
2106
|
+
|
|
2107
|
+
```typescript
|
|
2108
|
+
export type FormSchemaEntry = {
|
|
2109
|
+
/**
|
|
2110
|
+
* This will be both the key of the object when submitting the form's data,
|
|
2111
|
+
* and also the id in the DOM.
|
|
2112
|
+
*/
|
|
2113
|
+
id: string;
|
|
2114
|
+
|
|
2115
|
+
/**
|
|
2116
|
+
* The descriptive label that will show alongside the form control.
|
|
2117
|
+
*/
|
|
2118
|
+
label?: string;
|
|
2119
|
+
|
|
2120
|
+
/**
|
|
2121
|
+
* Optional default value.
|
|
2122
|
+
*/
|
|
2123
|
+
value?: string | number | boolean;
|
|
2124
|
+
|
|
2125
|
+
readonly?: boolean;
|
|
2126
|
+
|
|
2127
|
+
/**
|
|
2128
|
+
* This doesn't matter if the dependencies requirements aren't met.
|
|
2129
|
+
*/
|
|
2130
|
+
required?: boolean;
|
|
2131
|
+
|
|
2132
|
+
validationRegex?: string;
|
|
2133
|
+
/**
|
|
2134
|
+
* Shows if value is not valid.
|
|
2135
|
+
*/
|
|
2136
|
+
validationTip?: string;
|
|
2137
|
+
|
|
2138
|
+
placeholder?: string;
|
|
2139
|
+
|
|
2140
|
+
/**
|
|
2141
|
+
* Other parameters that may be specific to a certain kind of form control.
|
|
2142
|
+
*/
|
|
2143
|
+
params?: Record<string, any>;
|
|
2144
|
+
};
|
|
2145
|
+
|
|
2146
|
+
export type Component = {
|
|
2147
|
+
id?: string;
|
|
2148
|
+
style?: string;
|
|
2149
|
+
|
|
2150
|
+
show_validation?: "yes" | "no";
|
|
2151
|
+
schemaentry: FormSchemaEntry;
|
|
2152
|
+
};
|
|
2153
|
+
|
|
2154
|
+
export type Events = { setVal: { value: string; valid: boolean; id: string } };
|
|
2155
|
+
```
|
|
2156
|
+
|
|
2157
|
+
---
|
|
2158
|
+
|
|
2159
|
+
<a id="wc-input-number"></a>
|
|
2160
|
+
|
|
2161
|
+
# hb-input-number
|
|
2162
|
+
|
|
2163
|
+
## Description
|
|
2164
|
+
|
|
2165
|
+
Numeric input with optional `min` / `max` from `schemaentry.params` (native attributes are omitted when bounds are not set). Validates required fields and range when both ends are defined; with no min/max it still dispatches `clickEnter` on Enter. Emits `setVal` with `{ value, valid, id }` and supports `show_validation` plus `validationTip`.
|
|
2166
|
+
|
|
2167
|
+
## Types
|
|
2168
|
+
|
|
2169
|
+
```typescript
|
|
2170
|
+
export type FormSchemaEntry = {
|
|
2171
|
+
/**
|
|
2172
|
+
* This will be both the key of the object when submitting the form's data,
|
|
2173
|
+
* and also the id in the DOM.
|
|
2174
|
+
*/
|
|
2175
|
+
id: string;
|
|
2176
|
+
|
|
2177
|
+
/**
|
|
2178
|
+
* The descriptive label that will show alongside the form control.
|
|
2179
|
+
*/
|
|
2180
|
+
label?: string;
|
|
2181
|
+
|
|
2182
|
+
/**
|
|
2183
|
+
* Optional default value.
|
|
2184
|
+
*/
|
|
2185
|
+
value?: number;
|
|
2186
|
+
|
|
2187
|
+
readonly?: boolean;
|
|
2188
|
+
|
|
2189
|
+
/**
|
|
2190
|
+
* This doesn't matter if the dependencies requirements aren't met.
|
|
2191
|
+
*/
|
|
2192
|
+
required?: boolean;
|
|
2193
|
+
|
|
2194
|
+
validationRegex?: string;
|
|
2195
|
+
/**
|
|
2196
|
+
* Shows if value is not valid.
|
|
2197
|
+
*/
|
|
2198
|
+
validationTip?: string;
|
|
2199
|
+
|
|
2200
|
+
placeholder?: string;
|
|
2201
|
+
|
|
2202
|
+
/**
|
|
2203
|
+
* Other parameters that may be specific to a certain kind of form control.
|
|
2204
|
+
*/
|
|
2205
|
+
params?: Record<string, any>;
|
|
2206
|
+
};
|
|
2207
|
+
|
|
2208
|
+
export type Component = {
|
|
2209
|
+
id?: string;
|
|
2210
|
+
style?: string;
|
|
2211
|
+
show_validation?: "yes" | "no";
|
|
2212
|
+
schemaentry: FormSchemaEntry | undefined;
|
|
2213
|
+
};
|
|
2214
|
+
|
|
2215
|
+
export type Events = {
|
|
2216
|
+
setVal: { value: number; valid: boolean; id: string };
|
|
2217
|
+
clickEnter: { value: string; valid: boolean; id?: string };
|
|
2218
|
+
};
|
|
2219
|
+
```
|
|
2220
|
+
|
|
2221
|
+
---
|
|
2222
|
+
|
|
2223
|
+
<a id="wc-input-radio"></a>
|
|
2224
|
+
|
|
2225
|
+
# hb-input-radio
|
|
2226
|
+
|
|
2227
|
+
## Description
|
|
2228
|
+
|
|
2229
|
+
Radio group built from `schemaentry.params.options` with a shared `name` derived from the field id. Parses JSON `schemaentry` for initial `value` and supports required validation with optional Bootstrap feedback via `show_validation` and `validationTip`. Dispatches `setVal` with the selected string `value`, `valid`, and `id` whenever the choice changes.
|
|
2230
|
+
|
|
2231
|
+
## Types
|
|
2232
|
+
|
|
2233
|
+
```typescript
|
|
2234
|
+
export type FormSchemaEntry = {
|
|
2235
|
+
/**
|
|
2236
|
+
* This will be both the key of the object when submitting the form's data,
|
|
2237
|
+
* and also the id in the DOM.
|
|
2238
|
+
*/
|
|
2239
|
+
id: string;
|
|
2240
|
+
|
|
2241
|
+
/**
|
|
2242
|
+
* The descriptive label that will show alongside the form control.
|
|
2243
|
+
*/
|
|
2244
|
+
label?: string;
|
|
2245
|
+
|
|
2246
|
+
/**
|
|
2247
|
+
* Optional default value.
|
|
2248
|
+
*/
|
|
2249
|
+
value?: string | number | boolean;
|
|
2250
|
+
|
|
2251
|
+
readonly?: boolean;
|
|
2252
|
+
|
|
2253
|
+
/**
|
|
2254
|
+
* This doesn't matter if the dependencies requirements aren't met.
|
|
2255
|
+
*/
|
|
2256
|
+
required?: boolean;
|
|
2257
|
+
|
|
2258
|
+
validationRegex?: string;
|
|
2259
|
+
/**
|
|
2260
|
+
* Shows if value is not valid.
|
|
2261
|
+
*/
|
|
2262
|
+
validationTip?: string;
|
|
2263
|
+
|
|
2264
|
+
placeholder?: string;
|
|
2265
|
+
|
|
2266
|
+
/**
|
|
2267
|
+
* Other parameters that may be specific to a certain kind of form control.
|
|
2268
|
+
*/
|
|
2269
|
+
params?: Record<string, any>;
|
|
2270
|
+
};
|
|
2271
|
+
|
|
2272
|
+
export type Component = {
|
|
2273
|
+
id?: string;
|
|
2274
|
+
style?: string;
|
|
2275
|
+
|
|
2276
|
+
show_validation?: "yes" | "no";
|
|
2277
|
+
schemaentry: FormSchemaEntry | undefined;
|
|
2278
|
+
};
|
|
2279
|
+
|
|
2280
|
+
export type Events = {
|
|
2281
|
+
setVal: { value: string; valid: boolean; id: string };
|
|
2282
|
+
};
|
|
2283
|
+
```
|
|
2284
|
+
|
|
2285
|
+
---
|
|
2286
|
+
|
|
2287
|
+
<a id="wc-input-range"></a>
|
|
2288
|
+
|
|
2289
|
+
# hb-input-range
|
|
2290
|
+
|
|
2291
|
+
## Description
|
|
2292
|
+
|
|
2293
|
+
Range slider (`type="range"`) whose bounds come from `schemaentry.params.min` and/or `max` when present. Parses stringified `schemaentry` when needed and enforces required/min/max rules for the numeric value. Dispatches `setVal` continuously with `{ value, valid, id }` and can show `validationTip` when `show_validation` is enabled.
|
|
2294
|
+
|
|
2295
|
+
## Types
|
|
2296
|
+
|
|
2297
|
+
```typescript
|
|
2298
|
+
export type FormSchemaEntry = {
|
|
2299
|
+
/**
|
|
2300
|
+
* This will be both the key of the object when submitting the form's data,
|
|
2301
|
+
* and also the id in the DOM.
|
|
2302
|
+
*/
|
|
2303
|
+
id: string;
|
|
2304
|
+
|
|
2305
|
+
/**
|
|
2306
|
+
* The descriptive label that will show alongside the form control.
|
|
2307
|
+
*/
|
|
2308
|
+
label?: string;
|
|
2309
|
+
|
|
2310
|
+
/**
|
|
2311
|
+
* Optional default value.
|
|
2312
|
+
*/
|
|
2313
|
+
value?: number;
|
|
2314
|
+
|
|
2315
|
+
readonly?: boolean;
|
|
2316
|
+
|
|
2317
|
+
/**
|
|
2318
|
+
* This doesn't matter if the dependencies requirements aren't met.
|
|
2319
|
+
*/
|
|
2320
|
+
required?: boolean;
|
|
2321
|
+
|
|
2322
|
+
validationRegex?: string;
|
|
2323
|
+
/**
|
|
2324
|
+
* Shows if value is not valid.
|
|
2325
|
+
*/
|
|
2326
|
+
validationTip?: string;
|
|
2327
|
+
|
|
2328
|
+
placeholder?: string;
|
|
2329
|
+
|
|
2330
|
+
/**
|
|
2331
|
+
* Other parameters that may be specific to a certain kind of form control.
|
|
2332
|
+
*/
|
|
2333
|
+
params?: Record<string, any>;
|
|
2334
|
+
};
|
|
2335
|
+
|
|
2336
|
+
export type Component = {
|
|
2337
|
+
id?: string;
|
|
2338
|
+
style?: string;
|
|
2339
|
+
|
|
2340
|
+
show_validation?: "yes" | "no";
|
|
2341
|
+
schemaentry: FormSchemaEntry | undefined;
|
|
2342
|
+
};
|
|
2343
|
+
|
|
2344
|
+
export type Events = {
|
|
2345
|
+
setVal: { value: string; valid: boolean; id: string };
|
|
2346
|
+
};
|
|
2347
|
+
```
|
|
2348
|
+
|
|
2349
|
+
---
|
|
2350
|
+
|
|
2351
|
+
<a id="wc-input-select"></a>
|
|
2352
|
+
|
|
2353
|
+
# hb-input-select
|
|
2354
|
+
|
|
2355
|
+
## Description
|
|
2356
|
+
|
|
2357
|
+
Native `<select>` bound to `schemaentry` options from `params.options` (each option has `id`, `value`, and optional `label`). Supports JSON string or object `schemaentry`, optional required state, and `show_validation` for Bootstrap `is-valid` / `is-invalid` classes plus `validationTip`. Dispatches `setVal` with `{ value, valid, id }` on every change.
|
|
2358
|
+
|
|
2359
|
+
## Types
|
|
2360
|
+
|
|
2361
|
+
```typescript
|
|
2362
|
+
export type FormSchemaEntry = {
|
|
2363
|
+
/**
|
|
2364
|
+
* This will be both the key of the object when submitting the form's data,
|
|
2365
|
+
* and also the id in the DOM.
|
|
2366
|
+
*/
|
|
2367
|
+
id: string;
|
|
2368
|
+
|
|
2369
|
+
/**
|
|
2370
|
+
* The descriptive label that will show alongside the form control.
|
|
2371
|
+
*/
|
|
2372
|
+
label?: string;
|
|
2373
|
+
|
|
2374
|
+
/**
|
|
2375
|
+
* Optional default value.
|
|
2376
|
+
*/
|
|
2377
|
+
value?: string | number | boolean;
|
|
2378
|
+
|
|
2379
|
+
readonly?: boolean;
|
|
2380
|
+
|
|
2381
|
+
/**
|
|
2382
|
+
* This doesn't matter if the dependencies requirements aren't met.
|
|
2383
|
+
*/
|
|
2384
|
+
required?: boolean;
|
|
2385
|
+
|
|
2386
|
+
validationRegex?: string;
|
|
2387
|
+
/**
|
|
2388
|
+
* Shows if value is not valid.
|
|
2389
|
+
*/
|
|
2390
|
+
validationTip?: string;
|
|
2391
|
+
|
|
2392
|
+
placeholder?: string;
|
|
2393
|
+
|
|
2394
|
+
/**
|
|
2395
|
+
* Other parameters that may be specific to a certain kind of form control.
|
|
2396
|
+
*/
|
|
2397
|
+
params?: Record<string, any>;
|
|
2398
|
+
};
|
|
2399
|
+
|
|
2400
|
+
export type Component = {
|
|
2401
|
+
id?: string;
|
|
2402
|
+
style?: string;
|
|
2403
|
+
|
|
2404
|
+
show_validation?: "yes" | "no";
|
|
2405
|
+
schemaentry: FormSchemaEntry | undefined;
|
|
2406
|
+
};
|
|
2407
|
+
|
|
2408
|
+
export type Events = {
|
|
2409
|
+
setVal: { value: string; valid: boolean; id: string };
|
|
2410
|
+
};
|
|
2411
|
+
```
|
|
2412
|
+
|
|
2413
|
+
---
|
|
2414
|
+
|
|
2415
|
+
<a id="wc-input-text"></a>
|
|
2416
|
+
|
|
2417
|
+
# hb-input-text
|
|
2418
|
+
|
|
2419
|
+
## Description
|
|
2420
|
+
|
|
2421
|
+
Single-line text field driven by a JSON `schemaentry` (id, value, placeholder, readonly, required, optional `validationRegex`, and `params` min/max length). Toggle Bootstrap validation styling with `show_validation`. Dispatches `setVal` whenever the value or validity changes (detail includes `value`, `valid`, `id`), and `clickEnter` when the user presses Enter inside the input.
|
|
2422
|
+
|
|
2423
|
+
## Types
|
|
2424
|
+
|
|
2425
|
+
```typescript
|
|
2426
|
+
export type FormSchemaEntry = {
|
|
2427
|
+
/**
|
|
2428
|
+
* This will be both the key of the object when submitting the form's data,
|
|
2429
|
+
* and also the id in the DOM.
|
|
2430
|
+
*/
|
|
2431
|
+
id: string;
|
|
2432
|
+
|
|
2433
|
+
/**
|
|
2434
|
+
* Optional default value.
|
|
2435
|
+
*/
|
|
2436
|
+
value?: string | number | boolean;
|
|
2437
|
+
|
|
2438
|
+
readonly?: boolean;
|
|
2439
|
+
|
|
2440
|
+
/**
|
|
2441
|
+
* This doesn't matter if the dependencies requirements aren't met.
|
|
2442
|
+
*/
|
|
2443
|
+
required?: boolean;
|
|
2444
|
+
|
|
2445
|
+
validationRegex?: string;
|
|
2446
|
+
/**
|
|
2447
|
+
* Shows if value is not valid.
|
|
2448
|
+
*/
|
|
2449
|
+
validationTip?: string;
|
|
2450
|
+
|
|
2451
|
+
placeholder?: string;
|
|
2452
|
+
|
|
2453
|
+
/**
|
|
2454
|
+
* Other parameters that may be specific to a certain kind of form control.
|
|
2455
|
+
*/
|
|
2456
|
+
params?: Record<string, any>;
|
|
2457
|
+
};
|
|
2458
|
+
|
|
2459
|
+
export type Component = {
|
|
2460
|
+
id?: string;
|
|
2461
|
+
style?: string;
|
|
2462
|
+
|
|
2463
|
+
show_validation?: "yes" | "no";
|
|
2464
|
+
schemaentry: FormSchemaEntry;
|
|
2465
|
+
};
|
|
2466
|
+
|
|
2467
|
+
export type Events = {
|
|
2468
|
+
setVal: { value: string, valid: boolean, id: string };
|
|
2469
|
+
};
|
|
2470
|
+
```
|
|
2471
|
+
|
|
2472
|
+
---
|
|
2473
|
+
|
|
2474
|
+
<a id="wc-json-viewer"></a>
|
|
2475
|
+
|
|
2476
|
+
# hb-json-viewer
|
|
2477
|
+
|
|
2478
|
+
## Description
|
|
2479
|
+
|
|
2480
|
+
Renders JSON as an expandable, syntax-colored tree. Accepts a parsed object or a JSON string and supports initial expand modes (open, closed, or first level only).
|
|
2481
|
+
|
|
2482
|
+
## Types
|
|
2483
|
+
|
|
2484
|
+
```typescript
|
|
2485
|
+
|
|
2486
|
+
export type Component = {
|
|
2487
|
+
id?: string;
|
|
2488
|
+
json: any;
|
|
2489
|
+
status?: "open" | "closed" | "first";
|
|
2490
|
+
};
|
|
2491
|
+
|
|
2492
|
+
export type Events = {
|
|
2493
|
+
};
|
|
2494
|
+
```
|
|
2495
|
+
|
|
2496
|
+
---
|
|
2497
|
+
|
|
2498
|
+
<a id="wc-layout"></a>
|
|
2499
|
+
|
|
2500
|
+
# hb-layout
|
|
2501
|
+
|
|
2502
|
+
## Description
|
|
2503
|
+
|
|
2504
|
+
Responsive application shell: below 800px viewport width it mounts the mobile layout; otherwise the desktop layout. Forwards navigation slots, page content, cookie-law options, and layout events from the active child.
|
|
2505
|
+
|
|
2506
|
+
## Types
|
|
2507
|
+
|
|
2508
|
+
```typescript
|
|
2509
|
+
import type {
|
|
2510
|
+
IContacts,
|
|
2511
|
+
ISocials,
|
|
2512
|
+
ICompany,
|
|
2513
|
+
IColumn,
|
|
2514
|
+
IPolicies,
|
|
2515
|
+
} from "../../footer/types/webcomponent.type";
|
|
2516
|
+
import type { IUserMenu } from "../../navbar/types/webcomponent.type";
|
|
2517
|
+
import type { INavLink } from "../../sidenav-link/types/webcomponent.type";
|
|
2518
|
+
|
|
2519
|
+
export type Component = {
|
|
2520
|
+
i18nlang?: string;
|
|
2521
|
+
id?: string;
|
|
2522
|
+
style?: string;
|
|
2523
|
+
page_title?: string;
|
|
2524
|
+
socials?: ISocials;
|
|
2525
|
+
contacts?: IContacts;
|
|
2526
|
+
company?: ICompany;
|
|
2527
|
+
navlinks?: INavLink[];
|
|
2528
|
+
pagename?: string;
|
|
2529
|
+
usermenu?: IUserMenu;
|
|
2530
|
+
cookielaw?: string;
|
|
2531
|
+
columns?: IColumn[];
|
|
2532
|
+
onescreen?: boolean;
|
|
2533
|
+
cookielawuri4more?: string;
|
|
2534
|
+
cookielawallowdecline?: boolean;
|
|
2535
|
+
cookielawlanguage?: string;
|
|
2536
|
+
sidebar?: { title?: string; logo?: string; type?: string };
|
|
2537
|
+
footer?: {
|
|
2538
|
+
type?: "auto" | "small" | "regular" | "large";
|
|
2539
|
+
disable_expanding_small?: boolean;
|
|
2540
|
+
};
|
|
2541
|
+
policies?: IPolicies[];
|
|
2542
|
+
heders?: {
|
|
2543
|
+
name?: string;
|
|
2544
|
+
content: string;
|
|
2545
|
+
property?: string;
|
|
2546
|
+
}[];
|
|
2547
|
+
};
|
|
2548
|
+
|
|
2549
|
+
export type Events = {
|
|
2550
|
+
offcanvasswitch: { isOpen: boolean };
|
|
2551
|
+
pageChange: { page: string };
|
|
2552
|
+
navbarDropDownClick: { key: string };
|
|
2553
|
+
footerClick: { elClick: string };
|
|
2554
|
+
navbarSlotClick: { side: "left" | "right" | "center" };
|
|
2555
|
+
|
|
2556
|
+
// layoutStatus: { width: number; size: "large" | "small" };
|
|
2557
|
+
};
|
|
2558
|
+
```
|
|
2559
|
+
|
|
2560
|
+
---
|
|
2561
|
+
|
|
2562
|
+
<a id="wc-layout-desktop"></a>
|
|
2563
|
+
|
|
2564
|
+
# hb-layout-desktop
|
|
2565
|
+
|
|
2566
|
+
## Description
|
|
2567
|
+
|
|
2568
|
+
Desktop layout with top navbar, optional left sidebar (sidebar-desktop) when navigation links are present, main page area, optional cookie-law banner, and footer. Supports one-screen height mode and forwards navigation and footer events.
|
|
2569
|
+
|
|
2570
|
+
## Types
|
|
2571
|
+
|
|
2572
|
+
```typescript
|
|
2573
|
+
import type {
|
|
2574
|
+
IContacts,
|
|
2575
|
+
ISocials,
|
|
2576
|
+
ICompany,
|
|
2577
|
+
IColumn,
|
|
2578
|
+
IPolicies,
|
|
2579
|
+
} from "../../footer/types/webcomponent.type";
|
|
2580
|
+
import type { IUserMenu } from "../../navbar/types/webcomponent.type";
|
|
2581
|
+
import type { INavLink } from "../../sidenav-link/types/webcomponent.type";
|
|
2582
|
+
|
|
2583
|
+
export type Component = {
|
|
2584
|
+
i18nlang?: string;
|
|
2585
|
+
id?: string;
|
|
2586
|
+
style?: string;
|
|
2587
|
+
socials?: ISocials;
|
|
2588
|
+
contacts?: IContacts;
|
|
2589
|
+
company?: ICompany;
|
|
2590
|
+
navlinks?: INavLink[];
|
|
2591
|
+
pagename?: string;
|
|
2592
|
+
page_title?: string;
|
|
2593
|
+
usermenu?: IUserMenu;
|
|
2594
|
+
cookielaw?: string;
|
|
2595
|
+
columns?: IColumn[];
|
|
2596
|
+
onescreen?: boolean;
|
|
2597
|
+
cookielawuri4more?: string;
|
|
2598
|
+
cookielawallowdecline?: boolean;
|
|
2599
|
+
cookielawlanguage?: string;
|
|
2600
|
+
sidebar?: { title?: string; logo?: string; type?: string };
|
|
2601
|
+
footer?: {
|
|
2602
|
+
type?: "auto" | "small" | "regular" | "large";
|
|
2603
|
+
disable_expanding_small?: boolean;
|
|
2604
|
+
};
|
|
2605
|
+
policies?: IPolicies[];
|
|
2606
|
+
};
|
|
2607
|
+
|
|
2608
|
+
export type Events = {
|
|
2609
|
+
offcanvasswitch: { isOpen: boolean };
|
|
2610
|
+
pageChange: { page: string };
|
|
2611
|
+
navbarDropDownClick: { key: string };
|
|
2612
|
+
footerClick: { elClick: string };
|
|
2613
|
+
layoutStatus: { width: number; size: "large" | "small" };
|
|
2614
|
+
navbarSlotClick: { side: "left" | "right" | "center" };
|
|
2615
|
+
};
|
|
2616
|
+
```
|
|
2617
|
+
|
|
2618
|
+
---
|
|
2619
|
+
|
|
2620
|
+
<a id="wc-layout-mobile"></a>
|
|
2621
|
+
|
|
2622
|
+
# hb-layout-mobile
|
|
2623
|
+
|
|
2624
|
+
## Description
|
|
2625
|
+
|
|
2626
|
+
Mobile layout with optional offcanvas sidebar navigation, top navbar, main page slot, optional cookie-law banner, and footer. Supports one-screen full-height mode and forwards navbar, footer, and navigation events.
|
|
2627
|
+
|
|
2628
|
+
## Types
|
|
2629
|
+
|
|
2630
|
+
```typescript
|
|
2631
|
+
import type {
|
|
2632
|
+
IContacts,
|
|
2633
|
+
ISocials,
|
|
2634
|
+
ICompany,
|
|
2635
|
+
IColumn,
|
|
2636
|
+
IPolicies,
|
|
2637
|
+
} from "../../footer/types/webcomponent.type";
|
|
2638
|
+
import type { IUserMenu } from "../../navbar/types/webcomponent.type";
|
|
2639
|
+
import type { INavLink } from "../../sidenav-link/types/webcomponent.type";
|
|
2640
|
+
|
|
2641
|
+
export type Component = {
|
|
2642
|
+
id?: string;
|
|
2643
|
+
style?: string;
|
|
2644
|
+
socials?: ISocials;
|
|
2645
|
+
contacts?: IContacts;
|
|
2646
|
+
company?: ICompany;
|
|
2647
|
+
navlinks?: INavLink[];
|
|
2648
|
+
pagename?: string;
|
|
2649
|
+
page_title?: string;
|
|
2650
|
+
usermenu?: IUserMenu;
|
|
2651
|
+
cookielaw?: string;
|
|
2652
|
+
columns?: IColumn[];
|
|
2653
|
+
onescreen?: boolean;
|
|
2654
|
+
cookielawuri4more?: string;
|
|
2655
|
+
cookielawallowdecline?: boolean;
|
|
2656
|
+
cookielawlanguage?: string;
|
|
2657
|
+
sidebar?: { title?: string; logo?: string; type?: string };
|
|
2658
|
+
footer?: {
|
|
2659
|
+
type?: "auto" | "small" | "regular" | "large";
|
|
2660
|
+
disable_expanding_small?: boolean;
|
|
2661
|
+
};
|
|
2662
|
+
policies?: IPolicies[];
|
|
2663
|
+
i18nlang?: string;
|
|
2664
|
+
};
|
|
2665
|
+
|
|
2666
|
+
export type Events = {
|
|
2667
|
+
offcanvasswitch: { isOpen: boolean };
|
|
2668
|
+
pageChange: { page: string };
|
|
2669
|
+
navbarDropDownClick: { key: string };
|
|
2670
|
+
footerClick: { elClick: string };
|
|
2671
|
+
layoutStatus: { width: number; size: "large" | "small" };
|
|
2672
|
+
navbarSlotClick: { side: "left" | "right" | "center" };
|
|
2673
|
+
};
|
|
2674
|
+
```
|
|
2675
|
+
|
|
2676
|
+
---
|
|
2677
|
+
|
|
2678
|
+
<a id="wc-map"></a>
|
|
2679
|
+
|
|
2680
|
+
# hb-map
|
|
2681
|
+
|
|
2682
|
+
## Description
|
|
2683
|
+
|
|
2684
|
+
Interactive map: `center`, `zoom`, `source` (OSM or CARTO vector styles), `options` (e.g. `centerFromGeometries`, marker text layout), and `data` with markers (lng/lat, icon, popup HTML, text). Set `screenshot` to capture; emits map clicks, marker clicks, and screenshot payloads.
|
|
2685
|
+
|
|
2686
|
+
## Types
|
|
2687
|
+
|
|
2688
|
+
```typescript
|
|
2689
|
+
export type Component = {
|
|
2690
|
+
id?: string;
|
|
2691
|
+
style?: string;
|
|
2692
|
+
zoom: number;
|
|
2693
|
+
center: number[];
|
|
2694
|
+
data: {
|
|
2695
|
+
marker?: {
|
|
2696
|
+
lngLat: number[];
|
|
2697
|
+
icon?: {
|
|
2698
|
+
uri: string;
|
|
2699
|
+
scale?: number;
|
|
2700
|
+
anchor?: number[];
|
|
2701
|
+
opacity?: number;
|
|
2702
|
+
color?: string;
|
|
2703
|
+
};
|
|
2704
|
+
id?: string;
|
|
2705
|
+
popupHtml?: string;
|
|
2706
|
+
text?: string;
|
|
2707
|
+
text_position?: "top" | "right" | "bottom" | "left";
|
|
2708
|
+
text_offset?: number;
|
|
2709
|
+
};
|
|
2710
|
+
point?: {
|
|
2711
|
+
lngLat: number[];
|
|
2712
|
+
icon?: {
|
|
2713
|
+
uri: string;
|
|
2714
|
+
scale?: number;
|
|
2715
|
+
anchor?: number[];
|
|
2716
|
+
opacity?: number;
|
|
2717
|
+
color?: string;
|
|
2718
|
+
};
|
|
2719
|
+
id?: string;
|
|
2720
|
+
popupHtml?: string;
|
|
2721
|
+
};
|
|
2722
|
+
line?: {
|
|
2723
|
+
lngLat: number[];
|
|
2724
|
+
icon?: {
|
|
2725
|
+
uri: string;
|
|
2726
|
+
scale?: number;
|
|
2727
|
+
anchor?: number[];
|
|
2728
|
+
opacity?: number;
|
|
2729
|
+
color?: string;
|
|
2730
|
+
};
|
|
2731
|
+
id?: string;
|
|
2732
|
+
popupHtml?: string;
|
|
2733
|
+
}[];
|
|
2734
|
+
}[];
|
|
2735
|
+
source: { type: string; url?: string; style?: "positron" | "dark_matter" | "voyager" };
|
|
2736
|
+
options: {
|
|
2737
|
+
centerFromGeometries?: boolean;
|
|
2738
|
+
text_position?: "top" | "right" | "bottom" | "left";
|
|
2739
|
+
text_offset?: number;
|
|
2740
|
+
text_scale?: number;
|
|
2741
|
+
};
|
|
2742
|
+
screenshot?: string;
|
|
2743
|
+
};
|
|
2744
|
+
|
|
2745
|
+
export type Events = {
|
|
2746
|
+
pointClickCoordinates: {
|
|
2747
|
+
coordinates: { latitude: number; longitude: number };
|
|
2748
|
+
zoom: number;
|
|
2749
|
+
center: number[];
|
|
2750
|
+
};
|
|
2751
|
+
markerClick: {
|
|
2752
|
+
coordinates: { latitude: number; longitude: number };
|
|
2753
|
+
id: string;
|
|
2754
|
+
};
|
|
2755
|
+
screenshotTaken: {
|
|
2756
|
+
base64: string;
|
|
2757
|
+
};
|
|
2758
|
+
};
|
|
2759
|
+
```
|
|
2760
|
+
|
|
2761
|
+
---
|
|
2762
|
+
|
|
2763
|
+
<a id="wc-markdown-viewer"></a>
|
|
2764
|
+
|
|
2765
|
+
# hb-markdown-viewer
|
|
2766
|
+
|
|
2767
|
+
## Description
|
|
2768
|
+
|
|
2769
|
+
Renders Markdown from a data object (typically with a content string) using marked with GFM and line breaks, and normalizes compact single-line Markdown for clearer lists and headings.
|
|
2770
|
+
|
|
2771
|
+
## Types
|
|
2772
|
+
|
|
2773
|
+
```typescript
|
|
2774
|
+
export type Component = {
|
|
2775
|
+
id?: string;
|
|
2776
|
+
style?: string;
|
|
2777
|
+
data: {
|
|
2778
|
+
content: string;
|
|
2779
|
+
};
|
|
2780
|
+
};
|
|
2781
|
+
|
|
2782
|
+
export type Events = {
|
|
2783
|
+
// event: { test: boolean };
|
|
2784
|
+
};
|
|
2785
|
+
```
|
|
2786
|
+
|
|
2787
|
+
---
|
|
2788
|
+
|
|
2789
|
+
<a id="wc-matrix-video"></a>
|
|
2790
|
+
|
|
2791
|
+
# hb-matrix-video
|
|
2792
|
+
|
|
2793
|
+
## Description
|
|
2794
|
+
|
|
2795
|
+
Responsive video wall: lays out `items` in a Bootstrap row/column grid sized from the viewport (16:9-friendly). Each cell can be an iframe, plain MP4 `<video>`, `hb-player-live` (WHEP), or `hb-player-live-camera-ptz`. Tracks hover selection and emits `hoverItem` and `clickItem` with the focused tile id.
|
|
2796
|
+
|
|
2797
|
+
## Types
|
|
2798
|
+
|
|
2799
|
+
```typescript
|
|
2800
|
+
export type Component = {
|
|
2801
|
+
id?: string;
|
|
2802
|
+
style?: string;
|
|
2803
|
+
items: { type: "video" | "iframe" | "mediamtx-webrtc" | "mediamtx-webrtc-ptz"; id: string; uri: string; title?: string }[];
|
|
2804
|
+
};
|
|
2805
|
+
|
|
2806
|
+
export type Events = {
|
|
2807
|
+
hoverItem: { id?: string; selected: boolean };
|
|
2808
|
+
clickItem: { id: string };
|
|
2809
|
+
};
|
|
2810
|
+
```
|
|
2811
|
+
|
|
2812
|
+
---
|
|
2813
|
+
|
|
2814
|
+
<a id="wc-messages-box"></a>
|
|
2815
|
+
|
|
2816
|
+
# hb-messages-box
|
|
2817
|
+
|
|
2818
|
+
## Description
|
|
2819
|
+
|
|
2820
|
+
Chat shell combining `hb-messages-list` (thread from `messages`, `authors`, `options`) and `hb-messages-send` (composer). Optional `message` JSON can seed the draft text. Forwards the child `sendMessage` event (text, files, tags) to the host as `sendMessage` for your transport layer.
|
|
2821
|
+
|
|
2822
|
+
## Types
|
|
2823
|
+
|
|
2824
|
+
```typescript
|
|
2825
|
+
// type that is used to define a chat message
|
|
2826
|
+
export type TMessage = {
|
|
2827
|
+
id: string;
|
|
2828
|
+
text: string;
|
|
2829
|
+
timestamp: Date;
|
|
2830
|
+
type: "text" | "image" | "video" | "audio" | "file";
|
|
2831
|
+
status?: "pending" | "sent" | "received" | "read";
|
|
2832
|
+
system?: boolean;
|
|
2833
|
+
reply?: boolean;
|
|
2834
|
+
quotedMessageId?: string;
|
|
2835
|
+
authorId?: string;
|
|
2836
|
+
uri?: string;
|
|
2837
|
+
};
|
|
2838
|
+
|
|
2839
|
+
// type that is used to define a chat partecipant
|
|
2840
|
+
export type TAuthor = {
|
|
2841
|
+
id: string;
|
|
2842
|
+
name: string;
|
|
2843
|
+
avatar?: string;
|
|
2844
|
+
status: "online" | "offline" | "away" | "busy";
|
|
2845
|
+
me?: boolean;
|
|
2846
|
+
};
|
|
2847
|
+
|
|
2848
|
+
export type TMessageSend = {
|
|
2849
|
+
text?: string;
|
|
2850
|
+
file?: File;
|
|
2851
|
+
};
|
|
2852
|
+
|
|
2853
|
+
export type Component = {
|
|
2854
|
+
id?: string;
|
|
2855
|
+
style?: string;
|
|
2856
|
+
messages: TMessage[];
|
|
2857
|
+
authors: TAuthor[];
|
|
2858
|
+
options?: {};
|
|
2859
|
+
message?: TMessageSend;
|
|
2860
|
+
};
|
|
2861
|
+
|
|
2862
|
+
export type Events = {
|
|
2863
|
+
sendMessage: { text?: string; id: string; file?: File };
|
|
2864
|
+
};
|
|
2865
|
+
```
|
|
2866
|
+
|
|
2867
|
+
---
|
|
2868
|
+
|
|
2869
|
+
<a id="wc-messages-list"></a>
|
|
2870
|
+
|
|
2871
|
+
# hb-messages-list
|
|
2872
|
+
|
|
2873
|
+
## Description
|
|
2874
|
+
|
|
2875
|
+
Renders a conversation from `messages` joined to `authors`: aligned bubbles for self vs others, optional avatars and names, timestamps, and code blocks with language badges when `type` is `code`. `options` toggle bubbles, avatars, names, and time; `actions` adds per-message icon buttons that dispatch `action` with `messageId` and action name. Consecutive messages from the same author collapse avatar spacing within a short time window.
|
|
2876
|
+
|
|
2877
|
+
## Types
|
|
2878
|
+
|
|
2879
|
+
```typescript
|
|
2880
|
+
// type that is used to define a chat message
|
|
2881
|
+
export type TMessage = {
|
|
2882
|
+
id: string;
|
|
2883
|
+
text: string;
|
|
2884
|
+
timestamp: Date;
|
|
2885
|
+
type: "text" | "image" | "video" | "audio" | "file" | "code";
|
|
2886
|
+
status?: "pending" | "sent" | "received" | "read";
|
|
2887
|
+
system?: boolean;
|
|
2888
|
+
reply?: boolean;
|
|
2889
|
+
quotedMessageId?: string;
|
|
2890
|
+
authorId?: string;
|
|
2891
|
+
uri?: string;
|
|
2892
|
+
language?: string; // For code messages
|
|
2893
|
+
};
|
|
2894
|
+
|
|
2895
|
+
// type that is used to define a chat partecipant
|
|
2896
|
+
export type TAuthor = {
|
|
2897
|
+
id: string;
|
|
2898
|
+
name: string;
|
|
2899
|
+
avatar?: string;
|
|
2900
|
+
status: "online" | "offline" | "away" | "busy";
|
|
2901
|
+
me?: boolean;
|
|
2902
|
+
isAI?: boolean; // Special flag for AI author
|
|
2903
|
+
};
|
|
2904
|
+
|
|
2905
|
+
export type Component = {
|
|
2906
|
+
id?: string;
|
|
2907
|
+
style?: string;
|
|
2908
|
+
messages: TMessage[];
|
|
2909
|
+
authors: TAuthor[];
|
|
2910
|
+
options?: {
|
|
2911
|
+
showTimestamp?: boolean;
|
|
2912
|
+
showAvatar?: boolean;
|
|
2913
|
+
showName?: boolean;
|
|
2914
|
+
bubbles?: boolean;
|
|
2915
|
+
};
|
|
2916
|
+
actions?: {
|
|
2917
|
+
icon: string;
|
|
2918
|
+
name: string;
|
|
2919
|
+
}[]
|
|
2920
|
+
};
|
|
2921
|
+
|
|
2922
|
+
export type Events = {
|
|
2923
|
+
action: { messageId: string; action: string };
|
|
2924
|
+
};
|
|
2925
|
+
```
|
|
2926
|
+
|
|
2927
|
+
---
|
|
2928
|
+
|
|
2929
|
+
<a id="wc-messages-send"></a>
|
|
2930
|
+
|
|
2931
|
+
# hb-messages-send
|
|
2932
|
+
|
|
2933
|
+
## Description
|
|
2934
|
+
|
|
2935
|
+
Message composer with auto-growing textarea (optional `expandable` and maximize control), Enter-to-send, file attachments with previews (`files.mode` single or multiple), and optional `tags` as toggleable chips. Dispatches `sendMessage` with `text`, selected `tags`, and staged `files` when the user sends.
|
|
2936
|
+
|
|
2937
|
+
## Types
|
|
2938
|
+
|
|
2939
|
+
```typescript
|
|
2940
|
+
export type Component = {
|
|
2941
|
+
id?: string;
|
|
2942
|
+
style?: string;
|
|
2943
|
+
text?: string;
|
|
2944
|
+
expandable?: boolean;
|
|
2945
|
+
tags?: {
|
|
2946
|
+
label?: string;
|
|
2947
|
+
icon?: string;
|
|
2948
|
+
id: string
|
|
2949
|
+
color?: string;
|
|
2950
|
+
}[]
|
|
2951
|
+
files?: {
|
|
2952
|
+
mode: "single" | "multiple";
|
|
2953
|
+
}
|
|
2954
|
+
};
|
|
2955
|
+
|
|
2956
|
+
export type Events = {
|
|
2957
|
+
sendMessage: { text?: string; id: string; tags: string[]; files: File[] };
|
|
2958
|
+
};
|
|
2959
|
+
```
|
|
2960
|
+
|
|
2961
|
+
---
|
|
2962
|
+
|
|
2963
|
+
<a id="wc-messages-topics-card"></a>
|
|
2964
|
+
|
|
2965
|
+
# hb-messages-topics-card
|
|
2966
|
+
|
|
2967
|
+
## Description
|
|
2968
|
+
|
|
2969
|
+
Lists chat or channel previews from `chats`: avatar, title, last message snippet, derived time label, and unread `counter` badge. Clicking a row marks it selected (`_selected`) and dispatches `select` with that chat payload for opening a thread or switching context.
|
|
2970
|
+
|
|
2971
|
+
## Types
|
|
2972
|
+
|
|
2973
|
+
```typescript
|
|
2974
|
+
export type IChat = {
|
|
2975
|
+
time: Date;
|
|
2976
|
+
title: string;
|
|
2977
|
+
text: string;
|
|
2978
|
+
img_uri: string;
|
|
2979
|
+
is_group?: boolean;
|
|
2980
|
+
chat_name?: string;
|
|
2981
|
+
chat_img?: string;
|
|
2982
|
+
chat_id: string;
|
|
2983
|
+
last_message_author?: string;
|
|
2984
|
+
last_message_author_img?: string;
|
|
2985
|
+
last_message_time?: Date;
|
|
2986
|
+
last_message_text?: string;
|
|
2987
|
+
counter?: number;
|
|
2988
|
+
localeTimeString?: string;
|
|
2989
|
+
_selected?: boolean;
|
|
2990
|
+
};
|
|
2991
|
+
|
|
2992
|
+
export type Component = {
|
|
2993
|
+
id?: string;
|
|
2994
|
+
style?: string;
|
|
2995
|
+
|
|
2996
|
+
chats: IChat[];
|
|
2997
|
+
};
|
|
2998
|
+
|
|
2999
|
+
export type Events = {
|
|
3000
|
+
select: IChat;
|
|
3001
|
+
};
|
|
3002
|
+
```
|
|
3003
|
+
|
|
3004
|
+
---
|
|
3005
|
+
|
|
3006
|
+
<a id="wc-modal-video"></a>
|
|
3007
|
+
|
|
3008
|
+
# hb-modal-video
|
|
3009
|
+
|
|
3010
|
+
## Description
|
|
3011
|
+
|
|
3012
|
+
Video modal built on hb-dialog: when uri is set the dialog opens with either a YouTube iframe (provider youtube) or an HTML5 video element, optional title slot, and videoModalEvent when visibility changes.
|
|
3013
|
+
|
|
3014
|
+
## Types
|
|
3015
|
+
|
|
3016
|
+
```typescript
|
|
3017
|
+
export type Component = {
|
|
3018
|
+
id?: string;
|
|
3019
|
+
style?: string;
|
|
3020
|
+
item?: string;
|
|
3021
|
+
uri: string;
|
|
3022
|
+
title?: string;
|
|
3023
|
+
provider?: string;
|
|
3024
|
+
};
|
|
3025
|
+
|
|
3026
|
+
export type Events = {
|
|
3027
|
+
videoModalEvent: { id: string; show: boolean };
|
|
3028
|
+
};
|
|
3029
|
+
```
|
|
3030
|
+
|
|
3031
|
+
---
|
|
3032
|
+
|
|
3033
|
+
<a id="wc-navbar"></a>
|
|
3034
|
+
|
|
3035
|
+
# hb-navbar
|
|
3036
|
+
|
|
3037
|
+
## Description
|
|
3038
|
+
|
|
3039
|
+
Top navigation bar with optional hamburger to toggle an offcanvas menu, brand name and logo, slottable left, center, and right areas, and an optional user avatar dropdown (hb-dropdown-simple) with item click events.
|
|
3040
|
+
|
|
3041
|
+
## Types
|
|
3042
|
+
|
|
3043
|
+
```typescript
|
|
3044
|
+
interface IUserMenuListItem {
|
|
3045
|
+
key: string;
|
|
3046
|
+
label: string;
|
|
3047
|
+
badge?: number;
|
|
3048
|
+
group?: string;
|
|
3049
|
+
}
|
|
3050
|
+
export interface IUserMenu {
|
|
3051
|
+
imgUri: string;
|
|
3052
|
+
list?: IUserMenuListItem[];
|
|
3053
|
+
}
|
|
3054
|
+
export type Component = {
|
|
3055
|
+
id?: string;
|
|
3056
|
+
style?: string;
|
|
3057
|
+
companybrandname: string;
|
|
3058
|
+
companylogouri: string;
|
|
3059
|
+
// pagetitle: string;
|
|
3060
|
+
switchopen?: "yes" | "no";
|
|
3061
|
+
usermenu?: IUserMenu;
|
|
3062
|
+
noburger?: string;
|
|
3063
|
+
};
|
|
3064
|
+
|
|
3065
|
+
export type Events = {
|
|
3066
|
+
navbarDropDownClick: { key: string };
|
|
3067
|
+
navmenuswitch: { isOpen: boolean };
|
|
3068
|
+
navbarSlotClick: { side: "left" | "right" | "center" };
|
|
3069
|
+
};
|
|
3070
|
+
```
|
|
3071
|
+
|
|
3072
|
+
---
|
|
3073
|
+
|
|
3074
|
+
<a id="wc-offcanvas"></a>
|
|
3075
|
+
|
|
3076
|
+
## `hb-offcanvas` — offcanvas
|
|
3077
|
+
|
|
3078
|
+
**Category:** layout
|
|
3079
|
+
**Tags:** layout, navigation
|
|
3080
|
+
|
|
3081
|
+
### What it does
|
|
3082
|
+
|
|
3083
|
+
Bootstrap-style offcanvas panel that hosts sidebar-desktop navigation. Can start open or closed, optionally shows a backdrop (autohide) for dismissal, and dispatches page changes and open/close state.
|
|
3084
|
+
|
|
3085
|
+
### Custom element
|
|
3086
|
+
|
|
3087
|
+
`hb-offcanvas`
|
|
3088
|
+
|
|
3089
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3090
|
+
|
|
3091
|
+
- `id`, `style` (optional): strings.
|
|
3092
|
+
- `opened` (optional): boolean string — panel starts open.
|
|
3093
|
+
- `companylogouri`, `companytitle` (optional): strings.
|
|
3094
|
+
- `groups` (optional): JSON string — `{ key; label }[]` for nav grouping.
|
|
3095
|
+
- `enablefooter` (optional): boolean string.
|
|
3096
|
+
- `type` (optional): `"open"` | `"autohide"` | `"small"` — backdrop and sizing.
|
|
3097
|
+
- `navpage` (optional): string — active page key.
|
|
3098
|
+
- `navlinks` (optional): JSON string — `INavLink[]` (label, key, icon, badge, subLinks, etc.).
|
|
3099
|
+
|
|
3100
|
+
### Events
|
|
3101
|
+
|
|
3102
|
+
- `offcanvasswitch`: `{ isOpen: boolean }`.
|
|
3103
|
+
- `pageChange`: `{ page: string }`.
|
|
3104
|
+
|
|
3105
|
+
### Usage notes
|
|
3106
|
+
|
|
3107
|
+
- **Slots:** `test`, `header`, `footer`.
|
|
3108
|
+
- **CSS parts:** `header`.
|
|
3109
|
+
- **CSS variables:** `--bs-primary` (Bootstrap theme).
|
|
3110
|
+
- Pair with `hb-sidebar-desktop` / `hb-sidenav-link` patterns; see Storybook examples in `extra/docs.ts`.
|
|
3111
|
+
|
|
3112
|
+
### Minimal HTML example
|
|
3113
|
+
|
|
3114
|
+
```html
|
|
3115
|
+
<hb-offcanvas
|
|
3116
|
+
opened="true"
|
|
3117
|
+
type="autohide"
|
|
3118
|
+
companytitle="Acme"
|
|
3119
|
+
navpage="home"
|
|
3120
|
+
navlinks='[{"label":"Home","key":"home","icon":"house-door"}]'
|
|
3121
|
+
></hb-offcanvas>
|
|
3122
|
+
```
|
|
3123
|
+
|
|
3124
|
+
---
|
|
3125
|
+
|
|
3126
|
+
<a id="wc-order-list"></a>
|
|
3127
|
+
|
|
3128
|
+
## `hb-order-list` — order list
|
|
3129
|
+
|
|
3130
|
+
**Category:** commerce
|
|
3131
|
+
**Tags:** commerce, order
|
|
3132
|
+
|
|
3133
|
+
### What it does
|
|
3134
|
+
|
|
3135
|
+
Order summary view driven by a payment JSON object: order number header, optional tracking area, list of line items with image and name, and a footer showing the order total including tax and optional shipment fee. Exposes the item image via the `item_image` CSS part.
|
|
3136
|
+
|
|
3137
|
+
### Custom element
|
|
3138
|
+
|
|
3139
|
+
`hb-order-list`
|
|
3140
|
+
|
|
3141
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3142
|
+
|
|
3143
|
+
- `id`, `style` (optional): strings.
|
|
3144
|
+
- `payment` (required): JSON string — `OrderPayment` with `orderNumber`, `countryCode`, `items` (shop line items plus `image` per row), plus cart/tax fields from shared checkout types.
|
|
3145
|
+
|
|
3146
|
+
### Events
|
|
3147
|
+
|
|
3148
|
+
None declared.
|
|
3149
|
+
|
|
3150
|
+
### Usage notes
|
|
3151
|
+
|
|
3152
|
+
- **CSS parts:** `item_image`.
|
|
3153
|
+
- Serialize `payment` as a single JSON attribute; see `builder/src/wc/order-list/types/webcomponent.type.d.ts` and examples in `extra/docs.ts`.
|
|
3154
|
+
|
|
3155
|
+
### Minimal HTML example
|
|
3156
|
+
|
|
3157
|
+
```html
|
|
3158
|
+
<hb-order-list
|
|
3159
|
+
payment='{"orderNumber":"1001","countryCode":"EU","items":[{"id":"1","name":"Item","unitaryPrice":10,"taxPercentage":22,"image":"https://example.com/a.jpg"}]}'
|
|
3160
|
+
></hb-order-list>
|
|
3161
|
+
```
|
|
3162
|
+
|
|
3163
|
+
---
|
|
3164
|
+
|
|
3165
|
+
<a id="wc-pad-joystick"></a>
|
|
3166
|
+
|
|
3167
|
+
## `hb-pad-joystick` — pad joystick
|
|
3168
|
+
|
|
3169
|
+
**Category:** utilities
|
|
3170
|
+
**Tags:** utilities, controls
|
|
3171
|
+
|
|
3172
|
+
### What it does
|
|
3173
|
+
|
|
3174
|
+
Touch-friendly directional control: either a four-way D-pad that emits cardinal directions or an analog joystick that streams position and cardinal direction with customizable colors.
|
|
3175
|
+
|
|
3176
|
+
### Custom element
|
|
3177
|
+
|
|
3178
|
+
`hb-pad-joystick`
|
|
3179
|
+
|
|
3180
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3181
|
+
|
|
3182
|
+
- `id`, `style` (optional): strings.
|
|
3183
|
+
- `pad_or_joystick` (optional): `"dpad"` | `"joystick"` (default pad-style behavior when omitted per examples).
|
|
3184
|
+
- `joystick_parameters` (optional): JSON string — `internalFillColor`, `internalLineWidth`, `internalStrokeColor`, `externalLineWidth`, `externalStrokeColor`.
|
|
3185
|
+
|
|
3186
|
+
### Events
|
|
3187
|
+
|
|
3188
|
+
- `sendDirection`: `{ direction: "up" | "right" | "down" | "left"; id: string }`.
|
|
3189
|
+
- `sendJoystickPosition`: `{ x; y; cardinalDirection; id: string }` (cardinal set per `CardinalDirection` in types).
|
|
3190
|
+
|
|
3191
|
+
### Usage notes
|
|
3192
|
+
|
|
3193
|
+
- **CSS variables:** `--hb-pad-joystick-size` (default `200px`).
|
|
3194
|
+
- Use `pad_or_joystick="joystick"` for analog mode; see `extra/docs.ts`.
|
|
3195
|
+
|
|
3196
|
+
### Minimal HTML example
|
|
3197
|
+
|
|
3198
|
+
```html
|
|
3199
|
+
<hb-pad-joystick pad_or_joystick="dpad"></hb-pad-joystick>
|
|
3200
|
+
```
|
|
3201
|
+
|
|
3202
|
+
---
|
|
3203
|
+
|
|
3204
|
+
<a id="wc-page-checkout"></a>
|
|
3205
|
+
|
|
3206
|
+
## `hb-page-checkout` — page checkout
|
|
3207
|
+
|
|
3208
|
+
**Category:** commerce
|
|
3209
|
+
**Tags:** commerce, checkout, page
|
|
3210
|
+
|
|
3211
|
+
### What it does
|
|
3212
|
+
|
|
3213
|
+
Checkout page layout that embeds the payment flow and shopping cart: left column uses `hb-checkout` (user, shipments, gateways, payment) and right column uses `hb-checkout-shopping-cart`. Recomputes line totals, tax, shipment fee, and payment total from JSON props; updates shipment selection internally and forwards `paymentCompleted` and `saveUser` to the host.
|
|
3214
|
+
|
|
3215
|
+
### Custom element
|
|
3216
|
+
|
|
3217
|
+
`hb-page-checkout`
|
|
3218
|
+
|
|
3219
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3220
|
+
|
|
3221
|
+
- `id`, `style` (optional): strings.
|
|
3222
|
+
- `shipments` (required): JSON string — `IShipment[]` (see `hb-checkout` types).
|
|
3223
|
+
- `user` (required): JSON string — `IUser` (address, nationality, zip, `fixed`, etc.).
|
|
3224
|
+
- `payment` (required): JSON string — shopping payment + `IPayment` fields (currency, items, totals, merchant, country).
|
|
3225
|
+
- `gateways` (required): JSON string — `IGateway[]` (e.g. PayPal id, Google Pay ids).
|
|
3226
|
+
- `completed` (optional): `"yes"` | `"no"` — completion state for UI.
|
|
3227
|
+
|
|
3228
|
+
### Events
|
|
3229
|
+
|
|
3230
|
+
- `saveUser`: detail is `IUser` (updated user payload).
|
|
3231
|
+
- `paymentCompleted`: `{ total: number; method: string; completed: true }`.
|
|
3232
|
+
|
|
3233
|
+
### Usage notes
|
|
3234
|
+
|
|
3235
|
+
- **CSS variables:** `--hb-checkout-border`, Bootstrap `--bs-primary`, `--bs-secondary`, `--bs-success`, `--bs-info`, `--bs-warning`, `--bs-danger`.
|
|
3236
|
+
- Compose gateways and payment objects like Storybook `extra/docs.ts`; shared types live under `hb-checkout` / `hb-checkout-shopping-cart`.
|
|
3237
|
+
|
|
3238
|
+
### Minimal HTML example
|
|
3239
|
+
|
|
3240
|
+
```html
|
|
3241
|
+
<hb-page-checkout
|
|
3242
|
+
shipments="[]"
|
|
3243
|
+
user='{"fullName":"Jane Doe","addressWithNumber":"Main 1","city":"Rome","nationality":"IT","zip":"00100","fixed":true}'
|
|
3244
|
+
payment='{"countryCode":"IT","merchantName":"Shop","currencyCode":"EUR","total":100,"items":[{"id":"a","name":"A","unitaryPrice":10,"taxPercentage":22}]}'
|
|
3245
|
+
gateways='[{"id":"paypal","label":"PayPal","paypalid":"YOUR_CLIENT_ID"}]'
|
|
3246
|
+
></hb-page-checkout>
|
|
3247
|
+
```
|
|
3248
|
+
|
|
3249
|
+
---
|
|
3250
|
+
|
|
3251
|
+
<a id="wc-page-invoice"></a>
|
|
3252
|
+
|
|
3253
|
+
## `hb-page-invoice` — page invoice
|
|
3254
|
+
|
|
3255
|
+
**Category:** commerce
|
|
3256
|
+
**Tags:** commerce, invoice, page
|
|
3257
|
+
|
|
3258
|
+
### What it does
|
|
3259
|
+
|
|
3260
|
+
Printable invoice page: shows seller and buyer from headers, invoice date and serial, line items in `hb-table` with price, quantity, VAT and row totals, plus subtotal, tax and grand total in the invoice currency. When `printer` is not `yes`, offers print and open-in-window actions.
|
|
3261
|
+
|
|
3262
|
+
### Custom element
|
|
3263
|
+
|
|
3264
|
+
`hb-page-invoice`
|
|
3265
|
+
|
|
3266
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3267
|
+
|
|
3268
|
+
- `id`, `style` (optional): strings.
|
|
3269
|
+
- `printer` (optional): `"yes"` | `"no"` — print-only / interactive mode.
|
|
3270
|
+
- `headers` (required): JSON string — `IHeaders` (`serial`, `from` with `logo` and `shortName`, `to`, optional `country`, `date`, `category`, etc.).
|
|
3271
|
+
- `items` (required): JSON string — `IItem[]` (`desc`, `unitaryPrice`, `taxPercentage`, optional `quantity`, `unit`, `discount`).
|
|
3272
|
+
|
|
3273
|
+
### Events
|
|
3274
|
+
|
|
3275
|
+
None declared.
|
|
3276
|
+
|
|
3277
|
+
### Usage notes
|
|
3278
|
+
|
|
3279
|
+
- **CSS variables:** Bootstrap `--bs-primary` through `--bs-danger`.
|
|
3280
|
+
- Align `headers` / `items` with `builder/src/wc/page-invoice/types/webcomponent.type.d.ts`.
|
|
3281
|
+
|
|
3282
|
+
### Minimal HTML example
|
|
3283
|
+
|
|
3284
|
+
```html
|
|
3285
|
+
<hb-page-invoice
|
|
3286
|
+
printer="no"
|
|
3287
|
+
headers='{"serial":"INV-1","from":{"piva":"IT1","name":"Seller","address":"Via 1","email":"a@b.co","phone":"0","logo":"https://example.com/logo.svg","shortName":"Seller"},"to":{"piva":"IT2","name":"Buyer","address":"Via 2","email":"b@b.co","phone":"1"}}'
|
|
3288
|
+
items='[{"desc":"Service","unitaryPrice":100,"taxPercentage":22,"quantity":1}]'
|
|
3289
|
+
></hb-page-invoice>
|
|
3290
|
+
```
|
|
3291
|
+
|
|
3292
|
+
---
|
|
3293
|
+
|
|
3294
|
+
<a id="wc-paginate"></a>
|
|
3295
|
+
|
|
3296
|
+
## `hb-paginate` — paginate
|
|
3297
|
+
|
|
3298
|
+
**Category:** utilities
|
|
3299
|
+
**Tags:** utilities, navigation
|
|
3300
|
+
|
|
3301
|
+
### What it does
|
|
3302
|
+
|
|
3303
|
+
Pagination bar with first/prev/next/last and nearby page buttons, optional “showing X–Y of total” text, configurable page-size input or select, and optional sort field and direction controls with i18n labels.
|
|
3304
|
+
|
|
3305
|
+
### Custom element
|
|
3306
|
+
|
|
3307
|
+
`hb-paginate`
|
|
3308
|
+
|
|
3309
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3310
|
+
|
|
3311
|
+
- `id`, `style` (optional): strings.
|
|
3312
|
+
- `page` (required), `pages` (required): numbers as strings.
|
|
3313
|
+
- `info` (optional): JSON string — `total`, `size`, `page_size_type` (`number` | `select`), `page_size_options`, `sort_fields`, `sort_by`, `sort_direction`, `sort_disabled`, `sort_direction_disabled`, `sort_strict_direction`, `sort_default_value`, `sort_default_label`.
|
|
3314
|
+
- `i18nlang` (optional): string — e.g. `en`, `it`.
|
|
3315
|
+
|
|
3316
|
+
### Events
|
|
3317
|
+
|
|
3318
|
+
- `pageChange`: `{ page: number; pages: number }`.
|
|
3319
|
+
- `changePageSize`: `{ page_size: number }`.
|
|
3320
|
+
- `changeSort`: `{ sort_by: string; sort_direction: string }`.
|
|
3321
|
+
|
|
3322
|
+
### Usage notes
|
|
3323
|
+
|
|
3324
|
+
- **CSS variables:** `--bs-primary`.
|
|
3325
|
+
- **i18n:** Italian and English in metadata; set `i18nlang` accordingly.
|
|
3326
|
+
- See `extra/docs.ts` for combined sort + page-size examples.
|
|
3327
|
+
|
|
3328
|
+
### Minimal HTML example
|
|
3329
|
+
|
|
3330
|
+
```html
|
|
3331
|
+
<hb-paginate page="0" pages="5" i18nlang="en"></hb-paginate>
|
|
3332
|
+
```
|
|
3333
|
+
|
|
3334
|
+
---
|
|
3335
|
+
|
|
3336
|
+
<a id="wc-paragraps-around-image"></a>
|
|
3337
|
+
|
|
3338
|
+
## `hb-paragraps-around-image` — paragraphs around image
|
|
3339
|
+
|
|
3340
|
+
**Category:** content
|
|
3341
|
+
**Tags:** content
|
|
3342
|
+
|
|
3343
|
+
### What it does
|
|
3344
|
+
|
|
3345
|
+
Editorial block with a central image and up to six text blocks in two side columns using `hb-paragraps-around-image-cell` (indices 0, 2, 4 left; 1, 3, 5 right). Parses `paragraphs` from JSON and bubbles `paragraphPressed` when a cell fires it.
|
|
3346
|
+
|
|
3347
|
+
### Custom element
|
|
3348
|
+
|
|
3349
|
+
`hb-paragraps-around-image`
|
|
3350
|
+
|
|
3351
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3352
|
+
|
|
3353
|
+
- `id`, `style` (optional): strings.
|
|
3354
|
+
- `img` (required): string — image URL.
|
|
3355
|
+
- `paragraphs` (required): JSON string — array of `{ text; title?; icon?; link?; key? }`.
|
|
3356
|
+
|
|
3357
|
+
### Events
|
|
3358
|
+
|
|
3359
|
+
- `paragraphPressed`: `{ key: string }`.
|
|
3360
|
+
|
|
3361
|
+
### Usage notes
|
|
3362
|
+
|
|
3363
|
+
- **Slots:** `skelcontent`.
|
|
3364
|
+
- **CSS parts:** `testpart`.
|
|
3365
|
+
- Up to six paragraph objects; layout alternates columns per index.
|
|
3366
|
+
|
|
3367
|
+
### Minimal HTML example
|
|
3368
|
+
|
|
3369
|
+
```html
|
|
3370
|
+
<hb-paragraps-around-image
|
|
3371
|
+
img="https://placehold.co/300x200"
|
|
3372
|
+
paragraphs='[{"text":"Hello body","title":"Title","icon":"globe","link":"https://example.com"}]'
|
|
3373
|
+
></hb-paragraps-around-image>
|
|
3374
|
+
```
|
|
3375
|
+
|
|
3376
|
+
---
|
|
3377
|
+
|
|
3378
|
+
<a id="wc-paragraps-around-image-cell"></a>
|
|
3379
|
+
|
|
3380
|
+
## `hb-paragraps-around-image-cell` — paragraph cell around image
|
|
3381
|
+
|
|
3382
|
+
**Category:** content
|
|
3383
|
+
**Tags:** content
|
|
3384
|
+
|
|
3385
|
+
### What it does
|
|
3386
|
+
|
|
3387
|
+
One paragraph tile with Bootstrap icon, optional title as external link or key-triggered control (dispatches `paragraphPressed` with `key`), and body text clamped to `max_lines` for consistent height inside `hb-paragraps-around-image` layouts.
|
|
3388
|
+
|
|
3389
|
+
### Custom element
|
|
3390
|
+
|
|
3391
|
+
`hb-paragraps-around-image-cell`
|
|
3392
|
+
|
|
3393
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3394
|
+
|
|
3395
|
+
- `id`, `style` (optional): strings.
|
|
3396
|
+
- `paragraph` (required): JSON string — `{ text; title?; icon?; link?; key? }`.
|
|
3397
|
+
- `max_lines` (optional): number as string — line clamp for body text.
|
|
3398
|
+
|
|
3399
|
+
### Events
|
|
3400
|
+
|
|
3401
|
+
- `paragraphPressed`: `{ key: string }`.
|
|
3402
|
+
|
|
3403
|
+
### Usage notes
|
|
3404
|
+
|
|
3405
|
+
- **Slots:** `skelcontent`.
|
|
3406
|
+
- **CSS parts:** `testpart`.
|
|
3407
|
+
- Typically embedded by `hb-paragraps-around-image`; usable alone for Storybook-style tiles (no separate image prop on this cell).
|
|
3408
|
+
|
|
3409
|
+
### Minimal HTML example
|
|
3410
|
+
|
|
3411
|
+
```html
|
|
3412
|
+
<hb-paragraps-around-image-cell
|
|
3413
|
+
paragraph='{"text":"Body copy","title":"Read more","icon":"globe","key":"section-1"}'
|
|
3414
|
+
max_lines="4"
|
|
3415
|
+
></hb-paragraps-around-image-cell>
|
|
3416
|
+
```
|
|
3417
|
+
|
|
3418
|
+
---
|
|
3419
|
+
|
|
3420
|
+
<a id="wc-payment-paypal"></a>
|
|
3421
|
+
|
|
3422
|
+
## `hb-payment-paypal` — payment PayPal
|
|
3423
|
+
|
|
3424
|
+
**Category:** commerce
|
|
3425
|
+
**Tags:** commerce, payment
|
|
3426
|
+
|
|
3427
|
+
### What it does
|
|
3428
|
+
|
|
3429
|
+
Loads the PayPal JS SDK with your client id and currency, renders PayPal Buttons for a fixed order total, captures payment on approval, and dispatches `paymentCompleted` when the order is captured successfully.
|
|
3430
|
+
|
|
3431
|
+
### Custom element
|
|
3432
|
+
|
|
3433
|
+
`hb-payment-paypal`
|
|
3434
|
+
|
|
3435
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3436
|
+
|
|
3437
|
+
- `id`, `style` (optional): strings.
|
|
3438
|
+
- `paypalid` (required): string — PayPal client / app id.
|
|
3439
|
+
- `currency` (required): `"EUR"` | `"USD"` (string).
|
|
3440
|
+
- `total` (required): number as string — order amount.
|
|
3441
|
+
|
|
3442
|
+
### Events
|
|
3443
|
+
|
|
3444
|
+
- `paymentCompleted`: `{ method: "paypal"; total: number }`.
|
|
3445
|
+
|
|
3446
|
+
### Usage notes
|
|
3447
|
+
|
|
3448
|
+
- **CSS variables:** `--hb-checkout-border`.
|
|
3449
|
+
- **CSS parts:** `btn` (PayPal button surface).
|
|
3450
|
+
- Ensure CSP and PayPal script loading match your host app; totals are fixed for the rendered session.
|
|
3451
|
+
|
|
3452
|
+
### Minimal HTML example
|
|
3453
|
+
|
|
3454
|
+
```html
|
|
3455
|
+
<hb-payment-paypal paypalid="YOUR_CLIENT_ID" currency="EUR" total="40"></hb-payment-paypal>
|
|
3456
|
+
```
|
|
3457
|
+
|
|
3458
|
+
---
|
|
3459
|
+
|
|
3460
|
+
<a id="wc-player-input-streaming"></a>
|
|
3461
|
+
|
|
3462
|
+
## `hb-player-input-streaming` — player input streaming
|
|
3463
|
+
|
|
3464
|
+
**Category:** media
|
|
3465
|
+
**Tags:** media, video, camera
|
|
3466
|
+
|
|
3467
|
+
### What it does
|
|
3468
|
+
|
|
3469
|
+
Requests camera and microphone with `getUserMedia`, binds the stream to a `<video>` element, and exposes basic controls (play/pause, fullscreen, enable/disable video and audio tracks). Emits `AudioVideoAccess` with grant result and `VideoInitialized` with the video element reference once the stream is attached.
|
|
3470
|
+
|
|
3471
|
+
### Custom element
|
|
3472
|
+
|
|
3473
|
+
`hb-player-input-streaming`
|
|
3474
|
+
|
|
3475
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3476
|
+
|
|
3477
|
+
- `id` (optional): string — echoed on dispatched events.
|
|
3478
|
+
|
|
3479
|
+
### Events
|
|
3480
|
+
|
|
3481
|
+
- `AudioVideoAccess`: `{ granted: boolean; id: string }`.
|
|
3482
|
+
- `VideoInitialized`: `{ videoElement; id: string }`.
|
|
3483
|
+
- `event`: `{ test: boolean }` (test hook in source).
|
|
3484
|
+
|
|
3485
|
+
### Usage notes
|
|
3486
|
+
|
|
3487
|
+
- Requires secure context and user permission for camera/microphone.
|
|
3488
|
+
- Types in `webcomponent.type.d.ts` only list `event`; runtime also dispatches `AudioVideoAccess` and `VideoInitialized` (see `component.wc.svelte`).
|
|
3489
|
+
|
|
3490
|
+
### Minimal HTML example
|
|
3491
|
+
|
|
3492
|
+
```html
|
|
3493
|
+
<hb-player-input-streaming id="cam1"></hb-player-input-streaming>
|
|
3494
|
+
```
|
|
3495
|
+
|
|
3496
|
+
---
|
|
3497
|
+
|
|
3498
|
+
<a id="wc-player-live"></a>
|
|
3499
|
+
|
|
3500
|
+
## `hb-player-live` — player live
|
|
3501
|
+
|
|
3502
|
+
**Category:** media
|
|
3503
|
+
**Tags:** media, video, streaming
|
|
3504
|
+
|
|
3505
|
+
### What it does
|
|
3506
|
+
|
|
3507
|
+
Live streaming `<video>` player for HLS (hls.js or native), WebSocket WebRTC (`simple-webrtc-element`), or WHEP (MediaMTX). Polls the manifest for HLS liveness, exposes the element via `getVideoElement`, and emits `liveStatus` and `htmlVideoInit`. When the stream is offline or missing, shows optional title/subtitle/text from `replacewithtext`, `forcecover`, or fallback labels.
|
|
3508
|
+
|
|
3509
|
+
### Custom element
|
|
3510
|
+
|
|
3511
|
+
`hb-player-live`
|
|
3512
|
+
|
|
3513
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3514
|
+
|
|
3515
|
+
- `id`, `style` (optional): strings.
|
|
3516
|
+
- `mediauri` (required): string — stream URL (HLS, WebRTC, WHEP as configured).
|
|
3517
|
+
- `media_type` (optional): `"hls"` | `"webrtc"` | `"auto"` | `"whep"` (empty string allowed in examples).
|
|
3518
|
+
- `forcecover` (optional): string — e.g. `"yes"` to force cover layout with placeholder text.
|
|
3519
|
+
- `replacewithtext` (optional): JSON string — `{ title; subtitle?; text? }` when offline.
|
|
3520
|
+
- `no_controls` (optional): boolean string — hide native/custom controls.
|
|
3521
|
+
|
|
3522
|
+
### Events
|
|
3523
|
+
|
|
3524
|
+
- `liveStatus`: `{ live: boolean; id: string }`.
|
|
3525
|
+
- `htmlVideoInit`: `{ video; id: string }`.
|
|
3526
|
+
|
|
3527
|
+
### Usage notes
|
|
3528
|
+
|
|
3529
|
+
- **CSS parts:** `container`, `replacewithtext`, `video`.
|
|
3530
|
+
- Pick `media_type` to match your pipeline (`whep` for WHEP examples in docs).
|
|
3531
|
+
|
|
3532
|
+
### Minimal HTML example
|
|
3533
|
+
|
|
3534
|
+
```html
|
|
3535
|
+
<hb-player-live
|
|
3536
|
+
mediauri="https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8"
|
|
3537
|
+
media_type="hls"
|
|
3538
|
+
></hb-player-live>
|
|
3539
|
+
```
|
|
3540
|
+
|
|
3541
|
+
---
|
|
3542
|
+
|
|
3543
|
+
<a id="wc-player-live-camera-ptz"></a>
|
|
3544
|
+
|
|
3545
|
+
## `hb-player-live-camera-ptz` — player live camera PTZ
|
|
3546
|
+
|
|
3547
|
+
**Category:** media
|
|
3548
|
+
**Tags:** media, video, streaming, camera
|
|
3549
|
+
|
|
3550
|
+
### What it does
|
|
3551
|
+
|
|
3552
|
+
Live camera view built on `hb-player-live` with a configurable PTZ panel: D-pad or analog joystick, zoom in/out, go home, click-to-center region on the video, optional grid overlay, fullscreen, mute, and play/pause. Manages camera presets in dialogs with `hb-table` (add, go to, delete). Feature flags live in `configuration`; PTZ and UI state are driven by `is_ptz_connected`, `is_ptz_panel_opened`, and `is_home`. Dispatches movement, preset, and video-init events for the host app to wire to your backend.
|
|
3553
|
+
|
|
3554
|
+
### Custom element
|
|
3555
|
+
|
|
3556
|
+
`hb-player-live-camera-ptz`
|
|
3557
|
+
|
|
3558
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3559
|
+
|
|
3560
|
+
- `id`, `style` (optional): strings.
|
|
3561
|
+
- `live_uri` (required): string — stream URI for the embedded player.
|
|
3562
|
+
- `media_type` (optional): `"hls"` | `"webrtc"` | `"auto"` | `"whep"` | `""`.
|
|
3563
|
+
- `is_ptz_connected`, `is_ptz_panel_opened`, `is_home` (optional): boolean strings.
|
|
3564
|
+
- `presets` (optional): JSON string — `TPreset[]` (`token`, `name`, `x`, `y`, `z`).
|
|
3565
|
+
- `current_preset` (optional): string — active preset token.
|
|
3566
|
+
- `position` (optional): `"top"` | `"right-bottom"` | `"left-bottom"` | `"bottom"` | `"right-top"` | `"left-top"`.
|
|
3567
|
+
- `configuration` (optional): JSON string — toggles for joystick, presets, zoom, pan, tilt, click-to-center, settings, etc.
|
|
3568
|
+
|
|
3569
|
+
### Events
|
|
3570
|
+
|
|
3571
|
+
- `initVideo`: `{ id; time; htmlVideoElement }`.
|
|
3572
|
+
- `panelMove`: `{ id; opened: boolean }`.
|
|
3573
|
+
- `goToHome`, `goToSelectedArea`, `setPreset`, `goToPreset`, `deletePreset`, `zoomAction`, `sendJoystickPosition`, `sendDirection` — see `builder/src/wc/player-live-camera-ptz/types/webcomponent.type.d.ts` for full payloads (`movementSettings`, geometry, presets, etc.).
|
|
3574
|
+
|
|
3575
|
+
### Usage notes
|
|
3576
|
+
|
|
3577
|
+
- **CSS variables:** Bootstrap `--bs-primary` through `--bs-danger`.
|
|
3578
|
+
- Host must implement PTZ API calls in response to movement and preset events.
|
|
3579
|
+
|
|
3580
|
+
### Minimal HTML example
|
|
3581
|
+
|
|
3582
|
+
```html
|
|
3583
|
+
<hb-player-live-camera-ptz
|
|
3584
|
+
live_uri="https://example.com/stream.m3u8"
|
|
3585
|
+
media_type="auto"
|
|
3586
|
+
is_ptz_connected="true"
|
|
3587
|
+
is_ptz_panel_opened="true"
|
|
3588
|
+
></hb-player-live-camera-ptz>
|
|
3589
|
+
```
|
|
3590
|
+
|
|
3591
|
+
---
|
|
3592
|
+
|
|
3593
|
+
<a id="wc-product-comparison"></a>
|
|
3594
|
+
|
|
3595
|
+
## `hb-product-comparison` — product comparison
|
|
3596
|
+
|
|
3597
|
+
**Category:** commerce
|
|
3598
|
+
**Tags:** commerce, product
|
|
3599
|
+
|
|
3600
|
+
### What it does
|
|
3601
|
+
|
|
3602
|
+
Product comparison matrix: columns per product (model, description, promotion, price, purchase button) and rows per feature header with icons or text from each product’s characteristics. Supports preferred product and sale styling; dispatches `purchaseClick` with product id. Desktop table vs stacked mobile layout.
|
|
3603
|
+
|
|
3604
|
+
### Custom element
|
|
3605
|
+
|
|
3606
|
+
`hb-product-comparison`
|
|
3607
|
+
|
|
3608
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3609
|
+
|
|
3610
|
+
- `id`, `style` (optional): strings.
|
|
3611
|
+
- `headers` (required): JSON string — `{ id; label }[]` feature rows.
|
|
3612
|
+
- `products` (required): JSON string — `Product[]` (`id`, `model`, `price`, `characteristics` map, optional `description`, `note`, `promotion`, `columnColor`).
|
|
3613
|
+
- `options` (required): JSON string — `Options` (`currency`, optional `preferredProductId`).
|
|
3614
|
+
|
|
3615
|
+
### Events
|
|
3616
|
+
|
|
3617
|
+
- `purchaseClick`: `{ id: string }` — product id for checkout handoff.
|
|
3618
|
+
|
|
3619
|
+
### Usage notes
|
|
3620
|
+
|
|
3621
|
+
- **CSS parts:** `container`, `col`, `row`.
|
|
3622
|
+
- Characteristic values drive per-cell visuals (`valid`, `disabled`, `blocked`, etc. per examples in `extra/docs.ts`).
|
|
3623
|
+
|
|
3624
|
+
### Minimal HTML example
|
|
3625
|
+
|
|
3626
|
+
```html
|
|
3627
|
+
<hb-product-comparison
|
|
3628
|
+
headers='[{"id":"f1","label":"Feature 1"}]'
|
|
3629
|
+
products='[{"id":"p1","model":"Basic","price":10,"characteristics":{"f1":"valid"}}]'
|
|
3630
|
+
options='{"currency":"€"}'
|
|
3631
|
+
></hb-product-comparison>
|
|
3632
|
+
```
|
|
3633
|
+
|
|
3634
|
+
---
|
|
3635
|
+
|
|
3636
|
+
<a id="wc-range-slider"></a>
|
|
3637
|
+
|
|
3638
|
+
## `hb-range-slider` — range slider
|
|
3639
|
+
|
|
3640
|
+
**Category:** inputs
|
|
3641
|
+
**Tags:** inputs, slider
|
|
3642
|
+
|
|
3643
|
+
### What it does
|
|
3644
|
+
|
|
3645
|
+
Dual-handle range slider mapping a min–max domain to thumb positions, with optional value bubbles and a third handle for a single marker position; emits `changeRangeValues` with real and percentage values on change.
|
|
3646
|
+
|
|
3647
|
+
### Custom element
|
|
3648
|
+
|
|
3649
|
+
`hb-range-slider`
|
|
3650
|
+
|
|
3651
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3652
|
+
|
|
3653
|
+
- `id`, `style` (optional): strings.
|
|
3654
|
+
- `min`, `max` (optional): numbers as strings — domain bounds.
|
|
3655
|
+
- `minval`, `maxval` (optional): numbers as strings — selected range endpoints.
|
|
3656
|
+
- `position_value` (optional): number as string — marker handle value.
|
|
3657
|
+
- `withbubbles` (optional): boolean string — show value bubbles.
|
|
3658
|
+
|
|
3659
|
+
### Events
|
|
3660
|
+
|
|
3661
|
+
- `changeRangeValues`: `{ minValue; maxValue; minPercent; maxPercent; positionPercent; positionValReal }`.
|
|
3662
|
+
|
|
3663
|
+
### Usage notes
|
|
3664
|
+
|
|
3665
|
+
- **CSS variables:** `--hb-slider-background-color`.
|
|
3666
|
+
- **CSS parts:** `inverse`, `the-range`, `the-thumb`, `sign`.
|
|
3667
|
+
|
|
3668
|
+
### Minimal HTML example
|
|
3669
|
+
|
|
3670
|
+
```html
|
|
3671
|
+
<hb-range-slider min="0" max="100" minval="20" maxval="80" withbubbles="true"></hb-range-slider>
|
|
3672
|
+
```
|
|
3673
|
+
|
|
3674
|
+
---
|
|
3675
|
+
|
|
3676
|
+
<a id="wc-searchbar"></a>
|
|
3677
|
+
|
|
3678
|
+
## `hb-searchbar` — searchbar
|
|
3679
|
+
|
|
3680
|
+
**Category:** utilities
|
|
3681
|
+
**Tags:** utilities, search
|
|
3682
|
+
|
|
3683
|
+
### What it does
|
|
3684
|
+
|
|
3685
|
+
Search field with optional dropdown `searchlist` (id, text, icons, badges, tags, URLs). Configure `value`, `searchlabel`, `textarea`, `minlength`, `disable_preview`, and CSS parts for the input and menu. Dispatches `search` and `clear`.
|
|
3686
|
+
|
|
3687
|
+
### Custom element
|
|
3688
|
+
|
|
3689
|
+
`hb-searchbar`
|
|
3690
|
+
|
|
3691
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3692
|
+
|
|
3693
|
+
- `id`, `style` (optional): strings.
|
|
3694
|
+
- `value` (required): string — current query text.
|
|
3695
|
+
- `searchlabel` (optional): string — button / field label.
|
|
3696
|
+
- `minlength` (optional): number as string.
|
|
3697
|
+
- `searchlist` (optional): JSON string — `TSearchListItem[]` (`id`, `text`, optional `url`, `icon`, `tags`, `badge`, `number_of_results`, `fixed`).
|
|
3698
|
+
- `input_info` (optional): JSON string — single `TSearchListItem` for input adornment.
|
|
3699
|
+
- `textarea` (optional): `"yes"` | `"true"` | `""` — multiline input mode.
|
|
3700
|
+
- `disable_preview` (optional): `"yes"` | `"no"` | `"true"` | `"false"` | `"on"` | `"off"`.
|
|
3701
|
+
|
|
3702
|
+
### Events
|
|
3703
|
+
|
|
3704
|
+
- `search`: `{ input: string; by: "button" | "input" | "searchlist" }`.
|
|
3705
|
+
- `clear`: `{ id: string }`.
|
|
3706
|
+
|
|
3707
|
+
### Usage notes
|
|
3708
|
+
|
|
3709
|
+
- **CSS parts:** `dropdown-menu`, `search-input`.
|
|
3710
|
+
- Storybook may list `initial_value`; runtime props follow `webcomponent.type.d.ts` (`value` is required).
|
|
3711
|
+
|
|
3712
|
+
### Minimal HTML example
|
|
3713
|
+
|
|
3714
|
+
```html
|
|
3715
|
+
<hb-searchbar
|
|
3716
|
+
value=""
|
|
3717
|
+
searchlabel="Search"
|
|
3718
|
+
searchlist='[{"id":"1","text":"Suggestion"}]'
|
|
3719
|
+
></hb-searchbar>
|
|
3720
|
+
```
|
|
3721
|
+
|
|
3722
|
+
---
|
|
3723
|
+
|
|
3724
|
+
<a id="wc-shop-item-cell"></a>
|
|
3725
|
+
|
|
3726
|
+
## `hb-shop-item-cell` — shop item cell
|
|
3727
|
+
|
|
3728
|
+
**Category:** commerce
|
|
3729
|
+
**Tags:** commerce, product
|
|
3730
|
+
|
|
3731
|
+
### What it does
|
|
3732
|
+
|
|
3733
|
+
Vertical shop product card: top image with optional badge, then the same body as `hb-shop-item-row` (title, subtitle, text, stars, reviews, prices, footer) with Bootstrap card styling and matching slots.
|
|
3734
|
+
|
|
3735
|
+
### Custom element
|
|
3736
|
+
|
|
3737
|
+
`hb-shop-item-cell`
|
|
3738
|
+
|
|
3739
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3740
|
+
|
|
3741
|
+
- `id`, `style` (optional): strings.
|
|
3742
|
+
- `img`, `url`, `badge`, `title`, `subtitle`, `text`, `reviews`, `reviewsurl`, `price`, `regularprice`, `footer` (required in types): strings (use `""` when empty).
|
|
3743
|
+
- `rating`, `ratingscale` (required): numbers as strings.
|
|
3744
|
+
|
|
3745
|
+
### Events
|
|
3746
|
+
|
|
3747
|
+
None declared.
|
|
3748
|
+
|
|
3749
|
+
### Usage notes
|
|
3750
|
+
|
|
3751
|
+
- **Slots:** `badge`, `title`, `subtitle`, `text`, `reviews`, `price`, `footer`, `regularprice`.
|
|
3752
|
+
- Mirror `hb-shop-item-row` content model for consistent catalog UI.
|
|
3753
|
+
|
|
3754
|
+
### Minimal HTML example
|
|
3755
|
+
|
|
3756
|
+
```html
|
|
3757
|
+
<hb-shop-item-cell
|
|
3758
|
+
img="https://placehold.co/120"
|
|
3759
|
+
url="/p/1"
|
|
3760
|
+
badge=""
|
|
3761
|
+
title="Product"
|
|
3762
|
+
subtitle="Short line"
|
|
3763
|
+
text="Description"
|
|
3764
|
+
rating="4"
|
|
3765
|
+
ratingscale="5"
|
|
3766
|
+
reviews="12 reviews"
|
|
3767
|
+
reviewsurl="/p/1#reviews"
|
|
3768
|
+
price="€19"
|
|
3769
|
+
regularprice=""
|
|
3770
|
+
footer=""
|
|
3771
|
+
></hb-shop-item-cell>
|
|
3772
|
+
```
|
|
3773
|
+
|
|
3774
|
+
---
|
|
3775
|
+
|
|
3776
|
+
<a id="wc-shop-item-row"></a>
|
|
3777
|
+
|
|
3778
|
+
## `hb-shop-item-row` — shop item row
|
|
3779
|
+
|
|
3780
|
+
**Category:** commerce
|
|
3781
|
+
**Tags:** commerce, product
|
|
3782
|
+
|
|
3783
|
+
### What it does
|
|
3784
|
+
|
|
3785
|
+
Horizontal shop product card: image with optional badge, linked title and metadata, description, star rating scale with numeric rating and reviews link, current and strikethrough prices, and optional footer—all overridable via named slots.
|
|
3786
|
+
|
|
3787
|
+
### Custom element
|
|
3788
|
+
|
|
3789
|
+
`hb-shop-item-row`
|
|
3790
|
+
|
|
3791
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3792
|
+
|
|
3793
|
+
- `id`, `style` (optional): strings.
|
|
3794
|
+
- `img`, `url`, `badge`, `title`, `subtitle`, `text`, `reviews`, `reviewsurl`, `price`, `regularprice`, `footer` (required in types): strings.
|
|
3795
|
+
- `rating`, `ratingscale` (required): numbers as strings.
|
|
3796
|
+
|
|
3797
|
+
### Events
|
|
3798
|
+
|
|
3799
|
+
None declared.
|
|
3800
|
+
|
|
3801
|
+
### Usage notes
|
|
3802
|
+
|
|
3803
|
+
- **Slots:** `badge`, `title`, `subtitle`, `text`, `reviews`, `price`, `footer`, `regularprice`.
|
|
3804
|
+
- Storybook exposes `action` for demos only; it is not on the `Component` type.
|
|
3805
|
+
|
|
3806
|
+
### Minimal HTML example
|
|
3807
|
+
|
|
3808
|
+
```html
|
|
3809
|
+
<hb-shop-item-row
|
|
3810
|
+
img="https://placehold.co/96"
|
|
3811
|
+
url="/p/1"
|
|
3812
|
+
badge="New"
|
|
3813
|
+
title="Product"
|
|
3814
|
+
subtitle="Vendor"
|
|
3815
|
+
text="One line pitch."
|
|
3816
|
+
rating="5"
|
|
3817
|
+
ratingscale="5"
|
|
3818
|
+
reviews="3"
|
|
3819
|
+
reviewsurl="/p/1#reviews"
|
|
3820
|
+
price="€9"
|
|
3821
|
+
regularprice="€12"
|
|
3822
|
+
footer=""
|
|
3823
|
+
></hb-shop-item-row>
|
|
3824
|
+
```
|
|
3825
|
+
|
|
3826
|
+
---
|
|
3827
|
+
|
|
3828
|
+
<a id="wc-sidebar-cards-navigator"></a>
|
|
3829
|
+
|
|
3830
|
+
## `hb-sidebar-cards-navigator` — sidebar cards navigator
|
|
3831
|
+
|
|
3832
|
+
**Category:** layout
|
|
3833
|
+
**Tags:** layout, navigation
|
|
3834
|
+
|
|
3835
|
+
### What it does
|
|
3836
|
+
|
|
3837
|
+
Stacked sidebar navigator: picks an active panel from JSON `panels` (main or first without parent), shows `hb-navbar` with back when `parentPanelId` exists, then cards of rows rendered as `hb-sidenav-button`. Emits `itemClick` with panel, card and row context; rows can switch panels via `switchToPanelId`.
|
|
3838
|
+
|
|
3839
|
+
### Custom element
|
|
3840
|
+
|
|
3841
|
+
`hb-sidebar-cards-navigator`
|
|
3842
|
+
|
|
3843
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3844
|
+
|
|
3845
|
+
- `id`, `style` (optional): strings.
|
|
3846
|
+
- `panels` (optional): JSON string — `Panel[]` (`id`, optional `title`, `parentPanelId`, `cards` with `rows` of `CardRow`: `key`, `text`, optional `bootstrapIcon`, `switchToPanelId`, `type`, `badge`, etc.).
|
|
3847
|
+
|
|
3848
|
+
### Events
|
|
3849
|
+
|
|
3850
|
+
- `itemClick`: detail matches selected row context (panel, card, row, `id`) as built in `component.wc.svelte` — see types `CardRowSelected` in `webcomponent.type.d.ts`.
|
|
3851
|
+
|
|
3852
|
+
### Usage notes
|
|
3853
|
+
|
|
3854
|
+
- **Slots:** `skelcontent`.
|
|
3855
|
+
- **CSS parts:** `testpart`.
|
|
3856
|
+
- Type file lists a nested `event.itemClick` shape; the element dispatches the event name `itemClick` at the top level.
|
|
3857
|
+
|
|
3858
|
+
### Minimal HTML example
|
|
3859
|
+
|
|
3860
|
+
```html
|
|
3861
|
+
<hb-sidebar-cards-navigator
|
|
3862
|
+
panels='[{"id":"1","title":"Home","cards":[{"id":"c1","rows":[{"key":"a","text":"Item","bootstrapIcon":"house-door"}]}]}]'
|
|
3863
|
+
></hb-sidebar-cards-navigator>
|
|
3864
|
+
```
|
|
3865
|
+
|
|
3866
|
+
---
|
|
3867
|
+
|
|
3868
|
+
<a id="wc-sidebar-desktop"></a>
|
|
3869
|
+
|
|
3870
|
+
## `hb-sidebar-desktop` — sidebar desktop
|
|
3871
|
+
|
|
3872
|
+
**Category:** layout
|
|
3873
|
+
**Tags:** layout, navigation
|
|
3874
|
+
|
|
3875
|
+
### What it does
|
|
3876
|
+
|
|
3877
|
+
Fixed-width desktop sidebar: optional company logo and title, header/footer slots, and a pill nav list built from `hb-sidenav-link` entries with optional JSON groups. Parses `navlinks` and `groups` from strings; emits `pageChange` when a link selects a page.
|
|
3878
|
+
|
|
3879
|
+
### Custom element
|
|
3880
|
+
|
|
3881
|
+
`hb-sidebar-desktop`
|
|
3882
|
+
|
|
3883
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3884
|
+
|
|
3885
|
+
- `id`, `style` (optional): strings.
|
|
3886
|
+
- `companylogouri`, `companytitle` (optional): strings.
|
|
3887
|
+
- `groups` (optional): JSON string — `{ key; label }[]`.
|
|
3888
|
+
- `enablefooter` (optional): boolean string.
|
|
3889
|
+
- `navpage` (optional): string — active page key.
|
|
3890
|
+
- `navlinks` (optional): JSON string — `INavLink[]` for `hb-sidenav-link`.
|
|
3891
|
+
- `cookielawallowdecline`, `cookielawlanguage`, `cookielawuri4more` (optional): strings for cookie banner integration.
|
|
3892
|
+
- `onescreen` (optional): `"yes"` | `"no"` | empty — layout mode flag.
|
|
3893
|
+
|
|
3894
|
+
### Events
|
|
3895
|
+
|
|
3896
|
+
- `pageChange`: `{ page: string }`.
|
|
3897
|
+
|
|
3898
|
+
### Usage notes
|
|
3899
|
+
|
|
3900
|
+
- **Slots:** `test`, `header`, `footer`.
|
|
3901
|
+
- **CSS parts:** `header`.
|
|
3902
|
+
- **CSS variables:** `--bs-primary`.
|
|
3903
|
+
- Matches the navigation model used inside `hb-offcanvas`.
|
|
3904
|
+
|
|
3905
|
+
### Minimal HTML example
|
|
3906
|
+
|
|
3907
|
+
```html
|
|
3908
|
+
<hb-sidebar-desktop
|
|
3909
|
+
companytitle="Acme"
|
|
3910
|
+
navpage="home"
|
|
3911
|
+
navlinks='[{"label":"Home","key":"home","icon":"house-door"}]'
|
|
3912
|
+
></hb-sidebar-desktop>
|
|
3913
|
+
```
|
|
3914
|
+
|
|
3915
|
+
---
|
|
3916
|
+
|
|
3917
|
+
<a id="wc-sidenav-button"></a>
|
|
3918
|
+
|
|
3919
|
+
## `hb-sidenav-button` — sidenav button
|
|
3920
|
+
|
|
3921
|
+
**Category:** layout
|
|
3922
|
+
**Tags:** layout, navigation
|
|
3923
|
+
|
|
3924
|
+
### What it does
|
|
3925
|
+
|
|
3926
|
+
Compact sidebar row as a nav button: optional Bootstrap icon, badge, or visual types (`switch`, `checkbox`, `radio`) from `navlink` JSON; dispatches `pageChange` with the row `key` on click. Used by `hb-sidebar-cards-navigator` and similar stacked menus.
|
|
3927
|
+
|
|
3928
|
+
### Custom element
|
|
3929
|
+
|
|
3930
|
+
`hb-sidenav-button`
|
|
3931
|
+
|
|
3932
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3933
|
+
|
|
3934
|
+
- `id`, `style` (optional): strings.
|
|
3935
|
+
- `navlink` (required): JSON string — `INavLink` (`key`, `text`, optional `bootstrapIcon`, `badge`, `value`, `type`, `selected`).
|
|
3936
|
+
|
|
3937
|
+
### Events
|
|
3938
|
+
|
|
3939
|
+
- `pageChange`: `{ page: string }` — typically the link `key`.
|
|
3940
|
+
|
|
3941
|
+
### Usage notes
|
|
3942
|
+
|
|
3943
|
+
- **CSS parts:** `li`.
|
|
3944
|
+
- **CSS variables:** `--bs-primary`.
|
|
3945
|
+
- Storybook `nav_type` is a control helper; the shape lives on `navlink.type`.
|
|
3946
|
+
|
|
3947
|
+
### Minimal HTML example
|
|
3948
|
+
|
|
3949
|
+
```html
|
|
3950
|
+
<hb-sidenav-button
|
|
3951
|
+
navlink='{"text":"Home","key":"home","bootstrapIcon":"house-door"}'
|
|
3952
|
+
></hb-sidenav-button>
|
|
3953
|
+
```
|
|
3954
|
+
|
|
3955
|
+
---
|
|
3956
|
+
|
|
3957
|
+
<a id="wc-sidenav-link"></a>
|
|
3958
|
+
|
|
3959
|
+
## `hb-sidenav-link` — sidenav link
|
|
3960
|
+
|
|
3961
|
+
**Category:** layout
|
|
3962
|
+
**Tags:** layout, navigation
|
|
3963
|
+
|
|
3964
|
+
### What it does
|
|
3965
|
+
|
|
3966
|
+
Sidebar nav item: Bootstrap icon, label, optional badge, and either a flat link that dispatches `pageChange` on click or an expandable group of `subLinks` with active state when `navpage` or `selected` matches. Intended for use inside `hb-sidebar-desktop` lists.
|
|
3967
|
+
|
|
3968
|
+
### Custom element
|
|
3969
|
+
|
|
3970
|
+
`hb-sidenav-link`
|
|
3971
|
+
|
|
3972
|
+
### Attributes (snake_case; use string values in HTML)
|
|
3973
|
+
|
|
3974
|
+
- `id`, `style` (optional): strings.
|
|
3975
|
+
- `navlink` (required): JSON string — `INavLink` (`label`, `key`, optional `icon`, `group`, `badge`, `subLinks`, `active`, `open`).
|
|
3976
|
+
- `navpage` (optional): string — current app page key for active styling.
|
|
3977
|
+
- `selected` (optional): boolean string — force selected appearance.
|
|
3978
|
+
|
|
3979
|
+
### Events
|
|
3980
|
+
|
|
3981
|
+
- `pageChange`: `{ page: string }`.
|
|
3982
|
+
|
|
3983
|
+
### Usage notes
|
|
3984
|
+
|
|
3985
|
+
- **CSS parts:** `li`.
|
|
3986
|
+
- **CSS variables:** `--bs-primary`.
|
|
3987
|
+
- Export type `INavLink` is shared with `hb-offcanvas` / `hb-sidebar-desktop` `navlinks` arrays.
|
|
3988
|
+
|
|
3989
|
+
### Minimal HTML example
|
|
3990
|
+
|
|
3991
|
+
```html
|
|
3992
|
+
<hb-sidenav-link
|
|
3993
|
+
navpage="home"
|
|
3994
|
+
navlink='{"label":"Home","key":"home","icon":"house-door"}'
|
|
3995
|
+
></hb-sidenav-link>
|
|
3996
|
+
```
|
|
3997
|
+
|
|
3998
|
+
---
|
|
3999
|
+
|
|
4000
|
+
<a id="wc-site-contacts-row"></a>
|
|
4001
|
+
|
|
4002
|
+
## `hb-site-contacts-row` — site-contacts-row
|
|
4003
|
+
|
|
4004
|
+
**Category:** content
|
|
4005
|
+
**Tags:** content, contact
|
|
4006
|
+
|
|
4007
|
+
### What it does
|
|
4008
|
+
|
|
4009
|
+
Contact strip for addresses (with optional `latLng`), phones, emails, websites, and `availability` (times, appointment flag). `model` `big` / `small` or omit for auto layouts that adapt to which fields you pass.
|
|
4010
|
+
|
|
4011
|
+
### Custom element
|
|
4012
|
+
|
|
4013
|
+
`hb-site-contacts-row`
|
|
4014
|
+
|
|
4015
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4016
|
+
|
|
4017
|
+
- `id` (optional): string.
|
|
4018
|
+
- `style` (optional): string (inline style).
|
|
4019
|
+
- `availability` (optional): JSON string — `{ icon?, times: string[], title?, appointment? }`.
|
|
4020
|
+
- `addresses` (optional): JSON string — `{ icon?, addresses: Address[], title? }` (`Address`: `address`, optional `latLng`, `link`, `name`).
|
|
4021
|
+
- `phones` (optional): JSON string — `{ icon?, phones: { name?, number }[], title? }`.
|
|
4022
|
+
- `emails` (optional): JSON string — `{ icon?, emails: { label?, address, name? }[], title? }`.
|
|
4023
|
+
- `websites` (optional): JSON string — `{ icon?, websites: { label?, url, name? }[], title? }`.
|
|
4024
|
+
- `model` (optional): `"big"` | `"small"`.
|
|
4025
|
+
|
|
4026
|
+
### Events
|
|
4027
|
+
|
|
4028
|
+
- `event`: `{ test: boolean }` (integration hook per typings).
|
|
4029
|
+
|
|
4030
|
+
### Usage notes
|
|
4031
|
+
|
|
4032
|
+
- No named slots in `extra/docs.ts`. Pass complex blocks as JSON attributes or bind after custom element upgrade.
|
|
4033
|
+
|
|
4034
|
+
### Minimal HTML example
|
|
4035
|
+
|
|
4036
|
+
```html
|
|
4037
|
+
<hb-site-contacts-row
|
|
4038
|
+
model="small"
|
|
4039
|
+
emails='{"emails":[{"label":"Info","address":"info@example.com","name":"main"}]}'
|
|
4040
|
+
></hb-site-contacts-row>
|
|
4041
|
+
```
|
|
4042
|
+
|
|
4043
|
+
---
|
|
4044
|
+
|
|
4045
|
+
<a id="wc-site-paragraph-with-image"></a>
|
|
4046
|
+
|
|
4047
|
+
## `hb-site-paragraph-with-image` — site-paragraph-with-image
|
|
4048
|
+
|
|
4049
|
+
**Category:** content
|
|
4050
|
+
**Tags:** content
|
|
4051
|
+
|
|
4052
|
+
### What it does
|
|
4053
|
+
|
|
4054
|
+
Marketing block pairing an image (`img`: `src`, optional `alt`) with rich text (`text`: optional `title`, `body`, optional `link` with `label` and optional `src`, `key`, colors). Use `text_side` (`left` / `right`) and `half_space` for layout; CSS parts cover mobile and desktop. Fires `elClick` when the link is activated.
|
|
4055
|
+
|
|
4056
|
+
### Custom element
|
|
4057
|
+
|
|
4058
|
+
`hb-site-paragraph-with-image`
|
|
4059
|
+
|
|
4060
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4061
|
+
|
|
4062
|
+
- `id` (optional), `style` (optional): strings.
|
|
4063
|
+
- `img` (required): JSON string — `{ src: string; alt?: string }`.
|
|
4064
|
+
- `text` (required): JSON string — `{ title?, body?, link?: { label; src?; key?; bgColor?; textColor? } }`.
|
|
4065
|
+
- `text_side` (optional): `"left"` | `"right"`.
|
|
4066
|
+
- `half_space` (optional): boolean as string when used from HTML.
|
|
4067
|
+
|
|
4068
|
+
### Events
|
|
4069
|
+
|
|
4070
|
+
- `elClick`: `{ key: string }`.
|
|
4071
|
+
|
|
4072
|
+
### Usage notes
|
|
4073
|
+
|
|
4074
|
+
- **CSS parts:** `mobile_text_content`, `mobile_title`, `mobile_text_body`, `mobile_link_button`, `mobile_image_content`, `image_content`, `text_content`, `link_button`, `title`, `text_body`.
|
|
4075
|
+
- No `htmlSlots` in docs; structure is prop-driven.
|
|
4076
|
+
|
|
4077
|
+
### Minimal HTML example
|
|
4078
|
+
|
|
4079
|
+
```html
|
|
4080
|
+
<hb-site-paragraph-with-image
|
|
4081
|
+
img='{"src":"https://example.com/image.png","alt":"Logo"}'
|
|
4082
|
+
text='{"title":"Heading","body":"Short copy.","link":{"label":"Read more"}}'
|
|
4083
|
+
text_side="right"
|
|
4084
|
+
></hb-site-paragraph-with-image>
|
|
4085
|
+
```
|
|
4086
|
+
|
|
4087
|
+
---
|
|
4088
|
+
|
|
4089
|
+
<a id="wc-site-slideshow"></a>
|
|
4090
|
+
|
|
4091
|
+
## `hb-site-slideshow` — site-slideshow
|
|
4092
|
+
|
|
4093
|
+
**Category:** content
|
|
4094
|
+
**Tags:** content, media
|
|
4095
|
+
|
|
4096
|
+
### What it does
|
|
4097
|
+
|
|
4098
|
+
Full-viewport image slideshow: pass `data` as an array of slides (`href`, optional `caption`). Supports optional `index` and `timer`, dots and captions via CSS parts, and slots `overlay`, `prev`, `next`, `cover_on_images`. Dispatches slide change and hover events.
|
|
4099
|
+
|
|
4100
|
+
### Custom element
|
|
4101
|
+
|
|
4102
|
+
`hb-site-slideshow`
|
|
4103
|
+
|
|
4104
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4105
|
+
|
|
4106
|
+
- `id` (optional), `style` (optional): strings.
|
|
4107
|
+
- `data` (required): JSON string — `{ href: string; caption?; index? }[]`.
|
|
4108
|
+
- `index` (optional): number as string — initial slide.
|
|
4109
|
+
- `timer` (optional): number as string — autoplay interval.
|
|
4110
|
+
|
|
4111
|
+
### Events
|
|
4112
|
+
|
|
4113
|
+
- `changeSlide`: `{ index: number }`.
|
|
4114
|
+
- `onHover`: `{ index: number; hover: boolean }`.
|
|
4115
|
+
|
|
4116
|
+
### Usage notes
|
|
4117
|
+
|
|
4118
|
+
- **CSS parts:** `dot`, `caption_container`, `caption_content`, `cover_on_images`.
|
|
4119
|
+
- **Slots:** `overlay`, `prev`, `next`, `cover_on_images`.
|
|
4120
|
+
- Declared **size** metadata: fullscreen layout.
|
|
4121
|
+
|
|
4122
|
+
### Minimal HTML example
|
|
4123
|
+
|
|
4124
|
+
```html
|
|
4125
|
+
<hb-site-slideshow
|
|
4126
|
+
data='[{"href":"https://example.com/a.jpg","caption":"A"},{"href":"https://example.com/b.jpg","caption":"B"}]'
|
|
4127
|
+
index="0"
|
|
4128
|
+
></hb-site-slideshow>
|
|
4129
|
+
```
|
|
4130
|
+
|
|
4131
|
+
---
|
|
4132
|
+
|
|
4133
|
+
<a id="wc-site-slideshow-horizontal"></a>
|
|
4134
|
+
|
|
4135
|
+
## `hb-site-slideshow-horizontal` — site-slideshow-horizontal
|
|
4136
|
+
|
|
4137
|
+
**Category:** content
|
|
4138
|
+
**Tags:** content, media
|
|
4139
|
+
|
|
4140
|
+
### What it does
|
|
4141
|
+
|
|
4142
|
+
Horizontal media strip: `data` lists slides with `href`, `caption`, and optional `link`, `externalLink`, `key`, or `duration` for video-style rows. Set `type` to `videos` for that layout; optional `slide` index and `size`. Emits `slideClick` when a slide is activated.
|
|
4143
|
+
|
|
4144
|
+
### Custom element
|
|
4145
|
+
|
|
4146
|
+
`hb-site-slideshow-horizontal`
|
|
4147
|
+
|
|
4148
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4149
|
+
|
|
4150
|
+
- `id` (optional), `style` (optional): strings.
|
|
4151
|
+
- `data` (required): JSON string — array of `{ href; caption?; externalLink?; link?; key?; duration?; index? }`.
|
|
4152
|
+
- `type` (optional): `"images"` | `"videos"`.
|
|
4153
|
+
- `slide` (optional): number as string (current slide).
|
|
4154
|
+
- `size` (optional): number as string.
|
|
4155
|
+
|
|
4156
|
+
### Events
|
|
4157
|
+
|
|
4158
|
+
- `slideClick`: `{ key: string }`.
|
|
4159
|
+
|
|
4160
|
+
### Usage notes
|
|
4161
|
+
|
|
4162
|
+
- **CSS parts:** `video_sub_title`, `caption_content` (see `extra/docs.ts` for full list).
|
|
4163
|
+
|
|
4164
|
+
### Minimal HTML example
|
|
4165
|
+
|
|
4166
|
+
```html
|
|
4167
|
+
<hb-site-slideshow-horizontal
|
|
4168
|
+
data='[{"href":"https://placehold.co/600x400","caption":"Slide 1"},{"href":"https://placehold.co/600x401","caption":"Slide 2"}]'
|
|
4169
|
+
></hb-site-slideshow-horizontal>
|
|
4170
|
+
```
|
|
4171
|
+
|
|
4172
|
+
---
|
|
4173
|
+
|
|
4174
|
+
<a id="wc-skeleton-component"></a>
|
|
4175
|
+
|
|
4176
|
+
## `hb-skeleton-component` — skeleton-component
|
|
4177
|
+
|
|
4178
|
+
**Category:** data
|
|
4179
|
+
**Tags:** data, loading
|
|
4180
|
+
|
|
4181
|
+
### What it does
|
|
4182
|
+
|
|
4183
|
+
Development scaffold: accepts arbitrary `json`, `string`, and `boolean` props to test bindings, exposes a `skelcontent` slot and a `testpart` CSS part, and emits a generic `event` for wiring demos.
|
|
4184
|
+
|
|
4185
|
+
### Custom element
|
|
4186
|
+
|
|
4187
|
+
`hb-skeleton-component`
|
|
4188
|
+
|
|
4189
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4190
|
+
|
|
4191
|
+
- `id` (optional), `style` (optional): strings.
|
|
4192
|
+
- `json` (optional): JSON string — any JSON-serializable value.
|
|
4193
|
+
- `string` (required per typings): string.
|
|
4194
|
+
- `boolean` (optional): boolean as string when used from HTML.
|
|
4195
|
+
|
|
4196
|
+
### Events
|
|
4197
|
+
|
|
4198
|
+
- `event`: `{ test: boolean }`.
|
|
4199
|
+
|
|
4200
|
+
### Usage notes
|
|
4201
|
+
|
|
4202
|
+
- **Slot:** `skelcontent`.
|
|
4203
|
+
- **CSS part:** `testpart`.
|
|
4204
|
+
|
|
4205
|
+
### Minimal HTML example
|
|
4206
|
+
|
|
4207
|
+
```html
|
|
4208
|
+
<hb-skeleton-component string="demo" json='{"a":0}' boolean="no"></hb-skeleton-component>
|
|
4209
|
+
```
|
|
4210
|
+
|
|
4211
|
+
---
|
|
4212
|
+
|
|
4213
|
+
<a id="wc-stylus-notebook"></a>
|
|
4214
|
+
|
|
4215
|
+
## `hb-stylus-notebook` — stylus-notebook
|
|
4216
|
+
|
|
4217
|
+
**Category:** inputs
|
|
4218
|
+
**Tags:** inputs, drawing
|
|
4219
|
+
|
|
4220
|
+
### What it does
|
|
4221
|
+
|
|
4222
|
+
Notebook-sized stylus canvas: optional `load_draw` restores saved stroke JSON; `save` configures persistence target (`name`, `type`: pdf/json/png/svg/jpg); `debug` toggles diagnostics (`yes` / `no`). Same `skelcontent` slot and `testpart` CSS part as the skeleton dev component; emits `event` on user actions.
|
|
4223
|
+
|
|
4224
|
+
### Custom element
|
|
4225
|
+
|
|
4226
|
+
`hb-stylus-notebook`
|
|
4227
|
+
|
|
4228
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4229
|
+
|
|
4230
|
+
- `id` (optional), `style` (optional): strings.
|
|
4231
|
+
- `load_draw` (optional): JSON string — saved draw payload (`type`, `draw`, `id`, `draw_id`, `name`, `version`).
|
|
4232
|
+
- `save` (optional): JSON string — `{ name: string; type: "pdf" | "json" | "png" | "svg" | "jpg" }`.
|
|
4233
|
+
- `debug` (optional): `"yes"` | `"no"`.
|
|
4234
|
+
|
|
4235
|
+
### Events
|
|
4236
|
+
|
|
4237
|
+
- `event`: `{ test: boolean }`.
|
|
4238
|
+
|
|
4239
|
+
### Usage notes
|
|
4240
|
+
|
|
4241
|
+
- **Slot:** `skelcontent`.
|
|
4242
|
+
- **CSS part:** `testpart`.
|
|
4243
|
+
- Declared **size** metadata: fullscreen layout.
|
|
4244
|
+
|
|
4245
|
+
### Minimal HTML example
|
|
4246
|
+
|
|
4247
|
+
```html
|
|
4248
|
+
<hb-stylus-notebook debug="no"></hb-stylus-notebook>
|
|
4249
|
+
```
|
|
4250
|
+
|
|
4251
|
+
---
|
|
4252
|
+
|
|
4253
|
+
<a id="wc-stylus-paper"></a>
|
|
4254
|
+
|
|
4255
|
+
## `hb-stylus-paper` — stylus-paper
|
|
4256
|
+
|
|
4257
|
+
**Category:** inputs
|
|
4258
|
+
**Tags:** inputs, drawing
|
|
4259
|
+
|
|
4260
|
+
### What it does
|
|
4261
|
+
|
|
4262
|
+
Freehand drawing surface with modes (`draw`, `eraser`, `select`), brush `options`, `background_color` / `pen_color` / `pen_opacity`, and optional `load_draw`, `insert_image`, or `insert_text`. Supports `save_as`, paper `size`, `view` (zoom/pan locks), `goto` page index, and rich events for strokes, selection, history, save, and asset load.
|
|
4263
|
+
|
|
4264
|
+
### Custom element
|
|
4265
|
+
|
|
4266
|
+
`hb-stylus-paper`
|
|
4267
|
+
|
|
4268
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4269
|
+
|
|
4270
|
+
- `id` (optional), `style` (optional), `draw_id` (optional): strings.
|
|
4271
|
+
- `background_color`, `pen_color` (optional): strings (CSS colors).
|
|
4272
|
+
- `pen_opacity` (optional): number as string.
|
|
4273
|
+
- `mode` (optional): `"eraser"` | `"draw"` | `"select"`.
|
|
4274
|
+
- `debug` (optional): `"yes"` | `"no"`.
|
|
4275
|
+
- `options` (optional): JSON string — brush options (`size`, `thinning`, `smoothing`, `streamline`, `simulatePressure`, etc.).
|
|
4276
|
+
- `load_draw` (optional): JSON string — full save document with `draw`, `size.paperSize`, ids, version.
|
|
4277
|
+
- `save_as` (optional): JSON string — `{ name; type: TSaveType }`.
|
|
4278
|
+
- `insert_image` (optional): JSON string — `{ name; type; uri?; base64? }`.
|
|
4279
|
+
- `insert_text` (optional): JSON string — `{ name; content }`.
|
|
4280
|
+
- `size` (optional): JSON string — paper dimensions / `paperSize` enum.
|
|
4281
|
+
- `view` (optional): JSON string — `{ lockPan; lockZoom; zoom; pan }`.
|
|
4282
|
+
- `goto` (optional): number as string.
|
|
4283
|
+
|
|
4284
|
+
### Events
|
|
4285
|
+
|
|
4286
|
+
- `beginStroke`, `startStroke`, `endStroke`: stroke lifecycle with ids, timestamps, geometry, and `draw_id`.
|
|
4287
|
+
- `selection`: bounding box and selected strokes.
|
|
4288
|
+
- `historyIndex`, `changeIndex`: undo/redo index changes.
|
|
4289
|
+
- `save`: full `TSave` payload.
|
|
4290
|
+
- `drawLoaded`, `imageLoaded`, `txtLoaded`: load outcomes.
|
|
4291
|
+
|
|
4292
|
+
### Usage notes
|
|
4293
|
+
|
|
4294
|
+
- No slots or CSS parts in `extra/docs.ts` for this component.
|
|
4295
|
+
- Declared **size** metadata: fullscreen layout.
|
|
4296
|
+
|
|
4297
|
+
### Minimal HTML example
|
|
4298
|
+
|
|
4299
|
+
```html
|
|
4300
|
+
<hb-stylus-paper mode="draw" pen_color="rgb(0,0,0)" debug="no"></hb-stylus-paper>
|
|
4301
|
+
```
|
|
4302
|
+
|
|
4303
|
+
---
|
|
4304
|
+
|
|
4305
|
+
<a id="wc-table"></a>
|
|
4306
|
+
|
|
4307
|
+
## `hb-table` — table
|
|
4308
|
+
|
|
4309
|
+
**Category:** data
|
|
4310
|
+
**Tags:** data, table
|
|
4311
|
+
|
|
4312
|
+
### What it does
|
|
4313
|
+
|
|
4314
|
+
Bootstrap-striped data table driven by JSON `headers` and `rows` (`_id` required): column sort, header search (text, enum, date range), formatted values (nested keys, datetime via dayjs), copy-to-clipboard, row highlight and `selectrow` clicks. Global `actions` and per-row `_actions` can open confirm or schema dialogs (`hb-dialog` / `hb-dialogform`). Optional multi-select with `selectactions`, `add_item` slot, and `hb-paginate` for page size, sort sync, and server-style `externalfilter` / `total` workflows. i18n via `i18nlang`.
|
|
4315
|
+
|
|
4316
|
+
### Custom element
|
|
4317
|
+
|
|
4318
|
+
`hb-table`
|
|
4319
|
+
|
|
4320
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4321
|
+
|
|
4322
|
+
- `id` (optional), `style` (optional): strings.
|
|
4323
|
+
- `rows` (required): JSON string — row objects with `_id` and column keys; optional `_actions`, `_evidenced`.
|
|
4324
|
+
- `headers` (required): JSON string — `ITableHeader[]` (`label`, `key`, optional `type`, `format`, `search`, `click`, `select`, `nosort`, `sortBy`, `truncateAt`, `copyTxt`, `tooltip`).
|
|
4325
|
+
- `actions` (optional): JSON string — global `IActionButton[]`.
|
|
4326
|
+
- `selectactions` (optional): JSON string.
|
|
4327
|
+
- `selectrow`, `enableselect`, `selected` (optional): strings (selection mode / ids).
|
|
4328
|
+
- `size`, `page`, `pages`, `total` (optional): numbers as strings for pagination / server totals.
|
|
4329
|
+
- `externalfilter` (optional): boolean string — host-driven filters.
|
|
4330
|
+
- `disablepagination` (optional): boolean string.
|
|
4331
|
+
- `add_item` (optional): boolean string — show add row UI.
|
|
4332
|
+
- `i18nlang` (optional): string (`it`, `en`, … per registered i18n).
|
|
4333
|
+
- `page_size_type` (optional): `"number"` | `"select"`.
|
|
4334
|
+
- `page_size_options` (optional): comma-separated sizes, e.g. `"10,25,50,100"`.
|
|
4335
|
+
- `sort_default` (optional): string — column key for initial sort.
|
|
4336
|
+
- `sort_default_label` (optional): string — label for default sort option.
|
|
4337
|
+
- `disable_paginate_sort` (optional): boolean string.
|
|
4338
|
+
- `sort_strict_direction` (optional): boolean string.
|
|
4339
|
+
- `sort_direction` (optional): string — current sort direction.
|
|
4340
|
+
|
|
4341
|
+
### Events
|
|
4342
|
+
|
|
4343
|
+
- `pageChange`: `{ page; pages }`.
|
|
4344
|
+
- `changePageSize`: `{ page_size: number }`.
|
|
4345
|
+
- `removeFilter`: `{ key: string }`.
|
|
4346
|
+
- `changeFilter`: `{ filter: IFilter }`.
|
|
4347
|
+
- `tableCustomActionClick` / `tableaction`: `{ itemId; action }`.
|
|
4348
|
+
- `cellclick`: `{ rowId; cellId }`.
|
|
4349
|
+
- `actiononselected`: `{ key; selectedItems: string[] }`.
|
|
4350
|
+
- `clickonrow`: `{ itemId }`.
|
|
4351
|
+
- `changeSort`: `{ sortedBy; sortedDirection }`.
|
|
4352
|
+
- `showConfirmModal` / `showConfirmModalForm`: modal visibility payloads with `action` and `detail: { id; show }`.
|
|
4353
|
+
- `confirmActionModal` / `confirmActionModalForm`: `{ action; id; confirm }`.
|
|
4354
|
+
- `clipboardCopyText`: `{ text: string }`.
|
|
4355
|
+
- `addItem`: `{ id: string }`.
|
|
4356
|
+
|
|
4357
|
+
### Usage notes
|
|
4358
|
+
|
|
4359
|
+
- **Slots:** `add-button-content`, `buttons-container`.
|
|
4360
|
+
- **CSS parts:** `table`, `table-actions`, `selected-row`, `common-row`.
|
|
4361
|
+
- **i18n:** italian and english in docs metadata; set `i18nlang` accordingly.
|
|
4362
|
+
- Pair with `hb-paginate` / dialogs as in Storybook examples in `extra/docs.ts`.
|
|
4363
|
+
|
|
4364
|
+
### Minimal HTML example
|
|
4365
|
+
|
|
4366
|
+
```html
|
|
4367
|
+
<hb-table
|
|
4368
|
+
headers='[{"label":"Title","key":"title","type":"string"},{"label":"When","key":"time","type":"datetime"}]'
|
|
4369
|
+
rows='[{"_id":"1","title":"Row A","time":"2024-01-01T12:00:00.000Z"}]'
|
|
4370
|
+
page="1"
|
|
4371
|
+
pages="1"
|
|
4372
|
+
></hb-table>
|
|
4373
|
+
```
|
|
4374
|
+
|
|
4375
|
+
---
|
|
4376
|
+
|
|
4377
|
+
<a id="wc-terms-doc-templates"></a>
|
|
4378
|
+
|
|
4379
|
+
## `hb-terms-doc-templates` — terms-doc-templates
|
|
4380
|
+
|
|
4381
|
+
**Category:** content
|
|
4382
|
+
**Tags:** content, compliance
|
|
4383
|
+
|
|
4384
|
+
### What it does
|
|
4385
|
+
|
|
4386
|
+
Renders legal-style documents from `data`: privacy templates with site, company, admin, and collected-data fields, or cookie policies with a `cookies` list. Use `i18nlang` with registered languages (`it`, `en`) for localized copy; emits `event` for integrations. Includes `skelcontent` slot and `testpart` CSS part (scaffold-style hooks).
|
|
4387
|
+
|
|
4388
|
+
### Custom element
|
|
4389
|
+
|
|
4390
|
+
`hb-terms-doc-templates`
|
|
4391
|
+
|
|
4392
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4393
|
+
|
|
4394
|
+
- `id` (optional), `style` (optional): strings.
|
|
4395
|
+
- `i18nlang` (optional): string — e.g. `it`, `en`.
|
|
4396
|
+
- `data` (required): JSON string — `ITPrivacy` or `CookieContent` shape (see `types/webcomponent.type.d.ts`).
|
|
4397
|
+
|
|
4398
|
+
### Events
|
|
4399
|
+
|
|
4400
|
+
- `event`: `{ test: boolean }`.
|
|
4401
|
+
|
|
4402
|
+
### Usage notes
|
|
4403
|
+
|
|
4404
|
+
- **Slot:** `skelcontent`.
|
|
4405
|
+
- **CSS part:** `testpart`.
|
|
4406
|
+
- Large **`data`** payloads should be JSON strings in HTML.
|
|
4407
|
+
|
|
4408
|
+
### Minimal HTML example
|
|
4409
|
+
|
|
4410
|
+
```html
|
|
4411
|
+
<hb-terms-doc-templates
|
|
4412
|
+
i18nlang="en"
|
|
4413
|
+
data='{"id":"cookie-doc-english","site":{"name":"Example","url":"https://example.com","privacyPolicyUri":"https://example.com/privacy","cookiePolicyUri":"https://example.com/cookies"},"company":{"name":"Co","address":"1 St"},"cookies":[]}'
|
|
4414
|
+
></hb-terms-doc-templates>
|
|
4415
|
+
```
|
|
4416
|
+
|
|
4417
|
+
---
|
|
4418
|
+
|
|
4419
|
+
<a id="wc-toast"></a>
|
|
4420
|
+
|
|
4421
|
+
## `hb-toast` — toast
|
|
4422
|
+
|
|
4423
|
+
**Category:** overlays
|
|
4424
|
+
**Tags:** overlays, notifications
|
|
4425
|
+
|
|
4426
|
+
### What it does
|
|
4427
|
+
|
|
4428
|
+
Bootstrap-styled toast: `show` (`yes` / `no`), `title`, `content`, optional `img`, `small`, `level`, `position`, `timeout`, string `progress` for a progress bar, and `buttons` for actions. Slots customize header and body; dispatches visibility and button `action` events. Theme aligns with Bootstrap CSS variables in docs.
|
|
4429
|
+
|
|
4430
|
+
### Custom element
|
|
4431
|
+
|
|
4432
|
+
`hb-toast`
|
|
4433
|
+
|
|
4434
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4435
|
+
|
|
4436
|
+
- `id` (optional), `style` (optional): strings.
|
|
4437
|
+
- `show` (required): `"yes"` | `"no"`.
|
|
4438
|
+
- `title` (required), `content` (required), `img` (required per typings): strings (`img` may be URL or data URI).
|
|
4439
|
+
- `small` (optional): string (e.g. timestamp line).
|
|
4440
|
+
- `level` (optional): `"primary"` | `"secondary"` | `"success"` | `"danger"` | `"warning"` | `"info"` | `"light"` | `"dark"`.
|
|
4441
|
+
- `position` (optional): `"top-left"` | `"top-center"` | `"top-right"` | `"bottom-left"` | `"bottom-center"` | `"bottom-right"`.
|
|
4442
|
+
- `timeout` (optional): number or string — auto-hide ms.
|
|
4443
|
+
- `progress` (optional): string — progress bar value/label semantics per Storybook.
|
|
4444
|
+
- `buttons` (optional): JSON string — `TToastButton[]` (`type` confirm/cancel, optional `action`, `text`, `icon`, colors).
|
|
4445
|
+
|
|
4446
|
+
### Events
|
|
4447
|
+
|
|
4448
|
+
- `changeVisibility`: `{ id: string; show: boolean; disappear?: boolean }`.
|
|
4449
|
+
- `action`: `{ id: string; action?: string }`.
|
|
4450
|
+
|
|
4451
|
+
### Usage notes
|
|
4452
|
+
|
|
4453
|
+
- **Slots:** `header_img`, `header_strong`, `header_small`, `body`.
|
|
4454
|
+
- **CSS vars** in docs reference Bootstrap semantic colors.
|
|
4455
|
+
|
|
4456
|
+
### Minimal HTML example
|
|
4457
|
+
|
|
4458
|
+
```html
|
|
4459
|
+
<hb-toast
|
|
4460
|
+
show="yes"
|
|
4461
|
+
title="Notice"
|
|
4462
|
+
content="Hello, world!"
|
|
4463
|
+
img="https://via.placeholder.com/64"
|
|
4464
|
+
level="primary"
|
|
4465
|
+
></hb-toast>
|
|
4466
|
+
```
|
|
4467
|
+
|
|
4468
|
+
---
|
|
4469
|
+
|
|
4470
|
+
<a id="wc-tooltip"></a>
|
|
4471
|
+
|
|
4472
|
+
## `hb-tooltip` — tooltip
|
|
4473
|
+
|
|
4474
|
+
**Category:** overlays
|
|
4475
|
+
**Tags:** overlays, tooltip
|
|
4476
|
+
|
|
4477
|
+
### What it does
|
|
4478
|
+
|
|
4479
|
+
Wrapper that adds a Bootstrap tooltip around slotted content. Configure via `tooltip` object: `title`, optional `description`, `placement`, `html`, `delay`, `trigger`, `style`, `maxWidth`, etc. Optional `show` can drive visibility; emits `visualizationChange` when the tooltip opens or closes.
|
|
4480
|
+
|
|
4481
|
+
### Custom element
|
|
4482
|
+
|
|
4483
|
+
`hb-tooltip`
|
|
4484
|
+
|
|
4485
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4486
|
+
|
|
4487
|
+
- `id` (optional), `style` (optional): strings.
|
|
4488
|
+
- `tooltip` (optional): JSON string — `TTooltip` (`title`, `description?`, `placement?`, `html?`, `animation?`, `delay?`, `trigger?`, `customClass?`, `offset?`, `style?`, `maxWidth?`, `maxHeight?`) or plain string title per typings.
|
|
4489
|
+
- `show` (optional): boolean as string when used from HTML.
|
|
4490
|
+
|
|
4491
|
+
### Events
|
|
4492
|
+
|
|
4493
|
+
- `visualizationChange`: `{ id: string; show: boolean }`.
|
|
4494
|
+
|
|
4495
|
+
### Usage notes
|
|
4496
|
+
|
|
4497
|
+
- **Slot:** `default` — element(s) to wrap with the tooltip.
|
|
4498
|
+
|
|
4499
|
+
### Minimal HTML example
|
|
4500
|
+
|
|
4501
|
+
```html
|
|
4502
|
+
<hb-tooltip tooltip='{"title":"Help text","placement":"bottom"}'>
|
|
4503
|
+
<button type="button">Hover me</button>
|
|
4504
|
+
</hb-tooltip>
|
|
4505
|
+
```
|
|
4506
|
+
|
|
4507
|
+
---
|
|
4508
|
+
|
|
4509
|
+
<a id="wc-uploader"></a>
|
|
4510
|
+
|
|
4511
|
+
## `hb-uploader` — uploader
|
|
4512
|
+
|
|
4513
|
+
**Category:** utilities
|
|
4514
|
+
**Tags:** utilities, files
|
|
4515
|
+
|
|
4516
|
+
### What it does
|
|
4517
|
+
|
|
4518
|
+
Upload progress UI driven by `fetch_data` (`url`, `data`, optional `method`, `headers`): wraps `hb-dialog`, shows striped progress while starting, then byte progress via axios `onUploadProgress`. Optional `upload_id` identifies the nested dialog; `title` slot labels the dialog. Forwards dialog `modalShow` and emits `uploadComplete` / `uploadError` when the request finishes or fails.
|
|
4519
|
+
|
|
4520
|
+
### Custom element
|
|
4521
|
+
|
|
4522
|
+
`hb-uploader`
|
|
4523
|
+
|
|
4524
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4525
|
+
|
|
4526
|
+
- `id` (optional), `style` (optional): strings.
|
|
4527
|
+
- `upload_id` (optional): string — dialog id (defaults from `id` + `_dialog` in component).
|
|
4528
|
+
- `fetch_data` (optional): JSON string — `{ url: string; data: any; method?; headers? }`.
|
|
4529
|
+
|
|
4530
|
+
### Events
|
|
4531
|
+
|
|
4532
|
+
- `uploadError`: `{ completed: boolean; id: string; error: Error }`.
|
|
4533
|
+
- `uploadComplete`: `{ completed: boolean; id: string }`.
|
|
4534
|
+
- `modalShow`: forwarded from `hb-dialog` — `{ id: string; show: true }` (see dialog typings).
|
|
4535
|
+
|
|
4536
|
+
### Usage notes
|
|
4537
|
+
|
|
4538
|
+
- **Slot:** `title` — dialog title (default “Uploading”).
|
|
4539
|
+
- Storybook arg names may say “download”; runtime events are **`uploadError`** / **`uploadComplete`**.
|
|
4540
|
+
- **CSS vars** in docs reference Bootstrap semantic colors.
|
|
4541
|
+
|
|
4542
|
+
### Minimal HTML example
|
|
4543
|
+
|
|
4544
|
+
```html
|
|
4545
|
+
<hb-uploader
|
|
4546
|
+
fetch_data='{"url":"https://api.example.com/upload","data":{},"method":"POST"}'
|
|
4547
|
+
upload_id="my-upload-dialog"
|
|
4548
|
+
></hb-uploader>
|
|
4549
|
+
```
|
|
4550
|
+
|
|
4551
|
+
---
|
|
4552
|
+
|
|
4553
|
+
<a id="wc-vertical-img-txt-archive"></a>
|
|
4554
|
+
|
|
4555
|
+
## `hb-vertical-img-txt-archive` — vertical-img-txt-archive
|
|
4556
|
+
|
|
4557
|
+
**Category:** content
|
|
4558
|
+
**Tags:** content, archive
|
|
4559
|
+
|
|
4560
|
+
### What it does
|
|
4561
|
+
|
|
4562
|
+
Vertical archive grid: `collection` items with `title`, `text`, `image`, and `link` (`type`: `tab` | `page` | `event`, `uri`). Optional `subtitle` on items; optional `size` sets column count. CSS parts style `container`, `item`, `image`, `title`, and `text`. Emits `collectionItemClick` with the item `uri` when an entry is activated.
|
|
4563
|
+
|
|
4564
|
+
### Custom element
|
|
4565
|
+
|
|
4566
|
+
`hb-vertical-img-txt-archive`
|
|
4567
|
+
|
|
4568
|
+
### Attributes (snake_case; use string values in HTML)
|
|
4569
|
+
|
|
4570
|
+
- `id` (optional), `style` (optional): strings.
|
|
4571
|
+
- `collection` (required): JSON string — `Item[]` (`title`, `text`, `image`, `link`, optional `subtitle`, `index`).
|
|
4572
|
+
- `size` (optional): number as string — column count.
|
|
4573
|
+
|
|
4574
|
+
### Events
|
|
4575
|
+
|
|
4576
|
+
- `collectionItemClick`: `{ uri: string }`.
|
|
4577
|
+
|
|
4578
|
+
### Usage notes
|
|
4579
|
+
|
|
4580
|
+
- **CSS parts:** `container`, `item`, `image`, `title`, `text`.
|
|
4581
|
+
- No named content slots in `extra/docs.ts`.
|
|
4582
|
+
|
|
4583
|
+
### Minimal HTML example
|
|
4584
|
+
|
|
4585
|
+
```html
|
|
4586
|
+
<hb-vertical-img-txt-archive
|
|
4587
|
+
collection='[{"title":"One","text":"Body","image":"https://placehold.co/300x200","link":{"type":"tab","uri":"https://example.com"}}]'
|
|
4588
|
+
size="3"
|
|
4589
|
+
></hb-vertical-img-txt-archive>
|
|
4590
|
+
```
|
|
4591
|
+
|