@latty-ds/web 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/custom-elements.json +761 -761
- package/dist/components/button/index.js +1 -1
- package/dist/components/combobox/index.js +3 -1
- package/dist/components/date-input/index.js +4 -1
- package/dist/components/dropdown/index.js +3 -2
- package/dist/components/list/index.js +9 -1
- package/dist/components/select/index.js +2 -1
- package/dist/components/spinner/index.js +1 -1
- package/dist/index.cjs +22 -7
- package/dist/index.d.ts +4 -29
- package/dist/index.js +22 -7
- package/dist/manifest.json +139 -139
- package/package.json +4 -4
- /package/dist/components/spinner/{spineer.styles.d.ts → spinner.styles.d.ts} +0 -0
|
@@ -266,7 +266,7 @@ var buttonStyles = css`
|
|
|
266
266
|
import { html } from "lit";
|
|
267
267
|
import { customElement, property as property2 } from "lit/decorators.js";
|
|
268
268
|
|
|
269
|
-
// src/components/spinner/
|
|
269
|
+
// src/components/spinner/spinner.styles.ts
|
|
270
270
|
import { css as css2 } from "lit";
|
|
271
271
|
var spinnerStyles = css2`
|
|
272
272
|
:host {
|
|
@@ -1836,7 +1836,9 @@ var Combobox = class extends ThemeableElement {
|
|
|
1836
1836
|
const inputWrap = this.shadowRoot.querySelector(".input-wrap");
|
|
1837
1837
|
const dropdown = this.shadowRoot.querySelector(".dropdown");
|
|
1838
1838
|
if (inputWrap && dropdown) {
|
|
1839
|
-
|
|
1839
|
+
const cleanup = await openFloating(inputWrap, dropdown, { matchWidth: true });
|
|
1840
|
+
if (this.open) this._floatingCleanup = cleanup;
|
|
1841
|
+
else cleanup();
|
|
1840
1842
|
}
|
|
1841
1843
|
}
|
|
1842
1844
|
closeDropdown() {
|
|
@@ -2723,8 +2723,11 @@ var DateInput = class extends ThemeableElement {
|
|
|
2723
2723
|
const btn = this.shadowRoot?.querySelector("#field-btn");
|
|
2724
2724
|
const dropdown = this.shadowRoot?.querySelector(".dropdown");
|
|
2725
2725
|
if (btn && dropdown) {
|
|
2726
|
-
|
|
2726
|
+
const cleanup = await openFloating(btn, dropdown);
|
|
2727
|
+
if (this._open) this._floatingCleanup = cleanup;
|
|
2728
|
+
else cleanup();
|
|
2727
2729
|
}
|
|
2730
|
+
if (!this._open) return;
|
|
2728
2731
|
this._cleanupClickOutside = createClickOutsideHandler(this, () => this._closeDropdown());
|
|
2729
2732
|
}
|
|
2730
2733
|
_closeDropdown() {
|
|
@@ -1723,7 +1723,8 @@ var Dropdown = class extends ThemeableElement {
|
|
|
1723
1723
|
const menu = this.shadowRoot.querySelector("lt-surface.menu");
|
|
1724
1724
|
if (menu) {
|
|
1725
1725
|
openFloating(triggerEl, menu, { placement: this.placement }).then((cleanup) => {
|
|
1726
|
-
this._floatingCleanup = cleanup;
|
|
1726
|
+
if (this.open) this._floatingCleanup = cleanup;
|
|
1727
|
+
else cleanup();
|
|
1727
1728
|
});
|
|
1728
1729
|
}
|
|
1729
1730
|
requestAnimationFrame(() => this._items()[0]?.focus());
|
|
@@ -1766,7 +1767,7 @@ var Dropdown = class extends ThemeableElement {
|
|
|
1766
1767
|
popover="manual"
|
|
1767
1768
|
appearance="outlined"
|
|
1768
1769
|
elevation="2"
|
|
1769
|
-
background
|
|
1770
|
+
background="--lt-bg-default"
|
|
1770
1771
|
role="menu"
|
|
1771
1772
|
aria-hidden=${this.open ? "false" : "true"}
|
|
1772
1773
|
>
|
|
@@ -169,6 +169,14 @@ var listItemStyles = css2`
|
|
|
169
169
|
gap: var(--lt-spacing-2);
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
+
/* Keep the slotted content as a single flex item so rich inline markup
|
|
173
|
+
(strong, code, multiple text runs) flows as normal prose instead of each
|
|
174
|
+
node becoming its own shrunk flex item. min-width: 0 lets it wrap. */
|
|
175
|
+
.content {
|
|
176
|
+
flex: 1 1 auto;
|
|
177
|
+
min-width: 0;
|
|
178
|
+
}
|
|
179
|
+
|
|
172
180
|
lt-icon {
|
|
173
181
|
flex-shrink: 0;
|
|
174
182
|
color: var(--lt-color-neutral-500);
|
|
@@ -192,7 +200,7 @@ var ListItem = class extends ThemeableElement {
|
|
|
192
200
|
return html`
|
|
193
201
|
<div class="inner">
|
|
194
202
|
${this.iconStart ? html`<lt-icon class="icon-start" name=${this.iconStart}></lt-icon>` : nothing}
|
|
195
|
-
<slot></slot>
|
|
203
|
+
<span class="content"><slot></slot></span>
|
|
196
204
|
${this.iconEnd ? html`<lt-icon class="icon-end" name=${this.iconEnd}></lt-icon>` : nothing}
|
|
197
205
|
</div>
|
|
198
206
|
`;
|
|
@@ -2024,7 +2024,8 @@ var Select = class extends ThemeableElement {
|
|
|
2024
2024
|
const selectTrigger = this.shadowRoot.querySelector(".select-trigger");
|
|
2025
2025
|
const listbox = this.shadowRoot.querySelector("lt-surface.dropdown");
|
|
2026
2026
|
openFloating(selectTrigger, listbox, { matchWidth: true }).then((cleanup) => {
|
|
2027
|
-
this._floatingCleanup = cleanup;
|
|
2027
|
+
if (this.isOpen) this._floatingCleanup = cleanup;
|
|
2028
|
+
else cleanup();
|
|
2028
2029
|
});
|
|
2029
2030
|
} else {
|
|
2030
2031
|
this.removeAttribute("open");
|
|
@@ -37,7 +37,7 @@ __decorateClass([
|
|
|
37
37
|
// src/components/spinner/spinner.ts
|
|
38
38
|
import { customElement, property as property2 } from "lit/decorators.js";
|
|
39
39
|
|
|
40
|
-
// src/components/spinner/
|
|
40
|
+
// src/components/spinner/spinner.styles.ts
|
|
41
41
|
import { css } from "lit";
|
|
42
42
|
var spinnerStyles = css`
|
|
43
43
|
:host {
|
package/dist/index.cjs
CHANGED
|
@@ -2000,7 +2000,7 @@ var buttonStyles = i`
|
|
|
2000
2000
|
}
|
|
2001
2001
|
`;
|
|
2002
2002
|
|
|
2003
|
-
// src/components/spinner/
|
|
2003
|
+
// src/components/spinner/spinner.styles.ts
|
|
2004
2004
|
var spinnerStyles = i`
|
|
2005
2005
|
:host {
|
|
2006
2006
|
--lt-spinner-size: var(--lt-spacing-4, 1rem);
|
|
@@ -3593,6 +3593,14 @@ var listItemStyles = i`
|
|
|
3593
3593
|
gap: var(--lt-spacing-2);
|
|
3594
3594
|
}
|
|
3595
3595
|
|
|
3596
|
+
/* Keep the slotted content as a single flex item so rich inline markup
|
|
3597
|
+
(strong, code, multiple text runs) flows as normal prose instead of each
|
|
3598
|
+
node becoming its own shrunk flex item. min-width: 0 lets it wrap. */
|
|
3599
|
+
.content {
|
|
3600
|
+
flex: 1 1 auto;
|
|
3601
|
+
min-width: 0;
|
|
3602
|
+
}
|
|
3603
|
+
|
|
3596
3604
|
lt-icon {
|
|
3597
3605
|
flex-shrink: 0;
|
|
3598
3606
|
color: var(--lt-color-neutral-500);
|
|
@@ -3616,7 +3624,7 @@ var ListItem = class extends ThemeableElement {
|
|
|
3616
3624
|
return T`
|
|
3617
3625
|
<div class="inner">
|
|
3618
3626
|
${this.iconStart ? T`<lt-icon class="icon-start" name=${this.iconStart}></lt-icon>` : A}
|
|
3619
|
-
<slot></slot>
|
|
3627
|
+
<span class="content"><slot></slot></span>
|
|
3620
3628
|
${this.iconEnd ? T`<lt-icon class="icon-end" name=${this.iconEnd}></lt-icon>` : A}
|
|
3621
3629
|
</div>
|
|
3622
3630
|
`;
|
|
@@ -5819,7 +5827,8 @@ var Select = class extends ThemeableElement {
|
|
|
5819
5827
|
const selectTrigger = this.shadowRoot.querySelector(".select-trigger");
|
|
5820
5828
|
const listbox = this.shadowRoot.querySelector("lt-surface.dropdown");
|
|
5821
5829
|
openFloating(selectTrigger, listbox, { matchWidth: true }).then((cleanup) => {
|
|
5822
|
-
this._floatingCleanup = cleanup;
|
|
5830
|
+
if (this.isOpen) this._floatingCleanup = cleanup;
|
|
5831
|
+
else cleanup();
|
|
5823
5832
|
});
|
|
5824
5833
|
} else {
|
|
5825
5834
|
this.removeAttribute("open");
|
|
@@ -9228,7 +9237,8 @@ var Dropdown = class extends ThemeableElement {
|
|
|
9228
9237
|
const menu = this.shadowRoot.querySelector("lt-surface.menu");
|
|
9229
9238
|
if (menu) {
|
|
9230
9239
|
openFloating(triggerEl, menu, { placement: this.placement }).then((cleanup) => {
|
|
9231
|
-
this._floatingCleanup = cleanup;
|
|
9240
|
+
if (this.open) this._floatingCleanup = cleanup;
|
|
9241
|
+
else cleanup();
|
|
9232
9242
|
});
|
|
9233
9243
|
}
|
|
9234
9244
|
requestAnimationFrame(() => this._items()[0]?.focus());
|
|
@@ -9271,7 +9281,7 @@ var Dropdown = class extends ThemeableElement {
|
|
|
9271
9281
|
popover="manual"
|
|
9272
9282
|
appearance="outlined"
|
|
9273
9283
|
elevation="2"
|
|
9274
|
-
background
|
|
9284
|
+
background="--lt-bg-default"
|
|
9275
9285
|
role="menu"
|
|
9276
9286
|
aria-hidden=${this.open ? "false" : "true"}
|
|
9277
9287
|
>
|
|
@@ -11953,8 +11963,11 @@ var DateInput = class extends ThemeableElement {
|
|
|
11953
11963
|
const btn = this.shadowRoot?.querySelector("#field-btn");
|
|
11954
11964
|
const dropdown = this.shadowRoot?.querySelector(".dropdown");
|
|
11955
11965
|
if (btn && dropdown) {
|
|
11956
|
-
|
|
11966
|
+
const cleanup = await openFloating(btn, dropdown);
|
|
11967
|
+
if (this._open) this._floatingCleanup = cleanup;
|
|
11968
|
+
else cleanup();
|
|
11957
11969
|
}
|
|
11970
|
+
if (!this._open) return;
|
|
11958
11971
|
this._cleanupClickOutside = createClickOutsideHandler(this, () => this._closeDropdown());
|
|
11959
11972
|
}
|
|
11960
11973
|
_closeDropdown() {
|
|
@@ -12330,7 +12343,9 @@ var Combobox = class extends ThemeableElement {
|
|
|
12330
12343
|
const inputWrap = this.shadowRoot.querySelector(".input-wrap");
|
|
12331
12344
|
const dropdown = this.shadowRoot.querySelector(".dropdown");
|
|
12332
12345
|
if (inputWrap && dropdown) {
|
|
12333
|
-
|
|
12346
|
+
const cleanup = await openFloating(inputWrap, dropdown, { matchWidth: true });
|
|
12347
|
+
if (this.open) this._floatingCleanup = cleanup;
|
|
12348
|
+
else cleanup();
|
|
12334
12349
|
}
|
|
12335
12350
|
}
|
|
12336
12351
|
closeDropdown() {
|
package/dist/index.d.ts
CHANGED
|
@@ -3,35 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* A collection of reusable, accessible web components built with Lit.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* - Calendar: TODO: describe the Calendar component
|
|
11
|
-
* - Checkbox: Checkbox input with support for indeterminate state
|
|
12
|
-
* - ColorInput: TODO: describe the ColorInput component
|
|
13
|
-
* - Dialog: Modal dialog with backdrop and accessibility features
|
|
14
|
-
* - Dropdown: TODO: describe the Dropdown component
|
|
15
|
-
* - Header: TODO: describe the Header component
|
|
16
|
-
* - IconButton: Accessible icon-only button with ghost, filled, and outlined appearances
|
|
17
|
-
* - Image: TODO: describe the Image component
|
|
18
|
-
* - Link: TODO: describe the Link component
|
|
19
|
-
* - List: Ordered and unordered lists with customizable marker colors
|
|
20
|
-
* - Radio: Radio button for single selection within a group
|
|
21
|
-
* - RadioGroup: Container for managing radio button groups
|
|
22
|
-
* - Switch: Toggle switch with sliding animation
|
|
23
|
-
* - Spinner: Loading indicator with customizable size and color
|
|
24
|
-
* - Textfield: Text input with validation states and password toggle
|
|
25
|
-
* - Select: Dropdown select with customizable options and variants
|
|
26
|
-
* - SidePanel: TODO: describe the SidePanel component
|
|
27
|
-
* - Slider: TODO: describe the Slider component
|
|
28
|
-
* - Snackbar: TODO: describe the Snackbar component
|
|
29
|
-
* - Surface: Container component with elevation and surface styling
|
|
30
|
-
* - Tab: Individual tab element for use within tab groups
|
|
31
|
-
* - TabGroup: Container for managing tabbed interfaces
|
|
32
|
-
* - Table: Data table with sorting and responsive design
|
|
33
|
-
* - Text: TODO: describe the Text component
|
|
34
|
-
* - Tooltip: Floating label anchored to a trigger element
|
|
6
|
+
* Importing this entry point registers every `lt-*` custom element (see the
|
|
7
|
+
* `export *` list below for the full set). Each component also has its own
|
|
8
|
+
* module under `./components/<name>` for granular imports. Per-component docs
|
|
9
|
+
* live at https://latty-ds — and in each component's source JSDoc.
|
|
35
10
|
*
|
|
36
11
|
* @packageDocumentation
|
|
37
12
|
*
|
package/dist/index.js
CHANGED
|
@@ -695,7 +695,7 @@ var buttonStyles = css3`
|
|
|
695
695
|
import { html as html3 } from "lit";
|
|
696
696
|
import { customElement as customElement3, property as property4 } from "lit/decorators.js";
|
|
697
697
|
|
|
698
|
-
// src/components/spinner/
|
|
698
|
+
// src/components/spinner/spinner.styles.ts
|
|
699
699
|
import { css as css4 } from "lit";
|
|
700
700
|
var spinnerStyles = css4`
|
|
701
701
|
:host {
|
|
@@ -2280,6 +2280,14 @@ var listItemStyles = css12`
|
|
|
2280
2280
|
gap: var(--lt-spacing-2);
|
|
2281
2281
|
}
|
|
2282
2282
|
|
|
2283
|
+
/* Keep the slotted content as a single flex item so rich inline markup
|
|
2284
|
+
(strong, code, multiple text runs) flows as normal prose instead of each
|
|
2285
|
+
node becoming its own shrunk flex item. min-width: 0 lets it wrap. */
|
|
2286
|
+
.content {
|
|
2287
|
+
flex: 1 1 auto;
|
|
2288
|
+
min-width: 0;
|
|
2289
|
+
}
|
|
2290
|
+
|
|
2283
2291
|
lt-icon {
|
|
2284
2292
|
flex-shrink: 0;
|
|
2285
2293
|
color: var(--lt-color-neutral-500);
|
|
@@ -2303,7 +2311,7 @@ var ListItem = class extends ThemeableElement {
|
|
|
2303
2311
|
return html10`
|
|
2304
2312
|
<div class="inner">
|
|
2305
2313
|
${this.iconStart ? html10`<lt-icon class="icon-start" name=${this.iconStart}></lt-icon>` : nothing3}
|
|
2306
|
-
<slot></slot>
|
|
2314
|
+
<span class="content"><slot></slot></span>
|
|
2307
2315
|
${this.iconEnd ? html10`<lt-icon class="icon-end" name=${this.iconEnd}></lt-icon>` : nothing3}
|
|
2308
2316
|
</div>
|
|
2309
2317
|
`;
|
|
@@ -4524,7 +4532,8 @@ var Select = class extends ThemeableElement {
|
|
|
4524
4532
|
const selectTrigger = this.shadowRoot.querySelector(".select-trigger");
|
|
4525
4533
|
const listbox = this.shadowRoot.querySelector("lt-surface.dropdown");
|
|
4526
4534
|
openFloating(selectTrigger, listbox, { matchWidth: true }).then((cleanup) => {
|
|
4527
|
-
this._floatingCleanup = cleanup;
|
|
4535
|
+
if (this.isOpen) this._floatingCleanup = cleanup;
|
|
4536
|
+
else cleanup();
|
|
4528
4537
|
});
|
|
4529
4538
|
} else {
|
|
4530
4539
|
this.removeAttribute("open");
|
|
@@ -7899,7 +7908,8 @@ var Dropdown = class extends ThemeableElement {
|
|
|
7899
7908
|
const menu = this.shadowRoot.querySelector("lt-surface.menu");
|
|
7900
7909
|
if (menu) {
|
|
7901
7910
|
openFloating(triggerEl, menu, { placement: this.placement }).then((cleanup) => {
|
|
7902
|
-
this._floatingCleanup = cleanup;
|
|
7911
|
+
if (this.open) this._floatingCleanup = cleanup;
|
|
7912
|
+
else cleanup();
|
|
7903
7913
|
});
|
|
7904
7914
|
}
|
|
7905
7915
|
requestAnimationFrame(() => this._items()[0]?.focus());
|
|
@@ -7942,7 +7952,7 @@ var Dropdown = class extends ThemeableElement {
|
|
|
7942
7952
|
popover="manual"
|
|
7943
7953
|
appearance="outlined"
|
|
7944
7954
|
elevation="2"
|
|
7945
|
-
background
|
|
7955
|
+
background="--lt-bg-default"
|
|
7946
7956
|
role="menu"
|
|
7947
7957
|
aria-hidden=${this.open ? "false" : "true"}
|
|
7948
7958
|
>
|
|
@@ -10686,8 +10696,11 @@ var DateInput = class extends ThemeableElement {
|
|
|
10686
10696
|
const btn = this.shadowRoot?.querySelector("#field-btn");
|
|
10687
10697
|
const dropdown = this.shadowRoot?.querySelector(".dropdown");
|
|
10688
10698
|
if (btn && dropdown) {
|
|
10689
|
-
|
|
10699
|
+
const cleanup = await openFloating(btn, dropdown);
|
|
10700
|
+
if (this._open) this._floatingCleanup = cleanup;
|
|
10701
|
+
else cleanup();
|
|
10690
10702
|
}
|
|
10703
|
+
if (!this._open) return;
|
|
10691
10704
|
this._cleanupClickOutside = createClickOutsideHandler(this, () => this._closeDropdown());
|
|
10692
10705
|
}
|
|
10693
10706
|
_closeDropdown() {
|
|
@@ -11068,7 +11081,9 @@ var Combobox = class extends ThemeableElement {
|
|
|
11068
11081
|
const inputWrap = this.shadowRoot.querySelector(".input-wrap");
|
|
11069
11082
|
const dropdown = this.shadowRoot.querySelector(".dropdown");
|
|
11070
11083
|
if (inputWrap && dropdown) {
|
|
11071
|
-
|
|
11084
|
+
const cleanup = await openFloating(inputWrap, dropdown, { matchWidth: true });
|
|
11085
|
+
if (this.open) this._floatingCleanup = cleanup;
|
|
11086
|
+
else cleanup();
|
|
11072
11087
|
}
|
|
11073
11088
|
}
|
|
11074
11089
|
closeDropdown() {
|
package/dist/manifest.json
CHANGED
|
@@ -200,6 +200,64 @@
|
|
|
200
200
|
}
|
|
201
201
|
]
|
|
202
202
|
},
|
|
203
|
+
"lt-alert": {
|
|
204
|
+
"members": [
|
|
205
|
+
{
|
|
206
|
+
"name": "variant",
|
|
207
|
+
"description": "Visual style.",
|
|
208
|
+
"type": "select",
|
|
209
|
+
"options": [
|
|
210
|
+
"default",
|
|
211
|
+
"success",
|
|
212
|
+
"warning",
|
|
213
|
+
"error",
|
|
214
|
+
"info"
|
|
215
|
+
],
|
|
216
|
+
"default": "default"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"name": "appearance",
|
|
220
|
+
"description": "Visual treatment. `filled` uses a tinted background with border, `outlined` uses a white background with border, `solid` uses a solid color background with no border.",
|
|
221
|
+
"type": "select",
|
|
222
|
+
"options": [
|
|
223
|
+
"filled",
|
|
224
|
+
"outlined",
|
|
225
|
+
"solid"
|
|
226
|
+
],
|
|
227
|
+
"default": "filled"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"name": "title",
|
|
231
|
+
"description": "Optional bold heading above the body content.",
|
|
232
|
+
"type": "text",
|
|
233
|
+
"default": ""
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"name": "icon",
|
|
237
|
+
"description": "Icon to show before the body. Leave empty for auto (shows variant icon for status variants),\nset to `\"none\"` to suppress, or pass any icon name to override.",
|
|
238
|
+
"type": "icon",
|
|
239
|
+
"default": ""
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"name": "closable",
|
|
243
|
+
"description": "Show a dismiss button. Clicking it fires lt-close and removes the element.",
|
|
244
|
+
"type": "boolean",
|
|
245
|
+
"default": false
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"name": "background",
|
|
249
|
+
"description": "Background color override. Accepts a hex value (#1a1a2e) or a CSS token name (--lt-color-primary-600).",
|
|
250
|
+
"type": "color",
|
|
251
|
+
"default": ""
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"name": "uppercase",
|
|
255
|
+
"description": "Renders the title in small caps with wider letter spacing.",
|
|
256
|
+
"type": "boolean",
|
|
257
|
+
"default": false
|
|
258
|
+
}
|
|
259
|
+
]
|
|
260
|
+
},
|
|
203
261
|
"lt-avatar": {
|
|
204
262
|
"members": [
|
|
205
263
|
{
|
|
@@ -260,64 +318,6 @@
|
|
|
260
318
|
}
|
|
261
319
|
]
|
|
262
320
|
},
|
|
263
|
-
"lt-alert": {
|
|
264
|
-
"members": [
|
|
265
|
-
{
|
|
266
|
-
"name": "variant",
|
|
267
|
-
"description": "Visual style.",
|
|
268
|
-
"type": "select",
|
|
269
|
-
"options": [
|
|
270
|
-
"default",
|
|
271
|
-
"success",
|
|
272
|
-
"warning",
|
|
273
|
-
"error",
|
|
274
|
-
"info"
|
|
275
|
-
],
|
|
276
|
-
"default": "default"
|
|
277
|
-
},
|
|
278
|
-
{
|
|
279
|
-
"name": "appearance",
|
|
280
|
-
"description": "Visual treatment. `filled` uses a tinted background with border, `outlined` uses a white background with border, `solid` uses a solid color background with no border.",
|
|
281
|
-
"type": "select",
|
|
282
|
-
"options": [
|
|
283
|
-
"filled",
|
|
284
|
-
"outlined",
|
|
285
|
-
"solid"
|
|
286
|
-
],
|
|
287
|
-
"default": "filled"
|
|
288
|
-
},
|
|
289
|
-
{
|
|
290
|
-
"name": "title",
|
|
291
|
-
"description": "Optional bold heading above the body content.",
|
|
292
|
-
"type": "text",
|
|
293
|
-
"default": ""
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
"name": "icon",
|
|
297
|
-
"description": "Icon to show before the body. Leave empty for auto (shows variant icon for status variants),\nset to `\"none\"` to suppress, or pass any icon name to override.",
|
|
298
|
-
"type": "icon",
|
|
299
|
-
"default": ""
|
|
300
|
-
},
|
|
301
|
-
{
|
|
302
|
-
"name": "closable",
|
|
303
|
-
"description": "Show a dismiss button. Clicking it fires lt-close and removes the element.",
|
|
304
|
-
"type": "boolean",
|
|
305
|
-
"default": false
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
"name": "background",
|
|
309
|
-
"description": "Background color override. Accepts a hex value (#1a1a2e) or a CSS token name (--lt-color-primary-600).",
|
|
310
|
-
"type": "color",
|
|
311
|
-
"default": ""
|
|
312
|
-
},
|
|
313
|
-
{
|
|
314
|
-
"name": "uppercase",
|
|
315
|
-
"description": "Renders the title in small caps with wider letter spacing.",
|
|
316
|
-
"type": "boolean",
|
|
317
|
-
"default": false
|
|
318
|
-
}
|
|
319
|
-
]
|
|
320
|
-
},
|
|
321
321
|
"lt-badge": {
|
|
322
322
|
"members": [
|
|
323
323
|
{
|
|
@@ -1533,6 +1533,56 @@
|
|
|
1533
1533
|
}
|
|
1534
1534
|
]
|
|
1535
1535
|
},
|
|
1536
|
+
"lt-radio-group": {
|
|
1537
|
+
"members": [
|
|
1538
|
+
{
|
|
1539
|
+
"name": "label",
|
|
1540
|
+
"description": "Label for the radio group.",
|
|
1541
|
+
"type": "text",
|
|
1542
|
+
"default": ""
|
|
1543
|
+
},
|
|
1544
|
+
{
|
|
1545
|
+
"name": "name",
|
|
1546
|
+
"description": "Name attribute applied to all radio buttons in the group.\nEnsures only one radio can be selected at a time.",
|
|
1547
|
+
"type": "text",
|
|
1548
|
+
"default": ""
|
|
1549
|
+
},
|
|
1550
|
+
{
|
|
1551
|
+
"name": "value",
|
|
1552
|
+
"description": "Currently selected value in the group.",
|
|
1553
|
+
"type": "text",
|
|
1554
|
+
"default": ""
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
"name": "orientation",
|
|
1558
|
+
"description": "Layout orientation of the radio buttons.",
|
|
1559
|
+
"type": "select",
|
|
1560
|
+
"options": [
|
|
1561
|
+
"vertical",
|
|
1562
|
+
"horizontal"
|
|
1563
|
+
],
|
|
1564
|
+
"default": "vertical"
|
|
1565
|
+
},
|
|
1566
|
+
{
|
|
1567
|
+
"name": "helper-text",
|
|
1568
|
+
"description": "Helper text displayed below the radio group.",
|
|
1569
|
+
"type": "text",
|
|
1570
|
+
"default": ""
|
|
1571
|
+
},
|
|
1572
|
+
{
|
|
1573
|
+
"name": "error",
|
|
1574
|
+
"description": "Whether the radio group is in an error state.",
|
|
1575
|
+
"type": "boolean",
|
|
1576
|
+
"default": false
|
|
1577
|
+
},
|
|
1578
|
+
{
|
|
1579
|
+
"name": "required",
|
|
1580
|
+
"description": "Whether selection is required.",
|
|
1581
|
+
"type": "boolean",
|
|
1582
|
+
"default": false
|
|
1583
|
+
}
|
|
1584
|
+
]
|
|
1585
|
+
},
|
|
1536
1586
|
"lt-radio": {
|
|
1537
1587
|
"members": [
|
|
1538
1588
|
{
|
|
@@ -1607,56 +1657,6 @@
|
|
|
1607
1657
|
}
|
|
1608
1658
|
]
|
|
1609
1659
|
},
|
|
1610
|
-
"lt-radio-group": {
|
|
1611
|
-
"members": [
|
|
1612
|
-
{
|
|
1613
|
-
"name": "label",
|
|
1614
|
-
"description": "Label for the radio group.",
|
|
1615
|
-
"type": "text",
|
|
1616
|
-
"default": ""
|
|
1617
|
-
},
|
|
1618
|
-
{
|
|
1619
|
-
"name": "name",
|
|
1620
|
-
"description": "Name attribute applied to all radio buttons in the group.\nEnsures only one radio can be selected at a time.",
|
|
1621
|
-
"type": "text",
|
|
1622
|
-
"default": ""
|
|
1623
|
-
},
|
|
1624
|
-
{
|
|
1625
|
-
"name": "value",
|
|
1626
|
-
"description": "Currently selected value in the group.",
|
|
1627
|
-
"type": "text",
|
|
1628
|
-
"default": ""
|
|
1629
|
-
},
|
|
1630
|
-
{
|
|
1631
|
-
"name": "orientation",
|
|
1632
|
-
"description": "Layout orientation of the radio buttons.",
|
|
1633
|
-
"type": "select",
|
|
1634
|
-
"options": [
|
|
1635
|
-
"vertical",
|
|
1636
|
-
"horizontal"
|
|
1637
|
-
],
|
|
1638
|
-
"default": "vertical"
|
|
1639
|
-
},
|
|
1640
|
-
{
|
|
1641
|
-
"name": "helper-text",
|
|
1642
|
-
"description": "Helper text displayed below the radio group.",
|
|
1643
|
-
"type": "text",
|
|
1644
|
-
"default": ""
|
|
1645
|
-
},
|
|
1646
|
-
{
|
|
1647
|
-
"name": "error",
|
|
1648
|
-
"description": "Whether the radio group is in an error state.",
|
|
1649
|
-
"type": "boolean",
|
|
1650
|
-
"default": false
|
|
1651
|
-
},
|
|
1652
|
-
{
|
|
1653
|
-
"name": "required",
|
|
1654
|
-
"description": "Whether selection is required.",
|
|
1655
|
-
"type": "boolean",
|
|
1656
|
-
"default": false
|
|
1657
|
-
}
|
|
1658
|
-
]
|
|
1659
|
-
},
|
|
1660
1660
|
"lt-select": {
|
|
1661
1661
|
"members": [
|
|
1662
1662
|
{
|
|
@@ -2050,6 +2050,37 @@
|
|
|
2050
2050
|
}
|
|
2051
2051
|
]
|
|
2052
2052
|
},
|
|
2053
|
+
"lt-tab-group": {
|
|
2054
|
+
"members": [
|
|
2055
|
+
{
|
|
2056
|
+
"name": "value",
|
|
2057
|
+
"description": "Currently selected tab value.",
|
|
2058
|
+
"type": "text",
|
|
2059
|
+
"default": ""
|
|
2060
|
+
},
|
|
2061
|
+
{
|
|
2062
|
+
"name": "appearance",
|
|
2063
|
+
"description": "Visual appearance of the tab group.",
|
|
2064
|
+
"type": "select",
|
|
2065
|
+
"options": [
|
|
2066
|
+
"default",
|
|
2067
|
+
"pills"
|
|
2068
|
+
],
|
|
2069
|
+
"default": "default"
|
|
2070
|
+
},
|
|
2071
|
+
{
|
|
2072
|
+
"name": "size",
|
|
2073
|
+
"description": "Size of the tabs.",
|
|
2074
|
+
"type": "select",
|
|
2075
|
+
"options": [
|
|
2076
|
+
"sm",
|
|
2077
|
+
"md",
|
|
2078
|
+
"lg"
|
|
2079
|
+
],
|
|
2080
|
+
"default": "md"
|
|
2081
|
+
}
|
|
2082
|
+
]
|
|
2083
|
+
},
|
|
2053
2084
|
"lt-tab-panel": {
|
|
2054
2085
|
"members": [
|
|
2055
2086
|
{
|
|
@@ -2111,37 +2142,6 @@
|
|
|
2111
2142
|
}
|
|
2112
2143
|
]
|
|
2113
2144
|
},
|
|
2114
|
-
"lt-tab-group": {
|
|
2115
|
-
"members": [
|
|
2116
|
-
{
|
|
2117
|
-
"name": "value",
|
|
2118
|
-
"description": "Currently selected tab value.",
|
|
2119
|
-
"type": "text",
|
|
2120
|
-
"default": ""
|
|
2121
|
-
},
|
|
2122
|
-
{
|
|
2123
|
-
"name": "appearance",
|
|
2124
|
-
"description": "Visual appearance of the tab group.",
|
|
2125
|
-
"type": "select",
|
|
2126
|
-
"options": [
|
|
2127
|
-
"default",
|
|
2128
|
-
"pills"
|
|
2129
|
-
],
|
|
2130
|
-
"default": "default"
|
|
2131
|
-
},
|
|
2132
|
-
{
|
|
2133
|
-
"name": "size",
|
|
2134
|
-
"description": "Size of the tabs.",
|
|
2135
|
-
"type": "select",
|
|
2136
|
-
"options": [
|
|
2137
|
-
"sm",
|
|
2138
|
-
"md",
|
|
2139
|
-
"lg"
|
|
2140
|
-
],
|
|
2141
|
-
"default": "md"
|
|
2142
|
-
}
|
|
2143
|
-
]
|
|
2144
|
-
},
|
|
2145
2145
|
"lt-table": {
|
|
2146
2146
|
"members": [
|
|
2147
2147
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@latty-ds/web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Web Components for the Latty design system — framework-agnostic UI components built with Lit",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://github.com/penhold3r/latty-ds.git",
|
|
9
9
|
"directory": "packages/web"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://
|
|
11
|
+
"homepage": "https://latty-ds.com",
|
|
12
12
|
"keywords": [
|
|
13
13
|
"design-system",
|
|
14
14
|
"web-components",
|
|
@@ -224,8 +224,8 @@
|
|
|
224
224
|
},
|
|
225
225
|
"dependencies": {
|
|
226
226
|
"@floating-ui/dom": "^1.7.6",
|
|
227
|
-
"@latty-ds/icons": "0.
|
|
227
|
+
"@latty-ds/icons": "0.7.0"
|
|
228
228
|
},
|
|
229
229
|
"customElements": "custom-elements.json",
|
|
230
|
-
"gitHead": "
|
|
230
|
+
"gitHead": "40d5903d30b50455ed244d5f0fd75fbd84934c46"
|
|
231
231
|
}
|
|
File without changes
|