@blockbite/ui 2.0.23 → 2.0.24
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/Chapter.d.ts +1 -1
- package/dist/index.js +1692 -760
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
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/Icon.tsx","../src/ButtonToggle.tsx","../src/Wrap.tsx","../src/AutocompleteDropdown.tsx","../src/Badge.tsx","../src/BitePreview.tsx","../src/Button.tsx","../src/Chapter.tsx","../src/ChapterDivider.tsx","../src/Checkbox.tsx","../../icons/jsx/ChevronDown.jsx","../../icons/jsx/ColumnSpacing.jsx","../../icons/jsx/Cross2.jsx","../../icons/jsx/Desktop.jsx","../../icons/jsx/Grid.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/LinkPicker.tsx","../src/MediaPicker.tsx","../src/Popover.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/SelectControlWrapper.tsx","../src/SingleBlockTypeAppender.tsx","../src/SlideIn.tsx","../src/Spinner.tsx","../src/Tabs.tsx","../src/Tag.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","type IconProps = {\n icon: React.FC<React.SVGProps<SVGSVGElement>> | null; // Type it as a React Functional Component\n [x: string]: any;\n};\n\nexport const Icon = ({ icon: IconComponent, ...rest }: IconProps) => {\n if (!IconComponent) return null;\n\n return (\n <div className={`blockbite--icon`}>\n <IconComponent {...rest} />\n </div>\n );\n};\n","import { Button as WordpressButton } from '@wordpress/components';\nimport { memo, useCallback } from '@wordpress/element';\nimport classNames from 'classnames';\nimport { Icon } from './Icon.js';\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?: any;\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,\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 icon={icon} />}\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 if (display === 'icon' && option?.icon) {\n return <Icon icon={option.icon} />;\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} />}\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","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 { 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';\nimport { Wrap } from './Wrap.js';\n\ninterface OptionPanelDropdownProps {\n value: string;\n options: { label: string; value: 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\"\n popoverProps={{ placement: 'bottom-start' }}\n renderToggle={({ isOpen, onToggle }) => (\n <Wrap important>\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 className={classNames(`h-3 w-3 rounded-full bg-${value}`)}\n />\n )}\n <span>{value || 'Select option…'}</span>\n </div>\n </Button>\n </Wrap>\n )}\n renderContent={() => (\n <Wrap important>\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 className={classNames(\n `mr-3 h-3 w-3 rounded-full bg-${option.value}`\n )}\n />\n )}\n {option.label}\n </ButtonToggle>\n ))}\n </div>\n </div>\n </Wrap>\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};\n\nexport const Badge = ({ children, className, label, onClick }: BadgeProps) => {\n return (\n <div\n onClick={onClick}\n className={classNames(\n className,\n 'inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800'\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 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","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","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 }: ChapterProps) => {\n return (\n <Wrap\n className={classNames(\n 'text-gray-medium my-2 flex items-center gap-1 text-[12px] font-medium',\n classNames\n )}\n >\n dwdwwdwd\n {title && <Wrap className=\"font-medium\">{title}</Wrap>}\n {children}\n </Wrap>\n );\n};\n","import classNames from 'classnames';\nimport { Badge } from './Badge';\n\ntype ChapterDividerProps = {\n title?: string;\n className?: string;\n help?: string;\n badge?: string;\n [key: string]: any;\n};\n\nexport const ChapterDivider = ({\n title,\n className,\n help,\n badge,\n ...props\n}: ChapterDividerProps) => {\n return (\n <div className={classNames('mb-2', className)} {...props}>\n <div className=\"flex w-full flex-wrap items-center gap-2 justify-between\">\n <span className=\"shrink-1 text-[11px] font-medium uppercase leading-snug\">\n {title}\n </span>\n\n {!!badge && <Badge className=\"text-[10px] py-px px-1\">{badge}</Badge>}\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 ColumnSpacing = (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.50012 1C7.22398 1 7.00012 1.22386 7.00012 1.5V13.5C7.00012 13.7761 7.22398 14 7.50012 14C7.77626 14 8.00012 13.7761 8.00012 13.5V1.5C8.00012 1.22386 7.77626 1 7.50012 1ZM3.31812 5.18161C3.14239 5.00587 2.85746 5.00587 2.68173 5.18161L0.681729 7.18161C0.505993 7.35734 0.505993 7.64227 0.681729 7.818L2.68173 9.818C2.85746 9.99374 3.14239 9.99374 3.31812 9.818C3.49386 9.64227 3.49386 9.35734 3.31812 9.18161L2.08632 7.9498H5.50017C5.7487 7.9498 5.95017 7.74833 5.95017 7.4998C5.95017 7.25128 5.7487 7.0498 5.50017 7.0498H2.08632L3.31812 5.818C3.49386 5.64227 3.49386 5.35734 3.31812 5.18161ZM11.6817 5.18161C11.506 5.35734 11.506 5.64227 11.6817 5.818L12.9135 7.0498H9.50017C9.25164 7.0498 9.05017 7.25128 9.05017 7.4998C9.05017 7.74833 9.25164 7.9498 9.50017 7.9498H12.9135L11.6817 9.18161C11.506 9.35734 11.506 9.64227 11.6817 9.818C11.8575 9.99374 12.1424 9.99374 12.3181 9.818L14.3181 7.818C14.4939 7.64227 14.4939 7.35734 14.3181 7.18161L12.3181 5.18161C12.1424 5.00587 11.8575 5.00587 11.6817 5.18161Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ColumnSpacing;\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 Desktop = (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=\"M0 3.25V10.75C0 11.4404 0.559644 12 1.25 12H5.07341L4.82991 13.2986C4.76645 13.6371 5.02612 13.95 5.37049 13.95H9.62951C9.97389 13.95 10.2336 13.6371 10.1701 13.2986L9.92659 12H13.75C14.4404 12 15 11.4404 15 10.75V3.25C15 2.55964 14.4404 2 13.75 2H1.25C0.559643 2 0 2.55964 0 3.25ZM1.25 3H13.75C13.8881 3 14 3.11193 14 3.25V10.75C14 10.8881 13.8881 11 13.75 11H1.25C1.11193 11 1 10.8881 1 10.75V3.25C1 3.11193 1.11193 3 1.25 3ZM5.98909 12L5.79222 13.05H9.20778L9.01091 12H5.98909Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Desktop;\n","const Grid = (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=\"M1 2.5V12.5C1 13.3284 1.67157 14 2.5 14H12.5C13.3284 14 14 13.3284 14 12.5V2.5C14 1.67157 13.3284 1 12.5 1H2.5C1.67157 1 1 1.67157 1 2.5ZM8 2V7H13V2.5C13 2.22386 12.7761 2 12.5 2H8ZM8 8V13H12.5C12.7761 13 13 12.7761 13 12.5V8H8ZM7 2H2.5C2.22386 2 2 2.22386 2 2.5V7H7V2ZM2 12.5C2 12.7761 2.22386 13 2.5 13H7V8H2V12.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Grid;\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 type { DataItem } from '@blockbite/types';\nimport { TextControl } from './TextControl.js';\nimport { Wrap } from './Wrap.js';\n\ntype DataListProps = {\n data: DataItem[];\n active: any;\n setActive: (item: DataItem | undefined) => void;\n onCreate: () => void;\n onDelete: (id: string) => void;\n onUpdate: (id: string, updates: Partial<DataItem>) => void;\n onSwitch: (prevId: string, updates: Partial<DataItem>) => void;\n renderItemActions?: (item: DataItem) => React.ReactNode;\n addons?: JSX.Element;\n className?: string;\n footerSlot?: React.ReactNode;\n footerSlotClassName?: string;\n};\n\nexport const DataItemList = ({\n data,\n active,\n setActive,\n onCreate,\n onDelete,\n onUpdate,\n onSwitch,\n renderItemActions,\n addons,\n className = '',\n footerSlot,\n footerSlotClassName = '',\n}: DataListProps) => {\n const [rename, setRename] = useState<{ id: string; name: string }>({\n id: '',\n name: '',\n });\n const [isSaving, setIsSaving] = useState(false);\n\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, { name: value });\n }\n\n setTimeout(() => {\n setRename({ id: '', name: '' });\n setIsSaving(false);\n }, 500);\n };\n\n return (\n <Wrap important className={className}>\n <ul className=\"h-[calc(100%-80px)] 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 items-center justify-between gap-1 bg-opacity-50 hover:bg-easy',\n {\n 'bg-easy': item.id === active?.id,\n }\n )}\n >\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, name: item.name || '' });\n }}\n >\n {isSaving && rename.id === item.id ? (\n <span className=\"animate-pulse text-gray-medium\">\n {rename.name}\n </span>\n ) : (\n <span className=\"text-gray-medium\">\n {item.name || 'Untitled'}\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.name}\n onChange={(value) =>\n setRename({ ...rename, name: value })\n }\n ref={textRef}\n onBlur={handleRenameBlur}\n />\n )}\n </div>\n {renderItemActions && (\n <div className=\"flex gap-1 pr-1\">\n {renderItemActions(item)}\n </div>\n )}\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 </Wrap>\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};\n\nexport const DisappearingMessage = ({\n duration = 3000,\n className,\n children,\n show,\n message,\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 }, duration);\n }\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, [show, duration]);\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 !font-sans text-sm font-medium\">\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","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({\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 <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';\n\nimport { Button, PanelRow } from '@wordpress/components';\n\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 // toggles\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 mediaId: 0,\n mediaUrl: '',\n };\n mediaCallback({ ...mediaObj });\n };\n // onselect 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).map((key) => {\n const sizeObject = media.sizes[key];\n\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\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\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 return null;\n });\n }\n\n // if type ends .lottie then it is a lottie file\n if (media.url.endsWith('.json')) {\n media.type = 'lottie';\n }\n // if type ends with .svg then it is an svg file\n if (media.url.endsWith('.svg')) {\n media.type = 'svg';\n }\n\n const mediaObj = {\n id: media.id,\n url: media.url,\n sizes: safeSizes,\n alt: media.alt,\n type: media.type,\n width: media.width,\n height: media.height,\n };\n mediaCallback({ ...mediaObj });\n };\n\n return (\n <PanelRow>\n {stateMedia.id !== null && (\n <MediaUploadCheck>\n <MediaUpload\n onSelect={onSelectMedia}\n value={stateMedia.id}\n allowedTypes={allowedTypes}\n render={({ open }) => (\n <Button\n className={\n stateMedia.id === 0\n ? 'editor-post-featured-image__toggle'\n : 'editor-post-featured-image__preview'\n }\n onClick={open}\n >\n {stateMedia.id === 0 && __('Choose Media', 'blockbite')}\n {stateMedia.id && stateMedia.type === 'image' ? (\n <div className=\"blockbite--editor-visual-image\">\n <img\n alt={\n stateMedia.alt\n ? stateMedia.alt\n : __('Image', 'blockbite')\n }\n src={stateMedia.url}\n />\n </div>\n ) : (\n 'Add media'\n )}\n </Button>\n )}\n />\n </MediaUploadCheck>\n )}\n {stateMedia.id !== 0 && (\n <MediaUploadCheck>\n <MediaUpload\n title={__('Replace media', 'blockbite')}\n value={stateMedia.id}\n onSelect={onSelectMedia}\n allowedTypes={allowedTypes}\n render={({ open }) => (\n <Button onClick={open}>{__('Replace media', 'blockbite')}</Button>\n )}\n />\n </MediaUploadCheck>\n )}\n {stateMedia.id !== 0 && (\n <MediaUploadCheck>\n <Button onClick={() => removeMedia()} isDestructive>\n {__('Remove media', 'blockbite')}\n </Button>\n </MediaUploadCheck>\n )}\n </PanelRow>\n );\n}\n","import { Cross2 } from '@blockbite/icons';\nimport { Button, Popover as WordpressPopover } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\n\ntype PopoverProps = {\n children: React.ReactNode;\n className?: string;\n defaultValue?: string;\n value?: string;\n position?: any;\n visible?: boolean;\n onClick?: () => void;\n onVisibleChange?: (value: boolean) => void;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n className,\n position,\n visible,\n onClick,\n onVisibleChange,\n}) => {\n const [isVisible, setIsVisible] = useState<boolean>(!!visible);\n\n useEffect(() => {\n if (visible !== undefined) {\n setIsVisible(visible);\n }\n }, [visible]);\n\n const toggleVisible = () => {\n const newValue = !isVisible;\n setIsVisible(newValue);\n onVisibleChange && onVisibleChange(newValue);\n };\n\n return (\n <>\n {isVisible && (\n <WordpressPopover\n position={position}\n className=\"blockbite-ui__popover\"\n onClick={onClick}\n onFocusOutside={() => {\n setIsVisible(false);\n onVisibleChange && onVisibleChange(false);\n }}\n >\n <div className={className}>\n <div className=\"relative h-full w-full p-4\">\n <Button\n onClick={toggleVisible}\n size=\"small\"\n className=\"close-button absolute right-0 top-0\"\n >\n <Cross2 />\n </Button>\n {children}\n </div>\n </div>\n </WordpressPopover>\n )}\n </>\n );\n};\n\nexport default Popover;\n","import { useEffect, useState } from '@wordpress/element';\nimport { Wrap } from './Wrap.js';\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 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 gridMode = false,\n showTooltip = false,\n ...props\n}) => {\n const [resetFallbackValue] = useState(0);\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 const gridValue = val * (gridMode ? 16 : 1);\n onValueChange(gridValue.toString());\n }\n\n return (\n <Wrap className=\"flex min-w-[240px] 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 onChange={(val) => {\n setRangeValue(val);\n handleRangeUpdate(val);\n }}\n resetFallbackValue={resetFallbackValue}\n {...props}\n />\n <span>{gridMode ? `${rangeValue * 16}px` : null} </span>\n </Wrap>\n );\n};\n","import {\n __experimentalInputControl as InputControl,\n __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { ButtonToggleGroup } from './ButtonToggle.js';\nimport { DropdownPicker } from './DropdownPicker.js';\nimport { Popover } from './Popover.js';\nimport { RangeSlider } from './RangeSlider.js';\n\nimport {\n ColumnSpacing as ColumnSpacingIcon,\n Desktop as DesktopIcon,\n Grid as GridIcon,\n Percentage as PercentageIcon,\n Slider as SliderIcon,\n Tailwind as TailwindUnitIcon,\n} from '@blockbite/icons';\n\ntype MetricsControlProps = {\n unit: string;\n value: string;\n units?:\n | string[]\n | 'native'\n | 'percent'\n | 'grid'\n | 'arbitrary'\n | 'fluid'\n | 'screen'\n | 'all';\n inputClassName?: string;\n onValueChange: (value: string) => void;\n onUnitChange: (unit: string) => void;\n};\n\nexport const MetricsControl: React.FC<MetricsControlProps> = ({\n unit,\n value,\n onValueChange,\n onUnitChange,\n inputClassName = '',\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [currentOptions, setCurrentOptions] = useState<string[]>([]);\n const [resetValue, setResetValue] = useState<string | number>(value);\n\n // Save last value after popover close to support \"reset\" functionality\n useEffect(() => {\n if (!isVisible && unit === 'arbitrary') {\n setResetValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible]);\n\n const showOptions = (u: string) => {\n if (u !== 'arbitrary' && bb?.codex?.units?.spacing?.[u]) {\n const options =\n bb.codex.units.spacing[u as keyof typeof bb.codex.units.spacing];\n setCurrentOptions(\n Array.isArray(options) ? options : Object.keys(options)\n );\n } else {\n setCurrentOptions([]);\n }\n setIsVisible(true);\n };\n\n const unitOptions = [\n {\n icon: <TailwindUnitIcon />,\n label: 'Tailwind CSS Units',\n value: 'native',\n },\n { icon: <PercentageIcon />, label: 'Percentage Units', value: 'percent' },\n { icon: <GridIcon />, label: 'Grid Units', value: 'grid' },\n { icon: <DesktopIcon />, label: 'Screen Units', value: 'screen' },\n { icon: <SliderIcon />, label: 'Pixel Units', value: 'arbitrary' },\n { icon: <ColumnSpacingIcon />, label: 'Fluid Units', value: 'fluid' },\n ];\n\n return (\n <div className=\"relative flex flex-col items-baseline\">\n <InputControl\n __next40pxDefaultSize\n className={inputClassName}\n value={unit === 'grid' ? value.replace('b_', '') : value}\n onClick={() => unit !== 'arbitrary' && showOptions(unit)}\n onChange={onValueChange}\n readOnly={unit !== 'arbitrary'}\n autoComplete=\"off\"\n suffix={\n <InputControlSuffixWrapper>\n <Popover\n visible={isVisible}\n position=\"bottom left\"\n className=\"w-[300px] bg-white shadow-sm\"\n onVisibleChange={setIsVisible}\n >\n {unit === 'arbitrary' ? (\n <RangeSlider\n value={value}\n label=\"Pixel Value\"\n min={0}\n max={100}\n gridMode={true}\n showTooltip={false}\n allowReset={true}\n resetFallbackValue={\n isNaN(resetValue.toString() as any)\n ? 0\n : Number(resetValue) / 16\n }\n onValueChange={onValueChange}\n />\n ) : (\n <ButtonToggleGroup\n className=\"mt-4\"\n options={currentOptions.map((option) => ({\n value: option,\n label:\n unit === 'grid'\n ? option.toString().replace('b_', '')\n : option,\n onClick: () => {\n onValueChange(option);\n },\n }))}\n size=\"small\"\n value={value?.toString() || ''}\n onPressedChange={onValueChange}\n />\n )}\n </Popover>\n <DropdownPicker\n value={unit}\n options={unitOptions}\n toggleProps={{\n className: '!p-0 !min-w-0 !h-6 w-6',\n }}\n onPressedChange={(selectedUnit) => {\n if (selectedUnit === 'reset') {\n onValueChange('');\n setIsVisible(false);\n } else {\n onUnitChange(selectedUnit);\n showOptions(selectedUnit);\n }\n }}\n />\n </InputControlSuffixWrapper>\n }\n ></InputControl>\n </div>\n );\n};\n\nexport default MetricsControl;\n","import {\n Children,\n createContext,\n isValidElement,\n useContext,\n useEffect,\n useState,\n} from '@wordpress/element';\n\nimport { Modal as WordpressModal } from '@wordpress/components';\nimport classNames from 'classnames';\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 defaultOpen: boolean;\n onOpenChange: (checked: boolean) => void;\n title: string;\n className?: string;\n};\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n defaultOpen,\n onOpenChange,\n title,\n className,\n}) => {\n const [isOpen, setOpen] = useState(false);\n\n // Sync `isOpen` with `defaultOpen` when `defaultOpen` changes\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const openModal = () => setOpen(true);\n const closeModal = () => setOpen(false);\n\n useEffect(() => {\n onOpenChange(isOpen);\n }, [isOpen, onOpenChange]);\n\n return (\n <ModalContext.Provider value={{ closeModal, openModal }}>\n {/* Render MOdalTrigger */}\n {Children.map(children, (child) => {\n return isValidElement(child) && child.type === ModalTrigger\n ? child\n : null;\n })}\n {isOpen && (\n <WordpressModal\n className={classNames('blockbite-ui__modal', className)}\n onRequestClose={closeModal}\n title={title}\n >\n <div className=\"relative\">\n {/* Render ModalHeader */}\n {Children.map(children, (child) => {\n return isValidElement(child) && child.type === ModalHeader\n ? child\n : null;\n })}\n {/* Render ModalContent */}\n {Children.map(children, (child) => {\n return isValidElement(child) && child.type === ModalContent\n ? child\n : null;\n })}\n {/* Render ModalFooter */}\n {Children.map(children, (child) => {\n return isValidElement(child) && child.type === ModalFooter\n ? child\n : null;\n })}\n </div>\n </WordpressModal>\n )}\n </ModalContext.Provider>\n );\n};\n\n// Header component for modal\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 {children}\n </div>\n);\n\n// Footer component for modal\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\n// Description component for modal\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","import { Wrap } from './Wrap';\n\nexport 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 className?: string;\n};\n\nexport const ProjectsNavigation = ({\n items,\n activeId,\n onSelect,\n className,\n}: Props) => {\n return (\n <Wrap important className={className}>\n <div className=\"w-[200px] overflow-y-auto border-r border-border gap-2\">\n {items.map((item) => (\n <div\n key={item.id}\n onClick={() => onSelect(item.id)}\n className={`cursor-pointer p-2 border-l-4 flex gap-2 items-center ${\n activeId === item.id\n ? 'border-blue-500 bg-gray-100'\n : 'border-transparent'\n }`}\n >\n <span className=\"rounded bg-slate-300 w-12 h-12 flex items-center justify-center text-2xl font-bold text-white\">\n {item.name.charAt(0).toUpperCase()}\n </span>\n <p className=\"text-sm text-center mt-1\">{item.name}</p>\n </div>\n ))}\n </div>\n </Wrap>\n );\n};\n","export function ResponsiveImage(props) {\n const { media, mediaClass } = props;\n const { url, alt, sizes } = media;\n\n if (sizes === undefined) {\n return <img src={url} alt={alt} className={`media ${mediaClass}`} />;\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=\"responsive-media\">\n {thumbnailImg ? (\n <source\n media=\"(max-width: 768px)\"\n srcSet={thumbnailImg}\n className={`media ${mediaClass}`}\n />\n ) : null}\n {mediumImg ? (\n <source\n media=\"(min-width: 1024px)\"\n srcSet={mediumImg}\n className={`media ${mediaClass}`}\n />\n ) : null}\n {largeImg ? (\n <source\n media=\"(min-width: 1536px)\"\n srcSet={largeImg}\n className={`media ${mediaClass}`}\n />\n ) : null}\n {mediumImg ? (\n <img src={mediumImg} alt={alt} className={`media ${mediaClass}`} />\n ) : null}\n </picture>\n );\n}\n","export function ResponsiveVideo(props: any) {\n const { media, mediaClass } = props;\n const { url } = media;\n\n const videoUrl = url;\n\n return (\n <video\n className={`responsive-media ${mediaClass}`}\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 { SelectControl as WordpressSelect } from '@wordpress/components';\n\ntype SelectControlWrapperProps = {\n className?: string;\n value: string;\n children?: React.ReactNode;\n options: any[];\n label?: string;\n emptyLabel?: string;\n onChange?: (value: string) => void;\n};\n\nexport const SelectControlWrapper = ({\n onChange,\n className,\n value,\n options,\n label = '',\n emptyLabel = 'No options available',\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 __next40pxDefaultSize\n __nextHasNoMarginBottom\n label={label || ''}\n value={value || ''}\n onChange={handleChange}\n options={[{ value: '', label: 'Select an option' }, ...options]}\n />\n )}\n {(!options || options?.length === 0) && (\n <p className=\"mb-2\">{emptyLabel}</p>\n )}\n </div>\n );\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';\nimport { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\ntype SpinnerProps = {\n label?: string;\n className?: string;\n defaultValue: boolean;\n};\n\nexport const Spinner = ({ className, defaultValue }: SpinnerProps) => {\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, 500);\n if (defaultValue) {\n setIsLoading(true);\n }\n }, [isLoading, defaultValue]);\n\n return isLoading && <WordpressSpinner className={classNames(className)} />;\n};\n","import { TabPanel } from '@wordpress/components';\nimport { createContext, useContext, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\nconst TabsContext = createContext<{\n activeTab: string | undefined;\n setActiveTab: React.Dispatch<React.SetStateAction<string | undefined>>;\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};\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 };\n\n return (\n <TabsContext.Provider value={providerValue}>\n <Wrap important className={rest.className}>\n {children}\n </Wrap>\n </TabsContext.Provider>\n );\n};\n\ntype TabsListProps = {\n options: { name: string; title: string; 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 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 return activeTab === value ? (\n <Wrap className={className}>{children}</Wrap>\n ) : null;\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 { 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 }) => {\n const handlePressChange = (val: string) => {\n onPressedChange(val);\n };\n\n return (\n <Wrap className={classNames(className)}>\n <WordpressToggleGroupControl\n __next40pxDefaultSize\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","Icon","IconComponent","rest","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","Wrap","important","onClick","AutocompleteDropdown","swatch","activeKeyword","setActiveKeyword","useState","filteredOptions","setFilteredOptions","useEffect","Dropdown","isOpen","onToggle","Button","TextControl","changedValue","Badge","BitePreview","htmlContent","cssContent","frontendAssets","iframeRef","useRef","iframeBody","setIframeBody","iframe","iframeDocument","styleTag","type","id","url","existingElement","adoptedElement","newElement","createPortal","disabled","isIconDisplay","Chapter","title","ChapterDivider","help","badge","props","Checkbox","defaultChecked","isChecked","setChecked","CheckboxControl","ChevronDown","ColumnSpacing","Cross2","Desktop","Grid","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","addons","footerSlot","footerSlotClassName","rename","setRename","isSaving","setIsSaving","textRef","handleAdd","handleRemove","newData","d","currentIndex","nextActive","handleRenameBlur","item","PlusIcon","TrashIcon","DisappearingMessage","duration","show","message","isShowing","setIsShowing","hasMounted","timeoutRef","DropdownPicker","defaultIcon","ChevronDownIcon","currentOption","setCurrentOption","allOptions","iconSize","DropdownMenu","_a","EmptyState","description","FloatingPanel","panelRef","position","setPosition","dragging","setDragging","offset","setOffset","handleMouseMove","handleMouseUp","startDragging","rect","FocalPointControl","onValueChange","focalPoint","setFocalPoint","x","y","v","FocalPointPicker","LinkPicker","links","setLinks","activeLink","setActiveLink","apiFetch","fetchedLinks","__","LinkList","link","onActiveLink","list","MediaPicker","mediaProps","mediaCallback","allowedTypes","stateMedia","setStateMedia","removeMedia","onSelectMedia","media","safeSizes","sizeObject","mediaObj","PanelRow","MediaUploadCheck","MediaUpload","open","Popover","visible","onVisibleChange","isVisible","setIsVisible","toggleVisible","WordpressPopover","RangeSlider","min","max","withInputField","gridMode","showTooltip","resetFallbackValue","rangeValue","setRangeValue","handleRangeUpdate","val","gridValue","WordpressRangeControl","MetricsControl","unit","onUnitChange","currentOptions","setCurrentOptions","resetValue","setResetValue","showOptions","_c","_b","unitOptions","TailwindUnitIcon","PercentageIcon","GridIcon","DesktopIcon","SliderIcon","ColumnSpacingIcon","InputControl","InputControlSuffixWrapper","selectedUnit","ModalContext","createContext","useModalContext","context","useContext","Modal","defaultOpen","onOpenChange","setOpen","openModal","closeModal","Children","child","isValidElement","ModalTrigger","WordpressModal","ModalHeader","ModalContent","ModalFooter","ModalClose","copyStyles","sourceDoc","targetDoc","styleSheet","newStyleEl","cssRule","newLinkEl","NewWindowPortal","windowInstance","onClose","containerEl","useMemo","win","handleBeforeUnload","Notice","status","showNotice","setShowNotice","WordpressNotice","PasswordInput","showPassword","setShowPassword","SVG","Path","prev","ProjectsNavigation","items","activeId","onSelect","ResponsiveImage","mediaClass","alt","sizes","thumbnail","medium","large","thumbnailImg","mediumImg","largeImg","ResponsiveVideo","videoUrl","ScrollList","height","SelectControlWrapper","emptyLabel","handleChange","WordpressSelect","select","dispatch","SingleBlockTypeAppender","buttonText","addLastDuplicate","currentBlock","clientId","innerBlocks","lastBlock","newBlock","createBlock","SlideIn","watch","slide","setSlide","Spinner","defaultValue","isLoading","setIsLoading","WordpressSpinner","TabsContext","TabsWrapper","isControlled","internalValue","setInternalValue","providerValue","TabsList","setActiveTab","TabPanel","tabName","TabsContent","Tabs","Tag","color","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/Icon.tsx","../src/ButtonToggle.tsx","../src/Wrap.tsx","../src/AutocompleteDropdown.tsx","../src/Badge.tsx","../src/BitePreview.tsx","../src/Button.tsx","../src/Chapter.tsx","../src/ChapterDivider.tsx","../src/Checkbox.tsx","../../icons/jsx/ChevronDown.jsx","../../icons/jsx/ColumnSpacing.jsx","../../icons/jsx/Cross2.jsx","../../icons/jsx/Desktop.jsx","../../icons/jsx/Grid.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/LinkPicker.tsx","../src/MediaPicker.tsx","../src/Popover.tsx","../src/RangeSlider.tsx","../src/MetricsControl.tsx","../src/Modal.tsx","../src/NewWindowPortal.tsx","../src/Notice.tsx","../src/PasswordInput.tsx","index.js","../src/ProjectsNavigation.tsx","../src/ResponsiveImage.tsx","../src/ResponsiveVideo.tsx","../src/ScrollList.tsx","../src/SelectControlWrapper.tsx","../src/SingleBlockTypeAppender.tsx","../src/SlideIn.tsx","../src/Spinner.tsx","../src/Tabs.tsx","../src/Tag.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","type IconProps = {\n icon: React.FC<React.SVGProps<SVGSVGElement>> | null; // Type it as a React Functional Component\n [x: string]: any;\n};\n\nexport const Icon = ({ icon: IconComponent, ...rest }: IconProps) => {\n if (!IconComponent) return null;\n\n return (\n <div className={`blockbite--icon`}>\n <IconComponent {...rest} />\n </div>\n );\n};\n","import { Button as WordpressButton } from '@wordpress/components';\nimport { memo, useCallback } from '@wordpress/element';\nimport classNames from 'classnames';\nimport { Icon } from './Icon.js';\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?: any;\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,\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 icon={icon} />}\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 if (display === 'icon' && option?.icon) {\n return <Icon icon={option.icon} />;\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} />}\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","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 { 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';\nimport { Wrap } from './Wrap.js';\n\ninterface OptionPanelDropdownProps {\n value: string;\n options: { label: string; value: 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\"\n popoverProps={{ placement: 'bottom-start' }}\n renderToggle={({ isOpen, onToggle }) => (\n <Wrap important>\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 className={classNames(`h-3 w-3 rounded-full bg-${value}`)}\n />\n )}\n <span>{value || 'Select option…'}</span>\n </div>\n </Button>\n </Wrap>\n )}\n renderContent={() => (\n <Wrap important>\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 className={classNames(\n `mr-3 h-3 w-3 rounded-full bg-${option.value}`\n )}\n />\n )}\n {option.label}\n </ButtonToggle>\n ))}\n </div>\n </div>\n </Wrap>\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};\n\nexport const Badge = ({ children, className, label, onClick }: BadgeProps) => {\n return (\n <div\n onClick={onClick}\n className={classNames(\n className,\n 'inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800'\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 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","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","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 [key: string]: any;\n};\n\nexport const ChapterDivider = ({\n title,\n className,\n help,\n badge,\n ...props\n}: ChapterDividerProps) => {\n return (\n <div className={classNames('mb-2', className)} {...props}>\n <div className=\"flex w-full flex-wrap items-center gap-2 justify-between\">\n <span className=\"shrink-1 text-[11px] font-medium uppercase leading-snug\">\n {title}\n </span>\n\n {!!badge && <Badge className=\"text-[10px] py-px px-1\">{badge}</Badge>}\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 ColumnSpacing = (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.50012 1C7.22398 1 7.00012 1.22386 7.00012 1.5V13.5C7.00012 13.7761 7.22398 14 7.50012 14C7.77626 14 8.00012 13.7761 8.00012 13.5V1.5C8.00012 1.22386 7.77626 1 7.50012 1ZM3.31812 5.18161C3.14239 5.00587 2.85746 5.00587 2.68173 5.18161L0.681729 7.18161C0.505993 7.35734 0.505993 7.64227 0.681729 7.818L2.68173 9.818C2.85746 9.99374 3.14239 9.99374 3.31812 9.818C3.49386 9.64227 3.49386 9.35734 3.31812 9.18161L2.08632 7.9498H5.50017C5.7487 7.9498 5.95017 7.74833 5.95017 7.4998C5.95017 7.25128 5.7487 7.0498 5.50017 7.0498H2.08632L3.31812 5.818C3.49386 5.64227 3.49386 5.35734 3.31812 5.18161ZM11.6817 5.18161C11.506 5.35734 11.506 5.64227 11.6817 5.818L12.9135 7.0498H9.50017C9.25164 7.0498 9.05017 7.25128 9.05017 7.4998C9.05017 7.74833 9.25164 7.9498 9.50017 7.9498H12.9135L11.6817 9.18161C11.506 9.35734 11.506 9.64227 11.6817 9.818C11.8575 9.99374 12.1424 9.99374 12.3181 9.818L14.3181 7.818C14.4939 7.64227 14.4939 7.35734 14.3181 7.18161L12.3181 5.18161C12.1424 5.00587 11.8575 5.00587 11.6817 5.18161Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ColumnSpacing;\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 Desktop = (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=\"M0 3.25V10.75C0 11.4404 0.559644 12 1.25 12H5.07341L4.82991 13.2986C4.76645 13.6371 5.02612 13.95 5.37049 13.95H9.62951C9.97389 13.95 10.2336 13.6371 10.1701 13.2986L9.92659 12H13.75C14.4404 12 15 11.4404 15 10.75V3.25C15 2.55964 14.4404 2 13.75 2H1.25C0.559643 2 0 2.55964 0 3.25ZM1.25 3H13.75C13.8881 3 14 3.11193 14 3.25V10.75C14 10.8881 13.8881 11 13.75 11H1.25C1.11193 11 1 10.8881 1 10.75V3.25C1 3.11193 1.11193 3 1.25 3ZM5.98909 12L5.79222 13.05H9.20778L9.01091 12H5.98909Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Desktop;\n","const Grid = (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=\"M1 2.5V12.5C1 13.3284 1.67157 14 2.5 14H12.5C13.3284 14 14 13.3284 14 12.5V2.5C14 1.67157 13.3284 1 12.5 1H2.5C1.67157 1 1 1.67157 1 2.5ZM8 2V7H13V2.5C13 2.22386 12.7761 2 12.5 2H8ZM8 8V13H12.5C12.7761 13 13 12.7761 13 12.5V8H8ZM7 2H2.5C2.22386 2 2 2.22386 2 2.5V7H7V2ZM2 12.5C2 12.7761 2.22386 13 2.5 13H7V8H2V12.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Grid;\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 type { DataItem } from '@blockbite/types';\nimport { TextControl } from './TextControl.js';\nimport { Wrap } from './Wrap.js';\n\ntype DataListProps = {\n data: DataItem[];\n active: any;\n setActive: (item: DataItem | undefined) => void;\n onCreate: () => void;\n onDelete: (id: string) => void;\n onUpdate: (id: string, updates: Partial<DataItem>) => void;\n onSwitch: (prevId: string, updates: Partial<DataItem>) => void;\n renderItemActions?: (item: DataItem) => React.ReactNode;\n addons?: JSX.Element;\n className?: string;\n footerSlot?: React.ReactNode;\n footerSlotClassName?: string;\n};\n\nexport const DataItemList = ({\n data,\n active,\n setActive,\n onCreate,\n onDelete,\n onUpdate,\n onSwitch,\n renderItemActions,\n addons,\n className = '',\n footerSlot,\n footerSlotClassName = '',\n}: DataListProps) => {\n const [rename, setRename] = useState<{ id: string; name: string }>({\n id: '',\n name: '',\n });\n const [isSaving, setIsSaving] = useState(false);\n\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, { name: value });\n }\n\n setTimeout(() => {\n setRename({ id: '', name: '' });\n setIsSaving(false);\n }, 500);\n };\n\n return (\n <Wrap important className={className}>\n <ul className=\"h-[calc(100%-80px)] 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 items-center justify-between gap-1 bg-opacity-50 hover:bg-easy',\n {\n 'bg-easy': item.id === active?.id,\n }\n )}\n >\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, name: item.name || '' });\n }}\n >\n {isSaving && rename.id === item.id ? (\n <span className=\"animate-pulse text-gray-medium\">\n {rename.name}\n </span>\n ) : (\n <span className=\"text-gray-medium\">\n {item.name || 'Untitled'}\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.name}\n onChange={(value) =>\n setRename({ ...rename, name: value })\n }\n ref={textRef}\n onBlur={handleRenameBlur}\n />\n )}\n </div>\n {renderItemActions && (\n <div className=\"flex gap-1 pr-1\">\n {renderItemActions(item)}\n </div>\n )}\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 </Wrap>\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};\n\nexport const DisappearingMessage = ({\n duration = 3000,\n className,\n children,\n show,\n message,\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 }, duration);\n }\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, [show, duration]);\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 !font-sans text-sm font-medium\">\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","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({\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 <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';\n\nimport { Button, PanelRow } from '@wordpress/components';\n\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 // toggles\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 mediaId: 0,\n mediaUrl: '',\n };\n mediaCallback({ ...mediaObj });\n };\n // onselect 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).map((key) => {\n const sizeObject = media.sizes[key];\n\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\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\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 return null;\n });\n }\n\n // if type ends .lottie then it is a lottie file\n if (media.url.endsWith('.json')) {\n media.type = 'lottie';\n }\n // if type ends with .svg then it is an svg file\n if (media.url.endsWith('.svg')) {\n media.type = 'svg';\n }\n\n const mediaObj = {\n id: media.id,\n url: media.url,\n sizes: safeSizes,\n alt: media.alt,\n type: media.type,\n width: media.width,\n height: media.height,\n };\n mediaCallback({ ...mediaObj });\n };\n\n return (\n <PanelRow>\n {stateMedia.id !== null && (\n <MediaUploadCheck>\n <MediaUpload\n onSelect={onSelectMedia}\n value={stateMedia.id}\n allowedTypes={allowedTypes}\n render={({ open }) => (\n <Button\n className={\n stateMedia.id === 0\n ? 'editor-post-featured-image__toggle'\n : 'editor-post-featured-image__preview'\n }\n onClick={open}\n >\n {stateMedia.id === 0 && __('Choose Media', 'blockbite')}\n {stateMedia.id && stateMedia.type === 'image' ? (\n <div className=\"blockbite--editor-visual-image\">\n <img\n alt={\n stateMedia.alt\n ? stateMedia.alt\n : __('Image', 'blockbite')\n }\n src={stateMedia.url}\n />\n </div>\n ) : (\n 'Add media'\n )}\n </Button>\n )}\n />\n </MediaUploadCheck>\n )}\n {stateMedia.id !== 0 && (\n <MediaUploadCheck>\n <MediaUpload\n title={__('Replace media', 'blockbite')}\n value={stateMedia.id}\n onSelect={onSelectMedia}\n allowedTypes={allowedTypes}\n render={({ open }) => (\n <Button onClick={open}>{__('Replace media', 'blockbite')}</Button>\n )}\n />\n </MediaUploadCheck>\n )}\n {stateMedia.id !== 0 && (\n <MediaUploadCheck>\n <Button onClick={() => removeMedia()} isDestructive>\n {__('Remove media', 'blockbite')}\n </Button>\n </MediaUploadCheck>\n )}\n </PanelRow>\n );\n}\n","import { Cross2 } from '@blockbite/icons';\nimport { Button, Popover as WordpressPopover } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\n\ntype PopoverProps = {\n children: React.ReactNode;\n className?: string;\n defaultValue?: string;\n value?: string;\n position?: any;\n visible?: boolean;\n onClick?: () => void;\n onVisibleChange?: (value: boolean) => void;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n className,\n position,\n visible,\n onClick,\n onVisibleChange,\n}) => {\n const [isVisible, setIsVisible] = useState<boolean>(!!visible);\n\n useEffect(() => {\n if (visible !== undefined) {\n setIsVisible(visible);\n }\n }, [visible]);\n\n const toggleVisible = () => {\n const newValue = !isVisible;\n setIsVisible(newValue);\n onVisibleChange && onVisibleChange(newValue);\n };\n\n return (\n <>\n {isVisible && (\n <WordpressPopover\n position={position}\n className=\"blockbite-ui__popover\"\n onClick={onClick}\n onFocusOutside={() => {\n setIsVisible(false);\n onVisibleChange && onVisibleChange(false);\n }}\n >\n <div className={className}>\n <div className=\"relative h-full w-full p-4\">\n <Button\n onClick={toggleVisible}\n size=\"small\"\n className=\"close-button absolute right-0 top-0\"\n >\n <Cross2 />\n </Button>\n {children}\n </div>\n </div>\n </WordpressPopover>\n )}\n </>\n );\n};\n\nexport default Popover;\n","import { useEffect, useState } from '@wordpress/element';\nimport { Wrap } from './Wrap.js';\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 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 gridMode = false,\n showTooltip = false,\n ...props\n}) => {\n const [resetFallbackValue] = useState(0);\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 const gridValue = val * (gridMode ? 16 : 1);\n onValueChange(gridValue.toString());\n }\n\n return (\n <Wrap className=\"flex min-w-[240px] 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 onChange={(val) => {\n setRangeValue(val);\n handleRangeUpdate(val);\n }}\n resetFallbackValue={resetFallbackValue}\n {...props}\n />\n <span>{gridMode ? `${rangeValue * 16}px` : null} </span>\n </Wrap>\n );\n};\n","import {\n __experimentalInputControl as InputControl,\n __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { ButtonToggleGroup } from './ButtonToggle.js';\nimport { DropdownPicker } from './DropdownPicker.js';\nimport { Popover } from './Popover.js';\nimport { RangeSlider } from './RangeSlider.js';\n\nimport {\n ColumnSpacing as ColumnSpacingIcon,\n Desktop as DesktopIcon,\n Grid as GridIcon,\n Percentage as PercentageIcon,\n Slider as SliderIcon,\n Tailwind as TailwindUnitIcon,\n} from '@blockbite/icons';\n\ntype MetricsControlProps = {\n unit: string;\n value: string;\n units?:\n | string[]\n | 'native'\n | 'percent'\n | 'grid'\n | 'arbitrary'\n | 'fluid'\n | 'screen'\n | 'all';\n inputClassName?: string;\n onValueChange: (value: string) => void;\n onUnitChange: (unit: string) => void;\n};\n\nexport const MetricsControl: React.FC<MetricsControlProps> = ({\n unit,\n value,\n onValueChange,\n onUnitChange,\n inputClassName = '',\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [currentOptions, setCurrentOptions] = useState<string[]>([]);\n const [resetValue, setResetValue] = useState<string | number>(value);\n\n // Save last value after popover close to support \"reset\" functionality\n useEffect(() => {\n if (!isVisible && unit === 'arbitrary') {\n setResetValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible]);\n\n const showOptions = (u: string) => {\n if (u !== 'arbitrary' && bb?.codex?.units?.spacing?.[u]) {\n const options =\n bb.codex.units.spacing[u as keyof typeof bb.codex.units.spacing];\n setCurrentOptions(\n Array.isArray(options) ? options : Object.keys(options)\n );\n } else {\n setCurrentOptions([]);\n }\n setIsVisible(true);\n };\n\n const unitOptions = [\n {\n icon: <TailwindUnitIcon />,\n label: 'Tailwind CSS Units',\n value: 'native',\n },\n { icon: <PercentageIcon />, label: 'Percentage Units', value: 'percent' },\n { icon: <GridIcon />, label: 'Grid Units', value: 'grid' },\n { icon: <DesktopIcon />, label: 'Screen Units', value: 'screen' },\n { icon: <SliderIcon />, label: 'Pixel Units', value: 'arbitrary' },\n { icon: <ColumnSpacingIcon />, label: 'Fluid Units', value: 'fluid' },\n ];\n\n return (\n <div className=\"relative flex flex-col items-baseline\">\n <InputControl\n __next40pxDefaultSize\n className={inputClassName}\n value={unit === 'grid' ? value.replace('b_', '') : value}\n onClick={() => unit !== 'arbitrary' && showOptions(unit)}\n onChange={onValueChange}\n readOnly={unit !== 'arbitrary'}\n autoComplete=\"off\"\n suffix={\n <InputControlSuffixWrapper>\n <Popover\n visible={isVisible}\n position=\"bottom left\"\n className=\"w-[300px] bg-white shadow-sm\"\n onVisibleChange={setIsVisible}\n >\n {unit === 'arbitrary' ? (\n <RangeSlider\n value={value}\n label=\"Pixel Value\"\n min={0}\n max={100}\n gridMode={true}\n showTooltip={false}\n allowReset={true}\n resetFallbackValue={\n isNaN(resetValue.toString() as any)\n ? 0\n : Number(resetValue) / 16\n }\n onValueChange={onValueChange}\n />\n ) : (\n <ButtonToggleGroup\n className=\"mt-4\"\n options={currentOptions.map((option) => ({\n value: option,\n label:\n unit === 'grid'\n ? option.toString().replace('b_', '')\n : option,\n onClick: () => {\n onValueChange(option);\n },\n }))}\n size=\"small\"\n value={value?.toString() || ''}\n onPressedChange={onValueChange}\n />\n )}\n </Popover>\n <DropdownPicker\n value={unit}\n options={unitOptions}\n toggleProps={{\n className: '!p-0 !min-w-0 !h-6 w-6',\n }}\n onPressedChange={(selectedUnit) => {\n if (selectedUnit === 'reset') {\n onValueChange('');\n setIsVisible(false);\n } else {\n onUnitChange(selectedUnit);\n showOptions(selectedUnit);\n }\n }}\n />\n </InputControlSuffixWrapper>\n }\n ></InputControl>\n </div>\n );\n};\n\nexport default MetricsControl;\n","import {\n Children,\n createContext,\n isValidElement,\n useContext,\n useEffect,\n useState,\n} from '@wordpress/element';\n\nimport { Modal as WordpressModal } from '@wordpress/components';\nimport classNames from 'classnames';\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 defaultOpen: boolean;\n onOpenChange: (checked: boolean) => void;\n title: string;\n className?: string;\n};\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n defaultOpen,\n onOpenChange,\n title,\n className,\n}) => {\n const [isOpen, setOpen] = useState(false);\n\n // Sync `isOpen` with `defaultOpen` when `defaultOpen` changes\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const openModal = () => setOpen(true);\n const closeModal = () => setOpen(false);\n\n useEffect(() => {\n onOpenChange(isOpen);\n }, [isOpen, onOpenChange]);\n\n return (\n <ModalContext.Provider value={{ closeModal, openModal }}>\n {/* Render MOdalTrigger */}\n {Children.map(children, (child) => {\n return isValidElement(child) && child.type === ModalTrigger\n ? child\n : null;\n })}\n {isOpen && (\n <WordpressModal\n className={classNames('blockbite-ui__modal', className)}\n onRequestClose={closeModal}\n title={title}\n >\n <div className=\"relative\">\n {/* Render ModalHeader */}\n {Children.map(children, (child) => {\n return isValidElement(child) && child.type === ModalHeader\n ? child\n : null;\n })}\n {/* Render ModalContent */}\n {Children.map(children, (child) => {\n return isValidElement(child) && child.type === ModalContent\n ? child\n : null;\n })}\n {/* Render ModalFooter */}\n {Children.map(children, (child) => {\n return isValidElement(child) && child.type === ModalFooter\n ? child\n : null;\n })}\n </div>\n </WordpressModal>\n )}\n </ModalContext.Provider>\n );\n};\n\n// Header component for modal\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 {children}\n </div>\n);\n\n// Footer component for modal\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\n// Description component for modal\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","import { Button as h, Dropdown as pe, TextControl as U, CheckboxControl as fe, DropdownMenu as be, FocalPointPicker as ge, PanelRow as ve, Popover as Re, RangeControl as Ee, __experimentalInputControl as le, __experimentalInputControlSuffixWrapper as ne, Modal as he, Notice as Ce, __experimentalToggleGroupControl as O, __experimentalToggleGroupControlOptionIcon as $, __experimentalToggleGroupControlOption as j, SelectControl as xe, Spinner as we, TabPanel as ye, ToggleControl as Ne } from \"@wordpress/components\";\nimport { memo as x, useCallback as w, useState as f, useEffect as g, useRef as L, createPortal as re, forwardRef as z, createContext as y, useContext as W, Children as P, isValidElement as H, useMemo as _e } from \"@wordpress/element\";\nimport ke from \"@wordpress/api-fetch\";\nimport { __ as N } from \"@wordpress/i18n\";\nimport { MediaUploadCheck as Z, MediaUpload as q } from \"@wordpress/block-editor\";\nimport { SVG as Se, Path as Me } from \"@wordpress/primitives\";\nimport { createBlock as Te } from \"@wordpress/blocks\";\nfunction Le(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar D = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar X;\nfunction Be() {\n return X || (X = 1, function(e) {\n (function() {\n var t = {}.hasOwnProperty;\n function a() {\n for (var l = \"\", c = 0; c < arguments.length; c++) {\n var r = arguments[c];\n r && (l = s(l, n(r)));\n }\n return l;\n }\n function n(l) {\n if (typeof l == \"string\" || typeof l == \"number\")\n return l;\n if (typeof l != \"object\")\n return \"\";\n if (Array.isArray(l))\n return a.apply(null, l);\n if (l.toString !== Object.prototype.toString && !l.toString.toString().includes(\"[native code]\"))\n return l.toString();\n var c = \"\";\n for (var r in l)\n t.call(l, r) && l[r] && (c = s(c, r));\n return c;\n }\n function s(l, c) {\n return c ? l ? l + \" \" + c : l + c : l;\n }\n e.exports ? (a.default = a, e.exports = a) : window.classNames = a;\n })();\n }(D)), D.exports;\n}\nvar Pe = Be();\nconst b = /* @__PURE__ */ Le(Pe), _ = ({ icon: e, ...t }) => e ? /* @__PURE__ */ React.createElement(\"div\", { className: \"blockbite--icon\" }, /* @__PURE__ */ React.createElement(e, { ...t })) : null, He = x(\n ({\n children: e,\n className: t,\n value: a,\n variant: n = \"secondary\",\n pressed: s,\n onPressedChange: l,\n icon: c,\n size: r = \"compact\",\n display: m = \"auto\",\n label: i\n }) => {\n const d = w(() => {\n l(a);\n }, [l, a]);\n return /* @__PURE__ */ React.createElement(\n h,\n {\n \"aria-label\": i,\n className: b(t, \"blockbite-ui__button--default\"),\n value: a,\n size: r,\n label: i,\n variant: n,\n showTooltip: !0,\n isPressed: s,\n onClick: d\n },\n c && /* @__PURE__ */ React.createElement(_, { icon: c }),\n m !== \"icon\" ? e : null,\n i && !e && m !== \"icon\" ? /* @__PURE__ */ React.createElement(\"span\", null, i) : null\n );\n }\n), Oe = x(\n ({\n className: e,\n value: t,\n toggle: a = !0,\n display: n = \"auto\",\n options: s,\n size: l = \"compact\",\n tabs: c = !1,\n variant: r = \"secondary\",\n stretch: m = !1,\n onPressedChange: i\n }) => {\n const d = w(\n (o) => {\n const u = a && t === o ? \"\" : o;\n i == null || i(u);\n },\n [i, a, t]\n ), p = (o) => n === \"icon\" && (o != null && o.icon) ? /* @__PURE__ */ React.createElement(_, { icon: o.icon }) : n === \"label\" ? /* @__PURE__ */ React.createElement(\"span\", null, o.label) : /* @__PURE__ */ React.createElement(\"span\", { className: \"flex items-center justify-center gap-1\" }, o.icon && /* @__PURE__ */ React.createElement(_, { icon: o.icon }), /* @__PURE__ */ React.createElement(\"span\", null, o.label));\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: b(\n \"blockbite-ui__button-group flex flex-wrap gap-1\",\n e,\n c ? \"blockbite-ui__button-group--tabs\" : \"\"\n )\n },\n s.map((o, u) => /* @__PURE__ */ React.createElement(\n h,\n {\n key: `ButtonToggleGroup__${o.value}__${o.label}__${u}`,\n className: b(\"blockbite-ui__button--default\", {\n grow: m,\n \"justify-center\": m\n }),\n \"aria-label\": o.label,\n showTooltip: !0,\n value: o.value,\n size: l,\n label: (o == null ? void 0 : o.tooltip) || o.label,\n variant: r,\n isPressed: t === o.value,\n onClick: () => d(o.value)\n },\n p(o),\n o.children && o.children\n ))\n );\n }\n), E = ({\n children: e,\n className: t,\n important: a = !1,\n onClick: n\n}) => a ? /* @__PURE__ */ React.createElement(\"div\", { onClick: n }, /* @__PURE__ */ React.createElement(\"div\", { className: t }, e)) : /* @__PURE__ */ React.createElement(\"div\", { className: t }, e);\nfunction Mt({\n value: e,\n options: t,\n swatch: a,\n onPressedChange: n\n}) {\n const [s, l] = f(\"\"), [c, r] = f([]);\n return g(() => {\n r(\n t.filter(\n (m) => m.label.toLowerCase().includes(s.toLowerCase())\n )\n );\n }, [s, t]), g(() => {\n l(\"\"), r(t);\n }, [e, t]), /* @__PURE__ */ React.createElement(\n pe,\n {\n className: \"option-panel-dropdown\",\n contentClassName: \"option-panel-dropdown-content\",\n popoverProps: { placement: \"bottom-start\" },\n renderToggle: ({ isOpen: m, onToggle: i }) => /* @__PURE__ */ React.createElement(E, { important: !0 }, /* @__PURE__ */ React.createElement(\n h,\n {\n variant: \"secondary\",\n size: \"small\",\n onClick: i,\n \"aria-expanded\": m\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"flex items-center gap-1.5 !bg-transparent !p-0 !text-[11px] !text-current\" }, a && !!e && /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: b(`h-3 w-3 rounded-full bg-${e}`)\n }\n ), /* @__PURE__ */ React.createElement(\"span\", null, e || \"Select option…\"))\n )),\n renderContent: () => /* @__PURE__ */ React.createElement(E, { important: !0 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"w-52\" }, /* @__PURE__ */ React.createElement(\n U,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n label: \"Search options\",\n value: s,\n onChange: (m) => l(m),\n autoComplete: \"off\"\n }\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"grid grid-cols-2 gap-1 !bg-transparent p-0 !pt-2\" }, c.length === 0 && /* @__PURE__ */ React.createElement(\"div\", { className: \"!text-gray-medium col-span-2 pb-2 text-center !text-[11px]\" }, \"No options found.\"), c.map((m, i) => /* @__PURE__ */ React.createElement(\n He,\n {\n key: `ButtonToggle__${m.value}___${i}`,\n className: b({\n \"bg-primary\": m.value\n }),\n size: \"small\",\n value: m.value.toString(),\n pressed: e === m.value,\n onPressedChange: (d) => {\n n(d ? m.value : \"\");\n }\n },\n a && /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: b(\n `mr-3 h-3 w-3 rounded-full bg-${m.value}`\n )\n }\n ),\n m.label\n )))))\n }\n );\n}\nconst $e = ({ children: e, className: t, label: a, onClick: n }) => /* @__PURE__ */ React.createElement(\n \"div\",\n {\n onClick: n,\n className: b(\n t,\n \"inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800\"\n )\n },\n a && /* @__PURE__ */ React.createElement(\"span\", { className: \"mr-1 text-xs font-semibold text-gray-700\" }, a),\n e\n), Tt = ({ htmlContent: e, cssContent: t, frontendAssets: a }) => {\n const n = L(null), [s, l] = f(null);\n return g(() => {\n const c = n.current;\n return c && (c.onload = () => {\n const r = c.contentDocument || c.contentWindow.document;\n if (r) {\n l(r.body);\n const m = r.createElement(\"style\");\n m.innerHTML = t, r.head.appendChild(m), a.forEach(({ type: i, id: d, url: p }) => {\n const o = document.getElementById(d);\n if (o) {\n const u = document.adoptNode(\n o.cloneNode(!0)\n );\n r.head.appendChild(u);\n } else {\n const u = r.createElement(\n i === \"script\" ? \"script\" : \"link\"\n );\n u.id = d, i === \"script\" ? (u.src = p, u.async = !0) : (u.rel = \"stylesheet\", u.href = p), r.head.appendChild(u);\n }\n });\n }\n }), () => {\n c && (c.onload = null);\n };\n }, [e, t, a]), /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"render-preview-container\",\n style: { width: \"100%\", minHeight: \"100%\" }\n },\n /* @__PURE__ */ React.createElement(\n \"iframe\",\n {\n ref: n,\n title: \"Preview\",\n className: \"editor-styles-wrapper\",\n width: \"100%\",\n height: \"100%\"\n }\n ),\n s && re(\n /* @__PURE__ */ React.createElement(\"div\", { className: \"b_\" }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"b_utils\",\n dangerouslySetInnerHTML: { __html: e }\n }\n )),\n s\n )\n );\n}, Lt = ({\n children: e,\n size: t = \"default\",\n label: a,\n className: n,\n onClick: s,\n variant: l = \"primary\",\n display: c = \"auto\",\n icon: r,\n disabled: m = !1\n}) => {\n const i = c === \"icon\" || c === \"icon-lg\";\n return /* @__PURE__ */ React.createElement(\n h,\n {\n size: t,\n variant: l,\n label: a,\n showTooltip: !0,\n disabled: m,\n className: b(\n n,\n \"blockbite-ui__button\",\n \"flex items-center justify-center gap-1\",\n { \"is-primary\": l === \"primary\" },\n { \"is-secondary\": l === \"secondary\" },\n { \"is-link\": l === \"link\" },\n { \"is-tertiary\": l === \"tertiary\" },\n { \"is-icon\": c === \"icon\" }\n ),\n onClick: s\n },\n r && /* @__PURE__ */ React.createElement(\n _,\n {\n icon: r,\n className: b({ \"h-4 w-4\": c === \"icon-lg\" })\n }\n ),\n i ? null : e,\n a && !e && !i ? /* @__PURE__ */ React.createElement(\"span\", null, a) : null\n );\n}, Bt = ({ children: e, title: t, className: a }) => /* @__PURE__ */ React.createElement(\n E,\n {\n className: b(\n \"text-gray-medium my-2 flex items-center gap-1 text-[12px] font-medium\",\n a\n )\n },\n t && /* @__PURE__ */ React.createElement(E, { className: \"font-medium\" }, t),\n e\n), Pt = ({\n title: e,\n className: t,\n help: a,\n badge: n,\n ...s\n}) => /* @__PURE__ */ React.createElement(\"div\", { className: b(\"mb-2\", t), ...s }, /* @__PURE__ */ React.createElement(\"div\", { className: \"flex w-full flex-wrap items-center gap-2 justify-between\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"shrink-1 text-[11px] font-medium uppercase leading-snug\" }, e), !!n && /* @__PURE__ */ React.createElement($e, { className: \"text-[10px] py-px px-1\" }, n)), a && /* @__PURE__ */ React.createElement(\"small\", { className: \"w-full shrink-0 text-[11px]\" }, a)), Ht = ({ label: e, help: t, defaultChecked: a }) => {\n const [n, s] = f(a);\n return g(() => {\n s(a);\n }, [a]), /* @__PURE__ */ React.createElement(E, { className: \"blockbite-ui__checkbox mx-1 flex items-center gap-2\" }, /* @__PURE__ */ React.createElement(\n fe,\n {\n label: e,\n help: t,\n checked: n,\n onChange: s\n }\n ));\n}, je = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\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 )\n), ze = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.50012 1C7.22398 1 7.00012 1.22386 7.00012 1.5V13.5C7.00012 13.7761 7.22398 14 7.50012 14C7.77626 14 8.00012 13.7761 8.00012 13.5V1.5C8.00012 1.22386 7.77626 1 7.50012 1ZM3.31812 5.18161C3.14239 5.00587 2.85746 5.00587 2.68173 5.18161L0.681729 7.18161C0.505993 7.35734 0.505993 7.64227 0.681729 7.818L2.68173 9.818C2.85746 9.99374 3.14239 9.99374 3.31812 9.818C3.49386 9.64227 3.49386 9.35734 3.31812 9.18161L2.08632 7.9498H5.50017C5.7487 7.9498 5.95017 7.74833 5.95017 7.4998C5.95017 7.25128 5.7487 7.0498 5.50017 7.0498H2.08632L3.31812 5.818C3.49386 5.64227 3.49386 5.35734 3.31812 5.18161ZM11.6817 5.18161C11.506 5.35734 11.506 5.64227 11.6817 5.818L12.9135 7.0498H9.50017C9.25164 7.0498 9.05017 7.25128 9.05017 7.4998C9.05017 7.74833 9.25164 7.9498 9.50017 7.9498H12.9135L11.6817 9.18161C11.506 9.35734 11.506 9.64227 11.6817 9.818C11.8575 9.99374 12.1424 9.99374 12.3181 9.818L14.3181 7.818C14.4939 7.64227 14.4939 7.35734 14.3181 7.18161L12.3181 5.18161C12.1424 5.00587 11.8575 5.00587 11.6817 5.18161Z\",\n fill: \"currentColor\"\n }\n )\n), Ve = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\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 )\n), Ie = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 3.25V10.75C0 11.4404 0.559644 12 1.25 12H5.07341L4.82991 13.2986C4.76645 13.6371 5.02612 13.95 5.37049 13.95H9.62951C9.97389 13.95 10.2336 13.6371 10.1701 13.2986L9.92659 12H13.75C14.4404 12 15 11.4404 15 10.75V3.25C15 2.55964 14.4404 2 13.75 2H1.25C0.559643 2 0 2.55964 0 3.25ZM1.25 3H13.75C13.8881 3 14 3.11193 14 3.25V10.75C14 10.8881 13.8881 11 13.75 11H1.25C1.11193 11 1 10.8881 1 10.75V3.25C1 3.11193 1.11193 3 1.25 3ZM5.98909 12L5.79222 13.05H9.20778L9.01091 12H5.98909Z\",\n fill: \"currentColor\"\n }\n )\n), Ze = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1 2.5V12.5C1 13.3284 1.67157 14 2.5 14H12.5C13.3284 14 14 13.3284 14 12.5V2.5C14 1.67157 13.3284 1 12.5 1H2.5C1.67157 1 1 1.67157 1 2.5ZM8 2V7H13V2.5C13 2.22386 12.7761 2 12.5 2H8ZM8 8V13H12.5C12.7761 13 13 12.7761 13 12.5V8H8ZM7 2H2.5C2.22386 2 2 2.22386 2 2.5V7H7V2ZM2 12.5C2 12.7761 2.22386 13 2.5 13H7V8H2V12.5Z\",\n fill: \"currentColor\"\n }\n )\n), De = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\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 )\n), Ae = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\"circle\", { cx: 4.85355, cy: 4.5, r: 1.5, fill: \"currentColor\" }),\n /* @__PURE__ */ React.createElement(\"circle\", { cx: 9.85355, cy: 10.5, r: 1.5, fill: \"currentColor\" }),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M3 11.6464L11 3.64642\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\"\n }\n )\n), Fe = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\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 )\n), Ge = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\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 )\n), Ue = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\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 )\n), We = (e) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: e.width || \"1em\",\n height: e.height || \"1em\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n ...e\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\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 )\n), ce = z(\n ({\n onClick: e,\n onChange: t,\n className: a,\n value: n,\n children: s,\n inputClassName: l,\n readOnly: c,\n placeholder: r,\n onBlur: m,\n type: i = \"text\",\n label: d,\n helper: p = \"\",\n ...o\n }, u) => {\n const R = `text-control-${Math.random().toString(36).substring(2, 15)}`;\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: b(\"flex items-center p-0\", a),\n ...o\n },\n d ? /* @__PURE__ */ React.createElement(\"label\", { htmlFor: R, className: \"text-primary !m-0 !mb-0 !mr-2\" }, d) : null,\n /* @__PURE__ */ React.createElement(\n \"input\",\n {\n id: R,\n className: b(\n \"components-text-control__input\",\n l\n ),\n type: i,\n value: n,\n placeholder: r,\n onFocus: () => e && e(),\n onBlur: (v) => {\n e && e(), m && m(v.target.value);\n },\n onChange: (v) => t && t(v.target.value),\n readOnly: c,\n ref: u\n }\n ),\n s,\n p && /* @__PURE__ */ React.createElement(\"p\", { className: \"text-primary !m-0 !mb-0 text-xs\" }, p)\n );\n }\n);\nce.displayName = \"TextControl\";\nconst Ot = ({\n data: e,\n active: t,\n setActive: a,\n onCreate: n,\n onDelete: s,\n onUpdate: l,\n onSwitch: c,\n renderItemActions: r,\n addons: m,\n className: i = \"\",\n footerSlot: d,\n footerSlotClassName: p = \"\"\n}) => {\n const [o, u] = f({\n id: \"\",\n name: \"\"\n }), [R, v] = f(!1), B = L(null), T = () => {\n n();\n }, me = () => {\n if (!t || e.length === 0) return;\n const C = e.filter((I) => I.id !== (t == null ? void 0 : t.id)), V = e.findIndex((I) => I.id === (t == null ? void 0 : t.id)), de = C[V] || C[0];\n s(t == null ? void 0 : t.id), a(de);\n }, ue = (C) => {\n v(!0), o.id && l(o.id, { name: C }), setTimeout(() => {\n u({ id: \"\", name: \"\" }), v(!1);\n }, 500);\n };\n return /* @__PURE__ */ React.createElement(E, { important: !0, className: i }, /* @__PURE__ */ React.createElement(\"ul\", { className: \"h-[calc(100%-80px)] divide-y overflow-auto\" }, m, e.length > 0 && /* @__PURE__ */ React.createElement(\"li\", null, /* @__PURE__ */ React.createElement(\"ul\", { className: \"divide-y divide-border border-b border-border\" }, e.map((C) => /* @__PURE__ */ React.createElement(\n \"li\",\n {\n key: `data__${C.id}`,\n className: b(\n \"relative !mb-0 flex items-center justify-between gap-1 bg-opacity-50 hover:bg-easy\",\n {\n \"bg-easy\": C.id === (t == null ? void 0 : t.id)\n }\n )\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"flex-1 relative\" }, /* @__PURE__ */ React.createElement(\n \"button\",\n {\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 c(t == null ? void 0 : t.id, { ...t }), a(C);\n },\n onDoubleClick: () => {\n u({ id: C.id, name: C.name || \"\" });\n }\n },\n R && o.id === C.id ? /* @__PURE__ */ React.createElement(\"span\", { className: \"animate-pulse text-gray-medium\" }, o.name) : /* @__PURE__ */ React.createElement(\"span\", { className: \"text-gray-medium\" }, C.name || \"Untitled\")\n ), o.id === C.id && !R && /* @__PURE__ */ React.createElement(\n ce,\n {\n className: \"absolute left-1 top-0 w-[calc(100%-.5rem)] h-full\",\n inputClassName: \"w-full\",\n defaultValue: o.name,\n onChange: (V) => u({ ...o, name: V }),\n ref: B,\n onBlur: ue\n }\n )),\n r && /* @__PURE__ */ React.createElement(\"div\", { className: \"flex gap-1 pr-1\" }, r(C))\n ))))), /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: b(\n \"flex flex-wrap justify-center gap-2 p-2\",\n p\n )\n },\n d,\n /* @__PURE__ */ React.createElement(\n h,\n {\n onClick: T,\n icon: /* @__PURE__ */ React.createElement(Fe, { className: \"h-4 w-4\" }),\n variant: \"tertiary\",\n size: \"compact\"\n },\n \"Add\"\n ),\n /* @__PURE__ */ React.createElement(\n h,\n {\n onClick: me,\n icon: /* @__PURE__ */ React.createElement(We, { className: \"h-4 w-4\" }),\n variant: \"tertiary\",\n size: \"compact\",\n disabled: !t || e.length === 0\n },\n \"Remove\"\n )\n ));\n}, $t = ({\n duration: e = 3e3,\n className: t,\n children: a,\n show: n,\n message: s\n}) => {\n const [l, c] = f(!1), r = L(!1), m = L(null);\n return g(() => {\n r.current = !0;\n }, []), g(() => {\n if (r.current)\n return n && (c(!0), m.current = setTimeout(() => {\n c(!1);\n }, e)), () => {\n m.current && clearTimeout(m.current);\n };\n }, [n, e]), l ? /* @__PURE__ */ React.createElement(\n E,\n {\n important: !0,\n className: b(\"bb-ui__disappearing-message\", t)\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"bb-ui__disappearing-message__content\" }, s ?? a)\n ) : null;\n}, Ke = ({\n label: e,\n className: t,\n value: a,\n defaultIcon: n = je,\n size: s = \"medium\",\n onPressedChange: l,\n options: c,\n ...r\n}) => {\n var o;\n const [m, i] = f(null);\n g(() => {\n i(a);\n }, [a]);\n const d = [\n ...c.map((u) => ({\n icon: u.icon,\n label: u.label,\n title: u.label,\n value: u.value,\n onClick: () => {\n i(u.value), l(u.value);\n }\n })),\n {\n icon: /* @__PURE__ */ React.createElement(_, { icon: n }),\n title: \"Reset\",\n value: \"reset\",\n onClick: () => {\n i(\"reset\"), l(\"reset\");\n }\n }\n ];\n let p = \"1em\";\n return s === \"medium\" ? p = \"1.5em\" : s === \"large\" && (p = \"2em\"), /* @__PURE__ */ React.createElement(\n be,\n {\n controls: d,\n className: b(\"blockbite-ui__dropdown-picker\", t),\n icon: ((o = c.find((u) => u.value === m)) == null ? void 0 : o.icon) || /* @__PURE__ */ React.createElement(_, { width: p, height: p, icon: n }),\n label: e || \"Select\",\n ...r\n }\n );\n};\nfunction jt({\n icon: e,\n title: t,\n description: a,\n children: n = null,\n ...s\n}) {\n return /* @__PURE__ */ React.createElement(\"div\", { ...s }, /* @__PURE__ */ React.createElement(\"div\", { className: \"flex h-full w-full flex-col items-center justify-center text-center !font-sans\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"max-w-sm\" }, e && /* @__PURE__ */ React.createElement(\"div\", { className: \"mx-auto !text-gray-400\" }, e), /* @__PURE__ */ React.createElement(\"h3\", { className: \"text-gray-medium mt-2 !font-sans text-sm font-medium\" }, t), /* @__PURE__ */ React.createElement(\"p\", { className: \"mt-1 !font-sans text-sm !text-gray-500\" }, a), n && /* @__PURE__ */ React.createElement(\"div\", { className: \"mt-4\" }, n))));\n}\nfunction zt({\n children: e\n}) {\n const t = L(null), [a, n] = f({ x: 100, y: 100 }), [s, l] = f(!1), [c, r] = f({ x: 0, y: 0 });\n g(() => {\n const i = (p) => {\n s && n({\n x: p.clientX - c.x,\n y: p.clientY - c.y\n });\n }, d = () => l(!1);\n return window.addEventListener(\"mousemove\", i), window.addEventListener(\"mouseup\", d), () => {\n window.removeEventListener(\"mousemove\", i), window.removeEventListener(\"mouseup\", d);\n };\n }, [s, c]);\n const m = (i) => {\n const d = t.current.getBoundingClientRect();\n r({ x: i.clientX - d.left, y: i.clientY - d.top }), l(!0);\n };\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n ref: t,\n className: \"fixed bg-white shadow-xl rounded-2xl p-4 w-[400px] h-[550px] z-[9999]\",\n style: { left: a.x, top: a.y }\n },\n e,\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"absolute top-1 right-1 cursor-move w-5 h-5 bg-gray-300 rounded\",\n onMouseDown: m\n }\n )\n ));\n}\nconst Vt = ({\n value: e,\n onValueChange: t,\n url: a\n}) => {\n const [n, s] = f({\n x: 0.5,\n y: 0.5\n });\n return g(() => {\n if (e && e.includes(\"%\")) {\n const [l, c] = e.replace(\"[\", \"\").replace(\"%]\", \"\").split(\"_\").map((r) => parseFloat(r) / 100);\n s({ x: l, y: c });\n }\n }, [e]), g(() => {\n t(\n `[${(n.x * 100).toFixed(2)}%_${(n.y * 100).toFixed(2)}%]`\n );\n }, [n]), /* @__PURE__ */ React.createElement(E, { className: \"relative flex flex-col\" }, /* @__PURE__ */ React.createElement(\n ge,\n {\n url: a,\n value: n,\n onDrag: s,\n onChange: s\n }\n ));\n};\nfunction It(e) {\n const [t, a] = f(\"\"), [n, s] = f([]), [l, c] = f({\n url: \"\",\n title: \"\"\n });\n return g(() => {\n t !== \"\" && (s(null), ke({\n path: `/blockbite/v1/block-helpers/get-links/${t}`\n }).then(\n (r) => {\n r != null && r.length ? s([...r]) : s([]);\n }\n ));\n }, [t]), g(() => {\n l.url !== \"\" && e.parentCallback(l);\n }, [l]), /* @__PURE__ */ React.createElement(E, { className: \"blockbite--editor-linkwrap\" }, /* @__PURE__ */ React.createElement(\n U,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n label: N(\"Search link\", \"blockbitelinks\"),\n value: t,\n placeholder: \"Example: About\",\n onChange: (r) => a(r),\n help: N(\"Type a post, page, title\", \"blockbitelinks\")\n }\n ), t ? /* @__PURE__ */ React.createElement(\"div\", { className: \"blockbite--editor-linklist\" }, /* @__PURE__ */ React.createElement(\n qe,\n {\n links: n,\n onActiveLink: (r) => [\n c({ ...r }),\n a(\"\")\n ]\n }\n )) : null);\n}\nfunction qe({ links: e, onActiveLink: t }) {\n if (e === null)\n return /* @__PURE__ */ React.createElement(\"p\", null, \"Loading...\");\n if (e.length === 0)\n return /* @__PURE__ */ React.createElement(\"p\", null, \"No Results\");\n const a = e.map((n) => /* @__PURE__ */ React.createElement(E, { key: n.id }, /* @__PURE__ */ React.createElement(\n \"span\",\n {\n className: \"blockbite--editor-link\",\n onClick: () => t(n)\n },\n /* @__PURE__ */ React.createElement(\"span\", null, n.title),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"blockbite--preview-link\" }, n.url),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"blockbite--preview-link\" }, n.post_type)\n )));\n return /* @__PURE__ */ React.createElement(React.Fragment, null, a);\n}\nfunction Zt({ mediaProps: e, mediaCallback: t }) {\n const a = [\n \"image\",\n \"video\",\n \"image/svg+xml\",\n \"svg\",\n \"text/plain\",\n \"application/json\"\n ], [n, s] = f({\n id: null,\n url: \"\",\n sizes: [],\n alt: \"\",\n type: \"\",\n width: 0,\n height: 0\n });\n g(() => {\n e && s({ ...e });\n }, [e]);\n const l = () => {\n t({ ...{\n mediaId: 0,\n mediaUrl: \"\"\n } });\n }, c = (r) => {\n const m = {\n thumbnail: null,\n medium: null,\n large: null\n };\n r != null && r.sizes && Object.keys(r.sizes).map((d) => {\n const p = r.sizes[d];\n return (d === \"thumbnail\" || p.width < 768 || p.height < 768) && (m.thumbnail = p.url), (d === \"medium\" || p.width > 1024 && p.width < 1024 || p.height < 1536 && p.height > 1536) && (m.medium = p.url), (d === \"large\" || p.width > 1536 || p.height > 1536) && (m.large = p.url), null;\n }), r.url.endsWith(\".json\") && (r.type = \"lottie\"), r.url.endsWith(\".svg\") && (r.type = \"svg\");\n const i = {\n id: r.id,\n url: r.url,\n sizes: m,\n alt: r.alt,\n type: r.type,\n width: r.width,\n height: r.height\n };\n t({ ...i });\n };\n return /* @__PURE__ */ React.createElement(ve, null, n.id !== null && /* @__PURE__ */ React.createElement(Z, null, /* @__PURE__ */ React.createElement(\n q,\n {\n onSelect: c,\n value: n.id,\n allowedTypes: a,\n render: ({ open: r }) => /* @__PURE__ */ React.createElement(\n h,\n {\n className: n.id === 0 ? \"editor-post-featured-image__toggle\" : \"editor-post-featured-image__preview\",\n onClick: r\n },\n n.id === 0 && N(\"Choose Media\", \"blockbite\"),\n n.id && n.type === \"image\" ? /* @__PURE__ */ React.createElement(\"div\", { className: \"blockbite--editor-visual-image\" }, /* @__PURE__ */ React.createElement(\n \"img\",\n {\n alt: n.alt ? n.alt : N(\"Image\", \"blockbite\"),\n src: n.url\n }\n )) : \"Add media\"\n )\n }\n )), n.id !== 0 && /* @__PURE__ */ React.createElement(Z, null, /* @__PURE__ */ React.createElement(\n q,\n {\n title: N(\"Replace media\", \"blockbite\"),\n value: n.id,\n onSelect: c,\n allowedTypes: a,\n render: ({ open: r }) => /* @__PURE__ */ React.createElement(h, { onClick: r }, N(\"Replace media\", \"blockbite\"))\n }\n )), n.id !== 0 && /* @__PURE__ */ React.createElement(Z, null, /* @__PURE__ */ React.createElement(h, { onClick: () => l(), isDestructive: !0 }, N(\"Remove media\", \"blockbite\"))));\n}\nconst Xe = ({\n children: e,\n className: t,\n position: a,\n visible: n,\n onClick: s,\n onVisibleChange: l\n}) => {\n const [c, r] = f(!!n);\n g(() => {\n n !== void 0 && r(n);\n }, [n]);\n const m = () => {\n const i = !c;\n r(i), l && l(i);\n };\n return /* @__PURE__ */ React.createElement(React.Fragment, null, c && /* @__PURE__ */ React.createElement(\n Re,\n {\n position: a,\n className: \"blockbite-ui__popover\",\n onClick: s,\n onFocusOutside: () => {\n r(!1), l && l(!1);\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: t }, /* @__PURE__ */ React.createElement(\"div\", { className: \"relative h-full w-full p-4\" }, /* @__PURE__ */ React.createElement(\n h,\n {\n onClick: m,\n size: \"small\",\n className: \"close-button absolute right-0 top-0\"\n },\n /* @__PURE__ */ React.createElement(Ve, null)\n ), e))\n ));\n}, Ye = ({\n value: e,\n label: t,\n min: a = 0,\n max: n = 2e3,\n withInputField: s = !1,\n onValueChange: l,\n gridMode: c = !1,\n showTooltip: r = !1,\n ...m\n}) => {\n const [i] = f(0), [d, p] = f(0);\n g(() => {\n p(Math.round(parseInt(e) / (c ? 16 : 1)));\n }, [e]);\n function o(u) {\n const R = u * (c ? 16 : 1);\n l(R.toString());\n }\n return /* @__PURE__ */ React.createElement(E, { className: \"flex min-w-[240px] flex-col\" }, /* @__PURE__ */ React.createElement(\n Ee,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n label: t,\n value: d,\n min: a,\n max: n,\n showTooltip: r,\n withInputField: s,\n onChange: (u) => {\n p(u), o(u);\n },\n resetFallbackValue: i,\n ...m\n }\n ), /* @__PURE__ */ React.createElement(\"span\", null, c ? `${d * 16}px` : null, \" \"));\n}, Dt = ({\n unit: e,\n value: t,\n onValueChange: a,\n onUnitChange: n,\n inputClassName: s = \"\"\n}) => {\n const [l, c] = f(!1), [r, m] = f([]), [i, d] = f(t);\n g(() => {\n !l && e === \"arbitrary\" && d(t);\n }, [l]);\n const p = (u) => {\n var R, v, B;\n if (u !== \"arbitrary\" && ((B = (v = (R = bb == null ? void 0 : bb.codex) == null ? void 0 : R.units) == null ? void 0 : v.spacing) != null && B[u])) {\n const T = bb.codex.units.spacing[u];\n m(\n Array.isArray(T) ? T : Object.keys(T)\n );\n } else\n m([]);\n c(!0);\n }, o = [\n {\n icon: /* @__PURE__ */ React.createElement(Ue, null),\n label: \"Tailwind CSS Units\",\n value: \"native\"\n },\n { icon: /* @__PURE__ */ React.createElement(Ae, null), label: \"Percentage Units\", value: \"percent\" },\n { icon: /* @__PURE__ */ React.createElement(Ze, null), label: \"Grid Units\", value: \"grid\" },\n { icon: /* @__PURE__ */ React.createElement(Ie, null), label: \"Screen Units\", value: \"screen\" },\n { icon: /* @__PURE__ */ React.createElement(Ge, null), label: \"Pixel Units\", value: \"arbitrary\" },\n { icon: /* @__PURE__ */ React.createElement(ze, null), label: \"Fluid Units\", value: \"fluid\" }\n ];\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"relative flex flex-col items-baseline\" }, /* @__PURE__ */ React.createElement(\n le,\n {\n __next40pxDefaultSize: !0,\n className: s,\n value: e === \"grid\" ? t.replace(\"b_\", \"\") : t,\n onClick: () => e !== \"arbitrary\" && p(e),\n onChange: a,\n readOnly: e !== \"arbitrary\",\n autoComplete: \"off\",\n suffix: /* @__PURE__ */ React.createElement(ne, null, /* @__PURE__ */ React.createElement(\n Xe,\n {\n visible: l,\n position: \"bottom left\",\n className: \"w-[300px] bg-white shadow-sm\",\n onVisibleChange: c\n },\n e === \"arbitrary\" ? /* @__PURE__ */ React.createElement(\n Ye,\n {\n value: t,\n label: \"Pixel Value\",\n min: 0,\n max: 100,\n gridMode: !0,\n showTooltip: !1,\n allowReset: !0,\n resetFallbackValue: isNaN(i.toString()) ? 0 : Number(i) / 16,\n onValueChange: a\n }\n ) : /* @__PURE__ */ React.createElement(\n Oe,\n {\n className: \"mt-4\",\n options: r.map((u) => ({\n value: u,\n label: e === \"grid\" ? u.toString().replace(\"b_\", \"\") : u,\n onClick: () => {\n a(u);\n }\n })),\n size: \"small\",\n value: (t == null ? void 0 : t.toString()) || \"\",\n onPressedChange: a\n }\n )\n ), /* @__PURE__ */ React.createElement(\n Ke,\n {\n value: e,\n options: o,\n toggleProps: {\n className: \"!p-0 !min-w-0 !h-6 w-6\"\n },\n onPressedChange: (u) => {\n u === \"reset\" ? (a(\"\"), c(!1)) : (n(u), p(u));\n }\n }\n ))\n }\n ));\n}, se = y(null), oe = () => {\n const e = W(se);\n if (!e)\n throw new Error(\"useModalContext must be used within a ModalProvider\");\n return e;\n}, At = ({\n children: e,\n defaultOpen: t,\n onOpenChange: a,\n title: n,\n className: s\n}) => {\n const [l, c] = f(!1);\n g(() => {\n c(t);\n }, [t]);\n const r = () => c(!0), m = () => c(!1);\n return g(() => {\n a(l);\n }, [l, a]), /* @__PURE__ */ React.createElement(se.Provider, { value: { closeModal: m, openModal: r } }, P.map(e, (i) => H(i) && i.type === tt ? i : null), l && /* @__PURE__ */ React.createElement(\n he,\n {\n className: b(\"blockbite-ui__modal\", s),\n onRequestClose: m,\n title: n\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"relative\" }, P.map(e, (i) => H(i) && i.type === Je ? i : null), P.map(e, (i) => H(i) && i.type === et ? i : null), P.map(e, (i) => H(i) && i.type === Qe ? i : null))\n ));\n}, Je = ({ children: e, className: t = \"\", ...a }) => /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: b(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n t\n ),\n ...a\n },\n e\n), Qe = ({ children: e, className: t = \"\", ...a }) => /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: b(\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 t\n ),\n ...a\n },\n e\n), et = ({ children: e, className: t = \"\", ...a }) => /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: b(\"text-gray-medium px-4 pb-4 text-sm\", t),\n ...a\n },\n e\n), Ft = ({ children: e }) => {\n const { closeModal: t } = oe();\n return /* @__PURE__ */ React.createElement(\"div\", { onClick: t, className: \"cursor-pointer\" }, e);\n}, tt = ({ children: e }) => {\n const { openModal: t } = oe();\n return /* @__PURE__ */ React.createElement(\"div\", { onClick: t, className: \"cursor-pointer\" }, e);\n};\nfunction at(e, t) {\n Array.from(e.styleSheets).forEach((a) => {\n try {\n if (a.cssRules) {\n const n = t.createElement(\"style\");\n Array.from(a.cssRules).forEach((s) => {\n n.appendChild(t.createTextNode(s.cssText));\n }), t.head.appendChild(n);\n } else if (a.href) {\n const n = t.createElement(\"link\");\n n.rel = \"stylesheet\", n.href = a.href, t.head.appendChild(n);\n }\n } catch (n) {\n if (a.href) {\n const s = t.createElement(\"link\");\n s.rel = \"stylesheet\", s.href = a.href, t.head.appendChild(s);\n } else\n console.warn(\"Error copying styles:\", n);\n }\n });\n}\nconst Gt = ({\n windowInstance: e,\n onClose: t,\n children: a\n}) => {\n const n = _e(() => document.createElement(\"div\"), []);\n return g(() => {\n const s = e;\n s.document.body.innerHTML = \"\", s.document.body.appendChild(n), at(document, s.document), s.document.title = document.title || \"Blockbite Editor\";\n const l = () => {\n setTimeout(t, 100);\n };\n return s.addEventListener(\"beforeunload\", l), () => {\n s.removeEventListener(\"beforeunload\", l);\n };\n }, [e]), re(a, n);\n}, Ut = ({\n children: e,\n status: t = \"success\",\n className: a\n}) => {\n const [n, s] = f(!0);\n return /* @__PURE__ */ React.createElement(E, { onClick: () => s(!1) }, n && /* @__PURE__ */ React.createElement(\n Ce,\n {\n status: t,\n className: b(a),\n onRemove: () => s(!1)\n },\n e\n ));\n}, Wt = ({\n label: e,\n value: t,\n onChange: a,\n ...n\n}) => {\n const [s, l] = f(!1);\n return /* @__PURE__ */ React.createElement(\n le,\n {\n label: e,\n value: t,\n type: s ? \"text\" : \"password\",\n suffix: /* @__PURE__ */ React.createElement(ne, { variant: \"control\" }, /* @__PURE__ */ React.createElement(\n h,\n {\n icon: /* @__PURE__ */ React.createElement(Se, { viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\" }, /* @__PURE__ */ React.createElement(\n Me,\n {\n d: s ? \"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\" : \"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 label: \"Show password\",\n onClick: () => l((c) => !c),\n size: \"small\"\n }\n )),\n onChange: a,\n ...n\n }\n );\n};\nfunction lt(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Y = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar J;\nfunction nt() {\n return J || (J = 1, function(e) {\n (function() {\n var t = {}.hasOwnProperty;\n function a() {\n for (var l = \"\", c = 0; c < arguments.length; c++) {\n var r = arguments[c];\n r && (l = s(l, n(r)));\n }\n return l;\n }\n function n(l) {\n if (typeof l == \"string\" || typeof l == \"number\")\n return l;\n if (typeof l != \"object\")\n return \"\";\n if (Array.isArray(l))\n return a.apply(null, l);\n if (l.toString !== Object.prototype.toString && !l.toString.toString().includes(\"[native code]\"))\n return l.toString();\n var c = \"\";\n for (var r in l)\n t.call(l, r) && l[r] && (c = s(c, r));\n return c;\n }\n function s(l, c) {\n return c ? l ? l + \" \" + c : l + c : l;\n }\n e.exports ? (a.default = a, e.exports = a) : window.classNames = a;\n })();\n }(Y)), Y.exports;\n}\nvar rt = nt();\nconst k = /* @__PURE__ */ lt(rt), A = ({ icon: e, ...t }) => e ? /* @__PURE__ */ React.createElement(\"div\", { className: \"blockbite--icon\" }, /* @__PURE__ */ React.createElement(e, { ...t })) : null;\nx(\n ({\n children: e,\n className: t,\n value: a,\n variant: n = \"secondary\",\n pressed: s,\n onPressedChange: l,\n icon: c,\n size: r = \"compact\",\n display: m = \"auto\",\n label: i\n }) => {\n const d = w(() => {\n l(a);\n }, [l, a]);\n return /* @__PURE__ */ React.createElement(\n h,\n {\n \"aria-label\": i,\n className: k(t, \"blockbite-ui__button--default\"),\n value: a,\n size: r,\n label: i,\n variant: n,\n showTooltip: !0,\n isPressed: s,\n onClick: d\n },\n c && /* @__PURE__ */ React.createElement(A, { icon: c }),\n m !== \"icon\" ? e : null,\n i && !e && m !== \"icon\" ? /* @__PURE__ */ React.createElement(\"span\", null, i) : null\n );\n }\n);\nx(\n ({\n className: e,\n value: t,\n toggle: a = !0,\n display: n = \"auto\",\n options: s,\n size: l = \"compact\",\n tabs: c = !1,\n variant: r = \"secondary\",\n stretch: m = !1,\n onPressedChange: i\n }) => {\n const d = w(\n (o) => {\n const u = a && t === o ? \"\" : o;\n i == null || i(u);\n },\n [i, a, t]\n ), p = (o) => n === \"icon\" && o != null && o.icon ? /* @__PURE__ */ React.createElement(A, { icon: o.icon }) : n === \"label\" ? /* @__PURE__ */ React.createElement(\"span\", null, o.label) : /* @__PURE__ */ React.createElement(\"span\", { className: \"flex items-center justify-center gap-1\" }, o.icon && /* @__PURE__ */ React.createElement(A, { icon: o.icon }), /* @__PURE__ */ React.createElement(\"span\", null, o.label));\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: k(\n \"blockbite-ui__button-group flex flex-wrap gap-1\",\n e,\n c ? \"blockbite-ui__button-group--tabs\" : \"\"\n )\n },\n s.map((o, u) => /* @__PURE__ */ React.createElement(\n h,\n {\n key: `ButtonToggleGroup__${o.value}__${o.label}__${u}`,\n className: k(\"blockbite-ui__button--default\", {\n grow: m,\n \"justify-center\": m\n }),\n \"aria-label\": o.label,\n showTooltip: !0,\n value: o.value,\n size: l,\n label: (o == null ? void 0 : o.tooltip) || o.label,\n variant: r,\n isPressed: t === o.value,\n onClick: () => d(o.value)\n },\n p(o),\n o.children && o.children\n ))\n );\n }\n);\nconst ie = ({\n children: e,\n className: t,\n important: a = !1,\n onClick: n\n}) => a ? /* @__PURE__ */ React.createElement(\"div\", { onClick: n }, /* @__PURE__ */ React.createElement(\"div\", { className: t }, e)) : /* @__PURE__ */ React.createElement(\"div\", { className: t }, e), ct = z(\n ({\n onClick: e,\n onChange: t,\n className: a,\n value: n,\n children: s,\n inputClassName: l,\n readOnly: c,\n placeholder: r,\n onBlur: m,\n type: i = \"text\",\n label: d,\n helper: p = \"\",\n ...o\n }, u) => {\n const R = `text-control-${Math.random().toString(36).substring(2, 15)}`;\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: k(\"flex items-center p-0\", a),\n ...o\n },\n d ? /* @__PURE__ */ React.createElement(\"label\", { htmlFor: R, className: \"text-primary !m-0 !mb-0 !mr-2\" }, d) : null,\n /* @__PURE__ */ React.createElement(\n \"input\",\n {\n id: R,\n className: k(\n \"components-text-control__input\",\n l\n ),\n type: i,\n value: n,\n placeholder: r,\n onFocus: () => e && e(),\n onBlur: (v) => {\n e && e(), m && m(v.target.value);\n },\n onChange: (v) => t && t(v.target.value),\n readOnly: c,\n ref: u\n }\n ),\n s,\n p && /* @__PURE__ */ React.createElement(\"p\", { className: \"text-primary !m-0 !mb-0 text-xs\" }, p)\n );\n }\n);\nct.displayName = \"TextControl\";\ny(null);\nfunction st(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Q = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar ee;\nfunction ot() {\n return ee || (ee = 1, function(e) {\n (function() {\n var t = {}.hasOwnProperty;\n function a() {\n for (var l = \"\", c = 0; c < arguments.length; c++) {\n var r = arguments[c];\n r && (l = s(l, n(r)));\n }\n return l;\n }\n function n(l) {\n if (typeof l == \"string\" || typeof l == \"number\")\n return l;\n if (typeof l != \"object\")\n return \"\";\n if (Array.isArray(l))\n return a.apply(null, l);\n if (l.toString !== Object.prototype.toString && !l.toString.toString().includes(\"[native code]\"))\n return l.toString();\n var c = \"\";\n for (var r in l)\n t.call(l, r) && l[r] && (c = s(c, r));\n return c;\n }\n function s(l, c) {\n return c ? l ? l + \" \" + c : l + c : l;\n }\n e.exports ? (a.default = a, e.exports = a) : window.classNames = a;\n })();\n }(Q)), Q.exports;\n}\nvar it = ot();\nconst S = /* @__PURE__ */ st(it), F = ({ icon: e, ...t }) => e ? /* @__PURE__ */ React.createElement(\"div\", { className: \"blockbite--icon\" }, /* @__PURE__ */ React.createElement(e, { ...t })) : null;\nx(\n ({\n children: e,\n className: t,\n value: a,\n variant: n = \"secondary\",\n pressed: s,\n onPressedChange: l,\n icon: c,\n size: r = \"compact\",\n display: m = \"auto\",\n label: i\n }) => {\n const d = w(() => {\n l(a);\n }, [l, a]);\n return /* @__PURE__ */ React.createElement(\n h,\n {\n \"aria-label\": i,\n className: S(t, \"blockbite-ui__button--default\"),\n value: a,\n size: r,\n label: i,\n variant: n,\n showTooltip: !0,\n isPressed: s,\n onClick: d\n },\n c && /* @__PURE__ */ React.createElement(F, { icon: c }),\n m !== \"icon\" ? e : null,\n i && !e && m !== \"icon\" ? /* @__PURE__ */ React.createElement(\"span\", null, i) : null\n );\n }\n);\nx(\n ({\n className: e,\n value: t,\n toggle: a = !0,\n display: n = \"auto\",\n options: s,\n size: l = \"compact\",\n tabs: c = !1,\n variant: r = \"secondary\",\n stretch: m = !1,\n onPressedChange: i\n }) => {\n const d = w(\n (o) => {\n const u = a && t === o ? \"\" : o;\n i == null || i(u);\n },\n [i, a, t]\n ), p = (o) => n === \"icon\" && o != null && o.icon ? /* @__PURE__ */ React.createElement(F, { icon: o.icon }) : n === \"label\" ? /* @__PURE__ */ React.createElement(\"span\", null, o.label) : /* @__PURE__ */ React.createElement(\"span\", { className: \"flex items-center justify-center gap-1\" }, o.icon && /* @__PURE__ */ React.createElement(F, { icon: o.icon }), /* @__PURE__ */ React.createElement(\"span\", null, o.label));\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: S(\n \"blockbite-ui__button-group flex flex-wrap gap-1\",\n e,\n c ? \"blockbite-ui__button-group--tabs\" : \"\"\n )\n },\n s.map((o, u) => /* @__PURE__ */ React.createElement(\n h,\n {\n key: `ButtonToggleGroup__${o.value}__${o.label}__${u}`,\n className: S(\"blockbite-ui__button--default\", {\n grow: m,\n \"justify-center\": m\n }),\n \"aria-label\": o.label,\n showTooltip: !0,\n value: o.value,\n size: l,\n label: (o == null ? void 0 : o.tooltip) || o.label,\n variant: r,\n isPressed: t === o.value,\n onClick: () => d(o.value)\n },\n p(o),\n o.children && o.children\n ))\n );\n }\n);\nconst mt = ({\n children: e,\n className: t,\n important: a = !1,\n onClick: n\n}) => a ? /* @__PURE__ */ React.createElement(\"div\", { onClick: n }, /* @__PURE__ */ React.createElement(\"div\", { className: t }, e)) : /* @__PURE__ */ React.createElement(\"div\", { className: t }, e), ut = z(\n ({\n onClick: e,\n onChange: t,\n className: a,\n value: n,\n children: s,\n inputClassName: l,\n readOnly: c,\n placeholder: r,\n onBlur: m,\n type: i = \"text\",\n label: d,\n helper: p = \"\",\n ...o\n }, u) => {\n const R = `text-control-${Math.random().toString(36).substring(2, 15)}`;\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: S(\"flex items-center p-0\", a),\n ...o\n },\n d ? /* @__PURE__ */ React.createElement(\"label\", { htmlFor: R, className: \"text-primary !m-0 !mb-0 !mr-2\" }, d) : null,\n /* @__PURE__ */ React.createElement(\n \"input\",\n {\n id: R,\n className: S(\n \"components-text-control__input\",\n l\n ),\n type: i,\n value: n,\n placeholder: r,\n onFocus: () => e && e(),\n onBlur: (v) => {\n e && e(), m && m(v.target.value);\n },\n onChange: (v) => t && t(v.target.value),\n readOnly: c,\n ref: u\n }\n ),\n s,\n p && /* @__PURE__ */ React.createElement(\"p\", { className: \"text-primary !m-0 !mb-0 text-xs\" }, p)\n );\n }\n);\nut.displayName = \"TextControl\";\ny(null);\nfunction dt(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar te = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar ae;\nfunction pt() {\n return ae || (ae = 1, function(e) {\n (function() {\n var t = {}.hasOwnProperty;\n function a() {\n for (var l = \"\", c = 0; c < arguments.length; c++) {\n var r = arguments[c];\n r && (l = s(l, n(r)));\n }\n return l;\n }\n function n(l) {\n if (typeof l == \"string\" || typeof l == \"number\")\n return l;\n if (typeof l != \"object\")\n return \"\";\n if (Array.isArray(l))\n return a.apply(null, l);\n if (l.toString !== Object.prototype.toString && !l.toString.toString().includes(\"[native code]\"))\n return l.toString();\n var c = \"\";\n for (var r in l)\n t.call(l, r) && l[r] && (c = s(c, r));\n return c;\n }\n function s(l, c) {\n return c ? l ? l + \" \" + c : l + c : l;\n }\n e.exports ? (a.default = a, e.exports = a) : window.classNames = a;\n })();\n }(te)), te.exports;\n}\nvar ft = pt();\nconst M = /* @__PURE__ */ dt(ft), G = ({ icon: e, ...t }) => e ? /* @__PURE__ */ React.createElement(\"div\", { className: \"blockbite--icon\" }, /* @__PURE__ */ React.createElement(e, { ...t })) : null;\nx(\n ({\n children: e,\n className: t,\n value: a,\n variant: n = \"secondary\",\n pressed: s,\n onPressedChange: l,\n icon: c,\n size: r = \"compact\",\n display: m = \"auto\",\n label: i\n }) => {\n const d = w(() => {\n l(a);\n }, [l, a]);\n return /* @__PURE__ */ React.createElement(\n h,\n {\n \"aria-label\": i,\n className: M(t, \"blockbite-ui__button--default\"),\n value: a,\n size: r,\n label: i,\n variant: n,\n showTooltip: !0,\n isPressed: s,\n onClick: d\n },\n c && /* @__PURE__ */ React.createElement(G, { icon: c }),\n m !== \"icon\" ? e : null,\n i && !e && m !== \"icon\" ? /* @__PURE__ */ React.createElement(\"span\", null, i) : null\n );\n }\n);\nx(\n ({\n className: e,\n value: t,\n toggle: a = !0,\n display: n = \"auto\",\n options: s,\n size: l = \"compact\",\n tabs: c = !1,\n variant: r = \"secondary\",\n stretch: m = !1,\n onPressedChange: i\n }) => {\n const d = w(\n (o) => {\n const u = a && t === o ? \"\" : o;\n i == null || i(u);\n },\n [i, a, t]\n ), p = (o) => n === \"icon\" && o != null && o.icon ? /* @__PURE__ */ React.createElement(G, { icon: o.icon }) : n === \"label\" ? /* @__PURE__ */ React.createElement(\"span\", null, o.label) : /* @__PURE__ */ React.createElement(\"span\", { className: \"flex items-center justify-center gap-1\" }, o.icon && /* @__PURE__ */ React.createElement(G, { icon: o.icon }), /* @__PURE__ */ React.createElement(\"span\", null, o.label));\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: M(\n \"blockbite-ui__button-group flex flex-wrap gap-1\",\n e,\n c ? \"blockbite-ui__button-group--tabs\" : \"\"\n )\n },\n s.map((o, u) => /* @__PURE__ */ React.createElement(\n h,\n {\n key: `ButtonToggleGroup__${o.value}__${o.label}__${u}`,\n className: M(\"blockbite-ui__button--default\", {\n grow: m,\n \"justify-center\": m\n }),\n \"aria-label\": o.label,\n showTooltip: !0,\n value: o.value,\n size: l,\n label: (o == null ? void 0 : o.tooltip) || o.label,\n variant: r,\n isPressed: t === o.value,\n onClick: () => d(o.value)\n },\n p(o),\n o.children && o.children\n ))\n );\n }\n);\nconst bt = ({\n children: e,\n className: t,\n important: a = !1,\n onClick: n\n}) => a ? /* @__PURE__ */ React.createElement(\"div\", { onClick: n }, /* @__PURE__ */ React.createElement(\"div\", { className: t }, e)) : /* @__PURE__ */ React.createElement(\"div\", { className: t }, e), gt = z(\n ({\n onClick: e,\n onChange: t,\n className: a,\n value: n,\n children: s,\n inputClassName: l,\n readOnly: c,\n placeholder: r,\n onBlur: m,\n type: i = \"text\",\n label: d,\n helper: p = \"\",\n ...o\n }, u) => {\n const R = `text-control-${Math.random().toString(36).substring(2, 15)}`;\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: M(\"flex items-center p-0\", a),\n ...o\n },\n d ? /* @__PURE__ */ React.createElement(\"label\", { htmlFor: R, className: \"text-primary !m-0 !mb-0 !mr-2\" }, d) : null,\n /* @__PURE__ */ React.createElement(\n \"input\",\n {\n id: R,\n className: M(\n \"components-text-control__input\",\n l\n ),\n type: i,\n value: n,\n placeholder: r,\n onFocus: () => e && e(),\n onBlur: (v) => {\n e && e(), m && m(v.target.value);\n },\n onChange: (v) => t && t(v.target.value),\n readOnly: c,\n ref: u\n }\n ),\n s,\n p && /* @__PURE__ */ React.createElement(\"p\", { className: \"text-primary !m-0 !mb-0 text-xs\" }, p)\n );\n }\n);\ngt.displayName = \"TextControl\";\ny(null);\nconst { select: Kt, dispatch: qt } = wp.data;\ny(null);\nx(\n ({\n className: e,\n options: t,\n value: a,\n display: n = \"label\",\n label: s = !1,\n onPressedChange: l\n }) => {\n const c = (r) => {\n l(r);\n };\n return /* @__PURE__ */ React.createElement(bt, { className: M(e) }, /* @__PURE__ */ React.createElement(\n O,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n isBlock: !0,\n value: a,\n ...s ? { label: s } : {}\n },\n t.map(\n (r) => n === \"icon\" ? /* @__PURE__ */ React.createElement(\n $,\n {\n icon: r.icon,\n label: r.label,\n key: `ToggleGroupControlIcon-${r.value}`,\n value: r.value,\n onClick: () => c(r.value)\n }\n ) : /* @__PURE__ */ React.createElement(\n j,\n {\n key: `ToggleGroupControlOption-${r.value}`,\n value: r.value,\n label: r.label,\n onClick: () => c(r.value)\n }\n )\n )\n ));\n }\n);\nconst { select: Xt, dispatch: Yt } = wp.data;\ny(null);\nx(\n ({\n className: e,\n options: t,\n value: a,\n display: n = \"label\",\n label: s = !1,\n onPressedChange: l\n }) => {\n const c = (r) => {\n l(r);\n };\n return /* @__PURE__ */ React.createElement(mt, { className: S(e) }, /* @__PURE__ */ React.createElement(\n O,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n isBlock: !0,\n value: a,\n ...s ? { label: s } : {}\n },\n t.map(\n (r) => n === \"icon\" ? /* @__PURE__ */ React.createElement(\n $,\n {\n icon: r.icon,\n label: r.label,\n key: `ToggleGroupControlIcon-${r.value}`,\n value: r.value,\n onClick: () => c(r.value)\n }\n ) : /* @__PURE__ */ React.createElement(\n j,\n {\n key: `ToggleGroupControlOption-${r.value}`,\n value: r.value,\n label: r.label,\n onClick: () => c(r.value)\n }\n )\n )\n ));\n }\n);\nconst { select: Jt, dispatch: Qt } = wp.data;\ny(null);\nx(\n ({\n className: e,\n options: t,\n value: a,\n display: n = \"label\",\n label: s = !1,\n onPressedChange: l\n }) => {\n const c = (r) => {\n l(r);\n };\n return /* @__PURE__ */ React.createElement(ie, { className: k(e) }, /* @__PURE__ */ React.createElement(\n O,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n isBlock: !0,\n value: a,\n ...s ? { label: s } : {}\n },\n t.map(\n (r) => n === \"icon\" ? /* @__PURE__ */ React.createElement(\n $,\n {\n icon: r.icon,\n label: r.label,\n key: `ToggleGroupControlIcon-${r.value}`,\n value: r.value,\n onClick: () => c(r.value)\n }\n ) : /* @__PURE__ */ React.createElement(\n j,\n {\n key: `ToggleGroupControlOption-${r.value}`,\n value: r.value,\n label: r.label,\n onClick: () => c(r.value)\n }\n )\n )\n ));\n }\n);\nconst ea = ({\n items: e,\n activeId: t,\n onSelect: a,\n className: n\n}) => /* @__PURE__ */ React.createElement(ie, { important: !0, className: n }, /* @__PURE__ */ React.createElement(\"div\", { className: \"w-[200px] overflow-y-auto border-r border-border gap-2\" }, e.map((s) => /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: s.id,\n onClick: () => a(s.id),\n className: `cursor-pointer p-2 border-l-4 flex gap-2 items-center ${t === s.id ? \"border-blue-500 bg-gray-100\" : \"border-transparent\"}`\n },\n /* @__PURE__ */ React.createElement(\"span\", { className: \"rounded bg-slate-300 w-12 h-12 flex items-center justify-center text-2xl font-bold text-white\" }, s.name.charAt(0).toUpperCase()),\n /* @__PURE__ */ React.createElement(\"p\", { className: \"text-sm text-center mt-1\" }, s.name)\n))));\nfunction ta(e) {\n const { media: t, mediaClass: a } = e, { url: n, alt: s, sizes: l } = t;\n if (l === void 0)\n return /* @__PURE__ */ React.createElement(\"img\", { src: n, alt: s, className: `media ${a}` });\n const { thumbnail: c, medium: r, large: m } = l, i = c || n, d = r || n, p = m || n;\n return /* @__PURE__ */ React.createElement(\"picture\", { className: \"b_responsive\" }, i ? /* @__PURE__ */ React.createElement(\n \"source\",\n {\n media: \"(max-width: 768px)\",\n srcSet: i,\n className: `b_media ${a}`\n }\n ) : null, d ? /* @__PURE__ */ React.createElement(\n \"source\",\n {\n media: \"(min-width: 1024px)\",\n srcSet: d,\n className: `b_media ${a}`\n }\n ) : null, p ? /* @__PURE__ */ React.createElement(\n \"source\",\n {\n media: \"(min-width: 1536px)\",\n srcSet: p,\n className: `b_media ${a}`\n }\n ) : null, d ? /* @__PURE__ */ React.createElement(\"img\", { src: d, alt: s, className: `b_media ${a}` }) : null);\n}\nfunction aa(e) {\n const { media: t, mediaClass: a } = e, { url: n } = t, s = n;\n return /* @__PURE__ */ React.createElement(\n \"video\",\n {\n className: `responsive-media ${a}`,\n preload: \"none\",\n playsInline: !0,\n controls: !0,\n autoPlay: !0,\n muted: !0,\n loop: !0\n },\n /* @__PURE__ */ React.createElement(\"source\", { src: s, type: \"video/mp4\" })\n );\n}\nconst la = ({\n children: e,\n className: t = \"\",\n height: a = \"large\"\n}) => /* @__PURE__ */ React.createElement(\n E,\n {\n className: b(\"scrollbar relative overflow-y-scroll\", t, {\n \"h-[400px]\": a === \"large\",\n \"h-[300px]\": a === \"medium\",\n \"h-[200px]\": a === \"small\"\n })\n },\n e\n), na = ({\n onChange: e,\n className: t,\n value: a,\n options: n,\n label: s = \"\",\n emptyLabel: l = \"No options available\"\n}) => {\n const c = (r) => {\n e && e(r);\n };\n return /* @__PURE__ */ React.createElement(\"div\", { className: t }, n && n.length > 0 && /* @__PURE__ */ React.createElement(\n xe,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n label: s || \"\",\n value: a || \"\",\n onChange: c,\n options: [{ value: \"\", label: \"Select an option\" }, ...n]\n }\n ), (!n || (n == null ? void 0 : n.length) === 0) && /* @__PURE__ */ React.createElement(\"p\", { className: \"mb-2\" }, l));\n}, { select: vt, dispatch: Rt } = wp.data, ra = ({\n buttonText: e = \"Add block\"\n}) => {\n const t = () => {\n const a = vt(\"core/block-editor\").getSelectedBlock(), { clientId: n, innerBlocks: s } = a, l = s[s.length - 1], c = Te(\n l.name,\n l.attributes,\n l.innerBlocks\n );\n Rt(\"core/block-editor\").insertBlocks(c, 0, n);\n };\n return /* @__PURE__ */ React.createElement(h, { variant: \"primary\", onClick: () => t() }, e);\n}, ca = ({ children: e, watch: t, className: a }) => {\n const [n, s] = f(0);\n return g(() => {\n setTimeout(() => {\n s(1);\n }, 250);\n }, [t]), /* @__PURE__ */ React.createElement(\n E,\n {\n className: b(\n a,\n \"duration-50 transform transition-all ease-in-out\",\n {\n \"translate-x-0\": n === 1,\n \"-translate-x-full\": n === 0\n }\n )\n },\n e\n );\n}, sa = ({ className: e, defaultValue: t }) => {\n const [a, n] = f(!1);\n return g(() => {\n setTimeout(() => {\n n(!1);\n }, 500), t && n(!0);\n }, [a, t]), a && /* @__PURE__ */ React.createElement(we, { className: b(e) });\n}, K = y(null), Et = ({\n children: e,\n defaultValue: t,\n value: a,\n onValueChange: n,\n ...s\n}) => {\n const l = a !== void 0, [c, r] = f(t || \"\"), d = {\n activeTab: l ? a : c,\n setActiveTab: (p) => {\n l || r(p), n && n(p);\n }\n };\n return /* @__PURE__ */ React.createElement(K.Provider, { value: d }, /* @__PURE__ */ React.createElement(E, { important: !0, className: s.className }, e));\n}, ht = ({\n options: e,\n children: t,\n className: a,\n onValueChange: n\n}) => {\n const s = W(K), l = n || (s == null ? void 0 : s.setActiveTab);\n return /* @__PURE__ */ React.createElement(\n ye,\n {\n className: b(\"tabs-list\", a),\n tabs: e,\n onSelect: (c) => {\n l(c);\n }\n },\n () => t\n );\n}, Ct = ({\n value: e,\n children: t,\n className: a\n}) => {\n const n = W(K);\n return (n == null ? void 0 : n.activeTab) === e ? /* @__PURE__ */ React.createElement(E, { className: a }, t) : null;\n}, oa = {\n Wrapper: Et,\n List: ht,\n Content: Ct\n}, ia = ({\n children: e,\n onClick: t,\n color: a = \"blue\",\n className: n\n}) => /* @__PURE__ */ React.createElement(\"button\", { onClick: t }, /* @__PURE__ */ React.createElement(\"div\", { color: a, className: b(n) }, e)), ma = ({\n onChange: e,\n defaultValue: t,\n children: a\n}) => /* @__PURE__ */ React.createElement(E, { className: \"blockbite-ui__text-control-label flex items-center\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"outline-b-2 relative block -outline-offset-2 outline-black\" }, /* @__PURE__ */ React.createElement(\n U,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n type: \"text\",\n value: t,\n onChange: e\n }\n), /* @__PURE__ */ React.createElement(De, { className: \"absolute right-1 top-2\" })), \" \", a), ua = x(\n ({\n className: e,\n options: t,\n value: a,\n display: n = \"label\",\n label: s = !1,\n onPressedChange: l\n }) => {\n const c = (r) => {\n l(r);\n };\n return /* @__PURE__ */ React.createElement(E, { className: b(e) }, /* @__PURE__ */ React.createElement(\n O,\n {\n __next40pxDefaultSize: !0,\n __nextHasNoMarginBottom: !0,\n isBlock: !0,\n value: a,\n ...s ? { label: s } : {}\n },\n t.map(\n (r) => n === \"icon\" ? /* @__PURE__ */ React.createElement(\n $,\n {\n icon: r.icon,\n label: r.label,\n key: `ToggleGroupControlIcon-${r.value}`,\n value: r.value,\n onClick: () => c(r.value)\n }\n ) : /* @__PURE__ */ React.createElement(\n j,\n {\n key: `ToggleGroupControlOption-${r.value}`,\n value: r.value,\n label: r.label,\n onClick: () => c(r.value)\n }\n )\n )\n ));\n }\n), da = ({\n label: e,\n className: t,\n onChange: a,\n checked: n = !1\n // Default to false if undefined, so it's always controlled\n}) => {\n const [s, l] = f(n);\n return g(() => {\n l(n);\n }, [n]), /* @__PURE__ */ React.createElement(E, { className: b(t, \"flex items-center gap-2\") }, /* @__PURE__ */ React.createElement(\n Ne,\n {\n checked: s,\n label: e,\n onChange: (c) => {\n l(c), a && a(c);\n }\n }\n ));\n};\nexport {\n Mt as AutocompleteDropdown,\n $e as Badge,\n Tt as BitePreview,\n Lt as Button,\n He as ButtonToggle,\n Oe as ButtonToggleGroup,\n Bt as Chapter,\n Pt as ChapterDivider,\n Ht as Checkbox,\n Ot as DataItemList,\n $t as DisappearingMessage,\n Ke as DropdownPicker,\n jt as EmptyState,\n zt as FloatingPanel,\n Vt as FocalPointControl,\n _ as Icon,\n It as LinkPicker,\n Zt as MediaPicker,\n Dt as MetricsControl,\n At as Modal,\n Ft as ModalClose,\n et as ModalContent,\n Qe as ModalFooter,\n Je as ModalHeader,\n tt as ModalTrigger,\n Gt as NewWindowPortal,\n Ut as Notice,\n Wt as PasswordInput,\n Xe as Popover,\n ea as ProjectsNavigation,\n Ye as RangeSlider,\n ta as ResponsiveImage,\n aa as ResponsiveVideo,\n la as ScrollList,\n na as SelectControlWrapper,\n ra as SingleBlockTypeAppender,\n ca as SlideIn,\n sa as Spinner,\n oa as Tabs,\n Ct as TabsContent,\n ht as TabsList,\n Et as TabsWrapper,\n ia as Tag,\n ce as TextControl,\n ma as TextControlLabel,\n ua as ToggleGroup,\n da as ToggleSwitch,\n E as Wrap,\n oe as useModalContext\n};\n//# sourceMappingURL=index.js.map\n","import { Wrap } from '@blockbite/ui';\n\nexport 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 className?: string;\n};\n\nexport const ProjectsNavigation = ({\n items,\n activeId,\n onSelect,\n className,\n}: Props) => {\n return (\n <Wrap important className={className}>\n <div className=\"w-[200px] overflow-y-auto border-r border-border gap-2\">\n {items.map((item) => (\n <div\n key={item.id}\n onClick={() => onSelect(item.id)}\n className={`cursor-pointer p-2 border-l-4 flex gap-2 items-center ${\n activeId === item.id\n ? 'border-blue-500 bg-gray-100'\n : 'border-transparent'\n }`}\n >\n <span className=\"rounded bg-slate-300 w-12 h-12 flex items-center justify-center text-2xl font-bold text-white\">\n {item.name.charAt(0).toUpperCase()}\n </span>\n <p className=\"text-sm text-center mt-1\">{item.name}</p>\n </div>\n ))}\n </div>\n </Wrap>\n );\n};\n","export function ResponsiveImage(props) {\n const { media, mediaClass } = props;\n const { url, alt, sizes } = media;\n\n if (sizes === undefined) {\n return <img src={url} alt={alt} className={`media ${mediaClass}`} />;\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_responsive\">\n {thumbnailImg ? (\n <source\n media=\"(max-width: 768px)\"\n srcSet={thumbnailImg}\n className={`b_media ${mediaClass}`}\n />\n ) : null}\n {mediumImg ? (\n <source\n media=\"(min-width: 1024px)\"\n srcSet={mediumImg}\n className={`b_media ${mediaClass}`}\n />\n ) : null}\n {largeImg ? (\n <source\n media=\"(min-width: 1536px)\"\n srcSet={largeImg}\n className={`b_media ${mediaClass}`}\n />\n ) : null}\n {mediumImg ? (\n <img src={mediumImg} alt={alt} className={`b_media ${mediaClass}`} />\n ) : null}\n </picture>\n );\n}\n","export function ResponsiveVideo(props: any) {\n const { media, mediaClass } = props;\n const { url } = media;\n\n const videoUrl = url;\n\n return (\n <video\n className={`responsive-media ${mediaClass}`}\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 { SelectControl as WordpressSelect } from '@wordpress/components';\n\ntype SelectControlWrapperProps = {\n className?: string;\n value: string;\n children?: React.ReactNode;\n options: any[];\n label?: string;\n emptyLabel?: string;\n onChange?: (value: string) => void;\n};\n\nexport const SelectControlWrapper = ({\n onChange,\n className,\n value,\n options,\n label = '',\n emptyLabel = 'No options available',\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 __next40pxDefaultSize\n __nextHasNoMarginBottom\n label={label || ''}\n value={value || ''}\n onChange={handleChange}\n options={[{ value: '', label: 'Select an option' }, ...options]}\n />\n )}\n {(!options || options?.length === 0) && (\n <p className=\"mb-2\">{emptyLabel}</p>\n )}\n </div>\n );\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';\nimport { useEffect, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\ntype SpinnerProps = {\n label?: string;\n className?: string;\n defaultValue: boolean;\n};\n\nexport const Spinner = ({ className, defaultValue }: SpinnerProps) => {\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, 500);\n if (defaultValue) {\n setIsLoading(true);\n }\n }, [isLoading, defaultValue]);\n\n return isLoading && <WordpressSpinner className={classNames(className)} />;\n};\n","import { TabPanel } from '@wordpress/components';\nimport { createContext, useContext, useState } from '@wordpress/element';\nimport classNames from 'classnames';\n\nimport { Wrap } from './Wrap.js';\n\nconst TabsContext = createContext<{\n activeTab: string | undefined;\n setActiveTab: React.Dispatch<React.SetStateAction<string | undefined>>;\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};\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 };\n\n return (\n <TabsContext.Provider value={providerValue}>\n <Wrap important className={rest.className}>\n {children}\n </Wrap>\n </TabsContext.Provider>\n );\n};\n\ntype TabsListProps = {\n options: { name: string; title: string; 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 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 return activeTab === value ? (\n <Wrap className={className}>{children}</Wrap>\n ) : null;\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 { 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 }) => {\n const handlePressChange = (val: string) => {\n onPressedChange(val);\n };\n\n return (\n <Wrap className={classNames(className)}>\n <WordpressToggleGroupControl\n __next40pxDefaultSize\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","Icon","IconComponent","rest","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","Wrap","important","onClick","AutocompleteDropdown","swatch","activeKeyword","setActiveKeyword","useState","filteredOptions","setFilteredOptions","useEffect","Dropdown","isOpen","onToggle","Button","TextControl","changedValue","Badge","BitePreview","htmlContent","cssContent","frontendAssets","iframeRef","useRef","iframeBody","setIframeBody","iframe","iframeDocument","styleTag","type","id","url","existingElement","adoptedElement","newElement","createPortal","disabled","isIconDisplay","Chapter","title","ChapterDivider","help","badge","props","Checkbox","defaultChecked","isChecked","setChecked","CheckboxControl","ChevronDown","ColumnSpacing","Cross2","Desktop","Grid","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","addons","footerSlot","footerSlotClassName","rename","setRename","isSaving","setIsSaving","textRef","handleAdd","handleRemove","newData","d","currentIndex","nextActive","handleRenameBlur","item","PlusIcon","TrashIcon","DisappearingMessage","duration","show","message","isShowing","setIsShowing","hasMounted","timeoutRef","DropdownPicker","defaultIcon","ChevronDownIcon","currentOption","setCurrentOption","allOptions","iconSize","DropdownMenu","_a","EmptyState","description","FloatingPanel","panelRef","position","setPosition","dragging","setDragging","offset","setOffset","handleMouseMove","handleMouseUp","startDragging","rect","FocalPointControl","onValueChange","focalPoint","setFocalPoint","x","y","v","FocalPointPicker","LinkPicker","links","setLinks","activeLink","setActiveLink","apiFetch","fetchedLinks","__","LinkList","link","onActiveLink","list","MediaPicker","mediaProps","mediaCallback","allowedTypes","stateMedia","setStateMedia","removeMedia","onSelectMedia","media","safeSizes","sizeObject","mediaObj","PanelRow","MediaUploadCheck","MediaUpload","open","Popover","visible","onVisibleChange","isVisible","setIsVisible","toggleVisible","WordpressPopover","RangeSlider","min","max","withInputField","gridMode","showTooltip","resetFallbackValue","rangeValue","setRangeValue","handleRangeUpdate","val","gridValue","WordpressRangeControl","MetricsControl","unit","onUnitChange","currentOptions","setCurrentOptions","resetValue","setResetValue","showOptions","u","_c","_b","unitOptions","TailwindUnitIcon","PercentageIcon","GridIcon","DesktopIcon","SliderIcon","ColumnSpacingIcon","InputControl","InputControlSuffixWrapper","selectedUnit","ModalContext","createContext","useModalContext","context","useContext","Modal","defaultOpen","onOpenChange","setOpen","openModal","closeModal","Children","child","isValidElement","ModalTrigger","WordpressModal","ModalHeader","ModalContent","ModalFooter","ModalClose","copyStyles","sourceDoc","targetDoc","styleSheet","newStyleEl","cssRule","newLinkEl","NewWindowPortal","windowInstance","onClose","containerEl","useMemo","win","handleBeforeUnload","Notice","status","showNotice","setShowNotice","WordpressNotice","PasswordInput","showPassword","setShowPassword","SVG","Path","prev","Le","D","X","Be","t","a","l","c","r","n","Pe","b","_","m","w","h","E","ce","z","R","lt","Y","J","nt","rt","k","A","ie","ct","st","Q","ee","ot","it","S","F","mt","ut","dt","te","ae","pt","ft","M","G","bt","gt","Kt","qt","O","$","j","Xt","Yt","Jt","Qt","vt","Rt","ProjectsNavigation","items","activeId","onSelect","ResponsiveImage","mediaClass","alt","sizes","thumbnail","medium","large","thumbnailImg","mediumImg","largeImg","ResponsiveVideo","videoUrl","ScrollList","height","SelectControlWrapper","emptyLabel","handleChange","WordpressSelect","select","dispatch","SingleBlockTypeAppender","buttonText","addLastDuplicate","currentBlock","clientId","innerBlocks","lastBlock","newBlock","createBlock","SlideIn","watch","slide","setSlide","Spinner","defaultValue","isLoading","setIsLoading","WordpressSpinner","TabsContext","TabsWrapper","isControlled","internalValue","setInternalValue","providerValue","TabsList","setActiveTab","TabPanel","tabName","TabsContent","Tabs","Tag","color","TextControlLabel","Pencil1Icon","ToggleGroup","handlePressChange","WordpressToggleGroupControl","ToggleGroupControlIcon","ToggleGroupControlOption","ToggleSwitch","checked","setIsChecked","Switch"],"mappings":"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","x_google_ignoreList":[0]}
|