45 Commits

Author SHA1 Message Date
ManukMinasyan
8e5d25686c Update CHANGELOG 2026-03-31 21:31:29 +00:00
ManukMinasyan
bbba63c57b Fix styling 2026-03-31 21:31:05 +00:00
Manuk
f9f9950cde Merge pull request #10 from Ilyapashayan20/fix/multiple-bugs
fix: show reply instantly after adding without page refresh
2026-04-01 01:30:42 +04:00
ilyapashayan
bb88583f09 fix: match mention badge style exactly to Filament RichEditor spec
Filament uses: bg-primary-50 text-primary-600 rounded px-1 font-medium
dark: bg-primary-400/10 text-primary-400 — no border, 0.25rem radius.
Previous commit added incorrect border/padding/font-weight overrides.
2026-04-01 01:24:25 +04:00
ilyapashayan
4b783e437f improve: polish mention badge styling with dark mode support
Add border, adjust sizing, font-weight and transition for both
light (primary-50 bg / primary-700 text / primary-200 border)
and dark (15% primary bg / primary-300 text / 30% primary border)
themes using Filament CSS variables.
2026-04-01 01:22:37 +04:00
ilyapashayan
d189743a9c fix: show user-friendly error on file upload failure (413)
Livewire fires a livewire-upload-error JS event when an upload fails,
including 413 responses from the server. Add x-on: Alpine listeners
on the comment and reply forms to display an error message instead of
silently failing. Use x-on: instead of @ shorthand to avoid Blade
parsing @livewire as a directive.
2026-04-01 01:10:13 +04:00
ilyapashayan
541d11ab90 fix: preserve mention data attributes through HTML sanitization
Filament's sanitizer strips data-id, data-label and data-char from
mention spans, breaking both display (unstyled @mention) and editing
(@-only shown in RichEditor). Register a package-scoped sanitizer that
explicitly allows these attributes on span elements.

Also fix double-replacement bug in renderBodyWithMentions() where both
the rich-editor regex and str_replace fallback could run on the same
mention, producing nested styled spans.
2026-04-01 01:10:05 +04:00
ilyapashayan
48fbd3c9d7 fix: use CSS variables for mention styling so dark mode and custom colors work 2026-03-30 19:20:50 +04:00
ilyapashayan
e7daa25fc2 fix: match mention styling exactly to RichEditor for custom primary color support 2026-03-30 19:17:40 +04:00
ilyapashayan
bff68f87a3 fix: render mentions by replacing spans directly instead of RichContentRenderer 2026-03-30 19:15:38 +04:00
ilyapashayan
583b49125f fix: add InteractsWithActions so RichEditor link toolbar works 2026-03-30 19:03:43 +04:00
ilyapashayan
5e44a4051a fix: eager load 2nd level replies so all nesting levels render correctly 2026-03-30 19:00:52 +04:00
ilyapashayan
812556cba2 fix: include replies in comment count and cascade delete to replies 2026-03-30 18:59:07 +04:00
ilyapashayan
20dba18e8e fix: show reply instantly after adding without page refresh 2026-03-30 18:48:11 +04:00
manukminasyan
a5bf29d6c2 fix: use gray badge color for comment count 2026-03-27 21:44:18 +04:00
manukminasyan
6a26396f0d refactor: polish comment form layout - inline attach and comment button
Move Comment/Reply button to same row as Attach link using
justify-between flex layout. Shorten "Attach files" to "Attach".
Place Cancel on left side, action buttons on right for edit/reply forms.
Cleaner, more compact footer area.
v1.0.0-alpha.3
2026-03-27 21:32:05 +04:00
manukminasyan
2ace8bfdd4 feat: make comment form sticky at bottom of slide-over
Pin the comment editor to the bottom of the slide-over panel so it's
always visible while scrolling through comments. Uses CSS sticky
positioning with border separator and background color.
2026-03-27 21:26:28 +04:00
manukminasyan
3d745077b7 fix: prevent lazy loading violation on replies relationship
Check relationLoaded('replies') before accessing $comment->replies
to avoid LazyLoadingViolationException when rendering nested comments
whose replies aren't eager loaded.
2026-03-27 21:23:18 +04:00
manukminasyan
b44b4e309e fix: avoid lazy loading parent relationship in depth calculation
Use a query-based approach instead of traversing the parent relationship
to prevent LazyLoadingViolationException when strict mode is enabled.
2026-03-27 21:20:20 +04:00
manukminasyan
ac97dcb092 fix: replace form elements with div+wire:click to prevent nested form conflicts
The CommentsAction slide-over wraps content in a Filament action form.
Nested <form> elements inside the comments Livewire templates caused the
browser to submit the outer action form instead, closing the slide-over
without storing the comment.

