@brightspot/ui 3.0.1-cms-ui-migration.4 → 5.0.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 (74) hide show
  1. package/dist/custom-elements.json +786 -786
  2. package/dist/storybook/assets/{ActionBar.stories-BZAVK1QG.js → ActionBar.stories-IDc5Jeit.js} +1 -1
  3. package/dist/storybook/assets/{ActionItem.stories-BqiWvlWi.js → ActionItem.stories-FKbziuZR.js} +1 -1
  4. package/dist/storybook/assets/{Avatar.stories-DkdB6hd_.js → Avatar.stories-BsAnn4F7.js} +1 -1
  5. package/dist/storybook/assets/{AvatarGroup.stories-DODqaIix.js → AvatarGroup.stories-BmNNGA4K.js} +1 -1
  6. package/dist/storybook/assets/{Badge.stories-DZoum08S.js → Badge.stories-BMb_-0Io.js} +1 -1
  7. package/dist/storybook/assets/{Button-BkmBgNO-.js → Button-D3vjfsjz.js} +1 -1
  8. package/dist/storybook/assets/{Button.stories-BFhCL2dp.js → Button.stories-VndkwLDv.js} +1 -1
  9. package/dist/storybook/assets/{ButtonGroup.stories-DlTGTvkq.js → ButtonGroup.stories-BvbNykTx.js} +1 -1
  10. package/dist/storybook/assets/{Celebrate.stories-m4d4zTEz.js → Celebrate.stories-DrrL3txs.js} +1 -1
  11. package/dist/storybook/assets/{Checkbox.stories-Y253YeU7.js → Checkbox.stories-BS4H3-cO.js} +1 -1
  12. package/dist/storybook/assets/{CircularProgress.stories-6BD8uV5G.js → CircularProgress.stories-YQfbjx-O.js} +1 -1
  13. package/dist/storybook/assets/{ClipboardMixin.stories-BkH66rIU.js → ClipboardMixin.stories-DjsApoGs.js} +1 -1
  14. package/dist/storybook/assets/{Color-6BZIO3FS-iG0OjPBU.js → Color-6BZIO3FS-D23VaL29.js} +1 -1
  15. package/dist/storybook/assets/{Colors.stories-BxiyQnEg.js → Colors.stories-B0Eo-AgP.js} +1 -1
  16. package/dist/storybook/assets/{CombinedEffects.stories-Bs3U7qRl.js → CombinedEffects.stories-CJv4PhDZ.js} +1 -1
  17. package/dist/storybook/assets/{ComponentStatesMixin-DampYb5c.js → ComponentStatesMixin-Bn8b1Qpq.js} +1 -1
  18. package/dist/storybook/assets/{ComponentStatesMixin.stories-CZ2OW7as.js → ComponentStatesMixin.stories-CM9Nn1Vr.js} +1 -1
  19. package/dist/storybook/assets/{CopyToClipboard.stories-CdlghjaE.js → CopyToClipboard.stories-DdwTxinQ.js} +1 -1
  20. package/dist/storybook/assets/{Debounce.stories-CymT8PnT.js → Debounce.stories-bdqs8xGz.js} +1 -1
  21. package/dist/storybook/assets/{DocsRenderer-LL677BLK-dqHCo-GE.js → DocsRenderer-LL677BLK-CdjX43FI.js} +3 -3
  22. package/dist/storybook/assets/{Dropdown.stories-B6JwKg-I.js → Dropdown.stories-wY7jzy1b.js} +1 -1
  23. package/dist/storybook/assets/{EmptyState.stories-Bk229lPH.js → EmptyState.stories-FpHAx68-.js} +1 -1
  24. package/dist/storybook/assets/{Events.stories-C8-k9cx8.js → Events.stories-gJAakVdu.js} +1 -1
  25. package/dist/storybook/assets/{Heading.stories-DIdnAQRG.js → Heading.stories-BqFtaYkf.js} +1 -1
  26. package/dist/storybook/assets/{HueRipple.stories-B1gXAEaH.js → HueRipple.stories-Bk1g8tT8.js} +1 -1
  27. package/dist/storybook/assets/{Icon.stories--1VJ0_yt.js → Icon.stories-sxRLpE9W.js} +1 -1
  28. package/dist/storybook/assets/{IconButton.stories-CS2rEIir.js → IconButton.stories-DjmbahEP.js} +1 -1
  29. package/dist/storybook/assets/{LinearProgress.stories-Bx0CQQls.js → LinearProgress.stories-DwJQwdLl.js} +1 -1
  30. package/dist/storybook/assets/{Pagination.stories-B4AogTXB.js → Pagination.stories-Cp-E5mN-.js} +1 -1
  31. package/dist/storybook/assets/{Popover.stories-BR88DPgU.js → Popover.stories-BRW3tYFh.js} +1 -1
  32. package/dist/storybook/assets/{ReadyMixin-n6qZO39Y.js → ReadyMixin-Btxswj_k.js} +1 -1
  33. package/dist/storybook/assets/{RovingTabindexMixin.stories-1xTJSMSv.js → RovingTabindexMixin.stories-CU7heX4w.js} +1 -1
  34. package/dist/storybook/assets/{Rtc.stories-Rt0A_rUZ.js → Rtc.stories-CGkrXg7-.js} +1 -1
  35. package/dist/storybook/assets/{ScrollShadow.stories-CjLdJyYu.js → ScrollShadow.stories-HPqnieYi.js} +1 -1
  36. package/dist/storybook/assets/{Switch.stories-CF8wO4v2.js → Switch.stories-SIix50Dz.js} +1 -1
  37. package/dist/storybook/assets/{Tab.stories-C8XNshog.js → Tab.stories-BJ0Dl--1.js} +1 -1
  38. package/dist/storybook/assets/{Tabs.stories-B01l4rQx.js → Tabs.stories-DEV7dhqr.js} +1 -1
  39. package/dist/storybook/assets/{Throttle.stories-Bpi0K5j9.js → Throttle.stories-5l5dcEMx.js} +1 -1
  40. package/dist/storybook/assets/{Tooltip.stories-BC4zMiZ1.js → Tooltip.stories-CJrvBRM9.js} +1 -1
  41. package/dist/storybook/assets/{Upload.stories-2pWv_fZ1.js → Upload.stories-HAndUW3D.js} +1 -1
  42. package/dist/storybook/assets/{UploadItem.stories-aLeAUM7y.js → UploadItem.stories-B-8IM6rL.js} +1 -1
  43. package/dist/storybook/assets/{Welcome.stories-DJV83eb7.js → Welcome.stories-Cy7QZEXf.js} +1 -1
  44. package/dist/storybook/assets/{Widget.stories-Cz0i2o6L.js → Widget.stories-DyTOXrSZ.js} +1 -1
  45. package/dist/storybook/assets/{WithTooltip-65CFNBJE-D8QwVYG8.js → WithTooltip-65CFNBJE-BF-px3XD.js} +1 -1
  46. package/dist/storybook/assets/{blocks-BFmpEZRy.js → blocks-B-r6Fucc.js} +5 -5
  47. package/dist/storybook/assets/{formatter-EIJCOSYU-CdwdJOPy.js → formatter-EIJCOSYU-BhTCWHea.js} +1 -1
  48. package/dist/storybook/assets/if-defined-CxLwFifW.js +1 -0
  49. package/dist/storybook/assets/{iframe-CyssRDCd.js → iframe-XJ17FJi7.js} +4 -4
  50. package/dist/storybook/assets/{index-B82i8dhg.js → index-CQ_bLab5.js} +1 -1
  51. package/dist/storybook/assets/{onFind-BFI1uIxr.js → onFind-RCD4BqgZ.js} +1 -1
  52. package/dist/storybook/assets/{onFind.stories-zZjQs_Gn.js → onFind.stories-CD7vXuRn.js} +1 -1
  53. package/dist/storybook/assets/{onRemove.stories-pFBwAIex.js → onRemove.stories-Dm8HrW-w.js} +1 -1
  54. package/dist/storybook/assets/{onVisible.stories-5dErOVRq.js → onVisible.stories-CigtHPTK.js} +1 -1
  55. package/dist/storybook/assets/{style-map-D0EcLEWO.js → style-map-C3PJ2niZ.js} +1 -1
  56. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY--2h_dVga.js → syntaxhighlighter-ED5Y7EFY-DIlzdeob.js} +1 -1
  57. package/dist/storybook/iframe.html +1 -1
  58. package/dist/storybook/project.json +1 -1
  59. package/package.json +1 -1
  60. package/src/legacy/tool-ui/src/CodeMirror.css +12 -0
  61. package/src/legacy/tool-ui/src/Entry.ts +19 -1
  62. package/src/legacy/tool-ui/src/ProseMirror-table.css +21 -1
  63. package/src/legacy/tool-ui/src/form/CodeInput/index.ts +1 -0
  64. package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirror.7561297911cca56da5dd.js → RTEProseMirror.e8521581e28e90ef6f30.js} +9 -9
  65. package/src/legacy/tool-ui/src/main/webapp/dist/RegionMap.f6f963eda2cb616b9661.js +1 -0
  66. package/src/legacy/tool-ui/src/main/webapp/dist/{v4.63bc3566a89786faeb89.js → v4.de442a0b430071a7803d.js} +3 -3
  67. package/src/legacy/tool-ui/src/main/webapp/dist/{v5.5e5d7f655e174ddd85f5.css → v5.4b90971f9439c2cbd13d.css} +1 -1
  68. package/src/legacy/tool-ui/src/main/webapp/dist/{v5.702238fcabd666eba152.js → v5.5ce74760f3fb482bec5e.js} +4 -4
  69. package/src/legacy/tool-ui/src/v5.ts +32 -10
  70. package/dist/storybook/assets/if-defined-gbJXriW-.js +0 -1
  71. package/src/legacy/tool-ui/src/main/webapp/dist/RegionMap.63f3b2303ab369a05073.js +0 -1
  72. /package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirror.7561297911cca56da5dd.js.LICENSE.txt → RTEProseMirror.e8521581e28e90ef6f30.js.LICENSE.txt} +0 -0
  73. /package/src/legacy/tool-ui/src/main/webapp/dist/{v4.63bc3566a89786faeb89.js.LICENSE.txt → v4.de442a0b430071a7803d.js.LICENSE.txt} +0 -0
  74. /package/src/legacy/tool-ui/src/main/webapp/dist/{v5.702238fcabd666eba152.js.LICENSE.txt → v5.5ce74760f3fb482bec5e.js.LICENSE.txt} +0 -0
@@ -876,6 +876,187 @@
876
876
  }
877
877
  ]
878
878
  },
