semiotic 3.8.1 → 3.8.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.
- package/CLAUDE.md +3 -1
- package/README.md +54 -52
- package/ai/behaviorContracts.cjs +9 -0
- package/ai/dist/mcp-server.js +142 -13
- package/ai/schema.json +616 -42
- package/ai/surface-manifest.json +1 -1
- package/ai/system-prompt.md +5 -2
- package/dist/chunk-OrdinalBrushOverlay-PXHQYDB2.module.min.js +2 -0
- package/dist/chunk-XYBrushOverlay-ECZJJLAJ.module.min.js +1 -0
- package/dist/chunk-XYBrushOverlay-EP2SV3UI.module.min.js +2 -0
- package/dist/chunk-chunk-255KDHW5.module.min.js +1 -0
- package/dist/chunk-chunk-2CCFBTQC.module.min.js +2 -0
- package/dist/chunk-chunk-2CXCXRB4.module.min.js +1 -0
- package/dist/chunk-chunk-2JGJ5GUG.module.min.js +2 -0
- package/dist/chunk-chunk-2RXP3FS3.module.min.js +1 -0
- package/dist/chunk-chunk-2WVCH4PL.module.min.js +1 -0
- package/dist/chunk-chunk-4TMZXLCR.module.min.js +1 -0
- package/dist/chunk-chunk-5APBQXZA.module.min.js +1 -0
- package/dist/chunk-chunk-5RKXZQ2P.module.min.js +1 -0
- package/dist/chunk-chunk-5UKL5W76.module.min.js +2 -0
- package/dist/chunk-chunk-6HSGDMTA.module.min.js +2 -0
- package/dist/chunk-chunk-7FW6EGLP.module.min.js +2 -0
- package/dist/chunk-chunk-7OEOSCBP.module.min.js +1 -0
- package/dist/chunk-chunk-A63CTACR.module.min.js +2 -0
- package/dist/chunk-chunk-ANYDWOZF.module.min.js +1 -0
- package/dist/chunk-chunk-AZJUDQRM.module.min.js +2 -0
- package/dist/chunk-chunk-B6V35LMY.module.min.js +2 -0
- package/dist/chunk-chunk-BOSVL645.module.min.js +2 -0
- package/dist/chunk-chunk-CA3YDW6F.module.min.js +1 -0
- package/dist/chunk-chunk-CP3EN6KZ.module.min.js +1 -0
- package/dist/chunk-chunk-DSNGDNJY.module.min.js +1 -0
- package/dist/chunk-chunk-EMO5NUGE.module.min.js +2 -0
- package/dist/chunk-chunk-F25UA5HT.module.min.js +1 -0
- package/dist/chunk-chunk-FRIO6MCV.module.min.js +1 -0
- package/dist/chunk-chunk-FYY2ACNJ.module.min.js +2 -0
- package/dist/chunk-chunk-G7WFWHAD.module.min.js +2 -0
- package/dist/chunk-chunk-GMQ5AYTD.module.min.js +1 -0
- package/dist/chunk-chunk-GWSWSPXN.module.min.js +1 -0
- package/dist/chunk-chunk-I6C3KR5H.module.min.js +2 -0
- package/dist/chunk-chunk-IP2UE74X.module.min.js +1 -0
- package/dist/chunk-chunk-J3ELI22J.module.min.js +1 -0
- package/dist/chunk-chunk-J3QOW4OE.module.min.js +0 -0
- package/dist/chunk-chunk-J3XWETBJ.module.min.js +2 -0
- package/dist/chunk-chunk-J5RL6GXU.module.min.js +2 -0
- package/dist/chunk-chunk-JCG72SGW.module.min.js +2 -0
- package/dist/{semiotic-ai-chunk-OG7BQUUW.module.min.js → chunk-chunk-JJ2OOIET.module.min.js} +0 -1
- package/dist/chunk-chunk-JNCHKRIR.module.min.js +2 -0
- package/dist/chunk-chunk-KTWEBFMX.module.min.js +2 -0
- package/dist/chunk-chunk-L3H6DQCR.module.min.js +2 -0
- package/dist/chunk-chunk-M337NY6L.module.min.js +1 -0
- package/dist/chunk-chunk-M7VYYHCE.module.min.js +2 -0
- package/dist/chunk-chunk-MC35ILYP.module.min.js +2 -0
- package/dist/chunk-chunk-N72SWNBV.module.min.js +1 -0
- package/dist/chunk-chunk-OBQRFTIL.module.min.js +2 -0
- package/dist/chunk-chunk-OQTLSTGI.module.min.js +2 -0
- package/dist/chunk-chunk-Q2YADC2V.module.min.js +2 -0
- package/dist/chunk-chunk-QRIBHZYW.module.min.js +1 -0
- package/dist/chunk-chunk-QSQVBIJA.module.min.js +1 -0
- package/dist/chunk-chunk-RCF52Z42.module.min.js +2 -0
- package/dist/chunk-chunk-ROP4HI7H.module.min.js +2 -0
- package/dist/chunk-chunk-RZH7VZYS.module.min.js +2 -0
- package/dist/chunk-chunk-SA3D43RA.module.min.js +2 -0
- package/dist/chunk-chunk-SANERMIZ.module.min.js +2 -0
- package/dist/chunk-chunk-SIRIJ3DY.module.min.js +1 -0
- package/dist/chunk-chunk-SV4XAZ3Q.module.min.js +1 -0
- package/dist/chunk-chunk-U66USBWU.module.min.js +1 -0
- package/dist/chunk-chunk-UHSZEB74.module.min.js +1 -0
- package/dist/chunk-chunk-VVCA3DB7.module.min.js +1 -0
- package/dist/chunk-chunk-WCX6U47H.module.min.js +2 -0
- package/dist/chunk-chunk-XEVJDUTH.module.min.js +1 -0
- package/dist/chunk-chunk-XQYVEKEJ.module.min.js +2 -0
- package/dist/chunk-chunk-Y6AXCRVO.module.min.js +1 -0
- package/dist/chunk-chunk-YCQYG6J5.module.min.js +2 -0
- package/dist/chunk-chunk-YHNZCPOZ.module.min.js +2 -0
- package/dist/chunk-chunk-YWZB3KPI.module.min.js +2 -0
- package/dist/chunk-chunk-ZCNBUZPL.module.min.js +2 -0
- package/dist/chunk-statisticalOverlays-6MVAK5RW.module.min.js +2 -0
- package/dist/components/charts/custom/XYCustomChart.d.ts +3 -0
- package/dist/components/charts/physics/PhysicalFlowChart.d.ts +7 -0
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +5 -6
- package/dist/components/charts/realtime/temporalHistogramConfig.d.ts +11 -0
- package/dist/components/charts/shared/areaSeriesData.d.ts +15 -0
- package/dist/components/charts/shared/auditAccessibilityText.d.ts +13 -0
- package/dist/components/charts/shared/chartMode.d.ts +67 -0
- package/dist/components/charts/shared/colorUtils.d.ts +8 -0
- package/dist/components/charts/shared/geoStyleDefaults.d.ts +3 -0
- package/dist/components/charts/shared/hooks.d.ts +13 -80
- package/dist/components/charts/shared/useChartSetup.d.ts +3 -0
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +3 -0
- package/dist/components/charts/shared/useXYLineStyle.d.ts +3 -2
- package/dist/components/charts/shared/xyLineStyle.d.ts +21 -0
- package/dist/components/charts/xy/LineChart.d.ts +3 -0
- package/dist/components/legendLayout.d.ts +31 -0
- package/dist/components/server/serverChartConfigShared.d.ts +29 -0
- package/dist/components/server/serverChartConfigs.d.ts +2 -13
- package/dist/components/server/serverChartConfigsXY.d.ts +3 -0
- package/dist/components/server/serverGaugeOverlay.d.ts +28 -0
- package/dist/components/server/staticLegend.d.ts +7 -1
- package/dist/components/server/staticSVGChrome.d.ts +60 -2
- package/dist/components/stream/GeoPipelineStore.d.ts +2 -0
- package/dist/components/stream/GeoSVGOverlay.d.ts +2 -0
- package/dist/components/stream/OrdinalBrushOverlay.d.ts +1 -2
- package/dist/components/stream/OrdinalBrushOverlayLazy.d.ts +9 -0
- package/dist/components/stream/SceneToSVG.d.ts +8 -6
- package/dist/components/stream/SceneToSVGGeo.d.ts +10 -0
- package/dist/components/stream/SceneToSVGNetwork.d.ts +12 -0
- package/dist/components/stream/XYBrushOverlayLazy.d.ts +17 -0
- package/dist/components/stream/canvasBackground.d.ts +7 -0
- package/dist/components/stream/networkTypes.d.ts +2 -4
- package/dist/components/stream/renderBackend.d.ts +14 -0
- package/dist/components/stream/sceneToSVGShared.d.ts +51 -0
- package/dist/components/types/legendTypes.d.ts +16 -3
- package/dist/controls.min.js +1 -1
- package/dist/controls.module.min.js +1 -1
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics-matter.min.js +1 -1
- package/dist/physics-matter.module.min.js +1 -1
- package/dist/physics-rapier.min.js +1 -1
- package/dist/physics-rapier.module.min.js +1 -1
- package/dist/physics.min.js +1 -1
- package/dist/physics.module.min.js +1 -1
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/rough.min.js +1 -1
- package/dist/rough.module.min.js +1 -1
- package/dist/semiotic-ai-core.min.js +1 -1
- package/dist/semiotic-ai-core.module.min.js +1 -1
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.min.js +1 -1
- package/dist/semiotic-experimental.module.min.js +1 -1
- package/dist/semiotic-realtime-core.min.js +1 -1
- package/dist/semiotic-realtime-core.module.min.js +1 -1
- package/dist/semiotic-realtime-react.min.js +1 -1
- package/dist/semiotic-realtime-react.module.min.js +1 -1
- package/dist/semiotic-recipes-core.min.js +1 -1
- package/dist/semiotic-recipes-core.module.min.js +1 -1
- package/dist/semiotic-recipes-react.min.js +1 -1
- package/dist/semiotic-recipes-react.module.min.js +1 -1
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-server-edge.min.js +1 -1
- package/dist/semiotic-server-edge.module.min.js +1 -1
- package/dist/semiotic-server-node.min.js +1 -1
- package/dist/semiotic-server-node.module.min.js +1 -1
- package/dist/semiotic-themes-core.min.js +1 -1
- package/dist/semiotic-themes-core.module.min.js +1 -1
- package/dist/semiotic-themes-react.min.js +1 -1
- package/dist/semiotic-themes-react.module.min.js +1 -1
- package/dist/semiotic-themes.min.js +1 -1
- package/dist/semiotic-themes.module.min.js +1 -1
- package/dist/semiotic-utils-core.min.js +1 -1
- package/dist/semiotic-utils-core.module.min.js +1 -1
- package/dist/semiotic-utils-react.min.js +1 -1
- package/dist/semiotic-utils-react.module.min.js +1 -1
- package/dist/semiotic-utils.min.js +1 -1
- package/dist/semiotic-utils.module.min.js +1 -1
- package/dist/semiotic-value.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +4 -4
- package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +0 -2
- package/dist/semiotic-chunk-3FSVZ46U.module.min.js +0 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +0 -2
- package/dist/xy-chunk-IWD6IB6V.module.min.js +0 -2
- package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +0 -2
|
@@ -23,5 +23,19 @@ export declare function renderSceneWithBackend<Node extends SceneLike>(args: {
|
|
|
23
23
|
renderMode: SceneRenderMode<Node> | undefined;
|
|
24
24
|
fallback: () => React.ReactNode;
|
|
25
25
|
}): React.ReactNode;
|
|
26
|
+
export interface RenderedSceneEntry<Node> {
|
|
27
|
+
node: Node;
|
|
28
|
+
element: React.ReactNode;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Render a scene once and retain only nodes that produced static output.
|
|
32
|
+
* Static evidence and SVG markup consume the same entries, preventing an
|
|
33
|
+
* unpaintable node from being reported as a successful rendered mark.
|
|
34
|
+
*/
|
|
35
|
+
export declare function renderSceneListWithBackend<Node extends SceneLike>(args: {
|
|
36
|
+
nodes: Node[];
|
|
37
|
+
renderMode: SceneRenderMode<Node> | undefined;
|
|
38
|
+
fallback: (node: Node, index: number) => React.ReactNode;
|
|
39
|
+
}): RenderedSceneEntry<Node>[];
|
|
26
40
|
export declare function resetRenderBackendWarningsForTests(): void;
|
|
27
41
|
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Low-level SVG serialization helpers shared across SceneToSVG.tsx,
|
|
3
|
+
* SceneToSVGNetwork.tsx, and SceneToSVGGeo.tsx. Split out so the three
|
|
4
|
+
* scene-family serializers can import a common base without a circular
|
|
5
|
+
* dependency between them.
|
|
6
|
+
*/
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import type { DefaultArcObject } from "d3-shape";
|
|
9
|
+
import { type HatchFill } from "../charts/shared/hatchFill";
|
|
10
|
+
import type { GlyphDef } from "./glyphDef";
|
|
11
|
+
import type { Style } from "./types";
|
|
12
|
+
/**
|
|
13
|
+
* Sentinel arg for d3-shape arc generators that have all four
|
|
14
|
+
* accessors set to constants. The generator's call signature requires
|
|
15
|
+
* a `DefaultArcObject` even though it never reads the argument when
|
|
16
|
+
* accessors are non-functional. Typing this once avoids local unsafe casts at
|
|
17
|
+
* the arc-emit sites in the network/ordinal serializers.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ARC_NOOP: DefaultArcObject;
|
|
20
|
+
export declare function svgFill(fill: string | HatchFill | CanvasPattern | undefined, fallback?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Coerce a candidate SVG `id` value to the strict `[A-Za-z0-9_-]` charset.
|
|
23
|
+
* Scene-node keys embed user-provided category/group strings, which can
|
|
24
|
+
* contain spaces, colons, parentheses, or other characters that are either
|
|
25
|
+
* invalid in an SVG id or break a `url(#id)` reference. Non-matching
|
|
26
|
+
* characters are replaced with underscores; an empty/leading-digit result
|
|
27
|
+
* is prefixed so the final id is a legal SVG identifier.
|
|
28
|
+
*/
|
|
29
|
+
export declare function safeSvgId(candidate: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Shared SVG serializer for glyph nodes across all four pipelines — the
|
|
32
|
+
* composite-pictogram sibling of `symbolSceneNodeToSVG`. Callers pass the
|
|
33
|
+
* node's position explicitly (`x`/`y` for XY/ordinal/geo, `cx`/`cy` for
|
|
34
|
+
* network) so one implementation matches `glyphCanvasRenderer` exactly:
|
|
35
|
+
* anchor + scale transform, role-token paints, optional ghost silhouette,
|
|
36
|
+
* and a deterministic `clipPath` for partial fills.
|
|
37
|
+
*/
|
|
38
|
+
export declare function glyphNodeToSVG(g: {
|
|
39
|
+
size: number;
|
|
40
|
+
glyph: GlyphDef;
|
|
41
|
+
color?: string;
|
|
42
|
+
accent?: string;
|
|
43
|
+
fraction?: number;
|
|
44
|
+
fractionStart?: number;
|
|
45
|
+
fractionDirection?: "horizontal" | "vertical";
|
|
46
|
+
ghostColor?: string;
|
|
47
|
+
rotation?: number;
|
|
48
|
+
style: Style;
|
|
49
|
+
pointId?: string;
|
|
50
|
+
_decayOpacity?: number;
|
|
51
|
+
}, x: number, y: number, key: string): React.ReactNode;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CSSProperties, ReactElement } from "react";
|
|
1
|
+
import type { CSSProperties, ReactElement, ReactNode } from "react";
|
|
2
2
|
export type SupportedLegendGlyphs = "fill" | "line";
|
|
3
3
|
export type ItemType = SupportedLegendGlyphs | ((item: LegendItem) => ReactElement);
|
|
4
4
|
export interface LegendItem {
|
|
@@ -23,10 +23,23 @@ export interface GradientLegendConfig {
|
|
|
23
23
|
/** Optional format function for tick labels */
|
|
24
24
|
format?: (v: number) => string;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
export declare function isLegendConfig(value: unknown): value is {
|
|
26
|
+
export interface CategoricalLegendConfig {
|
|
28
27
|
legendGroups: LegendGroup[];
|
|
28
|
+
}
|
|
29
|
+
/** Public legend slot accepted by stream frames and legend-aware chart HOCs. */
|
|
30
|
+
export type LegendValue = ReactNode | CategoricalLegendConfig | {
|
|
31
|
+
gradient: GradientLegendConfig;
|
|
29
32
|
};
|
|
33
|
+
/**
|
|
34
|
+
* Compose inferred and caller-supplied legends without discarding either
|
|
35
|
+
* categorical domain. Configured groups are appended in argument order, so
|
|
36
|
+
* the chart's inferred series remain first and caller context follows.
|
|
37
|
+
* Gradient/custom-node legends remain exclusive slots; the last explicit
|
|
38
|
+
* value wins because those forms cannot be laid out as categorical groups.
|
|
39
|
+
*/
|
|
40
|
+
export declare function composeLegendConfigs(...values: Array<LegendValue | null | undefined | false>): LegendValue | undefined;
|
|
41
|
+
/** Type guard: categorical legend config */
|
|
42
|
+
export declare function isLegendConfig(value: unknown): value is CategoricalLegendConfig;
|
|
30
43
|
/** Type guard: gradient legend config */
|
|
31
44
|
export declare function isGradientLegendConfig(value: unknown): value is {
|
|
32
45
|
gradient: GradientLegendConfig;
|
package/dist/controls.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";var e,t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,l=(e,t,o,l)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||s===o||n(e,s,{get:()=>t[s],enumerable:!(l=r(t,s))||l.enumerable});return e},s=(e,r,a)=>(a=null!=e?t(o(e)):{},l(!r&&e&&e.__esModule?a:n(a,"default",{value:e,enumerable:!0}),e)),u={};((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})(u,{CircularBrush:()=>Q,DirectManipulationControl:()=>b,MobileStandardControls:()=>pe,SentenceFilter:()=>K,VISUALIZATION_CONTROL_TYPES:()=>p,auditVisualizationControls:()=>_,clampMobileRange:()=>ne,createControlObservationAdapter:()=>f,useMobileRangeControls:()=>ae,zoomMobileRange:()=>re}),module.exports=(e=u,l(n({},"__esModule",{value:!0}),e));var c=s(require("react")),d=require("react"),p=["value","threshold","partition-boundary","time-window","range-boundary"];function f({controlType:e,controlId:t,chartId:n,chartType:r="VisualizationControl",onObservation:a}){return(o,i,l)=>{a?.({type:o,controlType:e,value:i,chartType:r,timestamp:Date.now(),...t?{controlId:t}:{},...n?{chartId:n}:{},...l?{source:l}:{}})}}var m=require("react/jsx-runtime");function h(e,t,n,r){return Math.min(n,Math.max(t,Number((t+Math.round((Math.min(n,Math.max(t,e))-t)/r)*r).toFixed(12))))}function b({value:e,onChange:t,pointerToValue:n,min:r,max:a,step:o=1,largeStep:i=5*o,x:l,y:s,controlType:u="value",controlId:p,label:b,valueText:y,radius:g=12,fill:x="var(--semiotic-bg, #ffffff)",stroke:v="var(--semiotic-primary, #4e79a7)",strokeWidth:w=4,labelText:j,labelDx:k=16,labelDy:C=-16,labelClassName:$,className:M,disabled:S=!1,onChangeStart:A,onChangeEnd:I,onObservation:T,chartId:D,chartType:z}){const L=(0,d.useRef)(null),N=(0,d.useRef)(e);N.current=e;const E=c.useMemo(()=>f({controlType:u,controlId:p,chartId:D,chartType:z,onObservation:T}),[D,z,p,u,T]),R=e=>{if(S)return;const i=n(e);if(null==i||!Number.isFinite(i))return;const l=h(i,r,a,o);N.current=l,t(l),E("control-change",l,"pointer")},V=e=>{e.stopPropagation(),L.current===e.pointerId&&(e.currentTarget.hasPointerCapture?.(e.pointerId)&&e.currentTarget.releasePointerCapture?.(e.pointerId),L.current=null,I?.(N.current),E("control-end",N.current,"pointer"))},P=["semiotic-direct-manipulation-control",M].filter(Boolean).join(" ");return(0,m.jsxs)("g",{className:P,role:"slider",tabIndex:S?-1:0,"aria-disabled":S||void 0,"aria-label":b,"aria-valuemin":r,"aria-valuemax":a,"aria-valuenow":e,"aria-valuetext":y??`${b}: ${e}`,"aria-roledescription":"visualization control","data-viz-control":u,"data-viz-control-id":p,"data-viz-control-state":"controlled",pointerEvents:"all",onPointerDown:e=>{S||(e.preventDefault(),e.stopPropagation(),e.currentTarget.setPointerCapture?.(e.pointerId),L.current=e.pointerId,A?.(N.current),E("control-start",N.current,"pointer"),R(e))},onPointerMove:e=>{e.stopPropagation(),L.current===e.pointerId&&R(e)},onPointerUp:V,onPointerCancel:V,onLostPointerCapture:V,onKeyDown:e=>{if(S)return;const n=e.shiftKey?i:o,l=N.current;let s=null;if("ArrowLeft"!==e.key&&"ArrowDown"!==e.key||(s=l-n),"ArrowRight"!==e.key&&"ArrowUp"!==e.key||(s=l+n),"Home"===e.key&&(s=r),"End"===e.key&&(s=a),null===s)return;e.preventDefault();const u=h(s,r,a,o);N.current=u,t(u),E("control-change",u,"keyboard")},style:{cursor:S?"default":"grab",touchAction:"none"},children:[(0,m.jsx)("circle",{className:"semiotic-direct-manipulation-control__hit",cx:l,cy:s,r:g+10,fill:"transparent"}),(0,m.jsx)("circle",{className:"semiotic-direct-manipulation-control__handle",cx:l,cy:s,r:g,fill:x,stroke:v,strokeWidth:w}),j?(0,m.jsx)("text",{className:$,x:l+k,y:s+C,fill:v,children:j}):null]})}var y=s(require("react")),g=require("react/jsx-runtime"),x="undefined"==typeof window?y.useEffect:y.useLayoutEffect,v={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},w={position:"absolute",zIndex:30,top:"calc(100% + 0.5rem)",left:0,boxSizing:"border-box",display:"flex",flexDirection:"column",gap:8,width:"var(--sentence-filter-popover-width, 18rem)",maxWidth:"min(22rem, calc(100vw - 2rem))",maxHeight:"min(24rem, calc(100vh - 2rem))",overflow:"auto",padding:12,color:"var(--sentence-filter-text-color, var(--semiotic-fg, #1f2933))",backgroundColor:"var(--semiotic-bg, #fff)",border:"1px solid var(--semiotic-border, #cbd5e1)",borderRadius:6,boxShadow:"0 10px 28px rgba(15, 23, 42, 0.18)",fontFamily:"inherit",fontSize:"1rem",fontWeight:400,lineHeight:1.4,textAlign:"left",whiteSpace:"normal"},j={offsetX:0,placement:"below",maxHeight:null,maxWidth:null},k={boxSizing:"border-box",width:"100%",minHeight:38,padding:"6px 8px",color:"inherit",backgroundColor:"var(--semiotic-bg, #fff)",border:"1px solid var(--semiotic-border, #94a3b8)",borderRadius:4,font:"inherit"},C={display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,width:"100%",minHeight:38,padding:"7px 8px",color:"inherit",backgroundColor:"transparent",border:0,borderRadius:4,font:"inherit",textAlign:"left",cursor:"pointer"};function $(e){return null==e||"boolean"==typeof e?"":"string"==typeof e||"number"==typeof e?e+"":Array.isArray(e)?e.map($).join(""):y.isValidElement(e)?$(e.props.children):""}function M(e,t){return Object.is(e,t)}function S(e,t){return e.find(e=>M(e.value,t))}function A(e){return null==e||""===e||Array.isArray(e)&&0===e.length}function I(e,t){if(A(t))return e.emptyLabel??"Any";if("select"===e.type)return S(e.options,t)?.label??t+"";if("multiselect"===e.type){const n=t.map(t=>S(e.options,t)?.label??t+""),r="or"===e.conjunction?" or ":" and ";return n.map((e,t)=>(0,g.jsxs)(y.Fragment,{children:[t>0?r:null,e]},t))}return"toggle"===e.type?t?e.trueLabel??"on":e.falseLabel??"off":"range"===e.type?`${t[0]} to ${t[1]}`:t+""}function T(e,t,n){return A(t)?$(e.emptyLabel??"Any"):e.getAccessibleValue?e.getAccessibleValue(t,n):$(I(e,t))||t+""}function D(e){return 0===e.detail?"keyboard":"pointer"}function z(e,t){const n=t.trim().toLocaleLowerCase();return n?e.filter(e=>[$(e.label),...e.keywords??[]].some(e=>e.toLocaleLowerCase().includes(n))):e}function L(e,t,n){if(0===e.length)return-1;for(let r=1;e.length>=r;r+=1){const a=(t+n*r+e.length)%e.length;if(!e[a].disabled)return a}return-1}function N(e,t=0){const[n,r]=y.useState(()=>e[t]&&!e[t].disabled?t:L(e,-1,1)),a=y.useRef(null),o=y.useRef({value:"",at:0});y.useEffect(()=>{(0>n||!e[n]||e[n].disabled)&&r(L(e,-1,1))},[n,e]);const i=y.useCallback(e=>{0>e||(r(e),a.current?.querySelector(`[data-sentence-filter-option-index="${e}"]`)?.focus())},[]),l=y.useCallback(t=>{let r=-1;if("ArrowDown"===t.key)r=L(e,n,1);else if("ArrowUp"===t.key)r=L(e,n,-1);else if("Home"===t.key)r=L(e,-1,1);else if("End"===t.key)r=L(e,0,-1);else if(1===t.key.length&&!t.altKey&&!t.ctrlKey&&!t.metaKey){const a=Date.now(),i=o.current,l=`${a-i.at>600?"":i.value}${t.key}`.toLocaleLowerCase();o.current={value:l,at:a};for(let t=1;e.length>=t;t+=1){const a=(Math.max(n,-1)+t)%e.length,o=e[a],i=[$(o.label),...o.keywords??[]];if(!o.disabled&&i.some(e=>e.toLocaleLowerCase().startsWith(l))){r=a;break}}}0>r||(t.preventDefault(),i(r))},[n,i,e]);return{activeIndex:n,focusIndex:i,listRef:a,onKeyDown:l}}function E({option:e}){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("span",{children:e.label}),null!=e.count?(0,g.jsx)("span",{"aria-label":e.count+" results",children:e.count}):null,e.description?(0,g.jsx)("span",{style:{display:"block",fontSize:"0.82em",opacity:.78},children:e.description}):null]})}function R({value:e,definition:t,setValue:n,close:r}){const a=t,[o,i]=y.useState(""),l=y.useMemo(()=>z(a.options,o),[o,a.options]),s=Math.max(0,l.findIndex(t=>M(t.value,e))),u=N(l,s);return(0,g.jsxs)(g.Fragment,{children:[a.searchable?(0,g.jsx)("input",{"data-sentence-filter-autofocus":!0,type:"search","aria-label":"Search "+a.label,value:o,onChange:e=>i(e.currentTarget.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),u.focusIndex(L(l,-1,1)))},style:k}):null,(0,g.jsxs)("span",{ref:u.listRef,role:"listbox","aria-label":a.label,style:{display:"flex",flexDirection:"column",gap:2},children:[l.map((t,o)=>(0,g.jsx)("button",{"data-sentence-filter-option-index":o,"data-sentence-filter-autofocus":a.searchable||o!==u.activeIndex?void 0:"",type:"button",role:"option","aria-selected":M(t.value,e),tabIndex:o===u.activeIndex?0:-1,disabled:t.disabled,onKeyDown:u.onKeyDown,onClick:e=>{n(t.value,D(e)),r()},style:{...C,backgroundColor:M(t.value,e)?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent",opacity:t.disabled?.5:1},children:(0,g.jsx)(E,{option:t})},`${t.value+""}-${o}`)),0===l.length?(0,g.jsx)("span",{role:"status",children:"No options found."}):null]})]})}function V({value:e,definition:t,setValue:n}){const r=t,[a,o]=y.useState(""),i=y.useMemo(()=>z(r.options,a),[r.options,a]),l=Array.isArray(e)?e:[],s=N(i);return(0,g.jsxs)(g.Fragment,{children:[r.searchable?(0,g.jsx)("input",{"data-sentence-filter-autofocus":!0,type:"search","aria-label":"Search "+r.label,value:a,onChange:e=>o(e.currentTarget.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),s.focusIndex(L(i,-1,1)))},style:k}):null,(0,g.jsxs)("span",{ref:s.listRef,role:"group","aria-label":r.label,style:{display:"flex",flexDirection:"column",gap:2},children:[i.map((e,t)=>{const a=l.some(t=>M(t,e.value));return(0,g.jsxs)("label",{style:{...C,justifyContent:"flex-start",opacity:e.disabled?.5:1},children:[(0,g.jsx)("input",{"data-sentence-filter-option-index":t,"data-sentence-filter-autofocus":r.searchable||t!==s.activeIndex?void 0:"",type:"checkbox",checked:a,disabled:e.disabled,tabIndex:t===s.activeIndex?0:-1,onKeyDown:s.onKeyDown,onChange:t=>{const r=t.currentTarget.checked?[...l,e.value]:l.filter(t=>!M(t,e.value));n(r,"input")}}),(0,g.jsx)("span",{style:{flex:1},children:(0,g.jsx)(E,{option:e})})]},`${e.value+""}-${t}`)}),0===i.length?(0,g.jsx)("span",{role:"status",children:"No options found."}):null]})]})}function P({value:e,definition:t,setValue:n}){const r=t,a=r.inputMode??"input",o={min:r.min,max:r.max,step:r.step??1,value:"number"==typeof e?e:r.min??0,onChange:e=>{const t=e.currentTarget.valueAsNumber;Number.isFinite(t)&&n(t,"input")}};return(0,g.jsxs)(g.Fragment,{children:["slider"!==a?(0,g.jsx)("input",{...o,"data-sentence-filter-autofocus":!0,type:"number","aria-label":r.label,style:k}):null,"input"!==a?(0,g.jsx)("input",{...o,"data-sentence-filter-autofocus":"slider"===a?"":void 0,type:"range","aria-label":r.label,style:{width:"100%"}}):null]})}function F({value:e,definition:t,setValue:n}){const r=t,a=Array.isArray(e)&&e.length>=2?[Number(e[0]),Number(e[1])]:[r.min,r.max],o=(e,t)=>{if(!Number.isFinite(t))return;const o=Math.min(r.max,Math.max(r.min,t));n(0===e?[Math.min(o,a[1]),a[1]]:[a[0],Math.max(o,a[0])],"input")},i={min:r.min,max:r.max,step:r.step??1};return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("span",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:[(0,g.jsxs)("label",{children:[(0,g.jsx)("span",{children:"Minimum"}),(0,g.jsx)("input",{...i,"data-sentence-filter-autofocus":!0,type:"number",value:a[0],onChange:e=>o(0,e.currentTarget.valueAsNumber),style:k})]}),(0,g.jsxs)("label",{children:[(0,g.jsx)("span",{children:"Maximum"}),(0,g.jsx)("input",{...i,type:"number",value:a[1],onChange:e=>o(1,e.currentTarget.valueAsNumber),style:k})]})]}),(0,g.jsxs)("label",{children:[(0,g.jsxs)("span",{style:v,children:["Minimum ",r.label]}),(0,g.jsx)("input",{...i,type:"range",value:a[0],onChange:e=>o(0,e.currentTarget.valueAsNumber),style:{width:"100%"}})]}),(0,g.jsxs)("label",{children:[(0,g.jsxs)("span",{style:v,children:["Maximum ",r.label]}),(0,g.jsx)("input",{...i,type:"range",value:a[1],onChange:e=>o(1,e.currentTarget.valueAsNumber),style:{width:"100%"}})]})]})}function O({value:e,definition:t,setValue:n,close:r}){const a=t,o=[{value:!0,label:a.trueLabel??"On"},{value:!1,label:a.falseLabel??"Off"}],i=N(o.map(e=>({...e})),!1===e?1:0);return(0,g.jsx)("span",{ref:i.listRef,role:"listbox","aria-label":a.label,style:{display:"flex",gap:4},children:o.map((t,a)=>(0,g.jsx)("button",{"data-sentence-filter-option-index":a,"data-sentence-filter-autofocus":a===i.activeIndex?"":void 0,type:"button",role:"option","aria-selected":e===t.value,tabIndex:a===i.activeIndex?0:-1,onKeyDown:i.onKeyDown,onClick:e=>{n(t.value,D(e)),r()},style:{...C,justifyContent:"center",backgroundColor:e===t.value?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent"},children:t.label},t.value+""))})}function W({value:e,definition:t,setValue:n,close:r}){const a=t,o="string"==typeof e?e:"",[i,l]=y.useState(""),s=y.useMemo(()=>z(a.suggestions??[],i),[i,a.suggestions]),u=N(s);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("input",{"data-sentence-filter-autofocus":!0,type:"text","aria-label":a.label,placeholder:a.placeholder,value:o,onChange:e=>{l(e.currentTarget.value),n(e.currentTarget.value,"input")},onKeyDown:e=>{"ArrowDown"===e.key&&s.length>0&&(e.preventDefault(),u.focusIndex(L(s,-1,1)))},style:k}),s.length>0?(0,g.jsx)("span",{ref:u.listRef,role:"listbox","aria-label":a.label+" suggestions",style:{display:"flex",flexDirection:"column",gap:2},children:s.map((e,t)=>(0,g.jsx)("button",{"data-sentence-filter-option-index":t,type:"button",role:"option","aria-selected":e.value===o,disabled:e.disabled,tabIndex:t===u.activeIndex?0:-1,onKeyDown:u.onKeyDown,onClick:t=>{n(e.value,D(t)),r()},style:{...C,opacity:e.disabled?.5:1},children:(0,g.jsx)(E,{option:e})},`${e.value}-${t}`))}):null]})}function H(e){switch(e.definition.type){case"select":return(0,g.jsx)(R,{...e});case"multiselect":return(0,g.jsx)(V,{...e});case"number":return(0,g.jsx)(P,{...e});case"range":return(0,g.jsx)(F,{...e});case"toggle":return(0,g.jsx)(O,{...e});case"text":return(0,g.jsx)(W,{...e})}}function K({sentence:e,filters:t,defaultFilters:n,definitions:r,onChange:a,as:o="div",className:i,style:l,size:s="inherit",align:u="start",wrap:c=!0,disabled:d=!1,readOnly:p=!1,ariaLabel:f,id:m,renderControl:h,onOpenChange:b}){const[k,$]=y.useState(()=>({...n??{}})),M=t??k,S=y.useRef(M);S.current=M;const D=void 0!==t,z=y.useMemo(()=>function(e){const t=[];let n="";const r=()=>{if(!n)return;const e=t[t.length-1];"text"===e?.type?e.value+=n:t.push({type:"text",value:n}),n=""};for(let a=0;e.length>a;)if(e.startsWith("{{",a))n+="{",a+=2;else if(e.startsWith("}}",a))n+="}",a+=2;else{if("{"===e[a]){const n=e.indexOf("}",a+1);if(-1!==n){const o=e.slice(a+1,n);if(o.length>0&&!o.includes("{")){r(),t.push({type:"filter",key:o}),a=n+1;continue}}}n+=e[a],a+=1}return r(),t}(e),[e]),[L,N]=y.useState(null),[E,R]=y.useState(j),V=y.useRef(L);V.current=L;const P=y.useRef(null),F=y.useRef(null),O=y.useRef(new Set),[W,K]=y.useState(""),[Z,_]=y.useState(null),[q,B]=y.useState(null),U=y.useId().replace(/:/g,""),X=m??"sentence-filter-"+U;y.useEffect(()=>{if("undefined"==typeof process||"production"!==process.env?.NODE_ENV)for(const e of z){if("filter"!==e.type)continue;let t=null;r[e.key]?e.key in M||(t=`SentenceFilter: placeholder "{${e.key}}" has no matching filter value.`):t=`SentenceFilter: placeholder "{${e.key}}" has no matching definition.`,t&&!O.current.has(t)&&(O.current.add(t),console.warn(t))}},[r,M,z]);const G=y.useCallback(()=>{V.current&&(V.current=null,N(null),R(j),b?.(null),F.current?.focus())},[b]);y.useEffect(()=>{if(!L)return;const e=e=>{P.current?.contains(e.target)||G()},t=e=>{"Escape"===e.key&&(e.preventDefault(),G())};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("click",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("click",e),document.removeEventListener("keydown",t)}},[G,L]),x(()=>{if(!L||"undefined"==typeof window)return;const e=P.current?.querySelector(`[data-sentence-filter-popover="${L.occurrence}"]`);if(!e)return;const t=()=>{const t=16,n=e.getBoundingClientRect();if(0>=n.width)return;const r=F.current?.getBoundingClientRect(),a=window.visualViewport,o=a?.offsetLeft??0,i=a?.offsetTop??0,l=a?.width??window.innerWidth,s=o+l,u=i+(a?.height??window.innerHeight),c=window.getComputedStyle(e),d=Number.parseFloat(c.getPropertyValue("--sentence-filter-popover-viewport-inset-top")),p=Number.parseFloat(c.getPropertyValue("--sentence-filter-popover-viewport-inset-bottom"));let f=i+(Number.isFinite(d)?Math.max(0,d):0),m=u-(Number.isFinite(p)?Math.max(0,p):0),h=F.current?.parentElement??null;for(;h;){const e=window.getComputedStyle(h);if("sticky"===e.position){const t=h.getBoundingClientRect(),n=Number.parseFloat(e.top),r=Number.parseFloat(e.bottom);Number.isFinite(n)&&1>=Math.abs(t.top-(i+n))&&(f=Math.max(f,t.bottom)),Number.isFinite(r)&&1>=Math.abs(t.bottom-(u-r))&&(m=Math.min(m,t.top))}h=h.parentElement}const b=n.left-E.offsetX,y=n.right-E.offsetX;let g=0;y>s-t&&(g-=y-(s-t)),o+t>b+g&&(g+=o+t-(b+g));const x=r?m-r.bottom-8-t:m-f-32,v=r?r.top-f-8-t:0,w=Math.min(Math.max(n.height,e.scrollHeight),160)>x&&v>x?"above":"below",j=Math.max(0,Math.min(384,Math.floor("above"===w?v:x))),k=Math.max(0,Math.floor(l-32));R(e=>e.offsetX===g&&e.placement===w&&e.maxHeight===j&&e.maxWidth===k?e:{offsetX:g,placement:w,maxHeight:j,maxWidth:k})};return t(),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0),window.visualViewport?.addEventListener("resize",t),window.visualViewport?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0),window.visualViewport?.removeEventListener("resize",t),window.visualViewport?.removeEventListener("scroll",t)}},[L,E]),y.useEffect(()=>{if(!L)return;const e=P.current?.querySelector(`[data-sentence-filter-popover="${L.occurrence}"]`),t=e?.querySelector("[data-sentence-filter-autofocus]")??e;t?.focus()},[L]),y.useEffect(()=>{L&&(d||p||r[L.key]?.disabled)&&G()},[G,r,d,L,p]);const Y=y.useCallback((e,t,n)=>{const o=S.current,i=o[e]??null,l={...o,[e]:t};D||(S.current=l,$(l));const s={key:e,previousValue:i,value:t,source:n};a?.(l,s);const u=r[e];if(u){const e=T(u,i,o),n=T(u,t,l);K(`${u.label} changed from ${e} to ${n}.`)}},[D,r,a]),J=y.useMemo(()=>z.map(e=>{if("text"===e.type)return e.value;const t=r[e.key];return t?T(t,M[e.key],M):`{${e.key}}`}).join(""),[r,M,z]),Q={position:"relative",margin:0,color:"var(--sentence-filter-text-color, inherit)",fontFamily:"inherit",fontSize:"small"===s?"0.875rem":"medium"===s?"1rem":"large"===s?"1.5rem":"inherit",lineHeight:"inherit",textAlign:"start"===u?"start":"end"===u?"end":"center",whiteSpace:c?"normal":"nowrap",...l},ee=["semiotic-sentence-filter",i].filter(Boolean).join(" ");let te=0;return(0,g.jsxs)(o,{ref:e=>{P.current=e},id:X,className:ee,style:Q,role:"div"===o||"span"===o?"group":void 0,"aria-label":f??J,"data-semiotic-control":"sentence-filter","data-sentence-filter-state":D?"controlled":"uncontrolled",children:[z.map((e,t)=>{if("text"===e.type)return(0,g.jsx)("span",{"aria-hidden":"true",children:e.value},t);const n=r[e.key];if(!n)return(0,g.jsx)("span",{"aria-hidden":"true",children:`{${e.key}}`},t);const a=te;te+=1;const o=M[e.key]??null,i=function(e,t,n){return A(t)?e.emptyLabel??"Any":e.formatValue?e.formatValue(t,n):I(e,t)}(n,o,M),l=T(n,o,M),s=L?.key===e.key&&L.occurrence===a,u=d||p||!!n.disabled,c=e.key.replace(/[^a-zA-Z0-9_-]/g,"-"),f=`${X}-${c}-${a}-popover`;return(0,g.jsxs)("span",{className:"semiotic-sentence-filter__value",style:{position:"relative",display:"inline"},children:[(0,g.jsx)("button",{type:"button","aria-haspopup":"dialog","aria-expanded":s,"aria-controls":f,"aria-label":`${n.label}: ${l}. Activate to change.`,disabled:u,"data-sentence-filter-key":e.key,"data-sentence-filter-type":n.type,"data-sentence-filter-open":s||void 0,onMouseEnter:()=>_(a),onMouseLeave:()=>_(e=>e===a?null:e),onFocus:()=>B(a),onBlur:()=>B(e=>e===a?null:e),onClick:t=>{if(u)return;if(s)return void G();F.current=t.currentTarget;const r={key:e.key,occurrence:a};V.current=r,R(j),N(r),K(n.label+" control opened."),b?.(e.key)},style:{appearance:"none",display:"inline",minWidth:24,padding:"0.35em 0.12em",margin:"-0.35em 0",color:n.accent??"var(--sentence-filter-accent, var(--semiotic-primary, #4e79a7))",backgroundColor:Z===a||s?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent",border:0,borderBottom:"var(--sentence-filter-underline-thickness, 0.09em) solid currentColor",borderRadius:2,outline:q===a?"2px solid var(--sentence-filter-focus-color, currentColor)":"2px solid transparent",outlineOffset:2,font:"inherit",fontWeight:600,lineHeight:"inherit",textAlign:"inherit",cursor:u?"default":"pointer",opacity:u?.6:1},children:i}),s?(0,g.jsxs)("span",{id:f,role:"dialog","aria-label":n.label,"aria-describedby":n.description?f+"-description":void 0,tabIndex:-1,"data-sentence-filter-popover":a,"data-sentence-filter-key":e.key,style:{...w,top:"below"===E.placement?"calc(100% + 0.5rem)":"auto",bottom:"above"===E.placement?"calc(100% + 0.5rem)":"auto",left:E.offsetX,maxHeight:E.maxHeight??w.maxHeight,maxWidth:E.maxWidth??w.maxWidth},children:[(0,g.jsx)("span",{style:{fontWeight:650},children:n.label}),n.description?(0,g.jsx)("span",{id:f+"-description",style:{fontSize:"0.88em",opacity:.78},children:n.description}):null,h?h({key:e.key,value:o,filters:M,definition:n,setValue:(t,n="programmatic")=>Y(e.key,t,n),close:G}):(0,g.jsx)(H,{value:o,definition:n,setValue:(t,n)=>Y(e.key,t,n),close:G}),n.allowClear&&!A(o)?(0,g.jsxs)("button",{type:"button",onClick:()=>{Y(e.key,"multiselect"===n.type?[]:null,"clear"),G()},style:{...C,justifyContent:"center",border:"1px solid var(--semiotic-border, #cbd5e1)"},children:["Clear ",n.label]}):null]}):null]},`${e.key}-${a}`)}),(0,g.jsx)("span",{role:"status","aria-live":"polite","aria-atomic":"true","data-sentence-filter-live-region":!0,style:v,children:W})]})}function Z(e,t,n,r,a){return{id:e,...t?{controlId:t}:{},status:n,message:r,...a?{remediation:a}:{}}}function _({controls:e=[],minimumTargetSize:t=24}){const n=[],r=new Set;for(const a of e){const e=a?.id,o="controls."+(e||"unknown"),i=a?.domain,l=Array.isArray(i)&&2===i.length&&Number.isFinite(i[0])&&Number.isFinite(i[1])&&i[1]>i[0],s=p.includes(a?.type),u="string"==typeof a?.target&&a.target.trim().length>0,c=["slider","buttons","native-range"].includes(a?.keyboard??""),d=a?.minimumTargetSize;n.push(Z(o+".semantic-type",e,s?"pass":"fail",s?`Control uses the semantic type "${a.type}".`:"Control has no recognized semantic type.","Use one of VISUALIZATION_CONTROL_TYPES.")),n.push(Z(o+".state-binding",e,u?"pass":"fail",u?`Control is bound to "${a.target}".`:"Control has no declarative state binding.","Declare the controlled state key with target.")),n.push(Z(o+".domain",e,l?"pass":"fail",l?"Control has a finite ordered value domain.":"Control has no finite ordered value domain.","Declare domain as [minimum, maximum].")),n.push(Z(o+".keyboard",e,c?"pass":"fail",c?`Control declares a ${a.keyboard} keyboard path.`:"Control does not declare a keyboard path.","Declare slider, buttons, or native-range keyboard interaction.")),n.push(Z(o+".value-text",e,"string"==typeof a?.valueText&&a.valueText.trim().length>0?"pass":"fail","string"==typeof a?.valueText&&a.valueText.trim().length>0?"Control declares human-readable value text.":"Control does not declare human-readable value text.","Provide valueText, typically with a {value} placeholder.")),n.push(Z(o+".target-size",e,"number"!=typeof d||t>d?"fail":"pass","number"!=typeof d||t>d?`Control target is below the ${t}px minimum or undeclared.`:`Control declares a ${d}px target.`,`Declare minimumTargetSize of at least ${t}.`)),null!=a?.step&&n.push(Z(o+".step",e,Number.isFinite(a.step)&&a.step>0?"pass":"fail",Number.isFinite(a.step)&&a.step>0?"Control has a positive quantization step.":"Control step must be a positive finite number.","Use a positive finite step.")),a?.observations?.length&&n.push(Z(o+".observations",e,a.observations.includes("control-change")?"pass":"warn",a.observations.includes("control-change")?"Control declares control-change observation coverage.":"Control declares observations but omits control-change.","Include control-change so observable state changes are represented.")),e&&!r.has(e)||n.push(Z(o+".identity",e,"fail",e?"Control id is duplicated.":"Control id is missing.","Use a unique stable control id.")),e&&r.add(e)}return{ok:n.every(e=>"fail"!==e.status),findings:n}}var q=require("react"),B=2*Math.PI;function U(e,t,n){const r=n?.center?.x??0,a=n?.center?.y??0;return{x:r+Math.sin(e)*t,y:a-Math.cos(e)*t}}function X(e,t,n,r,a){const o=a?.center,i=(e,t)=>{const{x:n,y:r}=U(e,t,{center:o});return`${G(n)},${G(r)}`},l=Math.max(0,n),s=Math.max(l,r),u=Math.abs(t-e),c=e>t?0:1;if(u>=B-1e-6){const e=o?.x??0,t=o?.y??0,n=`${G(e)},${G(t-s)}`,r=`${G(e)},${G(t+s)}`;let a=`M${n} A${G(s)},${G(s)} 0 1 1 ${r} A${G(s)},${G(s)} 0 1 1 ${n} Z`;if(l>0){const n=`${G(e)},${G(t-l)}`,r=`${G(e)},${G(t+l)}`;a+=` M${n} A${G(l)},${G(l)} 0 1 0 ${r} A${G(l)},${G(l)} 0 1 0 ${n} Z`}return a}const d=u>Math.PI?1:0,p=i(e,s),f=i(t,s);if(0>=l){const e=o?.x??0,t=o?.y??0;return`M${G(e)},${G(t)} L${p} A${G(s)},${G(s)} 0 ${d} ${c} ${f} Z`}const m=i(t,l),h=i(e,l);return`M${p} A${G(s)},${G(s)} 0 ${d} ${c} ${f} L${m} A${G(l)},${G(l)} 0 ${d} ${1===c?0:1} ${h} Z`}function G(e){return Math.round(1e3*e)/1e3}function Y(e,t,n=0){return t>0?((e-n)%t+t)%t+n:e}var J=require("react/jsx-runtime");function Q({value:e,onChange:t,period:n=365,radius:r=180,innerRadius:a=14,width:o,height:i,step:l=1,largeStep:s=7,label:u="Range",formatValue:c,arcFill:d="var(--semiotic-primary, #4e79a7)",stroke:p="var(--semiotic-bg, #ffffff)",className:f,style:m}){const h=o??2*r+40,b=i??2*r+40,y=h/2,g=b/2,x=function(e){const[t,n]=e,r=n-t||1,a=B;return e=>0+(e-t)/r*(a-0)}([0,n]),v=(0,q.useRef)(null),w=e=>{const t=e.currentTarget.ownerSVGElement??e.currentTarget,r=t.getBoundingClientRect(),a=t.viewBox?.baseVal;return Math.round((Math.atan2((a?.width||h)/(r.width||1)*(e.clientX-r.left)-y-0,-((a?.height||b)/(r.height||1)*(e.clientY-r.top)-g-0))+B)%B/B*n)%n},j=(e,t)=>{e.preventDefault(),e.stopPropagation();const n=e.currentTarget.ownerSVGElement;n?.setPointerCapture?.(e.pointerId),v.current={mode:t,lastValue:w(e)}},k=e=>{const t=e.currentTarget.ownerSVGElement??e.currentTarget;t?.hasPointerCapture?.(e.pointerId)&&t.releasePointerCapture(e.pointerId),v.current=null},C=(e,r)=>{t("range"===e?e=>({start:Y(e.start+r,n),end:Y(e.end+r,n)}):t=>({...t,[e]:Y(t[e]+r,n)}))},$=e=>t=>{const n=t.shiftKey?s:l;"ArrowRight"===t.key||"ArrowUp"===t.key?(t.preventDefault(),C(e,n)):"ArrowLeft"!==t.key&&"ArrowDown"!==t.key||(t.preventDefault(),C(e,-n))},M=e.start>e.end?[[e.start,n],[0,e.end]]:[[e.start,e.end]],S=e=>c?c(e):e+"";return(0,J.jsx)("svg",{viewBox:`0 0 ${h} ${b}`,width:h,height:b,className:f,onPointerMove:e=>{const r=v.current;if(!r)return;const a=w(e);if("range"===r.mode){const e=function(e,t,n){if(0>=n)return t-e;let r=(t-e)%n;return r>n/2?r-=n:-n/2>r&&(r+=n),r}(r.lastValue,a,n);if(0===e)return;return r.lastValue=a,void t(t=>({start:Y(t.start+e,n),end:Y(t.end+e,n)}))}t(e=>({...e,[r.mode]:a}))},onPointerUp:k,onPointerCancel:k,onLostPointerCapture:k,style:{touchAction:"none",...m},"aria-label":u+" brush",children:(0,J.jsxs)("g",{transform:`translate(${y},${g})`,children:[(0,J.jsx)("g",{role:"slider",tabIndex:0,"aria-label":u+" (move both ends)","aria-valuemin":0,"aria-valuemax":n-1,"aria-valuenow":e.start,"aria-valuetext":`${S(e.start)} to ${S(e.end)}`,onPointerDown:e=>j(e,"range"),onKeyDown:$("range"),style:{cursor:"grab"},children:M.map(([e,t],n)=>(0,J.jsx)("path",{d:X(x(e),x(t),a,r),fill:d,fillOpacity:.35,stroke:p,strokeWidth:1},n))}),["start","end"].map(t=>{const o=e[t],i=(e=>U(x(e),a))(o),l=(e=>U(x(e),r+8))(o);return(0,J.jsxs)("g",{role:"slider",tabIndex:0,"aria-label":`${u} ${t}`,"aria-valuemin":0,"aria-valuemax":n-1,"aria-valuenow":o,"aria-valuetext":S(o),onPointerDown:e=>j(e,t),onKeyDown:$(t),style:{cursor:"grab"},children:[(0,J.jsx)("line",{x1:i.x,y1:i.y,x2:l.x,y2:l.y,stroke:"transparent",strokeWidth:20}),(0,J.jsx)("line",{x1:i.x,y1:i.y,x2:l.x,y2:l.y,stroke:p,strokeWidth:1.5}),(0,J.jsx)("circle",{cx:l.x,cy:l.y,r:4.5,fill:p,stroke:d,strokeWidth:1})]},t)})]})})}var ee=s(require("react")),te=require("react/jsx-runtime");function ne(e,t,n=0){const r=Math.min(t[0],t[1]),a=Math.max(t[0],t[1]),o=Math.max(r,Math.min(a,e[0])),i=Math.max(r,Math.min(a,e[1])),l=o>i?[i,o]:[o,i];if(l[1]-l[0]>=n)return l;const s=(l[0]+l[1])/2,u=n/2;return[Math.max(r,Math.min(a-n,s-u)),Math.min(a,Math.max(r+n,s+u))]}function re(e,t,n,r=1,a=r){const o="in"===n?r:-r;return ne([e[0]+o,e[1]-o],t,a)}function ae(e){const{domain:t,initialValue:n=t,step:r=1,minSpan:a=r,label:o,formatValue:i,onChange:l}=e,[s,u]=ee.useState(()=>ne(n,t,a)),c=ne(s,t,a),d=ee.useCallback(e=>{const n=ne(e,t,a);u(n),l?.(n)},[t,a,l]),p=ee.useMemo(()=>({label:o,domain:t,value:c,step:r,formatValue:i,onChange:d,onClear:()=>d(t)}),[t,i,o,d,r,c]),f=ee.useMemo(()=>({onZoomIn:()=>d(re(c,t,"in",r,a)),onZoomOut:()=>d(re(c,t,"out",r,a)),onReset:()=>d(t)}),[t,a,d,r,c]);return{value:c,setValue:d,xExtent:c,brush:p,zoom:f}}var oe={display:"grid",gap:8,padding:"10px 12px",border:"1px solid var(--semiotic-border, #d8dee4)",borderRadius:12,background:"var(--semiotic-surface, var(--semiotic-bg, rgba(255,255,255,0.92)))"},ie={fontSize:11,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",color:"var(--semiotic-text-secondary, #57606a)"};function le(e,t){return{minWidth:e,minHeight:e,padding:"0 12px",borderRadius:999,border:"1px solid var(--semiotic-border, #d8dee4)",background:t?"var(--semiotic-primary, #0969da)":"var(--semiotic-bg, #fff)",color:t?"var(--semiotic-on-primary, #fff)":"var(--semiotic-text, #24292f)",fontSize:13,fontWeight:650,touchAction:"manipulation"}}function se(e){return"function"==typeof e}function ue({brush:e,targetSize:t}){const n=e?.value,r=e?.domain,a=!!n&&!!r,o=!0===e?.disabled,i=e?.formatValue??(e=>e),l=!!e?.onChange&&a&&!o,s=r?.[0]??0,u=r?.[1]??1,c=n?.[0]??s,d=n?.[1]??u,p=e?.step??((u-s)/100||1);return(0,te.jsxs)("section",{style:oe,"aria-label":"Brush controls",children:[(0,te.jsx)("div",{style:ie,children:e?.label??"Filter range"}),a?(0,te.jsxs)("div",{style:{display:"grid",gap:8},children:[(0,te.jsxs)("label",{style:{display:"grid",gap:4,fontSize:12},children:[(0,te.jsxs)("span",{children:["Start: ",i(c)]}),(0,te.jsx)("input",{type:"range",min:s,max:u,step:p,value:c,disabled:!l,style:{minHeight:t},onChange:t=>{const n=Number(t.currentTarget.value);e?.onChange?.([Math.min(n,d),d])}})]}),(0,te.jsxs)("label",{style:{display:"grid",gap:4,fontSize:12},children:[(0,te.jsxs)("span",{children:["End: ",i(d)]}),(0,te.jsx)("input",{type:"range",min:s,max:u,step:p,value:d,disabled:!l,style:{minHeight:t},onChange:t=>{const n=Number(t.currentTarget.value);e?.onChange?.([c,Math.max(n,c)])}})]})]}):(0,te.jsx)("div",{style:{fontSize:12,color:"var(--semiotic-text-secondary, #57606a)"},children:"Provide a brush domain and value to expose range inputs beside the drag gesture."}),(0,te.jsx)("button",{type:"button",disabled:o||!se(e?.onClear),onClick:e?.onClear,style:le(t),children:"Clear range"})]})}function ce({zoom:e,targetSize:t}){const n=!0===e?.disabled;return(0,te.jsxs)("section",{style:oe,"aria-label":"Zoom controls",children:[(0,te.jsx)("div",{style:ie,children:e?.label??"Zoom"}),(0,te.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,te.jsx)("button",{type:"button","aria-label":"Zoom out",disabled:n||!se(e?.onZoomOut),onClick:e?.onZoomOut,style:le(t),children:"-"}),(0,te.jsx)("button",{type:"button","aria-label":"Reset zoom",disabled:n||!se(e?.onReset),onClick:e?.onReset,style:le(t),children:"Reset"}),(0,te.jsx)("button",{type:"button","aria-label":"Zoom in",disabled:n||!se(e?.onZoomIn),onClick:e?.onZoomIn,style:le(t),children:"+"})]})]})}function de({legend:e,targetSize:t}){const n=!0===e?.disabled,r=e?.items??[];return(0,te.jsxs)("section",{style:oe,"aria-label":"Legend controls",children:[(0,te.jsx)("div",{style:ie,children:e?.label??"Series"}),r.length>0&&(0,te.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:r.map(r=>{const a=!1!==r.active;return(0,te.jsxs)("button",{type:"button",disabled:n||r.disabled||!e?.onToggle,onClick:()=>e?.onToggle?.(r.id,!a),style:le(t,a),"aria-pressed":a,children:[r.color&&(0,te.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:9,height:9,marginRight:6,borderRadius:999,background:r.color}}),r.label??r.id]},r.id)})}),(0,te.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,te.jsx)("button",{type:"button",disabled:n||!se(e?.onShowAll),onClick:e?.onShowAll,style:le(t),children:"Show all"}),(0,te.jsx)("button",{type:"button",disabled:n||!se(e?.onHideAll),onClick:e?.onHideAll,style:le(t),children:"Hide all"})]})]})}function pe({controls:e,targetSize:t=44,compact:n=!1,className:r,style:a,ariaLabel:o="Mobile chart controls",brush:i,zoom:l,legend:s}){const u=function(e,t){if(!1===e)return[];if(!0===e||"all"===e)return["brush","zoom","legend"];if(Array.isArray(e))return e;if(e)return[e];const n=[];return t.brush&&n.push("brush"),t.zoom&&n.push("zoom"),t.legend&&n.push("legend"),n}(e,{brush:i,zoom:l,legend:s});return 0===u.length?null:(0,te.jsxs)("div",{className:r,role:"group","aria-label":o,style:{display:"grid",gridTemplateColumns:n?"1fr":"repeat(auto-fit, minmax(180px, 1fr))",gap:10,...a},children:[u.includes("brush")&&(0,te.jsx)(ue,{brush:i,targetSize:t}),u.includes("zoom")&&(0,te.jsx)(ce,{zoom:l,targetSize:t}),u.includes("legend")&&(0,te.jsx)(de,{legend:s,targetSize:t})]})}
|
|
2
|
+
var e,t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,l=(e,t,o,l)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))i.call(e,s)||s===o||n(e,s,{get:()=>t[s],enumerable:!(l=r(t,s))||l.enumerable});return e},s=(e,r,a)=>(a=null!=e?t(o(e)):{},l(!r&&e&&e.__esModule?a:n(a,"default",{value:e,enumerable:!0}),e)),u={};((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})(u,{CircularBrush:()=>Q,DirectManipulationControl:()=>b,MobileStandardControls:()=>pe,SentenceFilter:()=>K,VISUALIZATION_CONTROL_TYPES:()=>p,auditVisualizationControls:()=>_,clampMobileRange:()=>ne,createControlObservationAdapter:()=>f,useMobileRangeControls:()=>ae,zoomMobileRange:()=>re}),module.exports=(e=u,l(n({},"__esModule",{value:!0}),e));var c=s(require("react")),d=require("react"),p=["value","threshold","partition-boundary","time-window","range-boundary"];function f({controlType:e,controlId:t,chartId:n,chartType:r="VisualizationControl",onObservation:a}){return(o,i,l)=>{a?.({type:o,controlType:e,value:i,chartType:r,timestamp:Date.now(),...t?{controlId:t}:{},...n?{chartId:n}:{},...l?{source:l}:{}})}}var m=require("react/jsx-runtime");function h(e,t,n,r){return Math.min(n,Math.max(t,Number((t+Math.round((Math.min(n,Math.max(t,e))-t)/r)*r).toFixed(12))))}function b({value:e,onChange:t,pointerToValue:n,min:r,max:a,step:o=1,largeStep:i=5*o,x:l,y:s,controlType:u="value",controlId:p,label:b,valueText:y,radius:g=12,fill:x="var(--semiotic-bg, #ffffff)",stroke:v="var(--semiotic-primary, #4e79a7)",strokeWidth:w=4,labelText:j,labelDx:k=16,labelDy:C=-16,labelClassName:$,className:M,disabled:S=!1,onChangeStart:A,onChangeEnd:I,onObservation:T,chartId:D,chartType:z}){const L=(0,d.useRef)(null),N=(0,d.useRef)(e);N.current=e;const E=c.useMemo(()=>f({controlType:u,controlId:p,chartId:D,chartType:z,onObservation:T}),[D,z,p,u,T]),R=e=>{if(S)return;const i=n(e);if(null==i||!Number.isFinite(i))return;const l=h(i,r,a,o);N.current=l,t(l),E("control-change",l,"pointer")},V=e=>{e.stopPropagation(),L.current===e.pointerId&&(e.currentTarget.hasPointerCapture?.(e.pointerId)&&e.currentTarget.releasePointerCapture?.(e.pointerId),L.current=null,I?.(N.current),E("control-end",N.current,"pointer"))},P=["semiotic-direct-manipulation-control",M].filter(Boolean).join(" ");return(0,m.jsxs)("g",{className:P,role:"slider",tabIndex:S?-1:0,"aria-disabled":S||void 0,"aria-label":b,"aria-valuemin":r,"aria-valuemax":a,"aria-valuenow":e,"aria-valuetext":y??`${b}: ${e}`,"aria-roledescription":"visualization control","data-viz-control":u,"data-viz-control-id":p,"data-viz-control-state":"controlled",pointerEvents:"all",onPointerDown:e=>{S||(e.preventDefault(),e.stopPropagation(),e.currentTarget.setPointerCapture?.(e.pointerId),L.current=e.pointerId,A?.(N.current),E("control-start",N.current,"pointer"),R(e))},onPointerMove:e=>{e.stopPropagation(),L.current===e.pointerId&&R(e)},onPointerUp:V,onPointerCancel:V,onLostPointerCapture:V,onKeyDown:e=>{if(S)return;const n=e.shiftKey?i:o,l=N.current;let s=null;if("ArrowLeft"!==e.key&&"ArrowDown"!==e.key||(s=l-n),"ArrowRight"!==e.key&&"ArrowUp"!==e.key||(s=l+n),"Home"===e.key&&(s=r),"End"===e.key&&(s=a),null===s)return;e.preventDefault();const u=h(s,r,a,o);N.current=u,t(u),E("control-change",u,"keyboard")},style:{cursor:S?"default":"grab",touchAction:"none"},children:[(0,m.jsx)("circle",{className:"semiotic-direct-manipulation-control__hit",cx:l,cy:s,r:g+10,fill:"transparent"}),(0,m.jsx)("circle",{className:"semiotic-direct-manipulation-control__handle",cx:l,cy:s,r:g,fill:x,stroke:v,strokeWidth:w}),j?(0,m.jsx)("text",{className:$,x:l+k,y:s+C,fill:v,children:j}):null]})}var y=s(require("react")),g=require("react/jsx-runtime"),x="undefined"==typeof window?y.useEffect:y.useLayoutEffect,v={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},w={position:"absolute",zIndex:30,top:"calc(100% + 0.5rem)",left:0,boxSizing:"border-box",display:"flex",flexDirection:"column",gap:8,width:"var(--sentence-filter-popover-width, 18rem)",maxWidth:"min(22rem, calc(100vw - 2rem))",maxHeight:"min(24rem, calc(100vh - 2rem))",overflow:"auto",padding:12,color:"var(--sentence-filter-text-color, var(--semiotic-fg, #1f2933))",backgroundColor:"var(--semiotic-bg, #fff)",border:"1px solid var(--semiotic-border, #cbd5e1)",borderRadius:6,boxShadow:"0 10px 28px rgba(15, 23, 42, 0.18)",fontFamily:"inherit",fontSize:"1rem",fontWeight:400,lineHeight:1.4,textAlign:"left",whiteSpace:"normal"},j={offsetX:0,placement:"below",maxHeight:null,maxWidth:null},k={boxSizing:"border-box",width:"100%",minHeight:38,padding:"6px 8px",color:"inherit",backgroundColor:"var(--semiotic-bg, #fff)",border:"1px solid var(--semiotic-border, #94a3b8)",borderRadius:4,font:"inherit"},C={display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,width:"100%",minHeight:38,padding:"7px 8px",color:"inherit",backgroundColor:"transparent",border:0,borderRadius:4,font:"inherit",textAlign:"left",cursor:"pointer"};function $(e){return null==e||"boolean"==typeof e?"":"string"==typeof e||"number"==typeof e?e+"":Array.isArray(e)?e.map($).join(""):y.isValidElement(e)?$(e.props.children):""}function M(e,t){return Object.is(e,t)}function S(e,t){return e.find(e=>M(e.value,t))}function A(e){return null==e||""===e||Array.isArray(e)&&0===e.length}function I(e,t){if(A(t))return e.emptyLabel??"Any";if("select"===e.type)return S(e.options,t)?.label??t+"";if("multiselect"===e.type){const n=t.map(t=>S(e.options,t)?.label??t+""),r="or"===e.conjunction?" or ":" and ";return n.map((e,t)=>(0,g.jsxs)(y.Fragment,{children:[t>0?r:null,e]},t))}return"toggle"===e.type?t?e.trueLabel??"on":e.falseLabel??"off":"range"===e.type?`${t[0]} to ${t[1]}`:t+""}function T(e,t,n){return A(t)?$(e.emptyLabel??"Any"):e.getAccessibleValue?e.getAccessibleValue(t,n):$(I(e,t))||t+""}function D(e){return 0===e.detail?"keyboard":"pointer"}function z(e,t){const n=t.trim().toLocaleLowerCase();return n?e.filter(e=>[$(e.label),...e.keywords??[]].some(e=>e.toLocaleLowerCase().includes(n))):e}function L(e,t,n){if(0===e.length)return-1;for(let r=1;e.length>=r;r+=1){const a=(t+n*r+e.length)%e.length;if(!e[a].disabled)return a}return-1}function N(e,t=0){const[n,r]=y.useState(()=>e[t]&&!e[t].disabled?t:L(e,-1,1)),a=y.useRef(null),o=y.useRef({value:"",at:0});y.useEffect(()=>{(0>n||!e[n]||e[n].disabled)&&r(L(e,-1,1))},[n,e]);const i=y.useCallback(e=>{0>e||(r(e),a.current?.querySelector(`[data-sentence-filter-option-index="${e}"]`)?.focus())},[]),l=y.useCallback(t=>{let r=-1;if("ArrowDown"===t.key)r=L(e,n,1);else if("ArrowUp"===t.key)r=L(e,n,-1);else if("Home"===t.key)r=L(e,-1,1);else if("End"===t.key)r=L(e,0,-1);else if(1===t.key.length&&!t.altKey&&!t.ctrlKey&&!t.metaKey){const a=Date.now(),i=o.current,l=`${a-i.at>600?"":i.value}${t.key}`.toLocaleLowerCase();o.current={value:l,at:a};for(let t=1;e.length>=t;t+=1){const a=(Math.max(n,-1)+t)%e.length,o=e[a],i=[$(o.label),...o.keywords??[]];if(!o.disabled&&i.some(e=>e.toLocaleLowerCase().startsWith(l))){r=a;break}}}0>r||(t.preventDefault(),i(r))},[n,i,e]);return{activeIndex:n,focusIndex:i,listRef:a,onKeyDown:l}}function E({option:e}){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("span",{children:e.label}),null!=e.count?(0,g.jsx)("span",{"aria-label":e.count+" results",children:e.count}):null,e.description?(0,g.jsx)("span",{style:{display:"block",fontSize:"0.82em",opacity:.78},children:e.description}):null]})}function R({value:e,definition:t,setValue:n,close:r}){const a=t,[o,i]=y.useState(""),l=y.useMemo(()=>z(a.options,o),[o,a.options]),s=Math.max(0,l.findIndex(t=>M(t.value,e))),u=N(l,s);return(0,g.jsxs)(g.Fragment,{children:[a.searchable?(0,g.jsx)("input",{"data-sentence-filter-autofocus":!0,type:"search","aria-label":"Search "+a.label,value:o,onChange:e=>i(e.currentTarget.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),u.focusIndex(L(l,-1,1)))},style:k}):null,(0,g.jsxs)("span",{ref:u.listRef,role:"listbox","aria-label":a.label,style:{display:"flex",flexDirection:"column",gap:2},children:[l.map((t,o)=>(0,g.jsx)("button",{"data-sentence-filter-option-index":o,"data-sentence-filter-autofocus":a.searchable||o!==u.activeIndex?void 0:"",type:"button",role:"option","aria-selected":M(t.value,e),tabIndex:o===u.activeIndex?0:-1,disabled:t.disabled,onKeyDown:u.onKeyDown,onClick:e=>{n(t.value,D(e)),r()},style:{...C,backgroundColor:M(t.value,e)?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent",opacity:t.disabled?.5:1},children:(0,g.jsx)(E,{option:t})},`${t.value+""}-${o}`)),0===l.length?(0,g.jsx)("span",{role:"status",children:"No options found."}):null]})]})}function V({value:e,definition:t,setValue:n}){const r=t,[a,o]=y.useState(""),i=y.useMemo(()=>z(r.options,a),[r.options,a]),l=Array.isArray(e)?e:[],s=N(i);return(0,g.jsxs)(g.Fragment,{children:[r.searchable?(0,g.jsx)("input",{"data-sentence-filter-autofocus":!0,type:"search","aria-label":"Search "+r.label,value:a,onChange:e=>o(e.currentTarget.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),s.focusIndex(L(i,-1,1)))},style:k}):null,(0,g.jsxs)("span",{ref:s.listRef,role:"group","aria-label":r.label,style:{display:"flex",flexDirection:"column",gap:2},children:[i.map((e,t)=>{const a=l.some(t=>M(t,e.value));return(0,g.jsxs)("label",{style:{...C,justifyContent:"flex-start",opacity:e.disabled?.5:1},children:[(0,g.jsx)("input",{"data-sentence-filter-option-index":t,"data-sentence-filter-autofocus":r.searchable||t!==s.activeIndex?void 0:"",type:"checkbox",checked:a,disabled:e.disabled,tabIndex:t===s.activeIndex?0:-1,onKeyDown:s.onKeyDown,onChange:t=>{const r=t.currentTarget.checked?[...l,e.value]:l.filter(t=>!M(t,e.value));n(r,"input")}}),(0,g.jsx)("span",{style:{flex:1},children:(0,g.jsx)(E,{option:e})})]},`${e.value+""}-${t}`)}),0===i.length?(0,g.jsx)("span",{role:"status",children:"No options found."}):null]})]})}function P({value:e,definition:t,setValue:n}){const r=t,a=r.inputMode??"input",o={min:r.min,max:r.max,step:r.step??1,value:"number"==typeof e?e:r.min??0,onChange:e=>{const t=e.currentTarget.valueAsNumber;Number.isFinite(t)&&n(t,"input")}};return(0,g.jsxs)(g.Fragment,{children:["slider"!==a?(0,g.jsx)("input",{...o,"data-sentence-filter-autofocus":!0,type:"number","aria-label":r.label,style:k}):null,"input"!==a?(0,g.jsx)("input",{...o,"data-sentence-filter-autofocus":"slider"===a?"":void 0,type:"range","aria-label":r.label,style:{width:"100%"}}):null]})}function F({value:e,definition:t,setValue:n}){const r=t,a=Array.isArray(e)&&e.length>=2?[Number(e[0]),Number(e[1])]:[r.min,r.max],o=(e,t)=>{if(!Number.isFinite(t))return;const o=Math.min(r.max,Math.max(r.min,t));n(0===e?[Math.min(o,a[1]),a[1]]:[a[0],Math.max(o,a[0])],"input")},i={min:r.min,max:r.max,step:r.step??1};return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("span",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:[(0,g.jsxs)("label",{children:[(0,g.jsx)("span",{children:"Minimum"}),(0,g.jsx)("input",{...i,"data-sentence-filter-autofocus":!0,type:"number",value:a[0],onChange:e=>o(0,e.currentTarget.valueAsNumber),style:k})]}),(0,g.jsxs)("label",{children:[(0,g.jsx)("span",{children:"Maximum"}),(0,g.jsx)("input",{...i,type:"number",value:a[1],onChange:e=>o(1,e.currentTarget.valueAsNumber),style:k})]})]}),(0,g.jsxs)("label",{children:[(0,g.jsxs)("span",{style:v,children:["Minimum ",r.label]}),(0,g.jsx)("input",{...i,type:"range",value:a[0],onChange:e=>o(0,e.currentTarget.valueAsNumber),style:{width:"100%"}})]}),(0,g.jsxs)("label",{children:[(0,g.jsxs)("span",{style:v,children:["Maximum ",r.label]}),(0,g.jsx)("input",{...i,type:"range",value:a[1],onChange:e=>o(1,e.currentTarget.valueAsNumber),style:{width:"100%"}})]})]})}function O({value:e,definition:t,setValue:n,close:r}){const a=t,o=[{value:!0,label:a.trueLabel??"On"},{value:!1,label:a.falseLabel??"Off"}],i=N(o.map(e=>({...e})),!1===e?1:0);return(0,g.jsx)("span",{ref:i.listRef,role:"listbox","aria-label":a.label,style:{display:"flex",gap:4},children:o.map((t,a)=>(0,g.jsx)("button",{"data-sentence-filter-option-index":a,"data-sentence-filter-autofocus":a===i.activeIndex?"":void 0,type:"button",role:"option","aria-selected":e===t.value,tabIndex:a===i.activeIndex?0:-1,onKeyDown:i.onKeyDown,onClick:e=>{n(t.value,D(e)),r()},style:{...C,justifyContent:"center",backgroundColor:e===t.value?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent"},children:t.label},t.value+""))})}function W({value:e,definition:t,setValue:n,close:r}){const a=t,o="string"==typeof e?e:"",[i,l]=y.useState(""),s=y.useMemo(()=>z(a.suggestions??[],i),[i,a.suggestions]),u=N(s);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("input",{"data-sentence-filter-autofocus":!0,type:"text","aria-label":a.label,placeholder:a.placeholder,value:o,onChange:e=>{l(e.currentTarget.value),n(e.currentTarget.value,"input")},onKeyDown:e=>{"ArrowDown"===e.key&&s.length>0&&(e.preventDefault(),u.focusIndex(L(s,-1,1)))},style:k}),s.length>0?(0,g.jsx)("span",{ref:u.listRef,role:"listbox","aria-label":a.label+" suggestions",style:{display:"flex",flexDirection:"column",gap:2},children:s.map((e,t)=>(0,g.jsx)("button",{"data-sentence-filter-option-index":t,type:"button",role:"option","aria-selected":e.value===o,disabled:e.disabled,tabIndex:t===u.activeIndex?0:-1,onKeyDown:u.onKeyDown,onClick:t=>{n(e.value,D(t)),r()},style:{...C,opacity:e.disabled?.5:1},children:(0,g.jsx)(E,{option:e})},`${e.value}-${t}`))}):null]})}function H(e){switch(e.definition.type){case"select":return(0,g.jsx)(R,{...e});case"multiselect":return(0,g.jsx)(V,{...e});case"number":return(0,g.jsx)(P,{...e});case"range":return(0,g.jsx)(F,{...e});case"toggle":return(0,g.jsx)(O,{...e});case"text":return(0,g.jsx)(W,{...e})}}function K({sentence:e,filters:t,defaultFilters:n,definitions:r,onChange:a,as:o="div",className:i,style:l,size:s="inherit",align:u="start",wrap:c=!0,disabled:d=!1,readOnly:p=!1,ariaLabel:f,id:m,renderControl:h,onOpenChange:b}){const[k,$]=y.useState(()=>({...n??{}})),M=t??k,S=y.useRef(M);S.current=M;const D=void 0!==t,z=y.useMemo(()=>function(e){const t=[];let n="";const r=()=>{if(!n)return;const e=t[t.length-1];"text"===e?.type?e.value+=n:t.push({type:"text",value:n}),n=""};for(let a=0;e.length>a;)if(e.startsWith("{{",a))n+="{",a+=2;else if(e.startsWith("}}",a))n+="}",a+=2;else{if("{"===e[a]){const n=e.indexOf("}",a+1);if(-1!==n){const o=e.slice(a+1,n);if(o.length>0&&!o.includes("{")){r(),t.push({type:"filter",key:o}),a=n+1;continue}}}n+=e[a],a+=1}return r(),t}(e),[e]),[L,N]=y.useState(null),[E,R]=y.useState(j),V=y.useRef(L);V.current=L;const P=y.useRef(null),F=y.useRef(null),O=y.useRef(new Set),[W,K]=y.useState(""),[Z,_]=y.useState(null),[q,B]=y.useState(null),U=y.useId().replace(/:/g,""),X=m??"sentence-filter-"+U;y.useEffect(()=>{if("undefined"==typeof process||"production"!==process.env?.NODE_ENV)for(const e of z){if("filter"!==e.type)continue;let t=null;r[e.key]?e.key in M||(t=`SentenceFilter: placeholder "{${e.key}}" has no matching filter value.`):t=`SentenceFilter: placeholder "{${e.key}}" has no matching definition.`,t&&!O.current.has(t)&&(O.current.add(t),console.warn(t))}},[r,M,z]);const G=y.useCallback(()=>{V.current&&(V.current=null,N(null),R(j),b?.(null),F.current?.focus())},[b]);y.useEffect(()=>{if(!L)return;const e=e=>{P.current?.contains(e.target)||G()},t=e=>{"Escape"===e.key&&(e.preventDefault(),G())};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("click",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("click",e),document.removeEventListener("keydown",t)}},[G,L]),x(()=>{if(!L||"undefined"==typeof window)return;const e=P.current?.querySelector(`[data-sentence-filter-popover="${L.occurrence}"]`);if(!e)return;const t=()=>{const t=16,n=e.getBoundingClientRect();if(0>=n.width)return;const r=F.current?.getBoundingClientRect(),a=window.visualViewport,o=a?.offsetLeft??0,i=a?.offsetTop??0,l=a?.width??window.innerWidth,s=o+l,u=i+(a?.height??window.innerHeight),c=window.getComputedStyle(e),d=Number.parseFloat(c.getPropertyValue("--sentence-filter-popover-viewport-inset-top")),p=Number.parseFloat(c.getPropertyValue("--sentence-filter-popover-viewport-inset-bottom"));let f=i+(Number.isFinite(d)?Math.max(0,d):0),m=u-(Number.isFinite(p)?Math.max(0,p):0),h=F.current?.parentElement??null;for(;h;){const e=window.getComputedStyle(h);if("sticky"===e.position){const t=h.getBoundingClientRect(),n=Number.parseFloat(e.top),r=Number.parseFloat(e.bottom);Number.isFinite(n)&&1>=Math.abs(t.top-(i+n))&&(f=Math.max(f,t.bottom)),Number.isFinite(r)&&1>=Math.abs(t.bottom-(u-r))&&(m=Math.min(m,t.top))}h=h.parentElement}const b=n.left-E.offsetX,y=n.right-E.offsetX;let g=0;y>s-t&&(g-=y-(s-t)),o+t>b+g&&(g+=o+t-(b+g));const x=r?m-r.bottom-8-t:m-f-32,v=r?r.top-f-8-t:0,w=Math.min(Math.max(n.height,e.scrollHeight),160)>x&&v>x?"above":"below",j=Math.max(0,Math.min(384,Math.floor("above"===w?v:x))),k=Math.max(0,Math.floor(l-32));R(e=>e.offsetX===g&&e.placement===w&&e.maxHeight===j&&e.maxWidth===k?e:{offsetX:g,placement:w,maxHeight:j,maxWidth:k})};return t(),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0),window.visualViewport?.addEventListener("resize",t),window.visualViewport?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0),window.visualViewport?.removeEventListener("resize",t),window.visualViewport?.removeEventListener("scroll",t)}},[L,E]),y.useEffect(()=>{if(!L)return;const e=P.current?.querySelector(`[data-sentence-filter-popover="${L.occurrence}"]`),t=e?.querySelector("[data-sentence-filter-autofocus]")??e;t?.focus()},[L]),y.useEffect(()=>{L&&(d||p||r[L.key]?.disabled)&&G()},[G,r,d,L,p]);const Y=y.useCallback((e,t,n)=>{const o=S.current,i=o[e]??null,l={...o,[e]:t};D||(S.current=l,$(l));const s={key:e,previousValue:i,value:t,source:n};a?.(l,s);const u=r[e];if(u){const e=T(u,i,o),n=T(u,t,l);K(`${u.label} changed from ${e} to ${n}.`)}},[D,r,a]),J=y.useMemo(()=>z.map(e=>{if("text"===e.type)return e.value;const t=r[e.key];return t?T(t,M[e.key],M):`{${e.key}}`}).join(""),[r,M,z]),Q={position:"relative",margin:0,color:"var(--sentence-filter-text-color, inherit)",fontFamily:"inherit",fontSize:"small"===s?"0.875rem":"medium"===s?"1rem":"large"===s?"1.5rem":"inherit",lineHeight:"inherit",textAlign:"start"===u?"start":"end"===u?"end":"center",whiteSpace:c?"normal":"nowrap",...l},ee=["semiotic-sentence-filter",i].filter(Boolean).join(" ");let te=0;return(0,g.jsxs)(o,{ref:e=>{P.current=e},id:X,className:ee,style:Q,role:"div"===o||"span"===o?"group":void 0,"aria-label":f??J,"data-semiotic-control":"sentence-filter","data-sentence-filter-state":D?"controlled":"uncontrolled",children:[z.map((e,t)=>{if("text"===e.type)return(0,g.jsx)("span",{"aria-hidden":"true",children:e.value},t);const n=r[e.key];if(!n)return(0,g.jsx)("span",{"aria-hidden":"true",children:`{${e.key}}`},t);const a=te;te+=1;const o=M[e.key]??null,i=function(e,t,n){return A(t)?e.emptyLabel??"Any":e.formatValue?e.formatValue(t,n):I(e,t)}(n,o,M),l=T(n,o,M),s=L?.key===e.key&&L.occurrence===a,u=d||p||!!n.disabled,c=e.key.replace(/[^a-zA-Z0-9_-]/g,"-"),f=`${X}-${c}-${a}-popover`;return(0,g.jsxs)("span",{className:"semiotic-sentence-filter__value",style:{position:"relative",display:"inline"},children:[(0,g.jsx)("button",{type:"button","aria-haspopup":"dialog","aria-expanded":s,"aria-controls":f,"aria-label":`${n.label}: ${l}. Activate to change.`,disabled:u,"data-sentence-filter-key":e.key,"data-sentence-filter-type":n.type,"data-sentence-filter-open":s||void 0,onMouseEnter:()=>_(a),onMouseLeave:()=>_(e=>e===a?null:e),onFocus:()=>B(a),onBlur:()=>B(e=>e===a?null:e),onClick:t=>{if(u)return;if(s)return void G();F.current=t.currentTarget;const r={key:e.key,occurrence:a};V.current=r,R(j),N(r),K(n.label+" control opened."),b?.(e.key)},style:{appearance:"none",display:"inline",minWidth:24,padding:"0.35em 0.12em",margin:"-0.35em 0",color:n.accent??"var(--sentence-filter-accent, var(--semiotic-primary, #4e79a7))",backgroundColor:Z===a||s?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent",border:0,borderBottom:"var(--sentence-filter-underline-thickness, 0.09em) solid currentColor",borderRadius:2,outline:q===a?"2px solid var(--sentence-filter-focus-color, currentColor)":"2px solid transparent",outlineOffset:2,font:"inherit",fontWeight:600,lineHeight:"inherit",textAlign:"inherit",cursor:u?"default":"pointer",opacity:u?.6:1},children:i}),s?(0,g.jsxs)("span",{id:f,role:"dialog","aria-label":n.label,"aria-describedby":n.description?f+"-description":void 0,tabIndex:-1,"data-sentence-filter-popover":a,"data-sentence-filter-key":e.key,style:{...w,top:"below"===E.placement?"calc(100% + 0.5rem)":"auto",bottom:"above"===E.placement?"calc(100% + 0.5rem)":"auto",left:E.offsetX,maxHeight:E.maxHeight??w.maxHeight,maxWidth:E.maxWidth??w.maxWidth},children:[(0,g.jsx)("span",{style:{fontWeight:650},children:n.label}),n.description?(0,g.jsx)("span",{id:f+"-description",style:{fontSize:"0.88em",opacity:.78},children:n.description}):null,h?h({key:e.key,value:o,filters:M,definition:n,setValue:(t,n="programmatic")=>Y(e.key,t,n),close:G}):(0,g.jsx)(H,{value:o,definition:n,setValue:(t,n)=>Y(e.key,t,n),close:G}),n.allowClear&&!A(o)?(0,g.jsxs)("button",{type:"button",onClick:()=>{Y(e.key,"multiselect"===n.type?[]:null,"clear"),G()},style:{...C,justifyContent:"center",border:"1px solid var(--semiotic-border, #cbd5e1)"},children:["Clear ",n.label]}):null]}):null]},`${e.key}-${a}`)}),(0,g.jsx)("span",{role:"status","aria-live":"polite","aria-atomic":"true","data-sentence-filter-live-region":!0,style:v,children:W})]})}function Z(e,t,n,r,a){return{id:e,...t?{controlId:t}:{},status:n,message:r,...a?{remediation:a}:{}}}function _({controls:e=[],minimumTargetSize:t=24}){const n=[],r=new Set;for(const a of e){const e=a?.id,o="controls."+(e||"unknown"),i=a?.domain,l=Array.isArray(i)&&2===i.length&&Number.isFinite(i[0])&&Number.isFinite(i[1])&&i[1]>i[0],s=p.includes(a?.type),u="string"==typeof a?.target&&a.target.trim().length>0,c=["slider","buttons","native-range"].includes(a?.keyboard??""),d=a?.minimumTargetSize;n.push(Z(o+".semantic-type",e,s?"pass":"fail",s?`Control uses the semantic type "${a.type}".`:"Control has no recognized semantic type.","Use one of VISUALIZATION_CONTROL_TYPES.")),n.push(Z(o+".state-binding",e,u?"pass":"fail",u?`Control is bound to "${a.target}".`:"Control has no declarative state binding.","Declare the controlled state key with target.")),n.push(Z(o+".domain",e,l?"pass":"fail",l?"Control has a finite ordered value domain.":"Control has no finite ordered value domain.","Declare domain as [minimum, maximum].")),n.push(Z(o+".keyboard",e,c?"pass":"fail",c?`Control declares a ${a.keyboard} keyboard path.`:"Control does not declare a keyboard path.","Declare slider, buttons, or native-range keyboard interaction.")),n.push(Z(o+".value-text",e,"string"==typeof a?.valueText&&a.valueText.trim().length>0?"pass":"fail","string"==typeof a?.valueText&&a.valueText.trim().length>0?"Control declares human-readable value text.":"Control does not declare human-readable value text.","Provide valueText, typically with a {value} placeholder.")),n.push(Z(o+".target-size",e,"number"!=typeof d||t>d?"fail":"pass","number"!=typeof d||t>d?`Control target is below the ${t}px minimum or undeclared.`:`Control declares a ${d}px target.`,`Declare minimumTargetSize of at least ${t}.`)),null!=a?.step&&n.push(Z(o+".step",e,Number.isFinite(a.step)&&a.step>0?"pass":"fail",Number.isFinite(a.step)&&a.step>0?"Control has a positive quantization step.":"Control step must be a positive finite number.","Use a positive finite step.")),a?.observations?.length&&n.push(Z(o+".observations",e,a.observations.includes("control-change")?"pass":"warn",a.observations.includes("control-change")?"Control declares control-change observation coverage.":"Control declares observations but omits control-change.","Include control-change so observable state changes are represented.")),e&&!r.has(e)||n.push(Z(o+".identity",e,"fail",e?"Control id is duplicated.":"Control id is missing.","Use a unique stable control id.")),e&&r.add(e)}return{ok:n.every(e=>"fail"!==e.status),findings:n}}var q=require("react"),B=2*Math.PI;function U(e,t,n){const r=n?.center?.x??0,a=n?.center?.y??0;return{x:r+Math.sin(e)*t,y:a-Math.cos(e)*t}}function X(e,t,n,r,a){const o=a?.center,i=(e,t)=>{const{x:n,y:r}=U(e,t,{center:o});return`${G(n)},${G(r)}`},l=Math.max(0,n),s=Math.max(l,r),u=Math.abs(t-e),c=e>t?0:1;if(u>=B-1e-6){const e=o?.x??0,t=o?.y??0,n=`${G(e)},${G(t-s)}`,r=`${G(e)},${G(t+s)}`;let a=`M${n} A${G(s)},${G(s)} 0 1 1 ${r} A${G(s)},${G(s)} 0 1 1 ${n} Z`;if(l>0){const n=`${G(e)},${G(t-l)}`,r=`${G(e)},${G(t+l)}`;a+=` M${n} A${G(l)},${G(l)} 0 1 0 ${r} A${G(l)},${G(l)} 0 1 0 ${n} Z`}return a}const d=u>Math.PI?1:0,p=i(e,s),f=i(t,s);if(0>=l){const e=o?.x??0,t=o?.y??0;return`M${G(e)},${G(t)} L${p} A${G(s)},${G(s)} 0 ${d} ${c} ${f} Z`}const m=i(t,l),h=i(e,l);return`M${p} A${G(s)},${G(s)} 0 ${d} ${c} ${f} L${m} A${G(l)},${G(l)} 0 ${d} ${1===c?0:1} ${h} Z`}function G(e){return Math.round(1e3*e)/1e3}function Y(e,t,n=0){return t>0?((e-n)%t+t)%t+n:e}var J=require("react/jsx-runtime");function Q({value:e,onChange:t,period:n=365,radius:r=180,innerRadius:a=14,width:o,height:i,step:l=1,largeStep:s=7,label:u="Range",formatValue:c,arcFill:d="var(--semiotic-primary, #4e79a7)",stroke:p="var(--semiotic-bg, #ffffff)",className:f,style:m}){const h=o??2*r+40,b=i??2*r+40,y=h/2,g=b/2,x=function(e){const[t,n]=e,r=n-t||1,a=B;return e=>0+(e-t)/r*(a-0)}([0,n]),v=(0,q.useRef)(null),w=e=>{const t=e.currentTarget.ownerSVGElement??e.currentTarget,r=t.getBoundingClientRect(),a=t.viewBox?.baseVal;return Math.round((Math.atan2((a?.width||h)/(r.width||1)*(e.clientX-r.left)-y-0,-((a?.height||b)/(r.height||1)*(e.clientY-r.top)-g-0))+B)%B/B*n)%n},j=(e,t)=>{e.preventDefault(),e.stopPropagation();const n=e.currentTarget.ownerSVGElement;n?.setPointerCapture?.(e.pointerId),v.current={mode:t,lastValue:w(e)}},k=e=>{const t=e.currentTarget.ownerSVGElement??e.currentTarget;t?.hasPointerCapture?.(e.pointerId)&&t.releasePointerCapture(e.pointerId),v.current=null},C=(e,r)=>{t("range"===e?e=>({start:Y(e.start+r,n),end:Y(e.end+r,n)}):t=>({...t,[e]:Y(t[e]+r,n)}))},$=e=>t=>{const n=t.shiftKey?s:l;"ArrowRight"===t.key||"ArrowUp"===t.key?(t.preventDefault(),C(e,n)):"ArrowLeft"!==t.key&&"ArrowDown"!==t.key||(t.preventDefault(),C(e,-n))},M=e.start>e.end?[[e.start,n],[0,e.end]]:[[e.start,e.end]],S=e=>c?c(e):e+"";return(0,J.jsx)("svg",{viewBox:`0 0 ${h} ${b}`,width:h,height:b,className:f,onPointerMove:e=>{const r=v.current;if(!r)return;const a=w(e);if("range"===r.mode){const e=function(e,t,n){if(0>=n)return t-e;let r=(t-e)%n;return r>n/2?r-=n:-n/2>r&&(r+=n),r}(r.lastValue,a,n);if(0===e)return;return r.lastValue=a,void t(t=>({start:Y(t.start+e,n),end:Y(t.end+e,n)}))}t(e=>({...e,[r.mode]:a}))},onPointerUp:k,onPointerCancel:k,onLostPointerCapture:k,style:{touchAction:"none",...m},"aria-label":u+" brush",children:(0,J.jsxs)("g",{transform:`translate(${y},${g})`,children:[(0,J.jsx)("g",{role:"slider",tabIndex:0,"aria-label":u+" (move both ends)","aria-valuemin":0,"aria-valuemax":n-1,"aria-valuenow":e.start,"aria-valuetext":`${S(e.start)} to ${S(e.end)}`,onPointerDown:e=>j(e,"range"),onKeyDown:$("range"),style:{cursor:"grab"},children:M.map(([e,t],n)=>(0,J.jsx)("path",{d:X(x(e),x(t),a,r),fill:d,fillOpacity:.35,stroke:p,strokeWidth:1},n))}),["start","end"].map(t=>{const o=e[t],i=(e=>U(x(e),a))(o),l=(e=>U(x(e),r+8))(o);return(0,J.jsxs)("g",{role:"slider",tabIndex:0,"aria-label":`${u} ${t}`,"aria-valuemin":0,"aria-valuemax":n-1,"aria-valuenow":o,"aria-valuetext":S(o),onPointerDown:e=>j(e,t),onKeyDown:$(t),style:{cursor:"grab"},children:[(0,J.jsx)("line",{x1:i.x,y1:i.y,x2:l.x,y2:l.y,stroke:"transparent",strokeWidth:20}),(0,J.jsx)("line",{x1:i.x,y1:i.y,x2:l.x,y2:l.y,stroke:p,strokeWidth:1.5}),(0,J.jsx)("circle",{cx:l.x,cy:l.y,r:4.5,fill:p,stroke:d,strokeWidth:1})]},t)})]})})}var ee=s(require("react")),te=require("react/jsx-runtime");function ne(e,t,n=0){const r=Math.min(t[0],t[1]),a=Math.max(t[0],t[1]),o=Math.max(r,Math.min(a,e[0])),i=Math.max(r,Math.min(a,e[1])),l=o>i?[i,o]:[o,i];if(l[1]-l[0]>=n)return l;const s=(l[0]+l[1])/2,u=n/2;return[Math.max(r,Math.min(a-n,s-u)),Math.min(a,Math.max(r+n,s+u))]}function re(e,t,n,r=1,a=r){const o="in"===n?r:-r;return ne([e[0]+o,e[1]-o],t,a)}function ae(e){const{domain:t,initialValue:n=t,step:r=1,minSpan:a=r,label:o,formatValue:i,onChange:l}=e,[s,u]=ee.useState(()=>ne(n,t,a)),c=ne(s,t,a),d=ee.useCallback(e=>{const n=ne(e,t,a);u(n),l?.(n)},[t,a,l]),p=ee.useMemo(()=>({label:o,domain:t,value:c,step:r,formatValue:i,onChange:d,onClear:()=>d(t)}),[t,i,o,d,r,c]),f=ee.useMemo(()=>({onZoomIn:()=>d(re(c,t,"in",r,a)),onZoomOut:()=>d(re(c,t,"out",r,a)),onReset:()=>d(t)}),[t,a,d,r,c]);return{value:c,setValue:d,xExtent:c,brush:p,zoom:f}}var oe={display:"grid",gap:8,padding:"10px 12px",border:"1px solid var(--semiotic-border, #d8dee4)",borderRadius:12,background:"var(--semiotic-surface, var(--semiotic-bg, rgba(255,255,255,0.92)))"},ie={fontSize:11,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",color:"var(--semiotic-text-secondary, #57606a)"};function le(e,t){return{minWidth:e,minHeight:e,padding:"0 12px",borderRadius:999,border:"1px solid var(--semiotic-border, #d8dee4)",background:t?"var(--semiotic-primary, #0969da)":"var(--semiotic-bg, #fff)",color:t?"var(--semiotic-on-primary, #fff)":"var(--semiotic-text, #24292f)",fontSize:13,fontWeight:650,touchAction:"manipulation"}}function se(e){return"function"==typeof e}function ue({brush:e,targetSize:t}){const n=e?.value,r=e?.domain,a=!!n&&!!r,o=!0===e?.disabled,i=e?.formatValue??(e=>e),l=!!e?.onChange&&a&&!o,s=r?.[0]??0,u=r?.[1]??1,c=n?.[0]??s,d=n?.[1]??u,p=e?.step??((u-s)/100||1);return(0,te.jsxs)("section",{style:oe,"aria-label":"Brush controls",children:[(0,te.jsx)("div",{style:ie,children:e?.label??"Filter range"}),a?(0,te.jsxs)("div",{style:{display:"grid",gap:8},children:[(0,te.jsxs)("label",{style:{display:"grid",gap:4,fontSize:12},children:[(0,te.jsxs)("span",{children:["Start: ",i(c)]}),(0,te.jsx)("input",{type:"range",min:s,max:u,step:p,value:c,disabled:!l,style:{minHeight:t},onChange:t=>{const n=Number(t.currentTarget.value);e?.onChange?.([Math.min(n,d),d])}})]}),(0,te.jsxs)("label",{style:{display:"grid",gap:4,fontSize:12},children:[(0,te.jsxs)("span",{children:["End: ",i(d)]}),(0,te.jsx)("input",{type:"range",min:s,max:u,step:p,value:d,disabled:!l,style:{minHeight:t},onChange:t=>{const n=Number(t.currentTarget.value);e?.onChange?.([c,Math.max(n,c)])}})]})]}):(0,te.jsx)("div",{style:{fontSize:12,color:"var(--semiotic-text-secondary, #57606a)"},children:"Provide a brush domain and value to expose range inputs beside the drag gesture."}),(0,te.jsx)("button",{type:"button",disabled:o||!se(e?.onClear),onClick:e?.onClear,style:le(t),children:"Clear range"})]})}function ce({zoom:e,targetSize:t}){const n=!0===e?.disabled;return(0,te.jsxs)("section",{style:oe,"aria-label":"Zoom controls",children:[(0,te.jsx)("div",{style:ie,children:e?.label??"Zoom"}),(0,te.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,te.jsx)("button",{type:"button","aria-label":"Zoom out",disabled:n||!se(e?.onZoomOut),onClick:e?.onZoomOut,style:le(t),children:"-"}),(0,te.jsx)("button",{type:"button","aria-label":"Reset zoom",disabled:n||!se(e?.onReset),onClick:e?.onReset,style:le(t),children:"Reset"}),(0,te.jsx)("button",{type:"button","aria-label":"Zoom in",disabled:n||!se(e?.onZoomIn),onClick:e?.onZoomIn,style:le(t),children:"+"})]})]})}function de({legend:e,targetSize:t}){const n=!0===e?.disabled,r=e?.items??[];return(0,te.jsxs)("section",{style:oe,"aria-label":"Legend controls",children:[(0,te.jsx)("div",{style:ie,children:e?.label??"Series"}),r.length>0&&(0,te.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:r.map(r=>{const a=!1!==r.active;return(0,te.jsxs)("button",{type:"button",disabled:n||r.disabled||!e?.onToggle,onClick:()=>e?.onToggle?.(r.id,!a),style:le(t,a),"aria-pressed":a,children:[r.color&&(0,te.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:9,height:9,marginRight:6,borderRadius:999,background:r.color}}),r.label??r.id]},r.id)})}),(0,te.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,te.jsx)("button",{type:"button",disabled:n||!se(e?.onShowAll),onClick:e?.onShowAll,style:le(t),children:"Show all"}),(0,te.jsx)("button",{type:"button",disabled:n||!se(e?.onHideAll),onClick:e?.onHideAll,style:le(t),children:"Hide all"})]})]})}function pe({controls:e,targetSize:t=44,compact:n=!1,className:r,style:a,ariaLabel:o="Mobile chart controls",brush:i,zoom:l,legend:s}){const u=function(e,t){if(!1===e)return[];if(!0===e||"all"===e)return["brush","zoom","legend"];if(Array.isArray(e))return e;if(e)return[e];const n=[];return t.brush&&n.push("brush"),t.zoom&&n.push("zoom"),t.legend&&n.push("legend"),n}(e,{brush:i,zoom:l,legend:s});return 0===u.length?null:(0,te.jsxs)("div",{className:r,role:"group","aria-label":o,style:{display:"grid",gridTemplateColumns:n?"1fr":"repeat(auto-fit, minmax(180px, 1fr))",gap:10,...a},children:[u.includes("brush")&&(0,te.jsx)(ue,{brush:i,targetSize:t}),u.includes("zoom")&&(0,te.jsx)(ce,{zoom:l,targetSize:t}),u.includes("legend")&&(0,te.jsx)(de,{legend:s,targetSize:t})]})}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import*as e from"react";import{useRef as t}from"react";var n=["value","threshold","partition-boundary","time-window","range-boundary"];function r({controlType:e,controlId:t,chartId:n,chartType:r="VisualizationControl",onObservation:a}){return(o,i,l)=>{a?.({type:o,controlType:e,value:i,chartType:r,timestamp:Date.now(),...t?{controlId:t}:{},...n?{chartId:n}:{},...l?{source:l}:{}})}}import{jsx as a,jsxs as o}from"react/jsx-runtime";function i(e,t,n,r){return Math.min(n,Math.max(t,Number((t+Math.round((Math.min(n,Math.max(t,e))-t)/r)*r).toFixed(12))))}function l({value:n,onChange:l,pointerToValue:s,min:c,max:u,step:d=1,largeStep:p=5*d,x:f,y:m,controlType:h="value",controlId:b,label:y,valueText:g,radius:v=12,fill:x="var(--semiotic-bg, #ffffff)",stroke:w="var(--semiotic-primary, #4e79a7)",strokeWidth:k=4,labelText:C,labelDx:$=16,labelDy:M=-16,labelClassName:S,className:A,disabled:I=!1,onChangeStart:T,onChangeEnd:D,onObservation:z,chartId:L,chartType:N}){const E=t(null),V=t(n);V.current=n;const R=e.useMemo(()=>r({controlType:h,controlId:b,chartId:L,chartType:N,onObservation:z}),[L,N,b,h,z]),P=e=>{if(I)return;const t=s(e);if(null==t||!Number.isFinite(t))return;const n=i(t,c,u,d);V.current=n,l(n),R("control-change",n,"pointer")},W=e=>{e.stopPropagation(),E.current===e.pointerId&&(e.currentTarget.hasPointerCapture?.(e.pointerId)&&e.currentTarget.releasePointerCapture?.(e.pointerId),E.current=null,D?.(V.current),R("control-end",V.current,"pointer"))},F=["semiotic-direct-manipulation-control",A].filter(Boolean).join(" ");return o("g",{className:F,role:"slider",tabIndex:I?-1:0,"aria-disabled":I||void 0,"aria-label":y,"aria-valuemin":c,"aria-valuemax":u,"aria-valuenow":n,"aria-valuetext":g??`${y}: ${n}`,"aria-roledescription":"visualization control","data-viz-control":h,"data-viz-control-id":b,"data-viz-control-state":"controlled",pointerEvents:"all",onPointerDown:e=>{I||(e.preventDefault(),e.stopPropagation(),e.currentTarget.setPointerCapture?.(e.pointerId),E.current=e.pointerId,T?.(V.current),R("control-start",V.current,"pointer"),P(e))},onPointerMove:e=>{e.stopPropagation(),E.current===e.pointerId&&P(e)},onPointerUp:W,onPointerCancel:W,onLostPointerCapture:W,onKeyDown:e=>{if(I)return;const t=e.shiftKey?p:d,n=V.current;let r=null;if("ArrowLeft"!==e.key&&"ArrowDown"!==e.key||(r=n-t),"ArrowRight"!==e.key&&"ArrowUp"!==e.key||(r=n+t),"Home"===e.key&&(r=c),"End"===e.key&&(r=u),null===r)return;e.preventDefault();const a=i(r,c,u,d);V.current=a,l(a),R("control-change",a,"keyboard")},style:{cursor:I?"default":"grab",touchAction:"none"},children:[a("circle",{className:"semiotic-direct-manipulation-control__hit",cx:f,cy:m,r:v+10,fill:"transparent"}),a("circle",{className:"semiotic-direct-manipulation-control__handle",cx:f,cy:m,r:v,fill:x,stroke:w,strokeWidth:k}),C?a("text",{className:S,x:f+$,y:m+M,fill:w,children:C}):null]})}import*as s from"react";import{Fragment as c,jsx as u,jsxs as d}from"react/jsx-runtime";var p="undefined"==typeof window?s.useEffect:s.useLayoutEffect,f={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},m={position:"absolute",zIndex:30,top:"calc(100% + 0.5rem)",left:0,boxSizing:"border-box",display:"flex",flexDirection:"column",gap:8,width:"var(--sentence-filter-popover-width, 18rem)",maxWidth:"min(22rem, calc(100vw - 2rem))",maxHeight:"min(24rem, calc(100vh - 2rem))",overflow:"auto",padding:12,color:"var(--sentence-filter-text-color, var(--semiotic-fg, #1f2933))",backgroundColor:"var(--semiotic-bg, #fff)",border:"1px solid var(--semiotic-border, #cbd5e1)",borderRadius:6,boxShadow:"0 10px 28px rgba(15, 23, 42, 0.18)",fontFamily:"inherit",fontSize:"1rem",fontWeight:400,lineHeight:1.4,textAlign:"left",whiteSpace:"normal"},h={offsetX:0,placement:"below",maxHeight:null,maxWidth:null},b={boxSizing:"border-box",width:"100%",minHeight:38,padding:"6px 8px",color:"inherit",backgroundColor:"var(--semiotic-bg, #fff)",border:"1px solid var(--semiotic-border, #94a3b8)",borderRadius:4,font:"inherit"},y={display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,width:"100%",minHeight:38,padding:"7px 8px",color:"inherit",backgroundColor:"transparent",border:0,borderRadius:4,font:"inherit",textAlign:"left",cursor:"pointer"};function g(e){return null==e||"boolean"==typeof e?"":"string"==typeof e||"number"==typeof e?e+"":Array.isArray(e)?e.map(g).join(""):s.isValidElement(e)?g(e.props.children):""}function v(e,t){return Object.is(e,t)}function x(e,t){return e.find(e=>v(e.value,t))}function w(e){return null==e||""===e||Array.isArray(e)&&0===e.length}function k(e,t){if(w(t))return e.emptyLabel??"Any";if("select"===e.type)return x(e.options,t)?.label??t+"";if("multiselect"===e.type){const n=t.map(t=>x(e.options,t)?.label??t+""),r="or"===e.conjunction?" or ":" and ";return n.map((e,t)=>d(s.Fragment,{children:[t>0?r:null,e]},t))}return"toggle"===e.type?t?e.trueLabel??"on":e.falseLabel??"off":"range"===e.type?`${t[0]} to ${t[1]}`:t+""}function C(e,t,n){return w(t)?g(e.emptyLabel??"Any"):e.getAccessibleValue?e.getAccessibleValue(t,n):g(k(e,t))||t+""}function $(e){return 0===e.detail?"keyboard":"pointer"}function M(e,t){const n=t.trim().toLocaleLowerCase();return n?e.filter(e=>[g(e.label),...e.keywords??[]].some(e=>e.toLocaleLowerCase().includes(n))):e}function S(e,t,n){if(0===e.length)return-1;for(let r=1;e.length>=r;r+=1){const a=(t+n*r+e.length)%e.length;if(!e[a].disabled)return a}return-1}function A(e,t=0){const[n,r]=s.useState(()=>e[t]&&!e[t].disabled?t:S(e,-1,1)),a=s.useRef(null),o=s.useRef({value:"",at:0});s.useEffect(()=>{(0>n||!e[n]||e[n].disabled)&&r(S(e,-1,1))},[n,e]);const i=s.useCallback(e=>{0>e||(r(e),a.current?.querySelector(`[data-sentence-filter-option-index="${e}"]`)?.focus())},[]),l=s.useCallback(t=>{let r=-1;if("ArrowDown"===t.key)r=S(e,n,1);else if("ArrowUp"===t.key)r=S(e,n,-1);else if("Home"===t.key)r=S(e,-1,1);else if("End"===t.key)r=S(e,0,-1);else if(1===t.key.length&&!t.altKey&&!t.ctrlKey&&!t.metaKey){const a=Date.now(),i=o.current,l=`${a-i.at>600?"":i.value}${t.key}`.toLocaleLowerCase();o.current={value:l,at:a};for(let t=1;e.length>=t;t+=1){const a=(Math.max(n,-1)+t)%e.length,o=e[a],i=[g(o.label),...o.keywords??[]];if(!o.disabled&&i.some(e=>e.toLocaleLowerCase().startsWith(l))){r=a;break}}}0>r||(t.preventDefault(),i(r))},[n,i,e]);return{activeIndex:n,focusIndex:i,listRef:a,onKeyDown:l}}function I({option:e}){return d(c,{children:[u("span",{children:e.label}),null!=e.count?u("span",{"aria-label":e.count+" results",children:e.count}):null,e.description?u("span",{style:{display:"block",fontSize:"0.82em",opacity:.78},children:e.description}):null]})}function T({value:e,definition:t,setValue:n,close:r}){const a=t,[o,i]=s.useState(""),l=s.useMemo(()=>M(a.options,o),[o,a.options]),p=Math.max(0,l.findIndex(t=>v(t.value,e))),f=A(l,p);return d(c,{children:[a.searchable?u("input",{"data-sentence-filter-autofocus":!0,type:"search","aria-label":"Search "+a.label,value:o,onChange:e=>i(e.currentTarget.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),f.focusIndex(S(l,-1,1)))},style:b}):null,d("span",{ref:f.listRef,role:"listbox","aria-label":a.label,style:{display:"flex",flexDirection:"column",gap:2},children:[l.map((t,o)=>u("button",{"data-sentence-filter-option-index":o,"data-sentence-filter-autofocus":a.searchable||o!==f.activeIndex?void 0:"",type:"button",role:"option","aria-selected":v(t.value,e),tabIndex:o===f.activeIndex?0:-1,disabled:t.disabled,onKeyDown:f.onKeyDown,onClick:e=>{n(t.value,$(e)),r()},style:{...y,backgroundColor:v(t.value,e)?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent",opacity:t.disabled?.5:1},children:u(I,{option:t})},`${t.value+""}-${o}`)),0===l.length?u("span",{role:"status",children:"No options found."}):null]})]})}function D({value:e,definition:t,setValue:n}){const r=t,[a,o]=s.useState(""),i=s.useMemo(()=>M(r.options,a),[r.options,a]),l=Array.isArray(e)?e:[],p=A(i);return d(c,{children:[r.searchable?u("input",{"data-sentence-filter-autofocus":!0,type:"search","aria-label":"Search "+r.label,value:a,onChange:e=>o(e.currentTarget.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),p.focusIndex(S(i,-1,1)))},style:b}):null,d("span",{ref:p.listRef,role:"group","aria-label":r.label,style:{display:"flex",flexDirection:"column",gap:2},children:[i.map((e,t)=>{const a=l.some(t=>v(t,e.value));return d("label",{style:{...y,justifyContent:"flex-start",opacity:e.disabled?.5:1},children:[u("input",{"data-sentence-filter-option-index":t,"data-sentence-filter-autofocus":r.searchable||t!==p.activeIndex?void 0:"",type:"checkbox",checked:a,disabled:e.disabled,tabIndex:t===p.activeIndex?0:-1,onKeyDown:p.onKeyDown,onChange:t=>{const r=t.currentTarget.checked?[...l,e.value]:l.filter(t=>!v(t,e.value));n(r,"input")}}),u("span",{style:{flex:1},children:u(I,{option:e})})]},`${e.value+""}-${t}`)}),0===i.length?u("span",{role:"status",children:"No options found."}):null]})]})}function z({value:e,definition:t,setValue:n}){const r=t,a=r.inputMode??"input",o={min:r.min,max:r.max,step:r.step??1,value:"number"==typeof e?e:r.min??0,onChange:e=>{const t=e.currentTarget.valueAsNumber;Number.isFinite(t)&&n(t,"input")}};return d(c,{children:["slider"!==a?u("input",{...o,"data-sentence-filter-autofocus":!0,type:"number","aria-label":r.label,style:b}):null,"input"!==a?u("input",{...o,"data-sentence-filter-autofocus":"slider"===a?"":void 0,type:"range","aria-label":r.label,style:{width:"100%"}}):null]})}function L({value:e,definition:t,setValue:n}){const r=t,a=Array.isArray(e)&&e.length>=2?[Number(e[0]),Number(e[1])]:[r.min,r.max],o=(e,t)=>{if(!Number.isFinite(t))return;const o=Math.min(r.max,Math.max(r.min,t));n(0===e?[Math.min(o,a[1]),a[1]]:[a[0],Math.max(o,a[0])],"input")},i={min:r.min,max:r.max,step:r.step??1};return d(c,{children:[d("span",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:[d("label",{children:[u("span",{children:"Minimum"}),u("input",{...i,"data-sentence-filter-autofocus":!0,type:"number",value:a[0],onChange:e=>o(0,e.currentTarget.valueAsNumber),style:b})]}),d("label",{children:[u("span",{children:"Maximum"}),u("input",{...i,type:"number",value:a[1],onChange:e=>o(1,e.currentTarget.valueAsNumber),style:b})]})]}),d("label",{children:[d("span",{style:f,children:["Minimum ",r.label]}),u("input",{...i,type:"range",value:a[0],onChange:e=>o(0,e.currentTarget.valueAsNumber),style:{width:"100%"}})]}),d("label",{children:[d("span",{style:f,children:["Maximum ",r.label]}),u("input",{...i,type:"range",value:a[1],onChange:e=>o(1,e.currentTarget.valueAsNumber),style:{width:"100%"}})]})]})}function N({value:e,definition:t,setValue:n,close:r}){const a=t,o=[{value:!0,label:a.trueLabel??"On"},{value:!1,label:a.falseLabel??"Off"}],i=A(o.map(e=>({...e})),!1===e?1:0);return u("span",{ref:i.listRef,role:"listbox","aria-label":a.label,style:{display:"flex",gap:4},children:o.map((t,a)=>u("button",{"data-sentence-filter-option-index":a,"data-sentence-filter-autofocus":a===i.activeIndex?"":void 0,type:"button",role:"option","aria-selected":e===t.value,tabIndex:a===i.activeIndex?0:-1,onKeyDown:i.onKeyDown,onClick:e=>{n(t.value,$(e)),r()},style:{...y,justifyContent:"center",backgroundColor:e===t.value?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent"},children:t.label},t.value+""))})}function E({value:e,definition:t,setValue:n,close:r}){const a=t,o="string"==typeof e?e:"",[i,l]=s.useState(""),p=s.useMemo(()=>M(a.suggestions??[],i),[i,a.suggestions]),f=A(p);return d(c,{children:[u("input",{"data-sentence-filter-autofocus":!0,type:"text","aria-label":a.label,placeholder:a.placeholder,value:o,onChange:e=>{l(e.currentTarget.value),n(e.currentTarget.value,"input")},onKeyDown:e=>{"ArrowDown"===e.key&&p.length>0&&(e.preventDefault(),f.focusIndex(S(p,-1,1)))},style:b}),p.length>0?u("span",{ref:f.listRef,role:"listbox","aria-label":a.label+" suggestions",style:{display:"flex",flexDirection:"column",gap:2},children:p.map((e,t)=>u("button",{"data-sentence-filter-option-index":t,type:"button",role:"option","aria-selected":e.value===o,disabled:e.disabled,tabIndex:t===f.activeIndex?0:-1,onKeyDown:f.onKeyDown,onClick:t=>{n(e.value,$(t)),r()},style:{...y,opacity:e.disabled?.5:1},children:u(I,{option:e})},`${e.value}-${t}`))}):null]})}function V(e){switch(e.definition.type){case"select":return u(T,{...e});case"multiselect":return u(D,{...e});case"number":return u(z,{...e});case"range":return u(L,{...e});case"toggle":return u(N,{...e});case"text":return u(E,{...e})}}function R({sentence:e,filters:t,defaultFilters:n,definitions:r,onChange:a,as:o="div",className:i,style:l,size:c="inherit",align:b="start",wrap:g=!0,disabled:v=!1,readOnly:x=!1,ariaLabel:$,id:M,renderControl:S,onOpenChange:A}){const[I,T]=s.useState(()=>({...n??{}})),D=t??I,z=s.useRef(D);z.current=D;const L=void 0!==t,N=s.useMemo(()=>function(e){const t=[];let n="";const r=()=>{if(!n)return;const e=t[t.length-1];"text"===e?.type?e.value+=n:t.push({type:"text",value:n}),n=""};for(let a=0;e.length>a;)if(e.startsWith("{{",a))n+="{",a+=2;else if(e.startsWith("}}",a))n+="}",a+=2;else{if("{"===e[a]){const n=e.indexOf("}",a+1);if(-1!==n){const o=e.slice(a+1,n);if(o.length>0&&!o.includes("{")){r(),t.push({type:"filter",key:o}),a=n+1;continue}}}n+=e[a],a+=1}return r(),t}(e),[e]),[E,R]=s.useState(null),[P,W]=s.useState(h),F=s.useRef(E);F.current=E;const H=s.useRef(null),j=s.useRef(null),K=s.useRef(new Set),[O,Z]=s.useState(""),[B,_]=s.useState(null),[U,X]=s.useState(null),q=s.useId().replace(/:/g,""),G=M??"sentence-filter-"+q;s.useEffect(()=>{if("undefined"==typeof process||"production"!==process.env?.NODE_ENV)for(const e of N){if("filter"!==e.type)continue;let t=null;r[e.key]?e.key in D||(t=`SentenceFilter: placeholder "{${e.key}}" has no matching filter value.`):t=`SentenceFilter: placeholder "{${e.key}}" has no matching definition.`,t&&!K.current.has(t)&&(K.current.add(t),console.warn(t))}},[r,D,N]);const Y=s.useCallback(()=>{F.current&&(F.current=null,R(null),W(h),A?.(null),j.current?.focus())},[A]);s.useEffect(()=>{if(!E)return;const e=e=>{H.current?.contains(e.target)||Y()},t=e=>{"Escape"===e.key&&(e.preventDefault(),Y())};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("click",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("click",e),document.removeEventListener("keydown",t)}},[Y,E]),p(()=>{if(!E||"undefined"==typeof window)return;const e=H.current?.querySelector(`[data-sentence-filter-popover="${E.occurrence}"]`);if(!e)return;const t=()=>{const t=16,n=e.getBoundingClientRect();if(0>=n.width)return;const r=j.current?.getBoundingClientRect(),a=window.visualViewport,o=a?.offsetLeft??0,i=a?.offsetTop??0,l=a?.width??window.innerWidth,s=o+l,c=i+(a?.height??window.innerHeight),u=window.getComputedStyle(e),d=Number.parseFloat(u.getPropertyValue("--sentence-filter-popover-viewport-inset-top")),p=Number.parseFloat(u.getPropertyValue("--sentence-filter-popover-viewport-inset-bottom"));let f=i+(Number.isFinite(d)?Math.max(0,d):0),m=c-(Number.isFinite(p)?Math.max(0,p):0),h=j.current?.parentElement??null;for(;h;){const e=window.getComputedStyle(h);if("sticky"===e.position){const t=h.getBoundingClientRect(),n=Number.parseFloat(e.top),r=Number.parseFloat(e.bottom);Number.isFinite(n)&&1>=Math.abs(t.top-(i+n))&&(f=Math.max(f,t.bottom)),Number.isFinite(r)&&1>=Math.abs(t.bottom-(c-r))&&(m=Math.min(m,t.top))}h=h.parentElement}const b=n.left-P.offsetX,y=n.right-P.offsetX;let g=0;y>s-t&&(g-=y-(s-t)),o+t>b+g&&(g+=o+t-(b+g));const v=r?m-r.bottom-8-t:m-f-32,x=r?r.top-f-8-t:0,w=Math.min(Math.max(n.height,e.scrollHeight),160)>v&&x>v?"above":"below",k=Math.max(0,Math.min(384,Math.floor("above"===w?x:v))),C=Math.max(0,Math.floor(l-32));W(e=>e.offsetX===g&&e.placement===w&&e.maxHeight===k&&e.maxWidth===C?e:{offsetX:g,placement:w,maxHeight:k,maxWidth:C})};return t(),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0),window.visualViewport?.addEventListener("resize",t),window.visualViewport?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0),window.visualViewport?.removeEventListener("resize",t),window.visualViewport?.removeEventListener("scroll",t)}},[E,P]),s.useEffect(()=>{if(!E)return;const e=H.current?.querySelector(`[data-sentence-filter-popover="${E.occurrence}"]`),t=e?.querySelector("[data-sentence-filter-autofocus]")??e;t?.focus()},[E]),s.useEffect(()=>{E&&(v||x||r[E.key]?.disabled)&&Y()},[Y,r,v,E,x]);const J=s.useCallback((e,t,n)=>{const o=z.current,i=o[e]??null,l={...o,[e]:t};L||(z.current=l,T(l));const s={key:e,previousValue:i,value:t,source:n};a?.(l,s);const c=r[e];if(c){const e=C(c,i,o),n=C(c,t,l);Z(`${c.label} changed from ${e} to ${n}.`)}},[L,r,a]),Q=s.useMemo(()=>N.map(e=>{if("text"===e.type)return e.value;const t=r[e.key];return t?C(t,D[e.key],D):`{${e.key}}`}).join(""),[r,D,N]),ee={position:"relative",margin:0,color:"var(--sentence-filter-text-color, inherit)",fontFamily:"inherit",fontSize:"small"===c?"0.875rem":"medium"===c?"1rem":"large"===c?"1.5rem":"inherit",lineHeight:"inherit",textAlign:"start"===b?"start":"end"===b?"end":"center",whiteSpace:g?"normal":"nowrap",...l},te=["semiotic-sentence-filter",i].filter(Boolean).join(" ");let ne=0;return d(o,{ref:e=>{H.current=e},id:G,className:te,style:ee,role:"div"===o||"span"===o?"group":void 0,"aria-label":$??Q,"data-semiotic-control":"sentence-filter","data-sentence-filter-state":L?"controlled":"uncontrolled",children:[N.map((e,t)=>{if("text"===e.type)return u("span",{"aria-hidden":"true",children:e.value},t);const n=r[e.key];if(!n)return u("span",{"aria-hidden":"true",children:`{${e.key}}`},t);const a=ne;ne+=1;const o=D[e.key]??null,i=function(e,t,n){return w(t)?e.emptyLabel??"Any":e.formatValue?e.formatValue(t,n):k(e,t)}(n,o,D),l=C(n,o,D),s=E?.key===e.key&&E.occurrence===a,c=v||x||!!n.disabled,p=e.key.replace(/[^a-zA-Z0-9_-]/g,"-"),f=`${G}-${p}-${a}-popover`;return d("span",{className:"semiotic-sentence-filter__value",style:{position:"relative",display:"inline"},children:[u("button",{type:"button","aria-haspopup":"dialog","aria-expanded":s,"aria-controls":f,"aria-label":`${n.label}: ${l}. Activate to change.`,disabled:c,"data-sentence-filter-key":e.key,"data-sentence-filter-type":n.type,"data-sentence-filter-open":s||void 0,onMouseEnter:()=>_(a),onMouseLeave:()=>_(e=>e===a?null:e),onFocus:()=>X(a),onBlur:()=>X(e=>e===a?null:e),onClick:t=>{if(c)return;if(s)return void Y();j.current=t.currentTarget;const r={key:e.key,occurrence:a};F.current=r,W(h),R(r),Z(n.label+" control opened."),A?.(e.key)},style:{appearance:"none",display:"inline",minWidth:24,padding:"0.35em 0.12em",margin:"-0.35em 0",color:n.accent??"var(--sentence-filter-accent, var(--semiotic-primary, #4e79a7))",backgroundColor:B===a||s?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent",border:0,borderBottom:"var(--sentence-filter-underline-thickness, 0.09em) solid currentColor",borderRadius:2,outline:U===a?"2px solid var(--sentence-filter-focus-color, currentColor)":"2px solid transparent",outlineOffset:2,font:"inherit",fontWeight:600,lineHeight:"inherit",textAlign:"inherit",cursor:c?"default":"pointer",opacity:c?.6:1},children:i}),s?d("span",{id:f,role:"dialog","aria-label":n.label,"aria-describedby":n.description?f+"-description":void 0,tabIndex:-1,"data-sentence-filter-popover":a,"data-sentence-filter-key":e.key,style:{...m,top:"below"===P.placement?"calc(100% + 0.5rem)":"auto",bottom:"above"===P.placement?"calc(100% + 0.5rem)":"auto",left:P.offsetX,maxHeight:P.maxHeight??m.maxHeight,maxWidth:P.maxWidth??m.maxWidth},children:[u("span",{style:{fontWeight:650},children:n.label}),n.description?u("span",{id:f+"-description",style:{fontSize:"0.88em",opacity:.78},children:n.description}):null,S?S({key:e.key,value:o,filters:D,definition:n,setValue:(t,n="programmatic")=>J(e.key,t,n),close:Y}):u(V,{value:o,definition:n,setValue:(t,n)=>J(e.key,t,n),close:Y}),n.allowClear&&!w(o)?d("button",{type:"button",onClick:()=>{J(e.key,"multiselect"===n.type?[]:null,"clear"),Y()},style:{...y,justifyContent:"center",border:"1px solid var(--semiotic-border, #cbd5e1)"},children:["Clear ",n.label]}):null]}):null]},`${e.key}-${a}`)}),u("span",{role:"status","aria-live":"polite","aria-atomic":"true","data-sentence-filter-live-region":!0,style:f,children:O})]})}function P(e,t,n,r,a){return{id:e,...t?{controlId:t}:{},status:n,message:r,...a?{remediation:a}:{}}}function W({controls:e=[],minimumTargetSize:t=24}){const r=[],a=new Set;for(const o of e){const e=o?.id,i="controls."+(e||"unknown"),l=o?.domain,s=Array.isArray(l)&&2===l.length&&Number.isFinite(l[0])&&Number.isFinite(l[1])&&l[1]>l[0],c=n.includes(o?.type),u="string"==typeof o?.target&&o.target.trim().length>0,d=["slider","buttons","native-range"].includes(o?.keyboard??""),p=o?.minimumTargetSize;r.push(P(i+".semantic-type",e,c?"pass":"fail",c?`Control uses the semantic type "${o.type}".`:"Control has no recognized semantic type.","Use one of VISUALIZATION_CONTROL_TYPES.")),r.push(P(i+".state-binding",e,u?"pass":"fail",u?`Control is bound to "${o.target}".`:"Control has no declarative state binding.","Declare the controlled state key with target.")),r.push(P(i+".domain",e,s?"pass":"fail",s?"Control has a finite ordered value domain.":"Control has no finite ordered value domain.","Declare domain as [minimum, maximum].")),r.push(P(i+".keyboard",e,d?"pass":"fail",d?`Control declares a ${o.keyboard} keyboard path.`:"Control does not declare a keyboard path.","Declare slider, buttons, or native-range keyboard interaction.")),r.push(P(i+".value-text",e,"string"==typeof o?.valueText&&o.valueText.trim().length>0?"pass":"fail","string"==typeof o?.valueText&&o.valueText.trim().length>0?"Control declares human-readable value text.":"Control does not declare human-readable value text.","Provide valueText, typically with a {value} placeholder.")),r.push(P(i+".target-size",e,"number"!=typeof p||t>p?"fail":"pass","number"!=typeof p||t>p?`Control target is below the ${t}px minimum or undeclared.`:`Control declares a ${p}px target.`,`Declare minimumTargetSize of at least ${t}.`)),null!=o?.step&&r.push(P(i+".step",e,Number.isFinite(o.step)&&o.step>0?"pass":"fail",Number.isFinite(o.step)&&o.step>0?"Control has a positive quantization step.":"Control step must be a positive finite number.","Use a positive finite step.")),o?.observations?.length&&r.push(P(i+".observations",e,o.observations.includes("control-change")?"pass":"warn",o.observations.includes("control-change")?"Control declares control-change observation coverage.":"Control declares observations but omits control-change.","Include control-change so observable state changes are represented.")),e&&!a.has(e)||r.push(P(i+".identity",e,"fail",e?"Control id is duplicated.":"Control id is missing.","Use a unique stable control id.")),e&&a.add(e)}return{ok:r.every(e=>"fail"!==e.status),findings:r}}import{useRef as F}from"react";var H=2*Math.PI;function j(e,t,n){const r=n?.center?.x??0,a=n?.center?.y??0;return{x:r+Math.sin(e)*t,y:a-Math.cos(e)*t}}function K(e,t,n,r,a){const o=a?.center,i=(e,t)=>{const{x:n,y:r}=j(e,t,{center:o});return`${O(n)},${O(r)}`},l=Math.max(0,n),s=Math.max(l,r),c=Math.abs(t-e),u=e>t?0:1;if(c>=H-1e-6){const e=o?.x??0,t=o?.y??0,n=`${O(e)},${O(t-s)}`,r=`${O(e)},${O(t+s)}`;let a=`M${n} A${O(s)},${O(s)} 0 1 1 ${r} A${O(s)},${O(s)} 0 1 1 ${n} Z`;if(l>0){const n=`${O(e)},${O(t-l)}`,r=`${O(e)},${O(t+l)}`;a+=` M${n} A${O(l)},${O(l)} 0 1 0 ${r} A${O(l)},${O(l)} 0 1 0 ${n} Z`}return a}const d=c>Math.PI?1:0,p=i(e,s),f=i(t,s);if(0>=l){const e=o?.x??0,t=o?.y??0;return`M${O(e)},${O(t)} L${p} A${O(s)},${O(s)} 0 ${d} ${u} ${f} Z`}const m=i(t,l),h=i(e,l);return`M${p} A${O(s)},${O(s)} 0 ${d} ${u} ${f} L${m} A${O(l)},${O(l)} 0 ${d} ${1===u?0:1} ${h} Z`}function O(e){return Math.round(1e3*e)/1e3}function Z(e,t,n=0){return t>0?((e-n)%t+t)%t+n:e}import{jsx as B,jsxs as _}from"react/jsx-runtime";function U({value:e,onChange:t,period:n=365,radius:r=180,innerRadius:a=14,width:o,height:i,step:l=1,largeStep:s=7,label:c="Range",formatValue:u,arcFill:d="var(--semiotic-primary, #4e79a7)",stroke:p="var(--semiotic-bg, #ffffff)",className:f,style:m}){const h=o??2*r+40,b=i??2*r+40,y=h/2,g=b/2,v=function(e){const[t,n]=e,r=n-t||1,a=H;return e=>0+(e-t)/r*(a-0)}([0,n]),x=F(null),w=e=>{const t=e.currentTarget.ownerSVGElement??e.currentTarget,r=t.getBoundingClientRect(),a=t.viewBox?.baseVal;return Math.round((Math.atan2((a?.width||h)/(r.width||1)*(e.clientX-r.left)-y-0,-((a?.height||b)/(r.height||1)*(e.clientY-r.top)-g-0))+H)%H/H*n)%n},k=(e,t)=>{e.preventDefault(),e.stopPropagation();const n=e.currentTarget.ownerSVGElement;n?.setPointerCapture?.(e.pointerId),x.current={mode:t,lastValue:w(e)}},C=e=>{const t=e.currentTarget.ownerSVGElement??e.currentTarget;t?.hasPointerCapture?.(e.pointerId)&&t.releasePointerCapture(e.pointerId),x.current=null},$=(e,r)=>{t("range"===e?e=>({start:Z(e.start+r,n),end:Z(e.end+r,n)}):t=>({...t,[e]:Z(t[e]+r,n)}))},M=e=>t=>{const n=t.shiftKey?s:l;"ArrowRight"===t.key||"ArrowUp"===t.key?(t.preventDefault(),$(e,n)):"ArrowLeft"!==t.key&&"ArrowDown"!==t.key||(t.preventDefault(),$(e,-n))},S=e.start>e.end?[[e.start,n],[0,e.end]]:[[e.start,e.end]],A=e=>u?u(e):e+"";return B("svg",{viewBox:`0 0 ${h} ${b}`,width:h,height:b,className:f,onPointerMove:e=>{const r=x.current;if(!r)return;const a=w(e);if("range"===r.mode){const e=function(e,t,n){if(0>=n)return t-e;let r=(t-e)%n;return r>n/2?r-=n:-n/2>r&&(r+=n),r}(r.lastValue,a,n);if(0===e)return;return r.lastValue=a,void t(t=>({start:Z(t.start+e,n),end:Z(t.end+e,n)}))}t(e=>({...e,[r.mode]:a}))},onPointerUp:C,onPointerCancel:C,onLostPointerCapture:C,style:{touchAction:"none",...m},"aria-label":c+" brush",children:_("g",{transform:`translate(${y},${g})`,children:[B("g",{role:"slider",tabIndex:0,"aria-label":c+" (move both ends)","aria-valuemin":0,"aria-valuemax":n-1,"aria-valuenow":e.start,"aria-valuetext":`${A(e.start)} to ${A(e.end)}`,onPointerDown:e=>k(e,"range"),onKeyDown:M("range"),style:{cursor:"grab"},children:S.map(([e,t],n)=>B("path",{d:K(v(e),v(t),a,r),fill:d,fillOpacity:.35,stroke:p,strokeWidth:1},n))}),["start","end"].map(t=>{const o=e[t],i=(e=>j(v(e),a))(o),l=(e=>j(v(e),r+8))(o);return _("g",{role:"slider",tabIndex:0,"aria-label":`${c} ${t}`,"aria-valuemin":0,"aria-valuemax":n-1,"aria-valuenow":o,"aria-valuetext":A(o),onPointerDown:e=>k(e,t),onKeyDown:M(t),style:{cursor:"grab"},children:[B("line",{x1:i.x,y1:i.y,x2:l.x,y2:l.y,stroke:"transparent",strokeWidth:20}),B("line",{x1:i.x,y1:i.y,x2:l.x,y2:l.y,stroke:p,strokeWidth:1.5}),B("circle",{cx:l.x,cy:l.y,r:4.5,fill:p,stroke:d,strokeWidth:1})]},t)})]})})}import*as X from"react";import{jsx as q,jsxs as G}from"react/jsx-runtime";function Y(e,t,n=0){const r=Math.min(t[0],t[1]),a=Math.max(t[0],t[1]),o=Math.max(r,Math.min(a,e[0])),i=Math.max(r,Math.min(a,e[1])),l=o>i?[i,o]:[o,i];if(l[1]-l[0]>=n)return l;const s=(l[0]+l[1])/2,c=n/2;return[Math.max(r,Math.min(a-n,s-c)),Math.min(a,Math.max(r+n,s+c))]}function J(e,t,n,r=1,a=r){const o="in"===n?r:-r;return Y([e[0]+o,e[1]-o],t,a)}function Q(e){const{domain:t,initialValue:n=t,step:r=1,minSpan:a=r,label:o,formatValue:i,onChange:l}=e,[s,c]=X.useState(()=>Y(n,t,a)),u=Y(s,t,a),d=X.useCallback(e=>{const n=Y(e,t,a);c(n),l?.(n)},[t,a,l]),p=X.useMemo(()=>({label:o,domain:t,value:u,step:r,formatValue:i,onChange:d,onClear:()=>d(t)}),[t,i,o,d,r,u]),f=X.useMemo(()=>({onZoomIn:()=>d(J(u,t,"in",r,a)),onZoomOut:()=>d(J(u,t,"out",r,a)),onReset:()=>d(t)}),[t,a,d,r,u]);return{value:u,setValue:d,xExtent:u,brush:p,zoom:f}}var ee={display:"grid",gap:8,padding:"10px 12px",border:"1px solid var(--semiotic-border, #d8dee4)",borderRadius:12,background:"var(--semiotic-surface, var(--semiotic-bg, rgba(255,255,255,0.92)))"},te={fontSize:11,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",color:"var(--semiotic-text-secondary, #57606a)"};function ne(e,t){return{minWidth:e,minHeight:e,padding:"0 12px",borderRadius:999,border:"1px solid var(--semiotic-border, #d8dee4)",background:t?"var(--semiotic-primary, #0969da)":"var(--semiotic-bg, #fff)",color:t?"var(--semiotic-on-primary, #fff)":"var(--semiotic-text, #24292f)",fontSize:13,fontWeight:650,touchAction:"manipulation"}}function re(e){return"function"==typeof e}function ae({brush:e,targetSize:t}){const n=e?.value,r=e?.domain,a=!!n&&!!r,o=!0===e?.disabled,i=e?.formatValue??(e=>e),l=!!e?.onChange&&a&&!o,s=r?.[0]??0,c=r?.[1]??1,u=n?.[0]??s,d=n?.[1]??c,p=e?.step??((c-s)/100||1);return G("section",{style:ee,"aria-label":"Brush controls",children:[q("div",{style:te,children:e?.label??"Filter range"}),a?G("div",{style:{display:"grid",gap:8},children:[G("label",{style:{display:"grid",gap:4,fontSize:12},children:[G("span",{children:["Start: ",i(u)]}),q("input",{type:"range",min:s,max:c,step:p,value:u,disabled:!l,style:{minHeight:t},onChange:t=>{const n=Number(t.currentTarget.value);e?.onChange?.([Math.min(n,d),d])}})]}),G("label",{style:{display:"grid",gap:4,fontSize:12},children:[G("span",{children:["End: ",i(d)]}),q("input",{type:"range",min:s,max:c,step:p,value:d,disabled:!l,style:{minHeight:t},onChange:t=>{const n=Number(t.currentTarget.value);e?.onChange?.([u,Math.max(n,u)])}})]})]}):q("div",{style:{fontSize:12,color:"var(--semiotic-text-secondary, #57606a)"},children:"Provide a brush domain and value to expose range inputs beside the drag gesture."}),q("button",{type:"button",disabled:o||!re(e?.onClear),onClick:e?.onClear,style:ne(t),children:"Clear range"})]})}function oe({zoom:e,targetSize:t}){const n=!0===e?.disabled;return G("section",{style:ee,"aria-label":"Zoom controls",children:[q("div",{style:te,children:e?.label??"Zoom"}),G("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[q("button",{type:"button","aria-label":"Zoom out",disabled:n||!re(e?.onZoomOut),onClick:e?.onZoomOut,style:ne(t),children:"-"}),q("button",{type:"button","aria-label":"Reset zoom",disabled:n||!re(e?.onReset),onClick:e?.onReset,style:ne(t),children:"Reset"}),q("button",{type:"button","aria-label":"Zoom in",disabled:n||!re(e?.onZoomIn),onClick:e?.onZoomIn,style:ne(t),children:"+"})]})]})}function ie({legend:e,targetSize:t}){const n=!0===e?.disabled,r=e?.items??[];return G("section",{style:ee,"aria-label":"Legend controls",children:[q("div",{style:te,children:e?.label??"Series"}),r.length>0&&q("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:r.map(r=>{const a=!1!==r.active;return G("button",{type:"button",disabled:n||r.disabled||!e?.onToggle,onClick:()=>e?.onToggle?.(r.id,!a),style:ne(t,a),"aria-pressed":a,children:[r.color&&q("span",{"aria-hidden":"true",style:{display:"inline-block",width:9,height:9,marginRight:6,borderRadius:999,background:r.color}}),r.label??r.id]},r.id)})}),G("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[q("button",{type:"button",disabled:n||!re(e?.onShowAll),onClick:e?.onShowAll,style:ne(t),children:"Show all"}),q("button",{type:"button",disabled:n||!re(e?.onHideAll),onClick:e?.onHideAll,style:ne(t),children:"Hide all"})]})]})}function le({controls:e,targetSize:t=44,compact:n=!1,className:r,style:a,ariaLabel:o="Mobile chart controls",brush:i,zoom:l,legend:s}){const c=function(e,t){if(!1===e)return[];if(!0===e||"all"===e)return["brush","zoom","legend"];if(Array.isArray(e))return e;if(e)return[e];const n=[];return t.brush&&n.push("brush"),t.zoom&&n.push("zoom"),t.legend&&n.push("legend"),n}(e,{brush:i,zoom:l,legend:s});return 0===c.length?null:G("div",{className:r,role:"group","aria-label":o,style:{display:"grid",gridTemplateColumns:n?"1fr":"repeat(auto-fit, minmax(180px, 1fr))",gap:10,...a},children:[c.includes("brush")&&q(ae,{brush:i,targetSize:t}),c.includes("zoom")&&q(oe,{zoom:l,targetSize:t}),c.includes("legend")&&q(ie,{legend:s,targetSize:t})]})}export{U as CircularBrush,l as DirectManipulationControl,le as MobileStandardControls,R as SentenceFilter,n as VISUALIZATION_CONTROL_TYPES,W as auditVisualizationControls,Y as clampMobileRange,r as createControlObservationAdapter,Q as useMobileRangeControls,J as zoomMobileRange};
|
|
2
|
+
import{CircularBrush as e,DirectManipulationControl as t}from"./chunk-chunk-G7WFWHAD.module.min.js";import{MobileStandardControls as n,VISUALIZATION_CONTROL_TYPES as r,auditVisualizationControls as i,clampMobileRange as a,createControlObservationAdapter as l,useMobileRangeControls as o,zoomMobileRange as s}from"./chunk-chunk-RCF52Z42.module.min.js";import*as c from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";var p="undefined"==typeof window?c.useEffect:c.useLayoutEffect,m={position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},h={position:"absolute",zIndex:30,top:"calc(100% + 0.5rem)",left:0,boxSizing:"border-box",display:"flex",flexDirection:"column",gap:8,width:"var(--sentence-filter-popover-width, 18rem)",maxWidth:"min(22rem, calc(100vw - 2rem))",maxHeight:"min(24rem, calc(100vh - 2rem))",overflow:"auto",padding:12,color:"var(--sentence-filter-text-color, var(--semiotic-fg, #1f2933))",backgroundColor:"var(--semiotic-bg, #fff)",border:"1px solid var(--semiotic-border, #cbd5e1)",borderRadius:6,boxShadow:"0 10px 28px rgba(15, 23, 42, 0.18)",fontFamily:"inherit",fontSize:"1rem",fontWeight:400,lineHeight:1.4,textAlign:"left",whiteSpace:"normal"},b={offsetX:0,placement:"below",maxHeight:null,maxWidth:null},y={boxSizing:"border-box",width:"100%",minHeight:38,padding:"6px 8px",color:"inherit",backgroundColor:"var(--semiotic-bg, #fff)",border:"1px solid var(--semiotic-border, #94a3b8)",borderRadius:4,font:"inherit"},v={display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,width:"100%",minHeight:38,padding:"7px 8px",color:"inherit",backgroundColor:"transparent",border:0,borderRadius:4,font:"inherit",textAlign:"left",cursor:"pointer"};function g(e){return null==e||"boolean"==typeof e?"":"string"==typeof e||"number"==typeof e?e+"":Array.isArray(e)?e.map(g).join(""):c.isValidElement(e)?g(e.props.children):""}function x(e,t){return Object.is(e,t)}function w(e,t){return e.find(e=>x(e.value,t))}function k(e){return null==e||""===e||Array.isArray(e)&&0===e.length}function C(e,t){if(k(t))return e.emptyLabel??"Any";if("select"===e.type)return w(e.options,t)?.label??t+"";if("multiselect"===e.type){const n=t.map(t=>w(e.options,t)?.label??t+""),r="or"===e.conjunction?" or ":" and ";return n.map((e,t)=>f(c.Fragment,{children:[t>0?r:null,e]},t))}return"toggle"===e.type?t?e.trueLabel??"on":e.falseLabel??"off":"range"===e.type?`${t[0]} to ${t[1]}`:t+""}function L(e,t,n){return k(t)?g(e.emptyLabel??"Any"):e.getAccessibleValue?e.getAccessibleValue(t,n):g(C(e,t))||t+""}function E(e){return 0===e.detail?"keyboard":"pointer"}function M(e,t){const n=t.trim().toLocaleLowerCase();return n?e.filter(e=>[g(e.label),...e.keywords??[]].some(e=>e.toLocaleLowerCase().includes(n))):e}function S(e,t,n){if(0===e.length)return-1;for(let r=1;e.length>=r;r+=1){const i=(t+n*r+e.length)%e.length;if(!e[i].disabled)return i}return-1}function A(e,t=0){const[n,r]=c.useState(()=>e[t]&&!e[t].disabled?t:S(e,-1,1)),i=c.useRef(null),a=c.useRef({value:"",at:0});c.useEffect(()=>{(0>n||!e[n]||e[n].disabled)&&r(S(e,-1,1))},[n,e]);const l=c.useCallback(e=>{0>e||(r(e),i.current?.querySelector(`[data-sentence-filter-option-index="${e}"]`)?.focus())},[]),o=c.useCallback(t=>{let r=-1;if("ArrowDown"===t.key)r=S(e,n,1);else if("ArrowUp"===t.key)r=S(e,n,-1);else if("Home"===t.key)r=S(e,-1,1);else if("End"===t.key)r=S(e,0,-1);else if(1===t.key.length&&!t.altKey&&!t.ctrlKey&&!t.metaKey){const i=Date.now(),l=a.current,o=`${i-l.at>600?"":l.value}${t.key}`.toLocaleLowerCase();a.current={value:o,at:i};for(let t=1;e.length>=t;t+=1){const i=(Math.max(n,-1)+t)%e.length,a=e[i],l=[g(a.label),...a.keywords??[]];if(!a.disabled&&l.some(e=>e.toLocaleLowerCase().startsWith(o))){r=i;break}}}0>r||(t.preventDefault(),l(r))},[n,l,e]);return{activeIndex:n,focusIndex:l,listRef:i,onKeyDown:o}}function D({option:e}){return f(u,{children:[d("span",{children:e.label}),null!=e.count?d("span",{"aria-label":e.count+" results",children:e.count}):null,e.description?d("span",{style:{display:"block",fontSize:"0.82em",opacity:.78},children:e.description}):null]})}function $({value:e,definition:t,setValue:n,close:r}){const i=t,[a,l]=c.useState(""),o=c.useMemo(()=>M(i.options,a),[a,i.options]),s=Math.max(0,o.findIndex(t=>x(t.value,e))),p=A(o,s);return f(u,{children:[i.searchable?d("input",{"data-sentence-filter-autofocus":!0,type:"search","aria-label":"Search "+i.label,value:a,onChange:e=>l(e.currentTarget.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),p.focusIndex(S(o,-1,1)))},style:y}):null,f("span",{ref:p.listRef,role:"listbox","aria-label":i.label,style:{display:"flex",flexDirection:"column",gap:2},children:[o.map((t,a)=>d("button",{"data-sentence-filter-option-index":a,"data-sentence-filter-autofocus":i.searchable||a!==p.activeIndex?void 0:"",type:"button",role:"option","aria-selected":x(t.value,e),tabIndex:a===p.activeIndex?0:-1,disabled:t.disabled,onKeyDown:p.onKeyDown,onClick:e=>{n(t.value,E(e)),r()},style:{...v,backgroundColor:x(t.value,e)?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent",opacity:t.disabled?.5:1},children:d(D,{option:t})},`${t.value+""}-${a}`)),0===o.length?d("span",{role:"status",children:"No options found."}):null]})]})}function N({value:e,definition:t,setValue:n}){const r=t,[i,a]=c.useState(""),l=c.useMemo(()=>M(r.options,i),[r.options,i]),o=Array.isArray(e)?e:[],s=A(l);return f(u,{children:[r.searchable?d("input",{"data-sentence-filter-autofocus":!0,type:"search","aria-label":"Search "+r.label,value:i,onChange:e=>a(e.currentTarget.value),onKeyDown:e=>{"ArrowDown"===e.key&&(e.preventDefault(),s.focusIndex(S(l,-1,1)))},style:y}):null,f("span",{ref:s.listRef,role:"group","aria-label":r.label,style:{display:"flex",flexDirection:"column",gap:2},children:[l.map((e,t)=>{const i=o.some(t=>x(t,e.value));return f("label",{style:{...v,justifyContent:"flex-start",opacity:e.disabled?.5:1},children:[d("input",{"data-sentence-filter-option-index":t,"data-sentence-filter-autofocus":r.searchable||t!==s.activeIndex?void 0:"",type:"checkbox",checked:i,disabled:e.disabled,tabIndex:t===s.activeIndex?0:-1,onKeyDown:s.onKeyDown,onChange:t=>{const r=t.currentTarget.checked?[...o,e.value]:o.filter(t=>!x(t,e.value));n(r,"input")}}),d("span",{style:{flex:1},children:d(D,{option:e})})]},`${e.value+""}-${t}`)}),0===l.length?d("span",{role:"status",children:"No options found."}):null]})]})}function V({value:e,definition:t,setValue:n}){const r=t,i=r.inputMode??"input",a={min:r.min,max:r.max,step:r.step??1,value:"number"==typeof e?e:r.min??0,onChange:e=>{const t=e.currentTarget.valueAsNumber;Number.isFinite(t)&&n(t,"input")}};return f(u,{children:["slider"!==i?d("input",{...a,"data-sentence-filter-autofocus":!0,type:"number","aria-label":r.label,style:y}):null,"input"!==i?d("input",{...a,"data-sentence-filter-autofocus":"slider"===i?"":void 0,type:"range","aria-label":r.label,style:{width:"100%"}}):null]})}function I({value:e,definition:t,setValue:n}){const r=t,i=Array.isArray(e)&&e.length>=2?[Number(e[0]),Number(e[1])]:[r.min,r.max],a=(e,t)=>{if(!Number.isFinite(t))return;const a=Math.min(r.max,Math.max(r.min,t));n(0===e?[Math.min(a,i[1]),i[1]]:[i[0],Math.max(a,i[0])],"input")},l={min:r.min,max:r.max,step:r.step??1};return f(u,{children:[f("span",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:[f("label",{children:[d("span",{children:"Minimum"}),d("input",{...l,"data-sentence-filter-autofocus":!0,type:"number",value:i[0],onChange:e=>a(0,e.currentTarget.valueAsNumber),style:y})]}),f("label",{children:[d("span",{children:"Maximum"}),d("input",{...l,type:"number",value:i[1],onChange:e=>a(1,e.currentTarget.valueAsNumber),style:y})]})]}),f("label",{children:[f("span",{style:m,children:["Minimum ",r.label]}),d("input",{...l,type:"range",value:i[0],onChange:e=>a(0,e.currentTarget.valueAsNumber),style:{width:"100%"}})]}),f("label",{children:[f("span",{style:m,children:["Maximum ",r.label]}),d("input",{...l,type:"range",value:i[1],onChange:e=>a(1,e.currentTarget.valueAsNumber),style:{width:"100%"}})]})]})}function F({value:e,definition:t,setValue:n,close:r}){const i=t,a=[{value:!0,label:i.trueLabel??"On"},{value:!1,label:i.falseLabel??"Off"}],l=A(a.map(e=>({...e})),!1===e?1:0);return d("span",{ref:l.listRef,role:"listbox","aria-label":i.label,style:{display:"flex",gap:4},children:a.map((t,i)=>d("button",{"data-sentence-filter-option-index":i,"data-sentence-filter-autofocus":i===l.activeIndex?"":void 0,type:"button",role:"option","aria-selected":e===t.value,tabIndex:i===l.activeIndex?0:-1,onKeyDown:l.onKeyDown,onClick:e=>{n(t.value,E(e)),r()},style:{...v,justifyContent:"center",backgroundColor:e===t.value?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent"},children:t.label},t.value+""))})}function R({value:e,definition:t,setValue:n,close:r}){const i=t,a="string"==typeof e?e:"",[l,o]=c.useState(""),s=c.useMemo(()=>M(i.suggestions??[],l),[l,i.suggestions]),p=A(s);return f(u,{children:[d("input",{"data-sentence-filter-autofocus":!0,type:"text","aria-label":i.label,placeholder:i.placeholder,value:a,onChange:e=>{o(e.currentTarget.value),n(e.currentTarget.value,"input")},onKeyDown:e=>{"ArrowDown"===e.key&&s.length>0&&(e.preventDefault(),p.focusIndex(S(s,-1,1)))},style:y}),s.length>0?d("span",{ref:p.listRef,role:"listbox","aria-label":i.label+" suggestions",style:{display:"flex",flexDirection:"column",gap:2},children:s.map((e,t)=>d("button",{"data-sentence-filter-option-index":t,type:"button",role:"option","aria-selected":e.value===a,disabled:e.disabled,tabIndex:t===p.activeIndex?0:-1,onKeyDown:p.onKeyDown,onClick:t=>{n(e.value,E(t)),r()},style:{...v,opacity:e.disabled?.5:1},children:d(D,{option:e})},`${e.value}-${t}`))}):null]})}function W(e){switch(e.definition.type){case"select":return d($,{...e});case"multiselect":return d(N,{...e});case"number":return d(V,{...e});case"range":return d(I,{...e});case"toggle":return d(F,{...e});case"text":return d(R,{...e})}}function H({sentence:e,filters:t,defaultFilters:n,definitions:r,onChange:i,as:a="div",className:l,style:o,size:s="inherit",align:u="start",wrap:y=!0,disabled:g=!1,readOnly:x=!1,ariaLabel:w,id:E,renderControl:M,onOpenChange:S}){const[A,D]=c.useState(()=>({...n??{}})),$=t??A,N=c.useRef($);N.current=$;const V=void 0!==t,I=c.useMemo(()=>function(e){const t=[];let n="";const r=()=>{if(!n)return;const e=t[t.length-1];"text"===e?.type?e.value+=n:t.push({type:"text",value:n}),n=""};for(let i=0;e.length>i;)if(e.startsWith("{{",i))n+="{",i+=2;else if(e.startsWith("}}",i))n+="}",i+=2;else{if("{"===e[i]){const n=e.indexOf("}",i+1);if(-1!==n){const a=e.slice(i+1,n);if(a.length>0&&!a.includes("{")){r(),t.push({type:"filter",key:a}),i=n+1;continue}}}n+=e[i],i+=1}return r(),t}(e),[e]),[F,R]=c.useState(null),[H,K]=c.useState(b),z=c.useRef(F);z.current=F;const T=c.useRef(null),j=c.useRef(null),O=c.useRef(new Set),[B,X]=c.useState(""),[q,_]=c.useState(null),[P,Z]=c.useState(null),G=c.useId().replace(/:/g,""),U=E??"sentence-filter-"+G;c.useEffect(()=>{if("undefined"==typeof process||"production"!==process.env?.NODE_ENV)for(const e of I){if("filter"!==e.type)continue;let t=null;r[e.key]?e.key in $||(t=`SentenceFilter: placeholder "{${e.key}}" has no matching filter value.`):t=`SentenceFilter: placeholder "{${e.key}}" has no matching definition.`,t&&!O.current.has(t)&&(O.current.add(t),console.warn(t))}},[r,$,I]);const J=c.useCallback(()=>{z.current&&(z.current=null,R(null),K(b),S?.(null),j.current?.focus())},[S]);c.useEffect(()=>{if(!F)return;const e=e=>{T.current?.contains(e.target)||J()},t=e=>{"Escape"===e.key&&(e.preventDefault(),J())};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("click",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("click",e),document.removeEventListener("keydown",t)}},[J,F]),p(()=>{if(!F||"undefined"==typeof window)return;const e=T.current?.querySelector(`[data-sentence-filter-popover="${F.occurrence}"]`);if(!e)return;const t=()=>{const t=16,n=e.getBoundingClientRect();if(0>=n.width)return;const r=j.current?.getBoundingClientRect(),i=window.visualViewport,a=i?.offsetLeft??0,l=i?.offsetTop??0,o=i?.width??window.innerWidth,s=a+o,c=l+(i?.height??window.innerHeight),u=window.getComputedStyle(e),d=Number.parseFloat(u.getPropertyValue("--sentence-filter-popover-viewport-inset-top")),f=Number.parseFloat(u.getPropertyValue("--sentence-filter-popover-viewport-inset-bottom"));let p=l+(Number.isFinite(d)?Math.max(0,d):0),m=c-(Number.isFinite(f)?Math.max(0,f):0),h=j.current?.parentElement??null;for(;h;){const e=window.getComputedStyle(h);if("sticky"===e.position){const t=h.getBoundingClientRect(),n=Number.parseFloat(e.top),r=Number.parseFloat(e.bottom);Number.isFinite(n)&&1>=Math.abs(t.top-(l+n))&&(p=Math.max(p,t.bottom)),Number.isFinite(r)&&1>=Math.abs(t.bottom-(c-r))&&(m=Math.min(m,t.top))}h=h.parentElement}const b=n.left-H.offsetX,y=n.right-H.offsetX;let v=0;y>s-t&&(v-=y-(s-t)),a+t>b+v&&(v+=a+t-(b+v));const g=r?m-r.bottom-8-t:m-p-32,x=r?r.top-p-8-t:0,w=Math.min(Math.max(n.height,e.scrollHeight),160)>g&&x>g?"above":"below",k=Math.max(0,Math.min(384,Math.floor("above"===w?x:g))),C=Math.max(0,Math.floor(o-32));K(e=>e.offsetX===v&&e.placement===w&&e.maxHeight===k&&e.maxWidth===C?e:{offsetX:v,placement:w,maxHeight:k,maxWidth:C})};return t(),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0),window.visualViewport?.addEventListener("resize",t),window.visualViewport?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0),window.visualViewport?.removeEventListener("resize",t),window.visualViewport?.removeEventListener("scroll",t)}},[F,H]),c.useEffect(()=>{if(!F)return;const e=T.current?.querySelector(`[data-sentence-filter-popover="${F.occurrence}"]`),t=e?.querySelector("[data-sentence-filter-autofocus]")??e;t?.focus()},[F]),c.useEffect(()=>{F&&(g||x||r[F.key]?.disabled)&&J()},[J,r,g,F,x]);const Q=c.useCallback((e,t,n)=>{const a=N.current,l=a[e]??null,o={...a,[e]:t};V||(N.current=o,D(o));const s={key:e,previousValue:l,value:t,source:n};i?.(o,s);const c=r[e];if(c){const e=L(c,l,a),n=L(c,t,o);X(`${c.label} changed from ${e} to ${n}.`)}},[V,r,i]),Y=c.useMemo(()=>I.map(e=>{if("text"===e.type)return e.value;const t=r[e.key];return t?L(t,$[e.key],$):`{${e.key}}`}).join(""),[r,$,I]),ee={position:"relative",margin:0,color:"var(--sentence-filter-text-color, inherit)",fontFamily:"inherit",fontSize:"small"===s?"0.875rem":"medium"===s?"1rem":"large"===s?"1.5rem":"inherit",lineHeight:"inherit",textAlign:"start"===u?"start":"end"===u?"end":"center",whiteSpace:y?"normal":"nowrap",...o},te=["semiotic-sentence-filter",l].filter(Boolean).join(" ");let ne=0;return f(a,{ref:e=>{T.current=e},id:U,className:te,style:ee,role:"div"===a||"span"===a?"group":void 0,"aria-label":w??Y,"data-semiotic-control":"sentence-filter","data-sentence-filter-state":V?"controlled":"uncontrolled",children:[I.map((e,t)=>{if("text"===e.type)return d("span",{"aria-hidden":"true",children:e.value},t);const n=r[e.key];if(!n)return d("span",{"aria-hidden":"true",children:`{${e.key}}`},t);const i=ne;ne+=1;const a=$[e.key]??null,l=function(e,t,n){return k(t)?e.emptyLabel??"Any":e.formatValue?e.formatValue(t,n):C(e,t)}(n,a,$),o=L(n,a,$),s=F?.key===e.key&&F.occurrence===i,c=g||x||!!n.disabled,u=e.key.replace(/[^a-zA-Z0-9_-]/g,"-"),p=`${U}-${u}-${i}-popover`;return f("span",{className:"semiotic-sentence-filter__value",style:{position:"relative",display:"inline"},children:[d("button",{type:"button","aria-haspopup":"dialog","aria-expanded":s,"aria-controls":p,"aria-label":`${n.label}: ${o}. Activate to change.`,disabled:c,"data-sentence-filter-key":e.key,"data-sentence-filter-type":n.type,"data-sentence-filter-open":s||void 0,onMouseEnter:()=>_(i),onMouseLeave:()=>_(e=>e===i?null:e),onFocus:()=>Z(i),onBlur:()=>Z(e=>e===i?null:e),onClick:t=>{if(c)return;if(s)return void J();j.current=t.currentTarget;const r={key:e.key,occurrence:i};z.current=r,K(b),R(r),X(n.label+" control opened."),S?.(e.key)},style:{appearance:"none",display:"inline",minWidth:24,padding:"0.35em 0.12em",margin:"-0.35em 0",color:n.accent??"var(--sentence-filter-accent, var(--semiotic-primary, #4e79a7))",backgroundColor:q===i||s?"var(--sentence-filter-hover-background, rgba(78, 121, 167, 0.12))":"transparent",border:0,borderBottom:"var(--sentence-filter-underline-thickness, 0.09em) solid currentColor",borderRadius:2,outline:P===i?"2px solid var(--sentence-filter-focus-color, currentColor)":"2px solid transparent",outlineOffset:2,font:"inherit",fontWeight:600,lineHeight:"inherit",textAlign:"inherit",cursor:c?"default":"pointer",opacity:c?.6:1},children:l}),s?f("span",{id:p,role:"dialog","aria-label":n.label,"aria-describedby":n.description?p+"-description":void 0,tabIndex:-1,"data-sentence-filter-popover":i,"data-sentence-filter-key":e.key,style:{...h,top:"below"===H.placement?"calc(100% + 0.5rem)":"auto",bottom:"above"===H.placement?"calc(100% + 0.5rem)":"auto",left:H.offsetX,maxHeight:H.maxHeight??h.maxHeight,maxWidth:H.maxWidth??h.maxWidth},children:[d("span",{style:{fontWeight:650},children:n.label}),n.description?d("span",{id:p+"-description",style:{fontSize:"0.88em",opacity:.78},children:n.description}):null,M?M({key:e.key,value:a,filters:$,definition:n,setValue:(t,n="programmatic")=>Q(e.key,t,n),close:J}):d(W,{value:a,definition:n,setValue:(t,n)=>Q(e.key,t,n),close:J}),n.allowClear&&!k(a)?f("button",{type:"button",onClick:()=>{Q(e.key,"multiselect"===n.type?[]:null,"clear"),J()},style:{...v,justifyContent:"center",border:"1px solid var(--semiotic-border, #cbd5e1)"},children:["Clear ",n.label]}):null]}):null]},`${e.key}-${i}`)}),d("span",{role:"status","aria-live":"polite","aria-atomic":"true","data-sentence-filter-live-region":!0,style:m,children:B})]})}export{e as CircularBrush,t as DirectManipulationControl,n as MobileStandardControls,H as SentenceFilter,r as VISUALIZATION_CONTROL_TYPES,i as auditVisualizationControls,a as clampMobileRange,l as createControlObservationAdapter,o as useMobileRangeControls,s as zoomMobileRange};
|