Skip to content

Conversation

@Kiarokh
Copy link
Contributor

@Kiarokh Kiarokh commented Aug 20, 2025

This will also make it easier to test the implementation of the new limel-list-item component later.

related to https://github.com/Lundalogik/crm-client/issues/216

Summary by CodeRabbit

  • New Features

    • Examples now display the last triggered action/event.
    • Added toggles to show/hide item icons and to enable badge-style icons in lists.
    • Selectable list example includes a disabled item and live event display.
    • Primary component example updated with size and ordering controls.
  • Documentation

    • Expanded guidance on selectable lists and custom primary components.
    • Reorganized example listings in the component docs.
  • Chores

    • Removed outdated checkbox and radio-button list examples.

Review:

  • Commits are atomic
  • Commits have the correct type for the changes made
  • Commits with breaking changes are marked as such

Browsers tested:

(Check any that applies, it's ok to leave boxes unchecked if testing something didn't seem relevant.)

Windows:

  • Chrome
  • Edge
  • Firefox

Linux:

  • Chrome
  • Firefox

macOS:

  • Chrome
  • Firefox
  • Safari

Mobile:

  • Chrome on Android
  • iOS

@coderabbitai
Copy link

coderabbitai bot commented Aug 20, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

📝 Walkthrough

Walkthrough

Updates multiple list example components: add reactive state and UI controls (icon toggles, badge icon toggle), display last event/action, adjust example data and docs, and wrap some renders in Host. Two example components (checkbox and radio-button) are removed, and list.tsx JSDoc example references are reordered.

Changes

Cohort / File(s) Summary of changes
Action example state + display
src/components/list/examples/list-action.tsx
Adds @State lastEvent, changes onSelectAction to arrow fn updating lastEvent, reduces items, and renders limel-list plus limel-example-value.
Icon toggle controls (checkbox/radio)
src/components/list/examples/list-checkbox-icons.tsx, src/components/list/examples/list-radio-button-icons.tsx
Introduces showIcons state, caches original icons, adds limel-example-controls with checkbox to toggle icons, updates item icons accordingly.
Badge icons toggle
src/components/list/examples/list-badge-icons.tsx
Adds @State badgeIcons, Host-wrapped render, checkbox control to toggle badgeIcons; updates some item colors/backgrounds; adds explanatory doc comment.
Selectable example: event display + disabled item
src/components/list/examples/list-selectable.tsx
Imports Host; adds @State lastEvent; marks "Catan" disabled; renders list plus lastEvent value; handleChange now records event detail text/selected before updating items.
Primary component example doc/data tweak
src/components/list/examples/list-primary-component.tsx
Expands docs; passes size: 'small' to primary components; first item adds style order: 3.
Remove deprecated examples
src/components/list/examples/list-checkbox.tsx, src/components/list/examples/list-radio-button.tsx
Deletes both example components.
Example references reorder
src/components/list/list.tsx
Updates JSDoc @exampleComponent list: reorders entries, removes radio-button example, swaps in selectable where checkbox was.

Sequence Diagram(s)

sequenceDiagram
  participant U as User
  participant L as limel-list
  participant EX as Example Component
  participant V as limel-example-value

  U->>L: select action (onSelect)
  L-->>EX: LimelListCustomEvent<ListItem>
  rect rgba(214,234,248,0.3)
    note right of EX: Update reactive state
    EX->>EX: onSelectAction formats "Executing action: ..."
    EX->>EX: this.lastEvent = message
  end
  EX-->>V: value=lastEvent (re-render)
Loading
sequenceDiagram
  participant U as User
  participant C as limel-checkbox
  participant EX as Example Component
  participant L as limel-list

  U->>C: toggle "icon"/"badgeIcons"
  C-->>EX: CustomEvent<boolean>
  rect rgba(232,248,245,0.4)
    note right of EX: Sync state and items
    EX->>EX: stopPropagation()
    EX->>EX: update state (showIcons/badgeIcons)
    EX->>EX: map items to set/restore icons (if applicable)
  end
  EX-->>L: props updated (items, badgeIcons)
Loading
sequenceDiagram
  participant U as User
  participant L as limel-list (selectable)
  participant EX as Example Component
  participant V as limel-example-value

  U->>L: change selection
  L-->>EX: LimelListCustomEvent<ListItem>
  EX->>EX: lastEvent = "Selected: {text}, selected: {selected}"
  EX->>EX: update items with event.detail
  EX-->>V: value=lastEvent
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

docs, maintenance

