@synerise/ds-unordered-list 1.1.53 → 1.1.55
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/CHANGELOG.md +8 -0
- package/CLAUDE.md +85 -0
- package/package.json +5 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.1.55](https://github.com/Synerise/synerise-design/compare/@synerise/ds-unordered-list@1.1.54...@synerise/ds-unordered-list@1.1.55) (2026-08-11)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @synerise/ds-unordered-list
|
|
9
|
+
|
|
10
|
+
## [1.1.54](https://github.com/Synerise/synerise-design/compare/@synerise/ds-unordered-list@1.1.53...@synerise/ds-unordered-list@1.1.54) (2026-07-23)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @synerise/ds-unordered-list
|
|
13
|
+
|
|
6
14
|
## [1.1.53](https://github.com/Synerise/synerise-design/compare/@synerise/ds-unordered-list@1.1.52...@synerise/ds-unordered-list@1.1.53) (2026-06-17)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @synerise/ds-unordered-list
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# UnorderedList (`@synerise/ds-unordered-list`)
|
|
2
|
+
|
|
3
|
+
> A recursive, nestable unordered list with optional index formatter, prefix/suffix slots, and a section label.
|
|
4
|
+
|
|
5
|
+
## Package structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
src/
|
|
9
|
+
Unordered-list.tsx — main component; renders label + <ul> + items recursively
|
|
10
|
+
Unordered-list.types.ts — UnorderedListItem, UnorderedListProps, deprecated ListProps
|
|
11
|
+
Unordered-list.styles.ts — UnorderedList (ul), Label, ContentAbove styled components
|
|
12
|
+
index.ts — public exports
|
|
13
|
+
Elements/
|
|
14
|
+
Item/Item.tsx — single <li>; renders indexFormatter, prefixel, label, suffixel, and nested NestedList
|
|
15
|
+
Item/Item.styles.ts — ItemWrapper (li), IndexFormatterWrapper
|
|
16
|
+
__specs__/
|
|
17
|
+
Ordered-list.spec.tsx — Vitest tests (note: spec file is misnamed "Ordered-list")
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Public exports
|
|
21
|
+
|
|
22
|
+
### `UnorderedList` (default export)
|
|
23
|
+
|
|
24
|
+
| Prop | Type | Default | Description |
|
|
25
|
+
|------|------|---------|-------------|
|
|
26
|
+
| `data` | `UnorderedListItem[]` | — (required) | Items to render |
|
|
27
|
+
| `indexFormatter` | `(index: number) => ReactNode` | — | Renders a custom prefix before each item (e.g. ` - `, ` ● `) |
|
|
28
|
+
| `text` | `ReactNode` | — | Optional section label rendered above the list via `FormFieldLabel` |
|
|
29
|
+
| `className` | `string` | — | CSS class on the root `<div>` |
|
|
30
|
+
|
|
31
|
+
### `UnorderedListItem`
|
|
32
|
+
|
|
33
|
+
| Field | Type | Description |
|
|
34
|
+
|-------|------|-------------|
|
|
35
|
+
| `id` | `string` | Required unique key |
|
|
36
|
+
| `label` | `ReactNode` | Item display content |
|
|
37
|
+
| `index` | `number` | Numeric index passed to `indexFormatter` |
|
|
38
|
+
| `prefixel` | `ReactNode` | Rendered before `label` |
|
|
39
|
+
| `suffixel` | `ReactNode` | Rendered after `label` |
|
|
40
|
+
| `subMenu` | `UnorderedListItem[]` | Child items; renders a nested `UnorderedList` when present |
|
|
41
|
+
| `subMenuProps` | `Omit<UnorderedListProps, 'data'>` | Props forwarded to the nested `UnorderedList` (e.g. overriding `indexFormatter` for the sub-level) |
|
|
42
|
+
| `text` | `ReactNode` | Label for the nested list (passed down to nested `UnorderedList.text`) |
|
|
43
|
+
|
|
44
|
+
### `UnorderedListProps`
|
|
45
|
+
|
|
46
|
+
Type re-export.
|
|
47
|
+
|
|
48
|
+
### `ListProps` _(deprecated)_
|
|
49
|
+
|
|
50
|
+
`@deprecated` alias for `UnorderedListProps`. Do not use.
|
|
51
|
+
|
|
52
|
+
## Usage patterns
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
import UnorderedList from '@synerise/ds-unordered-list';
|
|
56
|
+
import type { UnorderedListItem } from '@synerise/ds-unordered-list';
|
|
57
|
+
|
|
58
|
+
<UnorderedList
|
|
59
|
+
text="Section heading"
|
|
60
|
+
indexFormatter={(i) => ` ${i + 1}. `}
|
|
61
|
+
data={[
|
|
62
|
+
{ id: '0', index: 0, label: 'Item A' },
|
|
63
|
+
{
|
|
64
|
+
id: '1', index: 1, label: 'Item B',
|
|
65
|
+
subMenu: [{ id: '2', index: 0, label: 'Child B1' }],
|
|
66
|
+
},
|
|
67
|
+
]}
|
|
68
|
+
/>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Styling
|
|
72
|
+
|
|
73
|
+
`Unordered-list.styles.ts`. The `<ul>` styled component accepts an optional `listStyle` prop that sets `list-style-type`; this is **not** exposed on `UnorderedListProps` — it is an internal styled-component prop. Nested `<ul>` elements get `margin-left: 20px`.
|
|
74
|
+
|
|
75
|
+
## Key dependencies
|
|
76
|
+
|
|
77
|
+
- `@synerise/ds-form-field` — `FormFieldLabel` for the optional `text` section label
|
|
78
|
+
- `@synerise/ds-icon` — available for use as `prefixel`/`suffixel` (not imported in main component)
|
|
79
|
+
|
|
80
|
+
## Implementation notes
|
|
81
|
+
|
|
82
|
+
- **Circular dependency avoidance** — `Item` does not import `UnorderedList` directly. Instead, the parent passes `NestedList={UnorderedList}` as a prop to `Item`, breaking the circular reference.
|
|
83
|
+
- **`index` field on `UnorderedListItem` is overridden** — the parent maps over `data` and passes `index={i}` (the array index) to `Item`, discarding the `index` field from the item object: `data.map(({ index, ..item }, i) => <Item index={i} ..item />)`. The `index` field on the item itself is effectively unused.
|
|
84
|
+
- **Spec file is misnamed** — `__specs__/Ordered-list.spec.tsx` tests `UnorderedList` but is named "Ordered-list".
|
|
85
|
+
- **Uses Vitest**.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-unordered-list",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.55",
|
|
4
4
|
"description": "UnorderedList UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"files": [
|
|
18
18
|
"/dist",
|
|
19
19
|
"CHANGELOG.md",
|
|
20
|
+
"CLAUDE.md",
|
|
20
21
|
"README.md",
|
|
21
22
|
"package.json",
|
|
22
23
|
"LICENSE.md"
|
|
@@ -41,8 +42,8 @@
|
|
|
41
42
|
],
|
|
42
43
|
"types": "dist/index.d.ts",
|
|
43
44
|
"dependencies": {
|
|
44
|
-
"@synerise/ds-form-field": "^1.3.
|
|
45
|
-
"@synerise/ds-icon": "^1.18.
|
|
45
|
+
"@synerise/ds-form-field": "^1.3.25",
|
|
46
|
+
"@synerise/ds-icon": "^1.18.5"
|
|
46
47
|
},
|
|
47
48
|
"peerDependencies": {
|
|
48
49
|
"@synerise/ds-core": "*",
|
|
@@ -50,5 +51,5 @@
|
|
|
50
51
|
"styled-components": "^5.3.3",
|
|
51
52
|
"vitest": "4"
|
|
52
53
|
},
|
|
53
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "6df24ed12cd5f276d8eccde730591807982e3385"
|
|
54
55
|
}
|