Skip to content

Commit 6a5c430

Browse files
committed
Merge branch 'main' into olaf/combobox-angular-highlight
Signed-off-by: Olaf Kappes <okappes@qti.qualcomm.com>
2 parents 4a1b3ce + ad75b39 commit 6a5c430

91 files changed

Lines changed: 2733 additions & 37 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.webstorm/bookmarks.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,13 @@
176176
{
177177
"description": "angular-docs",
178178
"provider": "com.intellij.ide.bookmark.providers.LineBookmarkProvider",
179-
"url": "file://$PROJECT_DIR$/packages/docs/angular-docs/src/routes/components+/badge+",
179+
"url": "file://$PROJECT_DIR$/packages/docs/angular-docs/src/routes/components+/badges+",
180180
"line": "-1"
181181
},
182182
{
183183
"description": "react-docs",
184184
"provider": "com.intellij.ide.bookmark.providers.LineBookmarkProvider",
185-
"url": "file://$PROJECT_DIR$/packages/docs/react-docs/src/routes/components+/badge+",
185+
"url": "file://$PROJECT_DIR$/packages/docs/react-docs/src/routes/components+/badges+",
186186
"line": "-1"
187187
},
188188
{

packages/common/qds-core/CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# @qualcomm-ui/qds-core
22

3+
## 1.5.0 (2025/11/24)
4+
5+
### Features
6+
7+
- add badge component
8+
9+
### Bug Fixes
10+
11+
- [badge]: categories > colors
12+
313
## 1.4.2 (2025/11/21)
414

515
### Miscellaneous Chores

packages/common/qds-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@qualcomm-ui/qds-core",
3-
"version": "1.4.2",
3+
"version": "1.5.0",
44
"description": "qds core components",
55
"repository": "https://github.com/qualcomm/qualcomm-ui",
66
"author": "Ryan Bower",

packages/common/qds-core/src/avatar/qds-avatar.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
flex-shrink: 0;
88
height: var(--avatar-size);
99
justify-content: center;
10+
padding: 0;
1011
position: relative;
1112
user-select: none;
1213
vertical-align: top;
13-
1414
width: var(--avatar-size);
1515
--avatar-radius: 9999px;
1616

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2+
// SPDX-License-Identifier: BSD-3-Clause-Clear
3+
4+
export const badgeClasses = {
5+
icon: "qui-badge__icon",
6+
root: "qui-badge__root",
7+
} as const
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2+
// SPDX-License-Identifier: BSD-3-Clause-Clear
3+
4+
import type {badgeClasses} from "./badge.classes"
5+
6+
export type BadgeClasses = typeof badgeClasses
7+
8+
export type QdsBadgeBasicSize = "sm" | "md" | "lg"
9+
export type QdsBadgeExtraSize = "xs" | QdsBadgeBasicSize | "xl"
10+
export type QdsBadgeExtendedSize = "xxs" | QdsBadgeExtraSize
11+
12+
export type QdsBadgeSemanticEmphasis =
13+
| "neutral"
14+
| "brand"
15+
| "info"
16+
| "success"
17+
| "warning"
18+
| "danger"
19+
20+
export type QdsBadgeCategoryEmphasis =
21+
| "blue"
22+
| "cyan"
23+
| "green"
24+
| "kiwi"
25+
| "magenta"
26+
| "orange"
27+
| "purple"
28+
| "red"
29+
| "teal"
30+
| "yellow"
31+
32+
export interface QdsBaseBadgeProps {
33+
/**
34+
* The badge disabled state.
35+
*/
36+
disabled?: boolean
37+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2+
// SPDX-License-Identifier: BSD-3-Clause-Clear
3+
4+
import {booleanDataAttr} from "@qualcomm-ui/utils/attributes"
5+
import type {PropNormalizer} from "@qualcomm-ui/utils/machine"
6+
7+
import {badgeClasses} from "./badge.classes"
8+
import type {
9+
QdsIconBadgeApi,
10+
QdsIconBadgeIconBindings,
11+
QdsIconBadgeProps,
12+
QdsIconBadgeRootBindings,
13+
} from "./icon-badge.types"
14+
15+
export function createQdsIconBadgeApi(
16+
props: QdsIconBadgeProps,
17+
normalize: PropNormalizer,
18+
): QdsIconBadgeApi {
19+
const size = props.size || "md"
20+
return {
21+
getIconBindings(): QdsIconBadgeIconBindings {
22+
return normalize.element({
23+
className: badgeClasses.icon,
24+
"data-part": "icon",
25+
"data-scope": "icon-badge",
26+
"data-size": size,
27+
})
28+
},
29+
getRootBindings(): QdsIconBadgeRootBindings {
30+
return normalize.element({
31+
className: badgeClasses.root,
32+
"data-disabled": booleanDataAttr(props.disabled),
33+
"data-emphasis": props.emphasis || "neutral",
34+
"data-overflow": booleanDataAttr(false),
35+
"data-part": "root",
36+
"data-scope": "icon-badge",
37+
"data-size": size,
38+
"data-variant": props.variant || "default",
39+
})
40+
},
41+
}
42+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2+
// SPDX-License-Identifier: BSD-3-Clause-Clear
3+
4+
import type {BooleanDataAttr} from "@qualcomm-ui/utils/attributes"
5+
6+
import type {
7+
BadgeClasses,
8+
QdsBadgeCategoryEmphasis,
9+
QdsBadgeExtendedSize,
10+
QdsBadgeSemanticEmphasis,
11+
QdsBaseBadgeProps,
12+
} from "./badge.types"
13+
14+
export type QdsIconBadgeVariant = "default" | "subtle"
15+
16+
export interface QdsIconBadgeProps extends QdsBaseBadgeProps {
17+
/**
18+
* Governs the color of the icon badge.
19+
* @default 'neutral'
20+
*/
21+
emphasis?: QdsBadgeSemanticEmphasis | QdsBadgeCategoryEmphasis
22+
23+
/**
24+
* Governs the size of the badge.
25+
* @default 'md'
26+
*/
27+
size?: QdsBadgeExtendedSize
28+
29+
/**
30+
* Governs the style of the icon badge.
31+
* @default 'default'
32+
*/
33+
variant?: QdsIconBadgeVariant
34+
}
35+
36+
export interface QdsIconBadgeRootBindings {
37+
className: BadgeClasses["root"]
38+
"data-disabled": BooleanDataAttr
39+
"data-emphasis": QdsBadgeSemanticEmphasis | QdsBadgeCategoryEmphasis
40+
"data-part": "root"
41+
"data-scope": "icon-badge"
42+
"data-size": QdsBadgeExtendedSize
43+
"data-variant": QdsIconBadgeVariant
44+
}
45+
46+
export interface QdsIconBadgeIconBindings {
47+
className: BadgeClasses["icon"]
48+
"data-part": "icon"
49+
"data-scope": "icon-badge"
50+
"data-size": QdsBadgeExtendedSize
51+
}
52+
53+
export interface QdsIconBadgeApi {
54+
getIconBindings(): QdsIconBadgeIconBindings
55+
getRootBindings(): QdsIconBadgeRootBindings
56+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export type * from "./badge.types"
2+
export * from "./text-badge.api"
3+
export type * from "./text-badge.types"
4+
export * from "./number-badge.api"
5+
export type * from "./number-badge.types"
6+
export * from "./icon-badge.api"
7+
export type * from "./icon-badge.types"
8+
export * from "./status-badge.api"
9+
export type * from "./status-badge.types"
10+
export * from "./badge.classes"
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2+
// SPDX-License-Identifier: BSD-3-Clause-Clear
3+
4+
import {booleanDataAttr} from "@qualcomm-ui/utils/attributes"
5+
import type {PropNormalizer} from "@qualcomm-ui/utils/machine"
6+
7+
import {badgeClasses} from "./badge.classes"
8+
import type {
9+
QdsNumberBadgeApi,
10+
QdsNumberBadgeProps,
11+
QdsNumberBadgeRootBindings,
12+
} from "./number-badge.types"
13+
14+
export function createQdsNumberBadgeApi(
15+
props: QdsNumberBadgeProps,
16+
normalize: PropNormalizer,
17+
): QdsNumberBadgeApi {
18+
let overflow = false
19+
let displayValue: number | string | null = null
20+
21+
if (props.value != null) {
22+
const max = props.max ?? 99
23+
overflow = props.value > max
24+
displayValue = overflow ? `${max}+` : props.value
25+
}
26+
27+
return {
28+
displayValue,
29+
getRootBindings(): QdsNumberBadgeRootBindings {
30+
return normalize.element({
31+
className: badgeClasses.root,
32+
"data-disabled": booleanDataAttr(props.disabled),
33+
"data-emphasis": props.emphasis || "neutral",
34+
"data-overflow": booleanDataAttr(overflow),
35+
"data-part": "root",
36+
"data-scope": "number-badge",
37+
"data-size": props.size || "md",
38+
})
39+
},
40+
}
41+
}

0 commit comments

Comments
 (0)