Suggested reviewers

  • adrianschmidt
  • Befkadu1
  • jgroth
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch improve-list-docs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@Kiarokh Kiarokh self-assigned this Aug 20, 2025
@Kiarokh Kiarokh enabled auto-merge (rebase) August 20, 2025 15:04
@github-actions
Copy link

Documentation has been published to https://lundalogik.github.io/lime-elements/versions/PR-3651/

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
src/components/list/examples/list-radio-button-icons.tsx (1)

96-111: Don’t return an array of JSX elements; wrap in Host.

Per our Stencil guidelines, avoid array literals at the top level. This also sidesteps “missing key” lints.

Apply this diff:

-    public render() {
-        return [
-            <limel-list
-                onChange={this.handleChange}
-                items={this.items}
-                type="radio"
-            />,
-            <limel-example-value value={this.selectedItem} />,
-            <limel-example-controls>
-                <limel-checkbox
-                    checked={this.showIcons}
-                    label="icon"
-                    onChange={this.setIcon}
-                />
-            </limel-example-controls>,
-        ];
-    }
+    public render() {
+        return (
+            <Host>
+                <limel-list
+                    onChange={this.handleChange}
+                    items={this.items}
+                    type="radio"
+                />
+                <limel-example-value value={this.selectedItem} />
+                <limel-example-controls>
+                    <limel-checkbox
+                        checked={this.showIcons}
+                        label="icon"
+                        onChange={this.setIcon}
+                    />
+                </limel-example-controls>
+            </Host>
+        );
+    }

Additionally, ensure Host is imported:

// at top of file
import { Component, h, State, Host } from '@stencil/core';
src/components/list/examples/list-checkbox-icons.tsx (2)

96-112: Wrap multiple top-level elements in Host instead of an array

Stencil examples must not return an array. Wrap siblings in to satisfy our guidelines and fix the Biome “Missing key property in iterable” error.

Apply this diff:

-    public render() {
-        return [
-            <limel-list
-                onChange={this.handleChange}
-                items={this.items}
-                type="checkbox"
-            />,
-            <limel-example-value value={this.selectedItems} />,
-            <limel-example-controls>
-                <limel-checkbox
-                    checked={this.showIcons}
-                    label="icon"
-                    onChange={this.setIcon}
-                />
-            </limel-example-controls>,
-        ];
-    }
+    public render() {
+        return (
+            <Host>
+                <limel-list
+                    onChange={this.handleChange}
+                    items={this.items}
+                    type="checkbox"
+                />
+                <limel-example-value value={this.selectedItems} />
+                <limel-example-controls>
+                    <limel-checkbox
+                        checked={this.showIcons}
+                        label="icon"
+                        onChange={this.setIcon}
+                    />
+                </limel-example-controls>
+            </Host>
+        );
+    }

Remember to import Host (see separate comment).


2-2: Import Host from @stencil/core

Required to use the Host wrapper in render.

-import { Component, h, State } from '@stencil/core';
+import { Component, h, Host, State } from '@stencil/core';
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled
  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between cc0eca8 and 843e442.

📒 Files selected for processing (9)
  • src/components/list/examples/list-action.tsx (3 hunks)
  • src/components/list/examples/list-badge-icons.tsx (3 hunks)
  • src/components/list/examples/list-checkbox-icons.tsx (4 hunks)
  • src/components/list/examples/list-checkbox.tsx (0 hunks)
  • src/components/list/examples/list-primary-component.tsx (5 hunks)
  • src/components/list/examples/list-radio-button-icons.tsx (4 hunks)
  • src/components/list/examples/list-radio-button.tsx (0 hunks)
  • src/components/list/examples/list-selectable.tsx (2 hunks)
  • src/components/list/list.tsx (1 hunks)
💤 Files with no reviewable changes (2)
  • src/components/list/examples/list-checkbox.tsx
  • src/components/list/examples/list-radio-button.tsx
🧰 Additional context used
📓 Path-based instructions (5)
**/*.tsx

📄 CodeRabbit Inference Engine (.cursor/rules/wrap-multiple-jsx-elements-in-host-not-in-array.mdc)

When returning multiple JSX elements from the render method, never wrap them in an array literal. Instead, always wrap them in the special <Host> element. When there is already a single top-level element, it does not have to be wrapped in <Host>.

Files:

  • src/components/list/list.tsx
  • src/components/list/examples/list-primary-component.tsx
  • src/components/list/examples/list-badge-icons.tsx
  • src/components/list/examples/list-selectable.tsx
  • src/components/list/examples/list-radio-button-icons.tsx
  • src/components/list/examples/list-checkbox-icons.tsx
  • src/components/list/examples/list-action.tsx

⚙️ CodeRabbit Configuration File

**/*.tsx: Our .tsx files are typically using StencilJS, not React. When a developer wants to return multiple top-level JSX elements from the render method, they will sometimes wrap them in an array literal. In these cases, rather than recommending they add key properties to the elements, recommend removing the hardcoded array literal. Recommend wrapping the elements in StencilJS's special <Host> element.

