@amboss/design-system 4.0.0-next.9 → 4.0.3

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.
@@ -0,0 +1,61 @@
1
+ import React from "react";
2
+ /** Placement options accepted by the underlying tooltip positioner. */
3
+ type RangePopoverPlacement = "auto" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
4
+ export type RangePopoverProps = {
5
+ /** The popover body. */
6
+ content: React.ReactElement;
7
+ /** The DOM range the popover is anchored on. */
8
+ range: Range;
9
+ /** Whether the popover is shown. */
10
+ isVisible: boolean;
11
+ /** Called when the popover is dismissed by an outside click or the Escape key. */
12
+ onClose: () => void;
13
+ /** Preferred placement relative to the range. */
14
+ placement?: RangePopoverPlacement;
15
+ /** Portal target; falls back to the document body when omitted. */
16
+ portalContainer?: HTMLElement | null;
17
+ /** Inner padding of the popover surface. */
18
+ contentPadding?: "s" | "m";
19
+ /** Maximum width of the popover surface. */
20
+ maxWidth?: number;
21
+ /** ARIA role for the popover surface. */
22
+ role?: string;
23
+ /**
24
+ * Accessible name for the popover surface. Required: the default `dialog`
25
+ * role has no name of its own, so assistive technology needs one. Omitting it
26
+ * would render an unnamed dialog.
27
+ */
28
+ "aria-label": string;
29
+ /**
30
+ * When true, the popover does not move focus into itself on open and does not
31
+ * restore focus on close. Use when it appears passively (e.g. over a live text
32
+ * selection) and stealing focus would disturb the user's context.
33
+ */
34
+ disableInitialFocus?: boolean;
35
+ "data-e2e-test-id"?: string;
36
+ };
37
+ /**
38
+ * A click-dismissed popover anchored on a DOM {@link Range} rather than a
39
+ * trigger element.
40
+ *
41
+ * It pairs the design-system tooltip positioner — which places content purely
42
+ * from `triggerRef.current.getBoundingClientRect()`, a method a `Range` also
43
+ * provides — with the focus-trap dismissal model used by the design-system
44
+ * Popover. This lets it anchor on a painted text selection that has no DOM node
45
+ * of its own, the same way `UserHighlightTooltip` does, while opening and
46
+ * closing on explicit interaction instead of hover.
47
+ *
48
+ * @param content - The popover body.
49
+ * @param range - The range to anchor on.
50
+ * @param isVisible - Whether the popover is shown.
51
+ * @param onClose - Called when dismissed by an outside click or the Escape key.
52
+ * @param placement - Preferred placement relative to the range.
53
+ * @param portalContainer - Portal target; falls back to the document body.
54
+ * @param contentPadding - Inner padding of the popover surface.
55
+ * @param maxWidth - Maximum width of the popover surface.
56
+ * @param role - ARIA role for the popover surface.
57
+ * @param aria-label - Accessible name for the popover surface.
58
+ * @param disableInitialFocus - When true, does not move focus into the popover.
59
+ */
60
+ export declare function RangePopover({ content, range, isVisible, onClose, placement, portalContainer, contentPadding, maxWidth, role, "aria-label": ariaLabel, disableInitialFocus, "data-e2e-test-id": dataE2eTestId, }: RangePopoverProps): React.ReactElement;
61
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RangePopover",{enumerable:!0,get:function(){return RangePopover}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_TooltipContent=require("../Tooltip/TooltipContent"),_FocusTrapWrapper=require("../../shared/FocusTrapWrapper"),StyledContent=(0,_styled.default)("div",{target:"e6ct16h0",label:"StyledContent"})(({theme,contentPadding})=>({padding:"m"===contentPadding?theme.variables.size.spacing.s:theme.variables.size.spacing.xxs}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUmFuZ2VQb3BvdmVyL1JhbmdlUG9wb3Zlci50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1JhbmdlUG9wb3Zlci9SYW5nZVBvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VJZCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFRvb2x0aXBDb250ZW50IH0gZnJvbSBcIi4uL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnRcIjtcbmltcG9ydCB7IEZvY3VzVHJhcFdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL0ZvY3VzVHJhcFdyYXBwZXJcIjtcblxuLyoqIFBsYWNlbWVudCBvcHRpb25zIGFjY2VwdGVkIGJ5IHRoZSB1bmRlcmx5aW5nIHRvb2x0aXAgcG9zaXRpb25lci4gKi9cbnR5cGUgUmFuZ2VQb3BvdmVyUGxhY2VtZW50ID1cbiAgfCBcImF1dG9cIlxuICB8IFwidG9wXCJcbiAgfCBcImJvdHRvbVwiXG4gIHwgXCJ0b3AtbGVmdFwiXG4gIHwgXCJ0b3AtcmlnaHRcIlxuICB8IFwiYm90dG9tLWxlZnRcIlxuICB8IFwiYm90dG9tLXJpZ2h0XCI7XG5cbmV4cG9ydCB0eXBlIFJhbmdlUG9wb3ZlclByb3BzID0ge1xuICAvKiogVGhlIHBvcG92ZXIgYm9keS4gKi9cbiAgY29udGVudDogUmVhY3QuUmVhY3RFbGVtZW50O1xuICAvKiogVGhlIERPTSByYW5nZSB0aGUgcG9wb3ZlciBpcyBhbmNob3JlZCBvbi4gKi9cbiAgcmFuZ2U6IFJhbmdlO1xuICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBzaG93bi4gKi9cbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICAvKiogQ2FsbGVkIHdoZW4gdGhlIHBvcG92ZXIgaXMgZGlzbWlzc2VkIGJ5IGFuIG91dHNpZGUgY2xpY2sgb3IgdGhlIEVzY2FwZSBrZXkuICovXG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBQcmVmZXJyZWQgcGxhY2VtZW50IHJlbGF0aXZlIHRvIHRoZSByYW5nZS4gKi9cbiAgcGxhY2VtZW50PzogUmFuZ2VQb3BvdmVyUGxhY2VtZW50O1xuICAvKiogUG9ydGFsIHRhcmdldDsgZmFsbHMgYmFjayB0byB0aGUgZG9jdW1lbnQgYm9keSB3aGVuIG9taXR0ZWQuICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgLyoqIElubmVyIHBhZGRpbmcgb2YgdGhlIHBvcG92ZXIgc3VyZmFjZS4gKi9cbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICAvKiogTWF4aW11bSB3aWR0aCBvZiB0aGUgcG9wb3ZlciBzdXJmYWNlLiAqL1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgLyoqIEFSSUEgcm9sZSBmb3IgdGhlIHBvcG92ZXIgc3VyZmFjZS4gKi9cbiAgcm9sZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEFjY2Vzc2libGUgbmFtZSBmb3IgdGhlIHBvcG92ZXIgc3VyZmFjZS4gUmVxdWlyZWQ6IHRoZSBkZWZhdWx0IGBkaWFsb2dgXG4gICAqIHJvbGUgaGFzIG5vIG5hbWUgb2YgaXRzIG93biwgc28gYXNzaXN0aXZlIHRlY2hub2xvZ3kgbmVlZHMgb25lLiBPbWl0dGluZyBpdFxuICAgKiB3b3VsZCByZW5kZXIgYW4gdW5uYW1lZCBkaWFsb2cuXG4gICAqL1xuICBcImFyaWEtbGFiZWxcIjogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCB0aGUgcG9wb3ZlciBkb2VzIG5vdCBtb3ZlIGZvY3VzIGludG8gaXRzZWxmIG9uIG9wZW4gYW5kIGRvZXMgbm90XG4gICAqIHJlc3RvcmUgZm9jdXMgb24gY2xvc2UuIFVzZSB3aGVuIGl0IGFwcGVhcnMgcGFzc2l2ZWx5IChlLmcuIG92ZXIgYSBsaXZlIHRleHRcbiAgICogc2VsZWN0aW9uKSBhbmQgc3RlYWxpbmcgZm9jdXMgd291bGQgZGlzdHVyYiB0aGUgdXNlcidzIGNvbnRleHQuXG4gICAqL1xuICBkaXNhYmxlSW5pdGlhbEZvY3VzPzogYm9vbGVhbjtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG59O1xuXG50eXBlIFN0eWxlZENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudFBhZGRpbmc6IFwic1wiIHwgXCJtXCI7XG59O1xuXG4vLyBUb29sdGlwQ29udGVudCBvbmx5IGFwcGxpZXMgaXRzIG93biBgY29udGVudFBhZGRpbmdgIGluc2lkZSBhIGBzdWJUaGVtZWBcbi8vIGJyYW5jaCwgd2hpY2ggUmFuZ2VQb3BvdmVyIGRvZXMgbm90IHVzZSwgc28gdGhlIHN1cmZhY2UgcGFkZGluZyBpcyBhcHBsaWVkXG4vLyBoZXJlIG9uIHRoZSBsb2NhbCBjb250ZW50IHdyYXBwZXIuIFRva2VucyBtaXJyb3IgVG9vbHRpcENvbnRlbnQncyBtYXBwaW5nLlxuY29uc3QgU3R5bGVkQ29udGVudCA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGVudFByb3BzPihcbiAgKHsgdGhlbWUsIGNvbnRlbnRQYWRkaW5nIH0pID0+ICh7XG4gICAgcGFkZGluZzpcbiAgICAgIGNvbnRlbnRQYWRkaW5nID09PSBcIm1cIlxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc1xuICAgICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBBIGNsaWNrLWRpc21pc3NlZCBwb3BvdmVyIGFuY2hvcmVkIG9uIGEgRE9NIHtAbGluayBSYW5nZX0gcmF0aGVyIHRoYW4gYVxuICogdHJpZ2dlciBlbGVtZW50LlxuICpcbiAqIEl0IHBhaXJzIHRoZSBkZXNpZ24tc3lzdGVtIHRvb2x0aXAgcG9zaXRpb25lciDigJQgd2hpY2ggcGxhY2VzIGNvbnRlbnQgcHVyZWx5XG4gKiBmcm9tIGB0cmlnZ2VyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClgLCBhIG1ldGhvZCBhIGBSYW5nZWAgYWxzb1xuICogcHJvdmlkZXMg4oCUIHdpdGggdGhlIGZvY3VzLXRyYXAgZGlzbWlzc2FsIG1vZGVsIHVzZWQgYnkgdGhlIGRlc2lnbi1zeXN0ZW1cbiAqIFBvcG92ZXIuIFRoaXMgbGV0cyBpdCBhbmNob3Igb24gYSBwYWludGVkIHRleHQgc2VsZWN0aW9uIHRoYXQgaGFzIG5vIERPTSBub2RlXG4gKiBvZiBpdHMgb3duLCB0aGUgc2FtZSB3YXkgYFVzZXJIaWdobGlnaHRUb29sdGlwYCBkb2VzLCB3aGlsZSBvcGVuaW5nIGFuZFxuICogY2xvc2luZyBvbiBleHBsaWNpdCBpbnRlcmFjdGlvbiBpbnN0ZWFkIG9mIGhvdmVyLlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIHBvcG92ZXIgYm9keS5cbiAqIEBwYXJhbSByYW5nZSAtIFRoZSByYW5nZSB0byBhbmNob3Igb24uXG4gKiBAcGFyYW0gaXNWaXNpYmxlIC0gV2hldGhlciB0aGUgcG9wb3ZlciBpcyBzaG93bi5cbiAqIEBwYXJhbSBvbkNsb3NlIC0gQ2FsbGVkIHdoZW4gZGlzbWlzc2VkIGJ5IGFuIG91dHNpZGUgY2xpY2sgb3IgdGhlIEVzY2FwZSBrZXkuXG4gKiBAcGFyYW0gcGxhY2VtZW50IC0gUHJlZmVycmVkIHBsYWNlbWVudCByZWxhdGl2ZSB0byB0aGUgcmFuZ2UuXG4gKiBAcGFyYW0gcG9ydGFsQ29udGFpbmVyIC0gUG9ydGFsIHRhcmdldDsgZmFsbHMgYmFjayB0byB0aGUgZG9jdW1lbnQgYm9keS5cbiAqIEBwYXJhbSBjb250ZW50UGFkZGluZyAtIElubmVyIHBhZGRpbmcgb2YgdGhlIHBvcG92ZXIgc3VyZmFjZS5cbiAqIEBwYXJhbSBtYXhXaWR0aCAtIE1heGltdW0gd2lkdGggb2YgdGhlIHBvcG92ZXIgc3VyZmFjZS5cbiAqIEBwYXJhbSByb2xlIC0gQVJJQSByb2xlIGZvciB0aGUgcG9wb3ZlciBzdXJmYWNlLlxuICogQHBhcmFtIGFyaWEtbGFiZWwgLSBBY2Nlc3NpYmxlIG5hbWUgZm9yIHRoZSBwb3BvdmVyIHN1cmZhY2UuXG4gKiBAcGFyYW0gZGlzYWJsZUluaXRpYWxGb2N1cyAtIFdoZW4gdHJ1ZSwgZG9lcyBub3QgbW92ZSBmb2N1cyBpbnRvIHRoZSBwb3BvdmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUmFuZ2VQb3BvdmVyKHtcbiAgY29udGVudCxcbiAgcmFuZ2UsXG4gIGlzVmlzaWJsZSxcbiAgb25DbG9zZSxcbiAgcGxhY2VtZW50ID0gXCJ0b3BcIixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjb250ZW50UGFkZGluZyA9IFwic1wiLFxuICBtYXhXaWR0aCxcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIGRpc2FibGVJbml0aWFsRm9jdXMgPSBmYWxzZSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBSYW5nZVBvcG92ZXJQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHRvb2x0aXBJZCA9IHVzZUlkKCk7XG4gIC8vIFRoZSBwb3NpdGlvbmVyIHJlYWRzIHRyaWdnZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBpbiBhIGxheW91dFxuICAvLyBlZmZlY3Q7IGFzc2lnbmluZyBkdXJpbmcgcmVuZGVyIGtlZXBzIHRoZSByZWYgY3VycmVudCBiZWZvcmUgdGhhdCBydW5zLFxuICAvLyB3aXRob3V0IHRoZSBzdGFsZSBmaXJzdCBmcmFtZSBhbiBlZmZlY3QtYmFzZWQgYXNzaWdubWVudCB3b3VsZCBpbnRyb2R1Y2UuXG4gIGNvbnN0IHJhbmdlUmVmID0gdXNlUmVmPFJhbmdlIHwgbnVsbD4obnVsbCk7XG4gIHJhbmdlUmVmLmN1cnJlbnQgPSByYW5nZTtcbiAgLy8gRm9jdXNhYmxlIHdyYXBwZXIgdXNlZCBhcyB0aGUgZm9jdXMgdHJhcCdzIGZhbGxiYWNrLCBzbyBhY3RpdmF0aW9uIG5ldmVyXG4gIC8vIGRlcGVuZHMgb24gdGhlIGNvbnRlbnQgZXhwb3NpbmcgYSB0YWJiYWJsZSBlbGVtZW50LlxuICBjb25zdCBjb250ZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICBjb25zdCB0cmFwcGVkQ29udGVudCA9IChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLFxuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IHRydWUsXG4gICAgICAgIGZhbGxiYWNrRm9jdXM6ICgpID0+IGNvbnRlbnRSZWYuY3VycmVudCxcbiAgICAgICAgaW5pdGlhbEZvY3VzOiBkaXNhYmxlSW5pdGlhbEZvY3VzID8gZmFsc2UgOiB1bmRlZmluZWQsXG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU6IG9uQ2xvc2UsXG4gICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWUsXG4gICAgICAgIHJldHVybkZvY3VzT25EZWFjdGl2YXRlOiAhZGlzYWJsZUluaXRpYWxGb2N1cyxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPFN0eWxlZENvbnRlbnRcbiAgICAgICAgcmVmPXtjb250ZW50UmVmfVxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGNvbnRlbnRQYWRkaW5nPXtjb250ZW50UGFkZGluZ31cbiAgICAgID5cbiAgICAgICAge2NvbnRlbnR9XG4gICAgICA8L1N0eWxlZENvbnRlbnQ+XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFRvb2x0aXBDb250ZW50XG4gICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICBjb250ZW50PXt0cmFwcGVkQ29udGVudH1cbiAgICAgIGRhdGFEU0lkPVwiUmFuZ2VQb3BvdmVyXCJcbiAgICAgIGRhdGFFMmVUZXN0SWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBpc1Zpc2libGU9e2lzVmlzaWJsZX1cbiAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgIHBsYWNlbWVudD17cGxhY2VtZW50fVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgdG9vbHRpcElkPXt0b29sdGlwSWR9XG4gICAgICB0cmlnZ2VyUmVmPXtyYW5nZVJlZn1cbiAgICAvPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdEc0IifQ== */");function RangePopover({content,range,isVisible,onClose,placement="top",portalContainer,contentPadding="s",maxWidth,role="dialog","aria-label":ariaLabel,disableInitialFocus=!1,"data-e2e-test-id":dataE2eTestId}){let tooltipId=(0,_react.useId)(),rangeRef=(0,_react.useRef)(null);rangeRef.current=range;let contentRef=(0,_react.useRef)(null),trappedContent=_react.default.createElement(_FocusTrapWrapper.FocusTrapWrapper,{active:isVisible,focusTrapOptions:{allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0,fallbackFocus:()=>contentRef.current,initialFocus:!disableInitialFocus&&void 0,onPostDeactivate:onClose,preventScroll:!0,returnFocusOnDeactivate:!disableInitialFocus}},_react.default.createElement(StyledContent,{ref:contentRef,tabIndex:-1,contentPadding:contentPadding},content));return _react.default.createElement(_TooltipContent.TooltipContent,{"aria-label":ariaLabel,content:trappedContent,dataDSId:"RangePopover",dataE2eTestId:dataE2eTestId,isVisible:isVisible,maxWidth:maxWidth,placement:placement,portalContainer:portalContainer,role:role,tooltipId:tooltipId,triggerRef:rangeRef})}
@@ -95,6 +95,8 @@ export * from "./components/Typography/StyledText/StyledText";
95
95
  export * from "./components/Typography/Text";