879
+ {
880
+ "kind": "javascript-module",
881
+ "path": "src/components/badge/Badge.ts",
882
+ "declarations": [
883
+ {
884
+ "kind": "class",
885
+ "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.",
886
+ "name": "Badge",
887
+ "cssProperties": [
888
+ {
889
+ "description": "Text color (overrides theme color)",
890
+ "name": "--badge-color-foreground"
891
+ },
892
+ {
893
+ "description": "Background color (overrides theme color)",
894
+ "name": "--badge-color-background"
895
+ },
896
+ {
897
+ "description": "Border radius size (overrides shape default, default: 999px)",
898
+ "name": "--badge-radius-size"
899
+ },
900
+ {
901
+ "description": "Horizontal padding (overrides size default)",
902
+ "name": "--badge-px"
903
+ },
904
+ {
905
+ "description": "Vertical padding (overrides size default)",
906
+ "name": "--badge-py"
907
+ },
908
+ {
909
+ "description": "Size of the dot affordance (default: 6px)",
910
+ "name": "--badge-dot-size"
911
+ }
912
+ ],
913
+ "slots": [
914
+ {
915
+ "description": "Label text or child elements (e.g., btu-icon + text)",
916
+ "name": ""
917
+ }
918
+ ],
919
+ "members": [
920
+ {
921
+ "kind": "field",
922
+ "name": "variant",
923
+ "type": {
924
+ "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
925
+ },
926
+ "default": "'info'",
927
+ "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",
928
+ "attribute": "variant"
929
+ },
930
+ {
931
+ "kind": "field",
932
+ "name": "dot",
933
+ "type": {
934
+ "text": "boolean"
935
+ },
936
+ "default": "false",
937
+ "description": "Should a dot be displayed before the label?",
938
+ "attribute": "dot"
939
+ },
940
+ {
941
+ "kind": "field",
942
+ "name": "size",
943
+ "type": {
944
+ "text": "'sm' | 'md' | 'lg'"
945
+ },
946
+ "default": "'sm'",
947
+ "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
948
+ "attribute": "size"
949
+ },
950
+ {
951
+ "kind": "method",
952
+ "name": "emit",
953
+ "parameters": [
954
+ {
955
+ "name": "type",
956
+ "type": {
957
+ "text": "K"
958
+ },
959
+ "description": "Event name from CustomEventMap"
960
+ },
961
+ {
962
+ "name": "detail",
963
+ "optional": true,
964
+ "type": {
965
+ "text": "UnpackCustomEvent<CustomEventMap[K]>"
966
+ },
967
+ "description": "Optional event detail payload"
968
+ }
969
+ ],
970
+ "description": "Dispatches a type-safe CustomEvent with standardized configuration.\n\nAll events are configured with:\n- bubbles: true (event propagates up the DOM tree)\n- cancelable: false (event cannot be cancelled)\n- composed: true (event crosses shadow DOM boundaries)",
971
+ "return": {
972
+ "type": {
973
+ "text": "boolean"
974
+ }
975
+ },
976
+ "inheritedFrom": {
977
+ "name": "EventEmitterMixin",
978
+ "module": "src/util/EventEmitterMixin.ts"
979
+ }
980
+ }
981
+ ],
982
+ "events": [
983
+ {
984
+ "type": {
985
+ "text": "CustomEvent"
986
+ },
987
+ "description": "Fired after first render and initialization",
988
+ "name": "btu-badge-ready"
989
+ }
990
+ ],
991
+ "attributes": [
992
+ {
993
+ "name": "variant",
994
+ "type": {
995
+ "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
996
+ },
997
+ "default": "'info'",
998
+ "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",
999
+ "fieldName": "variant",
1000
+ "attribute": "variant"
1001
+ },
1002
+ {
1003
+ "name": "dot",
1004
+ "type": {
1005
+ "text": "boolean"
1006
+ },
1007
+ "default": "false",
1008
+ "description": "Should a dot be displayed before the label?",
1009
+ "fieldName": "dot",
1010
+ "attribute": "dot"
1011
+ },
1012
+ {
1013
+ "name": "size",
1014
+ "type": {
1015
+ "text": "'sm' | 'md' | 'lg'"
1016
+ },
1017
+ "default": "'sm'",
1018
+ "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
1019
+ "fieldName": "size",
1020
+ "attribute": "size"
1021
+ }
1022
+ ],
1023
+ "mixins": [
1024
+ {
1025
+ "name": "EventEmitterMixin",
1026
+ "module": "/src/util/EventEmitterMixin.js"
1027
+ },
1028
+ {
1029
+ "name": "ReadyMixin",
1030
+ "module": "/src/util/ReadyMixin.js"
1031
+ }
1032
+ ],
1033
+ "superclass": {
1034
+ "name": "LitElement",
1035
+ "package": "lit"
1036
+ },
1037
+ "tagName": "btu-badge",
1038
+ "customElement": true
1039
+ }
1040
+ ],
1041
+ "exports": [
1042
+ {
1043
+ "kind": "js",
1044
+ "name": "default",
1045
+ "declaration": {
1046
+ "name": "Badge",
1047
+ "module": "src/components/badge/Badge.ts"
1048
+ }
1049
+ },
1050
+ {
1051
+ "kind": "custom-element-definition",
1052
+ "name": "btu-badge",
1053
+ "declaration": {
1054
+ "name": "Badge",
1055
+ "module": "src/components/badge/Badge.ts"
1056
+ }
1057
+ }
1058
+ ]
1059
+ },
879
1060
  {
880
1061
  "kind": "javascript-module",
881
1062
  "path": "src/components/avatar/Avatar.ts",
@@ -1531,92 +1712,96 @@
1531
1712
  },
