@hjmds/react 1.26.0 → 1.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_NOTICES.md +7 -0
- package/dist/advanced-display.d.ts +1 -0
- package/dist/advanced-display.d.ts.map +1 -1
- package/dist/advanced-display.js +3 -2
- package/dist/advanced-display.js.map +1 -1
- package/dist/agreement.d.ts.map +1 -1
- package/dist/agreement.js +2 -1
- package/dist/agreement.js.map +1 -1
- package/dist/bottom-cta.d.ts.map +1 -1
- package/dist/bottom-cta.js +5 -2
- package/dist/bottom-cta.js.map +1 -1
- package/dist/bottom-navigation.d.ts.map +1 -1
- package/dist/bottom-navigation.js +3 -0
- package/dist/bottom-navigation.js.map +1 -1
- package/dist/calendar.js +1 -1
- package/dist/calendar.js.map +1 -1
- package/dist/carousel-motion.d.ts.map +1 -1
- package/dist/carousel-motion.js +4 -3
- package/dist/carousel-motion.js.map +1 -1
- package/dist/carousel.d.ts.map +1 -1
- package/dist/carousel.js +3 -2
- package/dist/carousel.js.map +1 -1
- package/dist/chart.d.ts +3 -1
- package/dist/chart.d.ts.map +1 -1
- package/dist/chart.js +9 -4
- package/dist/chart.js.map +1 -1
- package/dist/clipboard.d.ts +27 -1
- package/dist/clipboard.d.ts.map +1 -1
- package/dist/clipboard.js +26 -12
- package/dist/clipboard.js.map +1 -1
- package/dist/collapsible.d.ts +9 -0
- package/dist/collapsible.d.ts.map +1 -1
- package/dist/collapsible.js +9 -2
- package/dist/collapsible.js.map +1 -1
- package/dist/collection-editing.d.ts.map +1 -1
- package/dist/collection-editing.js +15 -10
- package/dist/collection-editing.js.map +1 -1
- package/dist/collection-rail.d.ts.map +1 -1
- package/dist/collection-rail.js +3 -2
- package/dist/collection-rail.js.map +1 -1
- package/dist/communication.d.ts.map +1 -1
- package/dist/communication.js +5 -2
- package/dist/communication.js.map +1 -1
- package/dist/context-menu.d.ts +9 -1
- package/dist/context-menu.d.ts.map +1 -1
- package/dist/context-menu.js +1 -1
- package/dist/context-menu.js.map +1 -1
- package/dist/conversation-row.js +1 -1
- package/dist/conversation-row.js.map +1 -1
- package/dist/data-workflows.d.ts.map +1 -1
- package/dist/data-workflows.js +4 -3
- package/dist/data-workflows.js.map +1 -1
- package/dist/date-picker.d.ts.map +1 -1
- package/dist/date-picker.js +5 -3
- package/dist/date-picker.js.map +1 -1
- package/dist/design-profile.d.ts.map +1 -1
- package/dist/design-profile.js +4 -2
- package/dist/design-profile.js.map +1 -1
- package/dist/effect-surface.d.ts +9 -3
- package/dist/effect-surface.d.ts.map +1 -1
- package/dist/effect-surface.js +3 -2
- package/dist/effect-surface.js.map +1 -1
- package/dist/evidence.d.ts +1 -1
- package/dist/evidence.js +1 -1
- package/dist/evidence.js.map +1 -1
- package/dist/feedback.d.ts +8 -19
- package/dist/feedback.d.ts.map +1 -1
- package/dist/feedback.js +7 -3
- package/dist/feedback.js.map +1 -1
- package/dist/field-group.d.ts.map +1 -1
- package/dist/field-group.js +15 -8
- package/dist/field-group.js.map +1 -1
- package/dist/file-picker.d.ts +14 -2
- package/dist/file-picker.d.ts.map +1 -1
- package/dist/file-picker.js +5 -2
- package/dist/file-picker.js.map +1 -1
- package/dist/folder-preview.d.ts.map +1 -1
- package/dist/folder-preview.js +2 -2
- package/dist/folder-preview.js.map +1 -1
- package/dist/forms.d.ts.map +1 -1
- package/dist/forms.js +2 -1
- package/dist/forms.js.map +1 -1
- package/dist/image-choice.d.ts +30 -0
- package/dist/image-choice.d.ts.map +1 -0
- package/dist/image-choice.js +24 -0
- package/dist/image-choice.js.map +1 -0
- package/dist/image-comparison.d.ts.map +1 -1
- package/dist/image-comparison.js +2 -1
- package/dist/image-comparison.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/message-reactions.d.ts +28 -2
- package/dist/internal/message-reactions.d.ts.map +1 -1
- package/dist/internal/message-reactions.js +11 -4
- package/dist/internal/message-reactions.js.map +1 -1
- package/dist/internal/screen-exit.d.ts +11 -0
- package/dist/internal/screen-exit.d.ts.map +1 -0
- package/dist/internal/screen-exit.js +10 -0
- package/dist/internal/screen-exit.js.map +1 -0
- package/dist/internal/screen-footer.d.ts +7 -0
- package/dist/internal/screen-footer.d.ts.map +1 -0
- package/dist/internal/screen-footer.js +8 -0
- package/dist/internal/screen-footer.js.map +1 -0
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +8 -4
- package/dist/layout.js.map +1 -1
- package/dist/masonry.d.ts +5 -3
- package/dist/masonry.d.ts.map +1 -1
- package/dist/masonry.js +25 -3
- package/dist/masonry.js.map +1 -1
- package/dist/menu-morph.d.ts.map +1 -1
- package/dist/menu-morph.js +30 -7
- package/dist/menu-morph.js.map +1 -1
- package/dist/overlays.d.ts +2 -0
- package/dist/overlays.d.ts.map +1 -1
- package/dist/overlays.js +48 -11
- package/dist/overlays.js.map +1 -1
- package/dist/popover.d.ts +6 -0
- package/dist/popover.d.ts.map +1 -1
- package/dist/popover.js +3 -3
- package/dist/popover.js.map +1 -1
- package/dist/qr-code.js +1 -1
- package/dist/qr-code.js.map +1 -1
- package/dist/reaction-picker.d.ts.map +1 -1
- package/dist/reaction-picker.js +14 -1
- package/dist/reaction-picker.js.map +1 -1
- package/dist/saved-items.d.ts +8 -2
- package/dist/saved-items.d.ts.map +1 -1
- package/dist/saved-items.js +4 -4
- package/dist/saved-items.js.map +1 -1
- package/dist/screen-flows.d.ts +52 -6
- package/dist/screen-flows.d.ts.map +1 -1
- package/dist/screen-flows.js +50 -22
- package/dist/screen-flows.js.map +1 -1
- package/dist/screens.d.ts +56 -8
- package/dist/screens.d.ts.map +1 -1
- package/dist/screens.js +41 -15
- package/dist/screens.js.map +1 -1
- package/dist/selection.d.ts.map +1 -1
- package/dist/selection.js +4 -4
- package/dist/selection.js.map +1 -1
- package/dist/social-compositions.d.ts.map +1 -1
- package/dist/social-compositions.js +3 -2
- package/dist/social-compositions.js.map +1 -1
- package/dist/sortable.d.ts.map +1 -1
- package/dist/sortable.js +9 -3
- package/dist/sortable.js.map +1 -1
- package/dist/status-text.d.ts.map +1 -1
- package/dist/status-text.js +5 -2
- package/dist/status-text.js.map +1 -1
- package/dist/styles.css +219 -126
- package/dist/styles.layered.css +219 -126
- package/dist/table-family.d.ts +1 -1
- package/dist/table-family.d.ts.map +1 -1
- package/dist/table-family.js +24 -7
- package/dist/table-family.js.map +1 -1
- package/dist/task-controls.d.ts.map +1 -1
- package/dist/task-controls.js +9 -4
- package/dist/task-controls.js.map +1 -1
- package/dist/task-list.d.ts +1 -1
- package/dist/task-list.d.ts.map +1 -1
- package/dist/task-list.js +4 -3
- package/dist/task-list.js.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +4 -0
- package/dist/theme.js.map +1 -1
- package/dist/top-bar.d.ts +5 -0
- package/dist/top-bar.d.ts.map +1 -1
- package/dist/top-bar.js +6 -1
- package/dist/top-bar.js.map +1 -1
- package/dist/transfer-list.d.ts.map +1 -1
- package/dist/transfer-list.js +13 -3
- package/dist/transfer-list.js.map +1 -1
- package/dist/upload-item.d.ts.map +1 -1
- package/dist/upload-item.js +3 -1
- package/dist/upload-item.js.map +1 -1
- package/fonts/pretendard/LICENSE.txt +94 -0
- package/fonts/pretendard/pretendard.css +927 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.0.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.1.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.10.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.11.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.12.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.13.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.14.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.15.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.16.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.17.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.18.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.19.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.2.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.20.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.21.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.22.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.23.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.24.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.25.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.26.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.27.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.28.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.29.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.3.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.30.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.31.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.32.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.33.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.34.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.35.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.36.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.37.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.38.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.39.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.4.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.40.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.41.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.42.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.43.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.44.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.45.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.46.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.47.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.48.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.49.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.5.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.50.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.51.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.52.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.53.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.54.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.55.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.56.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.57.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.58.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.59.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.6.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.60.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.61.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.62.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.63.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.64.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.65.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.66.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.67.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.68.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.69.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.7.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.70.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.71.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.72.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.73.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.74.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.75.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.76.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.77.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.78.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.79.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.8.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.80.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.81.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.82.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.83.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.84.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.85.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.86.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.87.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.88.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.89.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.9.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.90.woff2 +0 -0
- package/fonts/pretendard/woff2-dynamic-subset/PretendardVariable.subset.91.woff2 +0 -0
- package/package.json +10 -3
package/dist/popover.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../src/popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import { cloneElement, createContext, forwardRef, useCallback, useContext, useEffect, useId, useRef, useState, useSyncExternalStore, type CSSProperties, type ReactNode, type RefObject } from \"react\";\nimport { canDismissPopover, popoverBehaviorDefaults, popoverHoverDelay, popoverRecipe, resolvePopoverDescriptor, validatePopoverOpenState, type PopoverDescriptor, type PopoverDismissPolicy, type PopoverDismissReason, type PopoverOpenChangeDetails, type PopoverOpenOn, type PopoverOpenState } from \"@hjmds/design-contracts/components/popover\";\nimport { easing, layer } from \"@hjmds/design-contracts/foundations\";\nimport type { TransitionRect } from \"@hjmds/design-contracts/content-transition\";\nimport { useOverlayOriginMotion } from \"./internal/overlay-origin-motion.js\";\nimport { Button } from \"./actions.js\";\nimport { classNames, composeRefs } from \"./internal.js\";\nimport { AnchoredPortal, getPopoverOwner, useAnchoredPopup } from \"./portal.js\";\nimport { useOptionalHjmTheme } from \"./provider.js\";\nimport type { OverlayTrigger } from \"./overlays.js\";\n\nexport type PopoverContentActions = Readonly<{ close(): void }>;\n// No `layoutStyle`: renders the caller's trigger plus an anchored portal; place the trigger instead.\nexport type PopoverProps = PopoverOpenState & Readonly<{\n trigger: OverlayTrigger;\n title: string;\n closeLabel: string;\n description?: string;\n descriptor?: PopoverDescriptor;\n children?: ReactNode | ((actions: PopoverContentActions) => ReactNode);\n dismissPolicy?: Partial<PopoverDismissPolicy>;\n /**\n * `\"hover\"` adds pointer enter/leave on top of the click path; it never\n * replaces it, because hover does not exist on touch or for a keyboard.\n */\n openOn?: PopoverOpenOn;\n /** Optional trigger bounds in viewport coordinates; state and focus remain non-modal. */\n motionOrigin?: TransitionRect;\n initialFocusRef?: RefObject<HTMLElement | null>;\n portalContainer?: HTMLElement;\n className?: string;\n}>;\nconst ParentPopoverOpen = createContext(true);\nconst motionQuery = \"(prefers-reduced-motion: reduce)\";\nfunction subscribeSystemMotion(notify: () => void) {\n const media = window.matchMedia(motionQuery); media.addEventListener(\"change\", notify);\n return () => media.removeEventListener(\"change\", notify);\n}\nconst readSystemMotion = () => window.matchMedia(motionQuery).matches;\nconst readServerMotion = () => false;\nconst focusable = 'a[href],button,input,select,textarea,[tabindex]';\nfunction tabStops(container: HTMLElement): HTMLElement[] {\n return [...container.querySelectorAll<HTMLElement>(focusable)].filter((node) =>\n node.tabIndex >= 0 && !node.matches(\":disabled\") && !node.closest('[inert],[hidden],[aria-hidden=\"true\"]') && node.getClientRects().length > 0 && getComputedStyle(node).visibility !== \"hidden\",\n ).sort((a, b) => (a.tabIndex > 0 ? a.tabIndex : Infinity) - (b.tabIndex > 0 ? b.tabIndex : Infinity));\n}\nfunction contains(content: HTMLElement, target: Node): boolean {\n if (content.contains(target)) return true;\n const visited = new Set<HTMLElement>(); let owner = getPopoverOwner(target);\n while (owner && !visited.has(owner)) {\n if (owner === content) return true;\n visited.add(owner); owner = getPopoverOwner(owner.parentElement);\n }\n return false;\n}\n\nexport const Popover = forwardRef<HTMLDivElement, PopoverProps>(function Popover({ trigger, title, closeLabel,\n description, descriptor = {}, children, dismissPolicy, openOn = popoverBehaviorDefaults.openOn, initialFocusRef, portalContainer, className, motionOrigin,\n open: controlledOpen, defaultOpen, onOpenChange }, ref) {\n if (!title.trim() || !closeLabel.trim()) throw new TypeError(\"Popover title and closeLabel must not be empty\");\n const resolved = resolvePopoverDescriptor(descriptor);\n validatePopoverOpenState({ ...(controlledOpen === undefined ? {} : { open: controlledOpen }), ...(defaultOpen === undefined ? {} : { defaultOpen }), ...(onOpenChange ? { onOpenChange } : {}) } as PopoverOpenState);\n const policy = { ...popoverBehaviorDefaults, ...dismissPolicy };\n const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);\n const parentOpen = useContext(ParentPopoverOpen);\n const open = parentOpen && (controlledOpen ?? internalOpen);\n const previousParentOpen = useRef(parentOpen);\n useEffect(() => {\n if (!parentOpen && previousParentOpen.current && (controlledOpen ?? internalOpen)) {\n // A closed parent ends the child's session; reopening it must not resurrect\n // a stale uncontrolled submenu or leave a controlled owner uninformed.\n if (controlledOpen === undefined) setInternalOpen(false);\n onOpenChange?.(false, { reason: \"programmatic\" });\n }\n previousParentOpen.current = parentOpen;\n }, [parentOpen, controlledOpen, internalOpen, onOpenChange]);\n const theme = useOptionalHjmTheme();\n const systemReduced = useSyncExternalStore(subscribeSystemMotion, readSystemMotion, readServerMotion);\n const reduced = theme?.environment.reducedMotion ?? systemReduced;\n const [present, setPresent] = useState(open);\n const [node, setNode] = useState<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLElement>(null);\n const closeReason = useRef<PopoverDismissReason | undefined>(undefined);\n const focusWasInside = useRef(false);\n const didFocus = useRef(false);\n const requestPending = useRef(false);\n const id = `${useId().replaceAll(\":\", \"\")}-popover`;\n const state = useRef({ open, policy, onOpenChange, controlledOpen }); state.current = { open, policy, onOpenChange, controlledOpen };\n const change = useCallback((next: boolean, reason: PopoverOpenChangeDetails[\"reason\"]) => {\n const current = state.current;\n if (next === current.open || requestPending.current) return;\n if (!next && !canDismissPopover(reason as PopoverDismissReason, current.policy)) return;\n requestPending.current = true;\n // Deduplicate one interaction, but let a controlled owner reject it and receive a later attempt.\n queueMicrotask(() => { requestPending.current = false; });\n closeReason.current = next ? undefined : reason as PopoverDismissReason;\n if (current.controlledOpen === undefined) setInternalOpen(next);\n current.onOpenChange?.(next, { reason });\n }, []);\n useEffect(() => {\n if (open) { setPresent(true); return; }\n if (!present) return;\n // Keep only the exit surface briefly; inert/aria-hidden exclude it immediately.\n // A parent context closes nested popovers in the same render, including their portals.\n if (reduced) { setPresent(false); return; }\n const timeout = setTimeout(() => setPresent(false), popoverRecipe.transition.exit.duration);\n return () => clearTimeout(timeout);\n }, [open, present, reduced]);\n const position = useAnchoredPopup(triggerRef, open || present ? node : null, {\n placement: resolved.placement, align: resolved.align, gap: popoverRecipe.sideOffset,\n // Contextual forms share the dropdown tier with menus (DOM order puts a popover opened\n // from a menu above it) and stay below tooltips; a modal owner supplies its own layer\n // through the shared positioning helper.\n viewportPadding: popoverRecipe.collisionPadding, zIndex: layer.dropdown, fallbackAxis: true, layoutDimensions: motionOrigin !== undefined,\n });\n const motion = useOverlayOriginMotion(open, motionOrigin, reduced, {\n ready: position.style.visibility === \"visible\", transition: popoverRecipe.transition,\n });\n const setContent = useCallback((value: HTMLDivElement | null) => { setNode(value); }, []);\n const contentRef = useCallback(composeRefs(setContent, ref, motion.setNode), [setContent, ref, motion.setNode]);\n useEffect(() => {\n if (!open) {\n if (didFocus.current) {\n didFocus.current = false;\n const reason = closeReason.current;\n if ((reason === undefined || reason === \"programmatic\" || reason === \"escape\" || reason === \"close-action\") && focusWasInside.current) {\n queueMicrotask(() => {\n const active = document.activeElement;\n if (active === document.body || (node && active instanceof Node && contains(node, active))) triggerRef.current?.focus({ preventScroll: true });\n });\n }\n }\n closeReason.current = undefined; return;\n }\n if (!node || position.style.visibility !== \"visible\" || didFocus.current) return;\n didFocus.current = true;\n const initial = initialFocusRef?.current;\n const target = initial && contains(node, initial) ? initial : tabStops(node.querySelector<HTMLElement>(\"[data-hjm-popover-body]\")!)[0] ?? node;\n target.focus({ preventScroll: true }); focusWasInside.current = true;\n }, [open, node, position.style.visibility, initialFocusRef]);\n useEffect(() => {\n if (!open || !node) return;\n let pointerOutside = false;\n const inside = (target: EventTarget | null): target is Node => target instanceof Node && (contains(node, target) || triggerRef.current?.contains(target) === true);\n const pointer = (event: PointerEvent) => {\n pointerOutside = !inside(event.target);\n if (pointerOutside) change(false, \"outside-pointer\");\n };\n const pointerEnd = () => { pointerOutside = false; };\n const focus = (event: FocusEvent) => {\n focusWasInside.current = event.target instanceof Node && contains(node, event.target);\n if (!inside(event.target) && !pointerOutside) change(false, \"outside-focus\");\n };\n const keyboard = (event: KeyboardEvent) => {\n if (event.defaultPrevented || !inside(event.target)) return;\n const owner = getPopoverOwner(event.target instanceof Node ? event.target : null);\n if (owner && owner !== node) return;\n if (event.key === \"Escape\") { event.preventDefault(); event.stopPropagation(); change(false, \"escape\"); }\n if (event.key !== \"Tab\" || !(event.target instanceof Node) || !contains(node, event.target)) return;\n const stops = tabStops(node); const first = stops[0]; const last = stops.at(-1);\n if (event.shiftKey && (document.activeElement === first || document.activeElement === node)) {\n event.preventDefault(); triggerRef.current?.focus(); change(false, \"outside-focus\");\n } else if (!event.shiftKey && (document.activeElement === last || stops.length === 0)) {\n const all = tabStops(document.body).filter((item) => !contains(node, item));\n const index = all.indexOf(triggerRef.current!); const next = index >= 0 ? all[index + 1] : undefined;\n // Portals sit at the end of body; continue after the trigger's logical position.\n if (next) { event.preventDefault(); next.focus(); change(false, \"outside-focus\"); }\n }\n };\n document.addEventListener(\"pointerdown\", pointer); document.addEventListener(\"pointerup\", pointerEnd); document.addEventListener(\"pointercancel\", pointerEnd);\n document.addEventListener(\"focusin\", focus); document.addEventListener(\"keydown\", keyboard);\n return () => { document.removeEventListener(\"pointerdown\", pointer); document.removeEventListener(\"pointerup\", pointerEnd); document.removeEventListener(\"pointercancel\", pointerEnd); document.removeEventListener(\"focusin\", focus); document.removeEventListener(\"keydown\", keyboard); };\n }, [open, node, change]);\n const hoverTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const cancelHover = useCallback(() => { if (hoverTimer.current !== undefined) { clearTimeout(hoverTimer.current); hoverTimer.current = undefined; } }, []);\n useEffect(() => cancelHover, [cancelHover]);\n const scheduleHover = useCallback((next: boolean) => {\n cancelHover();\n // Delays on both edges: opening instantly turns a pass-through into a flash,\n // and closing instantly makes the gap between trigger and panel untraversable.\n hoverTimer.current = setTimeout(\n () => change(next, next ? \"trigger\" : \"outside-pointer\"),\n next ? popoverHoverDelay.open : popoverHoverDelay.close,\n );\n }, [cancelHover, change]);\n const hoverHandlers = openOn === \"hover\"\n ? {\n onPointerEnter: (event: { pointerType?: string }) => { if (event.pointerType !== \"touch\") scheduleHover(true); },\n onPointerLeave: (event: { pointerType?: string }) => { if (event.pointerType !== \"touch\") scheduleHover(false); },\n }\n : {};\n const triggerProps = trigger.props;\n const renderedTrigger = cloneElement(trigger, {\n ref: composeRefs(triggerProps.ref, triggerRef), \"aria-haspopup\": \"dialog\", \"aria-expanded\": open, \"aria-controls\": id,\n ...hoverHandlers,\n onClick: (event) => {\n triggerProps.onClick?.(event);\n if (event.defaultPrevented || triggerProps.disabled || triggerProps[\"aria-disabled\"] === true || triggerProps[\"aria-disabled\"] === \"true\") return;\n change(!open, open ? \"close-action\" : \"trigger\");\n },\n });\n const style = { ...position.style, \"--hjm-popover-max-width\": `${popoverRecipe.maxWidth}px`,\n \"--hjm-popover-duration\": `${open ? popoverRecipe.transition.enter.duration : reduced ? 0 : popoverRecipe.transition.exit.duration}ms`,\n \"--hjm-popover-easing\": `cubic-bezier(${easing[open ? popoverRecipe.transition.enter.easing : popoverRecipe.transition.exit.easing].join(\", \")})`,\n minWidth: Math.min(popoverRecipe.minWidth, Number(position.style.maxWidth ?? popoverRecipe.minWidth)),\n // Keep the legacy recipe without a profile; portal context variables follow\n // the nearest provider so an open editor cannot retain neutral elevation.\n boxShadow: theme?.designProfile ? \"var(--hjm-shadow-floating)\" : `0 ${popoverRecipe.surface.shadow.offsetY}px ${popoverRecipe.surface.shadow.radius}px ${popoverRecipe.surface.shadow.color}${Math.round(popoverRecipe.surface.shadow.opacity * 255).toString(16).padStart(2, \"0\")}`,\n\n } as CSSProperties;\n return <>{renderedTrigger}{open || present || motion.visible ? <AnchoredPortal anchorRef={triggerRef} ssrFallback=\"inline\" {...(portalContainer ? { container: portalContainer } : {})}>\n <ParentPopoverOpen.Provider value={open}><div ref={contentRef} id={id} role=\"dialog\" tabIndex={-1} data-hjm-popover-content=\"\" data-state={open ? \"open\" : \"closed\"}\n aria-hidden={!open || undefined} inert={!open || undefined} aria-label={resolved.accessibilityLabel} aria-labelledby={resolved.accessibilityLabel ? undefined : `${id}-title`} aria-describedby={description ? `${id}-description` : undefined}\n className={classNames(\"hjm-popover\", className)} style={style} data-placement={position.placement} data-align={position.align} {...hoverHandlers}\n onAnimationEnd={(event) => { if (!open && event.target === event.currentTarget) setPresent(false); }}>\n <div className=\"hjm-popover__header\"><h2 id={`${id}-title`} className=\"hjm-popover__title\">{title}</h2><Button tone=\"ghost\" onClick={() => change(false, \"close-action\")}>{closeLabel}</Button></div>\n {description ? <p id={`${id}-description`} className=\"hjm-popover__description\">{description}</p> : null}\n <div data-hjm-popover-body=\"\" className=\"hjm-popover__body\">{typeof children === \"function\" ? children({ close: () => change(false, \"close-action\") }) : children}</div>\n </div></ParentPopoverOpen.Provider>\n </AnchoredPortal> : null}</>;\n});\n"]}
|
|
1
|
+
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../src/popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import { cloneElement, createContext, forwardRef, useCallback, useContext, useEffect, useId, useRef, useState, useSyncExternalStore, type CSSProperties, type ReactNode, type RefObject } from \"react\";\nimport { canDismissPopover, popoverBehaviorDefaults, popoverHoverDelay, popoverRecipe, resolvePopoverDescriptor, validatePopoverOpenState, type PopoverDescriptor, type PopoverDismissPolicy, type PopoverDismissReason, type PopoverOpenChangeDetails, type PopoverOpenOn, type PopoverOpenState } from \"@hjmds/design-contracts/components/popover\";\nimport { easing, layer } from \"@hjmds/design-contracts/foundations\";\nimport type { TransitionRect } from \"@hjmds/design-contracts/content-transition\";\nimport { useOverlayOriginMotion } from \"./internal/overlay-origin-motion.js\";\nimport { Button, IconButton } from \"./actions.js\";\nimport { classNames, composeRefs } from \"./internal.js\";\nimport { AnchoredPortal, getPopoverOwner, useAnchoredPopup } from \"./portal.js\";\nimport { useOptionalHjmTheme } from \"./provider.js\";\nimport type { OverlayTrigger } from \"./overlays.js\";\n\nexport type PopoverContentActions = Readonly<{ close(): void }>;\n// No `layoutStyle`: renders the caller's trigger plus an anchored portal; place the trigger instead.\nexport type PopoverProps = PopoverOpenState & Readonly<{\n trigger: OverlayTrigger;\n title: string;\n closeLabel: string;\n /**\n * Product-supplied glyph for the header close. When present it renders an IconButton named by\n * `closeLabel` (tool actions use icons, 2026-10-17 usage rule in docs/usage/components/icon-button.md);\n * omitted keeps the text close for existing products.\n */\n closeIcon?: ReactNode;\n description?: string;\n descriptor?: PopoverDescriptor;\n children?: ReactNode | ((actions: PopoverContentActions) => ReactNode);\n dismissPolicy?: Partial<PopoverDismissPolicy>;\n /**\n * `\"hover\"` adds pointer enter/leave on top of the click path; it never\n * replaces it, because hover does not exist on touch or for a keyboard.\n */\n openOn?: PopoverOpenOn;\n /** Optional trigger bounds in viewport coordinates; state and focus remain non-modal. */\n motionOrigin?: TransitionRect;\n initialFocusRef?: RefObject<HTMLElement | null>;\n portalContainer?: HTMLElement;\n className?: string;\n}>;\nconst ParentPopoverOpen = createContext(true);\nconst motionQuery = \"(prefers-reduced-motion: reduce)\";\nfunction subscribeSystemMotion(notify: () => void) {\n const media = window.matchMedia(motionQuery); media.addEventListener(\"change\", notify);\n return () => media.removeEventListener(\"change\", notify);\n}\nconst readSystemMotion = () => window.matchMedia(motionQuery).matches;\nconst readServerMotion = () => false;\nconst focusable = 'a[href],button,input,select,textarea,[tabindex]';\nfunction tabStops(container: HTMLElement): HTMLElement[] {\n return [...container.querySelectorAll<HTMLElement>(focusable)].filter((node) =>\n node.tabIndex >= 0 && !node.matches(\":disabled\") && !node.closest('[inert],[hidden],[aria-hidden=\"true\"]') && node.getClientRects().length > 0 && getComputedStyle(node).visibility !== \"hidden\",\n ).sort((a, b) => (a.tabIndex > 0 ? a.tabIndex : Infinity) - (b.tabIndex > 0 ? b.tabIndex : Infinity));\n}\nfunction contains(content: HTMLElement, target: Node): boolean {\n if (content.contains(target)) return true;\n const visited = new Set<HTMLElement>(); let owner = getPopoverOwner(target);\n while (owner && !visited.has(owner)) {\n if (owner === content) return true;\n visited.add(owner); owner = getPopoverOwner(owner.parentElement);\n }\n return false;\n}\n\nexport const Popover = forwardRef<HTMLDivElement, PopoverProps>(function Popover({ trigger, title, closeLabel, closeIcon,\n description, descriptor = {}, children, dismissPolicy, openOn = popoverBehaviorDefaults.openOn, initialFocusRef, portalContainer, className, motionOrigin,\n open: controlledOpen, defaultOpen, onOpenChange }, ref) {\n if (!title.trim() || !closeLabel.trim()) throw new TypeError(\"Popover title and closeLabel must not be empty\");\n const resolved = resolvePopoverDescriptor(descriptor);\n validatePopoverOpenState({ ...(controlledOpen === undefined ? {} : { open: controlledOpen }), ...(defaultOpen === undefined ? {} : { defaultOpen }), ...(onOpenChange ? { onOpenChange } : {}) } as PopoverOpenState);\n const policy = { ...popoverBehaviorDefaults, ...dismissPolicy };\n const [internalOpen, setInternalOpen] = useState(defaultOpen ?? false);\n const parentOpen = useContext(ParentPopoverOpen);\n const open = parentOpen && (controlledOpen ?? internalOpen);\n const previousParentOpen = useRef(parentOpen);\n useEffect(() => {\n if (!parentOpen && previousParentOpen.current && (controlledOpen ?? internalOpen)) {\n // A closed parent ends the child's session; reopening it must not resurrect\n // a stale uncontrolled submenu or leave a controlled owner uninformed.\n if (controlledOpen === undefined) setInternalOpen(false);\n onOpenChange?.(false, { reason: \"programmatic\" });\n }\n previousParentOpen.current = parentOpen;\n }, [parentOpen, controlledOpen, internalOpen, onOpenChange]);\n const theme = useOptionalHjmTheme();\n const systemReduced = useSyncExternalStore(subscribeSystemMotion, readSystemMotion, readServerMotion);\n const reduced = theme?.environment.reducedMotion ?? systemReduced;\n const [present, setPresent] = useState(open);\n const [node, setNode] = useState<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLElement>(null);\n const closeReason = useRef<PopoverDismissReason | undefined>(undefined);\n const focusWasInside = useRef(false);\n const didFocus = useRef(false);\n const requestPending = useRef(false);\n const id = `${useId().replaceAll(\":\", \"\")}-popover`;\n const state = useRef({ open, policy, onOpenChange, controlledOpen }); state.current = { open, policy, onOpenChange, controlledOpen };\n const change = useCallback((next: boolean, reason: PopoverOpenChangeDetails[\"reason\"]) => {\n const current = state.current;\n if (next === current.open || requestPending.current) return;\n if (!next && !canDismissPopover(reason as PopoverDismissReason, current.policy)) return;\n requestPending.current = true;\n // Deduplicate one interaction, but let a controlled owner reject it and receive a later attempt.\n queueMicrotask(() => { requestPending.current = false; });\n closeReason.current = next ? undefined : reason as PopoverDismissReason;\n if (current.controlledOpen === undefined) setInternalOpen(next);\n current.onOpenChange?.(next, { reason });\n }, []);\n useEffect(() => {\n if (open) { setPresent(true); return; }\n if (!present) return;\n // Keep only the exit surface briefly; inert/aria-hidden exclude it immediately.\n // A parent context closes nested popovers in the same render, including their portals.\n if (reduced) { setPresent(false); return; }\n const timeout = setTimeout(() => setPresent(false), popoverRecipe.transition.exit.duration);\n return () => clearTimeout(timeout);\n }, [open, present, reduced]);\n const position = useAnchoredPopup(triggerRef, open || present ? node : null, {\n placement: resolved.placement, align: resolved.align, gap: popoverRecipe.sideOffset,\n // Contextual forms share the dropdown tier with menus (DOM order puts a popover opened\n // from a menu above it) and stay below tooltips; a modal owner supplies its own layer\n // through the shared positioning helper.\n viewportPadding: popoverRecipe.collisionPadding, zIndex: layer.dropdown, fallbackAxis: true, layoutDimensions: motionOrigin !== undefined,\n });\n const motion = useOverlayOriginMotion(open, motionOrigin, reduced, {\n ready: position.style.visibility === \"visible\", transition: popoverRecipe.transition,\n });\n const setContent = useCallback((value: HTMLDivElement | null) => { setNode(value); }, []);\n const contentRef = useCallback(composeRefs(setContent, ref, motion.setNode), [setContent, ref, motion.setNode]);\n useEffect(() => {\n if (!open) {\n if (didFocus.current) {\n didFocus.current = false;\n const reason = closeReason.current;\n if ((reason === undefined || reason === \"programmatic\" || reason === \"escape\" || reason === \"close-action\") && focusWasInside.current) {\n queueMicrotask(() => {\n const active = document.activeElement;\n if (active === document.body || (node && active instanceof Node && contains(node, active))) triggerRef.current?.focus({ preventScroll: true });\n });\n }\n }\n closeReason.current = undefined; return;\n }\n if (!node || position.style.visibility !== \"visible\" || didFocus.current) return;\n didFocus.current = true;\n const initial = initialFocusRef?.current;\n const target = initial && contains(node, initial) ? initial : tabStops(node.querySelector<HTMLElement>(\"[data-hjm-popover-body]\")!)[0] ?? node;\n target.focus({ preventScroll: true }); focusWasInside.current = true;\n }, [open, node, position.style.visibility, initialFocusRef]);\n useEffect(() => {\n if (!open || !node) return;\n let pointerOutside = false;\n const inside = (target: EventTarget | null): target is Node => target instanceof Node && (contains(node, target) || triggerRef.current?.contains(target) === true);\n const pointer = (event: PointerEvent) => {\n pointerOutside = !inside(event.target);\n if (pointerOutside) change(false, \"outside-pointer\");\n };\n const pointerEnd = () => { pointerOutside = false; };\n const focus = (event: FocusEvent) => {\n focusWasInside.current = event.target instanceof Node && contains(node, event.target);\n if (!inside(event.target) && !pointerOutside) change(false, \"outside-focus\");\n };\n const keyboard = (event: KeyboardEvent) => {\n if (event.defaultPrevented || !inside(event.target)) return;\n const owner = getPopoverOwner(event.target instanceof Node ? event.target : null);\n if (owner && owner !== node) return;\n if (event.key === \"Escape\") { event.preventDefault(); event.stopPropagation(); change(false, \"escape\"); }\n if (event.key !== \"Tab\" || !(event.target instanceof Node) || !contains(node, event.target)) return;\n const stops = tabStops(node); const first = stops[0]; const last = stops.at(-1);\n if (event.shiftKey && (document.activeElement === first || document.activeElement === node)) {\n event.preventDefault(); triggerRef.current?.focus(); change(false, \"outside-focus\");\n } else if (!event.shiftKey && (document.activeElement === last || stops.length === 0)) {\n const all = tabStops(document.body).filter((item) => !contains(node, item));\n const index = all.indexOf(triggerRef.current!); const next = index >= 0 ? all[index + 1] : undefined;\n // Portals sit at the end of body; continue after the trigger's logical position.\n if (next) { event.preventDefault(); next.focus(); change(false, \"outside-focus\"); }\n }\n };\n document.addEventListener(\"pointerdown\", pointer); document.addEventListener(\"pointerup\", pointerEnd); document.addEventListener(\"pointercancel\", pointerEnd);\n document.addEventListener(\"focusin\", focus); document.addEventListener(\"keydown\", keyboard);\n return () => { document.removeEventListener(\"pointerdown\", pointer); document.removeEventListener(\"pointerup\", pointerEnd); document.removeEventListener(\"pointercancel\", pointerEnd); document.removeEventListener(\"focusin\", focus); document.removeEventListener(\"keydown\", keyboard); };\n }, [open, node, change]);\n const hoverTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const cancelHover = useCallback(() => { if (hoverTimer.current !== undefined) { clearTimeout(hoverTimer.current); hoverTimer.current = undefined; } }, []);\n useEffect(() => cancelHover, [cancelHover]);\n const scheduleHover = useCallback((next: boolean) => {\n cancelHover();\n // Delays on both edges: opening instantly turns a pass-through into a flash,\n // and closing instantly makes the gap between trigger and panel untraversable.\n hoverTimer.current = setTimeout(\n () => change(next, next ? \"trigger\" : \"outside-pointer\"),\n next ? popoverHoverDelay.open : popoverHoverDelay.close,\n );\n }, [cancelHover, change]);\n const hoverHandlers = openOn === \"hover\"\n ? {\n onPointerEnter: (event: { pointerType?: string }) => { if (event.pointerType !== \"touch\") scheduleHover(true); },\n onPointerLeave: (event: { pointerType?: string }) => { if (event.pointerType !== \"touch\") scheduleHover(false); },\n }\n : {};\n const triggerProps = trigger.props;\n const renderedTrigger = cloneElement(trigger, {\n ref: composeRefs(triggerProps.ref, triggerRef), \"aria-haspopup\": \"dialog\", \"aria-expanded\": open, \"aria-controls\": id,\n ...hoverHandlers,\n onClick: (event) => {\n triggerProps.onClick?.(event);\n if (event.defaultPrevented || triggerProps.disabled || triggerProps[\"aria-disabled\"] === true || triggerProps[\"aria-disabled\"] === \"true\") return;\n change(!open, open ? \"close-action\" : \"trigger\");\n },\n });\n const style = { ...position.style, \"--hjm-popover-max-width\": `${popoverRecipe.maxWidth}px`,\n \"--hjm-popover-duration\": `${open ? popoverRecipe.transition.enter.duration : reduced ? 0 : popoverRecipe.transition.exit.duration}ms`,\n \"--hjm-popover-easing\": `cubic-bezier(${easing[open ? popoverRecipe.transition.enter.easing : popoverRecipe.transition.exit.easing].join(\", \")})`,\n minWidth: Math.min(popoverRecipe.minWidth, Number(position.style.maxWidth ?? popoverRecipe.minWidth)),\n // Keep the legacy recipe without a profile; portal context variables follow\n // the nearest provider so an open editor cannot retain neutral elevation.\n boxShadow: theme?.designProfile ? \"var(--hjm-shadow-floating)\" : `0 ${popoverRecipe.surface.shadow.offsetY}px ${popoverRecipe.surface.shadow.radius}px ${popoverRecipe.surface.shadow.color}${Math.round(popoverRecipe.surface.shadow.opacity * 255).toString(16).padStart(2, \"0\")}`,\n\n } as CSSProperties;\n return <>{renderedTrigger}{open || present || motion.visible ? <AnchoredPortal anchorRef={triggerRef} ssrFallback=\"inline\" {...(portalContainer ? { container: portalContainer } : {})}>\n <ParentPopoverOpen.Provider value={open}><div ref={contentRef} id={id} role=\"dialog\" tabIndex={-1} data-hjm-popover-content=\"\" data-state={open ? \"open\" : \"closed\"}\n aria-hidden={!open || undefined} inert={!open || undefined} aria-label={resolved.accessibilityLabel} aria-labelledby={resolved.accessibilityLabel ? undefined : `${id}-title`} aria-describedby={description ? `${id}-description` : undefined}\n className={classNames(\"hjm-popover\", className)} style={style} data-placement={position.placement} data-align={position.align} {...hoverHandlers}\n onAnimationEnd={(event) => { if (!open && event.target === event.currentTarget) setPresent(false); }}>\n <div className=\"hjm-popover__header\"><h2 id={`${id}-title`} className=\"hjm-popover__title\">{title}</h2>{closeIcon === undefined ? <Button tone=\"ghost\" onClick={() => change(false, \"close-action\")}>{closeLabel}</Button> : <IconButton label={closeLabel} tone=\"ghost\" onClick={() => change(false, \"close-action\")}>{closeIcon}</IconButton>}</div>\n {description ? <p id={`${id}-description`} className=\"hjm-popover__description\">{description}</p> : null}\n <div data-hjm-popover-body=\"\" className=\"hjm-popover__body\">{typeof children === \"function\" ? children({ close: () => change(false, \"close-action\") }) : children}</div>\n </div></ParentPopoverOpen.Provider>\n </AnchoredPortal> : null}</>;\n});\n"]}
|
package/dist/qr-code.js
CHANGED
|
@@ -9,6 +9,6 @@ export function QRCode({ value, label, size = 192, level = "M", fallback, layout
|
|
|
9
9
|
throw new TypeError("QRCode needs an accessible label, alternative action and at least two pixels per module");
|
|
10
10
|
// Integer-sized modules plus a four-module white quiet zone preserve scan geometry in both themes.
|
|
11
11
|
const actualSize = Math.floor(size / modules) * modules;
|
|
12
|
-
return _jsxs("div", { "data-hjm-qr-code": true, style: layoutStyle, children: [_jsxs("svg", { role: "img", "aria-label": label, width: actualSize, height: actualSize, viewBox: `0 0 ${modules} ${modules}`, shapeRendering: "crispEdges", children: [_jsx("rect", { width: modules, height: modules, fill: qrCodeRecipe.background }), _jsx("path", { d: qrPath(matrix), fill: qrCodeRecipe.foreground })] }), fallback] });
|
|
12
|
+
return _jsxs("div", { "data-hjm-qr-code": true, style: { display: "flex", flexDirection: "column", alignItems: "center", gap: qrCodeRecipe.fallbackGap, ...layoutStyle }, children: [_jsxs("svg", { role: "img", "aria-label": label, width: actualSize, height: actualSize, viewBox: `0 0 ${modules} ${modules}`, shapeRendering: "crispEdges", children: [_jsx("rect", { width: modules, height: modules, fill: qrCodeRecipe.background }), _jsx("path", { d: qrPath(matrix), fill: qrCodeRecipe.foreground })] }), fallback] });
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=qr-code.js.map
|
package/dist/qr-code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qr-code.js","sourceRoot":"","sources":["../src/qr-code.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAA0B,MAAM,4CAA4C,CAAC;AAK1H,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAe;IAClG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,OAAO,GAAG,YAAY,CAAC,aAAa;QAAE,MAAM,IAAI,SAAS,CAAC,yFAAyF,CAAC,CAAC;IACrP,mGAAmG;IACnG,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;IACxD,OAAO,yCAAsB,KAAK,EAAE,WAAW,aAAE,eAAK,IAAI,EAAC,KAAK,gBAAa,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,OAAO,IAAI,OAAO,EAAE,EAAE,cAAc,EAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"qr-code.js","sourceRoot":"","sources":["../src/qr-code.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAA0B,MAAM,4CAA4C,CAAC;AAK1H,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAe;IAClG,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,OAAO,GAAG,YAAY,CAAC,aAAa;QAAE,MAAM,IAAI,SAAS,CAAC,yFAAyF,CAAC,CAAC;IACrP,mGAAmG;IACnG,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;IACxD,OAAO,yCAAsB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,aAAE,eAAK,IAAI,EAAC,KAAK,gBAAa,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,OAAO,IAAI,OAAO,EAAE,EAAE,cAAc,EAAC,YAAY,aAChS,eAAM,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,GAAI,EAAA,eAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,UAAU,GAAI,IAC9H,EAAC,QAAQ,IAAO,CAAC;AACzB,CAAC","sourcesContent":["import qrcode from \"qrcode-generator\";\nimport { useMemo, type ReactNode } from \"react\";\nimport { createQRMatrix, qrPath, qrCodeRecipe, type QRErrorCorrection } from \"@hjmds/design-contracts/components/qr-code\";\nimport type { HjmCompositionStyleProp } from \"./composition-style.js\";\nexport type QRCodeProps = { value: string; label: string; size?: number; level?: QRErrorCorrection; fallback: ReactNode;\n /** Canonical layout-only placement on the root element. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp };\nexport function QRCode({ value, label, size = 192, level = \"M\", fallback, layoutStyle }: QRCodeProps) {\n const matrix = useMemo(() => createQRMatrix(value, qrcode, level), [value, level]);\n const modules = matrix.count + matrix.quietZone * 2;\n if (!label.trim() || fallback == null || fallback === false || !Number.isFinite(size) || size < modules * qrCodeRecipe.minModuleSize) throw new TypeError(\"QRCode needs an accessible label, alternative action and at least two pixels per module\");\n // Integer-sized modules plus a four-module white quiet zone preserve scan geometry in both themes.\n const actualSize = Math.floor(size / modules) * modules;\n return <div data-hjm-qr-code style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\", gap: qrCodeRecipe.fallbackGap, ...layoutStyle }}><svg role=\"img\" aria-label={label} width={actualSize} height={actualSize} viewBox={`0 0 ${modules} ${modules}`} shapeRendering=\"crispEdges\">\n <rect width={modules} height={modules} fill={qrCodeRecipe.background} /><path d={qrPath(matrix)} fill={qrCodeRecipe.foreground} />\n </svg>{fallback}</div>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reaction-picker.d.ts","sourceRoot":"","sources":["../src/reaction-picker.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2D,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAE3J,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IAAC,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAAC;AACzR,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAgB,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,mBAAmB,+
|
|
1
|
+
{"version":3,"file":"reaction-picker.d.ts","sourceRoot":"","sources":["../src/reaction-picker.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2D,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAE3J,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IAAC,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAAC;AACzR,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAgB,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,mBAAmB,+BA+BjJ"}
|
package/dist/reaction-picker.js
CHANGED
|
@@ -11,6 +11,11 @@ export function ReactionPicker({ label, options, value, onValueChange, disabled
|
|
|
11
11
|
const all = resolveReactionOptions(options, more);
|
|
12
12
|
validateReactions(all, value);
|
|
13
13
|
const showingAll = expanded && !!more;
|
|
14
|
+
// The wrap layout sits on the page background, where a ghost Button's selected treatment (content color on the
|
|
15
|
+
// canvas) cannot show: an emoji ignores text color. It uses the chip frame instead — hairline at rest, brand
|
|
16
|
+
// border and accent fill when chosen — with toggle-button semantics (aria-pressed), matching Native. The strip
|
|
17
|
+
// layout keeps ghost Buttons because the message bubble supplies its surface (2026-10-17 review).
|
|
18
|
+
const chips = layout === "wrap";
|
|
14
19
|
const visible = showingAll ? all : options;
|
|
15
20
|
const choose = (id) => { if (!disabled) {
|
|
16
21
|
refocus.current = !!root.current?.contains(document.activeElement);
|
|
@@ -20,6 +25,14 @@ export function ReactionPicker({ label, options, value, onValueChange, disabled
|
|
|
20
25
|
// A catalog-only button unmounts on collapse: refocus the toggle, not <body>. Inert hosts restore their own trigger.
|
|
21
26
|
useLayoutEffect(() => { const node = root.current; if (refocus.current && !showingAll && node && !node.closest("[inert]") && !node.contains(document.activeElement))
|
|
22
27
|
toggle.current?.focus(); refocus.current = false; });
|
|
23
|
-
return _jsxs("div", { ref: root, role: "group", "aria-label": label, className: "hjm-reaction-picker", "data-layout": layout, "data-expanded": showingAll || undefined, style: layoutStyle, children: [_jsx("div", { className: "hjm-reaction-picker__options", children: visible.map(option =>
|
|
28
|
+
return _jsxs("div", { ref: root, role: "group", "aria-label": label, className: "hjm-reaction-picker", "data-layout": layout, "data-expanded": showingAll || undefined, style: layoutStyle, children: [_jsx("div", { className: "hjm-reaction-picker__options", children: visible.map(option => {
|
|
29
|
+
const glyph = _jsxs("span", { "aria-hidden": "true", className: "hjm-reaction-picker__glyph", children: [option.emoji, option.count === undefined ? null : ` ${option.count}`] });
|
|
30
|
+
const selected = value === option.id;
|
|
31
|
+
return chips
|
|
32
|
+
? _jsx("button", { type: "button", className: "hjm-chip hjm-reaction-picker__chip", "data-size": "small", "data-selected": selected || undefined, "aria-pressed": selected, disabled: disabled || option.disabled, "aria-label": option.label, onClick: () => choose(option.id), children: glyph }, option.id)
|
|
33
|
+
: _jsx(Button, { tone: "ghost", shape: "pill", selected: selected, disabled: disabled || option.disabled, "aria-label": option.label, onClick: () => choose(option.id), children: glyph }, option.id);
|
|
34
|
+
}) }), _jsx("div", { children: more ? chips
|
|
35
|
+
? _jsx("button", { ref: toggle, type: "button", className: "hjm-chip hjm-reaction-picker__chip", "data-size": "small", "aria-label": more.label, "aria-expanded": showingAll, disabled: disabled, onClick: () => setExpanded(current => !current), children: _jsx("span", { "aria-hidden": "true", className: "hjm-reaction-picker__glyph", children: showingAll ? "−" : "+" }) })
|
|
36
|
+
: _jsx(Button, { ref: toggle, tone: "ghost", shape: "pill", "aria-label": more.label, "aria-expanded": showingAll, disabled: disabled, onClick: () => setExpanded(current => !current), children: _jsx("span", { "aria-hidden": "true", className: "hjm-reaction-picker__glyph", children: showingAll ? "−" : "+" }) }) : null })] });
|
|
24
37
|
}
|
|
25
38
|
//# sourceMappingURL=reaction-picker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reaction-picker.js","sourceRoot":"","sources":["../src/reaction-picker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAiD,MAAM,mCAAmC,CAAC;AAC3J,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,EAAuB;IAChJ,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3C,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAAC,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;IAC3L,qHAAqH;IACrH,eAAe,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1N,OAAO,eAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAC,OAAO,gBAAa,KAAK,EAAE,SAAS,EAAC,qBAAqB,iBAAc,MAAM,mBAAiB,UAAU,IAAI,SAAS,EAAE,KAAK,EAAE,WAAW,aACpK,cAAK,SAAS,EAAC,8BAA8B,YAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"reaction-picker.js","sourceRoot":"","sources":["../src/reaction-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useLayoutEffect, useRef, useState } from \"react\";\nimport { nextReaction, validateReactions, resolveReactionOptions, type ReactionMoreOptions, type ReactionOption } from \"@hjmds/design-contracts/reactions\";\nimport { Button } from \"./actions.js\";\nimport type { HjmCompositionStyleProp } from \"./composition-style.js\";\nexport type ReactionPickerProps = Readonly<{ label: string; options: readonly ReactionOption[]; value: string | null; onValueChange: (value: string | null) => void; disabled?: boolean; layout?: \"wrap\" | \"strip\"; layoutStyle?: HjmCompositionStyleProp; more?: ReactionMoreOptions }>;\n/** Controlled single reaction; counts and persistence belong to the product. */\nexport function ReactionPicker({ label, options, value, onValueChange, disabled = false, layout = \"wrap\", more, layoutStyle }: ReactionPickerProps) {\n const [expanded, setExpanded] = useState(false);\n const root = useRef<HTMLDivElement>(null);\n const toggle = useRef<HTMLButtonElement>(null);\n const refocus = useRef(false);\n const all = resolveReactionOptions(options, more);\n validateReactions(all, value);\n const showingAll = expanded && !!more;\n // The wrap layout sits on the page background, where a ghost Button's selected treatment (content color on the\n // canvas) cannot show: an emoji ignores text color. It uses the chip frame instead — hairline at rest, brand\n // border and accent fill when chosen — with toggle-button semantics (aria-pressed), matching Native. The strip\n // layout keeps ghost Buttons because the message bubble supplies its surface (2026-10-17 review).\n const chips = layout === \"wrap\";\n const visible = showingAll ? all : options;\n const choose = (id: string) => { if (!disabled) { refocus.current = !!root.current?.contains(document.activeElement); onValueChange(nextReaction(all, value, id)); setExpanded(false); } };\n // A catalog-only button unmounts on collapse: refocus the toggle, not <body>. Inert hosts restore their own trigger.\n useLayoutEffect(() => { const node = root.current; if (refocus.current && !showingAll && node && !node.closest(\"[inert]\") && !node.contains(document.activeElement)) toggle.current?.focus(); refocus.current = false; });\n return <div ref={root} role=\"group\" aria-label={label} className=\"hjm-reaction-picker\" data-layout={layout} data-expanded={showingAll || undefined} style={layoutStyle}>\n <div className=\"hjm-reaction-picker__options\">\n {visible.map(option => {\n const glyph = <span aria-hidden=\"true\" className=\"hjm-reaction-picker__glyph\">{option.emoji}{option.count === undefined ? null : ` ${option.count}`}</span>;\n const selected = value === option.id;\n return chips\n ? <button key={option.id} type=\"button\" className=\"hjm-chip hjm-reaction-picker__chip\" data-size=\"small\" data-selected={selected || undefined} aria-pressed={selected} disabled={disabled || option.disabled} aria-label={option.label} onClick={() => choose(option.id)}>{glyph}</button>\n : <Button key={option.id} tone=\"ghost\" shape=\"pill\" selected={selected} disabled={disabled || option.disabled} aria-label={option.label} onClick={() => choose(option.id)}>{glyph}</Button>;\n })}\n </div>\n <div>{more ? chips\n ? <button ref={toggle} type=\"button\" className=\"hjm-chip hjm-reaction-picker__chip\" data-size=\"small\" aria-label={more.label} aria-expanded={showingAll} disabled={disabled} onClick={() => setExpanded(current => !current)}><span aria-hidden=\"true\" className=\"hjm-reaction-picker__glyph\">{showingAll ? \"−\" : \"+\"}</span></button>\n : <Button ref={toggle} tone=\"ghost\" shape=\"pill\" aria-label={more.label} aria-expanded={showingAll} disabled={disabled} onClick={() => setExpanded(current => !current)}><span aria-hidden=\"true\" className=\"hjm-reaction-picker__glyph\">{showingAll ? \"−\" : \"+\"}</span></Button> : null}</div>\n </div>;\n}\n"]}
|
package/dist/saved-items.d.ts
CHANGED
|
@@ -18,6 +18,12 @@ export type SavedItemsScreenProps<T extends SavedItem> = Omit<ListDetailScreenPr
|
|
|
18
18
|
*/
|
|
19
19
|
onBack(): void;
|
|
20
20
|
onCreateCollection(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Product-supplied glyph for the create-collection header action, rendered as an IconButton named
|
|
23
|
+
* by `labels.createCollection`. Required because header tool actions are icons (2026-10-17 usage
|
|
24
|
+
* rule in docs/usage/components/icon-button.md); a text-button fallback let screens drift from it.
|
|
25
|
+
*/
|
|
26
|
+
createCollectionIcon: ReactNode;
|
|
21
27
|
renderThumbnail(item: T): ReactNode;
|
|
22
28
|
renderDetail(item: T): ReactNode;
|
|
23
29
|
};
|
|
@@ -25,9 +31,9 @@ export type SavedItemsScreenProps<T extends SavedItem> = Omit<ListDetailScreenPr
|
|
|
25
31
|
* Collection membership and persistence belong to the app; the shell preserves the grid on detail visits.
|
|
26
32
|
*
|
|
27
33
|
* Header slots per level: on the collection home the shell owns `actions` (the create-collection
|
|
28
|
-
* button) and the product's `
|
|
34
|
+
* button) and the product's `exit`; inside a collection it owns `exit` (back) and keeps the
|
|
29
35
|
* product's `actions`. A product `actions` passed for the home is therefore not rendered there —
|
|
30
36
|
* Native ships the same rule, so changing it is a cross-platform API decision, not a Web fix.
|
|
31
37
|
*/
|
|
32
|
-
export declare function SavedItemsScreen<T extends SavedItem>({ items, collections, collectionId, selectedItemId, labels, onOpenCollection, onOpenItem, onBack, onCreateCollection, renderThumbnail, renderDetail, ...screen }: SavedItemsScreenProps<T>): import("react").JSX.Element;
|
|
38
|
+
export declare function SavedItemsScreen<T extends SavedItem>({ items, collections, collectionId, selectedItemId, labels, onOpenCollection, onOpenItem, onBack, onCreateCollection, createCollectionIcon, renderThumbnail, renderDetail, ...screen }: SavedItemsScreenProps<T>): import("react").JSX.Element;
|
|
33
39
|
//# sourceMappingURL=saved-items.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saved-items.d.ts","sourceRoot":"","sources":["../src/saved-items.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACzI,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC5G,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG;IAC1I,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;IACxC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,MAAM,IAAI,IAAI,CAAC;IACf,kBAAkB,IAAI,IAAI,CAAC;IAC3B,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,EAAC,KAAK,EAAC,WAAW,EAAC,YAAY,EAAC,cAAc,EAAC,MAAM,EAAC,gBAAgB,EAAC,UAAU,EAAC,MAAM,EAAC,kBAAkB,EAAC,eAAe,EAAC,YAAY,EAAC,GAAG,MAAM,EAAC,EAAC,qBAAqB,CAAC,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"saved-items.d.ts","sourceRoot":"","sources":["../src/saved-items.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACzI,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC5G,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG;IAC1I,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;IACxC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,MAAM,IAAI,IAAI,CAAC;IACf,kBAAkB,IAAI,IAAI,CAAC;IAC3B;;;;OAIG;IACH,oBAAoB,EAAE,SAAS,CAAC;IAChC,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,EAAC,KAAK,EAAC,WAAW,EAAC,YAAY,EAAC,cAAc,EAAC,MAAM,EAAC,gBAAgB,EAAC,UAAU,EAAC,MAAM,EAAC,kBAAkB,EAAC,oBAAoB,EAAC,eAAe,EAAC,YAAY,EAAC,GAAG,MAAM,EAAC,EAAC,qBAAqB,CAAC,CAAC,CAAC,+BAqBtP"}
|
package/dist/saved-items.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { ListDetailScreen } from "./screen-flows.js";
|
|
3
3
|
import { Stack, Text, Grid } from "./layout.js";
|
|
4
|
-
import {
|
|
4
|
+
import { IconButton } from "./actions.js";
|
|
5
5
|
import { resolveSavedItems } from "@hjmds/design-contracts/screen-patterns";
|
|
6
6
|
/**
|
|
7
7
|
* Collection membership and persistence belong to the app; the shell preserves the grid on detail visits.
|
|
8
8
|
*
|
|
9
9
|
* Header slots per level: on the collection home the shell owns `actions` (the create-collection
|
|
10
|
-
* button) and the product's `
|
|
10
|
+
* button) and the product's `exit`; inside a collection it owns `exit` (back) and keeps the
|
|
11
11
|
* product's `actions`. A product `actions` passed for the home is therefore not rendered there —
|
|
12
12
|
* Native ships the same rule, so changing it is a cross-platform API decision, not a Web fix.
|
|
13
13
|
*/
|
|
14
|
-
export function SavedItemsScreen({ items, collections, collectionId, selectedItemId, labels, onOpenCollection, onOpenItem, onBack, onCreateCollection, renderThumbnail, renderDetail, ...screen }) {
|
|
14
|
+
export function SavedItemsScreen({ items, collections, collectionId, selectedItemId, labels, onOpenCollection, onOpenItem, onBack, onCreateCollection, createCollectionIcon, renderThumbnail, renderDetail, ...screen }) {
|
|
15
15
|
const { home, collection, visible, selected } = resolveSavedItems(items, collections, collectionId, selectedItemId);
|
|
16
16
|
const groups = [{ id: null, title: labels.allItems, itemIds: items.map(item => item.id) }, ...collections];
|
|
17
17
|
// Empty is a full body state, not a short text row at the top of the grid.
|
|
@@ -19,6 +19,6 @@ export function SavedItemsScreen({ items, collections, collectionId, selectedIte
|
|
|
19
19
|
? { kind: "empty", title: labels.empty } : screen.state ?? { kind: "ready" };
|
|
20
20
|
// Resolve each cover once; four thumbnails must not each rescan membership.
|
|
21
21
|
const covers = new Map(groups.map(group => { const ids = new Set(group.itemIds); return [group.id, items.filter(item => ids.has(item.id)).slice(0, 4)]; }));
|
|
22
|
-
return _jsx(ListDetailScreen, { ...screen, state: state, title: home ? screen.title : collection?.title ?? labels.allItems,
|
|
22
|
+
return _jsx(ListDetailScreen, { ...screen, state: state, title: home ? screen.title : collection?.title ?? labels.allItems, ...(home ? (screen.exit ? { exit: screen.exit } : {}) : { exit: { kind: "back", label: labels.back, onClick: onBack } }), actions: home ? _jsx(IconButton, { label: labels.createCollection, tone: "ghost", onClick: onCreateCollection, children: createCollectionIcon }) : screen.actions, back: { label: labels.back, onAction: onBack }, ...(selected ? { detail: { title: selected.title, content: renderDetail(selected) } } : {}), list: _jsx(Stack, { gap: "md", children: home ? _jsxs(_Fragment, { children: [_jsx(Text, { variant: "caption", tone: "muted", children: labels.privateNotice }), _jsx(Grid, { columns: { compact: 2 }, gap: { compact: "md" }, minColumnWidth: { compact: 80 }, children: groups.map(group => _jsxs("button", { type: "button", className: "hjm-saved-collection", onClick: () => onOpenCollection(group.id), "aria-label": group.title, children: [_jsx("span", { className: "hjm-saved-collection__cover", "aria-hidden": "true", children: Array.from({ length: 4 }, (_, index) => { const item = covers.get(group.id)?.[index]; return _jsx("span", { children: item ? renderThumbnail(item) : null }, index); }) }), _jsx(Text, { emphasis: "strong", children: group.title })] }, group.id === null ? "all" : `collection:${group.id}`)) })] }) : visible.length ? _jsx(Grid, { columns: { compact: 3 }, gap: { compact: "xxs" }, minColumnWidth: { compact: 44 }, children: visible.map(item => _jsx("button", { type: "button", className: "hjm-saved-post", "aria-label": item.title, onClick: () => onOpenItem(item.id), children: renderThumbnail(item) }, item.id)) }) : null }) });
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=saved-items.js.map
|
package/dist/saved-items.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saved-items.js","sourceRoot":"","sources":["../src/saved-items.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAA8B,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"saved-items.js","sourceRoot":"","sources":["../src/saved-items.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { ReactNode } from \"react\";\nimport { ListDetailScreen, type ListDetailScreenProps } from \"./screen-flows.js\";\nimport { Stack, Text, Grid } from \"./layout.js\";\nimport { IconButton } from \"./actions.js\";\n\nimport { resolveSavedItems, type SavedItem, type SavedCollection, type SavedItemsLabels } from \"@hjmds/design-contracts/screen-patterns\";\nexport type { SavedItem, SavedCollection, SavedItemsLabels } from \"@hjmds/design-contracts/screen-patterns\";\nexport type SavedItemsScreenProps<T extends SavedItem> = Omit<ListDetailScreenProps, \"list\" | \"detail\" | \"back\" | \"refresh\" | \"loadMore\"> & {\n items: readonly T[];\n collections: readonly SavedCollection[];\n /** Omitted shows collections; null selects all saved items. */\n collectionId?: string | null;\n selectedItemId?: string | null;\n labels: SavedItemsLabels;\n onOpenCollection(id: string | null): void;\n onOpenItem(id: string): void;\n /**\n * One level up, from either the item detail or a collection grid. The shell does not know the\n * host's history, so the host pops a single level: clear `selectedItemId` when an item is open,\n * otherwise clear `collectionId` (back to the collection home).\n */\n onBack(): void;\n onCreateCollection(): void;\n /**\n * Product-supplied glyph for the create-collection header action, rendered as an IconButton named\n * by `labels.createCollection`. Required because header tool actions are icons (2026-10-17 usage\n * rule in docs/usage/components/icon-button.md); a text-button fallback let screens drift from it.\n */\n createCollectionIcon: ReactNode;\n renderThumbnail(item: T): ReactNode;\n renderDetail(item: T): ReactNode;\n};\n\n/**\n * Collection membership and persistence belong to the app; the shell preserves the grid on detail visits.\n *\n * Header slots per level: on the collection home the shell owns `actions` (the create-collection\n * button) and the product's `exit`; inside a collection it owns `exit` (back) and keeps the\n * product's `actions`. A product `actions` passed for the home is therefore not rendered there —\n * Native ships the same rule, so changing it is a cross-platform API decision, not a Web fix.\n */\nexport function SavedItemsScreen<T extends SavedItem>({items,collections,collectionId,selectedItemId,labels,onOpenCollection,onOpenItem,onBack,onCreateCollection,createCollectionIcon,renderThumbnail,renderDetail,...screen}:SavedItemsScreenProps<T>) {\n const {home,collection,visible,selected}=resolveSavedItems(items,collections,collectionId,selectedItemId);\n const groups=[{id:null,title:labels.allItems,itemIds:items.map(item=>item.id)},...collections];\n // Empty is a full body state, not a short text row at the top of the grid.\n const state=(screen.state?.kind??\"ready\")===\"ready\"&&!home&&!visible.length\n ? {kind:\"empty\" as const,title:labels.empty} : screen.state??{kind:\"ready\" as const};\n // Resolve each cover once; four thumbnails must not each rescan membership.\n const covers=new Map(groups.map(group=>{const ids=new Set(group.itemIds);return [group.id,items.filter(item=>ids.has(item.id)).slice(0,4)] as const;}));\n return <ListDetailScreen {...screen} state={state} title={home?screen.title:collection?.title??labels.allItems}\n {...(home?(screen.exit?{exit:screen.exit}:{}):{exit:{kind:\"back\" as const,label:labels.back,onClick:onBack}})}\n actions={home?<IconButton label={labels.createCollection} tone=\"ghost\" onClick={onCreateCollection}>{createCollectionIcon}</IconButton>:screen.actions}\n back={{label:labels.back,onAction:onBack}}\n {...(selected?{detail:{title:selected.title,content:renderDetail(selected)}}:{})}\n list={<Stack gap=\"md\">\n {home?<><Text variant=\"caption\" tone=\"muted\">{labels.privateNotice}</Text><Grid columns={{compact:2}} gap={{compact:\"md\"}} minColumnWidth={{compact:80}}>\n {groups.map(group=><button key={group.id===null?\"all\":`collection:${group.id}`} type=\"button\" className=\"hjm-saved-collection\" onClick={()=>onOpenCollection(group.id)} aria-label={group.title}>\n <span className=\"hjm-saved-collection__cover\" aria-hidden=\"true\">{Array.from({length:4},(_,index)=>{const item=covers.get(group.id)?.[index];return <span key={index}>{item?renderThumbnail(item):null}</span>})}</span>\n <Text emphasis=\"strong\">{group.title}</Text>\n </button>)}\n </Grid></>:visible.length?<Grid columns={{compact:3}} gap={{compact:\"xxs\"}} minColumnWidth={{compact:44}}>{visible.map(item=><button key={item.id} type=\"button\" className=\"hjm-saved-post\" aria-label={item.title} onClick={()=>onOpenItem(item.id)}>{renderThumbnail(item)}</button>)}</Grid>:null}\n </Stack>}/>\n}\n"]}
|
package/dist/screen-flows.d.ts
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
import { type ScreenLayoutProps } from "./screens.js";
|
|
3
|
+
import { type MessageMenuAction } from "./internal/message-reactions.js";
|
|
4
|
+
import type { ReactionPickerProps } from "./reaction-picker.js";
|
|
3
5
|
import { type SheetProps } from "./overlays.js";
|
|
4
6
|
import { type UploadItemDescriptor, type UploadItemLabels } from "@hjmds/design-contracts/components/upload-item";
|
|
5
7
|
import { type AlertDialogRequest } from "@hjmds/design-contracts/components/alert-dialog";
|
|
6
|
-
import { type PermissionScreenStatus, type PhotoSource, type PhotoSourceLabels } from "@hjmds/design-contracts/screen-patterns";
|
|
8
|
+
import { type CommentMenuItemDescriptor, type PermissionScreenStatus, type PhotoSource, type PhotoSourceLabels } from "@hjmds/design-contracts/screen-patterns";
|
|
7
9
|
import { type ContainerGutter } from "@hjmds/design-contracts/components/container";
|
|
8
10
|
/** Copy, pending state and mutations are controlled by the consuming product. */
|
|
11
|
+
/** `icon` renders an icon-only button named by `label`; header actions (top-right) use it so a centered title keeps its width (2026-10-17). */
|
|
9
12
|
export type ScreenFlowAction = Readonly<{
|
|
10
13
|
label: string;
|
|
11
14
|
onAction(): void;
|
|
12
15
|
disabled?: boolean;
|
|
13
16
|
pending?: boolean;
|
|
17
|
+
icon?: ReactNode;
|
|
18
|
+
}>;
|
|
19
|
+
/** Header tool action (refresh, add): icon-only so it never pushes the centered title. A required text `add` made
|
|
20
|
+
* products route exits ("취소") through it as a header text button (2026-10-17 screen review); exits use `exit`. */
|
|
21
|
+
export type ScreenFlowIconAction = ScreenFlowAction & Readonly<{
|
|
22
|
+
icon: ReactNode;
|
|
14
23
|
}>;
|
|
15
24
|
type Base = Omit<ScreenLayoutProps, "children" | "footer">;
|
|
16
25
|
export type ListDetailScreenProps = Base & {
|
|
@@ -19,12 +28,12 @@ export type ListDetailScreenProps = Base & {
|
|
|
19
28
|
content: ReactNode;
|
|
20
29
|
};
|
|
21
30
|
back: ScreenFlowAction;
|
|
22
|
-
refresh?:
|
|
31
|
+
refresh?: ScreenFlowIconAction;
|
|
23
32
|
loadMore?: ScreenFlowAction;
|
|
24
33
|
};
|
|
25
34
|
/** Keep the list mounted so input and scroll survive a detail visit. Routers may instead restore host scroll state. */
|
|
26
35
|
export declare function ListDetailScreen({ list, detail, back, refresh, loadMore, layoutStyle, ...screen }: ListDetailScreenProps): import("react").JSX.Element;
|
|
27
|
-
export type EditorScreenProps = Base & {
|
|
36
|
+
export type EditorScreenProps = Omit<Base, "leading" | "exit"> & {
|
|
28
37
|
children: ReactNode;
|
|
29
38
|
submitPlacement?: "header" | "footer";
|
|
30
39
|
dirty: boolean;
|
|
@@ -82,7 +91,7 @@ export type MediaSelectionScreenProps = Base & {
|
|
|
82
91
|
library?: ReactNode;
|
|
83
92
|
selectionSummary?: ReactNode;
|
|
84
93
|
items: readonly MediaSelectionItem[];
|
|
85
|
-
add
|
|
94
|
+
add?: ScreenFlowIconAction;
|
|
86
95
|
done: ScreenFlowAction;
|
|
87
96
|
labels: UploadItemLabels;
|
|
88
97
|
actionLabels: {
|
|
@@ -310,6 +319,41 @@ export type CommentThreadItem = Readonly<{
|
|
|
310
319
|
actions?: ReactNode;
|
|
311
320
|
canReply?: boolean;
|
|
312
321
|
replyDisabled?: boolean;
|
|
322
|
+
/** Long-press the comment (author and body) to react; the product owns the stored value and summary. */
|
|
323
|
+
reactions?: CommentReactions;
|
|
324
|
+
reactionSummary?: ReactNode;
|
|
325
|
+
/** Optional photo or sticker under the body; HJM bounds its width and corners, the product sizes the image. */
|
|
326
|
+
media?: ReactNode;
|
|
327
|
+
}>;
|
|
328
|
+
export type CommentReactions = ReactionPickerProps & Readonly<{
|
|
329
|
+
closeLabel: string;
|
|
330
|
+
menuAction?: Readonly<{
|
|
331
|
+
label: string;
|
|
332
|
+
onPress(): void;
|
|
333
|
+
disabled?: boolean;
|
|
334
|
+
}>;
|
|
335
|
+
menuActions?: readonly MessageMenuAction[];
|
|
336
|
+
reportAction?: Readonly<{
|
|
337
|
+
label: string;
|
|
338
|
+
onPress(): void;
|
|
339
|
+
disabled?: boolean;
|
|
340
|
+
icon?: ReactNode;
|
|
341
|
+
}>;
|
|
342
|
+
interactiveContent?: boolean; /** Icon for the automatic "reply" row of the hold menu. */
|
|
343
|
+
replyIcon?: ReactNode;
|
|
344
|
+
}>;
|
|
345
|
+
/**
|
|
346
|
+
* HJM-owned "more" menu per comment (2026-10-17: common comment structure belongs to HJM, review S4#7). HJM draws the
|
|
347
|
+
* vertical-dots button at the row's trailing edge and opens the shared Menu with danger items last; the product supplies
|
|
348
|
+
* only the localized button name, the items allowed for that comment and the action callback.
|
|
349
|
+
*/
|
|
350
|
+
export type CommentMenu = Readonly<{
|
|
351
|
+
/** Localized accessible name of the button, e.g. "seoyeon 댓글 더 보기". */
|
|
352
|
+
label(item: CommentThreadItem): string;
|
|
353
|
+
/** Items allowed for this comment (permission is product-owned). An empty list omits the button for that row. */
|
|
354
|
+
items(item: CommentThreadItem): readonly CommentMenuItemDescriptor[];
|
|
355
|
+
/** Runs after the menu closes, so a confirmation dialog can open without competing with the menu for focus. */
|
|
356
|
+
onAction(item: CommentThreadItem, id: string): void;
|
|
313
357
|
}>;
|
|
314
358
|
export type CommentThreadScreenProps = Base & {
|
|
315
359
|
items: readonly CommentThreadItem[];
|
|
@@ -322,6 +366,7 @@ export type CommentThreadScreenProps = Base & {
|
|
|
322
366
|
composer?: ReactNode;
|
|
323
367
|
threadHeader?: ReactNode;
|
|
324
368
|
threadFooter?: ReactNode;
|
|
369
|
+
commentMenu?: CommentMenu;
|
|
325
370
|
};
|
|
326
371
|
export type CommentThreadRowProps = Readonly<{
|
|
327
372
|
layoutStyle?: ScreenLayoutProps["layoutStyle"];
|
|
@@ -329,11 +374,12 @@ export type CommentThreadRowProps = Readonly<{
|
|
|
329
374
|
onLike(id: string): void;
|
|
330
375
|
onReply(id: string): void;
|
|
331
376
|
replyLabel: string;
|
|
377
|
+
commentMenu?: CommentMenu;
|
|
332
378
|
}>;
|
|
333
379
|
/** Virtualized hosts reuse the same row as CommentThreadScreen; product slots add content, not a second layout. */
|
|
334
|
-
export declare function CommentThreadRow({ item, onLike, onReply, replyLabel, layoutStyle }: CommentThreadRowProps): import("react").JSX.Element;
|
|
380
|
+
export declare function CommentThreadRow({ item, onLike, onReply, replyLabel, layoutStyle, commentMenu }: CommentThreadRowProps): import("react").JSX.Element;
|
|
335
381
|
/** Controlled thread: server ordering, permission checks and receipt-based draft clearing belong to the product. */
|
|
336
|
-
export declare function CommentThreadScreen({ items, expandedIds, onExpandedChange, onLike, onReply, replyLabel, repliesLabel, composer, threadHeader, threadFooter, ...screen }: CommentThreadScreenProps): import("react").JSX.Element;
|
|
382
|
+
export declare function CommentThreadScreen({ items, expandedIds, onExpandedChange, onLike, onReply, replyLabel, repliesLabel, composer, threadHeader, threadFooter, commentMenu, ...screen }: CommentThreadScreenProps): import("react").JSX.Element;
|
|
337
383
|
export type ProfileSummaryProps = Readonly<{
|
|
338
384
|
name: string;
|
|
339
385
|
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-flows.d.ts","sourceRoot":"","sources":["../src/screen-flows.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"screen-flows.d.ts","sourceRoot":"","sources":["../src/screen-flows.tsx"],"names":[],"mappings":"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"}
|