@hypoth-ui/wc 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +60 -0
  3. package/dist/button-MKQKTC5Q.js +10 -0
  4. package/dist/button-MKQKTC5Q.js.map +1 -0
  5. package/dist/chunk-4HLM6DBG.js +910 -0
  6. package/dist/chunk-4HLM6DBG.js.map +1 -0
  7. package/dist/chunk-55ID7LJL.js +3602 -0
  8. package/dist/chunk-55ID7LJL.js.map +1 -0
  9. package/dist/chunk-66HFYJD7.js +86 -0
  10. package/dist/chunk-66HFYJD7.js.map +1 -0
  11. package/dist/chunk-CZOXIJVS.js +70 -0
  12. package/dist/chunk-CZOXIJVS.js.map +1 -0
  13. package/dist/chunk-DHUM4Q5Y.js +495 -0
  14. package/dist/chunk-DHUM4Q5Y.js.map +1 -0
  15. package/dist/chunk-DNNI5BDE.js +1842 -0
  16. package/dist/chunk-DNNI5BDE.js.map +1 -0
  17. package/dist/chunk-GXKZ6E6K.js +99 -0
  18. package/dist/chunk-GXKZ6E6K.js.map +1 -0
  19. package/dist/chunk-H4GJJZ3N.js +51 -0
  20. package/dist/chunk-H4GJJZ3N.js.map +1 -0
  21. package/dist/chunk-JMPTFALJ.js +175 -0
  22. package/dist/chunk-JMPTFALJ.js.map +1 -0
  23. package/dist/chunk-MYQWCLUJ.js +45 -0
  24. package/dist/chunk-MYQWCLUJ.js.map +1 -0
  25. package/dist/chunk-QZSPWT7L.js +183 -0
  26. package/dist/chunk-QZSPWT7L.js.map +1 -0
  27. package/dist/chunk-TSKBQCTR.js +5137 -0
  28. package/dist/chunk-TSKBQCTR.js.map +1 -0
  29. package/dist/chunk-TXIIUVL3.js +130 -0
  30. package/dist/chunk-TXIIUVL3.js.map +1 -0
  31. package/dist/chunk-UM7WRO7W.js +237 -0
  32. package/dist/chunk-UM7WRO7W.js.map +1 -0
  33. package/dist/chunk-VPXL4RB3.js +202 -0
  34. package/dist/chunk-VPXL4RB3.js.map +1 -0
  35. package/dist/chunk-VX5CKSMN.js +39 -0
  36. package/dist/chunk-VX5CKSMN.js.map +1 -0
  37. package/dist/chunk-WQ5BEP3E.js +2845 -0
  38. package/dist/chunk-WQ5BEP3E.js.map +1 -0
  39. package/dist/chunk-YDQ434UH.js +60 -0
  40. package/dist/chunk-YDQ434UH.js.map +1 -0
  41. package/dist/chunk-ZWV4VI6D.js +153 -0
  42. package/dist/chunk-ZWV4VI6D.js.map +1 -0
  43. package/dist/core.d.ts +127 -0
  44. package/dist/core.js +38 -0
  45. package/dist/core.js.map +1 -0
  46. package/dist/data-display.d.ts +872 -0
  47. package/dist/data-display.js +57 -0
  48. package/dist/data-display.js.map +1 -0
  49. package/dist/ds-element-Db0LMfxI.d.ts +43 -0
  50. package/dist/feedback.d.ts +292 -0
  51. package/dist/feedback.js +31 -0
  52. package/dist/feedback.js.map +1 -0
  53. package/dist/form-controls.d.ts +1713 -0
  54. package/dist/form-controls.js +63 -0
  55. package/dist/form-controls.js.map +1 -0
  56. package/dist/icon-7IZTJ5WT.js +8 -0
  57. package/dist/icon-7IZTJ5WT.js.map +1 -0
  58. package/dist/index.d.ts +15 -0
  59. package/dist/index.js +423 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/input-LB6UR37A.js +10 -0
  62. package/dist/input-LB6UR37A.js.map +1 -0
  63. package/dist/layout.d.ts +504 -0
  64. package/dist/layout.js +34 -0
  65. package/dist/layout.js.map +1 -0
  66. package/dist/link-NHDJ6SFY.js +9 -0
  67. package/dist/link-NHDJ6SFY.js.map +1 -0
  68. package/dist/navigation.d.ts +255 -0
  69. package/dist/navigation.js +111 -0
  70. package/dist/navigation.js.map +1 -0
  71. package/dist/overlays.d.ts +1291 -0
  72. package/dist/overlays.js +106 -0
  73. package/dist/overlays.js.map +1 -0
  74. package/dist/primitives.d.ts +230 -0
  75. package/dist/primitives.js +26 -0
  76. package/dist/primitives.js.map +1 -0
  77. package/dist/registry-Bns0t11H.d.ts +233 -0
  78. package/dist/skeleton-MUdd2029.d.ts +109 -0
  79. package/dist/spinner-BWaNlc-Y.d.ts +45 -0
  80. package/dist/spinner-UIYDUVBZ.js +8 -0
  81. package/dist/spinner-UIYDUVBZ.js.map +1 -0
  82. package/dist/stepper-CCRwcQOe.d.ts +851 -0
  83. package/dist/text-MT3S3EMU.js +8 -0
  84. package/dist/text-MT3S3EMU.js.map +1 -0
  85. package/dist/visually-hidden-MW2XY4CS.js +8 -0
  86. package/dist/visually-hidden-MW2XY4CS.js.map +1 -0
  87. package/package.json +92 -0