Files:

  • src/components/list/list.tsx
  • src/components/list/examples/list-primary-component.tsx
  • src/components/list/examples/list-badge-icons.tsx
  • src/components/list/examples/list-selectable.tsx
  • src/components/list/examples/list-radio-button-icons.tsx
  • src/components/list/examples/list-checkbox-icons.tsx
  • src/components/list/examples/list-action.tsx
**/*.{ts,tsx}

⚙️ CodeRabbit Configuration File

**/*.{ts,tsx}: Imports from other files in the same module (lime-elements) must use relative paths. Using absolute paths for imports will cause the production build to fail.

Files:

  • src/components/list/list.tsx
  • src/components/list/examples/list-primary-component.tsx
  • src/components/list/examples/list-badge-icons.tsx
  • src/components/list/examples/list-selectable.tsx
  • src/components/list/examples/list-radio-button-icons.tsx
  • src/components/list/examples/list-checkbox-icons.tsx
  • src/components/list/examples/list-action.tsx
**/*.{tsx,scss}

⚙️ CodeRabbit Configuration File

**/*.{tsx,scss}: Almost all our components use shadow-DOM. Therefore, we have no need of BEM-style class names in our CSS.

Files:

  • src/components/list/list.tsx
  • src/components/list/examples/list-primary-component.tsx
  • src/components/list/examples/list-badge-icons.tsx
  • src/components/list/examples/list-selectable.tsx
  • src/components/list/examples/list-radio-button-icons.tsx
  • src/components/list/examples/list-checkbox-icons.tsx
  • src/components/list/examples/list-action.tsx
src/components/**/*.tsx

⚙️ CodeRabbit Configuration File

src/components/**/*.tsx: When contributors add new props to existing components in the lime-elements repository, they should always add documentation examples that demonstrate the new prop's usage and explain how it works. This helps with user adoption, feature discoverability, and maintains comprehensive documentation.

Files:

  • src/components/list/list.tsx
  • src/components/list/examples/list-primary-component.tsx
  • src/components/list/examples/list-badge-icons.tsx
  • src/components/list/examples/list-selectable.tsx
  • src/components/list/examples/list-radio-button-icons.tsx
  • src/components/list/examples/list-checkbox-icons.tsx
  • src/components/list/examples/list-action.tsx
src/components/**/examples/**/*.{ts,tsx}

⚙️ CodeRabbit Configuration File

src/components/**/examples/**/*.{ts,tsx}: These files are an exception to the rule that all imports should use relative paths. When these example files import something that is publicly exported by lime-elements, the import should be made from @limetech/lime-elements. If they import something from another file inside the example folder, the import should use a relative path.

Files:

  • src/components/list/examples/list-primary-component.tsx
  • src/components/list/examples/list-badge-icons.tsx
  • src/components/list/examples/list-selectable.tsx
  • src/components/list/examples/list-radio-button-icons.tsx
  • src/components/list/examples/list-checkbox-icons.tsx
  • src/components/list/examples/list-action.tsx
🧠 Learnings (7)
📓 Common learnings
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3581
File: src/components/chip-set/chip-set.tsx:626-626
Timestamp: 2025-07-02T12:49:21.522Z
Learning: When contributors add new props to existing components in the lime-elements repository, they should always add documentation examples that demonstrate the new prop's usage and explain how it works. This helps with user adoption, feature discoverability, and maintains comprehensive documentation.
📚 Learning: 2025-04-16T14:14:18.253Z
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-16T14:14:18.253Z
Learning: For lime-elements, example files should be self-contained and avoid importing internal implementation details. Example files should only import public exports from 'limetech/lime-elements' or use relative imports for other files within the examples folder. Duplicating simple type definitions in example files is preferred over importing internal types.

Applied to files:

  • src/components/list/list.tsx
📚 Learning: 2025-03-04T14:27:29.714Z
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/inserter.ts:1-11
Timestamp: 2025-03-04T14:27:29.714Z
Learning: In example components (typically found in `src/components/*/examples/`), imports of lime-elements exports should use `limetech/lime-elements` instead of relative paths. This is because example components aren't included in type declarations and are used in documentation to show developers how to properly use lime-elements components.

Applied to files:

  • src/components/list/list.tsx
📚 Learning: 2025-08-07T14:39:00.053Z
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3638
File: src/components/radio-button-group/radio-button-group.tsx:32-32
Timestamp: 2025-08-07T14:39:00.053Z
Learning: The `limel-radio-button-group` component uses `shadow: false` because it's a pure wrapper around `limel-list` with no component-specific styles, following the pattern of other wrapper components like `limel-action-bar-overflow-menu`.

Applied to files:

  • src/components/list/list.tsx
  • src/components/list/examples/list-radio-button-icons.tsx
📚 Learning: 2025-08-12T14:01:27.846Z
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3638
File: src/components/radio-button-group/radio-button-group.tsx:91-91
Timestamp: 2025-08-12T14:01:27.846Z
Learning: The `limel-radio-button-group` component allows deselection of radio buttons (unlike native radio buttons), which improves UX by letting users leave questions unanswered, but diverges from standard radio button behavior expectations.

Applied to files:

  • src/components/list/list.tsx
  • src/components/list/examples/list-radio-button-icons.tsx
  • src/components/list/examples/list-checkbox-icons.tsx
📚 Learning: 2025-04-25T13:32:56.396Z
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.tsx:30-38
Timestamp: 2025-04-25T13:32:56.396Z
Learning: For StencilJS components in lime-elements, prefer using the `<Host>` element to wrap child elements in the render method instead of returning an array of elements, which eliminates the need for key attributes and follows StencilJS best practices.

Applied to files:

  • src/components/list/examples/list-badge-icons.tsx
📚 Learning: 2025-08-12T14:01:27.846Z
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3638
File: src/components/radio-button-group/radio-button-group.tsx:91-91
Timestamp: 2025-08-12T14:01:27.846Z
Learning: The `limel-radio-button-group` component has accessibility concerns because it uses `limel-list` for rendering, which doesn't follow WAI-ARIA APG keyboard navigation patterns for radio button groups. Arrow keys should move focus AND select in radio groups, but limel-list requires arrow keys to move focus, then Enter/Space to select.

Applied to files:

  • src/components/list/examples/list-radio-button-icons.tsx
🧬 Code Graph Analysis (5)
src/components/list/examples/list-badge-icons.tsx (4)
src/components/list/examples/list-radio-button-icons.tsx (1)
  • Component (12-135)
src/components/list/list.tsx (1)
  • Component (37-302)
src/components/list/examples/list-checkbox-icons.tsx (1)
  • Component (12-135)
src/components/list/examples/list-grid.tsx (1)
  • Component (15-69)
src/components/list/examples/list-selectable.tsx (1)
src/components/list/list-item.types.ts (1)
  • ListItem (11-71)
src/components/list/examples/list-radio-button-icons.tsx (1)
src/components/list/list-item.types.ts (1)
  • ListItem (11-71)
src/components/list/examples/list-checkbox-icons.tsx (1)
src/components/list/list-item.types.ts (1)
  • ListItem (11-71)
src/components/list/examples/list-action.tsx (1)
src/components/list/list-item.types.ts (1)
  • ListItem (11-71)
🪛 Biome (2.1.2)
src/components/list/examples/list-radio-button-icons.tsx

[error] 104-104: Missing key property for this element in iterable.

The order of the items may change, and having a key can help React identify which item was moved.
Check the React documentation.

(lint/correctness/useJsxKeyInIterable)

src/components/list/examples/list-checkbox-icons.tsx

[error] 104-104: Missing key property for this element in iterable.

The order of the items may change, and having a key can help React identify which item was moved.
Check the React documentation.

(lint/correctness/useJsxKeyInIterable)

src/components/list/examples/list-action.tsx

[error] 32-32: Missing key property for this element in iterable.

The order of the items may change, and having a key can help React identify which item was moved.
Check the React documentation.

(lint/correctness/useJsxKeyInIterable)


[error] 33-33: Missing key property for this element in iterable.

The order of the items may change, and having a key can help React identify which item was moved.
Check the React documentation.

(lint/correctness/useJsxKeyInIterable)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Docs / Publish Docs
  • GitHub Check: Test
  • GitHub Check: Build
🔇 Additional comments (10)
src/components/list/list.tsx (1)

28-28: Docs update aligns with new examples (good).

Replacing the removed checkbox/radio examples with limel-example-list-selectable here is consistent with the new example set introduced in this PR.

src/components/list/examples/list-primary-component.tsx (1)

39-43: Good example of ordering the primary component.

Explicitly demonstrating style: { order: 3 } together with size: 'small' clearly shows how placement and sizing can be customized.

src/components/list/examples/list-selectable.tsx (3)

41-42: Nice touch adding a disabled item to illustrate behavior.

Demonstrates disabled-state interaction clearly for documentation readers.


45-47: Useful reactive “last event” display.