1532
1713
  {
1533
1714
  "kind": "javascript-module",
1534
- "path": "src/components/checkbox/Checkbox.ts",
1715
+ "path": "src/components/button-group/ButtonGroup.ts",
1535
1716
  "declarations": [
1536
1717
  {
1537
1718
  "kind": "class",
1538
- "description": "A checkbox component for selecting one or more options from a set.\n\nUses a hidden native checkbox internally for accessibility and form\nparticipation. Styled via the `btu-checkbox` Tailwind plugin classes.\nThe component manages its own `className` — do not modify it externally\nafter initialization (classes present at connection time are preserved).",
1539
- "name": "Checkbox",
1719
+ "description": "A semantic container for grouping related buttons together.\n\nSupports connected (joined) and spaced layouts, horizontal and vertical\norientation, group-level size and disabled propagation, and optional\ntoggle/selection modes (single-select or multi-select).",
1720
+ "name": "ButtonGroup",
1540
1721
  "cssProperties": [
1541
1722
  {
1542
- "description": "Background and border color when checked or indeterminate, and tinted background/border on unchecked hover (default: oklch(var(--btu-theme-primary-700)))",
1543
- "name": "--checkbox-color-primary"
1723
+ "description": "Space between buttons when variant=\"spaced\" (default: spacing.sm)",
1724
+ "name": "--button-group-gap"
1544
1725
  },
1545
1726
  {
1546
- "description": "Border color in the unchecked state (default: oklch(var(--btu-theme-gray-300)))",
1547
- "name": "--checkbox-color-border"
1727
+ "description": "Corner radius of outer edges when variant=\"connected\" (default: 0.5rem)",
1728
+ "name": "--button-group-border-radius"
1548
1729
  },
1549
1730
  {
1550
- "description": "Border and text color in the error state (default: oklch(var(--btu-theme-error-600)))",
1551
- "name": "--checkbox-color-error"
1731
+ "description": "Internal divider color between connected buttons (default: gray-300)",
1732
+ "name": "--button-group-border-color"
1552
1733
  },
1553
1734
  {
1554
- "description": "Corner rounding of the checkbox square (default: 4px)",
1555
- "name": "--checkbox-border-radius"
1735
+ "description": "Background of a toggled/selected child (default: primary-50)",
1736
+ "name": "--button-group-selection-bg"
1556
1737
  },
1557
1738
  {
1558
- "description": "Distance between the checkbox and the label (default: 0.75rem)",
1559
- "name": "--checkbox-label-spacing"
1739
+ "description": "Text/icon color of a toggled/selected child (default: primary-700)",
1740
+ "name": "--button-group-selection-color"
1560
1741
  },
1561
1742
  {
1562
- "description": "[Internal] Width and height of the checkbox square, set by the size variant (sm: 1rem, md: 1.25rem). Use the `size` attribute instead of overriding directly — the icon must scale in tandem.",
1563
- "name": "--checkbox-box-size"
1743
+ "description": "Highlight color of the selection shimmer effect (default: primary-200)",
1744
+ "name": "--button-group-shimmer-highlight"
1745
+ }
1746
+ ],
1747
+ "slots": [
1748
+ {
1749
+ "description": "One or more btu-button or btu-icon-button elements to display in the group",
1750
+ "name": ""
1564
1751
  },
1565
1752
  {
1566
- "description": "[Internal] Width and height of the icon inside the box, set by the size variant (sm: 0.75rem, md: 0.875rem). Use the `size` attribute instead of overriding directly.",
1567
- "name": "--checkbox-icon-size"
1753
+ "description": "Pushes the child to the end of the group via auto-margin (vertical: bottom, horizontal: right)",
1754
+ "name": "end"
1568
1755
  }
1569
1756
  ],
1570
1757
  "members": [
1758
+ {
1759
+ "kind": "field",
1760
+ "name": "tagName",
1761
+ "static": true,
1762
+ "readonly": true
1763
+ },
1571
1764
  {
1572
1765
  "kind": "field",
1573
1766
  "name": "label",
1574
1767
  "type": {
1575
- "text": "string | undefined"
1768
+ "text": "string"
1576
1769
  },
1577
- "description": "The text label displayed next to the checkbox.",
1770
+ "default": "''",
1771
+ "description": "Accessible name for the group, announced by assistive devices via aria-label.",
1578
1772
  "attribute": "label"
1579
1773
  },
1580
1774
  {
1581
1775
  "kind": "field",
1582
- "name": "description",
1776
+ "name": "orientation",
1583
1777
  "type": {
1584
- "text": "string | undefined"
1778
+ "text": "'horizontal' | 'vertical'"
1585
1779
  },
1586
- "description": "Optional helper text displayed below the label.",
1587
- "attribute": "description"
1780
+ "default": "'horizontal'",
1781
+ "description": "Layout direction of the buttons.",
1782
+ "attribute": "orientation",
1783
+ "reflects": true
1588
1784
  },
1589
1785
  {
1590
1786
  "kind": "field",
1591
- "name": "size",
1787
+ "name": "variant",
1592
1788
  "type": {
1593
- "text": "'sm' | 'md'"
1789
+ "text": "'connected' | 'spaced'"
1594
1790
  },
1595
- "default": "'sm'",
1596
- "description": "Controls the scale of the checkbox and associated typography.",
1597
- "attribute": "size",
1791
+ "default": "'connected'",
1792
+ "description": "`connected` collapses shared borders for a joined appearance.\n`spaced` renders buttons with a gap.",
1793
+ "attribute": "variant",
1598
1794
  "reflects": true
1599
1795
  },
1600
1796
  {
1601
1797
  "kind": "field",
1602
- "name": "checked",
1798
+ "name": "size",
1603
1799
  "type": {
1604
- "text": "boolean"
1800
+ "text": "'sm' | 'md' | 'lg'"
1605
1801
  },
1606
- "default": "false",
1607
- "description": "Whether the checkbox is currently selected.",
1608
- "attribute": "checked",
1609
- "reflects": true
1610
- },
1611
- {
1612
- "kind": "field",
1613
- "name": "indeterminate",
1614
- "type": {
1615
- "text": "boolean"
1616
- },
1617
- "default": "false",
1618
- "description": "Whether the checkbox is in a partially selected state. Sets `aria-checked='mixed'`\nand activates the native `:indeterminate` pseudo-class. Cleared automatically when\nthe user clicks the checkbox.",
1619
- "attribute": "indeterminate",
1802
+ "default": "'md'",
1803
+ "description": "Propagates a uniform size to all child buttons.",
1804
+ "attribute": "size",
1620
1805
  "reflects": true
1621
1806
  },
1622
1807
  {
@@ -1626,139 +1811,40 @@
1626
1811
  "text": "boolean"
1627
1812
  },
1628
1813
  "default": "false",
1629
- "description": "If true, the checkbox is non-interactive and visually muted.",
1630
- "attribute": "disabled",
1631
- "reflects": true
1814
+ "description": "When true, disables all child buttons as a group.",
1815
+ "attribute": "disabled"
1632
1816
  },
1633
1817
  {
1634
1818
  "kind": "field",
1635
- "name": "invalid",
1819
+ "name": "selection",
1636
1820
  "type": {
1637
- "text": "boolean"
1821
+ "text": "'none' | 'single' | 'multiple'"
1638
1822
  },
1639
- "default": "false",
1640
- "description": "If true, displays error styling on the checkbox.",
1641
- "attribute": "invalid",
1823
+ "default": "'none'",
1824
+ "description": "Enables toggle/selection behavior.\n`single` allows one active button; `multiple` allows many.",
1825
+ "attribute": "selection",
1642
1826
  "reflects": true
1643
1827
  },
1644
1828
  {
1645
1829
  "kind": "field",
1646
- "name": "error",
1647
- "type": {
1648
- "text": "string | undefined"
1649
- },
1650
- "description": "Error message text displayed below the checkbox when validation fails.\nSetting this also activates error styling without needing to set invalid.",
1651
- "attribute": "error"
1652
- },
1653
- {
1654
- "kind": "field",
1655
- "name": "required",
1830
+ "name": "value",
1656
1831
  "type": {
1657
- "text": "boolean"
1832
+ "text": "string"
1658
1833
  },
1659
- "default": "false",
1660
- "description": "Marks the field as mandatory for form submission.",
1661
- "attribute": "required",
1834
+ "default": "''",
1835
+ "description": "Reflects the currently selected button value(s).\nFor `single`, the value of the active button.\nFor `multiple`, a comma-delimited list of active values.",
1836
+ "attribute": "value",
1662
1837
  "reflects": true
1663
1838
  },
1664
1839
  {
1665
1840
  "kind": "field",
1666
1841
  "name": "name",
1667
- "type": {
1668
- "text": "string | undefined"
1669
- },
1670
- "description": "Name of the form control submitted with the form data.",
1671
- "attribute": "name"
1672
- },
1673
- {
1674
- "kind": "field",
1675
- "name": "value",
1676
1842
  "type": {
1677
1843
  "text": "string"
1678
1844
  },
1679
- "default": "'on'",
1680
- "description": "Value associated with the checkbox when submitted.",
1681
- "attribute": "value"
1682
- },
1683
- {
1684
- "kind": "field",
1685
- "name": "_userInitiated",
1686
- "type": {
1687
- "text": "boolean"
1688
- },
1689
- "privacy": "private",
1690
- "default": "false"
1691
- },
1692
- {
1693
- "kind": "field",
1694
- "name": "_initialClasses",
1695
- "type": {
1696
- "text": "string[]"
1697
- },
1698
- "privacy": "private",
1699
- "default": "[]"
1700
- },
1701
- {
1702
- "kind": "field",
1703
- "name": "_initialClassesCaptured",
1704
- "type": {
1705
- "text": "boolean"
1706
- },
1707
- "privacy": "private",
1708
- "default": "false"
1709
- },
1710
- {
1711
- "kind": "field",
1712
- "name": "_descId",
1713
- "privacy": "private",
1714
- "default": "`checkbox-desc-${crypto.randomUUID()}`"
1715
- },
1716
- {
1717
- "kind": "field",
1718
- "name": "_errorId",
1719
- "privacy": "private",
1720
- "default": "`checkbox-error-${crypto.randomUUID()}`"
1721
- },
1722
- {
1723
- "kind": "method",
1724
- "name": "_onInputChange",
1725
- "privacy": "private",
1726
- "return": {
1727
- "type": {
1728
- "text": "void"
1729
- }
1730
- },
1731
- "parameters": [
1732
- {
1733
- "name": "e",
1734
- "type": {
1735
- "text": "Event"
1736
- }
1737
- }
1738
- ]
1739
- },
1740
- {
1741
- "kind": "field",
1742
- "name": "_handleClick",
1743
- "privacy": "private"
1744
- },
1745
- {
1746
- "kind": "field",
1747
- "name": "_describedBy",
1748
- "type": {
1749
- "text": "string | undefined"
1750
- },
1751
- "privacy": "private",
1752
- "readonly": true
1753
- },
1754
- {
1755
- "kind": "field",
1756
- "name": "_iconSymbol",
1757
- "type": {
1758
- "text": "'minus' | 'check'"
1759
- },
1760
- "privacy": "private",
1761
- "readonly": true
1845
+ "default": "''",
1846
+ "description": "When set, creates hidden input(s) for native form participation.",
1847
+ "attribute": "name"
1762
1848
  },
1763
1849
  {
1764
1850
  "kind": "method",
@@ -1797,65 +1883,64 @@
1797
1883
  "type": {
1798
1884
  "text": "CustomEvent"
1799
1885
  },
1800
- "description": "Fired after the checkbox is first rendered and initialized",
1801
- "name": "btu-checkbox-ready"
1886
+ "description": "Fired after first render and initialization",
1887
+ "name": "btu-button-group-ready"
1802
1888
  },
1803
1889
  {
1804
1890
  "type": {
1805
- "text": "CustomEvent<{ checked: boolean }>"
1891
+ "text": "CustomEvent<{value: string}>"
1806
1892
  },
1807
- "description": "Fired when the user toggles the checked state",
1808
- "name": "btu-checkbox-change"
1893
+ "description": "Fired when selection changes (single/multiple modes only)",
1894
+ "name": "btu-button-group-change"
1895
+ },
1896
+ {
1897
+ "type": {
1898
+ "text": "CustomEvent<{name: string | undefined}>"
1899
+ },
1900
+ "description": "Bubbles from child btu-icon-button elements when clicked",
1901
+ "name": "btu-icon-button-click"
1809
1902
  }
1810
1903
  ],
1811
1904
  "attributes": [
1812
1905
  {
1813
1906
  "name": "label",
1814
1907
  "type": {
1815
- "text": "string | undefined"
1908
+ "text": "string"
1816
1909
  },
1817
- "description": "The text label displayed next to the checkbox.",
1910
+ "default": "''",
1911
+ "description": "Accessible name for the group, announced by assistive devices via aria-label.",
1818
1912
  "fieldName": "label",
1819
1913
  "attribute": "label"
1820
1914
  },
1821
1915
  {
1822
- "name": "description",
1823
- "type": {
1824
- "text": "string | undefined"
1825
- },
1826
- "description": "Optional helper text displayed below the label.",
1827
- "fieldName": "description",
1828
- "attribute": "description"
1829
- },
1830
- {
1831
- "name": "size",
1916
+ "name": "orientation",
1832
1917
  "type": {
1833
- "text": "'sm' | 'md'"
1918
+ "text": "'horizontal' | 'vertical'"
1834
1919
  },
1835
- "default": "'sm'",
1836
- "description": "Controls the scale of the checkbox and associated typography.",
1837
- "fieldName": "size",
1838
- "attribute": "size"
1920
+ "default": "'horizontal'",
1921
+ "description": "Layout direction of the buttons.",
1922
+ "fieldName": "orientation",
1923
+ "attribute": "orientation"
1839
1924
  },
1840
1925
  {
1841
- "name": "checked",
1926
+ "name": "variant",
1842
1927
  "type": {
1843
- "text": "boolean"
1928
+ "text": "'connected' | 'spaced'"
1844
1929
  },
1845
- "default": "false",
1846
- "description": "Whether the checkbox is currently selected.",
1847
- "fieldName": "checked",
1848
- "attribute": "checked"
1930
+ "default": "'connected'",
1931
+ "description": "`connected` collapses shared borders for a joined appearance.\n`spaced` renders buttons with a gap.",
1932
+ "fieldName": "variant",
1933
+ "attribute": "variant"
1849
1934
  },
1850
1935
  {
1851
- "name": "indeterminate",
1936
+ "name": "size",
1852
1937
  "type": {
1853
- "text": "boolean"
1938
+ "text": "'sm' | 'md' | 'lg'"
1854
1939
  },
1855
- "default": "false",
1856
- "description": "Whether the checkbox is in a partially selected state. Sets `aria-checked='mixed'`\nand activates the native `:indeterminate` pseudo-class. Cleared automatically when\nthe user clicks the checkbox.",
1857
- "fieldName": "indeterminate",
1858
- "attribute": "indeterminate"
1940
+ "default": "'md'",
1941
+ "description": "Propagates a uniform size to all child buttons.",
1942
+ "fieldName": "size",
1943
+ "attribute": "size"
1859
1944
  },
1860
1945
  {
1861
1946
  "name": "disabled",
@@ -1863,60 +1948,72 @@
1863
1948
  "text": "boolean"
1864
1949
  },
1865
1950
  "default": "false",
1866
- "description": "If true, the checkbox is non-interactive and visually muted.",
1951
+ "description": "When true, disables all child buttons as a group.",
1867
1952
  "fieldName": "disabled",
1868
1953
  "attribute": "disabled"
1869
1954
  },
1870
1955
  {
1871
- "name": "invalid",
1872
- "type": {
1873
- "text": "boolean"
1874
- },
1875
- "default": "false",
1876
- "description": "If true, displays error styling on the checkbox.",
1877
- "fieldName": "invalid",
1878
- "attribute": "invalid"
1879
- },
1880
- {
1881
- "name": "error",
1956
+ "name": "selection",
1882
1957
  "type": {
1883
- "text": "string | undefined"
1958
+ "text": "'none' | 'single' | 'multiple'"
1884
1959
  },
1885
- "description": "Error message text displayed below the checkbox when validation fails.\nSetting this also activates error styling without needing to set invalid.",
1886
- "fieldName": "error",
1887
- "attribute": "error"
1960
+ "default": "'none'",
1961
+ "description": "Enables toggle/selection behavior.\n`single` allows one active button; `multiple` allows many.",
1962
+ "fieldName": "selection",
1963
+ "attribute": "selection"
1888
1964
  },
1889
1965
  {
1890
- "name": "required",
1966
+ "name": "value",
1891
1967
  "type": {
1892
- "text": "boolean"
1968
+ "text": "string"
1893
1969
  },
1894
- "default": "false",
1895
- "description": "Marks the field as mandatory for form submission.",
1896
- "fieldName": "required",
1897
- "attribute": "required"
1970
+ "default": "''",
1971
+ "description": "Reflects the currently selected button value(s).\nFor `single`, the value of the active button.\nFor `multiple`, a comma-delimited list of active values.",
1972
+ "fieldName": "value",
1973
+ "attribute": "value"
1898
1974
  },
1899
1975
  {
1900
1976
  "name": "name",
1901
1977
  "type": {
1902
- "text": "string | undefined"
1978
+ "text": "string"
1903
1979
  },
1904
- "description": "Name of the form control submitted with the form data.",
1980
+ "default": "''",
1981
+ "description": "When set, creates hidden input(s) for native form participation.",
1905
1982
  "fieldName": "name",
1906
1983
  "attribute": "name"
1907
- },
1908
- {
1909
- "name": "value",
1910
- "type": {
1911
- "text": "string"
1912
- },
1913
- "default": "'on'",
1914
- "description": "Value associated with the checkbox when submitted.",
1915
- "fieldName": "value",
1916
- "attribute": "value"
1984
+ }
1985
+ ],
1986
+ "cssStates": [
1987
+ {
1988
+ "description": "Applied when variant=\"connected\", targetable via :state(btu-connected)",
1989
+ "name": "btu-connected"
1990
+ },
1991
+ {
1992
+ "description": "Applied when variant=\"spaced\", targetable via :state(btu-spaced)",
1993
+ "name": "btu-spaced"
1994
+ },
1995
+ {
1996
+ "description": "Applied when orientation=\"horizontal\", targetable via :state(btu-horizontal)",
1997
+ "name": "btu-horizontal"
1998
+ },
1999
+ {
2000
+ "description": "Applied when orientation=\"vertical\", targetable via :state(btu-vertical)",
2001
+ "name": "btu-vertical"
2002
+ },
2003
+ {
2004
+ "description": "Applied when the group is disabled, targetable via :state(btu-disabled)",
2005
+ "name": "btu-disabled"
1917
2006
  }
1918
2007
  ],
1919
2008
  "mixins": [
2009
+ {
2010
+ "name": "RovingTabindexMixin",
2011
+ "module": "/src/util/RovingTabindexMixin.js"
2012
+ },
2013
+ {
2014
+ "name": "ComponentStatesMixin",
2015
+ "module": "/src/util/ComponentStatesMixin.js"
2016
+ },
1920
2017
  {
1921
2018
  "name": "EventEmitterMixin",
1922
2019
  "module": "/src/util/EventEmitterMixin.js"
@@ -1930,7 +2027,7 @@
1930
2027
  "name": "LitElement",
1931
2028
  "package": "lit"
1932
2029
  },
1933
- "tagName": "btu-checkbox",
2030
+ "tagName": "btu-button-group",
1934
2031
  "customElement": true
1935
2032
  }
1936
2033
  ],
