@neo4j-ndl/react 4.16.7 → 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/lib/cjs/color-picker/ColorPicker.js +3 -1
- package/lib/cjs/color-picker/ColorPicker.js.map +1 -1
- package/lib/cjs/color-picker/stories/color-picker-dialog.story.js +40 -0
- package/lib/cjs/color-picker/stories/color-picker-dialog.story.js.map +1 -0
- package/lib/cjs/color-picker/stories/color-picker-popover.story.js +32 -0
- package/lib/cjs/color-picker/stories/color-picker-popover.story.js.map +1 -0
- package/lib/cjs/color-picker/stories/index.js +9 -1
- package/lib/cjs/color-picker/stories/index.js.map +1 -1
- package/lib/cjs/popover/use-popover.js +1 -1
- package/lib/cjs/popover/use-popover.js.map +1 -1
- package/lib/cjs/select/Select.js +2 -0
- package/lib/cjs/select/Select.js.map +1 -1
- package/lib/esm/color-picker/ColorPicker.js +3 -1
- package/lib/esm/color-picker/ColorPicker.js.map +1 -1
- package/lib/esm/color-picker/stories/color-picker-dialog.story.js +38 -0
- package/lib/esm/color-picker/stories/color-picker-dialog.story.js.map +1 -0
- package/lib/esm/color-picker/stories/color-picker-popover.story.js +30 -0
- package/lib/esm/color-picker/stories/color-picker-popover.story.js.map +1 -0
- package/lib/esm/color-picker/stories/index.js +6 -0
- package/lib/esm/color-picker/stories/index.js.map +1 -1
- package/lib/esm/popover/use-popover.js +1 -1
- package/lib/esm/popover/use-popover.js.map +1 -1
- package/lib/esm/select/Select.js +2 -0
- package/lib/esm/select/Select.js.map +1 -1
- package/lib/types/color-picker/ColorPicker.d.ts +4 -0
- package/lib/types/color-picker/ColorPicker.d.ts.map +1 -1
- package/lib/types/color-picker/stories/color-picker-dialog.story.d.ts +24 -0
- package/lib/types/color-picker/stories/color-picker-dialog.story.d.ts.map +1 -0
- package/lib/types/color-picker/stories/color-picker-popover.story.d.ts +24 -0
- package/lib/types/color-picker/stories/color-picker-popover.story.d.ts.map +1 -0
- package/lib/types/color-picker/stories/index.d.ts +4 -0
- package/lib/types/color-picker/stories/index.d.ts.map +1 -1
- package/lib/types/select/Select.d.ts.map +1 -1
- 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
|
+
```
|