Good addition to make the example interactive and self-explanatory.


50-60: Correct use of Host when returning multiple elements.

Wrapping in <Host> adheres to our Stencil pattern and avoids array returns.

src/components/list/examples/list-badge-icons.tsx (2)

66-78: Good interactive example and correct Host usage.

Binding badgeIcons to UI controls makes the behavior tangible and follows our examples’ pattern.


81-84: Event handling is correct.

Stopping propagation on the example control avoids unintended side effects.

src/components/list/examples/list-radio-button-icons.tsx (2)

7-10: Radio-list docs addition is clear and accurate.

Nicely explains the single-selection behavior when type="radio".


125-134: Icon toggle logic is sound.

Restoring from a cached originalIcons map avoids mutating source data and keeps the example predictable.

src/components/list/examples/list-checkbox-icons.tsx (1)

80-84: Icon toggling and caching approach looks good

Good use of local cache keyed by value and immutably updating items. This keeps example logic simple and predictable.

Also applies to: 89-93

Comment on lines +37 to +47
private onSelectAction = (event: LimelListCustomEvent<ListItem>) => {
const detail = event.detail as any;
const valuePart =
detail && 'value' in detail ? `, value: ${detail.value}` : '';
this.lastEvent = `Executing action: ${detail?.text ?? 'unknown'}${valuePart}`;
};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Narrow the event/detail types and drop the any-cast

Use the generic for the list item value type and rely on optional chaining for value/text.

-    private onSelectAction = (event: LimelListCustomEvent<ListItem>) => {
-        const detail = event.detail as any;
-        const valuePart =
-            detail && 'value' in detail ? `, value: ${detail.value}` : '';
-        this.lastEvent = `Executing action: ${detail?.text ?? 'unknown'}${valuePart}`;
-    };
+    private onSelectAction = (
+        event: LimelListCustomEvent<ListItem<number>>,
+    ) => {
+        const detail = event.detail;
+        const valuePart =
+            typeof detail?.value !== 'undefined' ? `, value: ${detail.value}` : '';
+        this.lastEvent = `Executing action: ${detail?.text ?? 'unknown'}${valuePart}`;
+    };
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
private onSelectAction = (event: LimelListCustomEvent<ListItem>) => {
const detail = event.detail as any;
const valuePart =
detail && 'value' in detail ? `, value: ${detail.value}` : '';
this.lastEvent = `Executing action: ${detail?.text ?? 'unknown'}${valuePart}`;
};
private onSelectAction = (
event: LimelListCustomEvent<ListItem<number>>,
) => {
const detail = event.detail;
const valuePart =
typeof detail?.value !== 'undefined' ? `, value: ${detail.value}` : '';
this.lastEvent = `Executing action: ${detail?.text ?? 'unknown'}${valuePart}`;
};
🤖 Prompt for AI Agents
In src/components/list/examples/list-action.tsx around lines 37 to 42, the
handler currently casts event.detail to any; replace that with the proper
LimelListCustomEvent<ListItem<T>> generic (or the concrete
ListItem<string|number|...> type used here) so event is strongly typed, remove
the any-cast, and read detail using optional chaining (e.g. event.detail?.text
and event.detail?.value) when building the lastEvent string; ensure the handler
signature uses the generic event type and update value/text checks to rely on
optional chaining instead of the 'in' operator.

@Lundalogik Lundalogik deleted a comment from coderabbitai bot Aug 20, 2025
@Lundalogik Lundalogik deleted a comment from coderabbitai bot Aug 20, 2025
@Kiarokh Kiarokh force-pushed the improve-list-docs branch from c1eb752 to 8dcc0ad Compare August 20, 2025 15:28
This will also make it easier to test the implementation of
the new `limel-list-item` component later.
@Kiarokh Kiarokh force-pushed the improve-list-docs branch from c5da3f6 to 4303cef Compare August 20, 2025 15:30
@Lundalogik Lundalogik deleted a comment from coderabbitai bot Aug 20, 2025
@Lundalogik Lundalogik deleted a comment from coderabbitai bot Aug 20, 2025
@Lundalogik Lundalogik deleted a comment from coderabbitai bot Aug 20, 2025
@Lundalogik Lundalogik deleted a comment from coderabbitai bot Aug 20, 2025
@Kiarokh Kiarokh merged commit 8226bae into main Aug 21, 2025
12 checks passed
@Kiarokh Kiarokh deleted the improve-list-docs branch August 21, 2025 07:59
@lime-opensource
Copy link
Collaborator

🎉 This PR is included in version 38.22.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

@coderabbitai coderabbitai bot mentioned this pull request Dec 8, 2025
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants