Skip to content

docs: update component docs#1846

Merged
shinokada merged 13 commits intothemesberg:mainfrom
shinokada:docs-update
Nov 21, 2025
Merged

docs: update component docs#1846
shinokada merged 13 commits intothemesberg:mainfrom
shinokada:docs-update

Conversation

@shinokada
Copy link
Copy Markdown
Collaborator

@shinokada shinokada commented Nov 19, 2025

  • accordion
  • alert
  • avatar
  • badge.md
  • banner.md
  • bottom-navigation.md
  • breadcrumb.md
  • button-group.md
  • buttons.md
  • card.md
  • carousel.md
  • clipboard.md
  • darkmode.md
  • datepicker.md
  • device-mockups.md
  • drawer.md
  • dropdown.md
  • footer.md
  • forms.md
  • gallery.md
  • imageData
  • indicators.md
  • kbd.md
  • list-group.md
  • mega-menu.md
  • modal.md
  • navbar.md
  • pagination.md
  • popover.md
  • progress.md
  • rating.md
  • sidebar.md
  • skeleton.md
  • speed-dial.md
  • spinner.md
  • stepper.md
  • table.md
  • tabs.md
  • timeline.md
  • toast.md
  • tooltip.md
  • typography.md
  • video.md

🔗 Related issue (optional)

Closes #


📑 Description


🔍 PR Type

  • Bug fix
  • Feature
  • Documentation
  • Refactor / Code cleanup
  • Build / Tooling
  • Other (please describe)

🚦 PR Status

  • Draft (work in progress, not ready for review)
  • Ready for review ✅

✅ Checklist

  • My code follows the existing code style
  • I have run pnpm check && pnpm test:e2e and all tests pass
  • CoderabbitAI review has been completed and actionable suggestions were reviewed
  • I have updated documentation if my changes require it
  • I have updated the api-check directory if a component API changed
  • My PR is based on the latest main branch (not the published npm version)
  • I have checked accessibility where applicable (ARIA, keyboard nav, etc.)
  • I have reviewed the rendered component in the browser

🧪 Screenshots / Demos (optional)


⚠️ Breaking Changes (optional)


ℹ️ Additional Information

Summary by CodeRabbit

  • Documentation
    • Major expansions across many component guides: richer examples, accessibility guidance, best practices, clearer wording, and consistent related-links sections.
  • Chores
    • Replaced project Code of Conduct with the Contributor Covenant.
  • Public API
    • Adjusted theme and utilities exports and reinstated a ThemeProvider export.
  • Examples
    • Updated example imports to reference the published package.
  • Bug Fixes
    • Multiple copy, typo and small prop/name corrections; minor UI text fixes.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel
Copy link
Copy Markdown

vercel bot commented Nov 19, 2025

@shinokada is attempting to deploy a commit to the Themesberg Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Nov 19, 2025

Walkthrough

Adds Seealso imports and relatedLinks to many component docs with large editorial expansions; replaces CODE_OF_CONDUCT.md with the Contributor Covenant; reorganizes lib barrel exports (theme, utils, Blockquote, ThemeProvider) and exposes createCountdown; updates many example imports to flowbite-svelte; fixes typos and prop name mismatches (clasNameclassName) and small UI/example fixes.

Changes

