@blockbite/ui 2.0.28 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChapterDivider.d.ts +2 -2
- package/dist/EmptyState.d.ts +2 -1
- package/dist/Tabs.d.ts +2 -2
- package/dist/TagInput.d.ts +4 -1
- package/dist/index.js +2266 -2158
- package/dist/index.js.map +1 -1
- package/dist/ui.css +1 -1
- package/package.json +5 -5
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../src/ButtonToggle.tsx","../src/AutocompleteDropdown.tsx","../src/Badge.tsx","../src/BitePreview.tsx","../src/Icon.tsx","../src/Button.tsx","../src/Wrap.tsx","../src/Chapter.tsx","../src/ChapterDivider.tsx","../src/Checkbox.tsx","../../icons/jsx/ChevronDown.jsx","../../icons/jsx/ColorWheel.jsx","../../icons/jsx/Cross1.jsx","../../icons/jsx/Cross2.jsx","../../icons/jsx/InfoCircled.jsx","../../icons/jsx/ListBullet.jsx","../../icons/jsx/Pencil1.jsx","../../icons/jsx/Percentage.jsx","../../icons/jsx/Plus.jsx","../../icons/jsx/Slider.jsx","../../icons/jsx/Tailwind.jsx","../../icons/jsx/Trash.jsx","../src/TextControl.tsx","../src/DataItemList.tsx","../src/DisappearingMessage.tsx","../src/DropdownPicker.tsx","../src/EmptyState.tsx","../src/FloatingPanel.tsx","../src/FocalPointControl.tsx","../src/Popover.tsx","../src/SelectControlWrapper.tsx","../src/GradientSwatchPicker.tsx","../src/Label.tsx","../src/LinkPicker.tsx","../src/MediaPicker.tsx","../src/RangeSlider.tsx","../src/MetricsControl.tsx","../src/Modal.tsx","../src/NewWindowPortal.tsx","../src/Notice.tsx","../src/PasswordInput.tsx","../src/ProjectsNavigation.tsx","../src/ResponsiveImage.tsx","../src/ResponsiveVideo.tsx","../src/ScrollList.tsx","../src/SingleBlockTypeAppender.tsx","../src/SlideIn.tsx","../src/Spinner.tsx","../../libraries/dist/libraries.js","../src/SplitPane.tsx","../src/Tabs.tsx","../src/Tag.tsx","../src/TagInput.tsx","../src/TextControlLabel.tsx","../src/ToggleGroup.tsx","../src/ToggleSwitch.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Button as WordpressButton } from '@wordpress/components';\nimport { memo, useCallback } from '@wordpress/element';\nimport classNames from 'classnames';\n\ntype ButtonToggleProps = {\n children?: React.ReactNode;\n className?: string;\n value: string;\n pressed: boolean;\n variant?: 'primary' | 'secondary';\n size?: 'small' | 'default' | 'compact';\n icon?: any;\n display?: 'icon' | 'label' | '' | null;\n onPressedChange: (value: string) => void;\n label?: string;\n};\n\ntype ButtonToggleGroupOptionProp = {\n value: string;\n label: string;\n tooltip?: string;\n icon?: any;\n children?: React.ReactNode;\n};\n\ntype ButtonToggleGroupProps = {\n className?: string;\n options: ButtonToggleGroupOptionProp[];\n value: string;\n toggle?: boolean;\n size?: 'small' | 'default' | 'compact';\n tabs?: boolean;\n display?: 'icon' | 'label' | '' | null;\n variant?: 'primary' | 'secondary';\n stretch?: boolean;\n icon?: JSX.Element;\n onPressedChange?: (value: string) => void;\n};\n\n// ButtonToggle: now fully controlled via `pressed` prop\nexport const ButtonToggle: React.FC<\n Omit<ButtonToggleProps, 'defaultPressed'> & { pressed: boolean }\n> = memo(\n ({\n children,\n className,\n value,\n variant = 'secondary',\n pressed,\n onPressedChange,\n icon: Icon,\n size = 'compact',\n display = 'auto',\n label,\n }) => {\n const handleClick = useCallback(() => {\n onPressedChange(value);\n }, [onPressedChange, value]);\n\n return (\n <WordpressButton\n aria-label={label}\n className={classNames(className, 'blockbite-ui__button--default')}\n value={value}\n size={size}\n label={label}\n variant={variant}\n showTooltip={true}\n isPressed={pressed}\n onClick={handleClick}\n >\n {Icon && <Icon className=\"w-4 h-4\" />}\n {display !== 'icon' ? children : null}\n {label && !children && display !== 'icon' ? <span>{label}</span> : null}\n </WordpressButton>\n );\n }\n);\n\n// ButtonToggleGroup: now fully controlled via `value` prop\nexport const ButtonToggleGroup: React.FC<\n Omit<ButtonToggleGroupProps, 'defaultPressed'> & { value: string }\n> = memo(\n ({\n className,\n value,\n toggle = true,\n display = 'auto',\n options,\n size = 'compact',\n tabs = false,\n variant = 'secondary',\n stretch = false,\n onPressedChange,\n }) => {\n const handleButtonClick = useCallback(\n (optionValue: string) => {\n const newValue = toggle && value === optionValue ? '' : optionValue;\n onPressedChange?.(newValue);\n },\n [onPressedChange, toggle, value]\n );\n\n const renderContent = (option: ButtonToggleGroupOptionProp) => {\n const Icon = option?.icon || null;\n\n if (display === 'icon' && option?.icon) {\n return <Icon icon={option.icon} className=\"w-4 h-4\" />;\n } else if (display === 'label') {\n return <span>{option.label}</span>;\n }\n return (\n <span className=\"flex items-center justify-center gap-1\">\n {option.icon && <Icon icon={option.icon} className=\"w-3 h-3\" />}\n <span>{option.label}</span>\n </span>\n );\n };\n\n return (\n <div\n className={classNames(\n 'blockbite-ui__button-group flex flex-wrap gap-1',\n className,\n tabs ? 'blockbite-ui__button-group--tabs' : ''\n )}\n >\n {options.map((option, index) => (\n <WordpressButton\n key={`ButtonToggleGroup__${option.value}__${option.label}__${index}`}\n className={classNames('blockbite-ui__button--default', {\n grow: stretch,\n 'justify-center': stretch,\n })}\n aria-label={option.label}\n showTooltip={true}\n value={option.value}\n size={size}\n label={option?.tooltip || option.label}\n variant={variant}\n isPressed={value === option.value}\n onClick={() => handleButtonClick(option.value)}\n >\n {renderContent(option)}\n {option.children && option.children}\n </WordpressButton>\n ))}\n </div>\n );\n }\n);\n","import { Button, Dropdown, TextControl } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\nimport { ButtonToggle } from './ButtonToggle.js';\nimport type { OptionProps } from './types.js';\n\ninterface OptionPanelDropdownProps {\n value: string;\n options: { label: string; value: string; style?: string }[];\n onPressedChange: (value: string) => void;\n swatch?: boolean;\n}\n\nexport function AutocompleteDropdown({\n value,\n options,\n swatch,\n onPressedChange,\n}: OptionPanelDropdownProps) {\n const [activeKeyword, setActiveKeyword] = useState('');\n const [filteredOptions, setFilteredOptions] = useState<OptionProps[]>([]);\n\n useEffect(() => {\n setFilteredOptions(\n options.filter((option: OptionProps) =>\n option.label.toLowerCase().includes(activeKeyword.toLowerCase())\n )\n );\n }, [activeKeyword, options]);\n\n useEffect(() => {\n setActiveKeyword('');\n setFilteredOptions(options);\n }, [value, options]);\n\n return (\n <Dropdown\n className=\"option-panel-dropdown\"\n contentClassName=\"option-panel-dropdown-content [&>div]:[scrollbar-width:none] [&>div]:[&::-webkit-scrollbar]:hidden\"\n popoverProps={{ placement: 'bottom-start' }}\n renderToggle={({ isOpen, onToggle }) => (\n <Button\n variant=\"secondary\"\n size=\"small\"\n onClick={onToggle}\n aria-expanded={isOpen}\n >\n <div className=\"flex items-center gap-1.5 !bg-transparent !p-0 !text-[11px] !text-current\">\n {swatch && !!value && (\n <div\n style={{\n backgroundColor: options.find((o) => o.value === value)\n ?.style,\n }}\n className=\"h-3 w-3 rounded-full\"\n />\n )}\n <span>{value || 'Select option…'}</span>\n </div>\n </Button>\n )}\n renderContent={() => (\n <div className=\"w-52\">\n <TextControl\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n label=\"Search options\"\n value={activeKeyword}\n onChange={(changedValue) => setActiveKeyword(changedValue)}\n autoComplete=\"off\"\n />\n <div className=\"grid grid-cols-2 gap-1 !bg-transparent p-0 !pt-2\">\n {filteredOptions.length === 0 && (\n <div className=\"!text-gray-medium col-span-2 pb-2 text-center !text-[11px]\">\n No options found.\n </div>\n )}\n {filteredOptions.map((option: OptionProps, index: Number) => (\n <ButtonToggle\n key={`ButtonToggle__${option.value}___${index}`}\n className={classNames({\n 'bg-primary': option.value,\n })}\n size=\"small\"\n value={option.value.toString()}\n pressed={value === option.value}\n onPressedChange={(pressed) => {\n onPressedChange(pressed ? option.value : '');\n }}\n >\n {swatch && (\n <div\n style={{ backgroundColor: option.style }}\n className=\"mr-3 h-3 w-3 rounded-full\"\n />\n )}\n {option.label}\n </ButtonToggle>\n ))}\n </div>\n </div>\n )}\n />\n );\n}\n","import classNames from 'classnames';\n\ntype BadgeProps = {\n children?: React.ReactNode;\n className?: string;\n label?: string;\n onClick?: () => void;\n status?: 'default' | 'info' | 'success' | 'warning' | 'error';\n};\n\nexport const Badge = ({\n children,\n className,\n label,\n onClick,\n status = 'default',\n}: BadgeProps) => {\n return (\n <div\n onClick={onClick}\n className={classNames(\n className,\n 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium',\n {\n 'bg-wp/10 text-wp': status === 'info',\n 'bg-green-100 text-green-800': status === 'success',\n 'bg-yellow-100 text-yellow-800': status === 'warning',\n 'bg-red-100 text-red-800': status === 'error',\n 'bg-gray-100 text-gray-800': status === 'default',\n }\n )}\n >\n {label && (\n <span className=\"mr-1 text-xs font-semibold text-gray-700\">\n {label}\n </span>\n )}\n {children}\n </div>\n );\n};\n","import { createPortal, useEffect, useRef, useState } from '@wordpress/element';\n\nexport const BitePreview = ({ htmlContent, cssContent, frontendAssets }) => {\n const iframeRef = useRef(null);\n const [iframeBody, setIframeBody] = useState(null);\n\n useEffect(() => {\n const iframe = iframeRef.current;\n\n if (iframe) {\n iframe.onload = () => {\n const iframeDocument =\n iframe.contentDocument || iframe.contentWindow.document;\n\n if (iframeDocument) {\n setIframeBody(iframeDocument.body); // Set the iframe body for portal\n\n // Inject CSS content directly\n const styleTag = iframeDocument.createElement('style');\n styleTag.innerHTML = cssContent;\n iframeDocument.head.appendChild(styleTag);\n\n // Adopt or Create Frontend Assets\n frontendAssets.forEach(({ type, id, url }) => {\n const existingElement = document.getElementById(id);\n\n if (existingElement) {\n // If the asset exists in the parent, move it to the iframe\n const adoptedElement = document.adoptNode(\n existingElement.cloneNode(true)\n );\n iframeDocument.head.appendChild(adoptedElement);\n } else {\n // Create a new script or style if not found\n const newElement = iframeDocument.createElement(\n type === 'script' ? 'script' : 'link'\n );\n newElement.id = id;\n\n if (type === 'script') {\n newElement.src = url;\n newElement.async = true;\n } else {\n newElement.rel = 'stylesheet';\n newElement.href = url;\n }\n\n iframeDocument.head.appendChild(newElement);\n }\n });\n }\n };\n }\n\n return () => {\n if (iframe) {\n iframe.onload = null; // Clean up event listener\n }\n };\n }, [htmlContent, cssContent, frontendAssets]);\n\n return (\n <div\n className=\"render-preview-container\"\n style={{ width: '100%', minHeight: '100%' }}\n >\n <iframe\n ref={iframeRef}\n title=\"Preview\"\n sandbox=\"allow-same-origin allow-scripts\"\n className=\"editor-styles-wrapper\"\n width=\"100%\"\n height=\"100%\"\n />\n {iframeBody &&\n createPortal(\n <div className=\"b_\">\n <div\n className=\"b_utils\"\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n />\n </div>,\n iframeBody\n )}\n </div>\n );\n};\n","export const Icon = ({ icon, ...rest }) => {\n if (!icon) return null;\n\n const IconComponent = icon;\n\n // icon should be a valid function\n if (typeof icon === 'function') {\n return <IconComponent {...rest} />;\n }\n\n /* eslint-disable no-console */\n console.error(\n `[BlockBite:Icon] You passed a JSX element (<Icon />) instead of a component reference (Icon).\nExpected: { icon: ColumnsIcon }\nReceived: { icon: <ColumnsIcon /> }`\n );\n\n return <div>⚠</div>;\n};\n","import { Button as WordpressButton } from '@wordpress/components';\nimport classNames from 'classnames';\nimport { Icon } from './Icon.js';\n\ntype ButtonProps = {\n children?: React.ReactNode;\n asChild?: boolean;\n className?: string;\n display?: 'icon' | 'icon-lg' | 'label' | 'auto' | '' | null;\n onClick?: () => void;\n label?: string;\n size?: 'small' | 'default' | 'compact';\n variant?: 'primary' | 'secondary' | 'link' | 'primary' | 'tertiary';\n icon?: any;\n disabled?: boolean;\n};\n\nexport const Button = ({\n children,\n size = 'default',\n label,\n className,\n onClick,\n variant = 'primary',\n display = 'auto',\n icon,\n disabled = false,\n}: ButtonProps) => {\n const isIconDisplay = display === 'icon' || display === 'icon-lg';\n\n return (\n <WordpressButton\n size={size}\n variant={variant}\n label={label}\n showTooltip={true}\n disabled={disabled}\n className={classNames(\n className,\n 'blockbite-ui__button',\n 'flex items-center justify-center gap-1',\n { 'is-primary': variant === 'primary' },\n { 'is-secondary': variant === 'secondary' },\n { 'is-link': variant === 'link' },\n { 'is-tertiary': variant === 'tertiary' },\n { 'is-icon': display === 'icon' }\n )}\n onClick={onClick}\n >\n {icon && (\n <Icon\n icon={icon}\n className={classNames({ 'h-4 w-4': display === 'icon-lg' })}\n />\n )}\n {!isIconDisplay ? children : null}\n {label && !children && !isIconDisplay ? <span>{label}</span> : null}\n </WordpressButton>\n );\n};\n","type WrapProps = {\n children: React.ReactNode;\n className?: string;\n important?: boolean;\n onClick?: (e: React.MouseEvent) => void;\n};\n\nexport const Wrap = ({\n children,\n className,\n important = false,\n onClick,\n}: WrapProps) => {\n if (important) {\n return (\n <div onClick={onClick}>\n <div className={className}>{children}</div>\n </div>\n );\n }\n\n return <div className={className}>{children}</div>;\n};\n","import classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\ntype ChapterProps = {\n children?: React.ReactNode;\n className?: string;\n title?: string;\n};\n\nexport const Chapter = ({ children, title, className }: ChapterProps) => {\n return (\n <Wrap\n className={classNames(\n 'text-gray-medium my-2 flex items-center gap-1 text-[12px] font-medium',\n className\n )}\n >\n {title && <Wrap className=\"font-medium\">{title}</Wrap>}\n {children}\n </Wrap>\n );\n};\n","import classNames from 'classnames';\nimport { Badge } from './Badge.js';\n\ntype ChapterDividerProps = {\n title?: string;\n className?: string;\n help?: string;\n badge?: string;\n addon?: React.ReactNode;\n gradient?: boolean;\n [key: string]: any;\n};\n\nexport const ChapterDivider = ({\n title,\n className,\n help,\n badge,\n addon,\n line = true,\n ...props\n}: ChapterDividerProps) => {\n return (\n <div\n className={classNames(\n 'mb-2',\n className,\n line ? ' border-t border-easy pt-2' : ''\n )}\n {...props}\n >\n <div className=\"w-[90%] flex-wrap items-center gap-2 justify-between\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"shrink-1 text-[11px] font-medium uppercase leading-snug\">\n {title}\n </span>\n {addon}\n </div>\n\n {!!badge && (\n <Badge className=\"mt-1 text-[10px] py-px px-1\">{badge}</Badge>\n )}\n </div>\n {help && <small className=\"w-full shrink-0 text-[11px]\">{help}</small>}\n </div>\n );\n};\n","import { CheckboxControl } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\n\nimport { Wrap } from './Wrap.js';\n\ntype CheckboxProps = {\n id: string;\n label?: string;\n help?: string;\n defaultChecked?: boolean;\n onCheckedChange: (checked: boolean, id: string) => void;\n};\n\nexport const Checkbox = ({ label, help, defaultChecked }: CheckboxProps) => {\n const [isChecked, setChecked] = useState(defaultChecked);\n\n useEffect(() => {\n setChecked(defaultChecked);\n }, [defaultChecked]);\n\n return (\n <Wrap className=\"blockbite-ui__checkbox mx-1 flex items-center gap-2\">\n <CheckboxControl\n label={label}\n help={help}\n checked={isChecked}\n onChange={setChecked}\n />\n </Wrap>\n );\n};\n","const ChevronDown = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ChevronDown;\n","const ColorWheel = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.49991 0.877014C11.1576 0.877014 14.1227 3.84216 14.1227 7.49985C14.1227 11.1575 11.1576 14.1227 7.49991 14.1227C3.84222 14.1227 0.877075 11.1575 0.877075 7.49985C0.877075 3.84216 3.84222 0.877014 7.49991 0.877014ZM7.09998 1.84089V6.53429L3.78135 3.21565C4.68298 2.43239 5.83429 1.92904 7.09998 1.84089ZM1.84095 7.09997H6.5343L3.21567 3.78134C2.43242 4.68298 1.92909 5.83428 1.84095 7.09997ZM1.84097 7.89997C1.92916 9.16562 2.43253 10.3169 3.21579 11.2185L6.5343 7.89997H1.84097ZM7.09998 13.1588V8.46566L3.78149 11.7842C4.6831 12.5673 5.83435 13.0707 7.09998 13.1588ZM7.89998 13.1588C9.16559 13.0706 10.3168 12.5673 11.2184 11.7841L7.89998 8.46566V13.1588ZM13.1588 7.89997H8.46567L11.7841 11.2184C12.5673 10.3168 13.0707 9.16558 13.1588 7.89997ZM13.1589 7.09997C13.0707 5.83432 12.5674 4.68305 11.7842 3.78143L8.46567 7.09997H13.1589ZM7.89998 1.8409V6.53429L11.2185 3.21573C10.3169 2.43246 9.16565 1.92909 7.89998 1.8409Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ColorWheel;\n","const Cross1 = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Cross1;\n","const Cross2 = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Cross2;\n","const InfoCircled = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999ZM7.50003 5.99999C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H9.00003V11H6.00003V9.99999H7.00003V6.99999H6.00003V5.99999H7.50003ZM0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972ZM7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default InfoCircled;\n","const ListBullet = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.25 4.5C2.25 4.08579 1.91421 3.75 1.5 3.75C1.08579 3.75 0.75 4.08579 0.75 4.5C0.75 4.91421 1.08579 5.25 1.5 5.25C1.91421 5.25 2.25 4.91421 2.25 4.5ZM4.5 4H13.5C13.7761 4 14 4.22386 14 4.5C14 4.77614 13.7761 5 13.5 5H4.5C4.22386 5 4 4.77614 4 4.5C4 4.22386 4.22386 4 4.5 4ZM4 7.5C4 7.77614 4.22386 8 4.5 8H13.5C13.7761 8 14 7.77614 14 7.5C14 7.22386 13.7761 7 13.5 7H4.5C4.22386 7 4 7.22386 4 7.5ZM4 10.5C4 10.7761 4.22386 11 4.5 11H13.5C13.7761 11 14 10.7761 14 10.5C14 10.2239 13.7761 10 13.5 10H4.5C4.22386 10 4 10.2239 4 10.5ZM1.5 8.25C1.08579 8.25 0.75 7.91421 0.75 7.5C0.75 7.08579 1.08579 6.75 1.5 6.75C1.91421 6.75 2.25 7.08579 2.25 7.5C2.25 7.91421 1.91421 8.25 1.5 8.25ZM2.25 10.5C2.25 10.0858 1.91421 9.75 1.5 9.75C1.08579 9.75 0.75 10.0858 0.75 10.5C0.75 10.9142 1.08579 11.25 1.5 11.25C1.91421 11.25 2.25 10.9142 2.25 10.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ListBullet;\n","const Pencil1 = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.1465 1.14645L3.71455 8.57836C3.62459 8.66832 3.55263 8.77461 3.50251 8.89155L2.04044 12.303C1.9599 12.491 2.00189 12.709 2.14646 12.8536C2.29103 12.9981 2.50905 13.0401 2.69697 12.9596L6.10847 11.4975C6.2254 11.4474 6.3317 11.3754 6.42166 11.2855L13.8536 3.85355C14.0488 3.65829 14.0488 3.34171 13.8536 3.14645L11.8536 1.14645C11.6583 0.951184 11.3417 0.951184 11.1465 1.14645ZM11.5 2.20711L12.7929 3.5L5.71455 10.5784L4.21924 11.2192L3.78081 10.7808L4.42166 9.28547L11.5 2.20711Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Pencil1;\n","const Percentage = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <circle cx={4.85355} cy={4.5} r={1.5} fill=\"currentColor\" />\n <circle cx={9.85355} cy={10.5} r={1.5} fill=\"currentColor\" />\n <path\n d=\"M3 11.6464L11 3.64642\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\nexport default Percentage;\n","const Plus = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M7.5 2.25C7.22386 2.25 7 2.47386 7 2.75V7H2.75C2.47386 7 2.25 7.22386 2.25 7.5C2.25 7.77614 2.47386 8 2.75 8H7V12.25C7 12.5261 7.22386 12.75 7.5 12.75C7.77614 12.75 8 12.5261 8 12.25V8H12.25C12.5261 8 12.75 7.77614 12.75 7.5C12.75 7.22386 12.5261 7 12.25 7H8V2.75C8 2.47386 7.77614 2.25 7.5 2.25Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Plus;\n","const Slider = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.49988 10.2504C7.1516 10.2504 6.0299 9.28026 5.79473 7.99997H0.5C0.223858 7.99997 0 7.77611 0 7.49997C0 7.22383 0.223858 6.99997 0.5 6.99997H5.7947C6.0298 5.71959 7.15154 4.74939 8.49988 4.74939C9.84822 4.74939 10.97 5.71959 11.2051 6.99997H14.5C14.7761 6.99997 15 7.22383 15 7.49997C15 7.77611 14.7761 7.99997 14.5 7.99997H11.205C10.9699 9.28026 9.84816 10.2504 8.49988 10.2504ZM8.49988 9.30038C7.50549 9.30038 6.69938 8.49427 6.69938 7.49988C6.69938 6.5055 7.50549 5.69939 8.49988 5.69939C9.49426 5.69939 10.3004 6.5055 10.3004 7.49988C10.3004 8.49427 9.49426 9.30038 8.49988 9.30038Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Slider;\n","const Tailwind = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M4 5.33333C4.4 3.77778 5.4 3 7 3C9.4 3 9.7 4.75 10.9 5.04167C11.7 5.23611 12.4 4.94444 13 4.16667C12.6 5.72222 11.6 6.5 10 6.5C7.6 6.5 7.3 4.75 6.1 4.45833C5.3 4.26389 4.6 4.55556 4 5.33333ZM1 8.83333C1.4 7.27778 2.4 6.5 4 6.5C6.4 6.5 6.7 8.25 7.9 8.54167C8.7 8.73611 9.4 8.44444 10 7.66667C9.6 9.22222 8.6 10 7 10C4.6 10 4.3 8.25 3.1 7.95833C2.3 7.76389 1.6 8.05556 1 8.83333Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Tailwind;\n","const Trash = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5 1.5C5 1.77614 5.22386 2 5.5 2H9.5C9.77614 2 10 1.77614 10 1.5C10 1.22386 9.77614 1 9.5 1H5.5C5.22386 1 5 1.22386 5 1.5ZM3.5 3H11.5C11.7761 3 12 3.22386 12 3.5C12 3.77614 11.7761 4 11.5 4H11V12C11 12.5523 10.5523 13 10 13H5C4.44772 13 4 12.5523 4 12V4L3.5 4C3.22386 4 3 3.77614 3 3.5C3 3.22386 3.22386 3 3.5 3ZM10 4V12H5V4H10Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Trash;\n","import { forwardRef } from '@wordpress/element';\nimport classNames from 'classnames';\n\ntype TextControlProps = {\n className?: string;\n inputClassName?: string;\n value: any;\n children?: React.ReactNode;\n onChange?: (value: string) => void;\n onClick?: () => void;\n readOnly?: boolean;\n placeholder?: string;\n onBlur?: (value) => void;\n type?: string;\n label?: string;\n helper?: string;\n [key: string]: any;\n};\n\nexport const TextControl = forwardRef<HTMLInputElement, TextControlProps>(\n (\n {\n onClick,\n onChange,\n className,\n value,\n children,\n inputClassName,\n readOnly,\n placeholder,\n onBlur,\n type = 'text',\n label,\n helper = '',\n ...props\n },\n ref\n ) => {\n const fieldId = `text-control-${Math.random()\n .toString(36)\n .substring(2, 15)}`;\n\n return (\n <div\n className={classNames('flex items-center p-0', className)}\n {...props}\n >\n {label ? (\n <label htmlFor={fieldId} className=\"text-primary !m-0 !mb-0 !mr-2\">\n {label}\n </label>\n ) : null}\n <input\n id={fieldId}\n className={classNames(\n 'components-text-control__input',\n inputClassName\n )}\n type={type}\n value={value}\n placeholder={placeholder}\n onFocus={() => onClick && onClick()}\n onBlur={(e) => {\n if (onClick) onClick();\n if (onBlur) onBlur(e.target.value);\n }}\n onChange={(e) => onChange && onChange(e.target.value)}\n readOnly={readOnly}\n ref={ref}\n />\n {children}\n {helper && <p className=\"text-primary !m-0 !mb-0 text-xs\">{helper}</p>}\n </div>\n );\n }\n);\n\nTextControl.displayName = 'TextControl'; // Recommended for debugging\n","import { Plus as PlusIcon, Trash as TrashIcon } from '@blockbite/icons';\nimport { Button } from '@wordpress/components';\nimport { useRef, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Badge } from './Badge.js';\nimport { TextControl } from './TextControl.js';\n\ntype DataListProps<T extends { id: string | number; title?: string }> = {\n data: T[];\n active: T;\n setActive: (item: T | undefined) => void;\n onCreate: () => void;\n onDelete: (id: T['id']) => void;\n onUpdate: (id: T['id'], updates: Partial<T>) => void;\n onSwitch: (prevId: T['id'], updates: Partial<T>) => void;\n renderItemActions?: (item: T) => React.ReactNode;\n renderItemContent?: (item: T, isActive: boolean) => React.ReactNode;\n addons?: JSX.Element;\n className?: string;\n footerSlot?: React.ReactNode;\n footerSlotClassName?: string;\n badge?: string;\n};\n\nexport const DataItemList = <\n T extends { id: string | number; title?: string },\n>({\n data,\n active,\n setActive,\n onCreate,\n onDelete,\n onUpdate,\n onSwitch,\n renderItemActions,\n renderItemContent,\n addons,\n className = '',\n footerSlot,\n footerSlotClassName = '',\n badge = '',\n}: DataListProps<T>) => {\n const [rename, setRename] = useState<{ id: T['id']; title: string }>({\n id: '' as T['id'],\n title: '',\n });\n const [isSaving, setIsSaving] = useState(false);\n const textRef = useRef<HTMLInputElement | null>(null);\n\n const handleAdd = () => {\n onCreate();\n };\n\n const handleRemove = () => {\n if (!active || data.length === 0) return;\n\n const newData = data.filter((d) => d.id !== active?.id);\n const currentIndex = data.findIndex((d) => d.id === active?.id);\n const nextActive = newData[currentIndex] || newData[0];\n\n onDelete(active.id);\n setActive(nextActive);\n };\n\n const handleRenameBlur = (value: string) => {\n setIsSaving(true);\n if (rename.id) {\n onUpdate(rename.id, { title: value } as Partial<T>);\n }\n\n setTimeout(() => {\n setRename({ id: '' as T['id'], title: '' });\n setIsSaving(false);\n }, 500);\n };\n\n const renderBadge = (item) => {\n if (!badge || !item[badge]) return null;\n return <Badge className=\"ml-2 max-w-[80px] text-sm\">{item[badge]}</Badge>;\n };\n\n return (\n <div\n className={classNames('flex flex-col justify-between h-full', className)}\n >\n <ul className=\"divide-y overflow-auto\">\n {addons}\n {data.length > 0 && (\n <li>\n <ul className=\"divide-y divide-border border-b border-border\">\n {data.map((item) => (\n <li\n key={`data__${item.id}`}\n className={classNames(\n 'relative !mb-0 flex flex-col bg-opacity-50 hover:bg-easy',\n {\n 'bg-[#1e40af]/20': item.id === active?.id,\n }\n )}\n >\n <div className=\"flex items-center justify-between gap-1\">\n <div className=\"flex-1 relative\">\n <button\n className=\"text-gray-medium w-full truncate px-3 py-2 text-left text-sm/6 font-semibold hover:text-wordpress\"\n onClick={() => {\n onSwitch(active?.id, { ...active });\n setActive(item);\n }}\n onDoubleClick={() => {\n setRename({ id: item.id, title: item.title || '' });\n }}\n >\n {isSaving && rename.id === item.id ? (\n <span className=\"animate-pulse text-gray-medium\">\n {rename.title} {renderBadge(item)}\n </span>\n ) : (\n <span className=\"text-gray-medium\">\n {item.title || 'Untitled'} {renderBadge(item)}\n </span>\n )}\n </button>\n {rename.id === item.id && !isSaving && (\n <TextControl\n className=\"absolute left-1 top-0 w-[calc(100%-.5rem)] h-full\"\n inputClassName=\"w-full\"\n defaultValue={rename.title}\n onChange={(value) =>\n setRename({ ...rename, title: value })\n }\n ref={textRef}\n onBlur={() => handleRenameBlur(rename.title)}\n />\n )}\n </div>\n {renderItemActions && (\n <div className=\"flex gap-1 pr-1\">\n {renderItemActions(item)}\n </div>\n )}\n </div>\n {renderItemContent &&\n renderItemContent(item, item.id === active?.id)}\n </li>\n ))}\n </ul>\n </li>\n )}\n </ul>\n <div\n className={classNames(\n 'flex flex-wrap justify-center gap-2 p-2',\n footerSlotClassName\n )}\n >\n {footerSlot}\n <Button\n onClick={handleAdd}\n icon={<PlusIcon className=\"h-4 w-4\" />}\n variant=\"tertiary\"\n size=\"compact\"\n >\n Add\n </Button>\n <Button\n onClick={handleRemove}\n icon={<TrashIcon className=\"h-4 w-4\" />}\n variant=\"tertiary\"\n size=\"compact\"\n disabled={!active || data.length === 0}\n >\n Remove\n </Button>\n </div>\n </div>\n );\n};\n\nexport default DataItemList;\n","import { useEffect, useRef, useState } from '@wordpress/element';\nimport classNames from 'classnames';\nimport { Wrap } from './Wrap.js';\n\ntype DisappearingMessageProps = {\n message?: string;\n className?: string;\n duration?: number;\n children?: React.ReactNode;\n show: boolean;\n onClose?: () => void;\n};\n\nexport const DisappearingMessage = ({\n duration = 3000,\n className,\n children,\n show,\n message,\n onClose,\n}: DisappearingMessageProps) => {\n const [isShowing, setIsShowing] = useState(false);\n const hasMounted = useRef(false);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n hasMounted.current = true;\n }, []);\n\n useEffect(() => {\n if (!hasMounted.current) return;\n\n if (show) {\n setIsShowing(true);\n timeoutRef.current = setTimeout(() => {\n setIsShowing(false);\n onClose?.();\n }, duration);\n }\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, [show, duration, onClose]);\n\n if (!isShowing) return null;\n\n return (\n <Wrap\n important\n className={classNames('bb-ui__disappearing-message', className)}\n >\n <div className=\"bb-ui__disappearing-message__content\">\n {message ?? children}\n </div>\n </Wrap>\n );\n};\n","import { ChevronDown as ChevronDownIcon } from '@blockbite/icons';\nimport { DropdownMenu } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Icon } from './Icon.js';\n\ntype DropdownPickerProps = {\n label?: string;\n className?: string;\n value: string;\n defaultIcon?: any;\n size?: 'small' | 'medium' | 'large';\n options: {\n icon?: React.ReactElement;\n label: string;\n subtitle?: string;\n value: string;\n }[];\n onPressedChange: (value: string | null) => void; // Updated to allow `null` for reset\n [x: string]: any;\n};\n\nexport const DropdownPicker = ({\n label,\n className,\n value,\n defaultIcon = ChevronDownIcon,\n size = 'medium',\n onPressedChange,\n options,\n ...rest\n}: DropdownPickerProps) => {\n const [currentOption, setCurrentOption] = useState<string | null>(null);\n\n useEffect(() => {\n setCurrentOption(value);\n }, [value]);\n\n const allOptions = [\n ...options.map((option) => ({\n icon: option.icon,\n label: option.label,\n title: option.label,\n value: option.value,\n onClick: () => {\n setCurrentOption(option.value);\n onPressedChange(option.value);\n },\n })),\n {\n icon: <Icon icon={defaultIcon} />,\n title: 'Reset',\n value: 'reset',\n onClick: () => {\n setCurrentOption('reset');\n onPressedChange('reset');\n },\n },\n ];\n\n let iconSize = '1em';\n if (size === 'medium') {\n iconSize = '1.5em';\n } else if (size === 'large') {\n iconSize = '2em';\n }\n\n return (\n <DropdownMenu\n controls={allOptions}\n className={classNames('blockbite-ui__dropdown-picker', className)}\n icon={\n options.find((option) => option.value === currentOption)?.icon || (\n <Icon width={iconSize} height={iconSize} icon={defaultIcon} />\n )\n }\n label={label || 'Select'}\n {...rest}\n />\n );\n};\n","type Props = {\n icon?: JSX.Element;\n title: string;\n description: string;\n children?: React.ReactNode;\n [key: string]: any;\n};\n\nexport function EmptyState({\n icon,\n title,\n description,\n children = null,\n ...rest\n}: Props) {\n return (\n <div {...rest}>\n <div className=\"flex h-full w-full flex-col items-center justify-center text-center !font-sans\">\n <div className=\"max-w-sm\">\n {icon && <div className=\"mx-auto !text-gray-400\">{icon}</div>}\n <h3 className=\"text-gray-medium !mt-2 !mb-0 !font-sans !text-lg !font-medium !normal-case\">\n {title}\n </h3>\n <p className=\"!mt-1 !font-sans !text-sm !text-gray-500\">\n {description}\n </p>\n {children && <div className=\"mt-4\">{children}</div>}\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef, useState } from '@wordpress/element';\n\ntype DraggablePanelProps = {\n children: React.ReactNode;\n};\n\nexport function FloatingPanel({\n children,\n}: DraggablePanelProps & {\n children: React.ReactNode;\n}) {\n const panelRef = useRef(null);\n const [position, setPosition] = useState({ x: 100, y: 100 });\n const [dragging, setDragging] = useState(false);\n const [offset, setOffset] = useState({ x: 0, y: 0 });\n\n useEffect(() => {\n const handleMouseMove = (e) => {\n if (dragging) {\n setPosition({\n x: e.clientX - offset.x,\n y: e.clientY - offset.y,\n });\n }\n };\n\n const handleMouseUp = () => setDragging(false);\n\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [dragging, offset]);\n\n const startDragging = (e) => {\n const rect = panelRef.current.getBoundingClientRect();\n setOffset({ x: e.clientX - rect.left, y: e.clientY - rect.top });\n setDragging(true);\n };\n\n return (\n <div>\n <div\n ref={panelRef}\n className=\"fixed bg-white shadow-xl rounded-2xl p-4 w-[400px] h-[550px] z-[9999]\"\n style={{ left: position.x, top: position.y }}\n >\n {children}\n <div\n className=\"absolute top-1 right-1 cursor-move w-5 h-5 bg-gray-300 rounded\"\n onMouseDown={startDragging}\n ></div>\n </div>\n </div>\n );\n}\n","import { FocalPointPicker } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\n\nimport { Wrap } from './Wrap.js';\n\ntype FocalPointControlProps = {\n value: string;\n onValueChange: (value: string) => void;\n url?: string;\n};\n\nexport const FocalPointControl: React.FC<FocalPointControlProps> = ({\n value,\n onValueChange,\n url,\n}) => {\n const [focalPoint, setFocalPoint] = useState({\n x: 0.5,\n y: 0.5,\n });\n\n // Sync local state with controlled value prop\n useEffect(() => {\n if (value && value.includes('%')) {\n const [x, y] = value\n .replace('[', '')\n .replace('%]', '')\n .split('_')\n .map((v: string) => parseFloat(v) / 100);\n setFocalPoint({ x, y });\n }\n }, [value]);\n\n // Notify parent on local state change\n useEffect(() => {\n onValueChange(\n `[${(focalPoint.x * 100).toFixed(2)}%_${(focalPoint.y * 100).toFixed(2)}%]`\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focalPoint]);\n\n return (\n <Wrap className=\"relative flex flex-col\">\n <FocalPointPicker\n url={url}\n value={focalPoint}\n onDrag={setFocalPoint}\n onChange={setFocalPoint}\n />\n </Wrap>\n );\n};\n\nexport default FocalPointControl;\n","// Popover.tsx\nimport { Cross2 } from '@blockbite/icons';\nimport { Button, Popover as WordpressPopover } from '@wordpress/components';\n\ntype PopoverProps = {\n children: React.ReactNode;\n className?: string;\n position?: any;\n visible: boolean; // controlled\n anchor?: HTMLElement | null; // anchor element for positioning\n onClose?: () => void; // simple close callback\n onVisibleChange?: (value: boolean) => void; // compatibility with old API\n offset?: number;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n className,\n position,\n visible,\n anchor,\n onClose,\n onVisibleChange,\n offset,\n}) => {\n if (!visible) return null;\n\n const handleClose = () => {\n onClose?.();\n onVisibleChange?.(false);\n };\n\n return (\n <WordpressPopover\n position={position}\n className=\"blockbite-ui__popover\"\n anchor={anchor}\n onFocusOutside={handleClose}\n offset={offset}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Escape') handleClose();\n }}\n >\n <div className={className}>\n <div className=\"relative h-full w-full p-4\">\n <Button\n onClick={handleClose}\n size=\"small\"\n className=\"close-button absolute right-2 top-2 !p-0 !min-w-0 !h-6 w-6 inline-flex items-center justify-center\"\n >\n <Cross2 className=\"w-4 h-4\" />\n </Button>\n {children}\n </div>\n </div>\n </WordpressPopover>\n );\n};\n\nexport default Popover;\n","import { SelectControl as WordpressSelect } from '@wordpress/components';\n\ntype SelectControlWrapperProps = {\n value: string;\n children?: any;\n options: any[];\n label?: string;\n emptyLabel?: string;\n disabled?: boolean;\n onChange?: (value: string) => void;\n className?: string; // allow styling on the wrapper\n};\n\nexport const SelectControlWrapper = ({\n onChange,\n value,\n options,\n label = '',\n disabled = false,\n emptyLabel = 'No options available',\n className,\n}: SelectControlWrapperProps) => {\n const handleChange = (val: string) => {\n if (onChange) {\n onChange(val);\n }\n };\n\n return (\n <div className={className}>\n {options && options.length > 0 ? (\n <WordpressSelect\n __nextHasNoMarginBottom\n label={label || ''}\n value={value || ''}\n disabled={disabled}\n onChange={handleChange}\n options={[\n { value: '', label: 'Select an option' },\n // safeguard: map options to value/label\n ...options.map((o) => ({ value: o.value, label: o.label })),\n ]}\n />\n ) : (\n <p className=\"text-sm text-gray-500 !mb-0\">{emptyLabel}</p>\n )}\n </div>\n );\n};\n","// GradientSwatchPicker.tsx\n\nimport {\n Button,\n ColorIndicator,\n ColorPicker,\n TextControl,\n} from '@wordpress/components';\nimport { useCallback, useRef, useState } from '@wordpress/element';\nimport { ButtonToggleGroup } from './ButtonToggle.js';\nimport Popover from './Popover.js';\nimport { SelectControlWrapper } from './SelectControlWrapper.js';\n//\n// Types\n//\n\nexport type PaletteColor = {\n name: string; // \"primary\"\n color: string; // \"#f3ff4a\"\n value: string; // \"primary\" (tailwind token)\n};\n\ntype GradientKind = 'linear' | 'radial';\n\ntype Direction =\n | 'to-t'\n | 'to-tr'\n | 'to-r'\n | 'to-br'\n | 'to-b'\n | 'to-bl'\n | 'to-l'\n | 'to-tl';\n\ntype StopRole = 'from' | 'via' | 'to';\n\ntype GradientStop = {\n id: string;\n role: StopRole;\n colorToken: string; // Tailwind color token, e.g. \"primary\", \"neutral\", \"[#ff0000]\"\n position: number; // 0–100 (%)\n opacity: number; // 0–100 (%)\n};\n\nexport type TailwindGradientValue = {\n kind: GradientKind;\n direction: Direction; // used for linear\n stops: GradientStop[];\n};\n\nexport type GradientSwatchPickerProps = {\n colors: PaletteColor[];\n activeOptionValue?: any;\n onChange?: (nextClassGroups: any) => void;\n};\n\n//\n// Tailwind direction helpers\n//\n\nconst directionToClass: Record<Direction, string> = {\n 'to-t': 'bg-gradient-to-t',\n 'to-tr': 'bg-gradient-to-tr',\n 'to-r': 'bg-gradient-to-r',\n 'to-br': 'bg-gradient-to-br',\n 'to-b': 'bg-gradient-to-b',\n 'to-bl': 'bg-gradient-to-bl',\n 'to-l': 'bg-gradient-to-l',\n 'to-tl': 'bg-gradient-to-tl',\n};\n\nconst classToDirection: Record<string, Direction> = Object.keys(\n directionToClass\n).reduce(\n (acc, dir) => {\n const cls = directionToClass[dir as Direction];\n acc[cls] = dir as Direction;\n return acc;\n },\n {} as Record<string, Direction>\n);\n\nconst directionToAngle: Record<Direction, number> = {\n 'to-t': 0,\n 'to-tr': 45,\n 'to-r': 90,\n 'to-br': 135,\n 'to-b': 180,\n 'to-bl': 225,\n 'to-l': 270,\n 'to-tl': 315,\n};\n\nconst RADIAL_CLASS = 'bg-radial';\n\nconst clamp = (value: number, min: number, max: number) =>\n Math.min(max, Math.max(min, value));\n\n//\n// Color helpers\n//\n\n// token can be \"primary\", \"primary/50\", \"[#ff0000]\" or \"[#ff0000]/50\"\nfunction parseToken(\n palette: PaletteColor[],\n token: string\n): { hex: string | null; baseToken: string; opacityFromToken: number | null } {\n if (!token) return { hex: null, baseToken: token, opacityFromToken: null };\n\n const [base, opacityPart] = token.split('/');\n const opacityFromToken =\n opacityPart != null ? clamp(parseInt(opacityPart, 10) || 0, 0, 100) : null;\n\n let hex: string | null = null;\n\n if (base.startsWith('[') && base.endsWith(']')) {\n hex = base.slice(1, -1);\n } else {\n const found = palette.find((c) => c.value === base);\n hex = found?.color ?? null;\n }\n\n return { hex, baseToken: base, opacityFromToken };\n}\n\nfunction buildToken(baseToken: string, opacity?: number): string {\n if (opacity != null && opacity < 100) {\n return `${baseToken}/${clamp(opacity, 0, 100)}`;\n }\n return baseToken;\n}\n\nfunction hexWithOpacity(hex: string, opacity: number): string {\n // hex: \"#rrggbb\"\n const o = clamp(opacity, 0, 100) / 100;\n const clean = hex.replace('#', '');\n const r = parseInt(clean.slice(0, 2), 16);\n const g = parseInt(clean.slice(2, 4), 16);\n const b = parseInt(clean.slice(4, 6), 16);\n return `rgba(${r}, ${g}, ${b}, ${o})`;\n}\n\n//\n// Gradient CSS for preview\n//\n\nfunction gradientToCss(\n value: TailwindGradientValue,\n palette: PaletteColor[]\n): string {\n const sortedStops = [...value.stops].sort((a, b) => a.position - b.position);\n\n const parts = sortedStops\n .map((stop) => {\n const { hex } = parseToken(palette, stop.colorToken);\n if (!hex) return null;\n const color = hexWithOpacity(hex, stop.opacity ?? 100);\n return `${color} ${stop.position}%`;\n })\n .filter(Boolean)\n .join(', ');\n\n if (value.kind === 'radial') {\n return `radial-gradient(circle, ${parts})`;\n }\n\n const angle = directionToAngle[value.direction] ?? 90;\n return `linear-gradient(${angle}deg, ${parts})`;\n}\n\n//\n// Class groups <-> TailwindGradientValue\n//\n// Expected / emitted groups:\n//\n// 'gradient-direction': 'bg-gradient-to-r' | 'bg-radial'\n// 'gradient-from': [{ from: 'primary/100' }]\n// 'gradient-from-pos': [{ from: '0%' }]\n// 'gradient-via': [{ via: 'neutral/80' }, ...]\n// 'gradient-via-pos': [{ via: '30%' }, ...]\n// 'gradient-to': [{ to: 'neutral/100' }]\n// 'gradient-to-pos': [{ to: '100%' }]\n//\n\n// Helper to parse position values from both [X%] and X% formats\nfunction parsePositionValue(v?: string): number | undefined {\n if (!v) return undefined;\n let cleaned = String(v);\n if (cleaned.startsWith('[') && cleaned.endsWith(']')) {\n cleaned = cleaned.slice(1, -1); // Remove brackets\n }\n const n = parseFloat(cleaned.replace('%', ''));\n return Number.isFinite(n) ? Math.min(100, Math.max(0, n)) : undefined;\n}\n\nexport function classGroupsToGradientValue(\n groups: Record<string, any> | null | undefined,\n palette: PaletteColor[]\n): TailwindGradientValue | null {\n if (!groups) return null;\n\n const directionClass = groups['gradient-direction'] as string | undefined;\n\n const kind: GradientKind =\n directionClass === RADIAL_CLASS ? 'radial' : 'linear';\n\n const direction: Direction =\n kind === 'radial'\n ? 'to-r'\n : directionClass\n ? classToDirection[directionClass] || 'to-r'\n : 'to-r';\n\n const stops: GradientStop[] = [];\n\n const fromGroup = groups['gradient-from']?.[0];\n const fromPosGroup = groups['gradient-from-pos']?.[0];\n if (fromGroup?.from) {\n const token = String(fromGroup.from);\n const { opacityFromToken } = parseToken(palette, token);\n stops.push({\n id: 'from',\n role: 'from',\n colorToken: token,\n position: parsePositionValue(fromPosGroup?.from) ?? 0,\n opacity: opacityFromToken ?? 100,\n });\n }\n\n const viaGroup = groups['gradient-via'] || [];\n const viaPosGroup = groups['gradient-via-pos'] || [];\n viaGroup.forEach((viaItem: any, index: number) => {\n const token = String(viaItem.via);\n const { opacityFromToken } = parseToken(palette, token);\n const pos = viaPosGroup[index]?.via;\n stops.push({\n id: `via-${index}`,\n role: 'via',\n colorToken: token,\n position: parsePositionValue(pos) ?? 50,\n opacity: opacityFromToken ?? 100,\n });\n });\n\n const toGroup = groups['gradient-to']?.[0];\n const toPosGroup = groups['gradient-to-pos']?.[0];\n if (toGroup?.to) {\n const token = String(toGroup.to);\n const { opacityFromToken } = parseToken(palette, token);\n stops.push({\n id: 'to',\n role: 'to',\n colorToken: token,\n position: parsePositionValue(toPosGroup?.to) ?? 100,\n opacity: opacityFromToken ?? 100,\n });\n }\n\n if (!stops.length) return null;\n\n return { kind, direction, stops: normalizeStops(stops) };\n}\n\nexport function gradientValueToClassGroups(\n value: TailwindGradientValue\n): Record<string, any> {\n const groups: Record<string, any> = {};\n\n groups['gradient-direction'] =\n value.kind === 'radial' ? RADIAL_CLASS : directionToClass[value.direction];\n\n const sorted = normalizeStops(value.stops);\n\n const from = sorted.find((s) => s.role === 'from');\n const to = sorted.find((s) => s.role === 'to');\n const vias = sorted.filter((s) => s.role === 'via');\n\n if (from) {\n groups['gradient-from'] = [\n { from: buildToken(from.colorToken, from.opacity) },\n ];\n groups['gradient-from-pos'] = [{ from: `${from.position}%` }];\n }\n\n if (to) {\n groups['gradient-to'] = [{ to: buildToken(to.colorToken, to.opacity) }];\n groups['gradient-to-pos'] = [{ to: `${to.position}%` }];\n }\n\n if (vias.length) {\n groups['gradient-via'] = vias.map((v) => ({\n via: buildToken(v.colorToken, v.opacity),\n }));\n groups['gradient-via-pos'] = vias.map((v) => ({\n via: `${v.position}%`,\n }));\n }\n\n return groups;\n}\n\n// Convenience mappers for consumers\nexport function gradientClassGroupsToArray(\n groups: Record<string, any>\n): Array<{ id: string; value: string }> {\n const out: Array<{ id: string; value: string }> = [];\n const obj = groups || {};\n Object.keys(obj).forEach((key) => {\n const val = obj[key];\n if (key === 'gradient-direction' && typeof val === 'string') {\n out.push({ id: key, value: val });\n return;\n }\n if (Array.isArray(val)) {\n val.forEach((entry) => {\n const role = entry.from\n ? 'from'\n : entry.via\n ? 'via'\n : entry.to\n ? 'to'\n : undefined;\n if (!role) return;\n let value = entry[role];\n if (key.endsWith('-pos') && typeof value === 'string') {\n const num = parseFloat(String(value).replace('%', ''));\n if (!Number.isNaN(num)) {\n // Use arbitrary value syntax for Tailwind 4 compatibility\n // Format: [X%] where X is rounded to avoid overly precise decimals\n const rounded = Math.round(num * 100) / 100;\n value = `[${rounded}%]`;\n }\n }\n out.push({ id: key, value });\n });\n }\n });\n return out;\n}\n\nexport function gradientValueToArray(\n value: TailwindGradientValue\n): Array<{ id: string; value: string }> {\n return gradientClassGroupsToArray(gradientValueToClassGroups(value));\n}\n\nexport const arrayToGradient = (\n arr: Array<{ id: string; value: string; selector?: string }>\n): TailwindGradientValue => {\n // Filter out empty values up-front to avoid creating phantom stops\n const items = Array.isArray(arr)\n ? arr.filter((i) => String(i?.value ?? '').trim() !== '')\n : [];\n\n // If there are no items at all, bail out immediately before any assignments\n if (items.length === 0) {\n return null as unknown as TailwindGradientValue;\n }\n\n // Detect if the incoming array is the new gradient group format\n // If so, and there are no meaningful values, return null so the\n // consumer can fall back to a sane default (2 stops)\n const raw = Array.isArray(arr) ? arr : [];\n const hasGradientGroupIds = raw.some((i) =>\n [\n 'gradient-direction',\n 'gradient-from',\n 'gradient-from-pos',\n 'gradient-via',\n 'gradient-via-pos',\n 'gradient-to',\n 'gradient-to-pos',\n ].includes(i?.id as string)\n );\n\n // Prefer id-based reconstruction from classGroup-like array\n const get = (id: string) => items.filter((i) => i.id === id);\n\n // If this looks like gradient group data but has no meaningful values, bail out early\n if (hasGradientGroupIds) {\n const hasAnyValues = Boolean(\n get('gradient-from')[0]?.value ||\n get('gradient-to')[0]?.value ||\n get('gradient-direction')[0]?.value ||\n (get('gradient-via').length &&\n get('gradient-via').some((t) => !!t.value)) ||\n get('gradient-from-pos')[0]?.value ||\n get('gradient-to-pos')[0]?.value ||\n (get('gradient-via-pos').length &&\n get('gradient-via-pos').some((t) => !!t.value))\n );\n if (!hasAnyValues) {\n return null as unknown as TailwindGradientValue;\n }\n }\n\n // get() already declared above\n\n const stops: GradientStop[] = [];\n\n const fromToken = get('gradient-from')[0]?.value;\n const fromPos = parsePositionValue(get('gradient-from-pos')[0]?.value);\n if (fromToken) {\n stops.push({\n id: 'from',\n role: 'from',\n colorToken: fromToken,\n position: fromPos ?? 0,\n opacity: 100,\n });\n }\n\n const viaTokens = get('gradient-via');\n const viaPos = get('gradient-via-pos');\n viaTokens.forEach((t, idx) => {\n const token = t.value;\n if (!token) return;\n const pos = parsePositionValue(viaPos[idx]?.value);\n stops.push({\n id: `via-${idx}`,\n role: 'via',\n colorToken: token,\n position: pos ?? 50,\n opacity: 100,\n });\n });\n\n const toToken = get('gradient-to')[0]?.value;\n const toPos = parsePositionValue(get('gradient-to-pos')[0]?.value);\n if (toToken) {\n stops.push({\n id: 'to',\n role: 'to',\n colorToken: toToken,\n position: toPos ?? 100,\n opacity: 100,\n });\n }\n\n if (stops.length) {\n const dirItem = get('gradient-direction')[0];\n const directionClass = dirItem?.value;\n const kind: GradientKind =\n directionClass === RADIAL_CLASS ? 'radial' : 'linear';\n const direction: Direction =\n kind === 'radial'\n ? 'to-r'\n : directionClass && classToDirection[directionClass]\n ? classToDirection[directionClass]\n : 'to-r';\n return { kind, direction, stops: normalizeStops(stops) };\n }\n\n // If this looks like gradient group data but had no values, bail out so caller can default\n // hasGradientGroupIds handled above with value presence check\n\n // Fallback: accept legacy array with selector-based roles (from-/via-/to-)\n const fallbackStops: GradientStop[] = items.map((item, idx) => {\n const sel = item?.selector ?? '';\n let role: StopRole = 'via';\n if (sel.startsWith('from-') || idx === 0) role = 'from';\n else if (sel.startsWith('to-') || idx === items.length - 1) role = 'to';\n return {\n id: item.id ?? (role === 'via' ? `via-${idx}` : role),\n role,\n colorToken: item.value,\n position: idx === 0 ? 0 : idx === items.length - 1 ? 100 : 50,\n opacity: 100,\n };\n });\n\n return {\n kind: 'linear',\n direction: 'to-r',\n stops: normalizeStops(fallbackStops),\n };\n};\n\n//\n// Stop normalization: first = from, last = to, middle = via\n//\n\nexport function normalizeStops(stops: GradientStop[]): GradientStop[] {\n const sorted = [...stops].sort((a, b) => a.position - b.position);\n if (!sorted.length) return sorted;\n\n return sorted.map((stop, index) => {\n let role: StopRole = 'via';\n if (index === 0) role = 'from';\n if (index === sorted.length - 1) role = 'to';\n return { ...stop, role };\n });\n}\n\n//\n// UI component: TailwindGradientPicker\n//\n\nexport type TailwindGradientPickerProps = {\n palette: PaletteColor[];\n value: TailwindGradientValue;\n onChange: (value: TailwindGradientValue) => void;\n};\n\nexport const TailwindGradientPicker: React.FC<TailwindGradientPickerProps> = ({\n palette,\n value,\n onChange,\n}) => {\n const trackRef = useRef<HTMLDivElement | null>(null);\n const [activeStopId, setActiveStopId] = useState<string | null>(null);\n const [popoverVisible, setPopoverVisible] = useState(false);\n const [popoverAnchor, setPopoverAnchor] = useState<HTMLElement | null>(null);\n // Local state for smooth dragging - only visual updates during drag\n const [dragState, setDragState] = useState<{\n stopId: string;\n position: number;\n } | null>(null);\n\n // Use drag position for visual preview, fall back to actual value\n const displayStops = dragState\n ? value.stops.map((s) =>\n s.id === dragState.stopId ? { ...s, position: dragState.position } : s\n )\n : value.stops;\n\n const activeStop = value.stops.find((s) => s.id === activeStopId);\n\n const updateStops = (updater: (stops: GradientStop[]) => GradientStop[]) => {\n const nextStops = normalizeStops(updater(value.stops));\n onChange({ ...value, stops: nextStops });\n };\n\n const updateStop = (id: string, patch: Partial<GradientStop>) => {\n updateStops((stops) =>\n stops.map((s) => (s.id === id ? { ...s, ...patch } : s))\n );\n };\n\n const removeStop = (id: string) => {\n // keep at least 2 stops\n if (value.stops.length <= 2) return;\n updateStops((stops) => stops.filter((s) => s.id !== id));\n };\n\n const handleTrackClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // ignore if click started on a handle\n const target = e.target as HTMLElement;\n if (target.dataset?.stopHandle === 'true') return;\n\n const track = trackRef.current;\n if (!track) return;\n const rect = track.getBoundingClientRect();\n const pos = ((e.clientX - rect.left) / rect.width) * 100;\n const position = clamp(pos, 0, 100);\n\n // nearest stop's color & opacity\n const nearest =\n value.stops.reduce(\n (best, s) =>\n Math.abs(s.position - position) < Math.abs(best.position - position)\n ? s\n : best,\n value.stops[0]\n ) ?? value.stops[0];\n\n const id = `via-${Date.now()}`;\n\n updateStops((stops) => [\n ...stops,\n {\n id,\n role: 'via',\n colorToken: nearest.colorToken,\n position,\n opacity: nearest.opacity,\n },\n ]);\n\n setActiveStopId(id);\n };\n\n const handleHandleMouseDown = (\n e: React.MouseEvent<HTMLDivElement>,\n stop: GradientStop\n ) => {\n e.stopPropagation();\n e.preventDefault();\n if (!trackRef.current) return;\n const track = trackRef.current;\n\n setActiveStopId(stop.id);\n\n const rect = track.getBoundingClientRect();\n\n const onMove = (event: MouseEvent) => {\n const raw = ((event.clientX - rect.left) / rect.width) * 100;\n const position = clamp(raw, 0, 100);\n // Only update local drag state for smooth visual feedback\n setDragState({ stopId: stop.id, position });\n };\n\n const onUp = (event: MouseEvent) => {\n window.removeEventListener('mousemove', onMove);\n window.removeEventListener('mouseup', onUp);\n // Commit the final position to the parent on mouseup\n const raw = ((event.clientX - rect.left) / rect.width) * 100;\n const position = clamp(raw, 0, 100);\n setDragState(null);\n updateStop(stop.id, { position });\n };\n\n window.addEventListener('mousemove', onMove);\n window.addEventListener('mouseup', onUp);\n };\n\n const openColorPopover = (stop: GradientStop, target: HTMLElement) => {\n setActiveStopId(stop.id);\n setPopoverAnchor(target);\n setPopoverVisible(true);\n };\n\n const handleKindChange = (kind: GradientKind) => {\n onChange({ ...value, kind });\n };\n\n const handleDirectionChange = (direction: Direction) => {\n onChange({ ...value, direction });\n };\n\n const handleColorPickerChange = useCallback(\n (color: any) => {\n if (!activeStop) return;\n const hex = typeof color === 'string' ? color : (color?.hex ?? '#000000');\n // arbitrary tailwind color: [#rrggbb]\n const baseToken = `[${hex}]`;\n updateStop(activeStop.id, { colorToken: baseToken });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeStop]\n );\n\n return (\n <div className=\"bb-gradient-picker space-y-3 text-xs\">\n {/* Kind dropdown (Linear / Radial) */}\n <div className=\"flex items-center gap-2\">\n <SelectControlWrapper\n label=\"Type\"\n options={[\n { label: 'Linear', value: 'linear' },\n { label: 'Radial', value: 'radial' },\n ]}\n value={value.kind}\n onChange={(nextKind) => handleKindChange(nextKind as GradientKind)}\n ></SelectControlWrapper>\n </div>\n\n {/* Direction buttons (for linear only) */}\n {value.kind === 'linear' && (\n <ButtonToggleGroup\n options={[\n { value: 'to-l', label: 'to-l' },\n { value: 'to-r', label: 'to-r' },\n { value: 'to-t', label: 'to-t' },\n { value: 'to-b', label: 'to-b' },\n { value: 'to-tl', label: 'to-tl' },\n { value: 'to-tr', label: 'to-tr' },\n { value: 'to-bl', label: 'to-bl' },\n { value: 'to-br', label: 'to-br' },\n ]}\n value={value.direction}\n onPressedChange={(dir) => handleDirectionChange(dir as Direction)}\n ></ButtonToggleGroup>\n )}\n\n {/* Gradient track with draggable handles */}\n <div\n ref={trackRef}\n className=\"relative h-8 w-full cursor-crosshair rounded border\"\n style={{\n backgroundImage: gradientToCss(\n { ...value, stops: displayStops },\n palette\n ),\n }}\n onMouseDown={handleTrackClick}\n >\n {displayStops.map((stop) => (\n <div\n key={stop.id}\n data-stop-handle=\"true\"\n className=\"absolute top-1/2 h-4 w-4 rounded-full -translate-y-1/2 -translate-x-1/2 cursor-pointer ring-2 ring-border\"\n style={{\n left: `${stop.position}%`,\n backgroundColor: stop.colorToken.startsWith('[')\n ? stop.colorToken.slice(1, -1)\n : undefined,\n }}\n onMouseDown={(e) => handleHandleMouseDown(e, stop)}\n onClick={(e) => {\n e.stopPropagation();\n setActiveStopId(stop.id);\n }}\n />\n ))}\n </div>\n\n {/* Stops table (Figma-like) */}\n <div className=\"space-y-1\">\n <div className=\"flex items-start justify-between text-[10px] font-semibold uppercase\">\n <span>Stops</span>\n </div>\n\n <div className=\"space-y-1\">\n {normalizeStops(displayStops).map((stop) => {\n const { hex, baseToken } = parseToken(palette, stop.colorToken);\n return (\n <div\n key={stop.id}\n className={`flex gap-2 items-start ${\n activeStopId === stop.id ? 'bg-wp/10' : 'bg-transparent'\n }`}\n onClick={() => setActiveStopId(stop.id)}\n >\n {/* Position */}\n <TextControl\n className=\"w-16 h-6\"\n __nextHasNoMarginBottom\n value={String(Math.round(stop.position))}\n onChange={(val: string) => {\n const num = clamp(parseFloat(val) || 0, 0, 100);\n updateStop(stop.id, { position: num });\n }}\n type=\"text\"\n suffix=\"%\"\n />\n\n {/* Color cell (indicator + token) */}\n <button\n type=\"button\"\n className=\"flex w-16 h-[32px] items-center gap border border-border\"\n onClick={(e) =>\n openColorPopover(stop, e.currentTarget as HTMLElement)\n }\n >\n <ColorIndicator\n colorValue={hex ?? '#000000'}\n className=\"!h-4 !w-4\"\n />\n <span className=\"truncate text-[11px]\">{baseToken}</span>\n </button>\n\n {/* Opacity */}\n <TextControl\n __nextHasNoMarginBottom\n className=\"w-12\"\n value={String(Math.round(stop.opacity))}\n onChange={(val: string) => {\n const num = clamp(parseFloat(val) || 0, 0, 100);\n updateStop(stop.id, { opacity: num });\n }}\n type=\"text\"\n suffix=\"%\"\n />\n\n {/* Remove */}\n <Button\n type=\"button\"\n className=\"flex h-6 w-6 items-center justify-center rounded border text-xs\"\n onClick={() => removeStop(stop.id)}\n disabled={value.stops.length <= 1}\n >\n –\n </Button>\n </div>\n );\n })}\n </div>\n </div>\n\n {/* Color popover: palette + ColorPicker */}\n <Popover\n visible={popoverVisible && !!activeStop}\n anchor={popoverAnchor}\n onClose={() => setPopoverVisible(false)}\n position=\"bottom center\"\n offset={8}\n >\n {activeStop && (\n <div className=\"space-y-3\">\n {/* Palette swatches */}\n <div className=\"flex flex-wrap gap-1\">\n {palette.map((c) => (\n <button\n key={c.value}\n type=\"button\"\n className=\"flex h-6 w-6 items-center justify-center rounded-full border\"\n onClick={() =>\n updateStop(activeStop.id, {\n colorToken: c.value,\n })\n }\n >\n <ColorIndicator\n colorValue={c.color}\n className=\"!h-5 !w-5 !rounded-full\"\n />\n </button>\n ))}\n </div>\n\n {/* Color picker (writes arbitrary color as [#hex]) */}\n <ColorPicker\n color={\n parseToken(palette, activeStop.colorToken).hex ?? '#000000'\n }\n onChange={handleColorPickerChange}\n />\n </div>\n )}\n </Popover>\n </div>\n );\n};\n","import classNames from 'classnames';\n\ntype LabelProps = {\n children?: React.ReactNode;\n className?: string;\n title?: string;\n};\n\nexport const Label = ({ children, title, className }: LabelProps) => {\n return (\n <span\n className={classNames(\n 'text-[11px] font-medium uppercase leading-snug flex gap-2 items-center',\n className\n )}\n >\n {title ? title : children}\n </span>\n );\n};\n","import apiFetch from '@wordpress/api-fetch';\nimport { TextControl } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Wrap } from './Wrap.js';\n\nexport function LinkPicker(props) {\n const [activeKeyword, setActiveKeyword] = useState('');\n const [links, setLinks] = useState<\n Array<{ id: number; url: string; title: string; post_type: string }>\n >([]);\n const [activeLink, setActiveLink] = useState({\n url: '',\n title: '',\n });\n\n useEffect(() => {\n if (activeKeyword === '') return;\n setLinks(null);\n (apiFetch as any)({\n path: `/blockbite/v1/block-helpers/get-links/${activeKeyword}`,\n }).then(\n (\n fetchedLinks: Array<{\n id: number;\n url: string;\n title: string;\n post_type: string;\n }> | null\n ) => {\n if (fetchedLinks?.length) {\n setLinks([...fetchedLinks]);\n } else {\n setLinks([]);\n }\n }\n );\n }, [activeKeyword]);\n\n useEffect(() => {\n if (activeLink.url !== '') {\n props.parentCallback(activeLink);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeLink]);\n\n return (\n <Wrap className=\"blockbite--editor-linkwrap\">\n <TextControl\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n label={__('Search link', 'blockbitelinks')}\n value={activeKeyword}\n placeholder=\"Example: About\"\n onChange={(value) => setActiveKeyword(value)}\n help={__('Type a post, page, title', 'blockbitelinks')}\n />\n {activeKeyword ? (\n <div className=\"blockbite--editor-linklist\">\n <LinkList\n links={links}\n onActiveLink={(link) => [\n setActiveLink({ ...link }),\n setActiveKeyword(''),\n ]}\n />\n </div>\n ) : null}\n </Wrap>\n );\n}\nfunction LinkList({ links, onActiveLink }) {\n if (links === null) {\n return <p>Loading...</p>;\n } else if (links.length === 0) {\n return <p>No Results</p>;\n }\n\n const list = links.map((link) => (\n <Wrap key={link.id}>\n <span\n className=\"blockbite--editor-link\"\n onClick={() => onActiveLink(link)}\n >\n dwddw\n <span>{link.title}</span>\n <span className=\"blockbite--preview-link\">{link.url}</span>\n <span className=\"blockbite--preview-link\">{link.post_type}</span>\n </span>\n </Wrap>\n ));\n\n return <>{list}</>; // ✅ Wrapped\n}\n","import { MediaUpload, MediaUploadCheck } from '@wordpress/block-editor';\nimport { Button, PanelRow } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nexport function MediaPicker({ mediaProps, mediaCallback }) {\n const allowedTypes = [\n 'image',\n 'video',\n 'image/svg+xml',\n 'svg',\n 'text/plain',\n 'application/json',\n ];\n\n // Initialize with id: 0 to match the logic in the render conditions\n const [stateMedia, setStateMedia] = useState({\n id: null,\n url: '',\n sizes: [],\n alt: '',\n type: '',\n width: 0,\n height: 0,\n });\n\n useEffect(() => {\n if (mediaProps) {\n setStateMedia({ ...mediaProps });\n }\n }, [mediaProps]);\n\n // Image handlers\n const removeMedia = () => {\n const mediaObj = {\n id: null,\n mediaId: 0,\n mediaUrl: '',\n url: '',\n alt: '',\n type: '',\n width: 0,\n height: 0,\n };\n mediaCallback({ ...mediaObj });\n };\n\n // On select media\n const onSelectMedia = (media) => {\n const safeSizes = {\n thumbnail: null,\n medium: null,\n large: null,\n };\n\n // Normalize Sizes\n if (media?.sizes) {\n Object.keys(media.sizes).forEach((key) => {\n const sizeObject = media.sizes[key];\n if (key === 'thumbnail') {\n safeSizes.thumbnail = sizeObject.url;\n } else if (sizeObject.width < 768 || sizeObject.height < 768) {\n safeSizes.thumbnail = sizeObject.url;\n }\n if (key === 'medium') {\n safeSizes.medium = sizeObject.url;\n } else if (\n (sizeObject.width > 1024 && sizeObject.width < 1024) ||\n (sizeObject.height < 1536 && sizeObject.height > 1536)\n ) {\n safeSizes.medium = sizeObject.url;\n }\n if (key === 'large') {\n safeSizes.large = sizeObject.url;\n } else if (sizeObject.width > 1536 || sizeObject.height > 1536) {\n safeSizes.large = sizeObject.url;\n }\n });\n }\n\n // Set type based on file extension\n let mediaType = media.type;\n if (media.url.endsWith('.json')) {\n mediaType = 'lottie';\n } else if (media.url.endsWith('.svg')) {\n mediaType = 'svg';\n }\n\n const mediaObj = {\n id: media.id,\n url: media.url,\n sizes: safeSizes,\n alt: media.alt,\n type: mediaType,\n width: media.width,\n height: media.height,\n };\n\n mediaCallback({ ...mediaObj });\n };\n\n return (\n <PanelRow className=\"gap-2\">\n <MediaUploadCheck>\n <MediaUpload\n onSelect={onSelectMedia}\n value={stateMedia.id}\n allowedTypes={allowedTypes}\n render={({ open }) => (\n <Button\n className={\n !stateMedia.id\n ? 'editor-post-featured-image__toggle'\n : 'editor-post-featured-image__preview'\n }\n onClick={open}\n >\n {!!stateMedia.id && stateMedia.type === 'image' ? (\n <div className=\"blockbite--editor-visual-image\">\n <img\n alt={\n stateMedia.alt ? stateMedia.alt : __('Image', 'blockbite')\n }\n src={stateMedia.url}\n />\n </div>\n ) : (\n __('Add media', 'blockbite')\n )}\n </Button>\n )}\n />\n </MediaUploadCheck>\n\n {/* Show pencil/trash icons if stateMedia.id is truthy */}\n {!!stateMedia.id && (\n <>\n <MediaUploadCheck>\n <MediaUpload\n value={stateMedia.id}\n onSelect={onSelectMedia}\n allowedTypes={allowedTypes}\n render={({ open }) => (\n <Button\n onClick={open}\n icon=\"edit\"\n title={__('Replace media', 'blockbite')}\n />\n )}\n />\n </MediaUploadCheck>\n <MediaUploadCheck>\n <Button\n onClick={() => removeMedia()}\n isDestructive\n icon=\"trash\"\n title={__('Remove media', 'blockbite')}\n />\n </MediaUploadCheck>\n </>\n )}\n </PanelRow>\n );\n}\n","import { useEffect, useState } from '@wordpress/element';\n\nimport { RangeControl as WordpressRangeControl } from '@wordpress/components';\n\nexport type RangeControlType = {\n value: string;\n label: string;\n min: number;\n max: number;\n withInputField?: boolean;\n onValueChange: (value: string) => void;\n onReset?: () => void;\n allowReset?: boolean;\n gridMode?: boolean;\n showTooltip?: boolean;\n [key: string]: any;\n};\n\nexport const RangeSlider: React.FC<RangeControlType> = ({\n value,\n label,\n min = 0,\n max = 2000,\n withInputField = false,\n onValueChange,\n onReset,\n allowReset = false,\n gridMode = false,\n showTooltip = false,\n ...props\n}) => {\n // Use a sentinel value to detect reset button clicks\n const RESET_SENTINEL = -999;\n const [resetFallbackValue] = useState(RESET_SENTINEL);\n const [rangeValue, setRangeValue] = useState<number>(0);\n\n // Sync local state with controlled value prop\n useEffect(() => {\n setRangeValue(Math.round(parseInt(value) / (gridMode ? 16 : 1)));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n // convert back to arbitrary unit\n function handleRangeUpdate(val: number) {\n // Detect reset button click via sentinel value\n if (val === RESET_SENTINEL) {\n // Call the onReset callback if provided\n if (onReset) {\n onReset();\n } else {\n onValueChange('');\n }\n return;\n }\n\n const gridValue = val * (gridMode ? 16 : 1);\n onValueChange(gridValue.toString());\n }\n\n return (\n <div className=\"flex flex-col\">\n <WordpressRangeControl\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n label={label}\n value={rangeValue}\n min={min}\n max={max}\n showTooltip={showTooltip}\n withInputField={withInputField}\n allowReset={allowReset}\n onChange={(val) => {\n setRangeValue(val);\n handleRangeUpdate(val);\n }}\n resetFallbackValue={resetFallbackValue}\n {...props}\n />\n <span>{gridMode ? `${rangeValue * 16}px` : null} </span>\n </div>\n );\n};\n","import {\n ColorWheel as ColorWheelIcon,\n InfoCircled as InfoCircledIcon,\n ListBullet as ListBulletIcon,\n Percentage as PercentageIcon,\n Slider as SliderIcon,\n Tailwind as TailwindUnitIcon,\n} from '@blockbite/icons';\nimport {\n Button,\n __experimentalInputControl as InputControl,\n __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useEffect, useMemo, useRef, useState } from '@wordpress/element';\nimport { ButtonToggleGroup } from './ButtonToggle.js';\nimport { ChapterDivider } from './ChapterDivider.js';\nimport { Popover } from './Popover.js';\nimport { RangeSlider } from './RangeSlider.js';\n\ntype MetricsControlProps = {\n value: string;\n inputClassName?: string;\n classGroupControl?: any;\n onValueChange: (value: string) => void;\n tailwindUi?: any;\n getThemeOptions?: any;\n};\n\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\nconst shadowRegex =\n /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = (value: string) => fractionRegex.test(value);\nconst isNumber = (value: string) => !!value && !Number.isNaN(Number(value));\nconst isPercent = (value: string) =>\n !!value && value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = (value: string) => tshirtUnitRegex.test(value);\nconst CSS_UNITS = [\n { value: 'px', label: 'Pixels' },\n { value: 'rem', label: 'Root EM' },\n { value: 'em', label: 'Relative to font size' },\n { value: '%', label: 'Percentage' },\n { value: 'vh', label: 'Viewport Height' },\n { value: 'vw', label: 'Viewport Width' },\n { value: 'ch', label: 'Character Width' },\n { value: 'ex', label: 'x-height' },\n { value: 'dvh', label: 'Dynamic Viewport Height' },\n { value: 'dvw', label: 'Dynamic Viewport Width' },\n { value: 'svh', label: 'Small Viewport Height' },\n { value: 'svw', label: 'Small Viewport Width' },\n { value: 'lvh', label: 'Large Viewport Height' },\n { value: 'lvw', label: 'Large Viewport Width' },\n];\n\nexport const MetricsControl: React.FC<MetricsControlProps> = ({\n value: propValue,\n onValueChange,\n inputClassName = '',\n classGroupControl,\n tailwindUi = {},\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [localUnit, setLocalUnit] = useState<string>('arbitrary');\n const [localText, setLocalText] = useState<string>('');\n const [rawValue, setRawValue] = useState<string>('');\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Manual overrides from uiSchema\n const {\n manualFraction,\n manualOptions,\n manualRange,\n manualCssVars,\n manualArbitrary,\n placeholder,\n } = classGroupControl?.metadata || {\n manualFraction: true,\n manualOptions: true,\n manualRange: true,\n manualCssVars: true,\n manualArbitrary: true,\n placeholder: '0',\n };\n\n // Allow min/max override for RangeSlider\n const rangeMin = classGroupControl?.metadata?.rangeMin ?? 0;\n const rangeMax = classGroupControl?.metadata?.rangeMax ?? 100;\n\n useEffect(() => {\n setLocalText(getUserFriendlyValue(propValue));\n setRawValue(propValue);\n setLocalUnit(detectUnitFromRawValue(propValue));\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, [propValue]);\n\n const normOptions = useMemo(\n () => classGroupControl?.options || [],\n [classGroupControl?.options]\n );\n const supportsArbitrary = useMemo(\n () =>\n hasValidator(classGroupControl?.validators, [\n 'isArbitraryVariable',\n 'isArbitraryValue',\n 'themeGetter',\n ]),\n [classGroupControl?.validators]\n );\n const supportsFraction = useMemo(\n () => hasValidator(classGroupControl?.validators, ['isFraction']),\n [classGroupControl?.validators]\n );\n const supportsTheme = useMemo(\n () => hasValidator(classGroupControl?.validators, ['themeGetter']),\n [classGroupControl?.validators]\n );\n\n function hasValidator(validators: any[] | undefined, names: string[]) {\n if (!validators) return false;\n return validators.some((v) => {\n if (typeof v === 'function' && typeof v.name === 'string') {\n return names.includes(v.name);\n }\n return false;\n });\n }\n\n const getUserFriendlyValue = (raw: string): string => {\n if (!raw) return '';\n\n const arbMatch = raw.match(arbitraryValueRegex);\n if (arbMatch) return arbMatch[2];\n const varMatch = raw.match(arbitraryVariableRegex);\n if (varMatch) return varMatch[2];\n return raw;\n };\n\n const getRawValue = (userFriendly: string): string => {\n if (!userFriendly) return '';\n\n const trimmed = userFriendly.trim();\n\n if (normOptions.some((o) => String(o.value) === trimmed)) return trimmed;\n if (trimmed.startsWith('--')) return `(${trimmed})`;\n\n // For bare numbers: wrap in brackets only if no themeProvider exists\n // (themeProvider means numeric values are valid theme tokens like w-24)\n if (isNumber(trimmed) && !lengthUnitRegex.test(trimmed)) {\n const hasThemeProvider =\n classGroupControl?.themeProvider &&\n Array.isArray(classGroupControl.themeProvider) &&\n classGroupControl.themeProvider.length > 0;\n return hasThemeProvider ? trimmed : `[${trimmed}]`;\n }\n\n if (lengthUnitRegex.test(trimmed)) return `[${trimmed}]`;\n return userFriendly;\n };\n\n const detectUnitFromRawValue = (raw: string): string => {\n const trimmed = (raw || '').trim();\n if (normOptions.some((o) => String(o.value) === trimmed)) return 'list';\n if (trimmed.startsWith('--')) return 'arbitrary';\n if (isFraction(trimmed)) return 'fraction';\n if (arbitraryValueRegex.test(trimmed)) return 'arbitrary';\n if (isNumber(trimmed) && !lengthUnitRegex.test(trimmed)) return 'native';\n if (isPercent(trimmed) || lengthUnitRegex.test(trimmed)) return 'arbitrary';\n if (isTshirtSize(trimmed)) return 'native';\n if (colorFunctionRegex.test(trimmed) || /^#([0-9a-f]{3,8})$/i.test(trimmed))\n return 'color';\n if (shadowRegex.test(trimmed) || imageRegex.test(trimmed))\n return 'arbitrary';\n return 'arbitrary';\n };\n\n const isValidValue = (raw: string): boolean => {\n if (raw === '') return true; // Allow empty value for deselection\n if (isNumber(raw)) return true;\n if (arbitraryValueRegex.test(raw)) return true;\n if (arbitraryVariableRegex.test(raw)) return true;\n if (normOptions.some((o) => String(o.value) === raw)) return true;\n if (isFraction(raw) || raw === 'full') return true;\n return false;\n };\n\n const handleInputChange = (v: string) => {\n setLocalText(v);\n };\n\n const handleBlur = () => {\n const newRaw = getRawValue(localText);\n if (isValidValue(newRaw)) {\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n } else {\n setLocalText(rawValue); // Revert to last valid value\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n const newRaw = getRawValue(localText);\n if (isValidValue(newRaw)) {\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n } else {\n setLocalText(rawValue); // Revert to last valid value\n }\n }\n };\n\n const appendToText = (insertion: string) => {\n const trimmed = localText.trim();\n const isNumeric = !isNaN(Number(trimmed));\n let newText = '';\n // Handle deselection (empty string) - clear the value entirely\n if (insertion === '') {\n newText = '';\n // If insertion is a fraction (eg \"1/2\"), replace whole value —\n // clicking fraction buttons should select the fraction instead of\n // appending to numeric prefixes like \"1/2\" -> \"11/3\".\n } else if (fractionRegex.test(insertion)) {\n newText = insertion;\n } else if (\n localUnit === 'list' ||\n localUnit === 'theme' ||\n trimmed.startsWith('--')\n ) {\n newText = insertion;\n } else if (isNumeric) {\n newText = `${trimmed}${insertion}`;\n } else {\n // Check if the current value has a number with a unit (e.g., \"16ex\", \"2rem\", \"100%\")\n // Extract the numeric part and append the new unit\n const numericMatch = trimmed.match(/^(-?\\d+\\.?\\d*)/);\n if (numericMatch) {\n newText = `${numericMatch[1]}${insertion}`;\n } else {\n newText = insertion;\n }\n }\n\n setLocalText(newText);\n\n // Emit the change immediately for arbitrary units\n const newRaw = getRawValue(newText);\n if (isValidValue(newRaw)) {\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n }\n\n inputRef.current?.focus();\n };\n\n const setValueDirectly = (v: string) => {\n const userFriendly = getUserFriendlyValue(v);\n const newRaw = getRawValue(userFriendly);\n if (isValidValue(newRaw)) {\n setLocalText(userFriendly);\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n } else {\n setLocalText(rawValue);\n }\n };\n\n const CurrentUnitIcon = (() => {\n switch (localUnit) {\n case 'fraction':\n return <PercentageIcon />;\n case 'list':\n return <ListBulletIcon />;\n case 'theme':\n return <ColorWheelIcon />;\n case 'arbitrary':\n return <SliderIcon />;\n default:\n return <TailwindUnitIcon />;\n }\n })();\n\n const openPicker = () => setIsVisible(true);\n\n const renderFractionBody = () => {\n if (!supportsFraction) return null;\n return (\n <ButtonToggleGroup\n options={tailwindUi?.units?.spacing?.fraction?.options || []}\n size=\"small\"\n value={localText}\n className=\"mt-0 w-[200px]\"\n onPressedChange={(v: any) => appendToText(String(v))}\n />\n );\n };\n\n const renderListBody = () => (\n <ButtonToggleGroup\n options={normOptions.map((o: any) => ({\n value: o.value,\n label: o.label,\n }))}\n size=\"small\"\n className=\"mt-0 w-[200px]\"\n value={localText}\n onPressedChange={(v: any) => setValueDirectly(String(v))}\n />\n );\n\n const getCustomCssVariables = useMemo(() => {\n // Extract custom CSS variables from computed styles on the document root\n // WordPress adds custom variables from theme.json as CSS custom properties\n try {\n const rootStyles = window.getComputedStyle(document.documentElement);\n const customVars: any[] = [];\n\n // Get all CSS custom properties from :root\n for (let i = 0; i < rootStyles.length; i++) {\n const propertyName = rootStyles[i];\n // Look for --wp--custom-- prefixed variables\n if (propertyName.startsWith('--wp--custom--')) {\n const value = rootStyles.getPropertyValue(propertyName).trim();\n customVars.push({\n value: propertyName,\n label: `${propertyName} (${value})`,\n });\n }\n }\n\n return customVars;\n } catch (error) {\n return [];\n }\n }, []);\n\n const renderThemeInsert = () => {\n // Get custom CSS variables from theme.json\n const customVars = getCustomCssVariables;\n\n // Build the options list: custom variables + placeholder\n const cssVariableOptions = [\n ...customVars,\n {\n value: '--custom-css-var',\n label: '--custom-css-var',\n },\n ];\n\n return (\n <ButtonToggleGroup\n className=\"mt-0 w-[200px]\"\n options={cssVariableOptions}\n size=\"small\"\n value={localText}\n onPressedChange={(v: any) => setValueDirectly(String(v))}\n />\n );\n };\n\n const renderArbitraryUnitButtons = () => (\n <div className=\"flex gap-2\">\n <ButtonToggleGroup\n className=\"mt-0 w-[200px]\"\n options={CSS_UNITS.map((u) => ({\n value: u.value,\n label: u.value,\n tooltip: u.label,\n }))}\n size=\"small\"\n value={localText}\n onPressedChange={(v: any) => appendToText(String(v))}\n />\n </div>\n );\n\n return (\n <div className=\"relative flex flex-col items-baseline\">\n <InputControl\n __nextHasNoMarginBottom\n className={`w-full ${inputClassName} ${\n !isValidValue(getRawValue(localText)) ? 'border-red-500' : ''\n }`}\n value={localText}\n onChange={handleInputChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n autoComplete=\"off\"\n suffix={\n <InputControlSuffixWrapper>\n <Popover\n offset={10}\n visible={isVisible}\n position=\"bottom left\"\n className=\"overflow-x-hidden w-[280px] max-h-[400px]\"\n onVisibleChange={setIsVisible}\n >\n <div className=\"flex flex-col gap-2\">\n {manualRange && (\n <RangeSlider\n value={localText}\n label=\"Number Value\"\n className=\"w-[200px] mt-4\"\n min={rangeMin}\n max={rangeMax}\n gridMode={false}\n showTooltip={false}\n // instantly render changes while sliding\n onValueChange={(v: string) => {\n const newRaw = getRawValue(v);\n if (isValidValue(newRaw)) {\n setLocalText(v);\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n } else {\n setLocalText(v); // Update local state, but don't emit\n }\n }}\n />\n )}\n {supportsFraction && manualFraction && (\n <div>\n <ChapterDivider title=\"Fraction\" className=\"mt-2\" />\n {renderFractionBody()}\n </div>\n )}\n {normOptions.length > 0 && manualOptions && (\n <div>\n <ChapterDivider title=\"Options\" className=\"mt-2\" />\n {renderListBody()}\n </div>\n )}\n {supportsArbitrary && manualArbitrary && (\n <div>\n <ChapterDivider title=\"Arbitrary Units\" className=\"mt-2\" />\n {renderArbitraryUnitButtons()}\n </div>\n )}\n {supportsTheme && manualCssVars && (\n <div>\n <ChapterDivider\n title=\"CSS Variables\"\n className=\"mt-2\"\n help={\n getCustomCssVariables.length === 0\n ? 'Add custom CSS variables to theme.json settings.custom'\n : undefined\n }\n addon={\n <a\n href=\"https://developer.wordpress.org/news/2023/08/adding-and-using-custom-settings-in-theme-json/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center text-gray-500 hover:text-gray-700 -mt-1\"\n aria-label=\"Learn how to add custom CSS variables to theme.json\"\n >\n <InfoCircledIcon className=\"w-3.5 h-3.5\" />\n </a>\n }\n />\n {renderThemeInsert()}\n </div>\n )}\n </div>\n </Popover>\n <Button\n className=\"!p-0 !min-w-0 !h-6 w-6 inline-flex items-center justify-center\"\n onClick={openPicker}\n aria-label=\"Open units\"\n >\n {CurrentUnitIcon}\n </Button>\n </InputControlSuffixWrapper>\n }\n />\n </div>\n );\n};\n\nexport default MetricsControl;\n","import { Button, Modal as WordpressModal } from '@wordpress/components';\nimport {\n Children,\n createContext,\n isValidElement,\n useContext,\n useEffect,\n useState,\n} from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Cross1 } from '@blockbite/icons';\n\ntype ModalContextType = {\n closeModal: () => void;\n openModal: () => void;\n};\n\nconst ModalContext = createContext<ModalContextType | null>(null);\n\nexport const useModalContext = () => {\n const context = useContext(ModalContext);\n if (!context) {\n throw new Error('useModalContext must be used within a ModalProvider');\n }\n return context;\n};\n\ntype ModalProps = {\n children: React.ReactElement | React.ReactElement[];\n\n /** controlled */\n open?: boolean;\n\n /** uncontrolled fallback */\n defaultOpen?: boolean;\n\n onOpenChange?: (open: boolean) => void;\n\n title?: string;\n size?: 'small' | 'medium' | 'large' | 'fill' | 'wide';\n\n /** passthrough props */\n onRequestClose?: () => void;\n shouldCloseOnEsc?: boolean;\n shouldCloseOnClickOutside?: boolean;\n [key: string]: any;\n};\n\n// Keep things simple: we render our own header/content/footer sections.\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n open,\n defaultOpen = false,\n onOpenChange,\n title = '',\n className,\n size,\n onRequestClose,\n shouldCloseOnEsc = true,\n shouldCloseOnClickOutside = true,\n ...props\n}) => {\n /** Controlled vs uncontrolled logic */\n const isControlled = open !== undefined;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isOpen = isControlled ? open : uncontrolledOpen;\n\n const setOpen = (next: boolean) => {\n if (!isControlled) setUncontrolledOpen(next);\n onOpenChange?.(next);\n };\n\n const openModal = () => setOpen(true);\n const closeModal = () => {\n onRequestClose?.();\n setOpen(false);\n };\n\n // Detect direct children for aria and footer presence\n const hasModalHeaderChild = Children.toArray(children).some(\n (child) => isValidElement(child) && child.type === ModalHeader\n );\n\n useEffect(() => {\n onOpenChange?.(isOpen);\n }, [isOpen, onOpenChange]);\n\n let ariaProps: Record<string, string> = {};\n if (hasModalHeaderChild) {\n ariaProps = { labelledby: 'bb-modal-heading' };\n } else if (title) {\n ariaProps = { label: title };\n }\n\n return (\n <ModalContext.Provider value={{ closeModal, openModal }}>\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === ModalTrigger ? child : null\n )}\n\n {isOpen && (\n <WordpressModal\n className={classNames(\n 'blockbite-ui__modal',\n size && `is-${size}`,\n className\n )}\n size={size}\n title=\"\" // prevent WP header from rendering\n aria={ariaProps}\n onRequestClose={closeModal}\n shouldCloseOnEsc={shouldCloseOnEsc}\n shouldCloseOnClickOutside={shouldCloseOnClickOutside}\n {...props}\n >\n <div className=\"relative\">\n <div className=\"absolute right-2 top-2 z-10\">\n <Button\n aria-label=\"Close\"\n label=\"Close\"\n variant=\"secondary\"\n onClick={closeModal}\n >\n <Cross1 className=\"h-4 w-4\" />\n </Button>\n </div>\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === ModalHeader ? child : null\n )}\n\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === ModalContent\n ? child\n : null\n )}\n\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === ModalFooter ? child : null\n )}\n </div>\n </WordpressModal>\n )}\n </ModalContext.Provider>\n );\n};\n\n// --- Subcomponents ---\n\nexport const ModalHeader: React.FC<{\n children: React.ReactNode;\n className?: string;\n}> = ({ children, className = '', ...props }) => (\n <div\n className={classNames(\n 'flex flex-col space-y-1.5 text-center sm:text-left',\n className\n )}\n {...props}\n >\n <h2 id=\"bb-modal-heading\" className=\"text-base font-medium\">\n {children}\n </h2>\n </div>\n);\n\nexport const ModalFooter: React.FC<{\n children: React.ReactNode;\n className?: string;\n}> = ({ children, className = '', ...props }) => (\n <div\n className={classNames(\n 'border-border fixed bottom-0 left-0 right-0 flex h-[4rem] flex-row items-center justify-end gap-2 border-t bg-white px-4',\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nexport const ModalContent: React.FC<{\n children: React.ReactNode;\n className?: string;\n}> = ({ children, className = '', ...props }) => (\n <div\n className={classNames('text-gray-medium px-4 pb-4 text-sm', className)}\n {...props}\n >\n {children}\n </div>\n);\n\nexport const ModalClose: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const { closeModal } = useModalContext();\n return (\n <div onClick={closeModal} className=\"cursor-pointer\">\n {children}\n </div>\n );\n};\n\nexport const ModalTrigger: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const { openModal } = useModalContext();\n return (\n <div onClick={openModal} className=\"cursor-pointer\">\n {children}\n </div>\n );\n};\n","import { createPortal, useEffect, useMemo } from '@wordpress/element';\n\nfunction copyStyles(sourceDoc, targetDoc) {\n Array.from(sourceDoc.styleSheets).forEach((styleSheet: any) => {\n try {\n if (styleSheet.cssRules) {\n const newStyleEl = targetDoc.createElement('style');\n Array.from(styleSheet.cssRules).forEach((cssRule: any) => {\n newStyleEl.appendChild(targetDoc.createTextNode(cssRule.cssText));\n });\n targetDoc.head.appendChild(newStyleEl);\n } else if (styleSheet.href) {\n const newLinkEl = targetDoc.createElement('link');\n newLinkEl.rel = 'stylesheet';\n newLinkEl.href = styleSheet.href;\n targetDoc.head.appendChild(newLinkEl);\n }\n } catch (e) {\n if (styleSheet.href) {\n const newLinkEl = targetDoc.createElement('link');\n newLinkEl.rel = 'stylesheet';\n newLinkEl.href = styleSheet.href;\n targetDoc.head.appendChild(newLinkEl);\n } else {\n // eslint-disable-next-line no-console\n console.warn('Error copying styles:', e);\n }\n }\n });\n}\n\ntype Props = {\n windowInstance: Window;\n onClose: () => void;\n children: React.ReactNode;\n};\n\nexport const NewWindowPortal = ({\n windowInstance,\n onClose,\n children,\n}: Props) => {\n const containerEl = useMemo(() => document.createElement('div'), []);\n\n useEffect(() => {\n const win = windowInstance;\n\n win.document.body.innerHTML = '';\n win.document.body.appendChild(containerEl);\n copyStyles(document, win.document);\n win.document.title = document.title || 'Blockbite Editor';\n\n const handleBeforeUnload = () => {\n setTimeout(onClose, 100);\n };\n\n win.addEventListener('beforeunload', handleBeforeUnload);\n\n return () => {\n win.removeEventListener('beforeunload', handleBeforeUnload);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [windowInstance]);\n\n // Typecasting: https://github.com/vercel/next.js/discussions/64753\n return createPortal(children as any, containerEl);\n};\n","import { Notice as WordpressNotice } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\ntype NoticeProps = {\n children: React.ReactNode;\n className?: string;\n status?: 'success' | 'error' | 'warning' | 'info';\n};\n\nexport const Notice = ({\n children,\n status = 'success',\n className,\n}: NoticeProps) => {\n const [showNotice, setShowNotice] = useState(true);\n\n return (\n <Wrap onClick={() => setShowNotice(false)}>\n {showNotice && (\n <WordpressNotice\n status={status}\n className={classNames(className)}\n onRemove={() => setShowNotice(false)}\n >\n {children}\n </WordpressNotice>\n )}\n </Wrap>\n );\n};\n","import {\n Button,\n __experimentalInputControl as InputControl,\n __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { Path, SVG } from '@wordpress/primitives';\n\ntype PasswordInputProps = {\n label: string;\n value: string;\n onChange: (value: string) => void;\n [key: string]: any;\n};\n\nexport const PasswordInput = ({\n label,\n value,\n onChange,\n ...rest\n}: PasswordInputProps) => {\n const [showPassword, setShowPassword] = useState(false);\n\n return (\n <InputControl\n label={label}\n value={value}\n type={showPassword ? 'text' : 'password'}\n suffix={\n <InputControlSuffixWrapper variant=\"control\">\n <Button\n icon={\n <SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <Path\n d={\n showPassword\n ? 'M3.99961 13C4.67043 13.3354 4.6703 13.3357 4.67017 13.3359L4.67298 13.3305C4.67621 13.3242 4.68184 13.3135 4.68988 13.2985C4.70595 13.2686 4.7316 13.2218 4.76695 13.1608C4.8377 13.0385 4.94692 12.8592 5.09541 12.6419C5.39312 12.2062 5.84436 11.624 6.45435 11.0431C7.67308 9.88241 9.49719 8.75 11.9996 8.75C14.502 8.75 16.3261 9.88241 17.5449 11.0431C18.1549 11.624 18.6061 12.2062 18.9038 12.6419C19.0523 12.8592 19.1615 13.0385 19.2323 13.1608C19.2676 13.2218 19.2933 13.2686 19.3093 13.2985C19.3174 13.3135 19.323 13.3242 19.3262 13.3305L19.3291 13.3359C19.3289 13.3357 19.3288 13.3354 19.9996 13C20.6704 12.6646 20.6703 12.6643 20.6701 12.664L20.6697 12.6632L20.6688 12.6614L20.6662 12.6563L20.6583 12.6408C20.6517 12.6282 20.6427 12.6108 20.631 12.5892C20.6078 12.5459 20.5744 12.4852 20.5306 12.4096C20.4432 12.2584 20.3141 12.0471 20.1423 11.7956C19.7994 11.2938 19.2819 10.626 18.5794 9.9569C17.1731 8.61759 14.9972 7.25 11.9996 7.25C9.00203 7.25 6.82614 8.61759 5.41987 9.9569C4.71736 10.626 4.19984 11.2938 3.85694 11.7956C3.68511 12.0471 3.55605 12.2584 3.4686 12.4096C3.42484 12.4852 3.39142 12.5459 3.36818 12.5892C3.35656 12.6108 3.34748 12.6282 3.34092 12.6408L3.33297 12.6563L3.33041 12.6614L3.32948 12.6632L3.32911 12.664C3.32894 12.6643 3.32879 12.6646 3.99961 13ZM11.9996 16C13.9326 16 15.4996 14.433 15.4996 12.5C15.4996 10.567 13.9326 9 11.9996 9C10.0666 9 8.49961 10.567 8.49961 12.5C8.49961 14.433 10.0666 16 11.9996 16Z'\n : 'M20.7 12.7s0-.1-.1-.2c0-.2-.2-.4-.4-.6-.3-.5-.9-1.2-1.6-1.8-.7-.6-1.5-1.3-2.6-1.8l-.6 1.4c.9.4 1.6 1 2.1 1.5.6.6 1.1 1.2 1.4 1.6.1.2.3.4.3.5v.1l.7-.3.7-.3Zm-5.2-9.3-1.8 4c-.5-.1-1.1-.2-1.7-.2-3 0-5.2 1.4-6.6 2.7-.7.7-1.2 1.3-1.6 1.8-.2.3-.3.5-.4.6 0 0 0 .1-.1.2s0 0 .7.3l.7.3V13c0-.1.2-.3.3-.5.3-.4.7-1 1.4-1.6 1.2-1.2 3-2.3 5.5-2.3H13v.3c-.4 0-.8-.1-1.1-.1-1.9 0-3.5 1.6-3.5 3.5s.6 2.3 1.6 2.9l-2 4.4.9.4 7.6-16.2-.9-.4Zm-3 12.6c1.7-.2 3-1.7 3-3.5s-.2-1.4-.6-1.9L12.4 16Z'\n }\n />\n </SVG>\n }\n label=\"Show password\"\n onClick={() => setShowPassword((prev) => !prev)}\n size=\"small\"\n />\n </InputControlSuffixWrapper>\n }\n onChange={onChange}\n {...rest}\n />\n );\n};\n","export type ProjectItem = {\n id: string | number;\n name: string;\n description: string;\n};\n\ntype Props = {\n items: ProjectItem[];\n activeId: string | number;\n onSelect: (id: string | number) => void;\n};\n\nexport const ProjectsNavigation = ({ items, activeId, onSelect }: Props) => {\n return (\n <div className=\"w-[280px] max-h-[400px] overflow-y-auto\">\n {items.map((item) => (\n <div\n key={item.id}\n onClick={() => onSelect(item.id)}\n className={`cursor-pointer p-3 border-l-4 flex gap-3 items-center hover:bg-gray-50 ${\n activeId === item.id\n ? 'border-blue-500 bg-gray-100'\n : 'border-transparent'\n }`}\n >\n <span className=\"rounded bg-slate-300 w-10 h-10 flex items-center justify-center text-lg font-bold text-white shrink-0\">\n {item.name.charAt(0).toUpperCase()}\n </span>\n <div className=\"flex flex-col min-w-0\">\n <p className=\"text-sm font-medium truncate\">{item.name}</p>\n {item.description && (\n <p className=\"text-xs text-gray-500 truncate\">\n {item.description}\n </p>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n};\n","export function ResponsiveImage(props) {\n const { media, bbMedia } = props;\n const { url, alt, sizes } = media;\n\n if (sizes === undefined) {\n return (\n <picture className=\"b_fill\">\n <img src={url} alt={alt} className={`b_media ${bbMedia}`} />\n </picture>\n );\n }\n\n const { thumbnail, medium, large } = sizes;\n const thumbnailImg = thumbnail || url;\n const mediumImg = medium || url;\n const largeImg = large || url;\n\n return (\n <picture className=\"b_fill\">\n {thumbnailImg ? (\n <source\n media=\"(max-width: 768px)\"\n srcSet={thumbnailImg}\n className={`b_media ${bbMedia}`}\n />\n ) : null}\n {mediumImg ? (\n <source\n media=\"(min-width: 1024px)\"\n srcSet={mediumImg}\n className={`b_media ${bbMedia}`}\n />\n ) : null}\n {largeImg ? (\n <source\n media=\"(min-width: 1536px)\"\n srcSet={largeImg}\n className={`b_media ${bbMedia}`}\n />\n ) : null}\n {mediumImg ? (\n <img src={mediumImg} alt={alt} className={`b_media ${bbMedia}`} />\n ) : null}\n </picture>\n );\n}\n","export function ResponsiveVideo(props: any) {\n const { media, bbMedia } = props;\n const { url } = media;\n\n const videoUrl = url;\n\n return (\n <video\n className={`b_fill ${bbMedia}`}\n preload=\"none\"\n playsInline\n controls\n autoPlay\n muted\n loop\n >\n <source src={videoUrl} type=\"video/mp4\" />\n </video>\n );\n}\n","import classNames from 'classnames';\nimport { Wrap } from './Wrap.js';\n\ntype ScrollListProps = {\n children: React.ReactNode;\n className?: string;\n height?: 'small' | 'medium' | 'large';\n};\n\nexport const ScrollList: React.FC<ScrollListProps> = ({\n children,\n className = '',\n height = 'large',\n}) => (\n <Wrap\n className={classNames('scrollbar relative overflow-y-scroll', className, {\n 'h-[400px]': height === 'large',\n 'h-[300px]': height === 'medium',\n 'h-[200px]': height === 'small',\n })}\n >\n {children}\n </Wrap>\n);\n","import { createBlock } from '@wordpress/blocks';\nimport { Button } from '@wordpress/components';\n\nconst { select, dispatch } = wp.data;\n\ninterface SingleBlockTypeAppenderProps {\n buttonText?: string;\n}\n\nexport const SingleBlockTypeAppender = ({\n buttonText = 'Add block',\n}: SingleBlockTypeAppenderProps) => {\n const addLastDuplicate = () => {\n // Get the current block\n const currentBlock = select('core/block-editor').getSelectedBlock();\n const { clientId, innerBlocks } = currentBlock;\n\n // get the last block\n const lastBlock = innerBlocks[innerBlocks.length - 1];\n // duplicate the last block\n const newBlock = createBlock(\n lastBlock.name,\n lastBlock.attributes,\n lastBlock.innerBlocks\n );\n\n dispatch('core/block-editor').insertBlocks(newBlock, 0, clientId);\n };\n\n return (\n <Button variant=\"primary\" onClick={() => addLastDuplicate()}>\n {buttonText}\n </Button>\n );\n};\n","import { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\ntype SlideInProps = {\n children: React.ReactNode;\n className?: string;\n watch?: any;\n};\n\nexport const SlideIn = ({ children, watch, className }: SlideInProps) => {\n const [slide, setSlide] = useState(0);\n\n useEffect(() => {\n setTimeout(() => {\n setSlide(1);\n }, 250);\n }, [watch]);\n\n return (\n <Wrap\n className={classNames(\n className,\n 'duration-50 transform transition-all ease-in-out',\n {\n 'translate-x-0': slide === 1,\n '-translate-x-full': slide === 0,\n }\n )}\n >\n {children}\n </Wrap>\n );\n};\n","import { Spinner as WordpressSpinner } from '@wordpress/components';\n\ntype SpinnerProps = {\n [x: string]: any;\n};\n\nexport const Spinner = ({ ...props }: SpinnerProps) => {\n return <WordpressSpinner {...props} />;\n};\n","function ke() {\n return ke = Object.assign ? Object.assign.bind() : function(u) {\n for (var e = 1; e < arguments.length; e++) {\n var i = arguments[e];\n for (var r in i) ({}).hasOwnProperty.call(i, r) && (u[r] = i[r]);\n }\n return u;\n }, ke.apply(null, arguments);\n}\nvar _e = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction $e(u) {\n return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, \"default\") ? u.default : u;\n}\nvar kt, $t = {\n exports: {}\n};\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\nvar mt, Ht, Yt, Di = (kt || (kt = 1, mt = $t, (function() {\n var u = {}.hasOwnProperty;\n function e() {\n for (var i = [], r = 0; r < arguments.length; r++) {\n var l = arguments[r];\n if (l) {\n var m = typeof l;\n if (m === \"string\" || m === \"number\") i.push(l);\n else if (Array.isArray(l)) {\n if (l.length) {\n var g = e.apply(null, l);\n g && i.push(g);\n }\n } else if (m === \"object\") if (l.toString === Object.prototype.toString) for (var d in l) u.call(l, d) && l[d] && i.push(d);\n else i.push(l.toString());\n }\n }\n return i.join(\" \");\n }\n mt.exports ? (e.default = e, mt.exports = e) : window.classNames = e;\n})()), $t.exports), _t = $e(Di), Bt, se = $e((function() {\n if (Yt) return Ht;\n Yt = 1;\n var u = /^\\s+|\\s+$/g, e = /^[-+]0x[0-9a-f]+$/i, i = /^0b[01]+$/i, r = /^0o[0-7]+$/i, l = parseInt, m = Object.prototype.toString;\n function g(n) {\n var o = typeof n;\n return !!n && (o == \"object\" || o == \"function\");\n }\n function d(n) {\n if (typeof n == \"number\") return n;\n if ((function(a) {\n return typeof a == \"symbol\" || /* @__PURE__ */ (function(y) {\n return !!y && typeof y == \"object\";\n })(a) && m.call(a) == \"[object Symbol]\";\n })(n)) return NaN;\n if (g(n)) {\n var o = typeof n.valueOf == \"function\" ? n.valueOf() : n;\n n = g(o) ? o + \"\" : o;\n }\n if (typeof n != \"string\") return n === 0 ? n : +n;\n n = n.replace(u, \"\");\n var c = i.test(n);\n return c || r.test(n) ? l(n.slice(2), c ? 2 : 8) : e.test(n) ? NaN : +n;\n }\n return Ht = function(n, o, c) {\n return c === void 0 && (c = o, o = void 0), c !== void 0 && (c = (c = d(c)) == c ? c : 0), o !== void 0 && (o = (o = d(o)) == o ? o : 0), (function(a, y, w) {\n return a == a && (w !== void 0 && (a = a <= w ? a : w), y !== void 0 && (a = a >= y ? a : y)), a;\n })(d(n), o, c);\n };\n})()), vt = {\n exports: {}\n}, Li = (Bt || (Bt = 1, (function(u, e) {\n var i = \"__lodash_hash_undefined__\", r = 9007199254740991, l = \"[object Arguments]\", m = \"[object Array]\", g = \"[object Boolean]\", d = \"[object Date]\", n = \"[object Error]\", o = \"[object Function]\", c = \"[object Map]\", a = \"[object Number]\", y = \"[object Object]\", w = \"[object Promise]\", v = \"[object RegExp]\", z = \"[object Set]\", S = \"[object String]\", p = \"[object Symbol]\", b = \"[object WeakMap]\", I = \"[object ArrayBuffer]\", E = \"[object DataView]\", C = /^\\[object .+?Constructor\\]$/, X = /^(?:0|[1-9]\\d*)$/, h = {};\n h[\"[object Float32Array]\"] = h[\"[object Float64Array]\"] = h[\"[object Int8Array]\"] = h[\"[object Int16Array]\"] = h[\"[object Int32Array]\"] = h[\"[object Uint8Array]\"] = h[\"[object Uint8ClampedArray]\"] = h[\"[object Uint16Array]\"] = h[\"[object Uint32Array]\"] = !0, h[l] = h[m] = h[I] = h[g] = h[E] = h[d] = h[n] = h[o] = h[c] = h[a] = h[y] = h[v] = h[z] = h[S] = h[b] = !1;\n var L = typeof _e == \"object\" && _e && _e.Object === Object && _e, K = typeof self == \"object\" && self && self.Object === Object && self, F = L || K || Function(\"return this\")(), oe = e && !e.nodeType && e, O = oe && u && !u.nodeType && u, D = O && O.exports === oe, k = D && L.process, R = (function() {\n try {\n return k && k.binding && k.binding(\"util\");\n } catch {\n }\n })(), N = R && R.isTypedArray;\n function A(t, s) {\n for (var f = -1, _ = t == null ? 0 : t.length; ++f < _; ) if (s(t[f], f, t)) return !0;\n return !1;\n }\n function W(t) {\n var s = -1, f = Array(t.size);\n return t.forEach(function(_, T) {\n f[++s] = [T, _];\n }), f;\n }\n function be(t) {\n var s = -1, f = Array(t.size);\n return t.forEach(function(_) {\n f[++s] = _;\n }), f;\n }\n var me, J, ve, Q = Array.prototype, ue = Function.prototype, le = Object.prototype, Ve = F[\"__core-js_shared__\"], je = ue.toString, x = le.hasOwnProperty, V = (me = /[^.]+$/.exec(Ve && Ve.keys && Ve.keys.IE_PROTO || \"\")) ? \"Symbol(src)_1.\" + me : \"\", $ = le.toString, Y = RegExp(\"^\" + je.call(x).replace(/[\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"), St = D ? F.Buffer : void 0, He = F.Symbol, It = F.Uint8Array, xt = le.propertyIsEnumerable, fi = Q.splice, ze = He ? He.toStringTag : void 0, Et = Object.getOwnPropertySymbols, di = St ? St.isBuffer : void 0, mi = (J = Object.keys, ve = Object, function(t) {\n return J(ve(t));\n }), st = De(F, \"DataView\"), Ne = De(F, \"Map\"), ot = De(F, \"Promise\"), at = De(F, \"Set\"), ut = De(F, \"WeakMap\"), Me = De(Object, \"create\"), vi = xe(st), pi = xe(Ne), wi = xe(ot), yi = xe(at), gi = xe(ut), Vt = He ? He.prototype : void 0, lt = Vt ? Vt.valueOf : void 0;\n function Se(t) {\n var s = -1, f = t == null ? 0 : t.length;\n for (this.clear(); ++s < f; ) {\n var _ = t[s];\n this.set(_[0], _[1]);\n }\n }\n function ce(t) {\n var s = -1, f = t == null ? 0 : t.length;\n for (this.clear(); ++s < f; ) {\n var _ = t[s];\n this.set(_[0], _[1]);\n }\n }\n function Ie(t) {\n var s = -1, f = t == null ? 0 : t.length;\n for (this.clear(); ++s < f; ) {\n var _ = t[s];\n this.set(_[0], _[1]);\n }\n }\n function Ye(t) {\n var s = -1, f = t == null ? 0 : t.length;\n for (this.__data__ = new Ie(); ++s < f; ) this.add(t[s]);\n }\n function pe(t) {\n var s = this.__data__ = new ce(t);\n this.size = s.size;\n }\n function _i(t, s) {\n var f = Ge(t), _ = !f && xi(t), T = !f && !_ && ct(t), j = !f && !_ && !T && At(t), H = f || _ || T || j, B = H ? (function(U, ae) {\n for (var he = -1, Z = Array(U); ++he < U; ) Z[he] = ae(he);\n return Z;\n })(t.length, String) : [], re = B.length;\n for (var G in t) !x.call(t, G) || H && (G == \"length\" || T && (G == \"offset\" || G == \"parent\") || j && (G == \"buffer\" || G == \"byteLength\" || G == \"byteOffset\") || Ii(G, re)) || B.push(G);\n return B;\n }\n function Be(t, s) {\n for (var f = t.length; f--; ) if (Rt(t[f][0], s)) return f;\n return -1;\n }\n function Pe(t) {\n return t == null ? t === void 0 ? \"[object Undefined]\" : \"[object Null]\" : ze && ze in Object(t) ? (function(s) {\n var f = x.call(s, ze), _ = s[ze];\n try {\n s[ze] = void 0;\n var T = !0;\n } catch {\n }\n var j = $.call(s);\n return T && (f ? s[ze] = _ : delete s[ze]), j;\n })(t) : (function(s) {\n return $.call(s);\n })(t);\n }\n function jt(t) {\n return Ae(t) && Pe(t) == l;\n }\n function Dt(t, s, f, _, T) {\n return t === s || (t == null || s == null || !Ae(t) && !Ae(s) ? t != t && s != s : (function(j, H, B, re, G, U) {\n var ae = Ge(j), he = Ge(H), Z = ae ? m : we(j), fe = he ? m : we(H), Le = (Z = Z == l ? y : Z) == y, Ue = (fe = fe == l ? y : fe) == y, Oe = Z == fe;\n if (Oe && ct(j)) {\n if (!ct(H)) return !1;\n ae = !0, Le = !1;\n }\n if (Oe && !Le) return U || (U = new pe()), ae || At(j) ? Lt(j, H, B, re, G, U) : (function(P, M, Xe, ye, ht, ee, de) {\n switch (Xe) {\n case E:\n if (P.byteLength != M.byteLength || P.byteOffset != M.byteOffset) return !1;\n P = P.buffer, M = M.buffer;\n case I:\n return !(P.byteLength != M.byteLength || !ee(new It(P), new It(M)));\n case g:\n case d:\n case a:\n return Rt(+P, +M);\n case n:\n return P.name == M.name && P.message == M.message;\n case v:\n case S:\n return P == M + \"\";\n case c:\n var ge = W;\n case z:\n var Te = 1 & ye;\n if (ge || (ge = be), P.size != M.size && !Te) return !1;\n var Je = de.get(P);\n if (Je) return Je == M;\n ye |= 2, de.set(P, M);\n var ft = Lt(ge(P), ge(M), ye, ht, ee, de);\n return de.delete(P), ft;\n case p:\n if (lt) return lt.call(P) == lt.call(M);\n }\n return !1;\n })(j, H, Z, B, re, G, U);\n if (!(1 & B)) {\n var Ce = Le && x.call(j, \"__wrapped__\"), Ct = Ue && x.call(H, \"__wrapped__\");\n if (Ce || Ct) {\n var Vi = Ce ? j.value() : j, ji = Ct ? H.value() : H;\n return U || (U = new pe()), G(Vi, ji, B, re, U);\n }\n }\n return !!Oe && (U || (U = new pe()), (function(P, M, Xe, ye, ht, ee) {\n var de = 1 & Xe, ge = Ot(P), Te = ge.length, Je = Ot(M), ft = Je.length;\n if (Te != ft && !de) return !1;\n for (var Ke = Te; Ke--; ) {\n var Ee = ge[Ke];\n if (!(de ? Ee in M : x.call(M, Ee))) return !1;\n }\n var Tt = ee.get(P);\n if (Tt && ee.get(M)) return Tt == M;\n var Ze = !0;\n ee.set(P, M), ee.set(M, P);\n for (var dt = de; ++Ke < Te; ) {\n var Qe = P[Ee = ge[Ke]], qe = M[Ee];\n if (ye) var Ft = de ? ye(qe, Qe, Ee, M, P, ee) : ye(Qe, qe, Ee, P, M, ee);\n if (!(Ft === void 0 ? Qe === qe || ht(Qe, qe, Xe, ye, ee) : Ft)) {\n Ze = !1;\n break;\n }\n dt || (dt = Ee == \"constructor\");\n }\n if (Ze && !dt) {\n var et = P.constructor, tt = M.constructor;\n et == tt || !(\"constructor\" in P) || !(\"constructor\" in M) || typeof et == \"function\" && et instanceof et && typeof tt == \"function\" && tt instanceof tt || (Ze = !1);\n }\n return ee.delete(P), ee.delete(M), Ze;\n })(j, H, B, re, G, U));\n })(t, s, f, _, Dt, T));\n }\n function bi(t) {\n return !(!Pt(t) || (function(s) {\n return !!V && V in s;\n })(t)) && (Nt(t) ? Y : C).test(xe(t));\n }\n function zi(t) {\n if (f = (s = t) && s.constructor, _ = typeof f == \"function\" && f.prototype || le, s !== _) return mi(t);\n var s, f, _, T = [];\n for (var j in Object(t)) x.call(t, j) && j != \"constructor\" && T.push(j);\n return T;\n }\n function Lt(t, s, f, _, T, j) {\n var H = 1 & f, B = t.length, re = s.length;\n if (B != re && !(H && re > B)) return !1;\n var G = j.get(t);\n if (G && j.get(s)) return G == s;\n var U = -1, ae = !0, he = 2 & f ? new Ye() : void 0;\n for (j.set(t, s), j.set(s, t); ++U < B; ) {\n var Z = t[U], fe = s[U];\n if (_) var Le = H ? _(fe, Z, U, s, t, j) : _(Z, fe, U, t, s, j);\n if (Le !== void 0) {\n if (Le) continue;\n ae = !1;\n break;\n }\n if (he) {\n if (!A(s, function(Ue, Oe) {\n if (Ce = Oe, !he.has(Ce) && (Z === Ue || T(Z, Ue, f, _, j))) return he.push(Oe);\n var Ce;\n })) {\n ae = !1;\n break;\n }\n } else if (Z !== fe && !T(Z, fe, f, _, j)) {\n ae = !1;\n break;\n }\n }\n return j.delete(t), j.delete(s), ae;\n }\n function Ot(t) {\n return (function(s, f, _) {\n var T = f(s);\n return Ge(s) ? T : (function(j, H) {\n for (var B = -1, re = H.length, G = j.length; ++B < re; ) j[G + B] = H[B];\n return j;\n })(T, _(s));\n })(t, Ei, Si);\n }\n function We(t, s) {\n var f, _, T = t.__data__;\n return ((_ = typeof (f = s)) == \"string\" || _ == \"number\" || _ == \"symbol\" || _ == \"boolean\" ? f !== \"__proto__\" : f === null) ? T[typeof s == \"string\" ? \"string\" : \"hash\"] : T.map;\n }\n function De(t, s) {\n var f = (function(_, T) {\n return _ == null ? void 0 : _[T];\n })(t, s);\n return bi(f) ? f : void 0;\n }\n Se.prototype.clear = function() {\n this.__data__ = Me ? Me(null) : {}, this.size = 0;\n }, Se.prototype.delete = function(t) {\n var s = this.has(t) && delete this.__data__[t];\n return this.size -= s ? 1 : 0, s;\n }, Se.prototype.get = function(t) {\n var s = this.__data__;\n if (Me) {\n var f = s[t];\n return f === i ? void 0 : f;\n }\n return x.call(s, t) ? s[t] : void 0;\n }, Se.prototype.has = function(t) {\n var s = this.__data__;\n return Me ? s[t] !== void 0 : x.call(s, t);\n }, Se.prototype.set = function(t, s) {\n var f = this.__data__;\n return this.size += this.has(t) ? 0 : 1, f[t] = Me && s === void 0 ? i : s, this;\n }, ce.prototype.clear = function() {\n this.__data__ = [], this.size = 0;\n }, ce.prototype.delete = function(t) {\n var s = this.__data__, f = Be(s, t);\n return !(f < 0 || (f == s.length - 1 ? s.pop() : fi.call(s, f, 1), --this.size, 0));\n }, ce.prototype.get = function(t) {\n var s = this.__data__, f = Be(s, t);\n return f < 0 ? void 0 : s[f][1];\n }, ce.prototype.has = function(t) {\n return Be(this.__data__, t) > -1;\n }, ce.prototype.set = function(t, s) {\n var f = this.__data__, _ = Be(f, t);\n return _ < 0 ? (++this.size, f.push([t, s])) : f[_][1] = s, this;\n }, Ie.prototype.clear = function() {\n this.size = 0, this.__data__ = {\n hash: new Se(),\n map: new (Ne || ce)(),\n string: new Se()\n };\n }, Ie.prototype.delete = function(t) {\n var s = We(this, t).delete(t);\n return this.size -= s ? 1 : 0, s;\n }, Ie.prototype.get = function(t) {\n return We(this, t).get(t);\n }, Ie.prototype.has = function(t) {\n return We(this, t).has(t);\n }, Ie.prototype.set = function(t, s) {\n var f = We(this, t), _ = f.size;\n return f.set(t, s), this.size += f.size == _ ? 0 : 1, this;\n }, Ye.prototype.add = Ye.prototype.push = function(t) {\n return this.__data__.set(t, i), this;\n }, Ye.prototype.has = function(t) {\n return this.__data__.has(t);\n }, pe.prototype.clear = function() {\n this.__data__ = new ce(), this.size = 0;\n }, pe.prototype.delete = function(t) {\n var s = this.__data__, f = s.delete(t);\n return this.size = s.size, f;\n }, pe.prototype.get = function(t) {\n return this.__data__.get(t);\n }, pe.prototype.has = function(t) {\n return this.__data__.has(t);\n }, pe.prototype.set = function(t, s) {\n var f = this.__data__;\n if (f instanceof ce) {\n var _ = f.__data__;\n if (!Ne || _.length < 199) return _.push([t, s]), this.size = ++f.size, this;\n f = this.__data__ = new Ie(_);\n }\n return f.set(t, s), this.size = f.size, this;\n };\n var Si = Et ? function(t) {\n return t == null ? [] : (t = Object(t), (function(s, f) {\n for (var _ = -1, T = s == null ? 0 : s.length, j = 0, H = []; ++_ < T; ) {\n var B = s[_];\n f(B, _, s) && (H[j++] = B);\n }\n return H;\n })(Et(t), function(s) {\n return xt.call(t, s);\n }));\n } : function() {\n return [];\n }, we = Pe;\n function Ii(t, s) {\n return !!(s = s ?? r) && (typeof t == \"number\" || X.test(t)) && t > -1 && t % 1 == 0 && t < s;\n }\n function xe(t) {\n if (t != null) {\n try {\n return je.call(t);\n } catch {\n }\n try {\n return t + \"\";\n } catch {\n }\n }\n return \"\";\n }\n function Rt(t, s) {\n return t === s || t != t && s != s;\n }\n (st && we(new st(new ArrayBuffer(1))) != E || Ne && we(new Ne()) != c || ot && we(ot.resolve()) != w || at && we(new at()) != z || ut && we(new ut()) != b) && (we = function(t) {\n var s = Pe(t), f = s == y ? t.constructor : void 0, _ = f ? xe(f) : \"\";\n if (_) switch (_) {\n case vi:\n return E;\n case pi:\n return c;\n case wi:\n return w;\n case yi:\n return z;\n case gi:\n return b;\n }\n return s;\n });\n var xi = jt(/* @__PURE__ */ (function() {\n return arguments;\n })()) ? jt : function(t) {\n return Ae(t) && x.call(t, \"callee\") && !xt.call(t, \"callee\");\n }, Ge = Array.isArray, ct = di || function() {\n return !1;\n };\n function Nt(t) {\n if (!Pt(t)) return !1;\n var s = Pe(t);\n return s == o || s == \"[object GeneratorFunction]\" || s == \"[object AsyncFunction]\" || s == \"[object Proxy]\";\n }\n function Mt(t) {\n return typeof t == \"number\" && t > -1 && t % 1 == 0 && t <= r;\n }\n function Pt(t) {\n var s = typeof t;\n return t != null && (s == \"object\" || s == \"function\");\n }\n function Ae(t) {\n return t != null && typeof t == \"object\";\n }\n var At = N ? /* @__PURE__ */ (function(t) {\n return function(s) {\n return t(s);\n };\n })(N) : function(t) {\n return Ae(t) && Mt(t.length) && !!h[Pe(t)];\n };\n function Ei(t) {\n return (s = t) != null && Mt(s.length) && !Nt(s) ? _i(t) : zi(t);\n var s;\n }\n u.exports = function(t, s) {\n return Dt(t, s);\n };\n})(vt, vt.exports)), vt.exports), Oi = $e(Li);\nfunction Wt(u, e, i) {\n return u[e] ? u[e][0] ? u[e][0][i] : u[e][i] : e === \"contentBoxSize\" ? u.contentRect[i === \"inlineSize\" ? \"width\" : \"height\"] : void 0;\n}\nfunction Ri(u) {\n u === void 0 && (u = {});\n var e = u.onResize, i = window.React.useRef(void 0);\n i.current = e;\n var r = u.round || Math.round, l = window.React.useRef(), m = window.React.useState({\n width: void 0,\n height: void 0\n }), g = m[0], d = m[1], n = window.React.useRef(!1);\n window.React.useEffect(function() {\n return n.current = !1, function() {\n n.current = !0;\n };\n }, []);\n var o = window.React.useRef({\n width: void 0,\n height: void 0\n }), c = (function(a, y) {\n var w = window.React.useRef(null), v = window.React.useRef(null);\n v.current = y;\n var z = window.React.useRef(null);\n window.React.useEffect(function() {\n S();\n });\n var S = window.React.useCallback(function() {\n var p = z.current, b = v.current, I = p || (b ? b instanceof Element ? b : b.current : null);\n w.current && w.current.element === I && w.current.subscriber === a || (w.current && w.current.cleanup && w.current.cleanup(), w.current = {\n element: I,\n subscriber: a,\n cleanup: I ? a(I) : void 0\n });\n }, [a]);\n return window.React.useEffect(function() {\n return function() {\n w.current && w.current.cleanup && (w.current.cleanup(), w.current = null);\n };\n }, []), window.React.useCallback(function(p) {\n z.current = p, S();\n }, [S]);\n })(window.React.useCallback(function(a) {\n return l.current && l.current.box === u.box && l.current.round === r || (l.current = {\n box: u.box,\n round: r,\n instance: new ResizeObserver(function(y) {\n var w = y[0], v = u.box === \"border-box\" ? \"borderBoxSize\" : u.box === \"device-pixel-content-box\" ? \"devicePixelContentBoxSize\" : \"contentBoxSize\", z = Wt(w, v, \"inlineSize\"), S = Wt(w, v, \"blockSize\"), p = z ? r(z) : void 0, b = S ? r(S) : void 0;\n if (o.current.width !== p || o.current.height !== b) {\n var I = {\n width: p,\n height: b\n };\n o.current.width = p, o.current.height = b, i.current ? i.current(I) : n.current || d(I);\n }\n })\n }), l.current.instance.observe(a, {\n box: u.box\n }), function() {\n l.current && l.current.instance.unobserve(a);\n };\n }, [u.box, r]), u.ref);\n return window.React.useMemo(function() {\n return {\n ref: c,\n width: g.width,\n height: g.height\n };\n }, [c, g.width, g.height]);\n}\nvar Ni = \"allotment-module_splitView__L-yRc\", Mi = \"allotment-module_sashContainer__fzwJF\", Pi = \"allotment-module_splitViewContainer__rQnVa\", ri = \"allotment-module_splitViewView__MGZ6O\", Ai = \"allotment-module_vertical__WSwwa\", Ci = \"allotment-module_horizontal__7doS8\", Ti = \"allotment-module_separatorBorder__x-rDS\";\nlet Fe, si = !1, oi = !1;\ntypeof navigator == \"object\" && (Fe = navigator.userAgent, oi = Fe.indexOf(\"Macintosh\") >= 0, si = (Fe.indexOf(\"Macintosh\") >= 0 || Fe.indexOf(\"iPad\") >= 0 || Fe.indexOf(\"iPhone\") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0);\nconst ai = si, Fi = oi, Gt = typeof window < \"u\" && window.document !== void 0 && window.document.createElement !== void 0 ? window.React.useLayoutEffect : window.React.useEffect;\nclass ki {\n constructor() {\n this._size = void 0;\n }\n getSize() {\n return this._size;\n }\n setSize(e) {\n this._size = e;\n }\n}\nfunction it(u, e) {\n const i = u.length, r = i - e.length;\n return r >= 0 && u.slice(r, i) === e;\n}\nvar Ut, Xt = {\n exports: {}\n}, Jt, Kt, $i = (Ut || (Ut = 1, (function(u) {\n var e = Object.prototype.hasOwnProperty, i = \"~\";\n function r() {\n }\n function l(n, o, c) {\n this.fn = n, this.context = o, this.once = c || !1;\n }\n function m(n, o, c, a, y) {\n if (typeof c != \"function\") throw new TypeError(\"The listener must be a function\");\n var w = new l(c, a || n, y), v = i ? i + o : o;\n return n._events[v] ? n._events[v].fn ? n._events[v] = [n._events[v], w] : n._events[v].push(w) : (n._events[v] = w, n._eventsCount++), n;\n }\n function g(n, o) {\n --n._eventsCount == 0 ? n._events = new r() : delete n._events[o];\n }\n function d() {\n this._events = new r(), this._eventsCount = 0;\n }\n Object.create && (r.prototype = /* @__PURE__ */ Object.create(null), new r().__proto__ || (i = !1)), d.prototype.eventNames = function() {\n var n, o, c = [];\n if (this._eventsCount === 0) return c;\n for (o in n = this._events) e.call(n, o) && c.push(i ? o.slice(1) : o);\n return Object.getOwnPropertySymbols ? c.concat(Object.getOwnPropertySymbols(n)) : c;\n }, d.prototype.listeners = function(n) {\n var o = i ? i + n : n, c = this._events[o];\n if (!c) return [];\n if (c.fn) return [c.fn];\n for (var a = 0, y = c.length, w = new Array(y); a < y; a++) w[a] = c[a].fn;\n return w;\n }, d.prototype.listenerCount = function(n) {\n var o = i ? i + n : n, c = this._events[o];\n return c ? c.fn ? 1 : c.length : 0;\n }, d.prototype.emit = function(n, o, c, a, y, w) {\n var v = i ? i + n : n;\n if (!this._events[v]) return !1;\n var z, S, p = this._events[v], b = arguments.length;\n if (p.fn) {\n switch (p.once && this.removeListener(n, p.fn, void 0, !0), b) {\n case 1:\n return p.fn.call(p.context), !0;\n case 2:\n return p.fn.call(p.context, o), !0;\n case 3:\n return p.fn.call(p.context, o, c), !0;\n case 4:\n return p.fn.call(p.context, o, c, a), !0;\n case 5:\n return p.fn.call(p.context, o, c, a, y), !0;\n case 6:\n return p.fn.call(p.context, o, c, a, y, w), !0;\n }\n for (S = 1, z = new Array(b - 1); S < b; S++) z[S - 1] = arguments[S];\n p.fn.apply(p.context, z);\n } else {\n var I, E = p.length;\n for (S = 0; S < E; S++) switch (p[S].once && this.removeListener(n, p[S].fn, void 0, !0), b) {\n case 1:\n p[S].fn.call(p[S].context);\n break;\n case 2:\n p[S].fn.call(p[S].context, o);\n break;\n case 3:\n p[S].fn.call(p[S].context, o, c);\n break;\n case 4:\n p[S].fn.call(p[S].context, o, c, a);\n break;\n default:\n if (!z) for (I = 1, z = new Array(b - 1); I < b; I++) z[I - 1] = arguments[I];\n p[S].fn.apply(p[S].context, z);\n }\n }\n return !0;\n }, d.prototype.on = function(n, o, c) {\n return m(this, n, o, c, !1);\n }, d.prototype.once = function(n, o, c) {\n return m(this, n, o, c, !0);\n }, d.prototype.removeListener = function(n, o, c, a) {\n var y = i ? i + n : n;\n if (!this._events[y]) return this;\n if (!o) return g(this, y), this;\n var w = this._events[y];\n if (w.fn) w.fn !== o || a && !w.once || c && w.context !== c || g(this, y);\n else {\n for (var v = 0, z = [], S = w.length; v < S; v++) (w[v].fn !== o || a && !w[v].once || c && w[v].context !== c) && z.push(w[v]);\n z.length ? this._events[y] = z.length === 1 ? z[0] : z : g(this, y);\n }\n return this;\n }, d.prototype.removeAllListeners = function(n) {\n var o;\n return n ? (o = i ? i + n : n, this._events[o] && g(this, o)) : (this._events = new r(), this._eventsCount = 0), this;\n }, d.prototype.off = d.prototype.removeListener, d.prototype.addListener = d.prototype.on, d.prefixed = i, d.EventEmitter = d, u.exports = d;\n})(Xt)), Xt.exports), bt = $e($i);\nfunction Zt(u, e) {\n const i = u.indexOf(e);\n i > -1 && (u.splice(i, 1), u.unshift(e));\n}\nfunction pt(u, e) {\n const i = u.indexOf(e);\n i > -1 && (u.splice(i, 1), u.push(e));\n}\nfunction te(u, e, i = 1) {\n const r = Math.max(0, Math.ceil((e - u) / i)), l = new Array(r);\n let m = -1;\n for (; ++m < r; ) l[m] = u + m * i;\n return l;\n}\nvar Hi = $e((function() {\n if (Kt) return Jt;\n Kt = 1;\n var u = /^\\s+|\\s+$/g, e = /^[-+]0x[0-9a-f]+$/i, i = /^0b[01]+$/i, r = /^0o[0-7]+$/i, l = parseInt, m = typeof _e == \"object\" && _e && _e.Object === Object && _e, g = typeof self == \"object\" && self && self.Object === Object && self, d = m || g || Function(\"return this\")(), n = Object.prototype.toString, o = Math.max, c = Math.min, a = function() {\n return d.Date.now();\n };\n function y(v) {\n var z = typeof v;\n return !!v && (z == \"object\" || z == \"function\");\n }\n function w(v) {\n if (typeof v == \"number\") return v;\n if ((function(p) {\n return typeof p == \"symbol\" || /* @__PURE__ */ (function(b) {\n return !!b && typeof b == \"object\";\n })(p) && n.call(p) == \"[object Symbol]\";\n })(v)) return NaN;\n if (y(v)) {\n var z = typeof v.valueOf == \"function\" ? v.valueOf() : v;\n v = y(z) ? z + \"\" : z;\n }\n if (typeof v != \"string\") return v === 0 ? v : +v;\n v = v.replace(u, \"\");\n var S = i.test(v);\n return S || r.test(v) ? l(v.slice(2), S ? 2 : 8) : e.test(v) ? NaN : +v;\n }\n return Jt = function(v, z, S) {\n var p, b, I, E, C, X, h = 0, L = !1, K = !1, F = !0;\n if (typeof v != \"function\") throw new TypeError(\"Expected a function\");\n function oe(N) {\n var A = p, W = b;\n return p = b = void 0, h = N, E = v.apply(W, A);\n }\n function O(N) {\n var A = N - X;\n return X === void 0 || A >= z || A < 0 || K && N - h >= I;\n }\n function D() {\n var N = a();\n if (O(N)) return k(N);\n C = setTimeout(D, (function(A) {\n var W = z - (A - X);\n return K ? c(W, I - (A - h)) : W;\n })(N));\n }\n function k(N) {\n return C = void 0, F && p ? oe(N) : (p = b = void 0, E);\n }\n function R() {\n var N = a(), A = O(N);\n if (p = arguments, b = this, X = N, A) {\n if (C === void 0) return (function(W) {\n return h = W, C = setTimeout(D, z), L ? oe(W) : E;\n })(X);\n if (K) return C = setTimeout(D, z), oe(X);\n }\n return C === void 0 && (C = setTimeout(D, z)), E;\n }\n return z = w(z) || 0, y(S) && (L = !!S.leading, I = (K = \"maxWait\" in S) ? o(w(S.maxWait) || 0, z) : I, F = \"trailing\" in S ? !!S.trailing : F), R.cancel = function() {\n C !== void 0 && clearTimeout(C), h = 0, p = X = b = C = void 0;\n }, R.flush = function() {\n return C === void 0 ? E : k(a());\n }, R;\n };\n})()), Yi = \"sash-module_sash__K-9lB\", Bi = \"sash-module_disabled__Hm-wx\", Wi = \"sash-module_mac__Jf6OJ\", Qt = \"sash-module_vertical__pB-rs\", Gi = \"sash-module_minimum__-UKxp\", Ui = \"sash-module_maximum__TCWxD\", qt = \"sash-module_horizontal__kFbiw\", wt = \"sash-module_hover__80W6I\", yt = \"sash-module_active__bJspD\";\nlet ne = (function(u) {\n return u.Vertical = \"VERTICAL\", u.Horizontal = \"HORIZONTAL\", u;\n})({}), q = (function(u) {\n return u.Disabled = \"DISABLED\", u.Minimum = \"MINIMUM\", u.Maximum = \"MAXIMUM\", u.Enabled = \"ENABLED\", u;\n})({}), ui = ai ? 20 : 8;\nconst li = new bt();\nclass ei extends bt {\n get state() {\n return this._state;\n }\n set state(e) {\n this._state !== e && (this.el.classList.toggle(Bi, e === q.Disabled), this.el.classList.toggle(\"sash-disabled\", e === q.Disabled), this.el.classList.toggle(Gi, e === q.Minimum), this.el.classList.toggle(\"sash-minimum\", e === q.Minimum), this.el.classList.toggle(Ui, e === q.Maximum), this.el.classList.toggle(\"sash-maximum\", e === q.Maximum), this._state = e, this.emit(\"enablementChange\", e));\n }\n constructor(e, i, r) {\n var l;\n super(), this.el = void 0, this.layoutProvider = void 0, this.orientation = void 0, this.size = void 0, this.hoverDelay = 300, this.hoverDelayer = Hi((m) => m.classList.add(\"sash-hover\", wt), this.hoverDelay), this._state = q.Enabled, this.onPointerStart = (m) => {\n const g = m.pageX, d = m.pageY, n = {\n startX: g,\n currentX: g,\n startY: d,\n currentY: d\n };\n this.el.classList.add(\"sash-active\", yt), this.emit(\"start\", n), this.el.setPointerCapture(m.pointerId);\n const o = (a) => {\n a.preventDefault();\n const y = {\n startX: g,\n currentX: a.pageX,\n startY: d,\n currentY: a.pageY\n };\n this.emit(\"change\", y);\n }, c = (a) => {\n a.preventDefault(), this.el.classList.remove(\"sash-active\", yt), this.hoverDelayer.cancel(), this.emit(\"end\"), this.el.releasePointerCapture(a.pointerId), window.removeEventListener(\"pointermove\", o), window.removeEventListener(\"pointerup\", c);\n };\n window.addEventListener(\"pointermove\", o), window.addEventListener(\"pointerup\", c);\n }, this.onPointerDoublePress = () => {\n this.emit(\"reset\");\n }, this.onMouseEnter = () => {\n this.el.classList.contains(yt) ? (this.hoverDelayer.cancel(), this.el.classList.add(\"sash-hover\", wt)) : this.hoverDelayer(this.el);\n }, this.onMouseLeave = () => {\n this.hoverDelayer.cancel(), this.el.classList.remove(\"sash-hover\", wt);\n }, this.el = document.createElement(\"div\"), this.el.classList.add(\"sash\", Yi), this.el.dataset.testid = \"sash\", e.append(this.el), Fi && this.el.classList.add(\"sash-mac\", Wi), this.el.addEventListener(\"pointerdown\", this.onPointerStart), this.el.addEventListener(\"dblclick\", this.onPointerDoublePress), this.el.addEventListener(\"mouseenter\", this.onMouseEnter), this.el.addEventListener(\"mouseleave\", this.onMouseLeave), typeof r.size == \"number\" ? (this.size = r.size, r.orientation === ne.Vertical ? this.el.style.width = `${this.size}px` : this.el.style.height = `${this.size}px`) : (this.size = ui, li.on(\"onDidChangeGlobalSize\", (m) => {\n this.size = m, this.layout();\n })), this.layoutProvider = i, this.orientation = (l = r.orientation) != null ? l : ne.Vertical, this.orientation === ne.Horizontal ? (this.el.classList.add(\"sash-horizontal\", qt), this.el.classList.remove(\"sash-vertical\", Qt)) : (this.el.classList.remove(\"sash-horizontal\", qt), this.el.classList.add(\"sash-vertical\", Qt)), this.layout();\n }\n layout() {\n if (this.orientation === ne.Vertical) {\n const e = this.layoutProvider;\n this.el.style.left = e.getVerticalSashLeft(this) - this.size / 2 + \"px\", e.getVerticalSashTop && (this.el.style.top = e.getVerticalSashTop(this) + \"px\"), e.getVerticalSashHeight && (this.el.style.height = e.getVerticalSashHeight(this) + \"px\");\n } else {\n const e = this.layoutProvider;\n this.el.style.top = e.getHorizontalSashTop(this) - this.size / 2 + \"px\", e.getHorizontalSashLeft && (this.el.style.left = e.getHorizontalSashLeft(this) + \"px\"), e.getHorizontalSashWidth && (this.el.style.width = e.getHorizontalSashWidth(this) + \"px\");\n }\n }\n dispose() {\n this.el.removeEventListener(\"pointerdown\", this.onPointerStart), this.el.removeEventListener(\"dblclick\", this.onPointerDoublePress), this.el.removeEventListener(\"mouseenter\", this.onMouseEnter), this.el.removeEventListener(\"mouseleave\", () => this.onMouseLeave), this.el.remove();\n }\n}\nlet rt;\nvar gt;\n(gt = rt || (rt = {})).Distribute = {\n type: \"distribute\"\n}, gt.Split = function(u) {\n return {\n type: \"split\",\n index: u\n };\n}, gt.Invisible = function(u) {\n return {\n type: \"invisible\",\n cachedVisibleSize: u\n };\n};\nlet ie = (function(u) {\n return u.Normal = \"NORMAL\", u.Low = \"LOW\", u.High = \"HIGH\", u;\n})({});\nclass ci {\n constructor(e, i, r) {\n this.container = void 0, this.view = void 0, this._size = void 0, this._cachedVisibleSize = void 0, this.container = e, this.view = i, this.container.classList.add(\"split-view-view\", ri), this.container.dataset.testid = \"split-view-view\", typeof r == \"number\" ? (this._size = r, this._cachedVisibleSize = void 0, e.classList.add(\"split-view-view-visible\")) : (this._size = 0, this._cachedVisibleSize = r.cachedVisibleSize);\n }\n set size(e) {\n this._size = e;\n }\n get size() {\n return this._size;\n }\n get priority() {\n return this.view.priority;\n }\n get snap() {\n return !!this.view.snap;\n }\n get cachedVisibleSize() {\n return this._cachedVisibleSize;\n }\n get visible() {\n return this._cachedVisibleSize === void 0;\n }\n setVisible(e, i) {\n e !== this.visible && (e ? (this.size = se(this._cachedVisibleSize, this.viewMinimumSize, this.viewMaximumSize), this._cachedVisibleSize = void 0) : (this._cachedVisibleSize = typeof i == \"number\" ? i : this.size, this.size = 0), this.container.classList.toggle(\"split-view-view-visible\", e), this.view.setVisible && this.view.setVisible(e));\n }\n get minimumSize() {\n return this.visible ? this.view.minimumSize : 0;\n }\n get viewMinimumSize() {\n return this.view.minimumSize;\n }\n get maximumSize() {\n return this.visible ? this.view.maximumSize : 0;\n }\n get viewMaximumSize() {\n return this.view.maximumSize;\n }\n set enabled(e) {\n this.container.style.pointerEvents = e ? \"\" : \"none\";\n }\n layout(e) {\n this.layoutContainer(e), this.view.layout(this.size, e);\n }\n}\nclass Xi extends ci {\n layoutContainer(e) {\n this.container.style.left = `${e}px`, this.container.style.width = `${this.size}px`;\n }\n}\nclass Ji extends ci {\n layoutContainer(e) {\n this.container.style.top = `${e}px`, this.container.style.height = `${this.size}px`;\n }\n}\nclass Ki extends bt {\n get startSnappingEnabled() {\n return this._startSnappingEnabled;\n }\n set startSnappingEnabled(e) {\n this._startSnappingEnabled !== e && (this._startSnappingEnabled = e, this.updateSashEnablement());\n }\n get endSnappingEnabled() {\n return this._endSnappingEnabled;\n }\n set endSnappingEnabled(e) {\n this._endSnappingEnabled !== e && (this._endSnappingEnabled = e, this.updateSashEnablement());\n }\n constructor(e, i = {}, r, l, m) {\n var g, d;\n if (super(), this.onDidChange = void 0, this.onDidDragStart = void 0, this.onDidDragEnd = void 0, this.orientation = void 0, this.sashContainer = void 0, this.size = 0, this.contentSize = 0, this.proportions = void 0, this.viewItems = [], this.sashItems = [], this.sashDragState = void 0, this.proportionalLayout = void 0, this.getSashOrthogonalSize = void 0, this._startSnappingEnabled = !0, this._endSnappingEnabled = !0, this.onSashEnd = (n) => {\n this.emit(\"sashchange\", n), this.saveProportions();\n for (const o of this.viewItems) o.enabled = !0;\n }, this.orientation = (g = i.orientation) != null ? g : ne.Vertical, this.proportionalLayout = (d = i.proportionalLayout) != null ? d : !0, this.getSashOrthogonalSize = i.getSashOrthogonalSize, r && (this.onDidChange = r), l && (this.onDidDragStart = l), m && (this.onDidDragEnd = m), this.sashContainer = document.createElement(\"div\"), this.sashContainer.classList.add(\"sash-container\", Mi), e.prepend(this.sashContainer), i.descriptor) {\n this.size = i.descriptor.size;\n for (const [n, o] of i.descriptor.views.entries()) {\n const c = o.size, a = o.container, y = o.view;\n this.addView(a, y, c, n, !0);\n }\n this.contentSize = this.viewItems.reduce((n, o) => n + o.size, 0), this.saveProportions();\n }\n }\n addView(e, i, r, l = this.viewItems.length, m) {\n let g;\n g = typeof r == \"number\" ? r : r.type === \"split\" ? this.getViewSize(r.index) / 2 : r.type === \"invisible\" ? {\n cachedVisibleSize: r.cachedVisibleSize\n } : i.minimumSize;\n const d = this.orientation === ne.Vertical ? new Ji(e, i, g) : new Xi(e, i, g);\n if (this.viewItems.splice(l, 0, d), this.viewItems.length > 1) {\n const n = this.orientation === ne.Vertical ? new ei(this.sashContainer, {\n getHorizontalSashTop: (a) => this.getSashPosition(a),\n getHorizontalSashWidth: this.getSashOrthogonalSize\n }, {\n orientation: ne.Horizontal\n }) : new ei(this.sashContainer, {\n getVerticalSashLeft: (a) => this.getSashPosition(a),\n getVerticalSashHeight: this.getSashOrthogonalSize\n }, {\n orientation: ne.Vertical\n }), o = this.orientation === ne.Vertical ? (a) => ({\n sash: n,\n start: a.startY,\n current: a.currentY\n }) : (a) => ({\n sash: n,\n start: a.startX,\n current: a.currentX\n });\n n.on(\"start\", (a) => {\n var y;\n this.emit(\"sashDragStart\"), this.onSashStart(o(a));\n const w = this.viewItems.map((v) => v.size);\n (y = this.onDidDragStart) == null || y.call(this, w);\n }), n.on(\"change\", (a) => this.onSashChange(o(a))), n.on(\"end\", () => {\n var a;\n this.emit(\"sashDragEnd\"), this.onSashEnd(this.sashItems.findIndex((w) => w.sash === n));\n const y = this.viewItems.map((w) => w.size);\n (a = this.onDidDragEnd) == null || a.call(this, y);\n }), n.on(\"reset\", () => {\n const a = this.sashItems.findIndex((S) => S.sash === n), y = te(a, -1, -1), w = te(a + 1, this.viewItems.length), v = this.findFirstSnapIndex(y), z = this.findFirstSnapIndex(w);\n (typeof v != \"number\" || this.viewItems[v].visible) && (typeof z != \"number\" || this.viewItems[z].visible) && this.emit(\"sashreset\", a);\n });\n const c = {\n sash: n\n };\n this.sashItems.splice(l - 1, 0, c);\n }\n m || this.relayout(), m || typeof r == \"number\" || r.type !== \"distribute\" || this.distributeViewSizes();\n }\n removeView(e, i) {\n if (e < 0 || e >= this.viewItems.length) throw new Error(\"Index out of bounds\");\n const r = this.viewItems.splice(e, 1)[0].view;\n if (this.viewItems.length >= 1) {\n const l = Math.max(e - 1, 0);\n this.sashItems.splice(l, 1)[0].sash.dispose();\n }\n return this.relayout(), i && i.type === \"distribute\" && this.distributeViewSizes(), r;\n }\n moveView(e, i, r) {\n const l = this.getViewCachedVisibleSize(i), m = l === void 0 ? this.getViewSize(i) : rt.Invisible(l), g = this.removeView(i);\n this.addView(e, g, m, r);\n }\n getViewCachedVisibleSize(e) {\n if (e < 0 || e >= this.viewItems.length) throw new Error(\"Index out of bounds\");\n return this.viewItems[e].cachedVisibleSize;\n }\n layout(e = this.size) {\n const i = Math.max(this.size, this.contentSize);\n if (this.size = e, this.proportions) for (let r = 0; r < this.viewItems.length; r++) {\n const l = this.viewItems[r];\n l.size = se(Math.round(this.proportions[r] * e), l.minimumSize, l.maximumSize);\n }\n else {\n const r = te(0, this.viewItems.length), l = r.filter((g) => this.viewItems[g].priority === ie.Low), m = r.filter((g) => this.viewItems[g].priority === ie.High);\n this.resize(this.viewItems.length - 1, e - i, void 0, l, m);\n }\n this.distributeEmptySpace(), this.layoutViews();\n }\n resizeView(e, i) {\n if (e < 0 || e >= this.viewItems.length) return;\n const r = te(0, this.viewItems.length).filter((d) => d !== e), l = [...r.filter((d) => this.viewItems[d].priority === ie.Low), e], m = r.filter((d) => this.viewItems[d].priority === ie.High), g = this.viewItems[e];\n i = Math.round(i), i = se(i, g.minimumSize, Math.min(g.maximumSize, this.size)), g.size = i, this.relayout(l, m);\n }\n resizeViews(e) {\n for (let i = 0; i < e.length; i++) {\n const r = this.viewItems[i];\n let l = e[i];\n l = Math.round(l), l = se(l, r.minimumSize, Math.min(r.maximumSize, this.size)), r.size = l;\n }\n this.contentSize = this.viewItems.reduce((i, r) => i + r.size, 0), this.saveProportions(), this.layout(this.size);\n }\n getViewSize(e) {\n return e < 0 || e >= this.viewItems.length ? -1 : this.viewItems[e].size;\n }\n isViewVisible(e) {\n if (e < 0 || e >= this.viewItems.length) throw new Error(\"Index out of bounds\");\n return this.viewItems[e].visible;\n }\n setViewVisible(e, i) {\n if (e < 0 || e >= this.viewItems.length) throw new Error(\"Index out of bounds\");\n this.viewItems[e].setVisible(i), this.distributeEmptySpace(e), this.layoutViews(), this.saveProportions();\n }\n distributeViewSizes() {\n const e = [];\n let i = 0;\n for (const d of this.viewItems) d.maximumSize - d.minimumSize > 0 && (e.push(d), i += d.size);\n const r = Math.floor(i / e.length);\n for (const d of e) d.size = se(r, d.minimumSize, d.maximumSize);\n const l = te(0, this.viewItems.length), m = l.filter((d) => this.viewItems[d].priority === ie.Low), g = l.filter((d) => this.viewItems[d].priority === ie.High);\n this.relayout(m, g);\n }\n dispose() {\n this.sashItems.forEach((e) => e.sash.dispose()), this.sashItems = [], this.sashContainer.remove();\n }\n relayout(e, i) {\n const r = this.viewItems.reduce((l, m) => l + m.size, 0);\n this.resize(this.viewItems.length - 1, this.size - r, void 0, e, i), this.distributeEmptySpace(), this.layoutViews(), this.saveProportions();\n }\n onSashStart({\n sash: e,\n start: i\n }) {\n const r = this.sashItems.findIndex((l) => l.sash === e);\n ((l) => {\n const m = this.viewItems.map((b) => b.size);\n let g, d, n = Number.NEGATIVE_INFINITY, o = Number.POSITIVE_INFINITY;\n const c = te(r, -1, -1), a = te(r + 1, this.viewItems.length), y = c.reduce((b, I) => b + (this.viewItems[I].minimumSize - m[I]), 0), w = c.reduce((b, I) => b + (this.viewItems[I].viewMaximumSize - m[I]), 0), v = a.length === 0 ? Number.POSITIVE_INFINITY : a.reduce((b, I) => b + (m[I] - this.viewItems[I].minimumSize), 0), z = a.length === 0 ? Number.NEGATIVE_INFINITY : a.reduce((b, I) => b + (m[I] - this.viewItems[I].viewMaximumSize), 0);\n n = Math.max(y, z), o = Math.min(v, w);\n const S = this.findFirstSnapIndex(c), p = this.findFirstSnapIndex(a);\n if (typeof S == \"number\") {\n const b = this.viewItems[S], I = Math.floor(b.viewMinimumSize / 2);\n g = {\n index: S,\n limitDelta: b.visible ? n - I : n + I,\n size: b.size\n };\n }\n if (typeof p == \"number\") {\n const b = this.viewItems[p], I = Math.floor(b.viewMinimumSize / 2);\n d = {\n index: p,\n limitDelta: b.visible ? o + I : o - I,\n size: b.size\n };\n }\n this.sashDragState = {\n start: l,\n current: l,\n index: r,\n sizes: m,\n minDelta: n,\n maxDelta: o,\n snapBefore: g,\n snapAfter: d\n };\n })(i);\n }\n onSashChange({\n current: e\n }) {\n const {\n index: i,\n start: r,\n sizes: l,\n minDelta: m,\n maxDelta: g,\n snapBefore: d,\n snapAfter: n\n } = this.sashDragState;\n this.sashDragState.current = e;\n const o = e - r;\n this.resize(i, o, l, void 0, void 0, m, g, d, n), this.distributeEmptySpace(), this.layoutViews();\n }\n getSashPosition(e) {\n let i = 0;\n for (let r = 0; r < this.sashItems.length; r++) if (i += this.viewItems[r].size, this.sashItems[r].sash === e) return i;\n return 0;\n }\n resize(e, i, r = this.viewItems.map((c) => c.size), l, m, g = Number.NEGATIVE_INFINITY, d = Number.POSITIVE_INFINITY, n, o) {\n if (e < 0 || e >= this.viewItems.length) return 0;\n const c = te(e, -1, -1), a = te(e + 1, this.viewItems.length);\n if (m) for (const h of m) Zt(c, h), Zt(a, h);\n if (l) for (const h of l) pt(c, h), pt(a, h);\n const y = c.map((h) => this.viewItems[h]), w = c.map((h) => r[h]), v = a.map((h) => this.viewItems[h]), z = a.map((h) => r[h]), S = c.reduce((h, L) => h + (this.viewItems[L].minimumSize - r[L]), 0), p = c.reduce((h, L) => h + (this.viewItems[L].maximumSize - r[L]), 0), b = a.length === 0 ? Number.POSITIVE_INFINITY : a.reduce((h, L) => h + (r[L] - this.viewItems[L].minimumSize), 0), I = a.length === 0 ? Number.NEGATIVE_INFINITY : a.reduce((h, L) => h + (r[L] - this.viewItems[L].maximumSize), 0), E = Math.max(S, I, g), C = Math.min(b, p, d);\n let X = !1;\n if (n) {\n const h = this.viewItems[n.index], L = i >= n.limitDelta;\n X = L !== h.visible, h.setVisible(L, n.size);\n }\n if (!X && o) {\n const h = this.viewItems[o.index], L = i < o.limitDelta;\n X = L !== h.visible, h.setVisible(L, o.size);\n }\n if (X) return this.resize(e, i, r, l, m, g, d);\n for (let h = 0, L = i = se(i, E, C); h < y.length; h++) {\n const K = y[h], F = se(w[h] + L, K.minimumSize, K.maximumSize);\n L -= F - w[h], K.size = F;\n }\n for (let h = 0, L = i; h < v.length; h++) {\n const K = v[h], F = se(z[h] - L, K.minimumSize, K.maximumSize);\n L += F - z[h], K.size = F;\n }\n return i;\n }\n distributeEmptySpace(e) {\n const i = this.viewItems.reduce((o, c) => o + c.size, 0);\n let r = this.size - i;\n const l = te(0, this.viewItems.length), m = [], g = l.filter((o) => this.viewItems[o].priority === ie.Low), d = l.filter((o) => this.viewItems[o].priority === ie.Normal), n = l.filter((o) => this.viewItems[o].priority === ie.High);\n m.push(...n, ...d, ...g), typeof e == \"number\" && pt(m, e);\n for (let o = 0; r !== 0 && o < m.length; o++) {\n const c = this.viewItems[m[o]], a = se(c.size + r, c.minimumSize, c.maximumSize);\n r -= a - c.size, c.size = a;\n }\n }\n layoutViews() {\n var e;\n this.contentSize = this.viewItems.reduce((r, l) => r + l.size, 0);\n let i = 0;\n for (const r of this.viewItems) r.layout(i), i += r.size;\n (e = this.onDidChange) != null && e.call(this, this.viewItems.map((r) => r.size)), this.sashItems.forEach((r) => r.sash.layout()), this.updateSashEnablement();\n }\n saveProportions() {\n this.proportionalLayout && this.contentSize > 0 && (this.proportions = this.viewItems.map((e) => e.size / this.contentSize));\n }\n updateSashEnablement() {\n let e = !1;\n const i = this.viewItems.map((n) => e = n.size - n.minimumSize > 0 || e);\n e = !1;\n const r = this.viewItems.map((n) => e = n.maximumSize - n.size > 0 || e), l = [...this.viewItems].reverse();\n e = !1;\n const m = l.map((n) => e = n.size - n.minimumSize > 0 || e).reverse();\n e = !1;\n const g = l.map((n) => e = n.maximumSize - n.size > 0 || e).reverse();\n let d = 0;\n for (let n = 0; n < this.sashItems.length; n++) {\n const {\n sash: o\n } = this.sashItems[n];\n d += this.viewItems[n].size;\n const c = !(i[n] && g[n + 1]), a = !(r[n] && m[n + 1]);\n if (c && a) {\n const y = te(n, -1, -1), w = te(n + 1, this.viewItems.length), v = this.findFirstSnapIndex(y), z = this.findFirstSnapIndex(w), S = typeof v == \"number\" && !this.viewItems[v].visible, p = typeof z == \"number\" && !this.viewItems[z].visible;\n S && m[n] && (d > 0 || this.startSnappingEnabled) ? o.state = q.Minimum : p && i[n] && (d < this.contentSize || this.endSnappingEnabled) ? o.state = q.Maximum : o.state = q.Disabled;\n } else o.state = c && !a ? q.Minimum : !c && a ? q.Maximum : q.Enabled;\n }\n }\n findFirstSnapIndex(e) {\n for (const i of e) {\n const r = this.viewItems[i];\n if (r.visible && r.snap) return i;\n }\n for (const i of e) {\n const r = this.viewItems[i];\n if (r.visible && r.maximumSize - r.minimumSize > 0) return;\n if (!r.visible && r.snap) return i;\n }\n }\n}\nclass Re {\n constructor(e) {\n this.size = void 0, this.size = e;\n }\n getPreferredSize() {\n return this.size;\n }\n}\nclass ti {\n constructor(e, i) {\n this.proportion = void 0, this.layoutService = void 0, this.proportion = e, this.layoutService = i;\n }\n getPreferredSize() {\n return this.proportion * this.layoutService.getSize();\n }\n}\nclass nt {\n getPreferredSize() {\n }\n}\nclass ii {\n get preferredSize() {\n return this.layoutStrategy.getPreferredSize();\n }\n set preferredSize(e) {\n if (typeof e == \"number\") this.layoutStrategy = new Re(e);\n else if (typeof e == \"string\") {\n const i = e.trim();\n if (it(i, \"%\")) {\n const r = Number(i.slice(0, -1)) / 100;\n this.layoutStrategy = new ti(r, this.layoutService);\n } else if (it(i, \"px\")) {\n const r = Number(i.slice(0, -2)) / 100;\n this.layoutStrategy = new Re(r);\n } else if (typeof Number.parseFloat(i) == \"number\") {\n const r = Number.parseFloat(i);\n this.layoutStrategy = new Re(r);\n } else this.layoutStrategy = new nt();\n } else this.layoutStrategy = new nt();\n }\n constructor(e, i) {\n var r;\n if (this.minimumSize = 0, this.maximumSize = Number.POSITIVE_INFINITY, this.element = void 0, this.priority = void 0, this.snap = void 0, this.layoutService = void 0, this.layoutStrategy = void 0, this.layoutService = e, this.element = i.element, this.minimumSize = typeof i.minimumSize == \"number\" ? i.minimumSize : 30, this.maximumSize = typeof i.maximumSize == \"number\" ? i.maximumSize : Number.POSITIVE_INFINITY, typeof i.preferredSize == \"number\") this.layoutStrategy = new Re(i.preferredSize);\n else if (typeof i.preferredSize == \"string\") {\n const l = i.preferredSize.trim();\n if (it(l, \"%\")) {\n const m = Number(l.slice(0, -1)) / 100;\n this.layoutStrategy = new ti(m, this.layoutService);\n } else if (it(l, \"px\")) {\n const m = Number(l.slice(0, -2));\n this.layoutStrategy = new Re(m);\n } else if (typeof Number.parseFloat(l) == \"number\") {\n const m = Number.parseFloat(l);\n this.layoutStrategy = new Re(m);\n } else this.layoutStrategy = new nt();\n } else this.layoutStrategy = new nt();\n this.priority = (r = i.priority) != null ? r : ie.Normal, this.snap = typeof i.snap == \"boolean\" && i.snap;\n }\n layout(e) {\n }\n}\nfunction ni(u) {\n return u.minSize !== void 0 || u.maxSize !== void 0 || u.preferredSize !== void 0 || u.priority !== void 0 || u.visible !== void 0;\n}\nconst zt = window.React.forwardRef(({\n className: u,\n children: e\n}, i) => window.React.createElement(\"div\", {\n ref: i,\n className: _t(\"split-view-view\", ri, u)\n}, e));\nzt.displayName = \"Allotment.Pane\";\nconst hi = window.React.forwardRef(({\n children: u,\n className: e,\n id: i,\n maxSize: r = 1 / 0,\n minSize: l = 30,\n proportionalLayout: m = !0,\n separator: g = !0,\n sizes: d,\n defaultSizes: n = d,\n snap: o = !1,\n vertical: c = !1,\n onChange: a,\n onReset: y,\n onVisibleChange: w,\n onDragStart: v,\n onDragEnd: z\n}, S) => {\n const p = window.React.useRef(null), b = window.React.useRef([]), I = window.React.useRef(/* @__PURE__ */ new Map()), E = window.React.useRef(null), C = window.React.useRef(/* @__PURE__ */ new Map()), X = window.React.useRef(new ki()), h = window.React.useRef([]), [L, K] = window.React.useState(!1), F = window.React.useMemo(() => window.React.Children.toArray(u).filter(window.React.isValidElement), [u]), oe = window.React.useCallback((O) => {\n var D, k;\n const R = (D = h.current) == null ? void 0 : D[O];\n return typeof (R == null ? void 0 : R.preferredSize) == \"number\" && ((k = E.current) != null && k.resizeView(O, Math.round(R.preferredSize)), !0);\n }, []);\n return window.React.useImperativeHandle(S, () => ({\n reset: () => {\n if (y) y();\n else {\n var O;\n (O = E.current) == null || O.distributeViewSizes();\n for (let D = 0; D < h.current.length; D++) oe(D);\n }\n },\n resize: (O) => {\n var D;\n (D = E.current) == null || D.resizeViews(O);\n }\n })), Gt(() => {\n let O = !0;\n n && C.current.size !== n.length && (O = !1, console.warn(`Expected ${n.length} children based on defaultSizes but found ${C.current.size}`)), O && n && (b.current = F.map((R) => R.key));\n const D = ke({\n orientation: c ? ne.Vertical : ne.Horizontal,\n proportionalLayout: m\n }, O && n && {\n descriptor: {\n size: n.reduce((R, N) => R + N, 0),\n views: n.map((R, N) => {\n var A, W, be, me;\n const J = I.current.get(b.current[N]), ve = new ii(X.current, ke({\n element: document.createElement(\"div\"),\n minimumSize: (A = J == null ? void 0 : J.minSize) != null ? A : l,\n maximumSize: (W = J == null ? void 0 : J.maxSize) != null ? W : r,\n priority: (be = J == null ? void 0 : J.priority) != null ? be : ie.Normal\n }, (J == null ? void 0 : J.preferredSize) && {\n preferredSize: J == null ? void 0 : J.preferredSize\n }, {\n snap: (me = J == null ? void 0 : J.snap) != null ? me : o\n }));\n return h.current.push(ve), {\n container: [...C.current.values()][N],\n size: R,\n view: ve\n };\n })\n }\n });\n E.current = new Ki(p.current, D, a, v, z), E.current.on(\"sashDragStart\", () => {\n var R;\n (R = p.current) == null || R.classList.add(\"split-view-sash-dragging\");\n }), E.current.on(\"sashDragEnd\", () => {\n var R;\n (R = p.current) == null || R.classList.remove(\"split-view-sash-dragging\");\n }), E.current.on(\"sashchange\", (R) => {\n if (w && E.current) {\n const N = F.map((A) => A.key);\n for (let A = 0; A < N.length; A++) {\n const W = I.current.get(N[A]);\n (W == null ? void 0 : W.visible) !== void 0 && W.visible !== E.current.isViewVisible(A) && w(A, E.current.isViewVisible(A));\n }\n }\n }), E.current.on(\"sashreset\", (R) => {\n if (y) y();\n else {\n var N;\n if (oe(R) || oe(R + 1)) return;\n (N = E.current) == null || N.distributeViewSizes();\n }\n });\n const k = E.current;\n return () => {\n k.dispose();\n };\n }, []), Gt(() => {\n if (L) {\n const Q = F.map((x) => x.key), ue = [...b.current], le = Q.filter((x) => !b.current.includes(x)), Ve = Q.filter((x) => b.current.includes(x)), je = b.current.map((x) => !Q.includes(x));\n for (let x = je.length - 1; x >= 0; x--) {\n var O;\n je[x] && ((O = E.current) != null && O.removeView(x), ue.splice(x, 1), h.current.splice(x, 1));\n }\n for (const x of le) {\n var D, k, R, N, A;\n const V = I.current.get(x), $ = new ii(X.current, ke({\n element: document.createElement(\"div\"),\n minimumSize: (D = V == null ? void 0 : V.minSize) != null ? D : l,\n maximumSize: (k = V == null ? void 0 : V.maxSize) != null ? k : r,\n priority: (R = V == null ? void 0 : V.priority) != null ? R : ie.Normal\n }, (V == null ? void 0 : V.preferredSize) && {\n preferredSize: V == null ? void 0 : V.preferredSize\n }, {\n snap: (N = V == null ? void 0 : V.snap) != null ? N : o\n }));\n (A = E.current) != null && A.addView(C.current.get(x), $, rt.Distribute, Q.findIndex((Y) => Y === x)), ue.splice(Q.findIndex((Y) => Y === x), 0, x), h.current.splice(Q.findIndex((Y) => Y === x), 0, $);\n }\n for (; !Oi(Q, ue); ) for (const [x, V] of Q.entries()) {\n const $ = ue.findIndex((Y) => Y === V);\n if ($ !== x) {\n var W;\n (W = E.current) == null || W.moveView(C.current.get(V), $, x);\n const Y = ue[$];\n ue.splice($, 1), ue.splice(x, 0, Y);\n break;\n }\n }\n for (const x of le) {\n var be;\n const V = Q.findIndex((Y) => Y === x), $ = h.current[V].preferredSize;\n $ !== void 0 && ((be = E.current) == null || be.resizeView(V, $));\n }\n for (const x of [...le, ...Ve]) {\n var me, J;\n const V = I.current.get(x), $ = Q.findIndex((Y) => Y === x);\n V && ni(V) && V.visible !== void 0 && ((me = E.current) == null ? void 0 : me.isViewVisible($)) !== V.visible && ((J = E.current) == null || J.setViewVisible($, V.visible));\n }\n for (const x of Ve) {\n const V = I.current.get(x), $ = Q.findIndex((Y) => Y === x);\n if (V && ni(V)) {\n var ve;\n V.preferredSize !== void 0 && h.current[$].preferredSize !== V.preferredSize && (h.current[$].preferredSize = V.preferredSize);\n let Y = !1;\n V.minSize !== void 0 && h.current[$].minimumSize !== V.minSize && (h.current[$].minimumSize = V.minSize, Y = !0), V.maxSize !== void 0 && h.current[$].maximumSize !== V.maxSize && (h.current[$].maximumSize = V.maxSize, Y = !0), Y && ((ve = E.current) == null || ve.layout());\n }\n }\n (le.length > 0 || je.length > 0) && (b.current = Q);\n }\n }, [F, L, r, l, o]), window.React.useEffect(() => {\n E.current && (E.current.onDidChange = a);\n }, [a]), window.React.useEffect(() => {\n E.current && (E.current.onDidDragStart = v);\n }, [v]), window.React.useEffect(() => {\n E.current && (E.current.onDidDragEnd = z);\n }, [z]), Ri({\n ref: p,\n onResize: ({\n width: O,\n height: D\n }) => {\n var k;\n O && D && ((k = E.current) != null && k.layout(c ? D : O), X.current.setSize(c ? D : O), K(!0));\n }\n }), window.React.useEffect(() => {\n ai && Zi(20);\n }, []), window.React.createElement(\"div\", {\n ref: p,\n className: _t(\"split-view\", c ? \"split-view-vertical\" : \"split-view-horizontal\", {\n \"split-view-separator-border\": g\n }, Ni, c ? Ai : Ci, {\n [Ti]: g\n }, e),\n id: i\n }, window.React.createElement(\"div\", {\n className: _t(\"split-view-container\", Pi)\n }, window.React.Children.toArray(u).map((O) => {\n if (!window.React.isValidElement(O)) return null;\n const D = O.key;\n return O.type.displayName === \"Allotment.Pane\" ? (I.current.set(D, O.props), window.React.cloneElement(O, {\n key: D,\n ref: (k) => {\n const R = O.ref;\n R && (R.current = k), k ? C.current.set(D, k) : C.current.delete(D);\n }\n })) : window.React.createElement(zt, {\n key: D,\n ref: (k) => {\n k ? C.current.set(D, k) : C.current.delete(D);\n }\n }, O);\n })));\n});\nfunction Zi(u) {\n const e = se(u, 4, 20), i = se(u, 1, 8);\n document.documentElement.style.setProperty(\"--sash-size\", e + \"px\"), document.documentElement.style.setProperty(\"--sash-hover-size\", i + \"px\"), (function(r) {\n ui = r, li.emit(\"onDidChangeGlobalSize\", r);\n })(e);\n}\nhi.displayName = \"Allotment\";\nvar Qi = Object.assign(hi, {\n Pane: zt\n});\nexport {\n Qi as Allotment\n};\n//# sourceMappingURL=libraries.js.map\n","import { Allotment } from '@blockbite/libraries';\nimport { useLayoutEffect, useRef } from '@wordpress/element';\n\nexport const SplitPane = ({\n pane1,\n pane2,\n handle,\n className = '',\n minSize1 = 150,\n minSize2 = 150,\n}) => {\n const allotmentRef = useRef(null);\n const hasPane2 = !!pane2;\n const prevHasPane2 = useRef(false);\n const savedSizesRef = useRef(null);\n const isFirstMount = useRef(true);\n\n // Load saved sizes from localStorage on mount\n if (isFirstMount.current && handle) {\n const savedSizes = localStorage.getItem(`splitPaneSizes-${handle}`);\n if (savedSizes) {\n try {\n savedSizesRef.current = JSON.parse(savedSizes);\n } catch (e) {\n savedSizesRef.current = [70, 30];\n }\n } else {\n savedSizesRef.current = [70, 30];\n }\n isFirstMount.current = false;\n }\n\n // Apply saved sizes when pane2 becomes visible (use layoutEffect to avoid flash)\n useLayoutEffect(() => {\n if (\n hasPane2 &&\n !prevHasPane2.current &&\n allotmentRef.current &&\n savedSizesRef.current\n ) {\n // pane2 just became visible, restore saved sizes\n requestAnimationFrame(() => {\n if (allotmentRef.current?.resize) {\n allotmentRef.current.resize(savedSizesRef.current);\n }\n });\n }\n prevHasPane2.current = hasPane2;\n }, [hasPane2]);\n\n // Save sizes to localStorage when they change\n const handleChange = (newSizes) => {\n // Only save if pane2 is visible and sizes are reasonable (not collapsed)\n if (handle && hasPane2 && newSizes[1] > 10) {\n savedSizesRef.current = newSizes;\n localStorage.setItem(\n `splitPaneSizes-${handle}`,\n JSON.stringify(newSizes)\n );\n }\n };\n\n // Get initial sizes - always use saved sizes when pane2 is visible\n let defaultSizes;\n if (!hasPane2) {\n defaultSizes = [100, 0];\n } else {\n // Always use saved sizes when pane2 is visible\n defaultSizes = savedSizesRef.current || [70, 30];\n }\n\n return (\n <Allotment\n ref={allotmentRef}\n className={className}\n onChange={handleChange}\n defaultSizes={defaultSizes}\n proportionalLayout={true}\n >\n <Allotment.Pane minSize={minSize1}>{pane1}</Allotment.Pane>\n <Allotment.Pane visible={hasPane2} minSize={minSize2}>\n {pane2}\n </Allotment.Pane>\n </Allotment>\n );\n};\n","import { TabPanel } from '@wordpress/components';\nimport { createContext, useContext, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nconst TabsContext = createContext<{\n activeTab: string | undefined;\n setActiveTab: React.Dispatch<React.SetStateAction<string | undefined>>;\n initialTabName?: string;\n} | null>(null);\n\ntype TabsProps = {\n className?: string;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n children?: React.ReactNode;\n style?: React.CSSProperties;\n};\n\nexport const TabsWrapper = ({\n children,\n defaultValue,\n value,\n onValueChange,\n ...rest\n}: TabsProps) => {\n const isControlled = value !== undefined;\n\n const [internalValue, setInternalValue] = useState(defaultValue || '');\n\n const activeTab = isControlled ? value : internalValue;\n\n const handleTabChange = (newValue: string) => {\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n if (onValueChange) {\n onValueChange(newValue);\n }\n };\n\n const providerValue = {\n activeTab,\n setActiveTab: handleTabChange,\n initialTabName: isControlled ? value : defaultValue,\n };\n\n return (\n <TabsContext.Provider value={providerValue} {...rest}>\n {children}\n </TabsContext.Provider>\n );\n};\n\ntype TabsListProps = {\n options: { name: string; title: any; icon?: any }[];\n children?: React.ReactNode;\n onValueChange?: (value: string) => void;\n className?: string;\n};\n\nexport const TabsList = ({\n options,\n children,\n className,\n onValueChange,\n}: TabsListProps) => {\n const context = useContext(TabsContext);\n const setActiveTab = onValueChange ? onValueChange : context?.setActiveTab;\n\n return (\n <TabPanel\n className={classNames('tabs-list', className)}\n tabs={options}\n initialTabName={context?.initialTabName}\n onSelect={(tabName) => {\n setActiveTab(tabName);\n }}\n >\n {() => children}\n </TabPanel>\n );\n};\n\ntype TabsContentProps = {\n value: string;\n children: React.ReactNode;\n className?: string;\n};\n\nexport const TabsContent = ({\n value,\n children,\n className,\n}: TabsContentProps) => {\n const context = useContext(TabsContext);\n const activeTab = context?.activeTab;\n\n if (activeTab !== value) {\n return null;\n }\n\n return className ? <div className={className}>{children}</div> : children;\n};\n\nexport const Tabs = {\n Wrapper: TabsWrapper,\n List: TabsList,\n Content: TabsContent,\n};\n","import classNames from 'classnames';\n\ntype TagProps = {\n children: React.ReactNode;\n className?: string;\n color:\n | 'blue'\n | 'ruby'\n | 'tomato'\n | 'red'\n | 'crimson'\n | 'pink'\n | 'plum'\n | 'purple'\n | 'violet'\n | 'iris'\n | 'indigo'\n | 'cyan'\n | 'teal'\n | 'jade'\n | 'green'\n | 'grass'\n | 'brown'\n | 'orange'\n | 'sky'\n | 'gray';\n asButton?: boolean;\n onClick?: () => void;\n};\n\nexport const Tag = ({\n children,\n onClick,\n color = 'blue',\n className,\n}: TagProps) => {\n return (\n <button onClick={onClick}>\n <div color={color} className={classNames(className)}>\n {children}\n </div>\n </button>\n );\n};\n","import { Button, Dropdown, FormTokenField } from '@wordpress/components';\nimport { useRef, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\ntype TagInputProps = {\n className?: string;\n inputClassName?: string;\n value: string[];\n label?: string;\n helper?: string;\n placeholder?: string;\n onChange?: (tokens: string[]) => void;\n onInputChange?: (inputValue: string) => void;\n suggestions?: string[];\n\n [key: string]: any;\n};\n\nexport const TagInput = ({\n className,\n inputClassName,\n value,\n label,\n helper,\n placeholder = 'Type and press Enter',\n onChange,\n onInputChange,\n suggestions = [],\n ...props\n}: TagInputProps) => {\n const [isDropdownOpen, setDropdownOpen] = useState(false);\n const [currentInput, setCurrentInput] = useState('');\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const [isSelectingSuggestion, setIsSelectingSuggestion] = useState(false);\n const [fieldKey, setFieldKey] = useState(0);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const shouldBeOpen = currentInput.length > 0 && suggestions.length > 0;\n\n const addSuggestion = (suggestion: string) => {\n // Set flag to prevent blur tokenization\n setIsSelectingSuggestion(true);\n\n onChange?.([...value, suggestion]);\n\n // Clear input and force FormTokenField to reset by changing key\n setCurrentInput('');\n onInputChange?.('');\n setFieldKey((prev) => prev + 1);\n setDropdownOpen(false);\n\n // Reset flag and refocus input after remount\n setTimeout(() => {\n setIsSelectingSuggestion(false);\n // Refocus the input after the component remounts\n const input = containerRef.current?.querySelector(\n '.components-form-token-field__input'\n ) as HTMLInputElement;\n if (input) {\n input.focus();\n }\n }, 0);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!isDropdownOpen || !shouldBeOpen) return;\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n setHighlightedIndex((prev) => Math.min(prev + 1, suggestions.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n setHighlightedIndex((prev) => Math.max(prev - 1, 0));\n } else if (event.key === 'Enter') {\n event.preventDefault();\n if (highlightedIndex >= 0 && suggestions[highlightedIndex]) {\n // User selected a suggestion from dropdown\n addSuggestion(suggestions[highlightedIndex]);\n } else {\n // User is manually entering a token without selecting from dropdown\n // Close dropdown and let FormTokenField handle the tokenization\n setDropdownOpen(false);\n setCurrentInput('');\n }\n } else if (event.key === ',') {\n setDropdownOpen(false);\n // Let FormTokenField handle the comma tokenization naturally\n } else if (event.key === 'Escape') {\n event.preventDefault();\n setDropdownOpen(false);\n }\n };\n\n const handleInputChange = (newInputValue: string) => {\n setCurrentInput(newInputValue);\n onInputChange?.(newInputValue);\n setHighlightedIndex(-1);\n if (newInputValue) {\n setDropdownOpen(true);\n } else {\n // Input is cleared, close dropdown\n setDropdownOpen(false);\n }\n };\n\n return (\n <div\n ref={containerRef}\n className={classNames('flex flex-col gap-1', className)}\n onKeyDown={handleKeyDown}\n {...props}\n >\n <Dropdown\n open={isDropdownOpen && shouldBeOpen}\n onClose={() => setDropdownOpen(false)}\n renderToggle={() => (\n <FormTokenField\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n key={fieldKey}\n value={value}\n label={label || undefined}\n onChange={onChange}\n onInputChange={handleInputChange}\n onFocus={() => setDropdownOpen(true)}\n tokenizeOnBlur={\n !isSelectingSuggestion && !(isDropdownOpen && shouldBeOpen)\n }\n placeholder={placeholder}\n className={inputClassName}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n />\n )}\n renderContent={() => (\n <div role=\"listbox\" className=\"max-h-60 min-w-32 overflow-y-auto\">\n {suggestions.map((suggestion, index) => (\n <Button\n key={suggestion}\n variant={index === highlightedIndex ? 'primary' : 'tertiary'}\n className={classNames(\n 'block w-full text-left px-3 py-2 text-sm',\n {\n 'is-active': index === highlightedIndex,\n }\n )}\n onClick={() => addSuggestion(suggestion)}\n onMouseDown={() => setIsSelectingSuggestion(true)}\n onMouseEnter={() => setHighlightedIndex(index)}\n tabIndex={-1}\n >\n {suggestion}\n </Button>\n ))}\n </div>\n )}\n />\n {helper && <p className=\"text-xs text-primary mt-1\">{helper}</p>}\n </div>\n );\n};\n\nTagInput.displayName = 'TagInput'; // Recommended for debugging\n","import { Pencil1 as Pencil1Icon } from '@blockbite/icons';\n\nimport { TextControl } from '@wordpress/components';\nimport { Wrap } from './Wrap.js';\n\ntype TextControlLabelProps = {\n className?: string;\n defaultValue: any;\n children?: React.ReactNode;\n onChange?: (value: string) => void;\n onClick?: () => void;\n};\n\nexport const TextControlLabel = ({\n onChange,\n defaultValue,\n children,\n}: TextControlLabelProps) => {\n return (\n <Wrap className=\"blockbite-ui__text-control-label flex items-center\">\n <span className=\"outline-b-2 relative block -outline-offset-2 outline-black\">\n <TextControl\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n type=\"text\"\n value={defaultValue}\n onChange={onChange}\n />\n <Pencil1Icon className=\"absolute right-1 top-2\" />\n </span>{' '}\n {children}\n </Wrap>\n );\n};\n","import { memo } from '@wordpress/element';\n\nimport { Wrap } from './Wrap.js';\n\nimport {\n __experimentalToggleGroupControlOptionIcon as ToggleGroupControlIcon,\n __experimentalToggleGroupControlOption as ToggleGroupControlOption,\n __experimentalToggleGroupControl as WordpressToggleGroupControl,\n} from '@wordpress/components';\nimport classNames from 'classnames';\n\ntype ToggleProps = {\n className?: string;\n options: { value: string; label: string; icon?: React.ReactElement }[];\n value: string;\n label?: string | boolean;\n variant?: 'primary' | 'secondary';\n display?: 'icon' | 'label';\n size?: 'small' | 'default' | 'compact';\n onPressedChange: (value: string) => void;\n};\n\nexport const ToggleGroup: React.FC<ToggleProps> = memo(\n ({\n className,\n options,\n value,\n display = 'label',\n label = false,\n onPressedChange,\n size = 'default',\n }) => {\n const handlePressChange = (val: string) => {\n onPressedChange(val);\n };\n\n return (\n <Wrap className={classNames(className)}>\n <WordpressToggleGroupControl\n __next40pxDefaultSize={size === 'default'}\n __nextHasNoMarginBottom\n isBlock\n value={value}\n {...(label ? { label } : {})}\n >\n {options.map((option) =>\n display === 'icon' ? (\n <ToggleGroupControlIcon\n icon={option.icon}\n label={option.label}\n key={`ToggleGroupControlIcon-${option.value}`}\n value={option.value}\n onClick={() => handlePressChange(option.value)}\n />\n ) : (\n <ToggleGroupControlOption\n key={`ToggleGroupControlOption-${option.value}`}\n value={option.value}\n label={option.label}\n onClick={() => handlePressChange(option.value)}\n />\n )\n )}\n </WordpressToggleGroupControl>\n </Wrap>\n );\n }\n);\n","import { ToggleControl as Switch } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\ntype ToggleSwitchProps = {\n label?: string;\n className?: string;\n onChange?: (checked: boolean) => void;\n checked?: boolean;\n};\n\nexport const ToggleSwitch = ({\n label,\n className,\n onChange,\n checked = false, // Default to false if undefined, so it's always controlled\n}: ToggleSwitchProps) => {\n const [isChecked, setIsChecked] = useState(checked);\n\n useEffect(() => {\n setIsChecked(checked);\n }, [checked]);\n\n return (\n <Wrap className={classNames(className, 'flex items-center gap-2')}>\n <Switch\n checked={isChecked}\n label={label}\n onChange={(e) => {\n setIsChecked(e);\n onChange && onChange(e);\n }}\n ></Switch>\n </Wrap>\n );\n};\n"],"names":["hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","ButtonToggle","memo","children","className","variant","pressed","onPressedChange","Icon","size","display","label","handleClick","useCallback","WordpressButton","ButtonToggleGroup","toggle","options","tabs","stretch","handleButtonClick","optionValue","newValue","renderContent","option","index","AutocompleteDropdown","swatch","activeKeyword","setActiveKeyword","useState","filteredOptions","setFilteredOptions","useEffect","Dropdown","isOpen","onToggle","Button","_a","o","TextControl","changedValue","Badge","onClick","status","BitePreview","htmlContent","cssContent","frontendAssets","iframeRef","useRef","iframeBody","setIframeBody","iframe","iframeDocument","styleTag","type","id","url","existingElement","adoptedElement","newElement","createPortal","icon","rest","IconComponent","disabled","isIconDisplay","Wrap","important","Chapter","title","ChapterDivider","help","badge","addon","line","props","Checkbox","defaultChecked","isChecked","setChecked","CheckboxControl","ChevronDown","ColorWheel","Cross1","Cross2","InfoCircled","ListBullet","Pencil1","Percentage","Plus","Slider","Tailwind","Trash","forwardRef","onChange","inputClassName","readOnly","placeholder","onBlur","helper","ref","fieldId","e","DataItemList","data","active","setActive","onCreate","onDelete","onUpdate","onSwitch","renderItemActions","renderItemContent","addons","footerSlot","footerSlotClassName","rename","setRename","isSaving","setIsSaving","textRef","handleAdd","handleRemove","newData","d","currentIndex","nextActive","handleRenameBlur","renderBadge","item","PlusIcon","TrashIcon","DisappearingMessage","duration","show","message","onClose","isShowing","setIsShowing","hasMounted","timeoutRef","DropdownPicker","defaultIcon","ChevronDownIcon","currentOption","setCurrentOption","allOptions","iconSize","DropdownMenu","EmptyState","description","FloatingPanel","panelRef","position","setPosition","dragging","setDragging","offset","setOffset","handleMouseMove","handleMouseUp","startDragging","rect","FocalPointControl","onValueChange","focalPoint","setFocalPoint","x","y","v","FocalPointPicker","Popover","visible","anchor","onVisibleChange","handleClose","WordpressPopover","SelectControlWrapper","emptyLabel","handleChange","val","WordpressSelect","directionToClass","classToDirection","acc","dir","cls","directionToAngle","RADIAL_CLASS","clamp","min","max","parseToken","palette","token","base","opacityPart","opacityFromToken","hex","found","c","buildToken","baseToken","opacity","hexWithOpacity","clean","g","b","gradientToCss","parts","a","stop","parsePositionValue","cleaned","classGroupsToGradientValue","groups","directionClass","kind","direction","stops","fromGroup","fromPosGroup","_b","viaGroup","viaPosGroup","viaItem","pos","toGroup","_c","toPosGroup","_d","normalizeStops","gradientValueToClassGroups","sorted","from","s","to","vias","gradientClassGroupsToArray","out","obj","entry","role","num","gradientValueToArray","arrayToGradient","arr","items","hasGradientGroupIds","get","t","_e","fromToken","_f","fromPos","_g","viaTokens","viaPos","idx","toToken","_h","toPos","_i","dirItem","fallbackStops","sel","TailwindGradientPicker","trackRef","activeStopId","setActiveStopId","popoverVisible","setPopoverVisible","popoverAnchor","setPopoverAnchor","dragState","setDragState","displayStops","activeStop","updateStops","updater","nextStops","updateStop","patch","removeStop","handleTrackClick","track","nearest","best","handleHandleMouseDown","onMove","event","raw","onUp","openColorPopover","target","handleKindChange","handleDirectionChange","handleColorPickerChange","color","nextKind","ColorIndicator","ColorPicker","Label","LinkPicker","links","setLinks","activeLink","setActiveLink","apiFetch","fetchedLinks","__","LinkList","link","onActiveLink","list","MediaPicker","mediaProps","mediaCallback","allowedTypes","stateMedia","setStateMedia","removeMedia","onSelectMedia","media","safeSizes","sizeObject","mediaType","mediaObj","PanelRow","MediaUploadCheck","MediaUpload","open","RangeSlider","withInputField","onReset","allowReset","gridMode","showTooltip","resetFallbackValue","rangeValue","setRangeValue","handleRangeUpdate","gridValue","WordpressRangeControl","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isPercent","isTshirtSize","CSS_UNITS","MetricsControl","propValue","classGroupControl","tailwindUi","isVisible","setIsVisible","localUnit","setLocalUnit","localText","setLocalText","rawValue","setRawValue","inputRef","manualFraction","manualOptions","manualRange","manualCssVars","manualArbitrary","rangeMin","rangeMax","getUserFriendlyValue","detectUnitFromRawValue","normOptions","useMemo","supportsArbitrary","hasValidator","supportsFraction","supportsTheme","validators","names","arbMatch","varMatch","getRawValue","userFriendly","trimmed","isValidValue","handleInputChange","handleBlur","newRaw","handleKeyDown","appendToText","insertion","isNumeric","newText","numericMatch","setValueDirectly","CurrentUnitIcon","PercentageIcon","ListBulletIcon","ColorWheelIcon","SliderIcon","TailwindUnitIcon","openPicker","renderFractionBody","renderListBody","getCustomCssVariables","rootStyles","customVars","propertyName","renderThemeInsert","cssVariableOptions","renderArbitraryUnitButtons","u","InputControl","InputControlSuffixWrapper","InfoCircledIcon","ModalContext","createContext","useModalContext","context","useContext","Modal","defaultOpen","onOpenChange","onRequestClose","shouldCloseOnEsc","shouldCloseOnClickOutside","isControlled","uncontrolledOpen","setUncontrolledOpen","setOpen","next","openModal","closeModal","hasModalHeaderChild","Children","child","isValidElement","ModalHeader","ariaProps","ModalTrigger","WordpressModal","ModalContent","ModalFooter","ModalClose","copyStyles","sourceDoc","targetDoc","styleSheet","newStyleEl","cssRule","newLinkEl","NewWindowPortal","windowInstance","containerEl","win","handleBeforeUnload","Notice","showNotice","setShowNotice","WordpressNotice","PasswordInput","showPassword","setShowPassword","SVG","Path","prev","ProjectsNavigation","activeId","onSelect","ResponsiveImage","bbMedia","alt","sizes","thumbnail","medium","large","thumbnailImg","mediumImg","largeImg","ResponsiveVideo","videoUrl","ScrollList","height","select","dispatch","SingleBlockTypeAppender","buttonText","addLastDuplicate","currentBlock","clientId","innerBlocks","lastBlock","newBlock","createBlock","SlideIn","watch","slide","setSlide","Spinner","WordpressSpinner","ke","r","$e","kt","$t","mt","Ht","Yt","Di","l","m","_t","Bt","se","n","w","vt","Li","z","S","p","I","E","C","X","h","L","K","F","oe","O","D","k","R","N","A","f","_","W","T","be","me","ve","Q","ue","le","Ve","je","V","$","Y","St","He","It","xt","fi","ze","Et","di","mi","st","De","Ne","ot","at","ut","Me","vi","xe","pi","wi","yi","gi","Vt","lt","Se","ce","Ie","Ye","pe","Ge","xi","ct","j","At","H","B","U","ae","he","Z","re","G","Ii","Be","Rt","Pe","jt","Ae","Dt","we","fe","Le","Ue","Oe","Lt","P","M","Xe","ye","ht","ee","de","ge","Te","Je","ft","Ce","Ct","Vi","ji","Ot","Ke","Ee","Tt","Ze","dt","Qe","qe","Ft","et","tt","bi","Pt","Nt","zi","Ei","Si","We","Mt","Oi","Wt","Ri","Ni","Mi","Pi","ri","Ai","Ci","Ti","Fe","si","oi","ai","Fi","Gt","ki","it","Ut","Xt","Jt","Kt","$i","bt","Zt","pt","te","Hi","Yi","Bi","Wi","Qt","Gi","Ui","qt","wt","yt","ne","q","ui","li","ei","rt","gt","ie","ci","Xi","Ji","Ki","Re","ti","nt","ii","ni","zt","hi","Zi","Qi","SplitPane","pane1","pane2","handle","minSize1","minSize2","allotmentRef","hasPane2","prevHasPane2","savedSizesRef","isFirstMount","savedSizes","useLayoutEffect","newSizes","defaultSizes","Allotment","TabsContext","TabsWrapper","defaultValue","internalValue","setInternalValue","providerValue","TabsList","setActiveTab","TabPanel","tabName","TabsContent","Tabs","Tag","TagInput","onInputChange","suggestions","isDropdownOpen","setDropdownOpen","currentInput","setCurrentInput","highlightedIndex","setHighlightedIndex","isSelectingSuggestion","setIsSelectingSuggestion","fieldKey","setFieldKey","containerRef","shouldBeOpen","addSuggestion","suggestion","input","newInputValue","FormTokenField","TextControlLabel","Pencil1Icon","ToggleGroup","handlePressChange","WordpressToggleGroupControl","ToggleGroupControlIcon","ToggleGroupControlOption","ToggleSwitch","checked","setIsChecked","Switch"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../src/ButtonToggle.tsx","../src/AutocompleteDropdown.tsx","../src/Badge.tsx","../src/BitePreview.tsx","../src/Icon.tsx","../src/Button.tsx","../src/Wrap.tsx","../src/Chapter.tsx","../src/ChapterDivider.tsx","../src/Checkbox.tsx","../../icons/jsx/ChevronDown.jsx","../../icons/jsx/ColorWheel.jsx","../../icons/jsx/Cross1.jsx","../../icons/jsx/Cross2.jsx","../../icons/jsx/InfoCircled.jsx","../../icons/jsx/ListBullet.jsx","../../icons/jsx/Pencil1.jsx","../../icons/jsx/Percentage.jsx","../../icons/jsx/Plus.jsx","../../icons/jsx/Slider.jsx","../../icons/jsx/Tailwind.jsx","../../icons/jsx/Trash.jsx","../src/TextControl.tsx","../src/DataItemList.tsx","../src/DisappearingMessage.tsx","../src/DropdownPicker.tsx","../src/EmptyState.tsx","../src/FloatingPanel.tsx","../src/FocalPointControl.tsx","../src/Popover.tsx","../src/SelectControlWrapper.tsx","../src/GradientSwatchPicker.tsx","../src/Label.tsx","../src/LinkPicker.tsx","../src/MediaPicker.tsx","../src/RangeSlider.tsx","../src/MetricsControl.tsx","../src/Modal.tsx","../src/NewWindowPortal.tsx","../src/Notice.tsx","../src/PasswordInput.tsx","../src/ProjectsNavigation.tsx","../src/ResponsiveImage.tsx","../src/ResponsiveVideo.tsx","../src/ScrollList.tsx","../src/SingleBlockTypeAppender.tsx","../src/SlideIn.tsx","../src/Spinner.tsx","../../libraries/dist/libraries.js","../src/SplitPane.tsx","../src/Tabs.tsx","../src/Tag.tsx","../src/TagInput.tsx","../src/TextControlLabel.tsx","../src/ToggleGroup.tsx","../src/ToggleSwitch.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Button as WordpressButton } from '@wordpress/components';\nimport { memo, useCallback } from '@wordpress/element';\nimport classNames from 'classnames';\n\ntype ButtonToggleProps = {\n children?: React.ReactNode;\n className?: string;\n value: string;\n pressed: boolean;\n variant?: 'primary' | 'secondary';\n size?: 'small' | 'default' | 'compact';\n icon?: any;\n display?: 'icon' | 'label' | '' | null;\n onPressedChange: (value: string) => void;\n label?: string;\n};\n\ntype ButtonToggleGroupOptionProp = {\n value: string;\n label: string;\n tooltip?: string;\n icon?: any;\n children?: React.ReactNode;\n};\n\ntype ButtonToggleGroupProps = {\n className?: string;\n options: ButtonToggleGroupOptionProp[];\n value: string;\n toggle?: boolean;\n size?: 'small' | 'default' | 'compact';\n tabs?: boolean;\n display?: 'icon' | 'label' | '' | null;\n variant?: 'primary' | 'secondary';\n stretch?: boolean;\n icon?: JSX.Element;\n onPressedChange?: (value: string) => void;\n};\n\n// ButtonToggle: now fully controlled via `pressed` prop\nexport const ButtonToggle: React.FC<\n Omit<ButtonToggleProps, 'defaultPressed'> & { pressed: boolean }\n> = memo(\n ({\n children,\n className,\n value,\n variant = 'secondary',\n pressed,\n onPressedChange,\n icon: Icon,\n size = 'compact',\n display = 'auto',\n label,\n }) => {\n const handleClick = useCallback(() => {\n onPressedChange(value);\n }, [onPressedChange, value]);\n\n return (\n <WordpressButton\n aria-label={label}\n className={classNames(className, 'blockbite-ui__button--default')}\n value={value}\n size={size}\n label={label}\n variant={variant}\n showTooltip={true}\n isPressed={pressed}\n onClick={handleClick}\n >\n {Icon && <Icon className=\"w-4 h-4\" />}\n {display !== 'icon' ? children : null}\n {label && !children && display !== 'icon' ? <span>{label}</span> : null}\n </WordpressButton>\n );\n }\n);\n\n// ButtonToggleGroup: now fully controlled via `value` prop\nexport const ButtonToggleGroup: React.FC<\n Omit<ButtonToggleGroupProps, 'defaultPressed'> & { value: string }\n> = memo(\n ({\n className,\n value,\n toggle = true,\n display = 'auto',\n options,\n size = 'compact',\n tabs = false,\n variant = 'secondary',\n stretch = false,\n onPressedChange,\n }) => {\n const handleButtonClick = useCallback(\n (optionValue: string) => {\n const newValue = toggle && value === optionValue ? '' : optionValue;\n onPressedChange?.(newValue);\n },\n [onPressedChange, toggle, value]\n );\n\n const renderContent = (option: ButtonToggleGroupOptionProp) => {\n const Icon = option?.icon || null;\n\n if (display === 'icon' && option?.icon) {\n return <Icon icon={option.icon} className=\"w-4 h-4\" />;\n } else if (display === 'label') {\n return <span>{option.label}</span>;\n }\n return (\n <span className=\"flex items-center justify-center gap-1\">\n {option.icon && <Icon icon={option.icon} className=\"w-3 h-3\" />}\n <span>{option.label}</span>\n </span>\n );\n };\n\n return (\n <div\n className={classNames(\n 'blockbite-ui__button-group flex flex-wrap gap-1',\n className,\n tabs ? 'blockbite-ui__button-group--tabs' : ''\n )}\n >\n {options.map((option, index) => (\n <WordpressButton\n key={`ButtonToggleGroup__${option.value}__${option.label}__${index}`}\n className={classNames('blockbite-ui__button--default', {\n grow: stretch,\n 'justify-center': stretch,\n })}\n aria-label={option.label}\n showTooltip={true}\n value={option.value}\n size={size}\n label={option?.tooltip || option.label}\n variant={variant}\n isPressed={value === option.value}\n onClick={() => handleButtonClick(option.value)}\n >\n {renderContent(option)}\n {option.children && option.children}\n </WordpressButton>\n ))}\n </div>\n );\n }\n);\n","import { Button, Dropdown, TextControl } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\nimport { ButtonToggle } from './ButtonToggle.js';\nimport type { OptionProps } from './types.js';\n\ninterface OptionPanelDropdownProps {\n value: string;\n options: { label: string; value: string; style?: string }[];\n onPressedChange: (value: string) => void;\n swatch?: boolean;\n}\n\nexport function AutocompleteDropdown({\n value,\n options,\n swatch,\n onPressedChange,\n}: OptionPanelDropdownProps) {\n const [activeKeyword, setActiveKeyword] = useState('');\n const [filteredOptions, setFilteredOptions] = useState<OptionProps[]>([]);\n\n useEffect(() => {\n setFilteredOptions(\n options.filter((option: OptionProps) =>\n option.label.toLowerCase().includes(activeKeyword.toLowerCase())\n )\n );\n }, [activeKeyword, options]);\n\n useEffect(() => {\n setActiveKeyword('');\n setFilteredOptions(options);\n }, [value, options]);\n\n return (\n <Dropdown\n className=\"option-panel-dropdown\"\n contentClassName=\"option-panel-dropdown-content [&>div]:[scrollbar-width:none] [&>div]:[&::-webkit-scrollbar]:hidden\"\n popoverProps={{ placement: 'bottom-start' }}\n renderToggle={({ isOpen, onToggle }) => (\n <Button\n variant=\"secondary\"\n size=\"small\"\n onClick={onToggle}\n aria-expanded={isOpen}\n >\n <div className=\"flex items-center gap-1.5 !bg-transparent !p-0 !text-[11px] !text-current\">\n {swatch && !!value && (\n <div\n style={{\n backgroundColor: options.find((o) => o.value === value)\n ?.style,\n }}\n className=\"h-3 w-3 rounded-full\"\n />\n )}\n <span>{value || 'Select option…'}</span>\n </div>\n </Button>\n )}\n renderContent={() => (\n <div className=\"w-52\">\n <TextControl\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n label=\"Search options\"\n value={activeKeyword}\n onChange={(changedValue) => setActiveKeyword(changedValue)}\n autoComplete=\"off\"\n />\n <div className=\"grid grid-cols-2 gap-1 !bg-transparent p-0 !pt-2\">\n {filteredOptions.length === 0 && (\n <div className=\"!text-gray-medium col-span-2 pb-2 text-center !text-[11px]\">\n No options found.\n </div>\n )}\n {filteredOptions.map((option: OptionProps, index: Number) => (\n <ButtonToggle\n key={`ButtonToggle__${option.value}___${index}`}\n className={classNames({\n 'bg-primary': option.value,\n })}\n size=\"small\"\n value={option.value.toString()}\n pressed={value === option.value}\n onPressedChange={(pressed) => {\n onPressedChange(pressed ? option.value : '');\n }}\n >\n {swatch && (\n <div\n style={{ backgroundColor: option.style }}\n className=\"mr-3 h-3 w-3 rounded-full\"\n />\n )}\n {option.label}\n </ButtonToggle>\n ))}\n </div>\n </div>\n )}\n />\n );\n}\n","import classNames from 'classnames';\n\ntype BadgeProps = {\n children?: React.ReactNode;\n className?: string;\n label?: string;\n onClick?: () => void;\n status?: 'default' | 'info' | 'success' | 'warning' | 'error';\n};\n\nexport const Badge = ({\n children,\n className,\n label,\n onClick,\n status = 'default',\n}: BadgeProps) => {\n return (\n <div\n onClick={onClick}\n className={classNames(\n className,\n 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium',\n {\n 'bg-wp/10 text-wp': status === 'info',\n 'bg-green-100 text-green-800': status === 'success',\n 'bg-yellow-100 text-yellow-800': status === 'warning',\n 'bg-red-100 text-red-800': status === 'error',\n 'bg-gray-100 text-gray-800': status === 'default',\n }\n )}\n >\n {label && (\n <span className=\"mr-1 text-xs font-semibold text-gray-700\">\n {label}\n </span>\n )}\n {children}\n </div>\n );\n};\n","import { createPortal, useEffect, useRef, useState } from '@wordpress/element';\n\nexport const BitePreview = ({ htmlContent, cssContent, frontendAssets }) => {\n const iframeRef = useRef(null);\n const [iframeBody, setIframeBody] = useState(null);\n\n useEffect(() => {\n const iframe = iframeRef.current;\n\n if (iframe) {\n iframe.onload = () => {\n const iframeDocument =\n iframe.contentDocument || iframe.contentWindow.document;\n\n if (iframeDocument) {\n setIframeBody(iframeDocument.body); // Set the iframe body for portal\n\n // Inject CSS content directly\n const styleTag = iframeDocument.createElement('style');\n styleTag.innerHTML = cssContent;\n iframeDocument.head.appendChild(styleTag);\n\n // Adopt or Create Frontend Assets\n frontendAssets.forEach(({ type, id, url }) => {\n const existingElement = document.getElementById(id);\n\n if (existingElement) {\n // If the asset exists in the parent, move it to the iframe\n const adoptedElement = document.adoptNode(\n existingElement.cloneNode(true)\n );\n iframeDocument.head.appendChild(adoptedElement);\n } else {\n // Create a new script or style if not found\n const newElement = iframeDocument.createElement(\n type === 'script' ? 'script' : 'link'\n );\n newElement.id = id;\n\n if (type === 'script') {\n newElement.src = url;\n newElement.async = true;\n } else {\n newElement.rel = 'stylesheet';\n newElement.href = url;\n }\n\n iframeDocument.head.appendChild(newElement);\n }\n });\n }\n };\n }\n\n return () => {\n if (iframe) {\n iframe.onload = null; // Clean up event listener\n }\n };\n }, [htmlContent, cssContent, frontendAssets]);\n\n return (\n <div\n className=\"render-preview-container\"\n style={{ width: '100%', minHeight: '100%' }}\n >\n <iframe\n ref={iframeRef}\n title=\"Preview\"\n sandbox=\"allow-same-origin allow-scripts\"\n className=\"editor-styles-wrapper\"\n width=\"100%\"\n height=\"100%\"\n />\n {iframeBody &&\n createPortal(\n <div className=\"b_\">\n <div\n className=\"b_utils\"\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n />\n </div>,\n iframeBody\n )}\n </div>\n );\n};\n","export const Icon = ({ icon, ...rest }) => {\n if (!icon) return null;\n\n const IconComponent = icon;\n\n // icon should be a valid function\n if (typeof icon === 'function') {\n return <IconComponent {...rest} />;\n }\n\n /* eslint-disable no-console */\n console.error(\n `[BlockBite:Icon] You passed a JSX element (<Icon />) instead of a component reference (Icon).\nExpected: { icon: ColumnsIcon }\nReceived: { icon: <ColumnsIcon /> }`\n );\n\n return <div>⚠</div>;\n};\n","import { Button as WordpressButton } from '@wordpress/components';\nimport classNames from 'classnames';\nimport { Icon } from './Icon.js';\n\ntype ButtonProps = {\n children?: React.ReactNode;\n asChild?: boolean;\n className?: string;\n display?: 'icon' | 'icon-lg' | 'label' | 'auto' | '' | null;\n onClick?: () => void;\n label?: string;\n size?: 'small' | 'default' | 'compact';\n variant?: 'primary' | 'secondary' | 'link' | 'primary' | 'tertiary';\n icon?: any;\n disabled?: boolean;\n};\n\nexport const Button = ({\n children,\n size = 'default',\n label,\n className,\n onClick,\n variant = 'primary',\n display = 'auto',\n icon,\n disabled = false,\n}: ButtonProps) => {\n const isIconDisplay = display === 'icon' || display === 'icon-lg';\n\n return (\n <WordpressButton\n size={size}\n variant={variant}\n label={label}\n showTooltip={true}\n disabled={disabled}\n className={classNames(\n className,\n 'blockbite-ui__button',\n 'flex items-center justify-center gap-1',\n { 'is-primary': variant === 'primary' },\n { 'is-secondary': variant === 'secondary' },\n { 'is-link': variant === 'link' },\n { 'is-tertiary': variant === 'tertiary' },\n { 'is-icon': display === 'icon' }\n )}\n onClick={onClick}\n >\n {icon && (\n <Icon\n icon={icon}\n className={classNames({ 'h-4 w-4': display === 'icon-lg' })}\n />\n )}\n {!isIconDisplay ? children : null}\n {label && !children && !isIconDisplay ? <span>{label}</span> : null}\n </WordpressButton>\n );\n};\n","type WrapProps = {\n children: React.ReactNode;\n className?: string;\n important?: boolean;\n onClick?: (e: React.MouseEvent) => void;\n};\n\nexport const Wrap = ({\n children,\n className,\n important = false,\n onClick,\n}: WrapProps) => {\n if (important) {\n return (\n <div onClick={onClick}>\n <div className={className}>{children}</div>\n </div>\n );\n }\n\n return <div className={className}>{children}</div>;\n};\n","import classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\ntype ChapterProps = {\n children?: React.ReactNode;\n className?: string;\n title?: string;\n};\n\nexport const Chapter = ({ children, title, className }: ChapterProps) => {\n return (\n <Wrap\n className={classNames(\n 'text-gray-medium my-2 flex items-center gap-1 text-[12px] font-medium',\n className\n )}\n >\n {title && <Wrap className=\"font-medium\">{title}</Wrap>}\n {children}\n </Wrap>\n );\n};\n","import classNames from 'classnames';\nimport { Badge } from './Badge.js';\n\ntype ChapterDividerProps = {\n title?: string;\n className?: string;\n help?: string;\n badge?: string;\n addon?: React.ReactNode;\n\n divider?: boolean;\n [key: string]: any;\n};\n\nexport const ChapterDivider = ({\n title,\n className,\n help,\n badge,\n addon,\n divider = false,\n ...props\n}: ChapterDividerProps) => {\n return (\n <div\n className={classNames(\n 'mb-2',\n className,\n divider ? 'pb-2 border-t border-border pt-2' : ''\n )}\n {...props}\n >\n <div className=\"w-[90%] flex-wrap items-center gap-2 justify-between\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"shrink-1 text-[11px] font-medium uppercase leading-snug\">\n {title}\n </span>\n {addon}\n </div>\n\n {!!badge && (\n <Badge className=\"mt-1 text-[10px] py-px px-1\">{badge}</Badge>\n )}\n </div>\n {help && <small className=\"w-full shrink-0 text-[11px]\">{help}</small>}\n </div>\n );\n};\n","import { CheckboxControl } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\n\nimport { Wrap } from './Wrap.js';\n\ntype CheckboxProps = {\n id: string;\n label?: string;\n help?: string;\n defaultChecked?: boolean;\n onCheckedChange: (checked: boolean, id: string) => void;\n};\n\nexport const Checkbox = ({ label, help, defaultChecked }: CheckboxProps) => {\n const [isChecked, setChecked] = useState(defaultChecked);\n\n useEffect(() => {\n setChecked(defaultChecked);\n }, [defaultChecked]);\n\n return (\n <Wrap className=\"blockbite-ui__checkbox mx-1 flex items-center gap-2\">\n <CheckboxControl\n label={label}\n help={help}\n checked={isChecked}\n onChange={setChecked}\n />\n </Wrap>\n );\n};\n","const ChevronDown = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ChevronDown;\n","const ColorWheel = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.49991 0.877014C11.1576 0.877014 14.1227 3.84216 14.1227 7.49985C14.1227 11.1575 11.1576 14.1227 7.49991 14.1227C3.84222 14.1227 0.877075 11.1575 0.877075 7.49985C0.877075 3.84216 3.84222 0.877014 7.49991 0.877014ZM7.09998 1.84089V6.53429L3.78135 3.21565C4.68298 2.43239 5.83429 1.92904 7.09998 1.84089ZM1.84095 7.09997H6.5343L3.21567 3.78134C2.43242 4.68298 1.92909 5.83428 1.84095 7.09997ZM1.84097 7.89997C1.92916 9.16562 2.43253 10.3169 3.21579 11.2185L6.5343 7.89997H1.84097ZM7.09998 13.1588V8.46566L3.78149 11.7842C4.6831 12.5673 5.83435 13.0707 7.09998 13.1588ZM7.89998 13.1588C9.16559 13.0706 10.3168 12.5673 11.2184 11.7841L7.89998 8.46566V13.1588ZM13.1588 7.89997H8.46567L11.7841 11.2184C12.5673 10.3168 13.0707 9.16558 13.1588 7.89997ZM13.1589 7.09997C13.0707 5.83432 12.5674 4.68305 11.7842 3.78143L8.46567 7.09997H13.1589ZM7.89998 1.8409V6.53429L11.2185 3.21573C10.3169 2.43246 9.16565 1.92909 7.89998 1.8409Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ColorWheel;\n","const Cross1 = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Cross1;\n","const Cross2 = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Cross2;\n","const InfoCircled = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999ZM7.50003 5.99999C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H9.00003V11H6.00003V9.99999H7.00003V6.99999H6.00003V5.99999H7.50003ZM0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972ZM7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default InfoCircled;\n","const ListBullet = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M2.25 4.5C2.25 4.08579 1.91421 3.75 1.5 3.75C1.08579 3.75 0.75 4.08579 0.75 4.5C0.75 4.91421 1.08579 5.25 1.5 5.25C1.91421 5.25 2.25 4.91421 2.25 4.5ZM4.5 4H13.5C13.7761 4 14 4.22386 14 4.5C14 4.77614 13.7761 5 13.5 5H4.5C4.22386 5 4 4.77614 4 4.5C4 4.22386 4.22386 4 4.5 4ZM4 7.5C4 7.77614 4.22386 8 4.5 8H13.5C13.7761 8 14 7.77614 14 7.5C14 7.22386 13.7761 7 13.5 7H4.5C4.22386 7 4 7.22386 4 7.5ZM4 10.5C4 10.7761 4.22386 11 4.5 11H13.5C13.7761 11 14 10.7761 14 10.5C14 10.2239 13.7761 10 13.5 10H4.5C4.22386 10 4 10.2239 4 10.5ZM1.5 8.25C1.08579 8.25 0.75 7.91421 0.75 7.5C0.75 7.08579 1.08579 6.75 1.5 6.75C1.91421 6.75 2.25 7.08579 2.25 7.5C2.25 7.91421 1.91421 8.25 1.5 8.25ZM2.25 10.5C2.25 10.0858 1.91421 9.75 1.5 9.75C1.08579 9.75 0.75 10.0858 0.75 10.5C0.75 10.9142 1.08579 11.25 1.5 11.25C1.91421 11.25 2.25 10.9142 2.25 10.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ListBullet;\n","const Pencil1 = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.1465 1.14645L3.71455 8.57836C3.62459 8.66832 3.55263 8.77461 3.50251 8.89155L2.04044 12.303C1.9599 12.491 2.00189 12.709 2.14646 12.8536C2.29103 12.9981 2.50905 13.0401 2.69697 12.9596L6.10847 11.4975C6.2254 11.4474 6.3317 11.3754 6.42166 11.2855L13.8536 3.85355C14.0488 3.65829 14.0488 3.34171 13.8536 3.14645L11.8536 1.14645C11.6583 0.951184 11.3417 0.951184 11.1465 1.14645ZM11.5 2.20711L12.7929 3.5L5.71455 10.5784L4.21924 11.2192L3.78081 10.7808L4.42166 9.28547L11.5 2.20711Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Pencil1;\n","const Percentage = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <circle cx={4.85355} cy={4.5} r={1.5} fill=\"currentColor\" />\n <circle cx={9.85355} cy={10.5} r={1.5} fill=\"currentColor\" />\n <path\n d=\"M3 11.6464L11 3.64642\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\nexport default Percentage;\n","const Plus = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M7.5 2.25C7.22386 2.25 7 2.47386 7 2.75V7H2.75C2.47386 7 2.25 7.22386 2.25 7.5C2.25 7.77614 2.47386 8 2.75 8H7V12.25C7 12.5261 7.22386 12.75 7.5 12.75C7.77614 12.75 8 12.5261 8 12.25V8H12.25C12.5261 8 12.75 7.77614 12.75 7.5C12.75 7.22386 12.5261 7 12.25 7H8V2.75C8 2.47386 7.77614 2.25 7.5 2.25Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Plus;\n","const Slider = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.49988 10.2504C7.1516 10.2504 6.0299 9.28026 5.79473 7.99997H0.5C0.223858 7.99997 0 7.77611 0 7.49997C0 7.22383 0.223858 6.99997 0.5 6.99997H5.7947C6.0298 5.71959 7.15154 4.74939 8.49988 4.74939C9.84822 4.74939 10.97 5.71959 11.2051 6.99997H14.5C14.7761 6.99997 15 7.22383 15 7.49997C15 7.77611 14.7761 7.99997 14.5 7.99997H11.205C10.9699 9.28026 9.84816 10.2504 8.49988 10.2504ZM8.49988 9.30038C7.50549 9.30038 6.69938 8.49427 6.69938 7.49988C6.69938 6.5055 7.50549 5.69939 8.49988 5.69939C9.49426 5.69939 10.3004 6.5055 10.3004 7.49988C10.3004 8.49427 9.49426 9.30038 8.49988 9.30038Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Slider;\n","const Tailwind = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n d=\"M4 5.33333C4.4 3.77778 5.4 3 7 3C9.4 3 9.7 4.75 10.9 5.04167C11.7 5.23611 12.4 4.94444 13 4.16667C12.6 5.72222 11.6 6.5 10 6.5C7.6 6.5 7.3 4.75 6.1 4.45833C5.3 4.26389 4.6 4.55556 4 5.33333ZM1 8.83333C1.4 7.27778 2.4 6.5 4 6.5C6.4 6.5 6.7 8.25 7.9 8.54167C8.7 8.73611 9.4 8.44444 10 7.66667C9.6 9.22222 8.6 10 7 10C4.6 10 4.3 8.25 3.1 7.95833C2.3 7.76389 1.6 8.05556 1 8.83333Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Tailwind;\n","const Trash = (props) => (\n <svg\n width={props.width || '1em'}\n height={props.height || '1em'}\n viewBox=\"0 0 15 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5 1.5C5 1.77614 5.22386 2 5.5 2H9.5C9.77614 2 10 1.77614 10 1.5C10 1.22386 9.77614 1 9.5 1H5.5C5.22386 1 5 1.22386 5 1.5ZM3.5 3H11.5C11.7761 3 12 3.22386 12 3.5C12 3.77614 11.7761 4 11.5 4H11V12C11 12.5523 10.5523 13 10 13H5C4.44772 13 4 12.5523 4 12V4L3.5 4C3.22386 4 3 3.77614 3 3.5C3 3.22386 3.22386 3 3.5 3ZM10 4V12H5V4H10Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Trash;\n","import { forwardRef } from '@wordpress/element';\nimport classNames from 'classnames';\n\ntype TextControlProps = {\n className?: string;\n inputClassName?: string;\n value: any;\n children?: React.ReactNode;\n onChange?: (value: string) => void;\n onClick?: () => void;\n readOnly?: boolean;\n placeholder?: string;\n onBlur?: (value) => void;\n type?: string;\n label?: string;\n helper?: string;\n [key: string]: any;\n};\n\nexport const TextControl = forwardRef<HTMLInputElement, TextControlProps>(\n (\n {\n onClick,\n onChange,\n className,\n value,\n children,\n inputClassName,\n readOnly,\n placeholder,\n onBlur,\n type = 'text',\n label,\n helper = '',\n ...props\n },\n ref\n ) => {\n const fieldId = `text-control-${Math.random()\n .toString(36)\n .substring(2, 15)}`;\n\n return (\n <div\n className={classNames('flex items-center p-0', className)}\n {...props}\n >\n {label ? (\n <label htmlFor={fieldId} className=\"text-primary !m-0 !mb-0 !mr-2\">\n {label}\n </label>\n ) : null}\n <input\n id={fieldId}\n className={classNames(\n 'components-text-control__input',\n inputClassName\n )}\n type={type}\n value={value}\n placeholder={placeholder}\n onFocus={() => onClick && onClick()}\n onBlur={(e) => {\n if (onClick) onClick();\n if (onBlur) onBlur(e.target.value);\n }}\n onChange={(e) => onChange && onChange(e.target.value)}\n readOnly={readOnly}\n ref={ref}\n />\n {children}\n {helper && <p className=\"text-primary !m-0 !mb-0 text-xs\">{helper}</p>}\n </div>\n );\n }\n);\n\nTextControl.displayName = 'TextControl'; // Recommended for debugging\n","import { Plus as PlusIcon, Trash as TrashIcon } from '@blockbite/icons';\nimport { Button } from '@wordpress/components';\nimport { useRef, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Badge } from './Badge.js';\nimport { TextControl } from './TextControl.js';\n\ntype DataListProps<T extends { id: string | number; title?: string }> = {\n data: T[];\n active: T;\n setActive: (item: T | undefined) => void;\n onCreate: () => void;\n onDelete: (id: T['id']) => void;\n onUpdate: (id: T['id'], updates: Partial<T>) => void;\n onSwitch: (prevId: T['id'], updates: Partial<T>) => void;\n renderItemActions?: (item: T) => React.ReactNode;\n renderItemContent?: (item: T, isActive: boolean) => React.ReactNode;\n addons?: JSX.Element;\n className?: string;\n footerSlot?: React.ReactNode;\n footerSlotClassName?: string;\n badge?: string;\n};\n\nexport const DataItemList = <\n T extends { id: string | number; title?: string },\n>({\n data,\n active,\n setActive,\n onCreate,\n onDelete,\n onUpdate,\n onSwitch,\n renderItemActions,\n renderItemContent,\n addons,\n className = '',\n footerSlot,\n footerSlotClassName = '',\n badge = '',\n}: DataListProps<T>) => {\n const [rename, setRename] = useState<{ id: T['id']; title: string }>({\n id: '' as T['id'],\n title: '',\n });\n const [isSaving, setIsSaving] = useState(false);\n const textRef = useRef<HTMLInputElement | null>(null);\n\n const handleAdd = () => {\n onCreate();\n };\n\n const handleRemove = () => {\n if (!active || data.length === 0) return;\n\n const newData = data.filter((d) => d.id !== active?.id);\n const currentIndex = data.findIndex((d) => d.id === active?.id);\n const nextActive = newData[currentIndex] || newData[0];\n\n onDelete(active.id);\n setActive(nextActive);\n };\n\n const handleRenameBlur = (value: string) => {\n setIsSaving(true);\n if (rename.id) {\n onUpdate(rename.id, { title: value } as Partial<T>);\n }\n\n setTimeout(() => {\n setRename({ id: '' as T['id'], title: '' });\n setIsSaving(false);\n }, 500);\n };\n\n const renderBadge = (item) => {\n if (!badge || !item[badge]) return null;\n return <Badge className=\"ml-2 max-w-[80px] text-sm\">{item[badge]}</Badge>;\n };\n\n return (\n <div\n className={classNames('flex flex-col justify-between h-full', className)}\n >\n <ul className=\"divide-y overflow-auto\">\n {addons}\n {data.length > 0 && (\n <li>\n <ul className=\"divide-y divide-border border-b border-border\">\n {data.map((item) => (\n <li\n key={`data__${item.id}`}\n className={classNames(\n 'relative !mb-0 flex flex-col bg-opacity-50 hover:bg-easy',\n {\n 'bg-[#1e40af]/20': item.id === active?.id,\n }\n )}\n >\n <div className=\"flex items-center justify-between gap-1\">\n <div className=\"flex-1 relative\">\n <button\n className=\"text-gray-medium w-full truncate px-3 py-2 text-left text-sm/6 font-semibold hover:text-wordpress\"\n onClick={() => {\n onSwitch(active?.id, { ...active });\n setActive(item);\n }}\n onDoubleClick={() => {\n setRename({ id: item.id, title: item.title || '' });\n }}\n >\n {isSaving && rename.id === item.id ? (\n <span className=\"animate-pulse text-gray-medium\">\n {rename.title} {renderBadge(item)}\n </span>\n ) : (\n <span className=\"text-gray-medium\">\n {item.title || 'Untitled'} {renderBadge(item)}\n </span>\n )}\n </button>\n {rename.id === item.id && !isSaving && (\n <TextControl\n className=\"absolute left-1 top-0 w-[calc(100%-.5rem)] h-full\"\n inputClassName=\"w-full\"\n defaultValue={rename.title}\n onChange={(value) =>\n setRename({ ...rename, title: value })\n }\n ref={textRef}\n onBlur={() => handleRenameBlur(rename.title)}\n />\n )}\n </div>\n {renderItemActions && (\n <div className=\"flex gap-1 pr-1\">\n {renderItemActions(item)}\n </div>\n )}\n </div>\n {renderItemContent &&\n renderItemContent(item, item.id === active?.id)}\n </li>\n ))}\n </ul>\n </li>\n )}\n </ul>\n <div\n className={classNames(\n 'flex flex-wrap justify-center gap-2 p-2',\n footerSlotClassName\n )}\n >\n {footerSlot}\n <Button\n onClick={handleAdd}\n icon={<PlusIcon className=\"h-4 w-4\" />}\n variant=\"tertiary\"\n size=\"compact\"\n >\n Add\n </Button>\n <Button\n onClick={handleRemove}\n icon={<TrashIcon className=\"h-4 w-4\" />}\n variant=\"tertiary\"\n size=\"compact\"\n disabled={!active || data.length === 0}\n >\n Remove\n </Button>\n </div>\n </div>\n );\n};\n\nexport default DataItemList;\n","import { useEffect, useRef, useState } from '@wordpress/element';\nimport classNames from 'classnames';\nimport { Wrap } from './Wrap.js';\n\ntype DisappearingMessageProps = {\n message?: string;\n className?: string;\n duration?: number;\n children?: React.ReactNode;\n show: boolean;\n onClose?: () => void;\n};\n\nexport const DisappearingMessage = ({\n duration = 3000,\n className,\n children,\n show,\n message,\n onClose,\n}: DisappearingMessageProps) => {\n const [isShowing, setIsShowing] = useState(false);\n const hasMounted = useRef(false);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n hasMounted.current = true;\n }, []);\n\n useEffect(() => {\n if (!hasMounted.current) return;\n\n if (show) {\n setIsShowing(true);\n timeoutRef.current = setTimeout(() => {\n setIsShowing(false);\n onClose?.();\n }, duration);\n }\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, [show, duration, onClose]);\n\n if (!isShowing) return null;\n\n return (\n <Wrap\n important\n className={classNames('bb-ui__disappearing-message', className)}\n >\n <div className=\"bb-ui__disappearing-message__content\">\n {message ?? children}\n </div>\n </Wrap>\n );\n};\n","import { ChevronDown as ChevronDownIcon } from '@blockbite/icons';\nimport { DropdownMenu } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Icon } from './Icon.js';\n\ntype DropdownPickerProps = {\n label?: string;\n className?: string;\n value: string;\n defaultIcon?: any;\n size?: 'small' | 'medium' | 'large';\n options: {\n icon?: React.ReactElement;\n label: string;\n subtitle?: string;\n value: string;\n }[];\n onPressedChange: (value: string | null) => void; // Updated to allow `null` for reset\n [x: string]: any;\n};\n\nexport const DropdownPicker = ({\n label,\n className,\n value,\n defaultIcon = ChevronDownIcon,\n size = 'medium',\n onPressedChange,\n options,\n ...rest\n}: DropdownPickerProps) => {\n const [currentOption, setCurrentOption] = useState<string | null>(null);\n\n useEffect(() => {\n setCurrentOption(value);\n }, [value]);\n\n const allOptions = [\n ...options.map((option) => ({\n icon: option.icon,\n label: option.label,\n title: option.label,\n value: option.value,\n onClick: () => {\n setCurrentOption(option.value);\n onPressedChange(option.value);\n },\n })),\n {\n icon: <Icon icon={defaultIcon} />,\n title: 'Reset',\n value: 'reset',\n onClick: () => {\n setCurrentOption('reset');\n onPressedChange('reset');\n },\n },\n ];\n\n let iconSize = '1em';\n if (size === 'medium') {\n iconSize = '1.5em';\n } else if (size === 'large') {\n iconSize = '2em';\n }\n\n return (\n <DropdownMenu\n controls={allOptions}\n className={classNames('blockbite-ui__dropdown-picker', className)}\n icon={\n options.find((option) => option.value === currentOption)?.icon || (\n <Icon width={iconSize} height={iconSize} icon={defaultIcon} />\n )\n }\n label={label || 'Select'}\n {...rest}\n />\n );\n};\n","type Props = {\n icon?: JSX.Element;\n title: string;\n description: string;\n children?: React.ReactNode;\n size?: 'small' | 'medium';\n [key: string]: any;\n};\n\nexport function EmptyState({\n icon,\n title,\n description,\n children = null,\n size = 'medium',\n ...rest\n}: Props) {\n return (\n <div {...rest}>\n <div className=\"flex h-full w-full flex-col items-center justify-center text-center !font-sans\">\n <div className=\"max-w-sm\">\n {icon && <div className=\"mx-auto !text-gray-400\">{icon}</div>}\n <h3\n className={`text-gray-medium !mt-2 !mb-0 !font-sans !font-medium !normal-case ${size === 'small' ? '!text-sm' : '!text-lg'}`}\n >\n {title}\n </h3>\n <p\n className={`!mt-1 !font-sans !text-sm !text-gray-500 ${size === 'small' ? '!text-xs' : '!text-sm'}`}\n >\n {description}\n </p>\n {children && <div className=\"mt-4\">{children}</div>}\n </div>\n </div>\n </div>\n );\n}\n","import { useEffect, useRef, useState } from '@wordpress/element';\n\ntype DraggablePanelProps = {\n children: React.ReactNode;\n};\n\nexport function FloatingPanel({\n children,\n}: DraggablePanelProps & {\n children: React.ReactNode;\n}) {\n const panelRef = useRef(null);\n const [position, setPosition] = useState({ x: 100, y: 100 });\n const [dragging, setDragging] = useState(false);\n const [offset, setOffset] = useState({ x: 0, y: 0 });\n\n useEffect(() => {\n const handleMouseMove = (e) => {\n if (dragging) {\n setPosition({\n x: e.clientX - offset.x,\n y: e.clientY - offset.y,\n });\n }\n };\n\n const handleMouseUp = () => setDragging(false);\n\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [dragging, offset]);\n\n const startDragging = (e) => {\n const rect = panelRef.current.getBoundingClientRect();\n setOffset({ x: e.clientX - rect.left, y: e.clientY - rect.top });\n setDragging(true);\n };\n\n return (\n <div>\n <div\n ref={panelRef}\n className=\"fixed bg-white shadow-xl rounded-2xl p-4 w-[400px] h-[550px] z-[9999]\"\n style={{ left: position.x, top: position.y }}\n >\n {children}\n <div\n className=\"absolute top-1 right-1 cursor-move w-5 h-5 bg-gray-300 rounded\"\n onMouseDown={startDragging}\n ></div>\n </div>\n </div>\n );\n}\n","import { FocalPointPicker } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\nimport { Wrap } from './Wrap.js';\n\ntype FocalPointControlProps = {\n value: string;\n onValueChange: (value: string) => void;\n url?: string;\n};\n\nfunction parseFocal(value?: string) {\n // Default if empty/invalid\n const fallback = { x: 0.5, y: 0.5 };\n\n if (!value || !value.includes('%')) return fallback;\n\n const cleaned = value.replace('[', '').replace('%]', '');\n const parts = cleaned.split('_');\n if (parts.length !== 2) return fallback;\n\n const x = parseFloat(parts[0]) / 100;\n const y = parseFloat(parts[1]) / 100;\n\n if (!Number.isFinite(x) || !Number.isFinite(y)) return fallback;\n\n // Clamp to [0,1]\n return {\n x: Math.min(1, Math.max(0, x)),\n y: Math.min(1, Math.max(0, y)),\n };\n}\n\nfunction formatFocal(fp: { x: number; y: number }) {\n return `[${(fp.x * 100).toFixed(2)}%_${(fp.y * 100).toFixed(2)}%]`;\n}\n\nexport const FocalPointControl: React.FC<FocalPointControlProps> = ({\n value,\n onValueChange,\n url,\n}) => {\n const focalPoint = useMemo(() => parseFocal(value), [value]);\n\n const handleChange = useCallback(\n (next: { x: number; y: number }) => {\n onValueChange(formatFocal(next));\n },\n [onValueChange]\n );\n\n return (\n <Wrap className=\"relative flex flex-col\">\n <FocalPointPicker\n url={url}\n value={focalPoint}\n onDrag={handleChange}\n onChange={handleChange}\n />\n </Wrap>\n );\n};\n\nexport default FocalPointControl;\n","// Popover.tsx\nimport { Cross2 } from '@blockbite/icons';\nimport { Button, Popover as WordpressPopover } from '@wordpress/components';\n\ntype PopoverProps = {\n children: React.ReactNode;\n className?: string;\n position?: any;\n visible: boolean; // controlled\n anchor?: HTMLElement | null; // anchor element for positioning\n onClose?: () => void; // simple close callback\n onVisibleChange?: (value: boolean) => void; // compatibility with old API\n offset?: number;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n className,\n position,\n visible,\n anchor,\n onClose,\n onVisibleChange,\n offset,\n}) => {\n if (!visible) return null;\n\n const handleClose = () => {\n onClose?.();\n onVisibleChange?.(false);\n };\n\n return (\n <WordpressPopover\n position={position}\n className=\"blockbite-ui__popover\"\n anchor={anchor}\n onFocusOutside={handleClose}\n offset={offset}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Escape') handleClose();\n }}\n >\n <div className={className}>\n <div className=\"relative h-full w-full p-4\">\n <Button\n onClick={handleClose}\n size=\"small\"\n className=\"close-button absolute right-2 top-2 !p-0 !min-w-0 !h-6 w-6 inline-flex items-center justify-center\"\n >\n <Cross2 className=\"w-4 h-4\" />\n </Button>\n {children}\n </div>\n </div>\n </WordpressPopover>\n );\n};\n\nexport default Popover;\n","import { SelectControl as WordpressSelect } from '@wordpress/components';\n\ntype SelectControlWrapperProps = {\n value: string;\n children?: any;\n options: any[];\n label?: string;\n emptyLabel?: string;\n disabled?: boolean;\n onChange?: (value: string) => void;\n className?: string; // allow styling on the wrapper\n};\n\nexport const SelectControlWrapper = ({\n onChange,\n value,\n options,\n label = '',\n disabled = false,\n emptyLabel = 'No options available',\n className,\n}: SelectControlWrapperProps) => {\n const handleChange = (val: string) => {\n if (onChange) {\n onChange(val);\n }\n };\n\n return (\n <div className={className}>\n {options && options.length > 0 ? (\n <WordpressSelect\n __nextHasNoMarginBottom\n label={label || ''}\n value={value || ''}\n disabled={disabled}\n onChange={handleChange}\n options={[\n { value: '', label: 'Select an option' },\n // safeguard: map options to value/label\n ...options.map((o) => ({ value: o.value, label: o.label })),\n ]}\n />\n ) : (\n <p className=\"text-sm text-gray-500 !mb-0\">{emptyLabel}</p>\n )}\n </div>\n );\n};\n","// GradientSwatchPicker.tsx\n\nimport {\n Button,\n ColorIndicator,\n ColorPicker,\n TextControl,\n} from '@wordpress/components';\nimport { useCallback, useRef, useState } from '@wordpress/element';\nimport { ButtonToggleGroup } from './ButtonToggle.js';\nimport Popover from './Popover.js';\nimport { SelectControlWrapper } from './SelectControlWrapper.js';\n//\n// Types\n//\n\nexport type PaletteColor = {\n name: string; // \"primary\"\n color: string; // \"#f3ff4a\"\n value: string; // \"primary\" (tailwind token)\n};\n\ntype GradientKind = 'linear' | 'radial';\n\ntype Direction =\n | 'to-t'\n | 'to-tr'\n | 'to-r'\n | 'to-br'\n | 'to-b'\n | 'to-bl'\n | 'to-l'\n | 'to-tl';\n\ntype StopRole = 'from' | 'via' | 'to';\n\ntype GradientStop = {\n id: string;\n role: StopRole;\n colorToken: string; // Tailwind color token, e.g. \"primary\", \"neutral\", \"[#ff0000]\"\n position: number; // 0–100 (%)\n opacity: number; // 0–100 (%)\n};\n\nexport type TailwindGradientValue = {\n kind: GradientKind;\n direction: Direction; // used for linear\n stops: GradientStop[];\n};\n\nexport type GradientSwatchPickerProps = {\n colors: PaletteColor[];\n activeOptionValue?: any;\n onChange?: (nextClassGroups: any) => void;\n};\n\n//\n// Tailwind direction helpers\n//\n\nconst directionToClass: Record<Direction, string> = {\n 'to-t': 'bg-gradient-to-t',\n 'to-tr': 'bg-gradient-to-tr',\n 'to-r': 'bg-gradient-to-r',\n 'to-br': 'bg-gradient-to-br',\n 'to-b': 'bg-gradient-to-b',\n 'to-bl': 'bg-gradient-to-bl',\n 'to-l': 'bg-gradient-to-l',\n 'to-tl': 'bg-gradient-to-tl',\n};\n\nconst classToDirection: Record<string, Direction> = Object.keys(\n directionToClass\n).reduce(\n (acc, dir) => {\n const cls = directionToClass[dir as Direction];\n acc[cls] = dir as Direction;\n return acc;\n },\n {} as Record<string, Direction>\n);\n\nconst directionToAngle: Record<Direction, number> = {\n 'to-t': 0,\n 'to-tr': 45,\n 'to-r': 90,\n 'to-br': 135,\n 'to-b': 180,\n 'to-bl': 225,\n 'to-l': 270,\n 'to-tl': 315,\n};\n\nconst RADIAL_CLASS = 'bg-radial';\n\nconst clamp = (value: number, min: number, max: number) =>\n Math.min(max, Math.max(min, value));\n\n//\n// Color helpers\n//\n\n// token can be \"primary\", \"primary/50\", \"[#ff0000]\" or \"[#ff0000]/50\"\nfunction parseToken(\n palette: PaletteColor[],\n token: string\n): { hex: string | null; baseToken: string; opacityFromToken: number | null } {\n if (!token) return { hex: null, baseToken: token, opacityFromToken: null };\n\n const [base, opacityPart] = token.split('/');\n const opacityFromToken =\n opacityPart != null ? clamp(parseInt(opacityPart, 10) || 0, 0, 100) : null;\n\n let hex: string | null = null;\n\n if (base.startsWith('[') && base.endsWith(']')) {\n hex = base.slice(1, -1);\n } else {\n const found = palette.find((c) => c.value === base);\n hex = found?.color ?? null;\n }\n\n return { hex, baseToken: base, opacityFromToken };\n}\n\nfunction buildToken(baseToken: string, opacity?: number): string {\n if (opacity != null && opacity < 100) {\n return `${baseToken}/${clamp(opacity, 0, 100)}`;\n }\n return baseToken;\n}\n\nfunction hexWithOpacity(hex: string, opacity: number): string {\n // hex: \"#rrggbb\"\n const o = clamp(opacity, 0, 100) / 100;\n const clean = hex.replace('#', '');\n const r = parseInt(clean.slice(0, 2), 16);\n const g = parseInt(clean.slice(2, 4), 16);\n const b = parseInt(clean.slice(4, 6), 16);\n return `rgba(${r}, ${g}, ${b}, ${o})`;\n}\n\n//\n// Gradient CSS for preview\n//\n\nfunction gradientToCss(\n value: TailwindGradientValue,\n palette: PaletteColor[]\n): string {\n const sortedStops = [...value.stops].sort((a, b) => a.position - b.position);\n\n const parts = sortedStops\n .map((stop) => {\n const { hex } = parseToken(palette, stop.colorToken);\n if (!hex) return null;\n const color = hexWithOpacity(hex, stop.opacity ?? 100);\n return `${color} ${stop.position}%`;\n })\n .filter(Boolean)\n .join(', ');\n\n if (value.kind === 'radial') {\n return `radial-gradient(circle, ${parts})`;\n }\n\n const angle = directionToAngle[value.direction] ?? 90;\n return `linear-gradient(${angle}deg, ${parts})`;\n}\n\n//\n// Class groups <-> TailwindGradientValue\n//\n// Expected / emitted groups:\n//\n// 'gradient-direction': 'bg-gradient-to-r' | 'bg-radial'\n// 'gradient-from': [{ from: 'primary/100' }]\n// 'gradient-from-pos': [{ from: '0%' }]\n// 'gradient-via': [{ via: 'neutral/80' }, ...]\n// 'gradient-via-pos': [{ via: '30%' }, ...]\n// 'gradient-to': [{ to: 'neutral/100' }]\n// 'gradient-to-pos': [{ to: '100%' }]\n//\n\n// Helper to parse position values from both [X%] and X% formats\nfunction parsePositionValue(v?: string): number | undefined {\n if (!v) return undefined;\n let cleaned = String(v);\n if (cleaned.startsWith('[') && cleaned.endsWith(']')) {\n cleaned = cleaned.slice(1, -1); // Remove brackets\n }\n const n = parseFloat(cleaned.replace('%', ''));\n return Number.isFinite(n) ? Math.min(100, Math.max(0, n)) : undefined;\n}\n\nexport function classGroupsToGradientValue(\n groups: Record<string, any> | null | undefined,\n palette: PaletteColor[]\n): TailwindGradientValue | null {\n if (!groups) return null;\n\n const directionClass = groups['gradient-direction'] as string | undefined;\n\n const kind: GradientKind =\n directionClass === RADIAL_CLASS ? 'radial' : 'linear';\n\n const direction: Direction =\n kind === 'radial'\n ? 'to-r'\n : directionClass\n ? classToDirection[directionClass] || 'to-r'\n : 'to-r';\n\n const stops: GradientStop[] = [];\n\n const fromGroup = groups['gradient-from']?.[0];\n const fromPosGroup = groups['gradient-from-pos']?.[0];\n if (fromGroup?.from) {\n const token = String(fromGroup.from);\n const { opacityFromToken } = parseToken(palette, token);\n stops.push({\n id: 'from',\n role: 'from',\n colorToken: token,\n position: parsePositionValue(fromPosGroup?.from) ?? 0,\n opacity: opacityFromToken ?? 100,\n });\n }\n\n const viaGroup = groups['gradient-via'] || [];\n const viaPosGroup = groups['gradient-via-pos'] || [];\n viaGroup.forEach((viaItem: any, index: number) => {\n const token = String(viaItem.via);\n const { opacityFromToken } = parseToken(palette, token);\n const pos = viaPosGroup[index]?.via;\n stops.push({\n id: `via-${index}`,\n role: 'via',\n colorToken: token,\n position: parsePositionValue(pos) ?? 50,\n opacity: opacityFromToken ?? 100,\n });\n });\n\n const toGroup = groups['gradient-to']?.[0];\n const toPosGroup = groups['gradient-to-pos']?.[0];\n if (toGroup?.to) {\n const token = String(toGroup.to);\n const { opacityFromToken } = parseToken(palette, token);\n stops.push({\n id: 'to',\n role: 'to',\n colorToken: token,\n position: parsePositionValue(toPosGroup?.to) ?? 100,\n opacity: opacityFromToken ?? 100,\n });\n }\n\n if (!stops.length) return null;\n\n return { kind, direction, stops: normalizeStops(stops) };\n}\n\nexport function gradientValueToClassGroups(\n value: TailwindGradientValue\n): Record<string, any> {\n const groups: Record<string, any> = {};\n\n groups['gradient-direction'] =\n value.kind === 'radial' ? RADIAL_CLASS : directionToClass[value.direction];\n\n const sorted = normalizeStops(value.stops);\n\n const from = sorted.find((s) => s.role === 'from');\n const to = sorted.find((s) => s.role === 'to');\n const vias = sorted.filter((s) => s.role === 'via');\n\n if (from) {\n groups['gradient-from'] = [\n { from: buildToken(from.colorToken, from.opacity) },\n ];\n groups['gradient-from-pos'] = [{ from: `${from.position}%` }];\n }\n\n if (to) {\n groups['gradient-to'] = [{ to: buildToken(to.colorToken, to.opacity) }];\n groups['gradient-to-pos'] = [{ to: `${to.position}%` }];\n }\n\n if (vias.length) {\n groups['gradient-via'] = vias.map((v) => ({\n via: buildToken(v.colorToken, v.opacity),\n }));\n groups['gradient-via-pos'] = vias.map((v) => ({\n via: `${v.position}%`,\n }));\n }\n\n return groups;\n}\n\n// Convenience mappers for consumers\nexport function gradientClassGroupsToArray(\n groups: Record<string, any>\n): Array<{ id: string; value: string }> {\n const out: Array<{ id: string; value: string }> = [];\n const obj = groups || {};\n Object.keys(obj).forEach((key) => {\n const val = obj[key];\n if (key === 'gradient-direction' && typeof val === 'string') {\n out.push({ id: key, value: val });\n return;\n }\n if (Array.isArray(val)) {\n val.forEach((entry) => {\n const role = entry.from\n ? 'from'\n : entry.via\n ? 'via'\n : entry.to\n ? 'to'\n : undefined;\n if (!role) return;\n let value = entry[role];\n if (key.endsWith('-pos') && typeof value === 'string') {\n const num = parseFloat(String(value).replace('%', ''));\n if (!Number.isNaN(num)) {\n // Use arbitrary value syntax for Tailwind 4 compatibility\n // Format: [X%] where X is rounded to avoid overly precise decimals\n const rounded = Math.round(num * 100) / 100;\n value = `[${rounded}%]`;\n }\n }\n out.push({ id: key, value });\n });\n }\n });\n return out;\n}\n\nexport function gradientValueToArray(\n value: TailwindGradientValue\n): Array<{ id: string; value: string }> {\n return gradientClassGroupsToArray(gradientValueToClassGroups(value));\n}\n\nexport const arrayToGradient = (\n arr: Array<{ id: string; value: string; selector?: string }>\n): TailwindGradientValue => {\n // Filter out empty values up-front to avoid creating phantom stops\n const items = Array.isArray(arr)\n ? arr.filter((i) => String(i?.value ?? '').trim() !== '')\n : [];\n\n // If there are no items at all, bail out immediately before any assignments\n if (items.length === 0) {\n return null as unknown as TailwindGradientValue;\n }\n\n // Detect if the incoming array is the new gradient group format\n // If so, and there are no meaningful values, return null so the\n // consumer can fall back to a sane default (2 stops)\n const raw = Array.isArray(arr) ? arr : [];\n const hasGradientGroupIds = raw.some((i) =>\n [\n 'gradient-direction',\n 'gradient-from',\n 'gradient-from-pos',\n 'gradient-via',\n 'gradient-via-pos',\n 'gradient-to',\n 'gradient-to-pos',\n ].includes(i?.id as string)\n );\n\n // Prefer id-based reconstruction from classGroup-like array\n const get = (id: string) => items.filter((i) => i.id === id);\n\n // If this looks like gradient group data but has no meaningful values, bail out early\n if (hasGradientGroupIds) {\n const hasAnyValues = Boolean(\n get('gradient-from')[0]?.value ||\n get('gradient-to')[0]?.value ||\n get('gradient-direction')[0]?.value ||\n (get('gradient-via').length &&\n get('gradient-via').some((t) => !!t.value)) ||\n get('gradient-from-pos')[0]?.value ||\n get('gradient-to-pos')[0]?.value ||\n (get('gradient-via-pos').length &&\n get('gradient-via-pos').some((t) => !!t.value))\n );\n if (!hasAnyValues) {\n return null as unknown as TailwindGradientValue;\n }\n }\n\n // get() already declared above\n\n const stops: GradientStop[] = [];\n\n const fromToken = get('gradient-from')[0]?.value;\n const fromPos = parsePositionValue(get('gradient-from-pos')[0]?.value);\n if (fromToken) {\n stops.push({\n id: 'from',\n role: 'from',\n colorToken: fromToken,\n position: fromPos ?? 0,\n opacity: 100,\n });\n }\n\n const viaTokens = get('gradient-via');\n const viaPos = get('gradient-via-pos');\n viaTokens.forEach((t, idx) => {\n const token = t.value;\n if (!token) return;\n const pos = parsePositionValue(viaPos[idx]?.value);\n stops.push({\n id: `via-${idx}`,\n role: 'via',\n colorToken: token,\n position: pos ?? 50,\n opacity: 100,\n });\n });\n\n const toToken = get('gradient-to')[0]?.value;\n const toPos = parsePositionValue(get('gradient-to-pos')[0]?.value);\n if (toToken) {\n stops.push({\n id: 'to',\n role: 'to',\n colorToken: toToken,\n position: toPos ?? 100,\n opacity: 100,\n });\n }\n\n if (stops.length) {\n const dirItem = get('gradient-direction')[0];\n const directionClass = dirItem?.value;\n const kind: GradientKind =\n directionClass === RADIAL_CLASS ? 'radial' : 'linear';\n const direction: Direction =\n kind === 'radial'\n ? 'to-r'\n : directionClass && classToDirection[directionClass]\n ? classToDirection[directionClass]\n : 'to-r';\n return { kind, direction, stops: normalizeStops(stops) };\n }\n\n // If this looks like gradient group data but had no values, bail out so caller can default\n // hasGradientGroupIds handled above with value presence check\n\n // Fallback: accept legacy array with selector-based roles (from-/via-/to-)\n const fallbackStops: GradientStop[] = items.map((item, idx) => {\n const sel = item?.selector ?? '';\n let role: StopRole = 'via';\n if (sel.startsWith('from-') || idx === 0) role = 'from';\n else if (sel.startsWith('to-') || idx === items.length - 1) role = 'to';\n return {\n id: item.id ?? (role === 'via' ? `via-${idx}` : role),\n role,\n colorToken: item.value,\n position: idx === 0 ? 0 : idx === items.length - 1 ? 100 : 50,\n opacity: 100,\n };\n });\n\n return {\n kind: 'linear',\n direction: 'to-r',\n stops: normalizeStops(fallbackStops),\n };\n};\n\n//\n// Stop normalization: first = from, last = to, middle = via\n//\n\nexport function normalizeStops(stops: GradientStop[]): GradientStop[] {\n const sorted = [...stops].sort((a, b) => a.position - b.position);\n if (!sorted.length) return sorted;\n\n return sorted.map((stop, index) => {\n let role: StopRole = 'via';\n if (index === 0) role = 'from';\n if (index === sorted.length - 1) role = 'to';\n return { ...stop, role };\n });\n}\n\n//\n// UI component: TailwindGradientPicker\n//\n\nexport type TailwindGradientPickerProps = {\n palette: PaletteColor[];\n value: TailwindGradientValue;\n onChange: (value: TailwindGradientValue) => void;\n};\n\nexport const TailwindGradientPicker: React.FC<TailwindGradientPickerProps> = ({\n palette,\n value,\n onChange,\n}) => {\n const trackRef = useRef<HTMLDivElement | null>(null);\n const [activeStopId, setActiveStopId] = useState<string | null>(null);\n const [popoverVisible, setPopoverVisible] = useState(false);\n const [popoverAnchor, setPopoverAnchor] = useState<HTMLElement | null>(null);\n // Local state for smooth dragging - only visual updates during drag\n const [dragState, setDragState] = useState<{\n stopId: string;\n position: number;\n } | null>(null);\n\n // Use drag position for visual preview, fall back to actual value\n const displayStops = dragState\n ? value.stops.map((s) =>\n s.id === dragState.stopId ? { ...s, position: dragState.position } : s\n )\n : value.stops;\n\n const activeStop = value.stops.find((s) => s.id === activeStopId);\n\n const updateStops = (updater: (stops: GradientStop[]) => GradientStop[]) => {\n const nextStops = normalizeStops(updater(value.stops));\n onChange({ ...value, stops: nextStops });\n };\n\n const updateStop = (id: string, patch: Partial<GradientStop>) => {\n updateStops((stops) =>\n stops.map((s) => (s.id === id ? { ...s, ...patch } : s))\n );\n };\n\n const removeStop = (id: string) => {\n // keep at least 2 stops\n if (value.stops.length <= 2) return;\n updateStops((stops) => stops.filter((s) => s.id !== id));\n };\n\n const handleTrackClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // ignore if click started on a handle\n const target = e.target as HTMLElement;\n if (target.dataset?.stopHandle === 'true') return;\n\n const track = trackRef.current;\n if (!track) return;\n const rect = track.getBoundingClientRect();\n const pos = ((e.clientX - rect.left) / rect.width) * 100;\n const position = clamp(pos, 0, 100);\n\n // nearest stop's color & opacity\n const nearest =\n value.stops.reduce(\n (best, s) =>\n Math.abs(s.position - position) < Math.abs(best.position - position)\n ? s\n : best,\n value.stops[0]\n ) ?? value.stops[0];\n\n const id = `via-${Date.now()}`;\n\n updateStops((stops) => [\n ...stops,\n {\n id,\n role: 'via',\n colorToken: nearest.colorToken,\n position,\n opacity: nearest.opacity,\n },\n ]);\n\n setActiveStopId(id);\n };\n\n const handleHandleMouseDown = (\n e: React.MouseEvent<HTMLDivElement>,\n stop: GradientStop\n ) => {\n e.stopPropagation();\n e.preventDefault();\n if (!trackRef.current) return;\n const track = trackRef.current;\n\n setActiveStopId(stop.id);\n\n const rect = track.getBoundingClientRect();\n\n const onMove = (event: MouseEvent) => {\n const raw = ((event.clientX - rect.left) / rect.width) * 100;\n const position = clamp(raw, 0, 100);\n // Only update local drag state for smooth visual feedback\n setDragState({ stopId: stop.id, position });\n };\n\n const onUp = (event: MouseEvent) => {\n window.removeEventListener('mousemove', onMove);\n window.removeEventListener('mouseup', onUp);\n // Commit the final position to the parent on mouseup\n const raw = ((event.clientX - rect.left) / rect.width) * 100;\n const position = clamp(raw, 0, 100);\n setDragState(null);\n updateStop(stop.id, { position });\n };\n\n window.addEventListener('mousemove', onMove);\n window.addEventListener('mouseup', onUp);\n };\n\n const openColorPopover = (stop: GradientStop, target: HTMLElement) => {\n setActiveStopId(stop.id);\n setPopoverAnchor(target);\n setPopoverVisible(true);\n };\n\n const handleKindChange = (kind: GradientKind) => {\n onChange({ ...value, kind });\n };\n\n const handleDirectionChange = (direction: Direction) => {\n onChange({ ...value, direction });\n };\n\n const handleColorPickerChange = useCallback(\n (color: any) => {\n if (!activeStop) return;\n const hex = typeof color === 'string' ? color : (color?.hex ?? '#000000');\n // arbitrary tailwind color: [#rrggbb]\n const baseToken = `[${hex}]`;\n updateStop(activeStop.id, { colorToken: baseToken });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeStop]\n );\n\n return (\n <div className=\"bb-gradient-picker space-y-3 text-xs\">\n {/* Kind dropdown (Linear / Radial) */}\n <div className=\"flex items-center gap-2\">\n <SelectControlWrapper\n label=\"Type\"\n options={[\n { label: 'Linear', value: 'linear' },\n { label: 'Radial', value: 'radial' },\n ]}\n value={value.kind}\n onChange={(nextKind) => handleKindChange(nextKind as GradientKind)}\n ></SelectControlWrapper>\n </div>\n\n {/* Direction buttons (for linear only) */}\n {value.kind === 'linear' && (\n <ButtonToggleGroup\n options={[\n { value: 'to-l', label: 'to-l' },\n { value: 'to-r', label: 'to-r' },\n { value: 'to-t', label: 'to-t' },\n { value: 'to-b', label: 'to-b' },\n { value: 'to-tl', label: 'to-tl' },\n { value: 'to-tr', label: 'to-tr' },\n { value: 'to-bl', label: 'to-bl' },\n { value: 'to-br', label: 'to-br' },\n ]}\n value={value.direction}\n onPressedChange={(dir) => handleDirectionChange(dir as Direction)}\n ></ButtonToggleGroup>\n )}\n\n {/* Gradient track with draggable handles */}\n <div\n ref={trackRef}\n className=\"relative h-8 w-full cursor-crosshair rounded border\"\n style={{\n backgroundImage: gradientToCss(\n { ...value, stops: displayStops },\n palette\n ),\n }}\n onMouseDown={handleTrackClick}\n >\n {displayStops.map((stop) => (\n <div\n key={stop.id}\n data-stop-handle=\"true\"\n className=\"absolute top-1/2 h-4 w-4 rounded-full -translate-y-1/2 -translate-x-1/2 cursor-pointer ring-2 ring-border\"\n style={{\n left: `${stop.position}%`,\n backgroundColor: stop.colorToken.startsWith('[')\n ? stop.colorToken.slice(1, -1)\n : undefined,\n }}\n onMouseDown={(e) => handleHandleMouseDown(e, stop)}\n onClick={(e) => {\n e.stopPropagation();\n setActiveStopId(stop.id);\n }}\n />\n ))}\n </div>\n\n {/* Stops table (Figma-like) */}\n <div className=\"space-y-1\">\n <div className=\"flex items-start justify-between text-[10px] font-semibold uppercase\">\n <span>Stops</span>\n </div>\n\n <div className=\"space-y-1\">\n {normalizeStops(displayStops).map((stop) => {\n const { hex, baseToken } = parseToken(palette, stop.colorToken);\n return (\n <div\n key={stop.id}\n className={`flex gap-2 items-start ${\n activeStopId === stop.id ? 'bg-wp/10' : 'bg-transparent'\n }`}\n onClick={() => setActiveStopId(stop.id)}\n >\n {/* Position */}\n <TextControl\n className=\"w-16 h-6\"\n __nextHasNoMarginBottom\n value={String(Math.round(stop.position))}\n onChange={(val: string) => {\n const num = clamp(parseFloat(val) || 0, 0, 100);\n updateStop(stop.id, { position: num });\n }}\n type=\"text\"\n suffix=\"%\"\n />\n\n {/* Color cell (indicator + token) */}\n <button\n type=\"button\"\n className=\"flex w-16 h-[32px] items-center gap border border-border\"\n onClick={(e) =>\n openColorPopover(stop, e.currentTarget as HTMLElement)\n }\n >\n <ColorIndicator\n colorValue={hex ?? '#000000'}\n className=\"!h-4 !w-4\"\n />\n <span className=\"truncate text-[11px]\">{baseToken}</span>\n </button>\n\n {/* Opacity */}\n <TextControl\n __nextHasNoMarginBottom\n className=\"w-12\"\n value={String(Math.round(stop.opacity))}\n onChange={(val: string) => {\n const num = clamp(parseFloat(val) || 0, 0, 100);\n updateStop(stop.id, { opacity: num });\n }}\n type=\"text\"\n suffix=\"%\"\n />\n\n {/* Remove */}\n <Button\n type=\"button\"\n className=\"flex h-6 w-6 items-center justify-center rounded border text-xs\"\n onClick={() => removeStop(stop.id)}\n disabled={value.stops.length <= 1}\n >\n –\n </Button>\n </div>\n );\n })}\n </div>\n </div>\n\n {/* Color popover: palette + ColorPicker */}\n <Popover\n visible={popoverVisible && !!activeStop}\n anchor={popoverAnchor}\n onClose={() => setPopoverVisible(false)}\n position=\"bottom center\"\n offset={8}\n >\n {activeStop && (\n <div className=\"space-y-3\">\n {/* Palette swatches */}\n <div className=\"flex flex-wrap gap-1\">\n {palette.map((c) => (\n <button\n key={c.value}\n type=\"button\"\n className=\"flex h-6 w-6 items-center justify-center rounded-full border\"\n onClick={() =>\n updateStop(activeStop.id, {\n colorToken: c.value,\n })\n }\n >\n <ColorIndicator\n colorValue={c.color}\n className=\"!h-5 !w-5 !rounded-full\"\n />\n </button>\n ))}\n </div>\n\n {/* Color picker (writes arbitrary color as [#hex]) */}\n <ColorPicker\n color={\n parseToken(palette, activeStop.colorToken).hex ?? '#000000'\n }\n onChange={handleColorPickerChange}\n />\n </div>\n )}\n </Popover>\n </div>\n );\n};\n","import classNames from 'classnames';\n\ntype LabelProps = {\n children?: React.ReactNode;\n className?: string;\n title?: string;\n};\n\nexport const Label = ({ children, title, className }: LabelProps) => {\n return (\n <span\n className={classNames(\n 'text-[11px] font-medium uppercase leading-snug flex gap-2 items-center',\n className\n )}\n >\n {title ? title : children}\n </span>\n );\n};\n","import apiFetch from '@wordpress/api-fetch';\nimport { TextControl } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Wrap } from './Wrap.js';\n\nexport function LinkPicker(props) {\n const [activeKeyword, setActiveKeyword] = useState('');\n const [links, setLinks] = useState<\n Array<{ id: number; url: string; title: string; post_type: string }>\n >([]);\n const [activeLink, setActiveLink] = useState({\n url: '',\n title: '',\n });\n\n useEffect(() => {\n if (activeKeyword === '') return;\n setLinks(null);\n (apiFetch as any)({\n path: `/blockbite/v1/block-helpers/get-links/${activeKeyword}`,\n }).then(\n (\n fetchedLinks: Array<{\n id: number;\n url: string;\n title: string;\n post_type: string;\n }> | null\n ) => {\n if (fetchedLinks?.length) {\n setLinks([...fetchedLinks]);\n } else {\n setLinks([]);\n }\n }\n );\n }, [activeKeyword]);\n\n useEffect(() => {\n if (activeLink.url !== '') {\n props.parentCallback(activeLink);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeLink]);\n\n return (\n <Wrap className=\"blockbite--editor-linkwrap\">\n <TextControl\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n label={__('Search link', 'blockbitelinks')}\n value={activeKeyword}\n placeholder=\"Example: About\"\n onChange={(value) => setActiveKeyword(value)}\n help={__('Type a post, page, title', 'blockbitelinks')}\n />\n {activeKeyword ? (\n <div className=\"blockbite--editor-linklist\">\n <LinkList\n links={links}\n onActiveLink={(link) => [\n setActiveLink({ ...link }),\n setActiveKeyword(''),\n ]}\n />\n </div>\n ) : null}\n </Wrap>\n );\n}\nfunction LinkList({ links, onActiveLink }) {\n if (links === null) {\n return <p>Loading...</p>;\n } else if (links.length === 0) {\n return <p>No Results</p>;\n }\n\n const list = links.map((link) => (\n <Wrap key={link.id}>\n <span\n className=\"blockbite--editor-link\"\n onClick={() => onActiveLink(link)}\n >\n dwddw\n <span>{link.title}</span>\n <span className=\"blockbite--preview-link\">{link.url}</span>\n <span className=\"blockbite--preview-link\">{link.post_type}</span>\n </span>\n </Wrap>\n ));\n\n return <>{list}</>; // ✅ Wrapped\n}\n","import { MediaUpload, MediaUploadCheck } from '@wordpress/block-editor';\nimport { Button, PanelRow } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport function MediaPicker({ mediaProps, mediaCallback }) {\n const allowedTypes = [\n 'image',\n 'video',\n 'image/svg+xml',\n 'svg',\n 'text/plain',\n 'application/json',\n ];\n\n const media = mediaProps || {\n id: null,\n url: '',\n sizes: [],\n alt: '',\n type: '',\n width: 0,\n height: 0,\n };\n\n const removeMedia = () => {\n mediaCallback({\n id: null,\n url: '',\n sizes: [],\n alt: '',\n type: '',\n width: 0,\n height: 0,\n });\n };\n\n const onSelectMedia = (mediaItem) => {\n const safeSizes = {\n thumbnail: null,\n medium: null,\n large: null,\n };\n\n if (mediaItem?.sizes) {\n Object.values(mediaItem.sizes).forEach((size: any) => {\n if (size.width <= 768) safeSizes.thumbnail = size.url;\n if (size.width > 768 && size.width <= 1536) safeSizes.medium = size.url;\n if (size.width > 1536) safeSizes.large = size.url;\n });\n }\n\n let mediaType = mediaItem.type;\n if (mediaItem.url?.endsWith('.json')) mediaType = 'lottie';\n if (mediaItem.url?.endsWith('.svg')) mediaType = 'svg';\n\n mediaCallback({\n id: mediaItem.id,\n url: mediaItem.url,\n sizes: safeSizes,\n alt: mediaItem.alt,\n type: mediaType,\n width: mediaItem.width,\n height: mediaItem.height,\n });\n };\n\n return (\n <PanelRow className=\"gap-2\">\n <MediaUploadCheck>\n <MediaUpload\n onSelect={onSelectMedia}\n allowedTypes={allowedTypes}\n render={({ open }) => (\n <Button\n className={\n !media.id\n ? 'editor-post-featured-image__toggle'\n : 'editor-post-featured-image__preview'\n }\n onClick={open}\n >\n {media?.url ? (\n <div className=\"flex gap-2 items-center w-full\">\n <img\n className=\"w-10 h-10 overflow-hidden rounded-md bg-gray-100 flex items-center justify-center\"\n src={media.url}\n alt={media.alt || __('Image', 'blockbite')}\n />\n {__('Change Media', 'blockbite')}\n </div>\n ) : (\n __('Select Media', 'blockbite')\n )}\n </Button>\n )}\n />\n {media?.url && (\n <Button\n onClick={removeMedia}\n isDestructive\n icon=\"trash\"\n title={__('Remove media', 'blockbite')}\n />\n )}\n </MediaUploadCheck>\n </PanelRow>\n );\n}\n","import { useEffect, useState } from '@wordpress/element';\n\nimport { RangeControl as WordpressRangeControl } from '@wordpress/components';\n\nexport type RangeControlType = {\n value: string;\n label: string;\n min: number;\n max: number;\n withInputField?: boolean;\n onValueChange: (value: string) => void;\n onReset?: () => void;\n allowReset?: boolean;\n gridMode?: boolean;\n showTooltip?: boolean;\n [key: string]: any;\n};\n\nexport const RangeSlider: React.FC<RangeControlType> = ({\n value,\n label,\n min = 0,\n max = 2000,\n withInputField = false,\n onValueChange,\n onReset,\n allowReset = false,\n gridMode = false,\n showTooltip = false,\n ...props\n}) => {\n // Use a sentinel value to detect reset button clicks\n const RESET_SENTINEL = -999;\n const [resetFallbackValue] = useState(RESET_SENTINEL);\n const [rangeValue, setRangeValue] = useState<number>(0);\n\n // Sync local state with controlled value prop\n useEffect(() => {\n setRangeValue(Math.round(parseInt(value) / (gridMode ? 16 : 1)));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n // convert back to arbitrary unit\n function handleRangeUpdate(val: number) {\n // Detect reset button click via sentinel value\n if (val === RESET_SENTINEL) {\n // Call the onReset callback if provided\n if (onReset) {\n onReset();\n } else {\n onValueChange('');\n }\n return;\n }\n\n const gridValue = val * (gridMode ? 16 : 1);\n onValueChange(gridValue.toString());\n }\n\n return (\n <div className=\"flex flex-col\">\n <WordpressRangeControl\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n label={label}\n value={rangeValue}\n min={min}\n max={max}\n showTooltip={showTooltip}\n withInputField={withInputField}\n allowReset={allowReset}\n onChange={(val) => {\n setRangeValue(val);\n handleRangeUpdate(val);\n }}\n resetFallbackValue={resetFallbackValue}\n {...props}\n />\n <span>{gridMode ? `${rangeValue * 16}px` : null} </span>\n </div>\n );\n};\n","import {\n ColorWheel as ColorWheelIcon,\n InfoCircled as InfoCircledIcon,\n ListBullet as ListBulletIcon,\n Percentage as PercentageIcon,\n Slider as SliderIcon,\n Tailwind as TailwindUnitIcon,\n} from '@blockbite/icons';\nimport {\n Button,\n __experimentalInputControl as InputControl,\n __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useEffect, useMemo, useRef, useState } from '@wordpress/element';\nimport { ButtonToggleGroup } from './ButtonToggle.js';\nimport { ChapterDivider } from './ChapterDivider.js';\nimport { Popover } from './Popover.js';\nimport { RangeSlider } from './RangeSlider.js';\n\ntype MetricsControlProps = {\n value: string;\n inputClassName?: string;\n classGroupControl?: any;\n onValueChange: (value: string) => void;\n tailwindUi?: any;\n getThemeOptions?: any;\n};\n\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\nconst shadowRegex =\n /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = (value: string) => fractionRegex.test(value);\nconst isNumber = (value: string) => !!value && !Number.isNaN(Number(value));\nconst isPercent = (value: string) =>\n !!value && value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = (value: string) => tshirtUnitRegex.test(value);\nconst CSS_UNITS = [\n { value: 'px', label: 'Pixels' },\n { value: 'rem', label: 'Root EM' },\n { value: 'em', label: 'Relative to font size' },\n { value: '%', label: 'Percentage' },\n { value: 'vh', label: 'Viewport Height' },\n { value: 'vw', label: 'Viewport Width' },\n { value: 'ch', label: 'Character Width' },\n { value: 'ex', label: 'x-height' },\n { value: 'dvh', label: 'Dynamic Viewport Height' },\n { value: 'dvw', label: 'Dynamic Viewport Width' },\n { value: 'svh', label: 'Small Viewport Height' },\n { value: 'svw', label: 'Small Viewport Width' },\n { value: 'lvh', label: 'Large Viewport Height' },\n { value: 'lvw', label: 'Large Viewport Width' },\n];\n\nexport const MetricsControl: React.FC<MetricsControlProps> = ({\n value: propValue,\n onValueChange,\n inputClassName = '',\n classGroupControl,\n tailwindUi = {},\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [localUnit, setLocalUnit] = useState<string>('arbitrary');\n const [localText, setLocalText] = useState<string>('');\n const [rawValue, setRawValue] = useState<string>('');\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Manual overrides from uiSchema\n const {\n manualFraction,\n manualOptions,\n manualRange,\n manualCssVars,\n manualArbitrary,\n placeholder,\n } = classGroupControl?.metadata || {\n manualFraction: true,\n manualOptions: true,\n manualRange: true,\n manualCssVars: true,\n manualArbitrary: true,\n placeholder: '0',\n };\n\n // Allow min/max override for RangeSlider\n const rangeMin = classGroupControl?.metadata?.rangeMin ?? 0;\n const rangeMax = classGroupControl?.metadata?.rangeMax ?? 100;\n\n useEffect(() => {\n setLocalText(getUserFriendlyValue(propValue));\n setRawValue(propValue);\n setLocalUnit(detectUnitFromRawValue(propValue));\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, [propValue]);\n\n const normOptions = useMemo(\n () => classGroupControl?.options || [],\n [classGroupControl?.options]\n );\n const supportsArbitrary = useMemo(\n () =>\n hasValidator(classGroupControl?.validators, [\n 'isArbitraryVariable',\n 'isArbitraryValue',\n 'themeGetter',\n ]),\n [classGroupControl?.validators]\n );\n const supportsFraction = useMemo(\n () => hasValidator(classGroupControl?.validators, ['isFraction']),\n [classGroupControl?.validators]\n );\n const supportsTheme = useMemo(\n () => hasValidator(classGroupControl?.validators, ['themeGetter']),\n [classGroupControl?.validators]\n );\n\n function hasValidator(validators: any[] | undefined, names: string[]) {\n if (!validators) return false;\n return validators.some((v) => {\n if (typeof v === 'function' && typeof v.name === 'string') {\n return names.includes(v.name);\n }\n return false;\n });\n }\n\n const getUserFriendlyValue = (raw: string): string => {\n if (!raw) return '';\n\n const arbMatch = raw.match(arbitraryValueRegex);\n if (arbMatch) return arbMatch[2];\n const varMatch = raw.match(arbitraryVariableRegex);\n if (varMatch) return varMatch[2];\n return raw;\n };\n\n const getRawValue = (userFriendly: string): string => {\n if (!userFriendly) return '';\n\n const trimmed = userFriendly.trim();\n\n if (normOptions.some((o) => String(o.value) === trimmed)) return trimmed;\n if (trimmed.startsWith('--')) return `(${trimmed})`;\n\n // For bare numbers: wrap in brackets only if no themeProvider exists\n // (themeProvider means numeric values are valid theme tokens like w-24)\n if (isNumber(trimmed) && !lengthUnitRegex.test(trimmed)) {\n const hasThemeProvider =\n classGroupControl?.themeProvider &&\n Array.isArray(classGroupControl.themeProvider) &&\n classGroupControl.themeProvider.length > 0;\n return hasThemeProvider ? trimmed : `[${trimmed}]`;\n }\n\n if (lengthUnitRegex.test(trimmed)) return `[${trimmed}]`;\n return userFriendly;\n };\n\n const detectUnitFromRawValue = (raw: string): string => {\n const trimmed = (raw || '').trim();\n if (normOptions.some((o) => String(o.value) === trimmed)) return 'list';\n if (trimmed.startsWith('--')) return 'arbitrary';\n if (isFraction(trimmed)) return 'fraction';\n if (arbitraryValueRegex.test(trimmed)) return 'arbitrary';\n if (isNumber(trimmed) && !lengthUnitRegex.test(trimmed)) return 'native';\n if (isPercent(trimmed) || lengthUnitRegex.test(trimmed)) return 'arbitrary';\n if (isTshirtSize(trimmed)) return 'native';\n if (colorFunctionRegex.test(trimmed) || /^#([0-9a-f]{3,8})$/i.test(trimmed))\n return 'color';\n if (shadowRegex.test(trimmed) || imageRegex.test(trimmed))\n return 'arbitrary';\n return 'arbitrary';\n };\n\n const isValidValue = (raw: string): boolean => {\n if (raw === '') return true; // Allow empty value for deselection\n if (isNumber(raw)) return true;\n if (arbitraryValueRegex.test(raw)) return true;\n if (arbitraryVariableRegex.test(raw)) return true;\n if (normOptions.some((o) => String(o.value) === raw)) return true;\n if (isFraction(raw) || raw === 'full') return true;\n return false;\n };\n\n const handleInputChange = (v: string) => {\n setLocalText(v);\n };\n\n const handleBlur = () => {\n const newRaw = getRawValue(localText);\n if (isValidValue(newRaw)) {\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n } else {\n setLocalText(rawValue); // Revert to last valid value\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n const newRaw = getRawValue(localText);\n if (isValidValue(newRaw)) {\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n } else {\n setLocalText(rawValue); // Revert to last valid value\n }\n }\n };\n\n const appendToText = (insertion: string) => {\n const trimmed = localText.trim();\n const isNumeric = !isNaN(Number(trimmed));\n let newText = '';\n // Handle deselection (empty string) - clear the value entirely\n if (insertion === '') {\n newText = '';\n // If insertion is a fraction (eg \"1/2\"), replace whole value —\n // clicking fraction buttons should select the fraction instead of\n // appending to numeric prefixes like \"1/2\" -> \"11/3\".\n } else if (fractionRegex.test(insertion)) {\n newText = insertion;\n } else if (\n localUnit === 'list' ||\n localUnit === 'theme' ||\n trimmed.startsWith('--')\n ) {\n newText = insertion;\n } else if (isNumeric) {\n newText = `${trimmed}${insertion}`;\n } else {\n // Check if the current value has a number with a unit (e.g., \"16ex\", \"2rem\", \"100%\")\n // Extract the numeric part and append the new unit\n const numericMatch = trimmed.match(/^(-?\\d+\\.?\\d*)/);\n if (numericMatch) {\n newText = `${numericMatch[1]}${insertion}`;\n } else {\n newText = insertion;\n }\n }\n\n setLocalText(newText);\n\n // Emit the change immediately for arbitrary units\n const newRaw = getRawValue(newText);\n if (isValidValue(newRaw)) {\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n }\n\n inputRef.current?.focus();\n };\n\n const setValueDirectly = (v: string) => {\n const userFriendly = getUserFriendlyValue(v);\n const newRaw = getRawValue(userFriendly);\n if (isValidValue(newRaw)) {\n setLocalText(userFriendly);\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n } else {\n setLocalText(rawValue);\n }\n };\n\n const CurrentUnitIcon = (() => {\n switch (localUnit) {\n case 'fraction':\n return <PercentageIcon />;\n case 'list':\n return <ListBulletIcon />;\n case 'theme':\n return <ColorWheelIcon />;\n case 'arbitrary':\n return <SliderIcon />;\n default:\n return <TailwindUnitIcon />;\n }\n })();\n\n const openPicker = () => setIsVisible(true);\n\n const renderFractionBody = () => {\n if (!supportsFraction) return null;\n return (\n <ButtonToggleGroup\n options={tailwindUi?.units?.spacing?.fraction?.options || []}\n size=\"small\"\n value={localText}\n className=\"mt-0 w-[200px]\"\n onPressedChange={(v: any) => appendToText(String(v))}\n />\n );\n };\n\n const renderListBody = () => (\n <ButtonToggleGroup\n options={normOptions.map((o: any) => ({\n value: o.value,\n label: o.label,\n }))}\n size=\"small\"\n className=\"mt-0 w-[200px]\"\n value={localText}\n onPressedChange={(v: any) => setValueDirectly(String(v))}\n />\n );\n\n const getCustomCssVariables = useMemo(() => {\n // Extract custom CSS variables from computed styles on the document root\n // WordPress adds custom variables from theme.json as CSS custom properties\n try {\n const rootStyles = window.getComputedStyle(document.documentElement);\n const customVars: any[] = [];\n\n // Get all CSS custom properties from :root\n for (let i = 0; i < rootStyles.length; i++) {\n const propertyName = rootStyles[i];\n // Look for --wp--custom-- prefixed variables\n if (propertyName.startsWith('--wp--custom--')) {\n const value = rootStyles.getPropertyValue(propertyName).trim();\n customVars.push({\n value: propertyName,\n label: `${propertyName} (${value})`,\n });\n }\n }\n\n return customVars;\n } catch (error) {\n return [];\n }\n }, []);\n\n const renderThemeInsert = () => {\n // Get custom CSS variables from theme.json\n const customVars = getCustomCssVariables;\n\n // Build the options list: custom variables + placeholder\n const cssVariableOptions = [\n ...customVars,\n {\n value: '--custom-css-var',\n label: '--custom-css-var',\n },\n ];\n\n return (\n <ButtonToggleGroup\n className=\"mt-0 w-[200px]\"\n options={cssVariableOptions}\n size=\"small\"\n value={localText}\n onPressedChange={(v: any) => setValueDirectly(String(v))}\n />\n );\n };\n\n const renderArbitraryUnitButtons = () => (\n <div className=\"flex gap-2\">\n <ButtonToggleGroup\n className=\"mt-0 w-[200px]\"\n options={CSS_UNITS.map((u) => ({\n value: u.value,\n label: u.value,\n tooltip: u.label,\n }))}\n size=\"small\"\n value={localText}\n onPressedChange={(v: any) => appendToText(String(v))}\n />\n </div>\n );\n\n return (\n <div className=\"relative flex flex-col items-baseline\">\n <InputControl\n __nextHasNoMarginBottom\n className={`w-full ${inputClassName} ${\n !isValidValue(getRawValue(localText)) ? 'border-red-500' : ''\n }`}\n value={localText}\n onChange={handleInputChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n autoComplete=\"off\"\n suffix={\n <InputControlSuffixWrapper>\n <Popover\n offset={10}\n visible={isVisible}\n position=\"bottom left\"\n className=\"overflow-x-hidden w-[280px] max-h-[400px]\"\n onVisibleChange={setIsVisible}\n >\n <div className=\"flex flex-col divide-y divide-border -m-4\">\n {manualRange && (\n <RangeSlider\n value={localText}\n label=\"Number Value\"\n className=\"w-[200px] pt-4 pb-2 px-4\"\n min={rangeMin}\n max={rangeMax}\n gridMode={false}\n showTooltip={false}\n // instantly render changes while sliding\n onValueChange={(v: string) => {\n const newRaw = getRawValue(v);\n if (isValidValue(newRaw)) {\n setLocalText(v);\n setRawValue(newRaw);\n onValueChange(newRaw);\n setLocalUnit(detectUnitFromRawValue(newRaw));\n } else {\n setLocalText(v); // Update local state, but don't emit\n }\n }}\n />\n )}\n {supportsFraction && manualFraction && (\n <div className=\"p-4\">\n <ChapterDivider title=\"Fraction\" />\n {renderFractionBody()}\n </div>\n )}\n {normOptions.length > 0 && manualOptions && (\n <div className=\"p-4\">\n <ChapterDivider title=\"Options\" />\n {renderListBody()}\n </div>\n )}\n {supportsArbitrary && manualArbitrary && (\n <div className=\"p-4\">\n <ChapterDivider title=\"Arbitrary Units\" />\n {renderArbitraryUnitButtons()}\n </div>\n )}\n {supportsTheme && manualCssVars && (\n <div className=\"p-4\">\n <ChapterDivider\n title=\"CSS Variables\"\n help={\n getCustomCssVariables.length === 0\n ? 'Add custom CSS variables to theme.json settings.custom'\n : undefined\n }\n addon={\n <a\n href=\"https://developer.wordpress.org/news/2023/08/adding-and-using-custom-settings-in-theme-json/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center text-gray-500 hover:text-gray-700 -mt-1\"\n aria-label=\"Learn how to add custom CSS variables to theme.json\"\n >\n <InfoCircledIcon className=\"w-3.5 h-3.5\" />\n </a>\n }\n />\n {renderThemeInsert()}\n </div>\n )}\n </div>\n </Popover>\n <Button\n className=\"!p-0 !min-w-0 !h-6 w-6 inline-flex items-center justify-center\"\n onClick={openPicker}\n aria-label=\"Open units\"\n >\n {CurrentUnitIcon}\n </Button>\n </InputControlSuffixWrapper>\n }\n />\n </div>\n );\n};\n\nexport default MetricsControl;\n","import { Button, Modal as WordpressModal } from '@wordpress/components';\nimport {\n Children,\n createContext,\n isValidElement,\n useContext,\n useEffect,\n useState,\n} from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Cross1 } from '@blockbite/icons';\n\ntype ModalContextType = {\n closeModal: () => void;\n openModal: () => void;\n};\n\nconst ModalContext = createContext<ModalContextType | null>(null);\n\nexport const useModalContext = () => {\n const context = useContext(ModalContext);\n if (!context) {\n throw new Error('useModalContext must be used within a ModalProvider');\n }\n return context;\n};\n\ntype ModalProps = {\n children: React.ReactElement | React.ReactElement[];\n\n /** controlled */\n open?: boolean;\n\n /** uncontrolled fallback */\n defaultOpen?: boolean;\n\n onOpenChange?: (open: boolean) => void;\n\n title?: string;\n size?: 'small' | 'medium' | 'large' | 'fill' | 'wide';\n\n /** passthrough props */\n onRequestClose?: () => void;\n shouldCloseOnEsc?: boolean;\n shouldCloseOnClickOutside?: boolean;\n [key: string]: any;\n};\n\n// Keep things simple: we render our own header/content/footer sections.\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n open,\n defaultOpen = false,\n onOpenChange,\n title = '',\n className,\n size,\n onRequestClose,\n shouldCloseOnEsc = true,\n shouldCloseOnClickOutside = true,\n ...props\n}) => {\n /** Controlled vs uncontrolled logic */\n const isControlled = open !== undefined;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isOpen = isControlled ? open : uncontrolledOpen;\n\n const setOpen = (next: boolean) => {\n if (!isControlled) setUncontrolledOpen(next);\n onOpenChange?.(next);\n };\n\n const openModal = () => setOpen(true);\n const closeModal = () => {\n onRequestClose?.();\n setOpen(false);\n };\n\n // Detect direct children for aria and footer presence\n const hasModalHeaderChild = Children.toArray(children).some(\n (child) => isValidElement(child) && child.type === ModalHeader\n );\n\n useEffect(() => {\n onOpenChange?.(isOpen);\n }, [isOpen, onOpenChange]);\n\n let ariaProps: Record<string, string> = {};\n if (hasModalHeaderChild) {\n ariaProps = { labelledby: 'bb-modal-heading' };\n } else if (title) {\n ariaProps = { label: title };\n }\n\n return (\n <ModalContext.Provider value={{ closeModal, openModal }}>\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === ModalTrigger ? child : null\n )}\n\n {isOpen && (\n <WordpressModal\n className={classNames(\n 'blockbite-ui__modal',\n size && `is-${size}`,\n className\n )}\n size={size}\n title=\"\" // prevent WP header from rendering\n aria={ariaProps}\n onRequestClose={closeModal}\n shouldCloseOnEsc={shouldCloseOnEsc}\n shouldCloseOnClickOutside={shouldCloseOnClickOutside}\n {...props}\n >\n <div className=\"relative\">\n <div className=\"absolute right-2 top-2 z-10\">\n <Button\n aria-label=\"Close\"\n label=\"Close\"\n variant=\"secondary\"\n onClick={closeModal}\n >\n <Cross1 className=\"h-4 w-4\" />\n </Button>\n </div>\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === ModalHeader ? child : null\n )}\n\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === ModalContent\n ? child\n : null\n )}\n\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === ModalFooter ? child : null\n )}\n </div>\n </WordpressModal>\n )}\n </ModalContext.Provider>\n );\n};\n\n// --- Subcomponents ---\n\nexport const ModalHeader: React.FC<{\n children: React.ReactNode;\n className?: string;\n}> = ({ children, className = '', ...props }) => (\n <div\n className={classNames(\n 'flex flex-col space-y-1.5 text-center sm:text-left',\n className\n )}\n {...props}\n >\n <h2 id=\"bb-modal-heading\" className=\"text-base font-medium\">\n {children}\n </h2>\n </div>\n);\n\nexport const ModalFooter: React.FC<{\n children: React.ReactNode;\n className?: string;\n}> = ({ children, className = '', ...props }) => (\n <div\n className={classNames(\n 'border-border fixed bottom-0 left-0 right-0 flex h-[4rem] flex-row items-center justify-end gap-2 border-t bg-white px-4',\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nexport const ModalContent: React.FC<{\n children: React.ReactNode;\n className?: string;\n}> = ({ children, className = '', ...props }) => (\n <div\n className={classNames('text-gray-medium px-4 pb-4 text-sm', className)}\n {...props}\n >\n {children}\n </div>\n);\n\nexport const ModalClose: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const { closeModal } = useModalContext();\n return (\n <div onClick={closeModal} className=\"cursor-pointer\">\n {children}\n </div>\n );\n};\n\nexport const ModalTrigger: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const { openModal } = useModalContext();\n return (\n <div onClick={openModal} className=\"cursor-pointer\">\n {children}\n </div>\n );\n};\n","import { createPortal, useEffect, useMemo } from '@wordpress/element';\n\nfunction copyStyles(sourceDoc, targetDoc) {\n Array.from(sourceDoc.styleSheets).forEach((styleSheet: any) => {\n try {\n if (styleSheet.cssRules) {\n const newStyleEl = targetDoc.createElement('style');\n Array.from(styleSheet.cssRules).forEach((cssRule: any) => {\n newStyleEl.appendChild(targetDoc.createTextNode(cssRule.cssText));\n });\n targetDoc.head.appendChild(newStyleEl);\n } else if (styleSheet.href) {\n const newLinkEl = targetDoc.createElement('link');\n newLinkEl.rel = 'stylesheet';\n newLinkEl.href = styleSheet.href;\n targetDoc.head.appendChild(newLinkEl);\n }\n } catch (e) {\n if (styleSheet.href) {\n const newLinkEl = targetDoc.createElement('link');\n newLinkEl.rel = 'stylesheet';\n newLinkEl.href = styleSheet.href;\n targetDoc.head.appendChild(newLinkEl);\n } else {\n // eslint-disable-next-line no-console\n console.warn('Error copying styles:', e);\n }\n }\n });\n}\n\ntype Props = {\n windowInstance: Window;\n onClose: () => void;\n children: React.ReactNode;\n};\n\nexport const NewWindowPortal = ({\n windowInstance,\n onClose,\n children,\n}: Props) => {\n const containerEl = useMemo(() => document.createElement('div'), []);\n\n useEffect(() => {\n const win = windowInstance;\n\n win.document.body.innerHTML = '';\n win.document.body.appendChild(containerEl);\n copyStyles(document, win.document);\n win.document.title = document.title || 'Blockbite Editor';\n\n const handleBeforeUnload = () => {\n setTimeout(onClose, 100);\n };\n\n win.addEventListener('beforeunload', handleBeforeUnload);\n\n return () => {\n win.removeEventListener('beforeunload', handleBeforeUnload);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [windowInstance]);\n\n // Typecasting: https://github.com/vercel/next.js/discussions/64753\n return createPortal(children as any, containerEl);\n};\n","import { Notice as WordpressNotice } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\ntype NoticeProps = {\n children: React.ReactNode;\n className?: string;\n status?: 'success' | 'error' | 'warning' | 'info';\n};\n\nexport const Notice = ({\n children,\n status = 'success',\n className,\n}: NoticeProps) => {\n const [showNotice, setShowNotice] = useState(true);\n\n return (\n <Wrap onClick={() => setShowNotice(false)}>\n {showNotice && (\n <WordpressNotice\n status={status}\n className={classNames(className)}\n onRemove={() => setShowNotice(false)}\n >\n {children}\n </WordpressNotice>\n )}\n </Wrap>\n );\n};\n","import {\n Button,\n __experimentalInputControl as InputControl,\n __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { Path, SVG } from '@wordpress/primitives';\n\ntype PasswordInputProps = {\n label: string;\n value: string;\n onChange: (value: string) => void;\n [key: string]: any;\n};\n\nexport const PasswordInput = ({\n label,\n value,\n onChange,\n ...rest\n}: PasswordInputProps) => {\n const [showPassword, setShowPassword] = useState(false);\n\n return (\n <InputControl\n label={label}\n value={value}\n type={showPassword ? 'text' : 'password'}\n suffix={\n <InputControlSuffixWrapper variant=\"control\">\n <Button\n icon={\n <SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <Path\n d={\n showPassword\n ? 'M3.99961 13C4.67043 13.3354 4.6703 13.3357 4.67017 13.3359L4.67298 13.3305C4.67621 13.3242 4.68184 13.3135 4.68988 13.2985C4.70595 13.2686 4.7316 13.2218 4.76695 13.1608C4.8377 13.0385 4.94692 12.8592 5.09541 12.6419C5.39312 12.2062 5.84436 11.624 6.45435 11.0431C7.67308 9.88241 9.49719 8.75 11.9996 8.75C14.502 8.75 16.3261 9.88241 17.5449 11.0431C18.1549 11.624 18.6061 12.2062 18.9038 12.6419C19.0523 12.8592 19.1615 13.0385 19.2323 13.1608C19.2676 13.2218 19.2933 13.2686 19.3093 13.2985C19.3174 13.3135 19.323 13.3242 19.3262 13.3305L19.3291 13.3359C19.3289 13.3357 19.3288 13.3354 19.9996 13C20.6704 12.6646 20.6703 12.6643 20.6701 12.664L20.6697 12.6632L20.6688 12.6614L20.6662 12.6563L20.6583 12.6408C20.6517 12.6282 20.6427 12.6108 20.631 12.5892C20.6078 12.5459 20.5744 12.4852 20.5306 12.4096C20.4432 12.2584 20.3141 12.0471 20.1423 11.7956C19.7994 11.2938 19.2819 10.626 18.5794 9.9569C17.1731 8.61759 14.9972 7.25 11.9996 7.25C9.00203 7.25 6.82614 8.61759 5.41987 9.9569C4.71736 10.626 4.19984 11.2938 3.85694 11.7956C3.68511 12.0471 3.55605 12.2584 3.4686 12.4096C3.42484 12.4852 3.39142 12.5459 3.36818 12.5892C3.35656 12.6108 3.34748 12.6282 3.34092 12.6408L3.33297 12.6563L3.33041 12.6614L3.32948 12.6632L3.32911 12.664C3.32894 12.6643 3.32879 12.6646 3.99961 13ZM11.9996 16C13.9326 16 15.4996 14.433 15.4996 12.5C15.4996 10.567 13.9326 9 11.9996 9C10.0666 9 8.49961 10.567 8.49961 12.5C8.49961 14.433 10.0666 16 11.9996 16Z'\n : 'M20.7 12.7s0-.1-.1-.2c0-.2-.2-.4-.4-.6-.3-.5-.9-1.2-1.6-1.8-.7-.6-1.5-1.3-2.6-1.8l-.6 1.4c.9.4 1.6 1 2.1 1.5.6.6 1.1 1.2 1.4 1.6.1.2.3.4.3.5v.1l.7-.3.7-.3Zm-5.2-9.3-1.8 4c-.5-.1-1.1-.2-1.7-.2-3 0-5.2 1.4-6.6 2.7-.7.7-1.2 1.3-1.6 1.8-.2.3-.3.5-.4.6 0 0 0 .1-.1.2s0 0 .7.3l.7.3V13c0-.1.2-.3.3-.5.3-.4.7-1 1.4-1.6 1.2-1.2 3-2.3 5.5-2.3H13v.3c-.4 0-.8-.1-1.1-.1-1.9 0-3.5 1.6-3.5 3.5s.6 2.3 1.6 2.9l-2 4.4.9.4 7.6-16.2-.9-.4Zm-3 12.6c1.7-.2 3-1.7 3-3.5s-.2-1.4-.6-1.9L12.4 16Z'\n }\n />\n </SVG>\n }\n label=\"Show password\"\n onClick={() => setShowPassword((prev) => !prev)}\n size=\"small\"\n />\n </InputControlSuffixWrapper>\n }\n onChange={onChange}\n {...rest}\n />\n );\n};\n","export type ProjectItem = {\n id: string | number;\n name: string;\n description: string;\n};\n\ntype Props = {\n items: ProjectItem[];\n activeId: string | number;\n onSelect: (id: string | number) => void;\n};\n\nexport const ProjectsNavigation = ({ items, activeId, onSelect }: Props) => {\n return (\n <div className=\"w-[280px] max-h-[400px] overflow-y-auto\">\n {items.map((item) => (\n <div\n key={item.id}\n onClick={() => onSelect(item.id)}\n className={`cursor-pointer p-3 border-l-4 flex gap-3 items-center hover:bg-gray-50 ${\n activeId === item.id\n ? 'border-blue-500 bg-gray-100'\n : 'border-transparent'\n }`}\n >\n <span className=\"rounded bg-slate-300 w-10 h-10 flex items-center justify-center text-lg font-bold text-white shrink-0\">\n {item.name.charAt(0).toUpperCase()}\n </span>\n <div className=\"flex flex-col min-w-0\">\n <p className=\"text-sm font-medium truncate\">{item.name}</p>\n {item.description && (\n <p className=\"text-xs text-gray-500 truncate\">\n {item.description}\n </p>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n};\n","export function ResponsiveImage(props) {\n const { media, bbFill } = props;\n const { url, alt, sizes } = media;\n\n if (sizes === undefined) {\n return (\n <picture className=\"b_fill\">\n <img src={url} alt={alt} className={`b_media ${bbFill}`} />\n </picture>\n );\n }\n\n const { thumbnail, medium, large } = sizes;\n const thumbnailImg = thumbnail || url;\n const mediumImg = medium || url;\n const largeImg = large || url;\n\n return (\n <picture className=\"b_fill\">\n {thumbnailImg ? (\n <source\n media=\"(max-width: 768px)\"\n srcSet={thumbnailImg}\n className={`b_media ${bbFill}`}\n />\n ) : null}\n {mediumImg ? (\n <source\n media=\"(min-width: 1024px)\"\n srcSet={mediumImg}\n className={`b_media ${bbFill}`}\n />\n ) : null}\n {largeImg ? (\n <source\n media=\"(min-width: 1536px)\"\n srcSet={largeImg}\n className={`b_media ${bbFill}`}\n />\n ) : null}\n {mediumImg ? (\n <img src={mediumImg} alt={alt} className={`b_media ${bbFill}`} />\n ) : null}\n </picture>\n );\n}\n","export function ResponsiveVideo(props: any) {\n const { media, bbFill } = props;\n const { url } = media;\n\n const videoUrl = url;\n\n return (\n <video\n className={`b_fill ${bbFill}`}\n preload=\"none\"\n playsInline\n controls\n autoPlay\n muted\n loop\n >\n <source src={videoUrl} type=\"video/mp4\" />\n </video>\n );\n}\n","import classNames from 'classnames';\nimport { Wrap } from './Wrap.js';\n\ntype ScrollListProps = {\n children: React.ReactNode;\n className?: string;\n height?: 'small' | 'medium' | 'large';\n};\n\nexport const ScrollList: React.FC<ScrollListProps> = ({\n children,\n className = '',\n height = 'large',\n}) => (\n <Wrap\n className={classNames('scrollbar relative overflow-y-scroll', className, {\n 'h-[400px]': height === 'large',\n 'h-[300px]': height === 'medium',\n 'h-[200px]': height === 'small',\n })}\n >\n {children}\n </Wrap>\n);\n","import { createBlock } from '@wordpress/blocks';\nimport { Button } from '@wordpress/components';\n\nconst { select, dispatch } = wp.data;\n\ninterface SingleBlockTypeAppenderProps {\n buttonText?: string;\n}\n\nexport const SingleBlockTypeAppender = ({\n buttonText = 'Add block',\n}: SingleBlockTypeAppenderProps) => {\n const addLastDuplicate = () => {\n // Get the current block\n const currentBlock = select('core/block-editor').getSelectedBlock();\n const { clientId, innerBlocks } = currentBlock;\n\n // get the last block\n const lastBlock = innerBlocks[innerBlocks.length - 1];\n // duplicate the last block\n const newBlock = createBlock(\n lastBlock.name,\n lastBlock.attributes,\n lastBlock.innerBlocks\n );\n\n dispatch('core/block-editor').insertBlocks(newBlock, 0, clientId);\n };\n\n return (\n <Button variant=\"primary\" onClick={() => addLastDuplicate()}>\n {buttonText}\n </Button>\n );\n};\n","import { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\ntype SlideInProps = {\n children: React.ReactNode;\n className?: string;\n watch?: any;\n};\n\nexport const SlideIn = ({ children, watch, className }: SlideInProps) => {\n const [slide, setSlide] = useState(0);\n\n useEffect(() => {\n setTimeout(() => {\n setSlide(1);\n }, 250);\n }, [watch]);\n\n return (\n <Wrap\n className={classNames(\n className,\n 'duration-50 transform transition-all ease-in-out',\n {\n 'translate-x-0': slide === 1,\n '-translate-x-full': slide === 0,\n }\n )}\n >\n {children}\n </Wrap>\n );\n};\n","import { Spinner as WordpressSpinner } from '@wordpress/components';\n\ntype SpinnerProps = {\n [x: string]: any;\n};\n\nexport const Spinner = ({ ...props }: SpinnerProps) => {\n return <WordpressSpinner {...props} />;\n};\n","function At() {\n return At = Object.assign ? Object.assign.bind() : function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) ({}).hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n return e;\n }, At.apply(null, arguments);\n}\nvar ot = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction Ft(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar tr, nr = {\n exports: {}\n};\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\nvar zn, rr, ir, yi = (tr || (tr = 1, zn = nr, (function() {\n var e = {}.hasOwnProperty;\n function t() {\n for (var n = [], r = 0; r < arguments.length; r++) {\n var i = arguments[r];\n if (i) {\n var o = typeof i;\n if (o === \"string\" || o === \"number\") n.push(i);\n else if (Array.isArray(i)) {\n if (i.length) {\n var c = t.apply(null, i);\n c && n.push(c);\n }\n } else if (o === \"object\") if (i.toString === Object.prototype.toString) for (var a in i) e.call(i, a) && i[a] && n.push(a);\n else n.push(i.toString());\n }\n }\n return n.join(\" \");\n }\n zn.exports ? (t.default = t, zn.exports = t) : window.classNames = t;\n})()), nr.exports), Tn = Ft(yi), or, Te = Ft((function() {\n if (ir) return rr;\n ir = 1;\n var e = /^\\s+|\\s+$/g, t = /^[-+]0x[0-9a-f]+$/i, n = /^0b[01]+$/i, r = /^0o[0-7]+$/i, i = parseInt, o = Object.prototype.toString;\n function c(s) {\n var l = typeof s;\n return !!s && (l == \"object\" || l == \"function\");\n }\n function a(s) {\n if (typeof s == \"number\") return s;\n if ((function(u) {\n return typeof u == \"symbol\" || /* @__PURE__ */ (function(v) {\n return !!v && typeof v == \"object\";\n })(u) && o.call(u) == \"[object Symbol]\";\n })(s)) return NaN;\n if (c(s)) {\n var l = typeof s.valueOf == \"function\" ? s.valueOf() : s;\n s = c(l) ? l + \"\" : l;\n }\n if (typeof s != \"string\") return s === 0 ? s : +s;\n s = s.replace(e, \"\");\n var d = n.test(s);\n return d || r.test(s) ? i(s.slice(2), d ? 2 : 8) : t.test(s) ? NaN : +s;\n }\n return rr = function(s, l, d) {\n return d === void 0 && (d = l, l = void 0), d !== void 0 && (d = (d = a(d)) == d ? d : 0), l !== void 0 && (l = (l = a(l)) == l ? l : 0), (function(u, v, h) {\n return u == u && (h !== void 0 && (u = u <= h ? u : h), v !== void 0 && (u = u >= v ? u : v)), u;\n })(a(s), l, d);\n };\n})()), _n = {\n exports: {}\n}, Si = (or || (or = 1, (function(e, t) {\n var n = \"__lodash_hash_undefined__\", r = 9007199254740991, i = \"[object Arguments]\", o = \"[object Array]\", c = \"[object Boolean]\", a = \"[object Date]\", s = \"[object Error]\", l = \"[object Function]\", d = \"[object Map]\", u = \"[object Number]\", v = \"[object Object]\", h = \"[object Promise]\", m = \"[object RegExp]\", g = \"[object Set]\", b = \"[object String]\", y = \"[object Symbol]\", S = \"[object WeakMap]\", R = \"[object ArrayBuffer]\", x = \"[object DataView]\", I = /^\\[object .+?Constructor\\]$/, E = /^(?:0|[1-9]\\d*)$/, w = {};\n w[\"[object Float32Array]\"] = w[\"[object Float64Array]\"] = w[\"[object Int8Array]\"] = w[\"[object Int16Array]\"] = w[\"[object Int32Array]\"] = w[\"[object Uint8Array]\"] = w[\"[object Uint8ClampedArray]\"] = w[\"[object Uint16Array]\"] = w[\"[object Uint32Array]\"] = !0, w[i] = w[o] = w[R] = w[c] = w[x] = w[a] = w[s] = w[l] = w[d] = w[u] = w[v] = w[m] = w[g] = w[b] = w[S] = !1;\n var _ = typeof ot == \"object\" && ot && ot.Object === Object && ot, T = typeof self == \"object\" && self && self.Object === Object && self, N = _ || T || Function(\"return this\")(), j = t && !t.nodeType && t, L = j && e && !e.nodeType && e, A = L && L.exports === j, F = A && _.process, P = (function() {\n try {\n return F && F.binding && F.binding(\"util\");\n } catch {\n }\n })(), $ = P && P.isTypedArray;\n function V(f, p) {\n for (var z = -1, D = f == null ? 0 : f.length; ++z < D; ) if (p(f[z], z, f)) return !0;\n return !1;\n }\n function U(f) {\n var p = -1, z = Array(f.size);\n return f.forEach(function(D, W) {\n z[++p] = [W, D];\n }), z;\n }\n function se(f) {\n var p = -1, z = Array(f.size);\n return f.forEach(function(D) {\n z[++p] = D;\n }), z;\n }\n var me, G, q, K = Array.prototype, ae = Function.prototype, fe = Object.prototype, Z = N[\"__core-js_shared__\"], Me = ae.toString, C = fe.hasOwnProperty, M = (me = /[^.]+$/.exec(Z && Z.keys && Z.keys.IE_PROTO || \"\")) ? \"Symbol(src)_1.\" + me : \"\", O = fe.toString, H = RegExp(\"^\" + Me.call(C).replace(/[\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"), be = A ? N.Buffer : void 0, Ne = N.Symbol, ze = N.Uint8Array, Xe = fe.propertyIsEnumerable, Je = K.splice, je = Ne ? Ne.toStringTag : void 0, zt = Object.getOwnPropertySymbols, _t = be ? be.isBuffer : void 0, ke = (G = Object.keys, q = Object, function(f) {\n return G(q(f));\n }), Qe = Se(N, \"DataView\"), Fe = Se(N, \"Map\"), ft = Se(N, \"Promise\"), ht = Se(N, \"Set\"), It = Se(N, \"WeakMap\"), at = Se(Object, \"create\"), Ze = le(Qe), et = le(Fe), ct = le(ft), Xt = le(ht), $e = le(It), Dt = Ne ? Ne.prototype : void 0, Et = Dt ? Dt.valueOf : void 0;\n function We(f) {\n var p = -1, z = f == null ? 0 : f.length;\n for (this.clear(); ++p < z; ) {\n var D = f[p];\n this.set(D[0], D[1]);\n }\n }\n function ye(f) {\n var p = -1, z = f == null ? 0 : f.length;\n for (this.clear(); ++p < z; ) {\n var D = f[p];\n this.set(D[0], D[1]);\n }\n }\n function Be(f) {\n var p = -1, z = f == null ? 0 : f.length;\n for (this.clear(); ++p < z; ) {\n var D = f[p];\n this.set(D[0], D[1]);\n }\n }\n function vt(f) {\n var p = -1, z = f == null ? 0 : f.length;\n for (this.__data__ = new Be(); ++p < z; ) this.add(f[p]);\n }\n function Ae(f) {\n var p = this.__data__ = new ye(f);\n this.size = p.size;\n }\n function yn(f, p) {\n var z = Re(f), D = !z && ut(f), W = !z && !D && Ue(f), k = !z && !D && !W && Jn(f), J = z || D || W || k, Q = J ? (function(re, He) {\n for (var Ke = -1, we = Array(re); ++Ke < re; ) we[Ke] = He(Ke);\n return we;\n })(f.length, String) : [], Le = Q.length;\n for (var ne in f) !C.call(f, ne) || J && (ne == \"length\" || W && (ne == \"offset\" || ne == \"parent\") || k && (ne == \"buffer\" || ne == \"byteLength\" || ne == \"byteOffset\") || _e(ne, Le)) || Q.push(ne);\n return Q;\n }\n function pt(f, p) {\n for (var z = f.length; z--; ) if (tt(f[z][0], p)) return z;\n return -1;\n }\n function lt(f) {\n return f == null ? f === void 0 ? \"[object Undefined]\" : \"[object Null]\" : je && je in Object(f) ? (function(p) {\n var z = C.call(p, je), D = p[je];\n try {\n p[je] = void 0;\n var W = !0;\n } catch {\n }\n var k = O.call(p);\n return W && (z ? p[je] = D : delete p[je]), k;\n })(f) : (function(p) {\n return O.call(p);\n })(f);\n }\n function ee(f) {\n return Ct(f) && lt(f) == i;\n }\n function ue(f, p, z, D, W) {\n return f === p || (f == null || p == null || !Ct(f) && !Ct(p) ? f != f && p != p : (function(k, J, Q, Le, ne, re) {\n var He = Re(k), Ke = Re(J), we = He ? o : ce(k), Ge = Ke ? o : ce(J), gt = (we = we == i ? v : we) == v, Wt = (Ge = Ge == i ? v : Ge) == v, mt = we == Ge;\n if (mt && Ue(k)) {\n if (!Ue(J)) return !1;\n He = !0, gt = !1;\n }\n if (mt && !gt) return re || (re = new Ae()), He || Jn(k) ? ve(k, J, Q, Le, ne, re) : (function(X, Y, Ut, nt, Sn, Ie, qe) {\n switch (Ut) {\n case x:\n if (X.byteLength != Y.byteLength || X.byteOffset != Y.byteOffset) return !1;\n X = X.buffer, Y = Y.buffer;\n case R:\n return !(X.byteLength != Y.byteLength || !Ie(new ze(X), new ze(Y)));\n case c:\n case a:\n case u:\n return tt(+X, +Y);\n case s:\n return X.name == Y.name && X.message == Y.message;\n case m:\n case b:\n return X == Y + \"\";\n case d:\n var rt = U;\n case g:\n var Mt = 1 & nt;\n if (rt || (rt = se), X.size != Y.size && !Mt) return !1;\n var Kt = qe.get(X);\n if (Kt) return Kt == Y;\n nt |= 2, qe.set(X, Y);\n var Rn = ve(rt(X), rt(Y), nt, Sn, Ie, qe);\n return qe.delete(X), Rn;\n case y:\n if (Et) return Et.call(X) == Et.call(Y);\n }\n return !1;\n })(k, J, we, Q, Le, ne, re);\n if (!(1 & Q)) {\n var Ot = gt && C.call(k, \"__wrapped__\"), Qn = Wt && C.call(J, \"__wrapped__\");\n if (Ot || Qn) {\n var mi = Ot ? k.value() : k, bi = Qn ? J.value() : J;\n return re || (re = new Ae()), ne(mi, bi, Q, Le, re);\n }\n }\n return !!mt && (re || (re = new Ae()), (function(X, Y, Ut, nt, Sn, Ie) {\n var qe = 1 & Ut, rt = de(X), Mt = rt.length, Kt = de(Y), Rn = Kt.length;\n if (Mt != Rn && !qe) return !1;\n for (var Gt = Mt; Gt--; ) {\n var dt = rt[Gt];\n if (!(qe ? dt in Y : C.call(Y, dt))) return !1;\n }\n var Zn = Ie.get(X);\n if (Zn && Ie.get(Y)) return Zn == Y;\n var qt = !0;\n Ie.set(X, Y), Ie.set(Y, X);\n for (var xn = qe; ++Gt < Mt; ) {\n var Jt = X[dt = rt[Gt]], Qt = Y[dt];\n if (nt) var er = qe ? nt(Qt, Jt, dt, Y, X, Ie) : nt(Jt, Qt, dt, X, Y, Ie);\n if (!(er === void 0 ? Jt === Qt || Sn(Jt, Qt, Ut, nt, Ie) : er)) {\n qt = !1;\n break;\n }\n xn || (xn = dt == \"constructor\");\n }\n if (qt && !xn) {\n var Zt = X.constructor, en = Y.constructor;\n Zt == en || !(\"constructor\" in X) || !(\"constructor\" in Y) || typeof Zt == \"function\" && Zt instanceof Zt && typeof en == \"function\" && en instanceof en || (qt = !1);\n }\n return Ie.delete(X), Ie.delete(Y), qt;\n })(k, J, Q, Le, ne, re));\n })(f, p, z, D, ue, W));\n }\n function he(f) {\n return !(!qn(f) || (function(p) {\n return !!M && M in p;\n })(f)) && (wt(f) ? H : I).test(le(f));\n }\n function Ye(f) {\n if (z = (p = f) && p.constructor, D = typeof z == \"function\" && z.prototype || fe, p !== D) return ke(f);\n var p, z, D, W = [];\n for (var k in Object(f)) C.call(f, k) && k != \"constructor\" && W.push(k);\n return W;\n }\n function ve(f, p, z, D, W, k) {\n var J = 1 & z, Q = f.length, Le = p.length;\n if (Q != Le && !(J && Le > Q)) return !1;\n var ne = k.get(f);\n if (ne && k.get(p)) return ne == p;\n var re = -1, He = !0, Ke = 2 & z ? new vt() : void 0;\n for (k.set(f, p), k.set(p, f); ++re < Q; ) {\n var we = f[re], Ge = p[re];\n if (D) var gt = J ? D(Ge, we, re, p, f, k) : D(we, Ge, re, f, p, k);\n if (gt !== void 0) {\n if (gt) continue;\n He = !1;\n break;\n }\n if (Ke) {\n if (!V(p, function(Wt, mt) {\n if (Ot = mt, !Ke.has(Ot) && (we === Wt || W(we, Wt, z, D, k))) return Ke.push(mt);\n var Ot;\n })) {\n He = !1;\n break;\n }\n } else if (we !== Ge && !W(we, Ge, z, D, k)) {\n He = !1;\n break;\n }\n }\n return k.delete(f), k.delete(p), He;\n }\n function de(f) {\n return (function(p, z, D) {\n var W = z(p);\n return Re(p) ? W : (function(k, J) {\n for (var Q = -1, Le = J.length, ne = k.length; ++Q < Le; ) k[ne + Q] = J[Q];\n return k;\n })(W, D(p));\n })(f, gi, te);\n }\n function pe(f, p) {\n var z, D, W = f.__data__;\n return ((D = typeof (z = p)) == \"string\" || D == \"number\" || D == \"symbol\" || D == \"boolean\" ? z !== \"__proto__\" : z === null) ? W[typeof p == \"string\" ? \"string\" : \"hash\"] : W.map;\n }\n function Se(f, p) {\n var z = (function(D, W) {\n return D == null ? void 0 : D[W];\n })(f, p);\n return he(z) ? z : void 0;\n }\n We.prototype.clear = function() {\n this.__data__ = at ? at(null) : {}, this.size = 0;\n }, We.prototype.delete = function(f) {\n var p = this.has(f) && delete this.__data__[f];\n return this.size -= p ? 1 : 0, p;\n }, We.prototype.get = function(f) {\n var p = this.__data__;\n if (at) {\n var z = p[f];\n return z === n ? void 0 : z;\n }\n return C.call(p, f) ? p[f] : void 0;\n }, We.prototype.has = function(f) {\n var p = this.__data__;\n return at ? p[f] !== void 0 : C.call(p, f);\n }, We.prototype.set = function(f, p) {\n var z = this.__data__;\n return this.size += this.has(f) ? 0 : 1, z[f] = at && p === void 0 ? n : p, this;\n }, ye.prototype.clear = function() {\n this.__data__ = [], this.size = 0;\n }, ye.prototype.delete = function(f) {\n var p = this.__data__, z = pt(p, f);\n return !(z < 0 || (z == p.length - 1 ? p.pop() : Je.call(p, z, 1), --this.size, 0));\n }, ye.prototype.get = function(f) {\n var p = this.__data__, z = pt(p, f);\n return z < 0 ? void 0 : p[z][1];\n }, ye.prototype.has = function(f) {\n return pt(this.__data__, f) > -1;\n }, ye.prototype.set = function(f, p) {\n var z = this.__data__, D = pt(z, f);\n return D < 0 ? (++this.size, z.push([f, p])) : z[D][1] = p, this;\n }, Be.prototype.clear = function() {\n this.size = 0, this.__data__ = {\n hash: new We(),\n map: new (Fe || ye)(),\n string: new We()\n };\n }, Be.prototype.delete = function(f) {\n var p = pe(this, f).delete(f);\n return this.size -= p ? 1 : 0, p;\n }, Be.prototype.get = function(f) {\n return pe(this, f).get(f);\n }, Be.prototype.has = function(f) {\n return pe(this, f).has(f);\n }, Be.prototype.set = function(f, p) {\n var z = pe(this, f), D = z.size;\n return z.set(f, p), this.size += z.size == D ? 0 : 1, this;\n }, vt.prototype.add = vt.prototype.push = function(f) {\n return this.__data__.set(f, n), this;\n }, vt.prototype.has = function(f) {\n return this.__data__.has(f);\n }, Ae.prototype.clear = function() {\n this.__data__ = new ye(), this.size = 0;\n }, Ae.prototype.delete = function(f) {\n var p = this.__data__, z = p.delete(f);\n return this.size = p.size, z;\n }, Ae.prototype.get = function(f) {\n return this.__data__.get(f);\n }, Ae.prototype.has = function(f) {\n return this.__data__.has(f);\n }, Ae.prototype.set = function(f, p) {\n var z = this.__data__;\n if (z instanceof ye) {\n var D = z.__data__;\n if (!Fe || D.length < 199) return D.push([f, p]), this.size = ++z.size, this;\n z = this.__data__ = new Be(D);\n }\n return z.set(f, p), this.size = z.size, this;\n };\n var te = zt ? function(f) {\n return f == null ? [] : (f = Object(f), (function(p, z) {\n for (var D = -1, W = p == null ? 0 : p.length, k = 0, J = []; ++D < W; ) {\n var Q = p[D];\n z(Q, D, p) && (J[k++] = Q);\n }\n return J;\n })(zt(f), function(p) {\n return Xe.call(f, p);\n }));\n } : function() {\n return [];\n }, ce = lt;\n function _e(f, p) {\n return !!(p = p ?? r) && (typeof f == \"number\" || E.test(f)) && f > -1 && f % 1 == 0 && f < p;\n }\n function le(f) {\n if (f != null) {\n try {\n return Me.call(f);\n } catch {\n }\n try {\n return f + \"\";\n } catch {\n }\n }\n return \"\";\n }\n function tt(f, p) {\n return f === p || f != f && p != p;\n }\n (Qe && ce(new Qe(new ArrayBuffer(1))) != x || Fe && ce(new Fe()) != d || ft && ce(ft.resolve()) != h || ht && ce(new ht()) != g || It && ce(new It()) != S) && (ce = function(f) {\n var p = lt(f), z = p == v ? f.constructor : void 0, D = z ? le(z) : \"\";\n if (D) switch (D) {\n case Ze:\n return x;\n case et:\n return d;\n case ct:\n return h;\n case Xt:\n return g;\n case $e:\n return S;\n }\n return p;\n });\n var ut = ee(/* @__PURE__ */ (function() {\n return arguments;\n })()) ? ee : function(f) {\n return Ct(f) && C.call(f, \"callee\") && !Xe.call(f, \"callee\");\n }, Re = Array.isArray, Ue = _t || function() {\n return !1;\n };\n function wt(f) {\n if (!qn(f)) return !1;\n var p = lt(f);\n return p == l || p == \"[object GeneratorFunction]\" || p == \"[object AsyncFunction]\" || p == \"[object Proxy]\";\n }\n function Gn(f) {\n return typeof f == \"number\" && f > -1 && f % 1 == 0 && f <= r;\n }\n function qn(f) {\n var p = typeof f;\n return f != null && (p == \"object\" || p == \"function\");\n }\n function Ct(f) {\n return f != null && typeof f == \"object\";\n }\n var Jn = $ ? /* @__PURE__ */ (function(f) {\n return function(p) {\n return f(p);\n };\n })($) : function(f) {\n return Ct(f) && Gn(f.length) && !!w[lt(f)];\n };\n function gi(f) {\n return (p = f) != null && Gn(p.length) && !wt(p) ? yn(f) : Ye(f);\n var p;\n }\n e.exports = function(f, p) {\n return ue(f, p);\n };\n})(_n, _n.exports)), _n.exports), Ri = Ft(Si);\nfunction sr(e, t, n) {\n return e[t] ? e[t][0] ? e[t][0][n] : e[t][n] : t === \"contentBoxSize\" ? e.contentRect[n === \"inlineSize\" ? \"width\" : \"height\"] : void 0;\n}\nfunction xi(e) {\n e === void 0 && (e = {});\n var t = e.onResize, n = window.React.useRef(void 0);\n n.current = t;\n var r = e.round || Math.round, i = window.React.useRef(), o = window.React.useState({\n width: void 0,\n height: void 0\n }), c = o[0], a = o[1], s = window.React.useRef(!1);\n window.React.useEffect(function() {\n return s.current = !1, function() {\n s.current = !0;\n };\n }, []);\n var l = window.React.useRef({\n width: void 0,\n height: void 0\n }), d = (function(u, v) {\n var h = window.React.useRef(null), m = window.React.useRef(null);\n m.current = v;\n var g = window.React.useRef(null);\n window.React.useEffect(function() {\n b();\n });\n var b = window.React.useCallback(function() {\n var y = g.current, S = m.current, R = y || (S ? S instanceof Element ? S : S.current : null);\n h.current && h.current.element === R && h.current.subscriber === u || (h.current && h.current.cleanup && h.current.cleanup(), h.current = {\n element: R,\n subscriber: u,\n cleanup: R ? u(R) : void 0\n });\n }, [u]);\n return window.React.useEffect(function() {\n return function() {\n h.current && h.current.cleanup && (h.current.cleanup(), h.current = null);\n };\n }, []), window.React.useCallback(function(y) {\n g.current = y, b();\n }, [b]);\n })(window.React.useCallback(function(u) {\n return i.current && i.current.box === e.box && i.current.round === r || (i.current = {\n box: e.box,\n round: r,\n instance: new ResizeObserver(function(v) {\n var h = v[0], m = e.box === \"border-box\" ? \"borderBoxSize\" : e.box === \"device-pixel-content-box\" ? \"devicePixelContentBoxSize\" : \"contentBoxSize\", g = sr(h, m, \"inlineSize\"), b = sr(h, m, \"blockSize\"), y = g ? r(g) : void 0, S = b ? r(b) : void 0;\n if (l.current.width !== y || l.current.height !== S) {\n var R = {\n width: y,\n height: S\n };\n l.current.width = y, l.current.height = S, n.current ? n.current(R) : s.current || a(R);\n }\n })\n }), i.current.instance.observe(u, {\n box: e.box\n }), function() {\n i.current && i.current.instance.unobserve(u);\n };\n }, [e.box, r]), e.ref);\n return window.React.useMemo(function() {\n return {\n ref: d,\n width: c.width,\n height: c.height\n };\n }, [d, c.width, c.height]);\n}\nvar zi = \"allotment-module_splitView__L-yRc\", _i = \"allotment-module_sashContainer__fzwJF\", Ii = \"allotment-module_splitViewContainer__rQnVa\", Tr = \"allotment-module_splitViewView__MGZ6O\", Di = \"allotment-module_vertical__WSwwa\", Ei = \"allotment-module_horizontal__7doS8\", Ci = \"allotment-module_separatorBorder__x-rDS\";\nlet Nt, Vr = !1, Pr = !1;\ntypeof navigator == \"object\" && (Nt = navigator.userAgent, Pr = Nt.indexOf(\"Macintosh\") >= 0, Vr = (Nt.indexOf(\"Macintosh\") >= 0 || Nt.indexOf(\"iPad\") >= 0 || Nt.indexOf(\"iPhone\") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0);\nconst jr = Vr, Oi = Pr, ar = typeof window < \"u\" && window.document !== void 0 && window.document.createElement !== void 0 ? window.React.useLayoutEffect : window.React.useEffect;\nclass Mi {\n constructor() {\n this._size = void 0;\n }\n getSize() {\n return this._size;\n }\n setSize(t) {\n this._size = t;\n }\n}\nfunction tn(e, t) {\n const n = e.length, r = n - t.length;\n return r >= 0 && e.slice(r, n) === t;\n}\nvar cr, lr = {\n exports: {}\n}, ur, dr, Ni = (cr || (cr = 1, (function(e) {\n var t = Object.prototype.hasOwnProperty, n = \"~\";\n function r() {\n }\n function i(s, l, d) {\n this.fn = s, this.context = l, this.once = d || !1;\n }\n function o(s, l, d, u, v) {\n if (typeof d != \"function\") throw new TypeError(\"The listener must be a function\");\n var h = new i(d, u || s, v), m = n ? n + l : l;\n return s._events[m] ? s._events[m].fn ? s._events[m] = [s._events[m], h] : s._events[m].push(h) : (s._events[m] = h, s._eventsCount++), s;\n }\n function c(s, l) {\n --s._eventsCount == 0 ? s._events = new r() : delete s._events[l];\n }\n function a() {\n this._events = new r(), this._eventsCount = 0;\n }\n Object.create && (r.prototype = /* @__PURE__ */ Object.create(null), new r().__proto__ || (n = !1)), a.prototype.eventNames = function() {\n var s, l, d = [];\n if (this._eventsCount === 0) return d;\n for (l in s = this._events) t.call(s, l) && d.push(n ? l.slice(1) : l);\n return Object.getOwnPropertySymbols ? d.concat(Object.getOwnPropertySymbols(s)) : d;\n }, a.prototype.listeners = function(s) {\n var l = n ? n + s : s, d = this._events[l];\n if (!d) return [];\n if (d.fn) return [d.fn];\n for (var u = 0, v = d.length, h = new Array(v); u < v; u++) h[u] = d[u].fn;\n return h;\n }, a.prototype.listenerCount = function(s) {\n var l = n ? n + s : s, d = this._events[l];\n return d ? d.fn ? 1 : d.length : 0;\n }, a.prototype.emit = function(s, l, d, u, v, h) {\n var m = n ? n + s : s;\n if (!this._events[m]) return !1;\n var g, b, y = this._events[m], S = arguments.length;\n if (y.fn) {\n switch (y.once && this.removeListener(s, y.fn, void 0, !0), S) {\n case 1:\n return y.fn.call(y.context), !0;\n case 2:\n return y.fn.call(y.context, l), !0;\n case 3:\n return y.fn.call(y.context, l, d), !0;\n case 4:\n return y.fn.call(y.context, l, d, u), !0;\n case 5:\n return y.fn.call(y.context, l, d, u, v), !0;\n case 6:\n return y.fn.call(y.context, l, d, u, v, h), !0;\n }\n for (b = 1, g = new Array(S - 1); b < S; b++) g[b - 1] = arguments[b];\n y.fn.apply(y.context, g);\n } else {\n var R, x = y.length;\n for (b = 0; b < x; b++) switch (y[b].once && this.removeListener(s, y[b].fn, void 0, !0), S) {\n case 1:\n y[b].fn.call(y[b].context);\n break;\n case 2:\n y[b].fn.call(y[b].context, l);\n break;\n case 3:\n y[b].fn.call(y[b].context, l, d);\n break;\n case 4:\n y[b].fn.call(y[b].context, l, d, u);\n break;\n default:\n if (!g) for (R = 1, g = new Array(S - 1); R < S; R++) g[R - 1] = arguments[R];\n y[b].fn.apply(y[b].context, g);\n }\n }\n return !0;\n }, a.prototype.on = function(s, l, d) {\n return o(this, s, l, d, !1);\n }, a.prototype.once = function(s, l, d) {\n return o(this, s, l, d, !0);\n }, a.prototype.removeListener = function(s, l, d, u) {\n var v = n ? n + s : s;\n if (!this._events[v]) return this;\n if (!l) return c(this, v), this;\n var h = this._events[v];\n if (h.fn) h.fn !== l || u && !h.once || d && h.context !== d || c(this, v);\n else {\n for (var m = 0, g = [], b = h.length; m < b; m++) (h[m].fn !== l || u && !h[m].once || d && h[m].context !== d) && g.push(h[m]);\n g.length ? this._events[v] = g.length === 1 ? g[0] : g : c(this, v);\n }\n return this;\n }, a.prototype.removeAllListeners = function(s) {\n var l;\n return s ? (l = n ? n + s : s, this._events[l] && c(this, l)) : (this._events = new r(), this._eventsCount = 0), this;\n }, a.prototype.off = a.prototype.removeListener, a.prototype.addListener = a.prototype.on, a.prefixed = n, a.EventEmitter = a, e.exports = a;\n})(lr)), lr.exports), kn = Ft(Ni);\nfunction fr(e, t) {\n const n = e.indexOf(t);\n n > -1 && (e.splice(n, 1), e.unshift(t));\n}\nfunction In(e, t) {\n const n = e.indexOf(t);\n n > -1 && (e.splice(n, 1), e.push(t));\n}\nfunction De(e, t, n = 1) {\n const r = Math.max(0, Math.ceil((t - e) / n)), i = new Array(r);\n let o = -1;\n for (; ++o < r; ) i[o] = e + o * n;\n return i;\n}\nvar Ai = Ft((function() {\n if (dr) return ur;\n dr = 1;\n var e = /^\\s+|\\s+$/g, t = /^[-+]0x[0-9a-f]+$/i, n = /^0b[01]+$/i, r = /^0o[0-7]+$/i, i = parseInt, o = typeof ot == \"object\" && ot && ot.Object === Object && ot, c = typeof self == \"object\" && self && self.Object === Object && self, a = o || c || Function(\"return this\")(), s = Object.prototype.toString, l = Math.max, d = Math.min, u = function() {\n return a.Date.now();\n };\n function v(m) {\n var g = typeof m;\n return !!m && (g == \"object\" || g == \"function\");\n }\n function h(m) {\n if (typeof m == \"number\") return m;\n if ((function(y) {\n return typeof y == \"symbol\" || /* @__PURE__ */ (function(S) {\n return !!S && typeof S == \"object\";\n })(y) && s.call(y) == \"[object Symbol]\";\n })(m)) return NaN;\n if (v(m)) {\n var g = typeof m.valueOf == \"function\" ? m.valueOf() : m;\n m = v(g) ? g + \"\" : g;\n }\n if (typeof m != \"string\") return m === 0 ? m : +m;\n m = m.replace(e, \"\");\n var b = n.test(m);\n return b || r.test(m) ? i(m.slice(2), b ? 2 : 8) : t.test(m) ? NaN : +m;\n }\n return ur = function(m, g, b) {\n var y, S, R, x, I, E, w = 0, _ = !1, T = !1, N = !0;\n if (typeof m != \"function\") throw new TypeError(\"Expected a function\");\n function j($) {\n var V = y, U = S;\n return y = S = void 0, w = $, x = m.apply(U, V);\n }\n function L($) {\n var V = $ - E;\n return E === void 0 || V >= g || V < 0 || T && $ - w >= R;\n }\n function A() {\n var $ = u();\n if (L($)) return F($);\n I = setTimeout(A, (function(V) {\n var U = g - (V - E);\n return T ? d(U, R - (V - w)) : U;\n })($));\n }\n function F($) {\n return I = void 0, N && y ? j($) : (y = S = void 0, x);\n }\n function P() {\n var $ = u(), V = L($);\n if (y = arguments, S = this, E = $, V) {\n if (I === void 0) return (function(U) {\n return w = U, I = setTimeout(A, g), _ ? j(U) : x;\n })(E);\n if (T) return I = setTimeout(A, g), j(E);\n }\n return I === void 0 && (I = setTimeout(A, g)), x;\n }\n return g = h(g) || 0, v(b) && (_ = !!b.leading, R = (T = \"maxWait\" in b) ? l(h(b.maxWait) || 0, g) : R, N = \"trailing\" in b ? !!b.trailing : N), P.cancel = function() {\n I !== void 0 && clearTimeout(I), w = 0, y = E = S = I = void 0;\n }, P.flush = function() {\n return I === void 0 ? x : F(u());\n }, P;\n };\n})()), Li = \"sash-module_sash__K-9lB\", Ti = \"sash-module_disabled__Hm-wx\", Vi = \"sash-module_mac__Jf6OJ\", hr = \"sash-module_vertical__pB-rs\", Pi = \"sash-module_minimum__-UKxp\", ji = \"sash-module_maximum__TCWxD\", vr = \"sash-module_horizontal__kFbiw\", Dn = \"sash-module_hover__80W6I\", En = \"sash-module_active__bJspD\";\nlet Oe = (function(e) {\n return e.Vertical = \"VERTICAL\", e.Horizontal = \"HORIZONTAL\", e;\n})({}), xe = (function(e) {\n return e.Disabled = \"DISABLED\", e.Minimum = \"MINIMUM\", e.Maximum = \"MAXIMUM\", e.Enabled = \"ENABLED\", e;\n})({}), kr = jr ? 20 : 8;\nconst Fr = new kn();\nclass pr extends kn {\n get state() {\n return this._state;\n }\n set state(t) {\n this._state !== t && (this.el.classList.toggle(Ti, t === xe.Disabled), this.el.classList.toggle(\"sash-disabled\", t === xe.Disabled), this.el.classList.toggle(Pi, t === xe.Minimum), this.el.classList.toggle(\"sash-minimum\", t === xe.Minimum), this.el.classList.toggle(ji, t === xe.Maximum), this.el.classList.toggle(\"sash-maximum\", t === xe.Maximum), this._state = t, this.emit(\"enablementChange\", t));\n }\n constructor(t, n, r) {\n var i;\n super(), this.el = void 0, this.layoutProvider = void 0, this.orientation = void 0, this.size = void 0, this.hoverDelay = 300, this.hoverDelayer = Ai((o) => o.classList.add(\"sash-hover\", Dn), this.hoverDelay), this._state = xe.Enabled, this.onPointerStart = (o) => {\n const c = o.pageX, a = o.pageY, s = {\n startX: c,\n currentX: c,\n startY: a,\n currentY: a\n };\n this.el.classList.add(\"sash-active\", En), this.emit(\"start\", s), this.el.setPointerCapture(o.pointerId);\n const l = (u) => {\n u.preventDefault();\n const v = {\n startX: c,\n currentX: u.pageX,\n startY: a,\n currentY: u.pageY\n };\n this.emit(\"change\", v);\n }, d = (u) => {\n u.preventDefault(), this.el.classList.remove(\"sash-active\", En), this.hoverDelayer.cancel(), this.emit(\"end\"), this.el.releasePointerCapture(u.pointerId), window.removeEventListener(\"pointermove\", l), window.removeEventListener(\"pointerup\", d);\n };\n window.addEventListener(\"pointermove\", l), window.addEventListener(\"pointerup\", d);\n }, this.onPointerDoublePress = () => {\n this.emit(\"reset\");\n }, this.onMouseEnter = () => {\n this.el.classList.contains(En) ? (this.hoverDelayer.cancel(), this.el.classList.add(\"sash-hover\", Dn)) : this.hoverDelayer(this.el);\n }, this.onMouseLeave = () => {\n this.hoverDelayer.cancel(), this.el.classList.remove(\"sash-hover\", Dn);\n }, this.el = document.createElement(\"div\"), this.el.classList.add(\"sash\", Li), this.el.dataset.testid = \"sash\", t.append(this.el), Oi && this.el.classList.add(\"sash-mac\", Vi), this.el.addEventListener(\"pointerdown\", this.onPointerStart), this.el.addEventListener(\"dblclick\", this.onPointerDoublePress), this.el.addEventListener(\"mouseenter\", this.onMouseEnter), this.el.addEventListener(\"mouseleave\", this.onMouseLeave), typeof r.size == \"number\" ? (this.size = r.size, r.orientation === Oe.Vertical ? this.el.style.width = `${this.size}px` : this.el.style.height = `${this.size}px`) : (this.size = kr, Fr.on(\"onDidChangeGlobalSize\", (o) => {\n this.size = o, this.layout();\n })), this.layoutProvider = n, this.orientation = (i = r.orientation) != null ? i : Oe.Vertical, this.orientation === Oe.Horizontal ? (this.el.classList.add(\"sash-horizontal\", vr), this.el.classList.remove(\"sash-vertical\", hr)) : (this.el.classList.remove(\"sash-horizontal\", vr), this.el.classList.add(\"sash-vertical\", hr)), this.layout();\n }\n layout() {\n if (this.orientation === Oe.Vertical) {\n const t = this.layoutProvider;\n this.el.style.left = t.getVerticalSashLeft(this) - this.size / 2 + \"px\", t.getVerticalSashTop && (this.el.style.top = t.getVerticalSashTop(this) + \"px\"), t.getVerticalSashHeight && (this.el.style.height = t.getVerticalSashHeight(this) + \"px\");\n } else {\n const t = this.layoutProvider;\n this.el.style.top = t.getHorizontalSashTop(this) - this.size / 2 + \"px\", t.getHorizontalSashLeft && (this.el.style.left = t.getHorizontalSashLeft(this) + \"px\"), t.getHorizontalSashWidth && (this.el.style.width = t.getHorizontalSashWidth(this) + \"px\");\n }\n }\n dispose() {\n this.el.removeEventListener(\"pointerdown\", this.onPointerStart), this.el.removeEventListener(\"dblclick\", this.onPointerDoublePress), this.el.removeEventListener(\"mouseenter\", this.onMouseEnter), this.el.removeEventListener(\"mouseleave\", () => this.onMouseLeave), this.el.remove();\n }\n}\nlet an;\nvar Cn;\n(Cn = an || (an = {})).Distribute = {\n type: \"distribute\"\n}, Cn.Split = function(e) {\n return {\n type: \"split\",\n index: e\n };\n}, Cn.Invisible = function(e) {\n return {\n type: \"invisible\",\n cachedVisibleSize: e\n };\n};\nlet Ee = (function(e) {\n return e.Normal = \"NORMAL\", e.Low = \"LOW\", e.High = \"HIGH\", e;\n})({});\nclass $r {\n constructor(t, n, r) {\n this.container = void 0, this.view = void 0, this._size = void 0, this._cachedVisibleSize = void 0, this.container = t, this.view = n, this.container.classList.add(\"split-view-view\", Tr), this.container.dataset.testid = \"split-view-view\", typeof r == \"number\" ? (this._size = r, this._cachedVisibleSize = void 0, t.classList.add(\"split-view-view-visible\")) : (this._size = 0, this._cachedVisibleSize = r.cachedVisibleSize);\n }\n set size(t) {\n this._size = t;\n }\n get size() {\n return this._size;\n }\n get priority() {\n return this.view.priority;\n }\n get snap() {\n return !!this.view.snap;\n }\n get cachedVisibleSize() {\n return this._cachedVisibleSize;\n }\n get visible() {\n return this._cachedVisibleSize === void 0;\n }\n setVisible(t, n) {\n t !== this.visible && (t ? (this.size = Te(this._cachedVisibleSize, this.viewMinimumSize, this.viewMaximumSize), this._cachedVisibleSize = void 0) : (this._cachedVisibleSize = typeof n == \"number\" ? n : this.size, this.size = 0), this.container.classList.toggle(\"split-view-view-visible\", t), this.view.setVisible && this.view.setVisible(t));\n }\n get minimumSize() {\n return this.visible ? this.view.minimumSize : 0;\n }\n get viewMinimumSize() {\n return this.view.minimumSize;\n }\n get maximumSize() {\n return this.visible ? this.view.maximumSize : 0;\n }\n get viewMaximumSize() {\n return this.view.maximumSize;\n }\n set enabled(t) {\n this.container.style.pointerEvents = t ? \"\" : \"none\";\n }\n layout(t) {\n this.layoutContainer(t), this.view.layout(this.size, t);\n }\n}\nclass ki extends $r {\n layoutContainer(t) {\n this.container.style.left = `${t}px`, this.container.style.width = `${this.size}px`;\n }\n}\nclass Fi extends $r {\n layoutContainer(t) {\n this.container.style.top = `${t}px`, this.container.style.height = `${this.size}px`;\n }\n}\nclass $i extends kn {\n get startSnappingEnabled() {\n return this._startSnappingEnabled;\n }\n set startSnappingEnabled(t) {\n this._startSnappingEnabled !== t && (this._startSnappingEnabled = t, this.updateSashEnablement());\n }\n get endSnappingEnabled() {\n return this._endSnappingEnabled;\n }\n set endSnappingEnabled(t) {\n this._endSnappingEnabled !== t && (this._endSnappingEnabled = t, this.updateSashEnablement());\n }\n constructor(t, n = {}, r, i, o) {\n var c, a;\n if (super(), this.onDidChange = void 0, this.onDidDragStart = void 0, this.onDidDragEnd = void 0, this.orientation = void 0, this.sashContainer = void 0, this.size = 0, this.contentSize = 0, this.proportions = void 0, this.viewItems = [], this.sashItems = [], this.sashDragState = void 0, this.proportionalLayout = void 0, this.getSashOrthogonalSize = void 0, this._startSnappingEnabled = !0, this._endSnappingEnabled = !0, this.onSashEnd = (s) => {\n this.emit(\"sashchange\", s), this.saveProportions();\n for (const l of this.viewItems) l.enabled = !0;\n }, this.orientation = (c = n.orientation) != null ? c : Oe.Vertical, this.proportionalLayout = (a = n.proportionalLayout) != null ? a : !0, this.getSashOrthogonalSize = n.getSashOrthogonalSize, r && (this.onDidChange = r), i && (this.onDidDragStart = i), o && (this.onDidDragEnd = o), this.sashContainer = document.createElement(\"div\"), this.sashContainer.classList.add(\"sash-container\", _i), t.prepend(this.sashContainer), n.descriptor) {\n this.size = n.descriptor.size;\n for (const [s, l] of n.descriptor.views.entries()) {\n const d = l.size, u = l.container, v = l.view;\n this.addView(u, v, d, s, !0);\n }\n this.contentSize = this.viewItems.reduce((s, l) => s + l.size, 0), this.saveProportions();\n }\n }\n addView(t, n, r, i = this.viewItems.length, o) {\n let c;\n c = typeof r == \"number\" ? r : r.type === \"split\" ? this.getViewSize(r.index) / 2 : r.type === \"invisible\" ? {\n cachedVisibleSize: r.cachedVisibleSize\n } : n.minimumSize;\n const a = this.orientation === Oe.Vertical ? new Fi(t, n, c) : new ki(t, n, c);\n if (this.viewItems.splice(i, 0, a), this.viewItems.length > 1) {\n const s = this.orientation === Oe.Vertical ? new pr(this.sashContainer, {\n getHorizontalSashTop: (u) => this.getSashPosition(u),\n getHorizontalSashWidth: this.getSashOrthogonalSize\n }, {\n orientation: Oe.Horizontal\n }) : new pr(this.sashContainer, {\n getVerticalSashLeft: (u) => this.getSashPosition(u),\n getVerticalSashHeight: this.getSashOrthogonalSize\n }, {\n orientation: Oe.Vertical\n }), l = this.orientation === Oe.Vertical ? (u) => ({\n sash: s,\n start: u.startY,\n current: u.currentY\n }) : (u) => ({\n sash: s,\n start: u.startX,\n current: u.currentX\n });\n s.on(\"start\", (u) => {\n var v;\n this.emit(\"sashDragStart\"), this.onSashStart(l(u));\n const h = this.viewItems.map((m) => m.size);\n (v = this.onDidDragStart) == null || v.call(this, h);\n }), s.on(\"change\", (u) => this.onSashChange(l(u))), s.on(\"end\", () => {\n var u;\n this.emit(\"sashDragEnd\"), this.onSashEnd(this.sashItems.findIndex((h) => h.sash === s));\n const v = this.viewItems.map((h) => h.size);\n (u = this.onDidDragEnd) == null || u.call(this, v);\n }), s.on(\"reset\", () => {\n const u = this.sashItems.findIndex((b) => b.sash === s), v = De(u, -1, -1), h = De(u + 1, this.viewItems.length), m = this.findFirstSnapIndex(v), g = this.findFirstSnapIndex(h);\n (typeof m != \"number\" || this.viewItems[m].visible) && (typeof g != \"number\" || this.viewItems[g].visible) && this.emit(\"sashreset\", u);\n });\n const d = {\n sash: s\n };\n this.sashItems.splice(i - 1, 0, d);\n }\n o || this.relayout(), o || typeof r == \"number\" || r.type !== \"distribute\" || this.distributeViewSizes();\n }\n removeView(t, n) {\n if (t < 0 || t >= this.viewItems.length) throw new Error(\"Index out of bounds\");\n const r = this.viewItems.splice(t, 1)[0].view;\n if (this.viewItems.length >= 1) {\n const i = Math.max(t - 1, 0);\n this.sashItems.splice(i, 1)[0].sash.dispose();\n }\n return this.relayout(), n && n.type === \"distribute\" && this.distributeViewSizes(), r;\n }\n moveView(t, n, r) {\n const i = this.getViewCachedVisibleSize(n), o = i === void 0 ? this.getViewSize(n) : an.Invisible(i), c = this.removeView(n);\n this.addView(t, c, o, r);\n }\n getViewCachedVisibleSize(t) {\n if (t < 0 || t >= this.viewItems.length) throw new Error(\"Index out of bounds\");\n return this.viewItems[t].cachedVisibleSize;\n }\n layout(t = this.size) {\n const n = Math.max(this.size, this.contentSize);\n if (this.size = t, this.proportions) for (let r = 0; r < this.viewItems.length; r++) {\n const i = this.viewItems[r];\n i.size = Te(Math.round(this.proportions[r] * t), i.minimumSize, i.maximumSize);\n }\n else {\n const r = De(0, this.viewItems.length), i = r.filter((c) => this.viewItems[c].priority === Ee.Low), o = r.filter((c) => this.viewItems[c].priority === Ee.High);\n this.resize(this.viewItems.length - 1, t - n, void 0, i, o);\n }\n this.distributeEmptySpace(), this.layoutViews();\n }\n resizeView(t, n) {\n if (t < 0 || t >= this.viewItems.length) return;\n const r = De(0, this.viewItems.length).filter((a) => a !== t), i = [...r.filter((a) => this.viewItems[a].priority === Ee.Low), t], o = r.filter((a) => this.viewItems[a].priority === Ee.High), c = this.viewItems[t];\n n = Math.round(n), n = Te(n, c.minimumSize, Math.min(c.maximumSize, this.size)), c.size = n, this.relayout(i, o);\n }\n resizeViews(t) {\n for (let n = 0; n < t.length; n++) {\n const r = this.viewItems[n];\n let i = t[n];\n i = Math.round(i), i = Te(i, r.minimumSize, Math.min(r.maximumSize, this.size)), r.size = i;\n }\n this.contentSize = this.viewItems.reduce((n, r) => n + r.size, 0), this.saveProportions(), this.layout(this.size);\n }\n getViewSize(t) {\n return t < 0 || t >= this.viewItems.length ? -1 : this.viewItems[t].size;\n }\n isViewVisible(t) {\n if (t < 0 || t >= this.viewItems.length) throw new Error(\"Index out of bounds\");\n return this.viewItems[t].visible;\n }\n setViewVisible(t, n) {\n if (t < 0 || t >= this.viewItems.length) throw new Error(\"Index out of bounds\");\n this.viewItems[t].setVisible(n), this.distributeEmptySpace(t), this.layoutViews(), this.saveProportions();\n }\n distributeViewSizes() {\n const t = [];\n let n = 0;\n for (const a of this.viewItems) a.maximumSize - a.minimumSize > 0 && (t.push(a), n += a.size);\n const r = Math.floor(n / t.length);\n for (const a of t) a.size = Te(r, a.minimumSize, a.maximumSize);\n const i = De(0, this.viewItems.length), o = i.filter((a) => this.viewItems[a].priority === Ee.Low), c = i.filter((a) => this.viewItems[a].priority === Ee.High);\n this.relayout(o, c);\n }\n dispose() {\n this.sashItems.forEach((t) => t.sash.dispose()), this.sashItems = [], this.sashContainer.remove();\n }\n relayout(t, n) {\n const r = this.viewItems.reduce((i, o) => i + o.size, 0);\n this.resize(this.viewItems.length - 1, this.size - r, void 0, t, n), this.distributeEmptySpace(), this.layoutViews(), this.saveProportions();\n }\n onSashStart({\n sash: t,\n start: n\n }) {\n const r = this.sashItems.findIndex((i) => i.sash === t);\n ((i) => {\n const o = this.viewItems.map((S) => S.size);\n let c, a, s = Number.NEGATIVE_INFINITY, l = Number.POSITIVE_INFINITY;\n const d = De(r, -1, -1), u = De(r + 1, this.viewItems.length), v = d.reduce((S, R) => S + (this.viewItems[R].minimumSize - o[R]), 0), h = d.reduce((S, R) => S + (this.viewItems[R].viewMaximumSize - o[R]), 0), m = u.length === 0 ? Number.POSITIVE_INFINITY : u.reduce((S, R) => S + (o[R] - this.viewItems[R].minimumSize), 0), g = u.length === 0 ? Number.NEGATIVE_INFINITY : u.reduce((S, R) => S + (o[R] - this.viewItems[R].viewMaximumSize), 0);\n s = Math.max(v, g), l = Math.min(m, h);\n const b = this.findFirstSnapIndex(d), y = this.findFirstSnapIndex(u);\n if (typeof b == \"number\") {\n const S = this.viewItems[b], R = Math.floor(S.viewMinimumSize / 2);\n c = {\n index: b,\n limitDelta: S.visible ? s - R : s + R,\n size: S.size\n };\n }\n if (typeof y == \"number\") {\n const S = this.viewItems[y], R = Math.floor(S.viewMinimumSize / 2);\n a = {\n index: y,\n limitDelta: S.visible ? l + R : l - R,\n size: S.size\n };\n }\n this.sashDragState = {\n start: i,\n current: i,\n index: r,\n sizes: o,\n minDelta: s,\n maxDelta: l,\n snapBefore: c,\n snapAfter: a\n };\n })(n);\n }\n onSashChange({\n current: t\n }) {\n const {\n index: n,\n start: r,\n sizes: i,\n minDelta: o,\n maxDelta: c,\n snapBefore: a,\n snapAfter: s\n } = this.sashDragState;\n this.sashDragState.current = t;\n const l = t - r;\n this.resize(n, l, i, void 0, void 0, o, c, a, s), this.distributeEmptySpace(), this.layoutViews();\n }\n getSashPosition(t) {\n let n = 0;\n for (let r = 0; r < this.sashItems.length; r++) if (n += this.viewItems[r].size, this.sashItems[r].sash === t) return n;\n return 0;\n }\n resize(t, n, r = this.viewItems.map((d) => d.size), i, o, c = Number.NEGATIVE_INFINITY, a = Number.POSITIVE_INFINITY, s, l) {\n if (t < 0 || t >= this.viewItems.length) return 0;\n const d = De(t, -1, -1), u = De(t + 1, this.viewItems.length);\n if (o) for (const w of o) fr(d, w), fr(u, w);\n if (i) for (const w of i) In(d, w), In(u, w);\n const v = d.map((w) => this.viewItems[w]), h = d.map((w) => r[w]), m = u.map((w) => this.viewItems[w]), g = u.map((w) => r[w]), b = d.reduce((w, _) => w + (this.viewItems[_].minimumSize - r[_]), 0), y = d.reduce((w, _) => w + (this.viewItems[_].maximumSize - r[_]), 0), S = u.length === 0 ? Number.POSITIVE_INFINITY : u.reduce((w, _) => w + (r[_] - this.viewItems[_].minimumSize), 0), R = u.length === 0 ? Number.NEGATIVE_INFINITY : u.reduce((w, _) => w + (r[_] - this.viewItems[_].maximumSize), 0), x = Math.max(b, R, c), I = Math.min(S, y, a);\n let E = !1;\n if (s) {\n const w = this.viewItems[s.index], _ = n >= s.limitDelta;\n E = _ !== w.visible, w.setVisible(_, s.size);\n }\n if (!E && l) {\n const w = this.viewItems[l.index], _ = n < l.limitDelta;\n E = _ !== w.visible, w.setVisible(_, l.size);\n }\n if (E) return this.resize(t, n, r, i, o, c, a);\n for (let w = 0, _ = n = Te(n, x, I); w < v.length; w++) {\n const T = v[w], N = Te(h[w] + _, T.minimumSize, T.maximumSize);\n _ -= N - h[w], T.size = N;\n }\n for (let w = 0, _ = n; w < m.length; w++) {\n const T = m[w], N = Te(g[w] - _, T.minimumSize, T.maximumSize);\n _ += N - g[w], T.size = N;\n }\n return n;\n }\n distributeEmptySpace(t) {\n const n = this.viewItems.reduce((l, d) => l + d.size, 0);\n let r = this.size - n;\n const i = De(0, this.viewItems.length), o = [], c = i.filter((l) => this.viewItems[l].priority === Ee.Low), a = i.filter((l) => this.viewItems[l].priority === Ee.Normal), s = i.filter((l) => this.viewItems[l].priority === Ee.High);\n o.push(...s, ...a, ...c), typeof t == \"number\" && In(o, t);\n for (let l = 0; r !== 0 && l < o.length; l++) {\n const d = this.viewItems[o[l]], u = Te(d.size + r, d.minimumSize, d.maximumSize);\n r -= u - d.size, d.size = u;\n }\n }\n layoutViews() {\n var t;\n this.contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n let n = 0;\n for (const r of this.viewItems) r.layout(n), n += r.size;\n (t = this.onDidChange) != null && t.call(this, this.viewItems.map((r) => r.size)), this.sashItems.forEach((r) => r.sash.layout()), this.updateSashEnablement();\n }\n saveProportions() {\n this.proportionalLayout && this.contentSize > 0 && (this.proportions = this.viewItems.map((t) => t.size / this.contentSize));\n }\n updateSashEnablement() {\n let t = !1;\n const n = this.viewItems.map((s) => t = s.size - s.minimumSize > 0 || t);\n t = !1;\n const r = this.viewItems.map((s) => t = s.maximumSize - s.size > 0 || t), i = [...this.viewItems].reverse();\n t = !1;\n const o = i.map((s) => t = s.size - s.minimumSize > 0 || t).reverse();\n t = !1;\n const c = i.map((s) => t = s.maximumSize - s.size > 0 || t).reverse();\n let a = 0;\n for (let s = 0; s < this.sashItems.length; s++) {\n const {\n sash: l\n } = this.sashItems[s];\n a += this.viewItems[s].size;\n const d = !(n[s] && c[s + 1]), u = !(r[s] && o[s + 1]);\n if (d && u) {\n const v = De(s, -1, -1), h = De(s + 1, this.viewItems.length), m = this.findFirstSnapIndex(v), g = this.findFirstSnapIndex(h), b = typeof m == \"number\" && !this.viewItems[m].visible, y = typeof g == \"number\" && !this.viewItems[g].visible;\n b && o[s] && (a > 0 || this.startSnappingEnabled) ? l.state = xe.Minimum : y && n[s] && (a < this.contentSize || this.endSnappingEnabled) ? l.state = xe.Maximum : l.state = xe.Disabled;\n } else l.state = d && !u ? xe.Minimum : !d && u ? xe.Maximum : xe.Enabled;\n }\n }\n findFirstSnapIndex(t) {\n for (const n of t) {\n const r = this.viewItems[n];\n if (r.visible && r.snap) return n;\n }\n for (const n of t) {\n const r = this.viewItems[n];\n if (r.visible && r.maximumSize - r.minimumSize > 0) return;\n if (!r.visible && r.snap) return n;\n }\n }\n}\nclass bt {\n constructor(t) {\n this.size = void 0, this.size = t;\n }\n getPreferredSize() {\n return this.size;\n }\n}\nclass wr {\n constructor(t, n) {\n this.proportion = void 0, this.layoutService = void 0, this.proportion = t, this.layoutService = n;\n }\n getPreferredSize() {\n return this.proportion * this.layoutService.getSize();\n }\n}\nclass nn {\n getPreferredSize() {\n }\n}\nclass gr {\n get preferredSize() {\n return this.layoutStrategy.getPreferredSize();\n }\n set preferredSize(t) {\n if (typeof t == \"number\") this.layoutStrategy = new bt(t);\n else if (typeof t == \"string\") {\n const n = t.trim();\n if (tn(n, \"%\")) {\n const r = Number(n.slice(0, -1)) / 100;\n this.layoutStrategy = new wr(r, this.layoutService);\n } else if (tn(n, \"px\")) {\n const r = Number(n.slice(0, -2)) / 100;\n this.layoutStrategy = new bt(r);\n } else if (typeof Number.parseFloat(n) == \"number\") {\n const r = Number.parseFloat(n);\n this.layoutStrategy = new bt(r);\n } else this.layoutStrategy = new nn();\n } else this.layoutStrategy = new nn();\n }\n constructor(t, n) {\n var r;\n if (this.minimumSize = 0, this.maximumSize = Number.POSITIVE_INFINITY, this.element = void 0, this.priority = void 0, this.snap = void 0, this.layoutService = void 0, this.layoutStrategy = void 0, this.layoutService = t, this.element = n.element, this.minimumSize = typeof n.minimumSize == \"number\" ? n.minimumSize : 30, this.maximumSize = typeof n.maximumSize == \"number\" ? n.maximumSize : Number.POSITIVE_INFINITY, typeof n.preferredSize == \"number\") this.layoutStrategy = new bt(n.preferredSize);\n else if (typeof n.preferredSize == \"string\") {\n const i = n.preferredSize.trim();\n if (tn(i, \"%\")) {\n const o = Number(i.slice(0, -1)) / 100;\n this.layoutStrategy = new wr(o, this.layoutService);\n } else if (tn(i, \"px\")) {\n const o = Number(i.slice(0, -2));\n this.layoutStrategy = new bt(o);\n } else if (typeof Number.parseFloat(i) == \"number\") {\n const o = Number.parseFloat(i);\n this.layoutStrategy = new bt(o);\n } else this.layoutStrategy = new nn();\n } else this.layoutStrategy = new nn();\n this.priority = (r = n.priority) != null ? r : Ee.Normal, this.snap = typeof n.snap == \"boolean\" && n.snap;\n }\n layout(t) {\n }\n}\nfunction mr(e) {\n return e.minSize !== void 0 || e.maxSize !== void 0 || e.preferredSize !== void 0 || e.priority !== void 0 || e.visible !== void 0;\n}\nconst Fn = window.React.forwardRef(({\n className: e,\n children: t\n}, n) => window.React.createElement(\"div\", {\n ref: n,\n className: Tn(\"split-view-view\", Tr, e)\n}, t));\nFn.displayName = \"Allotment.Pane\";\nconst Br = window.React.forwardRef(({\n children: e,\n className: t,\n id: n,\n maxSize: r = 1 / 0,\n minSize: i = 30,\n proportionalLayout: o = !0,\n separator: c = !0,\n sizes: a,\n defaultSizes: s = a,\n snap: l = !1,\n vertical: d = !1,\n onChange: u,\n onReset: v,\n onVisibleChange: h,\n onDragStart: m,\n onDragEnd: g\n}, b) => {\n const y = window.React.useRef(null), S = window.React.useRef([]), R = window.React.useRef(/* @__PURE__ */ new Map()), x = window.React.useRef(null), I = window.React.useRef(/* @__PURE__ */ new Map()), E = window.React.useRef(new Mi()), w = window.React.useRef([]), [_, T] = window.React.useState(!1), N = window.React.useMemo(() => window.React.Children.toArray(e).filter(window.React.isValidElement), [e]), j = window.React.useCallback((L) => {\n var A, F;\n const P = (A = w.current) == null ? void 0 : A[L];\n return typeof (P == null ? void 0 : P.preferredSize) == \"number\" && ((F = x.current) != null && F.resizeView(L, Math.round(P.preferredSize)), !0);\n }, []);\n return window.React.useImperativeHandle(b, () => ({\n reset: () => {\n if (v) v();\n else {\n var L;\n (L = x.current) == null || L.distributeViewSizes();\n for (let A = 0; A < w.current.length; A++) j(A);\n }\n },\n resize: (L) => {\n var A;\n (A = x.current) == null || A.resizeViews(L);\n }\n })), ar(() => {\n let L = !0;\n s && I.current.size !== s.length && (L = !1, console.warn(`Expected ${s.length} children based on defaultSizes but found ${I.current.size}`)), L && s && (S.current = N.map((P) => P.key));\n const A = At({\n orientation: d ? Oe.Vertical : Oe.Horizontal,\n proportionalLayout: o\n }, L && s && {\n descriptor: {\n size: s.reduce((P, $) => P + $, 0),\n views: s.map((P, $) => {\n var V, U, se, me;\n const G = R.current.get(S.current[$]), q = new gr(E.current, At({\n element: document.createElement(\"div\"),\n minimumSize: (V = G == null ? void 0 : G.minSize) != null ? V : i,\n maximumSize: (U = G == null ? void 0 : G.maxSize) != null ? U : r,\n priority: (se = G == null ? void 0 : G.priority) != null ? se : Ee.Normal\n }, (G == null ? void 0 : G.preferredSize) && {\n preferredSize: G == null ? void 0 : G.preferredSize\n }, {\n snap: (me = G == null ? void 0 : G.snap) != null ? me : l\n }));\n return w.current.push(q), {\n container: [...I.current.values()][$],\n size: P,\n view: q\n };\n })\n }\n });\n x.current = new $i(y.current, A, u, m, g), x.current.on(\"sashDragStart\", () => {\n var P;\n (P = y.current) == null || P.classList.add(\"split-view-sash-dragging\");\n }), x.current.on(\"sashDragEnd\", () => {\n var P;\n (P = y.current) == null || P.classList.remove(\"split-view-sash-dragging\");\n }), x.current.on(\"sashchange\", (P) => {\n if (h && x.current) {\n const $ = N.map((V) => V.key);\n for (let V = 0; V < $.length; V++) {\n const U = R.current.get($[V]);\n (U == null ? void 0 : U.visible) !== void 0 && U.visible !== x.current.isViewVisible(V) && h(V, x.current.isViewVisible(V));\n }\n }\n }), x.current.on(\"sashreset\", (P) => {\n if (v) v();\n else {\n var $;\n if (j(P) || j(P + 1)) return;\n ($ = x.current) == null || $.distributeViewSizes();\n }\n });\n const F = x.current;\n return () => {\n F.dispose();\n };\n }, []), ar(() => {\n if (_) {\n const K = N.map((C) => C.key), ae = [...S.current], fe = K.filter((C) => !S.current.includes(C)), Z = K.filter((C) => S.current.includes(C)), Me = S.current.map((C) => !K.includes(C));\n for (let C = Me.length - 1; C >= 0; C--) {\n var L;\n Me[C] && ((L = x.current) != null && L.removeView(C), ae.splice(C, 1), w.current.splice(C, 1));\n }\n for (const C of fe) {\n var A, F, P, $, V;\n const M = R.current.get(C), O = new gr(E.current, At({\n element: document.createElement(\"div\"),\n minimumSize: (A = M == null ? void 0 : M.minSize) != null ? A : i,\n maximumSize: (F = M == null ? void 0 : M.maxSize) != null ? F : r,\n priority: (P = M == null ? void 0 : M.priority) != null ? P : Ee.Normal\n }, (M == null ? void 0 : M.preferredSize) && {\n preferredSize: M == null ? void 0 : M.preferredSize\n }, {\n snap: ($ = M == null ? void 0 : M.snap) != null ? $ : l\n }));\n (V = x.current) != null && V.addView(I.current.get(C), O, an.Distribute, K.findIndex((H) => H === C)), ae.splice(K.findIndex((H) => H === C), 0, C), w.current.splice(K.findIndex((H) => H === C), 0, O);\n }\n for (; !Ri(K, ae); ) for (const [C, M] of K.entries()) {\n const O = ae.findIndex((H) => H === M);\n if (O !== C) {\n var U;\n (U = x.current) == null || U.moveView(I.current.get(M), O, C);\n const H = ae[O];\n ae.splice(O, 1), ae.splice(C, 0, H);\n break;\n }\n }\n for (const C of fe) {\n var se;\n const M = K.findIndex((H) => H === C), O = w.current[M].preferredSize;\n O !== void 0 && ((se = x.current) == null || se.resizeView(M, O));\n }\n for (const C of [...fe, ...Z]) {\n var me, G;\n const M = R.current.get(C), O = K.findIndex((H) => H === C);\n M && mr(M) && M.visible !== void 0 && ((me = x.current) == null ? void 0 : me.isViewVisible(O)) !== M.visible && ((G = x.current) == null || G.setViewVisible(O, M.visible));\n }\n for (const C of Z) {\n const M = R.current.get(C), O = K.findIndex((H) => H === C);\n if (M && mr(M)) {\n var q;\n M.preferredSize !== void 0 && w.current[O].preferredSize !== M.preferredSize && (w.current[O].preferredSize = M.preferredSize);\n let H = !1;\n M.minSize !== void 0 && w.current[O].minimumSize !== M.minSize && (w.current[O].minimumSize = M.minSize, H = !0), M.maxSize !== void 0 && w.current[O].maximumSize !== M.maxSize && (w.current[O].maximumSize = M.maxSize, H = !0), H && ((q = x.current) == null || q.layout());\n }\n }\n (fe.length > 0 || Me.length > 0) && (S.current = K);\n }\n }, [N, _, r, i, l]), window.React.useEffect(() => {\n x.current && (x.current.onDidChange = u);\n }, [u]), window.React.useEffect(() => {\n x.current && (x.current.onDidDragStart = m);\n }, [m]), window.React.useEffect(() => {\n x.current && (x.current.onDidDragEnd = g);\n }, [g]), xi({\n ref: y,\n onResize: ({\n width: L,\n height: A\n }) => {\n var F;\n L && A && ((F = x.current) != null && F.layout(d ? A : L), E.current.setSize(d ? A : L), T(!0));\n }\n }), window.React.useEffect(() => {\n jr && Bi(20);\n }, []), window.React.createElement(\"div\", {\n ref: y,\n className: Tn(\"split-view\", d ? \"split-view-vertical\" : \"split-view-horizontal\", {\n \"split-view-separator-border\": c\n }, zi, d ? Di : Ei, {\n [Ci]: c\n }, t),\n id: n\n }, window.React.createElement(\"div\", {\n className: Tn(\"split-view-container\", Ii)\n }, window.React.Children.toArray(e).map((L) => {\n if (!window.React.isValidElement(L)) return null;\n const A = L.key;\n return L.type.displayName === \"Allotment.Pane\" ? (R.current.set(A, L.props), window.React.cloneElement(L, {\n key: A,\n ref: (F) => {\n const P = L.ref;\n P && (P.current = F), F ? I.current.set(A, F) : I.current.delete(A);\n }\n })) : window.React.createElement(Fn, {\n key: A,\n ref: (F) => {\n F ? I.current.set(A, F) : I.current.delete(A);\n }\n }, L);\n })));\n});\nfunction Bi(e) {\n const t = Te(e, 4, 20), n = Te(e, 1, 8);\n document.documentElement.style.setProperty(\"--sash-size\", t + \"px\"), document.documentElement.style.setProperty(\"--sash-hover-size\", n + \"px\"), (function(r) {\n kr = r, Fr.emit(\"onDidChangeGlobalSize\", r);\n })(t);\n}\nBr.displayName = \"Allotment\";\nvar Hs = Object.assign(Br, {\n Pane: Fn\n});\nfunction Yi() {\n for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)\n t[n] = arguments[n];\n return window.React.useMemo(\n () => (r) => {\n t.forEach((i) => i(r));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n t\n );\n}\nconst vn = typeof window < \"u\" && typeof window.document < \"u\" && typeof window.document.createElement < \"u\";\nfunction St(e) {\n const t = Object.prototype.toString.call(e);\n return t === \"[object Window]\" || // In Electron context the Window object serializes to [object global]\n t === \"[object global]\";\n}\nfunction $n(e) {\n return \"nodeType\" in e;\n}\nfunction ge(e) {\n var t, n;\n return e ? St(e) ? e : $n(e) && (t = (n = e.ownerDocument) == null ? void 0 : n.defaultView) != null ? t : window : window;\n}\nfunction Bn(e) {\n const {\n Document: t\n } = ge(e);\n return e instanceof t;\n}\nfunction $t(e) {\n return St(e) ? !1 : e instanceof ge(e).HTMLElement;\n}\nfunction Yr(e) {\n return e instanceof ge(e).SVGElement;\n}\nfunction Rt(e) {\n return e ? St(e) ? e.document : $n(e) ? Bn(e) ? e : $t(e) || Yr(e) ? e.ownerDocument : document : document : document;\n}\nconst Ve = vn ? window.React.useLayoutEffect : window.React.useEffect;\nfunction pn(e) {\n const t = window.React.useRef(e);\n return Ve(() => {\n t.current = e;\n }), window.React.useCallback(function() {\n for (var n = arguments.length, r = new Array(n), i = 0; i < n; i++)\n r[i] = arguments[i];\n return t.current == null ? void 0 : t.current(...r);\n }, []);\n}\nfunction Hi() {\n const e = window.React.useRef(null), t = window.React.useCallback((r, i) => {\n e.current = setInterval(r, i);\n }, []), n = window.React.useCallback(() => {\n e.current !== null && (clearInterval(e.current), e.current = null);\n }, []);\n return [t, n];\n}\nfunction Pt(e, t) {\n t === void 0 && (t = [e]);\n const n = window.React.useRef(e);\n return Ve(() => {\n n.current !== e && (n.current = e);\n }, t), n;\n}\nfunction Bt(e, t) {\n const n = window.React.useRef();\n return window.React.useMemo(\n () => {\n const r = e(n.current);\n return n.current = r, r;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...t]\n );\n}\nfunction cn(e) {\n const t = pn(e), n = window.React.useRef(null), r = window.React.useCallback(\n (i) => {\n i !== n.current && (t == null || t(i, n.current)), n.current = i;\n },\n //eslint-disable-next-line\n []\n );\n return [n, r];\n}\nfunction ln(e) {\n const t = window.React.useRef();\n return window.React.useEffect(() => {\n t.current = e;\n }, [e]), t.current;\n}\nlet On = {};\nfunction Yt(e, t) {\n return window.React.useMemo(() => {\n if (t)\n return t;\n const n = On[e] == null ? 0 : On[e] + 1;\n return On[e] = n, e + \"-\" + n;\n }, [e, t]);\n}\nfunction Hr(e) {\n return function(t) {\n for (var n = arguments.length, r = new Array(n > 1 ? n - 1 : 0), i = 1; i < n; i++)\n r[i - 1] = arguments[i];\n return r.reduce((o, c) => {\n const a = Object.entries(c);\n for (const [s, l] of a) {\n const d = o[s];\n d != null && (o[s] = d + e * l);\n }\n return o;\n }, {\n ...t\n });\n };\n}\nconst yt = /* @__PURE__ */ Hr(1), jt = /* @__PURE__ */ Hr(-1);\nfunction Xi(e) {\n return \"clientX\" in e && \"clientY\" in e;\n}\nfunction wn(e) {\n if (!e)\n return !1;\n const {\n KeyboardEvent: t\n } = ge(e.target);\n return t && e instanceof t;\n}\nfunction Wi(e) {\n if (!e)\n return !1;\n const {\n TouchEvent: t\n } = ge(e.target);\n return t && e instanceof t;\n}\nfunction un(e) {\n if (Wi(e)) {\n if (e.touches && e.touches.length) {\n const {\n clientX: t,\n clientY: n\n } = e.touches[0];\n return {\n x: t,\n y: n\n };\n } else if (e.changedTouches && e.changedTouches.length) {\n const {\n clientX: t,\n clientY: n\n } = e.changedTouches[0];\n return {\n x: t,\n y: n\n };\n }\n }\n return Xi(e) ? {\n x: e.clientX,\n y: e.clientY\n } : null;\n}\nconst st = /* @__PURE__ */ Object.freeze({\n Translate: {\n toString(e) {\n if (!e)\n return;\n const {\n x: t,\n y: n\n } = e;\n return \"translate3d(\" + (t ? Math.round(t) : 0) + \"px, \" + (n ? Math.round(n) : 0) + \"px, 0)\";\n }\n },\n Scale: {\n toString(e) {\n if (!e)\n return;\n const {\n scaleX: t,\n scaleY: n\n } = e;\n return \"scaleX(\" + t + \") scaleY(\" + n + \")\";\n }\n },\n Transform: {\n toString(e) {\n if (e)\n return [st.Translate.toString(e), st.Scale.toString(e)].join(\" \");\n }\n },\n Transition: {\n toString(e) {\n let {\n property: t,\n duration: n,\n easing: r\n } = e;\n return t + \" \" + n + \"ms \" + r;\n }\n }\n}), br = \"a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]\";\nfunction Ui(e) {\n return e.matches(br) ? e : e.querySelector(br);\n}\nconst Ki = {\n display: \"none\"\n};\nfunction Gi(e) {\n let {\n id: t,\n value: n\n } = e;\n return window.React.createElement(\"div\", {\n id: t,\n style: Ki\n }, n);\n}\nfunction qi(e) {\n let {\n id: t,\n announcement: n,\n ariaLiveType: r = \"assertive\"\n } = e;\n const i = {\n position: \"fixed\",\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: \"hidden\",\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(100%)\",\n whiteSpace: \"nowrap\"\n };\n return window.React.createElement(\"div\", {\n id: t,\n style: i,\n role: \"status\",\n \"aria-live\": r,\n \"aria-atomic\": !0\n }, n);\n}\nfunction Ji() {\n const [e, t] = window.React.useState(\"\");\n return {\n announce: window.React.useCallback((r) => {\n r != null && t(r);\n }, []),\n announcement: e\n };\n}\nconst Xr = /* @__PURE__ */ window.React.createContext(null);\nfunction Qi(e) {\n const t = window.React.useContext(Xr);\n window.React.useEffect(() => {\n if (!t)\n throw new Error(\"useDndMonitor must be used within a children of <DndContext>\");\n return t(e);\n }, [e, t]);\n}\nfunction Zi() {\n const [e] = window.React.useState(() => /* @__PURE__ */ new Set()), t = window.React.useCallback((r) => (e.add(r), () => e.delete(r)), [e]);\n return [window.React.useCallback((r) => {\n let {\n type: i,\n event: o\n } = r;\n e.forEach((c) => {\n var a;\n return (a = c[i]) == null ? void 0 : a.call(c, o);\n });\n }, [e]), t];\n}\nconst eo = {\n draggable: `\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n `\n}, to = {\n onDragStart(e) {\n let {\n active: t\n } = e;\n return \"Picked up draggable item \" + t.id + \".\";\n },\n onDragOver(e) {\n let {\n active: t,\n over: n\n } = e;\n return n ? \"Draggable item \" + t.id + \" was moved over droppable area \" + n.id + \".\" : \"Draggable item \" + t.id + \" is no longer over a droppable area.\";\n },\n onDragEnd(e) {\n let {\n active: t,\n over: n\n } = e;\n return n ? \"Draggable item \" + t.id + \" was dropped over droppable area \" + n.id : \"Draggable item \" + t.id + \" was dropped.\";\n },\n onDragCancel(e) {\n let {\n active: t\n } = e;\n return \"Dragging was cancelled. Draggable item \" + t.id + \" was dropped.\";\n }\n};\nfunction no(e) {\n let {\n announcements: t = to,\n container: n,\n hiddenTextDescribedById: r,\n screenReaderInstructions: i = eo\n } = e;\n const {\n announce: o,\n announcement: c\n } = Ji(), a = Yt(\"DndLiveRegion\"), [s, l] = window.React.useState(!1);\n if (window.React.useEffect(() => {\n l(!0);\n }, []), Qi(window.React.useMemo(() => ({\n onDragStart(u) {\n let {\n active: v\n } = u;\n o(t.onDragStart({\n active: v\n }));\n },\n onDragMove(u) {\n let {\n active: v,\n over: h\n } = u;\n t.onDragMove && o(t.onDragMove({\n active: v,\n over: h\n }));\n },\n onDragOver(u) {\n let {\n active: v,\n over: h\n } = u;\n o(t.onDragOver({\n active: v,\n over: h\n }));\n },\n onDragEnd(u) {\n let {\n active: v,\n over: h\n } = u;\n o(t.onDragEnd({\n active: v,\n over: h\n }));\n },\n onDragCancel(u) {\n let {\n active: v,\n over: h\n } = u;\n o(t.onDragCancel({\n active: v,\n over: h\n }));\n }\n }), [o, t])), !s)\n return null;\n const d = window.React.createElement(window.React.Fragment, null, window.React.createElement(Gi, {\n id: r,\n value: i.draggable\n }), window.React.createElement(qi, {\n id: a,\n announcement: c\n }));\n return n ? window.ReactDOM.createPortal(d, n) : d;\n}\nvar ie;\n(function(e) {\n e.DragStart = \"dragStart\", e.DragMove = \"dragMove\", e.DragEnd = \"dragEnd\", e.DragCancel = \"dragCancel\", e.DragOver = \"dragOver\", e.RegisterDroppable = \"registerDroppable\", e.SetDroppableDisabled = \"setDroppableDisabled\", e.UnregisterDroppable = \"unregisterDroppable\";\n})(ie || (ie = {}));\nfunction dn() {\n}\nfunction yr(e, t) {\n return window.React.useMemo(\n () => ({\n sensor: e,\n options: t ?? {}\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [e, t]\n );\n}\nfunction ro() {\n for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)\n t[n] = arguments[n];\n return window.React.useMemo(\n () => [...t].filter((r) => r != null),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...t]\n );\n}\nconst Pe = /* @__PURE__ */ Object.freeze({\n x: 0,\n y: 0\n});\nfunction Wr(e, t) {\n return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2));\n}\nfunction io(e, t) {\n const n = un(e);\n if (!n)\n return \"0 0\";\n const r = {\n x: (n.x - t.left) / t.width * 100,\n y: (n.y - t.top) / t.height * 100\n };\n return r.x + \"% \" + r.y + \"%\";\n}\nfunction Ur(e, t) {\n let {\n data: {\n value: n\n }\n } = e, {\n data: {\n value: r\n }\n } = t;\n return n - r;\n}\nfunction oo(e, t) {\n let {\n data: {\n value: n\n }\n } = e, {\n data: {\n value: r\n }\n } = t;\n return r - n;\n}\nfunction Sr(e) {\n let {\n left: t,\n top: n,\n height: r,\n width: i\n } = e;\n return [{\n x: t,\n y: n\n }, {\n x: t + i,\n y: n\n }, {\n x: t,\n y: n + r\n }, {\n x: t + i,\n y: n + r\n }];\n}\nfunction Kr(e, t) {\n if (!e || e.length === 0)\n return null;\n const [n] = e;\n return n[t];\n}\nfunction Rr(e, t, n) {\n return t === void 0 && (t = e.left), n === void 0 && (n = e.top), {\n x: t + e.width * 0.5,\n y: n + e.height * 0.5\n };\n}\nconst so = (e) => {\n let {\n collisionRect: t,\n droppableRects: n,\n droppableContainers: r\n } = e;\n const i = Rr(t, t.left, t.top), o = [];\n for (const c of r) {\n const {\n id: a\n } = c, s = n.get(a);\n if (s) {\n const l = Wr(Rr(s), i);\n o.push({\n id: a,\n data: {\n droppableContainer: c,\n value: l\n }\n });\n }\n }\n return o.sort(Ur);\n}, ao = (e) => {\n let {\n collisionRect: t,\n droppableRects: n,\n droppableContainers: r\n } = e;\n const i = Sr(t), o = [];\n for (const c of r) {\n const {\n id: a\n } = c, s = n.get(a);\n if (s) {\n const l = Sr(s), d = i.reduce((v, h, m) => v + Wr(l[m], h), 0), u = Number((d / 4).toFixed(4));\n o.push({\n id: a,\n data: {\n droppableContainer: c,\n value: u\n }\n });\n }\n }\n return o.sort(Ur);\n};\nfunction co(e, t) {\n const n = Math.max(t.top, e.top), r = Math.max(t.left, e.left), i = Math.min(t.left + t.width, e.left + e.width), o = Math.min(t.top + t.height, e.top + e.height), c = i - r, a = o - n;\n if (r < i && n < o) {\n const s = t.width * t.height, l = e.width * e.height, d = c * a, u = d / (s + l - d);\n return Number(u.toFixed(4));\n }\n return 0;\n}\nconst lo = (e) => {\n let {\n collisionRect: t,\n droppableRects: n,\n droppableContainers: r\n } = e;\n const i = [];\n for (const o of r) {\n const {\n id: c\n } = o, a = n.get(c);\n if (a) {\n const s = co(a, t);\n s > 0 && i.push({\n id: c,\n data: {\n droppableContainer: o,\n value: s\n }\n });\n }\n }\n return i.sort(oo);\n};\nfunction uo(e, t, n) {\n return {\n ...e,\n scaleX: t && n ? t.width / n.width : 1,\n scaleY: t && n ? t.height / n.height : 1\n };\n}\nfunction Gr(e, t) {\n return e && t ? {\n x: e.left - t.left,\n y: e.top - t.top\n } : Pe;\n}\nfunction fo(e) {\n return function(n) {\n for (var r = arguments.length, i = new Array(r > 1 ? r - 1 : 0), o = 1; o < r; o++)\n i[o - 1] = arguments[o];\n return i.reduce((c, a) => ({\n ...c,\n top: c.top + e * a.y,\n bottom: c.bottom + e * a.y,\n left: c.left + e * a.x,\n right: c.right + e * a.x\n }), {\n ...n\n });\n };\n}\nconst ho = /* @__PURE__ */ fo(1);\nfunction qr(e) {\n if (e.startsWith(\"matrix3d(\")) {\n const t = e.slice(9, -1).split(/, /);\n return {\n x: +t[12],\n y: +t[13],\n scaleX: +t[0],\n scaleY: +t[5]\n };\n } else if (e.startsWith(\"matrix(\")) {\n const t = e.slice(7, -1).split(/, /);\n return {\n x: +t[4],\n y: +t[5],\n scaleX: +t[0],\n scaleY: +t[3]\n };\n }\n return null;\n}\nfunction vo(e, t, n) {\n const r = qr(t);\n if (!r)\n return e;\n const {\n scaleX: i,\n scaleY: o,\n x: c,\n y: a\n } = r, s = e.left - c - (1 - i) * parseFloat(n), l = e.top - a - (1 - o) * parseFloat(n.slice(n.indexOf(\" \") + 1)), d = i ? e.width / i : e.width, u = o ? e.height / o : e.height;\n return {\n width: d,\n height: u,\n top: l,\n right: s + d,\n bottom: l + u,\n left: s\n };\n}\nconst po = {\n ignoreTransform: !1\n};\nfunction xt(e, t) {\n t === void 0 && (t = po);\n let n = e.getBoundingClientRect();\n if (t.ignoreTransform) {\n const {\n transform: l,\n transformOrigin: d\n } = ge(e).getComputedStyle(e);\n l && (n = vo(n, l, d));\n }\n const {\n top: r,\n left: i,\n width: o,\n height: c,\n bottom: a,\n right: s\n } = n;\n return {\n top: r,\n left: i,\n width: o,\n height: c,\n bottom: a,\n right: s\n };\n}\nfunction xr(e) {\n return xt(e, {\n ignoreTransform: !0\n });\n}\nfunction wo(e) {\n const t = e.innerWidth, n = e.innerHeight;\n return {\n top: 0,\n left: 0,\n right: t,\n bottom: n,\n width: t,\n height: n\n };\n}\nfunction go(e, t) {\n return t === void 0 && (t = ge(e).getComputedStyle(e)), t.position === \"fixed\";\n}\nfunction mo(e, t) {\n t === void 0 && (t = ge(e).getComputedStyle(e));\n const n = /(auto|scroll|overlay)/;\n return [\"overflow\", \"overflowX\", \"overflowY\"].some((i) => {\n const o = t[i];\n return typeof o == \"string\" ? n.test(o) : !1;\n });\n}\nfunction gn(e, t) {\n const n = [];\n function r(i) {\n if (t != null && n.length >= t || !i)\n return n;\n if (Bn(i) && i.scrollingElement != null && !n.includes(i.scrollingElement))\n return n.push(i.scrollingElement), n;\n if (!$t(i) || Yr(i) || n.includes(i))\n return n;\n const o = ge(e).getComputedStyle(i);\n return i !== e && mo(i, o) && n.push(i), go(i, o) ? n : r(i.parentNode);\n }\n return e ? r(e) : n;\n}\nfunction Jr(e) {\n const [t] = gn(e, 1);\n return t ?? null;\n}\nfunction Mn(e) {\n return !vn || !e ? null : St(e) ? e : $n(e) ? Bn(e) || e === Rt(e).scrollingElement ? window : $t(e) ? e : null : null;\n}\nfunction Qr(e) {\n return St(e) ? e.scrollX : e.scrollLeft;\n}\nfunction Zr(e) {\n return St(e) ? e.scrollY : e.scrollTop;\n}\nfunction Vn(e) {\n return {\n x: Qr(e),\n y: Zr(e)\n };\n}\nvar oe;\n(function(e) {\n e[e.Forward = 1] = \"Forward\", e[e.Backward = -1] = \"Backward\";\n})(oe || (oe = {}));\nfunction ei(e) {\n return !vn || !e ? !1 : e === document.scrollingElement;\n}\nfunction ti(e) {\n const t = {\n x: 0,\n y: 0\n }, n = ei(e) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: e.clientHeight,\n width: e.clientWidth\n }, r = {\n x: e.scrollWidth - n.width,\n y: e.scrollHeight - n.height\n }, i = e.scrollTop <= t.y, o = e.scrollLeft <= t.x, c = e.scrollTop >= r.y, a = e.scrollLeft >= r.x;\n return {\n isTop: i,\n isLeft: o,\n isBottom: c,\n isRight: a,\n maxScroll: r,\n minScroll: t\n };\n}\nconst bo = {\n x: 0.2,\n y: 0.2\n};\nfunction yo(e, t, n, r, i) {\n let {\n top: o,\n left: c,\n right: a,\n bottom: s\n } = n;\n r === void 0 && (r = 10), i === void 0 && (i = bo);\n const {\n isTop: l,\n isBottom: d,\n isLeft: u,\n isRight: v\n } = ti(e), h = {\n x: 0,\n y: 0\n }, m = {\n x: 0,\n y: 0\n }, g = {\n height: t.height * i.y,\n width: t.width * i.x\n };\n return !l && o <= t.top + g.height ? (h.y = oe.Backward, m.y = r * Math.abs((t.top + g.height - o) / g.height)) : !d && s >= t.bottom - g.height && (h.y = oe.Forward, m.y = r * Math.abs((t.bottom - g.height - s) / g.height)), !v && a >= t.right - g.width ? (h.x = oe.Forward, m.x = r * Math.abs((t.right - g.width - a) / g.width)) : !u && c <= t.left + g.width && (h.x = oe.Backward, m.x = r * Math.abs((t.left + g.width - c) / g.width)), {\n direction: h,\n speed: m\n };\n}\nfunction So(e) {\n if (e === document.scrollingElement) {\n const {\n innerWidth: o,\n innerHeight: c\n } = window;\n return {\n top: 0,\n left: 0,\n right: o,\n bottom: c,\n width: o,\n height: c\n };\n }\n const {\n top: t,\n left: n,\n right: r,\n bottom: i\n } = e.getBoundingClientRect();\n return {\n top: t,\n left: n,\n right: r,\n bottom: i,\n width: e.clientWidth,\n height: e.clientHeight\n };\n}\nfunction ni(e) {\n return e.reduce((t, n) => yt(t, Vn(n)), Pe);\n}\nfunction Ro(e) {\n return e.reduce((t, n) => t + Qr(n), 0);\n}\nfunction xo(e) {\n return e.reduce((t, n) => t + Zr(n), 0);\n}\nfunction ri(e, t) {\n if (t === void 0 && (t = xt), !e)\n return;\n const {\n top: n,\n left: r,\n bottom: i,\n right: o\n } = t(e);\n Jr(e) && (i <= 0 || o <= 0 || n >= window.innerHeight || r >= window.innerWidth) && e.scrollIntoView({\n block: \"center\",\n inline: \"center\"\n });\n}\nconst zo = [[\"x\", [\"left\", \"right\"], Ro], [\"y\", [\"top\", \"bottom\"], xo]];\nclass Yn {\n constructor(t, n) {\n this.rect = void 0, this.width = void 0, this.height = void 0, this.top = void 0, this.bottom = void 0, this.right = void 0, this.left = void 0;\n const r = gn(n), i = ni(r);\n this.rect = {\n ...t\n }, this.width = t.width, this.height = t.height;\n for (const [o, c, a] of zo)\n for (const s of c)\n Object.defineProperty(this, s, {\n get: () => {\n const l = a(r), d = i[o] - l;\n return this.rect[s] + d;\n },\n enumerable: !0\n });\n Object.defineProperty(this, \"rect\", {\n enumerable: !1\n });\n }\n}\nclass Lt {\n constructor(t) {\n this.target = void 0, this.listeners = [], this.removeAll = () => {\n this.listeners.forEach((n) => {\n var r;\n return (r = this.target) == null ? void 0 : r.removeEventListener(...n);\n });\n }, this.target = t;\n }\n add(t, n, r) {\n var i;\n (i = this.target) == null || i.addEventListener(t, n, r), this.listeners.push([t, n, r]);\n }\n}\nfunction _o(e) {\n const {\n EventTarget: t\n } = ge(e);\n return e instanceof t ? e : Rt(e);\n}\nfunction Nn(e, t) {\n const n = Math.abs(e.x), r = Math.abs(e.y);\n return typeof t == \"number\" ? Math.sqrt(n ** 2 + r ** 2) > t : \"x\" in t && \"y\" in t ? n > t.x && r > t.y : \"x\" in t ? n > t.x : \"y\" in t ? r > t.y : !1;\n}\nvar Ce;\n(function(e) {\n e.Click = \"click\", e.DragStart = \"dragstart\", e.Keydown = \"keydown\", e.ContextMenu = \"contextmenu\", e.Resize = \"resize\", e.SelectionChange = \"selectionchange\", e.VisibilityChange = \"visibilitychange\";\n})(Ce || (Ce = {}));\nfunction zr(e) {\n e.preventDefault();\n}\nfunction Io(e) {\n e.stopPropagation();\n}\nvar B;\n(function(e) {\n e.Space = \"Space\", e.Down = \"ArrowDown\", e.Right = \"ArrowRight\", e.Left = \"ArrowLeft\", e.Up = \"ArrowUp\", e.Esc = \"Escape\", e.Enter = \"Enter\", e.Tab = \"Tab\";\n})(B || (B = {}));\nconst ii = {\n start: [B.Space, B.Enter],\n cancel: [B.Esc],\n end: [B.Space, B.Enter, B.Tab]\n}, Do = (e, t) => {\n let {\n currentCoordinates: n\n } = t;\n switch (e.code) {\n case B.Right:\n return {\n ...n,\n x: n.x + 25\n };\n case B.Left:\n return {\n ...n,\n x: n.x - 25\n };\n case B.Down:\n return {\n ...n,\n y: n.y + 25\n };\n case B.Up:\n return {\n ...n,\n y: n.y - 25\n };\n }\n};\nclass Hn {\n constructor(t) {\n this.props = void 0, this.autoScrollEnabled = !1, this.referenceCoordinates = void 0, this.listeners = void 0, this.windowListeners = void 0, this.props = t;\n const {\n event: {\n target: n\n }\n } = t;\n this.props = t, this.listeners = new Lt(Rt(n)), this.windowListeners = new Lt(ge(n)), this.handleKeyDown = this.handleKeyDown.bind(this), this.handleCancel = this.handleCancel.bind(this), this.attach();\n }\n attach() {\n this.handleStart(), this.windowListeners.add(Ce.Resize, this.handleCancel), this.windowListeners.add(Ce.VisibilityChange, this.handleCancel), setTimeout(() => this.listeners.add(Ce.Keydown, this.handleKeyDown));\n }\n handleStart() {\n const {\n activeNode: t,\n onStart: n\n } = this.props, r = t.node.current;\n r && ri(r), n(Pe);\n }\n handleKeyDown(t) {\n if (wn(t)) {\n const {\n active: n,\n context: r,\n options: i\n } = this.props, {\n keyboardCodes: o = ii,\n coordinateGetter: c = Do,\n scrollBehavior: a = \"smooth\"\n } = i, {\n code: s\n } = t;\n if (o.end.includes(s)) {\n this.handleEnd(t);\n return;\n }\n if (o.cancel.includes(s)) {\n this.handleCancel(t);\n return;\n }\n const {\n collisionRect: l\n } = r.current, d = l ? {\n x: l.left,\n y: l.top\n } : Pe;\n this.referenceCoordinates || (this.referenceCoordinates = d);\n const u = c(t, {\n active: n,\n context: r.current,\n currentCoordinates: d\n });\n if (u) {\n const v = jt(u, d), h = {\n x: 0,\n y: 0\n }, {\n scrollableAncestors: m\n } = r.current;\n for (const g of m) {\n const b = t.code, {\n isTop: y,\n isRight: S,\n isLeft: R,\n isBottom: x,\n maxScroll: I,\n minScroll: E\n } = ti(g), w = So(g), _ = {\n x: Math.min(b === B.Right ? w.right - w.width / 2 : w.right, Math.max(b === B.Right ? w.left : w.left + w.width / 2, u.x)),\n y: Math.min(b === B.Down ? w.bottom - w.height / 2 : w.bottom, Math.max(b === B.Down ? w.top : w.top + w.height / 2, u.y))\n }, T = b === B.Right && !S || b === B.Left && !R, N = b === B.Down && !x || b === B.Up && !y;\n if (T && _.x !== u.x) {\n const j = g.scrollLeft + v.x, L = b === B.Right && j <= I.x || b === B.Left && j >= E.x;\n if (L && !v.y) {\n g.scrollTo({\n left: j,\n behavior: a\n });\n return;\n }\n L ? h.x = g.scrollLeft - j : h.x = b === B.Right ? g.scrollLeft - I.x : g.scrollLeft - E.x, h.x && g.scrollBy({\n left: -h.x,\n behavior: a\n });\n break;\n } else if (N && _.y !== u.y) {\n const j = g.scrollTop + v.y, L = b === B.Down && j <= I.y || b === B.Up && j >= E.y;\n if (L && !v.x) {\n g.scrollTo({\n top: j,\n behavior: a\n });\n return;\n }\n L ? h.y = g.scrollTop - j : h.y = b === B.Down ? g.scrollTop - I.y : g.scrollTop - E.y, h.y && g.scrollBy({\n top: -h.y,\n behavior: a\n });\n break;\n }\n }\n this.handleMove(t, yt(jt(u, this.referenceCoordinates), h));\n }\n }\n }\n handleMove(t, n) {\n const {\n onMove: r\n } = this.props;\n t.preventDefault(), r(n);\n }\n handleEnd(t) {\n const {\n onEnd: n\n } = this.props;\n t.preventDefault(), this.detach(), n();\n }\n handleCancel(t) {\n const {\n onCancel: n\n } = this.props;\n t.preventDefault(), this.detach(), n();\n }\n detach() {\n this.listeners.removeAll(), this.windowListeners.removeAll();\n }\n}\nHn.activators = [{\n eventName: \"onKeyDown\",\n handler: (e, t, n) => {\n let {\n keyboardCodes: r = ii,\n onActivation: i\n } = t, {\n active: o\n } = n;\n const {\n code: c\n } = e.nativeEvent;\n if (r.start.includes(c)) {\n const a = o.activatorNode.current;\n return a && e.target !== a ? !1 : (e.preventDefault(), i == null || i({\n event: e.nativeEvent\n }), !0);\n }\n return !1;\n }\n}];\nfunction _r(e) {\n return !!(e && \"distance\" in e);\n}\nfunction Ir(e) {\n return !!(e && \"delay\" in e);\n}\nclass Xn {\n constructor(t, n, r) {\n var i;\n r === void 0 && (r = _o(t.event.target)), this.props = void 0, this.events = void 0, this.autoScrollEnabled = !0, this.document = void 0, this.activated = !1, this.initialCoordinates = void 0, this.timeoutId = null, this.listeners = void 0, this.documentListeners = void 0, this.windowListeners = void 0, this.props = t, this.events = n;\n const {\n event: o\n } = t, {\n target: c\n } = o;\n this.props = t, this.events = n, this.document = Rt(c), this.documentListeners = new Lt(this.document), this.listeners = new Lt(r), this.windowListeners = new Lt(ge(c)), this.initialCoordinates = (i = un(o)) != null ? i : Pe, this.handleStart = this.handleStart.bind(this), this.handleMove = this.handleMove.bind(this), this.handleEnd = this.handleEnd.bind(this), this.handleCancel = this.handleCancel.bind(this), this.handleKeydown = this.handleKeydown.bind(this), this.removeTextSelection = this.removeTextSelection.bind(this), this.attach();\n }\n attach() {\n const {\n events: t,\n props: {\n options: {\n activationConstraint: n,\n bypassActivationConstraint: r\n }\n }\n } = this;\n if (this.listeners.add(t.move.name, this.handleMove, {\n passive: !1\n }), this.listeners.add(t.end.name, this.handleEnd), t.cancel && this.listeners.add(t.cancel.name, this.handleCancel), this.windowListeners.add(Ce.Resize, this.handleCancel), this.windowListeners.add(Ce.DragStart, zr), this.windowListeners.add(Ce.VisibilityChange, this.handleCancel), this.windowListeners.add(Ce.ContextMenu, zr), this.documentListeners.add(Ce.Keydown, this.handleKeydown), n) {\n if (r != null && r({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n }))\n return this.handleStart();\n if (Ir(n)) {\n this.timeoutId = setTimeout(this.handleStart, n.delay), this.handlePending(n);\n return;\n }\n if (_r(n)) {\n this.handlePending(n);\n return;\n }\n }\n this.handleStart();\n }\n detach() {\n this.listeners.removeAll(), this.windowListeners.removeAll(), setTimeout(this.documentListeners.removeAll, 50), this.timeoutId !== null && (clearTimeout(this.timeoutId), this.timeoutId = null);\n }\n handlePending(t, n) {\n const {\n active: r,\n onPending: i\n } = this.props;\n i(r, t, this.initialCoordinates, n);\n }\n handleStart() {\n const {\n initialCoordinates: t\n } = this, {\n onStart: n\n } = this.props;\n t && (this.activated = !0, this.documentListeners.add(Ce.Click, Io, {\n capture: !0\n }), this.removeTextSelection(), this.documentListeners.add(Ce.SelectionChange, this.removeTextSelection), n(t));\n }\n handleMove(t) {\n var n;\n const {\n activated: r,\n initialCoordinates: i,\n props: o\n } = this, {\n onMove: c,\n options: {\n activationConstraint: a\n }\n } = o;\n if (!i)\n return;\n const s = (n = un(t)) != null ? n : Pe, l = jt(i, s);\n if (!r && a) {\n if (_r(a)) {\n if (a.tolerance != null && Nn(l, a.tolerance))\n return this.handleCancel();\n if (Nn(l, a.distance))\n return this.handleStart();\n }\n if (Ir(a) && Nn(l, a.tolerance))\n return this.handleCancel();\n this.handlePending(a, l);\n return;\n }\n t.cancelable && t.preventDefault(), c(s);\n }\n handleEnd() {\n const {\n onAbort: t,\n onEnd: n\n } = this.props;\n this.detach(), this.activated || t(this.props.active), n();\n }\n handleCancel() {\n const {\n onAbort: t,\n onCancel: n\n } = this.props;\n this.detach(), this.activated || t(this.props.active), n();\n }\n handleKeydown(t) {\n t.code === B.Esc && this.handleCancel();\n }\n removeTextSelection() {\n var t;\n (t = this.document.getSelection()) == null || t.removeAllRanges();\n }\n}\nconst Eo = {\n cancel: {\n name: \"pointercancel\"\n },\n move: {\n name: \"pointermove\"\n },\n end: {\n name: \"pointerup\"\n }\n};\nclass Wn extends Xn {\n constructor(t) {\n const {\n event: n\n } = t, r = Rt(n.target);\n super(t, Eo, r);\n }\n}\nWn.activators = [{\n eventName: \"onPointerDown\",\n handler: (e, t) => {\n let {\n nativeEvent: n\n } = e, {\n onActivation: r\n } = t;\n return !n.isPrimary || n.button !== 0 ? !1 : (r == null || r({\n event: n\n }), !0);\n }\n}];\nconst Co = {\n move: {\n name: \"mousemove\"\n },\n end: {\n name: \"mouseup\"\n }\n};\nvar Pn;\n(function(e) {\n e[e.RightClick = 2] = \"RightClick\";\n})(Pn || (Pn = {}));\nclass Oo extends Xn {\n constructor(t) {\n super(t, Co, Rt(t.event.target));\n }\n}\nOo.activators = [{\n eventName: \"onMouseDown\",\n handler: (e, t) => {\n let {\n nativeEvent: n\n } = e, {\n onActivation: r\n } = t;\n return n.button === Pn.RightClick ? !1 : (r == null || r({\n event: n\n }), !0);\n }\n}];\nconst An = {\n cancel: {\n name: \"touchcancel\"\n },\n move: {\n name: \"touchmove\"\n },\n end: {\n name: \"touchend\"\n }\n};\nclass Mo extends Xn {\n constructor(t) {\n super(t, An);\n }\n static setup() {\n return window.addEventListener(An.move.name, t, {\n capture: !1,\n passive: !1\n }), function() {\n window.removeEventListener(An.move.name, t);\n };\n function t() {\n }\n }\n}\nMo.activators = [{\n eventName: \"onTouchStart\",\n handler: (e, t) => {\n let {\n nativeEvent: n\n } = e, {\n onActivation: r\n } = t;\n const {\n touches: i\n } = n;\n return i.length > 1 ? !1 : (r == null || r({\n event: n\n }), !0);\n }\n}];\nvar Tt;\n(function(e) {\n e[e.Pointer = 0] = \"Pointer\", e[e.DraggableRect = 1] = \"DraggableRect\";\n})(Tt || (Tt = {}));\nvar fn;\n(function(e) {\n e[e.TreeOrder = 0] = \"TreeOrder\", e[e.ReversedTreeOrder = 1] = \"ReversedTreeOrder\";\n})(fn || (fn = {}));\nfunction No(e) {\n let {\n acceleration: t,\n activator: n = Tt.Pointer,\n canScroll: r,\n draggingRect: i,\n enabled: o,\n interval: c = 5,\n order: a = fn.TreeOrder,\n pointerCoordinates: s,\n scrollableAncestors: l,\n scrollableAncestorRects: d,\n delta: u,\n threshold: v\n } = e;\n const h = Lo({\n delta: u,\n disabled: !o\n }), [m, g] = Hi(), b = window.React.useRef({\n x: 0,\n y: 0\n }), y = window.React.useRef({\n x: 0,\n y: 0\n }), S = window.React.useMemo(() => {\n switch (n) {\n case Tt.Pointer:\n return s ? {\n top: s.y,\n bottom: s.y,\n left: s.x,\n right: s.x\n } : null;\n case Tt.DraggableRect:\n return i;\n }\n }, [n, i, s]), R = window.React.useRef(null), x = window.React.useCallback(() => {\n const E = R.current;\n if (!E)\n return;\n const w = b.current.x * y.current.x, _ = b.current.y * y.current.y;\n E.scrollBy(w, _);\n }, []), I = window.React.useMemo(() => a === fn.TreeOrder ? [...l].reverse() : l, [a, l]);\n window.React.useEffect(\n () => {\n if (!o || !l.length || !S) {\n g();\n return;\n }\n for (const E of I) {\n if ((r == null ? void 0 : r(E)) === !1)\n continue;\n const w = l.indexOf(E), _ = d[w];\n if (!_)\n continue;\n const {\n direction: T,\n speed: N\n } = yo(E, _, S, t, v);\n for (const j of [\"x\", \"y\"])\n h[j][T[j]] || (N[j] = 0, T[j] = 0);\n if (N.x > 0 || N.y > 0) {\n g(), R.current = E, m(x, c), b.current = N, y.current = T;\n return;\n }\n }\n b.current = {\n x: 0,\n y: 0\n }, y.current = {\n x: 0,\n y: 0\n }, g();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n t,\n x,\n r,\n g,\n o,\n c,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(S),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(h),\n m,\n l,\n I,\n d,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(v)\n ]\n );\n}\nconst Ao = {\n x: {\n [oe.Backward]: !1,\n [oe.Forward]: !1\n },\n y: {\n [oe.Backward]: !1,\n [oe.Forward]: !1\n }\n};\nfunction Lo(e) {\n let {\n delta: t,\n disabled: n\n } = e;\n const r = ln(t);\n return Bt((i) => {\n if (n || !r || !i)\n return Ao;\n const o = {\n x: Math.sign(t.x - r.x),\n y: Math.sign(t.y - r.y)\n };\n return {\n x: {\n [oe.Backward]: i.x[oe.Backward] || o.x === -1,\n [oe.Forward]: i.x[oe.Forward] || o.x === 1\n },\n y: {\n [oe.Backward]: i.y[oe.Backward] || o.y === -1,\n [oe.Forward]: i.y[oe.Forward] || o.y === 1\n }\n };\n }, [n, t, r]);\n}\nfunction To(e, t) {\n const n = t != null ? e.get(t) : void 0, r = n ? n.node.current : null;\n return Bt((i) => {\n var o;\n return t == null ? null : (o = r ?? i) != null ? o : null;\n }, [r, t]);\n}\nfunction Vo(e, t) {\n return window.React.useMemo(() => e.reduce((n, r) => {\n const {\n sensor: i\n } = r, o = i.activators.map((c) => ({\n eventName: c.eventName,\n handler: t(c.handler, r)\n }));\n return [...n, ...o];\n }, []), [e, t]);\n}\nvar kt;\n(function(e) {\n e[e.Always = 0] = \"Always\", e[e.BeforeDragging = 1] = \"BeforeDragging\", e[e.WhileDragging = 2] = \"WhileDragging\";\n})(kt || (kt = {}));\nvar jn;\n(function(e) {\n e.Optimized = \"optimized\";\n})(jn || (jn = {}));\nconst Dr = /* @__PURE__ */ new Map();\nfunction Po(e, t) {\n let {\n dragging: n,\n dependencies: r,\n config: i\n } = t;\n const [o, c] = window.React.useState(null), {\n frequency: a,\n measure: s,\n strategy: l\n } = i, d = window.React.useRef(e), u = b(), v = Pt(u), h = window.React.useCallback(function(y) {\n y === void 0 && (y = []), !v.current && c((S) => S === null ? y : S.concat(y.filter((R) => !S.includes(R))));\n }, [v]), m = window.React.useRef(null), g = Bt((y) => {\n if (u && !n)\n return Dr;\n if (!y || y === Dr || d.current !== e || o != null) {\n const S = /* @__PURE__ */ new Map();\n for (let R of e) {\n if (!R)\n continue;\n if (o && o.length > 0 && !o.includes(R.id) && R.rect.current) {\n S.set(R.id, R.rect.current);\n continue;\n }\n const x = R.node.current, I = x ? new Yn(s(x), x) : null;\n R.rect.current = I, I && S.set(R.id, I);\n }\n return S;\n }\n return y;\n }, [e, o, n, u, s]);\n return window.React.useEffect(() => {\n d.current = e;\n }, [e]), window.React.useEffect(\n () => {\n u || h();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [n, u]\n ), window.React.useEffect(\n () => {\n o && o.length > 0 && c(null);\n },\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(o)]\n ), window.React.useEffect(\n () => {\n u || typeof a != \"number\" || m.current !== null || (m.current = setTimeout(() => {\n h(), m.current = null;\n }, a));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [a, u, h, ...r]\n ), {\n droppableRects: g,\n measureDroppableContainers: h,\n measuringScheduled: o != null\n };\n function b() {\n switch (l) {\n case kt.Always:\n return !1;\n case kt.BeforeDragging:\n return n;\n default:\n return !n;\n }\n }\n}\nfunction Un(e, t) {\n return Bt((n) => e ? n || (typeof t == \"function\" ? t(e) : e) : null, [t, e]);\n}\nfunction jo(e, t) {\n return Un(e, t);\n}\nfunction ko(e) {\n let {\n callback: t,\n disabled: n\n } = e;\n const r = pn(t), i = window.React.useMemo(() => {\n if (n || typeof window > \"u\" || typeof window.MutationObserver > \"u\")\n return;\n const {\n MutationObserver: o\n } = window;\n return new o(r);\n }, [r, n]);\n return window.React.useEffect(() => () => i == null ? void 0 : i.disconnect(), [i]), i;\n}\nfunction mn(e) {\n let {\n callback: t,\n disabled: n\n } = e;\n const r = pn(t), i = window.React.useMemo(\n () => {\n if (n || typeof window > \"u\" || typeof window.ResizeObserver > \"u\")\n return;\n const {\n ResizeObserver: o\n } = window;\n return new o(r);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [n]\n );\n return window.React.useEffect(() => () => i == null ? void 0 : i.disconnect(), [i]), i;\n}\nfunction Fo(e) {\n return new Yn(xt(e), e);\n}\nfunction Er(e, t, n) {\n t === void 0 && (t = Fo);\n const [r, i] = window.React.useState(null);\n function o() {\n i((s) => {\n if (!e)\n return null;\n if (e.isConnected === !1) {\n var l;\n return (l = s ?? n) != null ? l : null;\n }\n const d = t(e);\n return JSON.stringify(s) === JSON.stringify(d) ? s : d;\n });\n }\n const c = ko({\n callback(s) {\n if (e)\n for (const l of s) {\n const {\n type: d,\n target: u\n } = l;\n if (d === \"childList\" && u instanceof HTMLElement && u.contains(e)) {\n o();\n break;\n }\n }\n }\n }), a = mn({\n callback: o\n });\n return Ve(() => {\n o(), e ? (a == null || a.observe(e), c == null || c.observe(document.body, {\n childList: !0,\n subtree: !0\n })) : (a == null || a.disconnect(), c == null || c.disconnect());\n }, [e]), r;\n}\nfunction $o(e) {\n const t = Un(e);\n return Gr(e, t);\n}\nconst Cr = [];\nfunction Bo(e) {\n const t = window.React.useRef(e), n = Bt((r) => e ? r && r !== Cr && e && t.current && e.parentNode === t.current.parentNode ? r : gn(e) : Cr, [e]);\n return window.React.useEffect(() => {\n t.current = e;\n }, [e]), n;\n}\nfunction Yo(e) {\n const [t, n] = window.React.useState(null), r = window.React.useRef(e), i = window.React.useCallback((o) => {\n const c = Mn(o.target);\n c && n((a) => a ? (a.set(c, Vn(c)), new Map(a)) : null);\n }, []);\n return window.React.useEffect(() => {\n const o = r.current;\n if (e !== o) {\n c(o);\n const a = e.map((s) => {\n const l = Mn(s);\n return l ? (l.addEventListener(\"scroll\", i, {\n passive: !0\n }), [l, Vn(l)]) : null;\n }).filter((s) => s != null);\n n(a.length ? new Map(a) : null), r.current = e;\n }\n return () => {\n c(e), c(o);\n };\n function c(a) {\n a.forEach((s) => {\n const l = Mn(s);\n l == null || l.removeEventListener(\"scroll\", i);\n });\n }\n }, [i, e]), window.React.useMemo(() => e.length ? t ? Array.from(t.values()).reduce((o, c) => yt(o, c), Pe) : ni(e) : Pe, [e, t]);\n}\nfunction Or(e, t) {\n t === void 0 && (t = []);\n const n = window.React.useRef(null);\n return window.React.useEffect(\n () => {\n n.current = null;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n t\n ), window.React.useEffect(() => {\n const r = e !== Pe;\n r && !n.current && (n.current = e), !r && n.current && (n.current = null);\n }, [e]), n.current ? jt(e, n.current) : Pe;\n}\nfunction Ho(e) {\n window.React.useEffect(\n () => {\n if (!vn)\n return;\n const t = e.map((n) => {\n let {\n sensor: r\n } = n;\n return r.setup == null ? void 0 : r.setup();\n });\n return () => {\n for (const n of t)\n n == null || n();\n };\n },\n // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n e.map((t) => {\n let {\n sensor: n\n } = t;\n return n;\n })\n );\n}\nfunction Xo(e, t) {\n return window.React.useMemo(() => e.reduce((n, r) => {\n let {\n eventName: i,\n handler: o\n } = r;\n return n[i] = (c) => {\n o(c, t);\n }, n;\n }, {}), [e, t]);\n}\nfunction oi(e) {\n return window.React.useMemo(() => e ? wo(e) : null, [e]);\n}\nconst Mr = [];\nfunction Wo(e, t) {\n t === void 0 && (t = xt);\n const [n] = e, r = oi(n ? ge(n) : null), [i, o] = window.React.useState(Mr);\n function c() {\n o(() => e.length ? e.map((s) => ei(s) ? r : new Yn(t(s), s)) : Mr);\n }\n const a = mn({\n callback: c\n });\n return Ve(() => {\n a == null || a.disconnect(), c(), e.forEach((s) => a == null ? void 0 : a.observe(s));\n }, [e]), i;\n}\nfunction si(e) {\n if (!e)\n return null;\n if (e.children.length > 1)\n return e;\n const t = e.children[0];\n return $t(t) ? t : e;\n}\nfunction Uo(e) {\n let {\n measure: t\n } = e;\n const [n, r] = window.React.useState(null), i = window.React.useCallback((l) => {\n for (const {\n target: d\n } of l)\n if ($t(d)) {\n r((u) => {\n const v = t(d);\n return u ? {\n ...u,\n width: v.width,\n height: v.height\n } : v;\n });\n break;\n }\n }, [t]), o = mn({\n callback: i\n }), c = window.React.useCallback((l) => {\n const d = si(l);\n o == null || o.disconnect(), d && (o == null || o.observe(d)), r(d ? t(d) : null);\n }, [t, o]), [a, s] = cn(c);\n return window.React.useMemo(() => ({\n nodeRef: a,\n rect: n,\n setRef: s\n }), [n, a, s]);\n}\nconst Ko = [{\n sensor: Wn,\n options: {}\n}, {\n sensor: Hn,\n options: {}\n}], Go = {\n current: {}\n}, sn = {\n draggable: {\n measure: xr\n },\n droppable: {\n measure: xr,\n strategy: kt.WhileDragging,\n frequency: jn.Optimized\n },\n dragOverlay: {\n measure: xt\n }\n};\nclass Vt extends Map {\n get(t) {\n var n;\n return t != null && (n = super.get(t)) != null ? n : void 0;\n }\n toArray() {\n return Array.from(this.values());\n }\n getEnabled() {\n return this.toArray().filter((t) => {\n let {\n disabled: n\n } = t;\n return !n;\n });\n }\n getNodeFor(t) {\n var n, r;\n return (n = (r = this.get(t)) == null ? void 0 : r.node.current) != null ? n : void 0;\n }\n}\nconst qo = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /* @__PURE__ */ new Map(),\n droppableRects: /* @__PURE__ */ new Map(),\n droppableContainers: /* @__PURE__ */ new Vt(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: dn\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: sn,\n measureDroppableContainers: dn,\n windowRect: null,\n measuringScheduled: !1\n}, ai = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: \"\"\n },\n dispatch: dn,\n draggableNodes: /* @__PURE__ */ new Map(),\n over: null,\n measureDroppableContainers: dn\n}, Ht = /* @__PURE__ */ window.React.createContext(ai), ci = /* @__PURE__ */ window.React.createContext(qo);\nfunction Jo() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: /* @__PURE__ */ new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new Vt()\n }\n };\n}\nfunction Qo(e, t) {\n switch (t.type) {\n case ie.DragStart:\n return {\n ...e,\n draggable: {\n ...e.draggable,\n initialCoordinates: t.initialCoordinates,\n active: t.active\n }\n };\n case ie.DragMove:\n return e.draggable.active == null ? e : {\n ...e,\n draggable: {\n ...e.draggable,\n translate: {\n x: t.coordinates.x - e.draggable.initialCoordinates.x,\n y: t.coordinates.y - e.draggable.initialCoordinates.y\n }\n }\n };\n case ie.DragEnd:\n case ie.DragCancel:\n return {\n ...e,\n draggable: {\n ...e.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n case ie.RegisterDroppable: {\n const {\n element: n\n } = t, {\n id: r\n } = n, i = new Vt(e.droppable.containers);\n return i.set(r, n), {\n ...e,\n droppable: {\n ...e.droppable,\n containers: i\n }\n };\n }\n case ie.SetDroppableDisabled: {\n const {\n id: n,\n key: r,\n disabled: i\n } = t, o = e.droppable.containers.get(n);\n if (!o || r !== o.key)\n return e;\n const c = new Vt(e.droppable.containers);\n return c.set(n, {\n ...o,\n disabled: i\n }), {\n ...e,\n droppable: {\n ...e.droppable,\n containers: c\n }\n };\n }\n case ie.UnregisterDroppable: {\n const {\n id: n,\n key: r\n } = t, i = e.droppable.containers.get(n);\n if (!i || r !== i.key)\n return e;\n const o = new Vt(e.droppable.containers);\n return o.delete(n), {\n ...e,\n droppable: {\n ...e.droppable,\n containers: o\n }\n };\n }\n default:\n return e;\n }\n}\nfunction Zo(e) {\n let {\n disabled: t\n } = e;\n const {\n active: n,\n activatorEvent: r,\n draggableNodes: i\n } = window.React.useContext(Ht), o = ln(r), c = ln(n == null ? void 0 : n.id);\n return window.React.useEffect(() => {\n if (!t && !r && o && c != null) {\n if (!wn(o) || document.activeElement === o.target)\n return;\n const a = i.get(c);\n if (!a)\n return;\n const {\n activatorNode: s,\n node: l\n } = a;\n if (!s.current && !l.current)\n return;\n requestAnimationFrame(() => {\n for (const d of [s.current, l.current]) {\n if (!d)\n continue;\n const u = Ui(d);\n if (u) {\n u.focus();\n break;\n }\n }\n });\n }\n }, [r, t, i, c, o]), null;\n}\nfunction li(e, t) {\n let {\n transform: n,\n ...r\n } = t;\n return e != null && e.length ? e.reduce((i, o) => o({\n transform: i,\n ...r\n }), n) : n;\n}\nfunction es(e) {\n return window.React.useMemo(\n () => ({\n draggable: {\n ...sn.draggable,\n ...e == null ? void 0 : e.draggable\n },\n droppable: {\n ...sn.droppable,\n ...e == null ? void 0 : e.droppable\n },\n dragOverlay: {\n ...sn.dragOverlay,\n ...e == null ? void 0 : e.dragOverlay\n }\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [e == null ? void 0 : e.draggable, e == null ? void 0 : e.droppable, e == null ? void 0 : e.dragOverlay]\n );\n}\nfunction ts(e) {\n let {\n activeNode: t,\n measure: n,\n initialRect: r,\n config: i = !0\n } = e;\n const o = window.React.useRef(!1), {\n x: c,\n y: a\n } = typeof i == \"boolean\" ? {\n x: i,\n y: i\n } : i;\n Ve(() => {\n if (!c && !a || !t) {\n o.current = !1;\n return;\n }\n if (o.current || !r)\n return;\n const l = t == null ? void 0 : t.node.current;\n if (!l || l.isConnected === !1)\n return;\n const d = n(l), u = Gr(d, r);\n if (c || (u.x = 0), a || (u.y = 0), o.current = !0, Math.abs(u.x) > 0 || Math.abs(u.y) > 0) {\n const v = Jr(l);\n v && v.scrollBy({\n top: u.y,\n left: u.x\n });\n }\n }, [t, c, a, r, n]);\n}\nconst bn = /* @__PURE__ */ window.React.createContext({\n ...Pe,\n scaleX: 1,\n scaleY: 1\n});\nvar it;\n(function(e) {\n e[e.Uninitialized = 0] = \"Uninitialized\", e[e.Initializing = 1] = \"Initializing\", e[e.Initialized = 2] = \"Initialized\";\n})(it || (it = {}));\nconst ns = /* @__PURE__ */ window.React.memo(function(t) {\n var n, r, i, o;\n let {\n id: c,\n accessibility: a,\n autoScroll: s = !0,\n children: l,\n sensors: d = Ko,\n collisionDetection: u = lo,\n measuring: v,\n modifiers: h,\n ...m\n } = t;\n const g = window.React.useReducer(Qo, void 0, Jo), [b, y] = g, [S, R] = Zi(), [x, I] = window.React.useState(it.Uninitialized), E = x === it.Initialized, {\n draggable: {\n active: w,\n nodes: _,\n translate: T\n },\n droppable: {\n containers: N\n }\n } = b, j = w != null ? _.get(w) : null, L = window.React.useRef({\n initial: null,\n translated: null\n }), A = window.React.useMemo(() => {\n var ee;\n return w != null ? {\n id: w,\n // It's possible for the active node to unmount while dragging\n data: (ee = j == null ? void 0 : j.data) != null ? ee : Go,\n rect: L\n } : null;\n }, [w, j]), F = window.React.useRef(null), [P, $] = window.React.useState(null), [V, U] = window.React.useState(null), se = Pt(m, Object.values(m)), me = Yt(\"DndDescribedBy\", c), G = window.React.useMemo(() => N.getEnabled(), [N]), q = es(v), {\n droppableRects: K,\n measureDroppableContainers: ae,\n measuringScheduled: fe\n } = Po(G, {\n dragging: E,\n dependencies: [T.x, T.y],\n config: q.droppable\n }), Z = To(_, w), Me = window.React.useMemo(() => V ? un(V) : null, [V]), C = lt(), M = jo(Z, q.draggable.measure);\n ts({\n activeNode: w != null ? _.get(w) : null,\n config: C.layoutShiftCompensation,\n initialRect: M,\n measure: q.draggable.measure\n });\n const O = Er(Z, q.draggable.measure, M), H = Er(Z ? Z.parentElement : null), be = window.React.useRef({\n activatorEvent: null,\n active: null,\n activeNode: Z,\n collisionRect: null,\n collisions: null,\n droppableRects: K,\n draggableNodes: _,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers: N,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n }), Ne = N.getNodeFor((n = be.current.over) == null ? void 0 : n.id), ze = Uo({\n measure: q.dragOverlay.measure\n }), Xe = (r = ze.nodeRef.current) != null ? r : Z, Je = E ? (i = ze.rect) != null ? i : O : null, je = !!(ze.nodeRef.current && ze.rect), zt = $o(je ? null : O), _t = oi(Xe ? ge(Xe) : null), ke = Bo(E ? Ne ?? Z : null), Qe = Wo(ke), Fe = li(h, {\n transform: {\n x: T.x - zt.x,\n y: T.y - zt.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent: V,\n active: A,\n activeNodeRect: O,\n containerNodeRect: H,\n draggingNodeRect: Je,\n over: be.current.over,\n overlayNodeRect: ze.rect,\n scrollableAncestors: ke,\n scrollableAncestorRects: Qe,\n windowRect: _t\n }), ft = Me ? yt(Me, T) : null, ht = Yo(ke), It = Or(ht), at = Or(ht, [O]), Ze = yt(Fe, It), et = Je ? ho(Je, Fe) : null, ct = A && et ? u({\n active: A,\n collisionRect: et,\n droppableRects: K,\n droppableContainers: G,\n pointerCoordinates: ft\n }) : null, Xt = Kr(ct, \"id\"), [$e, Dt] = window.React.useState(null), Et = je ? Fe : yt(Fe, at), We = uo(Et, (o = $e == null ? void 0 : $e.rect) != null ? o : null, O), ye = window.React.useRef(null), Be = window.React.useCallback(\n (ee, ue) => {\n let {\n sensor: he,\n options: Ye\n } = ue;\n if (F.current == null)\n return;\n const ve = _.get(F.current);\n if (!ve)\n return;\n const de = ee.nativeEvent, pe = new he({\n active: F.current,\n activeNode: ve,\n event: de,\n options: Ye,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: be,\n onAbort(te) {\n if (!_.get(te))\n return;\n const {\n onDragAbort: _e\n } = se.current, le = {\n id: te\n };\n _e == null || _e(le), S({\n type: \"onDragAbort\",\n event: le\n });\n },\n onPending(te, ce, _e, le) {\n if (!_.get(te))\n return;\n const {\n onDragPending: ut\n } = se.current, Re = {\n id: te,\n constraint: ce,\n initialCoordinates: _e,\n offset: le\n };\n ut == null || ut(Re), S({\n type: \"onDragPending\",\n event: Re\n });\n },\n onStart(te) {\n const ce = F.current;\n if (ce == null)\n return;\n const _e = _.get(ce);\n if (!_e)\n return;\n const {\n onDragStart: le\n } = se.current, tt = {\n activatorEvent: de,\n active: {\n id: ce,\n data: _e.data,\n rect: L\n }\n };\n window.ReactDOM.unstable_batchedUpdates(() => {\n le == null || le(tt), I(it.Initializing), y({\n type: ie.DragStart,\n initialCoordinates: te,\n active: ce\n }), S({\n type: \"onDragStart\",\n event: tt\n }), $(ye.current), U(de);\n });\n },\n onMove(te) {\n y({\n type: ie.DragMove,\n coordinates: te\n });\n },\n onEnd: Se(ie.DragEnd),\n onCancel: Se(ie.DragCancel)\n });\n ye.current = pe;\n function Se(te) {\n return async function() {\n const {\n active: _e,\n collisions: le,\n over: tt,\n scrollAdjustedTranslate: ut\n } = be.current;\n let Re = null;\n if (_e && ut) {\n const {\n cancelDrop: Ue\n } = se.current;\n Re = {\n activatorEvent: de,\n active: _e,\n collisions: le,\n delta: ut,\n over: tt\n }, te === ie.DragEnd && typeof Ue == \"function\" && await Promise.resolve(Ue(Re)) && (te = ie.DragCancel);\n }\n F.current = null, window.ReactDOM.unstable_batchedUpdates(() => {\n y({\n type: te\n }), I(it.Uninitialized), Dt(null), $(null), U(null), ye.current = null;\n const Ue = te === ie.DragEnd ? \"onDragEnd\" : \"onDragCancel\";\n if (Re) {\n const wt = se.current[Ue];\n wt == null || wt(Re), S({\n type: Ue,\n event: Re\n });\n }\n });\n };\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [_]\n ), vt = window.React.useCallback((ee, ue) => (he, Ye) => {\n const ve = he.nativeEvent, de = _.get(Ye);\n if (\n // Another sensor is already instantiating\n F.current !== null || // No active draggable\n !de || // Event has already been captured\n ve.dndKit || ve.defaultPrevented\n )\n return;\n const pe = {\n active: de\n };\n ee(he, ue.options, pe) === !0 && (ve.dndKit = {\n capturedBy: ue.sensor\n }, F.current = Ye, Be(he, ue));\n }, [_, Be]), Ae = Vo(d, vt);\n Ho(d), Ve(() => {\n O && x === it.Initializing && I(it.Initialized);\n }, [O, x]), window.React.useEffect(\n () => {\n const {\n onDragMove: ee\n } = se.current, {\n active: ue,\n activatorEvent: he,\n collisions: Ye,\n over: ve\n } = be.current;\n if (!ue || !he)\n return;\n const de = {\n active: ue,\n activatorEvent: he,\n collisions: Ye,\n delta: {\n x: Ze.x,\n y: Ze.y\n },\n over: ve\n };\n window.ReactDOM.unstable_batchedUpdates(() => {\n ee == null || ee(de), S({\n type: \"onDragMove\",\n event: de\n });\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [Ze.x, Ze.y]\n ), window.React.useEffect(\n () => {\n const {\n active: ee,\n activatorEvent: ue,\n collisions: he,\n droppableContainers: Ye,\n scrollAdjustedTranslate: ve\n } = be.current;\n if (!ee || F.current == null || !ue || !ve)\n return;\n const {\n onDragOver: de\n } = se.current, pe = Ye.get(Xt), Se = pe && pe.rect.current ? {\n id: pe.id,\n rect: pe.rect.current,\n data: pe.data,\n disabled: pe.disabled\n } : null, te = {\n active: ee,\n activatorEvent: ue,\n collisions: he,\n delta: {\n x: ve.x,\n y: ve.y\n },\n over: Se\n };\n window.ReactDOM.unstable_batchedUpdates(() => {\n Dt(Se), de == null || de(te), S({\n type: \"onDragOver\",\n event: te\n });\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [Xt]\n ), Ve(() => {\n be.current = {\n activatorEvent: V,\n active: A,\n activeNode: Z,\n collisionRect: et,\n collisions: ct,\n droppableRects: K,\n draggableNodes: _,\n draggingNode: Xe,\n draggingNodeRect: Je,\n droppableContainers: N,\n over: $e,\n scrollableAncestors: ke,\n scrollAdjustedTranslate: Ze\n }, L.current = {\n initial: Je,\n translated: et\n };\n }, [A, Z, ct, et, _, Xe, Je, K, N, $e, ke, Ze]), No({\n ...C,\n delta: T,\n draggingRect: et,\n pointerCoordinates: ft,\n scrollableAncestors: ke,\n scrollableAncestorRects: Qe\n });\n const yn = window.React.useMemo(() => ({\n active: A,\n activeNode: Z,\n activeNodeRect: O,\n activatorEvent: V,\n collisions: ct,\n containerNodeRect: H,\n dragOverlay: ze,\n draggableNodes: _,\n droppableContainers: N,\n droppableRects: K,\n over: $e,\n measureDroppableContainers: ae,\n scrollableAncestors: ke,\n scrollableAncestorRects: Qe,\n measuringConfiguration: q,\n measuringScheduled: fe,\n windowRect: _t\n }), [A, Z, O, V, ct, H, ze, _, N, K, $e, ae, ke, Qe, q, fe, _t]), pt = window.React.useMemo(() => ({\n activatorEvent: V,\n activators: Ae,\n active: A,\n activeNodeRect: O,\n ariaDescribedById: {\n draggable: me\n },\n dispatch: y,\n draggableNodes: _,\n over: $e,\n measureDroppableContainers: ae\n }), [V, Ae, A, O, y, me, _, $e, ae]);\n return window.React.createElement(Xr.Provider, {\n value: R\n }, window.React.createElement(Ht.Provider, {\n value: pt\n }, window.React.createElement(ci.Provider, {\n value: yn\n }, window.React.createElement(bn.Provider, {\n value: We\n }, l)), window.React.createElement(Zo, {\n disabled: (a == null ? void 0 : a.restoreFocus) === !1\n })), window.React.createElement(no, {\n ...a,\n hiddenTextDescribedById: me\n }));\n function lt() {\n const ee = (P == null ? void 0 : P.autoScrollEnabled) === !1, ue = typeof s == \"object\" ? s.enabled === !1 : s === !1, he = E && !ee && !ue;\n return typeof s == \"object\" ? {\n ...s,\n enabled: he\n } : {\n enabled: he\n };\n }\n}), rs = /* @__PURE__ */ window.React.createContext(null), Nr = \"button\", is = \"Draggable\";\nfunction os(e) {\n let {\n id: t,\n data: n,\n disabled: r = !1,\n attributes: i\n } = e;\n const o = Yt(is), {\n activators: c,\n activatorEvent: a,\n active: s,\n activeNodeRect: l,\n ariaDescribedById: d,\n draggableNodes: u,\n over: v\n } = window.React.useContext(Ht), {\n role: h = Nr,\n roleDescription: m = \"draggable\",\n tabIndex: g = 0\n } = i ?? {}, b = (s == null ? void 0 : s.id) === t, y = window.React.useContext(b ? bn : rs), [S, R] = cn(), [x, I] = cn(), E = Xo(c, t), w = Pt(n);\n Ve(\n () => (u.set(t, {\n id: t,\n key: o,\n node: S,\n activatorNode: x,\n data: w\n }), () => {\n const T = u.get(t);\n T && T.key === o && u.delete(t);\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [u, t]\n );\n const _ = window.React.useMemo(() => ({\n role: h,\n tabIndex: g,\n \"aria-disabled\": r,\n \"aria-pressed\": b && h === Nr ? !0 : void 0,\n \"aria-roledescription\": m,\n \"aria-describedby\": d.draggable\n }), [r, h, g, b, m, d.draggable]);\n return {\n active: s,\n activatorEvent: a,\n activeNodeRect: l,\n attributes: _,\n isDragging: b,\n listeners: r ? void 0 : E,\n node: S,\n over: v,\n setNodeRef: R,\n setActivatorNodeRef: I,\n transform: y\n };\n}\nfunction ui() {\n return window.React.useContext(ci);\n}\nconst ss = \"Droppable\", as = {\n timeout: 25\n};\nfunction cs(e) {\n let {\n data: t,\n disabled: n = !1,\n id: r,\n resizeObserverConfig: i\n } = e;\n const o = Yt(ss), {\n active: c,\n dispatch: a,\n over: s,\n measureDroppableContainers: l\n } = window.React.useContext(Ht), d = window.React.useRef({\n disabled: n\n }), u = window.React.useRef(!1), v = window.React.useRef(null), h = window.React.useRef(null), {\n disabled: m,\n updateMeasurementsFor: g,\n timeout: b\n } = {\n ...as,\n ...i\n }, y = Pt(g ?? r), S = window.React.useCallback(\n () => {\n if (!u.current) {\n u.current = !0;\n return;\n }\n h.current != null && clearTimeout(h.current), h.current = setTimeout(() => {\n l(Array.isArray(y.current) ? y.current : [y.current]), h.current = null;\n }, b);\n },\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [b]\n ), R = mn({\n callback: S,\n disabled: m || !c\n }), x = window.React.useCallback((_, T) => {\n R && (T && (R.unobserve(T), u.current = !1), _ && R.observe(_));\n }, [R]), [I, E] = cn(x), w = Pt(t);\n return window.React.useEffect(() => {\n !R || !I.current || (R.disconnect(), u.current = !1, R.observe(I.current));\n }, [I, R]), window.React.useEffect(\n () => (a({\n type: ie.RegisterDroppable,\n element: {\n id: r,\n key: o,\n disabled: n,\n node: I,\n rect: v,\n data: w\n }\n }), () => a({\n type: ie.UnregisterDroppable,\n key: o,\n id: r\n })),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [r]\n ), window.React.useEffect(() => {\n n !== d.current.disabled && (a({\n type: ie.SetDroppableDisabled,\n id: r,\n key: o,\n disabled: n\n }), d.current.disabled = n);\n }, [r, o, n, a]), {\n active: c,\n rect: v,\n isOver: (s == null ? void 0 : s.id) === r,\n node: I,\n over: s,\n setNodeRef: E\n };\n}\nfunction ls(e) {\n let {\n animation: t,\n children: n\n } = e;\n const [r, i] = window.React.useState(null), [o, c] = window.React.useState(null), a = ln(n);\n return !n && !r && a && i(a), Ve(() => {\n if (!o)\n return;\n const s = r == null ? void 0 : r.key, l = r == null ? void 0 : r.props.id;\n if (s == null || l == null) {\n i(null);\n return;\n }\n Promise.resolve(t(l, o)).then(() => {\n i(null);\n });\n }, [t, r, o]), window.React.createElement(window.React.Fragment, null, n, r ? window.React.cloneElement(r, {\n ref: c\n }) : null);\n}\nconst us = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction ds(e) {\n let {\n children: t\n } = e;\n return window.React.createElement(Ht.Provider, {\n value: ai\n }, window.React.createElement(bn.Provider, {\n value: us\n }, t));\n}\nconst fs = {\n position: \"fixed\",\n touchAction: \"none\"\n}, hs = (e) => wn(e) ? \"transform 250ms ease\" : void 0, vs = /* @__PURE__ */ window.React.forwardRef((e, t) => {\n let {\n as: n,\n activatorEvent: r,\n adjustScale: i,\n children: o,\n className: c,\n rect: a,\n style: s,\n transform: l,\n transition: d = hs\n } = e;\n if (!a)\n return null;\n const u = i ? l : {\n ...l,\n scaleX: 1,\n scaleY: 1\n }, v = {\n ...fs,\n width: a.width,\n height: a.height,\n top: a.top,\n left: a.left,\n transform: st.Transform.toString(u),\n transformOrigin: i && r ? io(r, a) : void 0,\n transition: typeof d == \"function\" ? d(r) : d,\n ...s\n };\n return window.React.createElement(n, {\n className: c,\n style: v,\n ref: t\n }, o);\n}), ps = (e) => (t) => {\n let {\n active: n,\n dragOverlay: r\n } = t;\n const i = {}, {\n styles: o,\n className: c\n } = e;\n if (o != null && o.active)\n for (const [a, s] of Object.entries(o.active))\n s !== void 0 && (i[a] = n.node.style.getPropertyValue(a), n.node.style.setProperty(a, s));\n if (o != null && o.dragOverlay)\n for (const [a, s] of Object.entries(o.dragOverlay))\n s !== void 0 && r.node.style.setProperty(a, s);\n return c != null && c.active && n.node.classList.add(c.active), c != null && c.dragOverlay && r.node.classList.add(c.dragOverlay), function() {\n for (const [s, l] of Object.entries(i))\n n.node.style.setProperty(s, l);\n c != null && c.active && n.node.classList.remove(c.active);\n };\n}, ws = (e) => {\n let {\n transform: {\n initial: t,\n final: n\n }\n } = e;\n return [{\n transform: st.Transform.toString(t)\n }, {\n transform: st.Transform.toString(n)\n }];\n}, gs = {\n duration: 250,\n easing: \"ease\",\n keyframes: ws,\n sideEffects: /* @__PURE__ */ ps({\n styles: {\n active: {\n opacity: \"0\"\n }\n }\n })\n};\nfunction ms(e) {\n let {\n config: t,\n draggableNodes: n,\n droppableContainers: r,\n measuringConfiguration: i\n } = e;\n return pn((o, c) => {\n if (t === null)\n return;\n const a = n.get(o);\n if (!a)\n return;\n const s = a.node.current;\n if (!s)\n return;\n const l = si(c);\n if (!l)\n return;\n const {\n transform: d\n } = ge(c).getComputedStyle(c), u = qr(d);\n if (!u)\n return;\n const v = typeof t == \"function\" ? t : bs(t);\n return ri(s, i.draggable.measure), v({\n active: {\n id: o,\n data: a.data,\n node: s,\n rect: i.draggable.measure(s)\n },\n draggableNodes: n,\n dragOverlay: {\n node: c,\n rect: i.dragOverlay.measure(l)\n },\n droppableContainers: r,\n measuringConfiguration: i,\n transform: u\n });\n });\n}\nfunction bs(e) {\n const {\n duration: t,\n easing: n,\n sideEffects: r,\n keyframes: i\n } = {\n ...gs,\n ...e\n };\n return (o) => {\n let {\n active: c,\n dragOverlay: a,\n transform: s,\n ...l\n } = o;\n if (!t)\n return;\n const d = {\n x: a.rect.left - c.rect.left,\n y: a.rect.top - c.rect.top\n }, u = {\n scaleX: s.scaleX !== 1 ? c.rect.width * s.scaleX / a.rect.width : 1,\n scaleY: s.scaleY !== 1 ? c.rect.height * s.scaleY / a.rect.height : 1\n }, v = {\n x: s.x - d.x,\n y: s.y - d.y,\n ...u\n }, h = i({\n ...l,\n active: c,\n dragOverlay: a,\n transform: {\n initial: s,\n final: v\n }\n }), [m] = h, g = h[h.length - 1];\n if (JSON.stringify(m) === JSON.stringify(g))\n return;\n const b = r == null ? void 0 : r({\n active: c,\n dragOverlay: a,\n ...l\n }), y = a.node.animate(h, {\n duration: t,\n easing: n,\n fill: \"forwards\"\n });\n return new Promise((S) => {\n y.onfinish = () => {\n b == null || b(), S();\n };\n });\n };\n}\nlet Ar = 0;\nfunction ys(e) {\n return window.React.useMemo(() => {\n if (e != null)\n return Ar++, Ar;\n }, [e]);\n}\nconst Ss = /* @__PURE__ */ window.React.memo((e) => {\n let {\n adjustScale: t = !1,\n children: n,\n dropAnimation: r,\n style: i,\n transition: o,\n modifiers: c,\n wrapperElement: a = \"div\",\n className: s,\n zIndex: l = 999\n } = e;\n const {\n activatorEvent: d,\n active: u,\n activeNodeRect: v,\n containerNodeRect: h,\n draggableNodes: m,\n droppableContainers: g,\n dragOverlay: b,\n over: y,\n measuringConfiguration: S,\n scrollableAncestors: R,\n scrollableAncestorRects: x,\n windowRect: I\n } = ui(), E = window.React.useContext(bn), w = ys(u == null ? void 0 : u.id), _ = li(c, {\n activatorEvent: d,\n active: u,\n activeNodeRect: v,\n containerNodeRect: h,\n draggingNodeRect: b.rect,\n over: y,\n overlayNodeRect: b.rect,\n scrollableAncestors: R,\n scrollableAncestorRects: x,\n transform: E,\n windowRect: I\n }), T = Un(v), N = ms({\n config: r,\n draggableNodes: m,\n droppableContainers: g,\n measuringConfiguration: S\n }), j = T ? b.setRef : void 0;\n return window.React.createElement(ds, null, window.React.createElement(ls, {\n animation: N\n }, u && w ? window.React.createElement(vs, {\n key: w,\n id: u.id,\n ref: j,\n as: a,\n activatorEvent: d,\n adjustScale: t,\n className: s,\n transition: o,\n rect: T,\n style: {\n zIndex: l,\n ...i\n },\n transform: _\n }, n) : null));\n});\nfunction Kn(e, t, n) {\n const r = e.slice();\n return r.splice(n < 0 ? r.length + n : n, 0, r.splice(t, 1)[0]), r;\n}\nfunction Rs(e, t) {\n return e.reduce((n, r, i) => {\n const o = t.get(r);\n return o && (n[i] = o), n;\n }, Array(e.length));\n}\nfunction rn(e) {\n return e !== null && e >= 0;\n}\nfunction xs(e, t) {\n if (e === t)\n return !0;\n if (e.length !== t.length)\n return !1;\n for (let n = 0; n < e.length; n++)\n if (e[n] !== t[n])\n return !1;\n return !0;\n}\nfunction zs(e) {\n return typeof e == \"boolean\" ? {\n draggable: e,\n droppable: e\n } : e;\n}\nconst di = (e) => {\n let {\n rects: t,\n activeIndex: n,\n overIndex: r,\n index: i\n } = e;\n const o = Kn(t, r, n), c = t[i], a = o[i];\n return !a || !c ? null : {\n x: a.left - c.left,\n y: a.top - c.top,\n scaleX: a.width / c.width,\n scaleY: a.height / c.height\n };\n}, on = {\n scaleX: 1,\n scaleY: 1\n}, _s = (e) => {\n var t;\n let {\n activeIndex: n,\n activeNodeRect: r,\n index: i,\n rects: o,\n overIndex: c\n } = e;\n const a = (t = o[n]) != null ? t : r;\n if (!a)\n return null;\n if (i === n) {\n const l = o[c];\n return l ? {\n x: 0,\n y: n < c ? l.top + l.height - (a.top + a.height) : l.top - a.top,\n ...on\n } : null;\n }\n const s = Is(o, i, n);\n return i > n && i <= c ? {\n x: 0,\n y: -a.height - s,\n ...on\n } : i < n && i >= c ? {\n x: 0,\n y: a.height + s,\n ...on\n } : {\n x: 0,\n y: 0,\n ...on\n };\n};\nfunction Is(e, t, n) {\n const r = e[t], i = e[t - 1], o = e[t + 1];\n return r ? n < t ? i ? r.top - (i.top + i.height) : o ? o.top - (r.top + r.height) : 0 : o ? o.top - (r.top + r.height) : i ? r.top - (i.top + i.height) : 0 : 0;\n}\nconst fi = \"Sortable\", hi = /* @__PURE__ */ window.React.createContext({\n activeIndex: -1,\n containerId: fi,\n disableTransforms: !1,\n items: [],\n overIndex: -1,\n useDragOverlay: !1,\n sortedRects: [],\n strategy: di,\n disabled: {\n draggable: !1,\n droppable: !1\n }\n});\nfunction Ds(e) {\n let {\n children: t,\n id: n,\n items: r,\n strategy: i = di,\n disabled: o = !1\n } = e;\n const {\n active: c,\n dragOverlay: a,\n droppableRects: s,\n over: l,\n measureDroppableContainers: d\n } = ui(), u = Yt(fi, n), v = a.rect !== null, h = window.React.useMemo(() => r.map((E) => typeof E == \"object\" && \"id\" in E ? E.id : E), [r]), m = c != null, g = c ? h.indexOf(c.id) : -1, b = l ? h.indexOf(l.id) : -1, y = window.React.useRef(h), S = !xs(h, y.current), R = b !== -1 && g === -1 || S, x = zs(o);\n Ve(() => {\n S && m && d(h);\n }, [S, h, m, d]), window.React.useEffect(() => {\n y.current = h;\n }, [h]);\n const I = window.React.useMemo(\n () => ({\n activeIndex: g,\n containerId: u,\n disabled: x,\n disableTransforms: R,\n items: h,\n overIndex: b,\n useDragOverlay: v,\n sortedRects: Rs(h, s),\n strategy: i\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [g, u, x.draggable, x.droppable, R, h, b, s, v, i]\n );\n return window.React.createElement(hi.Provider, {\n value: I\n }, t);\n}\nconst Es = (e) => {\n let {\n id: t,\n items: n,\n activeIndex: r,\n overIndex: i\n } = e;\n return Kn(n, r, i).indexOf(t);\n}, Cs = (e) => {\n let {\n containerId: t,\n isSorting: n,\n wasDragging: r,\n index: i,\n items: o,\n newIndex: c,\n previousItems: a,\n previousContainerId: s,\n transition: l\n } = e;\n return !l || !r || a !== o && i === c ? !1 : n ? !0 : c !== i && t === s;\n}, Os = {\n duration: 200,\n easing: \"ease\"\n}, vi = \"transform\", Ms = /* @__PURE__ */ st.Transition.toString({\n property: vi,\n duration: 0,\n easing: \"linear\"\n}), Ns = {\n roleDescription: \"sortable\"\n};\nfunction As(e) {\n let {\n disabled: t,\n index: n,\n node: r,\n rect: i\n } = e;\n const [o, c] = window.React.useState(null), a = window.React.useRef(n);\n return Ve(() => {\n if (!t && n !== a.current && r.current) {\n const s = i.current;\n if (s) {\n const l = xt(r.current, {\n ignoreTransform: !0\n }), d = {\n x: s.left - l.left,\n y: s.top - l.top,\n scaleX: s.width / l.width,\n scaleY: s.height / l.height\n };\n (d.x || d.y) && c(d);\n }\n }\n n !== a.current && (a.current = n);\n }, [t, n, r, i]), window.React.useEffect(() => {\n o && c(null);\n }, [o]), o;\n}\nfunction Ls(e) {\n let {\n animateLayoutChanges: t = Cs,\n attributes: n,\n disabled: r,\n data: i,\n getNewIndex: o = Es,\n id: c,\n strategy: a,\n resizeObserverConfig: s,\n transition: l = Os\n } = e;\n const {\n items: d,\n containerId: u,\n activeIndex: v,\n disabled: h,\n disableTransforms: m,\n sortedRects: g,\n overIndex: b,\n useDragOverlay: y,\n strategy: S\n } = window.React.useContext(hi), R = Ts(r, h), x = d.indexOf(c), I = window.React.useMemo(() => ({\n sortable: {\n containerId: u,\n index: x,\n items: d\n },\n ...i\n }), [u, i, x, d]), E = window.React.useMemo(() => d.slice(d.indexOf(c)), [d, c]), {\n rect: w,\n node: _,\n isOver: T,\n setNodeRef: N\n } = cs({\n id: c,\n data: I,\n disabled: R.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: E,\n ...s\n }\n }), {\n active: j,\n activatorEvent: L,\n activeNodeRect: A,\n attributes: F,\n setNodeRef: P,\n listeners: $,\n isDragging: V,\n over: U,\n setActivatorNodeRef: se,\n transform: me\n } = os({\n id: c,\n data: I,\n attributes: {\n ...Ns,\n ...n\n },\n disabled: R.draggable\n }), G = Yi(N, P), q = !!j, K = q && !m && rn(v) && rn(b), ae = !y && V, fe = ae && K ? me : null, Me = K ? fe ?? (a ?? S)({\n rects: g,\n activeNodeRect: A,\n activeIndex: v,\n overIndex: b,\n index: x\n }) : null, C = rn(v) && rn(b) ? o({\n id: c,\n items: d,\n activeIndex: v,\n overIndex: b\n }) : x, M = j == null ? void 0 : j.id, O = window.React.useRef({\n activeId: M,\n items: d,\n newIndex: C,\n containerId: u\n }), H = d !== O.current.items, be = t({\n active: j,\n containerId: u,\n isDragging: V,\n isSorting: q,\n id: c,\n index: x,\n items: d,\n newIndex: O.current.newIndex,\n previousItems: O.current.items,\n previousContainerId: O.current.containerId,\n transition: l,\n wasDragging: O.current.activeId != null\n }), Ne = As({\n disabled: !be,\n index: x,\n node: _,\n rect: w\n });\n return window.React.useEffect(() => {\n q && O.current.newIndex !== C && (O.current.newIndex = C), u !== O.current.containerId && (O.current.containerId = u), d !== O.current.items && (O.current.items = d);\n }, [q, C, u, d]), window.React.useEffect(() => {\n if (M === O.current.activeId)\n return;\n if (M != null && O.current.activeId == null) {\n O.current.activeId = M;\n return;\n }\n const Xe = setTimeout(() => {\n O.current.activeId = M;\n }, 50);\n return () => clearTimeout(Xe);\n }, [M]), {\n active: j,\n activeIndex: v,\n attributes: F,\n data: I,\n rect: w,\n index: x,\n newIndex: C,\n items: d,\n isOver: T,\n isSorting: q,\n isDragging: V,\n listeners: $,\n node: _,\n overIndex: b,\n over: U,\n setNodeRef: G,\n setActivatorNodeRef: se,\n setDroppableNodeRef: N,\n setDraggableNodeRef: P,\n transform: Ne ?? Me,\n transition: ze()\n };\n function ze() {\n if (\n // Temporarily disable transitions for a single frame to set up derived transforms\n Ne || // Or to prevent items jumping to back to their \"new\" position when items change\n H && O.current.newIndex === x\n )\n return Ms;\n if (!(ae && !wn(L) || !l) && (q || be))\n return st.Transition.toString({\n ...l,\n property: vi\n });\n }\n}\nfunction Ts(e, t) {\n var n, r;\n return typeof e == \"boolean\" ? {\n draggable: e,\n // Backwards compatibility\n droppable: !1\n } : {\n draggable: (n = e == null ? void 0 : e.draggable) != null ? n : t.draggable,\n droppable: (r = e == null ? void 0 : e.droppable) != null ? r : t.droppable\n };\n}\nfunction hn(e) {\n if (!e)\n return !1;\n const t = e.data.current;\n return !!(t && \"sortable\" in t && typeof t.sortable == \"object\" && \"containerId\" in t.sortable && \"items\" in t.sortable && \"index\" in t.sortable);\n}\nconst Vs = [B.Down, B.Right, B.Up, B.Left], Ps = (e, t) => {\n let {\n context: {\n active: n,\n collisionRect: r,\n droppableRects: i,\n droppableContainers: o,\n over: c,\n scrollableAncestors: a\n }\n } = t;\n if (Vs.includes(e.code)) {\n if (e.preventDefault(), !n || !r)\n return;\n const s = [];\n o.getEnabled().forEach((u) => {\n if (!u || u != null && u.disabled)\n return;\n const v = i.get(u.id);\n if (v)\n switch (e.code) {\n case B.Down:\n r.top < v.top && s.push(u);\n break;\n case B.Up:\n r.top > v.top && s.push(u);\n break;\n case B.Left:\n r.left > v.left && s.push(u);\n break;\n case B.Right:\n r.left < v.left && s.push(u);\n break;\n }\n });\n const l = ao({\n collisionRect: r,\n droppableRects: i,\n droppableContainers: s\n });\n let d = Kr(l, \"id\");\n if (d === (c == null ? void 0 : c.id) && l.length > 1 && (d = l[1].id), d != null) {\n const u = o.get(n.id), v = o.get(d), h = v ? i.get(v.id) : null, m = v == null ? void 0 : v.node.current;\n if (m && h && u && v) {\n const b = gn(m).some((E, w) => a[w] !== E), y = pi(u, v), S = js(u, v), R = b || !y ? {\n x: 0,\n y: 0\n } : {\n x: S ? r.width - h.width : 0,\n y: S ? r.height - h.height : 0\n }, x = {\n x: h.left,\n y: h.top\n };\n return R.x && R.y ? x : jt(x, R);\n }\n }\n }\n};\nfunction pi(e, t) {\n return !hn(e) || !hn(t) ? !1 : e.data.current.sortable.containerId === t.data.current.sortable.containerId;\n}\nfunction js(e, t) {\n return !hn(e) || !hn(t) || !pi(e, t) ? !1 : e.data.current.sortable.index < t.data.current.sortable.index;\n}\nfunction ks(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Ln = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar Lr;\nfunction Fs() {\n return Lr || (Lr = 1, (function(e) {\n (function() {\n var t = {}.hasOwnProperty;\n function n() {\n for (var o = \"\", c = 0; c < arguments.length; c++) {\n var a = arguments[c];\n a && (o = i(o, r(a)));\n }\n return o;\n }\n function r(o) {\n if (typeof o == \"string\" || typeof o == \"number\")\n return o;\n if (typeof o != \"object\")\n return \"\";\n if (Array.isArray(o))\n return n.apply(null, o);\n if (o.toString !== Object.prototype.toString && !o.toString.toString().includes(\"[native code]\"))\n return o.toString();\n var c = \"\";\n for (var a in o)\n t.call(o, a) && o[a] && (c = i(c, a));\n return c;\n }\n function i(o, c) {\n return c ? o ? o + \" \" + c : o + c : o;\n }\n e.exports ? (n.default = n, e.exports = n) : window.classNames = n;\n })();\n })(Ln)), Ln.exports;\n}\nvar $s = Fs();\nconst wi = /* @__PURE__ */ ks($s);\nfunction Bs({\n id: e,\n item: t,\n renderItem: n,\n disabled: r,\n itemWrapperClassName: i,\n activeId: o\n}) {\n const {\n attributes: c,\n listeners: a,\n setNodeRef: s,\n setActivatorNodeRef: l,\n transform: d,\n transition: u,\n isDragging: v,\n over: h\n } = Ls({ id: e, disabled: r }), m = {\n transform: st.Transform.toString(d),\n transition: u,\n opacity: v ? 0.5 : 1,\n zIndex: v ? 1 : 0\n }, g = (h == null ? void 0 : h.id) === e && o !== e, b = {\n ref: l,\n ...a,\n ...c\n };\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n ref: s,\n style: m,\n className: wi(i),\n \"data-sortable-wrapper\": \"true\"\n },\n n(t, { dragHandleProps: b, isDragging: v, isDragOver: g })\n );\n}\nfunction Ys({\n item: e,\n renderItem: t,\n itemWrapperClassName: n\n}) {\n const r = {};\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: wi(n, \"bg-white\"),\n style: {\n boxShadow: \"0 4px 12px rgba(0,0,0,0.15)\",\n transform: \"scale(1.02)\",\n cursor: \"grabbing\"\n }\n },\n t(e, {\n dragHandleProps: r,\n isDragging: !0,\n isDragOver: !1\n })\n );\n}\nfunction Xs(e) {\n const {\n items: t,\n onChange: n,\n getId: r,\n renderItem: i,\n validateReorder: o,\n renderError: c,\n disabled: a = !1,\n className: s,\n itemWrapperClassName: l\n } = e, [d, u] = window.wp.element.useState(null), [v, h] = window.wp.element.useState(null), m = window.wp.element.useMemo(() => t.map(r), [t, r]), g = ro(\n yr(Wn, {\n activationConstraint: {\n distance: 5\n // 5px movement required before drag starts\n }\n }),\n yr(Hn, {\n coordinateGetter: Ps\n })\n ), b = (x) => {\n u(x.active.id), h(null);\n }, y = (x) => {\n const { active: I, over: E } = x;\n if (u(null), !E || I.id === E.id)\n return;\n const w = m.indexOf(I.id), _ = m.indexOf(E.id);\n if (w === -1 || _ === -1)\n return;\n const T = Kn(t, w, _);\n if (o) {\n const N = o(T);\n if (N) {\n h(N);\n return;\n }\n }\n h(null), n(T);\n }, S = () => {\n u(null);\n }, R = d !== null ? t.find((x) => r(x) === d) : null;\n return /* @__PURE__ */ React.createElement(\"div\", { className: s }, v && c ? c(v) : null, /* @__PURE__ */ React.createElement(\n ns,\n {\n sensors: g,\n collisionDetection: so,\n onDragStart: b,\n onDragEnd: y,\n onDragCancel: S\n },\n /* @__PURE__ */ React.createElement(Ds, { items: m, strategy: _s }, /* @__PURE__ */ React.createElement(\"div\", { className: \"flex flex-col gap-2\" }, t.map((x) => {\n const I = r(x);\n return /* @__PURE__ */ React.createElement(\n Bs,\n {\n key: I,\n id: I,\n item: x,\n renderItem: i,\n disabled: a,\n itemWrapperClassName: l,\n activeId: d\n }\n );\n }))),\n /* @__PURE__ */ React.createElement(Ss, null, R ? /* @__PURE__ */ React.createElement(\n Ys,\n {\n item: R,\n renderItem: i,\n itemWrapperClassName: l\n }\n ) : null)\n ));\n}\nexport {\n Hs as Allotment,\n Xs as SortableList\n};\n//# sourceMappingURL=libraries.js.map\n","import { Allotment } from '@blockbite/libraries';\nimport { useLayoutEffect, useRef } from '@wordpress/element';\n\nexport const SplitPane = ({\n pane1,\n pane2,\n handle,\n className = '',\n minSize1 = 150,\n minSize2 = 150,\n}) => {\n const allotmentRef = useRef(null);\n const hasPane2 = !!pane2;\n const prevHasPane2 = useRef(false);\n const savedSizesRef = useRef(null);\n const isFirstMount = useRef(true);\n\n // Load saved sizes from localStorage on mount\n if (isFirstMount.current && handle) {\n const savedSizes = localStorage.getItem(`splitPaneSizes-${handle}`);\n if (savedSizes) {\n try {\n savedSizesRef.current = JSON.parse(savedSizes);\n } catch (e) {\n savedSizesRef.current = [70, 30];\n }\n } else {\n savedSizesRef.current = [70, 30];\n }\n isFirstMount.current = false;\n }\n\n // Apply saved sizes when pane2 becomes visible (use layoutEffect to avoid flash)\n useLayoutEffect(() => {\n if (\n hasPane2 &&\n !prevHasPane2.current &&\n allotmentRef.current &&\n savedSizesRef.current\n ) {\n // pane2 just became visible, restore saved sizes\n requestAnimationFrame(() => {\n if (allotmentRef.current?.resize) {\n allotmentRef.current.resize(savedSizesRef.current);\n }\n });\n }\n prevHasPane2.current = hasPane2;\n }, [hasPane2]);\n\n // Save sizes to localStorage when they change\n const handleChange = (newSizes) => {\n // Only save if pane2 is visible and sizes are reasonable (not collapsed)\n if (handle && hasPane2 && newSizes[1] > 10) {\n savedSizesRef.current = newSizes;\n localStorage.setItem(\n `splitPaneSizes-${handle}`,\n JSON.stringify(newSizes)\n );\n }\n };\n\n // Get initial sizes - always use saved sizes when pane2 is visible\n let defaultSizes;\n if (!hasPane2) {\n defaultSizes = [100, 0];\n } else {\n // Always use saved sizes when pane2 is visible\n defaultSizes = savedSizesRef.current || [70, 30];\n }\n\n return (\n <Allotment\n ref={allotmentRef}\n className={className}\n onChange={handleChange}\n defaultSizes={defaultSizes}\n proportionalLayout={true}\n >\n <Allotment.Pane minSize={minSize1}>{pane1}</Allotment.Pane>\n <Allotment.Pane visible={hasPane2} minSize={minSize2}>\n {pane2}\n </Allotment.Pane>\n </Allotment>\n );\n};\n","import { TabPanel } from '@wordpress/components';\nimport { createContext, useContext, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nconst TabsContext = createContext<{\n activeTab: string | undefined;\n setActiveTab: React.Dispatch<React.SetStateAction<string | undefined>>;\n initialTabName?: string;\n} | null>(null);\n\ntype TabsProps = {\n className?: string;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n children?: React.ReactNode;\n style?: React.CSSProperties;\n};\n\nexport const TabsWrapper = ({\n children,\n defaultValue,\n value,\n onValueChange,\n className,\n ...rest\n}: TabsProps) => {\n const isControlled = value !== undefined;\n\n const [internalValue, setInternalValue] = useState(defaultValue || '');\n\n const activeTab = isControlled ? value : internalValue;\n\n const handleTabChange = (newValue: string) => {\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n if (onValueChange) {\n onValueChange(newValue);\n }\n };\n\n const providerValue = {\n activeTab,\n setActiveTab: handleTabChange,\n initialTabName: isControlled ? value : defaultValue,\n };\n\n return (\n <TabsContext.Provider value={providerValue} {...rest}>\n <div className={className}>{children}</div>\n </TabsContext.Provider>\n );\n};\n\ntype TabsListProps = {\n options: { name: string; title: any; icon?: any }[];\n children?: React.ReactNode;\n onValueChange?: (value: string) => void;\n className?: string;\n};\n\nexport const TabsList = ({\n options,\n children,\n className,\n onValueChange,\n}: TabsListProps) => {\n const context = useContext(TabsContext);\n const setActiveTab = onValueChange ? onValueChange : context?.setActiveTab;\n\n return (\n <TabPanel\n className={classNames('tabs-list', className)}\n tabs={options}\n initialTabName={context?.initialTabName}\n onSelect={(tabName) => {\n setActiveTab(tabName);\n }}\n >\n {() => children}\n </TabPanel>\n );\n};\n\ntype TabsContentProps = {\n value: string;\n children: React.ReactNode;\n className?: string;\n};\n\nexport const TabsContent = ({\n value,\n children,\n className,\n}: TabsContentProps) => {\n const context = useContext(TabsContext);\n const activeTab = context?.activeTab;\n\n if (activeTab !== value) {\n return null;\n }\n\n return className ? <div className={className}>{children}</div> : children;\n};\n\nexport const Tabs = {\n Wrapper: TabsWrapper,\n List: TabsList,\n Content: TabsContent,\n};\n","import classNames from 'classnames';\n\ntype TagProps = {\n children: React.ReactNode;\n className?: string;\n color:\n | 'blue'\n | 'ruby'\n | 'tomato'\n | 'red'\n | 'crimson'\n | 'pink'\n | 'plum'\n | 'purple'\n | 'violet'\n | 'iris'\n | 'indigo'\n | 'cyan'\n | 'teal'\n | 'jade'\n | 'green'\n | 'grass'\n | 'brown'\n | 'orange'\n | 'sky'\n | 'gray';\n asButton?: boolean;\n onClick?: () => void;\n};\n\nexport const Tag = ({\n children,\n onClick,\n color = 'blue',\n className,\n}: TagProps) => {\n return (\n <button onClick={onClick}>\n <div color={color} className={classNames(className)}>\n {children}\n </div>\n </button>\n );\n};\n","import {\n Button,\n Dropdown,\n FormTokenField,\n Spinner,\n} from '@wordpress/components';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\ntype TagInputProps = {\n className?: string;\n inputClassName?: string;\n value: string[];\n label?: string;\n helper?: string;\n placeholder?: string;\n onChange?: (tokens: string[]) => void;\n onInputChange?: (inputValue: string) => void;\n suggestions?: string[];\n onLoadMore?: () => void;\n hasMore?: boolean;\n isLoading?: boolean;\n\n [key: string]: any;\n};\n\nexport const TagInput = ({\n className,\n inputClassName,\n value,\n label,\n helper,\n placeholder = 'Type and press Enter',\n onChange,\n onInputChange,\n suggestions = [],\n onLoadMore,\n hasMore = false,\n isLoading = false,\n ...props\n}: TagInputProps) => {\n const [isDropdownOpen, setDropdownOpen] = useState(false);\n const [currentInput, setCurrentInput] = useState('');\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const [isSelectingSuggestion, setIsSelectingSuggestion] = useState(false);\n const [fieldKey, setFieldKey] = useState(0);\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n const shouldBeOpen = currentInput.length > 0 && suggestions.length > 0;\n\n const addSuggestion = (suggestion: string) => {\n // Set flag to prevent blur tokenization\n setIsSelectingSuggestion(true);\n\n onChange?.([...value, suggestion]);\n\n // Clear input and force FormTokenField to reset by changing key\n setCurrentInput('');\n onInputChange?.('');\n setFieldKey((prev) => prev + 1);\n setDropdownOpen(false);\n\n // Reset flag and refocus input after remount\n setTimeout(() => {\n setIsSelectingSuggestion(false);\n // Refocus the input after the component remounts\n const input = containerRef.current?.querySelector(\n '.components-form-token-field__input'\n ) as HTMLInputElement;\n if (input) {\n input.focus();\n }\n }, 0);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!isDropdownOpen || !shouldBeOpen) return;\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n setHighlightedIndex((prev) => Math.min(prev + 1, suggestions.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n setHighlightedIndex((prev) => Math.max(prev - 1, 0));\n } else if (event.key === 'Enter') {\n event.preventDefault();\n if (highlightedIndex >= 0 && suggestions[highlightedIndex]) {\n // User selected a suggestion from dropdown\n addSuggestion(suggestions[highlightedIndex]);\n } else {\n // User is manually entering a token without selecting from dropdown\n // Close dropdown and let FormTokenField handle the tokenization\n setDropdownOpen(false);\n setCurrentInput('');\n }\n } else if (event.key === ',') {\n setDropdownOpen(false);\n // Let FormTokenField handle the comma tokenization naturally\n } else if (event.key === 'Escape') {\n event.preventDefault();\n setDropdownOpen(false);\n }\n };\n\n const handleInputChange = (newInputValue: string) => {\n setCurrentInput(newInputValue);\n onInputChange?.(newInputValue);\n setHighlightedIndex(-1);\n if (newInputValue) {\n setDropdownOpen(true);\n } else {\n // Input is cleared, close dropdown\n setDropdownOpen(false);\n }\n };\n\n // Infinite scroll handler\n useEffect(() => {\n const scrollContainer = scrollContainerRef.current;\n if (!scrollContainer || !onLoadMore || !hasMore || isLoading) return;\n\n const handleScroll = () => {\n const { scrollTop, scrollHeight, clientHeight } = scrollContainer;\n // Trigger load more when scrolled to within 50px of bottom\n if (scrollHeight - scrollTop - clientHeight < 50) {\n onLoadMore();\n }\n };\n\n scrollContainer.addEventListener('scroll', handleScroll);\n return () => scrollContainer.removeEventListener('scroll', handleScroll);\n }, [onLoadMore, hasMore, isLoading]);\n\n return (\n <div\n ref={containerRef}\n className={classNames('flex flex-col gap-1', className)}\n onKeyDown={handleKeyDown}\n {...props}\n >\n <Dropdown\n open={isDropdownOpen && shouldBeOpen}\n onClose={() => setDropdownOpen(false)}\n renderToggle={() => (\n <FormTokenField\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n key={fieldKey}\n value={value}\n label={label || undefined}\n onChange={onChange}\n onInputChange={handleInputChange}\n onFocus={() => setDropdownOpen(true)}\n tokenizeOnBlur={\n !isSelectingSuggestion && !(isDropdownOpen && shouldBeOpen)\n }\n placeholder={placeholder}\n className={inputClassName}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n />\n )}\n renderContent={() => (\n <div\n ref={scrollContainerRef}\n role=\"listbox\"\n className=\"max-h-60 min-w-32 overflow-y-auto\"\n >\n {suggestions.map((suggestion, index) => (\n <Button\n key={suggestion}\n variant={index === highlightedIndex ? 'primary' : 'tertiary'}\n className={classNames(\n 'block w-full text-left px-3 py-2 text-sm',\n {\n 'is-active': index === highlightedIndex,\n }\n )}\n onClick={() => addSuggestion(suggestion)}\n onMouseDown={() => setIsSelectingSuggestion(true)}\n onMouseEnter={() => setHighlightedIndex(index)}\n tabIndex={-1}\n >\n {suggestion}\n </Button>\n ))}\n {isLoading && (\n <div className=\"flex justify-center py-3\">\n <Spinner />\n </div>\n )}\n {!isLoading && hasMore && suggestions.length > 0 && (\n <div className=\"text-center text-xs text-gray-500 py-2\">\n Scroll for more\n </div>\n )}\n </div>\n )}\n />\n {helper && <p className=\"text-xs text-primary mt-1\">{helper}</p>}\n </div>\n );\n};\n\nTagInput.displayName = 'TagInput'; // Recommended for debugging\n","import { Pencil1 as Pencil1Icon } from '@blockbite/icons';\n\nimport { TextControl } from '@wordpress/components';\nimport { Wrap } from './Wrap.js';\n\ntype TextControlLabelProps = {\n className?: string;\n defaultValue: any;\n children?: React.ReactNode;\n onChange?: (value: string) => void;\n onClick?: () => void;\n};\n\nexport const TextControlLabel = ({\n onChange,\n defaultValue,\n children,\n}: TextControlLabelProps) => {\n return (\n <Wrap className=\"blockbite-ui__text-control-label flex items-center\">\n <span className=\"outline-b-2 relative block -outline-offset-2 outline-black\">\n <TextControl\n __next40pxDefaultSize\n __nextHasNoMarginBottom\n type=\"text\"\n value={defaultValue}\n onChange={onChange}\n />\n <Pencil1Icon className=\"absolute right-1 top-2\" />\n </span>{' '}\n {children}\n </Wrap>\n );\n};\n","import { memo } from '@wordpress/element';\n\nimport { Wrap } from './Wrap.js';\n\nimport {\n __experimentalToggleGroupControlOptionIcon as ToggleGroupControlIcon,\n __experimentalToggleGroupControlOption as ToggleGroupControlOption,\n __experimentalToggleGroupControl as WordpressToggleGroupControl,\n} from '@wordpress/components';\nimport classNames from 'classnames';\n\ntype ToggleProps = {\n className?: string;\n options: { value: string; label: string; icon?: React.ReactElement }[];\n value: string;\n label?: string | boolean;\n variant?: 'primary' | 'secondary';\n display?: 'icon' | 'label';\n size?: 'small' | 'default' | 'compact';\n onPressedChange: (value: string) => void;\n};\n\nexport const ToggleGroup: React.FC<ToggleProps> = memo(\n ({\n className,\n options,\n value,\n display = 'label',\n label = false,\n onPressedChange,\n size = 'default',\n }) => {\n const handlePressChange = (val: string) => {\n onPressedChange(val);\n };\n\n return (\n <Wrap className={classNames(className)}>\n <WordpressToggleGroupControl\n __next40pxDefaultSize={size === 'default'}\n __nextHasNoMarginBottom\n isBlock\n value={value}\n {...(label ? { label } : {})}\n >\n {options.map((option) =>\n display === 'icon' ? (\n <ToggleGroupControlIcon\n icon={option.icon}\n label={option.label}\n key={`ToggleGroupControlIcon-${option.value}`}\n value={option.value}\n onClick={() => handlePressChange(option.value)}\n />\n ) : (\n <ToggleGroupControlOption\n key={`ToggleGroupControlOption-${option.value}`}\n value={option.value}\n label={option.label}\n onClick={() => handlePressChange(option.value)}\n />\n )\n )}\n </WordpressToggleGroupControl>\n </Wrap>\n );\n }\n);\n","import { ToggleControl as Switch } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\ntype ToggleSwitchProps = {\n label?: string;\n className?: string;\n onChange?: (checked: boolean) => void;\n checked?: boolean;\n};\n\nexport const ToggleSwitch = ({\n label,\n className,\n onChange,\n checked = false, // Default to false if undefined, so it's always controlled\n}: ToggleSwitchProps) => {\n const [isChecked, setIsChecked] = useState(checked);\n\n useEffect(() => {\n setIsChecked(checked);\n }, [checked]);\n\n return (\n <Wrap className={classNames(className, 'flex items-center gap-2')}>\n <Switch\n checked={isChecked}\n label={label}\n onChange={(e) => {\n setIsChecked(e);\n onChange && onChange(e);\n }}\n ></Switch>\n </Wrap>\n );\n};\n"],"names":["hasOwn","classNames","classes","i","arg","appendClass","parseValue","key","value","newClass","module","ButtonToggle","memo","children","className","variant","pressed","onPressedChange","Icon","size","display","label","handleClick","useCallback","WordpressButton","ButtonToggleGroup","toggle","options","tabs","stretch","handleButtonClick","optionValue","newValue","renderContent","option","index","AutocompleteDropdown","swatch","activeKeyword","setActiveKeyword","useState","filteredOptions","setFilteredOptions","useEffect","Dropdown","isOpen","onToggle","Button","_a","o","TextControl","changedValue","Badge","onClick","status","BitePreview","htmlContent","cssContent","frontendAssets","iframeRef","useRef","iframeBody","setIframeBody","iframe","iframeDocument","styleTag","type","id","url","existingElement","adoptedElement","newElement","createPortal","icon","rest","IconComponent","disabled","isIconDisplay","Wrap","important","Chapter","title","ChapterDivider","help","badge","addon","divider","props","Checkbox","defaultChecked","isChecked","setChecked","CheckboxControl","ChevronDown","ColorWheel","Cross1","Cross2","InfoCircled","ListBullet","Pencil1","Percentage","Plus","Slider","Tailwind","Trash","forwardRef","onChange","inputClassName","readOnly","placeholder","onBlur","helper","ref","fieldId","e","DataItemList","data","active","setActive","onCreate","onDelete","onUpdate","onSwitch","renderItemActions","renderItemContent","addons","footerSlot","footerSlotClassName","rename","setRename","isSaving","setIsSaving","textRef","handleAdd","handleRemove","newData","d","currentIndex","nextActive","handleRenameBlur","renderBadge","item","PlusIcon","TrashIcon","DisappearingMessage","duration","show","message","onClose","isShowing","setIsShowing","hasMounted","timeoutRef","DropdownPicker","defaultIcon","ChevronDownIcon","currentOption","setCurrentOption","allOptions","iconSize","DropdownMenu","EmptyState","description","FloatingPanel","panelRef","position","setPosition","dragging","setDragging","offset","setOffset","handleMouseMove","handleMouseUp","startDragging","rect","parseFocal","fallback","parts","x","y","formatFocal","fp","FocalPointControl","onValueChange","focalPoint","useMemo","handleChange","next","FocalPointPicker","Popover","visible","anchor","onVisibleChange","handleClose","WordpressPopover","SelectControlWrapper","emptyLabel","val","WordpressSelect","directionToClass","classToDirection","acc","dir","cls","directionToAngle","RADIAL_CLASS","clamp","min","max","parseToken","palette","token","base","opacityPart","opacityFromToken","hex","found","c","buildToken","baseToken","opacity","hexWithOpacity","clean","g","b","gradientToCss","stop","parsePositionValue","v","cleaned","n","classGroupsToGradientValue","groups","directionClass","kind","direction","stops","fromGroup","fromPosGroup","_b","viaGroup","viaPosGroup","viaItem","pos","toGroup","_c","toPosGroup","_d","normalizeStops","gradientValueToClassGroups","sorted","from","s","to","vias","gradientClassGroupsToArray","out","obj","entry","role","num","gradientValueToArray","arrayToGradient","arr","items","hasGradientGroupIds","get","t","_e","fromToken","_f","fromPos","_g","viaTokens","viaPos","idx","toToken","_h","toPos","_i","dirItem","fallbackStops","sel","a","TailwindGradientPicker","trackRef","activeStopId","setActiveStopId","popoverVisible","setPopoverVisible","popoverAnchor","setPopoverAnchor","dragState","setDragState","displayStops","activeStop","updateStops","updater","nextStops","updateStop","patch","removeStop","handleTrackClick","track","nearest","best","handleHandleMouseDown","onMove","event","raw","onUp","openColorPopover","target","handleKindChange","handleDirectionChange","handleColorPickerChange","color","nextKind","ColorIndicator","ColorPicker","Label","LinkPicker","links","setLinks","activeLink","setActiveLink","apiFetch","fetchedLinks","__","LinkList","link","onActiveLink","list","MediaPicker","mediaProps","mediaCallback","allowedTypes","media","removeMedia","onSelectMedia","mediaItem","safeSizes","mediaType","PanelRow","MediaUploadCheck","MediaUpload","open","RangeSlider","withInputField","onReset","allowReset","gridMode","showTooltip","resetFallbackValue","rangeValue","setRangeValue","handleRangeUpdate","gridValue","WordpressRangeControl","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isPercent","isTshirtSize","CSS_UNITS","MetricsControl","propValue","classGroupControl","tailwindUi","isVisible","setIsVisible","localUnit","setLocalUnit","localText","setLocalText","rawValue","setRawValue","inputRef","manualFraction","manualOptions","manualRange","manualCssVars","manualArbitrary","rangeMin","rangeMax","getUserFriendlyValue","detectUnitFromRawValue","normOptions","supportsArbitrary","hasValidator","supportsFraction","supportsTheme","validators","names","arbMatch","varMatch","getRawValue","userFriendly","trimmed","isValidValue","handleInputChange","handleBlur","newRaw","handleKeyDown","appendToText","insertion","isNumeric","newText","numericMatch","setValueDirectly","CurrentUnitIcon","PercentageIcon","ListBulletIcon","ColorWheelIcon","SliderIcon","TailwindUnitIcon","openPicker","renderFractionBody","renderListBody","getCustomCssVariables","rootStyles","customVars","propertyName","renderThemeInsert","cssVariableOptions","renderArbitraryUnitButtons","u","InputControl","InputControlSuffixWrapper","InfoCircledIcon","ModalContext","createContext","useModalContext","context","useContext","Modal","defaultOpen","onOpenChange","onRequestClose","shouldCloseOnEsc","shouldCloseOnClickOutside","isControlled","uncontrolledOpen","setUncontrolledOpen","setOpen","openModal","closeModal","hasModalHeaderChild","Children","child","isValidElement","ModalHeader","ariaProps","ModalTrigger","WordpressModal","ModalContent","ModalFooter","ModalClose","copyStyles","sourceDoc","targetDoc","styleSheet","newStyleEl","cssRule","newLinkEl","NewWindowPortal","windowInstance","containerEl","win","handleBeforeUnload","Notice","showNotice","setShowNotice","WordpressNotice","PasswordInput","showPassword","setShowPassword","SVG","Path","prev","ProjectsNavigation","activeId","onSelect","ResponsiveImage","bbFill","alt","sizes","thumbnail","medium","large","thumbnailImg","mediumImg","largeImg","ResponsiveVideo","videoUrl","ScrollList","height","select","dispatch","SingleBlockTypeAppender","buttonText","addLastDuplicate","currentBlock","clientId","innerBlocks","lastBlock","newBlock","createBlock","SlideIn","watch","slide","setSlide","Spinner","WordpressSpinner","At","r","ot","Ft","tr","nr","zn","rr","ir","yi","Tn","or","Te","h","_n","Si","m","S","R","I","E","w","_","T","N","j","A","F","P","$","V","f","p","z","D","U","W","se","me","G","q","K","ae","Z","Me","C","M","O","H","be","Ne","ze","Xe","Je","je","zt","_t","ke","Qe","Se","Fe","ft","ht","It","at","Ze","le","et","ct","Xt","$e","Dt","Et","We","ye","Be","vt","Ae","yn","Re","ut","Ue","k","Jn","Q","re","He","Ke","we","Le","ne","pt","tt","lt","ee","Ct","ue","ce","Ge","gt","Wt","mt","ve","X","Y","Ut","nt","Sn","Ie","qe","rt","Mt","Kt","Rn","Ot","Qn","mi","bi","de","Gt","dt","Zn","qt","xn","Jt","Qt","er","Zt","en","he","qn","wt","Ye","gi","te","pe","Gn","Ri","sr","xi","zi","Ii","Tr","Di","Ei","Ci","Nt","Vr","Pr","jr","Oi","ar","Mi","tn","cr","lr","ur","dr","Ni","kn","fr","In","De","Ai","Li","Ti","Vi","hr","Pi","ji","vr","Dn","En","Oe","xe","kr","Fr","pr","an","Cn","Ee","$r","ki","Fi","$i","bt","wr","nn","gr","mr","Fn","Br","Bi","Hs","vn","ie","Pe","oe","Ce","B","Pn","Tt","fn","kt","jn","it","Ln","Lr","Fs","SplitPane","pane1","pane2","handle","minSize1","minSize2","allotmentRef","hasPane2","prevHasPane2","savedSizesRef","isFirstMount","savedSizes","useLayoutEffect","newSizes","defaultSizes","Allotment","TabsContext","TabsWrapper","defaultValue","internalValue","setInternalValue","providerValue","TabsList","setActiveTab","TabPanel","tabName","TabsContent","Tabs","Tag","TagInput","onInputChange","suggestions","onLoadMore","hasMore","isLoading","isDropdownOpen","setDropdownOpen","currentInput","setCurrentInput","highlightedIndex","setHighlightedIndex","isSelectingSuggestion","setIsSelectingSuggestion","fieldKey","setFieldKey","containerRef","scrollContainerRef","shouldBeOpen","addSuggestion","suggestion","input","newInputValue","scrollContainer","handleScroll","scrollTop","scrollHeight","clientHeight","FormTokenField","TextControlLabel","Pencil1Icon","ToggleGroup","handlePressChange","WordpressToggleGroupControl","ToggleGroupControlIcon","ToggleGroupControlOption","ToggleSwitch","checked","setIsChecked","Switch"],"mappings":"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","x_google_ignoreList":[0]}
|