Skip to content

Make our docs more attractive for developers and consumers #3607

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jul 16, 2025

Conversation

Kiarokh
Copy link
Contributor

@Kiarokh Kiarokh commented Jul 10, 2025

image

Summary by CodeRabbit

  • Documentation
    • Completely revamped the README for improved clarity, structure, and visual appeal.
    • Added a prominent logo, concise tagline, and a new section outlining key features.
    • Enhanced sponsorship and project status information with logos and organized badges.
    • Introduced a "Quick Start" guide with installation, usage examples, and playground link.
    • Expanded and reorganized sections for community support, contributing, and licensing.
    • Reformatted the main HTML documentation page with enriched metadata and improved semantic structure for better SEO and social media integration.
    • Added a new comprehensive CSS stylesheet for the documentation index page, providing consistent, accessible, and responsive styling with detailed control over colors, typography, layout, and interactive states.
    • Improved version navigation with categorized, searchable version lists and dynamic filtering for easier access to releases and previews.
    • Removed introductory documentation file and updated guide structure accordingly.
    • Updated documentation publishing process to include new stylesheet and adjusted file handling for versioned docs.
    • ESLint configuration updated to exclude generated documentation output from linting.

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

@Kiarokh Kiarokh added the docs Documentation that's missing or needs improvement label Jul 10, 2025
Copy link

coderabbitai bot commented Jul 10, 2025

📝 Walkthrough

Walkthrough

The README.md file was extensively revised to improve its clarity, structure, and visual presentation. New sections, badges, and branding elements were added, along with reorganized content, enhanced installation instructions, and expanded community and support information. No code or exported entities were changed; all modifications are documentation-only.

The docs-index.html file was completely restructured and enhanced with richer metadata, improved semantic markup, a categorized and searchable version listing UI, and rewritten JavaScript logic for version sorting and filtering.

A new CSS stylesheet, docs-index.css, was added to define a comprehensive design system and styling rules for the documentation index page, including color schemes, layout, typography, and interactive states.

The file src/index.md was deleted, and references to it were removed from the guides configuration and publishing scripts. The publishing script was updated to no longer perform version string replacements in the deleted file and adjusted to reset fewer files during teardown.

The ESLint configuration was updated to globally ignore the docsDist directory.

Changes

File(s) Change Summary
README.md Completely rewritten and expanded: added new sections (Why Lime Elements?, Quick Start, License), reorganized badges, enhanced branding and sponsorship info, improved installation and usage instructions, and expanded community, support, and contributing guidance.
docs-index.html Fully restructured HTML and JavaScript: added rich meta tags, semantic markup, categorized and searchable version lists with dynamic filtering and sorting, and improved UI layout.
docs-index.css New CSS stylesheet added defining root variables, global styles, color schemes, layout, typography, and interactive styling for the documentation index page.
src/index.md Deleted the main introductory documentation file for Lime Elements.
src/guides.ts Removed 'src/index.md' from the Home guide section's children array.
publish-docs.cjs Removed version string replacement in src/index.md during build; adjusted teardown to reset fewer files, excluding src/index.md; updated copying to include docs-index.css.
eslint.config.mjs Added "docsDist" directory to the global ignore patterns to exclude it from linting.

Suggested labels

visual design, maintenance

Suggested reviewers

  • Kiarokh

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

npm error Exit handler never called!
npm error This is an error with npm itself. Please report this error at:
npm error https://github.com/npm/cli/issues
npm error A complete log of this run can be found in: /.npm/_logs/2025-07-16T15_36_59_476Z-debug-0.log


📜 Recent review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between d9e96ee and b495501.

📒 Files selected for processing (6)
  • docs-index.css (1 hunks)
  • docs-index.html (1 hunks)
  • eslint.config.mjs (1 hunks)
  • guides.ts (1 hunks)
  • publish-docs.cjs (2 hunks)
  • src/index.md (0 hunks)
💤 Files with no reviewable changes (1)
  • src/index.md
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx}

Instructions used from:

Sources:
⚙️ CodeRabbit Configuration File

🧠 Learnings (4)
📓 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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
eslint.config.mjs (5)
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.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/inserter.ts:1-11
Timestamp: 2025-03-04T13:48:44.712Z
Learning: The lime-elements codebase must use relative imports (even with multiple "../") rather than alias imports or re-exports because they export types to `<repo-root>/dist/types`. Using non-relative imports breaks type generation as import paths from generated type files point to full .ts files rather than .d.ts files.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
docs-index.html (14)
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3607
File: docs-index.html:0-0
Timestamp: 2025-07-16T13:28:26.790Z
Learning: When suggesting script optimizations like adding `defer` or `async` attributes, always analyze the entire HTML file to check for dependencies between external scripts and inline scripts. Scripts loaded with `defer` execute after DOM parsing but before DOMContentLoaded, which can break synchronous dependencies with inline scripts that expect variables to be immediately available.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3588
File: src/components/collapsible-section/collapsible-section.tsx:260-270
Timestamp: 2025-06-24T14:04:52.699Z
Learning: When handling missing content in aria-labels for collapsible/expandable UI components, provide a meaningful fallback rather than omitting the aria-label entirely. Screen reader users benefit from understanding the button's core functionality ("Open section" / "Close section") even when specific content identifiers are missing, as this helps them navigate imperfect interfaces.
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.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3579
File: src/components/collapsible-section/collapsible-section.tsx:199-203
Timestamp: 2025-06-10T12:19:51.990Z
Learning: In Lime Elements codebase, components consistently use randomly generated IDs (via `createRandomString()`) for HTML elements even within shadow DOM, despite shadow DOM providing ID isolation. This pattern is maintained for consistency, accessibility robustness, future-proofing, and better development experience.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/chip-set/chip-set.tsx:367-385
Timestamp: 2025-04-14T12:22:22.298Z
Learning: In limel-chip-set, the onClick handler should be placed on the content div (<div slot="content">) rather than on the limel-notched-outline component, and should only be applied when type is 'input'.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
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.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3607
File: docs-index.html:0-0
Timestamp: 2025-07-16T13:28:26.790Z
Learning: Before suggesting any code changes as "safe," thoroughly analyze the entire codebase context, including dependencies, usage patterns, and potential side effects. What appears to be a simple performance optimization might break existing functionality due to execution order or timing dependencies.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/inserter.ts:1-11
Timestamp: 2025-03-04T13:48:44.712Z
Learning: The lime-elements codebase must use relative imports (even with multiple "../") rather than alias imports or re-exports because they export types to `<repo-root>/dist/types`. Using non-relative imports breaks type generation as import paths from generated type files point to full .ts files rather than .d.ts files.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
docs-index.css (9)
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3588
File: src/components/collapsible-section/collapsible-section.tsx:260-270
Timestamp: 2025-06-24T14:04:52.699Z
Learning: When handling missing content in aria-labels for collapsible/expandable UI components, provide a meaningful fallback rather than omitting the aria-label entirely. Screen reader users benefit from understanding the button's core functionality ("Open section" / "Close section") even when specific content identifiers are missing, as this helps them navigate imperfect interfaces.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/chip-set/chip-set.tsx:367-385
Timestamp: 2025-04-14T12:22:22.298Z
Learning: In limel-chip-set, the onClick handler should be placed on the content div (<div slot="content">) rather than on the limel-notched-outline component, and should only be applied when type is 'input'.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:24-28
Timestamp: 2025-04-25T14:22:02.157Z
Learning: In lime-elements, CSS custom properties follow a specific naming convention:
1. Internal use variables (not for consumers) are prefixed with `--limel-component-name-`
2. External use variables (intended for consumers) are prefixed with `--component-name-`
Variables documented with JSDoc comments are typically meant for external use.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3529
File: src/components/ai-avatar/ai-avatar.scss:20-22
Timestamp: 2025-04-29T14:15:32.104Z
Learning: In components using Shadow DOM (like those in lime-elements), the universal selector `*` is already scoped to the component's shadow tree and won't cause unwanted side effects outside the component. There's no functional difference between `*` and `:host *` in this context.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
⏰ 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 (14)
guides.ts (1)

