@helixui/library 3.5.0 → 3.6.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.
@@ -2,6 +2,272 @@
2
2
  "schemaVersion": "1.0.0",
3
3
  "readme": "",
4
4
  "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "src/components/hx-action-bar/hx-action-bar.ts",
8
+ "declarations": [
9
+ {
10
+ "kind": "class",
11
+ "description": "A horizontal toolbar container for grouping related action buttons and controls.\nImplements the ARIA toolbar pattern with roving tabindex keyboard navigation.",
12
+ "name": "HelixActionBar",
13
+ "cssProperties": [
14
+ {
15
+ "description": "Bar background color (default variant).",
16
+ "name": "--hx-action-bar-bg",
17
+ "default": "transparent"
18
+ },
19
+ {
20
+ "description": "Bar border (default variant).",
21
+ "name": "--hx-action-bar-border",
22
+ "default": "none"
23
+ },
24
+ {
25
+ "description": "Inner padding.",
26
+ "name": "--hx-action-bar-padding",
27
+ "default": "var(--hx-space-2,0.5rem) var(--hx-space-3,0.75rem)"
28
+ },
29
+ {
30
+ "description": "Gap between slotted items.",
31
+ "name": "--hx-action-bar-gap",
32
+ "default": "var(--hx-space-2,0.5rem)"
33
+ },
34
+ {
35
+ "description": "Z-index when sticky or bottom position.",
36
+ "name": "--hx-action-bar-z-index",
37
+ "default": "10"
38
+ },
39
+ {
40
+ "description": "Padding.",
41
+ "name": "--hx-action-bar-padding-block-start",
42
+ "default": "0px"
43
+ },
44
+ {
45
+ "description": "Padding.",
46
+ "name": "--hx-action-bar-padding-block-end",
47
+ "default": "0px"
48
+ },
49
+ {
50
+ "description": "CSS custom property.",
51
+ "name": "--hx-border-radius-md"
52
+ },
53
+ {
54
+ "description": "Width.",
55
+ "name": "--hx-border-width-thin"
56
+ },
57
+ {
58
+ "description": "Color.",
59
+ "name": "--hx-color-neutral-0"
60
+ },
61
+ {
62
+ "description": "Color.",
63
+ "name": "--hx-color-neutral-200"
64
+ },
65
+ {
66
+ "description": "Color.",
67
+ "name": "--hx-color-neutral-50"
68
+ },
69
+ {
70
+ "description": "Size token.",
71
+ "name": "--hx-size-8"
72
+ },
73
+ {
74
+ "description": "Size token.",
75
+ "name": "--hx-size-10"
76
+ },
77
+ {
78
+ "description": "Size token.",
79
+ "name": "--hx-size-12"
80
+ },
81
+ {
82
+ "description": "Spacing token.",
83
+ "name": "--hx-space-1"
84
+ },
85
+ {
86
+ "description": "Spacing token.",
87
+ "name": "--hx-space-2"
88
+ },
89
+ {
90
+ "description": "Spacing token.",
91
+ "name": "--hx-space-3"
92
+ },
93
+ {
94
+ "description": "Spacing token.",
95
+ "name": "--hx-space-4"
96
+ }
97
+ ],
98
+ "cssParts": [
99
+ {
100
+ "description": "The root toolbar container element.",
101
+ "name": "base"
102
+ },
103
+ {
104
+ "description": "The start (left) slot wrapper.",
105
+ "name": "start"
106
+ },
107
+ {
108
+ "description": "The center (default) slot wrapper.",
109
+ "name": "center"
110
+ },
111
+ {
112
+ "description": "The end (right) slot wrapper.",
113
+ "name": "end"
114
+ },
115
+ {
116
+ "description": "The overflow slot wrapper (hidden when no overflow content).",
117
+ "name": "overflow"
118
+ }
119
+ ],
120
+ "slots": [
121
+ {
122
+ "description": "Left-aligned actions.",
123
+ "name": "start"
124
+ },
125
+ {
126
+ "description": "Center content (default slot).",
127
+ "name": ""
128
+ },
129
+ {
130
+ "description": "Right-aligned actions.",
131
+ "name": "end"
132
+ },
133
+ {
134
+ "description": "Actions revealed when the bar is constrained for space.",
135
+ "name": "overflow"
136
+ }
137
+ ],
138
+ "members": [
139
+ {
140
+ "kind": "field",
141
+ "name": "size",
142
+ "type": {
143
+ "text": "'sm' | 'md' | 'lg'"
144
+ },
145
+ "default": "'md'",
146
+ "description": "Size of the action bar — propagated as a data attribute to slotted children.",
147
+ "attribute": "hx-size",
148
+ "reflects": true
149
+ },
150
+ {
151
+ "kind": "field",
152
+ "name": "variant",
153
+ "type": {
154
+ "text": "'default' | 'outlined' | 'filled'"
155
+ },
156
+ "default": "'default'",
157
+ "description": "Visual variant controlling the bar background.",
158
+ "attribute": "variant",
159
+ "reflects": true
160
+ },
161
+ {
162
+ "kind": "field",
163
+ "name": "position",
164
+ "type": {
165
+ "text": "'top' | 'bottom' | 'sticky'"
166
+ },
167
+ "default": "'top'",
168
+ "description": "Position and sticky behavior of the action bar.\n- `top` — normal flow (default)\n- `sticky` — sticks to the top of the scroll container; add `scroll-padding-top` to the\n scroll container equal to the bar height to prevent anchor targets from scrolling behind it\n- `bottom` — sticks to the bottom of the scroll container with iOS safe-area-inset support",
169
+ "attribute": "position",
170
+ "reflects": true
171
+ },
172
+ {
173
+ "kind": "field",
174
+ "name": "accessibleLabel",
175
+ "type": {
176
+ "text": "string"
177
+ },
178
+ "default": "''",
179
+ "description": "Accessible label for the toolbar.\nRequired when multiple toolbars appear on the same page.\n\nAccepts both `accessible-label` and the standard `aria-label` HTML attribute.\nThe `accessible-label` attribute takes precedence when both are set.\n\nPreviously this was exposed as the `ariaLabel` JS property, which shadowed\nthe native `HTMLElement.ariaLabel`. That shadowing is removed; use\n`accessibleLabel` or the HTML attributes instead.",
180
+ "attribute": "accessible-label"
181
+ }
182
+ ],
183
+ "attributes": [
184
+ {
185
+ "name": "hx-size",
186
+ "type": {
187
+ "text": "'sm' | 'md' | 'lg'"
188
+ },
189
+ "default": "'md'",
190
+ "description": "Size of the action bar — propagated as a data attribute to slotted children.",
191
+ "fieldName": "size",
192
+ "attribute": "hx-size"
193
+ },
194
+ {
195
+ "name": "variant",
196
+ "type": {
197
+ "text": "'default' | 'outlined' | 'filled'"
198
+ },
199
+ "default": "'default'",
200
+ "description": "Visual variant controlling the bar background.",
201
+ "fieldName": "variant",
202
+ "attribute": "variant"
203
+ },
204
+ {
205
+ "name": "position",
206
+ "type": {
207
+ "text": "'top' | 'bottom' | 'sticky'"
208
+ },
209
+ "default": "'top'",
210
+ "description": "Position and sticky behavior of the action bar.\n- `top` — normal flow (default)\n- `sticky` — sticks to the top of the scroll container; add `scroll-padding-top` to the\n scroll container equal to the bar height to prevent anchor targets from scrolling behind it\n- `bottom` — sticks to the bottom of the scroll container with iOS safe-area-inset support",
211
+ "fieldName": "position",
212
+ "attribute": "position"
213
+ },
214
+ {
215
+ "name": "accessible-label",
216
+ "type": {
217
+ "text": "string"
218
+ },
219
+ "default": "''",
220
+ "description": "Accessible label for the toolbar.\nRequired when multiple toolbars appear on the same page.\n\nAccepts both `accessible-label` and the standard `aria-label` HTML attribute.\nThe `accessible-label` attribute takes precedence when both are set.\n\nPreviously this was exposed as the `ariaLabel` JS property, which shadowed\nthe native `HTMLElement.ariaLabel`. That shadowing is removed; use\n`accessibleLabel` or the HTML attributes instead.",
221
+ "fieldName": "accessibleLabel",
222
+ "attribute": "accessible-label"
223
+ }
224
+ ],
225
+ "superclass": {
226
+ "name": "HelixElement",
227
+ "module": "/src/base/index.js"
228
+ },
229
+ "tagName": "hx-action-bar",
230
+ "customElement": true,
231
+ "summary": "Horizontal action bar for grouping related controls.",
232
+ "helixMeta": {
233
+ "priorityTier": "P0"
234
+ }
235
+ }
236
+ ],
237
+ "exports": [
238
+ {
239
+ "kind": "js",
240
+ "name": "HelixActionBar",
241
+ "declaration": {
242
+ "name": "HelixActionBar",
243
+ "module": "src/components/hx-action-bar/hx-action-bar.ts"
244
+ }
245
+ },
246
+ {
247
+ "kind": "custom-element-definition",
248
+ "name": "hx-action-bar",
249
+ "declaration": {
250
+ "name": "HelixActionBar",
251
+ "module": "src/components/hx-action-bar/hx-action-bar.ts"
252
+ }
253
+ }
254
+ ]
255
+ },
256
+ {
257
+ "kind": "javascript-module",
258
+ "path": "src/components/hx-action-bar/index.ts",
259
+ "declarations": [],
260
+ "exports": [
261
+ {
262
+ "kind": "js",
263
+ "name": "HelixActionBar",
264
+ "declaration": {
265
+ "name": "HelixActionBar",
266
+ "module": "./hx-action-bar.js"
267
+ }
268
+ }
269
+ ]
270
+ },
5
271
  {
6
272
  "kind": "javascript-module",
7
273
  "path": "src/components/hx-accordion/hx-accordion-item.ts",
@@ -269,7 +535,10 @@
269
535
  },
270
536
  "tagName": "hx-accordion",
271
537
  "customElement": true,
272
- "summary": "Collapsible content sections with single or multi-expand modes."
538
+ "summary": "Collapsible content sections with single or multi-expand modes.",
539
+ "helixMeta": {
540
+ "priorityTier": "P2"
541
+ }
273
542
  }
274
543
  ],
275
544
  "exports": [
@@ -324,79 +593,187 @@
324
593
  },
