@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.
@@ -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/spineer.styles.ts
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
- this._floatingCleanup = await openFloating(inputWrap, dropdown, { matchWidth: true });
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
- this._floatingCleanup = await openFloating(btn, dropdown);
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-color="--lt-bg-default"
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/spineer.styles.ts
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/spineer.styles.ts
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-color="--lt-bg-default"
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
- this._floatingCleanup = await openFloating(btn, dropdown);
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
- this._floatingCleanup = await openFloating(inputWrap, dropdown, { matchWidth: true });
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
- * Available components:
7
- * - Accordion: Collapsible content using native details/summary
8
- * - Alert: TODO: describe the Alert component
9
- * - Button: Interactive button with multiple variants and loading states
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/spineer.styles.ts
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-color="--lt-bg-default"
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
- this._floatingCleanup = await openFloating(btn, dropdown);
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
- this._floatingCleanup = await openFloating(inputWrap, dropdown, { matchWidth: true });
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() {
@@ -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.5.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://penhold3r.github.io/latty-ds",
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.5.0"
227
+ "@latty-ds/icons": "0.7.0"
228
228
  },
229
229
  "customElements": "custom-elements.json",
230
- "gitHead": "e2fcd96cf67d8f9780970cbd16fd96a3e3915995"
230
+ "gitHead": "40d5903d30b50455ed244d5f0fd75fbd84934c46"
231
231
  }