6-6: Clean removal of deleted documentation file.

The removal of 'src/index.md' from the children array is consistent with the documentation restructuring described in the PR summary. This change maintains the guides structure while removing the reference to the deleted file.

eslint.config.mjs (1)

5-5: Appropriate addition of generated docs directory to ESLint ignore list.

Adding docsDist to the global ignores correctly excludes generated documentation assets from linting, which is a best practice for build output directories.

publish-docs.cjs (3)

234-245: Proper handling of new CSS asset in documentation build.

The addition of docs-index.css to the copy operation maintains consistency with the existing pattern and includes appropriate error handling with warning messages.


249-267: Consistent asset copying for root documentation directory.

The parallel copying of both HTML and CSS files to the root docs directory maintains the same error handling pattern and ensures the new stylesheet is available at the expected location.


434-434: Correct removal of deleted file from teardown process.

Removing src/index.md from the git checkout command is appropriate since the file has been deleted as part of the documentation restructuring.

docs-index.css (3)

1-106: Well-structured CSS design system with comprehensive theming.

The CSS variables and theming system is well-organized, providing consistent colors, shadows, and transitions. The light/dark mode support via media queries is implemented correctly with proper contrast adjustments.


172-225: Excellent interactive design for navigation elements.

The quick-link styles with proper hover states, transitions, and focus-visible support demonstrate good attention to user experience and accessibility for interactive elements.


319-396: Comprehensive version link styling with proper categorization.

The version link styles effectively differentiate between latest, preview, and stable versions while maintaining consistent interaction patterns. The use of monospace fonts for version numbers is appropriate.

docs-index.html (6)

1-95: Comprehensive HTML structure with excellent SEO and accessibility foundations.

The document structure includes proper metadata, Open Graph tags, accessibility considerations, and performance optimizations like preconnect hints. The semantic HTML with proper meta tags significantly improves the documentation's discoverability and usability.


97-216: Well-structured main content with semantic landmarks.

The main content area uses proper semantic HTML elements, includes accessible navigation with aria-labels, and provides a clear hierarchy of information. The quick links and version categories are well-organized for user experience.


220-253: Robust version sorting logic with proper semantic versioning handling.

The sorting function correctly handles both stable and pre-release versions using Intl.Collator with numeric comparison, which is more reliable than manual string parsing. The logic for handling pre-release precedence is sound.


255-305: Logical version categorization with proper container management.

The categorization logic effectively separates versions into meaningful groups (latest, stable, preview) with appropriate CSS class assignment. The error handling for missing containers is good defensive programming.


315-351: Effective search functionality with category visibility management.

The search implementation provides real-time filtering with proper event handling and maintains category visibility based on filtered results. The approach of checking inline styles for visibility is appropriate for this use case.


353-376: Proper initialization with fallback handling.

The dual initialization approach (DOMContentLoaded + readyState check) ensures the functionality works regardless of when the script executes, with appropriate error handling for missing data.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch improve-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. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • 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 src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

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

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

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.

Documentation and Community

  • 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.

Copy link

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

@Kiarokh Kiarokh force-pushed the improve-docs branch 5 times, most recently from a5a0a8e to 17883fa Compare July 10, 2025 15:04
@Kiarokh Kiarokh marked this pull request as ready for review July 10, 2025 15:08
@Copilot Copilot AI review requested due to automatic review settings July 10, 2025 15:08
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR refactors and enriches the project’s README to make it more visually engaging and developer-friendly by introducing a branded header, clearer feature highlights, and streamlined setup instructions.

  • Adds an inline logo and succinct tagline to the header
  • Introduces a “Why Lime Elements?” feature overview and consolidated status badges
  • Refreshes Quick Start, Community & Support, and Contributing sections for clarity
Comments suppressed due to low confidence (1)

README.md:51

  • The import example deep-paths into the package build. For typical usage and future-proofing, consider importing from the package’s main entrypoint (import '@limetech/lime-elements') to simplify updates and align with standard NPM practices.
import '@limetech/lime-elements/dist/lime-elements/lime-elements.esm.js';

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: 2

♻️ Duplicate comments (1)
README.md (1)

1-1: Inline HTML logo repeats past concern – still a portability issue
Inline <img> with a style= attribute is flagged by markdown-lint (MD033) and may be stripped or rendered inconsistently outside GitHub. The same issue was pointed out in an earlier review. Consider the plain-markdown alternative:

-# <img src="https://raw.githubusercontent.com/Lundalogik/lime-elements/main/icon.png" alt="Lime Elements Logo" style="width: 2.5rem; vertical-align: middle;"> Lime Elements
+# ![Lime Elements Logo](https://raw.githubusercontent.com/Lundalogik/lime-elements/main/icon.png) Lime Elements
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 22ca4c2 and a5d2a78.

📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
README.md (13)
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.
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.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/inserter.ts:1-11
Timestamp: 2025-03-04T13:48:44.712Z
Learning: The lime-elements codebase must use relative imports (even with multiple "../") rather than alias imports or re-exports because they export types to `<repo-root>/dist/types`. Using non-relative imports breaks type generation as import paths from generated type files point to full .ts files rather than .d.ts files.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:24-28
Timestamp: 2025-04-25T14:22:02.157Z
Learning: In lime-elements, CSS custom properties follow a specific naming convention:
1. Internal use variables (not for consumers) are prefixed with `--limel-component-name-`
2. External use variables (intended for consumers) are prefixed with `--component-name-`
Variables documented with JSDoc comments are typically meant for external use.
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. This follows the standard pattern in the codebase and eliminates the need for key attributes.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:96-122
Timestamp: 2025-04-25T14:18:07.755Z
Learning: In Lime Elements components that use Shadow DOM (with `shadow: true` in the component decorator), keyframe animation names don't need to be namespaced as they are automatically scoped to the component and won't collide with animations from other components.
🪛 LanguageTool
README.md

