hyperhive/frontend/packages
Repository files (latest commit first)
Filename Latest commit message Latest commit date
iris e5b307df1b frontend: hive-btn — drop the is= customized-built-in, use an autonomous element instead
Per review: don't use is=, it reads as a hack (and it is one — is=-upgraded
built-ins can never host a shadow root, which is what caused the crash this PR
fixes in the first place). <hive-btn> is now a normal autonomous custom element
wrapping a real <button> inside its own shadow root, so it gets its shadow
encapsulation back (matching hive-dialog/hive-toast) instead of the document-
level stylesheet workaround from the previous commit.

delegatesFocus: true on the shadow root means .focus() on the host (what
modal.js calls for autofocus) reaches the inner button directly. The inner
button's native click is a composed event, so host-level click listeners
(what modal.js/themedPrompt already use) keep working unchanged.

modal.js: el('button', { is: 'hive-btn', ... }) -> el('hive-btn', { ... }) at
the one call site. dom.js: removed the is= special case from el() entirely —
it existed only to support this one now-gone usage. Build clean.
2026-07-29 23:17:19 +02:00
..
agent frontend: move shadow-DOM component CSS to real .css files, not JS strings 2026-07-29 12:55:54 +02:00
dashboard frontend: add <hive-btn> component, use it for dialog buttons 2026-07-29 12:55:54 +02:00
shared frontend: hive-btn — drop the is= customized-built-in, use an autonomous element instead 2026-07-29 23:17:19 +02:00