@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 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.53",
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.23",
45
- "@synerise/ds-icon": "^1.18.4"
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": "d8c64070f58f14e3fb1bfbcbf00d1e3b8fd51eb8"
54
+ "gitHead": "6df24ed12cd5f276d8eccde730591807982e3385"
54
55
  }