[grammar] ~1-~1: Use correct spacing
Context: ... 2.5rem; vertical-align: middle;"> Lime Elements **Modern Web Components for Enterprise Ap...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ... Modern Web Components for Enterprise Applications _A comprehensive design system and compo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...system and component library built with Stencil_ --- ## Why Lime Elements? - 🚀 **Enterprise-R...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ...y built with Stencil_ --- ## Why Lime Elements? - 🚀 Enterprise-Ready - Battle-tested...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: There might be a mistake here.
Context: ...# Why Lime Elements? - 🚀 Enterprise-Ready - Battle-tested components used in product...

(QB_NEW_EN_OTHER)


[grammar] ~12-~12: There might be a mistake here.
Context: ...n production applications - 🎨 Design System - Consistent UX/UI design with comprehens...

(QB_NEW_EN_OTHER)


[typographical] ~12-~12: To join two clauses or set off examples, consider using an em dash.
Context: ...n applications - 🎨 Design System - Consistent UX/UI design with comprehensive usage g...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~13-~13: There might be a mistake here.
Context: ...omprehensive usage guidelines - ⚡ Web Standards - Built with Stencil, works with any fram...

(QB_NEW_EN_OTHER)


[typographical] ~13-~13: To join two clauses or set off examples, consider using an em dash.
Context: ...sage guidelines - ⚡ Web Standards - Built with Stencil, works with any framework ...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~14-~14: There might be a problem here.
Context: ...ith Stencil, works with any framework - 👾 TypeScript - Full type safety and excellent developer...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~15-~15: There might be a problem here.
Context: ...ty and excellent developer experience - ♿ Accessible - Built with accessibility in mind - ⚙️ **...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~16-~16: There might be a mistake here.
Context: ...Built with accessibility in mind - ⚙️ Customizable - Extensive styling options --- Spo...

(QB_NEW_EN_OTHER)


[grammar] ~16-~16: Use correct spacing
Context: ...⚙️ Customizable - Extensive styling options --- Sponsored by <img src="https://www.lime...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~20-~20: Use correct spacing
Context: ...alable, and accessible web applications faster. Whether you're building from scratch or...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~22-~22: Use correct spacing
Context: ...experiences that work across all modern frameworks. Visit our [📚 Documentation](https:...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~24-~24: Use correct spacing
Context: ... examples, or install directly from 📦 NPM. ### Project Status [![Version](https://img...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~26-~26: There might be a problem here.
Context: .../@limetech/lime-elements). ### Project Status Version semantic-release [![npm downloads](https://img.shields.i...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~30-~30: There might be a problem here.
Context: ...@limetech/lime-elements) ### Quality & Reliability Build Status [![Quality Gate Status](https://sonarcloud.io/api/...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~32-~32: Use correct spacing
Context: ...a.com/result?p=@limetech/lime-elements) Known Vulnerabilities Dependencies ### Technology & Standards [![TypeScript]...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~34-~34: There might be a problem here.
Context: ...alogik/lime-elements) ### Technology & Standards TypeScript Stencil Web Components [![License](https://img.shields.io/bad...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~38-~38: There might be a problem here.
Context: ...g/licenses/Apache-2.0) ### Community & Activity GitHub stars [![GitHub issues](https://img.shields.io/github/i...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~40-~40: Use correct spacing
Context: ...ub.com/Lundalogik/lime-elements/issues) GitHub pull requests Commits --- ## Quick Start ```bash # Install the pack...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~44-~44: Use correct spacing
Context: .../graphs/commit-activity) --- ## Quick Start bash # Install the package npm install @limetech/lime-elements # Import and use in your project import '@limetech/lime-elements/dist/lime-elements/lime-elements.esm.js'; html <!-- Use components in your HTML --> <limel-input-field label="Name" placeholder="Enter your full name" ></limel-input-field> <limel-button primary="true" label="Submit"></limel-button> **[Try it live in our playground](https://...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~63-~63: There might be a mistake here.
Context: ...imel-button> ``` Try it live in our playground --- ## Getting Started - To install, run `npm...

(QB_NEW_EN_OTHER)


[grammar] ~67-~67: Use correct spacing
Context: .../versions/latest/#/)** --- ## Getting Started - To install, run `npm install @limetech/...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~69-~69: There might be a problem here.
Context: ... ## Getting Started - To install, run npm install @limetech/lime-elements. ### Requirements #### 1. Font To achieve a blazing fast rend...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~97-~97: Use correct spacing
Context: ...displayed as a leading icon on an input field. If you're using Lime Elements in a non-...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~99-~99: Use correct spacing
Context: ...ssets with our package due to licensing restrictions. Providing your own icons is crucial as ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~101-~101: There might be a mistake here.
Context: ...trictions. Providing your own icons is crucial as many of our components use an Icon...

(QB_NEW_EN_OTHER)


[grammar] ~101-~101: Use correct spacing
Context: ...ou can use this to display an icon on a button. ##### How to Set Up Your Icons Folder - **Fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~103-~103: Use correct spacing
Context: ...button. ##### How to Set Up Your Icons Folder - For Lime products: To use `@lu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~105-~105: Use correct spacing
Context: ...et Up Your Icons Folder - For Lime products: To use @lundalogik/lime-icons8, the `...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~107-~107: Use hyphens correctly
Context: ...e-icons8` must be made available on the web-server. - For non-Lime products: To...

(QB_NEW_EN_OTHER_ERROR_IDS_29)


[grammar] ~109-~109: Use correct spacing
Context: ... on the web-server. - For non-Lime products: To use a different icon set, the icons ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~141-~141: Use correct spacing
Context: ...d without warning. --- ## Community & Support - 💬 Questions? [create an issue](htt...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~146-~146: Use correct spacing
Context: ...ents/blob/main/CHANGELOG.md) for latest updates --- ## Contributing We welcome contributions f...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~152-~152: Use correct spacing
Context: ... from the community! Here's how you can help: - 🔍 Found an issue? Feel free to fix...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~154-~154: There might be a mistake here.
Context: ...sue?** Feel free to fix it and submit a PR - 📝 Improve docs? Documentation im...

(QB_NEW_EN_OTHER)


[grammar] ~155-~155: There might be a mistake here.
Context: ...* Documentation improvements are always appreciated - 🎨 Design feedback? Share your UX...

(QB_NEW_EN_OTHER)


[grammar] ~156-~156: There might be a mistake here.
Context: ...- 🎨 Design feedback? Share your UX insights - 🧪 Testing? Help us test new feat...

(QB_NEW_EN_OTHER)