@@ -1939,245 +2036,250 @@
1939
2036
  "kind": "js",
1940
2037
  "name": "default",
1941
2038
  "declaration": {
1942
- "name": "Checkbox",
1943
- "module": "src/components/checkbox/Checkbox.ts"
2039
+ "name": "ButtonGroup",
2040
+ "module": "src/components/button-group/ButtonGroup.ts"
1944
2041
  }
1945
2042
  },
1946
2043
  {
1947
2044
  "kind": "custom-element-definition",
1948
- "name": "btu-checkbox",
2045
+ "name": "btu-button-group",
1949
2046
  "declaration": {
1950
- "name": "Checkbox",
1951
- "module": "src/components/checkbox/Checkbox.ts"
2047
+ "name": "ButtonGroup",
2048
+ "module": "src/components/button-group/ButtonGroup.ts"
1952
2049
  }
1953
2050
  }
1954
2051
  ]
1955
2052
  },
1956
2053
  {
1957
2054
  "kind": "javascript-module",
1958
- "path": "src/components/circular-progress/CircularProgress.ts",
2055
+ "path": "src/components/checkbox/Checkbox.ts",
1959
2056
  "declarations": [
1960
2057
  {
1961
2058
  "kind": "class",
1962
- "description": "A circular progress indicator for showing loading states or progress.",
1963
- "name": "CircularProgress",
2059
+ "description": "A checkbox component for selecting one or more options from a set.\n\nUses a hidden native checkbox internally for accessibility and form\nparticipation. Styled via the `btu-checkbox` Tailwind plugin classes.\nThe component manages its own `className` — do not modify it externally\nafter initialization (classes present at connection time are preserved).",
2060
+ "name": "Checkbox",
1964
2061
  "cssProperties": [
1965
2062
  {
1966
- "description": "Custom progress indicator color (overrides theme color)",
1967
- "name": "--progress-color"
2063
+ "description": "Background and border color when checked or indeterminate, and tinted background/border on unchecked hover (default: oklch(var(--btu-theme-primary-700)))",
2064
+ "name": "--checkbox-color-primary"
1968
2065
  },
1969
2066
  {
1970
- "description": "Track/background color (overrides default gray-100)",
1971
- "name": "--track-color"
2067
+ "description": "Border color in the unchecked state (default: oklch(var(--btu-theme-gray-300)))",
2068
+ "name": "--checkbox-color-border"
1972
2069
  },
1973
2070
  {
1974
- "description": "Custom size in pixels (overrides size preset)",
1975
- "name": "--progress-size"
2071
+ "description": "Border and text color in the error state (default: oklch(var(--btu-theme-error-600)))",
2072
+ "name": "--checkbox-color-error"
2073
+ },
2074
+ {
2075
+ "description": "Corner rounding of the checkbox square (default: 4px)",
2076
+ "name": "--checkbox-border-radius"
2077
+ },
2078
+ {
2079
+ "description": "Distance between the checkbox and the label (default: 0.75rem)",
2080
+ "name": "--checkbox-label-spacing"
2081
+ },
2082
+ {
2083
+ "description": "[Internal] Width and height of the checkbox square, set by the size variant (sm: 1rem, md: 1.25rem). Use the `size` attribute instead of overriding directly — the icon must scale in tandem.",
2084
+ "name": "--checkbox-box-size"
2085
+ },
2086
+ {
2087
+ "description": "[Internal] Width and height of the icon inside the box, set by the size variant (sm: 0.75rem, md: 0.875rem). Use the `size` attribute instead of overriding directly.",
2088
+ "name": "--checkbox-icon-size"
1976
2089
  }
1977
2090
  ],
1978
2091
  "members": [
1979
2092
  {
1980
2093
  "kind": "field",
1981
- "name": "indeterminate",
2094
+ "name": "label",
1982
2095
  "type": {
1983
- "text": "boolean"
2096
+ "text": "string | undefined"
1984
2097
  },
1985
- "default": "true",
1986
- "description": "Whether the progress indicator is indeterminate (animated spinner).\nWhen false, shows determinate progress based on the progress value.",
1987
- "attribute": "indeterminate"
2098
+ "description": "The text label displayed next to the checkbox.",
2099
+ "attribute": "label"
1988
2100
  },
1989
2101
  {
1990
2102
  "kind": "field",
1991
- "name": "size",
2103
+ "name": "description",
1992
2104
  "type": {
1993
- "text": "'sm' | 'md' | 'lg'"
2105
+ "text": "string | undefined"
1994
2106
  },
1995
- "default": "'sm'",
1996
- "description": "Size variant.\n- 'sm': Small (16px) - default\n- 'md': Medium (32px)\n- 'lg': Large (48px)",
1997
- "attribute": "size"
2107
+ "description": "Optional helper text displayed below the label.",
2108
+ "attribute": "description"
1998
2109
  },
1999
2110
  {
2000
2111
  "kind": "field",
2001
- "name": "color",
2112
+ "name": "size",
2002
2113
  "type": {
2003
- "text": "ProgressColors"
2114
+ "text": "'sm' | 'md'"
2004
2115
  },
2005
- "default": "'primary'",
2006
- "description": "Color theme of the progress indicator.\nSupports: black, white, primary, teal, gray, purple, rose, error, warning, success",
2007
- "attribute": "color",
2008
- "inheritedFrom": {
2009
- "name": "ProgressMixin",
2010
- "module": "src/util/ProgressMixin.ts"
2011
- }
2116
+ "default": "'sm'",
2117
+ "description": "Controls the scale of the checkbox and associated typography.",
2118
+ "attribute": "size",
2119
+ "reflects": true
2012
2120
  },
2013
2121
  {
2014
2122
  "kind": "field",
2015
- "name": "thickness",
2123
+ "name": "checked",
2016
2124
  "type": {
2017
- "text": "number | undefined"
2125
+ "text": "boolean"
2018
2126
  },
2019
- "description": "Stroke width of the progress indicator.",
2020
- "attribute": "thickness",
2021
- "inheritedFrom": {
2022
- "name": "ProgressMixin",
2023
- "module": "src/util/ProgressMixin.ts"
2024
- }
2127
+ "default": "false",
2128
+ "description": "Whether the checkbox is currently selected.",
2129
+ "attribute": "checked",
2130
+ "reflects": true
2025
2131
  },
2026
2132
  {
2027
2133
  "kind": "field",
2028
- "name": "_progress",
2134
+ "name": "indeterminate",
2029
2135
  "type": {
2030
- "text": "number"
2136
+ "text": "boolean"
2031
2137
  },
2032
- "privacy": "private",
2033
- "default": "0",
2034
- "inheritedFrom": {
2035
- "name": "ProgressMixin",
2036
- "module": "src/util/ProgressMixin.ts"
2037
- }
2038
- },
2039
- {
2040
- "kind": "field",
2041
- "name": "progress",
2042
- "description": "Progress value for determinate variant. Clamped to 0–100.",
2043
- "attribute": "progress",
2044
- "inheritedFrom": {
2045
- "name": "ProgressMixin",
2046
- "module": "src/util/ProgressMixin.ts"
2047
- }
2138
+ "default": "false",
2139
+ "description": "Whether the checkbox is in a partially selected state. Sets `aria-checked='mixed'`\nand activates the native `:indeterminate` pseudo-class. Cleared automatically when\nthe user clicks the checkbox.",
2140
+ "attribute": "indeterminate",
2141
+ "reflects": true
2048
2142
  },
2049
2143
  {
2050
2144
  "kind": "field",
2051
- "name": "label",
2145
+ "name": "disabled",
2052
2146
  "type": {
2053
- "text": "string | undefined"
2147
+ "text": "boolean"
2054
2148
  },
2055
- "description": "Optional label text to display with the progress indicator.",
2056
- "attribute": "label",
2057
- "inheritedFrom": {
2058
- "name": "ProgressMixin",
2059
- "module": "src/util/ProgressMixin.ts"
2060
- }
2149
+ "default": "false",
2150
+ "description": "If true, the checkbox is non-interactive and visually muted.",
2151
+ "attribute": "disabled",
2152
+ "reflects": true
2061
2153
  },
2062
2154
  {
2063
2155
  "kind": "field",
2064
- "name": "initialAnimation",
2156
+ "name": "invalid",
2065
2157
  "type": {
2066
2158
  "text": "boolean"
2067
2159
  },
2068
- "default": "true",
2069
- "description": "Whether to animate progress from 0 to target value when component first becomes visible.",
2070
- "attribute": "initial-animation",
2071
- "inheritedFrom": {
2072
- "name": "ProgressMixin",
2073
- "module": "src/util/ProgressMixin.ts"
2074
- }
2160
+ "default": "false",
2161
+ "description": "If true, displays error styling on the checkbox.",
2162
+ "attribute": "invalid",
2163
+ "reflects": true
2075
2164
  },
2076
2165
  {
2077
2166
  "kind": "field",
2078
- "name": "ariaLabel",
2167
+ "name": "error",
2079
2168
  "type": {
2080
- "text": "string | null"
2169
+ "text": "string | undefined"
2081
2170
  },
2082
- "default": "null",
2083
- "description": "Optional aria-label attribute for screen readers.\nDescribes what the progress indicator represents.",
2084
- "attribute": "aria-label",
2085
- "inheritedFrom": {
2086
- "name": "ProgressMixin",
2087
- "module": "src/util/ProgressMixin.ts"
2088
- }
2171
+ "description": "Error message text displayed below the checkbox when validation fails.\nSetting this also activates error styling without needing to set invalid.",
2172
+ "attribute": "error"
2089
2173
  },
2090
2174
  {
2091
2175
  "kind": "field",
2092
- "name": "ariaLabelledBy",
2176
+ "name": "required",
2093
2177
  "type": {
2094
- "text": "string | null"
2178
+ "text": "boolean"
2095
2179
  },
2096
- "default": "null",
2097
- "description": "Optional aria-labelledby attribute for screen readers.\nReferences the ID of an element that labels the progress indicator.",
2098
- "attribute": "aria-labelledby",
2099
- "inheritedFrom": {
2100
- "name": "ProgressMixin",
2101
- "module": "src/util/ProgressMixin.ts"
2102
- }
2180
+ "default": "false",
2181
+ "description": "Marks the field as mandatory for form submission.",
2182
+ "attribute": "required",
2183
+ "reflects": true
2103
2184
  },
2104
2185
  {
2105
2186
  "kind": "field",
2106
- "name": "ariaValueText",
2187
+ "name": "name",
2107
2188
  "type": {
2108
- "text": "string | null"
2189
+ "text": "string | undefined"
2109
2190
  },
2110
- "default": "null",
2111
- "description": "Optional aria-valuetext attribute for screen readers.\nProvides human-readable text alternative for progress value.",
2112
- "attribute": "aria-valuetext",
2113
- "inheritedFrom": {
2114
- "name": "ProgressMixin",
2115
- "module": "src/util/ProgressMixin.ts"
2116
- }
2191
+ "description": "Name of the form control submitted with the form data.",
2192
+ "attribute": "name"
2117
2193
  },
2118
2194
  {
2119
2195
  "kind": "field",
2120
- "name": "completionAnnouncement",
2196
+ "name": "value",
2121
2197
  "type": {
2122
- "text": "string | undefined"
2198
+ "text": "string"
2123
2199
  },
2124
- "description": "Optional message to announce to screen readers when progress reaches 100%.\nIf not provided, no announcement will be made on completion.",
2125
- "attribute": "completion-announcement",
2126
- "inheritedFrom": {
2127
- "name": "ProgressMixin",
2128
- "module": "src/util/ProgressMixin.ts"
2129
- }
2200
+ "default": "'on'",
2201
+ "description": "Value associated with the checkbox when submitted.",
2202
+ "attribute": "value"
2130
2203
  },
2131
2204
  {
2132
2205
  "kind": "field",
2133
- "name": "_isAnimationInitialized",
2206
+ "name": "_userInitiated",
2134
2207
  "type": {
2135
2208
  "text": "boolean"
2136
2209
  },
2137
2210
  "privacy": "private",
2138
- "default": "false",
2139
- "inheritedFrom": {
2140
- "name": "ProgressMixin",
2141
- "module": "src/util/ProgressMixin.ts"
2142
- }
2211
+ "default": "false"
2143
2212
  },
2144
2213
  {
2145
2214
  "kind": "field",
2146
- "name": "_intersectionObserver",
2215
+ "name": "_initialClasses",
2147
2216
  "type": {
2148
- "text": "IntersectionObserver | undefined"
2217
+ "text": "string[]"
2149
2218
  },
2150
2219
  "privacy": "private",
2151
- "inheritedFrom": {
2152
- "name": "ProgressMixin",
2153
- "module": "src/util/ProgressMixin.ts"
2154
- }
2220
+ "default": "[]"
2155
2221
  },
2156
2222
  {
2157
2223
  "kind": "field",
2158
- "name": "_hasCompletedAt100",
2224
+ "name": "_initialClassesCaptured",
2159
2225
  "type": {
2160
2226
  "text": "boolean"
2161
2227
  },
2162
2228
  "privacy": "private",
2163
- "default": "false",
2164
- "inheritedFrom": {
2165
- "name": "ProgressMixin",
2166
- "module": "src/util/ProgressMixin.ts"
2167
- }
2229
+ "default": "false"
2168
2230
  },
2169
2231
  {
2170
2232
  "kind": "field",
2171
- "name": "_hostTag",
2233
+ "name": "_descId",
2234
+ "privacy": "private",
2235
+ "default": "`checkbox-desc-${crypto.randomUUID()}`"
2236
+ },
2237
+ {
2238
+ "kind": "field",
2239
+ "name": "_errorId",
2240
+ "privacy": "private",
2241
+ "default": "`checkbox-error-${crypto.randomUUID()}`"
2242
+ },
2243
+ {
2244
+ "kind": "method",
2245
+ "name": "_onInputChange",
2246
+ "privacy": "private",
2247
+ "return": {
2248
+ "type": {
2249
+ "text": "void"
2250
+ }
2251
+ },
2252
+ "parameters": [
2253
+ {
2254
+ "name": "e",
2255
+ "type": {
2256
+ "text": "Event"
2257
+ }
2258
+ }
2259
+ ]
2260
+ },
2261
+ {
2262
+ "kind": "field",
2263
+ "name": "_handleClick",
2264
+ "privacy": "private"
2265
+ },
2266
+ {
2267
+ "kind": "field",
2268
+ "name": "_describedBy",
2172
2269
  "type": {
2173
- "text": "'btu-linear-progress' | 'btu-circular-progress'"
2270
+ "text": "string | undefined"
2174
2271
  },
2175
2272
  "privacy": "private",
2176
- "readonly": true,
2177
- "inheritedFrom": {
2178
- "name": "ProgressMixin",
2179
- "module": "src/util/ProgressMixin.ts"
2180
- }
2273
+ "readonly": true
2274
+ },
2275
+ {
2276
+ "kind": "field",
2277
+ "name": "_iconSymbol",
2278
+ "type": {
2279
+ "text": "'minus' | 'check'"
2280
+ },
2281
+ "privacy": "private",
2282
+ "readonly": true
2181
2283
  },
2182
2284
  {
2183
2285
  "kind": "method",
@@ -2216,163 +2318,126 @@
2216
2318
  "type": {
2217
2319
  "text": "CustomEvent"
2218
2320
  },
2219
- "description": "Fired after first render and initialization",
2220
- "name": "btu-circular-progress-ready"
2321
+ "description": "Fired after the checkbox is first rendered and initialized",
2322
+ "name": "btu-checkbox-ready"
2221
2323
  },
2222
2324
  {
2223
2325
  "type": {
2224
- "text": "CustomEvent"
2326
+ "text": "CustomEvent<{ checked: boolean }>"
2225
2327
  },
2226
- "description": "Fired when determinate progress reaches 100",
2227
- "name": "btu-circular-progress-complete"
2328
+ "description": "Fired when the user toggles the checked state",
2329
+ "name": "btu-checkbox-change"
2228
2330
  }
2229
2331
  ],
2230
2332
  "attributes": [
2231
2333
  {
2232
- "name": "indeterminate",
2334
+ "name": "label",
2233
2335
  "type": {
2234
- "text": "boolean"
2336
+ "text": "string | undefined"
2235
2337
  },
2236
- "default": "true",
2237
- "description": "Whether the progress indicator is indeterminate (animated spinner).\nWhen false, shows determinate progress based on the progress value.",
2238
- "fieldName": "indeterminate",
2239
- "attribute": "indeterminate"
2338
+ "description": "The text label displayed next to the checkbox.",
2339
+ "fieldName": "label",
2340
+ "attribute": "label"
2341
+ },
2342
+ {
2343
+ "name": "description",
2344
+ "type": {
2345
+ "text": "string | undefined"
2346
+ },
2347
+ "description": "Optional helper text displayed below the label.",
2348
+ "fieldName": "description",
2349
+ "attribute": "description"
2240
2350
  },
2241
2351
  {
2242
2352
  "name": "size",
2243
2353
  "type": {
2244
- "text": "'sm' | 'md' | 'lg'"
2354
+ "text": "'sm' | 'md'"
2245
2355
  },
2246
2356
  "default": "'sm'",
2247
- "description": "Size variant.\n- 'sm': Small (16px) - default\n- 'md': Medium (32px)\n- 'lg': Large (48px)",
2357
+ "description": "Controls the scale of the checkbox and associated typography.",
2248
2358
  "fieldName": "size",
2249
2359
  "attribute": "size"
2250
2360
  },
2251
2361
  {
2252
- "name": "color",
2362
+ "name": "checked",
2253
2363
  "type": {
2254
- "text": "ProgressColors"
2364
+ "text": "boolean"
2255
2365
  },
2256
- "default": "'primary'",
2257
- "description": "Color theme of the progress indicator.\nSupports: black, white, primary, teal, gray, purple, rose, error, warning, success",
2258
- "fieldName": "color",
2259
- "attribute": "color",
2260
- "inheritedFrom": {
2261
- "name": "ProgressMixin",
2262
- "module": "src/util/ProgressMixin.ts"
2263
- }
2366
+ "default": "false",
2367
+ "description": "Whether the checkbox is currently selected.",
2368
+ "fieldName": "checked",
2369
+ "attribute": "checked"
2264
2370
  },
2265
2371
  {
2266
- "name": "thickness",
2372
+ "name": "indeterminate",
2267
2373
  "type": {
2268
- "text": "number | undefined"
2374
+ "text": "boolean"
2269
2375
  },
2270
- "description": "Stroke width of the progress indicator.",
2271
- "fieldName": "thickness",
2272
- "attribute": "thickness",
2273
- "inheritedFrom": {
2274
- "name": "ProgressMixin",
2275
- "module": "src/util/ProgressMixin.ts"
2276
- }
2277
- },
2278
- {
2279
- "name": "progress",
2280
- "description": "Progress value for determinate variant. Clamped to 0–100.",
2281
- "fieldName": "progress",
2282
- "attribute": "progress",
2283
- "inheritedFrom": {
2284
- "name": "ProgressMixin",
2285
- "module": "src/util/ProgressMixin.ts"
2286
- }
2376
+ "default": "false",
2377
+ "description": "Whether the checkbox is in a partially selected state. Sets `aria-checked='mixed'`\nand activates the native `:indeterminate` pseudo-class. Cleared automatically when\nthe user clicks the checkbox.",
2378
+ "fieldName": "indeterminate",
2379
+ "attribute": "indeterminate"
2287
2380
  },
2288
2381
  {
2289
- "name": "label",
2382
+ "name": "disabled",
2290
2383
  "type": {
2291
- "text": "string | undefined"
2384
+ "text": "boolean"
2292
2385
  },
2293
- "description": "Optional label text to display with the progress indicator.",
2294
- "fieldName": "label",
2295
- "attribute": "label",
2296
- "inheritedFrom": {
2297
- "name": "ProgressMixin",
2298
- "module": "src/util/ProgressMixin.ts"
2299
- }
2386
+ "default": "false",
2387
+ "description": "If true, the checkbox is non-interactive and visually muted.",
2388
+ "fieldName": "disabled",
2389
+ "attribute": "disabled"
2300
2390
  },
2301
2391
  {
2302
- "name": "initial-animation",
2392
+ "name": "invalid",
2303
2393
  "type": {
2304
2394
  "text": "boolean"
2305
2395
  },
2306
- "default": "true",
2307
- "description": "Whether to animate progress from 0 to target value when component first becomes visible.",
2308
- "fieldName": "initialAnimation",
2309
- "attribute": "initial-animation",
2310
- "inheritedFrom": {
2311
- "name": "ProgressMixin",
2312
- "module": "src/util/ProgressMixin.ts"
2313
- }
2396
+ "default": "false",
2397
+ "description": "If true, displays error styling on the checkbox.",
2398
+ "fieldName": "invalid",
2399
+ "attribute": "invalid"
2314
2400
  },
2315
2401
  {
2316
- "name": "aria-label",
2402
+ "name": "error",
2317
2403
  "type": {
2318
- "text": "string | null"
2404
+ "text": "string | undefined"
2319
2405
  },
2320
- "default": "null",
2321
- "description": "Optional aria-label attribute for screen readers.\nDescribes what the progress indicator represents.",
2322
- "fieldName": "ariaLabel",
2323
- "attribute": "aria-label",
2324
- "inheritedFrom": {
2325
- "name": "ProgressMixin",
2326
- "module": "src/util/ProgressMixin.ts"
2327
- }
2406
+ "description": "Error message text displayed below the checkbox when validation fails.\nSetting this also activates error styling without needing to set invalid.",
2407
+ "fieldName": "error",
2408
+ "attribute": "error"
2328
2409
  },
2329
2410
  {
2330
- "name": "aria-labelledby",
2411
+ "name": "required",
2331
2412
  "type": {
2332
- "text": "string | null"
2413
+ "text": "boolean"
2333
2414
  },
2334
- "default": "null",
2335
- "description": "Optional aria-labelledby attribute for screen readers.\nReferences the ID of an element that labels the progress indicator.",
2336
- "fieldName": "ariaLabelledBy",
2337
- "attribute": "aria-labelledby",
2338
- "inheritedFrom": {
2339
- "name": "ProgressMixin",
2340
- "module": "src/util/ProgressMixin.ts"
2341
- }
2415
+ "default": "false",
2416
+ "description": "Marks the field as mandatory for form submission.",
2417
+ "fieldName": "required",
2418
+ "attribute": "required"
2342
2419
  },
2343
2420
  {
2344
- "name": "aria-valuetext",
2421
+ "name": "name",
2345
2422
  "type": {
2346
- "text": "string | null"
2423
+ "text": "string | undefined"
2347
2424
  },
2348
- "default": "null",
2349
- "description": "Optional aria-valuetext attribute for screen readers.\nProvides human-readable text alternative for progress value.",
2350
- "fieldName": "ariaValueText",
2351
- "attribute": "aria-valuetext",
2352
- "inheritedFrom": {
2353
- "name": "ProgressMixin",
2354
- "module": "src/util/ProgressMixin.ts"
2355
- }
2425
+ "description": "Name of the form control submitted with the form data.",
2426
+ "fieldName": "name",
2427
+ "attribute": "name"
2356
2428
  },
2357
2429
  {
2358
- "name": "completion-announcement",
2430
+ "name": "value",
2359
2431
  "type": {
2360
- "text": "string | undefined"
2432
+ "text": "string"
2361
2433
  },
2362
- "description": "Optional message to announce to screen readers when progress reaches 100%.\nIf not provided, no announcement will be made on completion.",
2363
- "fieldName": "completionAnnouncement",
2364
- "attribute": "completion-announcement",
2365
- "inheritedFrom": {
2366
- "name": "ProgressMixin",
2367
- "module": "src/util/ProgressMixin.ts"
2368
- }
2434
+ "default": "'on'",
2435
+ "description": "Value associated with the checkbox when submitted.",
2436
+ "fieldName": "value",
2437
+ "attribute": "value"
2369
2438
  }
2370
2439
  ],
2371
2440
  "mixins": [
2372
- {
2373
- "name": "ProgressMixin",
2374
- "module": "/src/util/ProgressMixin.js"
2375
- },
2376
2441
  {
2377
2442
  "name": "EventEmitterMixin",
2378
2443
  "module": "/src/util/EventEmitterMixin.js"
@@ -2386,7 +2451,7 @@
2386
2451
  "name": "LitElement",
2387
2452
  "package": "lit"
2388
2453
  },
2389
- "tagName": "btu-circular-progress",
2454
+ "tagName": "btu-checkbox",
2390
2455
  "customElement": true
2391
2456
  }
2392
2457
  ],
@@ -2395,80 +2460,52 @@
2395
2460
  "kind": "js",
2396
2461
  "name": "default",
2397
2462
  "declaration": {
2398
- "name": "CircularProgress",
2399
- "module": "src/components/circular-progress/CircularProgress.ts"
2463
+ "name": "Checkbox",
2464
+ "module": "src/components/checkbox/Checkbox.ts"
2400
2465
  }
2401
2466
  },
2402
2467
  {
2403
2468
  "kind": "custom-element-definition",
2404
- "name": "btu-circular-progress",
2469
+ "name": "btu-checkbox",
2405
2470
  "declaration": {
2406
- "name": "CircularProgress",
2407
- "module": "src/components/circular-progress/CircularProgress.ts"
2471
+ "name": "Checkbox",
2472
+ "module": "src/components/checkbox/Checkbox.ts"
2408
2473
  }
2409
2474
  }
2410
2475
  ]
