@kerfjs/ui 5.0.0-beta.101 → 5.0.0-beta.103
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.
- package/ai/component-catalog.json +9 -5
- package/ai/component-composition.json +6 -0
- package/ai/components/README.md +1 -1
- package/ai/components/chip.md +7 -4
- package/ai/public-api-signatures-v1.md +37 -7
- package/ai/skill.md +1 -1
- package/ai/webawesome-jsx-signatures-v1.md +1 -1
- package/dist/chip.d.ts +36 -6
- package/dist/chip.js +1 -1
- package/dist/{chunk-34U4ANDJ.js → chunk-N7MBGONH.js} +30 -2
- package/dist/chunk-N7MBGONH.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/styles/chip.css +38 -12
- package/dist/styles/components/feedback/chip/chip.css +38 -12
- package/docs/accessibility.md +1 -1
- package/docs/component-selection.md +41 -0
- package/docs/design/templates/chip/action-filters-dark.svg +1 -0
- package/docs/design/templates/chip/action-filters.svg +1 -0
- package/docs/design/templates/chip/tags-dark.svg +1 -0
- package/docs/design/templates/chip/tags.svg +1 -0
- package/docs/design/templates/chip-dark.svg +1 -0
- package/docs/design/templates/chip.svg +1 -0
- package/llms.txt +8 -0
- package/package.json +1 -1
- package/dist/chunk-34U4ANDJ.js.map +0 -1
|
@@ -84,26 +84,29 @@
|
|
|
84
84
|
"category": "Foundation",
|
|
85
85
|
"kind": "component",
|
|
86
86
|
"source": "kerf",
|
|
87
|
-
"description": "A short tag with semantic or inherited tone, an optional accessible remove button,
|
|
87
|
+
"description": "A short tag with semantic or inherited tone, an optional accessible remove button, a native link and download form, or a native action button, including compact and disabled variants.",
|
|
88
88
|
"uses": [],
|
|
89
|
-
"purpose": "Render removable tags
|
|
89
|
+
"purpose": "Render removable tags, file or link chips, and activatable action chips without application rules on Web Awesome internals or anchor and button chrome.",
|
|
90
90
|
"publicExports": [
|
|
91
91
|
"Chip"
|
|
92
92
|
],
|
|
93
93
|
"useWhen": [
|
|
94
94
|
"Show a short tag that the application can remove through a delegated action, including a compact or disabled tag.",
|
|
95
|
-
"Show a downloadable file or a short link with chip geometry, such as the referenced files of a chat message; set tone inherit inside a brand-loud or neutral ContentItem bubble."
|
|
95
|
+
"Show a downloadable file or a short link with chip geometry, such as the referenced files of a chat message; set tone inherit inside a brand-loud or neutral ContentItem bubble.",
|
|
96
|
+
"Offer a short value the user can activate to apply it, such as a filter token in a search syntax help popover that inserts itself into the query: set action (and itemId) so the whole chip is a native button."
|
|
96
97
|
],
|
|
97
98
|
"avoidWhen": [
|
|
98
99
|
"Use Badge for non-interactive status and count metadata.",
|
|
99
100
|
"Do not use the remove button without a specific accessible name.",
|
|
100
|
-
"Use ListItemLink for a navigation row and ToolbarActionLink for a toolbar link."
|
|
101
|
+
"Use ListItemLink for a navigation row and ToolbarActionLink for a toolbar link.",
|
|
102
|
+
"Use ChoiceChips when the chips choose a persistent value with radio or checkbox state; an action chip fires a one-shot command."
|
|
101
103
|
],
|
|
102
104
|
"alternatives": [],
|
|
103
105
|
"appOwns": [
|
|
104
106
|
"tag text and identity",
|
|
105
107
|
"remove action and list update",
|
|
106
108
|
"link destination and download file name",
|
|
109
|
+
"action handler and its effect",
|
|
107
110
|
"disabled policy"
|
|
108
111
|
],
|
|
109
112
|
"variants": [
|
|
@@ -111,12 +114,13 @@
|
|
|
111
114
|
"quiet, solid, or outline appearance",
|
|
112
115
|
"pill or rounded shape",
|
|
113
116
|
"compact or default size",
|
|
114
|
-
"removable, link, or plain, enabled or disabled"
|
|
117
|
+
"removable, link, action, or plain, enabled or disabled"
|
|
115
118
|
],
|
|
116
119
|
"accessibility": [
|
|
117
120
|
"The remove control is a native button and requires an action and a specific removeLabel. A disabled chip disables that button and removes it from keyboard interaction.",
|
|
118
121
|
"A link chip is a native anchor named by its visible label; external adds a safe rel, a new tab, and an \"(opens in new tab)\" name suffix, and a disabled link chip drops its destination and leaves the tab order.",
|
|
119
122
|
"The inherit tone paints no fill, so its label keeps the surrounding text contrast, and its focus ring follows the surrounding foreground.",
|
|
123
|
+
"An action chip is one native button (type button) named by its visible label or by actionLabel, which should include that label; Enter and Space activate it, it shows the focus ring on keyboard focus, and a disabled action chip is a disabled button that leaves the tab order. It cannot also be a link or carry a remove button.",
|
|
120
124
|
"Keep meaningful tag text visible because tone is supplementary."
|
|
121
125
|
],
|
|
122
126
|
"geometry": {
|
|
@@ -88,6 +88,11 @@
|
|
|
88
88
|
"owner": "application",
|
|
89
89
|
"required": false
|
|
90
90
|
},
|
|
91
|
+
{
|
|
92
|
+
"id": "action handler and its effect",
|
|
93
|
+
"owner": "application",
|
|
94
|
+
"required": false
|
|
95
|
+
},
|
|
91
96
|
{ "id": "disabled policy", "owner": "application", "required": false }
|
|
92
97
|
],
|
|
93
98
|
"wiring": {
|
|
@@ -106,6 +111,7 @@
|
|
|
106
111
|
"The remove control is a native button and requires an action and a specific removeLabel. A disabled chip disables that button and removes it from keyboard interaction.",
|
|
107
112
|
"A link chip is a native anchor named by its visible label; external adds a safe rel, a new tab, and an \"(opens in new tab)\" name suffix, and a disabled link chip drops its destination and leaves the tab order.",
|
|
108
113
|
"The inherit tone paints no fill, so its label keeps the surrounding text contrast, and its focus ring follows the surrounding foreground.",
|
|
114
|
+
"An action chip is one native button (type button) named by its visible label or by actionLabel, which should include that label; Enter and Space activate it, it shows the focus ring on keyboard focus, and a disabled action chip is a disabled button that leaves the tab order. It cannot also be a link or carry a remove button.",
|
|
109
115
|
"Keep meaningful tag text visible because tone is supplementary."
|
|
110
116
|
]
|
|
111
117
|
},
|
package/ai/components/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Exact prop and callback types live in [`public-api-signatures-v1.md`](../public-
|
|
|
9
9
|
## Kerf UI — Foundation
|
|
10
10
|
|
|
11
11
|
- [Badge](./badge.md) — Present compact metadata without application-authored badge CSS or consumer styling of component internals.
|
|
12
|
-
- [Chip](./chip.md) — Render removable tags
|
|
12
|
+
- [Chip](./chip.md) — Render removable tags, file or link chips, and activatable action chips without application rules on Web Awesome internals or anchor and button chrome.
|
|
13
13
|
- [LucideIcon](./lucide-icon.md) — Decorative and meaningfully labeled Lucide-compatible icons.
|
|
14
14
|
- [DisclosureArrow](./disclosure-arrow.md) — Indicate whether a disclosure control is open with an overridable 18px root-scaled visual and shortest-path rotation behavior.
|
|
15
15
|
- [Foundation Tokens](./foundation.md) — Provide the shared semantic token foundation for application themes and every styled Kerf UI component.
|
package/ai/components/chip.md
CHANGED
|
@@ -4,20 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
`@kerfjs/ui:chip` · Kerf UI · component · Foundation
|
|
6
6
|
|
|
7
|
-
A short tag with semantic or inherited tone, an optional accessible remove button,
|
|
7
|
+
A short tag with semantic or inherited tone, an optional accessible remove button, a native link and download form, or a native action button, including compact and disabled variants.
|
|
8
8
|
|
|
9
9
|
## When to use
|
|
10
10
|
|
|
11
|
-
Render removable tags
|
|
11
|
+
Render removable tags, file or link chips, and activatable action chips without application rules on Web Awesome internals or anchor and button chrome.
|
|
12
12
|
|
|
13
13
|
- Show a short tag that the application can remove through a delegated action, including a compact or disabled tag.
|
|
14
14
|
- Show a downloadable file or a short link with chip geometry, such as the referenced files of a chat message; set tone inherit inside a brand-loud or neutral ContentItem bubble.
|
|
15
|
+
- Offer a short value the user can activate to apply it, such as a filter token in a search syntax help popover that inserts itself into the query: set action (and itemId) so the whole chip is a native button.
|
|
15
16
|
|
|
16
17
|
**Not when:**
|
|
17
18
|
|
|
18
19
|
- Use Badge for non-interactive status and count metadata.
|
|
19
20
|
- Do not use the remove button without a specific accessible name.
|
|
20
21
|
- Use ListItemLink for a navigation row and ToolbarActionLink for a toolbar link.
|
|
22
|
+
- Use ChoiceChips when the chips choose a persistent value with radio or checkbox state; an action chip fires a one-shot command.
|
|
21
23
|
|
|
22
24
|
## Imports
|
|
23
25
|
|
|
@@ -35,7 +37,7 @@ Exact prop names and types: [`@kerfjs/ui/chip`](../public-api-signatures-v1.md#k
|
|
|
35
37
|
- quiet, solid, or outline appearance
|
|
36
38
|
- pill or rounded shape
|
|
37
39
|
- compact or default size
|
|
38
|
-
- removable, link, or plain, enabled or disabled
|
|
40
|
+
- removable, link, action, or plain, enabled or disabled
|
|
39
41
|
|
|
40
42
|
## Composition
|
|
41
43
|
|
|
@@ -45,7 +47,7 @@ Exact prop names and types: [`@kerfjs/ui/chip`](../public-api-signatures-v1.md#k
|
|
|
45
47
|
|
|
46
48
|
## State and wiring
|
|
47
49
|
|
|
48
|
-
**The app owns:** tag text and identity; remove action and list update; link destination and download file name; disabled policy.
|
|
50
|
+
**The app owns:** tag text and identity; remove action and list update; link destination and download file name; action handler and its effect; disabled policy.
|
|
49
51
|
|
|
50
52
|
No wiring helper.
|
|
51
53
|
|
|
@@ -58,6 +60,7 @@ Margin: none · border: self · padding: self (layout role: foundation). `self`
|
|
|
58
60
|
- The remove control is a native button and requires an action and a specific removeLabel. A disabled chip disables that button and removes it from keyboard interaction.
|
|
59
61
|
- A link chip is a native anchor named by its visible label; external adds a safe rel, a new tab, and an "(opens in new tab)" name suffix, and a disabled link chip drops its destination and leaves the tab order.
|
|
60
62
|
- The inherit tone paints no fill, so its label keeps the surrounding text contrast, and its focus ring follows the surrounding foreground.
|
|
63
|
+
- An action chip is one native button (type button) named by its visible label or by actionLabel, which should include that label; Enter and Space activate it, it shows the focus ring on keyboard focus, and a disabled action chip is a disabled button that leaves the tab order. It cannot also be a link or carry a remove button.
|
|
61
64
|
- Keep meaningful tag text visible because tone is supplementary.
|
|
62
65
|
|
|
63
66
|
## Styling boundary
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public API signatures for the UI authoring corpus
|
|
2
2
|
|
|
3
|
-
Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.
|
|
3
|
+
Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.103` and `kerfjs@5.0.0-beta.103`. This bounded reference covers only APIs used by the seven-task corpus. It is interface evidence, not an implementation or runtime guarantee.
|
|
4
4
|
|
|
5
5
|
## `@kerfjs/ui/css-values`
|
|
6
6
|
|
|
@@ -4166,6 +4166,31 @@ interface ChipNoLinkProps {
|
|
|
4166
4166
|
download?: never;
|
|
4167
4167
|
external?: never;
|
|
4168
4168
|
}
|
|
4169
|
+
interface ChipNoActionProps {
|
|
4170
|
+
action?: never;
|
|
4171
|
+
actionLabel?: never;
|
|
4172
|
+
}
|
|
4173
|
+
/**
|
|
4174
|
+
* An action chip renders its whole root as a native
|
|
4175
|
+
* `<button type="button">` carrying `data-action` (and `data-item-id`) for an
|
|
4176
|
+
* application delegated handler. It cannot also be a link or carry a remove
|
|
4177
|
+
* button, because nested interactive content is invalid.
|
|
4178
|
+
*/
|
|
4179
|
+
interface ChipActionProps {
|
|
4180
|
+
/** Delegated action name; the chip renders as a native `<button>`. */
|
|
4181
|
+
action: string;
|
|
4182
|
+
/**
|
|
4183
|
+
* Accessible name when the visible label alone is unclear, such as
|
|
4184
|
+
* "Insert filter is:mine". Start it with, or include, the visible label so
|
|
4185
|
+
* speech input still matches.
|
|
4186
|
+
*/
|
|
4187
|
+
actionLabel?: string;
|
|
4188
|
+
href?: never;
|
|
4189
|
+
download?: never;
|
|
4190
|
+
external?: never;
|
|
4191
|
+
removeAction?: never;
|
|
4192
|
+
removeLabel?: never;
|
|
4193
|
+
}
|
|
4169
4194
|
/**
|
|
4170
4195
|
* A link chip renders a native `<a>` with Chip geometry. It cannot also carry
|
|
4171
4196
|
* a remove button, because a button inside a link is invalid.
|
|
@@ -4179,23 +4204,28 @@ interface ChipLinkProps {
|
|
|
4179
4204
|
external?: boolean;
|
|
4180
4205
|
removeAction?: never;
|
|
4181
4206
|
removeLabel?: never;
|
|
4207
|
+
action?: never;
|
|
4208
|
+
actionLabel?: never;
|
|
4182
4209
|
}
|
|
4183
4210
|
/**
|
|
4184
4211
|
* A plain chip, a removable chip (a delegated action plus a specific
|
|
4185
|
-
* accessible name),
|
|
4212
|
+
* accessible name), a link chip (`href`, optional `download`/`external`), or
|
|
4213
|
+
* an action chip (`action`, optional `actionLabel`) whose whole body is a
|
|
4214
|
+
* native button.
|
|
4186
4215
|
*/
|
|
4187
4216
|
type ChipProps = ChipCommonProps & ChipLabelProps & (({
|
|
4188
4217
|
removeAction: string;
|
|
4189
4218
|
removeLabel: string;
|
|
4190
|
-
} & ChipNoLinkProps) | ({
|
|
4219
|
+
} & ChipNoLinkProps & ChipNoActionProps) | ({
|
|
4191
4220
|
removeAction?: never;
|
|
4192
4221
|
removeLabel?: never;
|
|
4193
|
-
} & ChipNoLinkProps) | ChipLinkProps);
|
|
4222
|
+
} & ChipNoLinkProps & ChipNoActionProps) | ChipLinkProps | ChipActionProps);
|
|
4194
4223
|
/**
|
|
4195
|
-
* A short label with an optional native remove button,
|
|
4196
|
-
* `href` is set
|
|
4224
|
+
* A short label with an optional native remove button, a native link when
|
|
4225
|
+
* `href` is set, or a native button when `action` is set. The application
|
|
4226
|
+
* owns removal, the link destination, and the action handler.
|
|
4197
4227
|
*/
|
|
4198
|
-
declare function Chip({ children, icon, truncate, tone, appearance, shape, size, disabled, itemId, className, slot, href, download, external, removeAction, removeLabel, }: ChipProps): SafeHtml;
|
|
4228
|
+
declare function Chip({ children, icon, truncate, tone, appearance, shape, size, disabled, itemId, className, slot, href, download, external, removeAction, removeLabel, action, actionLabel, }: ChipProps): SafeHtml;
|
|
4199
4229
|
|
|
4200
4230
|
export { Chip, type ChipProps, type ChipTone };
|
|
4201
4231
|
```
|
package/ai/skill.md
CHANGED
|
@@ -470,7 +470,7 @@ For prominent content text, use `Text size="large"`; use `size="xlarge"` for dis
|
|
|
470
470
|
|
|
471
471
|
For an exclusive choice among several visible options that must wrap (a labeled color palette), use `ChoiceChips` from `@kerfjs/ui/choice-chips`: separate pills backed by native radios, so the group is one Tab stop, arrow keys select, and the checked radio submits under `name`. Name it with `label` or `labelledBy` (a visible `FieldLabel`), lead choices with `swatch` (a `CssColor` such as `fillColor('#3b82f6')`, or `'transparent'` for the struck-through no-color dot) or `icon`, and handle the delegated `action` on `change`. Never wrap a `SegmentedControl` or button-appearance `wa-radio` set instead. Set `multiple` with a `readonly Value[]` `value` when any number of the options may be on (label filters, annotation intents): the pills become native checkboxes in a `role="group"`, each its own Tab stop that Space toggles, and every checked value submits under `name` (read the checked boxes by name in the change handler). A multiple group takes no `required`. On dark inverse chrome, put the chips in a dark appearance scope (`.wa-dark` or any `color-scheme: dark` ancestor) instead of restyling them.
|
|
472
472
|
|
|
473
|
-
For removable tags use `Chip`, with `removeAction` for delegated handling and a specific `removeLabel` for the native button. `itemId` identifies the tag; the app owns removal. `size="compact"` and `disabled` replace app styling of raw `wa-tag` internals. Use `Badge` for non-interactive metadata. For a downloadable file or a short link, give `Chip` an `href` (optional `download`, `true` or a file name, and `external`) instead of styling an `<a>`: it renders a native link with chip geometry, icon, truncation, focus ring, and hover feedback, and cannot also carry a remove button. Inside a `brand-loud` or `neutral` ContentItem bubble set `tone="inherit"`, which follows the bubble's foreground with a currentColor border and no fill.
|
|
473
|
+
For removable tags use `Chip`, with `removeAction` for delegated handling and a specific `removeLabel` for the native button. `itemId` identifies the tag; the app owns removal. `size="compact"` and `disabled` replace app styling of raw `wa-tag` internals. Use `Badge` for non-interactive metadata. For a downloadable file or a short link, give `Chip` an `href` (optional `download`, `true` or a file name, and `external`) instead of styling an `<a>`: it renders a native link with chip geometry, icon, truncation, focus ring, and hover feedback, and cannot also carry a remove button. Inside a `brand-loud` or `neutral` ContentItem bubble set `tone="inherit"`, which follows the bubble's foreground with a currentColor border and no fill. For a short value the user activates once (a filter token in a search help popover that inserts itself into the query), give `Chip` an `action` and `itemId`: the whole chip becomes a native `<button type="button" data-action data-item-id>` with hover, press, focus-ring, and disabled states, and an optional `actionLabel` that contains the visible label. It cannot also take `href` or `removeAction`. A compact rounded action chip keeps a compact `Badge`'s height in a compact `ValueTable` cell, so use it there instead of a `Badge` the app makes clickable.
|
|
474
474
|
|
|
475
475
|
For a chat message or assistant prompt, use `Composer` from `@kerfjs/ui/composer`: a raised frame whose border turns brand while focus is within, a borderless textarea that grows between `minRows` (default 1) and `maxRows` (default 8) lines and then scrolls, and an action row with an optional quiet `hint` and trailing `actions` (a brand Send `wa-button`). Name it with a title-style `label` and give it an `id` so the hint describes the field; the app reads and clears the textarea in its send action. For Enter-to-send, set `submitOnEnter` and call `wireComposers(root)` from `@kerfjs/ui/wire-composers` once; Enter or Cmd/Ctrl+Enter clicks the first trailing action, Shift+Enter inserts a newline, and an IME composition commit or an empty message never sends. Never hand-roll that keydown handler. In a chat dialog, slot it into a `DialogSurface` with `footerPresentation="floating"` and `footerInset="none"`. Never wrap a `wa-textarea` and a button in app-styled composer chrome.
|
|
476
476
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Web Awesome JSX signatures for the UI authoring corpus
|
|
2
2
|
|
|
3
|
-
Generated from the emitted `@kerfjs/ui@5.0.0-beta.
|
|
3
|
+
Generated from the emitted `@kerfjs/ui@5.0.0-beta.103` declaration boundary. Import `@kerfjs/ui/webawesome` for type effects when authoring direct `wa-*` JSX. The module emits no runtime behavior and does not register custom elements.
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
import { KerfCustomElement } from 'kerfjs/jsx-runtime';
|
package/dist/chip.d.ts
CHANGED
|
@@ -35,6 +35,31 @@ interface ChipNoLinkProps {
|
|
|
35
35
|
download?: never;
|
|
36
36
|
external?: never;
|
|
37
37
|
}
|
|
38
|
+
interface ChipNoActionProps {
|
|
39
|
+
action?: never;
|
|
40
|
+
actionLabel?: never;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* An action chip renders its whole root as a native
|
|
44
|
+
* `<button type="button">` carrying `data-action` (and `data-item-id`) for an
|
|
45
|
+
* application delegated handler. It cannot also be a link or carry a remove
|
|
46
|
+
* button, because nested interactive content is invalid.
|
|
47
|
+
*/
|
|
48
|
+
interface ChipActionProps {
|
|
49
|
+
/** Delegated action name; the chip renders as a native `<button>`. */
|
|
50
|
+
action: string;
|
|
51
|
+
/**
|
|
52
|
+
* Accessible name when the visible label alone is unclear, such as
|
|
53
|
+
* "Insert filter is:mine". Start it with, or include, the visible label so
|
|
54
|
+
* speech input still matches.
|
|
55
|
+
*/
|
|
56
|
+
actionLabel?: string;
|
|
57
|
+
href?: never;
|
|
58
|
+
download?: never;
|
|
59
|
+
external?: never;
|
|
60
|
+
removeAction?: never;
|
|
61
|
+
removeLabel?: never;
|
|
62
|
+
}
|
|
38
63
|
/**
|
|
39
64
|
* A link chip renders a native `<a>` with Chip geometry. It cannot also carry
|
|
40
65
|
* a remove button, because a button inside a link is invalid.
|
|
@@ -48,22 +73,27 @@ interface ChipLinkProps {
|
|
|
48
73
|
external?: boolean;
|
|
49
74
|
removeAction?: never;
|
|
50
75
|
removeLabel?: never;
|
|
76
|
+
action?: never;
|
|
77
|
+
actionLabel?: never;
|
|
51
78
|
}
|
|
52
79
|
/**
|
|
53
80
|
* A plain chip, a removable chip (a delegated action plus a specific
|
|
54
|
-
* accessible name),
|
|
81
|
+
* accessible name), a link chip (`href`, optional `download`/`external`), or
|
|
82
|
+
* an action chip (`action`, optional `actionLabel`) whose whole body is a
|
|
83
|
+
* native button.
|
|
55
84
|
*/
|
|
56
85
|
type ChipProps = ChipCommonProps & ChipLabelProps & (({
|
|
57
86
|
removeAction: string;
|
|
58
87
|
removeLabel: string;
|
|
59
|
-
} & ChipNoLinkProps) | ({
|
|
88
|
+
} & ChipNoLinkProps & ChipNoActionProps) | ({
|
|
60
89
|
removeAction?: never;
|
|
61
90
|
removeLabel?: never;
|
|
62
|
-
} & ChipNoLinkProps) | ChipLinkProps);
|
|
91
|
+
} & ChipNoLinkProps & ChipNoActionProps) | ChipLinkProps | ChipActionProps);
|
|
63
92
|
/**
|
|
64
|
-
* A short label with an optional native remove button,
|
|
65
|
-
* `href` is set
|
|
93
|
+
* A short label with an optional native remove button, a native link when
|
|
94
|
+
* `href` is set, or a native button when `action` is set. The application
|
|
95
|
+
* owns removal, the link destination, and the action handler.
|
|
66
96
|
*/
|
|
67
|
-
declare function Chip({ children, icon, truncate, tone, appearance, shape, size, disabled, itemId, className, slot, href, download, external, removeAction, removeLabel, }: ChipProps): SafeHtml;
|
|
97
|
+
declare function Chip({ children, icon, truncate, tone, appearance, shape, size, disabled, itemId, className, slot, href, download, external, removeAction, removeLabel, action, actionLabel, }: ChipProps): SafeHtml;
|
|
68
98
|
|
|
69
99
|
export { Chip, type ChipProps, type ChipTone };
|
package/dist/chip.js
CHANGED
|
@@ -50,10 +50,16 @@ function Chip({
|
|
|
50
50
|
download,
|
|
51
51
|
external = false,
|
|
52
52
|
removeAction,
|
|
53
|
-
removeLabel
|
|
53
|
+
removeLabel,
|
|
54
|
+
action,
|
|
55
|
+
actionLabel
|
|
54
56
|
}) {
|
|
55
57
|
if (truncate && typeof children !== "string")
|
|
56
58
|
throw new TypeError("Chip truncate requires a plain text label");
|
|
59
|
+
if (action !== void 0 && (href !== void 0 || removeAction !== void 0 || removeLabel !== void 0))
|
|
60
|
+
throw new TypeError(
|
|
61
|
+
"Chip action cannot be combined with href or removeAction, because nested interactive content is invalid"
|
|
62
|
+
);
|
|
57
63
|
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
58
64
|
icon === void 0 ? null : /* @__PURE__ */ jsx("span", { class: "kui-chip__icon", "aria-hidden": "true", children: icon }),
|
|
59
65
|
/* @__PURE__ */ jsx(
|
|
@@ -93,6 +99,28 @@ function Chip({
|
|
|
93
99
|
}
|
|
94
100
|
);
|
|
95
101
|
}
|
|
102
|
+
if (action !== void 0) {
|
|
103
|
+
return /* @__PURE__ */ jsx(
|
|
104
|
+
"button",
|
|
105
|
+
{
|
|
106
|
+
class: rootClass,
|
|
107
|
+
type: "button",
|
|
108
|
+
disabled,
|
|
109
|
+
"aria-label": actionLabel?.trim() || void 0,
|
|
110
|
+
"data-action": action,
|
|
111
|
+
"data-component": "chip",
|
|
112
|
+
"data-tone": tone,
|
|
113
|
+
"data-appearance": appearance,
|
|
114
|
+
"data-shape": shape,
|
|
115
|
+
"data-size": size,
|
|
116
|
+
"data-disabled": disabled ? "" : void 0,
|
|
117
|
+
"data-truncate": truncate ? "" : void 0,
|
|
118
|
+
"data-item-id": itemId,
|
|
119
|
+
slot,
|
|
120
|
+
children: content
|
|
121
|
+
}
|
|
122
|
+
);
|
|
123
|
+
}
|
|
96
124
|
return /* @__PURE__ */ jsxs(
|
|
97
125
|
"span",
|
|
98
126
|
{
|
|
@@ -116,4 +144,4 @@ function Chip({
|
|
|
116
144
|
|
|
117
145
|
export { Chip };
|
|
118
146
|
|
|
119
|
-
//# sourceMappingURL=chunk-
|
|
147
|
+
//# sourceMappingURL=chunk-N7MBGONH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/feedback/chip/chip.tsx"],"names":[],"mappings":"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","file":"chunk-N7MBGONH.js","sourcesContent":["import type { SafeHtml } from 'kerfjs';\n\nimport type { SemanticTone } from '../../../shared/styles/semantic-tone.js';\nimport type { BadgeAppearance, BadgeShape, BadgeSize } from '../badge/badge.js';\n\n/**\n * A chip color role: a shared semantic tone, or `inherit`, which follows the\n * surrounding foreground (a chip inside a `brand-loud` ContentItem bubble)\n * and derives its fill, border, and focus ring from `currentColor`.\n */\nexport type ChipTone = SemanticTone | 'inherit';\n\ninterface ChipCommonProps {\n /** Decorative leading icon, normally an unsized LucideIcon. */\n icon?: SafeHtml;\n tone?: ChipTone;\n appearance?: BadgeAppearance;\n shape?: BadgeShape;\n size?: BadgeSize;\n disabled?: boolean;\n /** Record identifier available to an application delegated action handler. */\n itemId?: string;\n className?: string;\n /** Native named-slot assignment when composed inside a web component. */\n slot?: string;\n}\n\ntype ChipLabelProps =\n | { children: SafeHtml | string | number; truncate?: false }\n | { children: string; truncate: true };\n\ninterface ChipNoLinkProps {\n href?: never;\n download?: never;\n external?: never;\n}\n\ninterface ChipNoActionProps {\n action?: never;\n actionLabel?: never;\n}\n\n/**\n * An action chip renders its whole root as a native\n * `<button type=\"button\">` carrying `data-action` (and `data-item-id`) for an\n * application delegated handler. It cannot also be a link or carry a remove\n * button, because nested interactive content is invalid.\n */\ninterface ChipActionProps {\n /** Delegated action name; the chip renders as a native `<button>`. */\n action: string;\n /**\n * Accessible name when the visible label alone is unclear, such as\n * \"Insert filter is:mine\". Start it with, or include, the visible label so\n * speech input still matches.\n */\n actionLabel?: string;\n href?: never;\n download?: never;\n external?: never;\n removeAction?: never;\n removeLabel?: never;\n}\n\n/**\n * A link chip renders a native `<a>` with Chip geometry. It cannot also carry\n * a remove button, because a button inside a link is invalid.\n */\ninterface ChipLinkProps {\n /** Native destination; the chip renders as an `<a>`. */\n href: string;\n /** Download the destination: `true`, or the suggested file name. */\n download?: string | boolean;\n /** Open in a new tab with a safe rel and announce that behavior. */\n external?: boolean;\n removeAction?: never;\n removeLabel?: never;\n action?: never;\n actionLabel?: never;\n}\n\n/**\n * A plain chip, a removable chip (a delegated action plus a specific\n * accessible name), a link chip (`href`, optional `download`/`external`), or\n * an action chip (`action`, optional `actionLabel`) whose whole body is a\n * native button.\n */\nexport type ChipProps = ChipCommonProps &\n ChipLabelProps &\n (\n | ({ removeAction: string; removeLabel: string } & ChipNoLinkProps &\n ChipNoActionProps)\n | ({ removeAction?: never; removeLabel?: never } & ChipNoLinkProps &\n ChipNoActionProps)\n | ChipLinkProps\n | ChipActionProps\n );\n\nfunction removeButton(action: string, label: string, disabled: boolean) {\n return (\n <button\n class=\"kui-chip__remove\"\n type=\"button\"\n data-action={action}\n aria-label={label}\n disabled={disabled}\n >\n <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" aria-hidden=\"true\">\n <path\n d=\"M3.5 3.5 12.5 12.5M12.5 3.5 3.5 12.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n />\n </svg>\n </button>\n );\n}\n\nfunction downloadValue(download: string | boolean | undefined) {\n switch (download) {\n case undefined:\n case false:\n return undefined;\n case true:\n return '';\n default:\n return download;\n }\n}\n\n/**\n * A short label with an optional native remove button, a native link when\n * `href` is set, or a native button when `action` is set. The application\n * owns removal, the link destination, and the action handler.\n */\nexport function Chip({\n children,\n icon,\n truncate = false,\n tone = 'neutral',\n appearance = 'quiet',\n shape = 'pill',\n size = 'default',\n disabled = false,\n itemId,\n className = '',\n slot,\n href,\n download,\n external = false,\n removeAction,\n removeLabel,\n action,\n actionLabel,\n}: ChipProps) {\n if (truncate && typeof children !== 'string')\n throw new TypeError('Chip truncate requires a plain text label');\n if (\n action !== undefined &&\n (href !== undefined ||\n removeAction !== undefined ||\n removeLabel !== undefined)\n )\n throw new TypeError(\n 'Chip action cannot be combined with href or removeAction, because nested interactive content is invalid',\n );\n const content = (\n <>\n {icon === undefined ? null : (\n <span class=\"kui-chip__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n )}\n <span\n class=\"kui-chip__label\"\n title={truncate ? String(children) : undefined}\n >\n {children}\n </span>\n </>\n );\n const rootClass = `kui-chip ${className}`.trim();\n if (href !== undefined) {\n const textLabel =\n typeof children === 'string' || typeof children === 'number'\n ? String(children)\n : undefined;\n return (\n <a\n class={rootClass}\n href={disabled ? undefined : href}\n download={disabled ? undefined : downloadValue(download)}\n target={disabled || !external ? undefined : '_blank'}\n rel={disabled || !external ? undefined : 'noopener noreferrer'}\n tabindex={disabled ? -1 : undefined}\n aria-label={\n external && textLabel !== undefined\n ? `${textLabel} (opens in new tab)`\n : undefined\n }\n aria-disabled={disabled ? 'true' : undefined}\n data-component=\"chip\"\n data-link=\"\"\n data-tone={tone}\n data-appearance={appearance}\n data-shape={shape}\n data-size={size}\n data-disabled={disabled ? '' : undefined}\n data-truncate={truncate ? '' : undefined}\n data-item-id={itemId}\n slot={slot}\n >\n {content}\n </a>\n );\n }\n if (action !== undefined) {\n return (\n <button\n class={rootClass}\n type=\"button\"\n disabled={disabled}\n aria-label={actionLabel?.trim() || undefined}\n data-action={action}\n data-component=\"chip\"\n data-tone={tone}\n data-appearance={appearance}\n data-shape={shape}\n data-size={size}\n data-disabled={disabled ? '' : undefined}\n data-truncate={truncate ? '' : undefined}\n data-item-id={itemId}\n slot={slot}\n >\n {content}\n </button>\n );\n }\n return (\n <span\n class={rootClass}\n data-component=\"chip\"\n data-tone={tone}\n data-appearance={appearance}\n data-shape={shape}\n data-size={size}\n data-disabled={disabled ? '' : undefined}\n data-truncate={truncate ? '' : undefined}\n data-item-id={itemId}\n slot={slot}\n >\n {content}\n {removeAction !== undefined && removeLabel !== undefined\n ? removeButton(removeAction, removeLabel, disabled)\n : null}\n </span>\n );\n}\n"]}
|
package/dist/index.js
CHANGED
|
@@ -67,7 +67,7 @@ export { Skeleton } from './chunk-CVD5IZGB.js';
|
|
|
67
67
|
export { calc, colorVar, em, fillColor, flex, foregroundColor, foregroundColorVar, lengthVar, pct, plus, px, rem, space, uiColor } from './chunk-IQSRHXZR.js';
|
|
68
68
|
export { Badge } from './chunk-U6QYTMDB.js';
|
|
69
69
|
|
|
70
|
-
export { Chip } from './chunk-
|
|
70
|
+
export { Chip } from './chunk-N7MBGONH.js';
|
|
71
71
|
export { ChoiceChips } from './chunk-FR76ZJQC.js';
|
|
72
72
|
|
|
73
73
|
//# sourceMappingURL=index.js.map
|
package/dist/styles/chip.css
CHANGED
|
@@ -113,11 +113,12 @@
|
|
|
113
113
|
overflow: hidden;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
/* Link
|
|
117
|
-
currentColor wash over whichever fill the
|
|
118
|
-
chip instead strengthens its border and
|
|
119
|
-
surrounding text contrast holds in every
|
|
120
|
-
.
|
|
116
|
+
/* Link and action chips: a native anchor or button with the same geometry.
|
|
117
|
+
Hover and press layer a currentColor wash over whichever fill the
|
|
118
|
+
appearance paints; an inherit chip instead strengthens its border and
|
|
119
|
+
underlines its label, so the surrounding text contrast holds in every
|
|
120
|
+
state. */
|
|
121
|
+
.kui-chip:is([data-link], [data-action]) {
|
|
121
122
|
--_kui-chip-wash: transparent;
|
|
122
123
|
|
|
123
124
|
background-image: linear-gradient(
|
|
@@ -128,38 +129,63 @@
|
|
|
128
129
|
cursor: pointer;
|
|
129
130
|
}
|
|
130
131
|
|
|
131
|
-
|
|
132
|
+
/* An action chip is a native button: drop the UA button chrome and any
|
|
133
|
+
page-wide native button theme (Web Awesome's native styles give every
|
|
134
|
+
button a form-control height) so it keeps the chip's font and box. A
|
|
135
|
+
compact action chip is exactly as tall as the compact Badge it replaces in
|
|
136
|
+
a wrapping value-cell Row. */
|
|
137
|
+
button.kui-chip {
|
|
138
|
+
height: auto;
|
|
139
|
+
margin: 0;
|
|
140
|
+
padding-block: 0;
|
|
141
|
+
font-family: inherit;
|
|
142
|
+
font-style: inherit;
|
|
143
|
+
letter-spacing: inherit;
|
|
144
|
+
text-transform: none;
|
|
145
|
+
vertical-align: middle;
|
|
146
|
+
transition: none;
|
|
147
|
+
appearance: none;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.kui-chip:is([data-link], [data-action]):hover {
|
|
132
151
|
--_kui-chip-wash: color-mix(in srgb, currentColor 10%, transparent);
|
|
133
152
|
}
|
|
134
153
|
|
|
135
|
-
.kui-chip[data-link]:active {
|
|
154
|
+
.kui-chip:is([data-link], [data-action]):active {
|
|
136
155
|
--_kui-chip-wash: color-mix(in srgb, currentColor 18%, transparent);
|
|
137
156
|
}
|
|
138
157
|
|
|
139
|
-
.kui-chip[data-link][data-tone="inherit"]:is(
|
|
158
|
+
.kui-chip:is([data-link], [data-action])[data-tone="inherit"]:is(
|
|
159
|
+
:hover,
|
|
160
|
+
:active
|
|
161
|
+
) {
|
|
140
162
|
--_kui-chip-wash: transparent;
|
|
141
163
|
--_kui-chip-border: currentColor;
|
|
142
164
|
}
|
|
143
165
|
|
|
144
166
|
/* The label clips for its ellipsis; a little block room keeps the hover
|
|
145
167
|
underline inside that clip without changing the chip's height. */
|
|
146
|
-
.kui-chip[data-link] .kui-chip__label {
|
|
168
|
+
.kui-chip:is([data-link], [data-action]) .kui-chip__label {
|
|
147
169
|
padding-block: 0.2em;
|
|
148
170
|
}
|
|
149
171
|
|
|
150
|
-
.kui-chip[data-link][data-tone="inherit"]:is(
|
|
172
|
+
.kui-chip:is([data-link], [data-action])[data-tone="inherit"]:is(
|
|
173
|
+
:hover,
|
|
174
|
+
:active
|
|
175
|
+
)
|
|
176
|
+
.kui-chip__label {
|
|
151
177
|
text-decoration: underline;
|
|
152
178
|
text-underline-offset: 0.12em;
|
|
153
179
|
}
|
|
154
180
|
|
|
155
|
-
.kui-chip[data-link]:focus-visible {
|
|
181
|
+
.kui-chip:is([data-link], [data-action]):focus-visible {
|
|
156
182
|
outline: var(--kui-focus-ring);
|
|
157
183
|
outline-offset: 2px;
|
|
158
184
|
}
|
|
159
185
|
|
|
160
186
|
/* The brand focus color can match a brand-loud surface; an inherit chip's
|
|
161
187
|
ring follows the surrounding foreground instead. */
|
|
162
|
-
.kui-chip[data-link][data-tone="inherit"]:focus-visible {
|
|
188
|
+
.kui-chip:is([data-link], [data-action])[data-tone="inherit"]:focus-visible {
|
|
163
189
|
outline: 3px solid currentColor;
|
|
164
190
|
}
|
|
165
191
|
|
|
@@ -113,11 +113,12 @@
|
|
|
113
113
|
overflow: hidden;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
/* Link
|
|
117
|
-
currentColor wash over whichever fill the
|
|
118
|
-
chip instead strengthens its border and
|
|
119
|
-
surrounding text contrast holds in every
|
|
120
|
-
.
|
|
116
|
+
/* Link and action chips: a native anchor or button with the same geometry.
|
|
117
|
+
Hover and press layer a currentColor wash over whichever fill the
|
|
118
|
+
appearance paints; an inherit chip instead strengthens its border and
|
|
119
|
+
underlines its label, so the surrounding text contrast holds in every
|
|
120
|
+
state. */
|
|
121
|
+
.kui-chip:is([data-link], [data-action]) {
|
|
121
122
|
--_kui-chip-wash: transparent;
|
|
122
123
|
|
|
123
124
|
background-image: linear-gradient(
|
|
@@ -128,38 +129,63 @@
|
|
|
128
129
|
cursor: pointer;
|
|
129
130
|
}
|
|
130
131
|
|
|
131
|
-
|
|
132
|
+
/* An action chip is a native button: drop the UA button chrome and any
|
|
133
|
+
page-wide native button theme (Web Awesome's native styles give every
|
|
134
|
+
button a form-control height) so it keeps the chip's font and box. A
|
|
135
|
+
compact action chip is exactly as tall as the compact Badge it replaces in
|
|
136
|
+
a wrapping value-cell Row. */
|
|
137
|
+
button.kui-chip {
|
|
138
|
+
height: auto;
|
|
139
|
+
margin: 0;
|
|
140
|
+
padding-block: 0;
|
|
141
|
+
font-family: inherit;
|
|
142
|
+
font-style: inherit;
|
|
143
|
+
letter-spacing: inherit;
|
|
144
|
+
text-transform: none;
|
|
145
|
+
vertical-align: middle;
|
|
146
|
+
transition: none;
|
|
147
|
+
appearance: none;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.kui-chip:is([data-link], [data-action]):hover {
|
|
132
151
|
--_kui-chip-wash: color-mix(in srgb, currentColor 10%, transparent);
|
|
133
152
|
}
|
|
134
153
|
|
|
135
|
-
.kui-chip[data-link]:active {
|
|
154
|
+
.kui-chip:is([data-link], [data-action]):active {
|
|
136
155
|
--_kui-chip-wash: color-mix(in srgb, currentColor 18%, transparent);
|
|
137
156
|
}
|
|
138
157
|
|
|
139
|
-
.kui-chip[data-link][data-tone="inherit"]:is(
|
|
158
|
+
.kui-chip:is([data-link], [data-action])[data-tone="inherit"]:is(
|
|
159
|
+
:hover,
|
|
160
|
+
:active
|
|
161
|
+
) {
|
|
140
162
|
--_kui-chip-wash: transparent;
|
|
141
163
|
--_kui-chip-border: currentColor;
|
|
142
164
|
}
|
|
143
165
|
|
|
144
166
|
/* The label clips for its ellipsis; a little block room keeps the hover
|
|
145
167
|
underline inside that clip without changing the chip's height. */
|
|
146
|
-
.kui-chip[data-link] .kui-chip__label {
|
|
168
|
+
.kui-chip:is([data-link], [data-action]) .kui-chip__label {
|
|
147
169
|
padding-block: 0.2em;
|
|
148
170
|
}
|
|
149
171
|
|
|
150
|
-
.kui-chip[data-link][data-tone="inherit"]:is(
|
|
172
|
+
.kui-chip:is([data-link], [data-action])[data-tone="inherit"]:is(
|
|
173
|
+
:hover,
|
|
174
|
+
:active
|
|
175
|
+
)
|
|
176
|
+
.kui-chip__label {
|
|
151
177
|
text-decoration: underline;
|
|
152
178
|
text-underline-offset: 0.12em;
|
|
153
179
|
}
|
|
154
180
|
|
|
155
|
-
.kui-chip[data-link]:focus-visible {
|
|
181
|
+
.kui-chip:is([data-link], [data-action]):focus-visible {
|
|
156
182
|
outline: var(--kui-focus-ring);
|
|
157
183
|
outline-offset: 2px;
|
|
158
184
|
}
|
|
159
185
|
|
|
160
186
|
/* The brand focus color can match a brand-loud surface; an inherit chip's
|
|
161
187
|
ring follows the surrounding foreground instead. */
|
|
162
|
-
.kui-chip[data-link][data-tone="inherit"]:focus-visible {
|
|
188
|
+
.kui-chip:is([data-link], [data-action])[data-tone="inherit"]:focus-visible {
|
|
163
189
|
outline: 3px solid currentColor;
|
|
164
190
|
}
|
|
165
191
|
|
package/docs/accessibility.md
CHANGED
|
@@ -18,7 +18,7 @@ These are normative contracts for package components and consuming applications.
|
|
|
18
18
|
- Interactive `ContentItem` cards are keyboard reachable. Set `selectionMode="toggle"` for a pressed button, `selectionMode="single"` for an option inside a listbox, or `selectionMode="multiple"` for a selectable row with a gridcell that can contain native controls. Place multiple-mode rows inside a labeled `List` or `Grid` with `selectionMode="multiple"`; the app owns the selection set and range gestures. Wire `wireContentItems` once so Enter and Space on the card activate its delegated action without activating it from a nested control. Disabled cards expose `aria-disabled` and leave the Tab order.
|
|
19
19
|
- An unlabeled `Skeleton` (including the value slots a component's `placeholder` prop renders) is decorative loading chrome: it is `aria-hidden`, conveys no information a user needs to act on, and is deliberately exempt from the WCAG 3:1 non-text-contrast target. Inside a solid `Badge` it stays subtle (about 2.1–4.4:1 in light, 2.4–2.8:1 in dark, depending on tone); `tests/browser/tone-contrast.spec.ts` holds those values as a regression floor rather than an accessibility threshold. Announce loading through a labeled `Skeleton`, `LoadingSpinner`, or `aria-busy` on the owning region, never through the skeleton's visibility.
|
|
20
20
|
- `StateBanner` defaults to polite `role="status"`; use `urgency="alert"` only for an attention-requiring failure. Its optional `badge` is persistent inline status/count content beside the title and is announced as part of the banner; keep it terse and do not rely on color alone for its meaning.
|
|
21
|
-
- A removable `Chip` has a native button with a specific `removeLabel`, such as "Remove Urgent tag". The button is absent for a plain chip and disabled for a disabled chip. Its leading `icon` is decorative; the visible label names the tag. `truncate` retains the full plain-text label as a native tooltip. Tag text remains visible because tone does not convey meaning alone. A link `Chip` (`href`) is a native anchor named by its visible label, with no remove button; `external` adds `target="_blank"`, `rel="noopener noreferrer"`, and an "(opens in new tab)" name suffix for a text label, and a disabled link chip drops `href`, sets `aria-disabled`, and leaves the tab order. `tone="inherit"` paints no fill, so its label keeps the surrounding text's contrast (a brand-loud bubble's white text included), and its focus ring is drawn in the surrounding foreground so it stays visible on a brand-colored surface.
|
|
21
|
+
- A removable `Chip` has a native button with a specific `removeLabel`, such as "Remove Urgent tag". The button is absent for a plain chip and disabled for a disabled chip. Its leading `icon` is decorative; the visible label names the tag. `truncate` retains the full plain-text label as a native tooltip. Tag text remains visible because tone does not convey meaning alone. A link `Chip` (`href`) is a native anchor named by its visible label, with no remove button; `external` adds `target="_blank"`, `rel="noopener noreferrer"`, and an "(opens in new tab)" name suffix for a text label, and a disabled link chip drops `href`, sets `aria-disabled`, and leaves the tab order. `tone="inherit"` paints no fill, so its label keeps the surrounding text's contrast (a brand-loud bubble's white text included), and its focus ring is drawn in the surrounding foreground so it stays visible on a brand-colored surface. An action `Chip` (`action`) is one native `<button type="button">` with no nested control: its visible label names it unless `actionLabel` supplies a fuller name, which should contain that label ("Insert filter is:mine"). Enter and Space activate it, keyboard focus draws the focus ring (in the surrounding foreground for `tone="inherit"`), and a disabled action chip is a disabled button that leaves the tab order.
|
|
22
22
|
- `EmptyState` reports busy state through `aria-busy` and never relies on an illustration as its label.
|
|
23
23
|
- `Select` follows the Web Awesome host's standard `input`/`change` events. Application tests verify the live `value`, focus, and events—not attributes alone. Its decorative option icons and value-dependent selected content remain present after controlled rerenders, so the visible choice does not silently lose its non-text cue.
|
|
24
24
|
- `DisclosureArrow` is an 18px root-scaled decorative visual by default, not an interaction target. Its owning native control supplies a stable accessible name, pointer and keyboard interaction, and `aria-expanded`; multiple arrows keep independently controlled state. Consumers may resize it with the typed `size` prop without changing that ownership. Configured directions animate over the shortest path; a 180-degree closed-to-open tie uses counterclockwise rotation.
|
|
@@ -925,6 +925,47 @@ wash on hover. File names are data: keep their spelling.
|
|
|
925
925
|
</Row>
|
|
926
926
|
```
|
|
927
927
|
|
|
928
|
+
## Action chips
|
|
929
|
+
|
|
930
|
+
Give `Chip` an `action` when activating the chip should do something with its
|
|
931
|
+
value once, such as inserting a filter token from a search syntax help popover
|
|
932
|
+
into the query. The whole chip becomes a native
|
|
933
|
+
`<button type="button" data-action data-item-id>` with the same geometry, plus
|
|
934
|
+
hover, press, focus-ring, and `disabled` states; Enter and Space activate it,
|
|
935
|
+
and a delegated handler reads `itemId`. Set `actionLabel` when the visible
|
|
936
|
+
label alone is unclear, and keep the label inside it ("Insert filter is:mine")
|
|
937
|
+
so speech input still matches. An action chip cannot also take `href` or
|
|
938
|
+
`removeAction`, because nested interactive content is invalid. Use `Badge` for
|
|
939
|
+
metadata nobody activates, and `ChoiceChips` when the chips hold a persistent
|
|
940
|
+
radio or checkbox value.
|
|
941
|
+
|
|
942
|
+
A compact, rounded action chip is exactly as tall as the compact `Badge` it
|
|
943
|
+
replaces, so a wrapping `Row` of them in a compact `ValueTable` cell keeps the
|
|
944
|
+
table's row height.
|
|
945
|
+
|
|
946
|
+
```tsx
|
|
947
|
+
<ValueTable label="Search Filters" density="compact">
|
|
948
|
+
<ValueTableRow
|
|
949
|
+
label="Ownership"
|
|
950
|
+
value={
|
|
951
|
+
<Row gap="2xs" wrap>
|
|
952
|
+
{['is:mine', 'is:shared'].map((token) => (
|
|
953
|
+
<Chip
|
|
954
|
+
action="search-help-insert"
|
|
955
|
+
actionLabel={`Insert filter ${token}`}
|
|
956
|
+
itemId={token}
|
|
957
|
+
size="compact"
|
|
958
|
+
shape="rounded"
|
|
959
|
+
>
|
|
960
|
+
{token}
|
|
961
|
+
</Chip>
|
|
962
|
+
))}
|
|
963
|
+
</Row>
|
|
964
|
+
}
|
|
965
|
+
/>
|
|
966
|
+
</ValueTable>
|
|
967
|
+
```
|
|
968
|
+
|
|
928
969
|
## Wrapping exclusive choices
|
|
929
970
|
|
|
930
971
|
Use `ChoiceChips` when one value is chosen from a visible set that does not
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 460 230" width="460" height="230"><defs><clipPath id="cp0"><rect x="28" y="20" width="404" height="165.2"/></clipPath><clipPath id="ov1"><rect x="29" y="21" width="402" height="163.2" rx="11"/></clipPath><clipPath id="cp2"><rect x="37" y="32.4" width="46.5" height="18"/></clipPath><clipPath id="ct3"><rect x="37" y="32.4" width="46.5" height="18"/></clipPath><linearGradient id="bg4" gradientUnits="userSpaceOnUse" x1="266.7813" y1="32.3906" x2="266.7813" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp5"><rect x="246.5" y="33.7" width="40.5" height="15.4"/></clipPath><clipPath id="ct6"><rect x="246.5" y="33.7" width="40.5" height="15.4"/></clipPath><linearGradient id="bg7" gradientUnits="userSpaceOnUse" x1="321.7266" y1="32.3906" x2="321.7266" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp8"><rect x="303" y="33.7" width="37.4" height="15.4"/></clipPath><clipPath id="ct9"><rect x="303" y="33.7" width="37.4" height="15.4"/></clipPath><linearGradient id="bg10" gradientUnits="userSpaceOnUse" x1="386.7109" y1="32.3906" x2="386.7109" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp11"><rect x="356.4" y="33.7" width="60.6" height="15.4"/></clipPath><clipPath id="ct12"><rect x="356.4" y="33.7" width="60.6" height="15.4"/></clipPath><clipPath id="cp13"><rect x="37" y="73.2" width="77.8" height="18"/></clipPath><clipPath id="ct14"><rect x="37" y="73.2" width="77.8" height="18"/></clipPath><linearGradient id="bg15" gradientUnits="userSpaceOnUse" x1="329.8047" y1="73.1875" x2="329.8047" y2="91.1875"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp16"><rect x="309.8" y="74.5" width="40" height="15.4"/></clipPath><clipPath id="ct17"><rect x="309.8" y="74.5" width="40" height="15.4"/></clipPath><linearGradient id="bg18" gradientUnits="userSpaceOnUse" x1="391.4063" y1="73.1875" x2="391.4063" y2="91.1875"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp19"><rect x="365.8" y="74.5" width="51.2" height="15.4"/></clipPath><clipPath id="ct20"><rect x="365.8" y="74.5" width="51.2" height="15.4"/></clipPath><clipPath id="cp21"><rect x="37" y="114" width="27.7" height="18"/></clipPath><clipPath id="ct22"><rect x="37" y="114" width="27.7" height="18"/></clipPath><linearGradient id="bg23" gradientUnits="userSpaceOnUse" x1="305.7188" y1="113.9844" x2="305.7188" y2="131.9844"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp24"><rect x="272.7" y="115.3" width="66" height="15.4"/></clipPath><clipPath id="ct25"><rect x="272.7" y="115.3" width="66" height="15.4"/></clipPath><linearGradient id="bg26" gradientUnits="userSpaceOnUse" x1="385.8594" y1="113.9844" x2="385.8594" y2="131.9844"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp27"><rect x="354.7" y="115.3" width="62.3" height="15.4"/></clipPath><clipPath id="ct28"><rect x="354.7" y="115.3" width="62.3" height="15.4"/></clipPath><clipPath id="cp29"><rect x="37" y="154.8" width="58" height="18"/></clipPath><clipPath id="ct30"><rect x="37" y="154.8" width="58" height="18"/></clipPath><linearGradient id="bg31" gradientUnits="userSpaceOnUse" x1="268.8203" y1="154.7813" x2="268.8203" y2="172.7813"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp32"><rect x="229.9" y="156.1" width="77.8" height="15.4"/></clipPath><clipPath id="ct33"><rect x="229.9" y="156.1" width="77.8" height="15.4"/></clipPath><linearGradient id="bg34" gradientUnits="userSpaceOnUse" x1="370.3672" y1="154.7813" x2="370.3672" y2="172.7813"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp35"><rect x="323.7" y="156.1" width="93.3" height="15.4"/></clipPath><clipPath id="ct36"><rect x="323.7" y="156.1" width="93.3" height="15.4"/></clipPath></defs><g clip-path="url(#cp0)"><rect x="28" y="20" width="404" height="165.2" rx="12" fill="rgba(228,228,255,0.075)"/><rect x="28.5" y="20.5" width="403" height="164" rx="11.5" fill="none" stroke="rgba(253,253,255,0.196)" stroke-width="1"/></g><g clip-path="url(#ov1)"><g clip-path="url(#cp2)"><g clip-path="url(#ct3)"><text x="37" y="47.39" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(245,245,247)">Status</text></g></g><rect x="240.5" y="31.4" width="52.5" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="240.5" y="31.4" width="52.5" height="20" rx="3" fill="url(#bg4)"/><rect x="241.5" y="31.5" width="51" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp5)"><g clip-path="url(#ct6)"><text x="246.53" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:draft</text></g></g><rect x="297" y="31.4" width="49.4" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="297" y="31.4" width="49.4" height="20" rx="3" fill="url(#bg7)"/><rect x="297.5" y="31.5" width="48" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp8)"><g clip-path="url(#ct9)"><text x="303.03" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:sent</text></g></g><rect x="350.4" y="31.4" width="72.6" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="350.4" y="31.4" width="72.6" height="20" rx="3" fill="url(#bg10)"/><rect x="350.5" y="31.5" width="72" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp11)"><g clip-path="url(#ct12)"><text x="356.42" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:awarded</text></g></g></g><g clip-path="url(#ov1)"><g clip-path="url(#cp13)"><g clip-path="url(#ct14)"><text x="37" y="88.19" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(245,245,247)">Ownership</text></g></g><rect x="303.8" y="72.2" width="52" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="303.8" y="72.2" width="52" height="20" rx="3" fill="url(#bg15)"/><rect x="304.5" y="72.5" width="51" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp16)"><g clip-path="url(#ct17)"><text x="309.8" y="86.69" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:mine</text></g></g><rect x="359.8" y="72.2" width="63.2" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="359.8" y="72.2" width="63.2" height="20" rx="3" fill="url(#bg18)"/><rect x="360.5" y="72.5" width="62" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp19)"><g clip-path="url(#ct20)"><text x="365.81" y="86.69" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:shared</text></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="62.5" x2="423" y2="62.5" stroke="rgba(253, 253, 255, 0.196)" stroke-width="1"/></g></g></g><g clip-path="url(#ov1)"><g clip-path="url(#cp21)"><g clip-path="url(#ct22)"><text x="37" y="128.98" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(245,245,247)">Site</text></g></g><rect x="266.7" y="113" width="78" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="266.7" y="113" width="78" height="20" rx="3" fill="url(#bg23)"/><rect x="267.5" y="113.5" width="77" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp24)"><g clip-path="url(#ct25)"><text x="272.72" y="127.48" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">site:Karachi</text></g></g><rect x="348.7" y="113" width="74.3" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="348.7" y="113" width="74.3" height="20" rx="3" fill="url(#bg26)"/><rect x="349.5" y="113.5" width="73" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp27)"><g clip-path="url(#ct28)"><text x="354.72" y="127.48" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">site:Lahore</text></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="103.5" x2="423" y2="103.5" stroke="rgba(253, 253, 255, 0.196)" stroke-width="1"/></g></g></g><g clip-path="url(#ov1)"><g clip-path="url(#cp29)"><g clip-path="url(#ct30)"><text x="37" y="169.78" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(245,245,247)">Content</text></g></g><rect x="223.9" y="153.8" width="89.8" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="223.9" y="153.8" width="89.8" height="20" rx="3" fill="url(#bg31)"/><rect x="224.5" y="154.5" width="89" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp32)"><g clip-path="url(#ct33)"><text x="229.91" y="168.28" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">has:questions</text></g></g><g opacity="0.5" style="isolation:isolate"><rect x="317.7" y="153.8" width="105.3" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="317.7" y="153.8" width="105.3" height="20" rx="3" fill="url(#bg34)"/><rect x="318.5" y="154.5" width="104" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp35)"><g clip-path="url(#ct36)"><text x="323.73" y="168.28" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">has:attachments</text></g></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="143.5" x2="423" y2="143.5" stroke="rgba(253, 253, 255, 0.196)" stroke-width="1"/></g></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 460 230" width="460" height="230"><defs><clipPath id="cp0"><rect x="28" y="20" width="404" height="165.2"/></clipPath><clipPath id="ov1"><rect x="29" y="21" width="402" height="163.2" rx="11"/></clipPath><clipPath id="cp2"><rect x="37" y="32.4" width="46.5" height="18"/></clipPath><clipPath id="ct3"><rect x="37" y="32.4" width="46.5" height="18"/></clipPath><linearGradient id="bg4" gradientUnits="userSpaceOnUse" x1="266.7813" y1="32.3906" x2="266.7813" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp5"><rect x="246.5" y="33.7" width="40.5" height="15.4"/></clipPath><clipPath id="ct6"><rect x="246.5" y="33.7" width="40.5" height="15.4"/></clipPath><linearGradient id="bg7" gradientUnits="userSpaceOnUse" x1="321.7266" y1="32.3906" x2="321.7266" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp8"><rect x="303" y="33.7" width="37.4" height="15.4"/></clipPath><clipPath id="ct9"><rect x="303" y="33.7" width="37.4" height="15.4"/></clipPath><linearGradient id="bg10" gradientUnits="userSpaceOnUse" x1="386.7109" y1="32.3906" x2="386.7109" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp11"><rect x="356.4" y="33.7" width="60.6" height="15.4"/></clipPath><clipPath id="ct12"><rect x="356.4" y="33.7" width="60.6" height="15.4"/></clipPath><clipPath id="cp13"><rect x="37" y="73.2" width="77.8" height="18"/></clipPath><clipPath id="ct14"><rect x="37" y="73.2" width="77.8" height="18"/></clipPath><linearGradient id="bg15" gradientUnits="userSpaceOnUse" x1="329.8047" y1="73.1875" x2="329.8047" y2="91.1875"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp16"><rect x="309.8" y="74.5" width="40" height="15.4"/></clipPath><clipPath id="ct17"><rect x="309.8" y="74.5" width="40" height="15.4"/></clipPath><linearGradient id="bg18" gradientUnits="userSpaceOnUse" x1="391.4063" y1="73.1875" x2="391.4063" y2="91.1875"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp19"><rect x="365.8" y="74.5" width="51.2" height="15.4"/></clipPath><clipPath id="ct20"><rect x="365.8" y="74.5" width="51.2" height="15.4"/></clipPath><clipPath id="cp21"><rect x="37" y="114" width="27.7" height="18"/></clipPath><clipPath id="ct22"><rect x="37" y="114" width="27.7" height="18"/></clipPath><linearGradient id="bg23" gradientUnits="userSpaceOnUse" x1="305.7188" y1="113.9844" x2="305.7188" y2="131.9844"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp24"><rect x="272.7" y="115.3" width="66" height="15.4"/></clipPath><clipPath id="ct25"><rect x="272.7" y="115.3" width="66" height="15.4"/></clipPath><linearGradient id="bg26" gradientUnits="userSpaceOnUse" x1="385.8594" y1="113.9844" x2="385.8594" y2="131.9844"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp27"><rect x="354.7" y="115.3" width="62.3" height="15.4"/></clipPath><clipPath id="ct28"><rect x="354.7" y="115.3" width="62.3" height="15.4"/></clipPath><clipPath id="cp29"><rect x="37" y="154.8" width="58" height="18"/></clipPath><clipPath id="ct30"><rect x="37" y="154.8" width="58" height="18"/></clipPath><linearGradient id="bg31" gradientUnits="userSpaceOnUse" x1="268.8203" y1="154.7813" x2="268.8203" y2="172.7813"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp32"><rect x="229.9" y="156.1" width="77.8" height="15.4"/></clipPath><clipPath id="ct33"><rect x="229.9" y="156.1" width="77.8" height="15.4"/></clipPath><linearGradient id="bg34" gradientUnits="userSpaceOnUse" x1="370.3672" y1="154.7813" x2="370.3672" y2="172.7813"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp35"><rect x="323.7" y="156.1" width="93.3" height="15.4"/></clipPath><clipPath id="ct36"><rect x="323.7" y="156.1" width="93.3" height="15.4"/></clipPath></defs><g clip-path="url(#cp0)"><rect x="28" y="20" width="404" height="165.2" rx="12" fill="rgba(0,0,98,0.05)"/><rect x="28.5" y="20.5" width="403" height="164" rx="11.5" fill="none" stroke="rgba(0,0,28,0.18)" stroke-width="1"/></g><g clip-path="url(#ov1)"><g clip-path="url(#cp2)"><g clip-path="url(#ct3)"><text x="37" y="47.39" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(29,29,31)">Status</text></g></g><rect x="240.5" y="31.4" width="52.5" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="240.5" y="31.4" width="52.5" height="20" rx="3" fill="url(#bg4)"/><rect x="241.5" y="31.5" width="51" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp5)"><g clip-path="url(#ct6)"><text x="246.53" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:draft</text></g></g><rect x="297" y="31.4" width="49.4" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="297" y="31.4" width="49.4" height="20" rx="3" fill="url(#bg7)"/><rect x="297.5" y="31.5" width="48" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp8)"><g clip-path="url(#ct9)"><text x="303.03" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:sent</text></g></g><rect x="350.4" y="31.4" width="72.6" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="350.4" y="31.4" width="72.6" height="20" rx="3" fill="url(#bg10)"/><rect x="350.5" y="31.5" width="72" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp11)"><g clip-path="url(#ct12)"><text x="356.42" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:awarded</text></g></g></g><g clip-path="url(#ov1)"><g clip-path="url(#cp13)"><g clip-path="url(#ct14)"><text x="37" y="88.19" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(29,29,31)">Ownership</text></g></g><rect x="303.8" y="72.2" width="52" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="303.8" y="72.2" width="52" height="20" rx="3" fill="url(#bg15)"/><rect x="304.5" y="72.5" width="51" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp16)"><g clip-path="url(#ct17)"><text x="309.8" y="86.69" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:mine</text></g></g><rect x="359.8" y="72.2" width="63.2" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="359.8" y="72.2" width="63.2" height="20" rx="3" fill="url(#bg18)"/><rect x="360.5" y="72.5" width="62" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp19)"><g clip-path="url(#ct20)"><text x="365.81" y="86.69" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:shared</text></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="62.5" x2="423" y2="62.5" stroke="rgba(0, 0, 28, 0.18)" stroke-width="1"/></g></g></g><g clip-path="url(#ov1)"><g clip-path="url(#cp21)"><g clip-path="url(#ct22)"><text x="37" y="128.98" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(29,29,31)">Site</text></g></g><rect x="266.7" y="113" width="78" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="266.7" y="113" width="78" height="20" rx="3" fill="url(#bg23)"/><rect x="267.5" y="113.5" width="77" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp24)"><g clip-path="url(#ct25)"><text x="272.72" y="127.48" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">site:Karachi</text></g></g><rect x="348.7" y="113" width="74.3" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="348.7" y="113" width="74.3" height="20" rx="3" fill="url(#bg26)"/><rect x="349.5" y="113.5" width="73" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp27)"><g clip-path="url(#ct28)"><text x="354.72" y="127.48" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">site:Lahore</text></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="103.5" x2="423" y2="103.5" stroke="rgba(0, 0, 28, 0.18)" stroke-width="1"/></g></g></g><g clip-path="url(#ov1)"><g clip-path="url(#cp29)"><g clip-path="url(#ct30)"><text x="37" y="169.78" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(29,29,31)">Content</text></g></g><rect x="223.9" y="153.8" width="89.8" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="223.9" y="153.8" width="89.8" height="20" rx="3" fill="url(#bg31)"/><rect x="224.5" y="154.5" width="89" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp32)"><g clip-path="url(#ct33)"><text x="229.91" y="168.28" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">has:questions</text></g></g><g opacity="0.5" style="isolation:isolate"><rect x="317.7" y="153.8" width="105.3" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="317.7" y="153.8" width="105.3" height="20" rx="3" fill="url(#bg34)"/><rect x="318.5" y="154.5" width="104" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp35)"><g clip-path="url(#ct36)"><text x="323.73" y="168.28" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">has:attachments</text></g></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="143.5" x2="423" y2="143.5" stroke="rgba(0, 0, 28, 0.18)" stroke-width="1"/></g></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 460 88" width="460" height="88"><defs><clipPath id="cp0"><rect x="29" y="28" width="41.2" height="12"/></clipPath><clipPath id="ct1"><rect x="29" y="28" width="41.2" height="12"/></clipPath><clipPath id="cp2"><rect x="78" y="28" width="12.2" height="12"/></clipPath><linearGradient id="bg4" gradientUnits="userSpaceOnUse" x1="158.2422" y1="21" x2="158.2422" y2="47"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp5"><rect x="120" y="28" width="12.2" height="12"/></clipPath><clipPath id="cp7"><rect x="136.2" y="25.6" width="60.2" height="16.8"/></clipPath><clipPath id="ct8"><rect x="136.2" y="25.6" width="60.2" height="16.8"/></clipPath><clipPath id="cp9"><rect x="222.3" y="28" width="47.9" height="12"/></clipPath><clipPath id="ct10"><rect x="222.3" y="28" width="47.9" height="12"/></clipPath></defs><rect x="20" y="20" width="83.2" height="28" rx="14" fill="rgb(34,43,48)"/><rect x="20.5" y="20.5" width="82" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp0)"><g clip-path="url(#ct1)"><text x="29" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(138,203,255)">Urgent</text></g></g><g clip-path="url(#cp2)"><g color="rgb(138, 203, 255)"><clipPath id="svgic3"><rect x="78.2" y="28" width="12" height="12"/></clipPath><g clip-path="url(#svgic3)"><g transform="matrix(.75 0 0 .75 78.156 28)"><path d="m3.5 3.5 9 9m0-9-9 9" fill="none" stroke="rgb(138, 203, 255)" stroke-width="1.75" stroke-linecap="round" stroke-dasharray="none" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1" opacity="1" style="marker:none;vector-effect:none;color-interpolation:srgb"/></g></g></g></g><rect x="111.2" y="20" width="94.2" height="28" rx="14" fill="rgba(228,228,255,0.075)"/><rect x="111.2" y="20" width="94.2" height="28" rx="14" fill="url(#bg4)"/><rect x="111.5" y="20.5" width="93" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp5)"><g color="rgb(194, 194, 198)"><clipPath id="svgic6"><rect x="120.2" y="28" width="12" height="12"/></clipPath><g clip-path="url(#svgic6)"><g transform="matrix(.5 0 0 .5 120.156 28)"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2 2 0 0 1 1.7.7l3.6 3.6A2 2 0 0 1 20 8v12a2 2 0 0 1-2 2Z" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M14 2v5a1 1 0 0 0 1 1h5" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M10 9H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M16 13H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M16 17H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/></g></g></g></g><g clip-path="url(#cp7)"><g clip-path="url(#ct8)"><text x="136.16" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(194,194,198)">report.md</text></g></g><rect x="213.3" y="20" width="65.9" height="28" rx="14" fill="rgb(245,245,247)"/><rect x="213.5" y="20.5" width="65" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp9)"><g clip-path="url(#ct10)"><text x="222.33" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(28,28,30)">Backlog</text></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 460 88" width="460" height="88"><defs><clipPath id="cp0"><rect x="29" y="28" width="41.2" height="12"/></clipPath><clipPath id="ct1"><rect x="29" y="28" width="41.2" height="12"/></clipPath><clipPath id="cp2"><rect x="78" y="28" width="12.2" height="12"/></clipPath><linearGradient id="bg4" gradientUnits="userSpaceOnUse" x1="158.2422" y1="21" x2="158.2422" y2="47"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="cp5"><rect x="120" y="28" width="12.2" height="12"/></clipPath><clipPath id="cp7"><rect x="136.2" y="25.6" width="60.2" height="16.8"/></clipPath><clipPath id="ct8"><rect x="136.2" y="25.6" width="60.2" height="16.8"/></clipPath><clipPath id="cp9"><rect x="222.3" y="28" width="47.9" height="12"/></clipPath><clipPath id="ct10"><rect x="222.3" y="28" width="47.9" height="12"/></clipPath></defs><rect x="20" y="20" width="83.2" height="28" rx="14" fill="rgb(235,244,252)"/><rect x="20.5" y="20.5" width="82" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp0)"><g clip-path="url(#ct1)"><text x="29" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(26,93,207)">Urgent</text></g></g><g clip-path="url(#cp2)"><g color="rgb(26, 93, 207)"><clipPath id="svgic3"><rect x="78.2" y="28" width="12" height="12"/></clipPath><g clip-path="url(#svgic3)"><g transform="matrix(.75 0 0 .75 78.156 28)"><path d="m3.5 3.5 9 9m0-9-9 9" fill="none" stroke="rgb(26, 93, 207)" stroke-width="1.75" stroke-linecap="round" stroke-dasharray="none" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1" opacity="1" style="marker:none;vector-effect:none;color-interpolation:srgb"/></g></g></g></g><rect x="111.2" y="20" width="94.2" height="28" rx="14" fill="rgba(0,0,98,0.05)"/><rect x="111.2" y="20" width="94.2" height="28" rx="14" fill="url(#bg4)"/><rect x="111.5" y="20.5" width="93" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp5)"><g color="rgb(98, 98, 103)"><clipPath id="svgic6"><rect x="120.2" y="28" width="12" height="12"/></clipPath><g clip-path="url(#svgic6)"><g transform="matrix(.5 0 0 .5 120.156 28)"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2 2 0 0 1 1.7.7l3.6 3.6A2 2 0 0 1 20 8v12a2 2 0 0 1-2 2Z" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M14 2v5a1 1 0 0 0 1 1h5" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M10 9H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M16 13H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M16 17H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/></g></g></g></g><g clip-path="url(#cp7)"><g clip-path="url(#ct8)"><text x="136.16" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(98,98,103)">report.md</text></g></g><rect x="213.3" y="20" width="65.9" height="28" rx="14" fill="rgb(29,29,31)"/><rect x="213.5" y="20.5" width="65" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#cp9)"><g clip-path="url(#ct10)"><text x="222.33" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(255,255,255)">Backlog</text></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 492 410" width="492" height="410"><defs><clipPath id="cp0"><rect x="16" y="38" width="460" height="88"/></clipPath><clipPath id="cp1"><rect x="16" y="164" width="460" height="230"/></clipPath><clipPath id="ct2"><rect x="16" y="16" width="460" height="22"/></clipPath><clipPath id="irc3"><rect x="16" y="38" width="460" height="88" rx="0"/></clipPath><clipPath id="ct5"><rect x="16" y="142" width="460" height="22"/></clipPath><clipPath id="irc6"><rect x="16" y="164" width="460" height="230" rx="0"/></clipPath></defs><rect x="0" y="0" width="492" height="410" rx="0" fill="rgb(28,28,30)"/><text x="16" y="28" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="600" fill="rgb(174,174,178)">Removable, Link, and Plain Tags</text><g clip-path="url(#cp0)"><g clip-path="url(#irc3)"><clipPath id="svgimg4vclip"><rect x="16" y="38" width="460" height="88"/></clipPath><g clip-path="url(#svgimg4vclip)"><g transform="translate(16 38)"><defs><clipPath id="svgimg4cp0"><rect x="29" y="28" width="41.2" height="12"/></clipPath><clipPath id="svgimg4ct1"><rect x="29" y="28" width="41.2" height="12"/></clipPath><clipPath id="svgimg4cp2"><rect x="78" y="28" width="12.2" height="12"/></clipPath><linearGradient id="svgimg4bg4" gradientUnits="userSpaceOnUse" x1="158.2422" y1="21" x2="158.2422" y2="47"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg4cp5"><rect x="120" y="28" width="12.2" height="12"/></clipPath><clipPath id="svgimg4cp7"><rect x="136.2" y="25.6" width="60.2" height="16.8"/></clipPath><clipPath id="svgimg4ct8"><rect x="136.2" y="25.6" width="60.2" height="16.8"/></clipPath><clipPath id="svgimg4cp9"><rect x="222.3" y="28" width="47.9" height="12"/></clipPath><clipPath id="svgimg4ct10"><rect x="222.3" y="28" width="47.9" height="12"/></clipPath></defs><rect x="20" y="20" width="83.2" height="28" rx="14" fill="rgb(34,43,48)"/><rect x="20.5" y="20.5" width="82" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg4cp0)"><g clip-path="url(#svgimg4ct1)"><text x="29" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(138,203,255)">Urgent</text></g></g><g clip-path="url(#svgimg4cp2)"><g color="rgb(138, 203, 255)"><clipPath id="svgimg4svgic3"><rect x="78.2" y="28" width="12" height="12"/></clipPath><g clip-path="url(#svgimg4svgic3)"><g transform="matrix(.75 0 0 .75 78.156 28)"><path d="m3.5 3.5 9 9m0-9-9 9" fill="none" stroke="rgb(138, 203, 255)" stroke-width="1.75" stroke-linecap="round" stroke-dasharray="none" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1" opacity="1" style="marker:none;vector-effect:none;color-interpolation:srgb"/></g></g></g></g><rect x="111.2" y="20" width="94.2" height="28" rx="14" fill="rgba(228,228,255,0.075)"/><rect x="111.2" y="20" width="94.2" height="28" rx="14" fill="url(#svgimg4bg4)"/><rect x="111.5" y="20.5" width="93" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg4cp5)"><g color="rgb(194, 194, 198)"><clipPath id="svgimg4svgic6"><rect x="120.2" y="28" width="12" height="12"/></clipPath><g clip-path="url(#svgimg4svgic6)"><g transform="matrix(.5 0 0 .5 120.156 28)"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2 2 0 0 1 1.7.7l3.6 3.6A2 2 0 0 1 20 8v12a2 2 0 0 1-2 2Z" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M14 2v5a1 1 0 0 0 1 1h5" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M10 9H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M16 13H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M16 17H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(194, 194, 198)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/></g></g></g></g><g clip-path="url(#svgimg4cp7)"><g clip-path="url(#svgimg4ct8)"><text x="136.16" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(194,194,198)">report.md</text></g></g><rect x="213.3" y="20" width="65.9" height="28" rx="14" fill="rgb(245,245,247)"/><rect x="213.5" y="20.5" width="65" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg4cp9)"><g clip-path="url(#svgimg4ct10)"><text x="222.33" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(28,28,30)">Backlog</text></g></g></g></g></g></g><text x="16" y="154" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="600" fill="rgb(174,174,178)">Action Chips in a Compact Value Table</text><g clip-path="url(#cp1)"><g clip-path="url(#irc6)"><clipPath id="svgimg7vclip"><rect x="16" y="164" width="460" height="230"/></clipPath><g clip-path="url(#svgimg7vclip)"><g transform="translate(16 164)"><defs><clipPath id="svgimg7cp0"><rect x="28" y="20" width="404" height="165.2"/></clipPath><clipPath id="svgimg7ov1"><rect x="29" y="21" width="402" height="163.2" rx="11"/></clipPath><clipPath id="svgimg7cp2"><rect x="37" y="32.4" width="46.5" height="18"/></clipPath><clipPath id="svgimg7ct3"><rect x="37" y="32.4" width="46.5" height="18"/></clipPath><linearGradient id="svgimg7bg4" gradientUnits="userSpaceOnUse" x1="266.7813" y1="32.3906" x2="266.7813" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp5"><rect x="246.5" y="33.7" width="40.5" height="15.4"/></clipPath><clipPath id="svgimg7ct6"><rect x="246.5" y="33.7" width="40.5" height="15.4"/></clipPath><linearGradient id="svgimg7bg7" gradientUnits="userSpaceOnUse" x1="321.7266" y1="32.3906" x2="321.7266" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp8"><rect x="303" y="33.7" width="37.4" height="15.4"/></clipPath><clipPath id="svgimg7ct9"><rect x="303" y="33.7" width="37.4" height="15.4"/></clipPath><linearGradient id="svgimg7bg10" gradientUnits="userSpaceOnUse" x1="386.7109" y1="32.3906" x2="386.7109" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp11"><rect x="356.4" y="33.7" width="60.6" height="15.4"/></clipPath><clipPath id="svgimg7ct12"><rect x="356.4" y="33.7" width="60.6" height="15.4"/></clipPath><clipPath id="svgimg7cp13"><rect x="37" y="73.2" width="77.8" height="18"/></clipPath><clipPath id="svgimg7ct14"><rect x="37" y="73.2" width="77.8" height="18"/></clipPath><linearGradient id="svgimg7bg15" gradientUnits="userSpaceOnUse" x1="329.8047" y1="73.1875" x2="329.8047" y2="91.1875"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp16"><rect x="309.8" y="74.5" width="40" height="15.4"/></clipPath><clipPath id="svgimg7ct17"><rect x="309.8" y="74.5" width="40" height="15.4"/></clipPath><linearGradient id="svgimg7bg18" gradientUnits="userSpaceOnUse" x1="391.4063" y1="73.1875" x2="391.4063" y2="91.1875"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp19"><rect x="365.8" y="74.5" width="51.2" height="15.4"/></clipPath><clipPath id="svgimg7ct20"><rect x="365.8" y="74.5" width="51.2" height="15.4"/></clipPath><clipPath id="svgimg7cp21"><rect x="37" y="114" width="27.7" height="18"/></clipPath><clipPath id="svgimg7ct22"><rect x="37" y="114" width="27.7" height="18"/></clipPath><linearGradient id="svgimg7bg23" gradientUnits="userSpaceOnUse" x1="305.7188" y1="113.9844" x2="305.7188" y2="131.9844"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp24"><rect x="272.7" y="115.3" width="66" height="15.4"/></clipPath><clipPath id="svgimg7ct25"><rect x="272.7" y="115.3" width="66" height="15.4"/></clipPath><linearGradient id="svgimg7bg26" gradientUnits="userSpaceOnUse" x1="385.8594" y1="113.9844" x2="385.8594" y2="131.9844"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp27"><rect x="354.7" y="115.3" width="62.3" height="15.4"/></clipPath><clipPath id="svgimg7ct28"><rect x="354.7" y="115.3" width="62.3" height="15.4"/></clipPath><clipPath id="svgimg7cp29"><rect x="37" y="154.8" width="58" height="18"/></clipPath><clipPath id="svgimg7ct30"><rect x="37" y="154.8" width="58" height="18"/></clipPath><linearGradient id="svgimg7bg31" gradientUnits="userSpaceOnUse" x1="268.8203" y1="154.7813" x2="268.8203" y2="172.7813"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp32"><rect x="229.9" y="156.1" width="77.8" height="15.4"/></clipPath><clipPath id="svgimg7ct33"><rect x="229.9" y="156.1" width="77.8" height="15.4"/></clipPath><linearGradient id="svgimg7bg34" gradientUnits="userSpaceOnUse" x1="370.3672" y1="154.7813" x2="370.3672" y2="172.7813"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp35"><rect x="323.7" y="156.1" width="93.3" height="15.4"/></clipPath><clipPath id="svgimg7ct36"><rect x="323.7" y="156.1" width="93.3" height="15.4"/></clipPath></defs><g clip-path="url(#svgimg7cp0)"><rect x="28" y="20" width="404" height="165.2" rx="12" fill="rgba(228,228,255,0.075)"/><rect x="28.5" y="20.5" width="403" height="164" rx="11.5" fill="none" stroke="rgba(253,253,255,0.196)" stroke-width="1"/></g><g clip-path="url(#svgimg7ov1)"><g clip-path="url(#svgimg7cp2)"><g clip-path="url(#svgimg7ct3)"><text x="37" y="47.39" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(245,245,247)">Status</text></g></g><rect x="240.5" y="31.4" width="52.5" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="240.5" y="31.4" width="52.5" height="20" rx="3" fill="url(#svgimg7bg4)"/><rect x="241.5" y="31.5" width="51" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp5)"><g clip-path="url(#svgimg7ct6)"><text x="246.53" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:draft</text></g></g><rect x="297" y="31.4" width="49.4" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="297" y="31.4" width="49.4" height="20" rx="3" fill="url(#svgimg7bg7)"/><rect x="297.5" y="31.5" width="48" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp8)"><g clip-path="url(#svgimg7ct9)"><text x="303.03" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:sent</text></g></g><rect x="350.4" y="31.4" width="72.6" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="350.4" y="31.4" width="72.6" height="20" rx="3" fill="url(#svgimg7bg10)"/><rect x="350.5" y="31.5" width="72" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp11)"><g clip-path="url(#svgimg7ct12)"><text x="356.42" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:awarded</text></g></g></g><g clip-path="url(#svgimg7ov1)"><g clip-path="url(#svgimg7cp13)"><g clip-path="url(#svgimg7ct14)"><text x="37" y="88.19" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(245,245,247)">Ownership</text></g></g><rect x="303.8" y="72.2" width="52" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="303.8" y="72.2" width="52" height="20" rx="3" fill="url(#svgimg7bg15)"/><rect x="304.5" y="72.5" width="51" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp16)"><g clip-path="url(#svgimg7ct17)"><text x="309.8" y="86.69" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:mine</text></g></g><rect x="359.8" y="72.2" width="63.2" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="359.8" y="72.2" width="63.2" height="20" rx="3" fill="url(#svgimg7bg18)"/><rect x="360.5" y="72.5" width="62" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp19)"><g clip-path="url(#svgimg7ct20)"><text x="365.81" y="86.69" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">is:shared</text></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="62.5" x2="423" y2="62.5" stroke="rgba(253, 253, 255, 0.196)" stroke-width="1"/></g></g></g><g clip-path="url(#svgimg7ov1)"><g clip-path="url(#svgimg7cp21)"><g clip-path="url(#svgimg7ct22)"><text x="37" y="128.98" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(245,245,247)">Site</text></g></g><rect x="266.7" y="113" width="78" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="266.7" y="113" width="78" height="20" rx="3" fill="url(#svgimg7bg23)"/><rect x="267.5" y="113.5" width="77" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp24)"><g clip-path="url(#svgimg7ct25)"><text x="272.72" y="127.48" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">site:Karachi</text></g></g><rect x="348.7" y="113" width="74.3" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="348.7" y="113" width="74.3" height="20" rx="3" fill="url(#svgimg7bg26)"/><rect x="349.5" y="113.5" width="73" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp27)"><g clip-path="url(#svgimg7ct28)"><text x="354.72" y="127.48" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">site:Lahore</text></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="103.5" x2="423" y2="103.5" stroke="rgba(253, 253, 255, 0.196)" stroke-width="1"/></g></g></g><g clip-path="url(#svgimg7ov1)"><g clip-path="url(#svgimg7cp29)"><g clip-path="url(#svgimg7ct30)"><text x="37" y="169.78" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(245,245,247)">Content</text></g></g><rect x="223.9" y="153.8" width="89.8" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="223.9" y="153.8" width="89.8" height="20" rx="3" fill="url(#svgimg7bg31)"/><rect x="224.5" y="154.5" width="89" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp32)"><g clip-path="url(#svgimg7ct33)"><text x="229.91" y="168.28" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">has:questions</text></g></g><g opacity="0.5" style="isolation:isolate"><rect x="317.7" y="153.8" width="105.3" height="20" rx="3" fill="rgba(228,228,255,0.075)"/><rect x="317.7" y="153.8" width="105.3" height="20" rx="3" fill="url(#svgimg7bg34)"/><rect x="318.5" y="154.5" width="104" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp35)"><g clip-path="url(#svgimg7ct36)"><text x="323.73" y="168.28" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(194,194,198)">has:attachments</text></g></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="143.5" x2="423" y2="143.5" stroke="rgba(253, 253, 255, 0.196)" stroke-width="1"/></g></g></g></g></g></g></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 492 410" width="492" height="410"><defs><clipPath id="cp0"><rect x="16" y="38" width="460" height="88"/></clipPath><clipPath id="cp1"><rect x="16" y="164" width="460" height="230"/></clipPath><clipPath id="ct2"><rect x="16" y="16" width="460" height="22"/></clipPath><clipPath id="irc3"><rect x="16" y="38" width="460" height="88" rx="0"/></clipPath><clipPath id="ct5"><rect x="16" y="142" width="460" height="22"/></clipPath><clipPath id="irc6"><rect x="16" y="164" width="460" height="230" rx="0"/></clipPath></defs><rect x="0" y="0" width="492" height="410" rx="0" fill="rgb(255,255,255)"/><text x="16" y="28" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="600" fill="rgb(110,110,115)">Removable, Link, and Plain Tags</text><g clip-path="url(#cp0)"><g clip-path="url(#irc3)"><clipPath id="svgimg4vclip"><rect x="16" y="38" width="460" height="88"/></clipPath><g clip-path="url(#svgimg4vclip)"><g transform="translate(16 38)"><defs><clipPath id="svgimg4cp0"><rect x="29" y="28" width="41.2" height="12"/></clipPath><clipPath id="svgimg4ct1"><rect x="29" y="28" width="41.2" height="12"/></clipPath><clipPath id="svgimg4cp2"><rect x="78" y="28" width="12.2" height="12"/></clipPath><linearGradient id="svgimg4bg4" gradientUnits="userSpaceOnUse" x1="158.2422" y1="21" x2="158.2422" y2="47"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg4cp5"><rect x="120" y="28" width="12.2" height="12"/></clipPath><clipPath id="svgimg4cp7"><rect x="136.2" y="25.6" width="60.2" height="16.8"/></clipPath><clipPath id="svgimg4ct8"><rect x="136.2" y="25.6" width="60.2" height="16.8"/></clipPath><clipPath id="svgimg4cp9"><rect x="222.3" y="28" width="47.9" height="12"/></clipPath><clipPath id="svgimg4ct10"><rect x="222.3" y="28" width="47.9" height="12"/></clipPath></defs><rect x="20" y="20" width="83.2" height="28" rx="14" fill="rgb(235,244,252)"/><rect x="20.5" y="20.5" width="82" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg4cp0)"><g clip-path="url(#svgimg4ct1)"><text x="29" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(26,93,207)">Urgent</text></g></g><g clip-path="url(#svgimg4cp2)"><g color="rgb(26, 93, 207)"><clipPath id="svgimg4svgic3"><rect x="78.2" y="28" width="12" height="12"/></clipPath><g clip-path="url(#svgimg4svgic3)"><g transform="matrix(.75 0 0 .75 78.156 28)"><path d="m3.5 3.5 9 9m0-9-9 9" fill="none" stroke="rgb(26, 93, 207)" stroke-width="1.75" stroke-linecap="round" stroke-dasharray="none" stroke-linejoin="miter" stroke-opacity="1" fill-opacity="1" opacity="1" style="marker:none;vector-effect:none;color-interpolation:srgb"/></g></g></g></g><rect x="111.2" y="20" width="94.2" height="28" rx="14" fill="rgba(0,0,98,0.05)"/><rect x="111.2" y="20" width="94.2" height="28" rx="14" fill="url(#svgimg4bg4)"/><rect x="111.5" y="20.5" width="93" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg4cp5)"><g color="rgb(98, 98, 103)"><clipPath id="svgimg4svgic6"><rect x="120.2" y="28" width="12" height="12"/></clipPath><g clip-path="url(#svgimg4svgic6)"><g transform="matrix(.5 0 0 .5 120.156 28)"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2 2 0 0 1 1.7.7l3.6 3.6A2 2 0 0 1 20 8v12a2 2 0 0 1-2 2Z" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M14 2v5a1 1 0 0 0 1 1h5" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M10 9H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M16 13H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/><path d="M16 17H8" style="marker:none;vector-effect:none;color-interpolation:srgb" fill="none" stroke="rgb(98, 98, 103)" stroke-width="2px" stroke-dasharray="none" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="1" fill-opacity="1" opacity="1"/></g></g></g></g><g clip-path="url(#svgimg4cp7)"><g clip-path="url(#svgimg4ct8)"><text x="136.16" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(98,98,103)">report.md</text></g></g><rect x="213.3" y="20" width="65.9" height="28" rx="14" fill="rgb(29,29,31)"/><rect x="213.5" y="20.5" width="65" height="27" rx="13.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg4cp9)"><g clip-path="url(#svgimg4ct10)"><text x="222.33" y="38" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="650" fill="rgb(255,255,255)">Backlog</text></g></g></g></g></g></g><text x="16" y="154" font-family="system-ui, "-apple-system", sans-serif" font-size="12" font-weight="600" fill="rgb(110,110,115)">Action Chips in a Compact Value Table</text><g clip-path="url(#cp1)"><g clip-path="url(#irc6)"><clipPath id="svgimg7vclip"><rect x="16" y="164" width="460" height="230"/></clipPath><g clip-path="url(#svgimg7vclip)"><g transform="translate(16 164)"><defs><clipPath id="svgimg7cp0"><rect x="28" y="20" width="404" height="165.2"/></clipPath><clipPath id="svgimg7ov1"><rect x="29" y="21" width="402" height="163.2" rx="11"/></clipPath><clipPath id="svgimg7cp2"><rect x="37" y="32.4" width="46.5" height="18"/></clipPath><clipPath id="svgimg7ct3"><rect x="37" y="32.4" width="46.5" height="18"/></clipPath><linearGradient id="svgimg7bg4" gradientUnits="userSpaceOnUse" x1="266.7813" y1="32.3906" x2="266.7813" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp5"><rect x="246.5" y="33.7" width="40.5" height="15.4"/></clipPath><clipPath id="svgimg7ct6"><rect x="246.5" y="33.7" width="40.5" height="15.4"/></clipPath><linearGradient id="svgimg7bg7" gradientUnits="userSpaceOnUse" x1="321.7266" y1="32.3906" x2="321.7266" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp8"><rect x="303" y="33.7" width="37.4" height="15.4"/></clipPath><clipPath id="svgimg7ct9"><rect x="303" y="33.7" width="37.4" height="15.4"/></clipPath><linearGradient id="svgimg7bg10" gradientUnits="userSpaceOnUse" x1="386.7109" y1="32.3906" x2="386.7109" y2="50.3906"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp11"><rect x="356.4" y="33.7" width="60.6" height="15.4"/></clipPath><clipPath id="svgimg7ct12"><rect x="356.4" y="33.7" width="60.6" height="15.4"/></clipPath><clipPath id="svgimg7cp13"><rect x="37" y="73.2" width="77.8" height="18"/></clipPath><clipPath id="svgimg7ct14"><rect x="37" y="73.2" width="77.8" height="18"/></clipPath><linearGradient id="svgimg7bg15" gradientUnits="userSpaceOnUse" x1="329.8047" y1="73.1875" x2="329.8047" y2="91.1875"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp16"><rect x="309.8" y="74.5" width="40" height="15.4"/></clipPath><clipPath id="svgimg7ct17"><rect x="309.8" y="74.5" width="40" height="15.4"/></clipPath><linearGradient id="svgimg7bg18" gradientUnits="userSpaceOnUse" x1="391.4063" y1="73.1875" x2="391.4063" y2="91.1875"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp19"><rect x="365.8" y="74.5" width="51.2" height="15.4"/></clipPath><clipPath id="svgimg7ct20"><rect x="365.8" y="74.5" width="51.2" height="15.4"/></clipPath><clipPath id="svgimg7cp21"><rect x="37" y="114" width="27.7" height="18"/></clipPath><clipPath id="svgimg7ct22"><rect x="37" y="114" width="27.7" height="18"/></clipPath><linearGradient id="svgimg7bg23" gradientUnits="userSpaceOnUse" x1="305.7188" y1="113.9844" x2="305.7188" y2="131.9844"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp24"><rect x="272.7" y="115.3" width="66" height="15.4"/></clipPath><clipPath id="svgimg7ct25"><rect x="272.7" y="115.3" width="66" height="15.4"/></clipPath><linearGradient id="svgimg7bg26" gradientUnits="userSpaceOnUse" x1="385.8594" y1="113.9844" x2="385.8594" y2="131.9844"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp27"><rect x="354.7" y="115.3" width="62.3" height="15.4"/></clipPath><clipPath id="svgimg7ct28"><rect x="354.7" y="115.3" width="62.3" height="15.4"/></clipPath><clipPath id="svgimg7cp29"><rect x="37" y="154.8" width="58" height="18"/></clipPath><clipPath id="svgimg7ct30"><rect x="37" y="154.8" width="58" height="18"/></clipPath><linearGradient id="svgimg7bg31" gradientUnits="userSpaceOnUse" x1="268.8203" y1="154.7813" x2="268.8203" y2="172.7813"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp32"><rect x="229.9" y="156.1" width="77.8" height="15.4"/></clipPath><clipPath id="svgimg7ct33"><rect x="229.9" y="156.1" width="77.8" height="15.4"/></clipPath><linearGradient id="svgimg7bg34" gradientUnits="userSpaceOnUse" x1="370.3672" y1="154.7813" x2="370.3672" y2="172.7813"><stop offset="0" stop-color="rgba(0,0,0,0)"/><stop offset="1" stop-color="rgba(0,0,0,0)"/></linearGradient><clipPath id="svgimg7cp35"><rect x="323.7" y="156.1" width="93.3" height="15.4"/></clipPath><clipPath id="svgimg7ct36"><rect x="323.7" y="156.1" width="93.3" height="15.4"/></clipPath></defs><g clip-path="url(#svgimg7cp0)"><rect x="28" y="20" width="404" height="165.2" rx="12" fill="rgba(0,0,98,0.05)"/><rect x="28.5" y="20.5" width="403" height="164" rx="11.5" fill="none" stroke="rgba(0,0,28,0.18)" stroke-width="1"/></g><g clip-path="url(#svgimg7ov1)"><g clip-path="url(#svgimg7cp2)"><g clip-path="url(#svgimg7ct3)"><text x="37" y="47.39" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(29,29,31)">Status</text></g></g><rect x="240.5" y="31.4" width="52.5" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="240.5" y="31.4" width="52.5" height="20" rx="3" fill="url(#svgimg7bg4)"/><rect x="241.5" y="31.5" width="51" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp5)"><g clip-path="url(#svgimg7ct6)"><text x="246.53" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:draft</text></g></g><rect x="297" y="31.4" width="49.4" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="297" y="31.4" width="49.4" height="20" rx="3" fill="url(#svgimg7bg7)"/><rect x="297.5" y="31.5" width="48" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp8)"><g clip-path="url(#svgimg7ct9)"><text x="303.03" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:sent</text></g></g><rect x="350.4" y="31.4" width="72.6" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="350.4" y="31.4" width="72.6" height="20" rx="3" fill="url(#svgimg7bg10)"/><rect x="350.5" y="31.5" width="72" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp11)"><g clip-path="url(#svgimg7ct12)"><text x="356.42" y="45.89" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:awarded</text></g></g></g><g clip-path="url(#svgimg7ov1)"><g clip-path="url(#svgimg7cp13)"><g clip-path="url(#svgimg7ct14)"><text x="37" y="88.19" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(29,29,31)">Ownership</text></g></g><rect x="303.8" y="72.2" width="52" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="303.8" y="72.2" width="52" height="20" rx="3" fill="url(#svgimg7bg15)"/><rect x="304.5" y="72.5" width="51" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp16)"><g clip-path="url(#svgimg7ct17)"><text x="309.8" y="86.69" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:mine</text></g></g><rect x="359.8" y="72.2" width="63.2" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="359.8" y="72.2" width="63.2" height="20" rx="3" fill="url(#svgimg7bg18)"/><rect x="360.5" y="72.5" width="62" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp19)"><g clip-path="url(#svgimg7ct20)"><text x="365.81" y="86.69" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">is:shared</text></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="62.5" x2="423" y2="62.5" stroke="rgba(0, 0, 28, 0.18)" stroke-width="1"/></g></g></g><g clip-path="url(#svgimg7ov1)"><g clip-path="url(#svgimg7cp21)"><g clip-path="url(#svgimg7ct22)"><text x="37" y="128.98" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(29,29,31)">Site</text></g></g><rect x="266.7" y="113" width="78" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="266.7" y="113" width="78" height="20" rx="3" fill="url(#svgimg7bg23)"/><rect x="267.5" y="113.5" width="77" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp24)"><g clip-path="url(#svgimg7ct25)"><text x="272.72" y="127.48" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">site:Karachi</text></g></g><rect x="348.7" y="113" width="74.3" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="348.7" y="113" width="74.3" height="20" rx="3" fill="url(#svgimg7bg26)"/><rect x="349.5" y="113.5" width="73" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp27)"><g clip-path="url(#svgimg7ct28)"><text x="354.72" y="127.48" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">site:Lahore</text></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="103.5" x2="423" y2="103.5" stroke="rgba(0, 0, 28, 0.18)" stroke-width="1"/></g></g></g><g clip-path="url(#svgimg7ov1)"><g clip-path="url(#svgimg7cp29)"><g clip-path="url(#svgimg7ct30)"><text x="37" y="169.78" font-family="system-ui, "-apple-system", sans-serif" font-size="16" fill="rgb(29,29,31)">Content</text></g></g><rect x="223.9" y="153.8" width="89.8" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="223.9" y="153.8" width="89.8" height="20" rx="3" fill="url(#svgimg7bg31)"/><rect x="224.5" y="154.5" width="89" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp32)"><g clip-path="url(#svgimg7ct33)"><text x="229.91" y="168.28" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">has:questions</text></g></g><g opacity="0.5" style="isolation:isolate"><rect x="317.7" y="153.8" width="105.3" height="20" rx="3" fill="rgba(0,0,98,0.05)"/><rect x="317.7" y="153.8" width="105.3" height="20" rx="3" fill="url(#svgimg7bg34)"/><rect x="318.5" y="154.5" width="104" height="19" rx="2.5" fill="none" stroke="rgba(0,0,0,0)" stroke-width="1"/><g clip-path="url(#svgimg7cp35)"><g clip-path="url(#svgimg7ct36)"><text x="323.73" y="168.28" font-family="system-ui, "-apple-system", sans-serif" font-size="11" font-weight="650" fill="rgb(98,98,103)">has:attachments</text></g></g></g><g data-domotion-pseudo-source="blink-pseudo-fragment-v1" data-domotion-pseudo="::before" data-domotion-pseudo-owner="source-fragments"><g><line x1="37" y1="143.5" x2="423" y2="143.5" stroke="rgba(0, 0, 28, 0.18)" stroke-width="1"/></g></g></g></g></g></g></g></svg>
|
package/llms.txt
CHANGED
|
@@ -767,6 +767,14 @@ created, input }`. Never use a hand-styled `<input list>` + `<datalist>`.
|
|
|
767
767
|
`external` (new tab, safe rel, announced) are optional, and a link chip has
|
|
768
768
|
no remove button. Inside a ContentItem bubble set `tone="inherit"` so it
|
|
769
769
|
follows the bubble's foreground instead of styling an anchor yourself.
|
|
770
|
+
- **Use an action `Chip` for a value the user activates once.** `action` (with
|
|
771
|
+
`itemId`) renders the whole chip as a native
|
|
772
|
+
`<button type="button" data-action data-item-id>` for a delegated handler,
|
|
773
|
+
such as a search help filter token that inserts itself into the query, with
|
|
774
|
+
hover, press, focus-ring, and `disabled` states. `actionLabel` is an optional
|
|
775
|
+
accessible name that contains the visible label. It cannot also take `href`
|
|
776
|
+
or `removeAction`. A compact rounded action chip keeps a compact `Badge`'s row
|
|
777
|
+
height in a compact `ValueTable` cell; never make a `Badge` clickable.
|
|
770
778
|
- **Use `ChoiceChips` for a wrapping exclusive choice.** When one value comes
|
|
771
779
|
from a visible set too large for a `SegmentedControl` track (a nine-color
|
|
772
780
|
palette in a 560px dialog), render separate pills backed by native radios:
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/feedback/chip/chip.tsx"],"names":[],"mappings":"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","file":"chunk-34U4ANDJ.js","sourcesContent":["import type { SafeHtml } from 'kerfjs';\n\nimport type { SemanticTone } from '../../../shared/styles/semantic-tone.js';\nimport type { BadgeAppearance, BadgeShape, BadgeSize } from '../badge/badge.js';\n\n/**\n * A chip color role: a shared semantic tone, or `inherit`, which follows the\n * surrounding foreground (a chip inside a `brand-loud` ContentItem bubble)\n * and derives its fill, border, and focus ring from `currentColor`.\n */\nexport type ChipTone = SemanticTone | 'inherit';\n\ninterface ChipCommonProps {\n /** Decorative leading icon, normally an unsized LucideIcon. */\n icon?: SafeHtml;\n tone?: ChipTone;\n appearance?: BadgeAppearance;\n shape?: BadgeShape;\n size?: BadgeSize;\n disabled?: boolean;\n /** Record identifier available to an application delegated action handler. */\n itemId?: string;\n className?: string;\n /** Native named-slot assignment when composed inside a web component. */\n slot?: string;\n}\n\ntype ChipLabelProps =\n | { children: SafeHtml | string | number; truncate?: false }\n | { children: string; truncate: true };\n\ninterface ChipNoLinkProps {\n href?: never;\n download?: never;\n external?: never;\n}\n\n/**\n * A link chip renders a native `<a>` with Chip geometry. It cannot also carry\n * a remove button, because a button inside a link is invalid.\n */\ninterface ChipLinkProps {\n /** Native destination; the chip renders as an `<a>`. */\n href: string;\n /** Download the destination: `true`, or the suggested file name. */\n download?: string | boolean;\n /** Open in a new tab with a safe rel and announce that behavior. */\n external?: boolean;\n removeAction?: never;\n removeLabel?: never;\n}\n\n/**\n * A plain chip, a removable chip (a delegated action plus a specific\n * accessible name), or a link chip (`href`, optional `download`/`external`).\n */\nexport type ChipProps = ChipCommonProps &\n ChipLabelProps &\n (\n | ({ removeAction: string; removeLabel: string } & ChipNoLinkProps)\n | ({ removeAction?: never; removeLabel?: never } & ChipNoLinkProps)\n | ChipLinkProps\n );\n\nfunction removeButton(action: string, label: string, disabled: boolean) {\n return (\n <button\n class=\"kui-chip__remove\"\n type=\"button\"\n data-action={action}\n aria-label={label}\n disabled={disabled}\n >\n <svg viewBox=\"0 0 16 16\" width=\"12\" height=\"12\" aria-hidden=\"true\">\n <path\n d=\"M3.5 3.5 12.5 12.5M12.5 3.5 3.5 12.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n />\n </svg>\n </button>\n );\n}\n\nfunction downloadValue(download: string | boolean | undefined) {\n switch (download) {\n case undefined:\n case false:\n return undefined;\n case true:\n return '';\n default:\n return download;\n }\n}\n\n/**\n * A short label with an optional native remove button, or a native link when\n * `href` is set. The application owns removal and the link destination.\n */\nexport function Chip({\n children,\n icon,\n truncate = false,\n tone = 'neutral',\n appearance = 'quiet',\n shape = 'pill',\n size = 'default',\n disabled = false,\n itemId,\n className = '',\n slot,\n href,\n download,\n external = false,\n removeAction,\n removeLabel,\n}: ChipProps) {\n if (truncate && typeof children !== 'string')\n throw new TypeError('Chip truncate requires a plain text label');\n const content = (\n <>\n {icon === undefined ? null : (\n <span class=\"kui-chip__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n )}\n <span\n class=\"kui-chip__label\"\n title={truncate ? String(children) : undefined}\n >\n {children}\n </span>\n </>\n );\n const rootClass = `kui-chip ${className}`.trim();\n if (href !== undefined) {\n const textLabel =\n typeof children === 'string' || typeof children === 'number'\n ? String(children)\n : undefined;\n return (\n <a\n class={rootClass}\n href={disabled ? undefined : href}\n download={disabled ? undefined : downloadValue(download)}\n target={disabled || !external ? undefined : '_blank'}\n rel={disabled || !external ? undefined : 'noopener noreferrer'}\n tabindex={disabled ? -1 : undefined}\n aria-label={\n external && textLabel !== undefined\n ? `${textLabel} (opens in new tab)`\n : undefined\n }\n aria-disabled={disabled ? 'true' : undefined}\n data-component=\"chip\"\n data-link=\"\"\n data-tone={tone}\n data-appearance={appearance}\n data-shape={shape}\n data-size={size}\n data-disabled={disabled ? '' : undefined}\n data-truncate={truncate ? '' : undefined}\n data-item-id={itemId}\n slot={slot}\n >\n {content}\n </a>\n );\n }\n return (\n <span\n class={rootClass}\n data-component=\"chip\"\n data-tone={tone}\n data-appearance={appearance}\n data-shape={shape}\n data-size={size}\n data-disabled={disabled ? '' : undefined}\n data-truncate={truncate ? '' : undefined}\n data-item-id={itemId}\n slot={slot}\n >\n {content}\n {removeAction !== undefined && removeLabel !== undefined\n ? removeButton(removeAction, removeLabel, disabled)\n : null}\n </span>\n );\n}\n"]}
|