@brightspot/ui 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/components/dropdown/Dropdown.d.ts +172 -0
  2. package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
  3. package/dist/components/dropdown/Dropdown.js +407 -0
  4. package/dist/components/dropdown/Dropdown.js.map +1 -0
  5. package/dist/components/dropdown/DropdownItem.d.ts +108 -0
  6. package/dist/components/dropdown/DropdownItem.d.ts.map +1 -0
  7. package/dist/components/dropdown/DropdownItem.js +210 -0
  8. package/dist/components/dropdown/DropdownItem.js.map +1 -0
  9. package/dist/components/dropdown/DropdownMenu.d.ts +117 -0
  10. package/dist/components/dropdown/DropdownMenu.d.ts.map +1 -0
  11. package/dist/components/dropdown/DropdownMenu.js +295 -0
  12. package/dist/components/dropdown/DropdownMenu.js.map +1 -0
  13. package/dist/custom-elements.json +1097 -101
  14. package/dist/storybook/assets/Avatar.stories-BAaSlDF7.js +213 -0
  15. package/dist/storybook/assets/{AvatarGroup.stories-BBkQuFKk.js → AvatarGroup.stories-CgoDB4N4.js} +1 -1
  16. package/dist/storybook/assets/{Badge.stories-mFZsls7i.js → Badge.stories-uexxdmo6.js} +3 -3
  17. package/dist/storybook/assets/{Button.stories-CAWX17L1.js → Button.stories-T9UJUPHI.js} +1 -1
  18. package/dist/storybook/assets/{CircularProgress.stories-DBVt4Cg2.js → CircularProgress.stories-DW-VJA5j.js} +6 -6
  19. package/dist/storybook/assets/{ClipboardMixin.stories-BH9E-OI6.js → ClipboardMixin.stories-DzU4vxu5.js} +1 -1
  20. package/dist/storybook/assets/{Color-6BZIO3FS-CVnTzq2p.js → Color-6BZIO3FS-DRk2xjoN.js} +1 -1
  21. package/dist/storybook/assets/{Colors.stories-BFYmP0LL.js → Colors.stories-_UPdvuhY.js} +1 -1
  22. package/dist/storybook/assets/{ComponentStatesMixin-Cu7YXkU8.js → ComponentStatesMixin-BIu5SKeV.js} +1 -1
  23. package/dist/storybook/assets/{ComponentStatesMixin.stories-CAvyYt0H.js → ComponentStatesMixin.stories-C0FLaqLu.js} +1 -1
  24. package/dist/storybook/assets/{CopyToClipboard.stories-DbJZsp_L.js → CopyToClipboard.stories-D31zoUVI.js} +1 -1
  25. package/dist/storybook/assets/{Debounce.stories-BiFiH1K9.js → Debounce.stories-CgPPl5Ee.js} +1 -1
  26. package/dist/storybook/assets/{DocsRenderer-LL677BLK-Bq6G4eeC.js → DocsRenderer-LL677BLK-iwiwOzX9.js} +6 -6
  27. package/dist/storybook/assets/Dropdown.stories-CDcl6rmG.js +697 -0
  28. package/dist/storybook/assets/{Events.stories-BsDBxh8_.js → Events.stories-DS6UC9dZ.js} +1 -1
  29. package/dist/storybook/assets/{Heading.stories-zGzWgHVO.js → Heading.stories-CAQfEGE2.js} +1 -1
  30. package/dist/storybook/assets/{Icon.stories-B4T6sSwf.js → Icon.stories-C7msWlHs.js} +11 -11
  31. package/dist/storybook/assets/{LinearProgress.stories-qzqmUUwY.js → LinearProgress.stories-DBGJ5a2-.js} +7 -7
  32. package/dist/storybook/assets/{Pagination.stories-B6Q-7taJ.js → Pagination.stories-C58bGOdf.js} +1 -1
  33. package/dist/storybook/assets/{Popover.stories-CGkU0SGv.js → Popover.stories-C9zU0sEX.js} +5 -5
  34. package/dist/storybook/assets/{ReadyMixin-3YCzoG6W.js → ReadyMixin-qf8SAjMu.js} +1 -1
  35. package/dist/storybook/assets/{Rtc.stories-Y1MYTWAt.js → Rtc.stories-k9tKHNhD.js} +1 -1
  36. package/dist/storybook/assets/{ScrollShadow.stories-B9kSpLT1.js → ScrollShadow.stories-Bp42zyLH.js} +1 -1
  37. package/dist/storybook/assets/{Throttle.stories-BgvLDrS3.js → Throttle.stories-B5YU-Nms.js} +1 -1
  38. package/dist/storybook/assets/Tooltip.stories-COQcvOnL.js +143 -0
  39. package/dist/storybook/assets/{Widget.stories--JpqVyJe.js → Widget.stories-D3Sq5-_A.js} +13 -13
  40. package/dist/storybook/assets/{WithTooltip-65CFNBJE-DNbD9hAX.js → WithTooltip-65CFNBJE-Cox81aM_.js} +1 -1
  41. package/dist/storybook/assets/{formatter-EIJCOSYU-Cy8KIxab.js → formatter-EIJCOSYU-3ErcoV9q.js} +1 -1
  42. package/dist/storybook/assets/if-defined-Bv2_qPJg.js +1 -0
  43. package/dist/storybook/assets/{iframe-Dz6CxatW.js → iframe-CM6gBkqA.js} +152 -152
  44. package/dist/storybook/assets/{iframe-DiT9Iz2T.css → iframe-D3r2Ciu8.css} +1 -1
  45. package/dist/storybook/assets/{index-CebChkmF.js → index-iwfnMgqg.js} +1 -1
  46. package/dist/storybook/assets/{onFind.stories-nHDImx0x.js → onFind.stories-CDtoTN6S.js} +1 -1
  47. package/dist/storybook/assets/{onRemove.stories-CBxYVPwd.js → onRemove.stories-CSTeFCLU.js} +1 -1
  48. package/dist/storybook/assets/{onVisible.stories-D4Qewc9Y.js → onVisible.stories-C-yiw9n4.js} +1 -1
  49. package/dist/storybook/assets/{style-map-BgW9piaW.js → style-map-BJGdSb_D.js} +1 -1
  50. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-CROW1475.js → syntaxhighlighter-ED5Y7EFY-BEudYlVi.js} +1 -1
  51. package/dist/storybook/iframe.html +2 -2
  52. package/dist/storybook/index.json +1 -1
  53. package/dist/storybook/project.json +1 -1
  54. package/dist/tailwind-plugin-button.js +10 -0
  55. package/dist/tailwind-plugin-button.js.map +1 -1
  56. package/dist/tailwind-plugin-button.ts +10 -0
  57. package/dist/tailwind-plugin-dropdown.d.ts +2 -0
  58. package/dist/tailwind-plugin-dropdown.d.ts.map +1 -0
  59. package/dist/tailwind-plugin-dropdown.js +223 -0
  60. package/dist/tailwind-plugin-dropdown.js.map +1 -0
  61. package/dist/tailwind-plugin-dropdown.ts +249 -0
  62. package/dist/util/EventEmitterMixin.d.ts +13 -0
  63. package/dist/util/EventEmitterMixin.d.ts.map +1 -1
  64. package/dist/util/EventEmitterMixin.js.map +1 -1
  65. package/docs/components/Avatar.md +62 -0
  66. package/docs/components/AvatarGroup.md +52 -0
  67. package/docs/components/Badge.md +58 -0
  68. package/docs/components/CircularProgress.md +55 -0
  69. package/docs/components/CopyToClipboard.md +54 -0
  70. package/docs/components/Dropdown.md +100 -0
  71. package/docs/components/DropdownItem.md +64 -0
  72. package/docs/components/DropdownMenu.md +81 -0
  73. package/docs/components/Icon.md +61 -0
  74. package/docs/components/LinearProgress.md +40 -0
  75. package/docs/components/Pagination.md +95 -0
  76. package/docs/components/Popover.md +71 -0
  77. package/docs/components/README.md +24 -0
  78. package/docs/components/Widget.md +79 -0
  79. package/package.json +3 -2
  80. package/dist/storybook/assets/Avatar.stories-CafEcy4T.js +0 -214
  81. package/dist/storybook/assets/Tooltip.stories-POo1M-ew.js +0 -143
  82. package/dist/storybook/assets/if-defined-CngSGyRu.js +0 -1
