22// SPDX-License-Identifier: BSD-3-Clause-Clear
33
44import type { AnatomyPart , AnatomyPartName } from "@qualcomm-ui/utils/anatomy"
5- import type { BooleanDataAttr } from "@qualcomm-ui/utils/attributes"
65
6+ import type {
7+ QdsButtonGroupCommonBindings ,
8+ QdsButtonGroupCommonProps ,
9+ } from "./button-group-shared.types"
710import type { buttonGroupAnatomy } from "./button-group.anatomy"
811import type { buttonClasses } from "./button.classes"
9- import type {
10- QdsButtonDensity ,
11- QdsButtonEmphasis ,
12- QdsButtonSize ,
13- QdsButtonVariant ,
14- } from "./button.types"
1512
1613/**
1714 * The button group layouts
1815 */
1916export type QdsButtonGroupLayout = "hug" | "start" | "end" | "fill"
2017
21- export interface QdsButtonGroupApiProps {
22- /**
23- * Accessible name for the button group.
24- */
25- [ "aria-label" ] ?: string
26-
27- /**
28- * Id(s) of element(s) that label the button group.
29- */
30- [ "aria-labelledby" ] ?: string
31-
32- /**
33- * The density of the button. Governs padding and height.
34- *
35- * @default 'default'
36- */
37- density ?: QdsButtonDensity
38-
39- /**
40- * Disables all buttons within the group.
41- *
42- * @default false
43- */
44- disabled ?: boolean | undefined
45-
46- /**
47- * The emphasis of the buttons in the group.
48- */
49- emphasis ?: QdsButtonEmphasis
50-
18+ export interface QdsButtonGroupApiProps extends QdsButtonGroupCommonProps {
5119 /**
5220 * The layout used to display the button group.
5321 * - `hug`: Content-sized; width matches the buttons only (default).
@@ -58,31 +26,13 @@ export interface QdsButtonGroupApiProps {
5826 * @default 'hug'
5927 */
6028 layout ?: QdsButtonGroupLayout
61-
62- /**
63- * The size of the buttons in the group.
64- *
65- * @default 'md'
66- */
67- size ?: QdsButtonSize
68-
69- /**
70- * The variant of the buttons in the group.
71- */
72- variant ?: QdsButtonVariant
7329}
7430
7531type PartName = AnatomyPartName < typeof buttonGroupAnatomy >
7632interface Part < P extends PartName > extends AnatomyPart < "buttonGroup" , P > { }
7733
78- export interface QdsButtonGroupBindings extends Part < "root" > {
79- "aria-label" ?: string
80- "aria-labelledby" ?: string
34+ export interface QdsButtonGroupBindings
35+ extends Part < "root" > , QdsButtonGroupCommonBindings {
8136 className : ( typeof buttonClasses ) [ "group" ]
82- "data-disabled" : BooleanDataAttr
83- "data-emphasis" ?: QdsButtonEmphasis
8437 "data-layout" : QdsButtonGroupLayout
85- "data-size" ?: QdsButtonSize
86- "data-variant" ?: QdsButtonVariant
87- role ?: "group"
8838}
0 commit comments