Replace <form wire:submit> with <div> and type="submit" buttons with
type="button" wire:click for all three forms (comment, edit, reply).
2026-03-27 21:04:34 +04:00
manukminasyan
6c96fb900b fix: update tests for RichEditor form data paths and service providers
Update all tests to use new form state paths (commentData.body,
editData.body, replyData.body) instead of removed public properties.
Remove searchUsers() tests (method replaced by MentionProvider).
Add BladeUI Icons service providers to TestCase for RichEditor views.
2026-03-27 19:20:56 +04:00
manukminasyan
7f9f13b626 fix: add missing Filament service providers to test setup
InteractsWithForms requires FormsServiceProvider, SchemasServiceProvider,
and ActionsServiceProvider to be registered in the test environment.
2026-03-27 18:46:40 +04:00
manukminasyan
e173d9b4dd refactor: replace custom textarea with Filament RichEditor and built-in mentions
Replace the custom Alpine.js textarea + mention system with Filament v5's
built-in RichEditor component and MentionProvider. This fixes Alpine scope
errors (showMentions/mentionResults not defined) that occurred during
Livewire DOM morphing inside Filament slide-over modals.

- Add InteractsWithForms + HasForms to Comments and CommentItem components
- Define commentForm(), editForm(), replyForm() with RichEditor + mentions
- Add CommentsConfig::makeMentionProvider() shared helper
- Update MentionParser to extract mention IDs from RichEditor HTML format
- Update Comment::renderBodyWithMentions() to use RichContentRenderer
- Remove all custom Alpine.js mention code from blade templates
- Backward compatible with existing plain text comments
2026-03-27 18:43:07 +04:00
manukminasyan
f119095ae5 fix: use schema() instead of modalContent() for Filament 5 compatibility
Replace deprecated modalContent() with schema([CommentsEntry::make('comments')])
in both CommentsAction and CommentsTableAction to fix comment creation in
Filament 5 modals.
2026-03-27 17:48:32 +04:00
manukminasyan
889dc2828b fix: use callout component for alpha warning 2026-03-27 16:08:55 +04:00
manukminasyan
82eb6a70ad fix: move alpha alert into hero description using correct alert component 2026-03-27 16:08:10 +04:00
manukminasyan
2edcfa00f1 fix: use inline alpha warning and aspect-video preview on docs homepage 2026-03-27 16:06:57 +04:00
manukminasyan
35571760d6 feat: use filament input wrapper for textareas, add alpha callout and preview image, remove redundant introduction page v1.0.0-alpha.2 2026-03-27 16:02:17 +04:00
manukminasyan
a4d4418963 docs: update all documentation for refactored naming conventions
- CanComment trait replaces IsCommenter
- Commentator interface replaces Commenter
- Models moved to Models\ namespace (Comment, Reaction, Attachment, Subscription)
- commenter_type/commenter_id columns replace user_type/user_id
- CommentsConfig replaces Config class
- table_names config key replaces tables
- getCommentDisplayName() replaces getCommentName()
2026-03-27 15:01:50 +04:00
manukminasyan
b2ee8a1036 fix: add preview images to ecosystem cards on docs homepage 2026-03-27 14:56:44 +04:00
manukminasyan
fd5bc5271b refactor: rename for Laravel conventions and better DX
- Rename IsCommenter trait to CanComment, Commenter interface to Commentator
- Move models to Models/ namespace (Comment, Reaction, Attachment, Subscription)
- Rename user_type/user_id polymorphic columns to commenter_type/commenter_id
- Rename Config class to CommentsConfig, update config key tables->table_names
- Rename getCommentName() to getCommentDisplayName() on commentator models
- Add column_names config section for commenter morph customization
- Add table_names config with all 5 tables individually configurable
- Expand translation file with structured i18n groups
- Update all Blade views, Livewire components, events, listeners, and tests
2026-03-27 14:53:12 +04:00
manukminasyan
43b66f60f3 fix: enlarge wordmark, top-align text, update ecosystem to FilaForms + Custom Fields 2026-03-27 14:40:05 +04:00
manukminasyan
0c13d589d8 feat: add header components and version switcher for docs 2026-03-27 14:27:35 +04:00
manukminasyan
2c7c44ecbc fix: use custom-fields 3.x branch for preview image 2026-03-27 14:25:37 +04:00
manukminasyan
12470a1d8b feat: add docs logo SVGs for light and dark themes 2026-03-27 14:24:18 +04:00
manukminasyan
42e95a83f5 fix: restrict pint workflow to branch pushes only 2026-03-27 14:18:41 +04:00
manukminasyan
f83402432e fix: tests badge branch reference to 1.x v1.0.0-alpha.1 2026-03-27 14:12:03 +04:00
manukminasyan
851852df38 fix: use npm install instead of npm ci for docs deployment 2026-03-27 14:08:36 +04:00
Manuk
a2a2e54b61 Merge pull request #1 from relaticle/dependabot/github_actions/dependabot/fetch-metadata-3.0.0
chore(deps): bump dependabot/fetch-metadata from 2.5.0 to 3.0.0
2026-03-27 14:00:58 +04:00
manukminasyan
4a410bce44 fix: use node 22 for docs deployment and regenerate lock file 2026-03-27 13:57:59 +04:00
manukminasyan
d4b0b53fb5 chore: add docs package-lock.json for CI 2026-03-27 00:42:10 +04:00
dependabot[bot]
4c30f06857 chore(deps): bump dependabot/fetch-metadata from 2.5.0 to 3.0.0
Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.5.0 to 3.0.0.
- [Release notes](https://github.com/dependabot/fetch-metadata/releases)
- [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.5.0...v3.0.0)

---
updated-dependencies:
- dependency-name: dependabot/fetch-metadata
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 20:36:13 +00:00
manukminasyan
53dd4565d7 chore: add GitHub workflows, issue templates, and changelog
- Tests, Pint, Release, Changelog, Auto-merge, Deploy Docs workflows
- Bug report template, security policy, contributing guide
- Dependabot config for GitHub Actions
- Remove .idea from tracking
- Keep only premium packages in ecosystem section
2026-03-27 00:35:35 +04:00
manukminasyan
b8d930df1a docs: add README, boost skill, and documentation site 2026-03-27 00:29:57 +04:00
manukminasyan
29fcbd8aec feat: initial release of relaticle/comments
Filament comments package with:
- Polymorphic commenting on any Eloquent model
- Threaded replies with configurable depth
- @mentions with autocomplete and user search
- Emoji reactions with toggle and who-reacted tooltips
- File attachments via Livewire uploads
- Reply and mention notifications via Filament notification system
- Thread subscriptions for notification control
- Real-time broadcasting (opt-in Echo) with polling fallback
- Dark mode support
- CommentsAction, CommentsTableAction, CommentsEntry for Filament integration
- 204 tests, 421 assertions
2026-03-26 23:02:56 +04:00