@@ -295,45 +295,67 @@
295
295
  },
296
296
  {
297
297
  "kind": "javascript-module",
298
- "path": "src/components/circular-progress/CircularProgress.ts",
298
+ "path": "src/components/badge/Badge.ts",
299
299
  "declarations": [
300
300
  {
301
301
  "kind": "class",
302
- "description": "A circular progress indicator for showing loading states or progress.",
303
- "name": "CircularProgress",
302
+ "description": "A badge component for highlighting important information.\n\nBadges help highlight notifications, status, or new messages.\nPrimarily used for communicating secondary or additional information.",
303
+ "name": "Badge",
304
304
  "cssProperties": [
305
305
  {
306
- "description": "Custom progress indicator color (overrides theme color)",
307
- "name": "--progress-color"
306
+ "description": "Text color (overrides theme color)",
307
+ "name": "--badge-color-foreground"
308
308
  },
309
309
  {
310
- "description": "Track/background color (overrides default gray-100)",
311
- "name": "--track-color"
310
+ "description": "Background color (overrides theme color)",
311
+ "name": "--badge-color-background"
312
312
  },
313
313
  {
314
- "description": "Custom size in pixels (overrides size preset)",
315
- "name": "--progress-size"
314
+ "description": "Border radius size (overrides shape default, default: 999px)",
315
+ "name": "--badge-radius-size"
316
+ },
317
+ {
318
+ "description": "Horizontal padding (overrides size default)",
319
+ "name": "--badge-px"
320
+ },
321
+ {
322
+ "description": "Vertical padding (overrides size default)",
323
+ "name": "--badge-py"
324
+ },
325
+ {
326
+ "description": "Size of the dot affordance (default: 6px)",
327
+ "name": "--badge-dot-size"
316
328
  }
317
329
  ],
318
330
  "members": [
319
331
  {
320
332
  "kind": "field",
321
- "name": "indeterminate",
333
+ "name": "variant",
334
+ "type": {
335
+ "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
336
+ },
337
+ "default": "'info'",
338
+ "description": "Style of the badge.\n- 'info': Informational (default)\n- 'primary': Primary action or emphasis\n- 'error': Error or danger state\n- 'success': Success or completion state\n- 'warning': Warning or caution state",
339
+ "attribute": "variant"
340
+ },
341
+ {
342
+ "kind": "field",
343
+ "name": "dot",
322
344
  "type": {
323
345
  "text": "boolean"
324
346
  },
325
- "default": "true",
326
- "description": "Whether the progress indicator is indeterminate (animated spinner).\nWhen false, shows determinate progress based on the progress value.",
327
- "attribute": "indeterminate"
347
+ "default": "false",
348
+ "description": "Should a dot be displayed before the label?",
349
+ "attribute": "dot"
328
350
  },
329
351
  {
330
352
  "kind": "field",
331
353
  "name": "size",
332
354
  "type": {
333
- "text": "'sm' | 'md' | 'lg'"
355
+ "text": "string"
334
356
  },
335
357
  "default": "'sm'",
336
- "description": "Size variant.\n- 'sm': Small (16px) - default\n- 'md': Medium (32px)\n- 'lg': Large (48px)",
358
+ "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
337
359
  "attribute": "size"
338
360
  }
339
361
  ],
@@ -343,43 +365,42 @@
343
365
  "text": "CustomEvent"
344
366
  },
345
367
  "description": "Fired after first render and initialization",
346
- "name": "btu-progress-ready"
347
- },
348
- {
349
- "type": {
350
- "text": "CustomEvent"
351
- },
352
- "description": "Fired when determinate progress reaches 100",
353
- "name": "btu-progress-complete"
368
+ "name": "btu-badge-ready"
354
369
  }
355
370
  ],
356
371
  "attributes": [
357
372
  {
358
- "name": "indeterminate",
373
+ "name": "variant",
374
+ "type": {
375
+ "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
376
+ },
377
+ "default": "'info'",
378
+ "description": "Style of the badge.\n- 'info': Informational (default)\n- 'primary': Primary action or emphasis\n- 'error': Error or danger state\n- 'success': Success or completion state\n- 'warning': Warning or caution state",
379
+ "fieldName": "variant",
380
+ "attribute": "variant"
381
+ },
382
+ {
383
+ "name": "dot",
359
384
  "type": {
360
385
  "text": "boolean"
361
386
  },
362
- "default": "true",
363
- "description": "Whether the progress indicator is indeterminate (animated spinner).\nWhen false, shows determinate progress based on the progress value.",
364
- "fieldName": "indeterminate",
365
- "attribute": "indeterminate"
387
+ "default": "false",
388
+ "description": "Should a dot be displayed before the label?",
389
+ "fieldName": "dot",
390
+ "attribute": "dot"
366
391
  },
367
392
  {
368
393
  "name": "size",
369
394
  "type": {
370
- "text": "'sm' | 'md' | 'lg'"
395
+ "text": "string"
371
396
  },
372
397
  "default": "'sm'",
373
- "description": "Size variant.\n- 'sm': Small (16px) - default\n- 'md': Medium (32px)\n- 'lg': Large (48px)",
398
+ "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
374
399
  "fieldName": "size",
375
400
  "attribute": "size"
376
401
  }
377
402
  ],