2411
2476
  },
2412
2477
  {
2413
2478
  "kind": "javascript-module",
2414
- "path": "src/components/badge/Badge.ts",
2479
+ "path": "src/components/circular-progress/CircularProgress.ts",
2415
2480
  "declarations": [
2416
2481
  {
2417
2482
  "kind": "class",
2418
- "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.",
2419
- "name": "Badge",
2483
+ "description": "A circular progress indicator for showing loading states or progress.",
2484
+ "name": "CircularProgress",
2420
2485
  "cssProperties": [
2421
2486
  {
2422
- "description": "Text color (overrides theme color)",
2423
- "name": "--badge-color-foreground"
2487
+ "description": "Custom progress indicator color (overrides theme color)",
2488
+ "name": "--progress-color"
2424
2489
  },
2425
2490
  {
2426
- "description": "Background color (overrides theme color)",
2427
- "name": "--badge-color-background"
2491
+ "description": "Track/background color (overrides default gray-100)",
2492
+ "name": "--track-color"
2428
2493
  },
2429
2494
  {
2430
- "description": "Border radius size (overrides shape default, default: 999px)",
2431
- "name": "--badge-radius-size"
2432
- },
2433
- {
2434
- "description": "Horizontal padding (overrides size default)",
2435
- "name": "--badge-px"
2436
- },
2437
- {
2438
- "description": "Vertical padding (overrides size default)",
2439
- "name": "--badge-py"
2440
- },
2441
- {
2442
- "description": "Size of the dot affordance (default: 6px)",
2443
- "name": "--badge-dot-size"
2444
- }
2445
- ],
2446
- "slots": [
2447
- {
2448
- "description": "Label text or child elements (e.g., btu-icon + text)",
2449
- "name": ""
2495
+ "description": "Custom size in pixels (overrides size preset)",
2496
+ "name": "--progress-size"
2450
2497
  }
2451
2498
  ],
2452
2499
  "members": [
2453
2500
  {
2454
2501
  "kind": "field",
2455
- "name": "variant",
2456
- "type": {
2457
- "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
2458
- },
2459
- "default": "'info'",
2460
- "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",
2461
- "attribute": "variant"
2462
- },
2463
- {
2464
- "kind": "field",
2465
- "name": "dot",
2502
+ "name": "indeterminate",
2466
2503
  "type": {
2467
2504
  "text": "boolean"
2468
2505
  },
2469
- "default": "false",
2470
- "description": "Should a dot be displayed before the label?",
2471
- "attribute": "dot"
2506
+ "default": "true",
2507
+ "description": "Whether the progress indicator is indeterminate (animated spinner).\nWhen false, shows determinate progress based on the progress value.",
2508
+ "attribute": "indeterminate"
2472
2509
  },
2473
2510
  {
2474
2511
  "kind": "field",
@@ -2477,254 +2514,191 @@
2477
2514
  "text": "'sm' | 'md' | 'lg'"
2478
2515
  },
2479
2516
  "default": "'sm'",
2480
- "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
2517
+ "description": "Size variant.\n- 'sm': Small (16px) - default\n- 'md': Medium (32px)\n- 'lg': Large (48px)",
2481
2518
  "attribute": "size"
2482
2519
  },
2483
2520
  {
2484
- "kind": "method",
2485
- "name": "emit",
2486
- "parameters": [
2487
- {
2488
- "name": "type",
2489
- "type": {
2490
- "text": "K"
2491
- },
2492
- "description": "Event name from CustomEventMap"
2493
- },
2494
- {
2495
- "name": "detail",
2496
- "optional": true,
2497
- "type": {
2498
- "text": "UnpackCustomEvent<CustomEventMap[K]>"
2499
- },
2500
- "description": "Optional event detail payload"
2501
- }
2502
- ],
2503
- "description": "Dispatches a type-safe CustomEvent with standardized configuration.\n\nAll events are configured with:\n- bubbles: true (event propagates up the DOM tree)\n- cancelable: false (event cannot be cancelled)\n- composed: true (event crosses shadow DOM boundaries)",
2504
- "return": {
2505
- "type": {
2506
- "text": "boolean"
2507
- }
2521
+ "kind": "field",
2522
+ "name": "color",
2523
+ "type": {
2524
+ "text": "ProgressColors"
2508
2525
  },
2526
+ "default": "'primary'",
2527
+ "description": "Color theme of the progress indicator.\nSupports: black, white, primary, teal, gray, purple, rose, error, warning, success",
2528
+ "attribute": "color",
2509
2529
  "inheritedFrom": {
2510
- "name": "EventEmitterMixin",
2511
- "module": "src/util/EventEmitterMixin.ts"
2530
+ "name": "ProgressMixin",
2531
+ "module": "src/util/ProgressMixin.ts"
2512
2532
  }
2513
- }
2514
- ],
2515
- "events": [
2516
- {
2517
- "type": {
2518
- "text": "CustomEvent"
2519
- },
2520
- "description": "Fired after first render and initialization",
2521
- "name": "btu-badge-ready"
2522
- }
2523
- ],
2524
- "attributes": [
2525
- {
2526
- "name": "variant",
2527
- "type": {
2528
- "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
2529
- },
2530
- "default": "'info'",
2531
- "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",
2532
- "fieldName": "variant",
2533
- "attribute": "variant"
2534
2533
  },
2535
2534
  {
2536
- "name": "dot",
2535
+ "kind": "field",
2536
+ "name": "thickness",
2537
2537
  "type": {
2538
- "text": "boolean"
2538
+ "text": "number | undefined"
2539
2539
  },
2540
- "default": "false",
2541
- "description": "Should a dot be displayed before the label?",
2542
- "fieldName": "dot",
2543
- "attribute": "dot"
2540
+ "description": "Stroke width of the progress indicator.",
2541
+ "attribute": "thickness",
2542
+ "inheritedFrom": {
2543
+ "name": "ProgressMixin",
2544
+ "module": "src/util/ProgressMixin.ts"
2545
+ }
2544
2546
  },
2545
2547
  {
2546
- "name": "size",
2548
+ "kind": "field",
2549
+ "name": "_progress",
2547
2550
  "type": {
2548
- "text": "'sm' | 'md' | 'lg'"
2551
+ "text": "number"
2549
2552
  },
2550
- "default": "'sm'",
2551
- "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
2552
- "fieldName": "size",
2553
- "attribute": "size"
2554
- }
2555
- ],
2556
- "mixins": [
2557
- {
2558
- "name": "EventEmitterMixin",
2559
- "module": "/src/util/EventEmitterMixin.js"
2560
- },
2561
- {
2562
- "name": "ReadyMixin",
2563
- "module": "/src/util/ReadyMixin.js"
2564
- }
2565
- ],
2566
- "superclass": {
2567
- "name": "LitElement",
2568
- "package": "lit"
2569
- },
2570
- "tagName": "btu-badge",
2571
- "customElement": true
2572
- }
2573
- ],
2574
- "exports": [
2575
- {
2576
- "kind": "js",
2577
- "name": "default",
2578
- "declaration": {
2579
- "name": "Badge",
2580
- "module": "src/components/badge/Badge.ts"
2581
- }
2582
- },
2583
- {
2584
- "kind": "custom-element-definition",
2585
- "name": "btu-badge",
2586
- "declaration": {
2587
- "name": "Badge",
2588
- "module": "src/components/badge/Badge.ts"
2589
- }
2590
- }
2591
- ]
2592
- },
2593
- {
2594
- "kind": "javascript-module",
2595
- "path": "src/components/button-group/ButtonGroup.ts",
2596
- "declarations": [
2597
- {
2598
- "kind": "class",
2599
- "description": "A semantic container for grouping related buttons together.\n\nSupports connected (joined) and spaced layouts, horizontal and vertical\norientation, group-level size and disabled propagation, and optional\ntoggle/selection modes (single-select or multi-select).",
2600
- "name": "ButtonGroup",
2601
- "cssProperties": [
2602
- {
2603
- "description": "Space between buttons when variant=\"spaced\" (default: spacing.sm)",
2604
- "name": "--button-group-gap"
2605
- },
2606
- {
2607
- "description": "Corner radius of outer edges when variant=\"connected\" (default: 0.5rem)",
2608
- "name": "--button-group-border-radius"
2609
- },
2610
- {
2611
- "description": "Internal divider color between connected buttons (default: gray-300)",
2612
- "name": "--button-group-border-color"
2613
- },
2614
- {
2615
- "description": "Background of a toggled/selected child (default: primary-50)",
2616
- "name": "--button-group-selection-bg"
2553
+ "privacy": "private",
2554
+ "default": "0",
2555
+ "inheritedFrom": {
2556
+ "name": "ProgressMixin",
2557
+ "module": "src/util/ProgressMixin.ts"
2558
+ }
2617
2559
  },
2618
2560
  {
2619
- "description": "Text/icon color of a toggled/selected child (default: primary-700)",
2620
- "name": "--button-group-selection-color"
2561
+ "kind": "field",
2562
+ "name": "progress",
2563
+ "description": "Progress value for determinate variant. Clamped to 0–100.",
2564
+ "attribute": "progress",
2565
+ "inheritedFrom": {
2566
+ "name": "ProgressMixin",
2567
+ "module": "src/util/ProgressMixin.ts"
2568
+ }
2621
2569
  },
2622
2570
  {
2623
- "description": "Highlight color of the selection shimmer effect (default: primary-200)",
2624
- "name": "--button-group-shimmer-highlight"
2625
- }
2626
- ],
2627
- "slots": [
2628
- {
2629
- "description": "One or more btu-button or btu-icon-button elements to display in the group",
2630
- "name": ""
2571
+ "kind": "field",
2572
+ "name": "label",
2573
+ "type": {
2574
+ "text": "string | undefined"
2575
+ },
2576
+ "description": "Optional label text to display with the progress indicator.",
2577
+ "attribute": "label",
2578
+ "inheritedFrom": {
2579
+ "name": "ProgressMixin",
2580
+ "module": "src/util/ProgressMixin.ts"
2581
+ }
2631
2582
  },
2632
- {
2633
- "description": "Pushes the child to the end of the group via auto-margin (vertical: bottom, horizontal: right)",
2634
- "name": "end"
2635
- }
2636
- ],
2637
- "members": [
2638
2583
  {
2639
2584
  "kind": "field",
2640
- "name": "tagName",
2641
- "static": true,
2642
- "readonly": true
2585
+ "name": "initialAnimation",
2586
+ "type": {
2587
+ "text": "boolean"
2588
+ },
2589
+ "default": "true",
2590
+ "description": "Whether to animate progress from 0 to target value when component first becomes visible.",
2591
+ "attribute": "initial-animation",
2592
+ "inheritedFrom": {
2593
+ "name": "ProgressMixin",
2594
+ "module": "src/util/ProgressMixin.ts"
2595
+ }
2643
2596
  },
2644
2597
  {
2645
2598
  "kind": "field",
2646
- "name": "label",
2599
+ "name": "ariaLabel",
2647
2600
  "type": {
2648
- "text": "string"
2601
+ "text": "string | null"
2649
2602
  },
2650
- "default": "''",
2651
- "description": "Accessible name for the group, announced by assistive devices via aria-label.",
2652
- "attribute": "label"
2603
+ "default": "null",
2604
+ "description": "Optional aria-label attribute for screen readers.\nDescribes what the progress indicator represents.",
2605
+ "attribute": "aria-label",
2606
+ "inheritedFrom": {
2607
+ "name": "ProgressMixin",
2608
+ "module": "src/util/ProgressMixin.ts"
2609
+ }
2653
2610
  },
2654
2611
  {
2655
2612
  "kind": "field",
2656
- "name": "orientation",
2613
+ "name": "ariaLabelledBy",
2657
2614
  "type": {
2658
- "text": "'horizontal' | 'vertical'"
2615
+ "text": "string | null"
2659
2616
  },
2660
- "default": "'horizontal'",
2661
- "description": "Layout direction of the buttons.",
2662
- "attribute": "orientation",
2663
- "reflects": true
2617
+ "default": "null",
2618
+ "description": "Optional aria-labelledby attribute for screen readers.\nReferences the ID of an element that labels the progress indicator.",
2619
+ "attribute": "aria-labelledby",
2620
+ "inheritedFrom": {
2621
+ "name": "ProgressMixin",
2622
+ "module": "src/util/ProgressMixin.ts"
2623
+ }
2664
2624
  },
2665
2625
  {
2666
2626
  "kind": "field",
2667
- "name": "variant",
2627
+ "name": "ariaValueText",
2668
2628
  "type": {
2669
- "text": "'connected' | 'spaced'"
2629
+ "text": "string | null"
2670
2630
  },
2671
- "default": "'connected'",
2672
- "description": "`connected` collapses shared borders for a joined appearance.\n`spaced` renders buttons with a gap.",
2673
- "attribute": "variant",
2674
- "reflects": true
2631
+ "default": "null",
2632
+ "description": "Optional aria-valuetext attribute for screen readers.\nProvides human-readable text alternative for progress value.",
2633
+ "attribute": "aria-valuetext",
2634
+ "inheritedFrom": {
2635
+ "name": "ProgressMixin",
2636
+ "module": "src/util/ProgressMixin.ts"
2637
+ }
2675
2638
  },
2676
2639
  {
2677
2640
  "kind": "field",
2678
- "name": "size",
2641
+ "name": "completionAnnouncement",
2679
2642
  "type": {
2680
- "text": "'sm' | 'md' | 'lg'"
2643
+ "text": "string | undefined"
2681
2644
  },
2682
- "default": "'md'",
2683
- "description": "Propagates a uniform size to all child buttons.",
2684
- "attribute": "size",
2685
- "reflects": true
2645
+ "description": "Optional message to announce to screen readers when progress reaches 100%.\nIf not provided, no announcement will be made on completion.",
2646
+ "attribute": "completion-announcement",
2647
+ "inheritedFrom": {
2648
+ "name": "ProgressMixin",
2649
+ "module": "src/util/ProgressMixin.ts"
2650
+ }
2686
2651
  },
2687
2652
  {
2688
2653
  "kind": "field",
2689
- "name": "disabled",
2654
+ "name": "_isAnimationInitialized",
2690
2655
  "type": {
2691
2656
  "text": "boolean"
2692
2657
  },
2658
+ "privacy": "private",
2693
2659
  "default": "false",
2694
- "description": "When true, disables all child buttons as a group.",
2695
- "attribute": "disabled"
2660
+ "inheritedFrom": {
2661
+ "name": "ProgressMixin",
2662
+ "module": "src/util/ProgressMixin.ts"
2663
+ }
2696
2664
  },
2697
2665
  {
2698
2666
  "kind": "field",
2699
- "name": "selection",
2667
+ "name": "_intersectionObserver",
2700
2668
  "type": {
2701
- "text": "'none' | 'single' | 'multiple'"
2669
+ "text": "IntersectionObserver | undefined"
2702
2670
  },
2703
- "default": "'none'",
2704
- "description": "Enables toggle/selection behavior.\n`single` allows one active button; `multiple` allows many.",
2705
- "attribute": "selection",
2706
- "reflects": true
2671
+ "privacy": "private",
2672
+ "inheritedFrom": {
2673
+ "name": "ProgressMixin",
2674
+ "module": "src/util/ProgressMixin.ts"
2675
+ }
2707
2676
  },
2708
2677
  {
2709
2678
  "kind": "field",
2710
- "name": "value",
2679
+ "name": "_hasCompletedAt100",
2711
2680
  "type": {
2712
- "text": "string"
2681
+ "text": "boolean"
2713
2682
  },
2714
- "default": "''",
2715
- "description": "Reflects the currently selected button value(s).\nFor `single`, the value of the active button.\nFor `multiple`, a comma-delimited list of active values.",
2716
- "attribute": "value",
2717
- "reflects": true
2683
+ "privacy": "private",
2684
+ "default": "false",
2685
+ "inheritedFrom": {
2686
+ "name": "ProgressMixin",
2687
+ "module": "src/util/ProgressMixin.ts"
2688
+ }
2718
2689
  },
2719
2690
  {
2720
2691
  "kind": "field",
2721
- "name": "name",
2692
+ "name": "_hostTag",
2722
2693
  "type": {
2723
- "text": "string"
2694
+ "text": "'btu-linear-progress' | 'btu-circular-progress'"
2724
2695
  },
2725
- "default": "''",
2726
- "description": "When set, creates hidden input(s) for native form participation.",
2727
- "attribute": "name"
2696
+ "privacy": "private",
2697
+ "readonly": true,
2698
+ "inheritedFrom": {
2699
+ "name": "ProgressMixin",
2700
+ "module": "src/util/ProgressMixin.ts"
2701
+ }
2728
2702
  },
2729
2703
  {
2730
2704
  "kind": "method",
@@ -2764,135 +2738,161 @@
2764
2738
  "text": "CustomEvent"
2765
2739
  },
2766
2740
  "description": "Fired after first render and initialization",
2767
- "name": "btu-button-group-ready"
2768
- },
2769
- {
2770
- "type": {
2771
- "text": "CustomEvent<{value: string}>"
2772
- },
2773
- "description": "Fired when selection changes (single/multiple modes only)",
2774
- "name": "btu-button-group-change"
2741
+ "name": "btu-circular-progress-ready"
2775
2742
  },
2776
2743
  {
2777
2744
  "type": {
2778
- "text": "CustomEvent<{name: string | undefined}>"
2745
+ "text": "CustomEvent"
2779
2746
  },
2780
- "description": "Bubbles from child btu-icon-button elements when clicked",
2781
- "name": "btu-icon-button-click"
2747
+ "description": "Fired when determinate progress reaches 100",
2748
+ "name": "btu-circular-progress-complete"
2782
2749
  }
2783
2750
  ],
2784
2751
  "attributes": [
2785
2752
  {
2786
- "name": "label",
2787
- "type": {
2788
- "text": "string"
2789
- },
2790
- "default": "''",
2791
- "description": "Accessible name for the group, announced by assistive devices via aria-label.",
2792
- "fieldName": "label",
2793
- "attribute": "label"
2794
- },
2795
- {
2796
- "name": "orientation",
2797
- "type": {
2798
- "text": "'horizontal' | 'vertical'"
2799
- },
2800
- "default": "'horizontal'",
2801
- "description": "Layout direction of the buttons.",
2802
- "fieldName": "orientation",
2803
- "attribute": "orientation"
2804
- },
2805
- {
2806
- "name": "variant",
2753
+ "name": "indeterminate",
2807
2754
  "type": {
2808
- "text": "'connected' | 'spaced'"
2755
+ "text": "boolean"
2809
2756
  },
2810
- "default": "'connected'",
2811
- "description": "`connected` collapses shared borders for a joined appearance.\n`spaced` renders buttons with a gap.",
2812
- "fieldName": "variant",
2813
- "attribute": "variant"
2757
+ "default": "true",
2758
+ "description": "Whether the progress indicator is indeterminate (animated spinner).\nWhen false, shows determinate progress based on the progress value.",
2759
+ "fieldName": "indeterminate",
2760
+ "attribute": "indeterminate"
2814
2761
  },
2815
2762
  {
2816
2763
  "name": "size",
2817
2764
  "type": {
2818
2765
  "text": "'sm' | 'md' | 'lg'"
2819
2766
  },
2820
- "default": "'md'",
2821
- "description": "Propagates a uniform size to all child buttons.",
2767
+ "default": "'sm'",
2768
+ "description": "Size variant.\n- 'sm': Small (16px) - default\n- 'md': Medium (32px)\n- 'lg': Large (48px)",
2822
2769
  "fieldName": "size",
2823
2770
  "attribute": "size"
2824
2771
  },
2825
2772
  {
2826
- "name": "disabled",
2773
+ "name": "color",
2827
2774
  "type": {
2828
- "text": "boolean"
2775
+ "text": "ProgressColors"
2829
2776
  },
2830
- "default": "false",
2831
- "description": "When true, disables all child buttons as a group.",
2832
- "fieldName": "disabled",
2833
- "attribute": "disabled"
2777
+ "default": "'primary'",
2778
+ "description": "Color theme of the progress indicator.\nSupports: black, white, primary, teal, gray, purple, rose, error, warning, success",
2779
+ "fieldName": "color",
2780
+ "attribute": "color",
2781
+ "inheritedFrom": {
2782
+ "name": "ProgressMixin",
2783
+ "module": "src/util/ProgressMixin.ts"
2784
+ }
2834
2785
  },
2835
2786
  {
2836
- "name": "selection",
2787
+ "name": "thickness",
2837
2788
  "type": {
2838
- "text": "'none' | 'single' | 'multiple'"
2789
+ "text": "number | undefined"
2839
2790
  },
2840
- "default": "'none'",
2841
- "description": "Enables toggle/selection behavior.\n`single` allows one active button; `multiple` allows many.",
2842
- "fieldName": "selection",
2843
- "attribute": "selection"
2791
+ "description": "Stroke width of the progress indicator.",
2792
+ "fieldName": "thickness",
2793
+ "attribute": "thickness",
2794
+ "inheritedFrom": {
2795
+ "name": "ProgressMixin",
2796
+ "module": "src/util/ProgressMixin.ts"
2797
+ }
2844
2798
  },
2845
2799
  {
2846
- "name": "value",
2800
+ "name": "progress",
2801
+ "description": "Progress value for determinate variant. Clamped to 0–100.",
2802
+ "fieldName": "progress",
2803
+ "attribute": "progress",
2804
+ "inheritedFrom": {
2805
+ "name": "ProgressMixin",
2806
+ "module": "src/util/ProgressMixin.ts"
2807
+ }
2808
+ },
2809
+ {
2810
+ "name": "label",
2847
2811
  "type": {
2848
- "text": "string"
2812
+ "text": "string | undefined"
2849
2813
  },
2850
- "default": "''",
2851
- "description": "Reflects the currently selected button value(s).\nFor `single`, the value of the active button.\nFor `multiple`, a comma-delimited list of active values.",
2852
- "fieldName": "value",
2853
- "attribute": "value"
2814
+ "description": "Optional label text to display with the progress indicator.",
2815
+ "fieldName": "label",
2816
+ "attribute": "label",
2817
+ "inheritedFrom": {
2818
+ "name": "ProgressMixin",
2819
+ "module": "src/util/ProgressMixin.ts"
2820
+ }
2854
2821
  },
2855
2822
  {
2856
- "name": "name",
2823
+ "name": "initial-animation",
2857
2824
  "type": {
2858
- "text": "string"
2825
+ "text": "boolean"
2859
2826
  },
2860
- "default": "''",
2861
- "description": "When set, creates hidden input(s) for native form participation.",
2862
- "fieldName": "name",
2863
- "attribute": "name"
2864
- }
2865
- ],
2866
- "cssStates": [
2867
- {
2868
- "description": "Applied when variant=\"connected\", targetable via :state(btu-connected)",
2869
- "name": "btu-connected"
2827
+ "default": "true",
2828
+ "description": "Whether to animate progress from 0 to target value when component first becomes visible.",
2829
+ "fieldName": "initialAnimation",
2830
+ "attribute": "initial-animation",
2831
+ "inheritedFrom": {
2832
+ "name": "ProgressMixin",
2833
+ "module": "src/util/ProgressMixin.ts"
2834
+ }
2870
2835
  },
2871
2836
  {
2872
- "description": "Applied when variant=\"spaced\", targetable via :state(btu-spaced)",
2873
- "name": "btu-spaced"
2837
+ "name": "aria-label",
2838
+ "type": {
2839
+ "text": "string | null"
2840
+ },
2841
+ "default": "null",
2842
+ "description": "Optional aria-label attribute for screen readers.\nDescribes what the progress indicator represents.",
2843
+ "fieldName": "ariaLabel",
2844
+ "attribute": "aria-label",
2845
+ "inheritedFrom": {
2846
+ "name": "ProgressMixin",
2847
+ "module": "src/util/ProgressMixin.ts"
2848
+ }
2874
2849
  },
2875
2850
  {
2876
- "description": "Applied when orientation=\"horizontal\", targetable via :state(btu-horizontal)",
2877
- "name": "btu-horizontal"
2851
+ "name": "aria-labelledby",
2852
+ "type": {
2853
+ "text": "string | null"
2854
+ },
2855
+ "default": "null",
2856
+ "description": "Optional aria-labelledby attribute for screen readers.\nReferences the ID of an element that labels the progress indicator.",
2857
+ "fieldName": "ariaLabelledBy",
2858
+ "attribute": "aria-labelledby",
2859
+ "inheritedFrom": {
2860
+ "name": "ProgressMixin",
2861
+ "module": "src/util/ProgressMixin.ts"
2862
+ }
2878
2863
  },
2879
2864
  {
2880
- "description": "Applied when orientation=\"vertical\", targetable via :state(btu-vertical)",
2881
- "name": "btu-vertical"
2865
+ "name": "aria-valuetext",
2866
+ "type": {
2867
+ "text": "string | null"
2868
+ },
2869
+ "default": "null",
2870
+ "description": "Optional aria-valuetext attribute for screen readers.\nProvides human-readable text alternative for progress value.",
2871
+ "fieldName": "ariaValueText",
2872
+ "attribute": "aria-valuetext",
2873
+ "inheritedFrom": {
2874
+ "name": "ProgressMixin",
2875
+ "module": "src/util/ProgressMixin.ts"
2876
+ }
2882
2877
  },
2883
2878
  {
2884
- "description": "Applied when the group is disabled, targetable via :state(btu-disabled)",
2885
- "name": "btu-disabled"
2879
+ "name": "completion-announcement",
2880
+ "type": {
2881
+ "text": "string | undefined"
2882
+ },
2883
+ "description": "Optional message to announce to screen readers when progress reaches 100%.\nIf not provided, no announcement will be made on completion.",
2884
+ "fieldName": "completionAnnouncement",
2885
+ "attribute": "completion-announcement",
2886
+ "inheritedFrom": {
2887
+ "name": "ProgressMixin",
2888
+ "module": "src/util/ProgressMixin.ts"
2889
+ }
2886
2890
  }
2887
2891
  ],
2888
2892
  "mixins": [
2889
2893
  {
2890
- "name": "RovingTabindexMixin",
2891
- "module": "/src/util/RovingTabindexMixin.js"
2892
- },
2893
- {
2894
- "name": "ComponentStatesMixin",
2895
- "module": "/src/util/ComponentStatesMixin.js"
2894
+ "name": "ProgressMixin",
2895
+ "module": "/src/util/ProgressMixin.js"
2896
2896
  },
2897
2897
  {
2898
2898
  "name": "EventEmitterMixin",
@@ -2907,7 +2907,7 @@
2907
2907
  "name": "LitElement",
2908
2908
  "package": "lit"
2909
2909
  },
2910
- "tagName": "btu-button-group",
2910
+ "tagName": "btu-circular-progress",
2911
2911
  "customElement": true
2912
2912
  }
2913
2913
  ],
@@ -2916,16 +2916,16 @@
2916
2916
  "kind": "js",
2917
2917
  "name": "default",
2918
2918
  "declaration": {
2919
- "name": "ButtonGroup",
2920
- "module": "src/components/button-group/ButtonGroup.ts"
2919
+ "name": "CircularProgress",
2920
+ "module": "src/components/circular-progress/CircularProgress.ts"
2921
2921
  }
2922
2922
  },
2923
2923
  {
2924
2924
  "kind": "custom-element-definition",
2925
- "name": "btu-button-group",
2925
+ "name": "btu-circular-progress",
2926
2926
  "declaration": {
2927
- "name": "ButtonGroup",
2928
- "module": "src/components/button-group/ButtonGroup.ts"
2927
+ "name": "CircularProgress",
2928
+ "module": "src/components/circular-progress/CircularProgress.ts"
2929
2929
  }
2930
2930
  }
2931
2931
  ]