325
594
  {
326
595
  "kind": "javascript-module",
327
- "path": "src/components/hx-action-bar/hx-action-bar.ts",
596
+ "path": "src/components/hx-alert/hx-alert.ts",
328
597
  "declarations": [
329
598
  {
330
599
  "kind": "class",
331
- "description": "A horizontal toolbar container for grouping related action buttons and controls.\nImplements the ARIA toolbar pattern with roving tabindex keyboard navigation.",
332
- "name": "HelixActionBar",
600
+ "description": "A feedback component for communicating status messages, warnings, and errors.\nCritical for healthcare patient safety alerts.",
601
+ "name": "HelixAlert",
333
602
  "cssProperties": [
334
603
  {
335
- "description": "Bar background color (default variant).",
336
- "name": "--hx-action-bar-bg",
337
- "default": "transparent"
604
+ "description": "Alert background color.",
605
+ "name": "--hx-alert-bg",
606
+ "default": "var(--hx-color-info-50)"
338
607
  },
339
608
  {
340
- "description": "Bar border (default variant).",
341
- "name": "--hx-action-bar-border",
342
- "default": "none"
609
+ "description": "Alert text color.",
610
+ "name": "--hx-alert-color",
611
+ "default": "var(--hx-color-info-800)"
343
612
  },
344
613
  {
345
- "description": "Inner padding.",
346
- "name": "--hx-action-bar-padding",
347
- "default": "var(--hx-space-2,0.5rem) var(--hx-space-3,0.75rem)"
614
+ "description": "Alert border color.",
615
+ "name": "--hx-alert-border-color",
616
+ "default": "var(--hx-color-info-200)"
348
617
  },
349
618
  {
350
- "description": "Gap between slotted items.",
351
- "name": "--hx-action-bar-gap",
352
- "default": "var(--hx-space-2,0.5rem)"
619
+ "description": "Alert border radius.",
620
+ "name": "--hx-alert-border-radius",
621
+ "default": "var(--hx-border-radius-md)"
353
622
  },
354
623
  {
355
- "description": "Z-index when sticky or bottom position.",
356
- "name": "--hx-action-bar-z-index",
357
- "default": "10"
624
+ "description": "Alert border width.",
625
+ "name": "--hx-alert-border-width",
626
+ "default": "var(--hx-border-width-thin)"
358
627
  },
359
628
  {
360
- "description": "Padding.",
361
- "name": "--hx-action-bar-padding-block-start",
362
- "default": "0px"
629
+ "description": "Alert padding.",
630
+ "name": "--hx-alert-padding",
631
+ "default": "var(--hx-space-4)"
363
632
  },
364
633
  {
365
- "description": "Padding.",
366
- "name": "--hx-action-bar-padding-block-end",
367
- "default": "0px"
634
+ "description": "Gap between alert elements.",
635
+ "name": "--hx-alert-gap",
636
+ "default": "var(--hx-space-3)"
637
+ },
638
+ {
639
+ "description": "Alert icon color.",
640
+ "name": "--hx-alert-icon-color",
641
+ "default": "var(--hx-color-info-500)"
642
+ },
643
+ {
644
+ "description": "Alert font family.",
645
+ "name": "--hx-alert-font-family",
646
+ "default": "var(--hx-font-family-sans)"
647
+ },
648
+ {
649
+ "description": "Minimum touch target size for the close button.",
650
+ "name": "--hx-touch-target-size",
651
+ "default": "44px"
652
+ },
653
+ {
654
+ "description": "Width of the left border accent stripe.",
655
+ "name": "--hx-alert-accent-width",
656
+ "default": "4px"
368
657
  },
369
658
  {
370
659
  "description": "CSS custom property.",
371
660
  "name": "--hx-border-radius-md"
372
661
  },
662
+ {
663
+ "description": "CSS custom property.",
664
+ "name": "--hx-border-radius-sm"
665
+ },
373
666
  {
374
667
  "description": "Width.",
375
668
  "name": "--hx-border-width-thin"
376
669
  },
377
670
  {
378
671
  "description": "Color.",
379
- "name": "--hx-color-neutral-0"
672
+ "name": "--hx-color-error-200"
380
673
  },
381
674
  {
382
675
  "description": "Color.",
383
- "name": "--hx-color-neutral-200"
676
+ "name": "--hx-color-error-50"
384
677
  },
385
678
  {
386
679
  "description": "Color.",
387
- "name": "--hx-color-neutral-50"
680
+ "name": "--hx-color-error-500"
388
681
  },
389
682
  {
390
- "description": "Size token.",
391
- "name": "--hx-size-8"
683
+ "description": "Color.",
684
+ "name": "--hx-color-error-800"
392
685
  },
393
686
  {
394
- "description": "Size token.",
395
- "name": "--hx-size-10"
687
+ "description": "Color.",
688
+ "name": "--hx-color-info-200"
396
689
  },
397
690
  {
398
- "description": "Size token.",
399
- "name": "--hx-size-12"
691
+ "description": "Color.",
692
+ "name": "--hx-color-info-50"
693
+ },
694
+ {
695
+ "description": "Color.",
696
+ "name": "--hx-color-info-500"
697
+ },
698
+ {
699
+ "description": "Color.",
700
+ "name": "--hx-color-info-800"
701
+ },
702
+ {
703
+ "description": "Color.",
704
+ "name": "--hx-color-primary-400"
705
+ },
706
+ {
707
+ "description": "Color.",
708
+ "name": "--hx-color-success-200"
709
+ },
710
+ {
711
+ "description": "Color.",
712
+ "name": "--hx-color-success-50"
713
+ },
714
+ {
715
+ "description": "Color.",
716
+ "name": "--hx-color-success-500"
717
+ },
718
+ {
719
+ "description": "Color.",
720
+ "name": "--hx-color-success-800"
721
+ },
722
+ {
723
+ "description": "Color.",
724
+ "name": "--hx-color-warning-200"
725
+ },
726
+ {
727
+ "description": "Color.",
728
+ "name": "--hx-color-warning-50"
729
+ },
730
+ {
731
+ "description": "Color.",
732
+ "name": "--hx-color-warning-500"
733
+ },
734
+ {
735
+ "description": "Color.",
736
+ "name": "--hx-color-warning-800"
737
+ },
738
+ {
739
+ "description": "Color.",
740
+ "name": "--hx-focus-ring-color"
741
+ },
742
+ {
743
+ "description": "CSS custom property.",
744
+ "name": "--hx-focus-ring-offset"
745
+ },
746
+ {
747
+ "description": "Width.",
748
+ "name": "--hx-focus-ring-width"
749
+ },
750
+ {
751
+ "description": "Font family.",
752
+ "name": "--hx-font-family-sans"
753
+ },
754
+ {
755
+ "description": "Font size.",
756
+ "name": "--hx-font-size-md"
757
+ },
758
+ {
759
+ "description": "Font size.",
760
+ "name": "--hx-font-size-sm"
761
+ },
762
+ {
763
+ "description": "Font weight.",
764
+ "name": "--hx-font-weight-semibold"
765
+ },
766
+ {
767
+ "description": "Line height.",
768
+ "name": "--hx-line-height-normal"
769
+ },
770
+ {
771
+ "description": "Opacity.",
772
+ "name": "--hx-opacity-100"
773
+ },
774
+ {
775
+ "description": "Opacity.",
776
+ "name": "--hx-opacity-75"
400
777
  },
401
778
  {
402
779
  "description": "Spacing token.",
@@ -413,459 +790,88 @@
413
790
  {
414
791
  "description": "Spacing token.",
415
792
  "name": "--hx-space-4"
793
+ },
794
+ {
795
+ "description": "Spacing token.",
796
+ "name": "--hx-space-5"
797
+ },
798
+ {
799
+ "description": "Transition timing.",
800
+ "name": "--hx-transition-fast"
416
801
  }
417
802
  ],
418
803
  "cssParts": [
419
804
  {
420
- "description": "The root toolbar container element.",
421
- "name": "base"
805
+ "description": "The outer alert container.",
806
+ "name": "alert"
422
807
  },
423
808
  {
424
- "description": "The start (left) slot wrapper.",
425
- "name": "start"
809
+ "description": "The title/headline container.",
810
+ "name": "title"
426
811
  },
427
812
  {
428
- "description": "The center (default) slot wrapper.",
429
- "name": "center"
813
+ "description": "The icon container.",
814
+ "name": "icon"
430
815
  },
431
816
  {
432
- "description": "The end (right) slot wrapper.",
433
- "name": "end"
817
+ "description": "The message content area.",
818
+ "name": "message"
434
819
  },
435
820
  {
436
- "description": "The overflow slot wrapper (hidden when no overflow content).",
437
- "name": "overflow"
821
+ "description": "The dismiss button (only rendered when dismissible).",
822
+ "name": "close-button"
823
+ },
824
+ {
825
+ "description": "The actions container.",
826
+ "name": "actions"
438
827
  }
439
828
  ],
440
829
  "slots": [
441
830
  {
442
- "description": "Left-aligned actions.",
443
- "name": "start"
831
+ "description": "Default slot for alert message content.",
832
+ "name": ""
444
833
  },
445
834
  {
446
- "description": "Center content (default slot).",
447
- "name": ""
835
+ "description": "Optional title/headline for the alert.",
836
+ "name": "title"
448
837
  },
449
838
  {
450
- "description": "Right-aligned actions.",
451
- "name": "end"
839
+ "description": "Custom icon to override the default variant icon.",
840
+ "name": "icon"
452
841
  },
453
842
  {
454
- "description": "Actions revealed when the bar is constrained for space.",
455
- "name": "overflow"
843
+ "description": "Action buttons rendered within the alert.",
844
+ "name": "actions"
456
845
  }
457
846
  ],
458
847
  "members": [
459
848
  {
460
849
  "kind": "field",
461
- "name": "size",
850
+ "name": "variant",
462
851
  "type": {
463
- "text": "'sm' | 'md' | 'lg'"
852
+ "text": "'info' | 'success' | 'warning' | 'error'"
464
853
  },
465
- "default": "'md'",
466
- "description": "Size of the action bar propagated as a data attribute to slotted children.",
467
- "attribute": "hx-size",
854
+ "default": "'info'",
855
+ "description": "Visual variant of the alert that determines colors and ARIA semantics.",
856
+ "attribute": "variant",
468
857
  "reflects": true
469
858
  },
470
859
  {
471
860
  "kind": "field",
472
- "name": "variant",
861
+ "name": "dismissible",
473
862
  "type": {
474
- "text": "'default' | 'outlined' | 'filled'"
863
+ "text": "boolean"
475
864
  },
476
- "default": "'default'",
477
- "description": "Visual variant controlling the bar background.",
478
- "attribute": "variant",
865
+ "default": "false",
866
+ "description": "Whether the alert can be dismissed by the user.",
867
+ "attribute": "dismissible",
479
868
  "reflects": true
480
869
  },
481
870
  {
482
871
  "kind": "field",
483
- "name": "position",
872
+ "name": "heading",
484
873
  "type": {
485
- "text": "'top' | 'bottom' | 'sticky'"
486
- },
487
- "default": "'top'",
488
- "description": "Position and sticky behavior of the action bar.\n- `top` — normal flow (default)\n- `sticky` — sticks to the top of the scroll container; add `scroll-padding-top` to the\n scroll container equal to the bar height to prevent anchor targets from scrolling behind it\n- `bottom` — sticks to the bottom of the scroll container with iOS safe-area-inset support",
489
- "attribute": "position",
490
- "reflects": true
491
- },
492
- {
493
- "kind": "field",
494
- "name": "accessibleLabel",
495
- "type": {
496
- "text": "string"
497
- },
498
- "default": "''",
499
- "description": "Accessible label for the toolbar.\nRequired when multiple toolbars appear on the same page.\n\nAccepts both `accessible-label` and the standard `aria-label` HTML attribute.\nThe `accessible-label` attribute takes precedence when both are set.\n\nPreviously this was exposed as the `ariaLabel` JS property, which shadowed\nthe native `HTMLElement.ariaLabel`. That shadowing is removed; use\n`accessibleLabel` or the HTML attributes instead.",
500
- "attribute": "accessible-label"
501
- }
502
- ],
503
- "attributes": [
504
- {
505
- "name": "hx-size",
506
- "type": {
507
- "text": "'sm' | 'md' | 'lg'"
508
- },
509
- "default": "'md'",
510
- "description": "Size of the action bar — propagated as a data attribute to slotted children.",
511
- "fieldName": "size",
512
- "attribute": "hx-size"
513
- },
514
- {
515
- "name": "variant",
516
- "type": {
517
- "text": "'default' | 'outlined' | 'filled'"
518
- },
519
- "default": "'default'",
520
- "description": "Visual variant controlling the bar background.",
521
- "fieldName": "variant",
522
- "attribute": "variant"
523
- },
524
- {
525
- "name": "position",
526
- "type": {
527
- "text": "'top' | 'bottom' | 'sticky'"
528
- },
529
- "default": "'top'",
530
- "description": "Position and sticky behavior of the action bar.\n- `top` — normal flow (default)\n- `sticky` — sticks to the top of the scroll container; add `scroll-padding-top` to the\n scroll container equal to the bar height to prevent anchor targets from scrolling behind it\n- `bottom` — sticks to the bottom of the scroll container with iOS safe-area-inset support",
531
- "fieldName": "position",
532
- "attribute": "position"
533
- },
534
- {
535
- "name": "accessible-label",
536
- "type": {
537
- "text": "string"
538
- },
539
- "default": "''",
540
- "description": "Accessible label for the toolbar.\nRequired when multiple toolbars appear on the same page.\n\nAccepts both `accessible-label` and the standard `aria-label` HTML attribute.\nThe `accessible-label` attribute takes precedence when both are set.\n\nPreviously this was exposed as the `ariaLabel` JS property, which shadowed\nthe native `HTMLElement.ariaLabel`. That shadowing is removed; use\n`accessibleLabel` or the HTML attributes instead.",
541
- "fieldName": "accessibleLabel",
542
- "attribute": "accessible-label"
543
- }
544
- ],
545
- "superclass": {
546
- "name": "HelixElement",
547
- "module": "/src/base/index.js"
548
- },
549
- "tagName": "hx-action-bar",
550
- "customElement": true,
551
- "summary": "Horizontal action bar for grouping related controls."
552
- }
553
- ],
554
- "exports": [
555
- {
556
- "kind": "js",
557
- "name": "HelixActionBar",
558
- "declaration": {
559
- "name": "HelixActionBar",
560
- "module": "src/components/hx-action-bar/hx-action-bar.ts"
561
- }
562
- },
563
- {
564
- "kind": "custom-element-definition",
565
- "name": "hx-action-bar",
566
- "declaration": {
567
- "name": "HelixActionBar",
568
- "module": "src/components/hx-action-bar/hx-action-bar.ts"
569
- }
570
- }
571
- ]
572
- },
573
- {
574
- "kind": "javascript-module",
575
- "path": "src/components/hx-action-bar/index.ts",
576
- "declarations": [],
577
- "exports": [
578
- {
579
- "kind": "js",
580
- "name": "HelixActionBar",
581
- "declaration": {
582
- "name": "HelixActionBar",
583
- "module": "./hx-action-bar.js"
584
- }
585
- }
586
- ]
587
- },
588
- {
589
- "kind": "javascript-module",
590
- "path": "src/components/hx-alert/hx-alert.ts",
591
- "declarations": [
592
- {
593
- "kind": "class",
594
- "description": "A feedback component for communicating status messages, warnings, and errors.\nCritical for healthcare patient safety alerts.",
595
- "name": "HelixAlert",
596
- "cssProperties": [
597
- {
598
- "description": "Alert background color.",
599
- "name": "--hx-alert-bg",
600
- "default": "var(--hx-color-info-50)"
601
- },
602
- {
603
- "description": "Alert text color.",
604
- "name": "--hx-alert-color",
605
- "default": "var(--hx-color-info-800)"
606
- },
607
- {
608
- "description": "Alert border color.",
609
- "name": "--hx-alert-border-color",
610
- "default": "var(--hx-color-info-200)"
611
- },
612
- {
613
- "description": "Alert border radius.",
614
- "name": "--hx-alert-border-radius",
615
- "default": "var(--hx-border-radius-md)"
616
- },
617
- {
618
- "description": "Alert border width.",
619
- "name": "--hx-alert-border-width",
620
- "default": "var(--hx-border-width-thin)"
621
- },
622
- {
623
- "description": "Alert padding.",
624
- "name": "--hx-alert-padding",
625
- "default": "var(--hx-space-4)"
626
- },
627
- {
628
- "description": "Gap between alert elements.",
629
- "name": "--hx-alert-gap",
630
- "default": "var(--hx-space-3)"
631
- },
632
- {
633
- "description": "Alert icon color.",
634
- "name": "--hx-alert-icon-color",
635
- "default": "var(--hx-color-info-500)"
636
- },
637
- {
638
- "description": "Alert font family.",
639
- "name": "--hx-alert-font-family",
640
- "default": "var(--hx-font-family-sans)"
641
- },
642
- {
643
- "description": "Minimum touch target size for the close button.",
644
- "name": "--hx-touch-target-size",
645
- "default": "44px"
646
- },
647
- {
648
- "description": "Width of the left border accent stripe.",
649
- "name": "--hx-alert-accent-width",
650
- "default": "4px"
651
- },
652
- {
653
- "description": "CSS custom property.",
654
- "name": "--hx-border-radius-md"
655
- },
656
- {
657
- "description": "CSS custom property.",
658
- "name": "--hx-border-radius-sm"
659
- },
660
- {
661
- "description": "Width.",
662
- "name": "--hx-border-width-thin"
663
- },
664
- {
665
- "description": "Color.",
666
- "name": "--hx-color-error-200"
667
- },
668
- {
669
- "description": "Color.",
670
- "name": "--hx-color-error-50"
671
- },
672
- {
673
- "description": "Color.",
674
- "name": "--hx-color-error-500"
675
- },
676
- {
677
- "description": "Color.",
678
- "name": "--hx-color-error-800"
679
- },
680
- {
681
- "description": "Color.",
682
- "name": "--hx-color-info-200"
683
- },
684
- {
685
- "description": "Color.",
686
- "name": "--hx-color-info-50"
687
- },
688
- {
689
- "description": "Color.",
690
- "name": "--hx-color-info-500"
691
- },
692
- {
693
- "description": "Color.",
694
- "name": "--hx-color-info-800"
695
- },
696
- {
697
- "description": "Color.",
698
- "name": "--hx-color-primary-400"
699
- },
700
- {
701
- "description": "Color.",
702
- "name": "--hx-color-success-200"
703
- },
704
- {
705
- "description": "Color.",
706
- "name": "--hx-color-success-50"
707
- },
708
- {
709
- "description": "Color.",
710
- "name": "--hx-color-success-500"
711
- },
712
- {
713
- "description": "Color.",
714
- "name": "--hx-color-success-800"
715
- },
716
- {
717
- "description": "Color.",
718
- "name": "--hx-color-warning-200"
719
- },
720
- {
721
- "description": "Color.",
722
- "name": "--hx-color-warning-50"
723
- },
724
- {
725
- "description": "Color.",
726
- "name": "--hx-color-warning-500"
727
- },
728
- {
729
- "description": "Color.",
730
- "name": "--hx-color-warning-800"
731
- },
732
- {
733
- "description": "Color.",
734
- "name": "--hx-focus-ring-color"
735
- },
736
- {
737
- "description": "CSS custom property.",
738
- "name": "--hx-focus-ring-offset"
739
- },
740
- {
741
- "description": "Width.",
742
- "name": "--hx-focus-ring-width"
743
- },
744
- {
745
- "description": "Font family.",
746
- "name": "--hx-font-family-sans"
747
- },
748
- {
749
- "description": "Font size.",
750
- "name": "--hx-font-size-md"
751
- },
752
- {
753
- "description": "Font size.",
754
- "name": "--hx-font-size-sm"
755
- },
756
- {
757
- "description": "Font weight.",
758
- "name": "--hx-font-weight-semibold"
759
- },
760
- {
761
- "description": "Line height.",
762
- "name": "--hx-line-height-normal"
763
- },
764
- {
765
- "description": "Opacity.",
766
- "name": "--hx-opacity-100"
767
- },
768
- {
769
- "description": "Opacity.",
770
- "name": "--hx-opacity-75"
771
- },
772
- {
773
- "description": "Spacing token.",
774
- "name": "--hx-space-1"
775
- },
776
- {
777
- "description": "Spacing token.",
778
- "name": "--hx-space-2"
779
- },
780
- {
781
- "description": "Spacing token.",
782
- "name": "--hx-space-3"
783
- },
784
- {
785
- "description": "Spacing token.",
786
- "name": "--hx-space-4"
787
- },
788
- {
789
- "description": "Spacing token.",
790
- "name": "--hx-space-5"
791
- },
792
- {
793
- "description": "Transition timing.",
794
- "name": "--hx-transition-fast"
795
- }
796
- ],
797
- "cssParts": [
798
- {
799
- "description": "The outer alert container.",
800
- "name": "alert"
801
- },
802
- {
803
- "description": "The title/headline container.",
804
- "name": "title"
805
- },
806
- {
807
- "description": "The icon container.",
808
- "name": "icon"
809
- },
810
- {
811
- "description": "The message content area.",
812
- "name": "message"
813
- },
814
- {
815
- "description": "The dismiss button (only rendered when dismissible).",
816
- "name": "close-button"
817
- },
818
- {
819
- "description": "The actions container.",
820
- "name": "actions"
821
- }
822
- ],
823
- "slots": [
824
- {
825
- "description": "Default slot for alert message content.",
826
- "name": ""
827
- },
828
- {
829
- "description": "Optional title/headline for the alert.",
830
- "name": "title"
831
- },
832
- {
833
- "description": "Custom icon to override the default variant icon.",
834
- "name": "icon"
835
- },
836
- {
837
- "description": "Action buttons rendered within the alert.",
838
- "name": "actions"
839
- }
840
- ],
841
- "members": [
842
- {
843
- "kind": "field",
844
- "name": "variant",
845
- "type": {
846
- "text": "'info' | 'success' | 'warning' | 'error'"
847
- },
848
- "default": "'info'",
849
- "description": "Visual variant of the alert that determines colors and ARIA semantics.",
850
- "attribute": "variant",
851
- "reflects": true
852
- },
853
- {
854
- "kind": "field",
855
- "name": "dismissible",
856
- "type": {
857
- "text": "boolean"
858
- },
859
- "default": "false",
860
- "description": "Whether the alert can be dismissed by the user.",
861
- "attribute": "dismissible",
862
- "reflects": true
863
- },
864
- {
865
- "kind": "field",
866
- "name": "heading",
867
- "type": {
868
- "text": "string"
874
+ "text": "string"
869
875
  },
870
876
  "default": "''",
871
877
  "description": "Optional heading text that provides context for the close button's accessible label.\nWhen provided, the close button is announced as \"Close [heading] alert\".\nWhen absent, the close button falls back to \"Close alert\".",
@@ -1047,7 +1053,10 @@
1047
1053
  },
1048
1054
  "tagName": "hx-alert",
1049
1055
  "customElement": true,
1050
- "summary": "Feedback alert for status messages with variant-based styling and ARIA live regions."
1056
+ "summary": "Feedback alert for status messages with variant-based styling and ARIA live regions.",
1057
+ "helixMeta": {
1058
+ "priorityTier": "P0"
1059
+ }
1051
1060
  }
1052
1061
  ],
1053
1062
  "exports": [
@@ -1373,7 +1382,10 @@
1373
1382
  },
1374
1383
  "tagName": "hx-avatar",
1375
1384
  "customElement": true,
1376
- "summary": "User avatar with image, initials, and fallback icon support for healthcare applications."
1385
+ "summary": "User avatar with image, initials, and fallback icon support for healthcare applications.",
1386
+ "helixMeta": {
1387
+ "priorityTier": "P2"
1388
+ }
1377
1389
  }
1378
1390
  ],
1379
1391
  "exports": [
@@ -1854,7 +1866,10 @@
1854
1866
  },
1855
1867
  "tagName": "hx-badge",
1856
1868
  "customElement": true,
1857
- "summary": "Presentational badge for status indicators, notification counts, and labels."
1869
+ "summary": "Presentational badge for status indicators, notification counts, and labels.",
1870
+ "helixMeta": {
1871
+ "priorityTier": "P2"
1872
+ }
1858
1873
  }
1859
1874
  ],
1860
1875
  "exports": [
@@ -2368,7 +2383,10 @@
2368
2383
  },
2369
2384
  "tagName": "hx-banner",
2370
2385
  "customElement": true,
2371
- "summary": "Full-width page-level banner for persistent notifications with variant-based styling and ARIA live regions."
2386
+ "summary": "Full-width page-level banner for persistent notifications with variant-based styling and ARIA live regions.",
2387
+ "helixMeta": {
2388
+ "priorityTier": "P0"
2389
+ }
2372
2390
  }
2373
2391
  ],
2374
2392
  "exports": [
@@ -2767,7 +2785,10 @@
2767
2785
  },
2768
2786
  "tagName": "hx-breadcrumb",
2769
2787
  "customElement": true,
2770
- "summary": "Navigation breadcrumb showing the page hierarchy. Works with Drupal's breadcrumb system."
2788
+ "summary": "Navigation breadcrumb showing the page hierarchy. Works with Drupal's breadcrumb system.",
2789
+ "helixMeta": {
2790
+ "priorityTier": "P0"
2791
+ }
2771
2792
  },
2772
2793
  {
2773
2794
  "kind": "variable",
@@ -3328,7 +3349,10 @@
3328
3349
  },
3329
3350
  "tagName": "hx-button",
3330
3351
  "customElement": true,
3331
- "summary": "Primary interactive element for triggering actions and form submission."
3352
+ "summary": "Primary interactive element for triggering actions and form submission.",
3353
+ "helixMeta": {
3354
+ "priorityTier": "P0"
3355
+ }
3332
3356
  }
3333
3357
  ],
3334
3358
  "exports": [
@@ -3478,7 +3502,10 @@
3478
3502
  },
3479
3503
  "tagName": "hx-button-group",
3480
3504
  "customElement": true,
3481
- "summary": "Groups hx-button elements into a horizontal or vertical action set with shared borders."
3505
+ "summary": "Groups hx-button elements into a horizontal or vertical action set with shared borders.",
3506
+ "helixMeta": {
3507
+ "priorityTier": "P0"
3508
+ }
3482
3509
  }
3483
3510
  ],
3484
3511
  "exports": [
@@ -3823,7 +3850,10 @@
3823
3850
  },
3824
3851
  "tagName": "hx-card",
3825
3852
  "customElement": true,
3826
- "summary": "Content container with image, heading, body, footer, and action slots."
3853
+ "summary": "Content container with image, heading, body, footer, and action slots.",
3854
+ "helixMeta": {
3855
+ "priorityTier": "P2"
3856
+ }
3827
3857
  }
3828
3858
  ],
3829
3859
  "exports": [
@@ -4448,7 +4478,10 @@
4448
4478
  },
4449
4479
  "tagName": "hx-carousel",
4450
4480
  "customElement": true,
4451
- "summary": "Scrollable carousel with navigation, pagination, autoplay, and an accessible label."
4481
+ "summary": "Scrollable carousel with navigation, pagination, autoplay, and an accessible label.",
4482
+ "helixMeta": {
4483
+ "priorityTier": "P2"
4484
+ }
4452
4485
  }
4453
4486
  ],
4454
4487
  "exports": [
@@ -5109,7 +5142,10 @@
5109
5142
  },
5110
5143
  "tagName": "hx-checkbox",
5111
5144
  "customElement": true,
5112
- "summary": "Form-associated checkbox with built-in label, error, and help text."
5145
+ "summary": "Form-associated checkbox with built-in label, error, and help text.",
5146
+ "helixMeta": {
5147
+ "priorityTier": "P0"
5148
+ }
5113
5149
  }
5114
5150
  ],
5115
5151
  "exports": [
@@ -5444,7 +5480,10 @@
5444
5480
  },
5445
5481
  "tagName": "hx-checkbox-group",
5446
5482
  "customElement": true,
5447
- "summary": "Form-associated checkbox group with label, validation, help text, and multi-value form submission."
5483
+ "summary": "Form-associated checkbox group with label, validation, help text, and multi-value form submission.",
5484
+ "helixMeta": {
5485
+ "priorityTier": "P0"
5486
+ }
5448
5487
  }
5449
5488
  ],
5450
5489
  "exports": [
@@ -5944,7 +5983,10 @@
5944
5983
  },
5945
5984
  "tagName": "hx-clinical-status",
5946
5985
  "customElement": true,
5947
- "summary": "Clinical status indicator for standardized healthcare alert fatigue prevention."
5986
+ "summary": "Clinical status indicator for standardized healthcare alert fatigue prevention.",
5987
+ "helixMeta": {
5988
+ "priorityTier": "P0"
5989
+ }
5948
5990
  }
5949
5991
  ],
5950
5992
  "exports": [
@@ -6436,7 +6478,10 @@
6436
6478
  },
6437
6479
  "tagName": "hx-code-snippet",
6438
6480
  "customElement": true,
6439
- "summary": "Styled code display component with copy-to-clipboard and expand/collapse."
6481
+ "summary": "Styled code display component with copy-to-clipboard and expand/collapse.",
6482
+ "helixMeta": {
6483
+ "priorityTier": "P2"
6484
+ }
6440
6485
  }
6441
6486
  ],
6442
6487
  "exports": [
@@ -7375,7 +7420,10 @@
7375
7420
  },
7376
7421
  "tagName": "hx-color-picker",
7377
7422
  "customElement": true,
7378
- "summary": "Color selection control with swatches, gradient picker, and formatted input."
7423
+ "summary": "Color selection control with swatches, gradient picker, and formatted input.",
7424
+ "helixMeta": {
7425
+ "priorityTier": "P0"
7426
+ }
7379
7427
  },
7380
7428
  {
7381
7429
  "kind": "variable",
@@ -8198,7 +8246,10 @@
8198
8246
  },
8199
8247
  "tagName": "hx-combobox",
8200
8248
  "customElement": true,
8201
- "summary": "Form-associated combobox with autocomplete, filtering, and keyboard navigation."
8249
+ "summary": "Form-associated combobox with autocomplete, filtering, and keyboard navigation.",
8250
+ "helixMeta": {
8251
+ "priorityTier": "P0"
8252
+ }
8202
8253
  }
8203
8254
  ],
8204
8255
  "exports": [
@@ -8405,7 +8456,10 @@
8405
8456
  },
8406
8457
  "tagName": "hx-container",
8407
8458
  "customElement": true,
8408
- "summary": "Layout primitive for constraining content width with consistent spacing."
8459
+ "summary": "Layout primitive for constraining content width with consistent spacing.",
8460
+ "helixMeta": {
8461
+ "priorityTier": "P2"
8462
+ }
8409
8463
  }
8410
8464
  ],
8411
8465
  "exports": [
@@ -8766,7 +8820,10 @@
8766
8820
  },
8767
8821
  "tagName": "hx-copy-button",
8768
8822
  "customElement": true,
8769
- "summary": "One-click clipboard copy with accessible success feedback."
8823
+ "summary": "One-click clipboard copy with accessible success feedback.",
8824
+ "helixMeta": {
8825
+ "priorityTier": "P0"
8826
+ }
8770
8827
  }
8771
8828
  ],
8772
8829
  "exports": [
@@ -9048,7 +9105,10 @@
9048
9105
  },
9049
9106
  "tagName": "hx-counter",
9050
9107
  "customElement": true,
9051
- "summary": "Displays an animated numeric counter that transitions to a target value."
9108
+ "summary": "Displays an animated numeric counter that transitions to a target value.",
9109
+ "helixMeta": {
9110
+ "priorityTier": "P2"
9111
+ }
9052
9112
  }
9053
9113
  ],
9054
9114
  "exports": [
@@ -9111,438 +9171,587 @@
9111
9171
  },