96
96
  export * from "./components/Typography/TextClamped/TextClamped";
97
97
  export * from "./components/UserHighlightTooltip/UserHighlightTooltip";
98
+ export * from "./components/RangePopover/RangePopover";
99
+ export * from "./shared/useSelectionRange";
98
100
  export * from "./components/Utilities/AnimatedBorder/useAnimatedBorder";
99
101
  export * from "./components/Utilities/ContainerQuery/ContainerQuery";
100
102
  export * from "./components/Utilities/Expandable/Expandable";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get CacheProvider(){return _react.CacheProvider},get ThemeProvider(){return _react.ThemeProvider},get createCache(){return _cache.default},get dark(){return dark},get light(){return light}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _export_star=require("@swc/helpers/_/_export_star"),_interop_require_default=require("@swc/helpers/_/_interop_require_default"),_visualConfig=require("./web-tokens/visualConfig"),_react=require("@emotion/react"),_cache=/*#__PURE__*/_interop_require_default._(require("@emotion/cache"));_export_star._(require("./components/AccessCardItem/AccessCardItem"),exports),_export_star._(require("./components/AIFloatingButton/AIFloatingButton"),exports),_export_star._(require("./components/Avatar/Avatar"),exports),_export_star._(require("./components/AvatarGroup/AvatarGroup"),exports),_export_star._(require("./components/Badge/Badge"),exports),_export_star._(require("./components/BinaryFeedback/BinaryFeedback"),exports),_export_star._(require("./components/Box/Box"),exports),_export_star._(require("./components/BulkActionsToolbar/BulkActionsToolbar"),exports),_export_star._(require("./components/Button/Button"),exports),_export_star._(require("./components/Callout/Callout"),exports),_export_star._(require("./components/Card/Card"),exports),_export_star._(require("./components/Card/CardBox/CardBox"),exports),_export_star._(require("./components/CatalogCard/CatalogCard"),exports),_export_star._(require("./components/ChatMessage"),exports),_export_star._(require("./components/ChatResponse"),exports),_export_star._(require("./components/CheckboxCard/CheckboxCard"),exports),_export_star._(require("./components/Collapsible/Collapsible"),exports),_export_star._(require("./components/ColorIndicator/ColorIndicator"),exports),_export_star._(require("./components/ColorPicker/ColorPicker"),exports),_export_star._(require("./components/Column/Columns"),exports),_export_star._(require("./components/Container"),exports),_export_star._(require("./components/CountButton/CountButton"),exports),_export_star._(require("./components/DataTable"),exports),_export_star._(require("./components/Divider/Divider"),exports),_export_star._(require("./components/DropdownMenu/DropdownMenu"),exports),_export_star._(require("./components/EntityList"),exports),_export_star._(require("./components/EntityTree"),exports),_export_star._(require("./components/Composite/FilterDialog/FilterDialog"),exports),_export_star._(require("./components/Form/Checkbox/Checkbox"),exports),_export_star._(require("./components/Form/Combobox/Combobox"),exports),_export_star._(require("./components/Form/DateInput/DateInput"),exports),_export_star._(require("./components/Form/DatePicker"),exports),_export_star._(require("./components/Form/FormFieldGroup/FormFieldGroup"),exports),_export_star._(require("./components/Form/Input"),exports),_export_star._(require("./components/Form/MaskedInput/MaskedInput"),exports),_export_star._(require("./components/Form/PasswordInput"),exports),_export_star._(require("./components/Form/Radio/Radio"),exports),_export_star._(require("./components/Form/RadioButton/RadioButton"),exports),_export_star._(require("./components/Form/RangeInput/RangeInput"),exports),_export_star._(require("./components/Form/SearchInput/SearchInput"),exports),_export_star._(require("./components/Form/SegmentedControl/SegmentedControl"),exports),_export_star._(require("./components/Form/Select"),exports),_export_star._(require("./components/Form/ToolbarToggle/ToolbarToggle"),exports),_export_star._(require("./components/Form/Textarea/Textarea"),exports),_export_star._(require("./components/Form/Toggle/Toggle"),exports),_export_star._(require("./components/Form/ToggleButton/ToggleButton"),exports),_export_star._(require("./components/Grid/Grid"),exports),_export_star._(require("./components/Icon/Icon"),exports),_export_star._(require("./components/IconTile/IconTile"),exports),_export_star._(require("./components/Image/Image"),exports),_export_star._(require("./components/Inline/Inline"),exports),_export_star._(require("./components/InteractiveBox/InteractiveBox"),exports),_export_star._(require("./components/Lightbox/Lightbox"),exports),_export_star._(require("./components/Link/Link"),exports),_export_star._(require("./components/LoadingSpinner/LoadingSpinner"),exports),_export_star._(require("./components/Logo/Logo"),exports),_export_star._(require("./components/MediaItem"),exports),_export_star._(require("./components/MediaViewerBar/MediaViewerBar"),exports),_export_star._(require("./components/MediaViewerCarousel/MediaViewerCarousel"),exports),_export_star._(require("./components/NavBar"),exports),_export_star._(require("./components/Notification/Notification"),exports),_export_star._(require("./components/Pagination/Pagination"),exports),_export_star._(require("./components/Patterns/ButtonGroup/ButtonGroup"),exports),_export_star._(require("./components/Patterns/Modal/Modal"),exports),_export_star._(require("./components/PictogramButton/PictogramButton"),exports),_export_star._(require("./components/Popover/Popover"),exports),_export_star._(require("./components/ProgressBar/ProgressBar"),exports),_export_star._(require("./components/PromptButton/PromptButton"),exports),_export_star._(require("./components/PromptInput/PromptInput"),exports),_export_star._(require("./components/SplashCard/SplashCard"),exports),_export_star._(require("./components/SplashCardMedia/SplashCardMedia"),exports),_export_star._(require("./components/QBankRichText/QBankRichText"),exports),_export_star._(require("./components/RadioCard/RadioCard"),exports),_export_star._(require("./components/RoundButton/RoundButton"),exports),_export_star._(require("./components/SearchResult/SearchResult"),exports),_export_star._(require("./components/SegmentedProgressBar/SegmentedProgressBar"),exports),_export_star._(require("./components/Sheet/Sheet"),exports),_export_star._(require("./components/Stack/Stack"),exports),_export_star._(require("./components/SubThemeProvider/SubThemeProvider"),exports),_export_star._(require("./components/Tabs/Tabs"),exports),_export_star._(require("./components/Tag/Tag"),exports),_export_star._(require("./components/TagGroup/TagGroup"),exports),_export_star._(require("./components/Toast"),exports),_export_star._(require("./components/Toggletip/Toggletip"),exports),_export_star._(require("./components/Tooltip/Tooltip"),exports),_export_star._(require("./components/Tutorialtip/Tutorialtip"),exports),_export_star._(require("./components/Typography/Header"),exports),_export_star._(require("./components/Typography/StyledText/StyledText"),exports),_export_star._(require("./components/Typography/Text"),exports),_export_star._(require("./components/Typography/TextClamped/TextClamped"),exports),_export_star._(require("./components/UserHighlightTooltip/UserHighlightTooltip"),exports),_export_star._(require("./components/Utilities/AnimatedBorder/useAnimatedBorder"),exports),_export_star._(require("./components/Utilities/ContainerQuery/ContainerQuery"),exports),_export_star._(require("./components/Utilities/Expandable/Expandable"),exports),_export_star._(require("./components/Utilities/ScreenReaderText/ScreenReaderText"),exports),_export_star._(require("./components/Patterns/EmptyState/EmptyState"),exports),_export_star._(require("./components/Content/ContentBox/ContentBox"),exports),_export_star._(require("./components/Content/ContentCheckbox/ContentCheckbox"),exports),_export_star._(require("./components/Content/ContentFontResizer"),exports),_export_star._(require("./components/Content/ContentHeading/ContentHeading"),exports),_export_star._(require("./components/Content/ContentLink/ContentLink"),exports),_export_star._(require("./components/Content/ContentPictogramButton/ContentPictogramButton"),exports),_export_star._(require("./components/Content/ContentText/ContentText"),exports),_export_star._(require("./components/Content/ContentList"),exports),_export_star._(require("./components/Content/ContentTable"),exports),_export_star._(require("./components/Content/ContentTableModal/ContentTableModal"),exports),_export_star._(require("./components/Content/DosageButton"),exports),_export_star._(require("./components/Content/ReferenceButton"),exports),_export_star._(require("./components/AIButton/AIButton"),exports),_export_star._(require("./components/Layout"),exports);const{dark,light}=_visualConfig.ambossVisualConfiguration;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get CacheProvider(){return _react.CacheProvider},get ThemeProvider(){return _react.ThemeProvider},get createCache(){return _cache.default},get dark(){return dark},get light(){return light}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _export_star=require("@swc/helpers/_/_export_star"),_interop_require_default=require("@swc/helpers/_/_interop_require_default"),_visualConfig=require("./web-tokens/visualConfig"),_react=require("@emotion/react"),_cache=/*#__PURE__*/_interop_require_default._(require("@emotion/cache"));_export_star._(require("./components/AccessCardItem/AccessCardItem"),exports),_export_star._(require("./components/AIFloatingButton/AIFloatingButton"),exports),_export_star._(require("./components/Avatar/Avatar"),exports),_export_star._(require("./components/AvatarGroup/AvatarGroup"),exports),_export_star._(require("./components/Badge/Badge"),exports),_export_star._(require("./components/BinaryFeedback/BinaryFeedback"),exports),_export_star._(require("./components/Box/Box"),exports),_export_star._(require("./components/BulkActionsToolbar/BulkActionsToolbar"),exports),_export_star._(require("./components/Button/Button"),exports),_export_star._(require("./components/Callout/Callout"),exports),_export_star._(require("./components/Card/Card"),exports),_export_star._(require("./components/Card/CardBox/CardBox"),exports),_export_star._(require("./components/CatalogCard/CatalogCard"),exports),_export_star._(require("./components/ChatMessage"),exports),_export_star._(require("./components/ChatResponse"),exports),_export_star._(require("./components/CheckboxCard/CheckboxCard"),exports),_export_star._(require("./components/Collapsible/Collapsible"),exports),_export_star._(require("./components/ColorIndicator/ColorIndicator"),exports),_export_star._(require("./components/ColorPicker/ColorPicker"),exports),_export_star._(require("./components/Column/Columns"),exports),_export_star._(require("./components/Container"),exports),_export_star._(require("./components/CountButton/CountButton"),exports),_export_star._(require("./components/DataTable"),exports),_export_star._(require("./components/Divider/Divider"),exports),_export_star._(require("./components/DropdownMenu/DropdownMenu"),exports),_export_star._(require("./components/EntityList"),exports),_export_star._(require("./components/EntityTree"),exports),_export_star._(require("./components/Composite/FilterDialog/FilterDialog"),exports),_export_star._(require("./components/Form/Checkbox/Checkbox"),exports),_export_star._(require("./components/Form/Combobox/Combobox"),exports),_export_star._(require("./components/Form/DateInput/DateInput"),exports),_export_star._(require("./components/Form/DatePicker"),exports),_export_star._(require("./components/Form/FormFieldGroup/FormFieldGroup"),exports),_export_star._(require("./components/Form/Input"),exports),_export_star._(require("./components/Form/MaskedInput/MaskedInput"),exports),_export_star._(require("./components/Form/PasswordInput"),exports),_export_star._(require("./components/Form/Radio/Radio"),exports),_export_star._(require("./components/Form/RadioButton/RadioButton"),exports),_export_star._(require("./components/Form/RangeInput/RangeInput"),exports),_export_star._(require("./components/Form/SearchInput/SearchInput"),exports),_export_star._(require("./components/Form/SegmentedControl/SegmentedControl"),exports),_export_star._(require("./components/Form/Select"),exports),_export_star._(require("./components/Form/ToolbarToggle/ToolbarToggle"),exports),_export_star._(require("./components/Form/Textarea/Textarea"),exports),_export_star._(require("./components/Form/Toggle/Toggle"),exports),_export_star._(require("./components/Form/ToggleButton/ToggleButton"),exports),_export_star._(require("./components/Grid/Grid"),exports),_export_star._(require("./components/Icon/Icon"),exports),_export_star._(require("./components/IconTile/IconTile"),exports),_export_star._(require("./components/Image/Image"),exports),_export_star._(require("./components/Inline/Inline"),exports),_export_star._(require("./components/InteractiveBox/InteractiveBox"),exports),_export_star._(require("./components/Lightbox/Lightbox"),exports),_export_star._(require("./components/Link/Link"),exports),_export_star._(require("./components/LoadingSpinner/LoadingSpinner"),exports),_export_star._(require("./components/Logo/Logo"),exports),_export_star._(require("./components/MediaItem"),exports),_export_star._(require("./components/MediaViewerBar/MediaViewerBar"),exports),_export_star._(require("./components/MediaViewerCarousel/MediaViewerCarousel"),exports),_export_star._(require("./components/NavBar"),exports),_export_star._(require("./components/Notification/Notification"),exports),_export_star._(require("./components/Pagination/Pagination"),exports),_export_star._(require("./components/Patterns/ButtonGroup/ButtonGroup"),exports),_export_star._(require("./components/Patterns/Modal/Modal"),exports),_export_star._(require("./components/PictogramButton/PictogramButton"),exports),_export_star._(require("./components/Popover/Popover"),exports),_export_star._(require("./components/ProgressBar/ProgressBar"),exports),_export_star._(require("./components/PromptButton/PromptButton"),exports),_export_star._(require("./components/PromptInput/PromptInput"),exports),_export_star._(require("./components/SplashCard/SplashCard"),exports),_export_star._(require("./components/SplashCardMedia/SplashCardMedia"),exports),_export_star._(require("./components/QBankRichText/QBankRichText"),exports),_export_star._(require("./components/RadioCard/RadioCard"),exports),_export_star._(require("./components/RoundButton/RoundButton"),exports),_export_star._(require("./components/SearchResult/SearchResult"),exports),_export_star._(require("./components/SegmentedProgressBar/SegmentedProgressBar"),exports),_export_star._(require("./components/Sheet/Sheet"),exports),_export_star._(require("./components/Stack/Stack"),exports),_export_star._(require("./components/SubThemeProvider/SubThemeProvider"),exports),_export_star._(require("./components/Tabs/Tabs"),exports),_export_star._(require("./components/Tag/Tag"),exports),_export_star._(require("./components/TagGroup/TagGroup"),exports),_export_star._(require("./components/Toast"),exports),_export_star._(require("./components/Toggletip/Toggletip"),exports),_export_star._(require("./components/Tooltip/Tooltip"),exports),_export_star._(require("./components/Tutorialtip/Tutorialtip"),exports),_export_star._(require("./components/Typography/Header"),exports),_export_star._(require("./components/Typography/StyledText/StyledText"),exports),_export_star._(require("./components/Typography/Text"),exports),_export_star._(require("./components/Typography/TextClamped/TextClamped"),exports),_export_star._(require("./components/UserHighlightTooltip/UserHighlightTooltip"),exports),_export_star._(require("./components/RangePopover/RangePopover"),exports),_export_star._(require("./shared/useSelectionRange"),exports),_export_star._(require("./components/Utilities/AnimatedBorder/useAnimatedBorder"),exports),_export_star._(require("./components/Utilities/ContainerQuery/ContainerQuery"),exports),_export_star._(require("./components/Utilities/Expandable/Expandable"),exports),_export_star._(require("./components/Utilities/ScreenReaderText/ScreenReaderText"),exports),_export_star._(require("./components/Patterns/EmptyState/EmptyState"),exports),_export_star._(require("./components/Content/ContentBox/ContentBox"),exports),_export_star._(require("./components/Content/ContentCheckbox/ContentCheckbox"),exports),_export_star._(require("./components/Content/ContentFontResizer"),exports),_export_star._(require("./components/Content/ContentHeading/ContentHeading"),exports),_export_star._(require("./components/Content/ContentLink/ContentLink"),exports),_export_star._(require("./components/Content/ContentPictogramButton/ContentPictogramButton"),exports),_export_star._(require("./components/Content/ContentText/ContentText"),exports),_export_star._(require("./components/Content/ContentList"),exports),_export_star._(require("./components/Content/ContentTable"),exports),_export_star._(require("./components/Content/ContentTableModal/ContentTableModal"),exports),_export_star._(require("./components/Content/DosageButton"),exports),_export_star._(require("./components/Content/ReferenceButton"),exports),_export_star._(require("./components/AIButton/AIButton"),exports),_export_star._(require("./components/Layout"),exports);const{dark,light}=_visualConfig.ambossVisualConfiguration;