378
403
  "mixins": [
379
- {
380
- "name": "ProgressMixin",
381
- "module": "/src/util/ProgressMixin.js"
382
- },
383
404
  {
384
405
  "name": "EventEmitterMixin",
385
406
  "module": "/src/util/EventEmitterMixin.js"
@@ -393,7 +414,7 @@
393
414
  "name": "LitElement",
394
415
  "package": "lit"
395
416
  },
396
- "tagName": "btu-circular-progress",
417
+ "tagName": "btu-badge",
397
418
  "customElement": true
398
419
  }
399
420
  ],
@@ -402,83 +423,61 @@
402
423
  "kind": "js",
403
424
  "name": "default",
404
425
  "declaration": {
405
- "name": "CircularProgress",
406
- "module": "src/components/circular-progress/CircularProgress.ts"
426
+ "name": "Badge",
427
+ "module": "src/components/badge/Badge.ts"
407
428
  }
408
429
  },
409
430
  {
410
431
  "kind": "custom-element-definition",
411
- "name": "btu-circular-progress",
432
+ "name": "btu-badge",
412
433
  "declaration": {
413
- "name": "CircularProgress",
414
- "module": "src/components/circular-progress/CircularProgress.ts"
434
+ "name": "Badge",
435
+ "module": "src/components/badge/Badge.ts"
415
436
  }
416
437
  }
417
438
  ]
418
439
  },
419
440
  {
420
441
  "kind": "javascript-module",
421
- "path": "src/components/badge/Badge.ts",
442
+ "path": "src/components/circular-progress/CircularProgress.ts",
422
443
  "declarations": [
423
444
  {
424
445
  "kind": "class",
425
- "description": "A badge component for highlighting important information.\n\nBadges help highlight notifications, status, or new messages.\nPrimarily used for communicating secondary or additional information.",
426
- "name": "Badge",
446
+ "description": "A circular progress indicator for showing loading states or progress.",
447
+ "name": "CircularProgress",
427
448
  "cssProperties": [
428
449
  {
429
- "description": "Text color (overrides theme color)",
430
- "name": "--badge-color-foreground"
431
- },
432
- {
433
- "description": "Background color (overrides theme color)",
434
- "name": "--badge-color-background"
435
- },
436
- {
437
- "description": "Border radius size (overrides shape default, default: 999px)",
438
- "name": "--badge-radius-size"
439
- },
440
- {
441
- "description": "Horizontal padding (overrides size default)",
442
- "name": "--badge-px"
450
+ "description": "Custom progress indicator color (overrides theme color)",
451
+ "name": "--progress-color"
443
452
  },
444
453
  {
445
- "description": "Vertical padding (overrides size default)",
446
- "name": "--badge-py"
454
+ "description": "Track/background color (overrides default gray-100)",
455
+ "name": "--track-color"
447
456
  },
448
457
  {
449
- "description": "Size of the dot affordance (default: 6px)",
450
- "name": "--badge-dot-size"
458
+ "description": "Custom size in pixels (overrides size preset)",
459
+ "name": "--progress-size"
451
460
  }
452
461
  ],
453
462
  "members": [
454
463
  {
455
464
  "kind": "field",
456
- "name": "variant",
457
- "type": {
458
- "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
459
- },
460
- "default": "'info'",
461
- "description": "Style of the badge.\n- 'info': Informational (default)\n- 'primary': Primary action or emphasis\n- 'error': Error or danger state\n- 'success': Success or completion state\n- 'warning': Warning or caution state",
462
- "attribute": "variant"
463
- },
464
- {
465
- "kind": "field",
466
- "name": "dot",
465
+ "name": "indeterminate",
467
466
  "type": {
468
467
  "text": "boolean"
469
468
  },
470
- "default": "false",
471
- "description": "Should a dot be displayed before the label?",
472
- "attribute": "dot"
469
+ "default": "true",
470
+ "description": "Whether the progress indicator is indeterminate (animated spinner).\nWhen false, shows determinate progress based on the progress value.",
471
+ "attribute": "indeterminate"
473
472
  },
474
473
  {
475
474
  "kind": "field",
476
475
  "name": "size",
477
476
  "type": {
478
- "text": "string"
477
+ "text": "'sm' | 'md' | 'lg'"
479
478
  },
480
479
  "default": "'sm'",
481
- "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
480
+ "description": "Size variant.\n- 'sm': Small (16px) - default\n- 'md': Medium (32px)\n- 'lg': Large (48px)",
482
481
  "attribute": "size"
483
482
  }
484
483
  ],
@@ -488,42 +487,43 @@
488
487
  "text": "CustomEvent"
489
488
  },
490
489
  "description": "Fired after first render and initialization",
491
- "name": "btu-badge-ready"
492
- }
493
- ],
494
- "attributes": [
490
+ "name": "btu-progress-ready"
491
+ },
495
492
  {
496
- "name": "variant",
497
493
  "type": {
498
- "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
494
+ "text": "CustomEvent"
499
495
  },
500
- "default": "'info'",
501
- "description": "Style of the badge.\n- 'info': Informational (default)\n- 'primary': Primary action or emphasis\n- 'error': Error or danger state\n- 'success': Success or completion state\n- 'warning': Warning or caution state",
502
- "fieldName": "variant",
503
- "attribute": "variant"
504
- },
496
+ "description": "Fired when determinate progress reaches 100",
497
+ "name": "btu-progress-complete"
498
+ }
499
+ ],
500
+ "attributes": [
505
501
  {
506
- "name": "dot",
502
+ "name": "indeterminate",
507
503
  "type": {
508
504
  "text": "boolean"
509
505
  },
510
- "default": "false",
511
- "description": "Should a dot be displayed before the label?",
512
- "fieldName": "dot",
513
- "attribute": "dot"
506
+ "default": "true",
507
+ "description": "Whether the progress indicator is indeterminate (animated spinner).\nWhen false, shows determinate progress based on the progress value.",
508
+ "fieldName": "indeterminate",
509
+ "attribute": "indeterminate"
514
510
  },
515
511
  {
516
512
  "name": "size",
517
513
  "type": {
518
- "text": "string"
514
+ "text": "'sm' | 'md' | 'lg'"
519
515
  },
520
516
  "default": "'sm'",
521
- "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
517
+ "description": "Size variant.\n- 'sm': Small (16px) - default\n- 'md': Medium (32px)\n- 'lg': Large (48px)",
522
518
  "fieldName": "size",
523
519
  "attribute": "size"
524
520
  }
525
521
  ],