9112
9172
  {
9113
9173
  "kind": "javascript-module",
9114
- "path": "src/components/hx-data-table/hx-data-table.ts",
9174
+ "path": "src/components/hx-date-picker/hx-date-picker.ts",
9115
9175
  "declarations": [
9116
9176
  {
9117
9177
  "kind": "class",
9118
- "description": "An enterprise data table with sorting, row selection, and keyboard navigation.",
9119
- "name": "HelixDataTable",
9178
+ "description": "Date picker component for selecting dates with keyboard-accessible calendar popup.",
9179
+ "name": "HelixDatePicker",
9120
9180
  "cssProperties": [
9121
9181
  {
9122
- "description": "Header background color.",
9123
- "name": "--hx-data-table-header-bg",
9124
- "default": "var(--hx-color-neutral-50)"
9125
- },
9126
- {
9127
- "description": "Header text color.",
9128
- "name": "--hx-data-table-header-color",
9129
- "default": "var(--hx-color-neutral-700)"
9182
+ "description": "Input background color.",
9183
+ "name": "--hx-date-picker-bg",
9184
+ "default": "var(--hx-color-neutral-0)"
9130
9185
  },
9131
9186
  {
9132
- "description": "Cell text color.",
9133
- "name": "--hx-data-table-cell-color",
9134
- "default": "var(--hx-color-neutral-900)"
9187
+ "description": "Input text color.",
9188
+ "name": "--hx-date-picker-color",
9189
+ "default": "var(--hx-color-neutral-800)"
9135
9190
  },
9136
9191
  {
9137
- "description": "Row border color.",
9138
- "name": "--hx-data-table-border-color",
9139
- "default": "var(--hx-color-neutral-200)"
9192
+ "description": "Border color.",
9193
+ "name": "--hx-date-picker-border-color",
9194
+ "default": "var(--hx-color-neutral-300)"
9140
9195
  },
9141
9196
  {
9142
- "description": "Row hover background.",
9143
- "name": "--hx-data-table-row-hover-bg",
9144
- "default": "var(--hx-color-neutral-50)"
9197
+ "description": "Border radius.",
9198
+ "name": "--hx-date-picker-border-radius",
9199
+ "default": "var(--hx-border-radius-md)"
9145
9200
  },
9146
9201
  {
9147
- "description": "Selected row background.",
9148
- "name": "--hx-data-table-row-selected-bg",
9149
- "default": "var(--hx-color-primary-50)"
9202
+ "description": "Font family.",
9203
+ "name": "--hx-date-picker-font-family",
9204
+ "default": "var(--hx-font-family-sans)"
9150
9205
  },
9151
9206
  {
9152
- "description": "Empty state text color.",
9153
- "name": "--hx-data-table-empty-color",
9154
- "default": "var(--hx-color-neutral-600)"
9207
+ "description": "Focus ring color.",
9208
+ "name": "--hx-date-picker-focus-ring-color",
9209
+ "default": "var(--hx-focus-ring-color)"
9155
9210
  },
9156
9211
  {
9157
- "description": "Minimum table width before horizontal scrolling.",
9158
- "name": "--hx-data-table-min-width",
9159
- "default": "600px"
9212
+ "description": "Error state color.",
9213
+ "name": "--hx-date-picker-error-color",
9214
+ "default": "var(--hx-color-error-500)"
9160
9215
  },
9161
9216
  {
9162
- "description": "CSS custom property.",
9163
- "name": "--hx-data-table-font-family",
9164
- "default": "var(--hx-font-family-sans)"
9217
+ "description": "Label text color.",
9218
+ "name": "--hx-date-picker-label-color",
9219
+ "default": "var(--hx-color-neutral-700)"
9165
9220
  },
9166
9221
  {
9167
- "description": "CSS custom property.",
9168
- "name": "--hx-data-table-shimmer-duration",
9169
- "default": "1.5s"
9222
+ "description": "Trigger icon color.",
9223
+ "name": "--hx-date-picker-trigger-color",
9224
+ "default": "var(--hx-color-neutral-500)"
9170
9225
  },
9171
9226
  {
9172
- "description": "Font family.",
9173
- "name": "--hx-font-family-sans"
9227
+ "description": "Calendar background color.",
9228
+ "name": "--hx-date-picker-calendar-bg",
9229
+ "default": "var(--hx-color-neutral-0)"
9174
9230
  },
9175
9231
  {
9176
- "description": "Font size.",
9177
- "name": "--hx-font-size-sm"
9232
+ "description": "Calendar border color.",
9233
+ "name": "--hx-date-picker-calendar-border-color",
9234
+ "default": "var(--hx-color-neutral-200)"
9178
9235
  },
9179
9236
  {
9180
- "description": "Spacing token.",
9181
- "name": "--hx-space-3"
9237
+ "description": "Calendar minimum width.",
9238
+ "name": "--hx-date-picker-calendar-min-width",
9239
+ "default": "18rem"
9182
9240
  },
9183
9241
  {
9184
- "description": "Spacing token.",
9185
- "name": "--hx-space-4"
9242
+ "description": "Selected day background.",
9243
+ "name": "--hx-date-picker-selected-bg",
9244
+ "default": "var(--hx-color-primary-500)"
9186
9245
  },
9187
9246
  {
9188
- "description": "Width.",
9189
- "name": "--hx-border-width-thin"
9247
+ "description": "Selected day text color.",
9248
+ "name": "--hx-date-picker-selected-color",
9249
+ "default": "var(--hx-color-neutral-0)"
9190
9250
  },
9191
9251
  {
9192
- "description": "Font weight.",
9193
- "name": "--hx-font-weight-semibold"
9252
+ "description": "Today indicator color.",
9253
+ "name": "--hx-date-picker-today-color",
9254
+ "default": "var(--hx-color-primary-600)"
9194
9255
  },
9195
9256
  {
9196
- "description": "Minimum touch target size.",
9197
- "name": "--hx-touch-target-min"
9257
+ "description": "Calendar popup box shadow.",
9258
+ "name": "--hx-date-picker-calendar-shadow",
9259
+ "default": "0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1)"
9198
9260
  },
9199
9261
  {
9200
- "description": "Spacing token.",
9201
- "name": "--hx-space-2"
9262
+ "description": "Border radius.",
9263
+ "name": "--hx-date-picker-calendar-border-radius",
9264
+ "default": "var(--hx-border-radius-lg)"
9202
9265
  },
9203
9266
  {
9204
- "description": "Spacing token.",
9205
- "name": "--hx-space-1"
9267
+ "description": "Background color.",
9268
+ "name": "--hx-date-picker-selected-hover-bg",
9269
+ "default": "var(--hx-color-primary-600)"
9206
9270
  },
9207
9271
  {
9208
- "description": "Width.",
9209
- "name": "--hx-focus-ring-width"
9272
+ "description": "Color.",
9273
+ "name": "--hx-date-picker-trigger-hover-color",
9274
+ "default": "var(--hx-color-neutral-700)"
9210
9275
  },
9211
9276
  {
9212
- "description": "Color.",
9213
- "name": "--hx-focus-ring-color"
9277
+ "description": "CSS custom property.",
9278
+ "name": "--hx-border-radius-lg"
9214
9279
  },
9215
9280
  {
9216
9281
  "description": "CSS custom property.",
9217
- "name": "--hx-focus-ring-offset"
9282
+ "name": "--hx-border-radius-md"
9218
9283
  },
9219
9284
  {
9220
9285
  "description": "CSS custom property.",
9221
9286
  "name": "--hx-border-radius-sm"
9222
9287
  },
9223
9288
  {
9224
- "description": "Opacity.",
9225
- "name": "--hx-opacity-25"
9289
+ "description": "Width.",
9290
+ "name": "--hx-border-width-thin"
9226
9291
  },
9227
9292
  {
9228
- "description": "Transition timing.",
9229
- "name": "--hx-transition-fast"
9293
+ "description": "Color.",
9294
+ "name": "--hx-color-error-500"
9230
9295
  },
9231
9296
  {
9232
- "description": "Opacity.",
9233
- "name": "--hx-opacity-100"
9297
+ "description": "Color.",
9298
+ "name": "--hx-color-error-text"
9234
9299
  },
9235
9300
  {
9236
9301
  "description": "Color.",
9237
- "name": "--hx-color-primary-500"
9302
+ "name": "--hx-color-neutral-0"
9238
9303
  },
9239
9304
  {
9240
- "description": "Size token.",
9241
- "name": "--hx-size-4"
9305
+ "description": "Color.",
9306
+ "name": "--hx-color-neutral-100"
9242
9307
  },
9243
9308
  {
9244
9309
  "description": "Color.",
9245
- "name": "--hx-color-neutral-50"
9310
+ "name": "--hx-color-neutral-200"
9246
9311
  },
9247
9312
  {
9248
9313
  "description": "Color.",
9249
- "name": "--hx-color-neutral-200"
9314
+ "name": "--hx-color-neutral-300"
9250
9315
  },
9251
9316
  {
9252
9317
  "description": "Color.",
9253
- "name": "--hx-color-neutral-100"
9318
+ "name": "--hx-color-neutral-400"
9319
+ },
9320
+ {
9321
+ "description": "Color.",
9322
+ "name": "--hx-color-neutral-500"
9323
+ },
9324
+ {
9325
+ "description": "Color.",
9326
+ "name": "--hx-color-neutral-600"
9254
9327
  },
9255
9328
  {
9256
9329
  "description": "Color.",
9257
9330
  "name": "--hx-color-neutral-700"
9258
9331
  },
9332
+ {
9333
+ "description": "Color.",
9334
+ "name": "--hx-color-neutral-800"
9335
+ },
9259
9336
  {
9260
9337
  "description": "Color.",
9261
9338
  "name": "--hx-color-neutral-900"
9262
9339
  },
9263
9340
  {
9264
9341
  "description": "Color.",
9265
- "name": "--hx-color-neutral-600"
9342
+ "name": "--hx-color-primary-400"
9266
9343
  },
9267
9344
  {
9268
9345
  "description": "Color.",
9269
- "name": "--hx-color-primary-50"
9346
+ "name": "--hx-color-primary-500"
9347
+ },
9348
+ {
9349
+ "description": "Color.",
9350
+ "name": "--hx-color-primary-600"
9351
+ },
9352
+ {
9353
+ "description": "Color.",
9354
+ "name": "--hx-focus-ring-color"
9355
+ },
9356
+ {
9357
+ "description": "CSS custom property.",
9358
+ "name": "--hx-focus-ring-opacity"
9359
+ },
9360
+ {
9361
+ "description": "Width.",
9362
+ "name": "--hx-focus-ring-width"
9363
+ },
9364
+ {
9365
+ "description": "Font family.",
9366
+ "name": "--hx-font-family-sans"
9367
+ },
9368
+ {
9369
+ "description": "Font size.",
9370
+ "name": "--hx-font-size-lg"
9371
+ },
9372
+ {
9373
+ "description": "Font size.",
9374
+ "name": "--hx-font-size-md"
9375
+ },
9376
+ {
9377
+ "description": "Font size.",
9378
+ "name": "--hx-font-size-sm"
9379
+ },
9380
+ {
9381
+ "description": "Font size.",
9382
+ "name": "--hx-font-size-xs"
9383
+ },
9384
+ {
9385
+ "description": "Font weight.",
9386
+ "name": "--hx-font-weight-bold"
9387
+ },
9388
+ {
9389
+ "description": "Font weight.",
9390
+ "name": "--hx-font-weight-medium"
9391
+ },
9392
+ {
9393
+ "description": "Font weight.",
9394
+ "name": "--hx-font-weight-semibold"
9395
+ },
9396
+ {
9397
+ "description": "Line height.",
9398
+ "name": "--hx-line-height-normal"
9270
9399
  },
9271
9400
  {
9272
9401
  "description": "Opacity.",
9273
- "name": "--hx-opacity-50"
9402
+ "name": "--hx-opacity-disabled"
9403
+ },
9404
+ {
9405
+ "description": "Box shadow.",
9406
+ "name": "--hx-shadow-md"
9407
+ },
9408
+ {
9409
+ "description": "Size token.",
9410
+ "name": "--hx-size-10"
9411
+ },
9412
+ {
9413
+ "description": "Size token.",
9414
+ "name": "--hx-size-8"
9274
9415
  },
9275
9416
  {
9276
9417
  "description": "Spacing token.",
9277
- "name": "--hx-space-8"
9418
+ "name": "--hx-space-1"
9419
+ },
9420
+ {
9421
+ "description": "Spacing token.",
9422
+ "name": "--hx-space-2"
9423
+ },
9424
+ {
9425
+ "description": "Spacing token.",
9426
+ "name": "--hx-space-3"
9427
+ },
9428
+ {
9429
+ "description": "Minimum touch target size.",
9430
+ "name": "--hx-touch-target-min"
9431
+ },
9432
+ {
9433
+ "description": "Transition timing.",
9434
+ "name": "--hx-transition-fast"
9435
+ },
9436
+ {
9437
+ "description": "Z-index layer.",
9438
+ "name": "--hx-z-index-dropdown"
9278
9439
  }
9279
9440
  ],
9280
9441
  "cssParts": [
9281
9442
  {
9282
- "description": "The `<table>` element.",
9283
- "name": "table"
9443
+ "description": "The outer field container.",
9444
+ "name": "field"
9284
9445
  },
9285
9446
  {
9286
- "description": "The `<thead>` element.",
9287
- "name": "thead"
9447
+ "description": "The label element.",
9448
+ "name": "label"
9288
9449
  },
9289
9450
  {
9290
- "description": "The `<tbody>` element.",
9291
- "name": "tbody"
9451
+ "description": "The wrapper around input and trigger.",
9452
+ "name": "input-wrapper"
9292
9453
  },
9293
9454
  {
9294
- "description": "Each `<tr>` element.",
9295
- "name": "tr"
9455
+ "description": "The readonly text input displaying the formatted date.",
9456
+ "name": "input"
9296
9457
  },
9297
9458
  {
9298
- "description": "Each `<th>` element.",
9299
- "name": "th"
9459
+ "description": "The calendar icon button.",
9460
+ "name": "trigger"
9300
9461
  },
9301
9462
  {
9302
- "description": "Each `<td>` element.",
9303
- "name": "td"
9463
+ "description": "The calendar popup dialog.",
9464
+ "name": "calendar"
9304
9465
  },
9305
9466
  {
9306
- "description": "The sort indicator icon `<span>` inside sortable headers.",
9307
- "name": "sort-icon"
9467
+ "description": "The month navigation header.",
9468
+ "name": "month-nav"
9308
9469
  },
9309
9470
  {
9310
- "description": "Each `<input type=\"checkbox\">` element.",
9311
- "name": "checkbox"
9471
+ "description": "An individual day button in the calendar grid.",
9472
+ "name": "day"
9473
+ },
9474
+ {
9475
+ "description": "The help text container.",
9476
+ "name": "help-text"
9477
+ },
9478
+ {
9479
+ "description": "The error message container.",
9480
+ "name": "error"
9312
9481
  }
9313
9482
  ],
9314
9483
  "slots": [
9315
9484
  {
9316
- "description": "Content rendered above the table (e.g., search, actions).",
9317
- "name": "toolbar"
9485
+ "description": "Custom label content (overrides the label property).",
9486
+ "name": "label"
9318
9487
  },
9319
9488
  {
9320
- "description": "Custom empty-state content rendered when `rows` is empty and not loading.",
9321
- "name": "empty"
9489
+ "description": "Custom help text content (overrides the helpText property).",
9490
+ "name": "help-text"
9322
9491
  },
9323
9492
  {
9324
- "description": "Custom loading content rendered when `loading` is true.",
9325
- "name": "loading"
9493
+ "description": "Custom error content (overrides the error property).",
9494
+ "name": "error"
9326
9495
  }
9327
9496
  ],
9328
9497
  "members": [
9329
9498
  {
9330
9499
  "kind": "field",
9331
- "name": "columns",
9500
+ "name": "name",
9332
9501
  "type": {
9333
- "text": "HxDataTableColumn[]"
9502
+ "text": "string"
9334
9503
  },
9335
- "default": "[]",
9336
- "description": "Column definitions. Each item: `{ key, label, sortable?, width? }`.\nCan be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).",
9337
- "attribute": "columns"
9504
+ "default": "''",
9505
+ "description": "The name of the field, used for form submission.",
9506
+ "attribute": "name",
9507
+ "reflects": true
9338
9508
  },
9339
9509
  {
9340
9510
  "kind": "field",
9341
- "name": "rows",
9511
+ "name": "value",
9342
9512
  "type": {
9343
- "text": "Record<string, unknown>[]"
9513
+ "text": "string"
9344
9514
  },
9345
- "default": "[]",
9346
- "description": "Row data. Each item is a plain object keyed by column `key` values.\nCan be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).",
9347
- "attribute": "rows"
9515
+ "default": "''",
9516
+ "description": "The current value as an ISO 8601 date string (e.g. 2026-03-04).",
9517
+ "attribute": "value"
9348
9518
  },
9349
9519
  {
9350
9520
  "kind": "field",
9351
- "name": "selectable",
9521
+ "name": "min",
9352
9522
  "type": {
9353
- "text": "boolean"
9523
+ "text": "string"
9354
9524
  },
9355
- "default": "false",
9356
- "description": "When true, renders a checkbox column for row selection.",
9357
- "attribute": "selectable",
9358
- "reflects": true
9525
+ "default": "''",
9526
+ "description": "The minimum selectable date as an ISO 8601 string.",
9527
+ "attribute": "min"
9359
9528
  },
9360
9529
  {
9361
9530
  "kind": "field",
9362
- "name": "sortKey",
9531
+ "name": "max",
9363
9532
  "type": {
9364
9533
  "text": "string"
9365
9534
  },
9366
9535
  "default": "''",
9367
- "description": "The column key currently used for sorting.",
9368
- "attribute": "sort-key"
9536
+ "description": "The maximum selectable date as an ISO 8601 string.",
9537
+ "attribute": "max"
9369
9538
  },
9370
9539
  {
9371
9540
  "kind": "field",
9372
- "name": "sortDirection",
9541
+ "name": "label",
9373
9542
  "type": {
9374
- "text": "'asc' | 'desc'"
9543
+ "text": "string"
9375
9544
  },
9376
- "default": "'asc'",
9377
- "description": "Current sort direction.",
9378
- "attribute": "sort-direction"
9545
+ "default": "''",
9546
+ "description": "The visible label text.",
9547
+ "attribute": "label"
9379
9548
  },
9380
9549
  {
9381
9550
  "kind": "field",
9382
- "name": "loading",
9551
+ "name": "required",
9383
9552
  "type": {
9384
9553
  "text": "boolean"
9385
9554
  },
9386
9555
  "default": "false",
9387
- "description": "When true, renders a loading skeleton and sets `aria-busy=\"true\"` on the host.",
9388
- "attribute": "loading",
9556
+ "description": "Whether the field is required for form submission.",
9557
+ "attribute": "required",
9389
9558
  "reflects": true
9390
9559
  },
9391
9560
  {
9392
9561
  "kind": "field",
9393
- "name": "emptyLabel",
9562
+ "name": "disabled",
9394
9563
  "type": {
9395
- "text": "string"
9564
+ "text": "boolean"
9396
9565
  },
9397
- "default": "'No data'",
9398
- "description": "Text displayed in the default empty state when `rows` is empty and not loading.",
9399
- "attribute": "empty-label"
9566
+ "default": "false",
9567
+ "description": "Whether the field is disabled.",
9568
+ "attribute": "disabled",
9569
+ "reflects": true
9400
9570
  },
9401
9571
  {
9402
9572
  "kind": "field",
9403
- "name": "label",
9573
+ "name": "error",
9404
9574
  "type": {
9405
9575
  "text": "string"
9406
9576
  },
9407
9577
  "default": "''",
9408
- "description": "Accessible name for the table. Exposed via `aria-label` on the `<table>` element.\nRequired when the table has columns — a missing label is a WCAG 4.1.2 violation.",
9409
- "attribute": "label"
9578
+ "description": "Error message to display. When set, the field enters an error state.",
9579
+ "attribute": "error"
9410
9580
  },
9411
9581
  {
9412
9582
  "kind": "field",
9413
- "name": "selectAllLabel",
9583
+ "name": "helpText",
9414
9584
  "type": {
9415
9585
  "text": "string"
9416
9586
  },
9417
- "default": "'Select all rows'",
9418
- "description": "Accessible label for the \"select all rows\" checkbox in the table header.",
9419
- "attribute": "select-all-label"
9587
+ "default": "''",
9588
+ "description": "Help text displayed below the field for guidance.",
9589
+ "attribute": "help-text"
9420
9590
  },
9421
9591
  {
9422
9592
  "kind": "field",
9423
- "name": "stickyHeader",
9593
+ "name": "format",
9424
9594
  "type": {
9425
- "text": "boolean"
9595
+ "text": "string"
9426
9596
  },
9427
- "default": "false",
9428
- "description": "When true, the header row is sticky (position: sticky; top: 0).",
9429
- "attribute": "sticky-header",
9430
- "reflects": true
9597
+ "default": "'MM/DD/YYYY'",
9598
+ "description": "Display format hint shown as placeholder (e.g. MM/DD/YYYY).",
9599
+ "attribute": "format"
9431
9600
  },
9432
9601
  {
9433
9602
  "kind": "field",
9434
- "name": "page",
9603
+ "name": "locale",
9435
9604
  "type": {
9436
- "text": "number"
9605
+ "text": "string"
9437
9606
  },
9438
- "default": "1",
9439
- "description": "Current page (1-based). Set to 0 or leave at default (0) to disable pagination.",
9440
- "attribute": "page"
9607
+ "default": "'en-US'",
9608
+ "description": "Locale string used for formatting the display value.",
9609
+ "attribute": "locale"
9441
9610
  },
9442
9611
  {
9443
9612
  "kind": "field",
9444
- "name": "pageSize",
9445
- "type": {
9446
- "text": "number"
9447
- },
9448
- "default": "0",
9449
- "description": "Number of rows per page. Set to 0 to disable pagination (show all rows).",
9450
- "attribute": "page-size"
9451
- }
9452
- ],
9453
- "events": [
9454
- {
9455
- "name": "hx-sort",
9613
+ "name": "requiredMessage",
9456
9614
  "type": {
9457
- "text": "CustomEvent<HxDataTableSortState>"
9615
+ "text": "string"
9458
9616
  },
9459
- "description": "Dispatched when a sortable column header is clicked."
9617
+ "default": "'This field is required.'",
9618
+ "description": "Validation message shown when the field is required but empty.",
9619
+ "attribute": "required-message"
9460
9620
  },
9461
9621
  {
9462
- "name": "hx-row-click",
9622
+ "kind": "field",
9623
+ "name": "chooseDateLabel",
9463
9624
  "type": {
9464
- "text": "CustomEvent<{row: Record<string, unknown>, index: number}>"
9625
+ "text": "string"
9465
9626
  },
9466
- "description": "Dispatched when a data row is clicked."
9627
+ "default": "'Choose a date'",
9628
+ "description": "Accessible label for the calendar dialog.",
9629
+ "attribute": "choose-date-label"
9467
9630
  },
9468
9631
  {
9469
- "name": "hx-select",
9470
- "type": {
9471
- "text": "CustomEvent<{selectedRows: Record<string, unknown>[]}>"
9472
- },
9473
- "description": "Dispatched when row selection changes."
9474
- }
9475
- ],
9476
- "attributes": [
9477
- {
9478
- "name": "columns",
9632
+ "kind": "field",
9633
+ "name": "openCalendarLabel",
9479
9634
  "type": {
9480
- "text": "HxDataTableColumn[]"
9635
+ "text": "string"
9481
9636
  },
9482
- "default": "[]",
9483
- "description": "Column definitions. Each item: `{ key, label, sortable?, width? }`.\nCan be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).",
9484
- "fieldName": "columns",
9485
- "attribute": "columns"
9637
+ "default": "'Open calendar'",
9638
+ "description": "Accessible label for the calendar trigger button when the calendar is closed.",
9639
+ "attribute": "open-calendar-label"
9486
9640
  },
9487
9641
  {
9488
- "name": "rows",
9642
+ "kind": "field",
9643
+ "name": "closeCalendarLabel",
9489
9644
  "type": {
9490
- "text": "Record<string, unknown>[]"
9645
+ "text": "string"
9491
9646
  },
9492
- "default": "[]",
9493
- "description": "Row data. Each item is a plain object keyed by column `key` values.\nCan be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).",
9494
- "fieldName": "rows",
9495
- "attribute": "rows"
9647
+ "default": "'Close calendar'",
9648
+ "description": "Accessible label for the calendar trigger button when the calendar is open.",
9649
+ "attribute": "close-calendar-label"
9496
9650
  },
9497
9651
  {
9498
- "name": "selectable",
9652
+ "kind": "field",
9653
+ "name": "previousMonthLabel",
9499
9654
  "type": {
9500
- "text": "boolean"
9655
+ "text": "string"
9501
9656
  },
9502
- "default": "false",
9503
- "description": "When true, renders a checkbox column for row selection.",
9504
- "fieldName": "selectable",
9505
- "attribute": "selectable"
9657
+ "default": "'Previous month'",
9658
+ "description": "Accessible label for the previous month navigation button.",
9659
+ "attribute": "previous-month-label"
9506
9660
  },
9507
9661
  {
9508
- "name": "sort-key",
9662
+ "kind": "field",
9663
+ "name": "nextMonthLabel",
9509
9664
  "type": {
9510
9665
  "text": "string"
9511
9666
  },
9512
- "default": "''",
9513
- "description": "The column key currently used for sorting.",
9514
- "fieldName": "sortKey",
9515
- "attribute": "sort-key"
9667
+ "default": "'Next month'",
9668
+ "description": "Accessible label for the next month navigation button.",
9669
+ "attribute": "next-month-label"
9516
9670
  },
9517
9671
  {
9518
- "name": "sort-direction",
9672
+ "kind": "field",
9673
+ "name": "accessibleLabel",
9519
9674
  "type": {
9520
- "text": "'asc' | 'desc'"
9675
+ "text": "string | null"
9521
9676
  },
9522
- "default": "'asc'",
9523
- "description": "Current sort direction.",
9524
- "fieldName": "sortDirection",
9525
- "attribute": "sort-direction"
9677
+ "default": "null",
9678
+ "description": "Accessible name for screen readers, if different from the visible label.\nUses `accessible-label` attribute instead of `aria-label` to avoid\nARIAMixin shadowing on the host element. Highest-precedence naming source.",
9679
+ "attribute": "accessible-label"
9526
9680
  },
9527
9681
  {
9528
- "name": "loading",
9682
+ "kind": "field",
9683
+ "name": "_handleDocumentClick",
9684
+ "privacy": "private",
9685
+ "readonly": true
9686
+ },
9687
+ {
9688
+ "kind": "method",
9689
+ "name": "focus",
9690
+ "return": {
9691
+ "type": {
9692
+ "text": "void"
9693
+ }
9694
+ },
9695
+ "parameters": [
9696
+ {
9697
+ "name": "options",
9698
+ "optional": true,
9699
+ "type": {
9700
+ "text": "FocusOptions"
9701
+ }
9702
+ }
9703
+ ]
9704
+ }
9705
+ ],
9706
+ "events": [
9707
+ {
9708
+ "name": "hx-change",
9529
9709
  "type": {
9530
- "text": "boolean"
9710
+ "text": "CustomEvent<{value: string, date: Date | null}>"
9531
9711
  },
9532
- "default": "false",
9533
- "description": "When true, renders a loading skeleton and sets `aria-busy=\"true\"` on the host.",
9534
- "fieldName": "loading",
9535
- "attribute": "loading"
9712
+ "description": "Emitted when the selected date changes."
9713
+ }
9714
+ ],
9715
+ "attributes": [
9716
+ {
9717
+ "name": "name",
9718
+ "type": {
9719
+ "text": "string"
9720
+ },
9721
+ "default": "''",
9722
+ "description": "The name of the field, used for form submission.",
9723
+ "fieldName": "name",
9724
+ "attribute": "name"
9536
9725
  },
9537
9726
  {
9538
- "name": "empty-label",
9727
+ "name": "value",
9539
9728
  "type": {
9540
9729
  "text": "string"
9541
9730
  },
9542
- "default": "'No data'",
9543
- "description": "Text displayed in the default empty state when `rows` is empty and not loading.",
9544
- "fieldName": "emptyLabel",
9545
- "attribute": "empty-label"
9731
+ "default": "''",
9732
+ "description": "The current value as an ISO 8601 date string (e.g. 2026-03-04).",
9733
+ "fieldName": "value",
9734
+ "attribute": "value"
9735
+ },
9736
+ {
9737
+ "name": "min",
9738
+ "type": {
9739
+ "text": "string"
9740
+ },
9741
+ "default": "''",
9742
+ "description": "The minimum selectable date as an ISO 8601 string.",
9743
+ "fieldName": "min",
9744
+ "attribute": "min"
9745
+ },
9746
+ {
9747
+ "name": "max",
9748
+ "type": {
9749
+ "text": "string"
9750
+ },
9751
+ "default": "''",
9752
+ "description": "The maximum selectable date as an ISO 8601 string.",
9753
+ "fieldName": "max",
9754
+ "attribute": "max"
9546
9755
  },
9547
9756
  {
9548
9757
  "name": "label",
@@ -9550,904 +9759,761 @@
9550
9759
  "text": "string"
9551
9760
  },
9552
9761
  "default": "''",
9553
- "description": "Accessible name for the table. Exposed via `aria-label` on the `<table>` element.\nRequired when the table has columns — a missing label is a WCAG 4.1.2 violation.",
9762
+ "description": "The visible label text.",
9554
9763
  "fieldName": "label",
9555
9764
  "attribute": "label"
9556
9765
  },
9557
9766
  {
9558
- "name": "select-all-label",
9767
+ "name": "required",
9559
9768
  "type": {
9560
- "text": "string"
9769
+ "text": "boolean"
9561
9770
  },
9562
- "default": "'Select all rows'",
9563
- "description": "Accessible label for the \"select all rows\" checkbox in the table header.",
9564
- "fieldName": "selectAllLabel",
9565
- "attribute": "select-all-label"
9771
+ "default": "false",
9772
+ "description": "Whether the field is required for form submission.",
9773
+ "fieldName": "required",
9774
+ "attribute": "required"
9566
9775
  },
9567
9776
  {
9568
- "name": "sticky-header",
9777
+ "name": "disabled",
9569
9778
  "type": {
9570
9779
  "text": "boolean"
9571
9780
  },
9572
9781
  "default": "false",
9573
- "description": "When true, the header row is sticky (position: sticky; top: 0).",
9574
- "fieldName": "stickyHeader",
9575
- "attribute": "sticky-header"
9782
+ "description": "Whether the field is disabled.",
9783
+ "fieldName": "disabled",
9784
+ "attribute": "disabled"
9576
9785
  },
9577
9786
  {
9578
- "name": "page",
9787
+ "name": "error",
9579
9788
  "type": {
9580
- "text": "number"
9789
+ "text": "string"
9581
9790
  },
9582
- "default": "1",
9583
- "description": "Current page (1-based). Set to 0 or leave at default (0) to disable pagination.",
9584
- "fieldName": "page",
9585
- "attribute": "page"
9791
+ "default": "''",
9792
+ "description": "Error message to display. When set, the field enters an error state.",
9793
+ "fieldName": "error",
9794
+ "attribute": "error"
9586
9795
  },
9587
9796
  {
9588
- "name": "page-size",
9797
+ "name": "help-text",
9589
9798
  "type": {
9590
- "text": "number"
9799
+ "text": "string"
9591
9800
  },
9592
- "default": "0",
9593
- "description": "Number of rows per page. Set to 0 to disable pagination (show all rows).",
9594
- "fieldName": "pageSize",
9595
- "attribute": "page-size"
9801
+ "default": "''",
9802
+ "description": "Help text displayed below the field for guidance.",
9803
+ "fieldName": "helpText",
9804
+ "attribute": "help-text"
9805
+ },
9806
+ {
9807
+ "name": "format",
9808
+ "type": {
9809
+ "text": "string"
9810
+ },
9811
+ "default": "'MM/DD/YYYY'",
9812
+ "description": "Display format hint shown as placeholder (e.g. MM/DD/YYYY).",
9813
+ "fieldName": "format",
9814
+ "attribute": "format"
9815
+ },
9816
+ {
9817
+ "name": "locale",
9818
+ "type": {
9819
+ "text": "string"
9820
+ },
9821
+ "default": "'en-US'",
9822
+ "description": "Locale string used for formatting the display value.",
9823
+ "fieldName": "locale",
9824
+ "attribute": "locale"
9825
+ },
9826
+ {
9827
+ "name": "required-message",
9828
+ "type": {
9829
+ "text": "string"
9830
+ },
9831
+ "default": "'This field is required.'",
9832
+ "description": "Validation message shown when the field is required but empty.",
9833
+ "fieldName": "requiredMessage",
9834
+ "attribute": "required-message"
9835
+ },
9836
+ {
9837
+ "name": "choose-date-label",
9838
+ "type": {
9839
+ "text": "string"
9840
+ },
9841
+ "default": "'Choose a date'",
9842
+ "description": "Accessible label for the calendar dialog.",
9843
+ "fieldName": "chooseDateLabel",
9844
+ "attribute": "choose-date-label"
9845
+ },
9846
+ {
9847
+ "name": "open-calendar-label",
9848
+ "type": {
9849
+ "text": "string"
9850
+ },
9851
+ "default": "'Open calendar'",
9852
+ "description": "Accessible label for the calendar trigger button when the calendar is closed.",
9853
+ "fieldName": "openCalendarLabel",
9854
+ "attribute": "open-calendar-label"
9855
+ },
9856
+ {
9857
+ "name": "close-calendar-label",
9858
+ "type": {
9859
+ "text": "string"
9860
+ },
9861
+ "default": "'Close calendar'",
9862
+ "description": "Accessible label for the calendar trigger button when the calendar is open.",
9863
+ "fieldName": "closeCalendarLabel",
9864
+ "attribute": "close-calendar-label"
9865
+ },
9866
+ {
9867
+ "name": "previous-month-label",
9868
+ "type": {
9869
+ "text": "string"
9870
+ },
9871
+ "default": "'Previous month'",
9872
+ "description": "Accessible label for the previous month navigation button.",
9873
+ "fieldName": "previousMonthLabel",
9874
+ "attribute": "previous-month-label"
9875
+ },
9876
+ {
9877
+ "name": "next-month-label",
9878
+ "type": {
9879
+ "text": "string"
9880
+ },
9881
+ "default": "'Next month'",
9882
+ "description": "Accessible label for the next month navigation button.",
9883
+ "fieldName": "nextMonthLabel",
9884
+ "attribute": "next-month-label"
9885
+ },
9886
+ {
9887
+ "name": "accessible-label",
9888
+ "type": {
9889
+ "text": "string | null"
9890
+ },
9891
+ "default": "null",
9892
+ "description": "Accessible name for screen readers, if different from the visible label.\nUses `accessible-label` attribute instead of `aria-label` to avoid\nARIAMixin shadowing on the host element. Highest-precedence naming source.",
9893
+ "fieldName": "accessibleLabel",
9894
+ "attribute": "accessible-label"
9895
+ }
9896
+ ],
9897
+ "mixins": [
9898
+ {
9899
+ "name": "FormMixin",
9900
+ "module": "/src/mixins/FormMixin.js"
9596
9901
  }
9597
9902
  ],
9598
9903
  "superclass": {
9599
9904
  "name": "HelixElement",
9600
9905
  "module": "/src/base/index.js"
9601
9906
  },
9602
- "tagName": "hx-data-table",
9907
+ "tagName": "hx-date-picker",
9603
9908
  "customElement": true,
9604
- "summary": "Enterprise data table with sorting, selection, and responsive scroll."
9909
+ "summary": "Form-associated date picker with calendar popup and WCAG 2.1 AA accessibility.",
9910
+ "helixMeta": {
9911
+ "priorityTier": "P0"
9912
+ }
9605
9913
  }
9606
9914
  ],