@@ -0,0 +1,20 @@
1
+ import type { RefObject } from "react";
2
+ export type UseSelectionRangeResult = {
3
+ /** The user's current text selection within the container, or null when there is none. */
4
+ range: Range | null;
5
+ /** Resets the tracked range. Call this to dismiss UI anchored on the selection. */
6
+ clearRange: () => void;
7
+ };
8
+ /**
9
+ * Tracks the user's live text selection within `containerRef` and exposes it as
10
+ * a DOM {@link Range}. Selections that fall outside the container are ignored.
11
+ *
12
+ * Handy for anchoring a `RangePopover` (or any range-positioned surface) on a
13
+ * painted text selection that has no DOM node of its own. The returned
14
+ * `clearRange` lets the consumer drop the range when the anchored UI is
15
+ * dismissed, since the selection itself may still be present.
16
+ *
17
+ * @param containerRef - The element whose text selections should be tracked.
18
+ * @returns The current selection `range` (or null) and a `clearRange` resetter.
19
+ */
20
+ export declare const useSelectionRange: (containerRef: RefObject<HTMLElement | null>) => UseSelectionRangeResult;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"useSelectionRange",{enumerable:!0,get:function(){return useSelectionRange}});const _react=require("react"),_useDocument=require("./useDocument"),useSelectionRange=containerRef=>{let doc=(0,_useDocument.useDocument)(),[range,setRange]=(0,_react.useState)(null),updateTimeoutRef=(0,_react.useRef)(),clearRange=(0,_react.useCallback)(()=>{clearTimeout(updateTimeoutRef.current),setRange(null)},[]);return(0,_react.useEffect)(()=>{if(!doc)return;let handleSelectionEnd=()=>{clearTimeout(updateTimeoutRef.current);let selection=doc.getSelection(),selectionRange=selection&&!selection.isCollapsed&&selection.rangeCount>0?selection.getRangeAt(0):null;if(!selectionRange||!containerRef.current?.contains(selectionRange.commonAncestorContainer))return void setRange(null);let nextRange=selectionRange.cloneRange();updateTimeoutRef.current=setTimeout(()=>setRange(nextRange),0)};return doc.addEventListener("mouseup",handleSelectionEnd),()=>{clearTimeout(updateTimeoutRef.current),doc.removeEventListener("mouseup",handleSelectionEnd)}},[doc,containerRef]),{range,clearRange}};
@@ -0,0 +1,61 @@
1
+ import React from "react";
2
+ /** Placement options accepted by the underlying tooltip positioner. */
3
+ type RangePopoverPlacement = "auto" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
4
+ export type RangePopoverProps = {
5
+ /** The popover body. */
6
+ content: React.ReactElement;
7
+ /** The DOM range the popover is anchored on. */
8
+ range: Range;
9
+ /** Whether the popover is shown. */
10
+ isVisible: boolean;
11
+ /** Called when the popover is dismissed by an outside click or the Escape key. */
12
+ onClose: () => void;
13
+ /** Preferred placement relative to the range. */
14
+ placement?: RangePopoverPlacement;
15
+ /** Portal target; falls back to the document body when omitted. */
16
+ portalContainer?: HTMLElement | null;
17
+ /** Inner padding of the popover surface. */
18
+ contentPadding?: "s" | "m";
19
+ /** Maximum width of the popover surface. */
20
+ maxWidth?: number;
21
+ /** ARIA role for the popover surface. */
22
+ role?: string;
23
+ /**
24
+ * Accessible name for the popover surface. Required: the default `dialog`
25
+ * role has no name of its own, so assistive technology needs one. Omitting it
26
+ * would render an unnamed dialog.
27
+ */
28
+ "aria-label": string;
29
+ /**
30
+ * When true, the popover does not move focus into itself on open and does not
31
+ * restore focus on close. Use when it appears passively (e.g. over a live text
32
+ * selection) and stealing focus would disturb the user's context.
33
+ */
34
+ disableInitialFocus?: boolean;
35
+ "data-e2e-test-id"?: string;
36
+ };
37
+ /**
38
+ * A click-dismissed popover anchored on a DOM {@link Range} rather than a
39
+ * trigger element.
40
+ *
41
+ * It pairs the design-system tooltip positioner — which places content purely
42
+ * from `triggerRef.current.getBoundingClientRect()`, a method a `Range` also
43
+ * provides — with the focus-trap dismissal model used by the design-system
44
+ * Popover. This lets it anchor on a painted text selection that has no DOM node
45
+ * of its own, the same way `UserHighlightTooltip` does, while opening and
46
+ * closing on explicit interaction instead of hover.
47
+ *
48
+ * @param content - The popover body.
49
+ * @param range - The range to anchor on.
50
+ * @param isVisible - Whether the popover is shown.
51
+ * @param onClose - Called when dismissed by an outside click or the Escape key.
52
+ * @param placement - Preferred placement relative to the range.
53
+ * @param portalContainer - Portal target; falls back to the document body.
54
+ * @param contentPadding - Inner padding of the popover surface.
55
+ * @param maxWidth - Maximum width of the popover surface.
56
+ * @param role - ARIA role for the popover surface.
57
+ * @param aria-label - Accessible name for the popover surface.
58
+ * @param disableInitialFocus - When true, does not move focus into the popover.
59
+ */
60
+ export declare function RangePopover({ content, range, isVisible, onClose, placement, portalContainer, contentPadding, maxWidth, role, "aria-label": ariaLabel, disableInitialFocus, "data-e2e-test-id": dataE2eTestId, }: RangePopoverProps): React.ReactElement;
61
+ export {};
@@ -0,0 +1 @@
1
+ import React,{useId,useRef}from"react";import styled from"@emotion/styled";import{TooltipContent}from"../Tooltip/TooltipContent";import{FocusTrapWrapper}from"../../shared/FocusTrapWrapper";let StyledContent=styled("div",{target:"e6ct16h0",label:"StyledContent"})(({theme,contentPadding})=>({padding:"m"===contentPadding?theme.variables.size.spacing.s:theme.variables.size.spacing.xxs}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUmFuZ2VQb3BvdmVyL1JhbmdlUG9wb3Zlci50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL1JhbmdlUG9wb3Zlci9SYW5nZVBvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VJZCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFRvb2x0aXBDb250ZW50IH0gZnJvbSBcIi4uL1Rvb2x0aXAvVG9vbHRpcENvbnRlbnRcIjtcbmltcG9ydCB7IEZvY3VzVHJhcFdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL0ZvY3VzVHJhcFdyYXBwZXJcIjtcblxuLyoqIFBsYWNlbWVudCBvcHRpb25zIGFjY2VwdGVkIGJ5IHRoZSB1bmRlcmx5aW5nIHRvb2x0aXAgcG9zaXRpb25lci4gKi9cbnR5cGUgUmFuZ2VQb3BvdmVyUGxhY2VtZW50ID1cbiAgfCBcImF1dG9cIlxuICB8IFwidG9wXCJcbiAgfCBcImJvdHRvbVwiXG4gIHwgXCJ0b3AtbGVmdFwiXG4gIHwgXCJ0b3AtcmlnaHRcIlxuICB8IFwiYm90dG9tLWxlZnRcIlxuICB8IFwiYm90dG9tLXJpZ2h0XCI7XG5cbmV4cG9ydCB0eXBlIFJhbmdlUG9wb3ZlclByb3BzID0ge1xuICAvKiogVGhlIHBvcG92ZXIgYm9keS4gKi9cbiAgY29udGVudDogUmVhY3QuUmVhY3RFbGVtZW50O1xuICAvKiogVGhlIERPTSByYW5nZSB0aGUgcG9wb3ZlciBpcyBhbmNob3JlZCBvbi4gKi9cbiAgcmFuZ2U6IFJhbmdlO1xuICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBzaG93bi4gKi9cbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICAvKiogQ2FsbGVkIHdoZW4gdGhlIHBvcG92ZXIgaXMgZGlzbWlzc2VkIGJ5IGFuIG91dHNpZGUgY2xpY2sgb3IgdGhlIEVzY2FwZSBrZXkuICovXG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBQcmVmZXJyZWQgcGxhY2VtZW50IHJlbGF0aXZlIHRvIHRoZSByYW5nZS4gKi9cbiAgcGxhY2VtZW50PzogUmFuZ2VQb3BvdmVyUGxhY2VtZW50O1xuICAvKiogUG9ydGFsIHRhcmdldDsgZmFsbHMgYmFjayB0byB0aGUgZG9jdW1lbnQgYm9keSB3aGVuIG9taXR0ZWQuICovXG4gIHBvcnRhbENvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgLyoqIElubmVyIHBhZGRpbmcgb2YgdGhlIHBvcG92ZXIgc3VyZmFjZS4gKi9cbiAgY29udGVudFBhZGRpbmc/OiBcInNcIiB8IFwibVwiO1xuICAvKiogTWF4aW11bSB3aWR0aCBvZiB0aGUgcG9wb3ZlciBzdXJmYWNlLiAqL1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgLyoqIEFSSUEgcm9sZSBmb3IgdGhlIHBvcG92ZXIgc3VyZmFjZS4gKi9cbiAgcm9sZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEFjY2Vzc2libGUgbmFtZSBmb3IgdGhlIHBvcG92ZXIgc3VyZmFjZS4gUmVxdWlyZWQ6IHRoZSBkZWZhdWx0IGBkaWFsb2dgXG4gICAqIHJvbGUgaGFzIG5vIG5hbWUgb2YgaXRzIG93biwgc28gYXNzaXN0aXZlIHRlY2hub2xvZ3kgbmVlZHMgb25lLiBPbWl0dGluZyBpdFxuICAgKiB3b3VsZCByZW5kZXIgYW4gdW5uYW1lZCBkaWFsb2cuXG4gICAqL1xuICBcImFyaWEtbGFiZWxcIjogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCB0aGUgcG9wb3ZlciBkb2VzIG5vdCBtb3ZlIGZvY3VzIGludG8gaXRzZWxmIG9uIG9wZW4gYW5kIGRvZXMgbm90XG4gICAqIHJlc3RvcmUgZm9jdXMgb24gY2xvc2UuIFVzZSB3aGVuIGl0IGFwcGVhcnMgcGFzc2l2ZWx5IChlLmcuIG92ZXIgYSBsaXZlIHRleHRcbiAgICogc2VsZWN0aW9uKSBhbmQgc3RlYWxpbmcgZm9jdXMgd291bGQgZGlzdHVyYiB0aGUgdXNlcidzIGNvbnRleHQuXG4gICAqL1xuICBkaXNhYmxlSW5pdGlhbEZvY3VzPzogYm9vbGVhbjtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG59O1xuXG50eXBlIFN0eWxlZENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudFBhZGRpbmc6IFwic1wiIHwgXCJtXCI7XG59O1xuXG4vLyBUb29sdGlwQ29udGVudCBvbmx5IGFwcGxpZXMgaXRzIG93biBgY29udGVudFBhZGRpbmdgIGluc2lkZSBhIGBzdWJUaGVtZWBcbi8vIGJyYW5jaCwgd2hpY2ggUmFuZ2VQb3BvdmVyIGRvZXMgbm90IHVzZSwgc28gdGhlIHN1cmZhY2UgcGFkZGluZyBpcyBhcHBsaWVkXG4vLyBoZXJlIG9uIHRoZSBsb2NhbCBjb250ZW50IHdyYXBwZXIuIFRva2VucyBtaXJyb3IgVG9vbHRpcENvbnRlbnQncyBtYXBwaW5nLlxuY29uc3QgU3R5bGVkQ29udGVudCA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGVudFByb3BzPihcbiAgKHsgdGhlbWUsIGNvbnRlbnRQYWRkaW5nIH0pID0+ICh7XG4gICAgcGFkZGluZzpcbiAgICAgIGNvbnRlbnRQYWRkaW5nID09PSBcIm1cIlxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc1xuICAgICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzLFxuICB9KVxuKTtcblxuLyoqXG4gKiBBIGNsaWNrLWRpc21pc3NlZCBwb3BvdmVyIGFuY2hvcmVkIG9uIGEgRE9NIHtAbGluayBSYW5nZX0gcmF0aGVyIHRoYW4gYVxuICogdHJpZ2dlciBlbGVtZW50LlxuICpcbiAqIEl0IHBhaXJzIHRoZSBkZXNpZ24tc3lzdGVtIHRvb2x0aXAgcG9zaXRpb25lciDigJQgd2hpY2ggcGxhY2VzIGNvbnRlbnQgcHVyZWx5XG4gKiBmcm9tIGB0cmlnZ2VyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClgLCBhIG1ldGhvZCBhIGBSYW5nZWAgYWxzb1xuICogcHJvdmlkZXMg4oCUIHdpdGggdGhlIGZvY3VzLXRyYXAgZGlzbWlzc2FsIG1vZGVsIHVzZWQgYnkgdGhlIGRlc2lnbi1zeXN0ZW1cbiAqIFBvcG92ZXIuIFRoaXMgbGV0cyBpdCBhbmNob3Igb24gYSBwYWludGVkIHRleHQgc2VsZWN0aW9uIHRoYXQgaGFzIG5vIERPTSBub2RlXG4gKiBvZiBpdHMgb3duLCB0aGUgc2FtZSB3YXkgYFVzZXJIaWdobGlnaHRUb29sdGlwYCBkb2VzLCB3aGlsZSBvcGVuaW5nIGFuZFxuICogY2xvc2luZyBvbiBleHBsaWNpdCBpbnRlcmFjdGlvbiBpbnN0ZWFkIG9mIGhvdmVyLlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIHBvcG92ZXIgYm9keS5cbiAqIEBwYXJhbSByYW5nZSAtIFRoZSByYW5nZSB0byBhbmNob3Igb24uXG4gKiBAcGFyYW0gaXNWaXNpYmxlIC0gV2hldGhlciB0aGUgcG9wb3ZlciBpcyBzaG93bi5cbiAqIEBwYXJhbSBvbkNsb3NlIC0gQ2FsbGVkIHdoZW4gZGlzbWlzc2VkIGJ5IGFuIG91dHNpZGUgY2xpY2sgb3IgdGhlIEVzY2FwZSBrZXkuXG4gKiBAcGFyYW0gcGxhY2VtZW50IC0gUHJlZmVycmVkIHBsYWNlbWVudCByZWxhdGl2ZSB0byB0aGUgcmFuZ2UuXG4gKiBAcGFyYW0gcG9ydGFsQ29udGFpbmVyIC0gUG9ydGFsIHRhcmdldDsgZmFsbHMgYmFjayB0byB0aGUgZG9jdW1lbnQgYm9keS5cbiAqIEBwYXJhbSBjb250ZW50UGFkZGluZyAtIElubmVyIHBhZGRpbmcgb2YgdGhlIHBvcG92ZXIgc3VyZmFjZS5cbiAqIEBwYXJhbSBtYXhXaWR0aCAtIE1heGltdW0gd2lkdGggb2YgdGhlIHBvcG92ZXIgc3VyZmFjZS5cbiAqIEBwYXJhbSByb2xlIC0gQVJJQSByb2xlIGZvciB0aGUgcG9wb3ZlciBzdXJmYWNlLlxuICogQHBhcmFtIGFyaWEtbGFiZWwgLSBBY2Nlc3NpYmxlIG5hbWUgZm9yIHRoZSBwb3BvdmVyIHN1cmZhY2UuXG4gKiBAcGFyYW0gZGlzYWJsZUluaXRpYWxGb2N1cyAtIFdoZW4gdHJ1ZSwgZG9lcyBub3QgbW92ZSBmb2N1cyBpbnRvIHRoZSBwb3BvdmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUmFuZ2VQb3BvdmVyKHtcbiAgY29udGVudCxcbiAgcmFuZ2UsXG4gIGlzVmlzaWJsZSxcbiAgb25DbG9zZSxcbiAgcGxhY2VtZW50ID0gXCJ0b3BcIixcbiAgcG9ydGFsQ29udGFpbmVyLFxuICBjb250ZW50UGFkZGluZyA9IFwic1wiLFxuICBtYXhXaWR0aCxcbiAgcm9sZSA9IFwiZGlhbG9nXCIsXG4gIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gIGRpc2FibGVJbml0aWFsRm9jdXMgPSBmYWxzZSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBSYW5nZVBvcG92ZXJQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHRvb2x0aXBJZCA9IHVzZUlkKCk7XG4gIC8vIFRoZSBwb3NpdGlvbmVyIHJlYWRzIHRyaWdnZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBpbiBhIGxheW91dFxuICAvLyBlZmZlY3Q7IGFzc2lnbmluZyBkdXJpbmcgcmVuZGVyIGtlZXBzIHRoZSByZWYgY3VycmVudCBiZWZvcmUgdGhhdCBydW5zLFxuICAvLyB3aXRob3V0IHRoZSBzdGFsZSBmaXJzdCBmcmFtZSBhbiBlZmZlY3QtYmFzZWQgYXNzaWdubWVudCB3b3VsZCBpbnRyb2R1Y2UuXG4gIGNvbnN0IHJhbmdlUmVmID0gdXNlUmVmPFJhbmdlIHwgbnVsbD4obnVsbCk7XG4gIHJhbmdlUmVmLmN1cnJlbnQgPSByYW5nZTtcbiAgLy8gRm9jdXNhYmxlIHdyYXBwZXIgdXNlZCBhcyB0aGUgZm9jdXMgdHJhcCdzIGZhbGxiYWNrLCBzbyBhY3RpdmF0aW9uIG5ldmVyXG4gIC8vIGRlcGVuZHMgb24gdGhlIGNvbnRlbnQgZXhwb3NpbmcgYSB0YWJiYWJsZSBlbGVtZW50LlxuICBjb25zdCBjb250ZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICBjb25zdCB0cmFwcGVkQ29udGVudCA9IChcbiAgICA8Rm9jdXNUcmFwV3JhcHBlclxuICAgICAgYWN0aXZlPXtpc1Zpc2libGV9XG4gICAgICBmb2N1c1RyYXBPcHRpb25zPXt7XG4gICAgICAgIGFsbG93T3V0c2lkZUNsaWNrOiB0cnVlLFxuICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlczogdHJ1ZSxcbiAgICAgICAgZXNjYXBlRGVhY3RpdmF0ZXM6IHRydWUsXG4gICAgICAgIGZhbGxiYWNrRm9jdXM6ICgpID0+IGNvbnRlbnRSZWYuY3VycmVudCxcbiAgICAgICAgaW5pdGlhbEZvY3VzOiBkaXNhYmxlSW5pdGlhbEZvY3VzID8gZmFsc2UgOiB1bmRlZmluZWQsXG4gICAgICAgIG9uUG9zdERlYWN0aXZhdGU6IG9uQ2xvc2UsXG4gICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWUsXG4gICAgICAgIHJldHVybkZvY3VzT25EZWFjdGl2YXRlOiAhZGlzYWJsZUluaXRpYWxGb2N1cyxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPFN0eWxlZENvbnRlbnRcbiAgICAgICAgcmVmPXtjb250ZW50UmVmfVxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGNvbnRlbnRQYWRkaW5nPXtjb250ZW50UGFkZGluZ31cbiAgICAgID5cbiAgICAgICAge2NvbnRlbnR9XG4gICAgICA8L1N0eWxlZENvbnRlbnQ+XG4gICAgPC9Gb2N1c1RyYXBXcmFwcGVyPlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFRvb2x0aXBDb250ZW50XG4gICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICBjb250ZW50PXt0cmFwcGVkQ29udGVudH1cbiAgICAgIGRhdGFEU0lkPVwiUmFuZ2VQb3BvdmVyXCJcbiAgICAgIGRhdGFFMmVUZXN0SWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBpc1Zpc2libGU9e2lzVmlzaWJsZX1cbiAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgIHBsYWNlbWVudD17cGxhY2VtZW50fVxuICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICByb2xlPXtyb2xlfVxuICAgICAgdG9vbHRpcElkPXt0b29sdGlwSWR9XG4gICAgICB0cmlnZ2VyUmVmPXtyYW5nZVJlZn1cbiAgICAvPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdEc0IifQ== */");export function RangePopover({content,range,isVisible,onClose,placement="top",portalContainer,contentPadding="s",maxWidth,role="dialog","aria-label":ariaLabel,disableInitialFocus=!1,"data-e2e-test-id":dataE2eTestId}){let tooltipId=useId(),rangeRef=useRef(null);rangeRef.current=range;let contentRef=useRef(null),trappedContent=React.createElement(FocusTrapWrapper,{active:isVisible,focusTrapOptions:{allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0,fallbackFocus:()=>contentRef.current,initialFocus:!disableInitialFocus&&void 0,onPostDeactivate:onClose,preventScroll:!0,returnFocusOnDeactivate:!disableInitialFocus}},React.createElement(StyledContent,{ref:contentRef,tabIndex:-1,contentPadding:contentPadding},content));return React.createElement(TooltipContent,{"aria-label":ariaLabel,content:trappedContent,dataDSId:"RangePopover",dataE2eTestId:dataE2eTestId,isVisible:isVisible,maxWidth:maxWidth,placement:placement,portalContainer:portalContainer,role:role,tooltipId:tooltipId,triggerRef:rangeRef})}
@@ -95,6 +95,8 @@ export * from "./components/Typography/StyledText/StyledText";
95
95
  export * from "./components/Typography/Text";
96
96
  export * from "./components/Typography/TextClamped/TextClamped";
97
97
  export * from "./components/UserHighlightTooltip/UserHighlightTooltip";
98
+ export * from "./components/RangePopover/RangePopover";
99
+ export * from "./shared/useSelectionRange";
98
100
  export * from "./components/Utilities/AnimatedBorder/useAnimatedBorder";
99
101
  export * from "./components/Utilities/ContainerQuery/ContainerQuery";
100
102
  export * from "./components/Utilities/Expandable/Expandable";
@@ -1 +1 @@
1
- import{ambossVisualConfiguration}from"./web-tokens/visualConfig";export const{dark,light}=ambossVisualConfiguration;export{ThemeProvider,CacheProvider}from"@emotion/react";export{default as createCache}from"@emotion/cache";export*from"./components/AccessCardItem/AccessCardItem";export*from"./components/AIFloatingButton/AIFloatingButton";export*from"./components/Avatar/Avatar";export*from"./components/AvatarGroup/AvatarGroup";export*from"./components/Badge/Badge";export*from"./components/BinaryFeedback/BinaryFeedback";export*from"./components/Box/Box";export*from"./components/BulkActionsToolbar/BulkActionsToolbar";export*from"./components/Button/Button";export*from"./components/Callout/Callout";export*from"./components/Card/Card";export*from"./components/Card/CardBox/CardBox";export*from"./components/CatalogCard/CatalogCard";export*from"./components/ChatMessage";export*from"./components/ChatResponse";export*from"./components/CheckboxCard/CheckboxCard";export*from"./components/Collapsible/Collapsible";export*from"./components/ColorIndicator/ColorIndicator";export*from"./components/ColorPicker/ColorPicker";export*from"./components/Column/Columns";export*from"./components/Container";export*from"./components/CountButton/CountButton";export*from"./components/DataTable";export*from"./components/Divider/Divider";export*from"./components/DropdownMenu/DropdownMenu";export*from"./components/EntityList";export*from"./components/EntityTree";export*from"./components/Composite/FilterDialog/FilterDialog";export*from"./components/Form/Checkbox/Checkbox";export*from"./components/Form/Combobox/Combobox";export*from"./components/Form/DateInput/DateInput";export*from"./components/Form/DatePicker";export*from"./components/Form/FormFieldGroup/FormFieldGroup";export*from"./components/Form/Input";export*from"./components/Form/MaskedInput/MaskedInput";export*from"./components/Form/PasswordInput";export*from"./components/Form/Radio/Radio";export*from"./components/Form/RadioButton/RadioButton";export*from"./components/Form/RangeInput/RangeInput";export*from"./components/Form/SearchInput/SearchInput";export*from"./components/Form/SegmentedControl/SegmentedControl";export*from"./components/Form/Select";export*from"./components/Form/ToolbarToggle/ToolbarToggle";export*from"./components/Form/Textarea/Textarea";export*from"./components/Form/Toggle/Toggle";export*from"./components/Form/ToggleButton/ToggleButton";export*from"./components/Grid/Grid";export*from"./components/Icon/Icon";export*from"./components/IconTile/IconTile";export*from"./components/Image/Image";export*from"./components/Inline/Inline";export*from"./components/InteractiveBox/InteractiveBox";export*from"./components/Lightbox/Lightbox";export*from"./components/Link/Link";export*from"./components/LoadingSpinner/LoadingSpinner";export*from"./components/Logo/Logo";export*from"./components/MediaItem";export*from"./components/MediaViewerBar/MediaViewerBar";export*from"./components/MediaViewerCarousel/MediaViewerCarousel";export*from"./components/NavBar";export*from"./components/Notification/Notification";export*from"./components/Pagination/Pagination";export*from"./components/Patterns/ButtonGroup/ButtonGroup";export*from"./components/Patterns/Modal/Modal";export*from"./components/PictogramButton/PictogramButton";export*from"./components/Popover/Popover";export*from"./components/ProgressBar/ProgressBar";export*from"./components/PromptButton/PromptButton";export*from"./components/PromptInput/PromptInput";export*from"./components/SplashCard/SplashCard";export*from"./components/SplashCardMedia/SplashCardMedia";export*from"./components/QBankRichText/QBankRichText";export*from"./components/RadioCard/RadioCard";export*from"./components/RoundButton/RoundButton";export*from"./components/SearchResult/SearchResult";export*from"./components/SegmentedProgressBar/SegmentedProgressBar";export*from"./components/Sheet/Sheet";export*from"./components/Stack/Stack";export*from"./components/SubThemeProvider/SubThemeProvider";export*from"./components/Tabs/Tabs";export*from"./components/Tag/Tag";export*from"./components/TagGroup/TagGroup";export*from"./components/Toast";export*from"./components/Toggletip/Toggletip";export*from"./components/Tooltip/Tooltip";export*from"./components/Tutorialtip/Tutorialtip";export*from"./components/Typography/Header";export*from"./components/Typography/StyledText/StyledText";export*from"./components/Typography/Text";export*from"./components/Typography/TextClamped/TextClamped";export*from"./components/UserHighlightTooltip/UserHighlightTooltip";export*from"./components/Utilities/AnimatedBorder/useAnimatedBorder";export*from"./components/Utilities/ContainerQuery/ContainerQuery";export*from"./components/Utilities/Expandable/Expandable";export*from"./components/Utilities/ScreenReaderText/ScreenReaderText";export*from"./components/Patterns/EmptyState/EmptyState";export*from"./components/Content/ContentBox/ContentBox";export*from"./components/Content/ContentCheckbox/ContentCheckbox";export*from"./components/Content/ContentFontResizer";export*from"./components/Content/ContentHeading/ContentHeading";export*from"./components/Content/ContentLink/ContentLink";export*from"./components/Content/ContentPictogramButton/ContentPictogramButton";export*from"./components/Content/ContentText/ContentText";export*from"./components/Content/ContentList";export*from"./components/Content/ContentTable";export*from"./components/Content/ContentTableModal/ContentTableModal";export*from"./components/Content/DosageButton";export*from"./components/Content/ReferenceButton";export*from"./components/AIButton/AIButton";export*from"./components/Layout";
1
+ import{ambossVisualConfiguration}from"./web-tokens/visualConfig";export const{dark,light}=ambossVisualConfiguration;export{ThemeProvider,CacheProvider}from"@emotion/react";export{default as createCache}from"@emotion/cache";export*from"./components/AccessCardItem/AccessCardItem";export*from"./components/AIFloatingButton/AIFloatingButton";export*from"./components/Avatar/Avatar";export*from"./components/AvatarGroup/AvatarGroup";export*from"./components/Badge/Badge";export*from"./components/BinaryFeedback/BinaryFeedback";export*from"./components/Box/Box";export*from"./components/BulkActionsToolbar/BulkActionsToolbar";export*from"./components/Button/Button";export*from"./components/Callout/Callout";export*from"./components/Card/Card";export*from"./components/Card/CardBox/CardBox";export*from"./components/CatalogCard/CatalogCard";export*from"./components/ChatMessage";export*from"./components/ChatResponse";export*from"./components/CheckboxCard/CheckboxCard";export*from"./components/Collapsible/Collapsible";export*from"./components/ColorIndicator/ColorIndicator";export*from"./components/ColorPicker/ColorPicker";export*from"./components/Column/Columns";export*from"./components/Container";export*from"./components/CountButton/CountButton";export*from"./components/DataTable";export*from"./components/Divider/Divider";export*from"./components/DropdownMenu/DropdownMenu";export*from"./components/EntityList";export*from"./components/EntityTree";export*from"./components/Composite/FilterDialog/FilterDialog";export*from"./components/Form/Checkbox/Checkbox";export*from"./components/Form/Combobox/Combobox";export*from"./components/Form/DateInput/DateInput";export*from"./components/Form/DatePicker";export*from"./components/Form/FormFieldGroup/FormFieldGroup";export*from"./components/Form/Input";export*from"./components/Form/MaskedInput/MaskedInput";export*from"./components/Form/PasswordInput";export*from"./components/Form/Radio/Radio";export*from"./components/Form/RadioButton/RadioButton";export*from"./components/Form/RangeInput/RangeInput";export*from"./components/Form/SearchInput/SearchInput";export*from"./components/Form/SegmentedControl/SegmentedControl";export*from"./components/Form/Select";export*from"./components/Form/ToolbarToggle/ToolbarToggle";export*from"./components/Form/Textarea/Textarea";export*from"./components/Form/Toggle/Toggle";export*from"./components/Form/ToggleButton/ToggleButton";export*from"./components/Grid/Grid";export*from"./components/Icon/Icon";export*from"./components/IconTile/IconTile";export*from"./components/Image/Image";export*from"./components/Inline/Inline";export*from"./components/InteractiveBox/InteractiveBox";export*from"./components/Lightbox/Lightbox";export*from"./components/Link/Link";export*from"./components/LoadingSpinner/LoadingSpinner";export*from"./components/Logo/Logo";export*from"./components/MediaItem";export*from"./components/MediaViewerBar/MediaViewerBar";export*from"./components/MediaViewerCarousel/MediaViewerCarousel";export*from"./components/NavBar";export*from"./components/Notification/Notification";export*from"./components/Pagination/Pagination";export*from"./components/Patterns/ButtonGroup/ButtonGroup";export*from"./components/Patterns/Modal/Modal";export*from"./components/PictogramButton/PictogramButton";export*from"./components/Popover/Popover";export*from"./components/ProgressBar/ProgressBar";export*from"./components/PromptButton/PromptButton";export*from"./components/PromptInput/PromptInput";export*from"./components/SplashCard/SplashCard";export*from"./components/SplashCardMedia/SplashCardMedia";export*from"./components/QBankRichText/QBankRichText";export*from"./components/RadioCard/RadioCard";export*from"./components/RoundButton/RoundButton";export*from"./components/SearchResult/SearchResult";export*from"./components/SegmentedProgressBar/SegmentedProgressBar";export*from"./components/Sheet/Sheet";export*from"./components/Stack/Stack";export*from"./components/SubThemeProvider/SubThemeProvider";export*from"./components/Tabs/Tabs";export*from"./components/Tag/Tag";export*from"./components/TagGroup/TagGroup";export*from"./components/Toast";export*from"./components/Toggletip/Toggletip";export*from"./components/Tooltip/Tooltip";export*from"./components/Tutorialtip/Tutorialtip";export*from"./components/Typography/Header";export*from"./components/Typography/StyledText/StyledText";export*from"./components/Typography/Text";export*from"./components/Typography/TextClamped/TextClamped";export*from"./components/UserHighlightTooltip/UserHighlightTooltip";export*from"./components/RangePopover/RangePopover";export*from"./shared/useSelectionRange";export*from"./components/Utilities/AnimatedBorder/useAnimatedBorder";export*from"./components/Utilities/ContainerQuery/ContainerQuery";export*from"./components/Utilities/Expandable/Expandable";export*from"./components/Utilities/ScreenReaderText/ScreenReaderText";export*from"./components/Patterns/EmptyState/EmptyState";export*from"./components/Content/ContentBox/ContentBox";export*from"./components/Content/ContentCheckbox/ContentCheckbox";export*from"./components/Content/ContentFontResizer";export*from"./components/Content/ContentHeading/ContentHeading";export*from"./components/Content/ContentLink/ContentLink";export*from"./components/Content/ContentPictogramButton/ContentPictogramButton";export*from"./components/Content/ContentText/ContentText";export*from"./components/Content/ContentList";export*from"./components/Content/ContentTable";export*from"./components/Content/ContentTableModal/ContentTableModal";export*from"./components/Content/DosageButton";export*from"./components/Content/ReferenceButton";export*from"./components/AIButton/AIButton";export*from"./components/Layout";
@@ -0,0 +1,20 @@
1
+ import type { RefObject } from "react";
2
+ export type UseSelectionRangeResult = {
3
+ /** The user's current text selection within the container, or null when there is none. */
4
+ range: Range | null;
5
+ /** Resets the tracked range. Call this to dismiss UI anchored on the selection. */
6
+ clearRange: () => void;
7
+ };
8
+ /**
9
+ * Tracks the user's live text selection within `containerRef` and exposes it as
10
+ * a DOM {@link Range}. Selections that fall outside the container are ignored.
11
+ *
12
+ * Handy for anchoring a `RangePopover` (or any range-positioned surface) on a
13
+ * painted text selection that has no DOM node of its own. The returned
14
+ * `clearRange` lets the consumer drop the range when the anchored UI is
15
+ * dismissed, since the selection itself may still be present.
16
+ *
17
+ * @param containerRef - The element whose text selections should be tracked.
18
+ * @returns The current selection `range` (or null) and a `clearRange` resetter.
19
+ */
20
+ export declare const useSelectionRange: (containerRef: RefObject<HTMLElement | null>) => UseSelectionRangeResult;
@@ -0,0 +1 @@
1
+ import{useCallback,useEffect,useRef,useState}from"react";import{useDocument}from"./useDocument";export const useSelectionRange=containerRef=>{let doc=useDocument(),[range,setRange]=useState(null),updateTimeoutRef=useRef(),clearRange=useCallback(()=>{clearTimeout(updateTimeoutRef.current),setRange(null)},[]);return useEffect(()=>{if(!doc)return;let handleSelectionEnd=()=>{clearTimeout(updateTimeoutRef.current);let selection=doc.getSelection(),selectionRange=selection&&!selection.isCollapsed&&selection.rangeCount>0?selection.getRangeAt(0):null;if(!selectionRange||!containerRef.current?.contains(selectionRange.commonAncestorContainer))return void setRange(null);let nextRange=selectionRange.cloneRange();updateTimeoutRef.current=setTimeout(()=>setRange(nextRange),0)};return doc.addEventListener("mouseup",handleSelectionEnd),()=>{clearTimeout(updateTimeoutRef.current),doc.removeEventListener("mouseup",handleSelectionEnd)}},[doc,containerRef]),{range,clearRange}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amboss/design-system",
3
- "version": "4.0.0-next.9",
3
+ "version": "4.0.3",
4
4
  "description": "the design system for AMBOSS products",
5
5
  "author": "AMBOSS",
6
6
  "license": "ISC",