[grammar] ~157-~157: There might be a mistake here.
Context: ...** Help us test new features and report bugs Quick setup: ```bash git clone https...

(QB_NEW_EN_OTHER)


[grammar] ~159-~159: Use correct spacing
Context: ...t new features and report bugs Quick setup: bash git clone https://github.com/Lundalogik/lime-elements.git cd lime-elements npm install npm start # Starts local development server 📋 **[Read our full contributing guidel...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~168-~168: Use correct spacing
Context: ...r ``` 📋 Read our full contributing guidelines --- ## 📄 License Lime Elements is open sourc...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~172-~172: Use correct spacing
Context: ...lob/main/CONTRIBUTING.md)** --- ## 📄 License Lime Elements is open source software l...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~174-~174: Use hyphens correctly
Context: ...* --- ## 📄 License Lime Elements is open source software licensed under the [Apac...

(QB_NEW_EN_OTHER_ERROR_IDS_29)


[grammar] ~174-~174: Use correct spacing
Context: ...software licensed under the Apache 2.0 License. ---

**Built with ❤️ by your friends at [Lime ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~180-~180: There might be a problem here.
Context: ...r"> Built with ❤️ by your friends at Lime Technologies _Empowering developers to create amazing...

(QB_NEW_EN_MERGED_MATCH)


[style] ~182-~182: Consider using a more formal and expressive alternative to ‘amazing’.
Context: ...m/)** Empowering developers to create amazing user experiences [⭐ Star us on GitHub...

(AWESOME)


[grammar] ~182-~182: Use correct spacing
Context: ...ering developers to create amazing user experiences_ [⭐ Star us on GitHub](https://github.com...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~184-~184: Use correct spacing
Context: ...dalogik.github.io/lime-elements/) • 📦 NPM

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🪛 markdownlint-cli2 (0.17.2)
README.md

1-1: Inline HTML
Element: img

(MD033, no-inline-html)


3-3: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


5-5: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


20-20: Inline HTML
Element: img

(MD033, no-inline-html)


178-178: Inline HTML
Element: div

(MD033, no-inline-html)


182-182: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

⏰ 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 (1)
README.md (1)

123-125: <limel-config> example mixes JSX with plain HTML
config={{iconPath: '/my/parent/path/'}} is JSX syntax and will not parse in a markup file. For an HTML snippet, encode the JSON and quote it, e.g.

<limel-config config='{"iconPath":"/my/parent/path/"}'></limel-config>

(or show the JSX version explicitly inside a TSX block).

@Kiarokh

This comment was marked as resolved.

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: 3

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between a5d2a78 and f3cfdd1.

📒 Files selected for processing (1)
  • docs-index.html (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
docs-index.html (10)
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
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.
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.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/inserter.ts:1-11
Timestamp: 2025-03-04T13:48:44.712Z
Learning: The lime-elements codebase must use relative imports (even with multiple "../") rather than alias imports or re-exports because they export types to `<repo-root>/dist/types`. Using non-relative imports breaks type generation as import paths from generated type files point to full .ts files rather than .d.ts files.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3579
File: src/components/collapsible-section/collapsible-section.tsx:199-203
Timestamp: 2025-06-10T12:19:51.990Z
Learning: In Lime Elements codebase, components consistently use randomly generated IDs (via `createRandomString()`) for HTML elements even within shadow DOM, despite shadow DOM providing ID isolation. This pattern is maintained for consistency, accessibility robustness, future-proofing, and better development experience.
⏰ 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). (5)
  • GitHub Check: Docs / Publish Docs
  • GitHub Check: Test
  • GitHub Check: Build
  • GitHub Check: Lint
  • GitHub Check: SonarCloud

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: 1

♻️ Duplicate comments (3)
docs-index.html (3)

90-92: Avoid render-blocking by adding defer to the versions.js script
Same observation as in the previous review: this synchronous script blocks HTML parsing. Add defer (or move the tag to the end of <body>) to improve perceived load performance.

-        <script src="versions.js"></script>
+        <script src="versions.js" defer></script>

107-122: Version-sorting logic is still brittle & ignores full semver rules
The hand-rolled comparator breaks on pre-release tags (-alpha, -rc.0) and multi-digit patch numbers (10 vs 9). Replace it with Intl.Collator (numeric option) or a light semver parser to future-proof the list.


93-103: Add semantic landmarks (<main>, <nav>) for accessibility
Wrapping the main content in <main> and the version list in a labelled <nav> greatly improves keyboard navigation and screen-reader semantics while leaving the visual layout untouched.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between f3cfdd1 and 7830a4d.

📒 Files selected for processing (1)
  • docs-index.html (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
docs-index.html (14)
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3588
File: src/components/collapsible-section/collapsible-section.tsx:260-270
Timestamp: 2025-06-24T14:04:52.699Z
Learning: When handling missing content in aria-labels for collapsible/expandable UI components, provide a meaningful fallback rather than omitting the aria-label entirely. Screen reader users benefit from understanding the button's core functionality ("Open section" / "Close section") even when specific content identifiers are missing, as this helps them navigate imperfect interfaces.
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.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3579
File: src/components/collapsible-section/collapsible-section.tsx:199-203
Timestamp: 2025-06-10T12:19:51.990Z
Learning: In Lime Elements codebase, components consistently use randomly generated IDs (via `createRandomString()`) for HTML elements even within shadow DOM, despite shadow DOM providing ID isolation. This pattern is maintained for consistency, accessibility robustness, future-proofing, and better development experience.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/chip-set/chip-set.tsx:367-385
Timestamp: 2025-04-14T12:22:22.298Z
Learning: In limel-chip-set, the onClick handler should be placed on the content div (<div slot="content">) rather than on the limel-notched-outline component, and should only be applied when type is 'input'.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
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.
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.
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. This follows the standard pattern in the codebase and eliminates the need for key attributes.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/inserter.ts:1-11
Timestamp: 2025-03-04T13:48:44.712Z
Learning: The lime-elements codebase must use relative imports (even with multiple "../") rather than alias imports or re-exports because they export types to `<repo-root>/dist/types`. Using non-relative imports breaks type generation as import paths from generated type files point to full .ts files rather than .d.ts files.
⏰ 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). (5)
  • GitHub Check: Docs / Publish Docs
  • GitHub Check: Test
  • GitHub Check: Lint
  • GitHub Check: Build
  • GitHub Check: SonarCloud

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: 2

♻️ Duplicate comments (3)
docs-index.html (3)

90-95: Still loading versions.js synchronously – add defer
Same nitpick as the previous review: the synchronous <script> blocks HTML parsing.

-        <script src="versions.js"></script>
+        <script src="versions.js" defer></script>

64-70: Favicon SVG path will 404 on GitHub Pages

src/favicon.svg assumes a src/ folder is published. Move the asset next
to docs-index.html or fix the path; same for the external PNG that adds an
extra DNS/CORS hit.

-        <link rel="icon" type="image/svg+xml" href="src/favicon.svg" />
+        <link rel="icon" type="image/svg+xml" href="favicon.svg" />

…and host the PNG locally.


218-240: Version sorting still breaks on pre-releases & multi-digit patches

parseInt + manual compare ignores full SemVer rules (1.0.0-rc.0, 10.2.11 vs 10.2.3, etc.).
You already load JS; a lightweight fix keeps the file self-contained:

-            window.versions.sort(function (a, b) {
-                // Simple semantic version comparison
-                const parseVersion = (v) => {
-                    const parts = v.split('.');
-                    return {
-                        major: parseInt(parts[0]) || 0,
-                        minor: parseInt(parts[1]) || 0,
-                        patch: parseInt(parts[2]) || 0,
-                        full: v,
-                    };
-                };
-                const vA = parseVersion(a);
-                const vB = parseVersion(b);
-
-                if (vA.major !== vB.major) return vB.major - vA.major;
-                if (vA.minor !== vB.minor) return vB.minor - vA.minor;
-                if (vA.patch !== vB.patch) return vB.patch - vA.patch;
-
-                return b.localeCompare(a);
-            });
+            const collator = new Intl.Collator(undefined, {
+                numeric: true,
+                sensitivity: 'base',
+            });
+            window.versions.sort((a, b) => collator.compare(b, a));

Keeps <1 kB, handles pre-releases, and doesn’t require an external library.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 7830a4d and d5c0139.

📒 Files selected for processing (2)
  • docs-index.css (1 hunks)
  • docs-index.html (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
docs-index.html (13)
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3588
File: src/components/collapsible-section/collapsible-section.tsx:260-270
Timestamp: 2025-06-24T14:04:52.699Z
Learning: When handling missing content in aria-labels for collapsible/expandable UI components, provide a meaningful fallback rather than omitting the aria-label entirely. Screen reader users benefit from understanding the button's core functionality ("Open section" / "Close section") even when specific content identifiers are missing, as this helps them navigate imperfect interfaces.
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.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3579
File: src/components/collapsible-section/collapsible-section.tsx:199-203
Timestamp: 2025-06-10T12:19:51.990Z
Learning: In Lime Elements codebase, components consistently use randomly generated IDs (via `createRandomString()`) for HTML elements even within shadow DOM, despite shadow DOM providing ID isolation. This pattern is maintained for consistency, accessibility robustness, future-proofing, and better development experience.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/chip-set/chip-set.tsx:367-385
Timestamp: 2025-04-14T12:22:22.298Z
Learning: In limel-chip-set, the onClick handler should be placed on the content div (<div slot="content">) rather than on the limel-notched-outline component, and should only be applied when type is 'input'.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
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. This follows the standard pattern in the codebase and eliminates the need for key attributes.
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.
docs-index.css (8)
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:24-28
Timestamp: 2025-04-25T14:22:02.157Z
Learning: In lime-elements, CSS custom properties follow a specific naming convention:
1. Internal use variables (not for consumers) are prefixed with `--limel-component-name-`
2. External use variables (intended for consumers) are prefixed with `--component-name-`
Variables documented with JSDoc comments are typically meant for external use.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3529
File: src/components/ai-avatar/ai-avatar.scss:20-22
Timestamp: 2025-04-29T14:15:32.104Z
Learning: In components using Shadow DOM (like those in lime-elements), the universal selector `*` is already scoped to the component's shadow tree and won't cause unwanted side effects outside the component. There's no functional difference between `*` and `:host *` in this context.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:96-122
Timestamp: 2025-04-25T14:18:07.755Z
Learning: In Lime Elements components that use Shadow DOM (with `shadow: true` in the component decorator), keyframe animation names don't need to be namespaced as they are automatically scoped to the component and won't collide with animations from other components.
⏰ 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

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: 3

♻️ Duplicate comments (4)
docs-index.css (1)

119-131: Focus outline removed without replacement – still violates WCAG 2.1 (2.4.7)

a:focus { outline: none; } erases the only keyboard-visible focus cue for plain links. Unless every anchor receives an alternative focus style (they don’t), this is an accessibility regression already flagged previously.
Please either drop the rule or add a visible replacement (e.g. a 2 px outline/border).

docs-index.html (2)

64-74: src/favicon.svg likely 404s on GitHub Pages

The page is served from the repo root, not /src. Unless src/ is published alongside the page the SVG will fail to load, causing an extra request for the PNG fallback.

-<link rel="icon" type="image/svg+xml" href="src/favicon.svg" />
+<link rel="icon" type="image/svg+xml" href="favicon.svg" />

220-240: Version-sorting still breaks on pre-releases & multi-digit patches

The new numeric parser (parseInt(parts[2])) treats 38.13.2-dev.1 as patch = 0 and cannot differentiate 10 vs 9. The earlier review already suggested using Intl.Collator or a lightweight semver parser for reliable ordering.

README.md (1)

46-55: Example still couples consumers to internal bundle path

Using dist/lime-elements/lime-elements.esm.js ties users to our private build layout and skips the tree-shakable loader.

-<script type="module" src="https://cdn.jsdelivr.net/npm/@limetech/lime-elements@latest/dist/lime-elements/lime-elements.esm.js"></script>
+<script type="module" src="https://cdn.jsdelivr.net/npm/@limetech/lime-elements@latest/loader/index.esm.js"></script>
+<!-- or, for vanilla projects -->
+import { defineCustomElements } from 'https://cdn.jsdelivr.net/npm/@limetech/lime-elements@latest/loader/index.esm.js';
+defineCustomElements();

This follows Stencil’s recommended pattern and survives future packaging changes.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between ef2006f and e669d8b.

📒 Files selected for processing (3)
  • README.md (3 hunks)
  • docs-index.css (1 hunks)
  • docs-index.html (1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
docs-index.css (10)
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3588
File: src/components/collapsible-section/collapsible-section.tsx:260-270
Timestamp: 2025-06-24T14:04:52.699Z
Learning: When handling missing content in aria-labels for collapsible/expandable UI components, provide a meaningful fallback rather than omitting the aria-label entirely. Screen reader users benefit from understanding the button's core functionality ("Open section" / "Close section") even when specific content identifiers are missing, as this helps them navigate imperfect interfaces.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/chip-set/chip-set.tsx:367-385
Timestamp: 2025-04-14T12:22:22.298Z
Learning: In limel-chip-set, the onClick handler should be placed on the content div (<div slot="content">) rather than on the limel-notched-outline component, and should only be applied when type is 'input'.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:24-28
Timestamp: 2025-04-25T14:22:02.157Z
Learning: In lime-elements, CSS custom properties follow a specific naming convention:
1. Internal use variables (not for consumers) are prefixed with `--limel-component-name-`
2. External use variables (intended for consumers) are prefixed with `--component-name-`
Variables documented with JSDoc comments are typically meant for external use.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3529
File: src/components/ai-avatar/ai-avatar.scss:20-22
Timestamp: 2025-04-29T14:15:32.104Z
Learning: In components using Shadow DOM (like those in lime-elements), the universal selector `*` is already scoped to the component's shadow tree and won't cause unwanted side effects outside the component. There's no functional difference between `*` and `:host *` in this context.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:96-122
Timestamp: 2025-04-25T14:18:07.755Z
Learning: In Lime Elements components that use Shadow DOM (with `shadow: true` in the component decorator), keyframe animation names don't need to be namespaced as they are automatically scoped to the component and won't collide with animations from other components.
README.md (14)
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.
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.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/inserter.ts:1-11
Timestamp: 2025-03-04T13:48:44.712Z
Learning: The lime-elements codebase must use relative imports (even with multiple "../") rather than alias imports or re-exports because they export types to `<repo-root>/dist/types`. Using non-relative imports breaks type generation as import paths from generated type files point to full .ts files rather than .d.ts files.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:24-28
Timestamp: 2025-04-25T14:22:02.157Z
Learning: In lime-elements, CSS custom properties follow a specific naming convention:
1. Internal use variables (not for consumers) are prefixed with `--limel-component-name-`
2. External use variables (intended for consumers) are prefixed with `--component-name-`
Variables documented with JSDoc comments are typically meant for external use.
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. This follows the standard pattern in the codebase and eliminates the need for key attributes.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/chip-set/chip-set.tsx:367-385
Timestamp: 2025-04-14T12:22:22.298Z
Learning: In limel-chip-set, the onClick handler should be placed on the content div (<div slot="content">) rather than on the limel-notched-outline component, and should only be applied when type is 'input'.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:96-122
Timestamp: 2025-04-25T14:18:07.755Z
Learning: In Lime Elements components that use Shadow DOM (with `shadow: true` in the component decorator), keyframe animation names don't need to be namespaced as they are automatically scoped to the component and won't collide with animations from other components.
docs-index.html (12)
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3588
File: src/components/collapsible-section/collapsible-section.tsx:260-270
Timestamp: 2025-06-24T14:04:52.699Z
Learning: When handling missing content in aria-labels for collapsible/expandable UI components, provide a meaningful fallback rather than omitting the aria-label entirely. Screen reader users benefit from understanding the button's core functionality ("Open section" / "Close section") even when specific content identifiers are missing, as this helps them navigate imperfect interfaces.
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.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3579
File: src/components/collapsible-section/collapsible-section.tsx:199-203
Timestamp: 2025-06-10T12:19:51.990Z
Learning: In Lime Elements codebase, components consistently use randomly generated IDs (via `createRandomString()`) for HTML elements even within shadow DOM, despite shadow DOM providing ID isolation. This pattern is maintained for consistency, accessibility robustness, future-proofing, and better development experience.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/chip-set/chip-set.tsx:367-385
Timestamp: 2025-04-14T12:22:22.298Z
Learning: In limel-chip-set, the onClick handler should be placed on the content div (<div slot="content">) rather than on the limel-notched-outline component, and should only be applied when type is 'input'.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
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. This follows the standard pattern in the codebase and eliminates the need for key attributes.
🪛 LanguageTool
README.md

[grammar] ~1-~1: Use correct spacing
Context: ... 2.5rem; vertical-align: middle;"> Lime Elements **Modern Web Components for Enterprise App...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ... Modern Web Components for Enterprise Applications _A comprehensive design system and compon...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...system and component library built with Stencil_ --- ## Why Lime Elements? - 🚀 **Enterprise-Re...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ...y built with Stencil_ --- ## Why Lime Elements? - 🚀 Enterprise-Ready - Battle-tested ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~16-~16: Use correct spacing
Context: ...⚙️ Customizable - Extensive styling options --- Sponsored by <img src="https://www.lime-...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~20-~20: Use correct spacing
Context: ...alable, and accessible web applications faster. Whether you're building from scratch or ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~22-~22: Use correct spacing
Context: ...experiences that work across all modern frameworks. Visit our [📚 Documentation](https:/...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~24-~24: Use correct spacing
Context: ... examples, or install directly from 📦 NPM. ### Project Status [![Version](https://img....

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~26-~26: There might be a problem here.
Context: .../@limetech/lime-elements). ### Project Status Version semantic-release npm downloads ### Quality & Reliability [![Build Status](...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~30-~30: Use correct spacing
Context: ...@limetech/lime-elements) ### Quality & Reliability Build Status [![Quality Gate Status](https://sonarcl...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~32-~32: Use correct spacing
Context: ...a.com/result?p=@limetech/lime-elements) Known Vulnerabilities Dependencies ### Technology & Standards [![TypeScript](h...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~34-~34: Use correct spacing
Context: ...alogik/lime-elements) ### Technology & Standards TypeScript [![Stencil](https://img.shields.io/badg...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~36-~36: There might be a mistake here.
Context: ...iLz4KPC9zdmc+)](https://stenciljs.com/) Web Components [![License](https://img.shields.io/bad...

(QB_NEW_EN_OTHER)


[grammar] ~38-~38: Use correct spacing
Context: ...g/licenses/Apache-2.0) ### Community & Activity GitHub stars [![GitHub issues](https://img.shields.i...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~40-~40: Use correct spacing
Context: ...ub.com/Lundalogik/lime-elements/issues) GitHub pull requests Commits --- ## Quick Start ```html <!-- Load the packa...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~44-~44: Use correct spacing
Context: .../graphs/commit-activity) --- ## Quick Start html <!-- Load the package --> <script type="module" src="https://cdn.jsdelivr.net/npm/@limetech/lime-elements@latest/dist/lime-elements/lime-elements.esm.js"></script> <!-- Use components in your HTML --> <limel-input-field label="Name" placeholder="Enter your full name" ></limel-input-field> <limel-button primary label="Submit"></limel-button> **[Try it live in our playground](https://l...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~58-~58: There might be a mistake here.
Context: ...imel-button> ``` Try it live in our playground --- ## Getting Started - To install, run `npm ...