9607
9915
  "exports": [
9608
9916
  {
9609
9917
  "kind": "js",
9610
- "name": "HelixDataTable",
9918
+ "name": "HelixDatePicker",
9611
9919
  "declaration": {
9612
- "name": "HelixDataTable",
9613
- "module": "src/components/hx-data-table/hx-data-table.ts"
9920
+ "name": "HelixDatePicker",
9921
+ "module": "src/components/hx-date-picker/hx-date-picker.ts"
9614
9922
  }
9615
9923
  },
9616
9924
  {
9617
9925
  "kind": "custom-element-definition",
9618
- "name": "hx-data-table",
9926
+ "name": "hx-date-picker",
9619
9927
  "declaration": {
9620
- "name": "HelixDataTable",
9621
- "module": "src/components/hx-data-table/hx-data-table.ts"
9928
+ "name": "HelixDatePicker",
9929
+ "module": "src/components/hx-date-picker/hx-date-picker.ts"
9622
9930
  }
9623
9931
  }
9624
9932
  ]
9625
9933
  },
9626
9934
  {
9627
9935
  "kind": "javascript-module",
9628
- "path": "src/components/hx-data-table/index.ts",
9936
+ "path": "src/components/hx-date-picker/index.ts",
9629
9937
  "declarations": [],
9630
9938
  "exports": [
9631
9939
  {
9632
9940
  "kind": "js",
9633
- "name": "HelixDataTable",
9634
- "declaration": {
9635
- "name": "HelixDataTable",
9636
- "module": "./hx-data-table.js"
9637
- }
9638
- },
9639
- {
9640
- "kind": "js",
9641
- "name": "HxDataTableColumn",
9642
- "declaration": {
9643
- "name": "HxDataTableColumn",
9644
- "module": "./hx-data-table.js"
9645
- }
9646
- },
9647
- {
9648
- "kind": "js",
9649
- "name": "HxDataTableSortState",
9650
- "declaration": {
9651
- "name": "HxDataTableSortState",
9652
- "module": "./hx-data-table.js"
9653
- }
9654
- },
9655
- {
9656
- "kind": "js",
9657
- "name": "HxDataTableSelectDetail",
9941
+ "name": "HelixDatePicker",
9658
9942
  "declaration": {
9659
- "name": "HxDataTableSelectDetail",
9660
- "module": "./hx-data-table.js"
9943
+ "name": "HelixDatePicker",
9944
+ "module": "./hx-date-picker.js"
9661
9945
  }
9662
9946
  },
9663
9947
  {
9664
9948
  "kind": "js",
9665
- "name": "HxDataTableRowClickDetail",
9949
+ "name": "HxDatePickerChangeDetail",
9666
9950
  "declaration": {
9667
- "name": "HxDataTableRowClickDetail",
9668
- "module": "./hx-data-table.js"
9951
+ "name": "HxDatePickerChangeDetail",
9952
+ "module": "./hx-date-picker.js"
9669
9953
  }
9670
9954
  }
9671
9955
  ]
9672
9956
  },
