@neo4j-ndl/react 4.16.8 → 4.16.9
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/package.json +5 -2
- package/skills/ndl-react/SKILL.md +152 -0
- package/skills/ndl-react/components/accordion.md +386 -0
- package/skills/ndl-react/components/ai/code-preview.md +128 -0
- package/skills/ndl-react/components/ai/file-tag.md +90 -0
- package/skills/ndl-react/components/ai/image-tag.md +91 -0
- package/skills/ndl-react/components/ai/more-files.md +73 -0
- package/skills/ndl-react/components/ai/presence.md +54 -0
- package/skills/ndl-react/components/ai/preview.md +498 -0
- package/skills/ndl-react/components/ai/prompt.md +362 -0
- package/skills/ndl-react/components/ai/reasoning.md +95 -0
- package/skills/ndl-react/components/ai/response.md +1109 -0
- package/skills/ndl-react/components/ai/suggestion.md +84 -0
- package/skills/ndl-react/components/ai/thinking.md +43 -0
- package/skills/ndl-react/components/ai/tool-call.md +43 -0
- package/skills/ndl-react/components/ai/user-bubble.md +187 -0
- package/skills/ndl-react/components/avatar.md +169 -0
- package/skills/ndl-react/components/banner.md +225 -0
- package/skills/ndl-react/components/box.md +39 -0
- package/skills/ndl-react/components/breadcrumbs.md +245 -0
- package/skills/ndl-react/components/checkbox.md +269 -0
- package/skills/ndl-react/components/clean-icon-button.md +294 -0
- package/skills/ndl-react/components/clipboard-button.md +154 -0
- package/skills/ndl-react/components/code-block.md +276 -0
- package/skills/ndl-react/components/code.md +68 -0
- package/skills/ndl-react/components/color-picker.md +131 -0
- package/skills/ndl-react/components/conditional-wrap.md +46 -0
- package/skills/ndl-react/components/data-grid.md +3121 -0
- package/skills/ndl-react/components/date-picker.md +652 -0
- package/skills/ndl-react/components/dialog.md +485 -0
- package/skills/ndl-react/components/dismissible-tag.md +136 -0
- package/skills/ndl-react/components/divider.md +96 -0
- package/skills/ndl-react/components/drawer.md +543 -0
- package/skills/ndl-react/components/dropdown-button.md +161 -0
- package/skills/ndl-react/components/dropzone.md +371 -0
- package/skills/ndl-react/components/filled-button.md +26 -0
- package/skills/ndl-react/components/flex.md +82 -0
- package/skills/ndl-react/components/graph-label.md +167 -0
- package/skills/ndl-react/components/icon-button-array.md +187 -0
- package/skills/ndl-react/components/icon-button.md +193 -0
- package/skills/ndl-react/components/inline-edit.md +209 -0
- package/skills/ndl-react/components/kbd.md +63 -0
- package/skills/ndl-react/components/loading-bar.md +43 -0
- package/skills/ndl-react/components/loading-spinner.md +57 -0
- package/skills/ndl-react/components/logo.md +57 -0
- package/skills/ndl-react/components/menu.md +993 -0
- package/skills/ndl-react/components/modal.md +27 -0
- package/skills/ndl-react/components/next/tree-view.md +966 -0
- package/skills/ndl-react/components/outlined-button.md +26 -0
- package/skills/ndl-react/components/popover.md +283 -0
- package/skills/ndl-react/components/progress-bar.md +70 -0
- package/skills/ndl-react/components/radio.md +150 -0
- package/skills/ndl-react/components/read-only-tag.md +96 -0
- package/skills/ndl-react/components/segmented-control.md +200 -0
- package/skills/ndl-react/components/select-icon-button.md +183 -0
- package/skills/ndl-react/components/select.md +530 -0
- package/skills/ndl-react/components/selectable-tag.md +203 -0
- package/skills/ndl-react/components/side-navigation.md +652 -0
- package/skills/ndl-react/components/skeleton.md +274 -0
- package/skills/ndl-react/components/slider.md +308 -0
- package/skills/ndl-react/components/spotlight.md +796 -0
- package/skills/ndl-react/components/status-indicator.md +57 -0
- package/skills/ndl-react/components/status-label.md +132 -0
- package/skills/ndl-react/components/switch.md +167 -0
- package/skills/ndl-react/components/tabs.md +433 -0
- package/skills/ndl-react/components/tag.md +91 -0
- package/skills/ndl-react/components/text-area.md +178 -0
- package/skills/ndl-react/components/text-button.md +25 -0
- package/skills/ndl-react/components/text-input.md +475 -0
- package/skills/ndl-react/components/text-link.md +119 -0
- package/skills/ndl-react/components/time-picker.md +137 -0
- package/skills/ndl-react/components/timezone-picker.md +496 -0
- package/skills/ndl-react/components/tooltip.md +478 -0
- package/skills/ndl-react/components/tree-view.md +545 -0
- package/skills/ndl-react/components/typography.md +72 -0
- package/skills/ndl-react/components/wizard.md +152 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# SelectableTag
|
|
2
|
+
|
|
3
|
+
Import: `import { SelectableTag } from '@neo4j-ndl/react'`
|
|
4
|
+
|
|
5
|
+
## Props
|
|
6
|
+
|
|
7
|
+
### SelectableTag
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Required | Default | Description |
|
|
10
|
+
|------|------|----------|---------|-------------|
|
|
11
|
+
| `badgeCount` | `number` | | | Number displayed in a badge after the content |
|
|
12
|
+
| `children` | `ReactNode` | | | The content of the tag |
|
|
13
|
+
| `isDisabled` | `boolean` | | `false` | Whether the tag is disabled |
|
|
14
|
+
| `isSelected` | `boolean` | ✅ | | Whether the tag is selected |
|
|
15
|
+
| `leadingVisual` | `ReactNode` | | | Icon to display before the content |
|
|
16
|
+
| `onClick` | `MouseEventHandler<HTMLButtonElement>` | ✅ | | Callback fired when the tag is clicked |
|
|
17
|
+
| `ref` | `Ref<HTMLButtonElement>` | | | A ref to apply to the root element. |
|
|
18
|
+
| `size` | `'large' \| 'medium' \| 'small' \| 'x-small'` | | `medium` | Size of the tag |
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
|
|
22
|
+
### Default
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
|
|
26
|
+
|
|
27
|
+
import { SelectableTag } from '@neo4j-ndl/react';
|
|
28
|
+
import { useState } from 'react';
|
|
29
|
+
|
|
30
|
+
const Component = () => {
|
|
31
|
+
const [isSelected, setIsSelected] = useState(false);
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<SelectableTag
|
|
35
|
+
isSelected={isSelected}
|
|
36
|
+
onClick={() => setIsSelected(!isSelected)}
|
|
37
|
+
>
|
|
38
|
+
Selectable Tag
|
|
39
|
+
</SelectableTag>
|
|
40
|
+
);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export default Component;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Disabled
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
|
|
50
|
+
|
|
51
|
+
import { SelectableTag } from '@neo4j-ndl/react';
|
|
52
|
+
|
|
53
|
+
const Component = () => {
|
|
54
|
+
return (
|
|
55
|
+
<div className="n-flex n-gap-token-8 n-items-center">
|
|
56
|
+
<SelectableTag isSelected={false} isDisabled onClick={() => null}>
|
|
57
|
+
Disabled unselected tag
|
|
58
|
+
</SelectableTag>
|
|
59
|
+
<SelectableTag isSelected={true} isDisabled onClick={() => null}>
|
|
60
|
+
Disabled selected tag
|
|
61
|
+
</SelectableTag>
|
|
62
|
+
</div>
|
|
63
|
+
);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export default Component;
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Sizes
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
|
|
73
|
+
|
|
74
|
+
import { SelectableTag } from '@neo4j-ndl/react';
|
|
75
|
+
import { useState } from 'react';
|
|
76
|
+
|
|
77
|
+
const Component = () => {
|
|
78
|
+
const [selected, setSelected] = useState<Record<string, boolean>>({});
|
|
79
|
+
|
|
80
|
+
return (
|
|
81
|
+
<div className="n-flex n-flex-row n-gap-token-8">
|
|
82
|
+
<SelectableTag
|
|
83
|
+
size="x-small"
|
|
84
|
+
isSelected={selected['x-small'] ?? false}
|
|
85
|
+
onClick={() =>
|
|
86
|
+
setSelected((s) => ({ ...s, ['x-small']: !s['x-small'] }))
|
|
87
|
+
}
|
|
88
|
+
>
|
|
89
|
+
X-Small
|
|
90
|
+
</SelectableTag>
|
|
91
|
+
<SelectableTag
|
|
92
|
+
size="small"
|
|
93
|
+
isSelected={selected['small'] ?? false}
|
|
94
|
+
onClick={() => setSelected((s) => ({ ...s, ['small']: !s['small'] }))}
|
|
95
|
+
>
|
|
96
|
+
Small
|
|
97
|
+
</SelectableTag>
|
|
98
|
+
<SelectableTag
|
|
99
|
+
size="medium"
|
|
100
|
+
isSelected={selected['medium'] ?? false}
|
|
101
|
+
onClick={() => setSelected((s) => ({ ...s, ['medium']: !s['medium'] }))}
|
|
102
|
+
>
|
|
103
|
+
Medium
|
|
104
|
+
</SelectableTag>
|
|
105
|
+
<SelectableTag
|
|
106
|
+
size="large"
|
|
107
|
+
isSelected={selected['large'] ?? false}
|
|
108
|
+
onClick={() => setSelected((s) => ({ ...s, ['large']: !s['large'] }))}
|
|
109
|
+
>
|
|
110
|
+
Large
|
|
111
|
+
</SelectableTag>
|
|
112
|
+
</div>
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export default Component;
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Truncation
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
|
|
123
|
+
|
|
124
|
+
import { SelectableTag, Tooltip } from '@neo4j-ndl/react';
|
|
125
|
+
import { useState } from 'react';
|
|
126
|
+
|
|
127
|
+
const label =
|
|
128
|
+
'This is a very very very long tag label that should be truncated';
|
|
129
|
+
|
|
130
|
+
const Component = () => {
|
|
131
|
+
const [isSelected, setIsSelected] = useState(false);
|
|
132
|
+
|
|
133
|
+
return (
|
|
134
|
+
<div style={{ maxWidth: 200 }}>
|
|
135
|
+
<Tooltip type="simple">
|
|
136
|
+
<Tooltip.Trigger hasButtonWrapper>
|
|
137
|
+
<SelectableTag
|
|
138
|
+
isSelected={isSelected}
|
|
139
|
+
onClick={() => setIsSelected(!isSelected)}
|
|
140
|
+
badgeCount={8}
|
|
141
|
+
>
|
|
142
|
+
{label}
|
|
143
|
+
</SelectableTag>
|
|
144
|
+
</Tooltip.Trigger>
|
|
145
|
+
<Tooltip.Content>{label}</Tooltip.Content>
|
|
146
|
+
</Tooltip>
|
|
147
|
+
</div>
|
|
148
|
+
);
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
export default Component;
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### With Badge
|
|
155
|
+
|
|
156
|
+
```tsx
|
|
157
|
+
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
|
|
158
|
+
|
|
159
|
+
import { SelectableTag } from '@neo4j-ndl/react';
|
|
160
|
+
import { useState } from 'react';
|
|
161
|
+
|
|
162
|
+
const Component = () => {
|
|
163
|
+
const [isSelected, setIsSelected] = useState(false);
|
|
164
|
+
|
|
165
|
+
return (
|
|
166
|
+
<SelectableTag
|
|
167
|
+
badgeCount={8}
|
|
168
|
+
isSelected={isSelected}
|
|
169
|
+
onClick={() => setIsSelected(!isSelected)}
|
|
170
|
+
>
|
|
171
|
+
Selectable Tag with badge
|
|
172
|
+
</SelectableTag>
|
|
173
|
+
);
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
export default Component;
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### With Leading Icon
|
|
180
|
+
|
|
181
|
+
```tsx
|
|
182
|
+
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
|
|
183
|
+
|
|
184
|
+
import { SelectableTag } from '@neo4j-ndl/react';
|
|
185
|
+
import { DatabasePlusIcon } from '@neo4j-ndl/react/icons';
|
|
186
|
+
import { useState } from 'react';
|
|
187
|
+
|
|
188
|
+
const Component = () => {
|
|
189
|
+
const [isSelected, setIsSelected] = useState(false);
|
|
190
|
+
|
|
191
|
+
return (
|
|
192
|
+
<SelectableTag
|
|
193
|
+
isSelected={isSelected}
|
|
194
|
+
leadingVisual={<DatabasePlusIcon />}
|
|
195
|
+
onClick={() => setIsSelected(!isSelected)}
|
|
196
|
+
>
|
|
197
|
+
Selectable Tag with leading icon
|
|
198
|
+
</SelectableTag>
|
|
199
|
+
);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
export default Component;
|
|
203
|
+
```
|