Commit Graph

25 Commits

Author SHA1 Message Date
simoleo89 3d1f1103a3 feat(furni-editor): 'Import from Habbo' button to fetch official texts
useFurniEditor gains importText(id) + importResult (10049 round-trip); the
edit view shows an 'Import from Habbo' button that fills Display Name/
Description with the official text for review before Save (nonce-guarded,
classname-matched), with an inline result note.
2026-06-06 17:42:43 +02:00
simoleo89 310fa06db7 fix(furni-editor): render field tooltips in a portal (no clipping)
The Tip bubble was still clipped by the card's overflow-auto scroll
container when a section was scrolled near the viewport top. Render the
tooltip via createPortal to document.body with position:fixed computed
from the icon rect, so it escapes every overflow/transform ancestor.
2026-06-06 17:42:43 +02:00
simoleo89 63c41b4d5c fix(furni-editor): tooltips wrap + no longer clipped
Tip tooltips were whitespace-nowrap (one very wide line) and clipped by
the Section card's overflow-hidden. Bound the bubble width with wrapping
(w-44, whitespace-normal, centered) and drop overflow-hidden from Section
(keeping rounded corners via rounded-t/b-xl on the header) so long tips
like Custom Params render fully.
2026-06-06 17:42:43 +02:00
simoleo89 caeb24a603 fix(furni-editor): disable furnidata Save unless name/desc changed
Saving an unchanged name made the server writer return false, which the
handler misreports as 'Classname not found in furnidata'. Gate the
'Save name/desc' button on a real diff (furnidataDirty) so an unchanged
save can no longer fire that misleading error.
2026-06-06 17:42:43 +02:00
simoleo89 752badd361 feat(furni-editor): compact permissions + upgraded meta chips
- Merge the lone Inventory permission (allowInventoryStack) into the
  Gameplay group, dropping the separate Inventory header+row to save
  vertical space.
- Rework the header meta row: ID/Sprite as label+monospace-value pills,
  'in use' tinted green with a dot when placed instances exist (grey at
  0), 'Unsaved' as an amber pill with a dot.
2026-06-06 17:42:43 +02:00
simoleo89 071a7c9436 fix(furni-editor): guard name editing when furni has no furnidata entry
~1.4k items_base rows (pets, custom items) have no matching furnidata
classname, so saving their name returned the cryptic server error
'Classname not found in furnidata'. Detect this client-side via the
resolved furniDataEntry (entry + classname match) and, when absent,
hide the Display Name/Description inputs + Save behind a clear
'NO FURNIDATA' notice instead of letting the save fail. In-furnidata
furni (~97.6%) are unchanged.
2026-06-06 17:42:43 +02:00
simoleo89 9341970eed fix(furni-editor): green/red status dot on permission toggles
Replace the white/grey dot with a green (ON) / red (OFF) traffic-light
badge + a subtle ring so it reads on both the teal and grey chip
backgrounds.
2026-06-06 17:42:42 +02:00
simoleo89 e988a5d8b0 fix(furni-editor): make permission toggles clearly show on/off state
Enabled chips now use a solid teal fill (bg-[#1E7295]) with white
text + a white status dot; disabled chips are muted grey with a grey
dot. The old bg-primary/10 + text-primary 'on' state was nearly
indistinguishable from 'off'. Adds aria-pressed + title for a11y.
2026-06-06 17:42:42 +02:00
simoleo89 8862041a4e fix(furni-editor): make confirm modals opaque (solid bg + alpha backdrop)
Replace bg-white/bg-black palette classes with explicit hex
(bg-[#ffffff] panel, bg-[#00000080] backdrop) so the Delete and
Furnidata confirm dialogs render solidly instead of letting editor
content bleed through; bump overlay z-index to z-[60].
2026-06-06 17:42:42 +02:00
simoleo89 13cfbd3cd8 feat(furni-editor): one-click copy on Basic Info read-only fields (CopyValue w/ copied feedback) 2026-06-06 17:42:42 +02:00
simoleo89 642e4f8eb7 fix(furni-editor): remove nested inner scroller so NitroCardContentView's styled scrollbar is restored 2026-06-06 17:42:42 +02:00
simoleo89 3e5ad58f0e style(furni-editor): space optimization — name+description side-by-side (2-col), tighter card/section padding, compact header 2026-06-06 17:42:42 +02:00
simoleo89 2ba0f5ea6f style(furni-editor): modern/sleek redesign — slate canvas, flat rounded-xl cards, clean header, toggle-chip permissions, teal as restrained accent 2026-06-06 17:42:42 +02:00
simoleo89 2d93fc9220 style(furni-editor): graphical reskin — teal hero header w/ big preview + dynamic name + chips, soft card sections, LIVE pulse on display-name card, page bg 2026-06-06 17:42:42 +02:00
simoleo89 02f549827c feat(furni-editor): make Sprite ID + Type read-only (all Basic Info now read-only) 2026-06-06 17:42:42 +02:00
simoleo89 a520fc73af style(furni-editor): move display-name edit to top + unify theme (neutral labels, matched selects, single teal accent) 2026-06-06 17:42:42 +02:00
simoleo89 0affad752c style(furni-editor): theme-token typography refresh (labels, inputs focus ring, mono read-only) 2026-06-06 17:42:41 +02:00
simoleo89 d7e294b343 feat(furni-editor): editable furnidata name/desc section + read-only classname/public_name + diff-confirm + revert 2026-06-06 17:42:41 +02:00
Life c4d948cd3a feat: FurniEditor WebSocket — full UI with toolbar icon, infostand button, Edit/Search views, Tailwind styling 2026-03-28 08:52:59 +01:00
duckietm accb69d6c9 🆙 Reverting furnieditor 2026-03-23 12:00:31 +01:00
duckietm a0d0b5c4a4 Revert "Merge branch 'main' into furnisettingeditor-pr"
This reverts commit dfbfb1c2c1, reversing
changes made to 07702c44d0.
2026-03-23 11:49:05 +01:00
DuckieTM dfbfb1c2c1 Merge branch 'main' into furnisettingeditor-pr 2026-03-23 11:13:00 +01:00
Life 07702c44d0 feat(furni-editor): migrate to WebSocket communication and improve UI
Migrate the Furni Editor from REST API to WebSocket-based communication
using custom packet handlers (10040-10046). The editor now communicates
directly with the emulator for all CRUD operations on furniture items.

Key changes:
- Replace REST API calls with WebSocket composers/parsers for search,
  edit, create, and delete operations
- Read furnituredata.json path from renderer-config.json for asset
  management
- Improve search UI with larger fonts, better contrast, and click-to-copy
  ID functionality with toast notification
- Compact edit view layout with collapsible sections and visual dividers
- Remove unused Create tab (creation handled via edit workflow)
- Add isModerator guard for admin-only access
- Support search by ID, name, or sprite ID with type filtering
2026-03-22 17:57:27 +01:00
Life a5ea88010e feat: catalog style toggle (classic/new) with admin mode & favorites 2026-03-22 16:54:40 +01:00
simoleo89 a11987e1e0 Add FurniEditor tool with Next.js API integration
- FurniEditor component with Search/Edit tabs (NitroCard UI)
- useFurniEditor hook connecting to Next.js API routes via Vite proxy
- Edit Furni button in room infostand (godMode) with sprite ID lookup
- Toolbar: 3-column flex layout (icons | chat | friends)
- Heroicons SVG for ID/Sprite display in infostand and edit view
- Vite config: proxy /api to Next.js, aliases for renderer3 packages
2026-03-15 00:27:09 +01:00