9673
9957
  {
9674
9958
  "kind": "javascript-module",
9675
- "path": "src/components/hx-date-picker/hx-date-picker.ts",
9959
+ "path": "src/components/hx-data-table/hx-data-table.ts",
9676
9960
  "declarations": [
9677
9961
  {
9678
9962
  "kind": "class",
9679
- "description": "Date picker component for selecting dates with keyboard-accessible calendar popup.",
9680
- "name": "HelixDatePicker",
9963
+ "description": "An enterprise data table with sorting, row selection, and keyboard navigation.",
9964
+ "name": "HelixDataTable",
9681
9965
  "cssProperties": [
9682
9966
  {
9683
- "description": "Input background color.",
9684
- "name": "--hx-date-picker-bg",
9685
- "default": "var(--hx-color-neutral-0)"
9967
+ "description": "Header background color.",
9968
+ "name": "--hx-data-table-header-bg",
9969
+ "default": "var(--hx-color-neutral-50)"
9686
9970
  },
9687
9971
  {
9688
- "description": "Input text color.",
9689
- "name": "--hx-date-picker-color",
9690
- "default": "var(--hx-color-neutral-800)"
9972
+ "description": "Header text color.",
9973
+ "name": "--hx-data-table-header-color",
9974
+ "default": "var(--hx-color-neutral-700)"
9691
9975
  },
9692
9976
  {
9693
- "description": "Border color.",
9694
- "name": "--hx-date-picker-border-color",
9695
- "default": "var(--hx-color-neutral-300)"
9977
+ "description": "Cell text color.",
9978
+ "name": "--hx-data-table-cell-color",
9979
+ "default": "var(--hx-color-neutral-900)"
9696
9980
  },
9697
9981
  {
9698
- "description": "Border radius.",
9699
- "name": "--hx-date-picker-border-radius",
9700
- "default": "var(--hx-border-radius-md)"
9982
+ "description": "Row border color.",
9983
+ "name": "--hx-data-table-border-color",
9984
+ "default": "var(--hx-color-neutral-200)"
9701
9985
  },
9702
9986
  {
9703
- "description": "Font family.",
9704
- "name": "--hx-date-picker-font-family",
9705
- "default": "var(--hx-font-family-sans)"
9987
+ "description": "Row hover background.",
9988
+ "name": "--hx-data-table-row-hover-bg",
9989
+ "default": "var(--hx-color-neutral-50)"
9706
9990
  },
9707
9991
  {
9708
- "description": "Focus ring color.",
9709
- "name": "--hx-date-picker-focus-ring-color",
9710
- "default": "var(--hx-focus-ring-color)"
9992
+ "description": "Selected row background.",
9993
+ "name": "--hx-data-table-row-selected-bg",
9994
+ "default": "var(--hx-color-primary-50)"
9711
9995
  },
9712
9996
  {
9713
- "description": "Error state color.",
9714
- "name": "--hx-date-picker-error-color",
9715
- "default": "var(--hx-color-error-500)"
9997
+ "description": "Empty state text color.",
9998
+ "name": "--hx-data-table-empty-color",
9999
+ "default": "var(--hx-color-neutral-600)"
9716
10000
  },
9717
10001
  {
9718
- "description": "Label text color.",
9719
- "name": "--hx-date-picker-label-color",
9720
- "default": "var(--hx-color-neutral-700)"
10002
+ "description": "Minimum table width before horizontal scrolling.",
10003
+ "name": "--hx-data-table-min-width",
10004
+ "default": "600px"
9721
10005
  },
9722
10006
  {
9723
- "description": "Trigger icon color.",
9724
- "name": "--hx-date-picker-trigger-color",
9725
- "default": "var(--hx-color-neutral-500)"
10007
+ "description": "CSS custom property.",
10008
+ "name": "--hx-data-table-font-family",
10009
+ "default": "var(--hx-font-family-sans)"
9726
10010
  },
9727
10011
  {
9728
- "description": "Calendar background color.",
9729
- "name": "--hx-date-picker-calendar-bg",
9730
- "default": "var(--hx-color-neutral-0)"
10012
+ "description": "CSS custom property.",
10013
+ "name": "--hx-data-table-shimmer-duration",
10014
+ "default": "1.5s"
9731
10015
  },
9732
10016
  {
9733
- "description": "Calendar border color.",
9734
- "name": "--hx-date-picker-calendar-border-color",
9735
- "default": "var(--hx-color-neutral-200)"
10017
+ "description": "Font family.",
10018
+ "name": "--hx-font-family-sans"
9736
10019
  },
9737
10020
  {
9738
- "description": "Calendar minimum width.",
9739
- "name": "--hx-date-picker-calendar-min-width",
9740
- "default": "18rem"
10021
+ "description": "Font size.",
10022
+ "name": "--hx-font-size-sm"
9741
10023
  },
9742
10024
  {
9743
- "description": "Selected day background.",
9744
- "name": "--hx-date-picker-selected-bg",
9745
- "default": "var(--hx-color-primary-500)"
10025
+ "description": "Spacing token.",
10026
+ "name": "--hx-space-3"
9746
10027
  },
9747
10028
  {
9748
- "description": "Selected day text color.",
9749
- "name": "--hx-date-picker-selected-color",
9750
- "default": "var(--hx-color-neutral-0)"
10029
+ "description": "Spacing token.",
10030
+ "name": "--hx-space-4"
9751
10031
  },
9752
10032
  {
9753
- "description": "Today indicator color.",
9754
- "name": "--hx-date-picker-today-color",
9755
- "default": "var(--hx-color-primary-600)"
10033
+ "description": "Width.",
10034
+ "name": "--hx-border-width-thin"
9756
10035
  },
9757
10036
  {
9758
- "description": "Calendar popup box shadow.",
9759
- "name": "--hx-date-picker-calendar-shadow",
9760
- "default": "0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1)"
10037
+ "description": "Font weight.",
10038
+ "name": "--hx-font-weight-semibold"
9761
10039
  },
9762
10040
  {
9763
- "description": "Border radius.",
9764
- "name": "--hx-date-picker-calendar-border-radius",
9765
- "default": "var(--hx-border-radius-lg)"
10041
+ "description": "Minimum touch target size.",
10042
+ "name": "--hx-touch-target-min"
9766
10043
  },
9767
10044
  {
9768
- "description": "Background color.",
9769
- "name": "--hx-date-picker-selected-hover-bg",
9770
- "default": "var(--hx-color-primary-600)"
10045
+ "description": "Spacing token.",
10046
+ "name": "--hx-space-2"
9771
10047
  },
9772
10048
  {
9773
- "description": "Color.",
9774
- "name": "--hx-date-picker-trigger-hover-color",
9775
- "default": "var(--hx-color-neutral-700)"
10049
+ "description": "Spacing token.",
10050
+ "name": "--hx-space-1"
9776
10051
  },
9777
10052
  {
9778
- "description": "CSS custom property.",
9779
- "name": "--hx-border-radius-lg"
10053
+ "description": "Width.",
10054
+ "name": "--hx-focus-ring-width"
9780
10055
  },
9781
10056
  {
9782
- "description": "CSS custom property.",
9783
- "name": "--hx-border-radius-md"
10057
+ "description": "Color.",
10058
+ "name": "--hx-focus-ring-color"
9784
10059
  },
9785
10060
  {
9786
10061
  "description": "CSS custom property.",
9787
- "name": "--hx-border-radius-sm"
9788
- },
9789
- {
9790
- "description": "Width.",
9791
- "name": "--hx-border-width-thin"
10062
+ "name": "--hx-focus-ring-offset"
9792
10063
  },
9793
10064
  {
9794
- "description": "Color.",
9795
- "name": "--hx-color-error-500"
10065
+ "description": "CSS custom property.",
10066
+ "name": "--hx-border-radius-sm"
9796
10067
  },
9797
10068
  {
9798
- "description": "Color.",
9799
- "name": "--hx-color-error-text"
10069
+ "description": "Opacity.",
10070
+ "name": "--hx-opacity-25"
9800
10071
  },
9801
10072
  {
9802
- "description": "Color.",
9803
- "name": "--hx-color-neutral-0"
10073
+ "description": "Transition timing.",
10074
+ "name": "--hx-transition-fast"
9804
10075
  },
9805
10076
  {
9806
- "description": "Color.",
9807
- "name": "--hx-color-neutral-100"
10077
+ "description": "Opacity.",
10078
+ "name": "--hx-opacity-100"
9808
10079
  },
9809
10080
  {
9810
10081
  "description": "Color.",
9811
- "name": "--hx-color-neutral-200"
10082
+ "name": "--hx-color-primary-500"
9812
10083
  },
9813
10084
  {
9814
- "description": "Color.",
9815
- "name": "--hx-color-neutral-300"
10085
+ "description": "Size token.",
10086
+ "name": "--hx-size-4"
9816
10087
  },
9817
10088
  {
9818
10089
  "description": "Color.",
9819
- "name": "--hx-color-neutral-400"
10090
+ "name": "--hx-color-neutral-50"
9820
10091
  },
9821
10092
  {
9822
10093
  "description": "Color.",
9823
- "name": "--hx-color-neutral-500"
10094
+ "name": "--hx-color-neutral-200"
9824
10095
  },
9825
10096
  {
9826
10097
  "description": "Color.",
9827
- "name": "--hx-color-neutral-600"
10098
+ "name": "--hx-color-neutral-100"
9828
10099
  },
9829
10100
  {
9830
10101
  "description": "Color.",
9831
10102
  "name": "--hx-color-neutral-700"
9832
10103
  },
9833
- {
9834
- "description": "Color.",
9835
- "name": "--hx-color-neutral-800"
9836
- },
9837
10104
  {
9838
10105
  "description": "Color.",
9839
10106
  "name": "--hx-color-neutral-900"
9840
10107
  },
9841
10108
  {
9842
10109
  "description": "Color.",
9843
- "name": "--hx-color-primary-400"
9844
- },
9845
- {
9846
- "description": "Color.",
9847
- "name": "--hx-color-primary-500"
9848
- },
9849
- {
9850
- "description": "Color.",
9851
- "name": "--hx-color-primary-600"
10110
+ "name": "--hx-color-neutral-600"
9852
10111
  },
9853
10112
  {
9854
10113
  "description": "Color.",
9855
- "name": "--hx-focus-ring-color"
9856
- },
9857
- {
9858
- "description": "CSS custom property.",
9859
- "name": "--hx-focus-ring-opacity"
9860
- },
9861
- {
9862
- "description": "Width.",
9863
- "name": "--hx-focus-ring-width"
9864
- },
9865
- {
9866
- "description": "Font family.",
9867
- "name": "--hx-font-family-sans"
9868
- },
9869
- {
9870
- "description": "Font size.",
9871
- "name": "--hx-font-size-lg"
9872
- },
9873
- {
9874
- "description": "Font size.",
9875
- "name": "--hx-font-size-md"
9876
- },
9877
- {
9878
- "description": "Font size.",
9879
- "name": "--hx-font-size-sm"
9880
- },
9881
- {
9882
- "description": "Font size.",
9883
- "name": "--hx-font-size-xs"
9884
- },
9885
- {
9886
- "description": "Font weight.",
9887
- "name": "--hx-font-weight-bold"
9888
- },
9889
- {
9890
- "description": "Font weight.",
9891
- "name": "--hx-font-weight-medium"
9892
- },
9893
- {
9894
- "description": "Font weight.",
9895
- "name": "--hx-font-weight-semibold"
9896
- },
9897
- {
9898
- "description": "Line height.",
9899
- "name": "--hx-line-height-normal"
10114
+ "name": "--hx-color-primary-50"
9900
10115
  },
9901
10116
  {
9902
10117
  "description": "Opacity.",
9903
- "name": "--hx-opacity-disabled"
9904
- },
9905
- {
9906
- "description": "Box shadow.",
9907
- "name": "--hx-shadow-md"
9908
- },
9909
- {
9910
- "description": "Size token.",
9911
- "name": "--hx-size-10"
9912
- },
9913
- {
9914
- "description": "Size token.",
9915
- "name": "--hx-size-8"
9916
- },
9917
- {
9918
- "description": "Spacing token.",
9919
- "name": "--hx-space-1"
9920
- },
9921
- {
9922
- "description": "Spacing token.",
9923
- "name": "--hx-space-2"
10118
+ "name": "--hx-opacity-50"
9924
10119
  },
9925
10120
  {
9926
10121
  "description": "Spacing token.",
9927
- "name": "--hx-space-3"
9928
- },
9929
- {
9930
- "description": "Minimum touch target size.",
9931
- "name": "--hx-touch-target-min"
9932
- },
9933
- {
9934
- "description": "Transition timing.",
9935
- "name": "--hx-transition-fast"
9936
- },
9937
- {
9938
- "description": "Z-index layer.",
9939
- "name": "--hx-z-index-dropdown"
10122
+ "name": "--hx-space-8"
9940
10123
  }
9941
10124
  ],
9942
10125
  "cssParts": [
9943
10126
  {
9944
- "description": "The outer field container.",
9945
- "name": "field"
9946
- },
9947
- {
9948
- "description": "The label element.",
9949
- "name": "label"
9950
- },
9951
- {
9952
- "description": "The wrapper around input and trigger.",
9953
- "name": "input-wrapper"
9954
- },
9955
- {
9956
- "description": "The readonly text input displaying the formatted date.",
9957
- "name": "input"
9958
- },
9959
- {
9960
- "description": "The calendar icon button.",
9961
- "name": "trigger"
9962
- },
9963
- {
9964
- "description": "The calendar popup dialog.",
9965
- "name": "calendar"
9966
- },
9967
- {
9968
- "description": "The month navigation header.",
9969
- "name": "month-nav"
10127
+ "description": "The `<table>` element.",
10128
+ "name": "table"
9970
10129
  },
9971
10130
  {
9972
- "description": "An individual day button in the calendar grid.",
9973
- "name": "day"
10131
+ "description": "The `<thead>` element.",
10132
+ "name": "thead"
9974
10133
  },
9975
10134
  {
9976
- "description": "The help text container.",
9977
- "name": "help-text"
10135
+ "description": "The `<tbody>` element.",
10136
+ "name": "tbody"
9978
10137
  },
9979
10138
  {
9980
- "description": "The error message container.",
9981
- "name": "error"
9982
- }
9983
- ],
9984
- "slots": [
9985
- {
9986
- "description": "Custom label content (overrides the label property).",
9987
- "name": "label"
10139
+ "description": "Each `<tr>` element.",
10140
+ "name": "tr"
9988
10141
  },
9989
10142
  {
9990
- "description": "Custom help text content (overrides the helpText property).",
9991
- "name": "help-text"
10143
+ "description": "Each `<th>` element.",
10144
+ "name": "th"
9992
10145
  },
9993
10146
  {
9994
- "description": "Custom error content (overrides the error property).",
9995
- "name": "error"
9996
- }
9997
- ],
9998
- "members": [
9999
- {
10000
- "kind": "field",
10001
- "name": "name",
10002
- "type": {
10003
- "text": "string"
10004
- },
10005
- "default": "''",
10006
- "description": "The name of the field, used for form submission.",
10007
- "attribute": "name",
10008
- "reflects": true
10147
+ "description": "Each `<td>` element.",
10148
+ "name": "td"
10009
10149
  },
10010
10150
  {
10011
- "kind": "field",
10012
- "name": "value",
10013
- "type": {
10014
- "text": "string"
10015
- },
10016
- "default": "''",
10017
- "description": "The current value as an ISO 8601 date string (e.g. 2026-03-04).",
10018
- "attribute": "value"
10151
+ "description": "The sort indicator icon `<span>` inside sortable headers.",
10152
+ "name": "sort-icon"
10019
10153
  },
10020
10154
  {
10021
- "kind": "field",
10022
- "name": "min",
10023
- "type": {
10024
- "text": "string"
10025
- },
10026
- "default": "''",
10027
- "description": "The minimum selectable date as an ISO 8601 string.",
10028
- "attribute": "min"
10155
+ "description": "Each `<input type=\"checkbox\">` element.",
10156
+ "name": "checkbox"
10157
+ }
10158
+ ],
10159
+ "slots": [
10160
+ {
10161
+ "description": "Content rendered above the table (e.g., search, actions).",
10162
+ "name": "toolbar"
10029
10163
  },
10030
10164
  {
10031
- "kind": "field",
10032
- "name": "max",
10033
- "type": {
10034
- "text": "string"
10035
- },
10036
- "default": "''",
10037
- "description": "The maximum selectable date as an ISO 8601 string.",
10038
- "attribute": "max"
10165
+ "description": "Custom empty-state content rendered when `rows` is empty and not loading.",
10166
+ "name": "empty"
10039
10167
  },
10168
+ {
10169
+ "description": "Custom loading content rendered when `loading` is true.",
10170
+ "name": "loading"
10171
+ }
10172
+ ],
10173
+ "members": [
10040
10174
  {
10041
10175
  "kind": "field",
10042
- "name": "label",
10176
+ "name": "columns",
10043
10177
  "type": {
10044
- "text": "string"
10178
+ "text": "HxDataTableColumn[]"
10045
10179
  },
10046
- "default": "''",
10047
- "description": "The visible label text.",
10048
- "attribute": "label"
10180
+ "default": "[]",
10181
+ "description": "Column definitions. Each item: `{ key, label, sortable?, width? }`.\nCan be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).",
10182
+ "attribute": "columns"
10049
10183
  },
10050
10184
  {
10051
10185
  "kind": "field",
10052
- "name": "required",
10186
+ "name": "rows",
10053
10187
  "type": {
10054
- "text": "boolean"
10188
+ "text": "Record<string, unknown>[]"
10055
10189
  },
10056
- "default": "false",
10057
- "description": "Whether the field is required for form submission.",
10058
- "attribute": "required",
10059
- "reflects": true
10190
+ "default": "[]",
10191
+ "description": "Row data. Each item is a plain object keyed by column `key` values.\nCan be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).",
10192
+ "attribute": "rows"
10060
10193
  },
10061
10194
  {
10062
10195
  "kind": "field",
10063
- "name": "disabled",
10196
+ "name": "selectable",
10064
10197
  "type": {
10065
10198
  "text": "boolean"
10066
10199
  },
10067
10200
  "default": "false",
10068
- "description": "Whether the field is disabled.",
10069
- "attribute": "disabled",
10201
+ "description": "When true, renders a checkbox column for row selection.",
10202
+ "attribute": "selectable",
10070
10203
  "reflects": true
10071
10204
  },
10072
10205
  {
10073
10206
  "kind": "field",
10074
- "name": "error",
10207
+ "name": "sortKey",
10075
10208
  "type": {
10076
10209
  "text": "string"
10077
10210
  },
10078
10211
  "default": "''",
10079
- "description": "Error message to display. When set, the field enters an error state.",
10080
- "attribute": "error"
10212
+ "description": "The column key currently used for sorting.",
10213
+ "attribute": "sort-key"
10081
10214
  },
10082
10215
  {
10083
10216
  "kind": "field",
10084
- "name": "helpText",
10217
+ "name": "sortDirection",
10085
10218
  "type": {
10086
- "text": "string"
10219
+ "text": "'asc' | 'desc'"
10087
10220
  },
10088
- "default": "''",
10089
- "description": "Help text displayed below the field for guidance.",
10090
- "attribute": "help-text"
10221
+ "default": "'asc'",
10222
+ "description": "Current sort direction.",
10223
+ "attribute": "sort-direction"
10091
10224
  },
10092
10225
  {
10093
10226
  "kind": "field",
10094
- "name": "format",
10227
+ "name": "loading",
10095
10228
  "type": {
10096
- "text": "string"
10229
+ "text": "boolean"
10097
10230
  },
10098
- "default": "'MM/DD/YYYY'",
10099
- "description": "Display format hint shown as placeholder (e.g. MM/DD/YYYY).",
10100
- "attribute": "format"
10231
+ "default": "false",
10232
+ "description": "When true, renders a loading skeleton and sets `aria-busy=\"true\"` on the host.",
10233
+ "attribute": "loading",
10234
+ "reflects": true
10101
10235
  },
10102
10236
  {
10103
10237
  "kind": "field",
10104
- "name": "locale",
10238
+ "name": "emptyLabel",
10105
10239
  "type": {
10106
10240
  "text": "string"
10107
10241
  },
10108
- "default": "'en-US'",
10109
- "description": "Locale string used for formatting the display value.",
10110
- "attribute": "locale"
10242
+ "default": "'No data'",
10243
+ "description": "Text displayed in the default empty state when `rows` is empty and not loading.",
10244
+ "attribute": "empty-label"
10111
10245
  },
10112
10246
  {
10113
10247
  "kind": "field",
10114
- "name": "requiredMessage",
10248
+ "name": "label",
10115
10249
  "type": {
10116
10250
  "text": "string"
10117
10251
  },
10118
- "default": "'This field is required.'",
10119
- "description": "Validation message shown when the field is required but empty.",
10120
- "attribute": "required-message"
10252
+ "default": "''",
10253
+ "description": "Accessible name for the table. Exposed via `aria-label` on the `<table>` element.\nRequired when the table has columns — a missing label is a WCAG 4.1.2 violation.",
10254
+ "attribute": "label"
10121
10255
  },
10122
10256
  {
10123
10257
  "kind": "field",
10124
- "name": "chooseDateLabel",
10258
+ "name": "selectAllLabel",
10125
10259
  "type": {
10126
10260
  "text": "string"
10127
10261
  },
10128
- "default": "'Choose a date'",
10129
- "description": "Accessible label for the calendar dialog.",
10130
- "attribute": "choose-date-label"
10262
+ "default": "'Select all rows'",
10263
+ "description": "Accessible label for the \"select all rows\" checkbox in the table header.",
10264
+ "attribute": "select-all-label"
10131
10265
  },
10132
10266
  {
10133
10267
  "kind": "field",
10134
- "name": "openCalendarLabel",
10268
+ "name": "stickyHeader",
10135
10269
  "type": {
10136
- "text": "string"
10270
+ "text": "boolean"
10137
10271
  },
10138
- "default": "'Open calendar'",
10139
- "description": "Accessible label for the calendar trigger button when the calendar is closed.",
10140
- "attribute": "open-calendar-label"
10272
+ "default": "false",
10273
+ "description": "When true, the header row is sticky (position: sticky; top: 0).",
10274
+ "attribute": "sticky-header",
10275
+ "reflects": true
10141
10276
  },
10142
10277
  {
10143
10278
  "kind": "field",
10144
- "name": "closeCalendarLabel",
10279
+ "name": "page",
10145
10280
  "type": {
10146
- "text": "string"
10281
+ "text": "number"
10147
10282
  },
10148
- "default": "'Close calendar'",
10149
- "description": "Accessible label for the calendar trigger button when the calendar is open.",
10150
- "attribute": "close-calendar-label"
10283
+ "default": "1",
10284
+ "description": "Current page (1-based). Set to 0 or leave at default (0) to disable pagination.",
10285
+ "attribute": "page"
10151
10286
  },
10152
10287
  {
10153
10288
  "kind": "field",
10154
- "name": "previousMonthLabel",
10289
+ "name": "pageSize",
10155
10290
  "type": {
10156
- "text": "string"
10291
+ "text": "number"
10157
10292
  },
10158
- "default": "'Previous month'",
10159
- "description": "Accessible label for the previous month navigation button.",
10160
- "attribute": "previous-month-label"
10161
- },
10293
+ "default": "0",
10294
+ "description": "Number of rows per page. Set to 0 to disable pagination (show all rows).",
10295
+ "attribute": "page-size"
10296
+ }
10297
+ ],
10298
+ "events": [
10162
10299
  {
10163
- "kind": "field",
10164
- "name": "nextMonthLabel",
10300
+ "name": "hx-sort",
10165
10301
  "type": {
10166
- "text": "string"
10302
+ "text": "CustomEvent<HxDataTableSortState>"
10167
10303
  },
10168
- "default": "'Next month'",
10169
- "description": "Accessible label for the next month navigation button.",
10170
- "attribute": "next-month-label"
10304
+ "description": "Dispatched when a sortable column header is clicked."
10171
10305
  },
10172
10306
  {
10173
- "kind": "field",
10174
- "name": "accessibleLabel",
10307
+ "name": "hx-row-click",
10175
10308
  "type": {
10176
- "text": "string | null"
10309
+ "text": "CustomEvent<{row: Record<string, unknown>, index: number}>"
10177
10310
  },
10178
- "default": "null",
10179
- "description": "Accessible name for screen readers, if different from the visible label.\nUses `accessible-label` attribute instead of `aria-label` to avoid\nARIAMixin shadowing on the host element. Highest-precedence naming source.",
10180
- "attribute": "accessible-label"
10181
- },
10182
- {
10183
- "kind": "field",
10184
- "name": "_handleDocumentClick",
10185
- "privacy": "private",
10186
- "readonly": true
10311
+ "description": "Dispatched when a data row is clicked."
10187
10312
  },
10188
10313
  {
10189
- "kind": "method",
10190
- "name": "focus",
10191
- "return": {
10192
- "type": {
10193
- "text": "void"
10194
- }
10195
- },
10196
- "parameters": [
10197
- {
10198
- "name": "options",
10199
- "optional": true,
10200
- "type": {
10201
- "text": "FocusOptions"
10202
- }
10203
- }
10204
- ]
10205
- }
10206
- ],
10207
- "events": [
10208
- {
10209
- "name": "hx-change",
10314
+ "name": "hx-select",
10210
10315
  "type": {
10211
- "text": "CustomEvent<{value: string, date: Date | null}>"
10316
+ "text": "CustomEvent<{selectedRows: Record<string, unknown>[]}>"
10212
10317
  },
10213
- "description": "Emitted when the selected date changes."
10318
+ "description": "Dispatched when row selection changes."
10214
10319
  }
10215
10320
  ],
10216
10321
  "attributes": [
10217
10322
  {
10218
- "name": "name",
10219
- "type": {
10220
- "text": "string"
10221
- },
10222
- "default": "''",
10223
- "description": "The name of the field, used for form submission.",
10224
- "fieldName": "name",
10225
- "attribute": "name"
10226
- },
10227
- {
10228
- "name": "value",
10323
+ "name": "columns",
10229
10324
  "type": {
10230
- "text": "string"
10325
+ "text": "HxDataTableColumn[]"
10231
10326
  },
10232
- "default": "''",
10233
- "description": "The current value as an ISO 8601 date string (e.g. 2026-03-04).",
10234
- "fieldName": "value",
10235
- "attribute": "value"
10327
+ "default": "[]",
10328
+ "description": "Column definitions. Each item: `{ key, label, sortable?, width? }`.\nCan be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).",
10329
+ "fieldName": "columns",
10330
+ "attribute": "columns"
10236
10331
  },
10237
10332
  {
10238
- "name": "min",
10333
+ "name": "rows",
10239
10334
  "type": {
10240
- "text": "string"
10335
+ "text": "Record<string, unknown>[]"
10241
10336
  },
10242
- "default": "''",
10243
- "description": "The minimum selectable date as an ISO 8601 string.",
10244
- "fieldName": "min",
10245
- "attribute": "min"
10337
+ "default": "[]",
10338
+ "description": "Row data. Each item is a plain object keyed by column `key` values.\nCan be set as a JS array or a JSON string (e.g., from a Drupal Twig attribute).",
10339
+ "fieldName": "rows",
10340
+ "attribute": "rows"
10246
10341
  },
10247
10342
  {
10248
- "name": "max",
10343
+ "name": "selectable",
10249
10344
  "type": {
10250
- "text": "string"
10345
+ "text": "boolean"
10251
10346
  },
10252
- "default": "''",
10253
- "description": "The maximum selectable date as an ISO 8601 string.",
10254
- "fieldName": "max",
10255
- "attribute": "max"
10347
+ "default": "false",
10348
+ "description": "When true, renders a checkbox column for row selection.",
10349
+ "fieldName": "selectable",
10350
+ "attribute": "selectable"
10256
10351
  },
10257
10352
  {
10258
- "name": "label",
10353
+ "name": "sort-key",
10259
10354
  "type": {
10260
10355
  "text": "string"
10261
10356
  },
10262
10357
  "default": "''",
10263
- "description": "The visible label text.",
10264
- "fieldName": "label",
10265
- "attribute": "label"
10358
+ "description": "The column key currently used for sorting.",
10359
+ "fieldName": "sortKey",
10360
+ "attribute": "sort-key"
10266
10361
  },
10267
10362
  {
10268
- "name": "required",
10363
+ "name": "sort-direction",
10269
10364
  "type": {
10270
- "text": "boolean"
10365
+ "text": "'asc' | 'desc'"
10271
10366
  },
10272
- "default": "false",
10273
- "description": "Whether the field is required for form submission.",
10274
- "fieldName": "required",
10275
- "attribute": "required"
10367
+ "default": "'asc'",
10368
+ "description": "Current sort direction.",
10369
+ "fieldName": "sortDirection",
10370
+ "attribute": "sort-direction"
10276
10371
  },
10277
10372
  {
10278
- "name": "disabled",
10373
+ "name": "loading",
10279
10374
  "type": {
10280
10375
  "text": "boolean"
10281
10376
  },
10282
10377
  "default": "false",
10283
- "description": "Whether the field is disabled.",
10284
- "fieldName": "disabled",
10285
- "attribute": "disabled"
10378
+ "description": "When true, renders a loading skeleton and sets `aria-busy=\"true\"` on the host.",
10379
+ "fieldName": "loading",
10380
+ "attribute": "loading"
10286
10381
  },
10287
10382
  {
10288
- "name": "error",
10383
+ "name": "empty-label",
10289
10384
  "type": {
10290
10385
  "text": "string"
10291
10386
  },
10292
- "default": "''",
10293
- "description": "Error message to display. When set, the field enters an error state.",
10294
- "fieldName": "error",
10295
- "attribute": "error"
10387
+ "default": "'No data'",
10388
+ "description": "Text displayed in the default empty state when `rows` is empty and not loading.",
10389
+ "fieldName": "emptyLabel",
10390
+ "attribute": "empty-label"
10296
10391
  },
10297
10392
  {
10298
- "name": "help-text",
10393
+ "name": "label",
10299
10394
  "type": {
10300
10395
  "text": "string"
10301
10396
  },
10302
10397
  "default": "''",
10303
- "description": "Help text displayed below the field for guidance.",
10304
- "fieldName": "helpText",
10305
- "attribute": "help-text"
10306
- },
10307
- {
10308
- "name": "format",
10309
- "type": {
10310
- "text": "string"
10311
- },
10312
- "default": "'MM/DD/YYYY'",
10313
- "description": "Display format hint shown as placeholder (e.g. MM/DD/YYYY).",
10314
- "fieldName": "format",
10315
- "attribute": "format"
10316
- },
10317
- {
10318
- "name": "locale",
10319
- "type": {
10320
- "text": "string"
10321
- },
10322
- "default": "'en-US'",
10323
- "description": "Locale string used for formatting the display value.",
10324
- "fieldName": "locale",
10325
- "attribute": "locale"
10326
- },
10327
- {
10328
- "name": "required-message",
10329
- "type": {
10330
- "text": "string"
10331
- },
10332
- "default": "'This field is required.'",
10333
- "description": "Validation message shown when the field is required but empty.",
10334
- "fieldName": "requiredMessage",
10335
- "attribute": "required-message"
10336
- },
10337
- {
10338
- "name": "choose-date-label",
10339
- "type": {
10340
- "text": "string"
10341
- },
10342
- "default": "'Choose a date'",
10343
- "description": "Accessible label for the calendar dialog.",
10344
- "fieldName": "chooseDateLabel",
10345
- "attribute": "choose-date-label"
10346
- },
10347
- {
10348
- "name": "open-calendar-label",
10349
- "type": {
10350
- "text": "string"
10351
- },
10352
- "default": "'Open calendar'",
10353
- "description": "Accessible label for the calendar trigger button when the calendar is closed.",
10354
- "fieldName": "openCalendarLabel",
10355
- "attribute": "open-calendar-label"
10398
+ "description": "Accessible name for the table. Exposed via `aria-label` on the `<table>` element.\nRequired when the table has columns — a missing label is a WCAG 4.1.2 violation.",
10399
+ "fieldName": "label",
10400
+ "attribute": "label"
10356
10401
  },
10357
10402
  {
10358
- "name": "close-calendar-label",
10403
+ "name": "select-all-label",
10359
10404
  "type": {
10360
10405
  "text": "string"
10361
10406
  },
10362
- "default": "'Close calendar'",
10363
- "description": "Accessible label for the calendar trigger button when the calendar is open.",
10364
- "fieldName": "closeCalendarLabel",
10365
- "attribute": "close-calendar-label"
10407
+ "default": "'Select all rows'",
10408
+ "description": "Accessible label for the \"select all rows\" checkbox in the table header.",
10409
+ "fieldName": "selectAllLabel",
10410
+ "attribute": "select-all-label"
10366
10411
  },
10367
10412
  {
10368
- "name": "previous-month-label",
10413
+ "name": "sticky-header",
10369
10414
  "type": {
10370
- "text": "string"
10415
+ "text": "boolean"
10371
10416
  },
10372
- "default": "'Previous month'",
10373
- "description": "Accessible label for the previous month navigation button.",
10374
- "fieldName": "previousMonthLabel",
10375
- "attribute": "previous-month-label"
10417
+ "default": "false",
10418
+ "description": "When true, the header row is sticky (position: sticky; top: 0).",
10419
+ "fieldName": "stickyHeader",
10420
+ "attribute": "sticky-header"
10376
10421
  },
10377
10422
  {
10378
- "name": "next-month-label",
10423
+ "name": "page",
10379
10424
  "type": {
10380
- "text": "string"
10425
+ "text": "number"
10381
10426
  },
10382
- "default": "'Next month'",
10383
- "description": "Accessible label for the next month navigation button.",
10384
- "fieldName": "nextMonthLabel",
10385
- "attribute": "next-month-label"
10427
+ "default": "1",
10428
+ "description": "Current page (1-based). Set to 0 or leave at default (0) to disable pagination.",
10429
+ "fieldName": "page",
10430
+ "attribute": "page"
10386
10431
  },
10387
10432
  {
10388
- "name": "accessible-label",
10433
+ "name": "page-size",
10389
10434
  "type": {
10390
- "text": "string | null"
10435
+ "text": "number"
10391
10436
  },
10392
- "default": "null",
10393
- "description": "Accessible name for screen readers, if different from the visible label.\nUses `accessible-label` attribute instead of `aria-label` to avoid\nARIAMixin shadowing on the host element. Highest-precedence naming source.",
10394
- "fieldName": "accessibleLabel",
10395
- "attribute": "accessible-label"
10396
- }
10397
- ],
10398
- "mixins": [
10399
- {
10400
- "name": "FormMixin",
10401
- "module": "/src/mixins/FormMixin.js"
10437
+ "default": "0",
10438
+ "description": "Number of rows per page. Set to 0 to disable pagination (show all rows).",
10439
+ "fieldName": "pageSize",
10440
+ "attribute": "page-size"
10402
10441
  }
10403
10442
  ],
10404
10443
  "superclass": {
10405
10444
  "name": "HelixElement",
10406
10445
  "module": "/src/base/index.js"
10407
10446
  },
10408
- "tagName": "hx-date-picker",
10447
+ "tagName": "hx-data-table",
10409
10448
  "customElement": true,
10410
- "summary": "Form-associated date picker with calendar popup and WCAG 2.1 AA accessibility."
10449
+ "summary": "Enterprise data table with sorting, selection, and responsive scroll.",
10450
+ "helixMeta": {
10451
+ "priorityTier": "P1"
10452
+ }
10411
10453
  }
10412
10454
  ],
10413
10455
  "exports": [
10414
10456
  {
10415
10457
  "kind": "js",
10416
- "name": "HelixDatePicker",
10458
+ "name": "HelixDataTable",
10417
10459
  "declaration": {
10418
- "name": "HelixDatePicker",
10419
- "module": "src/components/hx-date-picker/hx-date-picker.ts"
10460
+ "name": "HelixDataTable",
10461
+ "module": "src/components/hx-data-table/hx-data-table.ts"
10420
10462
  }
10421
10463
  },
10422
10464
  {
10423
10465
  "kind": "custom-element-definition",
10424
- "name": "hx-date-picker",
10466
+ "name": "hx-data-table",
10425
10467
  "declaration": {
10426
- "name": "HelixDatePicker",
10427
- "module": "src/components/hx-date-picker/hx-date-picker.ts"
10468
+ "name": "HelixDataTable",
10469
+ "module": "src/components/hx-data-table/hx-data-table.ts"
10428
10470
  }
10429
10471
  }
10430
10472
  ]
10431
10473
  },
10432
10474
  {
10433
10475
  "kind": "javascript-module",
10434
- "path": "src/components/hx-date-picker/index.ts",
10476
+ "path": "src/components/hx-data-table/index.ts",
10435
10477
  "declarations": [],
10436
10478
  "exports": [
10437
10479
  {
10438
10480
  "kind": "js",
10439
- "name": "HelixDatePicker",
10481
+ "name": "HelixDataTable",
10440
10482
  "declaration": {
10441
- "name": "HelixDatePicker",
10442
- "module": "./hx-date-picker.js"
10483
+ "name": "HelixDataTable",
10484
+ "module": "./hx-data-table.js"
10443
10485
  }
10444
10486
  },
10445
10487
  {
10446
10488
  "kind": "js",
10447
- "name": "HxDatePickerChangeDetail",
10489
+ "name": "HxDataTableColumn",
10448
10490
  "declaration": {
10449
- "name": "HxDatePickerChangeDetail",
10450
- "module": "./hx-date-picker.js"
10491
+ "name": "HxDataTableColumn",
10492
+ "module": "./hx-data-table.js"
10493
+ }
10494
+ },
10495
+ {
10496
+ "kind": "js",
10497
+ "name": "HxDataTableSortState",
10498
+ "declaration": {
10499
+ "name": "HxDataTableSortState",
10500
+ "module": "./hx-data-table.js"
10501
+ }
10502
+ },
10503
+ {
10504
+ "kind": "js",
10505
+ "name": "HxDataTableSelectDetail",
10506
+ "declaration": {
10507
+ "name": "HxDataTableSelectDetail",
10508
+ "module": "./hx-data-table.js"
10509
+ }
10510
+ },
10511
+ {
10512
+ "kind": "js",
10513
+ "name": "HxDataTableRowClickDetail",
10514
+ "declaration": {
10515
+ "name": "HxDataTableRowClickDetail",
10516
+ "module": "./hx-data-table.js"
10451
10517
  }
10452
10518
  }
10453
10519
  ]
@@ -10918,7 +10984,10 @@
10918
10984
  },
10919
10985
  "tagName": "hx-dialog",
10920
10986
  "customElement": true,
10921
- "summary": "Accessible dialog overlay for confirmations, forms, and detailed content."
10987
+ "summary": "Accessible dialog overlay for confirmations, forms, and detailed content.",
10988
+ "helixMeta": {
10989
+ "priorityTier": "P0"
10990
+ }
10922
10991
  }
10923
10992
  ],
10924
10993
  "exports": [
@@ -11134,7 +11203,10 @@
11134
11203
  },
11135
11204
  "tagName": "hx-divider",
11136
11205
  "customElement": true,
11137
- "summary": "Horizontal or vertical separator line with optional label."
11206
+ "summary": "Horizontal or vertical separator line with optional label.",
11207
+ "helixMeta": {
11208
+ "priorityTier": "P2"
11209
+ }
11138
11210
  }
11139
11211
  ],
11140
11212
  "exports": [
@@ -11639,7 +11711,10 @@
11639
11711
  },
11640
11712
  "tagName": "hx-drawer",
11641
11713
  "customElement": true,
11642
- "summary": "Slide-in panel overlay from any viewport edge."
11714
+ "summary": "Slide-in panel overlay from any viewport edge.",
11715
+ "helixMeta": {
11716
+ "priorityTier": "P0"
11717
+ }
11643
11718
  }
11644
11719
  ],
11645
11720
  "exports": [
@@ -11896,7 +11971,10 @@
11896
11971
  },
11897
11972
  "tagName": "hx-dropdown",
11898
11973
  "customElement": true,
11899
- "summary": "Button that opens a floating menu panel on click."
11974
+ "summary": "Button that opens a floating menu panel on click.",
11975
+ "helixMeta": {
11976
+ "priorityTier": "P0"
11977
+ }
11900
11978
  }
11901
11979
  ],
11902
11980
  "exports": [
@@ -12238,7 +12316,10 @@
12238
12316
  },
12239
12317
  "tagName": "hx-field",
12240
12318
  "customElement": true,
12241
- "summary": "Layout wrapper for label, control, help text, and error message."
12319
+ "summary": "Layout wrapper for label, control, help text, and error message.",
12320
+ "helixMeta": {
12321
+ "priorityTier": "P0"
12322
+ }
12242
12323
  }
12243
12324
  ],
12244
12325
  "exports": [
@@ -12455,7 +12536,10 @@
12455
12536
  },
12456
12537
  "tagName": "hx-field-label",
12457
12538
  "customElement": true,
12458
- "summary": "Standardized label for form fields."
12539
+ "summary": "Standardized label for form fields.",
12540
+ "helixMeta": {
12541
+ "priorityTier": "P0"
12542
+ }
12459
12543
  }
12460
12544
  ],
12461
12545
  "exports": [
@@ -13046,7 +13130,10 @@
13046
13130
  },
13047
13131
  "tagName": "hx-file-upload",
13048
13132
  "customElement": true,
13049
- "summary": "Form-associated file upload dropzone with drag-and-drop, validation, and progress tracking."
13133
+ "summary": "Form-associated file upload dropzone with drag-and-drop, validation, and progress tracking.",
13134
+ "helixMeta": {
13135
+ "priorityTier": "P0"
13136
+ }
13050
13137
  }
13051
13138
  ],
13052
13139
  "exports": [
@@ -13376,7 +13463,10 @@
13376
13463
  },
13377
13464
  "tagName": "hx-form",
13378
13465
  "customElement": true,
13379
- "summary": "Light DOM form wrapper with scoped styles for native and hx-* form elements."
13466
+ "summary": "Light DOM form wrapper with scoped styles for native and hx-* form elements.",
13467
+ "helixMeta": {
13468
+ "priorityTier": "P0"
13469
+ }
13380
13470
  }
13381
13471
  ],
13382
13472
  "exports": [
@@ -13717,7 +13807,10 @@
13717
13807
  },
13718
13808
  "tagName": "hx-format-date",
13719
13809
  "customElement": true,
13720
- "summary": "Inline date/time formatter using Intl APIs with semantic `<time>` output."
13810
+ "summary": "Inline date/time formatter using Intl APIs with semantic `<time>` output.",
13811
+ "helixMeta": {
13812
+ "priorityTier": "exempt"
13813
+ }
13721
13814
  }
13722
13815
  ],
13723
13816
  "exports": [
@@ -13944,7 +14037,10 @@
13944
14037
  },
13945
14038
  "tagName": "hx-grid",
13946
14039
  "customElement": true,
13947
- "summary": "CSS Grid layout primitive for building responsive grid layouts."
14040
+ "summary": "CSS Grid layout primitive for building responsive grid layouts.",
14041
+ "helixMeta": {
14042
+ "priorityTier": "P2"
14043
+ }
13948
14044
  },
13949
14045
  {
13950
14046
  "kind": "class",
@@ -14207,7 +14303,10 @@
14207
14303
  },
14208
14304
  "tagName": "hx-help-text",
14209
14305
  "customElement": true,
14210
- "summary": "Help text displayed below form controls for guidance or validation feedback."
14306
+ "summary": "Help text displayed below form controls for guidance or validation feedback.",
14307
+ "helixMeta": {
14308
+ "priorityTier": "P0"
14309
+ }
14211
14310
  }
14212
14311
  ],
14213
14312
  "exports": [
@@ -14421,7 +14520,10 @@
14421
14520
  },
14422
14521
  "tagName": "hx-icon",
14423
14522
  "customElement": true,
14424
- "summary": "SVG icon with sprite and inline fetch modes for healthcare applications."
14523
+ "summary": "SVG icon with sprite and inline fetch modes for healthcare applications.",
14524
+ "helixMeta": {
14525
+ "priorityTier": "P2"
14526
+ }
14425
14527
  }
14426
14528
  ],
14427
14529
  "exports": [
@@ -14852,7 +14954,10 @@
14852
14954
  },
14853
14955
  "tagName": "hx-icon-button",
14854
14956
  "customElement": true,
14855
- "summary": "Icon-only action button with full accessibility support."
14957
+ "summary": "Icon-only action button with full accessibility support.",
14958
+ "helixMeta": {
14959
+ "priorityTier": "P0"
14960
+ }
14856
14961
  }
14857
14962
  ],
14858
14963
  "exports": [
@@ -15241,7 +15346,10 @@
15241
15346
  },
15242
15347
  "tagName": "hx-image",
15243
15348
  "customElement": true,
15244
- "summary": "Accessible image wrapper with lazy loading, fallback, srcset, and aspect ratio control."
15349
+ "summary": "Accessible image wrapper with lazy loading, fallback, srcset, and aspect ratio control.",
15350
+ "helixMeta": {
15351
+ "priorityTier": "P2"
15352
+ }
15245
15353
  }
15246
15354
  ],
15247
15355
  "exports": [
@@ -15591,7 +15699,10 @@
15591
15699
  },
15592
15700
  "tagName": "hx-link",
15593
15701
  "customElement": true,
15594
- "summary": "Accessible hyperlink with external-link detection, disabled state,\nand download support."
15702
+ "summary": "Accessible hyperlink with external-link detection, disabled state,\nand download support.",
15703
+ "helixMeta": {
15704
+ "priorityTier": "P1"
15705
+ }
15595
15706
  }
15596
15707
  ],
15597
15708
  "exports": [
@@ -16006,7 +16117,10 @@
16006
16117
  },
16007
16118
  "tagName": "hx-list",
16008
16119
  "customElement": true,
16009
- "summary": "Container for list items with optional dividers and interactive selection."
16120
+ "summary": "Container for list items with optional dividers and interactive selection.",
16121
+ "helixMeta": {
16122
+ "priorityTier": "P1"
16123
+ }
16010
16124
  }
16011
16125
  ],
16012
16126
  "exports": [
@@ -16503,7 +16617,10 @@
16503
16617
  },
16504
16618
  "tagName": "hx-menu",
16505
16619
  "customElement": true,
16506
- "summary": "Context/action menu with keyboard-navigable items."
16620
+ "summary": "Context/action menu with keyboard-navigable items.",
16621
+ "helixMeta": {
16622
+ "priorityTier": "P0"
16623
+ }
16507
16624
  }
16508
16625
  ],
16509
16626
  "exports": [
@@ -16863,7 +16980,10 @@
16863
16980
  },
16864
16981
  "tagName": "hx-meter",
16865
16982
  "customElement": true,
16866
- "summary": "Scalar measurement gauge within a defined range."
16983
+ "summary": "Scalar measurement gauge within a defined range.",
16984
+ "helixMeta": {
16985
+ "priorityTier": "P1"
16986
+ }
16867
16987
  }
16868
16988
  ],
16869
16989
  "exports": [
@@ -17237,7 +17357,10 @@
17237
17357
  },
17238
17358
  "tagName": "hx-nav",
17239
17359
  "customElement": true,
17240
- "summary": "Navigation bar supporting horizontal and vertical layouts with nested submenus."
17360
+ "summary": "Navigation bar supporting horizontal and vertical layouts with nested submenus.",
17361
+ "helixMeta": {
17362
+ "priorityTier": "P0"
17363
+ }
17241
17364
  }
17242
17365
  ],
17243
17366
  "exports": [
@@ -17915,7 +18038,10 @@
17915
18038
  },
17916
18039
  "tagName": "hx-number-input",
17917
18040
  "customElement": true,
17918
- "summary": "Form-associated numeric input with stepper buttons, bounds checking,\nlabel, error, and help text."
18041
+ "summary": "Form-associated numeric input with stepper buttons, bounds checking,\nlabel, error, and help text.",
18042
+ "helixMeta": {
18043
+ "priorityTier": "P0"
18044
+ }
17919
18045
  }
17920
18046
  ],
17921
18047
  "exports": [
@@ -18292,7 +18418,10 @@
18292
18418
  },