(QB_NEW_EN_OTHER)


[grammar] ~62-~62: Use correct spacing
Context: .../versions/latest/#/)** --- ## Getting Started - To install, run `npm install @limetech/l...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~64-~64: Use correct spacing
Context: ... ## Getting Started - To install, run npm install @limetech/lime-elements. ### Requirements #### 1. Font To achieve a...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~92-~92: Use correct spacing
Context: ...displayed as a leading icon on an input field. If you're using Lime Elements in a non-L...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~94-~94: Use correct spacing
Context: ...ssets with our package due to licensing restrictions. Providing your own icons is crucial as m...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~96-~96: Use correct spacing
Context: ...ou can use this to display an icon on a button. ##### How to Set Up Your Icons Folder - **For...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~98-~98: Use correct spacing
Context: ...button. ##### How to Set Up Your Icons Folder - For Lime products: To use `@lun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~100-~100: There might be a mistake here.
Context: ...et Up Your Icons Folder - For Lime products: To use @lundalogik/lime-icons8, the `...

(QB_NEW_EN_OTHER)


[grammar] ~102-~102: There might be a problem here.
Context: ...e-icons8` must be made available on the web-server. - For non-Lime products: To use a...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~104-~104: There might be a mistake here.
Context: ... on the web-server. - For non-Lime products: To use a different icon set, the icons ...