@@ -0,0 +1,872 @@
1
+ import * as lit from 'lit';
2
+ import { TemplateResult } from 'lit';
3
+ import { D as DSElement } from './ds-element-Db0LMfxI.js';
4
+ export { D as DsProgress, b as DsSkeleton, a as ProgressSize, P as ProgressVariant, e as SkeletonAnimation, c as SkeletonSize, S as SkeletonVariant, d as SkeletonWidth } from './skeleton-MUdd2029.js';
5
+
6
+ type TableSize = "compact" | "default" | "spacious";
7
+ /**
8
+ * Table root component.
9
+ *
10
+ * @element ds-table
11
+ *
12
+ * @slot - Table content (thead, tbody, tfoot)
13
+ *
14
+ * @cssprop --ds-table-border - Border style
15
+ * @cssprop --ds-table-radius - Border radius
16
+ * @cssprop --ds-table-bg - Background color
17
+ */
18
+ declare class DsTable extends DSElement {
19
+ static styles: never[];
20
+ /**
21
+ * Size variant.
22
+ */
23
+ size: TableSize;
24
+ /**
25
+ * Whether to show striped rows.
26
+ */
27
+ striped: boolean;
28
+ /**
29
+ * Whether to remove borders.
30
+ */
31
+ borderless: boolean;
32
+ /**
33
+ * Whether to use fixed layout.
34
+ */
35
+ fixed: boolean;
36
+ /**
37
+ * Whether header is sticky.
38
+ */
39
+ stickyHeader: boolean;
40
+ /**
41
+ * Accessible caption for screen readers.
42
+ */
43
+ caption: string;
44
+ render(): TemplateResult;
45
+ }
46
+ declare global {
47
+ interface HTMLElementTagNameMap {
48
+ "ds-table": DsTable;
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Table header component (thead).
54
+ *
55
+ * @element ds-table-header
56
+ *
57
+ * @slot - TableRow elements for header
58
+ */
59
+ declare class DsTableHeader extends DSElement {
60
+ static styles: never[];
61
+ render(): TemplateResult;
62
+ }
63
+ declare global {
64
+ interface HTMLElementTagNameMap {
65
+ "ds-table-header": DsTableHeader;
66
+ }
67
+ }
68
+
69
+ /**
70
+ * Table body component (tbody).
71
+ *
72
+ * @element ds-table-body
73
+ *
74
+ * @slot - TableRow elements for body
75
+ */
76
+ declare class DsTableBody extends DSElement {
77
+ static styles: never[];
78
+ render(): TemplateResult;
79
+ }
80
+ declare global {
81
+ interface HTMLElementTagNameMap {
82
+ "ds-table-body": DsTableBody;
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Table row component (tr).
88
+ *
89
+ * @element ds-table-row
90
+ *
91
+ * @slot - TableHead or TableCell elements
92
+ */
93
+ declare class DsTableRow extends DSElement {
94
+ static styles: never[];
95
+ /**
96
+ * Row ID for selection tracking.
97
+ */
98
+ rowId: string;
99
+ /**
100
+ * Whether this row is selected.
101
+ */
102
+ selected: boolean;
103
+ render(): TemplateResult;
104
+ }
105
+ declare global {
106
+ interface HTMLElementTagNameMap {
107
+ "ds-table-row": DsTableRow;
108
+ }
109
+ }
110
+
111
+ type TableAlign = "left" | "center" | "right";
112
+ type SortDirection = "asc" | "desc" | "none";
113
+ /**
114
+ * Table header cell component (th).
115
+ *
116
+ * @element ds-table-head
117
+ *
118
+ * @slot - Header content
119
+ *
120
+ * @fires ds-sort - When sortable header is clicked
121
+ */
122
+ declare class DsTableHead extends DSElement {
123
+ static styles: never[];
124
+ /**
125
+ * Column key for sorting.
126
+ */
127
+ column: string;
128
+ /**
129
+ * Text alignment.
130
+ */
131
+ align: TableAlign;
132
+ /**
133
+ * Whether this column is sortable.
134
+ */
135
+ sortable: boolean;
136
+ /**
137
+ * Current sort direction.
138
+ */
139
+ sortDirection: SortDirection;
140
+ /**
141
+ * Column width (CSS value).
142
+ */
143
+ width: string;
144
+ private handleClick;
145
+ private handleKeyDown;
146
+ private getNextDirection;
147
+ /**
148
+ * Get the aria-sort attribute value.
149
+ * Per APG, sortable columns should always have aria-sort:
150
+ * - "ascending" for A-Z or low-high sort
151
+ * - "descending" for Z-A or high-low sort
152
+ * - "none" when sortable but not currently sorted
153
+ */
154
+ private getAriaSort;
155
+ render(): TemplateResult;
156
+ }
157
+ declare global {
158
+ interface HTMLElementTagNameMap {
159
+ "ds-table-head": DsTableHead;
160
+ }
161
+ }
162
+
163
+ /**
164
+ * Table cell component (td).
165
+ *
166
+ * @element ds-table-cell
167
+ *
168
+ * @slot - Cell content
169
+ */
170
+ declare class DsTableCell extends DSElement {
171
+ static styles: never[];
172
+ /**
173
+ * Text alignment.
174
+ */
175
+ align: TableAlign;
176
+ /**
177
+ * Column span.
178
+ */
179
+ colspan: number;
180
+ /**
181
+ * Row span.
182
+ */
183
+ rowspan: number;
184
+ render(): TemplateResult;
185
+ }
186
+ declare global {
187
+ interface HTMLElementTagNameMap {
188
+ "ds-table-cell": DsTableCell;
189
+ }
190
+ }
191
+
192
+ type DataTableSortDirection = "asc" | "desc" | "none";
193
+ interface DataTableColumn {
194
+ id: string;
195
+ header: string;
196
+ accessor?: string;
197
+ sortable?: boolean;
198
+ resizable?: boolean;
199
+ width?: string;
200
+ minWidth?: string;
201
+ maxWidth?: string;
202
+ align?: "left" | "center" | "right";
203
+ }
204
+ interface DataTableSort {
205
+ column: string;
206
+ direction: DataTableSortDirection;
207
+ }
208
+ interface DataTablePagination {
209
+ page: number;
210
+ pageSize: number;
211
+ total: number;
212
+ }
213
+ /**
214
+ * DataTable component for large dataset display with virtualization,
215
+ * filtering, pagination, and column features.
216
+ *
217
+ * @element ds-data-table
218
+ *
219
+ * @slot - Table content (use Table sub-components)
220
+ *
221
+ * @fires ds-sort - When sort changes
222
+ * @fires ds-page-change - When page changes
223
+ * @fires ds-page-size-change - When page size changes
224
+ * @fires ds-selection-change - When row selection changes
225
+ *
226
+ * @cssprop --ds-data-table-border - Border style
227
+ */
228
+ declare class DsDataTable extends DSElement {
229
+ static styles: never[];
230
+ /**
231
+ * Enable virtualization for large datasets.
232
+ */
233
+ virtualized: boolean;
234
+ /**
235
+ * Row height for virtualization (in pixels).
236
+ */
237
+ rowHeight: number;
238
+ /**
239
+ * Number of overscan rows for virtualization.
240
+ */
241
+ overscan: number;
242
+ /**
243
+ * Total number of rows (for server-side pagination).
244
+ */
245
+ totalRows: number;
246
+ /**
247
+ * Current page (1-indexed).
248
+ */
249
+ page: number;
250
+ /**
251
+ * Page size.
252
+ */
253
+ pageSize: number;
254
+ /**
255
+ * Available page sizes.
256
+ */
257
+ pageSizes: string;
258
+ /**
259
+ * Enable row selection.
260
+ */
261
+ selectable: boolean;
262
+ /**
263
+ * Selection mode.
264
+ */
265
+ selectionMode: "single" | "multiple";
266
+ /**
267
+ * Show loading state.
268
+ */
269
+ loading: boolean;
270
+ /**
271
+ * Sort column ID.
272
+ */
273
+ sortColumn: string;
274
+ /**
275
+ * Sort direction.
276
+ */
277
+ sortDirection: DataTableSortDirection;
278
+ /**
279
+ * Filter/search query.
280
+ */
281
+ filter: string;
282
+ /**
283
+ * Empty state message.
284
+ */
285
+ emptyMessage: string;
286
+ private selectedRows;
287
+ private sortAnnouncement;
288
+ private get pageSizeOptions();
289
+ private get totalPages();
290
+ private get startRow();
291
+ private get endRow();
292
+ handleSort(column: string): void;
293
+ /**
294
+ * Announce sort state changes to screen readers.
295
+ * Uses a live region to provide immediate feedback.
296
+ */
297
+ private announceSortChange;
298
+ handlePageChange(newPage: number): void;
299
+ handlePageSizeChange(event: Event): void;
300
+ toggleRowSelection(rowId: string): void;
301
+ clearSelection(): void;
302
+ isRowSelected(rowId: string): boolean;
303
+ private renderPagination;
304
+ render(): TemplateResult;
305
+ }
306
+ declare global {
307
+ interface HTMLElementTagNameMap {
308
+ "ds-data-table": DsDataTable;
309
+ }
310
+ }
311
+
312
+ type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
313
+ type AvatarShape = "circle" | "square";
314
+ type AvatarStatus = "online" | "offline" | "away" | "busy";
315
+ /**
316
+ * Avatar component for user representation.
317
+ *
318
+ * @element ds-avatar
319
+ *
320
+ * @csspart image - The avatar image element
321
+ * @csspart initials - The initials fallback element
322
+ * @csspart icon - The icon fallback element
323
+ * @csspart status - The status indicator element
324
+ *
325
+ * @cssprop --ds-avatar-size - Avatar dimensions
326
+ * @cssprop --ds-avatar-radius - Border radius
327
+ * @cssprop --ds-avatar-bg - Background color for fallback
328
+ * @cssprop --ds-avatar-color - Text color for initials/icon
329
+ */
330
+ declare class DsAvatar extends DSElement {
331
+ static styles: never[];
332
+ /**
333
+ * Image source URL.
334
+ */
335
+ src: string;
336
+ /**
337
+ * Alt text for image.
338
+ */
339
+ alt: string;
340
+ /**
341
+ * User's name (used for initials fallback).
342
+ */
343
+ name: string;
344
+ /**
345
+ * Size variant.
346
+ */
347
+ size: AvatarSize;
348
+ /**
349
+ * Shape variant.
350
+ */
351
+ shape: AvatarShape;
352
+ /**
353
+ * Status indicator.
354
+ */
355
+ status?: AvatarStatus;
356
+ /**
357
+ * Whether to show status indicator.
358
+ */
359
+ showStatus: boolean;
360
+ private imageError;
361
+ private get initials();
362
+ private get showImage();
363
+ private get showInitials();
364
+ private get showIcon();
365
+ private handleImageError;
366
+ private handleImageLoad;
367
+ render(): TemplateResult;
368
+ }
369
+ declare global {
370
+ interface HTMLElementTagNameMap {
371
+ "ds-avatar": DsAvatar;
372
+ }
373
+ }
374
+
375
+ /**
376
+ * Avatar group component for displaying multiple avatars with overflow.
377
+ *
378
+ * @element ds-avatar-group
379
+ *
380
+ * @slot - Avatar elements to display
381
+ *
382
+ * @csspart overflow - The overflow indicator element
383
+ *
384
+ * @cssprop --ds-avatar-size - Avatar dimensions (inherited by children)
385
+ */
386
+ declare class DsAvatarGroup extends DSElement {
387
+ static styles: never[];
388
+ /**
389
+ * Maximum number of avatars to display before showing overflow.
390
+ */
391
+ max: number;
392
+ /**
393
+ * Size variant (inherited by child avatars).
394
+ */
395
+ size: AvatarSize;
396
+ private overflowCount;
397
+ private visibleAvatars;
398
+ connectedCallback(): void;
399
+ private updateAvatarVisibility;
400
+ render(): TemplateResult;
401
+ }
402
+ declare global {
403
+ interface HTMLElementTagNameMap {
404
+ "ds-avatar-group": DsAvatarGroup;
405
+ }
406
+ }
407
+
408
+ type BadgeVariant = "neutral" | "primary" | "secondary" | "success" | "warning" | "error" | "info";
409
+ type BadgeSize = "sm" | "md" | "lg";
410
+ type BadgePosition = "top-right" | "top-left" | "bottom-right" | "bottom-left";
411
+ /**
412
+ * Badge component for counts, notifications, and status indicators.
413
+ *
414
+ * @element ds-badge
415
+ *
416
+ * @cssprop --ds-badge-bg - Background color
417
+ * @cssprop --ds-badge-color - Text color
418
+ */
419
+ declare class DsBadge extends DSElement {
420
+ static styles: never[];
421
+ /**
422
+ * Badge content/count.
423
+ */
424
+ content: string;
425
+ /**
426
+ * Maximum count to show. Displays "{max}+" if exceeded.
427
+ */
428
+ max?: number;
429
+ /**
430
+ * Color variant.
431
+ */
432
+ variant: BadgeVariant;
433
+ /**
434
+ * Size variant.
435
+ */
436
+ size: BadgeSize;
437
+ /**
438
+ * Use outline style.
439
+ */
440
+ outline: boolean;
441
+ /**
442
+ * Show as dot (no content).
443
+ */
444
+ dot: boolean;
445
+ /**
446
+ * Position when used in wrapper.
447
+ */
448
+ position: BadgePosition;
449
+ /**
450
+ * Show pulse animation.
451
+ */
452
+ pulse: boolean;
453
+ private get displayContent();
454
+ render(): TemplateResult;
455
+ }
456
+ declare global {
457
+ interface HTMLElementTagNameMap {
458
+ "ds-badge": DsBadge;
459
+ }
460
+ }
461
+
462
+ type TagVariant = "neutral" | "primary" | "secondary" | "success" | "warning" | "error" | "info";
463
+ type TagSize = "sm" | "md" | "lg";
464
+ /**
465
+ * Tag component for categorization with optional remove action.
466
+ *
467
+ * @element ds-tag
468
+ *
469
+ * @slot - Tag content
470
+ * @slot icon - Optional leading icon
471
+ *
472
+ * @fires ds-remove - When the remove button is clicked
473
+ * @fires ds-click - When the tag is clicked (if clickable)
474
+ *
475
+ * @cssprop --ds-tag-bg - Background color
476
+ * @cssprop --ds-tag-color - Text color
477
+ */
478
+ declare class DsTag extends DSElement {
479
+ static styles: never[];
480
+ /**
481
+ * Color variant.
482
+ */
483
+ variant: TagVariant;
484
+ /**
485
+ * Size variant.
486
+ */
487
+ size: TagSize;
488
+ /**
489
+ * Use solid (filled) style instead of subtle.
490
+ */
491
+ solid: boolean;
492
+ /**
493
+ * Show remove button.
494
+ */
495
+ removable: boolean;
496
+ /**
497
+ * Make tag clickable/interactive.
498
+ */
499
+ clickable: boolean;
500
+ /**
501
+ * Disable the tag.
502
+ */
503
+ disabled: boolean;
504
+ /**
505
+ * Value for identification in events.
506
+ */
507
+ value: string;
508
+ private handleRemove;
509
+ private handleClick;
510
+ private handleKeyDown;
511
+ render(): TemplateResult;
512
+ }
513
+ declare global {
514
+ interface HTMLElementTagNameMap {
515
+ "ds-tag": DsTag;
516
+ }
517
+ }
518
+
519
+ type CalendarSize = "default" | "compact";
520
+ /**
521
+ * Calendar component for date selection.
522
+ *
523
+ * @element ds-calendar
524
+ *
525
+ * @fires ds-change - When a date is selected
526
+ * @fires ds-month-change - When the displayed month changes
527
+ *
528
+ * @cssprop --ds-calendar-width - Calendar width
529
+ * @cssprop --ds-calendar-cell-size - Day cell size
530
+ */
531
+ declare class DsCalendar extends DSElement {
532
+ static styles: never[];
533
+ /**
534
+ * Selected date (ISO format: YYYY-MM-DD).
535
+ */
536
+ value: string;
537
+ /**
538
+ * Minimum selectable date (ISO format).
539
+ */
540
+ min: string;
541
+ /**
542
+ * Maximum selectable date (ISO format).
543
+ */
544
+ max: string;
545
+ /**
546
+ * Disabled dates (comma-separated ISO format).
547
+ */
548
+ disabledDates: string;
549
+ /**
550
+ * Locale for month/day names.
551
+ */
552
+ locale: string;
553
+ /**
554
+ * Size variant.
555
+ */
556
+ size: CalendarSize;
557
+ /**
558
+ * First day of week (0 = Sunday, 1 = Monday).
559
+ */
560
+ firstDayOfWeek: number;
561
+ private viewDate;
562
+ private get selectedDate();
563
+ private get minDate();
564
+ private get maxDate();
565
+ private get disabledDateSet();
566
+ private get weekdayNames();
567
+ private get monthYearLabel();
568
+ private get calendarDays();
569
+ private isToday;
570
+ private isSelected;
571
+ private isDisabled;
572
+ private formatDateISO;
573
+ private handlePrevMonth;
574
+ private handleNextMonth;
575
+ private handleDateSelect;
576
+ private handleKeyDown;
577
+ render(): TemplateResult;
578
+ }
579
+ declare global {
580
+ interface HTMLElementTagNameMap {
581
+ "ds-calendar": DsCalendar;
582
+ }
583
+ }
584
+
585
+ type TreeSelectionMode = "single" | "multiple" | "none";
586
+ type TreeSize = "default" | "compact";
587
+ /**
588
+ * Tree root component for hierarchical data display.
589
+ *
590
+ * @element ds-tree
591
+ *
592
+ * @slot - TreeItem elements
593
+ *
594
+ * @fires ds-selection-change - When selection changes
595
+ *
596
+ * @cssprop --ds-tree-indent - Indentation for nested items
597
+ */
598
+ declare class DsTree extends DSElement {
599
+ static styles: never[];
600
+ /**
601
+ * Selection mode.
602
+ */
603
+ selectionMode: TreeSelectionMode;
604
+ /**
605
+ * Size variant.
606
+ */
607
+ size: TreeSize;
608
+ /**
609
+ * Show connecting lines.
610
+ */
611
+ lines: boolean;
612
+ /**
613
+ * Accessible label.
614
+ */
615
+ label: string;
616
+ /**
617
+ * Whether the tree is in a loading state.
618
+ * When true, sets aria-busy and disables keyboard navigation.
619
+ */
620
+ loading: boolean;
621
+ /**
622
+ * Text to display/announce during loading.
623
+ */
624
+ loadingText: string;
625
+ /**
626
+ * Node IDs that are currently loading children.
627
+ * Allows for node-level loading indicators.
628
+ */
629
+ loadingNodes: Set<string> | string[];
630
+ private selectedItems;
631
+ /**
632
+ * Checks if a specific node is currently loading.
633
+ */
634
+ isNodeLoading(nodeId: string): boolean;
635
+ handleItemSelect(itemId: string): void;
636
+ isItemSelected(itemId: string): boolean;
637
+ render(): TemplateResult;
638
+ }
639
+ declare global {
640
+ interface HTMLElementTagNameMap {
641
+ "ds-tree": DsTree;
642
+ }
643
+ }
644
+
645
+ /**
646
+ * Tree item component for hierarchical nodes.
647
+ *
648
+ * @element ds-tree-item
649
+ *
650
+ * @slot - Item content (label)
651
+ * @slot icon - Optional leading icon
652
+ * @slot children - Nested TreeItem elements
653
+ *
654
+ * @fires ds-expand - When expand state changes
655
+ * @fires ds-select - When item is selected
656
+ * @fires ds-activate - When item is activated (Enter/double-click)
657
+ */
658
+ declare class DsTreeItem extends DSElement {
659
+ static styles: never[];
660
+ /**
661
+ * Unique item ID.
662
+ */
663
+ itemId: string;
664
+ /**
665
+ * Whether item is expanded.
666
+ */
667
+ expanded: boolean;
668
+ /**
669
+ * Whether item is selected.
670
+ */
671
+ selected: boolean;
672
+ /**
673
+ * Whether item is disabled.
674
+ */
675
+ disabled: boolean;
676
+ /**
677
+ * Whether this item is loading (e.g., fetching children).
678
+ * Can be set directly or inherited from tree's loadingNodes.
679
+ */
680
+ loading: boolean;
681
+ private hasChildren;
682
+ private _level;
683
+ private _setSize;
684
+ private _posInSet;
685
+ private get treeRoot();
686
+ /**
687
+ * Returns true if this item is loading (either directly or via tree's loadingNodes).
688
+ */
689
+ private get isLoading();
690
+ /**
691
+ * Returns true if the tree root is in a loading state.
692
+ */
693
+ private get isTreeLoading();
694
+ connectedCallback(): void;
695
+ /**
696
+ * Update ARIA position attributes for APG compliance.
697
+ * Provides screen readers with context like "Item 3 of 5, level 2".
698
+ */
699
+ private updateAriaPosition;
700
+ private updateHasChildren;
701
+ private handleExpandClick;
702
+ private handleContentClick;
703
+ private handleKeyDown;
704
+ render(): TemplateResult;
705
+ }
706
+ declare global {
707
+ interface HTMLElementTagNameMap {
708
+ "ds-tree-item": DsTreeItem;
709
+ }
710
+ }
711
+
712
+ type ListSelectionMode = "single" | "multiple" | "none";
713
+ type ListOrientation = "vertical" | "horizontal";
714
+ type ListSize = "default" | "compact" | "spacious";
715
+ /**
716
+ * List root component for collection display.
717
+ *
718
+ * @element ds-list
719
+ *
720
+ * @slot - ListItem elements
721
+ *
722
+ * @fires ds-selection-change - When selection changes
723
+ *
724
+ * @cssprop --ds-list-gap - Gap between items
725
+ */
726
+ declare class DsList extends DSElement {
727
+ static styles: never[];
728
+ /**
729
+ * Selection mode.
730
+ */
731
+ selectionMode: ListSelectionMode;
732
+ /**
733
+ * List orientation.
734
+ */
735
+ orientation: ListOrientation;
736
+ /**
737
+ * Size variant.
738
+ */
739
+ size: ListSize;
740
+ /**
741
+ * Show border around list.
742
+ */
743
+ bordered: boolean;
744
+ /**
745
+ * Accessible label.
746
+ */
747
+ label: string;
748
+ private selectedItems;
749
+ handleItemSelect(itemId: string): void;
750
+ isItemSelected(itemId: string): boolean;
751
+ render(): TemplateResult;
752
+ }
753
+ declare global {
754
+ interface HTMLElementTagNameMap {
755
+ "ds-list": DsList;
756
+ }
757
+ }
758
+
759
+ /**
760
+ * List item component for collection items.
761
+ *
762
+ * @element ds-list-item
763
+ *
764
+ * @slot - Item content
765
+ * @slot leading - Optional leading element (icon, avatar)
766
+ * @slot secondary - Optional secondary text
767
+ * @slot trailing - Optional trailing element (action, badge)
768
+ *
769
+ * @fires ds-select - When item is selected
770
+ * @fires ds-activate - When item is activated (Enter/double-click)
771
+ */
772
+ declare class DsListItem extends DSElement {
773
+ static styles: never[];
774
+ /**
775
+ * Unique item ID.
776
+ */
777
+ itemId: string;
778
+ /**
779
+ * Whether item is selected.
780
+ */
781
+ selected: boolean;
782
+ /**
783
+ * Whether item is disabled.
784
+ */
785
+ disabled: boolean;
786
+ /**
787
+ * Value for identification.
788
+ */
789
+ value: string;
790
+ private get listRoot();
791
+ private handleClick;
792
+ private handleKeyDown;
793
+ render(): TemplateResult;
794
+ }
795
+ declare global {
796
+ interface HTMLElementTagNameMap {
797
+ "ds-list-item": DsListItem;
798
+ }
799
+ }
800
+
801
+ declare class DsCard extends DSElement {
802
+ render(): lit.TemplateResult<1>;
803
+ }
804
+ declare global {
805
+ interface HTMLElementTagNameMap {
806
+ "ds-card": DsCard;
807
+ }
808
+ }
809
+
810
+ declare class DsCardHeader extends DSElement {
811
+ render(): lit.TemplateResult<1>;
812
+ }
813
+ declare global {
814
+ interface HTMLElementTagNameMap {
815
+ "ds-card-header": DsCardHeader;
816
+ }
817
+ }
818
+
819
+ declare class DsCardContent extends DSElement {
820
+ render(): lit.TemplateResult<1>;
821
+ }
822
+ declare global {
823
+ interface HTMLElementTagNameMap {
824
+ "ds-card-content": DsCardContent;
825
+ }
826
+ }
827
+
828
+ declare class DsCardFooter extends DSElement {
829
+ render(): lit.TemplateResult<1>;
830
+ }
831
+ declare global {
832
+ interface HTMLElementTagNameMap {
833
+ "ds-card-footer": DsCardFooter;
834
+ }
835
+ }
836
+
837
+ type SeparatorOrientation = "horizontal" | "vertical";
838
+ declare class DsSeparator extends DSElement {
839
+ /** Visual orientation of the separator */
840
+ orientation: SeparatorOrientation;
841
+ /** Whether the separator is purely decorative (no semantic meaning) */
842
+ decorative: boolean;
843
+ connectedCallback(): void;
844
+ updated(): void;
845
+ private updateAccessibility;
846
+ render(): lit.TemplateResult<1>;
847
+ }
848
+ declare global {
849
+ interface HTMLElementTagNameMap {
850
+ "ds-separator": DsSeparator;
851
+ }
852
+ }
853
+
854
+ declare class DsAspectRatio extends DSElement {
855
+ /**
856
+ * Aspect ratio as width/height (e.g., "16/9", "4/3", "1/1").
857
+ * Can also be a number (e.g., 1.777 for 16:9).
858
+ */
859
+ ratio: string;
860
+ updated(): void;
861
+ connectedCallback(): void;
862
+ private updateCssVariable;
863
+ private parseRatio;
864
+ render(): lit.TemplateResult<1>;
865
+ }
866
+ declare global {
867
+ interface HTMLElementTagNameMap {
868
+ "ds-aspect-ratio": DsAspectRatio;
869
+ }
870
+ }
871
+
872
+ export { type AvatarShape, type AvatarSize, type AvatarStatus, type BadgePosition, type BadgeSize, type BadgeVariant, type CalendarSize, type DataTableColumn, type DataTablePagination, type DataTableSort, type DataTableSortDirection, DsAspectRatio, DsAvatar, DsAvatarGroup, DsBadge, DsCalendar, DsCard, DsCardContent, DsCardFooter, DsCardHeader, DsDataTable, DsList, DsListItem, DsSeparator, DsTable, DsTableBody, DsTableCell, DsTableHead, DsTableHeader, DsTableRow, DsTag, DsTree, DsTreeItem, type ListOrientation, type ListSelectionMode, type ListSize, type SeparatorOrientation, type SortDirection, type TableAlign, type TableSize, type TagSize, type TagVariant, type TreeSelectionMode, type TreeSize };