18293
18419
  "tagName": "hx-overflow-menu",
18294
18420
  "customElement": true,
18295
- "summary": "\"...\" or kebab icon button that reveals hidden actions."
18421
+ "summary": "\"...\" or kebab icon button that reveals hidden actions.",
18422
+ "helixMeta": {
18423
+ "priorityTier": "P0"
18424
+ }
18296
18425
  }
18297
18426
  ],
18298
18427
  "exports": [
@@ -18823,7 +18952,10 @@
18823
18952
  },
18824
18953
  "tagName": "hx-pagination",
18825
18954
  "customElement": true,
18826
- "summary": "Page navigation with page numbers, prev/next, and ellipsis."
18955
+ "summary": "Page navigation with page numbers, prev/next, and ellipsis.",
18956
+ "helixMeta": {
18957
+ "priorityTier": "P1"
18958
+ }
18827
18959
  }
18828
18960
  ],
18829
18961
  "exports": [
@@ -19307,7 +19439,10 @@
19307
19439
  },
19308
19440
  "tagName": "hx-patient-banner",
19309
19441
  "customElement": true,
19310
- "summary": "Patient identification banner with two-identifier rule enforcement."
19442
+ "summary": "Patient identification banner with two-identifier rule enforcement.",
19443
+ "helixMeta": {
19444
+ "priorityTier": "P1"
19445
+ }
19311
19446
  }
19312
19447
  ],
19313
19448
  "exports": [
@@ -19613,7 +19748,10 @@
19613
19748
  },
19614
19749
  "tagName": "hx-phi-field",
19615
19750
  "customElement": true,
19616
- "summary": "HIPAA-compliant field for rendering masked Protected Health Information."
19751
+ "summary": "HIPAA-compliant field for rendering masked Protected Health Information.",
19752
+ "helixMeta": {
19753
+ "priorityTier": "P1"
19754
+ }
19617
19755
  }
19618
19756
  ],
19619
19757
  "exports": [
@@ -19994,7 +20132,10 @@
19994
20132
  },
19995
20133
  "tagName": "hx-popover",
19996
20134
  "customElement": true,
19997
- "summary": "Rich floating overlay attached to a trigger element."
20135
+ "summary": "Rich floating overlay attached to a trigger element.",
20136
+ "helixMeta": {
20137
+ "priorityTier": "P0"
20138
+ }
19998
20139
  }
19999
20140
  ],
20000
20141
  "exports": [
@@ -20392,7 +20533,10 @@
20392
20533
  },
20393
20534
  "tagName": "hx-popup",
20394
20535
  "customElement": true,
20395
- "summary": "Low-level popup positioning utility."
20536
+ "summary": "Low-level popup positioning utility.",
20537
+ "helixMeta": {
20538
+ "priorityTier": "P0"
20539
+ }
20396
20540
  }
20397
20541
  ],
20398
20542
  "exports": [
@@ -20765,7 +20909,10 @@
20765
20909
  },
20766
20910
  "tagName": "hx-progress-bar",
20767
20911
  "customElement": true,
20768
- "summary": "Displays task completion progress or an indeterminate loading state."
20912
+ "summary": "Displays task completion progress or an indeterminate loading state.",
20913
+ "helixMeta": {
20914
+ "priorityTier": "P1"
20915
+ }
20769
20916
  }
20770
20917
  ],
20771
20918
  "exports": [
@@ -21047,7 +21194,10 @@
21047
21194
  },
21048
21195
  "tagName": "hx-progress-ring",
21049
21196
  "customElement": true,
21050
- "summary": "Circular progress ring for indicating operation progress or loading state."
21197
+ "summary": "Circular progress ring for indicating operation progress or loading state.",
21198
+ "helixMeta": {
21199
+ "priorityTier": "P1"
21200
+ }
21051
21201
  }
21052
21202
  ],
21053
21203
  "exports": [
@@ -21190,7 +21340,10 @@
21190
21340
  },
21191
21341
  "tagName": "hx-prose",
21192
21342
  "customElement": true,
21193
- "summary": "Light DOM typography wrapper for rich text and CMS content."
21343
+ "summary": "Light DOM typography wrapper for rich text and CMS content.",
21344
+ "helixMeta": {
21345
+ "priorityTier": "P2"
21346
+ }
21194
21347
  }
21195
21348
  ],
21196
21349
  "exports": [
@@ -21547,7 +21700,10 @@
21547
21700
  },
21548
21701
  "tagName": "hx-radio-group",
21549
21702
  "customElement": true,
21550
- "summary": "Form-associated radio group with label, validation, help text, and keyboard navigation."
21703
+ "summary": "Form-associated radio group with label, validation, help text, and keyboard navigation.",
21704
+ "helixMeta": {
21705
+ "priorityTier": "P0"
21706
+ }
21551
21707
  }
21552
21708
  ],
21553
21709
  "exports": [
@@ -22168,7 +22324,10 @@
22168
22324
  },
22169
22325
  "tagName": "hx-rating",
22170
22326
  "customElement": true,
22171
- "summary": "Star rating input for user feedback and display."
22327
+ "summary": "Star rating input for user feedback and display.",
22328
+ "helixMeta": {
22329
+ "priorityTier": "P0"
22330
+ }
22172
22331
  }
22173
22332
  ],
22174
22333
  "exports": [
@@ -22900,7 +23059,10 @@
22900
23059
  },
22901
23060
  "tagName": "hx-select",
22902
23061
  "customElement": true,
22903
- "summary": "Form-associated custom select with label, error, and help text."
23062
+ "summary": "Form-associated custom select with label, error, and help text.",
23063
+ "helixMeta": {
23064
+ "priorityTier": "P0"
23065
+ }
22904
23066
  }
22905
23067
  ],
22906
23068
  "exports": [
@@ -23369,7 +23531,10 @@
23369
23531
  },
23370
23532
  "tagName": "hx-side-nav",
23371
23533
  "customElement": true,
23372
- "summary": "Collapsible side navigation panel for enterprise healthcare applications."
23534
+ "summary": "Collapsible side navigation panel for enterprise healthcare applications.",
23535
+ "helixMeta": {
23536
+ "priorityTier": "P0"
23537
+ }
23373
23538
  }
23374
23539
  ],
23375
23540
  "exports": [
@@ -23620,7 +23785,10 @@
23620
23785
  },
23621
23786
  "tagName": "hx-skeleton",
23622
23787
  "customElement": true,
23623
- "summary": "Animated shimmer placeholder for loading states."
23788
+ "summary": "Animated shimmer placeholder for loading states.",
23789
+ "helixMeta": {
23790
+ "priorityTier": "P2"
23791
+ }
23624
23792
  }
23625
23793
  ],
23626
23794
  "exports": [
@@ -24234,7 +24402,10 @@
24234
24402
  },
24235
24403
  "tagName": "hx-slider",
24236
24404
  "customElement": true,
24237
- "summary": "Form-associated range slider with label, ticks, and value display."
24405
+ "summary": "Form-associated range slider with label, ticks, and value display.",
24406
+ "helixMeta": {
24407
+ "priorityTier": "P0"
24408
+ }
24238
24409
  }
24239
24410
  ],
24240
24411
  "exports": [
@@ -24441,7 +24612,10 @@
24441
24612
  },
24442
24613
  "tagName": "hx-spinner",
24443
24614
  "customElement": true,
24444
- "summary": "Circular loading indicator component."
24615
+ "summary": "Circular loading indicator component.",
24616
+ "helixMeta": {
24617
+ "priorityTier": "P2"
24618
+ }
24445
24619
  }
24446
24620
  ],
24447
24621
  "exports": [
@@ -24909,7 +25083,10 @@
24909
25083
  },
24910
25084
  "tagName": "hx-split-button",
24911
25085
  "customElement": true,
24912
- "summary": "Primary action button with attached dropdown menu for secondary actions."
25086
+ "summary": "Primary action button with attached dropdown menu for secondary actions.",
25087
+ "helixMeta": {
25088
+ "priorityTier": "P0"
25089
+ }
24913
25090
  }
24914
25091
  ],
24915
25092
  "exports": [
@@ -25308,7 +25485,10 @@
25308
25485
  },
25309
25486
  "tagName": "hx-split-panel",
25310
25487
  "customElement": true,
25311
- "summary": "Resizable split panel with start and end panes."
25488
+ "summary": "Resizable split panel with start and end panes.",
25489
+ "helixMeta": {
25490
+ "priorityTier": "P2"
25491
+ }
25312
25492
  }
25313
25493
  ],
25314
25494
  "exports": [
@@ -25523,7 +25703,10 @@
25523
25703
  },
25524
25704
  "tagName": "hx-stack",
25525
25705
  "customElement": true,
25526
- "summary": "Flexbox stack layout utility for arranging children with consistent spacing."
25706
+ "summary": "Flexbox stack layout utility for arranging children with consistent spacing.",
25707
+ "helixMeta": {
25708
+ "priorityTier": "P2"
25709
+ }
25527
25710
  }
25528
25711
  ],
25529
25712
  "exports": [
@@ -25902,7 +26085,10 @@
25902
26085
  },
25903
26086
  "tagName": "hx-stat",
25904
26087
  "customElement": true,
25905
- "summary": "Displays a labeled metric value with optional trend indicator and icon slot."
26088
+ "summary": "Displays a labeled metric value with optional trend indicator and icon slot.",
26089
+ "helixMeta": {
26090
+ "priorityTier": "P2"
26091
+ }
25906
26092
  }
25907
26093
  ],
25908
26094
  "exports": [
@@ -26198,7 +26384,10 @@
26198
26384
  },
26199
26385
  "tagName": "hx-status-indicator",
26200
26386
  "customElement": true,
26201
- "summary": "Status indicator dot component."
26387
+ "summary": "Status indicator dot component.",
26388
+ "helixMeta": {
26389
+ "priorityTier": "P2"
26390
+ }
26202
26391
  }
26203
26392
  ],
26204
26393
  "exports": [
@@ -26646,7 +26835,10 @@
26646
26835
  },
26647
26836
  "tagName": "hx-steps",
26648
26837
  "customElement": true,
26649
- "summary": "Multi-step progress indicator container."
26838
+ "summary": "Multi-step progress indicator container.",
26839
+ "helixMeta": {
26840
+ "priorityTier": "P2"
26841
+ }
26650
26842
  }
26651
26843
  ],
26652
26844
  "exports": [
@@ -26869,7 +27061,10 @@
26869
27061
  },
26870
27062
  "tagName": "hx-structured-list",
26871
27063
  "customElement": true,
26872
- "summary": "Key-value data display container for detail and summary views."
27064
+ "summary": "Key-value data display container for detail and summary views.",
27065
+ "helixMeta": {
27066
+ "priorityTier": "P1"
27067
+ }
26873
27068
  },
26874
27069
  {
26875
27070
  "kind": "class",
@@ -27063,7 +27258,10 @@
27063
27258
  },
27064
27259
  "tagName": "hx-style-scope",
27065
27260
  "customElement": true,
27066
- "summary": "Scoped light DOM style injection wrapper for Drupal-slotted content."
27261
+ "summary": "Scoped light DOM style injection wrapper for Drupal-slotted content.",
27262
+ "helixMeta": {
27263
+ "priorityTier": "exempt"
27264
+ }
27067
27265
  }
27068
27266
  ],
27069
27267
  "exports": [
@@ -27671,7 +27869,10 @@
27671
27869
  },
27672
27870
  "tagName": "hx-switch",
27673
27871
  "customElement": true,
27674
- "summary": "Form-associated toggle switch with label, error, and help text."
27872
+ "summary": "Form-associated toggle switch with label, error, and help text.",
27873
+ "helixMeta": {
27874
+ "priorityTier": "P0"
27875
+ }
27675
27876
  }
27676
27877
  ],
27677
27878
  "exports": [
@@ -27954,7 +28155,10 @@
27954
28155
  },
27955
28156
  "tagName": "hx-table",
27956
28157
  "customElement": true,
27957
- "summary": "Semantic HTML table with variant styling, sticky header, and responsive layout."
28158
+ "summary": "Semantic HTML table with variant styling, sticky header, and responsive layout.",
28159
+ "helixMeta": {
28160
+ "priorityTier": "P1"
28161
+ }
27958
28162
  }
27959
28163
  ],
27960
28164
  "exports": [
@@ -29108,7 +29312,10 @@
29108
29312
  },
29109
29313
  "tagName": "hx-tabs",
29110
29314
  "customElement": true,
29111
- "summary": "Tab container that organizes content into selectable panels."
29315
+ "summary": "Tab container that organizes content into selectable panels.",
29316
+ "helixMeta": {
29317
+ "priorityTier": "P0"
29318
+ }
29112
29319
  }
29113
29320
  ],
29114
29321
  "exports": [
@@ -29530,7 +29737,10 @@
29530
29737
  },
29531
29738
  "tagName": "hx-tag",
29532
29739
  "customElement": true,
29533
- "summary": "Compact tag/chip for categorization, filtering, and selection."
29740
+ "summary": "Compact tag/chip for categorization, filtering, and selection.",
29741
+ "helixMeta": {
29742
+ "priorityTier": "P2"
29743
+ }
29534
29744
  }
29535
29745
  ],
29536
29746
  "exports": [
@@ -29842,7 +30052,10 @@
29842
30052
  },
29843
30053
  "tagName": "hx-text",
29844
30054
  "customElement": true,
29845
- "summary": "Presentational text wrapper for consistent typography across variants, weights, and colors."
30055
+ "summary": "Presentational text wrapper for consistent typography across variants, weights, and colors.",
30056
+ "helixMeta": {
30057
+ "priorityTier": "P2"
30058
+ }
29846
30059
  }
29847
30060
  ],
29848
30061
  "exports": [
@@ -30505,7 +30718,10 @@
30505
30718
  },
30506
30719
  "tagName": "hx-text-input",
30507
30720
  "customElement": true,
30508
- "summary": "Form-associated text input with built-in label, error, and help text."
30721
+ "summary": "Form-associated text input with built-in label, error, and help text.",
30722
+ "helixMeta": {
30723
+ "priorityTier": "P0"
30724
+ }
30509
30725
  }
30510
30726
  ],
30511
30727
  "exports": [
@@ -31139,7 +31355,10 @@
31139
31355
  },
31140
31356
  "tagName": "hx-textarea",
31141
31357
  "customElement": true,
31142
- "summary": "Form-associated textarea with built-in label, error, help text, character counter, and auto-resize."
31358
+ "summary": "Form-associated textarea with built-in label, error, help text, character counter, and auto-resize.",
31359
+ "helixMeta": {
31360
+ "priorityTier": "P0"
31361
+ }
31143
31362
  }
31144
31363
  ],
31145
31364
  "exports": [
@@ -31346,7 +31565,10 @@
31346
31565
  },
31347
31566
  "tagName": "hx-theme",
31348
31567
  "customElement": true,
31349
- "summary": "Injects --hx-* design tokens for the specified theme scope and controls motion behavior."
31568
+ "summary": "Injects --hx-* design tokens for the specified theme scope and controls motion behavior.",
31569
+ "helixMeta": {
31570
+ "priorityTier": "exempt"
31571
+ }
31350
31572
  }
31351
31573
  ],
31352
31574
  "exports": [
@@ -31977,7 +32199,10 @@
31977
32199
  },
31978
32200
  "tagName": "hx-time-picker",
31979
32201
  "customElement": true,
31980
- "summary": "Form-associated time picker with 12h/24h format support and dropdown listbox."
32202
+ "summary": "Form-associated time picker with 12h/24h format support and dropdown listbox.",
32203
+ "helixMeta": {
32204
+ "priorityTier": "P0"
32205
+ }
31981
32206
  }
31982
32207
  ],
31983
32208
  "exports": [
@@ -32462,7 +32687,10 @@
32462
32687
  },
32463
32688
  "tagName": "hx-toast",
32464
32689
  "customElement": true,
32465
- "summary": "Transient notification toast component."
32690
+ "summary": "Transient notification toast component.",
32691
+ "helixMeta": {
32692
+ "priorityTier": "P0"
32693
+ }
32466
32694
  }
32467
32695
  ],
32468
32696
  "exports": [
@@ -33093,7 +33321,10 @@
33093
33321
  },
33094
33322
  "tagName": "hx-toggle-button",
33095
33323
  "customElement": true,
33096
- "summary": "Two-state toggle button with pressed/unpressed ARIA semantics."
33324
+ "summary": "Two-state toggle button with pressed/unpressed ARIA semantics.",
33325
+ "helixMeta": {
33326
+ "priorityTier": "P0"
33327
+ }
33097
33328
  }
33098
33329
  ],
33099
33330
  "exports": [
@@ -33340,7 +33571,10 @@
33340
33571
  },
33341
33572
  "tagName": "hx-tooltip",
33342
33573
  "customElement": true,
33343
- "summary": "Contextual help text and abbreviations with smart positioning."
33574
+ "summary": "Contextual help text and abbreviations with smart positioning.",
33575
+ "helixMeta": {
33576
+ "priorityTier": "P0"
33577
+ }
33344
33578
  }
33345
33579
  ],
33346
33580
  "exports": [
@@ -33607,7 +33841,10 @@
33607
33841
  },
33608
33842
  "tagName": "hx-top-nav",
33609
33843
  "customElement": true,
33610
- "summary": "Site-level navigation bar with logo, nav items, and action slots."
33844
+ "summary": "Site-level navigation bar with logo, nav items, and action slots.",
33845
+ "helixMeta": {
33846
+ "priorityTier": "P0"
33847
+ }
33611
33848
  }
33612
33849
  ],
33613
33850
  "exports": [
@@ -34001,7 +34238,10 @@
34001
34238
  },
34002
34239
  "tagName": "hx-tree-view",
34003
34240
  "customElement": true,
34004
- "summary": "Hierarchical tree view with expand/collapse and keyboard navigation."
34241
+ "summary": "Hierarchical tree view with expand/collapse and keyboard navigation.",
34242
+ "helixMeta": {
34243
+ "priorityTier": "P2"
34244
+ }
34005
34245
  }
34006
34246
  ],
34007
34247
  "exports": [
@@ -34136,7 +34376,10 @@
34136
34376
  },
34137
34377
  "tagName": "hx-visually-hidden",
34138
34378
  "customElement": true,
34139
- "summary": "Hides content visually while keeping it accessible to screen readers."
34379
+ "summary": "Hides content visually while keeping it accessible to screen readers.",
34380
+ "helixMeta": {
34381
+ "priorityTier": "exempt"
34382
+ }
34140
34383
  }
34141
34384
  ],
34142
34385
  "exports": [