Cohort / File(s) Summary
Docs: Seealso + content expansions
src/routes/docs/components/accordion.md, src/routes/docs/components/alert.md, src/routes/docs/components/avatar.md, src/routes/docs/components/badge.md, src/routes/docs/components/banner.md, src/routes/docs/components/bottom-navigation.md, src/routes/docs/components/breadcrumb.md, src/routes/docs/components/button-group.md, src/routes/docs/components/buttons.md, src/routes/docs/components/card.md, src/routes/docs/components/carousel.md
Import Seealso, add relatedLinks arrays and render <Seealso links={relatedLinks} />; substantial editorial expansions (examples, accessibility, best practices, Key Props). Documentation-only changes.
Docs: assorted textual fixes & other docs
static/llm/*, many src/routes/docs/components/*.md
Wide set of typo/grammar fixes, wording improvements, small restructures (masonry, timeline, toast alignment, progress, tabs, etc.). Documentation-only edits.
Examples: package import changes
src/routes/docs-examples/components/clipboard/*, src/routes/docs-examples/components/datepicker/ActionSlot.svelte, src/routes/docs-examples/components/modal/*, src/routes/docs-examples/extend/virtual-masonry/Default.svelte, src/routes/docs-examples/forms/timepicker/StateAndBind.svelte, src/routes/docs-examples/pages/theme-provider/*, src/routes/docs-examples/typography/image/Alignments.svelte, src/routes/docs-examples/components/modal/Countdown.svelte, src/routes/docs-examples/components/clipboard/Contact.svelte
Replaced internal $lib imports with flowbite-svelte (and flowbite-svelte/types where applicable); some import consolidation. No behavior changes.
Exports & public API re-exports
src/lib/index.ts, src/lib/theme/index.ts, src/lib/typography/blockquote/index.ts, src/lib/utils/index.ts
Barrel exports reorganized: added export * from "./theme" and export * from "./utils"; moved ThemeProvider export into theme barrel (export { default as ThemeProvider }); Blockquote re-export adjusted to export default as named; createCountdown re-exported from utils. Public export locations/names changed.
Nav prop/name fixes (code + metadata)
src/lib/navbar/NavContainer.svelte, src/lib/navbar/NavUl.svelte, src/routes/component-data/NavContainer.json, src/routes/component-data/NavUl.json, src/routes/utils/CopyCliboardInput.svelte
Fixed clasNameclassName in component props, template bindings and JSON prop metadata; aligned code, docs and data.
Small content / UI fixes in examples
src/routes/docs-examples/components/table/*.svelte, src/routes/docs-examples/components/device-mockups/Smartwatch.svelte, src/routes/docs-examples/components/table/Caption.svelte, ...
Corrected UI text (e.g., "Sliver" → "Silver") and fixed Tailwind class typos (width/height bracket syntax).
Repository policy
CODE_OF_CONDUCT.md
Replaced with full Contributor Covenant text (expanded pledge, standards, enforcement, attribution).

Sequence Diagram(s)

sequenceDiagram
  participant Docs as Documentation pages
  participant Examples as Examples
  participant Theme as src/lib/theme
  participant Utils as src/lib/utils
  participant LibIndex as src/lib/index.ts

  Note over Theme,LibIndex: Barrel export reorganization
  Theme->>LibIndex: export * from "./theme"
  Utils->>LibIndex: export * from "./utils"
  Theme->>Theme: export { default as ThemeProvider } from "./ThemeProvider.svelte"
  Utils->>Utils: export { createCountdown } from "./countdown.svelte"

  Note over Examples,LibIndex: Examples import from package entry
  Examples->>LibIndex: import {...} from "flowbite-svelte"

  Note over Docs: Seealso additions
  Docs->>Docs: add relatedLinks arrays and render Seealso component
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Areas to pay extra attention to:
    • Barrel export changes: src/lib/index.ts and src/lib/theme/index.ts for potential API surface regressions.
    • Re-exported symbols (ThemeProvider, Blockquote, createCountdown) and consumer import paths in examples.
    • Prop rename clasNameclassName and JSON metadata consistency.
    • Spot-check doc code snippets after editorial edits for accidental API/name drift.

Possibly related PRs

Poem

🐇 I hopped through docs and exports bright,
Placed Seealso links to guide your sight,
Fixed clasName, moved ThemeProvider home,
Swapped imports, polished text — no runtime roam,
A tiny hop, a tidy trail — now ship it light! ✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description consists primarily of an unchecked checklist of component documentation files without substantive details about the changes, purpose, or impact. Most template sections remain unfilled or contain only template text. Complete the PR template sections: add a clear description of what was updated and why, select appropriate PR types (Documentation), confirm checklist items, and explain any breaking changes or additional context needed for review.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'docs: update component docs' is partially related to the changeset—it refers to documentation updates, but is overly broad and vague, failing to specify which components or what type of updates. Provide a more specific title that identifies the key component(s) updated or the primary change. For example: 'docs: expand component documentation with examples and best practices' or 'docs: enhance accordion, alert, and button documentation'.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6796c00 and 44d04de.

📒 Files selected for processing (2)
  • src/routes/docs-examples/components/device-mockups/Smartwatch.svelte (1 hunks)
  • static/llm/components/device-mockups.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • static/llm/components/device-mockups.md
  • src/routes/docs-examples/components/device-mockups/Smartwatch.svelte
⏰ 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). (1)
  • GitHub Check: Playwright and Lint

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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@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

🧹 Nitpick comments (3)
src/routes/docs/components/accordion.md (2)

109-109: Consider removing "of" for conciseness.

Line 109 currently reads "All of the mentioned options". Removing "of" would be more direct.

Apply this diff:

-Accordions can be nested to create hierarchical content structures. All of the mentioned options (colors, icons, transitions, etc.) are supported for nested accordions.
+Accordions can be nested to create hierarchical content structures. All mentioned options (colors, icons, transitions, etc.) are supported for nested accordions.

129-129: Simplify wordy phrasing on transition behavior.

Line 129 contains "completely destroying and recreating" which could be more concise.

Apply this diff:

-When you set `transitionType="none"` on an Accordion or an AccordionItem, it disables Svelte transitions completely and instead uses CSS display properties (block/hidden) to show or hide content. This prevents Svelte from completely destroying and recreating components when toggling the accordion.
+When you set `transitionType="none"` on an Accordion or an AccordionItem, it disables Svelte transitions completely and instead uses CSS display properties (block/hidden) to show or hide content. This prevents Svelte from destroying and recreating components when toggling the accordion.
src/routes/docs/components/avatar.md (1)

146-152: Reduce repeated phrasing for variety.

The phrase "if you want to" appears multiple times across the docs (lines 146, and others). Consider varying the language to maintain reader engagement, such as using "Use this example to" or "This example shows how to."

For example, line 146 could be revised from:

-Use this example if you want to show a dropdown menu when clicking on the avatar component. Avatar dropdowns are commonly used in navigation headers for:
+Use this example to show a dropdown menu when clicking on the avatar component. Avatar dropdowns are commonly used in navigation headers for:
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 777ee2a and b109c83.

📒 Files selected for processing (3)
  • src/routes/docs/components/accordion.md (4 hunks)
  • src/routes/docs/components/alert.md (2 hunks)
  • src/routes/docs/components/avatar.md (3 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: LahTeuto
Repo: themesberg/flowbite-svelte PR: 1484
File: src/lib/navbar/NavLi.svelte:34-34
Timestamp: 2024-11-12T10:36:34.807Z
Learning: When enhancing ARIA roles in Svelte components, avoid setting `role="presentation"` on elements that should retain the `link` role, as it can diminish ARIA role coverage and negatively affect accessibility.
🪛 LanguageTool
src/routes/docs/components/accordion.md

[style] ~109-~109: Consider removing “of” to be more concise
Context: ...create hierarchical content structures. All of the mentioned options (colors, icons, trans...

(ALL_OF_THE)


[style] ~129-~129: ‘completely destroying’ might be wordy. Consider a shorter alternative.
Context: ...hide content. This prevents Svelte from completely destroying and recreating components when toggling...

(EN_WORDINESS_PREMIUM_COMPLETELY_DESTROYING)

src/routes/docs/components/avatar.md

[style] ~146-~146: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... User dropdown Use this example if you want to show a dropdown menu when clicking on t...

(REP_WANT_TO_VB)

🔇 Additional comments (2)
src/routes/docs/components/alert.md (1)

11-18: LGTM! The documentation enhancements are well-structured with proper Seealso integration.

The imports, relatedLinks array, and component usage follow the established pattern. The expanded descriptions across Default Alert, Dismissable Alerts, and other sections provide clearer guidance on use cases and best practices.

src/routes/docs/components/avatar.md (1)

12-20: LGTM! The documentation enhancements are comprehensive and well-organized.

The Seealso component is correctly imported and used with the relatedLinks array. New sections (Accessibility, Best Practices, Sizes) provide thorough guidance, and the examples are clear and practical.

Copy link
Copy Markdown
Contributor

@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: 6

🧹 Nitpick comments (2)
CODE_OF_CONDUCT.md (1)

32-32: Optional: Strengthen wording in unacceptable behavior examples.

Line 32 uses "insulting or derogatory comments"—consider stronger alternatives like "abusive," "demeaning," or "hostile" language to more directly convey severity. This is optional and the current wording aligns with the Contributor Covenant template.

src/routes/docs/components/avatar.md (1)

144-152: Minor: Reconsider phrasing for consistency.

Line 146 states "Use this example if you want to show a dropdown menu when clicking on the avatar component," which echoes similar phrasing used earlier in the document. Consider varying the introductory language to improve readability across sections.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 318926b and 4bd7d82.

📒 Files selected for processing (6)
  • CODE_OF_CONDUCT.md (1 hunks)
  • src/routes/docs/components/accordion.md (4 hunks)
  • src/routes/docs/components/alert.md (2 hunks)
  • src/routes/docs/components/avatar.md (3 hunks)
  • src/routes/docs/components/badge.md (2 hunks)
  • src/routes/docs/components/banner.md (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/routes/docs/components/accordion.md
🧰 Additional context used
🪛 LanguageTool
CODE_OF_CONDUCT.md

[style] ~32-~32: Try using a synonym here to strengthen your wording.
Context: ...ind - Trolling, insulting or derogatory comments, and personal or political attacks - Pu...

(COMMENT_REMARK)

src/routes/docs/components/avatar.md

[style] ~146-~146: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... User dropdown Use this example if you want to show a dropdown menu when clicking on t...

(REP_WANT_TO_VB)

🪛 markdownlint-cli2 (0.18.1)
CODE_OF_CONDUCT.md

63-63: Bare URL used

(MD034, no-bare-urls)


119-119: Bare URL used

(MD034, no-bare-urls)


127-127: Bare URL used

(MD034, no-bare-urls)


128-128: Bare URL used

(MD034, no-bare-urls)

⏰ 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). (1)
  • GitHub Check: Playwright and Lint
🔇 Additional comments (14)
src/routes/docs/components/alert.md (3)

21-23: Expanded introduction provides better context.

The introduction now clearly articulates the purpose of alerts and mentions dismissable functionality, which flows well into the component documentation.


132-150: Accessibility and Best Practices sections well-executed.

These additions provide clear guidance on ARIA roles, keyboard navigation, and practical usage guidelines. The sections are concise and actionable.


159-166: Key Props section enhances discoverability.

Adding this summary of essential props (color, dismissable, transition, etc.) before the detailed CompoAttributesViewer improves usability for developers scanning the documentation.

src/routes/docs/components/avatar.md (2)

158-180: Sizes section enhancement is excellent.

The addition of a sizes reference table (lines 170–176) with preset values (xs/sm/md/lg/xl) mapped to Tailwind classes provides clear guidance for developers. The context-specific sizing recommendations are particularly helpful.


182-202: Accessibility and Best Practices sections are comprehensive.

These sections provide specific guidance (e.g., minimum 44x44px touch targets for clickable avatars, privacy considerations) and are well-organized with clear bullets.

src/routes/docs/components/badge.md (3)

23-32: Introduction and use-case bullets improve clarity.

The expanded introduction now clearly articulates badge purposes with specific examples (notification counts, status labels, category highlighting), which provides better context for developers choosing when to use badges.


46-53: Color semantics section adds helpful context.

Mapping color variants to semantic meanings (Info/Blue for general information, Danger/Red for errors, etc.) helps developers choose appropriate colors and improves accessibility by not relying on color alone.


207-227: Accessibility and Best Practices sections are well-structured.

Both sections provide actionable guidance: ARIA labels for icon-only badges, avoiding color-only conveyance, maintaining semantic HTML, and best practices like keeping text concise (1-3 words) and using badges sparingly to avoid visual clutter.

src/routes/docs/components/banner.md (6)

23-32: Introduction and use-case bullets are well-articulated.

The expanded introduction now clearly communicates the purpose of sticky banners with specific use cases (marketing, cookie consent, app download prompts, etc.), helping developers understand when and how to apply this component.


35-41: Setup section appropriately positioned.

Adding an explicit Setup section with import example improves discoverability and follows the documentation pattern established in other component docs.


85-96: Newsletter section expanded with practical guidance.

The addition of best practices (minimal form fields, clear value proposition, privacy reassurance) elevates this section beyond just showing code and provides actionable guidance for implementation.


119-127: Transition section now explains rationale.

The additions clarify why transitions matter (polish, visual continuity, customization options) and advise choosing transitions that match the site's overall style—useful guidance that goes beyond just showing the code.


153-177: Accessibility and Best Practices sections are comprehensive.

These additions cover keyboard navigation, focus management, color contrast, respect for user choice, mobile-first design, performance considerations, and legal compliance (GDPR/CCPA). The guidance is specific, actionable, and well-organized.


178-184: Component comparison section provides valuable context.

The "When to Use Banners vs. Other Components" section helps developers choose the right component by explaining the distinctions between Banner, Alert, Toast, and Modal. This is a valuable addition for documentation clarity.

Copy link
Copy Markdown
Contributor

@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

🧹 Nitpick comments (1)
src/routes/docs/components/bottom-navigation.md (1)

58-58: Address wordiness in active state explanation.

The phrase "exactly the same" is redundant. Consider using "identical" or "match" for brevity.

-By default, the `BottomNavItem` will only be set to active if the `href` and the `activeUrl` are exactly the same. This ensures precise highlighting of the current page.
+By default, the `BottomNavItem` will only be set to active if the `href` and the `activeUrl` match. This ensures precise highlighting of the current page.

Based on static analysis hint.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4bd7d82 and e404453.

📒 Files selected for processing (2)
  • src/routes/docs/components/bottom-navigation.md (4 hunks)
  • src/routes/docs/components/breadcrumb.md (2 hunks)
🧰 Additional context used
🪛 LanguageTool
src/routes/docs/components/bottom-navigation.md

[style] ~58-~58: ‘exactly the same’ might be wordy. Consider a shorter alternative.
Context: ...e if the href and the activeUrl are exactly the same. This ensures precise highlighting of t...

(EN_WORDINESS_PREMIUM_EXACTLY_THE_SAME)

⏰ 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). (1)
  • GitHub Check: Playwright and Lint
🔇 Additional comments (4)
src/routes/docs/components/breadcrumb.md (2)

25-135: Documentation expansion is well-structured and comprehensive.

The new sections and enhanced descriptions across the file provide clear guidance on breadcrumb use cases, accessibility, best practices, and responsive design. The content is well-organized with good use of bullet points and clear examples of when to use (or avoid) breadcrumbs. The documentation aligns well with standard accessibility and UX practices.


12-12: All imports and referenced paths are valid and verified.

Verification confirms that the Seealso component and all other imported utilities (CompoAttributesViewer, GitHubCompoLinks, toKebabCase, LlmLink) are properly exported from src/routes/utils/index.ts. The four relatedLinks paths (docs/components/navbar, docs/components/sidebar, docs/components/pagination, docs/typography/heading) all exist as valid documentation files. The component usage in breadcrumb.md is correct.

src/routes/docs/components/bottom-navigation.md (2)

24-32: Comprehensive documentation expansion with strong rationale and guidance.

The expanded documentation provides substantial improvements including:

  • Clear use-case categories for the component (mobile apps, PWAs, media players, etc.)
  • Rationale sections explaining design decisions (exact URL matching, fixed positioning)
  • Comprehensive accessibility guidelines covering keyboard, ARIA, focus, screen readers, and touch targets
  • Practical best practices (3–5 item limit, mobile-first approach, clear labeling, fixed positioning)
  • Design considerations addressing modern phone interfaces (notches, safe areas)

This significantly enhances the documentation quality and developer experience.

Also applies to: 46-48, 58-64, 70-80, 88-92, 100-106, 114-120, 128-132, 144-149, 155-187


189-191: Seealso component properly integrated.

The Seealso component is correctly instantiated with the relatedLinks array and placed in the appropriate section. This follows the PR's objective to introduce Seealso across component documentation.

Note: Verify that the relatedLinks paths (covered in earlier comment) exist and are accessible for proper link rendering.

Comment on lines +197 to +210
### Key Props

**BottomNav:**
- `activeUrl`: Current page URL for highlighting active items
- `position`: Position of the navigation (default: 'fixed')
- `navType`: Style variant for the navigation bar
- `outerClass`: Custom classes for the outer container
- `innerClass`: Custom classes for the inner container

**BottomNavItem:**
- `href`: Link destination for navigation items
- `activeClass`: Custom classes for active state
- `exact`: Whether URL matching should be exact (default: true)
- `btnName`: Accessible label for the button/link
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify Key Props documentation matches component implementation.

The Key Props section documents four BottomNav props and four BottomNavItem props. These descriptions should be verified against the actual component API to ensure accuracy and completeness.


🏁 Script executed:

#!/bin/bash
# Verify documented props match component implementation

# Search for BottomNav component definition
echo "=== BottomNav Component Props ==="
fd -e svelte BottomNav --type f | xargs grep -l "^<script" | head -1 | xargs cat | grep -E "^\s*(export\s+let|prop|interface)" -A 2

# Search for BottomNavItem component definition
echo "=== BottomNavItem Component Props ==="
fd -e svelte BottomNavItem --type f | xargs grep -l "^<script" | head -1 | xargs cat | grep -E "^\s*(export\s+let|prop|interface)" -A 2

Length of output: 71



---

🏁 Script executed:

```shell
#!/bin/bash
# Broader search for BottomNav and BottomNavItem components

echo "=== Searching for files containing BottomNav component ==="
rg -l "BottomNav" --type ts --type svelte --type js | head -20

echo ""
echo "=== Searching for lib/components directory structure ==="
fd --type d "components\|lib" | head -20

echo ""
echo "=== Looking for any Svelte files ==="
fd -e svelte | grep -i "bottom\|nav" | head -20

Length of output: 1080



---

🏁 Script executed:

```shell
#!/bin/bash
# Extract component props from source files

echo "=== BottomNav.svelte Content ==="
cat src/lib/bottom-navigation/BottomNav.svelte

echo ""
echo "=== BottomNavItem.svelte Content ==="
cat src/lib/bottom-navigation/BottomNavItem.svelte

Length of output: 4705


Rewrite Key Props section: documented props contain inaccuracies and critical omissions.

The documented props do not match the actual component implementation:

BottomNav issues:

  • Only 5 of 10+ props are documented
  • Missing: children, header, class, classes, activeClass

BottomNavItem issues:

  • Documents exact prop that does not exist in the component
  • Documents href as a prop when it's only available via ...restProps
  • Missing actual props: children, appBtnPosition, class, classes, btnClass, spanClass, active
  • The "exact" behavior description does not match the actual implementation, which uses complex URL matching logic plus a manual active flag override

Update the Key Props section to either document all props or, if showing only key props, ensure accuracy and remove non-existent props like exact and inaccurate descriptions of href.

🤖 Prompt for AI Agents
In src/routes/docs/components/bottom-navigation.md around lines 197 to 210, the
"Key Props" list is inaccurate and incomplete: remove non-existent props (e.g.,
BottomNavItem.exact and BottomNav.href as a first-class prop), add missing props
used by the components (BottomNav: children, header, class, classes,
activeClass; BottomNavItem: children, appBtnPosition, class, classes, btnClass,
spanClass, active), and update descriptions to reflect actual behavior (remove
"exact" and document that active determination uses complex URL-matching plus an
optional manual active override); either expand the section to list all real
props with brief descriptions or restrict to a correct subset labeled "Key
Props" that excludes incorrect entries and mentions the rest are passed via
...restProps.

Copy link
Copy Markdown
Contributor

@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

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e404453 and 24074dd.

📒 Files selected for processing (4)
  • src/routes/docs/components/button-group.md (3 hunks)
  • src/routes/docs/components/buttons.md (6 hunks)
  • src/routes/docs/components/card.md (9 hunks)
  • src/routes/docs/components/carousel.md (8 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2024-11-12T10:36:34.807Z
Learnt from: LahTeuto
Repo: themesberg/flowbite-svelte PR: 1484
File: src/lib/navbar/NavLi.svelte:34-34
Timestamp: 2024-11-12T10:36:34.807Z
Learning: When enhancing ARIA roles in Svelte components, avoid setting `role="presentation"` on elements that should retain the `link` role, as it can diminish ARIA role coverage and negatively affect accessibility.

Applied to files:

  • src/routes/docs/components/carousel.md
  • src/routes/docs/components/card.md
📚 Learning: 2025-09-04T10:33:41.720Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1751
File: src/lib/tabs/TabItem.svelte:33-33
Timestamp: 2025-09-04T10:33:41.720Z
Learning: In Svelte 5, DOM event handlers should use function props like `onclick`, `onchange`, `oninput` etc. The `on:click`, `on:change` syntax from previous Svelte versions is deprecated/obsolete in Svelte 5.

Applied to files:

  • src/routes/docs/components/buttons.md
📚 Learning: 2025-08-31T12:56:05.074Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1745
File: src/lib/types.ts:677-686
Timestamp: 2025-08-31T12:56:05.074Z
Learning: HTMLInputAttributes includes a `group` property that can be used for grouping form controls like checkboxes and radio buttons, so interfaces extending HTMLInputAttributes don't need to explicitly declare `group` unless they want to override its type.

Applied to files:

  • src/routes/docs/components/button-group.md
🪛 LanguageTool
src/routes/docs/components/carousel.md

[style] ~97-~97: Consider replacing ‘Give’ with a different word to let your writing stand out.
Context: ...omatic rotation - Duration timing - Give users enough time to read content (typically ...

(GIVE_TIME_STYLE)


[style] ~120-~120: This is not the usual sequence for adjectives that have no special emphasis.
Context: ...erience - Skipping content - moving past uninteresting slides quickly - Reviewing content ...

(EN_ADJ_ORDER)

src/routes/docs/components/buttons.md

[style] ~54-~54: This phrase is redundant. Consider writing “alternatives”.
Context: ...lternative/Dark**: Secondary actions or alternative choices - Red: Destructive actions (delete,...

(ALTERNATIVE_CHOICE)

src/routes/docs/components/button-group.md

[style] ~23-~23: This phrase is redundant. Consider writing “stack”.
Context: ...ent from flowbite-svelte can be used to stack together multiple buttons and links inside a sin...

(SPLICE_TOGETHER)


[style] ~45-~45: This phrase is redundant. Consider writing “stack”.
Context: ... ## Default Use the following code to stack together buttons into a single group. Grouped bu...

(SPLICE_TOGETHER)


[style] ~135-~135: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ttons {#include Outline.svelte} ``` ## Outline with icon Combine outline styling with...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

src/routes/docs/components/card.md

[style] ~74-~74: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ple actions are possible per card - You want to emphasize a specific action - The card ...

(REP_WANT_TO_VB)


[grammar] ~257-~257: Use a hyphen to join words.
Context: ...class="max-w-[250px]` to create a custom size card. Custom sizing allows: - **Fle...

(QB_NEW_EN_HYPHEN)

⏰ 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). (1)
  • GitHub Check: Playwright and Lint
🔇 Additional comments (10)
src/routes/docs/components/card.md (2)

12-12: LGTM on Seealso integration and relatedLinks structure.

The import, relatedLinks array, and component usage follow the established pattern across the PR. The links (badge, buttons, avatar, list-group, modal) are contextually appropriate related components.

Also applies to: 15-21, 320-320


270-282: Strong additions to Accessibility and Best Practices sections.

The accessibility guidance covers keyboard navigation, focus states, alt text, and heading hierarchy—all essential for card components. Best practices around consistent sizing, whitespace, and loading states are well-targeted and actionable.

Also applies to: 283-297

src/routes/docs/components/buttons.md (2)

12-12: LGTM on Seealso integration and comprehensive relatedLinks.

The relatedLinks array appropriately connects to button-group, close-button, radio/checkbox form controls, and badges. The cross-references to form components (with fragment identifiers) are particularly valuable for users exploring button variants in form contexts.

Also applies to: 16-22, 332-332


286-312: Excellent accessibility and best practices guidance.

The accessibility section clearly covers keyboard navigation (Tab, Enter/Space), focus indicators, ARIA labels, semantic HTML (<button> vs <a>), and WCAG contrast requirements. The "Events" section at lines 258-264 correctly references onclick as the primary event handler, which aligns with modern Svelte patterns.

Best Practices section is thorough and actionable, covering clear labels, consistent sizing, visual hierarchy, and mobile touch targets.

src/routes/docs/components/carousel.md (3)

12-12: LGTM on Seealso integration and relatedLinks structure.

The related links (gallery, modal, tabs, card) are contextually relevant. Gallery and card relate to content display; modal and tabs provide alternative organizational patterns.

Also applies to: 14-19, 347-347


222-246: Outstanding accessibility and best practices sections.

The A11y section comprehensively covers keyboard navigation (arrow keys, Tab, Escape), screen reader announcements (slide numbers, alt text, control labels), and best practices including pause controls, color contrast, touch targets, and motion considerations. The guidance to avoid motion that could trigger vestibular disorders is particularly thoughtful.

The Best Practices section is exceptionally valuable, organized into Content, Performance, User Experience, and Mobile Optimization subsections. The "When to Avoid Carousels" section (lines 329-344) is candid and useful guidance often missing from component documentation—acknowledging that carousels harm engagement and SEO for critical content, and recommending alternatives (grids, accordions, tabs, galleries).

Also applies to: 296-344


353-375: LGTM on expanded Key Props section.

The detailed prop descriptions for Carousel, Controls, Indicators, and Thumbnails provide clear guidance on configuration and customization options. The transitionParams documentation is particularly useful.

src/routes/docs/components/button-group.md (3)

11-11: LGTM on Seealso integration and relatedLinks.

The relatedLinks appropriately connect to button-toggle (related component), buttons (foundational component), list-group (alternative grouping pattern), and form controls (radio/checkbox as related alternatives). This provides good navigation context for users exploring grouped controls.

Also applies to: 14-20, 226-226


165-190: Strong Accessibility and Best Practices sections.

The Accessibility section covers keyboard navigation, focus indicators, ARIA group roles, label association, touch targets, and semantic HTML—all critical for grouped buttons. The note about maintaining 44x44px touch targets is particularly important for mobile.

Best Practices clearly articulate limits (3-5 buttons for usability), consistent sizing, logical ordering, and responsive design considerations. The guidance to avoid mixing buttons and links in the same group is valuable and often overlooked.


192-223: LGTM on Common Patterns and Design Considerations.

The patterns (segmented controls, toolbars, pagination, social sharing) provide concrete use cases. Design Considerations appropriately address spacing, corner radius handling (first/last buttons), hover/focus/active states, and responsive orientation.

Copy link
Copy Markdown
Contributor

@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: 4

Caution

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

⚠️ Outside diff range comments (2)
src/lib/index.ts (2)

52-52: Remove duplicate export statement.

The export export * from "./utils"; at line 52 duplicates the export already declared at line 4. Duplicate exports create unnecessary code duplication.

Apply this diff to remove the duplicate:

-export * from "./utils";

89-89: Remove duplicate export statement.

The export export * from "./utils"; at line 89 duplicates the export already declared at line 4. This is the third occurrence of the same export in this file.

Apply this diff to remove the duplicate:

-export * from "./utils";
🧹 Nitpick comments (4)
src/routes/docs/components/button-group.md (1)

23-23: Minor: Redundant "stack together" phrasing.

The phrases "used to stack together" (line 23) and "to stack together buttons" (line 45) are redundant. Consider simplifying to just "stack" for conciseness.

- can be used to stack together multiple buttons
+ can be used to stack multiple buttons

- Use the following code to stack together buttons
+ Use the following code to stack buttons

Also applies to: 45-45

src/routes/docs/components/carousel.md (1)

95-100: Minor style refinement suggestion for line 97.

The LanguageTool analysis suggests alternative word choice for "Give users enough time." Consider replacing with "Allow" or "Ensure" for more varied vocabulary, though current phrasing is clear and acceptable.

src/routes/docs/components/avatar.md (1)

146-152: Minor: Improve writing variety by varying section opener phrasing.

Line 146 uses "Use this example if you want to show a dropdown menu," which echoes the same phrasing as line 117 ("Use this example if you want to stack..."). Consider varying the sentence structure for better readability—for example, "Display a dropdown menu when users click on the avatar component" or "This example shows how to add a dropdown menu triggered by avatar clicks."

src/routes/docs/components/card.md (1)

73-76: Minor: Consider varying the phrasing.

The phrase "You want to" is used repeatedly in this section. Consider rephrasing for variety, e.g., "You need to emphasize..." or "Emphasizing a specific action is important...".

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 24074dd and f0c2e69.

📒 Files selected for processing (27)
  • CODE_OF_CONDUCT.md (1 hunks)
  • src/lib/index.ts (1 hunks)
  • src/lib/theme/index.ts (1 hunks)
  • src/lib/typography/blockquote/index.ts (1 hunks)
  • src/lib/utils/index.ts (1 hunks)
  • src/routes/docs-examples/components/clipboard/Contact.svelte (1 hunks)
  • src/routes/docs-examples/components/clipboard/Modal.svelte (1 hunks)
  • src/routes/docs-examples/components/datepicker/ActionSlot.svelte (1 hunks)
  • src/routes/docs-examples/components/modal/Countdown.svelte (1 hunks)
  • src/routes/docs-examples/components/modal/Full.svelte (1 hunks)
  • src/routes/docs-examples/extend/virtual-masonry/Default.svelte (1 hunks)
  • src/routes/docs-examples/forms/timepicker/StateAndBind.svelte (1 hunks)
  • src/routes/docs-examples/pages/theme-provider/Theme1.svelte (1 hunks)
  • src/routes/docs-examples/pages/theme-provider/Theme2.svelte (1 hunks)
  • src/routes/docs-examples/typography/image/Alignments.svelte (1 hunks)
  • src/routes/docs/components/alert.md (2 hunks)
  • src/routes/docs/components/avatar.md (3 hunks)
  • src/routes/docs/components/badge.md (2 hunks)
  • src/routes/docs/components/banner.md (4 hunks)
  • src/routes/docs/components/bottom-navigation.md (4 hunks)
  • src/routes/docs/components/breadcrumb.md (2 hunks)
  • src/routes/docs/components/button-group.md (3 hunks)
  • src/routes/docs/components/buttons.md (6 hunks)
  • src/routes/docs/components/card.md (9 hunks)
  • src/routes/docs/components/carousel.md (8 hunks)
  • static/llm/components/badge.md (2 hunks)
  • static/llm/context-full.txt (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/routes/docs/components/bottom-navigation.md
🧰 Additional context used
🧠 Learnings (7)
📚 Learning: 2025-09-04T10:33:41.720Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1751
File: src/lib/tabs/TabItem.svelte:33-33
Timestamp: 2025-09-04T10:33:41.720Z
Learning: In Svelte 5, DOM event handlers should use function props like `onclick`, `onchange`, `oninput` etc. The `on:click`, `on:change` syntax from previous Svelte versions is deprecated/obsolete in Svelte 5.

Applied to files:

  • src/routes/docs/components/buttons.md
📚 Learning: 2025-03-20T11:11:53.953Z
Learnt from: superstes
Repo: themesberg/flowbite-svelte PR: 0
File: :0-0
Timestamp: 2025-03-20T11:11:53.953Z
Learning: In the Flowbite Svelte library's MultiInput component, the 'inputInvalid' property should be exported and passed to the Wrapper component to properly style the component's ring with red color when validation fails, similar to how the Input component handles validation states.

Applied to files:

  • src/routes/docs-examples/components/clipboard/Modal.svelte
📚 Learning: 2025-03-20T12:47:33.307Z
Learnt from: superstes
Repo: themesberg/flowbite-svelte PR: 0
File: :0-0
Timestamp: 2025-03-20T12:47:33.307Z
Learning: In the Flowbite Svelte library's composite form components like MultiInput, when implementing focus styles, ensure both the container (with focus-within) and the inner input element (with direct focus) have dynamic styling based on the validation state. The input element needs its own focus styles that change to red when inputInvalid=true.

Applied to files:

  • src/routes/docs-examples/components/clipboard/Modal.svelte
📚 Learning: 2024-10-18T09:38:03.879Z
Learnt from: Chizaruu
Repo: themesberg/flowbite-svelte PR: 1465
File: src/lib/forms/Timepicker.svelte:105-116
Timestamp: 2024-10-18T09:38:03.879Z
Learning: In `Timepicker.svelte`, the `Dropdown` opens as intended and is used exclusively with the 'dropdown' and 'timerange-dropdown' Timepicker types.

Applied to files:

  • src/routes/docs-examples/forms/timepicker/StateAndBind.svelte
  • src/routes/docs-examples/components/datepicker/ActionSlot.svelte
📚 Learning: 2024-11-12T10:36:34.807Z
Learnt from: LahTeuto
Repo: themesberg/flowbite-svelte PR: 1484
File: src/lib/navbar/NavLi.svelte:34-34
Timestamp: 2024-11-12T10:36:34.807Z
Learning: When enhancing ARIA roles in Svelte components, avoid setting `role="presentation"` on elements that should retain the `link` role, as it can diminish ARIA role coverage and negatively affect accessibility.

Applied to files:

  • src/routes/docs/components/carousel.md
  • src/routes/docs/components/card.md
📚 Learning: 2024-10-15T22:41:47.429Z
Learnt from: Chizaruu
Repo: themesberg/flowbite-svelte PR: 1464
File: src/routes/component-data/Datepicker.json:0-0
Timestamp: 2024-10-15T22:41:47.429Z
Learning: The component should be named 'Datepicker' (with lowercase 'p') throughout the codebase to maintain consistency.

Applied to files:

  • src/routes/docs-examples/components/datepicker/ActionSlot.svelte
📚 Learning: 2025-08-31T12:56:05.074Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1745
File: src/lib/types.ts:677-686
Timestamp: 2025-08-31T12:56:05.074Z
Learning: HTMLInputAttributes includes a `group` property that can be used for grouping form controls like checkboxes and radio buttons, so interfaces extending HTMLInputAttributes don't need to explicitly declare `group` unless they want to override its type.

Applied to files:

  • src/routes/docs/components/button-group.md
🪛 LanguageTool
src/routes/docs/components/avatar.md

[style] ~146-~146: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... User dropdown Use this example if you want to show a dropdown menu when clicking on t...

(REP_WANT_TO_VB)

src/routes/docs/components/carousel.md

[style] ~97-~97: Consider replacing ‘Give’ with a different word to let your writing stand out.
Context: ...omatic rotation - Duration timing - Give users enough time to read content (typically ...

(GIVE_TIME_STYLE)


[style] ~120-~120: This is not the usual sequence for adjectives that have no special emphasis.
Context: ...erience - Skipping content - moving past uninteresting slides quickly - Reviewing content ...

(EN_ADJ_ORDER)

CODE_OF_CONDUCT.md

[style] ~32-~32: Try using a synonym here to strengthen your wording.
Context: ...ind - Trolling, insulting or derogatory comments, and personal or political attacks - Pu...

(COMMENT_REMARK)

src/routes/docs/components/button-group.md

[style] ~23-~23: This phrase is redundant. Consider writing “stack”.
Context: ...ent from flowbite-svelte can be used to stack together multiple buttons and links inside a sin...

(SPLICE_TOGETHER)


[style] ~45-~45: This phrase is redundant. Consider writing “stack”.
Context: ... ## Default Use the following code to stack together buttons into a single group. Grouped bu...

(SPLICE_TOGETHER)


[style] ~135-~135: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ttons {#include Outline.svelte} ``` ## Outline with icon Combine outline styling with...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

src/routes/docs/components/card.md

[style] ~74-~74: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ple actions are possible per card - You want to emphasize a specific action - The card ...

(REP_WANT_TO_VB)

⏰ 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). (1)
  • GitHub Check: Playwright and Lint
🔇 Additional comments (83)
CODE_OF_CONDUCT.md (1)

1-127: CODE_OF_CONDUCT.md properly replaced with Contributor Covenant 2.0 policy — previous issues resolved.

The rewrite successfully replaces the minimal policy with a comprehensive Contributor Covenant 2.0 standard, addressing all previous review concerns:

  • No personal email addresses exposed — replaces the hardcoded maintainer email with a community-wide enforcement framework
  • All URLs properly wrapped in markdown link syntax — lines 117, 121, 126–127 use proper markdown links, conforming to linting rules (MD034)

The structure is well-organized with clear sections (Pledge, Standards, Enforcement Responsibilities, Scope, Enforcement, Enforcement Guidelines with four tiers, and Attribution), and attribution correctly credits the Contributor Covenant while linking to the external policy and FAQ for transparency and maintainability.

src/routes/docs/components/button-group.md (5)

11-11: Seealso and LlmLink imports look good.

The new utility imports are properly added and will be used in the See also and LLM Link sections.


14-20: Properly structured relatedLinks array.

The related links array is well-organized with appropriate component references (buttons, list-group, form controls). This provides helpful context for users exploring related components.


25-33: Excellent documentation improvements across all sections.

The expanded content adds substantial value with:

  • Clear use-case bullets explaining when and why to use button groups
  • Accessibility guidelines covering keyboard navigation, ARIA roles, touch targets
  • Best practices with concrete implementation guidance
  • Common patterns (segmented controls, toolbars, pagination, social sharing)
  • Design considerations for spacing, corner radii, responsive behavior

This makes the documentation much more practical and developer-friendly.

Also applies to: 59-65, 73-80, 88-95, 103-114, 122-129, 137-144, 152-159


165-223: New comprehensive sections enhance documentation quality.

The addition of dedicated Accessibility, Best Practices, Common Patterns, and Design Considerations sections transforms this from a reference into a practical guide. The information is well-organized, actionable, and covers real-world use cases developers will encounter.


232-241: Component data section with Key Props is helpful.

Breaking out key props for ButtonGroup and individual Buttons provides a quick reference. This bridges the gap between conceptual examples and actual API usage.

src/routes/docs-examples/components/datepicker/ActionSlot.svelte (1)

2-2: LGTM! Correct import for documentation examples.

The change from $lib to flowbite-svelte is appropriate for documentation, showing users how to import from the published package.

src/routes/docs/components/carousel.md (3)

12-19: Import and relatedLinks setup aligns with doc pattern.

The addition of Seealso to imports and the relatedLinks array follow the established pattern documented in avatar.md, badge.md, and banner.md. The four related components (gallery, modal, tabs, card) are semantically appropriate for carousel documentation.


24-343: Documentation expansion is comprehensive and well-organized.

The substantial additions provide valuable guidance across use cases, performance, accessibility, mobile optimization, and best practices. The "When to Avoid Carousels" section is particularly valuable for guiding developers toward appropriate component selection. Structure with hierarchical headers, bullet points, and subsections enhances scannability and clarity.


347-347: Code change is correct—Seealso component interface matches relatedLinks data structure.

The Seealso component at src/routes/utils/Seealso.svelte accepts a links: string[] prop, and the relatedLinks array in carousel.md provides exactly that: an array of document paths (['/docs/components/gallery', '/docs/components/modal', '/docs/components/tabs', '/docs/components/card']). The component properly loads markdown frontmatter from those paths to extract titles and descriptions for rendering.

src/routes/docs/components/breadcrumb.md (12)

25-34: Comprehensive breadcrumb use cases section.

The expanded list of breadcrumb essentials (user orientation, navigation efficiency, SEO benefits, etc.) is well-structured and provides clear value. This effectively communicates the importance of the component.


47-54: Clear best practices guidance for default breadcrumbs.

The added guidance on starting with home, displaying full paths, making parents clickable, and mobile considerations is practical and helpful. The emphasis on truncating paths on mobile shows awareness of responsive design.


62-69: Solid breadcrumb use cases well articulated.

The examples (visual separation, busy backgrounds, distinct header sections, accessibility contrast) effectively communicate when to use solid breadcrumbs. This helps developers make informed decisions about variant selection.


77-88: Icons section provides clear guidance with practical examples.

The benefits (brand matching, recognition, visual interest, hierarchy clarification, i18n support) and common patterns (home icon, chevrons, category icons) are well-organized and actionable.


96-104: Customization section appropriately emphasizes semantic HTML.

The mention that <ol> provides semantic structure beneficial for accessibility and SEO is a valuable addition that goes beyond pure styling guidance.


110-120: Accessibility section covers key standards.

The accessibility guidelines are comprehensive—semantic HTML, ARIA labels, keyboard navigation, screen reader support, and focus indicators. This aligns well with WCAG standards and modern accessibility practices.


122-135: Best practices section is practical and actionable.

Clear guidance on placement, hierarchy consistency, concise labels, and the distinction between supplements vs. replacement for primary navigation is valuable. The emphasis on not replacing primary navigation is particularly important.


137-151: When to Use Breadcrumbs section provides balanced perspective.

Distinguishing good use cases (e-commerce, documentation, CMS) from scenarios to avoid (single-level sites, flat navigation) helps developers choose appropriately for their use case.


153-162: SEO benefits section includes actionable recommendation.

The mention of schema.org breadcrumb markup and JSON-LD structured data at the end is a forward-looking recommendation that adds depth beyond basic SEO discussion.


164-171: Responsive design patterns are device-aware and practical.

Coverage of truncation, horizontal scroll, collapsed middle items, vertical stacking, and icon-only modes shows comprehensive consideration of mobile constraints. This is valuable guidance often missing from component documentation.


173-175: Seealso component integration looks correct.

The See also section properly invokes the Seealso component with the relatedLinks array (once the path inconsistency in line 19 is fixed).


12-12: Import is valid and properly supported.

Verification confirms that Seealso is correctly exported from src/routes/utils/index.ts (line 16) and the relative import path ../../utils from src/routes/docs/components/breadcrumb.md correctly resolves to the utils module. The import statement is valid.

src/routes/docs/components/buttons.md (21)

27-36: Well-structured introductory content.

The bullet points effectively communicate button use cases with clear categories. This expansion improves discoverability and helps developers understand the breadth of button applications.


51-60: Clear semantic color documentation.

Associating each color variant with specific meanings (primary, destructive, positive, warning, etc.) provides excellent guidance for consistent UI design. The note about visual hierarchy adds practical context.


68-74: Link button use cases are well articulated.

The explanation of why href creates semantic <a> tags with SEO benefits is valuable. This clarity helps developers choose between button and link variants correctly.


82-88: Pill button use cases are contextually useful.

The connection to modern aesthetics and mobile-friendly design justifies the feature, though be cautious that "rounder shapes feel natural on touch screens" is subjective guidance—users may have different preferences across contexts.


98-119: Gradient sections are well explained with distinct purposes.

Clear differentiation between monochrome (hero sections, landing pages) and duotone (brand colors, dimensional effects) guides developers to use the right variant. The caution about using gradients sparingly is good UX advice.


129-135: Gradient outline description appropriately positions it as secondary.

The advice that it "works on various backgrounds" and "can transition to filled on interaction" suggests practical use cases without over-prescribing behavior.


143-149: Shadow effects documentation is clear and justified.

"Depth and elevation" and "visual prominence" are accurate descriptions of shadow psychology; however, note that browser/OS rendering of shadows varies, so test across environments if accessibility to low-vision users is a priority.


157-164: Outline button guidance is comprehensive.

The multi-purpose framing (secondary, multiple options, light backgrounds, cancel) gives developers flexibility while "clear hierarchy" justifies the pattern. Well done.


172-179: Size documentation aligns with common use patterns.

Mapping xs→sm→md→lg→xl to specific contexts (compact, secondary, default, primary, extra emphasis) is practical and helps developers choose correctly. Icons and scannability note is valuable.


187-194: Icon button guidance is actionable.

The points about recognition, context, i18n, and consistency are solid. The note about positioning based on reading direction is an excellent accessibility reminder.


202-208: Badge label use cases are well structured.

Notification counts, status indicators, quantities—all common real-world patterns. The explanation that badges help users make informed decisions about clicking is user-centric framing.


216-222: Icon-only button requirements are clearly stated.

The emphasis on tooltips and accessible labels (aria-label) for screen readers is critical accessibility guidance. Stating "Always include" makes this a requirement, which is appropriate.


230-236: Loading state guidance emphasizes critical UX.

The points about preventing duplicate submissions, providing feedback, and disabling during loading are all essential practices. "Always disable buttons during loading" is a strong, justified recommendation.


244-250: Disabled state documentation is thorough.

The guidance to "remain visible," "indicate unavailability," and "maintain layout" are best practices. The note about conditional features and permission-based actions gives practical use cases.


258-264: Event handling documentation is accurate for Svelte 5.

The use of onclick or standard on* handlers aligns with Svelte 5 event handler syntax (function props vs. the deprecated on: directive from earlier versions). The list of use cases (action triggering, state management, analytics, etc.) is comprehensive.

Based on learnings


274-280: Loading prop documentation is well motivated.

Highlighting automatic disabling, built-in spinner, and prevention of duplicate submissions justifies the pattern. Stating it's "essential for any async operation" sets the right expectation.


286-298: Accessibility section covers essential guidelines.

Keyboard navigation (Tab, Enter/Space), focus indicators, semantic HTML (button vs. a), ARIA labels, disabled state, and WCAG contrast all address real accessibility concerns. Touch target size (44x44px) is a well-recognized mobile standard.


299-312: Best practices section provides actionable guidance.

Clear labels, consistent sizing, visual hierarchy, spacing, confirmation for destructive actions, and touch targets are all industry-standard best practices. The advice about "focus on 1-2 primary actions per view" is excellent for reducing cognitive load. The emphasis on avoiding vague labels ("Click here") is valuable UX guidance.


314-328: Button hierarchy and patterns sections are well structured.

The 4-tier hierarchy (primary, secondary, tertiary, destructive) is clear and replicable. Real-world patterns (form actions, confirmation dialogs, wizards, CRUD) help developers recognize common scenarios and apply the hierarchy correctly.


330-332: Seealso component integration looks good.

The <Seealso links={relatedLinks} /> follows the established pattern for cross-linking documentation (once the relatedLinks paths are corrected).


338-349: Key Props section is comprehensive and accurate.

The list of essential props (color, size, href, pill, outline, gradient, shadow, disabled, loading, type) covers the main button variations. Brief descriptions of each help developers understand when to use each prop without verbose explanations.

src/routes/docs/components/badge.md (15)

12-12: Seealso import correctly added.

The import of Seealso enables the component linking feature used later in the documentation.


15-20: RelatedLinks paths are properly formatted with leading slashes.

All paths follow the correct SvelteKit routing convention. This addresses the pattern established in prior reviews and ensures navigation works reliably.


23-32: Badge introduction effectively communicates value and use cases.

The opening sentence explains core purpose; the bullet points (notification counts, status labels, tags, metrics, attention) cover practical applications. The note about standalone elements as interactive tags adds useful context.


46-54: Color semantics for badges are clearly defined.

Mapping default→blue, dark→subtle, red→errors, green→success, yellow→warnings follows established design patterns. This consistency guidance helps developers use colors intentionally.


61-77: Variants (large, bordered, pills) are explained with contextual use cases.

Large badges for hero/dashboard sections, bordered for minimalist designs, and pills for tag systems give developers clear decision criteria for each variant.


97-103: Badge links documentation includes accessibility reminder.

Highlighting that linked badges need hover states and keyboard accessibility ensures developers don't overlook interactive elements' accessibility requirements.


111-115: Icon badge benefits are well articulated.

Explaining that icons add visual meaning, improve scannability, and create polish justifies their use without over-prescribing when to include them.


123-129: Notification badge guidance correctly delegates to Indicator component.

Referencing the sibling component and explaining the relative class requirement is proper. The use cases (unread counts, pending notifications, cart quantities) contextualize the pattern well.


137-141: Button badge use cases are practical and immediately recognizable.

Inbox counts, cart quantities, filter counts, and action button counts all reflect real-world UI patterns developers encounter frequently.


149-153: Icon-only badge guidance is sound.

The criteria (space limited, universally understood icons, consistent usage, tooltips) help developers decide when icon-only is appropriate.


161-181: Dismissable badges are well explained across three code examples.

The three-part progression (basic dismissable, custom close icon, onclose callback) mirrors the documentation pattern from buttons.md and helps developers implement increasing levels of interactivity incrementally.


189-193: Dynamic color documentation is clear and motivates the use case.

Status indicators responding to real-time data, conditional styling based on business logic—these explain why developers would want dynamic coloring without prescribing specific implementation.


207-226: Accessibility and best practices sections are comprehensive.

Semantic HTML, color independence (not relying solely on color), keyboard navigation, focus indicators, and ARIA labels cover accessibility essentials. Best practices (concise text, sparse usage, consistent meaning, readable contrast) align with industry standards and prevent common mistakes.


228-230: Seealso component integration is properly placed and functional.

The relatedLinks are correctly passed to the Seealso component, enabling cross-documentation navigation.


236-244: Key Props section captures essential badge properties.

color, large, border, rounded, href, dismissable, and icon cover the main badge variations. Brief descriptions help developers understand each prop's purpose.

static/llm/components/badge.md (1)

131-131: Typo corrected: "achive" → "achieve".

The spelling correction improves documentation quality. This and other typo fixes in this file maintain consistency with the main documentation.

static/llm/context-full.txt (2)

2393-2399: Grammar and clarity improvements look good.

The correction in Line 2396 from "achive" to "achieve" and the addition of the article "the" before "parent element" improve both clarity and grammatical correctness. The reference to the sibling Indicator component is properly documented.


2457-2463: Typo correction is accurate.

The correction of "dimissable" to "dismissable" in Line 2460 is the correct spelling. The sentence clearly documents the badge dismissal functionality via the dismissable prop.

src/routes/docs/components/alert.md (2)

11-18: Previous critical issue resolved: RelatedLinks paths now correct.

The prior review flagged missing leading slashes in relatedLinks paths. This file now correctly uses absolute paths (e.g., /docs/components/toast instead of docs/components/toast), and the Seealso import and usage are properly implemented.

Also applies to: 153-153


21-23: Well-organized documentation expansion with accessibility and best practices.

The content additions cover practical use cases, implementation details, and important accessibility considerations. The new Accessibility and Best Practices sections align with industry standards and provide clear, actionable guidance.

Also applies to: 37-43, 49-51, 132-149, 159-166

src/routes/docs/components/avatar.md (2)

12-20: Previous critical issue resolved: RelatedLinks paths now correct.

The prior review flagged missing leading slashes in relatedLinks paths. This file now correctly uses absolute paths (e.g., /docs/components/badge), and the Seealso import and usage are properly implemented.

Also applies to: 205-205


23-25: Comprehensive documentation improvements with clear use cases and accessibility focus.

The expanded content provides practical context for each avatar variant, and the new Accessibility and Best Practices sections offer valuable implementation guidance. The size guidance table and use-case bullets enhance usability.

Also applies to: 39-39, 47-47, 55-55, 81-87, 103-109, 117-124, 182-201

src/routes/docs/components/banner.md (2)

12-20: Previous critical issue resolved: RelatedLinks paths now correct.

The prior review flagged missing leading slashes in relatedLinks paths. This file now correctly uses absolute paths (e.g., /docs/components/alert), and the Seealso import and usage are properly implemented.

Also applies to: 187-187


23-31: Comprehensive documentation with practical guidance and component comparison.

The expanded content provides clear use cases, implementation tips (including localStorage persistence for dismissals), and important accessibility considerations. The new "When to Use Banners vs. Other Components" section effectively guides developers in choosing the right component, and best practices cover legal compliance, performance, and user experience considerations.

Also applies to: 45-47, 85-111, 135-147, 153-183

src/routes/docs-examples/forms/timepicker/StateAndBind.svelte (1)

2-2: LGTM! Documentation example now uses the published package.

The import path change from $lib to flowbite-svelte is appropriate for documentation examples that users will copy and use in their own projects.

src/lib/utils/index.ts (1)

8-8: LGTM! New utility export added to public API.

The createCountdown export makes this utility publicly available, which aligns with the PR's goal of consolidating the public API surface.

src/routes/docs-examples/components/modal/Countdown.svelte (1)

2-2: LGTM! Import consolidated to use published package.

The createCountdown import is now sourced from flowbite-svelte alongside the other components, which is appropriate for documentation examples.

src/routes/docs-examples/components/modal/Full.svelte (1)

2-2: LGTM! Documentation example updated to use published package.

Import path correctly updated from internal $lib to flowbite-svelte.

src/routes/docs-examples/components/clipboard/Modal.svelte (1)

2-2: LGTM! Import path updated for documentation example.

The change from $lib to flowbite-svelte is consistent with other documentation examples in this PR.

src/routes/docs-examples/typography/image/Alignments.svelte (1)

2-2: LGTM! Documentation example uses published package.

Import path correctly updated to use flowbite-svelte.

src/lib/theme/index.ts (1)

4-4: LGTM! ThemeProvider now exported through theme module.

This export makes ThemeProvider publicly available through the theme barrel, enabling access via the top-level library export.

src/lib/index.ts (1)

3-7: LGTM! Public API consolidated with wildcard re-exports.

The change from direct ThemeProvider export to wildcard re-exports from "./theme" and "./utils" successfully consolidates the public API surface, making utilities like createCountdown and ThemeProvider available through the main package export.

src/routes/docs/components/card.md (3)

12-21: LGTM! Well-structured related links integration.

The addition of Seealso import and relatedLinks array provides good cross-referencing between component docs.


26-38: LGTM! Excellent use case overview.

The comprehensive list of card use cases helps users quickly identify applicable patterns for their needs.


270-308: LGTM! Comprehensive accessibility and best practices guidance.

The added sections for Accessibility, Best Practices, and Design Considerations provide valuable guidance for implementing cards correctly. The content follows WCAG guidelines and industry best practices.

src/routes/docs-examples/components/clipboard/Contact.svelte (1)

2-2: LGTM! Appropriate import path for documentation examples.

Changing from the internal $lib alias to the published flowbite-svelte package ensures examples demonstrate the correct import pattern for external users.

src/routes/docs-examples/pages/theme-provider/Theme1.svelte (1)

2-2: LGTM! Consistent import pattern for examples.

This aligns with the pattern of using the published package in documentation examples rather than internal aliases.

src/routes/docs-examples/extend/virtual-masonry/Default.svelte (1)

2-2: LGTM! Clean import consolidation.

Consolidating all component imports from the published flowbite-svelte package improves consistency and demonstrates the correct import pattern for users.

src/routes/docs-examples/pages/theme-provider/Theme2.svelte (1)

20-22: The /types subpath export is properly configured and verified.

The package.json exports map includes a dedicated entry for "./types" with all necessary export conditions (types, import, and default), confirming that the import statement import type { ThemeConfig } from "flowbite-svelte/types"; is fully supported.

src/lib/typography/blockquote/index.ts (1)

1-1: Export pattern verified—no breaking changes.

Verification confirms:

  • Blockquote.svelte has a proper default export (valid Svelte component)
  • ✓ Index.ts correctly re-exports the default as named export: export { default as Blockquote }
  • ✓ Consumers are unaffected: src/lib/index.ts uses export * from "./typography/blockquote" which includes the named Blockquote export, maintaining compatibility with imports like import { Blockquote } from "flowbite-svelte"

Comment on lines 3 to 5
let selectedDate = $state<Date | undefined>(undefined);
let lastAction = $state<string | undefined>();
</script>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove or implement the unused lastAction variable.

The lastAction variable is declared on line 4 and displayed on line 18, but is never updated by any of the action handlers. This will always display "Last action: undefined", which may confuse users following this documentation example.

Consider either:

  • Removing the variable and line 18 if it's not needed, or
  • Updating the button handlers to set lastAction when actions occur

Example implementation if you want to track actions:

    {#snippet actionSlot({ selectedDate, handleClear, handleApply })}
      <div class="mt-2 flex gap-2">
-        <Button size="sm" onclick={handleClear}>Clear</Button>
-        <Button size="sm" onclick={() => selectedDate && handleApply(selectedDate)} disabled={!selectedDate}>Apply</Button>
-        <Button size="sm" onclick={() => console.log("Selection:", selectedDate || "None")}>Show Selection</Button>
+        <Button size="sm" onclick={() => { handleClear(); lastAction = "Clear"; }}>Clear</Button>
+        <Button size="sm" onclick={() => { selectedDate && handleApply(selectedDate); lastAction = "Apply"; }} disabled={!selectedDate}>Apply</Button>
+        <Button size="sm" onclick={() => { console.log("Selection:", selectedDate || "None"); lastAction = "Show Selection"; }}>Show Selection</Button>
      </div>
    {/snippet}

Also applies to: 7-19

🤖 Prompt for AI Agents
In src/routes/docs-examples/components/datepicker/ActionSlot.svelte around lines
3-5 (and affecting lines 7-19), the variable lastAction is declared but never
updated so the UI prints "Last action: undefined"; either remove the lastAction
declaration and the UI line that displays it, or update each action handler (the
button click handlers that set selectedDate or clear it) to assign a string to
lastAction (e.g., "set to YYYY-MM-DD" or "cleared") immediately after performing
the action so the displayed last action reflects the user interaction.

Comment on lines +15 to +20
const relatedLinks = [
'/docs/components/navbar',
'/docs/components/sidebar',
'/docs/components/pagination',
'docs/typography/heading'
];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix inconsistent path format in relatedLinks array.

Line 19 uses 'docs/typography/heading' without a leading slash, while other entries start with /docs/. This inconsistency could cause routing issues.

Apply this diff:

  const relatedLinks = [
    '/docs/components/navbar',
    '/docs/components/sidebar',
    '/docs/components/pagination',
-   'docs/typography/heading'
+   '/docs/typography/heading'
  ];
📝 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
const relatedLinks = [
'/docs/components/navbar',
'/docs/components/sidebar',
'/docs/components/pagination',
'docs/typography/heading'
];
const relatedLinks = [
'/docs/components/navbar',
'/docs/components/sidebar',
'/docs/components/pagination',
'/docs/typography/heading'
];
🤖 Prompt for AI Agents
In src/routes/docs/components/breadcrumb.md around lines 15 to 20, the
relatedLinks array has an inconsistent path 'docs/typography/heading' missing a
leading slash; update that entry to '/docs/typography/heading' so all entries
use the same '/docs/...' format to avoid routing inconsistencies.

Comment on lines +181 to +194
### Key Props

**Breadcrumb:**
- `solid`: Enable solid background style
- `navClass`: Custom classes for the nav element
- `olClass`: Custom classes for the ordered list
- `ariaLabel`: ARIA label for the navigation (default: 'breadcrumb')

**BreadcrumbItem:**
- `home`: Mark this item as the home/root item
- `href`: Link destination (omit for current page)
- `linkClass`: Custom classes for the link element
- `spanClass`: Custom classes for the span (non-linked current page)
- `homeClass`: Custom classes specifically for home item
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

Key Props section provides useful prop summary.

The condensed prop reference for both Breadcrumb and BreadcrumbItem components is helpful, and the note about aria-label="breadcrumb" defaults reinforces accessibility. However, verify that these props match the actual component implementation.


🏁 Script executed:

#!/bin/bash
# Description: Verify Breadcrumb and BreadcrumbItem prop documentation matches implementation

# Search for Breadcrumb component prop definitions
rg -A 20 'export.*Breadcrumb[^I]' src/lib --type ts

Length of output: 5971


I found discrepancies. Let me search the component implementation files to verify the actual props:

Let me search the codebase directly for the actual component implementations and prop usage:

Now let me search the codebase directly for the component file implementations to verify the prop usage:

[/run_scripts]


🏁 Script executed:

#!/bin/bash
# Search for Breadcrumb.svelte and BreadcrumbItem.svelte to verify actual implementation

# First, find the files
fd -e svelte "Breadcrumb" src/lib

# Search for navClass in breadcrumb files
echo "=== Searching for navClass references ==="
rg "navClass" src/lib/breadcrumb

# Search for icon usage in BreadcrumbItem  
echo "=== Searching for icon prop references in BreadcrumbItem ==="
rg -A 5 -B 5 "icon" src/lib/breadcrumb/BreadcrumbItem.svelte

Length of output: 1962


Let me verify the Breadcrumb.svelte file to check if it has all the props mentioned:

[/run_scripts]


🏁 Script executed:

#!/bin/bash
# Check Breadcrumb.svelte for prop definitions and usage
rg -A 10 "let.*props" src/lib/breadcrumb/Breadcrumb.svelte

Length of output: 521


Update documentation to match actual component implementation.

The documentation has two discrepancies with the actual component props:

  1. navClass does not exist – Breadcrumb.svelte does not accept or use a navClass prop; this should be removed from the documentation.
  2. icon prop is missing – BreadcrumbItem.svelte accepts and actively uses an icon prop (destructured and rendered conditionally), but this is not documented in the Key Props section.

Update the documentation to reflect:

  • Breadcrumb: Remove navClass
  • BreadcrumbItem: Add icon prop
🤖 Prompt for AI Agents
In src/routes/docs/components/breadcrumb.md around lines 181 to 194, the Key
Props section is out of sync with the components: remove the non-existent
Breadcrumb prop `navClass` and add the missing BreadcrumbItem prop `icon`;
update the list so Breadcrumb shows `solid`, `olClass`, and `ariaLabel` (with
default), and BreadcrumbItem shows `home`, `href`, `linkClass`, `spanClass`,
`homeClass`, and `icon`, ensuring `icon` is documented as an optional prop used
to render an icon when present.

Comment on lines +16 to +22
const relatedLinks = [
'/docs/components/button-group',
'docs/utilities/close-button',
'docs/forms/radio#radiobutton',
'docs/forms/checkbox#checkboxbutton',
'/docs/components/badge'
];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Critical: RelatedLinks paths have inconsistent formatting.

The relatedLinks array mixes paths with and without leading slashes, which breaks SvelteKit navigation for some entries. Lines 18-20 are missing the leading slash prefix.

  const relatedLinks = [
    '/docs/components/button-group',
-   'docs/utilities/close-button',
-   'docs/forms/radio#radiobutton',
-   'docs/forms/checkbox#checkboxbutton',
+   '/docs/utilities/close-button',
+   '/docs/forms/radio#radiobutton',
+   '/docs/forms/checkbox#checkboxbutton',
    '/docs/components/badge'
  ];
🤖 Prompt for AI Agents
In src/routes/docs/components/buttons.md around lines 16 to 22 the relatedLinks
array mixes paths with and without leading slashes (lines 18–20), which breaks
SvelteKit navigation; update those entries to include a leading slash so all
items are absolute (change docs/utilities/close-button to
/docs/utilities/close-button, docs/forms/radio#radiobutton to
/docs/forms/radio#radiobutton, and docs/forms/checkbox#checkboxbutton to
/docs/forms/checkbox#checkboxbutton) ensuring all array entries consistently
start with '/'.

Copy link
Copy Markdown
Contributor

@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

Caution

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

⚠️ Outside diff range comments (1)
static/llm/components/dropdown.md (1)

864-866: Pre-existing issue: Reference link points to wrong component.

The reference link on line ~866 currently points to /docs/components/drawer/ but should reference /docs/components/dropdown/. This appears to be a copy-paste error from another documentation file, not introduced by this PR. Consider fixing as a follow-up.

🧹 Nitpick comments (1)
src/routes/docs-examples/components/device-mockups/Smartwatch.svelte (1)

6-6: Tailwind utility fix is correct; optionally normalize class order with dark variant

The class string on the light image is now syntactically valid (w-[188px] h-[193px] dark:hidden) and matches the dimensions of the dark image, so behavior looks good. If you care about readability, you could align the class order with Line 7 (e.g., h-[193px] w-[188px] dark:hidden) so both images follow the same pattern, but this is purely cosmetic.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f0c2e69 and 69b0913.

📒 Files selected for processing (42)
  • src/lib/navbar/NavContainer.svelte (2 hunks)
  • src/lib/navbar/NavUl.svelte (3 hunks)
  • src/routes/builder/table/+page.svelte (1 hunks)
  • src/routes/component-data/NavContainer.json (1 hunks)
  • src/routes/component-data/NavUl.json (1 hunks)
  • src/routes/docs-examples/components/device-mockups/Smartwatch.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Caption.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Checkbox.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Colors1.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Colors2.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Default.svelte (1 hunks)
  • src/routes/docs-examples/components/table/DoubleClick.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Head.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Hover.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Scrolling.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Shadow.svelte (1 hunks)
  • src/routes/docs-examples/components/table/Striped.svelte (1 hunks)
  • src/routes/docs-examples/components/table/StripedColor.svelte (1 hunks)
  • src/routes/docs-examples/components/table/WithoutBorder.svelte (1 hunks)
  • src/routes/docs-examples/components/toast/Blur.svelte (1 hunks)
  • src/routes/docs/components/dropdown.md (1 hunks)
  • src/routes/docs/components/gallery.md (2 hunks)
  • src/routes/docs/components/list-group.md (3 hunks)
  • src/routes/docs/components/navbar.md (1 hunks)
  • src/routes/docs/components/progress.md (2 hunks)
  • src/routes/docs/components/skeleton.md (1 hunks)
  • src/routes/docs/components/tabs.md (3 hunks)
  • src/routes/docs/components/timeline.md (1 hunks)
  • src/routes/docs/components/toast.md (1 hunks)
  • src/routes/utils/CopyCliboardInput.svelte (2 hunks)
  • static/llm/components/device-mockups.md (1 hunks)
  • static/llm/components/dropdown.md (1 hunks)
  • static/llm/components/gallery.md (2 hunks)
  • static/llm/components/list-group.md (3 hunks)
  • static/llm/components/navbar.md (3 hunks)
  • static/llm/components/progress.md (2 hunks)
  • static/llm/components/skeleton.md (1 hunks)
  • static/llm/components/table.md (13 hunks)
  • static/llm/components/tabs.md (3 hunks)
  • static/llm/components/timeline.md (1 hunks)
  • static/llm/components/toast.md (2 hunks)
  • static/llm/context-full.txt (34 hunks)
✅ Files skipped from review due to trivial changes (15)
  • static/llm/components/list-group.md
  • src/routes/docs-examples/components/table/Striped.svelte
  • static/llm/components/timeline.md
  • static/llm/components/tabs.md
  • src/routes/docs-examples/components/table/DoubleClick.svelte
  • src/routes/docs-examples/components/toast/Blur.svelte
  • static/llm/components/progress.md
  • src/routes/docs/components/navbar.md
  • static/llm/components/skeleton.md
  • static/llm/components/table.md
  • src/routes/docs-examples/components/table/Caption.svelte
  • src/routes/docs-examples/components/table/Checkbox.svelte
  • src/routes/docs/components/list-group.md
  • static/llm/components/gallery.md
  • src/routes/docs/components/progress.md
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2024-10-18T09:38:03.879Z
Learnt from: Chizaruu
Repo: themesberg/flowbite-svelte PR: 1465
File: src/lib/forms/Timepicker.svelte:105-116
Timestamp: 2024-10-18T09:38:03.879Z
Learning: In `Timepicker.svelte`, the `Dropdown` opens as intended and is used exclusively with the 'dropdown' and 'timerange-dropdown' Timepicker types.

Applied to files:

  • src/routes/docs/components/dropdown.md
  • static/llm/components/dropdown.md
  • static/llm/context-full.txt
📚 Learning: 2024-11-22T08:37:27.996Z
Learnt from: mrh1997
Repo: themesberg/flowbite-svelte PR: 1442
File: src/lib/utils/Popper.svelte:144-145
Timestamp: 2024-11-22T08:37:27.996Z
Learning: In `src/lib/utils/Popper.svelte`, inconsistencies in event handling (e.g., using both `mouseenter`/`mouseleave` and `pointerenter`/`pointerleave`) may be intentional to minimize modifications and reduce the risk of new problems.

Applied to files:

  • src/routes/docs-examples/components/table/Hover.svelte
⏰ 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). (1)
  • GitHub Check: Playwright and Lint
🔇 Additional comments (40)
src/routes/docs/components/gallery.md (1)

3-4: Documentation typo corrections—well done.

The corrections fix spelling errors in the title ("Mansonry" → "Masonry"), breadcrumb, and body text ("masongry" → "masonry"), improving consistency and clarity throughout the gallery component documentation.

Also applies to: 45-45

src/routes/docs/components/skeleton.md (2)

85-85: Correct the reference link URL.

The link reference now correctly points to the skeleton component documentation instead of the sidebar component.


11-15: Verify Seealso component consistency across documentation pages.

According to the PR summary, Seealso components with relatedLinks are being added across multiple component documentation pages. This file does not currently include a Seealso import or usage, unlike the pattern mentioned in the enriched summary. Confirm whether this page was intentionally excluded from the Seealso updates or if this represents an incomplete update.

static/llm/components/device-mockups.md (1)

118-118: Good catch on the Tailwind syntax correction.

The class attribute now correctly separates the width and height utilities with w-[188px] h-[193px] instead of the malformed w-[188px h-[193px]. This ensures users copying the example will get valid, working code.

src/routes/docs/components/toast.md (1)

106-106: Good catch on the typo fix.

Correcting align={flase} to align={false} ensures the documentation accurately reflects valid Svelte/JavaScript syntax. The invalid identifier flase would have caused a runtime error.

src/routes/docs/components/timeline.md (2)

61-61: ✓ Typo correction improves clarity.

The change correcting "timline" to "timeline" in the Activity Log section description is accurate and improves document quality.


1-95: Verify consistency with other component doc updates in this PR.

The enriched summary notes that while other component documentation files in this PR (avatar, badge, carousel, etc.) are receiving Seealso imports and relatedLinks updates, timeline.md does not include these changes. Confirm whether this is intentional (timeline.md only receives typo fixes in this iteration) or whether timeline.md should also be updated for consistency with the broader PR pattern.

static/llm/components/toast.md (1)

400-400: Inconsistency between summary and marked changes.

The AI summary claims a typo was fixed ("align prop value corrected from flase to false in the Advanced examples"), but line 400 shows correct align={false} syntax, and the marked changed line contains explanatory text rather than a code block with the claimed typo. The summary does not clearly map to the actual changed lines provided.

src/routes/docs/components/dropdown.md (1)

77-77: LGTM! Spelling correction.

The heading text has been correctly updated from "Programatic" to "Programmatic".

src/routes/docs-examples/components/table/Default.svelte (1)

15-15: LGTM! Data correction.

The color value has been correctly updated from "Sliver" to "Silver" for the Apple MacBook Pro row.

src/routes/docs-examples/components/table/Scrolling.svelte (1)

25-25: LGTM! Consistent data correction.

The color value has been correctly updated from "Sliver" to "Silver", maintaining consistency with other table examples.

src/routes/docs-examples/components/table/Colors1.svelte (1)

15-15: LGTM! Data correction.

The color value has been correctly updated from "Sliver" to "Silver".

src/routes/docs-examples/components/table/Head.svelte (1)

23-23: LGTM! Data correction.

The color value has been correctly updated from "Sliver" to "Silver".

src/routes/docs-examples/components/table/StripedColor.svelte (1)

18-18: LGTM! Data correction.

The color value has been correctly updated from "Sliver" to "Silver".

src/routes/builder/table/+page.svelte (1)

37-37: LGTM! Data correction in table items.

The color value in the tableItems array has been correctly updated from "Sliver" to "Silver", ensuring consistency across all table examples.

src/routes/docs-examples/components/table/Hover.svelte (1)

18-18: LGTM! Data correction.

The color value has been correctly updated from "Sliver" to "Silver", completing the consistent correction across all table examples in this PR.

src/routes/docs-examples/components/table/Shadow.svelte (1)

15-15: Typo corrected.

Good catch fixing "Sliver" to "Silver" for the MacBook color.

src/routes/docs-examples/components/table/WithoutBorder.svelte (1)

15-15: Typo corrected.

Consistent fix across table examples - "Silver" is correct for the MacBook color.

src/routes/docs-examples/components/table/Colors2.svelte (1)

15-15: Typo corrected.

The correction from "Sliver" to "Silver" maintains consistency across all table documentation examples.

static/llm/components/dropdown.md (1)

149-149: Typo fix: "Programatic" → "Programmatic".

Clear documentation improvement. The header now uses the correct English spelling.

src/routes/docs/components/tabs.md (1)

61-61: Editorial updates look good.

The hyphenation changes ("SVG‑powered icon" and "Full‑width tabs") correctly apply compound adjective formatting rules in English. The wording updates maintain clarity and consistency with documentation standards.

Also applies to: 75-75

src/routes/utils/CopyCliboardInput.svelte (1)

6-6: LGTM! Typo fix improves consistency.

The prop name has been correctly updated from clasName to className, which is the conventional naming in Svelte/React ecosystems.

Also applies to: 33-33

static/llm/components/navbar.md (2)

112-112: LGTM! Typo correction.

Fixed "transtion" → "transition" in the transitions section description.


499-499: LGTM! Documentation aligns with code changes.

Updated prop descriptors from clasName to className to match the corrected prop naming in the component implementations.

Also applies to: 547-547

src/routes/component-data/NavContainer.json (1)

10-10: LGTM! Data schema aligns with component updates.

Updated the prop descriptor to reflect the corrected className variable name used in NavContainer.svelte.

src/routes/component-data/NavUl.json (1)

17-17: LGTM! Data schema aligns with component updates.

Updated the prop descriptor to reflect the corrected className prop name used in NavUl.svelte.

src/lib/navbar/NavUl.svelte (1)

24-24: LGTM! Comprehensive prop rename from clasName to className.

The prop destructuring, derived class computation, and documentation have all been correctly updated. The public API remains unchanged (still accessed via class prop), ensuring no breaking changes.

Also applies to: 65-65, 98-98

src/lib/navbar/NavContainer.svelte (1)

7-7: LGTM! Clean variable rename from clasName to className.

The prop destructuring, class binding, and documentation have all been correctly updated. The public API remains unchanged (still accessed via class prop), maintaining backward compatibility.

Also applies to: 12-12, 24-24

static/llm/context-full.txt (12)

2396-2396: Typo corrections improve documentation quality.

Corrections to "achieve" and "dismissable" fix standard spelling errors. These updates enhance documentation clarity and professionalism.

Also applies to: 2460-2460


5880-5880: Example asset reference update.

The device mockup example image source has been updated. This appears to be a routine documentation example refresh.


6615-6615: Documentation clarity improvements.

Additions of "(Masonry)" subtitle and emphasis on section headings improve navigation and component identification. Spelling correction to "masonry" is accurate.

Also applies to: 7893-7893, 7942-7942


8618-8618: Technical documentation improvements for list group components.

Clarifications on attrs attribute usage and proper component name capitalization (ListgroupItem) enhance documentation precision and consistency with Svelte naming conventions.

Also applies to: 8642-8642, 8732-8732


9913-9913: API documentation formatting consistency.

Minor wording refinements and property documentation standardization improve API reference clarity for NavHamburger and Navbar components.

Also applies to: 10300-10300, 10348-10348


11415-11415: Progress bar documentation enhancements.

Clarifications on labelOutside prop usage and detailed explanation of animation customization options improve developer guidance and reduce ambiguity.

Also applies to: 11488-11488


13784-13784: Documentation reference link.

Addition of Skeleton component reference link enhances cross-linking within component documentation and aligns with broader PR objective of improving component relationship visibility.


14976-14976: Table example data standardization.

Consistent example data across multiple table component documentation sections ("MacBook Pro 17"" with "Silver" color) improves documentation clarity and provides uniform demonstration data for users learning the table component.

Also applies to: 15018-15018, 15087-15087, 15144-15144, 15259-15259, 15351-15351, 15399-15399, 15438-15438, 15487-15487, 15591-15591, 15626-15626, 15668-15668


15733-15733: Data structure alignment with table examples.

Table data field updated to align with standardized example data across table component documentation.


15993-15993: Tabs component documentation clarity enhancements.

Documentation improvements clarifying custom styling approach via activeClasses/inactiveClasses and SVG icon usage with reference to icon component library enhance developer guidance.

Also applies to: 16047-16047


16156-16156: Typography consistency in section headings.

Hyphenation of "full-width" as a compound adjective improves documentation consistency and readability per English typography standards.


16833-16833: Component behavior documentation enhancements.

Improved explanations of Activity timeline structure, toast transition examples, and multi-line alignment customization provide clearer guidance for developers implementing these features.

Also applies to: 17370-17370, 17415-17415

## Tabs with underline

You can control the style of tabs component by settings the `activeClasses` and `inactiveClasses` on the `TabItem` elements. See the `Custom style` section below for more details.
You can control the style of tabs component by setting the `activeClasses` and `inactiveClasses` on the `TabItem` elements. See the `Custom style` section below for more details.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify the reference to "Custom style" section.

Line 45 references a "Custom style" section below for more details, but no such section appears in the visible documentation. Either this section exists elsewhere in the file (outside the provided excerpt) or the reference is broken.


🏁 Script executed:

#!/bin/bash
# Description: Check if "Custom style" section exists in tabs.md
rg -n "Custom style" src/routes/docs/components/tabs.md

Length of output: 181



---

🏁 Script executed:

```shell
#!/bin/bash
# Search for markdown headers and section titles in tabs.md
rg -n "^#+\s" src/routes/docs/components/tabs.md

Length of output: 331


🏁 Script executed:

#!/bin/bash
# Check the full content to see section structure around line 45
cat src/routes/docs/components/tabs.md | head -100 | tail -70

Length of output: 2097


Fix broken cross-reference to non-existent section.

The reference to "Custom style" section on line 45 is broken—no such section exists in the file. The available sections are: Setup, Default tabs, Tabs with underline, Tabs with icons, Pills tabs, Full‑width tabs, Tabs with selected and key, Components in tab contents, Using Svelte's snapshot to preserve the input, Active class, Component data, References, GitHub Links, and LLM Link. Either add the missing section with styling details or remove/correct the reference.

🤖 Prompt for AI Agents
In src/routes/docs/components/tabs.md around line 45, the sentence references a
non-existent "Custom style" section; update the copy to point to the correct
existing section (for example "Active class") or add a new "Custom style"
section that documents how to use activeClasses and inactiveClasses on TabItem
(describe props, example class names, and where to place the markup). Make the
change so the cross-reference matches an actual heading in the file and ensure
the heading slug/anchor will work for links.

Copy link
Copy Markdown
Contributor

@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

Caution

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

⚠️ Outside diff range comments (2)
static/llm/components/accordion.md (1)

186-186: Fix typo in Icon Accordion example.

Line 186 contains "sintexplicabo" which appears to be a missing space. It should be "sint explicabo" to match the pattern used elsewhere.

-    <p class="mb-2 text-gray-500 dark:text-gray-400">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo ab necessitatibus sintexplicabo...</p>
+    <p class="mb-2 text-gray-500 dark:text-gray-400">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo ab necessitatibus sint explicabo...</p>
static/llm/components/alert.md (1)

368-404: Add missing imports and variable definitions for Seealso and CompoAttributesViewer components.

The file uses <Seealso links={relatedLinks} /> (line 370) and <CompoAttributesViewer {dirName}/> (line 404) but these components are never imported, and the variables relatedLinks and dirName are never defined. This will cause runtime errors.

Add a proper MDsveX script block at the file level (outside markdown code examples) with:

  • Import statements for Seealso and CompoAttributesViewer
  • Definition of relatedLinks and dirName variables
🧹 Nitpick comments (3)
static/llm/components/accordion.md (1)

622-639: Documentation layout has redundant props sections.

Lines 583–619 and lines 622–639 both document the same Accordion and AccordionItem props. The earlier section lists props without descriptions, while the new section provides brief descriptions. Consider consolidating these into a single, comprehensive props reference to avoid reader confusion and maintenance burden.

Merge the two props sections into one comprehensive reference with descriptions and type information:

-### Accordion
-
-#### Types
-
-[AccordionProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L207)
-
-#### Props
-
-- children
-- flush
-- activeClass
-- inactiveClass
-- multiple: false
-- class: className
-- transitionType
-
-### AccordionItem
-
-#### Types
-
-[AccordionItemProps](https://github.com/themesberg/flowbite-svelte/blob/main/src/lib/types.ts#L215)
-
-#### Props
-
-- children
-- header
-- arrowup
-- arrowdown
-- open: $bindable(false)
-- activeClass
-- inactiveClass
-- transitionType: slide
-- transitionParams
-- class: className
-- classes
-- headerClass
-- contentClass
-
-
 ### Accordion Props
 
 - `flush`: Remove rounded borders
 - `activeClass`: CSS classes for active/expanded items
 - `inactiveClass`: CSS classes for inactive/collapsed items  
 - `multiple`: Allow multiple items to be open simultaneously (default: false)
 - `transitionType`: Transition effect type (default: 'slide')
 
 ### AccordionItem Props
 
 - `open`: Control whether item is expanded (bindable)
 - `activeClass`: Override parent's activeClass for this item
 - `inactiveClass`: Override parent's inactiveClass for this item
 - `transitionType`: Override parent's transitionType for this item
 - `transitionParams`: Customize transition parameters (duration, easing, etc.)
 - `headerClass`: CSS classes for the header element
 - `contentClass`: CSS classes for the content element
static/llm/components/avatar.md (1)

211-217: Minor wording enhancement: reduce phrase repetition for variety.

The static analysis hint flags that line 211 ("Use this example if you want to show...") repeats phrasing used in nearby sections. To add variety and improve readability:

Before:

Use this example if you want to show a dropdown menu when clicking on the avatar component. Avatar dropdowns are commonly used in navigation headers for:

After:

Avatar dropdowns enable quick access to user account actions from navigation headers. They're commonly used for:

This reads more naturally while maintaining the same meaning.

static/llm/components/button-group.md (1)

24-44: Refine "Default" section wording to eliminate redundancy.

The static analysis hint correctly identifies that line 26 contains redundant phrasing: "stack together buttons into a single group" could be simplified to "stack buttons into a single group" for improved clarity and conciseness.

Current:

Use the following code to stack together buttons into a single group. Grouped buttons provide visual cohesion...

Suggested:

Use the following code to stack buttons into a single group. Grouped buttons provide visual cohesion...
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 69b0913 and e3f7c9d.

📒 Files selected for processing (17)
  • static/llm/components/accordion.md (20 hunks)
  • static/llm/components/alert.md (12 hunks)
  • static/llm/components/avatar.md (15 hunks)
  • static/llm/components/badge.md (17 hunks)
  • static/llm/components/banner.md (10 hunks)
  • static/llm/components/bottom-navigation.md (12 hunks)
  • static/llm/components/breadcrumb.md (7 hunks)
  • static/llm/components/button-group.md (11 hunks)
  • static/llm/components/buttons.md (19 hunks)
  • static/llm/components/card.md (15 hunks)
  • static/llm/components/carousel.md (12 hunks)
  • static/llm/components/clipboard.md (2 hunks)
  • static/llm/components/datepicker.md (1 hunks)
  • static/llm/components/modal.md (2 hunks)
  • static/llm/forms/timepicker.md (1 hunks)
  • static/llm/pages/ai-integration.md (2 hunks)
  • static/llm/typography/image.md (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • static/llm/typography/image.md
  • static/llm/components/breadcrumb.md
🧰 Additional context used
🧠 Learnings (12)
📚 Learning: 2025-03-20T12:47:33.307Z
Learnt from: superstes
Repo: themesberg/flowbite-svelte PR: 0
File: :0-0
Timestamp: 2025-03-20T12:47:33.307Z
Learning: In the Flowbite Svelte library's composite form components like MultiInput, when implementing focus styles with focus-within, create a dedicated focusWithinClasses object with appropriate colors for each state (base, primary, green, red). Using just 'focus-within:ring-1' without color specification won't correctly apply color-specific styling when the input receives focus directly.

Applied to files:

  • static/llm/components/avatar.md
  • static/llm/components/accordion.md
  • static/llm/components/button-group.md
📚 Learning: 2024-10-18T09:38:03.879Z
Learnt from: Chizaruu
Repo: themesberg/flowbite-svelte PR: 1465
File: src/lib/forms/Timepicker.svelte:105-116
Timestamp: 2024-10-18T09:38:03.879Z
Learning: In `Timepicker.svelte`, the `Dropdown` opens as intended and is used exclusively with the 'dropdown' and 'timerange-dropdown' Timepicker types.

Applied to files:

  • static/llm/components/avatar.md
  • static/llm/forms/timepicker.md
  • static/llm/components/datepicker.md
📚 Learning: 2024-11-22T08:37:27.996Z
Learnt from: mrh1997
Repo: themesberg/flowbite-svelte PR: 1442
File: src/lib/utils/Popper.svelte:144-145
Timestamp: 2024-11-22T08:37:27.996Z
Learning: In `src/lib/utils/Popper.svelte`, inconsistencies in event handling (e.g., using both `mouseenter`/`mouseleave` and `pointerenter`/`pointerleave`) may be intentional to minimize modifications and reduce the risk of new problems.

Applied to files:

  • static/llm/components/clipboard.md
  • static/llm/components/buttons.md
  • static/llm/components/datepicker.md
📚 Learning: 2025-03-20T11:11:53.953Z
Learnt from: superstes
Repo: themesberg/flowbite-svelte PR: 0
File: :0-0
Timestamp: 2025-03-20T11:11:53.953Z
Learning: In the Flowbite Svelte library's MultiInput component, the 'inputInvalid' property should be exported and passed to the Wrapper component to properly style the component's ring with red color when validation fails, similar to how the Input component handles validation states.

Applied to files:

  • static/llm/components/clipboard.md
📚 Learning: 2025-03-20T12:47:33.307Z
Learnt from: superstes
Repo: themesberg/flowbite-svelte PR: 0
File: :0-0
Timestamp: 2025-03-20T12:47:33.307Z
Learning: In the Flowbite Svelte library's composite form components like MultiInput, when implementing focus styles, ensure both the container (with focus-within) and the inner input element (with direct focus) have dynamic styling based on the validation state. The input element needs its own focus styles that change to red when inputInvalid=true.

Applied to files:

  • static/llm/components/clipboard.md
  • static/llm/components/alert.md
  • static/llm/components/card.md
📚 Learning: 2024-11-12T10:36:34.807Z
Learnt from: LahTeuto
Repo: themesberg/flowbite-svelte PR: 1484
File: src/lib/navbar/NavLi.svelte:34-34
Timestamp: 2024-11-12T10:36:34.807Z
Learning: When enhancing ARIA roles in Svelte components, avoid setting `role="presentation"` on elements that should retain the `link` role, as it can diminish ARIA role coverage and negatively affect accessibility.

Applied to files:

  • static/llm/components/carousel.md
  • static/llm/components/bottom-navigation.md
  • static/llm/components/badge.md
  • static/llm/components/buttons.md
  • static/llm/components/accordion.md
  • static/llm/components/alert.md
  • static/llm/components/button-group.md
  • static/llm/components/card.md
📚 Learning: 2025-09-04T10:33:41.720Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1751
File: src/lib/tabs/TabItem.svelte:33-33
Timestamp: 2025-09-04T10:33:41.720Z
Learning: In Svelte 5, DOM event handlers should use function props like `onclick`, `onchange`, `oninput` etc. The `on:click`, `on:change` syntax from previous Svelte versions is deprecated/obsolete in Svelte 5.

Applied to files:

  • static/llm/components/buttons.md
  • static/llm/components/alert.md
  • static/llm/components/button-group.md
📚 Learning: 2025-08-31T14:31:57.582Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1745
File: src/lib/forms/checkbox/CheckboxButton.svelte:16-17
Timestamp: 2025-08-31T14:31:57.582Z
Learning: In Svelte 5, the `on:event` syntax for event forwarding is obsolete. Event handlers are passed as callback props (e.g., `onchange`, `oninput`) through `{...restProps}` instead of using `on:change`, `on:input` etc.

Applied to files:

  • static/llm/components/buttons.md
📚 Learning: 2025-11-03T10:08:17.733Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1819
File: src/lib/tour/Tour.svelte:21-24
Timestamp: 2025-11-03T10:08:17.733Z
Learning: In Svelte 5 components, custom event handler props should follow the lowercase naming convention (e.g., `oncomplete`, `onskip`, `onopen`) rather than camelCase (e.g., `onComplete`, `onSkip`, `onOpen`), consistent with DOM event handlers like `onclick`, `onchange`, etc.

Applied to files:

  • static/llm/components/buttons.md
  • static/llm/components/alert.md
📚 Learning: 2025-08-31T13:01:17.658Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1745
File: src/lib/forms/checkbox/Checkbox.svelte:22-27
Timestamp: 2025-08-31T13:01:17.658Z
Learning: createEventDispatcher is deprecated in Svelte 5. Components should use callback props instead of event dispatchers for event handling.

Applied to files:

  • static/llm/components/buttons.md
  • static/llm/components/alert.md
📚 Learning: 2025-08-31T12:56:05.074Z
Learnt from: jjagielka
Repo: themesberg/flowbite-svelte PR: 1745
File: src/lib/types.ts:677-686
Timestamp: 2025-08-31T12:56:05.074Z
Learning: HTMLInputAttributes includes a `group` property that can be used for grouping form controls like checkboxes and radio buttons, so interfaces extending HTMLInputAttributes don't need to explicitly declare `group` unless they want to override its type.

Applied to files:

  • static/llm/components/button-group.md
📚 Learning: 2024-10-15T22:41:47.429Z
Learnt from: Chizaruu
Repo: themesberg/flowbite-svelte PR: 1464
File: src/routes/component-data/Datepicker.json:0-0
Timestamp: 2024-10-15T22:41:47.429Z
Learning: The component should be named 'Datepicker' (with lowercase 'p') throughout the codebase to maintain consistency.

Applied to files:

  • static/llm/components/datepicker.md
🪛 LanguageTool
static/llm/components/avatar.md

[style] ~211-~211: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... User dropdown Use this example if you want to show a dropdown menu when clicking on t...

(REP_WANT_TO_VB)

static/llm/components/carousel.md

[style] ~79-~79: Consider replacing ‘Give’ with a different word to let your writing stand out.
Context: ...omatic rotation - Duration timing - Give users enough time to read content (typically ...

(GIVE_TIME_STYLE)


[style] ~107-~107: This is not the usual sequence for adjectives that have no special emphasis.
Context: ...erience - Skipping content - moving past uninteresting slides quickly - Reviewing content ...

(EN_ADJ_ORDER)

static/llm/components/button-group.md

[style] ~26-~26: This phrase is redundant. Consider writing “stack”.
Context: ... ## Default Use the following code to stack together buttons into a single group. Grouped bu...

(SPLICE_TOGETHER)

static/llm/components/card.md

[style] ~61-~61: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ple actions are possible per card - You want to emphasize a specific action - The card ...

(REP_WANT_TO_VB)

⏰ 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). (1)
  • GitHub Check: Playwright and Lint
🔇 Additional comments (28)
static/llm/forms/timepicker.md (1)

37-47: Update import path to public package in documentation example.

Line 41 correctly updates the import from the internal $lib alias to the public flowbite-svelte package, making this example consistent with the other examples in the file. This change is appropriate for documentation—users should see how to import from the published package rather than internal library paths.

static/llm/components/accordion.md (2)

568-576: Excellent addition of comprehensive accessibility documentation.

The new Accessibility section clearly documents keyboard navigation, ARIA support, focus management, and screen reader compatibility. This improves discoverability of important a11y features and helps developers build inclusive interfaces.


577-579: Variables are properly defined in the source markdown file.

The relatedLinks and dirName variables referenced in static/llm/components/accordion.md are already defined in the corresponding source file src/routes/docs/components/accordion.md. Both are declared as constants in the <script> tag:

  • const dirName = toKebabCase(component_title); (line 13)
  • const relatedLinks = ['/docs/components/tabs','/docs/components/dropdown','/docs/components/modal']; (line 14)

The static/llm files are generated from these source files during the documentation build process, so these variables are correctly available when the markdown is processed. No action needed.

Likely an incorrect or invalid review comment.

static/llm/components/modal.md (1)

503-503: Verify createCountdown export from flowbite-svelte.

Line 503 correctly updates the import path, but line 523 introduces createCountdown as a new import from "flowbite-svelte". Ensure this utility is properly exported from the package and documented in the public API.

Also applies to: 523-523

static/llm/components/datepicker.md (1)

359-359: Import path correctly updated to external package.

The import on line 359 is properly migrated to reference the external "flowbite-svelte" package, consistent with the PR's documentation update pattern.

static/llm/components/clipboard.md (1)

295-295: Import paths correctly migrated to external package.

Lines 295 and 340 properly update imports to reference "flowbite-svelte" rather than the internal "$lib" alias, consistent with the documentation migration pattern across this PR.

Also applies to: 340-340

static/llm/pages/ai-integration.md (2)

4-9: MCP Server documentation provides clear setup and usage guidance.

The expanded documentation effectively introduces the Model Context Protocol server for Flowbite-Svelte with well-organized sections covering server overview, getting started steps, and configuration details. The Claude Desktop setup instructions and JSON configuration example are clear and accurate.


116-116: No issues found. The referenced URL is accessible and properly configured.

Verification confirms that https://flowbite-svelte.com/llm/components/buttons.md returns HTTP 200 with valid content, and the local file exists at ./static/llm/components/buttons.md. The documentation path structure is correct and functional. The code at line 116 is working as intended.

static/llm/components/carousel.md (2)

6-18: Carousel use cases effectively communicate component versatility.

The expanded list of use cases (lines 6-18) provides clear, practical examples of carousel applications from image galleries to feature highlights. This helps users understand when to use the component.


452-454: Missing imports and undefined variables at lines 454 and end of file.

Two critical issues prevent this code from functioning:

  1. Line 454: <Seealso links={relatedLinks} /> references undefined Seealso component (not imported) and undefined relatedLinks variable (not defined in any script section).

  2. End of file: <CompoAttributesViewer {dirName}/> references undefined CompoAttributesViewer component (not imported) and undefined dirName variable (not defined anywhere).

Add the missing imports to the appropriate <script> section and define both relatedLinks and dirName variables before use.

⛔ Skipped due to learnings
Learnt from: LahTeuto
Repo: themesberg/flowbite-svelte PR: 1484
File: src/lib/navbar/NavLi.svelte:34-34
Timestamp: 2024-11-12T10:36:34.807Z
Learning: When enhancing ARIA roles in Svelte components, avoid setting `role="presentation"` on elements that should retain the `link` role, as it can diminish ARIA role coverage and negatively affect accessibility.
static/llm/components/buttons.md (2)

424-450: Comprehensive accessibility and best practices guidance.

Lines 424-450 provide thorough accessibility coverage (keyboard navigation, focus states, ARIA labels, semantic HTML, disabled/loading states, color contrast, touch targets) and best practices guidance (clear labels, consistent sizing, visual hierarchy, spacing, loading states, confirmation for destructive actions). This aligns with WCAG standards and modern UX best practices.


30-39: Color semantics clearly communicate button purpose.

The expanded guidance on color meanings (lines 30-39) provides clear semantic guidance: blue for primary actions, alternative/dark for secondary, red for destructive, green for positive, yellow for warning, and purple for special features. This helps users make informed design decisions.

static/llm/components/card.md (2)

554-600: Comprehensive accessibility, design, and layout guidance.

Lines 554-600 provide thorough coverage of accessibility best practices, design considerations (elevation, borders, hover states, spacing, mobile adaptation, empty states, skeleton screens), and common card layout patterns (grid, masonry, list, carousel, featured+grid, sidebar). This guidance helps users implement cards effectively.


602-620: File is Markdown documentation, not executable code—review premise is incorrect.

Lines 602-620 are rendered markdown text, not Svelte component code. The <Seealso> and <CompoAttributesViewer> components are referenced inline for the documentation system to render; static Markdown files do not require or support component imports. If these components are needed, they would be provided by the documentation renderer (e.g., via layout context or auto-injection), not imported within the .md file itself.

Likely an incorrect or invalid review comment.

static/llm/components/alert.md (2)

4-6: Alert description effectively communicates component purpose.

Lines 4-6 expand the alert description to emphasize its role in providing feedback, system notifications, and highlighting critical information, with particular emphasis on dismissable alerts. This helps users understand when and how to use the component.


349-366: Accessibility and Best Practices guidance is thorough and practical.

Lines 349-366 provide solid coverage of accessibility principles (ARIA roles, color independence, keyboard navigation, focus management) and best practices (conciseness, appropriate usage, context provision, dismissal allowance, positioning). This aligns with WCAG standards and modern UX best practices.

static/llm/components/banner.md (3)

4-14: Documentation expansion adds clear value but verify Seealso integration across files.

The expanded introduction with use-case bullets (lines 6-12) is excellent—it immediately establishes when and why to use banners. However, this introduces a dependency on the Seealso component and relatedLinks array at line 317. These imports and data definitions should be visible in a <script> block at the top of the file but are not shown in the annotated code.

Before approving, confirm:

  1. The <script> block imports Seealso from ../../utils
  2. A relatedLinks array is defined (likely linking to Alert, Toast, Modal docs)
  3. This pattern is applied consistently across all 5 documentation files

Run this verification to confirm Seealso integration:

#!/bin/bash
# Check if Seealso imports and relatedLinks are present in each documentation file

for file in static/llm/components/{banner,avatar,badge,bottom-navigation,button-group}.md; do
  echo "=== Checking $file ==="
  # Look for Seealso component usage and relatedLinks array
  grep -n "relatedLinks\|import.*Seealso" "$file" || echo "⚠️  Missing Seealso/relatedLinks"
  # Count occurrences of <Seealso to ensure it's rendered
  grep -c "<Seealso" "$file" && echo "✓ Seealso rendered in file"
done

232-244: Strong documentation patterns for persistence and dismissal logic.

The onclose section (lines 232–244) provides excellent guidance on dismissal persistence using localStorage. The implementation tips and use cases are practical. The reusable function example demonstrates a solid pattern for managing banner state across page refreshes.


283-305: New Accessibility, Best Practices, and comparative sections substantially improve documentation.

The addition of dedicated Accessibility (lines 283–292), Best Practices (lines 294–306), and "When to Use Banners vs. Other Components" (lines 308–313) sections significantly enhances documentation quality. These provide clear guidance on:

  • Keyboard accessibility and ARIA considerations
  • Dismissal patterns for user respect
  • Clear distinction between Banners, Alerts, Toasts, and Modals

This pattern should be applied consistently to other component docs. Verify that all 5 files include parallel sections for consistency.

static/llm/components/avatar.md (1)

276-295: Comprehensive Accessibility and Best Practices guidance adds strong documentation value.

Lines 276–295 introduce well-structured Accessibility and Best Practices sections covering:

  • Alt text and semantic HTML
  • Keyboard navigation and screen reader support
  • Image optimization and fallback strategies
  • Privacy and loading state considerations

These sections significantly strengthen the documentation and align with web standards. Ensure this pattern is applied consistently across all component docs.

static/llm/components/badge.md (2)

308-329: Dynamic color example effectively demonstrates reactive state management.

The "Dynamic color" section (lines 308–329) provides a clear example of state-driven styling using $state and interval-based updates. This is a valuable pattern for demonstrating how badges can respond to application state changes.

Verify that the BadgeProps type and available color options match the example (showing transitions between "primary" and "secondary"), and confirm these color values are supported by the Badge component.


348-368: Accessibility and Best Practices sections provide excellent guidance.

The new Accessibility (lines 348–357) and Best Practices (lines 358–367) sections are comprehensive and actionable:

  • Semantic HTML considerations for different badge types
  • Color independence and ARIA labeling
  • Conciseness, spacing, and context-aware placement

These align well with WCAG guidelines and provide developers with clear implementation guidance.

static/llm/components/bottom-navigation.md (3)

57-92: Clear explanation of active state handling with good pattern examples.

Lines 57–92 effectively explain the distinction between href matching and activeUrl prop usage. The examples at lines 67–92 show:

  • Default behavior (href/activeUrl matching)
  • Custom activeClass styling
  • Icon color customization based on active state

These patterns are well-documented and provide developers with multiple customization options. The use of $derived for activeUrl (lines 71-72, 100-101) correctly demonstrates Svelte 5 reactivity.


298-346: Button group bottom bar and card with bottom bar examples demonstrate advanced patterns.

The "Button group bottom bar" (lines 298–346) and "Card with bottom bar" (lines 348–420) sections demonstrate sophisticated layout patterns:

  • Header snippets with sub-navigation (lines 317–323)
  • Multiple BottomNavItem configurations with tooltips
  • Sticky positioning within card containers
  • Dynamic list rendering with Listgroup integration

These advanced examples provide valuable reference implementations for complex bottom navigation scenarios.


422-455: Design Considerations section provides important guidance on accessibility and UX.

The new "Design Considerations" section (lines 447–455) covers critical aspects:

  • Safe area accounting for device notches
  • Shadow/elevation for visual distinction
  • Active state clarity
  • Responsive design adaptation

Combined with Accessibility (lines 422–432) and Best Practices (lines 433–446), this creates comprehensive guidance. Ensure these three sections are present across all component docs for consistency.

static/llm/components/button-group.md (3)

247-270: Event handling example correctly uses Svelte 5 onclick syntax.

Line 248 and the example at lines 257–270 correctly use the Svelte 5 onclick={handleClick} property syntax instead of the deprecated on:click directive. In Svelte 5, event handlers are properties like any other, remove the colon from the on: directive.

This is the correct pattern and aligns with the repository's Svelte 5 migration, as noted in the retrieved learnings.


272-297: Comprehensive Accessibility and Best Practices with emphasis on group usability.

The Accessibility (lines 272–282) and Best Practices (lines 284–297) sections provide strong guidance specific to button groups:

  • Keyboard navigation with Tab/Enter
  • Appropriate ARIA roles (role="group")
  • Consistent sizing and clear labels
  • Logical button ordering and single-action principle
  • Responsive stacking on mobile

These principles ensure button groups remain accessible and usable across devices and assistive technologies.


299-329: Common Patterns and Design Considerations sections add practical value.

Lines 299–329 introduce well-organized pattern guidance:

Common Patterns (lines 299–318): Segmented controls, toolbars, pagination, and social sharing with specific use cases and button configurations.

Design Considerations (lines 320–329): Visual spacing, corner radius management, hover/active states, dividers, orientation, and z-index layering.

These sections transform the documentation from API reference to practical implementation guide, helping developers choose appropriate patterns for their use cases.

Comment on lines +452 to 470
## Button Hierarchy

Establish clear visual hierarchy with different button types:

1. **Primary** - Main action (filled, prominent color)
2. **Secondary** - Alternative action (outline or subtle color)
3. **Tertiary** - Less important action (text button or ghost)
4. **Destructive** - Dangerous action (red, requires confirmation)

## Common Patterns

**Form Actions**: Submit (primary) + Cancel (secondary)
**Confirmation Dialogs**: Confirm (red/destructive) + Cancel (outline)
**Wizards**: Back (outline) + Next (primary) + Cancel (text)
**CRUD Operations**: Create (green) + Edit (blue) + Delete (red)

## See also

<Seealso links={relatedLinks} />
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify Seealso component and relatedLinks setup.

Lines 468-470 introduce the Seealso component pattern for cross-referencing. Ensure the component is properly imported and relatedLinks array is defined in the script scope, consistent with other component documentation files in this PR.


🏁 Script executed:

#!/bin/bash
# Verify Seealso import and relatedLinks in buttons.md
head -50 static/llm/components/buttons.md | grep -E "import.*Seealso|relatedLinks"

Length of output: 0



---

🏁 Script executed:

```shell
#!/bin/bash
# Check entire buttons.md file for Seealso and relatedLinks
echo "=== Checking for Seealso import and relatedLinks in buttons.md ==="
cat static/llm/components/buttons.md | grep -n -E "import.*Seealso|relatedLinks|^import|^export"

Length of output: 103


🏁 Script executed:

#!/bin/bash
# Check file structure and see beginning/end of buttons.md
echo "=== First 100 lines of buttons.md ==="
head -100 static/llm/components/buttons.md

Length of output: 3574


🏁 Script executed:

#!/bin/bash
# Check other component files for Seealso pattern
echo "=== Checking other component files for Seealso usage ==="
fd -e md static/llm/components/ --exec grep -l "Seealso" {} \;

Length of output: 450



---

🏁 Script executed:

```shell
#!/bin/bash
# Check other component files for Seealso usage with corrected syntax
echo "=== Checking for Seealso usage in other component files ==="
fd . 'static/llm/components/' -e md --exec grep -l "Seealso" {} \;

Length of output: 537


🏁 Script executed:

#!/bin/bash
# Check the entire buttons.md file for relatedLinks and script sections
echo "=== Searching entire buttons.md for relatedLinks and script definitions ==="
grep -n "relatedLinks\|<script\|---" static/llm/components/buttons.md

Length of output: 499


🏁 Script executed:

#!/bin/bash
# View last 50 lines of buttons.md to see if there's a script section
echo "=== Last 50 lines of buttons.md ==="
tail -50 static/llm/components/buttons.md

Length of output: 1076



---

🏁 Script executed:

```shell
#!/bin/bash
# Check a working component file (alert.md) to see proper Seealso/relatedLinks pattern
echo "=== Checking alert.md for Seealso pattern and relatedLinks setup ==="
grep -n -B5 -A2 "Seealso" static/llm/components/alert.md | head -30

Length of output: 338


🏁 Script executed:

#!/bin/bash
# Check if there's any import statement at the very top of buttons.md
echo "=== First 20 lines of buttons.md ==="
head -20 static/llm/components/buttons.md

Length of output: 954


🏁 Script executed:

#!/bin/bash
# Search for where Seealso and relatedLinks might be imported/defined at document level
echo "=== Checking for frontmatter or imports in buttons.md ==="
cat static/llm/components/buttons.md | head -1 && echo "---" && sed -n '1,30p' static/llm/components/buttons.md

Length of output: 1267



---

🏁 Script executed:

```shell
#!/bin/bash
# Check alert.md for relatedLinks definition
echo "=== Searching alert.md for relatedLinks definition ==="
grep -n "relatedLinks" static/llm/components/alert.md

Length of output: 91


🏁 Script executed:

#!/bin/bash
# Check if there's a layout or template file that defines relatedLinks
echo "=== Searching for layout/template files that might define relatedLinks ==="
fd -e svelte -e ts -e js static/ | head -20 | xargs grep -l "relatedLinks" 2>/dev/null | head -10

Length of output: 408


🏁 Script executed:

#!/bin/bash
# Check the file type and if it's meant to be processed by a template engine
echo "=== Checking if there's a build config or layout wrapper ==="
find static/llm/components -name "*.json" -o -name "*.config.*" -o -name "+layout*" | head -20

Length of output: 60



---

🏁 Script executed:

```shell
#!/bin/bash
# Search for SvelteKit layout/page files that might wrap these components
echo "=== Searching for +layout and +page files ==="
find . -name "+layout*" -o -name "+page*" | grep -v node_modules | head -20

Length of output: 1194


🏁 Script executed:

#!/bin/bash
# Search for build config and loader files
echo "=== Searching for build config files ==="
find . -maxdepth 2 -name "*.config.*" -o -name "vite.config.*" -o -name "svelte.config.*" | grep -v node_modules

Length of output: 153


🏁 Script executed:

#!/bin/bash
# Search more broadly for relatedLinks definition using corrected fd syntax
echo "=== Searching entire repo for relatedLinks definition ==="
fd . --type f -e svelte -e ts -e js | xargs grep -l "relatedLinks\s*=" 2>/dev/null | head -10

Length of output: 57



---

🏁 Script executed:

```shell
#!/bin/bash
# Check mdsvex.config.js for relatedLinks handling
echo "=== Checking mdsvex.config.js ==="
cat mdsvex.config.js

Length of output: 710


🏁 Script executed:

#!/bin/bash
# Search for Seealso component definition
echo "=== Searching for Seealso component definition ==="
fd . --type f \( -name "*.svelte" -o -name "*.ts" -o -name "*.js" \) | xargs grep -l "export.*Seealso\|component.*Seealso" 2>/dev/null | head -5

Length of output: 281


🏁 Script executed:

#!/bin/bash
# Check if there's a markdown loader or plugin that injects relatedLinks
echo "=== Checking for markdown loaders and plugins ==="
cat svelte.config.js | head -50

Length of output: 1209



---

🏁 Script executed:

```shell
#!/bin/bash
# Check the component layout file that wraps markdown files
echo "=== Checking component layout file ==="
cat src/routes/layouts/component/+page.svelte

Length of output: 1745


🏁 Script executed:

#!/bin/bash
# Search for Seealso component using simpler pattern
echo "=== Searching for Seealso component ==="
rg -n "export.*Seealso|const Seealso|function Seealso" --type ts --type svelte --type js 2>/dev/null

Length of output: 39


🏁 Script executed:

#!/bin/bash
# Look for where relatedLinks might be populated
echo "=== Searching for relatedLinks in all files ==="
rg -n "relatedLinks" --type ts --type svelte --type js 2>/dev/null | head -20

Length of output: 47



---

🏁 Script executed:

```shell
#!/bin/bash
# Check if Seealso is imported from a third-party package
echo "=== Checking package.json and package-lock.json for Seealso ==="
grep -i "seealso" package.json package-lock.json 2>/dev/null

Length of output: 63


🏁 Script executed:

#!/bin/bash
# Double-check: search all imports across codebase for Seealso
echo "=== Searching for any imports of Seealso ==="
rg -n "import.*Seealso|from.*['\"].*Seealso" --type ts --type svelte --type js 2>/dev/null

Length of output: 44


Seealso component and relatedLinks are undefined – require implementation

The Seealso component used at line 470 is not imported and the relatedLinks variable is not defined anywhere in the codebase. This affects all 15 component documentation files and will cause runtime errors.

Add the Seealso import and define relatedLinks in src/routes/layouts/component/+page.svelte (the layout wrapper for all component markdown files). Ensure relatedLinks is properly populated with related documentation links for the buttons component.

- `class`: Custom classes for thumbnail container
- Active thumbnail highlighting

<CompoAttributesViewer {dirName}/>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify CompoAttributesViewer component availability.

Line 586 references <CompoAttributesViewer {dirName}/>. Confirm this component is:

  1. Properly imported into the file
  2. Exported from its source module
  3. Receives the correct dirName prop value

🏁 Script executed:

#!/bin/bash
# Search for CompoAttributesViewer import and dirName definition
grep -rn "CompoAttributesViewer\|dirName.*=" static/llm/components/ --include="*.md" | grep -E "carousel|import"

Length of output: 72



---

🏁 Script executed:

```shell
#!/bin/bash
# Check full carousel.md file structure, especially top section for imports
head -50 static/llm/components/carousel.md

Length of output: 1920


🏁 Script executed:

#!/bin/bash
# Search for CompoAttributesViewer definition/export across entire codebase
rg -n "export.*CompoAttributesViewer|CompoAttributesViewer\s*=" --type=ts --type=js --type=md -A 2 -B 2

Length of output: 1252


🏁 Script executed:

#!/bin/bash
# Search for dirName variable definition in carousel.md
rg -n "dirName\s*=" static/llm/components/carousel.md -B 3 -A 1

Length of output: 0



---

🏁 Script executed:

```shell
#!/bin/bash
# Check context around line 586 in carousel.md (20 lines before and after)
sed -n '566,606p' static/llm/components/carousel.md

Length of output: 799


🏁 Script executed:

#!/bin/bash
# Count total lines in carousel.md to verify line 586 exists
wc -l static/llm/components/carousel.md

Length of output: 37


🏁 Script executed:

#!/bin/bash
# Search for any dirName references in carousel.md
rg -n "dirName" static/llm/components/carousel.md

Length of output: 38


Missing import statement and undefined dirName variable on line 586.

The <CompoAttributesViewer {dirName}/> reference is incomplete:

  1. Missing import: CompoAttributesViewer is not imported in carousel.md (though it is properly exported from src/routes/utils/index.ts)
  2. Undefined variable: dirName is referenced but never defined in the file

Either add the required import and define dirName, or move this component reference into a Svelte script block if this markdown is meant to be processed as executable code. If this is documentation-only content, replace the component tag with appropriate documentation text.

🤖 Prompt for AI Agents
In static/llm/components/carousel.md around line 586, the component tag
"<CompoAttributesViewer {dirName}/>" is missing an import and references an
undefined variable; either add an import for CompoAttributesViewer at the top of
the Svelte/MD Svelte script block and define dirName in that same script (e.g.,
const dirName = ... or derive it from props/context), or if this markdown is not
executable, remove/replace the component tag with explanatory documentation
text; alternatively, move the tag into a proper <script> block so imports and
the dirName variable are declared and available before the component is used.

Copy link
Copy Markdown
Contributor

@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 UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e3f7c9d and 6796c00.

📒 Files selected for processing (8)
  • src/routes/docs-examples/components/device-mockups/Smartwatch.svelte (1 hunks)
  • src/routes/docs/components/accordion.md (4 hunks)
  • src/routes/docs/components/dropdown.md (2 hunks)
  • src/routes/docs/components/tabs.md (3 hunks)
  • static/llm/components/accordion.md (19 hunks)
  • static/llm/components/device-mockups.md (1 hunks)
  • static/llm/components/dropdown.md (2 hunks)
  • static/llm/components/tabs.md (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • static/llm/components/dropdown.md
  • src/routes/docs/components/tabs.md
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2024-10-18T09:38:03.879Z
Learnt from: Chizaruu
Repo: themesberg/flowbite-svelte PR: 1465
File: src/lib/forms/Timepicker.svelte:105-116
Timestamp: 2024-10-18T09:38:03.879Z
Learning: In `Timepicker.svelte`, the `Dropdown` opens as intended and is used exclusively with the 'dropdown' and 'timerange-dropdown' Timepicker types.

Applied to files:

  • src/routes/docs/components/dropdown.md
📚 Learning: 2024-11-12T10:36:34.807Z
Learnt from: LahTeuto
Repo: themesberg/flowbite-svelte PR: 1484
File: src/lib/navbar/NavLi.svelte:34-34
Timestamp: 2024-11-12T10:36:34.807Z
Learning: When enhancing ARIA roles in Svelte components, avoid setting `role="presentation"` on elements that should retain the `link` role, as it can diminish ARIA role coverage and negatively affect accessibility.

Applied to files:

  • static/llm/components/accordion.md
📚 Learning: 2025-03-20T12:47:33.307Z
Learnt from: superstes
Repo: themesberg/flowbite-svelte PR: 0
File: :0-0
Timestamp: 2025-03-20T12:47:33.307Z
Learning: In the Flowbite Svelte library's composite form components like MultiInput, when implementing focus styles with focus-within, create a dedicated focusWithinClasses object with appropriate colors for each state (base, primary, green, red). Using just 'focus-within:ring-1' without color specification won't correctly apply color-specific styling when the input receives focus directly.

Applied to files:

  • static/llm/components/accordion.md
⏰ 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). (1)
  • GitHub Check: Playwright and Lint
🔇 Additional comments (10)
src/routes/docs/components/dropdown.md (2)

77-77: Typo correction: "Programmatic" spelling.

Good catch fixing "Programatic" to "Programmatic". The corrected spelling improves documentation quality.


257-257: Fixed documentation link reference.

The reference link has been corrected to point to the proper Dropdown component page instead of an incorrect component reference. This improves navigation and consistency within the documentation.

static/llm/components/tabs.md (4)

70-70: Minor text clarity improvement. The sentence structure and explanation of tab styling is clear and accurate.


124-124: Proper hyphenation of compound adjective. "SVG‑powered" correctly uses hyphenation as a compound modifier before a noun, improving documentation style.


129-129: Explicit icon imports enhance code clarity. Adding the specific import from "flowbite-svelte-icons" makes the example more complete and immediately runnable without requiring users to infer the import source.


233-233: Consistent hyphenation in section heading. "Full‑width tabs" uses proper hyphenation for the compound adjective, aligning with the style improvement at line 124.

src/routes/docs/components/accordion.md (1)

10-15: Past issues resolved and content significantly improved.

The two issues flagged in previous reviews have been addressed:

  1. The missing Seealso import has been added (line 11)
  2. The incomplete accessibility list item has been cleaned up (line 194 is now blank before the "See also" section)

The file now properly imports and uses the Seealso component with a well-curated relatedLinks array pointing to tabs, dropdown, and modal components. The substantial content expansions throughout (introduction, section descriptions, accessibility, breakpoints, etc.) enhance documentation quality with better context and use-case explanations. Markdown formatting is clean and all examples follow the expected patterns.

src/routes/docs-examples/components/device-mockups/Smartwatch.svelte (1)

6-6: LGTM! Critical syntax fix.

The missing closing bracket in w-[188px has been corrected to w-[188px], which fixes the malformed Tailwind CSS arbitrary value syntax.

static/llm/components/accordion.md (2)

255-255: Verify that Svelte components are supported in documentation markdown.

Line 255 embeds the <A> component within the markdown. Similarly, line 579 uses the <Seealso> component. Confirm that your documentation rendering system supports embedding Svelte components directly in markdown files. If it doesn't, these components should be rendered as plain text or links instead.


1-579: Documentation expansion is comprehensive and well-structured.

The accordion documentation has been significantly enhanced with:

  • Clearer default behavior descriptions and use case examples
  • New "Expand/Collapse All" subsection demonstrating programmatic control
  • Enhanced "Always open," "Color option," and custom transition sections
  • Extensive "Breakpoints" section with basic, advanced, and complex responsive patterns
  • New "Accessibility" section describing keyboard navigation, ARIA attributes, and screen reader support
  • Practical code examples throughout that follow Flowbite Svelte conventions

The content is well-organized, uses consistent formatting, and provides comprehensive guidance for component usage. No syntax errors or grammatical issues detected in the markdown itself. The structure and depth align well with a professional component library's documentation.

<img src="https://flowbite.s3.amazonaws.com/docs/device-mockups/watch-screen-image.png" class="w-[188px h-[193px] dark:hidden" alt="smartwatch example 1" />
<img src="https://flowbite.s3.amazonaws.com/docs/device-mockups/watch-screen-image-dark.png" class="hidden h-[193px] w-[188px] dark:block" alt="smartwatch example 2" />
<img src="https://flowbite.s3.amazonaws.com/docs/device-mockups/watch-screen-image.png" class="w-[188px] h-[193px] dark:hidden" alt="smartwatch example 1" />
<img src="https://flowbite.s3.amazonaws.com/docs/device-mockups/watch-screen-image-dark.png" class="w-[188px] h-[193px] hidden dark:block" alt="smartwatch example 2" />
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Class reordering improves consistency, but fix the double space.

Grouping w-[188px] h-[193px] together aligns with line 6 and improves readability. However, there's an extra space between hidden and dark:block.

Apply this diff to remove the extra space:

-  <img src="https://flowbite.s3.amazonaws.com/docs/device-mockups/watch-screen-image-dark.png" class="w-[188px] h-[193px] hidden  dark:block" alt="smartwatch example 2" />
+  <img src="https://flowbite.s3.amazonaws.com/docs/device-mockups/watch-screen-image-dark.png" class="w-[188px] h-[193px] hidden dark:block" alt="smartwatch example 2" />
📝 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
<img src="https://flowbite.s3.amazonaws.com/docs/device-mockups/watch-screen-image-dark.png" class="w-[188px] h-[193px] hidden dark:block" alt="smartwatch example 2" />
<img src="https://flowbite.s3.amazonaws.com/docs/device-mockups/watch-screen-image-dark.png" class="w-[188px] h-[193px] hidden dark:block" alt="smartwatch example 2" />
🤖 Prompt for AI Agents
In src/routes/docs-examples/components/device-mockups/Smartwatch.svelte around
line 7, the class attribute has inconsistent ordering and an extra space between
"hidden" and "dark:block"; reorder the classes to group "w-[188px] h-[193px]"
together (matching line 6) and remove the extra space so the classes read
without the double space (e.g., "...hidden dark:block...") to keep consistency
and fix the spacing.

Comment on lines +577 to +579
## See also

<Seealso links={relatedLinks} />
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify that relatedLinks is available in the documentation context.

The <Seealso links={relatedLinks} /> component on line 579 references a relatedLinks variable that is not defined in this markdown file. Ensure that either:

  1. The documentation rendering system injects relatedLinks automatically, or
  2. relatedLinks should be defined within this file (e.g., as a variable assignment at the top or before the component)

Without this verification, the documentation may fail to render correctly.


🏁 Script executed:

#!/bin/bash
# Description: Check how relatedLinks is handled in similar documentation files

# Search for relatedLinks usage patterns in other component docs
rg -A 2 -B 2 'relatedLinks' static/llm/components/ --type md

# Check if there's a template or layout file that defines/injects relatedLinks
fd -e svelte -e ts -e js static/ | xargs rg -l 'relatedLinks' | head -5

Length of output: 3837



---

🏁 Script executed:

```shell
#!/bin/bash
# Check context-full.txt and template/layout files for relatedLinks definition

# Look at context-full.txt to see if it defines or provides relatedLinks
head -50 static/llm/context-full.txt | tail -30

# Search for layout or wrapper files that might process markdown
fd -type f \( -name "*.svelte" -o -name "*.ts" -o -name "*.js" \) static/llm/ | xargs rg -l "Seealso|relatedLinks" | head -10

# Check if there's a layout or root file that handles component docs
fd -type f \( -name "*.svelte" -o -name "*.ts" -o -name "*.js" -o -name "*.md" \) static/llm/ | xargs rg -l "export.*relatedLinks|const.*relatedLinks" | head -5

Length of output: 1008



---

🏁 Script executed:

```shell
#!/bin/bash
# Search for Seealso component definition and relatedLinks usage context

# Find where Seealso component is defined
find git -name "*.svelte" -o -name "*.ts" -o -name "*.js" | xargs rg -l "Seealso" 2>/dev/null | head -5

# Search for relatedLinks in TypeScript/JavaScript files (excluding node_modules)
rg -g "!node_modules" "relatedLinks" git --type ts --type js -B 3 -A 3 | head -50

# Check the routes directory structure for how markdown is processed
find git/src/routes -type f -name "*.svelte" -o -name "*.ts" -o -name "*.js" 2>/dev/null | head -10

Length of output: 505



---

🏁 Script executed:

```shell
#!/bin/bash
# More targeted search for Seealso component and relatedLinks injection

# Find all mentions of Seealso (case-insensitive)
rg -i "seealso" git --type-list 2>/dev/null | head -20

# Search in all text files for Seealso definition/component
rg "export.*Seealso|component.*Seealso|<Seealso" git -B 5 -A 5 2>/dev/null | head -60

# Check the accordion docs layout or server file that might provide relatedLinks
find git -path "*/components/*" -name "+layout*" -o -path "*/components/*" -name "+page*" 2>/dev/null

# Search for where relatedLinks might be defined in layout/page data
rg "relatedLinks\s*[:=]" git 2>/dev/null -B 2 -A 2 | head -40

Length of output: 6832



---

🏁 Script executed:

```shell
#!/bin/bash
# Check if accordion.md has relatedLinks definition in script block

# Find accordion.md files
find git -name "accordion.md" -type f

# For each found, check if it has relatedLinks definition
find git -name "accordion.md" -type f -exec head -30 {} \; -print

Length of output: 2693



---

🏁 Script executed:

```shell
#!/bin/bash
# Check the actual file under review for relatedLinks definition

# Get the first 50 lines of static/llm/components/accordion.md to see if there's a script block
head -50 git/static/llm/components/accordion.md

# Also check what's at line 579 mentioned in the review
sed -n '575,580p' git/static/llm/components/accordion.md

Length of output: 2643



---

🏁 Script executed:

```shell
#!/bin/bash
# Check if static/llm is generated or independently maintained

# Look for build/generation scripts that might generate static/llm from src/routes/docs
rg -l "static/llm|generate.*llm" git/package.json git/*.json git/src --type json --type ts --type js 2>/dev/null

# Check if there's a script or build step that copies/generates files
grep -r "static/llm" git/package.json git/svelte.config.js 2>/dev/null

# Compare structure: do all files in static/llm/components have the same missing script blocks?
rg -l "relatedLinks" git/static/llm/components/ --type md | head -3

Length of output: 112



---

🏁 Script executed:

```shell
#!/bin/bash
# Check if other component docs in static/llm have script blocks with relatedLinks

# Check alert.md
echo "=== alert.md first 30 lines ===" 
head -30 git/static/llm/components/alert.md | grep -A 5 -B 5 "relatedLinks\|<script"

# Check progress.md
echo -e "\n=== progress.md first 30 lines ==="
head -30 git/static/llm/components/progress.md | grep -A 5 -B 5 "relatedLinks\|<script"

# Check list-group.md
echo -e "\n=== list-group.md first 30 lines ==="
head -30 git/static/llm/components/list-group.md | grep -A 5 -B 5 "relatedLinks\|<script"

Length of output: 1539



---

🏁 Script executed:

```shell
#!/bin/bash
# Check if relatedLinks is defined anywhere in accordion.md and alert.md files

echo "=== Searching accordion.md for any relatedLinks definition ==="
rg "relatedLinks\s*=" git/static/llm/components/accordion.md

echo -e "\n=== Searching accordion.md for any script block ==="
rg "<script" git/static/llm/components/accordion.md

echo -e "\n=== Searching alert.md for any relatedLinks definition ==="
rg "relatedLinks\s*=" git/static/llm/components/alert.md

echo -e "\n=== Searching alert.md for any script block ==="
rg "<script" git/static/llm/components/alert.md

# Check if there's a layout or wrapper that might provide relatedLinks
echo -e "\n=== Check for layout files in static/llm ===" 
find git/static/llm -name "*.svelte" -o -name "+layout*" -o -name "+page*" 2>/dev/null

Length of output: 802


Add relatedLinks variable definition to accordion.md

The <Seealso links={relatedLinks} /> component on line 579 references an undefined relatedLinks variable. Add a <script> block at the top of the file (before the content) with related links, following the pattern used in the main component documentation:

<script>
  const relatedLinks = ['/docs/components/tabs', '/docs/components/dropdown', '/docs/components/modal'];
</script>

Note: This same issue appears to affect other component files in static/llm/components/ (alert.md, progress.md, list-group.md, etc.) that also use the <Seealso> component without defining relatedLinks.

🤖 Prompt for AI Agents
In static/llm/components/accordion.md around lines 577 to 579, the Seealso
component references an undefined relatedLinks variable; add a <script> block at
the top of this markdown file (before the content) that defines const
relatedLinks as an array of related component paths (e.g.
'/docs/components/tabs', '/docs/components/dropdown', '/docs/components/modal')
following the pattern used in the main component docs, then save; also scan
other files in static/llm/components/ (alert.md, progress.md, list-group.md,
etc.) and add equivalent <script> blocks where Seealso uses relatedLinks but it
is not defined.

@shinokada shinokada merged commit e84bbfa into themesberg:main Nov 21, 2025
1 of 2 checks passed
@shinokada shinokada deleted the docs-update branch November 21, 2025 13:07
@coderabbitai coderabbitai bot mentioned this pull request Dec 18, 2025
42 tasks
This was referenced Dec 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant