@harborclient/sdk 1.5.3 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/components/Breadcrumb/CrumbSegment.d.ts.map +1 -1
  3. package/dist/components/Breadcrumb/CrumbSegment.js +4 -2
  4. package/dist/components/Breadcrumb/types.d.ts +10 -1
  5. package/dist/components/Breadcrumb/types.d.ts.map +1 -1
  6. package/dist/components/MethodSelect/MethodSelectMenu.d.ts +34 -0
  7. package/dist/components/MethodSelect/MethodSelectMenu.d.ts.map +1 -0
  8. package/dist/components/MethodSelect/MethodSelectMenu.js +150 -0
  9. package/dist/components/MethodSelect/MethodSelectOption.d.ts +36 -0
  10. package/dist/components/MethodSelect/MethodSelectOption.d.ts.map +1 -0
  11. package/dist/components/MethodSelect/MethodSelectOption.js +15 -0
  12. package/dist/components/MethodSelect/MethodSelectSeparator.d.ts +10 -0
  13. package/dist/components/MethodSelect/MethodSelectSeparator.d.ts.map +1 -0
  14. package/dist/components/MethodSelect/MethodSelectSeparator.js +11 -0
  15. package/dist/components/MethodSelect/index.d.ts +21 -7
  16. package/dist/components/MethodSelect/index.d.ts.map +1 -1
  17. package/dist/components/MethodSelect/index.js +47 -6
  18. package/dist/components/SidebarItem/sidebarItemClasses.d.ts.map +1 -1
  19. package/dist/components/SidebarItem/sidebarItemClasses.js +2 -1
  20. package/dist/components/index.d.ts +1 -1
  21. package/dist/components/index.d.ts.map +1 -1
  22. package/dist/runtime/createBridgedPluginContext.js +295 -7
  23. package/dist/runtime/viewHost.js +6 -0
  24. package/dist/snippets.d.ts +30 -19
  25. package/dist/types.d.ts +337 -16
  26. package/dist/types.d.ts.map +1 -1
  27. package/dist/ui/tokens.d.ts +1 -0
  28. package/dist/ui/tokens.d.ts.map +1 -1
  29. package/dist/ui/tokens.js +4 -2
  30. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 1.6.0 - 2026-08-03
8
+
9
+ - feat(sse): enhance import functionality for Server-Sent Events (SSE). (`e26fa155`)
10
+ - feat(sse): implement SSE session management and protocol handling. (`d9e051bc`)
11
+ - feat(mcp-server): enhance MCP server settings and functionality. (`cf36a22f`)
12
+
13
+ ## 1.5.4 - 2026-08-03
14
+
15
+ - chore(package.json): remove deprecated release scripts and tidy up formatting. (`e1e112f1`)
16
+ - feat(chat-pointers): implement custom match and parse functionality for plugin chat pointers. (`ef062d67`)
17
+
7
18
  ## 1.5.2 - 2026-08-02
8
19
 
9
20
  - feat(runtime): integrate runtime management and script injection capabilities. (`074fa871`)
@@ -1 +1 @@
1
- {"version":3,"file":"CrumbSegment.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/CrumbSegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAyB,MAAM,OAAO,CAAC;AAGxD,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,KAAK;IACb;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAyCnE"}
1
+ {"version":3,"file":"CrumbSegment.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/CrumbSegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAyB,MAAM,OAAO,CAAC;AAGxD,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,KAAK;IACb;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA+CnE"}
@@ -16,6 +16,8 @@ export function CrumbSegment({ segment, shape }) {
16
16
  event.stopPropagation();
17
17
  segment.onClick?.();
18
18
  };
19
- const content = (_jsxs(_Fragment, { children: [segment.icon && _jsx(FaIcon, { icon: segment.icon, className: "h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "min-w-0 truncate", children: segment.label })] }));
20
- return (_jsx(SegmentShell, { shape: shape, tone: shape === 'first' ? 'selection' : 'path', children: segment.onClick ? (_jsx("button", { type: "button", className: cn(contentClass, 'app-no-drag focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent'), onClick: handleClick, children: content })) : (_jsx("span", { className: contentClass, children: content })) }));
19
+ const showLabel = !segment.iconOnly && segment.label.length > 0;
20
+ const accessibleName = segment.ariaLabel ?? (showLabel ? undefined : segment.label);
21
+ const content = (_jsxs(_Fragment, { children: [segment.icon && _jsx(FaIcon, { icon: segment.icon, className: "h-3.5 w-3.5 shrink-0" }), showLabel ? _jsx("span", { className: "min-w-0 truncate", children: segment.label }) : null] }));
22
+ return (_jsx(SegmentShell, { shape: shape, tone: shape === 'first' ? 'selection' : 'path', children: segment.onClick ? (_jsx("button", { type: "button", className: cn(contentClass, 'app-no-drag focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent'), "aria-label": accessibleName, onClick: handleClick, children: content })) : (_jsx("span", { className: contentClass, "aria-label": accessibleName, children: content })) }));
21
23
  }
@@ -4,13 +4,22 @@ import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
4
4
  */
5
5
  export interface BreadcrumbSegment {
6
6
  /**
7
- * Visible label for the segment.
7
+ * Visible label for the segment. May be empty when {@link iconOnly} is true.
8
8
  */
9
9
  label: string;
10
10
  /**
11
11
  * Optional decorative icon rendered before the label.
12
12
  */
13
13
  icon?: IconDefinition;
14
+ /**
15
+ * When true, hides the label text and shows only the icon.
16
+ * Callers should set {@link ariaLabel} so the control stays accessible.
17
+ */
18
+ iconOnly?: boolean;
19
+ /**
20
+ * Accessible name when the visible label is empty or icon-only.
21
+ */
22
+ ariaLabel?: string;
14
23
  /**
15
24
  * Optional stable key; falls back to the segment index when omitted.
16
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB"}
@@ -0,0 +1,34 @@
1
+ import { type ReactPortal, type RefObject } from 'react';
2
+ interface Props {
3
+ /**
4
+ * Method select trigger used to anchor the portaled listbox.
5
+ */
6
+ anchorRef: RefObject<HTMLElement | null>;
7
+ /**
8
+ * Id of the listbox element for `aria-controls` wiring.
9
+ */
10
+ listboxId: string;
11
+ /**
12
+ * Currently selected option id (`GET`…`OPTIONS` or `SSE`).
13
+ */
14
+ value: string;
15
+ /**
16
+ * Applies a selection and closes the menu.
17
+ *
18
+ * @param id - Chosen option id.
19
+ */
20
+ onSelect: (id: string) => void;
21
+ /**
22
+ * Closes the menu without changing the selection.
23
+ */
24
+ onClose: () => void;
25
+ }
26
+ /**
27
+ * Portaled listbox of HTTP methods and SSE, with a theme separator before SSE.
28
+ *
29
+ * @param props - Anchor, selection, and close handlers.
30
+ * @returns Portaled listbox, or `null` until positioned.
31
+ */
32
+ export declare function MethodSelectMenu({ anchorRef, listboxId, value, onSelect, onClose }: Props): ReactPortal | null;
33
+ export {};
34
+ //# sourceMappingURL=MethodSelectMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodSelectMenu.d.ts","sourceRoot":"","sources":["../../../src/components/MethodSelect/MethodSelectMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AA8Bf,UAAU,KAAK;IACb;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/B;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACR,EAAE,KAAK,GAAG,WAAW,GAAG,IAAI,CA+K5B"}
@@ -0,0 +1,150 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
3
+ import { clampMenuPosition, getTriggerAnchoredMenuPosition } from '../menuPosition.js';
4
+ import { portalToBody } from '../portalToBody.js';
5
+ import { resolveTabListKeyAction } from '../utils.js';
6
+ import { MethodSelectOption } from './MethodSelectOption.js';
7
+ import { MethodSelectSeparator } from './MethodSelectSeparator.js';
8
+ /** HTTP methods listed above the SSE separator. */
9
+ const METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];
10
+ /** Selectable listbox entries (methods plus SSE). */
11
+ const SELECTABLE_OPTIONS = [
12
+ ...METHODS.map((method) => ({ label: method, colorKey: method, id: method })),
13
+ { label: 'SSE', colorKey: 'sse', id: 'SSE' }
14
+ ];
15
+ /** Index of the SSE option in {@link SELECTABLE_OPTIONS}. */
16
+ const SSE_OPTION_INDEX = SELECTABLE_OPTIONS.length - 1;
17
+ /** Estimated width of the method options listbox. */
18
+ const LISTBOX_WIDTH_PX = 120;
19
+ /** Estimated height before the listbox is measured. */
20
+ const LISTBOX_HEIGHT_PX = 280;
21
+ /**
22
+ * Portaled listbox of HTTP methods and SSE, with a theme separator before SSE.
23
+ *
24
+ * @param props - Anchor, selection, and close handlers.
25
+ * @returns Portaled listbox, or `null` until positioned.
26
+ */
27
+ export function MethodSelectMenu({ anchorRef, listboxId, value, onSelect, onClose }) {
28
+ const listboxRef = useRef(null);
29
+ const optionRefs = useRef([]);
30
+ const [position, setPosition] = useState(null);
31
+ const [focusedIndex, setFocusedIndex] = useState(() => Math.max(0, SELECTABLE_OPTIONS.findIndex((option) => option.id === value)));
32
+ /**
33
+ * Repositions the listbox under the trigger, left-aligned with the method control.
34
+ */
35
+ const updatePosition = useCallback(() => {
36
+ const trigger = anchorRef.current;
37
+ if (!trigger) {
38
+ setPosition(null);
39
+ return;
40
+ }
41
+ const triggerRect = trigger.getBoundingClientRect();
42
+ const menuSize = {
43
+ width: Math.max(LISTBOX_WIDTH_PX, triggerRect.width),
44
+ height: listboxRef.current?.offsetHeight ?? LISTBOX_HEIGHT_PX
45
+ };
46
+ const requested = getTriggerAnchoredMenuPosition(triggerRect, menuSize, 'down');
47
+ // Prefer left-align with the URL-bar method control (helper right-aligns by default).
48
+ const leftAligned = { x: triggerRect.left, y: requested.y };
49
+ setPosition(clampMenuPosition(leftAligned, menuSize));
50
+ }, [anchorRef]);
51
+ /**
52
+ * Anchors the listbox when it mounts.
53
+ */
54
+ useLayoutEffect(() => {
55
+ updatePosition();
56
+ }, [updatePosition]);
57
+ /**
58
+ * Keeps the listbox aligned when the viewport or editor scrolls/resizes.
59
+ */
60
+ useEffect(() => {
61
+ window.addEventListener('scroll', updatePosition, true);
62
+ window.addEventListener('resize', updatePosition);
63
+ return () => {
64
+ window.removeEventListener('scroll', updatePosition, true);
65
+ window.removeEventListener('resize', updatePosition);
66
+ };
67
+ }, [updatePosition]);
68
+ /**
69
+ * Focuses the active option when the listbox mounts or the focused index changes.
70
+ */
71
+ useEffect(() => {
72
+ requestAnimationFrame(() => {
73
+ optionRefs.current[focusedIndex]?.focus();
74
+ });
75
+ }, [focusedIndex]);
76
+ /**
77
+ * Closes on outside pointer interaction or Escape.
78
+ */
79
+ useEffect(() => {
80
+ /**
81
+ * Closes when the user activates outside the trigger and listbox.
82
+ *
83
+ * @param event - Document pointer event.
84
+ */
85
+ const handlePointerDown = (event) => {
86
+ const target = event.target;
87
+ if (!(target instanceof Node)) {
88
+ return;
89
+ }
90
+ if (anchorRef.current?.contains(target) || listboxRef.current?.contains(target)) {
91
+ return;
92
+ }
93
+ onClose();
94
+ };
95
+ /**
96
+ * Closes the listbox when the user presses Escape.
97
+ *
98
+ * @param event - Document keydown event.
99
+ */
100
+ const handleKeyDown = (event) => {
101
+ if (event.key === 'Escape') {
102
+ event.preventDefault();
103
+ event.stopPropagation();
104
+ onClose();
105
+ }
106
+ };
107
+ document.addEventListener('pointerdown', handlePointerDown);
108
+ document.addEventListener('keydown', handleKeyDown, true);
109
+ return () => {
110
+ document.removeEventListener('pointerdown', handlePointerDown);
111
+ document.removeEventListener('keydown', handleKeyDown, true);
112
+ };
113
+ }, [anchorRef, onClose]);
114
+ /**
115
+ * Focuses a listbox option by index for roving tabindex navigation.
116
+ *
117
+ * @param index - Option index to focus.
118
+ */
119
+ const focusOption = useCallback((index) => {
120
+ setFocusedIndex(index);
121
+ requestAnimationFrame(() => {
122
+ optionRefs.current[index]?.focus();
123
+ });
124
+ }, []);
125
+ /**
126
+ * Handles arrow-key navigation and Tab-to-close inside the open listbox.
127
+ *
128
+ * @param event - Keyboard event from the listbox panel.
129
+ */
130
+ const handleListboxKeyDown = (event) => {
131
+ if (event.key === 'Tab') {
132
+ onClose();
133
+ return;
134
+ }
135
+ const arrowIndex = resolveTabListKeyAction(event.key, focusedIndex, SELECTABLE_OPTIONS.length);
136
+ if (arrowIndex !== null) {
137
+ event.preventDefault();
138
+ focusOption(arrowIndex);
139
+ }
140
+ };
141
+ if (position == null) {
142
+ return null;
143
+ }
144
+ const menuWidth = Math.max(LISTBOX_WIDTH_PX, anchorRef.current?.getBoundingClientRect().width ?? LISTBOX_WIDTH_PX);
145
+ return portalToBody(_jsxs("div", { ref: listboxRef, id: listboxId, role: "listbox", "aria-label": "Request method or protocol", className: "hc-method-select-listbox app-no-drag fixed z-50 max-h-[320px] overflow-y-auto rounded-md border border-separator bg-surface py-1 shadow-md", style: { top: position.y, left: position.x, width: menuWidth }, onKeyDown: handleListboxKeyDown, children: [METHODS.map((method, index) => (_jsx(MethodSelectOption, { label: method, colorKey: method, selected: method === value, focused: index === focusedIndex, optionRef: (element) => {
146
+ optionRefs.current[index] = element;
147
+ }, onSelect: () => onSelect(method) }, method))), _jsx(MethodSelectSeparator, {}), _jsx(MethodSelectOption, { label: "SSE", colorKey: "sse", selected: value === 'SSE', focused: focusedIndex === SSE_OPTION_INDEX, optionRef: (element) => {
148
+ optionRefs.current[SSE_OPTION_INDEX] = element;
149
+ }, onSelect: () => onSelect('SSE') })] }));
150
+ }
@@ -0,0 +1,36 @@
1
+ import type { JSX, Ref } from 'react';
2
+ interface Props {
3
+ /**
4
+ * Visible option label (HTTP method or `SSE`).
5
+ */
6
+ label: string;
7
+ /**
8
+ * Token used for method/protocol badge coloring.
9
+ */
10
+ colorKey: string;
11
+ /**
12
+ * Whether this option is the current selection.
13
+ */
14
+ selected: boolean;
15
+ /**
16
+ * Whether this option currently holds keyboard focus (roving tabindex).
17
+ */
18
+ focused: boolean;
19
+ /**
20
+ * Ref callback so the listbox can focus this option.
21
+ */
22
+ optionRef: Ref<HTMLButtonElement>;
23
+ /**
24
+ * Called when the user activates this option.
25
+ */
26
+ onSelect: () => void;
27
+ }
28
+ /**
29
+ * Single method or protocol row inside a {@link MethodSelect} listbox.
30
+ *
31
+ * @param props - Label, selection state, and activation handler.
32
+ * @returns Accessible listbox option button.
33
+ */
34
+ export declare function MethodSelectOption({ label, colorKey, selected, focused, optionRef, onSelect }: Props): JSX.Element;
35
+ export {};
36
+ //# sourceMappingURL=MethodSelectOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodSelectOption.d.ts","sourceRoot":"","sources":["../../../src/components/MethodSelect/MethodSelectOption.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAItC,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,EACT,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAqBrB"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "@harborclient/sdk/jsx-runtime";
2
+ import { methodColorClass } from '../../ui/tokens.js';
3
+ import { cn } from '../utils.js';
4
+ /**
5
+ * Single method or protocol row inside a {@link MethodSelect} listbox.
6
+ *
7
+ * @param props - Label, selection state, and activation handler.
8
+ * @returns Accessible listbox option button.
9
+ */
10
+ export function MethodSelectOption({ label, colorKey, selected, focused, optionRef, onSelect }) {
11
+ return (_jsx("button", { ref: optionRef, type: "button", role: "option", "aria-selected": selected, tabIndex: focused ? 0 : -1, className: cn('app-no-drag flex w-full cursor-pointer items-center border-none bg-transparent px-3.5 py-1.5 text-left text-[14px] font-normal hover:bg-selection', methodColorClass(colorKey), selected ? 'bg-selection/60' : ''), onClick: (event) => {
12
+ event.stopPropagation();
13
+ onSelect();
14
+ }, children: label }));
15
+ }
@@ -0,0 +1,10 @@
1
+ import type { JSX } from 'react';
2
+ /**
3
+ * Full-width hairline between HTTP methods and SSE in the method listbox.
4
+ *
5
+ * Uses the theme separator token so the divider matches other menus and borders.
6
+ *
7
+ * @returns Decorative separator row excluded from the accessibility tree.
8
+ */
9
+ export declare function MethodSelectSeparator(): JSX.Element;
10
+ //# sourceMappingURL=MethodSelectSeparator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodSelectSeparator.d.ts","sourceRoot":"","sources":["../../../src/components/MethodSelect/MethodSelectSeparator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,GAAG,CAAC,OAAO,CAEnD"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "@harborclient/sdk/jsx-runtime";
2
+ /**
3
+ * Full-width hairline between HTTP methods and SSE in the method listbox.
4
+ *
5
+ * Uses the theme separator token so the divider matches other menus and borders.
6
+ *
7
+ * @returns Decorative separator row excluded from the accessibility tree.
8
+ */
9
+ export function MethodSelectSeparator() {
10
+ return _jsx("div", { className: "my-1 border-t border-separator", role: "presentation", "aria-hidden": "true" });
11
+ }
@@ -1,18 +1,32 @@
1
- import type { ComponentPropsWithoutRef, JSX } from 'react';
2
- import type { HttpMethod } from '../../types.js';
3
- interface Props extends Omit<ComponentPropsWithoutRef<'select'>, 'value' | 'onChange' | 'children'> {
1
+ import { type ComponentPropsWithoutRef, type JSX } from 'react';
2
+ import type { HttpMethod, RequestProtocol } from '../../types.js';
3
+ interface Props extends Omit<ComponentPropsWithoutRef<'button'>, 'value' | 'onChange' | 'children' | 'type'> {
4
4
  /**
5
- * Currently selected HTTP method.
5
+ * Currently selected HTTP method (ignored visually when protocol is `sse`).
6
6
  */
7
7
  value: HttpMethod;
8
8
  /**
9
- * Called when the user picks a different method.
9
+ * Transport protocol; when `sse`, the control shows SSE instead of an HTTP method.
10
+ */
11
+ protocol?: RequestProtocol;
12
+ /**
13
+ * Called when the user picks a different HTTP method (also resets protocol to http).
10
14
  */
11
15
  onChange: (method: HttpMethod) => void;
16
+ /**
17
+ * Called when the user switches between HTTP methods and SSE.
18
+ */
19
+ onProtocolChange?: (protocol: RequestProtocol) => void;
12
20
  }
13
21
  /**
14
- * Dropdown for selecting an HTTP request method.
22
+ * Dropdown for selecting an HTTP request method or the SSE protocol.
23
+ *
24
+ * Opens a custom listbox so the SSE row can sit below a full-bleed theme
25
+ * separator (native `<option>` elements cannot draw one).
26
+ *
27
+ * @param props - Current method/protocol and change handlers.
28
+ * @returns Accessible method/protocol combobox control.
15
29
  */
16
- export declare function MethodSelect({ value, onChange, className, ...props }: Props): JSX.Element;
30
+ export declare function MethodSelect({ value, protocol, onChange, onProtocolChange, className, ...props }: Props): JSX.Element;
17
31
  export {};
18
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MethodSelect/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAOjD,UAAU,KAAM,SAAQ,IAAI,CAC1B,wBAAwB,CAAC,QAAQ,CAAC,EAClC,OAAO,GAAG,UAAU,GAAG,UAAU,CAClC;IACC;;OAEG;IACH,KAAK,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAqBzF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MethodSelect/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,GAAG,EAKT,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAQlE,UAAU,KAAM,SAAQ,IAAI,CAC1B,wBAAwB,CAAC,QAAQ,CAAC,EAClC,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAC3C;IACC;;OAEG;IACH,KAAK,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CACxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAwErB"}
@@ -1,11 +1,52 @@
1
- import { jsx as _jsx } from "@harborclient/sdk/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { useCallback, useId, useRef, useState } from 'react';
2
3
  import { methodColorClass } from '../../ui/tokens.js';
3
- import { Select } from '../forms/index.js';
4
4
  import { cn } from '../utils.js';
5
- const METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];
5
+ import { MethodSelectMenu } from './MethodSelectMenu.js';
6
+ /** Select option value used when {@link Props.protocol} is `sse`. */
7
+ const SSE_OPTION = 'SSE';
6
8
  /**
7
- * Dropdown for selecting an HTTP request method.
9
+ * Dropdown for selecting an HTTP request method or the SSE protocol.
10
+ *
11
+ * Opens a custom listbox so the SSE row can sit below a full-bleed theme
12
+ * separator (native `<option>` elements cannot draw one).
13
+ *
14
+ * @param props - Current method/protocol and change handlers.
15
+ * @returns Accessible method/protocol combobox control.
8
16
  */
9
- export function MethodSelect({ value, onChange, className, ...props }) {
10
- return (_jsx(Select, { ...props, variant: "plain", className: cn('hc-method-select app-no-drag w-[100px] shrink-0 cursor-pointer appearance-none border-none bg-transparent px-2 py-1.5 text-[14px] leading-none font-normal focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent', methodColorClass(value), className), value: value, "aria-label": "HTTP method", onChange: (e) => onChange(e.target.value), children: METHODS.map((method) => (_jsx("option", { value: method, className: methodColorClass(method), children: method }, method))) }));
17
+ export function MethodSelect({ value, protocol = 'http', onChange, onProtocolChange, className, ...props }) {
18
+ const listboxId = useId();
19
+ const triggerRef = useRef(null);
20
+ const [open, setOpen] = useState(false);
21
+ const selectValue = protocol === 'sse' ? SSE_OPTION : value;
22
+ const colorKey = protocol === 'sse' ? 'sse' : value;
23
+ /**
24
+ * Applies a listbox selection, mapping SSE onto protocol updates.
25
+ *
26
+ * @param next - Chosen option id (`SSE` or an HTTP method).
27
+ */
28
+ const handleSelect = useCallback((next) => {
29
+ setOpen(false);
30
+ if (next === SSE_OPTION) {
31
+ onProtocolChange?.('sse');
32
+ return;
33
+ }
34
+ onProtocolChange?.('http');
35
+ onChange(next);
36
+ triggerRef.current?.focus();
37
+ }, [onChange, onProtocolChange]);
38
+ /**
39
+ * Closes the listbox and returns focus to the trigger.
40
+ */
41
+ const handleClose = useCallback(() => {
42
+ setOpen(false);
43
+ triggerRef.current?.focus();
44
+ }, []);
45
+ /**
46
+ * Toggles the method listbox open or closed.
47
+ */
48
+ const toggleOpen = useCallback(() => {
49
+ setOpen((wasOpen) => !wasOpen);
50
+ }, []);
51
+ return (_jsxs(_Fragment, { children: [_jsx("button", { ...props, ref: triggerRef, type: "button", role: "combobox", "aria-expanded": open, "aria-controls": listboxId, "aria-haspopup": "listbox", "aria-label": "Request method or protocol", className: cn('hc-method-select app-no-drag w-[100px] shrink-0 cursor-pointer border-none bg-transparent px-2 py-1.5 text-left text-[14px] leading-none font-normal focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent', methodColorClass(colorKey), className), onClick: toggleOpen, children: selectValue }), open ? (_jsx(MethodSelectMenu, { anchorRef: triggerRef, listboxId: listboxId, value: selectValue, onSelect: handleSelect, onClose: handleClose })) : null] }));
11
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sidebarItemClasses.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/sidebarItemClasses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,MAAM,CAKpE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,MAAM,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,UAAO,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,+HACwF,CAAC;AAE/H;;GAEG;AACH,eAAO,MAAM,yBAAyB,oVAC6S,CAAC;AAEpV;;;GAGG;AACH,eAAO,MAAM,4BAA4B,0JACgH,CAAC;AAE1J;;;GAGG;AACH,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,kEAC0B,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,kCAAkC,WAAW,CAAC"}
1
+ {"version":3,"file":"sidebarItemClasses.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/sidebarItemClasses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,MAAM,CAKpE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,MAAM,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,UAAO,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,+HACwF,CAAC;AAE/H;;GAEG;AACH,eAAO,MAAM,yBAAyB,oVAC6S,CAAC;AAEpV;;;GAGG;AACH,eAAO,MAAM,4BAA4B,0JACgH,CAAC;AAE1J;;;GAGG;AACH,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,kEAC0B,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,kCAAkC,WAAW,CAAC"}
@@ -28,7 +28,8 @@ export const METHOD_CLASSES = {
28
28
  patch: 'hc-method-badge text-method-patch',
29
29
  delete: 'hc-method-badge text-method-delete',
30
30
  head: 'hc-method-badge text-method-head',
31
- options: 'hc-method-badge text-method-options'
31
+ options: 'hc-method-badge text-method-options',
32
+ sse: 'hc-method-badge text-method-sse'
32
33
  };
33
34
  /**
34
35
  * Returns Tailwind classes for an HTTP method badge in the sidebar.
@@ -113,5 +113,5 @@ export type { TabListKeyOptions } from './utils.js';
113
113
  export { useDialogFocus, getFocusableElements } from './useDialogFocus.js';
114
114
  export { segment, segmentGroup, tabItem } from './classes.js';
115
115
  export { SidebarItem, SidebarListbox, SidebarList, SidebarTree, SidebarTreeGroup, handleSidebarOptionKeyDown, type SidebarItemListboxOption, type SidebarItemTreeItem, SortableSidebarItem, stopSortableDragPointerDown, SidebarMarkerDot, SidebarBadge, sourceRow, METHOD_CLASSES, methodBadgeClass, documentIconClass, statusDotVariant, statusDotClass, SIDEBAR_ITEM_BUTTON_CLASS, SIDEBAR_CHEVRON_BUTTON_CLASS, SIDEBAR_CHEVRON_ICON_CLASS, SIDEBAR_CHEVRON_SLOT_CLASS, SIDEBAR_CHEVRON_LABEL_OFFSET_CLASS, SidebarMethodBadge, SidebarStatusDot, SidebarStatusMarker, SidebarRequestItem, SidebarDocumentItem, SidebarFolderItem, SidebarRunItem, SidebarHistoryItem, SidebarEnvironmentItem, SidebarWorkspaceItem, SidebarWebsiteItem, SidebarCommitItem, type SidebarItemSortableConfig, type SidebarBadgeVariant, type SidebarCommitPushStatus } from './SidebarItem/index.js';
116
- export type { FormDataPart, FormDataPartType, HttpMethod, KeyValue, Variable } from '../types.js';
116
+ export type { FormDataPart, FormDataPartType, HttpMethod, KeyValue, RequestProtocol, Variable } from '../types.js';
117
117
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,KAAK,IAAI,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mCAAmC,EACnC,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EAAE,KAAK,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,KAAK,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EACV,KAAK,IAAI,eAAe,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,KAAK,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,KAAK,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,6BAA6B,EAC7B,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC7F,YAAY,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,KAAK,EACL,UAAU,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,KAAK,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,kCAAkC,EAClC,6BAA6B,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,8BAA8B,EAC9B,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EACL,qCAAqC,EACrC,iCAAiC,EACjC,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,eAAe,EACf,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,+BAA+B,EAC/B,qBAAqB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,KAAK,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,KAAK,IAAI,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAChG,YAAY,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,YAAY,EACV,KAAK,IAAI,4BAA4B,EACrC,kBAAkB,EACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,MAAM,EACN,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EAAE,KAAK,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,kCAAkC,EAClC,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,eAAe,EACf,QAAQ,EACT,MAAM,aAAa,CAAC"}