(QB_NEW_EN_OTHER)


[grammar] ~136-~136: Use correct spacing
Context: ...d without warning. --- ## Community & Support - 💬 Questions? [create an issue](http...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~145-~145: Use correct spacing
Context: ...ANGELOG.md) for latest updates --- ## Contributing We welcome contributions from the commun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~147-~147: There might be a mistake here.
Context: ... from the community! Here's how you can help: - 🔍 Found an issue? Feel free to fix...

(QB_NEW_EN_OTHER)


[grammar] ~149-~149: Use proper capitalization
Context: ...sue?** Feel free to fix it and submit a PR - 📝 Improve docs? Documentation impro...

(QB_NEW_EN_OTHER_ERROR_IDS_6)


[grammar] ~150-~150: There might be a mistake here.
Context: ...* Documentation improvements are always appreciated - 🎨 Design feedback? Share your UX in...

(QB_NEW_EN_OTHER)


[grammar] ~151-~151: There might be a mistake here.
Context: ...- 🎨 Design feedback? Share your UX insights - 🧪 Testing? Help us test new feature...

(QB_NEW_EN_OTHER)


[grammar] ~152-~152: There might be a mistake here.
Context: ...** Help us test new features and report bugs Quick setup: ```bash git clone https:...

(QB_NEW_EN_OTHER)


[grammar] ~154-~154: There might be a mistake here.
Context: ...t new features and report bugs Quick setup: bash git clone https://github.com/Lundalogik/lime-elements.git cd lime-elements npm install npm start # Starts local development server 📋 **[Read our full contributing...

(QB_NEW_EN_OTHER)


[grammar] ~163-~163: Use correct spacing
Context: ...r ``` 📋 Read our full contributing guidelines --- ## 📄 License Lime Elements is open source...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~167-~167: Use correct spacing
Context: ...lob/main/CONTRIBUTING.md)** --- ## 📄 License Lime Elements is open source software li...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~169-~169: Use hyphens correctly
Context: ...* --- ## 📄 License Lime Elements is open source software licensed under the [Apac...