526
522
  "mixins": [
523
+ {
524
+ "name": "ProgressMixin",
525
+ "module": "/src/util/ProgressMixin.js"
526
+ },
527
527
  {
528
528
  "name": "EventEmitterMixin",
529
529
  "module": "/src/util/EventEmitterMixin.js"
@@ -537,7 +537,7 @@
537
537
  "name": "LitElement",
538
538
  "package": "lit"
539
539
  },
540
- "tagName": "btu-badge",
540
+ "tagName": "btu-circular-progress",
541
541
  "customElement": true
542
542
  }
543
543
  ],
@@ -546,16 +546,16 @@
546
546
  "kind": "js",
547
547
  "name": "default",
548
548
  "declaration": {
549
- "name": "Badge",
550
- "module": "src/components/badge/Badge.ts"
549
+ "name": "CircularProgress",
550
+ "module": "src/components/circular-progress/CircularProgress.ts"
551
551
  }
552
552
  },
553
553
  {
554
554
  "kind": "custom-element-definition",
555
- "name": "btu-badge",
555
+ "name": "btu-circular-progress",
556
556
  "declaration": {
557
- "name": "Badge",
558
- "module": "src/components/badge/Badge.ts"
557
+ "name": "CircularProgress",
558
+ "module": "src/components/circular-progress/CircularProgress.ts"
559
559
  }
560
560
  }
561
561
  ]
@@ -674,6 +674,1002 @@
674
674
  }
675
675
  ]
676
676
  },
677
+ {
678
+ "kind": "javascript-module",
679
+ "path": "src/components/dropdown/Dropdown.ts",
680
+ "declarations": [
681
+ {
682
+ "kind": "class",
683
+ "description": "A dropdown component that renders a trigger button and manages a floating panel\ncontaining a `btu-dropdown-menu`.\n\nUses the native Popover API and CSS anchor positioning for panel management.\nThe trigger button is built with existing `btu-button-*` classes.\n\n**Trigger button styling:** Set `--button-*` CSS custom properties on `<btu-dropdown>`\nor a parent element to customize the trigger via CSS inheritance (e.g.,\n`--button-border-radius`, `--button-color-background`). See\n`tailwind-plugin-button.ts` for available props.",
684
+ "name": "Dropdown",
685
+ "cssProperties": [
686
+ {
687
+ "description": "Panel background color (default: white)",
688
+ "name": "--dropdown-panel-background"
689
+ },
690
+ {
691
+ "description": "Panel border color (default: gray-200)",
692
+ "name": "--dropdown-panel-border-color"
693
+ },
694
+ {
695
+ "description": "Panel border radius (default: borderRadius.lg)",
696
+ "name": "--dropdown-panel-border-radius"
697
+ },
698
+ {
699
+ "description": "Panel minimum width (default: max(12rem, anchor-size(width)))",
700
+ "name": "--dropdown-panel-min-width"
701
+ },
702
+ {
703
+ "description": "Item background color (default: transparent)",
704
+ "name": "--dropdown-item-background"
705
+ },
706
+ {
707
+ "description": "Item text color (default: gray-700)",
708
+ "name": "--dropdown-item-color"
709
+ },
710
+ {
711
+ "description": "Item hover background (default: gray-100)",
712
+ "name": "--dropdown-item-hover-background"
713
+ },
714
+ {
715
+ "description": "Item hover text color (default: gray-900)",
716
+ "name": "--dropdown-item-hover-color"
717
+ },
718
+ {
719
+ "description": "Selected item background (default: primary-50)",
720
+ "name": "--dropdown-item-selected-background"
721
+ },
722
+ {
723
+ "description": "Selected item text color (default: primary-700)",
724
+ "name": "--dropdown-item-selected-color"
725
+ },
726
+ {
727
+ "description": "Item font size (default: fontSize.sm)",
728
+ "name": "--dropdown-item-font-size"
729
+ },
730
+ {
731
+ "description": "Divider line color (default: gray-200)",
732
+ "name": "--dropdown-divider-color"
733
+ },
734
+ {
735
+ "description": "Empty state text color (default: gray-400)",
736
+ "name": "--dropdown-empty-color"
737
+ }
738
+ ],
739
+ "slots": [
740
+ {
741
+ "description": "A `btu-dropdown-menu` element containing `btu-dropdown-item` children",
742
+ "name": ""
743
+ }
744
+ ],
745
+ "members": [
746
+ {
747
+ "kind": "field",
748
+ "name": "label",
749
+ "type": {
750
+ "text": "string"
751
+ },
752
+ "default": "''",
753
+ "description": "Trigger button text.",
754
+ "attribute": "label"
755
+ },
756
+ {
757
+ "kind": "field",
758
+ "name": "open",
759
+ "type": {
760
+ "text": "boolean"
761
+ },
762
+ "default": "false",
763
+ "description": "Panel visibility state. Can be set programmatically (e.g., for tour UIs)\n— syncs to `showPopover()`/`hidePopover()` in `updated()`.",
764
+ "attribute": "open",
765
+ "reflects": true
766
+ },
767
+ {
768
+ "kind": "field",
769
+ "name": "placement",
770
+ "type": {
771
+ "text": "Placement"
772
+ },
773
+ "default": "'bottom-start'",
774
+ "description": "Panel placement: 'bottom-start', 'bottom-end', 'top-start', 'top-end'.",
775
+ "attribute": "placement"
776
+ },
777
+ {
778
+ "kind": "field",
779
+ "name": "size",
780
+ "type": {
781
+ "text": "Size"
782
+ },
783
+ "default": "'medium'",
784
+ "description": "Button size: 'small', 'medium', 'large'.",
785
+ "attribute": "size"
786
+ },
787
+ {
788
+ "kind": "field",
789
+ "name": "disabled",
790
+ "type": {
791
+ "text": "boolean"
792
+ },
793
+ "default": "false",
794
+ "description": "Prevents opening.",
795
+ "attribute": "disabled",
796
+ "reflects": true
797
+ },
798
+ {
799
+ "kind": "field",
800
+ "name": "variant",
801
+ "type": {
802
+ "text": "Variant"
803
+ },
804
+ "default": "'secondary'",
805
+ "description": "Button variant: 'primary', 'secondary', 'tertiary', 'primary-clear', 'secondary-clear', 'tertiary-clear'.",
806
+ "attribute": "variant"
807
+ },
808
+ {
809
+ "kind": "field",
810
+ "name": "iconSymbol",
811
+ "type": {
812
+ "text": "string"
813
+ },
814
+ "default": "''",
815
+ "description": "Lucide icon symbol for the trigger.",
816
+ "attribute": "icon-symbol"
817
+ },
818
+ {
819
+ "kind": "field",
820
+ "name": "iconPosition",
821
+ "type": {
822
+ "text": "'leading' | 'trailing'"
823
+ },
824
+ "default": "'leading'",
825
+ "description": "Icon position: 'leading' or 'trailing'.",
826
+ "attribute": "icon-position"
827
+ },
828
+ {
829
+ "kind": "field",
830
+ "name": "iconOnly",
831
+ "type": {
832
+ "text": "boolean"
833
+ },
834
+ "default": "false",
835
+ "description": "Hides label, shows icon only.",
836
+ "attribute": "icon-only"
837
+ },
838
+ {
839
+ "kind": "field",
840
+ "name": "stayOpenOnSelect",
841
+ "type": {
842
+ "text": "boolean"
843
+ },
844
+ "default": "false",
845
+ "description": "Keeps panel open on item click.",
846
+ "attribute": "stay-open-on-select"
847
+ },
848
+ {
849
+ "kind": "field",
850
+ "name": "noChevron",
851
+ "type": {
852
+ "text": "boolean"
853
+ },
854
+ "default": "false",
855
+ "description": "Hides the chevron icon on the trigger button.",
856
+ "attribute": "no-chevron",
857
+ "reflects": true
858
+ },
859
+ {
860
+ "kind": "method",
861
+ "name": "_getButtonClasses",
862
+ "privacy": "private",
863
+ "return": {
864
+ "type": {
865
+ "text": "string"
866
+ }
867
+ },
868
+ "description": "Build the button class string based on variant and size"
869
+ },
870
+ {
871
+ "kind": "method",
872
+ "name": "_showPanel",
873
+ "privacy": "private",
874
+ "return": {
875
+ "type": {
876
+ "text": "void"
877
+ }
878
+ },
879
+ "description": "Show the dropdown panel"
880
+ },
881
+ {
882
+ "kind": "method",
883
+ "name": "_hidePanel",
884
+ "privacy": "private",
885
+ "return": {
886
+ "type": {
887
+ "text": "void"
888
+ }
889
+ },
890
+ "description": "Hide the dropdown panel"
891
+ }
892
+ ],
893
+ "events": [
894
+ {
895
+ "type": {
896
+ "text": "CustomEvent"
897
+ },
898
+ "description": "Fired after first render and initialization",
899
+ "name": "btu-dropdown-ready"
900
+ },
901
+ {
902
+ "type": {
903
+ "text": "CustomEvent"
904
+ },
905
+ "description": "Fired when the dropdown panel opens",
906
+ "name": "btu-dropdown-show"
907
+ },
908
+ {
909
+ "type": {
910
+ "text": "CustomEvent"
911
+ },
912
+ "description": "Fired when the dropdown panel closes",
913
+ "name": "btu-dropdown-hide"
914
+ },
915
+ {
916
+ "type": {
917
+ "text": "CustomEvent<{label: string, selected: boolean}>"
918
+ },
919
+ "description": "Fired when a menu item is activated (bubbles from btu-dropdown-item)",
920
+ "name": "btu-dropdown-item-select"
921
+ },
922
+ {
923
+ "type": {
924
+ "text": "CustomEvent<{label: string, favorited: boolean}>"
925
+ },
926
+ "description": "Fired when a menu item's favorite is toggled (bubbles from btu-dropdown-item)",
927
+ "name": "btu-dropdown-item-favorite"
928
+ }
929
+ ],
930
+ "attributes": [
931
+ {
932
+ "name": "label",
933
+ "type": {
934
+ "text": "string"
935
+ },
936
+ "default": "''",
937
+ "description": "Trigger button text.",
938
+ "fieldName": "label",
939
+ "attribute": "label"
940
+ },
941
+ {
942
+ "name": "open",
943
+ "type": {
944
+ "text": "boolean"
945
+ },
946
+ "default": "false",
947
+ "description": "Panel visibility state. Can be set programmatically (e.g., for tour UIs)\n— syncs to `showPopover()`/`hidePopover()` in `updated()`.",
948
+ "fieldName": "open",
949
+ "attribute": "open"
950
+ },
951
+ {
952
+ "name": "placement",
953
+ "type": {
954
+ "text": "Placement"
955
+ },
956
+ "default": "'bottom-start'",
957
+ "description": "Panel placement: 'bottom-start', 'bottom-end', 'top-start', 'top-end'.",
958
+ "fieldName": "placement",
959
+ "attribute": "placement"
960
+ },
961
+ {
962
+ "name": "size",
963
+ "type": {
964
+ "text": "Size"
965
+ },
966
+ "default": "'medium'",
967
+ "description": "Button size: 'small', 'medium', 'large'.",
968
+ "fieldName": "size",
969
+ "attribute": "size"
970
+ },
971
+ {
972
+ "name": "disabled",
973
+ "type": {
974
+ "text": "boolean"
975
+ },
976
+ "default": "false",
977
+ "description": "Prevents opening.",
978
+ "fieldName": "disabled",
979
+ "attribute": "disabled"
980
+ },
981
+ {
982
+ "name": "variant",
983
+ "type": {
984
+ "text": "Variant"
985
+ },
986
+ "default": "'secondary'",
987
+ "description": "Button variant: 'primary', 'secondary', 'tertiary', 'primary-clear', 'secondary-clear', 'tertiary-clear'.",
988
+ "fieldName": "variant",
989
+ "attribute": "variant"
990
+ },
991
+ {
992
+ "name": "icon-symbol",
993
+ "type": {
994
+ "text": "string"
995
+ },
996
+ "default": "''",
997
+ "description": "Lucide icon symbol for the trigger.",
998
+ "fieldName": "iconSymbol",
999
+ "attribute": "icon-symbol"
1000
+ },
1001
+ {
1002
+ "name": "icon-position",
1003
+ "type": {
1004
+ "text": "'leading' | 'trailing'"
1005
+ },
1006
+ "default": "'leading'",
1007
+ "description": "Icon position: 'leading' or 'trailing'.",
1008
+ "fieldName": "iconPosition",
1009
+ "attribute": "icon-position"
1010
+ },
1011
+ {
1012
+ "name": "icon-only",
1013
+ "type": {
1014
+ "text": "boolean"
1015
+ },
1016
+ "default": "false",
1017
+ "description": "Hides label, shows icon only.",
1018
+ "fieldName": "iconOnly",
1019
+ "attribute": "icon-only"
1020
+ },
1021
+ {
1022
+ "name": "stay-open-on-select",
1023
+ "type": {
1024
+ "text": "boolean"
1025
+ },
1026
+ "default": "false",
1027
+ "description": "Keeps panel open on item click.",
1028
+ "fieldName": "stayOpenOnSelect",
1029
+ "attribute": "stay-open-on-select"
1030
+ },
1031
+ {
1032
+ "name": "no-chevron",
1033
+ "type": {
1034
+ "text": "boolean"
1035
+ },
1036
+ "default": "false",
1037
+ "description": "Hides the chevron icon on the trigger button.",
1038
+ "fieldName": "noChevron",
1039
+ "attribute": "no-chevron"
1040
+ }
1041
+ ],
1042
+ "mixins": [
1043
+ {
1044
+ "name": "TooltipMixin",
1045
+ "module": "/src/util/TooltipMixin.js"
1046
+ },
1047
+ {
1048
+ "name": "EventEmitterMixin",
1049
+ "module": "/src/util/EventEmitterMixin.js"
1050
+ },
1051
+ {
1052
+ "name": "ReadyMixin",
1053
+ "module": "/src/util/ReadyMixin.js"
1054
+ }
1055
+ ],
1056
+ "superclass": {
1057
+ "name": "LitElement",
1058
+ "package": "lit"
1059
+ },
1060
+ "tagName": "btu-dropdown",
1061
+ "customElement": true
1062
+ }
1063
+ ],
1064
+ "exports": [
1065
+ {
1066
+ "kind": "js",
1067
+ "name": "default",
1068
+ "declaration": {
1069
+ "name": "Dropdown",
1070
+ "module": "src/components/dropdown/Dropdown.ts"
1071
+ }
1072
+ },
1073
+ {
1074
+ "kind": "custom-element-definition",
1075
+ "name": "btu-dropdown",
1076
+ "declaration": {
1077
+ "name": "Dropdown",
1078
+ "module": "src/components/dropdown/Dropdown.ts"
1079
+ }
1080
+ }
1081
+ ]
1082
+ },
1083
+ {
1084
+ "kind": "javascript-module",
1085
+ "path": "src/components/dropdown/DropdownItem.ts",
1086
+ "declarations": [
1087
+ {
1088
+ "kind": "class",
1089
+ "description": "A menu item component for use inside `btu-dropdown-menu`.\n\nRenders as a menu item, divider, or subhead depending on the `type` property.\nSupports checkbox mode (inherited from parent menu), icons, keyboard shortcuts,\nand favorite toggles.",
1090
+ "name": "DropdownItem",
1091
+ "members": [
1092
+ {
1093
+ "kind": "field",
1094
+ "name": "label",
1095
+ "type": {
1096
+ "text": "string"
1097
+ },
1098
+ "default": "''",
1099
+ "description": "Display text for the item.",
1100
+ "attribute": "label"
1101
+ },
1102
+ {
1103
+ "kind": "field",
1104
+ "name": "type",
1105
+ "type": {
1106
+ "text": "'default' | 'divider' | 'subhead'"
1107
+ },
1108
+ "default": "'default'",
1109
+ "description": "Item type: 'default', 'divider', or 'subhead'.",
1110
+ "attribute": "type"
1111
+ },
1112
+ {
1113
+ "kind": "field",
1114
+ "name": "iconSymbol",
1115
+ "type": {
1116
+ "text": "string"
1117
+ },
1118
+ "default": "''",
1119
+ "description": "Lucide icon symbol.",
1120
+ "attribute": "icon-symbol"
1121
+ },
1122
+ {
1123
+ "kind": "field",
1124
+ "name": "shortcut",
1125
+ "type": {
1126
+ "text": "string"
1127
+ },
1128
+ "default": "''",
1129
+ "description": "Keyboard shortcut display text.",
1130
+ "attribute": "shortcut"
1131
+ },
1132
+ {
1133
+ "kind": "field",
1134
+ "name": "disabled",
1135
+ "type": {
1136
+ "text": "boolean"
1137
+ },
1138
+ "default": "false",
1139
+ "description": "Whether the item is disabled.",
1140
+ "attribute": "disabled"
1141
+ },
1142
+ {
1143
+ "kind": "field",
1144
+ "name": "selected",
1145
+ "type": {
1146
+ "text": "boolean"
1147
+ },
1148
+ "default": "false",
1149
+ "description": "Whether the item is selected/checked.",
1150
+ "attribute": "selected",
1151
+ "reflects": true
1152
+ },
1153
+ {
1154
+ "kind": "field",
1155
+ "name": "favorited",
1156
+ "type": {
1157
+ "text": "boolean"
1158
+ },
1159
+ "default": "false",
1160
+ "description": "Whether the item is favorited.",
1161
+ "attribute": "favorited"
1162
+ },
1163
+ {
1164
+ "kind": "method",
1165
+ "name": "_toggleFavorite",
1166
+ "privacy": "private",
1167
+ "return": {
1168
+ "type": {
1169
+ "text": "void"
1170
+ }
1171
+ },
1172
+ "parameters": [
1173
+ {
1174
+ "name": "e",
1175
+ "type": {
1176
+ "text": "Event"
1177
+ }
1178
+ }
1179
+ ],
1180
+ "description": "Toggle favorite state"
1181
+ },
1182
+ {
1183
+ "kind": "method",
1184
+ "name": "_handleClick",
1185
+ "privacy": "private",
1186
+ "return": {
1187
+ "type": {
1188
+ "text": "void"
1189
+ }
1190
+ }
1191
+ }
1192
+ ],
1193
+ "events": [
1194
+ {
1195
+ "type": {
1196
+ "text": "CustomEvent"
1197
+ },
1198
+ "description": "Fired after first render",
1199
+ "name": "btu-dropdown-item-ready"
1200
+ },
1201
+ {
1202
+ "type": {
1203
+ "text": "CustomEvent<{label: string, selected: boolean}>"
1204
+ },
1205
+ "description": "Fired when item is activated",
1206
+ "name": "btu-dropdown-item-select"
1207
+ },
1208
+ {
1209
+ "type": {
1210
+ "text": "CustomEvent<{label: string, favorited: boolean}>"
1211
+ },
1212
+ "description": "Fired when favorite is toggled",
1213
+ "name": "btu-dropdown-item-favorite"
1214
+ }
1215
+ ],
1216
+ "attributes": [
1217
+ {
1218
+ "name": "label",
1219
+ "type": {
1220
+ "text": "string"
1221
+ },
1222
+ "default": "''",
1223
+ "description": "Display text for the item.",
1224
+ "fieldName": "label",
1225
+ "attribute": "label"
1226
+ },
1227
+ {
1228
+ "name": "type",
1229
+ "type": {
1230
+ "text": "'default' | 'divider' | 'subhead'"
1231
+ },
1232
+ "default": "'default'",
1233
+ "description": "Item type: 'default', 'divider', or 'subhead'.",
1234
+ "fieldName": "type",
1235
+ "attribute": "type"
1236
+ },
1237
+ {
1238
+ "name": "icon-symbol",
1239
+ "type": {
1240
+ "text": "string"
1241
+ },
1242
+ "default": "''",
1243
+ "description": "Lucide icon symbol.",
1244
+ "fieldName": "iconSymbol",
1245
+ "attribute": "icon-symbol"
1246
+ },
1247
+ {
1248
+ "name": "shortcut",
1249
+ "type": {
1250
+ "text": "string"
1251
+ },
1252
+ "default": "''",
1253
+ "description": "Keyboard shortcut display text.",
1254
+ "fieldName": "shortcut",
1255
+ "attribute": "shortcut"
1256
+ },
1257
+ {
1258
+ "name": "disabled",
1259
+ "type": {
1260
+ "text": "boolean"
1261
+ },
1262
+ "default": "false",
1263
+ "description": "Whether the item is disabled.",
1264
+ "fieldName": "disabled",
1265
+ "attribute": "disabled"
1266
+ },
1267
+ {
1268
+ "name": "selected",
1269
+ "type": {
1270
+ "text": "boolean"
1271
+ },
1272
+ "default": "false",
1273
+ "description": "Whether the item is selected/checked.",
1274
+ "fieldName": "selected",
1275
+ "attribute": "selected"
1276
+ },
1277
+ {
1278
+ "name": "favorited",
1279
+ "type": {
1280
+ "text": "boolean"
1281
+ },
1282
+ "default": "false",
1283
+ "description": "Whether the item is favorited.",
1284
+ "fieldName": "favorited",
1285
+ "attribute": "favorited"
1286
+ }
1287
+ ],
1288
+ "mixins": [
1289
+ {
1290
+ "name": "EventEmitterMixin",
1291
+ "module": "/src/util/EventEmitterMixin.js"
1292
+ },
1293
+ {
1294
+ "name": "ReadyMixin",
1295
+ "module": "/src/util/ReadyMixin.js"
1296
+ }
1297
+ ],
1298
+ "superclass": {
1299
+ "name": "LitElement",
1300
+ "package": "lit"
1301
+ },
1302
+ "tagName": "btu-dropdown-item",
1303
+ "customElement": true
1304
+ }
1305
+ ],
1306
+ "exports": [
1307
+ {
1308
+ "kind": "js",
1309
+ "name": "default",
1310
+ "declaration": {
1311
+ "name": "DropdownItem",
1312
+ "module": "src/components/dropdown/DropdownItem.ts"
1313
+ }
1314
+ },
1315
+ {
1316
+ "kind": "custom-element-definition",
1317
+ "name": "btu-dropdown-item",
1318
+ "declaration": {
1319
+ "name": "DropdownItem",
1320
+ "module": "src/components/dropdown/DropdownItem.ts"
1321
+ }
1322
+ }
1323
+ ]
1324
+ },
1325
+ {
1326
+ "kind": "javascript-module",
1327
+ "path": "src/components/dropdown/DropdownMenu.ts",
1328
+ "declarations": [
1329
+ {
1330
+ "kind": "class",
1331
+ "description": "A menu container component that provides keyboard navigation and ARIA menu semantics.\n\nContains `btu-dropdown-item` children and manages roving tabindex, typeahead search,\nand keyboard navigation following the WAI-ARIA Menu Button Pattern.",
1332
+ "name": "DropdownMenu",
1333
+ "cssProperties": [
1334
+ {
1335
+ "description": "Empty state text color (default: gray-400)",
1336
+ "name": "--dropdown-empty-color"
1337
+ }
1338
+ ],
1339
+ "slots": [
1340
+ {
1341
+ "description": "Menu items (`btu-dropdown-item` elements)",
1342
+ "name": ""
1343
+ }
1344
+ ],
1345
+ "members": [
1346
+ {
1347
+ "kind": "field",
1348
+ "name": "name",
1349
+ "type": {
1350
+ "text": "string"
1351
+ },
1352
+ "default": "''",
1353
+ "description": "Accessible name for the menu, displayed in header when header is true.",
1354
+ "attribute": "name"
1355
+ },
1356
+ {
1357
+ "kind": "field",
1358
+ "name": "header",
1359
+ "type": {
1360
+ "text": "boolean"
1361
+ },
1362
+ "default": "false",
1363
+ "description": "Show header bar with menu name.",
1364
+ "attribute": "header"
1365
+ },
1366
+ {
1367
+ "kind": "field",
1368
+ "name": "checkbox",
1369
+ "type": {
1370
+ "text": "boolean"
1371
+ },
1372
+ "default": "false",
1373
+ "description": "Enable checkbox mode for items (menuitemcheckbox role).",
1374
+ "attribute": "checkbox"
1375
+ },
1376
+ {
1377
+ "kind": "field",
1378
+ "name": "icon",
1379
+ "type": {
1380
+ "text": "boolean"
1381
+ },
1382
+ "default": "false",
1383
+ "description": "Show icons before each item.",
1384
+ "attribute": "icon"
1385
+ },
1386
+ {
1387
+ "kind": "field",
1388
+ "name": "iconSymbol",
1389
+ "type": {
1390
+ "text": "string"
1391
+ },
1392
+ "default": "''",
1393
+ "description": "Fallback Lucide icon symbol for items without their own.",
1394
+ "attribute": "icon-symbol"
1395
+ },
1396
+ {
1397
+ "kind": "field",
1398
+ "name": "favorites",
1399
+ "type": {
1400
+ "text": "boolean"
1401
+ },
1402
+ "default": "false",
1403
+ "description": "Show favorite toggle on each item.",
1404
+ "attribute": "favorites"
1405
+ },
1406
+ {
1407
+ "kind": "field",
1408
+ "name": "shortcuts",
1409
+ "type": {
1410
+ "text": "boolean"
1411
+ },
1412
+ "default": "false",
1413
+ "description": "Show keyboard shortcut text on each item.",
1414
+ "attribute": "shortcuts"
1415
+ },
1416
+ {
1417
+ "kind": "field",
1418
+ "name": "emptyMessage",
1419
+ "type": {
1420
+ "text": "string"
1421
+ },
1422
+ "default": "'No items available'",
1423
+ "description": "Message displayed when the menu has no focusable items.",
1424
+ "attribute": "empty-message"
1425
+ },
1426
+ {
1427
+ "kind": "method",
1428
+ "name": "_configureItems",
1429
+ "privacy": "private",
1430
+ "return": {
1431
+ "type": {
1432
+ "text": "void"
1433
+ }
1434
+ },
1435
+ "description": "Configure all child items with menu-level settings"
1436
+ },
1437
+ {
1438
+ "kind": "method",
1439
+ "name": "_getAllItems",
1440
+ "privacy": "private",
1441
+ "return": {
1442
+ "type": {
1443
+ "text": "DropdownItem[]"
1444
+ }
1445
+ },
1446
+ "description": "Get all btu-dropdown-item children"
1447
+ },
1448
+ {
1449
+ "kind": "method",
1450
+ "name": "_getFocusableItems",
1451
+ "privacy": "private",
1452
+ "return": {
1453
+ "type": {
1454
+ "text": "DropdownItem[]"
1455
+ }
1456
+ },
1457
+ "description": "Get only focusable items (default type, skip dividers/subheads)"
1458
+ },
1459
+ {
1460
+ "kind": "method",
1461
+ "name": "_getCurrentFocusIndex",
1462
+ "privacy": "private",
1463
+ "return": {
1464
+ "type": {
1465
+ "text": "number"
1466
+ }
1467
+ },
1468
+ "parameters": [
1469
+ {
1470
+ "name": "focusable",
1471
+ "type": {
1472
+ "text": "DropdownItem[]"
1473
+ }
1474
+ }
1475
+ ],
1476
+ "description": "Find the current focused item index"
1477
+ },
1478
+ {
1479
+ "kind": "method",
1480
+ "name": "_findNextIndex",
1481
+ "privacy": "private",
1482
+ "return": {
1483
+ "type": {
1484
+ "text": "number"
1485
+ }
1486
+ },
1487
+ "parameters": [
1488
+ {
1489
+ "name": "focusable",
1490
+ "type": {
1491
+ "text": "DropdownItem[]"
1492
+ }
1493
+ },
1494
+ {
1495
+ "name": "current",
1496
+ "type": {
1497
+ "text": "number"
1498
+ }
1499
+ },
1500
+ {
1501
+ "name": "direction",
1502
+ "type": {
1503
+ "text": "1 | -1"
1504
+ }
1505
+ }
1506
+ ],
1507
+ "description": "Find next index wrapping around, moving in direction (+1 or -1)"
1508
+ },
1509
+ {
1510
+ "kind": "method",
1511
+ "name": "_handleTypeahead",
1512
+ "privacy": "private",
1513
+ "return": {
1514
+ "type": {
1515
+ "text": "void"
1516
+ }
1517
+ },
1518
+ "parameters": [
1519
+ {
1520
+ "name": "char",
1521
+ "type": {
1522
+ "text": "string"
1523
+ }
1524
+ },
1525
+ {
1526
+ "name": "focusable",
1527
+ "type": {
1528
+ "text": "DropdownItem[]"
1529
+ }
1530
+ }
1531
+ ],
1532
+ "description": "Typeahead character matching with 500ms accumulation"
1533
+ },
1534
+ {
1535
+ "kind": "field",
1536
+ "name": "_isEmpty",
1537
+ "type": {
1538
+ "text": "boolean"
1539
+ },
1540
+ "privacy": "private",
1541
+ "description": "Check whether the menu has zero focusable items",
1542
+ "readonly": true
1543
+ }
1544
+ ],
1545
+ "events": [
1546
+ {
1547
+ "type": {
1548
+ "text": "CustomEvent"
1549
+ },
1550
+ "description": "Fired after first render",
1551
+ "name": "btu-dropdown-menu-ready"
1552
+ }
1553
+ ],
1554
+ "attributes": [
1555
+ {
1556
+ "name": "name",
1557
+ "type": {
1558
+ "text": "string"
1559
+ },
1560
+ "default": "''",
1561
+ "description": "Accessible name for the menu, displayed in header when header is true.",
1562
+ "fieldName": "name",
1563
+ "attribute": "name"
1564
+ },
1565
+ {
1566
+ "name": "header",
1567
+ "type": {
1568
+ "text": "boolean"
1569
+ },
1570
+ "default": "false",
1571
+ "description": "Show header bar with menu name.",
1572
+ "fieldName": "header",
1573
+ "attribute": "header"
1574
+ },
1575
+ {
1576
+ "name": "checkbox",
1577
+ "type": {
1578
+ "text": "boolean"
1579
+ },
1580
+ "default": "false",
1581
+ "description": "Enable checkbox mode for items (menuitemcheckbox role).",
1582
+ "fieldName": "checkbox",
1583
+ "attribute": "checkbox"
1584
+ },
1585
+ {
1586
+ "name": "icon",
1587
+ "type": {
1588
+ "text": "boolean"
1589
+ },
1590
+ "default": "false",
1591
+ "description": "Show icons before each item.",
1592
+ "fieldName": "icon",
1593
+ "attribute": "icon"
1594
+ },
1595
+ {
1596
+ "name": "icon-symbol",
1597
+ "type": {
1598
+ "text": "string"
1599
+ },
1600
+ "default": "''",
1601
+ "description": "Fallback Lucide icon symbol for items without their own.",
1602
+ "fieldName": "iconSymbol",
1603
+ "attribute": "icon-symbol"
1604
+ },
1605
+ {
1606
+ "name": "favorites",
1607
+ "type": {
1608
+ "text": "boolean"
1609
+ },
1610
+ "default": "false",
1611
+ "description": "Show favorite toggle on each item.",
1612
+ "fieldName": "favorites",
1613
+ "attribute": "favorites"
1614
+ },
1615
+ {
1616
+ "name": "shortcuts",
1617
+ "type": {
1618
+ "text": "boolean"
1619
+ },
1620
+ "default": "false",
1621
+ "description": "Show keyboard shortcut text on each item.",
1622
+ "fieldName": "shortcuts",
1623
+ "attribute": "shortcuts"
1624
+ },
1625
+ {
1626
+ "name": "empty-message",
1627
+ "type": {
1628
+ "text": "string"
1629
+ },
1630
+ "default": "'No items available'",
1631
+ "description": "Message displayed when the menu has no focusable items.",
1632
+ "fieldName": "emptyMessage",
1633
+ "attribute": "empty-message"
1634
+ }
1635
+ ],
1636
+ "mixins": [
1637
+ {
1638
+ "name": "EventEmitterMixin",
1639
+ "module": "/src/util/EventEmitterMixin.js"
1640
+ },
1641
+ {
1642
+ "name": "ReadyMixin",
1643
+ "module": "/src/util/ReadyMixin.js"
1644
+ }
1645
+ ],
1646
+ "superclass": {
1647
+ "name": "LitElement",
1648
+ "package": "lit"
1649
+ },
1650
+ "tagName": "btu-dropdown-menu",
1651
+ "customElement": true
1652
+ }
1653
+ ],
1654
+ "exports": [
1655
+ {
1656
+ "kind": "js",
1657
+ "name": "default",
1658
+ "declaration": {
1659
+ "name": "DropdownMenu",
1660
+ "module": "src/components/dropdown/DropdownMenu.ts"
1661
+ }
1662
+ },
1663
+ {
1664
+ "kind": "custom-element-definition",
1665
+ "name": "btu-dropdown-menu",
1666
+ "declaration": {
1667
+ "name": "DropdownMenu",
1668
+ "module": "src/components/dropdown/DropdownMenu.ts"
1669
+ }
1670
+ }
1671
+ ]
1672
+ },
677
1673
  {
678
1674
  "kind": "javascript-module",
679
1675
  "path": "src/components/icon/Icon.ts",