(QB_NEW_EN_OTHER_ERROR_IDS_29)


[grammar] ~169-~169: Use correct spacing
Context: ...software licensed under the Apache 2.0 License. ---

**Built with ❤️ by your friends at [Lime T...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~175-~175: There might be a problem here.
Context: ...r"> Built with ❤️ by your friends at Lime Technologies _Empowering developers to create amazing ...

(QB_NEW_EN_MERGED_MATCH)


[style] ~177-~177: Consider using a more formal and expressive alternative to ‘amazing’.
Context: ...m/)** Empowering developers to create amazing user experiences [⭐ Star us on GitHub...

(AWESOME)


[grammar] ~177-~177: Use correct spacing
Context: ...ering developers to create amazing user experiences_ [⭐ Star us on GitHub](https://github.com/...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~179-~179: Use correct spacing
Context: ...dalogik.github.io/lime-elements/) • 📦 NPM

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🪛 markdownlint-cli2 (0.17.2)
README.md

1-1: Inline HTML
Element: img

(MD033, no-inline-html)


3-3: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


5-5: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


20-20: Inline HTML
Element: img

(MD033, no-inline-html)


173-173: Inline HTML
Element: div

(MD033, no-inline-html)


177-177: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

⏰ 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: Build
  • GitHub Check: Test

Comment on lines +319 to +340
.version-link {
font-family:
ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas,
'DejaVu Sans Mono', monospace;
transition:
color var(--limel-clickable-transition-speed, 0.4s) ease,
background-color var(--limel-clickable-transition-speed, 0.4s) ease,
box-shadow var(--limel-clickable-transform-speed, 0.4s) ease,
transform var(--limel-clickable-transform-speed, 0.4s)
var(--limel-clickable-transform-timing-function, ease);
text-decoration: none;

display: block;
padding: 0.75rem 1rem;
border-radius: 0.5rem;

color: rgb(var(--contrast-1300));
font-weight: 500;
text-align: center;
background: var(--lime-elevated-surface-background-color);
box-shadow: var(--button-shadow-normal);
}
Copy link

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

stable-latest class is generated in HTML but has no styling

categorizeVersions() can assign className = 'stable-latest', yet the stylesheet only defines .latest and .preview. Missing styles make the “current stable” link visually identical to the rest, defeating the highlight logic.

Suggested minimal addition:

+/* highlight newest stable version */
+.version-link.stable-latest {
+    background: rgb(var(--contrast-300));
+    font-weight: 600;
+}
+.version-link.stable-latest:hover {
+    background: rgb(var(--contrast-400));
+}
📝 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
.version-link {
font-family:
ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas,
'DejaVu Sans Mono', monospace;
transition:
color var(--limel-clickable-transition-speed, 0.4s) ease,
background-color var(--limel-clickable-transition-speed, 0.4s) ease,
box-shadow var(--limel-clickable-transform-speed, 0.4s) ease,
transform var(--limel-clickable-transform-speed, 0.4s)
var(--limel-clickable-transform-timing-function, ease);
text-decoration: none;
display: block;
padding: 0.75rem 1rem;
border-radius: 0.5rem;
color: rgb(var(--contrast-1300));
font-weight: 500;
text-align: center;
background: var(--lime-elevated-surface-background-color);
box-shadow: var(--button-shadow-normal);
}
.version-link {
font-family:
ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas,
'DejaVu Sans Mono', monospace;
transition:
color var(--limel-clickable-transition-speed, 0.4s) ease,
background-color var(--limel-clickable-transition-speed, 0.4s) ease,
box-shadow var(--limel-clickable-transform-speed, 0.4s) ease,
transform var(--limel-clickable-transform-speed, 0.4s)
var(--limel-clickable-transform-timing-function, ease);
text-decoration: none;
display: block;
padding: 0.75rem 1rem;
border-radius: 0.5rem;
color: rgb(var(--contrast-1300));
font-weight: 500;
text-align: center;
background: var(--lime-elevated-surface-background-color);
box-shadow: var(--button-shadow-normal);
}
/* highlight newest stable version */
.version-link.stable-latest {
background: rgb(var(--contrast-300));
font-weight: 600;
}
.version-link.stable-latest:hover {
background: rgb(var(--contrast-400));
}
🤖 Prompt for AI Agents
In docs-index.css between lines 319 and 340, the class 'stable-latest' is used
in HTML but lacks corresponding CSS styles, causing the "current stable" link to
not be visually distinct. Add a CSS rule for the '.stable-latest' class with
appropriate styling similar to '.latest' and '.preview' to ensure it is visually
highlighted as intended.

Copy link
Contributor

Choose a reason for hiding this comment

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

This one is up to you @Kiarokh. I won't add this myself, but we can add it when you're back from vacation, if you want to.

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: 1

♻️ Duplicate comments (3)
docs-index.html (3)

64-70: Broken favicon path is still unresolved
src/favicon.svg will 404 on GitHub Pages unless a src/ folder is published alongside the HTML, and the PNG still points to an external raw-githubusercontent URL. The earlier feedback remains valid.


220-240: Version-sorting remains brittle
The hand-rolled parser still ignores pre-release tags and multi-digit segments (38.10 vs 38.9, -dev.1, etc.). A locale-aware numeric collator or a tiny semver helper would be safer and future-proof.


265-283: stable-latest highlight can miss the real latest stable
Because the loop iterates over the entire sorted array (including previews) and only checks index === 0, the first element might be a preview build (38.19.2-dev.1, PR-NNN, …). In that case no stable link ever receives the stable-latest class.

Minimal fix: identify the first non-preview version before the loop.

- window.versions.forEach(function (version, index) {
+ let firstStableAssigned = false;
+ window.versions.forEach(function (version) {
     let container = stableContainer;
     let className = '';
@@
- } else if (index === 0 && !version.includes('-')) {
-     className = 'stable-latest';
+ } else if (!firstStableAssigned) {
+     className = 'stable-latest';
+     firstStableAssigned = true;
 }
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 3859f4a and a9f3f44.

📒 Files selected for processing (1)
  • docs-index.html (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
docs-index.html (16)
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3607
File: docs-index.html:0-0
Timestamp: 2025-07-16T13:28:26.790Z
Learning: When suggesting script optimizations like adding `defer` or `async` attributes, always analyze the entire HTML file to check for dependencies between external scripts and inline scripts. Scripts loaded with `defer` execute after DOM parsing but before DOMContentLoaded, which can break synchronous dependencies with inline scripts that expect variables to be immediately available.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3530
File: src/components/text-editor/examples/text-editor-composite.tsx:4-7
Timestamp: 2025-04-17T09:39:36.254Z
Learning: For lime-elements, example files should import types from the public API using '@limetech/lime-elements' rather than defining duplicate types locally. This includes types like `EditorUiType` which are part of the component's public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3529
File: src/components/lime-ai-avatar/lime-ai-avatar.scss:1-3
Timestamp: 2025-04-25T14:23:56.018Z
Learning: In the lime-elements repository, CSS custom properties prefixed with `--lime-` are considered internal implementation details and should not be documented in JSDoc comments, while other custom properties should be documented as they are part of the public API.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3588
File: src/components/collapsible-section/collapsible-section.tsx:260-270
Timestamp: 2025-06-24T14:04:52.699Z
Learning: When handling missing content in aria-labels for collapsible/expandable UI components, provide a meaningful fallback rather than omitting the aria-label entirely. Screen reader users benefit from understanding the button's core functionality ("Open section" / "Close section") even when specific content identifiers are missing, as this helps them navigate imperfect interfaces.
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.
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.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3579
File: src/components/collapsible-section/collapsible-section.tsx:199-203
Timestamp: 2025-06-10T12:19:51.990Z
Learning: In Lime Elements codebase, components consistently use randomly generated IDs (via `createRandomString()`) for HTML elements even within shadow DOM, despite shadow DOM providing ID isolation. This pattern is maintained for consistency, accessibility robustness, future-proofing, and better development experience.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/chip-set/chip-set.tsx:367-385
Timestamp: 2025-04-14T12:22:22.298Z
Learning: In limel-chip-set, the onClick handler should be placed on the content div (<div slot="content">) rather than on the limel-notched-outline component, and should only be applied when type is 'input'.
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. This includes not importing types from internal files like '../types.ts', especially those marked with @beta. Duplicating simple type definitions in example files is preferred over importing internal types that may change.
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.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3607
File: docs-index.html:0-0
Timestamp: 2025-07-16T13:28:26.790Z
Learning: Before suggesting any code changes as "safe," thoroughly analyze the entire codebase context, including dependencies, usage patterns, and potential side effects. What appears to be a simple performance optimization might break existing functionality due to execution order or timing dependencies.
Learnt from: adrianschmidt
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/inserter.ts:1-11
Timestamp: 2025-03-04T13:48:44.712Z
Learning: The lime-elements codebase must use relative imports (even with multiple "../") rather than alias imports or re-exports because they export types to `<repo-root>/dist/types`. Using non-relative imports breaks type generation as import paths from generated type files point to full .ts files rather than .d.ts files.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3518
File: src/components/notched-outline/examples/notched-outline-basic.scss:11-22
Timestamp: 2025-04-14T10:01:18.721Z
Learning: Examples in Lime Elements use Shadow DOM (with `shadow: true` in the component decorator) for style encapsulation, making additional class-based selectors unnecessary. This ensures styles are automatically scoped to each component without leaking to the rest of the application.
Learnt from: Kiarokh
PR: Lundalogik/lime-elements#3464
File: src/components/text-editor/prosemirror-adapter/plugins/image/view.scss:14-17
Timestamp: 2025-03-11T13:31:46.958Z
Learning: Lime Elements generally does not support unreasonably old browsers, so modern CSS properties like `scale` that have good support in current browsers are preferred over older alternatives.
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. This follows the standard pattern in the codebase and eliminates the need for key attributes.
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.
⏰ 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 (1)
docs-index.html (1)

94-95: Confirm defer is now actually safe
With the inline script wrapped in a DOMContentLoaded handler, the defer attribute should no longer break the page. Still, if versions.js fails to load, the UI silently logs an error and shows nothing. Consider adding a lightweight fallback message for users.

Add useful `meta` information, favicons, and change the title.
@adrianschmidt adrianschmidt force-pushed the improve-docs branch 2 times, most recently from 74fa1b3 to d9e96ee Compare July 16, 2025 14:21
Kiarokh and others added 3 commits July 16, 2025 17:34
… page listing versions

Organize the information about versions better,
and also make the page more attractive for potential
consumers and developers.
Copy link
Contributor

@adrianschmidt adrianschmidt left a comment

Choose a reason for hiding this comment

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

Fantastic job! 🙌 ❤️

@adrianschmidt adrianschmidt merged commit 27b290c into main Jul 16, 2025
12 checks passed
@adrianschmidt adrianschmidt deleted the improve-docs branch July 16, 2025 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation that's missing or needs improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants