@allxsmith/bestax-bulma 2.3.3 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +79 -66
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +79 -66
- package/dist/index.esm.js.map +1 -1
- package/dist/types/components/Card.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/helpers/Config.tsx","../src/helpers/classNames.ts","../src/helpers/useBulmaClasses.tsx","../src/columns/Column.tsx","../src/columns/Columns.tsx","../src/components/Breadcrumb.tsx","../src/components/Card.tsx","../src/components/Dropdown.tsx","../src/components/Menu.tsx","../src/components/Message.tsx","../src/components/Modal.tsx","../src/components/Navbar.tsx","../src/components/Pagination.tsx","../src/components/Panel.tsx","../src/components/Tabs.tsx","../src/elements/Block.tsx","../src/elements/Box.tsx","../src/elements/Button.tsx","../src/elements/Buttons.tsx","../src/elements/Content.tsx","../src/elements/Delete.tsx","../src/elements/Icon.tsx","../src/elements/IconText.tsx","../src/elements/Image.tsx","../src/elements/Notification.tsx","../src/elements/Progress.tsx","../src/elements/Skeleton.tsx","../src/elements/SubTitle.tsx","../src/elements/Table.tsx","../src/elements/Tag.tsx","../src/elements/Tags.tsx","../src/elements/Tbody.tsx","../src/elements/Td.tsx","../src/elements/Tfoot.tsx","../src/elements/Th.tsx","../src/elements/Thead.tsx","../src/elements/Title.tsx","../src/elements/Tr.tsx","../src/form/Checkbox.tsx","../src/form/Checkboxes.tsx","../src/form/Control.tsx","../src/form/Field.tsx","../src/form/File.tsx","../src/form/Input.tsx","../src/form/Radio.tsx","../src/form/Radios.tsx","../src/form/Select.tsx","../src/form/TextArea.tsx","../src/grid/Cell.tsx","../src/grid/Grid.tsx","../src/helpers/Theme.tsx","../src/layout/Container.tsx","../src/layout/Footer.tsx","../src/layout/Hero.tsx","../src/layout/Level.tsx","../src/layout/Media.tsx","../src/layout/Section.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode } from 'react';\n\ntype IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';\n\nexport interface ConfigContextProps {\n classPrefix?: string;\n iconLibrary?: IconLibrary;\n}\n\nconst ConfigContext = createContext<ConfigContextProps>({});\n\nexport const useConfig = () => useContext(ConfigContext);\n\nexport interface ConfigProviderProps {\n children: ReactNode;\n classPrefix?: string;\n iconLibrary?: IconLibrary;\n}\n\n/**\n * ConfigProvider injects configuration into all child components via React context.\n * - classPrefix: Used by components to prefix their classNames.\n * - iconLibrary: Sets the default icon library for Icon components.\n */\nexport const ConfigProvider: React.FC<ConfigProviderProps> = ({\n classPrefix,\n iconLibrary,\n children,\n}) => {\n return (\n <ConfigContext.Provider value={{ classPrefix, iconLibrary }}>\n {children}\n </ConfigContext.Provider>\n );\n};\n\n/**\n * Utility hook for components to get the classPrefix and apply it to their classNames.\n * Usage: const { classPrefix } = useConfig();\n */\nexport const useClassPrefix = () => {\n const { classPrefix } = useConfig();\n return classPrefix || '';\n};\n\n/**\n * Utility function to create prefixed Bulma modifier classes.\n * Usage: const prefixedClass = usePrefixedClass('is-primary');\n */\nexport const usePrefixedClass = () => {\n const { classPrefix } = useConfig();\n return (className: string) =>\n classPrefix ? `${classPrefix}${className}` : className;\n};\n\n/**\n * Utility hook to get the default icon library setting.\n * Usage: const iconLibrary = useIconLibrary();\n */\nexport const useIconLibrary = () => {\n const { iconLibrary } = useConfig();\n return iconLibrary;\n};\n","import { useConfig } from './Config';\n\n/**\n * Returns a space-separated string of class names based on input arguments.\n *\n * Accepts any mix of strings, numbers, arrays, or objects. Falsy values are ignored.\n * Array and object values are recursively flattened, and object keys are included\n * if their value is truthy. Duplicate class names are removed.\n *\n * @param {...(string | number | undefined | null | false | Record<string, unknown> | unknown[])} args - Class values to join.\n * @returns {string} A space-separated string of unique class names.\n *\n * @example\n * classNames('foo', ['bar', { baz: true }], { qux: false, quux: true });\n * // => 'foo bar baz quux'\n */\nexport function classNames(\n ...args: (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[]\n): string {\n const classSet = new Set<string>();\n\n function process(\n item:\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n ) {\n if (item === undefined || item === null || item === false || item === '') {\n return;\n }\n if (typeof item === 'string' || typeof item === 'number') {\n for (const cls of String(item).split(/\\s+/)) {\n if (cls) classSet.add(cls);\n }\n } else if (Array.isArray(item)) {\n for (const sub of item as (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[])\n process(sub);\n } else if (typeof item === 'object') {\n for (const key in item) {\n if (Object.prototype.hasOwnProperty.call(item, key) && item[key]) {\n for (const cls of key.split(/\\s+/)) {\n if (cls) classSet.add(cls);\n }\n }\n }\n }\n }\n\n for (const arg of args) {\n process(arg);\n }\n return Array.from(classSet).join(' ');\n}\n\n/**\n * Creates a prefixed version of classNames that automatically applies a prefix to all class names.\n *\n * @param {string} classPrefix - The prefix to apply to all class names.\n * @returns {Function} A classNames function that applies the prefix.\n *\n * @example\n * const prefixedClassNames = createPrefixedClassNames('bulma-');\n * prefixedClassNames('button', { 'is-primary': true });\n * // => 'bulma-button bulma-is-primary'\n */\nexport function createPrefixedClassNames(classPrefix: string) {\n return function prefixedClassNames(\n ...args: (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[]\n ): string {\n const classSet = new Set<string>();\n\n function process(\n item:\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n ) {\n if (\n item === undefined ||\n item === null ||\n item === false ||\n item === ''\n ) {\n return;\n }\n if (typeof item === 'string' || typeof item === 'number') {\n for (const cls of String(item).split(/\\s+/)) {\n if (cls) {\n classSet.add(`${classPrefix}${cls}`);\n }\n }\n } else if (Array.isArray(item)) {\n for (const sub of item as (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[])\n process(sub);\n } else if (typeof item === 'object') {\n for (const key in item) {\n if (Object.prototype.hasOwnProperty.call(item, key) && item[key]) {\n for (const cls of key.split(/\\s+/)) {\n if (cls) {\n classSet.add(`${classPrefix}${cls}`);\n }\n }\n }\n }\n }\n }\n\n for (const arg of args) {\n process(arg);\n }\n return Array.from(classSet).join(' ');\n };\n}\n\nexport default classNames;\n\n/**\n * A simple wrapper around classNames that applies an optional prefix to all class names.\n *\n * @param {string | undefined} prefix - The prefix to apply to all class names. If undefined, no prefix is applied.\n * @param {...(string | number | undefined | null | false | Record<string, unknown> | unknown[])} args - Class values to join.\n * @returns {string} A space-separated string of unique class names, with prefix applied if provided.\n *\n * @example\n * prefixedClassNames('bulma-', 'button', { 'is-primary': true });\n * // => 'bulma-button bulma-is-primary'\n *\n * prefixedClassNames(undefined, 'button', { 'is-primary': true });\n * // => 'button is-primary'\n */\nexport function prefixedClassNames(\n prefix: string | undefined,\n ...args: (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[]\n): string {\n if (!prefix) {\n return classNames(...args);\n }\n\n return createPrefixedClassNames(prefix)(...args);\n}\n\n/**\n * Hook that automatically applies the classPrefix from Config context to class names.\n *\n * @param {...(string | number | undefined | null | false | Record<string, unknown> | unknown[])} args - Class values to join.\n * @returns {string} A space-separated string of unique class names with prefix applied from context.\n *\n * @example\n * // With ConfigProvider providing classPrefix=\"bulma-\"\n * const classes = usePrefixedClassNames('button', { 'is-primary': true });\n * // => 'bulma-button bulma-is-primary'\n */\nexport function usePrefixedClassNames(\n ...args: (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[]\n): string {\n const { classPrefix } = useConfig();\n\n return prefixedClassNames(classPrefix, ...args);\n}\n","import { useMemo } from 'react';\nimport { classNames } from '../helpers/classNames';\nimport { useConfig } from './Config';\n\n/**\n * Valid Bulma color classes.\n * @example 'primary', 'link', 'info'\n */\nexport const validColors = [\n 'primary',\n 'link',\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'black',\n 'black-bis',\n 'black-ter',\n 'grey-darker',\n 'grey-dark',\n 'grey',\n 'grey-light',\n 'grey-lighter',\n 'white',\n 'light',\n 'dark',\n] as const;\n\n/**\n * Valid Bulma color shade suffixes.\n<<<<<<< HEAD\n * @example '00', '05', 'invert', 'light', 'dark'\n=======\n * @example '00', '05', 'invert', 'light', 'dark', 'soft', 'bold', 'on-scheme'\n>>>>>>> af5b1f7 (fix(bulma-ui): resolve flex item properties and Card compound component issues (#55))\n */\nexport const validColorShades = [\n '00',\n '05',\n '10',\n '15',\n '20',\n '25',\n '30',\n '35',\n '40',\n '45',\n '50',\n '55',\n '60',\n '65',\n '70',\n '75',\n '80',\n '85',\n '90',\n '95',\n 'invert',\n 'light',\n 'dark',\n 'soft',\n 'bold',\n 'on-scheme',\n] as const;\n\n/**\n * Valid Bulma size classes for margins and paddings.\n * @example '0', '1', 'auto'\n */\nexport const validSizes = ['0', '1', '2', '3', '4', '5', '6', 'auto'] as const;\n\n/**\n * Valid Bulma text size classes.\n * @example '1', '2', '3'\n */\nexport const validTextSizes = ['1', '2', '3', '4', '5', '6', '7'] as const;\n\n/**\n * Valid Bulma text alignment classes.\n * @example 'centered', 'left', 'right'\n */\nexport const validAlignments = [\n 'centered',\n 'justified',\n 'left',\n 'right',\n] as const;\n\n/**\n * Valid Bulma text transformation classes.\n * @example 'capitalized', 'uppercase', 'italic'\n */\nexport const validTextTransforms = [\n 'capitalized',\n 'lowercase',\n 'uppercase',\n 'italic',\n] as const;\n\n/**\n * Valid Bulma text weight classes.\n * @example 'light', 'normal', 'bold'\n */\nexport const validTextWeights = [\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n] as const;\n\n/**\n * Valid Bulma font family classes.\n * @example 'sans-serif', 'monospace', 'code'\n */\nexport const validFontFamilies = [\n 'sans-serif',\n 'monospace',\n 'primary',\n 'secondary',\n 'code',\n] as const;\n\n/**\n * Valid Bulma display classes.\n * @example 'block', 'flex', 'inline'\n */\nexport const validDisplays = [\n 'block',\n 'flex',\n 'inline',\n 'inline-block',\n 'inline-flex',\n] as const;\n\n/**\n * Valid Bulma visibility classes.\n<<<<<<< HEAD\n=======\n * These are all the valid visibility options available in Bulma.\n>>>>>>> af5b1f7 (fix(bulma-ui): resolve flex item properties and Card compound component issues (#55))\n * @example 'hidden', 'sr-only', 'invisible'\n */\nexport const validVisibilities = ['hidden', 'sr-only', 'invisible'] as const;\n\n/**\n * Valid Bulma flex direction classes.\n * @example 'row', 'column', 'row-reverse'\n */\nexport const validFlexDirections = [\n 'row',\n 'row-reverse',\n 'column',\n 'column-reverse',\n] as const;\n\n/**\n * Valid Bulma flex wrap classes.\n * @example 'nowrap', 'wrap', 'wrap-reverse'\n */\nexport const validFlexWraps = ['nowrap', 'wrap', 'wrap-reverse'] as const;\n\n/**\n * Valid Bulma justify-content classes.\n * @example 'flex-start', 'center', 'space-between'\n */\nexport const validJustifyContents = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n 'start',\n 'end',\n 'left',\n 'right',\n] as const;\n\n/**\n * Valid Bulma align-content classes.\n * @example 'flex-start', 'center', 'stretch'\n */\nexport const validAlignContents = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n 'stretch',\n] as const;\n\n/**\n * Valid Bulma align-items classes.\n * @example 'stretch', 'flex-start', 'center'\n */\nexport const validAlignItems = [\n 'stretch',\n 'flex-start',\n 'flex-end',\n 'center',\n 'baseline',\n 'start',\n 'end',\n] as const;\n\n/**\n * Valid Bulma align-self classes.\n * @example 'auto', 'flex-start', 'center'\n */\nexport const validAlignSelfs = [\n 'auto',\n 'flex-start',\n 'flex-end',\n 'center',\n 'baseline',\n 'stretch',\n] as const;\n\n/**\n * Valid Bulma flex grow and shrink values.\n * @example '0', '1', '2', '3', '4', '5'\n */\nexport const validFlexGrowShrink = ['0', '1', '2', '3', '4', '5'] as const;\n\n/**\n * Valid Bulma viewport classes for responsive design.\n * @example 'mobile', 'tablet', 'desktop'\n */\nexport const validViewports = [\n 'mobile',\n 'tablet',\n 'desktop',\n 'widescreen',\n 'fullhd',\n] as const;\n\n/**\n * Props for applying Bulma helper classes to components.\n */\nexport interface BulmaClassesProps {\n /** Text color class (e.g., 'primary', 'info'). */\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n /** Background color class (e.g., 'primary', 'info'). */\n backgroundColor?: (typeof validColors)[number] | 'inherit' | 'current';\n /** Text color shade suffix (e.g., '00', 'invert'). */\n colorShade?: (typeof validColorShades)[number];\n /** Background color shade suffix (e.g., '00', 'invert'). */\n backgroundColorShade?: (typeof validColorShades)[number];\n /** Margin (e.g., '0', '1'). */\n m?: (typeof validSizes)[number];\n /** Margin top. */\n mt?: (typeof validSizes)[number];\n /** Margin right. */\n mr?: (typeof validSizes)[number];\n /** Margin bottom. */\n mb?: (typeof validSizes)[number];\n /** Margin left. */\n ml?: (typeof validSizes)[number];\n /** Margin horizontal (left and right). */\n mx?: (typeof validSizes)[number];\n /** Margin vertical (top and bottom). */\n my?: (typeof validSizes)[number];\n /** Padding (e.g., '0', '1'). */\n p?: (typeof validSizes)[number];\n /** Padding top. */\n pt?: (typeof validSizes)[number];\n /** Padding right. */\n pr?: (typeof validSizes)[number];\n /** Padding bottom. */\n pb?: (typeof validSizes)[number];\n /** Padding left. */\n pl?: (typeof validSizes)[number];\n /** Padding horizontal (left and right). */\n px?: (typeof validSizes)[number];\n /** Padding vertical (top and bottom). */\n py?: (typeof validSizes)[number];\n /** Text size (e.g., '1', '2'). */\n textSize?: (typeof validTextSizes)[number];\n /** Text alignment (e.g., 'centered', 'left'). */\n textAlign?: (typeof validAlignments)[number];\n /** Text transformation (e.g., 'uppercase', 'italic'). */\n textTransform?: (typeof validTextTransforms)[number];\n /** Text weight (e.g., 'light', 'bold'). */\n textWeight?: (typeof validTextWeights)[number];\n /** Font family (e.g., 'sans-serif', 'code'). */\n fontFamily?: (typeof validFontFamilies)[number];\n /** Display type (e.g., 'block', 'flex'). */\n display?: (typeof validDisplays)[number] | 'none';\n /** Visibility (e.g., 'hidden', 'sr-only'). */\n visibility?: (typeof validVisibilities)[number];\n /** Flex direction (e.g., 'row', 'column'). */\n flexDirection?: (typeof validFlexDirections)[number];\n /** Flex wrap (e.g., 'wrap', 'nowrap'). */\n flexWrap?: (typeof validFlexWraps)[number];\n /** Justify content (e.g., 'center', 'space-between'). */\n justifyContent?: (typeof validJustifyContents)[number];\n /** Align content (e.g., 'center', 'stretch'). */\n alignContent?: (typeof validAlignContents)[number];\n /** Align items (e.g., 'center', 'flex-start'). */\n alignItems?: (typeof validAlignItems)[number];\n /** Align self (e.g., 'auto', 'center'). */\n alignSelf?: (typeof validAlignSelfs)[number];\n /** Flex grow value (e.g., '0', '1', '2', '3', '4', '5'). */\n flexGrow?: (typeof validFlexGrowShrink)[number];\n /** Flex shrink value (e.g., '0', '1', '2', '3', '4', '5'). */\n flexShrink?: (typeof validFlexGrowShrink)[number];\n /** Float direction (e.g., 'left', 'right'). */\n float?: 'left' | 'right';\n /** Overflow behavior (e.g., 'clipped'). */\n overflow?: 'clipped';\n /** Applies overlay styling if true. */\n overlay?: boolean;\n /** Interaction behavior (e.g., 'unselectable', 'clickable'). */\n interaction?: 'unselectable' | 'clickable';\n /** Border radius style (e.g., 'radiusless'). */\n radius?: 'radiusless';\n /** Shadow style (e.g., 'shadowless'). */\n shadow?: 'shadowless';\n /** Responsive behavior (e.g., 'mobile', 'narrow'). */\n responsive?: 'mobile' | 'narrow';\n /** Viewport for responsive classes (e.g., 'mobile', 'desktop'). */\n viewport?: (typeof validViewports)[number];\n /** Display type for mobile viewport (up to 768px). */\n displayMobile?: (typeof validDisplays)[number] | 'none';\n /** Display type for tablet viewport (769px - 1023px). */\n displayTablet?: (typeof validDisplays)[number] | 'none';\n /** Display type for desktop viewport (1024px - 1215px). */\n displayDesktop?: (typeof validDisplays)[number] | 'none';\n /** Display type for widescreen viewport (1216px - 1407px). */\n displayWidescreen?: (typeof validDisplays)[number] | 'none';\n /** Display type for fullhd viewport (1408px and above). */\n displayFullhd?: (typeof validDisplays)[number] | 'none';\n /** Text size for mobile viewport (up to 768px). */\n textSizeMobile?: (typeof validTextSizes)[number];\n /** Text size for tablet viewport (769px - 1023px). */\n textSizeTablet?: (typeof validTextSizes)[number];\n /** Text size for desktop viewport (1024px - 1215px). */\n textSizeDesktop?: (typeof validTextSizes)[number];\n /** Text size for widescreen viewport (1216px - 1407px). */\n textSizeWidescreen?: (typeof validTextSizes)[number];\n /** Text size for fullhd viewport (1408px and above). */\n textSizeFullhd?: (typeof validTextSizes)[number];\n /** Text alignment for mobile viewport (up to 768px). */\n textAlignMobile?: (typeof validAlignments)[number];\n /** Text alignment for tablet viewport (769px - 1023px). */\n textAlignTablet?: (typeof validAlignments)[number];\n /** Text alignment for desktop viewport (1024px - 1215px). */\n textAlignDesktop?: (typeof validAlignments)[number];\n /** Text alignment for widescreen viewport (1216px - 1407px). */\n textAlignWidescreen?: (typeof validAlignments)[number];\n /** Text alignment for fullhd viewport (1408px and above). */\n textAlignFullhd?: (typeof validAlignments)[number];\n /** Visibility for mobile viewport (up to 768px). */\n visibilityMobile?: (typeof validVisibilities)[number];\n /** Visibility for tablet viewport (769px - 1023px). */\n visibilityTablet?: (typeof validVisibilities)[number];\n /** Visibility for desktop viewport (1024px - 1215px). */\n visibilityDesktop?: (typeof validVisibilities)[number];\n /** Visibility for widescreen viewport (1216px - 1407px). */\n visibilityWidescreen?: (typeof validVisibilities)[number];\n /** Visibility for fullhd viewport (1408px and above). */\n visibilityFullhd?: (typeof validVisibilities)[number];\n /** Add Bulma skeleton class if true. */\n skeleton?: boolean;\n /** Applies clearfix to fix floating children if true. */\n clearfix?: boolean;\n /** Applies position: relative if true. */\n relative?: boolean;\n}\n\n/**\n * A hook that generates Bulma helper classes from props and separates unhandled props.\n *\n * @function useBulmaClasses\n * @param props - Combination of BulmaClassesProps and additional props.\n * @returns An object containing the Bulma helper classes and unhandled props.\n * @example\n * const { bulmaHelperClasses, rest } = useBulmaClasses({\n * color: 'primary',\n * textSize: '3',\n * className: 'custom-class'\n * });\n * // bulmaHelperClasses: 'has-text-primary is-size-3'\n * // rest: { className: 'custom-class' }\n */\nexport const useBulmaClasses = <T extends Record<string, unknown>>(\n props: BulmaClassesProps & T\n): { bulmaHelperClasses: string; rest: Omit<T, keyof BulmaClassesProps> } => {\n const { classPrefix } = useConfig();\n\n const {\n color,\n backgroundColor,\n colorShade,\n backgroundColorShade,\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n textSize,\n textAlign,\n textTransform,\n textWeight,\n fontFamily,\n display,\n visibility,\n flexDirection,\n flexWrap,\n justifyContent,\n alignContent,\n alignItems,\n alignSelf,\n flexGrow,\n flexShrink,\n float,\n overflow,\n overlay,\n interaction,\n radius,\n shadow,\n responsive,\n viewport,\n displayMobile,\n displayTablet,\n displayDesktop,\n displayWidescreen,\n displayFullhd,\n textSizeMobile,\n textSizeTablet,\n textSizeDesktop,\n textSizeWidescreen,\n textSizeFullhd,\n textAlignMobile,\n textAlignTablet,\n textAlignDesktop,\n textAlignWidescreen,\n textAlignFullhd,\n visibilityMobile,\n visibilityTablet,\n visibilityDesktop,\n visibilityWidescreen,\n visibilityFullhd,\n skeleton,\n clearfix,\n relative,\n ...rest\n } = props;\n\n const bulmaHelperClasses = useMemo(() => {\n const classes: string[] = [];\n\n // Helper function to add class with prefix support\n const addPrefixedClass = (className: string) => {\n classes.push(classPrefix ? `${classPrefix}${className}` : className);\n };\n\n // Helper to add class with optional viewport\n const addClass = (\n prefix: string,\n value: string | undefined,\n validValues: readonly string[],\n supportsViewport = false\n ) => {\n if (value && validValues.includes(value)) {\n const className =\n supportsViewport && viewport && validViewports.includes(viewport)\n ? `${prefix}-${value}-${viewport}`\n : `${prefix}-${value}`;\n addPrefixedClass(className);\n }\n };\n\n // Helper specifically for classes that never support viewport modifiers\n const addClassNoViewport = (\n prefix: string,\n value: string | undefined,\n validValues: readonly string[]\n ) => {\n if (value && (!validValues.length || validValues.includes(value))) {\n addPrefixedClass(`${prefix}-${value}`);\n }\n };\n\n // Color handling\n const addColorClass = (\n prefix: 'has-text' | 'has-background',\n value: string | undefined,\n shade: (typeof validColorShades)[number] | undefined\n ) => {\n if (!value || ![...validColors, 'inherit', 'current'].includes(value))\n return;\n if (shade && validColorShades.includes(shade)) {\n // Color shades never support viewport modifiers in Bulma\n const className = `${prefix}-${value}-${shade}`;\n addPrefixedClass(className);\n } else {\n // Color classes never support viewport modifiers in Bulma\n addClass(\n prefix,\n value,\n [...validColors, 'inherit', 'current'],\n false // supportsViewport = false for all color classes\n );\n }\n };\n\n // Color\n addColorClass('has-text', color, colorShade);\n addColorClass('has-background', backgroundColor, backgroundColorShade);\n\n // Spacing (no viewport support in Bulma)\n addClassNoViewport('m', m, validSizes);\n addClassNoViewport('mt', mt, validSizes);\n addClassNoViewport('mr', mr, validSizes);\n addClassNoViewport('mb', mb, validSizes);\n addClassNoViewport('ml', ml, validSizes);\n addClassNoViewport('mx', mx, validSizes);\n addClassNoViewport('my', my, validSizes);\n addClassNoViewport('p', p, validSizes);\n addClassNoViewport('pt', pt, validSizes);\n addClassNoViewport('pr', pr, validSizes);\n addClassNoViewport('pb', pb, validSizes);\n addClassNoViewport('pl', pl, validSizes);\n addClassNoViewport('px', px, validSizes);\n addClassNoViewport('py', py, validSizes);\n\n // Typography\n addClass('is-size', textSize, validTextSizes, true); // supports viewport\n addClass('has-text', textAlign, validAlignments, true); // supports viewport\n addClassNoViewport('is', textTransform, validTextTransforms); // no viewport support\n addClassNoViewport('has-text-weight', textWeight, validTextWeights); // no viewport support\n addClassNoViewport('is-family', fontFamily, validFontFamilies); // no viewport support\n\n // Viewport-specific text sizes\n const addViewportSpecificTextSizeClass = (\n value: string | undefined,\n viewportSuffix: string\n ) => {\n if (value && (validTextSizes as readonly string[]).includes(value)) {\n addPrefixedClass(`is-size-${value}${viewportSuffix}`);\n }\n };\n\n addViewportSpecificTextSizeClass(textSizeMobile, '-mobile');\n addViewportSpecificTextSizeClass(textSizeTablet, '-tablet');\n addViewportSpecificTextSizeClass(textSizeDesktop, '-desktop');\n addViewportSpecificTextSizeClass(textSizeWidescreen, '-widescreen');\n addViewportSpecificTextSizeClass(textSizeFullhd, '-fullhd');\n\n // Viewport-specific text alignment\n const addViewportSpecificTextAlignClass = (\n value: string | undefined,\n viewportSuffix: string\n ) => {\n if (value && (validAlignments as readonly string[]).includes(value)) {\n addPrefixedClass(`has-text-${value}${viewportSuffix}`);\n }\n };\n\n addViewportSpecificTextAlignClass(textAlignMobile, '-mobile');\n addViewportSpecificTextAlignClass(textAlignTablet, '-tablet');\n addViewportSpecificTextAlignClass(textAlignDesktop, '-desktop');\n addViewportSpecificTextAlignClass(textAlignWidescreen, '-widescreen');\n addViewportSpecificTextAlignClass(textAlignFullhd, '-fullhd');\n\n // Viewport-specific visibility\n const addViewportSpecificVisibilityClass = (\n value: string | undefined,\n viewportSuffix: string\n ) => {\n if (value === 'hidden') {\n addPrefixedClass(`is-hidden${viewportSuffix}`);\n } else if (value === 'sr-only') {\n addPrefixedClass(`is-sr-only${viewportSuffix}`);\n } else if (value === 'invisible') {\n addPrefixedClass(`is-invisible${viewportSuffix}`);\n }\n };\n\n addViewportSpecificVisibilityClass(visibilityMobile, '-mobile');\n addViewportSpecificVisibilityClass(visibilityTablet, '-tablet');\n addViewportSpecificVisibilityClass(visibilityDesktop, '-desktop');\n addViewportSpecificVisibilityClass(visibilityWidescreen, '-widescreen');\n addViewportSpecificVisibilityClass(visibilityFullhd, '-fullhd');\n\n // Visibility and Display\n // Handle viewport-specific display properties first (they take precedence)\n const addDisplayClass = (\n displayValue: string | undefined,\n viewportSuffix: string\n ) => {\n if (displayValue) {\n if (displayValue === 'none') {\n addPrefixedClass(`is-hidden${viewportSuffix}`);\n } else if (\n (validDisplays as readonly string[]).includes(displayValue)\n ) {\n addPrefixedClass(`is-${displayValue}${viewportSuffix}`);\n }\n }\n };\n\n // Apply viewport-specific display classes\n addDisplayClass(displayMobile, '-mobile');\n addDisplayClass(displayTablet, '-tablet');\n addDisplayClass(displayDesktop, '-desktop');\n addDisplayClass(displayWidescreen, '-widescreen');\n addDisplayClass(displayFullhd, '-fullhd');\n\n // Apply legacy display/viewport combination if no viewport-specific display props are set\n const hasViewportSpecificDisplay = !!(\n displayMobile ||\n displayTablet ||\n displayDesktop ||\n displayWidescreen ||\n displayFullhd\n );\n\n if (!hasViewportSpecificDisplay) {\n // Legacy display handling\n if (display === 'none') {\n if (viewport && validViewports.includes(viewport)) {\n addPrefixedClass(`is-hidden-${viewport}`);\n } else {\n addPrefixedClass('is-hidden');\n }\n } else {\n addClass('is', display, [...validDisplays], true); // display supports viewport\n }\n }\n\n // Visibility (always applied regardless of display settings)\n if (visibility) {\n if (\n (visibility === 'hidden' || visibility === 'invisible') &&\n viewport &&\n validViewports.includes(viewport)\n ) {\n addPrefixedClass(`is-${visibility}-${viewport}`);\n } else if (validVisibilities.includes(visibility)) {\n addPrefixedClass(`is-${visibility}`);\n }\n }\n\n // Flexbox\n const hasFlexDisplay =\n display === 'flex' ||\n display === 'inline-flex' ||\n displayMobile === 'flex' ||\n displayMobile === 'inline-flex' ||\n displayTablet === 'flex' ||\n displayTablet === 'inline-flex' ||\n displayDesktop === 'flex' ||\n displayDesktop === 'inline-flex' ||\n displayWidescreen === 'flex' ||\n displayWidescreen === 'inline-flex' ||\n displayFullhd === 'flex' ||\n displayFullhd === 'inline-flex';\n\n if (hasFlexDisplay) {\n // Flexbox container properties do not support viewport modifiers in Bulma\n addClassNoViewport(\n 'is-flex-direction',\n flexDirection,\n validFlexDirections\n );\n addClassNoViewport('is-flex-wrap', flexWrap, validFlexWraps);\n addClassNoViewport(\n 'is-justify-content',\n justifyContent,\n validJustifyContents\n );\n addClassNoViewport('is-align-content', alignContent, validAlignContents);\n addClassNoViewport('is-align-items', alignItems, validAlignItems);\n }\n\n // Flex item properties (can be applied to any element that is a flex item)\n // These don't require the element itself to have display: flex\n addClassNoViewport('is-align-self', alignSelf, validAlignSelfs);\n addClassNoViewport('is-flex-grow', flexGrow, validFlexGrowShrink);\n addClassNoViewport('is-flex-shrink', flexShrink, validFlexGrowShrink);\n\n // Other Helpers (no viewport support)\n if (float) {\n addClassNoViewport('is-pulled', float, ['left', 'right']);\n }\n if (overflow) {\n addClassNoViewport('is', overflow, ['clipped']);\n }\n if (overlay) {\n addPrefixedClass('is-overlay');\n }\n if (interaction) {\n addClassNoViewport('is', interaction, ['unselectable', 'clickable']);\n }\n if (radius) {\n addClassNoViewport('is', radius, ['radiusless']);\n }\n if (shadow) {\n addClassNoViewport('is', shadow, ['shadowless']);\n }\n if (responsive) {\n addClassNoViewport('is', responsive, ['mobile', 'narrow']);\n }\n\n // Bulma Skeleton Helper\n if (skeleton) {\n addPrefixedClass('is-skeleton');\n }\n\n // Clearfix Helper\n if (clearfix) {\n addPrefixedClass('is-clearfix');\n }\n\n // Position Relative Helper\n if (relative) {\n addPrefixedClass('is-relative');\n }\n\n return classNames(classes);\n }, [\n classPrefix,\n color,\n backgroundColor,\n colorShade,\n backgroundColorShade,\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n textSize,\n textAlign,\n textTransform,\n textWeight,\n fontFamily,\n display,\n visibility,\n flexDirection,\n flexWrap,\n justifyContent,\n alignContent,\n alignItems,\n alignSelf,\n flexGrow,\n flexShrink,\n float,\n overflow,\n overlay,\n interaction,\n radius,\n shadow,\n responsive,\n viewport,\n displayMobile,\n displayTablet,\n displayDesktop,\n displayWidescreen,\n displayFullhd,\n skeleton,\n clearfix,\n relative,\n // Viewport-specific properties\n textSizeMobile,\n textSizeTablet,\n textSizeDesktop,\n textSizeWidescreen,\n textSizeFullhd,\n textAlignMobile,\n textAlignTablet,\n textAlignDesktop,\n textAlignWidescreen,\n textAlignFullhd,\n visibilityMobile,\n visibilityTablet,\n visibilityDesktop,\n visibilityWidescreen,\n visibilityFullhd,\n ]);\n\n return { bulmaHelperClasses, rest };\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Possible values for Bulma column size.\n */\nexport type BulmaColumnSize =\n | number\n | 'full'\n | 'half'\n | 'one-third'\n | 'two-thirds'\n | 'one-quarter'\n | 'three-quarters'\n | 'one-fifth'\n | 'two-fifths'\n | 'three-fifths'\n | 'four-fifths';\n\n/**\n * Props for the Column component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the column.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n *\n * @property {BulmaColumnSize} [size] - Column size.\n * @property {BulmaColumnSize} [sizeMobile] - Mobile column size.\n * @property {BulmaColumnSize} [sizeTablet] - Tablet column size.\n * @property {BulmaColumnSize} [sizeDesktop] - Desktop column size.\n * @property {BulmaColumnSize} [sizeWidescreen] - Widescreen column size.\n * @property {BulmaColumnSize} [sizeFullhd] - FullHD column size.\n *\n * @property {BulmaColumnSize} [offset] - Column offset.\n * @property {BulmaColumnSize} [offsetMobile] - Mobile column offset.\n * @property {BulmaColumnSize} [offsetTablet] - Tablet column offset.\n * @property {BulmaColumnSize} [offsetDesktop] - Desktop column offset.\n * @property {BulmaColumnSize} [offsetWidescreen] - Widescreen column offset.\n * @property {BulmaColumnSize} [offsetFullhd] - FullHD column offset.\n *\n * @property {boolean} [isNarrow] - The column is narrow.\n * @property {boolean} [isNarrowMobile] - The column is narrow on mobile.\n * @property {boolean} [isNarrowTablet] - The column is narrow on tablet.\n * @property {boolean} [isNarrowTouch] - The column is narrow on touch devices.\n * @property {boolean} [isNarrowDesktop] - The column is narrow on desktop.\n * @property {boolean} [isNarrowWidescreen] - The column is narrow on widescreen.\n * @property {boolean} [isNarrowFullhd] - The column is narrow on fullhd.\n *\n * @property {React.ReactNode} [children] - Children to render inside the column.\n */\nexport interface ColumnProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n\n size?: BulmaColumnSize;\n sizeMobile?: BulmaColumnSize;\n sizeTablet?: BulmaColumnSize;\n sizeDesktop?: BulmaColumnSize;\n sizeWidescreen?: BulmaColumnSize;\n sizeFullhd?: BulmaColumnSize;\n\n offset?: BulmaColumnSize;\n offsetMobile?: BulmaColumnSize;\n offsetTablet?: BulmaColumnSize;\n offsetDesktop?: BulmaColumnSize;\n offsetWidescreen?: BulmaColumnSize;\n offsetFullhd?: BulmaColumnSize;\n\n isNarrow?: boolean;\n isNarrowMobile?: boolean;\n isNarrowTablet?: boolean;\n isNarrowTouch?: boolean;\n isNarrowDesktop?: boolean;\n isNarrowWidescreen?: boolean;\n isNarrowFullhd?: boolean;\n\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Column component for responsive grid layouts.\n *\n * @function\n * @param {ColumnProps} props - Props for the Column component.\n * @returns {JSX.Element} The rendered column.\n * @see {@link https://bulma.io/documentation/columns/ | Bulma Columns documentation}\n */\nexport const Column: React.FC<ColumnProps> = ({\n className,\n textColor,\n color: _fieldColor,\n bgColor,\n size,\n sizeMobile,\n sizeTablet,\n sizeDesktop,\n sizeWidescreen,\n sizeFullhd,\n offset,\n offsetMobile,\n offsetTablet,\n offsetDesktop,\n offsetWidescreen,\n offsetFullhd,\n isNarrow,\n isNarrowMobile,\n isNarrowTablet,\n isNarrowTouch,\n isNarrowDesktop,\n isNarrowWidescreen,\n isNarrowFullhd,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('column');\n\n // Build column-specific classes with prefixes\n const columnSpecificClasses = usePrefixedClassNames('', {\n [`is-${size}`]: size !== undefined && size !== null,\n [`is-${sizeMobile}-mobile`]:\n sizeMobile !== undefined && sizeMobile !== null,\n [`is-${sizeTablet}-tablet`]:\n sizeTablet !== undefined && sizeTablet !== null,\n [`is-${sizeDesktop}-desktop`]:\n sizeDesktop !== undefined && sizeDesktop !== null,\n [`is-${sizeWidescreen}-widescreen`]:\n sizeWidescreen !== undefined && sizeWidescreen !== null,\n [`is-${sizeFullhd}-fullhd`]:\n sizeFullhd !== undefined && sizeFullhd !== null,\n [`is-offset-${offset}`]: offset !== undefined && offset !== null,\n [`is-offset-${offsetMobile}-mobile`]:\n offsetMobile !== undefined && offsetMobile !== null,\n [`is-offset-${offsetTablet}-tablet`]:\n offsetTablet !== undefined && offsetTablet !== null,\n [`is-offset-${offsetDesktop}-desktop`]:\n offsetDesktop !== undefined && offsetDesktop !== null,\n [`is-offset-${offsetWidescreen}-widescreen`]:\n offsetWidescreen !== undefined && offsetWidescreen !== null,\n [`is-offset-${offsetFullhd}-fullhd`]:\n offsetFullhd !== undefined && offsetFullhd !== null,\n 'is-narrow': !!isNarrow,\n 'is-narrow-mobile': !!isNarrowMobile,\n 'is-narrow-tablet': !!isNarrowTablet,\n 'is-narrow-touch': !!isNarrowTouch,\n 'is-narrow-desktop': !!isNarrowDesktop,\n 'is-narrow-widescreen': !!isNarrowWidescreen,\n 'is-narrow-fullhd': !!isNarrowFullhd,\n });\n\n const columnClasses = classNames(\n mainClass,\n columnSpecificClasses,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={columnClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Possible values for the Bulma columns gap size.\n */\nexport type BulmaGapSize =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | '0'\n | '1'\n | '2'\n | '3'\n | '4'\n | '5'\n | '6'\n | '7'\n | '8';\n\n/**\n * Props for the Columns component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for columns.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {boolean} [isCentered] - Center the columns container.\n * @property {boolean} [isGapless] - Remove all column gaps.\n * @property {boolean} [isMultiline] - Allow columns to wrap to multiple lines.\n * @property {boolean} [isVCentered] - Vertically center columns.\n * @property {boolean} [isMobile] - Only apply columns styles on mobile.\n * @property {boolean} [isDesktop] - Only apply columns styles on desktop.\n * @property {BulmaGapSize} [gapSize] - Gap size for all breakpoints.\n * @property {BulmaGapSize} [gapSizeMobile] - Gap size for mobile.\n * @property {BulmaGapSize} [gapSizeTablet] - Gap size for tablet.\n * @property {BulmaGapSize} [gapSizeDesktop] - Gap size for desktop.\n * @property {BulmaGapSize} [gapSizeWidescreen] - Gap size for widescreen.\n * @property {BulmaGapSize} [gapSizeFullhd] - Gap size for fullhd.\n * @property {React.ReactNode} [children] - Columns to render within the container.\n */\nexport interface ColumnsProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n isCentered?: boolean;\n isGapless?: boolean;\n isMultiline?: boolean;\n isVCentered?: boolean;\n isMobile?: boolean;\n isDesktop?: boolean;\n\n gapSize?: BulmaGapSize;\n gapSizeMobile?: BulmaGapSize;\n gapSizeTablet?: BulmaGapSize;\n gapSizeDesktop?: BulmaGapSize;\n gapSizeWidescreen?: BulmaGapSize;\n gapSizeFullhd?: BulmaGapSize;\n\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Columns container for flexible, responsive layouts.\n *\n * @function\n * @param {ColumnsProps} props - Props for the Columns component.\n * @returns {JSX.Element} The rendered columns container.\n * @see {@link https://bulma.io/documentation/columns/ | Bulma Columns documentation}\n */\nexport const Columns: React.FC<ColumnsProps> = ({\n className,\n textColor,\n color: _fieldColor,\n bgColor,\n isCentered,\n isGapless,\n isMultiline,\n isVCentered,\n isMobile,\n isDesktop,\n gapSize,\n gapSizeMobile,\n gapSizeTablet,\n gapSizeDesktop,\n gapSizeWidescreen,\n gapSizeFullhd,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('columns');\n\n // Build gap classes with prefixes\n const gapClasses = usePrefixedClassNames('', {\n [`is-${gapSize}`]: gapSize !== undefined && gapSize !== null,\n [`is-${gapSizeMobile}-mobile`]:\n gapSizeMobile !== undefined && gapSizeMobile !== null,\n [`is-${gapSizeTablet}-tablet`]:\n gapSizeTablet !== undefined && gapSizeTablet !== null,\n [`is-${gapSizeDesktop}-desktop`]:\n gapSizeDesktop !== undefined && gapSizeDesktop !== null,\n [`is-${gapSizeWidescreen}-widescreen`]:\n gapSizeWidescreen !== undefined && gapSizeWidescreen !== null,\n [`is-${gapSizeFullhd}-fullhd`]:\n gapSizeFullhd !== undefined && gapSizeFullhd !== null,\n 'is-centered': !!isCentered,\n 'is-gapless': !!isGapless,\n 'is-multiline': !!isMultiline,\n 'is-vcentered': !!isVCentered,\n 'is-mobile': !!isMobile,\n 'is-desktop': !!isDesktop,\n });\n\n const columnsClasses = classNames(\n mainClass,\n gapClasses,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={columnsClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\nconst validBreadcrumbAlignments = ['centered', 'right'] as const;\n/**\n * Valid alignment values for the Breadcrumb component.\n */\nexport type BreadcrumbAlignment = (typeof validBreadcrumbAlignments)[number];\n\nconst validBreadcrumbSeparators = [\n 'arrow',\n 'bullet',\n 'dot',\n 'succeeds',\n] as const;\n/**\n * Valid separator values for the Breadcrumb component.\n */\nexport type BreadcrumbSeparator = (typeof validBreadcrumbSeparators)[number];\n\nconst validBreadcrumbSizes = ['small', 'medium', 'large'] as const;\n/**\n * Valid size values for the Breadcrumb component.\n */\nexport type BreadcrumbSize = (typeof validBreadcrumbSizes)[number];\n\n/**\n * Props for the Breadcrumb component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {BreadcrumbAlignment} [alignment] - Alignment modifier for the breadcrumb.\n * @property {BreadcrumbSeparator} [separator] - Separator style for the breadcrumb.\n * @property {BreadcrumbSize} [size] - Size modifier for the breadcrumb.\n * @property {React.ReactNode} [children] - Breadcrumb items (e.g., \"a\" or \"span\" html elements).\n */\nexport interface BreadcrumbProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n alignment?: BreadcrumbAlignment;\n separator?: BreadcrumbSeparator;\n size?: BreadcrumbSize;\n children?: React.ReactNode;\n}\n\n/**\n * Breadcrumb component for rendering a styled Bulma breadcrumb navigation.\n *\n * Supports alignment, separator styles, and sizes.\n *\n * @function\n * @param {BreadcrumbProps} props - Props for the Breadcrumb component.\n * @returns {JSX.Element} The rendered breadcrumb element.\n * @see {@link https://bulma.io/documentation/components/breadcrumb/ | Bulma Breadcrumb documentation}\n */\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({\n className,\n alignment,\n separator,\n size,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('breadcrumb', {\n [`is-${alignment}`]:\n alignment && validBreadcrumbAlignments.includes(alignment),\n [`has-${separator}-separator`]:\n separator && validBreadcrumbSeparators.includes(separator),\n [`is-${size}`]: size && validBreadcrumbSizes.includes(size),\n });\n\n // Combine prefixed Bulma classes with unprefixed user className and prefixed helper classes\n const breadcrumbClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <nav className={breadcrumbClasses} aria-label=\"breadcrumbs\" {...rest}>\n <ul>{children}</ul>\n </nav>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Card component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the card.\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the card.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the card.\n * @property {boolean} [hasShadow] - Whether the card has a shadow (default: true).\n * @property {React.ReactNode} [header] - Card header content, rendered inside `.card-header-title`.\n * @property {boolean} [headerCentered] - If true, centers the header title.\n * @property {React.ReactNode} [headerIcon] - Card header icon, rendered as a sibling to the header title.\n * @property {React.ReactNode|React.ReactNode[]} [footer] - Card footer content, each wrapped in `.card-footer-item`.\n * @property {React.ReactNode|string} [image] - Card image node or image src string.\n * @property {string} [imageAlt] - Alternate text for the card image.\n * @property {React.ReactNode} [children] - Card content.\n */\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n hasShadow?: boolean;\n header?: React.ReactNode;\n headerCentered?: boolean;\n headerIcon?: React.ReactNode;\n footer?: React.ReactNode | React.ReactNode[];\n image?: React.ReactNode | string;\n imageAlt?: string;\n children?: React.ReactNode;\n}\n\n// Always wrap each footer item in .card-footer-item\nconst renderFooter = (footer: CardProps['footer']) => {\n if (!footer) return null;\n const items = Array.isArray(footer) ? footer : [footer];\n return items.map((item, idx) => (\n <span className=\"card-footer-item\" key={idx}>\n {item}\n </span>\n ));\n};\n\n// Check if children contain any Card compound components\nconst hasCompoundComponents = (children: React.ReactNode): boolean => {\n return React.Children.toArray(children).some(child => {\n if (!React.isValidElement(child)) return false;\n\n // Direct comparison with our compound component functions\n return (\n child.type === CardHeader ||\n child.type === CardContent ||\n child.type === CardImage ||\n child.type === CardFooter ||\n child.type === CardFooterItem ||\n child.type === CardHeaderIcon\n );\n });\n};\n\n/**\n * Card component for rendering a styled Bulma card.\n *\n * @function\n * @param {CardProps} props - Props for the Card component.\n * @returns {JSX.Element} The rendered card element.\n * @see {@link https://bulma.io/documentation/components/card/ | Bulma Card documentation}\n */\nconst CardComponent: React.FC<CardProps> = ({\n className,\n children,\n textColor,\n bgColor,\n hasShadow = true,\n header,\n headerCentered,\n headerIcon,\n footer,\n image,\n imageAlt,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('card', {\n 'is-shadowless': !hasShadow,\n });\n\n // Combine prefixed Bulma classes with unprefixed user className and prefixed helper classes\n const cardClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n // Render header with optional icon and is-centered modifier\n const renderHeader = (\n header: React.ReactNode,\n headerIcon: React.ReactNode,\n headerCentered?: boolean\n ) => {\n if (!header && !headerIcon) return null;\n return (\n <header className=\"card-header\">\n {header && (\n <div\n className={classNames('card-header-title', {\n 'is-centered': headerCentered,\n })}\n >\n {header}\n </div>\n )}\n {headerIcon}\n </header>\n );\n };\n\n return (\n <div className={cardClasses} {...rest}>\n {renderHeader(header, headerIcon, headerCentered)}\n {image && (\n <div className=\"card-image\">\n {typeof image === 'string' ? (\n <figure className=\"image\">\n <img src={image} alt={imageAlt ?? 'Card image'} />\n </figure>\n ) : (\n image\n )}\n </div>\n )}\n {/* Only render card-content if children is specified and doesn't contain compound components */}\n {typeof children !== 'undefined' &&\n children !== null &&\n children !== '' &&\n !hasCompoundComponents(children) && (\n <div className=\"card-content\">{children}</div>\n )}\n {/* Render children directly if they contain compound components */}\n {typeof children !== 'undefined' &&\n children !== null &&\n children !== '' &&\n hasCompoundComponents(children) &&\n children}\n {footer && (\n <footer className=\"card-footer\">{renderFooter(footer)}</footer>\n )}\n </div>\n );\n};\n\n// Compound components for flexible composition\nexport interface CardHeaderProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n children?: React.ReactNode;\n centered?: boolean;\n}\n\nexport interface CardImageProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface CardFooterProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface CardFooterItemProps\n extends React.HTMLAttributes<HTMLSpanElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface CardHeaderTitleProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n centered?: boolean;\n}\n\nexport interface CardHeaderIconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nconst CardHeader: React.FC<CardHeaderProps> = ({\n className,\n children,\n centered,\n ...props\n}) => {\n // Check if children contains a CardHeaderTitle component\n const hasHeaderTitle = React.Children.toArray(children).some(\n child =>\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n child.type === CardHeaderTitle\n );\n\n return (\n <header className={classNames('card-header', className)} {...props}>\n {hasHeaderTitle ? (\n children\n ) : (\n <div\n className={classNames('card-header-title', {\n 'is-centered': centered,\n })}\n >\n {children}\n </div>\n )}\n </header>\n );\n};\n\nconst CardHeaderTitle: React.FC<CardHeaderTitleProps> = ({\n className,\n children,\n centered,\n ...props\n}) => (\n <div\n className={classNames(\n 'card-header-title',\n { 'is-centered': centered },\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nconst CardHeaderIcon: React.FC<CardHeaderIconProps> = ({\n className,\n children,\n ...props\n}) => (\n <button\n className={classNames('card-header-icon', className)}\n aria-label={props['aria-label'] || 'more options'}\n {...props}\n >\n {children}\n </button>\n);\n\nconst CardImage: React.FC<CardImageProps> = ({\n className,\n children,\n ...props\n}) => (\n <div className={classNames('card-image', className)} {...props}>\n {children}\n </div>\n);\n\nconst CardContent: React.FC<CardContentProps> = ({\n className,\n children,\n ...props\n}) => (\n <div className={classNames('card-content', className)} {...props}>\n {children}\n </div>\n);\n\nconst CardFooter: React.FC<CardFooterProps> = ({\n className,\n children,\n ...props\n}) => (\n <footer className={classNames('card-footer', className)} {...props}>\n {children}\n </footer>\n);\n\nconst CardFooterItem: React.FC<CardFooterItemProps> = ({\n className,\n children,\n ...props\n}) => (\n <span className={classNames('card-footer-item', className)} {...props}>\n {children}\n </span>\n);\n\n// Create a type that extends the Card component with compound components\ntype CardWithCompounds = typeof CardComponent & {\n Header: typeof CardHeader & {\n Title: typeof CardHeaderTitle;\n Icon: typeof CardHeaderIcon;\n };\n Image: typeof CardImage;\n Content: typeof CardContent;\n Footer: typeof CardFooter;\n FooterItem: typeof CardFooterItem;\n};\n\n// Cast Card to the compound type and assign compound components\nconst CardWithSubComponents = CardComponent as CardWithCompounds;\n\n// Create CardHeader with nested Title and Icon components\nconst CardHeaderWithTitle = CardHeader as typeof CardHeader & {\n Title: typeof CardHeaderTitle;\n Icon: typeof CardHeaderIcon;\n};\nCardHeaderWithTitle.Title = CardHeaderTitle;\nCardHeaderWithTitle.Icon = CardHeaderIcon;\n\nCardWithSubComponents.Header = CardHeaderWithTitle;\nCardWithSubComponents.Image = CardImage;\nCardWithSubComponents.Content = CardContent;\nCardWithSubComponents.Footer = CardFooter;\nCardWithSubComponents.FooterItem = CardFooterItem;\n\n// Export the compound component\nexport { CardWithSubComponents as Card };\n\n// Only for test coverage\nexport const __test_exports__ = { renderFooter };\n","import React, { useState, useRef, useEffect } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Checks if code is running in a browser environment.\n * @param win - Window object.\n * @param doc - Document object.\n * @returns {boolean} True if in browser, false otherwise.\n */\nexport const isBrowser = (win?: typeof window, doc?: typeof document) =>\n typeof win !== 'undefined' && typeof doc !== 'undefined';\n\n/**\n * Props for the Dropdown component.\n *\n * @property {React.ReactNode} label - The dropdown button content.\n * @property {React.ReactNode} children - The menu items.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {string} [menuClassName] - Additional CSS classes for the dropdown menu.\n * @property {boolean} [active] - Whether the dropdown is open (controlled).\n * @property {boolean} [up] - Dropdown direction up.\n * @property {boolean} [right] - Dropdown aligned to the right.\n * @property {boolean} [hoverable] - Dropdown opens on hover.\n * @property {boolean} [disabled] - Disables the dropdown trigger.\n * @property {(active: boolean) => void} [onActiveChange] - Called when active state changes.\n * @property {boolean} [closeOnClick=true] - Close dropdown when clicking a menu item.\n * @property {string} [id] - ID for the root element.\n */\nexport interface DropdownProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n label: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n menuClassName?: string;\n active?: boolean;\n up?: boolean;\n right?: boolean;\n hoverable?: boolean;\n disabled?: boolean;\n onActiveChange?: (active: boolean) => void;\n closeOnClick?: boolean;\n id?: string;\n}\n\n/**\n * Bulma Dropdown component.\n *\n * @function\n * @param {DropdownProps} props - Props for the Dropdown component.\n * @returns {JSX.Element} The rendered dropdown.\n * @see {@link https://bulma.io/documentation/components/dropdown/ | Bulma Dropdown documentation}\n */\nconst DropdownComponent: React.FC<DropdownProps> = ({\n label,\n children,\n className,\n menuClassName,\n active: activeProp,\n up,\n right,\n hoverable,\n disabled,\n onActiveChange,\n closeOnClick = true,\n id,\n ...props\n}) => {\n const [active, setActive] = useState<boolean>(!!activeProp);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('dropdown', {\n 'is-active': active,\n 'is-up': up,\n 'is-right': right,\n 'is-hoverable': hoverable,\n 'is-disabled': disabled,\n });\n\n const buttonClass = usePrefixedClassNames('button');\n\n // Controlled mode support\n useEffect(() => {\n if (typeof activeProp === 'boolean') setActive(activeProp);\n }, [activeProp]);\n\n // SSR-safe outside click\n useEffect(() => {\n if (!active) return;\n\n if (!isBrowser(window, document)) return;\n\n const handleClick = (e: MouseEvent) => {\n /* istanbul ignore next: dropdownRef.current is never null while the listener is attached */\n if (!dropdownRef.current?.contains(e.target as Node)) {\n setActive(false);\n onActiveChange?.(false);\n }\n };\n document.addEventListener('mousedown', handleClick);\n return () => document.removeEventListener('mousedown', handleClick);\n }, [active, onActiveChange]);\n\n const handleToggle = () => {\n /* istanbul ignore next: guard is enforced by button[disabled] at the DOM level */\n if (disabled) return;\n\n const newActive = !active;\n setActive(newActive);\n onActiveChange?.(newActive);\n };\n\n const handleMenuClick = () => {\n if (closeOnClick) {\n setActive(false);\n onActiveChange?.(false);\n }\n };\n\n const dropdownClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <div\n className={dropdownClasses}\n ref={dropdownRef}\n id={id}\n data-testid=\"dropdown-root\"\n {...rest}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={buttonClass}\n aria-haspopup=\"true\"\n aria-controls={id ? `${id}-menu` : undefined}\n aria-expanded={active}\n onClick={handleToggle}\n disabled={disabled}\n type=\"button\"\n >\n <span>{label}</span>\n <span className=\"icon is-small\" aria-hidden=\"true\">\n <i className=\"fas fa-angle-down\" />\n </span>\n </button>\n </div>\n <div\n className={classNames('dropdown-menu', menuClassName)}\n id={id ? `${id}-menu` : undefined}\n role=\"menu\"\n data-testid=\"dropdown-menu\"\n >\n <div\n className=\"dropdown-content\"\n onClick={handleMenuClick}\n tabIndex={-1}\n >\n {children}\n </div>\n </div>\n </div>\n );\n};\n\n/**\n * Props for the DropdownItem component.\n *\n * @property {boolean} [active] - Whether the item is active.\n * @property {string} [className] - Additional CSS classes.\n * @property {'a'|'div'|'button'} [as] - The element type to render.\n * @property {React.ReactNode} [children] - Item content.\n */\nexport interface DropdownItemProps\n extends Omit<React.HTMLAttributes<HTMLElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n active?: boolean;\n className?: string;\n as?: 'a' | 'div' | 'button';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Dropdown item.\n *\n * @function\n * @param {DropdownItemProps} props - Props for the DropdownItem component.\n * @returns {JSX.Element} The rendered dropdown item.\n */\nexport const DropdownItem: React.FC<DropdownItemProps> = ({\n children,\n active,\n className,\n as: Component = 'a',\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n return (\n <Component\n className={classNames(\n 'dropdown-item',\n bulmaHelperClasses,\n { 'is-active': active },\n className\n )}\n tabIndex={0}\n role=\"menuitem\"\n data-testid=\"dropdown-item\"\n {...rest}\n >\n {children}\n </Component>\n );\n};\n\n/**\n * Bulma Dropdown divider.\n *\n * @returns {JSX.Element} The divider element.\n */\nexport const DropdownDivider: React.FC = () => (\n <hr className=\"dropdown-divider\" />\n);\n\n// Assign static subcomponents\nexport const Dropdown = Object.assign(DropdownComponent, {\n Item: DropdownItem,\n Divider: DropdownDivider,\n});\n\nexport default Dropdown;\n","import React, { createContext, useContext } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n// Context to track MenuList nesting level\nconst MenuListLevelContext = createContext(0);\n\n/**\n * Props for the Menu component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} children - Menu content.\n */\nexport interface MenuProps\n extends Omit<React.HTMLAttributes<HTMLElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * Bulma Menu component.\n *\n * @function\n * @param {MenuProps} props - Props for the Menu component.\n * @returns {JSX.Element} The rendered menu.\n * @see {@link https://bulma.io/documentation/components/menu/ | Bulma Menu documentation}\n */\nconst MenuComponent: React.FC<MenuProps> = ({\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('menu');\n\n return (\n <aside\n className={classNames(bulmaClasses, bulmaHelperClasses, className)}\n {...rest}\n >\n {children}\n </aside>\n );\n};\n\n/**\n * Props for the MenuLabel component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} children - Label content.\n */\nexport interface MenuLabelProps\n extends Omit<\n React.HTMLAttributes<HTMLParagraphElement>,\n keyof BulmaClassesProps\n >,\n BulmaClassesProps {\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * Bulma Menu label component.\n *\n * @function\n * @param {MenuLabelProps} props - Props for the MenuLabel component.\n * @returns {JSX.Element} The rendered menu label.\n */\nexport const MenuLabel: React.FC<MenuLabelProps> = ({\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n\n return (\n <p\n className={classNames('menu-label', className, bulmaHelperClasses)}\n {...rest}\n >\n {children}\n </p>\n );\n};\n\n/**\n * Props for the MenuList component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} children - List items.\n */\nexport interface MenuListProps\n extends Omit<React.HTMLAttributes<HTMLUListElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * MenuList applies `menu-list` class only at the top level (not for nested lists).\n *\n * @function\n * @param {MenuListProps} props - Props for the MenuList component.\n * @returns {JSX.Element} The rendered menu list.\n */\nexport const MenuList: React.FC<MenuListProps> = ({\n className,\n children,\n ...props\n}) => {\n const level = useContext(MenuListLevelContext);\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n\n const ulClass = classNames(className, bulmaHelperClasses, {\n 'menu-list': level === 0,\n });\n\n // Increment level for nested MenuLists\n return (\n <MenuListLevelContext.Provider value={level + 1}>\n <ul className={ulClass} {...rest}>\n {children}\n </ul>\n </MenuListLevelContext.Provider>\n );\n};\n\n/**\n * Props for the MenuItem component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [active] - Whether the item is active.\n * @property {string} [href] - Href for link items.\n * @property {React.ElementType} [as] - Render as a custom component.\n * @property {React.ReactNode} children - Item content and optional nested MenuList.\n */\nexport interface MenuItemProps\n extends Omit<React.LiHTMLAttributes<HTMLLIElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n className?: string;\n children: React.ReactNode;\n active?: boolean;\n href?: string;\n as?: React.ElementType;\n [key: string]: unknown;\n}\n\n/**\n * MenuItem supports `as` prop for custom link components, e.g., react-router-dom Link.\n *\n * @function\n * @param {MenuItemProps} props - Props for the MenuItem component.\n * @returns {JSX.Element} The rendered menu item.\n */\nexport const MenuItem: React.FC<MenuItemProps> = ({\n className,\n children,\n active,\n href,\n as: Component = 'a',\n 'data-testid': testId,\n ...rest\n}) => {\n const { bulmaHelperClasses, rest: bulmaRest } = useBulmaClasses(rest);\n const itemClass = classNames({ 'is-active': active }, bulmaHelperClasses);\n\n // Standard <li> props\n const { style, id, title, role, tabIndex, ...linkProps } = bulmaRest;\n\n // Split children into label and nested MenuList(s)\n const labelChildren: React.ReactNode[] = [];\n const nestedMenuLists: React.ReactNode[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child) && child.type === MenuList) {\n nestedMenuLists.push(child);\n } else {\n labelChildren.push(child);\n }\n });\n\n // href/to should go to the link component\n if (Component === 'a' && href) {\n (linkProps as Record<string, unknown>).href = href;\n }\n if (Object.prototype.hasOwnProperty.call(rest, 'to')) {\n (linkProps as Record<string, unknown>).to = rest.to;\n }\n\n return (\n <li\n className={className}\n data-testid={testId}\n style={style as React.CSSProperties | undefined}\n id={id as string | undefined}\n title={title as string | undefined}\n role={role as React.AriaRole | undefined}\n tabIndex={tabIndex as number | undefined}\n >\n <Component className={itemClass} {...linkProps}>\n {labelChildren}\n </Component>\n {nestedMenuLists}\n </li>\n );\n};\n\n// Attach static subcomponents\nexport const Menu = Object.assign(MenuComponent, {\n Label: MenuLabel,\n List: MenuList,\n Item: MenuItem,\n});\n\nexport default Menu;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Message component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [title] - Title displayed in the message header.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma or 'inherit'/'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the message.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma or 'inherit'/'current').\n * @property {() => void} [onClose] - Called when the close button is clicked.\n * @property {React.ReactNode} [children] - Message body content.\n */\nexport interface MessageProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'title'>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n title?: React.ReactNode;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n onClose?: () => void;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma-styled Message component.\n *\n * Supports Bulma helper classes, color, and an optional close button.\n *\n * @function\n * @param {MessageProps} props - Props for the Message component.\n * @returns {JSX.Element} The rendered message.\n * @see {@link https://bulma.io/documentation/components/message/ | Bulma Message documentation}\n */\nconst MessageComponent: React.FC<MessageProps> = ({\n className,\n title,\n textColor,\n color,\n bgColor,\n onClose,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('message', {\n [`is-${color}`]: color,\n });\n const deleteClass = usePrefixedClassNames('delete');\n\n const messageClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <article className={messageClasses} {...rest} data-testid=\"message\">\n {(title || onClose) && (\n <div className=\"message-header\">\n {title && <span>{title}</span>}\n {onClose && (\n <button\n className={deleteClass}\n aria-label=\"delete\"\n onClick={onClose}\n type=\"button\"\n data-testid=\"message-close\"\n />\n )}\n </div>\n )}\n {children && (\n <div className=\"message-body\" data-testid=\"message-body\">\n {children}\n </div>\n )}\n </article>\n );\n};\n\n// Compound components for flexible composition\nexport interface MessageHeaderProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface MessageBodyProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nconst MessageHeader: React.FC<MessageHeaderProps> = ({\n className,\n children,\n ...props\n}) => (\n <div className={classNames('message-header', className)} {...props}>\n {children}\n </div>\n);\n\nconst MessageBody: React.FC<MessageBodyProps> = ({\n className,\n children,\n ...props\n}) => (\n <div className={classNames('message-body', className)} {...props}>\n {children}\n </div>\n);\n\n// Create a type that extends the Message component with compound components\ntype MessageWithCompounds = typeof MessageComponent & {\n Header: typeof MessageHeader;\n Body: typeof MessageBody;\n};\n\n// Cast Message to the compound type and assign compound components\nconst MessageWithSubComponents = MessageComponent as MessageWithCompounds;\nMessageWithSubComponents.Header = MessageHeader;\nMessageWithSubComponents.Body = MessageBody;\n\n// Export the compound component\nexport { MessageWithSubComponents as Message };\n\nexport default MessageWithSubComponents;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Modal component.\n *\n * @property {boolean} [active] - Whether the modal is open/visible.\n * @property {boolean} [isActive] - Alias for `active`. Whether the modal is open/visible.\n * @property {() => void} [onClose] - Callback invoked when modal close is requested (background click or close button).\n * @property {string} [className] - Additional CSS classes for the modal.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for modal content.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for modal content.\n * @property {React.ReactNode} [modalCardTitle] - Title for modal card variant (legacy API).\n * @property {React.ReactNode} [modalCardFoot] - Footer for modal card variant (legacy API).\n * @property {'card'|'content'} [type] - Modal type ('card' for modal-card, 'content' for modal-content). Legacy API only.\n * @property {React.ReactNode} [children] - Modal body/content or compound components.\n */\nexport interface ModalProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color' | 'title'>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n active?: boolean;\n isActive?: boolean; // Alias for active\n onClose?: () => void;\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n modalCardTitle?: React.ReactNode;\n modalCardFoot?: React.ReactNode;\n type?: 'card' | 'content';\n children?: React.ReactNode;\n}\n\n/**\n * Props for Modal.Background component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalBackgroundProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Content component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card.Head component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardHeadProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card.Title component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardTitleProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card.Body component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardBodyProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card.Foot component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardFootProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Close component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {'small' | 'medium' | 'large'} [size] - Size of the close button (only applies to 'floating' variant).\n * @property {'delete' | 'floating'} [variant] - Button variant. 'delete' (default) for modal card headers, 'floating' for overlay close button.\n */\nexport interface ModalCloseProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n className?: string;\n size?: 'small' | 'medium' | 'large';\n variant?: 'delete' | 'floating';\n}\n\n/**\n * Modal.Background - Renders the modal background overlay.\n *\n * @param {ModalBackgroundProps} props - Component props\n * @returns {JSX.Element} Modal background element\n */\nconst ModalBackground: React.FC<ModalBackgroundProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames('modal-background', className);\n return <div className={classes} {...props} />;\n};\n\n/**\n * Modal.Content - Renders modal content wrapper for custom content.\n *\n * @param {ModalContentProps} props - Component props\n * @returns {JSX.Element} Modal content element\n */\nconst ModalContent: React.FC<ModalContentProps> = ({ className, ...props }) => {\n const classes = classNames('modal-content', className);\n return <div className={classes} {...props} />;\n};\n\n/**\n * Modal.Card.Head - Renders modal card header section.\n *\n * @param {ModalCardHeadProps} props - Component props\n * @returns {JSX.Element} Modal card header element\n */\nconst ModalCardHead: React.FC<ModalCardHeadProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames('modal-card-head', className);\n return <header className={classes} {...props} />;\n};\n\n/**\n * Modal.Card.Title - Renders modal card title.\n *\n * @param {ModalCardTitleProps} props - Component props\n * @returns {JSX.Element} Modal card title element\n */\nconst ModalCardTitle: React.FC<ModalCardTitleProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames('modal-card-title', className);\n return <p className={classes} {...props} />;\n};\n\n/**\n * Modal.Card.Body - Renders modal card body section.\n *\n * @param {ModalCardBodyProps} props - Component props\n * @returns {JSX.Element} Modal card body element\n */\nconst ModalCardBody: React.FC<ModalCardBodyProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames('modal-card-body', className);\n return <section className={classes} {...props} />;\n};\n\n/**\n * Modal.Card.Foot - Renders modal card footer section.\n *\n * @param {ModalCardFootProps} props - Component props\n * @returns {JSX.Element} Modal card footer element\n */\nconst ModalCardFoot: React.FC<ModalCardFootProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames('modal-card-foot', className);\n return <footer className={classes} {...props} />;\n};\n\n/**\n * Modal.Card - Renders modal card wrapper with compound components.\n * Use with Modal.Card.Head, Modal.Card.Title, Modal.Card.Body, and Modal.Card.Foot.\n *\n * @param {ModalCardProps} props - Component props\n * @returns {JSX.Element} Modal card element\n */\nconst ModalCard: React.FC<ModalCardProps> & {\n Head: typeof ModalCardHead;\n Title: typeof ModalCardTitle;\n Body: typeof ModalCardBody;\n Foot: typeof ModalCardFoot;\n} = ({ className, ...props }) => {\n const classes = classNames('modal-card', className);\n return <div className={classes} {...props} />;\n};\n\nModalCard.Head = ModalCardHead;\nModalCard.Title = ModalCardTitle;\nModalCard.Body = ModalCardBody;\nModalCard.Foot = ModalCardFoot;\n\n/**\n * Modal.Close - Renders modal close button with two variant styles.\n *\n * @param {ModalCloseProps} props - Component props\n * @returns {JSX.Element} Close button element\n *\n * @remarks\n * Supports two variants:\n * - 'delete' (default): For use in modal card headers, renders with 'delete' class\n * - 'floating': For floating overlay close button, renders with 'modal-close' class\n *\n * The size prop only applies to the 'floating' variant.\n */\nconst ModalClose: React.FC<ModalCloseProps> = ({\n className,\n size = 'large',\n variant = 'delete',\n ...props\n}) => {\n const classes = classNames(\n variant === 'delete' ? 'delete' : 'modal-close',\n variant === 'floating' && size && `is-${size}`,\n className\n );\n return (\n <button className={classes} aria-label=\"close\" type=\"button\" {...props} />\n );\n};\n\n/**\n * Bulma Modal component, supporting both modal-card and modal-content variants.\n * Supports both legacy props-based API and compound component API.\n *\n * @param {ModalProps} props - Props for the Modal component.\n * @returns {JSX.Element} The rendered modal.\n *\n * @example\n * // Legacy API\n * <Modal active={isOpen} onClose={handleClose} modalCardTitle=\"Title\">\n * Content\n * </Modal>\n *\n * @example\n * // Compound Component API\n * <Modal isActive={isOpen}>\n * <Modal.Background onClick={handleClose} />\n * <Modal.Card>\n * <Modal.Card.Head>\n * <Modal.Card.Title>Title</Modal.Card.Title>\n * <Modal.Close onClick={handleClose} />\n * </Modal.Card.Head>\n * <Modal.Card.Body>Content</Modal.Card.Body>\n * </Modal.Card>\n * </Modal>\n *\n * @see {@link https://bulma.io/documentation/components/modal/ | Bulma Modal documentation}\n */\nconst ModalRoot: React.FC<ModalProps> & {\n Background: typeof ModalBackground;\n Content: typeof ModalContent;\n Card: typeof ModalCard;\n Close: typeof ModalClose;\n} = ({\n active,\n isActive,\n onClose,\n className,\n textColor,\n bgColor,\n modalCardTitle,\n modalCardFoot,\n type,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Support both active and isActive props\n const isModalActive = active ?? isActive ?? false;\n\n // Check if children contain compound components\n const hasCompoundComponents = React.Children.toArray(children).some(\n child =>\n React.isValidElement(child) &&\n (child.type === ModalBackground ||\n child.type === ModalContent ||\n child.type === ModalCard ||\n child.type === ModalClose)\n );\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('modal', {\n 'is-active': isModalActive,\n });\n const deleteClass = usePrefixedClassNames('delete');\n\n const modalClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n // If using compound components, render children as-is\n if (hasCompoundComponents) {\n return (\n <div className={modalClasses} {...rest} data-testid=\"modal\">\n {children}\n </div>\n );\n }\n\n // Legacy API: EXPLICIT type wins; fallback to auto detection if not provided\n let isModalCard: boolean;\n if (type === 'card') isModalCard = true;\n else if (type === 'content') isModalCard = false;\n else isModalCard = !!modalCardTitle || !!modalCardFoot;\n\n return (\n <div className={modalClasses} {...rest} data-testid=\"modal\">\n <div\n className=\"modal-background\"\n onClick={onClose}\n data-testid=\"modal-background\"\n />\n {isModalCard ? (\n <div className=\"modal-card\">\n {modalCardTitle && (\n <header className=\"modal-card-head\">\n <p className=\"modal-card-title\">{modalCardTitle}</p>\n {onClose && (\n <button\n className={deleteClass}\n aria-label=\"close\"\n onClick={onClose}\n type=\"button\"\n data-testid=\"modal-close\"\n />\n )}\n </header>\n )}\n <section className=\"modal-card-body\" data-testid=\"modal-body\">\n {children}\n </section>\n {modalCardFoot && (\n <footer className=\"modal-card-foot\">{modalCardFoot}</footer>\n )}\n </div>\n ) : (\n <div className=\"modal-content\" data-testid=\"modal-content\">\n {children}\n </div>\n )}\n {/* Show floating close button for modal-content, or for modal-card when no header */}\n {(!isModalCard || (!modalCardTitle && onClose)) && onClose && (\n <button\n className=\"modal-close is-large\"\n aria-label=\"close\"\n onClick={onClose}\n type=\"button\"\n data-testid=\"modal-close-float\"\n />\n )}\n </div>\n );\n};\n\nModalRoot.Background = ModalBackground;\nModalRoot.Content = ModalContent;\nModalRoot.Card = ModalCard;\nModalRoot.Close = ModalClose;\n\nexport const Modal = ModalRoot;\nexport default Modal;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Navbar component.\n *\n * @property {string} [className] - Additional CSS classes for the navbar.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Color for text.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the navbar.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the navbar.\n * @property {boolean} [transparent] - Whether the navbar is transparent.\n * @property {'top'|'bottom'} [fixed] - Whether the navbar is fixed to the top or bottom.\n * @property {React.ReactNode} [children] - Navbar content.\n */\nexport interface NavbarProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n transparent?: boolean;\n fixed?: 'top' | 'bottom';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar component, supports subcomponents for structured navigation.\n *\n * @function\n * @param {NavbarProps} props - Props for the Navbar component.\n * @returns {JSX.Element} The rendered navbar.\n * @see {@link https://bulma.io/documentation/components/navbar/ | Bulma Navbar documentation}\n */\nexport const Navbar: React.FC<NavbarProps> & {\n Brand: typeof NavbarBrand;\n Item: typeof NavbarItem;\n Burger: typeof NavbarBurger;\n Menu: typeof NavbarMenu;\n Start: typeof NavbarStart;\n End: typeof NavbarEnd;\n Dropdown: typeof NavbarDropdown;\n DropdownMenu: typeof NavbarDropdownMenu;\n Divider: typeof NavbarDivider;\n} = ({\n className,\n textColor,\n bgColor,\n color,\n transparent,\n fixed,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('navbar', {\n [`is-${color}`]: color,\n 'is-transparent': transparent,\n [`is-fixed-${fixed}`]: fixed,\n });\n\n const navbarClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <nav\n className={navbarClasses}\n role=\"navigation\"\n aria-label=\"main navigation\"\n {...rest}\n >\n {children}\n </nav>\n );\n};\n\n/**\n * Props for the NavbarBrand component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the brand.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the brand.\n * @property {React.ReactNode} [children] - Brand content.\n */\nexport interface NavbarBrandProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar brand area (usually left side).\n *\n * @function\n * @param {NavbarBrandProps} props - Props for the NavbarBrand component.\n * @returns {JSX.Element} The rendered brand area.\n */\nexport const NavbarBrand: React.FC<NavbarBrandProps> = ({\n className,\n children,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n ...props,\n });\n\n return (\n <div\n className={classNames('navbar-brand', bulmaHelperClasses, className)}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\n/**\n * Props for the NavbarItem component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ElementType} [as] - Render as a custom component.\n * @property {boolean} [active] - Whether the item is active.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the item.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the item.\n * @property {React.ReactNode} [children] - Navbar item content.\n */\nexport interface NavbarItemProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n as?: React.ElementType;\n active?: boolean;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar item (link, button, etc).\n *\n * @function\n * @param {NavbarItemProps} props - Props for the NavbarItem component.\n * @returns {JSX.Element} The rendered item.\n */\nexport const NavbarItem: React.FC<NavbarItemProps> = ({\n className,\n as: Component = 'a',\n active,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n return (\n <Component\n className={classNames('navbar-item', bulmaHelperClasses, className, {\n 'is-active': active,\n })}\n {...rest}\n >\n {children}\n </Component>\n );\n};\n\n/**\n * Props for the NavbarBurger component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the burger.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the burger.\n * @property {boolean} [active] - Whether the burger is active.\n * @property {React.ReactNode} [children] - Custom content inside the burger.\n * @property {string} ['aria-label'] - Aria label for accessibility.\n * @property {boolean} ['aria-expanded'] - Aria expanded state.\n * @property {React.MouseEventHandler<HTMLButtonElement>} [onClick] - Click handler.\n */\nexport interface NavbarBurgerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n active?: boolean;\n children?: React.ReactNode;\n 'aria-label'?: string;\n 'aria-expanded'?: boolean;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\n/**\n * Bulma Navbar burger (responsive menu toggle).\n *\n * @function\n * @param {NavbarBurgerProps} props - Props for the NavbarBurger component.\n * @returns {JSX.Element} The rendered burger.\n */\nexport const NavbarBurger: React.FC<NavbarBurgerProps> = ({\n className,\n active,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n return (\n <button\n type=\"button\"\n className={classNames('navbar-burger', bulmaHelperClasses, className, {\n 'is-active': active,\n })}\n aria-label={props['aria-label'] || 'menu'}\n aria-expanded={props['aria-expanded'] ?? !!active}\n {...rest}\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n {children}\n </button>\n );\n};\n\n/**\n * Props for the NavbarMenu component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the menu.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the menu.\n * @property {boolean} [active] - Whether the menu is active.\n * @property {React.ReactNode} [children] - Menu content.\n */\nexport interface NavbarMenuProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n active?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar menu area (collapsible content).\n *\n * @function\n * @param {NavbarMenuProps} props - Props for the NavbarMenu component.\n * @returns {JSX.Element} The rendered menu.\n */\nexport const NavbarMenu: React.FC<NavbarMenuProps> = ({\n className,\n active,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n return (\n <div\n className={classNames('navbar-menu', bulmaHelperClasses, className, {\n 'is-active': active,\n })}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\n/**\n * Props for the NavbarStartEnd component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface NavbarStartEndProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar start area (left-aligned).\n *\n * @function\n * @param {NavbarStartEndProps} props - Props for the NavbarStart component.\n * @returns {JSX.Element} The rendered start area.\n */\nexport const NavbarStart: React.FC<NavbarStartEndProps> = ({\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n return (\n <div\n className={classNames('navbar-start', bulmaHelperClasses, className)}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\n/**\n * Bulma Navbar end area (right-aligned).\n *\n * @function\n * @param {NavbarStartEndProps} props - Props for the NavbarEnd component.\n * @returns {JSX.Element} The rendered end area.\n */\nexport const NavbarEnd: React.FC<NavbarStartEndProps> = ({\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n return (\n <div\n className={classNames('navbar-end', bulmaHelperClasses, className)}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\n/**\n * Props for the NavbarDropdown component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [right] - Dropdown aligned right.\n * @property {boolean} [up] - Dropdown opens upwards.\n * @property {boolean} [hoverable] - Dropdown opens on hover.\n * @property {boolean} [active] - Dropdown is open.\n * @property {React.ReactNode} [children] - Dropdown content.\n */\nexport interface NavbarDropdownProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n right?: boolean;\n up?: boolean;\n hoverable?: boolean;\n active?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar dropdown (for nested dropdown menus).\n *\n * @function\n * @param {NavbarDropdownProps} props - Props for the NavbarDropdown component.\n * @returns {JSX.Element} The rendered dropdown.\n */\nexport const NavbarDropdown: React.FC<NavbarDropdownProps> = ({\n className,\n right,\n up,\n hoverable,\n active,\n children,\n ...props\n}) => (\n <div\n className={classNames(\n 'navbar-item',\n 'has-dropdown',\n {\n 'is-right': right,\n 'is-up': up,\n 'is-hoverable': hoverable,\n 'is-active': active,\n },\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\n/**\n * Props for the NavbarDropdownMenu component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [right] - Dropdown aligned right.\n * @property {boolean} [up] - Dropdown opens upwards.\n * @property {React.ReactNode} [children] - Dropdown menu content.\n */\nexport interface NavbarDropdownMenuProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n right?: boolean;\n up?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar dropdown menu container.\n *\n * @function\n * @param {NavbarDropdownMenuProps} props - Props for the NavbarDropdownMenu component.\n * @returns {JSX.Element} The rendered dropdown menu.\n */\nexport const NavbarDropdownMenu: React.FC<NavbarDropdownMenuProps> = ({\n className,\n right,\n up,\n children,\n ...props\n}) => (\n <div\n className={classNames(\n 'navbar-dropdown',\n {\n 'is-right': right,\n 'is-up': up,\n },\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\n/**\n * Bulma Navbar divider.\n *\n * @param props - Standard hr props.\n * @returns {JSX.Element} The rendered divider.\n */\nexport const NavbarDivider: React.FC<\n React.HTMLAttributes<HTMLHRElement>\n> = props => <hr className=\"navbar-divider\" {...props} />;\n\n// Attach subcomponents\nNavbar.Brand = NavbarBrand;\nNavbar.Item = NavbarItem;\nNavbar.Burger = NavbarBurger;\nNavbar.Menu = NavbarMenu;\nNavbar.Start = NavbarStart;\nNavbar.End = NavbarEnd;\nNavbar.Dropdown = NavbarDropdown;\nNavbar.DropdownMenu = NavbarDropdownMenu;\nNavbar.Divider = NavbarDivider;\n\nexport default Navbar;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Pagination component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color for the pagination.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the pagination.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the pagination.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the pagination.\n * @property {'centered'|'right'} [align] - Alignment for the pagination.\n * @property {boolean} [rounded] - Renders pagination with rounded corners.\n * @property {number} [total] - Total number of pages.\n * @property {number} [current] - Current page.\n * @property {(page: number) => void} [onPageChange] - Page change callback.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Custom pagination content.\n */\nexport interface PaginationProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n size?: 'small' | 'medium' | 'large';\n align?: 'centered' | 'right';\n rounded?: boolean;\n total?: number;\n current?: number;\n onPageChange?: (page: number) => void;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for PaginationPrevious and PaginationNext components.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [disabled] - Whether previous/next is disabled.\n * @property {React.ReactNode} [children] - Button content.\n */\nexport interface PaginationPreviousNextProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n className?: string;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Pagination previous button.\n */\nexport const PaginationPrevious: React.FC<PaginationPreviousNextProps> = ({\n className,\n disabled,\n children,\n ...props\n}) => (\n <a\n className={classNames('pagination-previous', className, {\n 'is-disabled': disabled,\n })}\n aria-disabled={disabled}\n tabIndex={disabled ? -1 : 0}\n {...props}\n onClick={\n disabled\n ? e => {\n e.preventDefault();\n e.stopPropagation();\n }\n : props.onClick\n }\n >\n {children}\n </a>\n);\n\n/**\n * Bulma Pagination next button.\n */\nexport const PaginationNext: React.FC<PaginationPreviousNextProps> = ({\n className,\n disabled,\n children,\n ...props\n}) => (\n <a\n className={classNames('pagination-next', className, {\n 'is-disabled': disabled,\n })}\n aria-disabled={disabled}\n tabIndex={disabled ? -1 : 0}\n {...props}\n onClick={\n disabled\n ? e => {\n e.preventDefault();\n e.stopPropagation();\n }\n : props.onClick\n }\n >\n {children}\n </a>\n);\n\n/**\n * Bulma Pagination navigation component.\n *\n * @function\n * @param {PaginationProps} props - Props for the Pagination component.\n * @returns {JSX.Element} The rendered pagination.\n * @see {@link https://bulma.io/documentation/components/pagination/ | Bulma Pagination documentation}\n */\nexport const Pagination: React.FC<PaginationProps> & {\n Link: typeof PaginationLink;\n List: typeof PaginationList;\n Ellipsis: typeof PaginationEllipsis;\n Previous: typeof PaginationPrevious;\n Next: typeof PaginationNext;\n} = ({\n color,\n textColor,\n bgColor,\n size,\n align,\n rounded,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('pagination', {\n [`is-${color}`]: color,\n [`is-${size}`]: size,\n [`is-${align}`]: align,\n 'is-rounded': rounded,\n });\n\n const paginationClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <nav\n className={paginationClasses}\n role=\"navigation\"\n aria-label=\"pagination\"\n {...rest}\n >\n {children}\n </nav>\n );\n};\n\n/**\n * Props for the PaginationList component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the list.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the list.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the list.\n * @property {React.ReactNode} [children] - List items.\n */\nexport interface PaginationListProps\n extends React.HTMLAttributes<HTMLUListElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Pagination list container.\n */\nexport const PaginationList: React.FC<PaginationListProps> = ({\n className,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n return (\n <ul\n className={classNames('pagination-list', bulmaHelperClasses, className)}\n {...rest}\n >\n {children}\n </ul>\n );\n};\n\n/**\n * Props for the PaginationLink component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {boolean} [active] - Whether the link is for the current page.\n * @property {boolean} [disabled] - Whether the link is disabled.\n * @property {React.ReactNode} [children] - Link content.\n */\nexport interface PaginationLinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n active?: boolean;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Pagination link (page number).\n */\nexport const PaginationLink: React.FC<PaginationLinkProps> = ({\n className,\n textColor,\n bgColor,\n active,\n disabled,\n onClick,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n if (disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (onClick) {\n onClick(e);\n }\n };\n\n return (\n <li>\n <a\n className={classNames(\n 'pagination-link',\n bulmaHelperClasses,\n className,\n {\n 'is-current': active,\n 'is-disabled': disabled,\n }\n )}\n aria-current={active ? 'page' : undefined}\n aria-disabled={disabled}\n tabIndex={disabled ? -1 : 0}\n onClick={handleClick}\n {...rest}\n >\n {children}\n </a>\n </li>\n );\n};\n\n/**\n * Bulma Pagination ellipsis element.\n *\n * @param props - Standard li props.\n * @returns {JSX.Element} The rendered ellipsis.\n */\nexport const PaginationEllipsis: React.FC<\n React.LiHTMLAttributes<HTMLLIElement>\n> = props => (\n <li>\n <span className=\"pagination-ellipsis\" {...props}>\n …\n </span>\n </li>\n);\n\nPagination.Link = PaginationLink;\nPagination.List = PaginationList;\nPagination.Ellipsis = PaginationEllipsis;\nPagination.Previous = PaginationPrevious;\nPagination.Next = PaginationNext;\n\nexport default Pagination;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Panel component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the panel.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Panel content.\n */\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelHeading component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Heading content.\n */\nexport interface PanelHeadingProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelTabs component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Tabs content.\n */\nexport interface PanelTabsProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelBlock component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [active] - Whether the block is active.\n * @property {React.ReactNode} [children] - Block content.\n */\nexport interface PanelBlockProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n className?: string;\n active?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelIcon component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Icon content.\n */\nexport interface PanelIconProps extends React.HTMLAttributes<HTMLSpanElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelInputBlock component.\n *\n * @property {string} [value] - Input value.\n * @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] - Input change handler.\n * @property {string} [placeholder] - Input placeholder.\n * @property {string} [iconClassName] - Icon class for left icon (default 'fas fa-search').\n */\nexport interface PanelInputBlockProps\n extends React.HTMLAttributes<HTMLDivElement> {\n value?: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n placeholder?: string;\n iconClassName?: string;\n}\n\n/**\n * Props for the PanelCheckboxBlock component.\n *\n * @property {boolean} [checked] - Whether the checkbox is checked.\n * @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] - Checkbox change handler.\n * @property {React.ReactNode} [children] - Label/content.\n */\nexport interface PanelCheckboxBlockProps\n extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'onChange'> {\n checked?: boolean;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelButtonBlock component.\n *\n * @property {React.ReactNode} [children] - Button content.\n */\nexport interface PanelButtonBlockProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Panel component, supports various panel subcomponents.\n *\n * @function\n * @param {PanelProps} props - Props for the Panel component.\n * @returns {JSX.Element} The rendered panel.\n * @see {@link https://bulma.io/documentation/components/panel/ | Bulma Panel documentation}\n */\nexport const Panel: React.FC<PanelProps> & {\n Heading: typeof PanelHeading;\n Tabs: typeof PanelTabs;\n Block: typeof PanelBlock;\n Icon: typeof PanelIcon;\n InputBlock: typeof PanelInputBlock;\n CheckboxBlock: typeof PanelCheckboxBlock;\n ButtonBlock: typeof PanelButtonBlock;\n} = ({ color, className, children, ...props }) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('panel', {\n [`is-${color}`]: color,\n });\n\n const panelClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <nav className={panelClasses} {...rest}>\n {children}\n </nav>\n );\n};\n\n/**\n * Bulma Panel heading.\n */\nexport const PanelHeading: React.FC<PanelHeadingProps> = ({\n className,\n children,\n ...props\n}) => (\n <p className={classNames('panel-heading', className)} {...props}>\n {children}\n </p>\n);\n\n/**\n * Bulma Panel tabs.\n */\nexport const PanelTabs: React.FC<PanelTabsProps> = ({\n className,\n children,\n ...props\n}) => (\n <p className={classNames('panel-tabs', className)} {...props}>\n {children}\n </p>\n);\n\n/**\n * Bulma Panel block.\n */\nexport const PanelBlock: React.FC<PanelBlockProps> = ({\n className,\n active,\n children,\n ...props\n}) => (\n <a\n className={classNames('panel-block', className, { 'is-active': active })}\n {...props}\n >\n {children}\n </a>\n);\n\n/**\n * Bulma Panel icon.\n */\nexport const PanelIcon: React.FC<PanelIconProps> = ({\n className,\n children,\n ...props\n}) => (\n <span className={classNames('panel-icon', className)} {...props}>\n {children}\n </span>\n);\n\n/**\n * Bulma Panel input block.\n */\nexport const PanelInputBlock: React.FC<PanelInputBlockProps> = ({\n value,\n onChange,\n placeholder,\n iconClassName = 'fas fa-search',\n ...props\n}) => {\n const inputClass = usePrefixedClassNames('input');\n\n return (\n <div className=\"panel-block\" {...props}>\n <p className=\"control has-icons-left\">\n <input\n className={inputClass}\n type=\"text\"\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n />\n <span className=\"icon is-left\">\n <i className={iconClassName} aria-hidden=\"true\"></i>\n </span>\n </p>\n </div>\n );\n};\n\n/**\n * Bulma Panel checkbox block.\n */\nexport const PanelCheckboxBlock: React.FC<PanelCheckboxBlockProps> = ({\n checked,\n onChange,\n children,\n ...props\n}) => (\n <label className=\"panel-block\" {...props}>\n <input type=\"checkbox\" checked={checked} onChange={onChange} />\n {children}\n </label>\n);\n\n/**\n * Bulma Panel button block.\n */\nexport const PanelButtonBlock: React.FC<PanelButtonBlockProps> = ({\n children,\n className,\n ...props\n}) => (\n <div className=\"panel-block\">\n <button\n className={classNames(\n 'button is-link is-outlined is-fullwidth',\n className\n )}\n {...props}\n >\n {children}\n </button>\n </div>\n);\n\nPanel.Heading = PanelHeading;\nPanel.Tabs = PanelTabs;\nPanel.Block = PanelBlock;\nPanel.Icon = PanelIcon;\nPanel.InputBlock = PanelInputBlock;\nPanel.CheckboxBlock = PanelCheckboxBlock;\nPanel.ButtonBlock = PanelButtonBlock;\n\nexport default Panel;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Tabs component.\n *\n * @property {'centered'|'right'|'left'} [align] - Tab alignment.\n * @property {'small'|'medium'|'large'} [size] - Tab size.\n * @property {boolean} [fullwidth] - Tabs are fullwidth.\n * @property {boolean} [boxed] - Tabs are boxed style.\n * @property {boolean} [toggle] - Tabs are toggle style.\n * @property {boolean} [rounded] - Tabs are rounded (if toggle).\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color for the tabs.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Tab content.\n */\nexport interface TabsProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n align?: 'centered' | 'right' | 'left';\n size?: 'small' | 'medium' | 'large';\n fullwidth?: boolean;\n boxed?: boolean;\n toggle?: boolean;\n rounded?: boolean;\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the TabList component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Tab list items.\n */\nexport interface TabListProps extends React.HTMLAttributes<HTMLUListElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the TabItem component.\n *\n * @property {boolean} [active] - Whether the tab is active.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Tab content.\n * @property {React.MouseEventHandler<HTMLLIElement>} [onClick] - Click handler.\n */\nexport interface TabItemProps extends React.LiHTMLAttributes<HTMLLIElement> {\n active?: boolean;\n className?: string;\n children?: React.ReactNode;\n onClick?: React.MouseEventHandler<HTMLLIElement>;\n}\n\n/**\n * Bulma Tabs component with subcomponents for tab lists and items.\n *\n * @function\n * @param {TabsProps} props - Props for the Tabs component.\n * @returns {JSX.Element} The rendered tabs.\n * @see {@link https://bulma.io/documentation/components/tabs/ | Bulma Tabs documentation}\n */\nexport const Tabs: React.FC<TabsProps> & {\n List: typeof TabList;\n Item: typeof TabItem;\n} = ({\n align,\n size,\n fullwidth,\n boxed,\n toggle,\n rounded,\n color,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('tabs', {\n [`is-${align}`]: align,\n [`is-${size}`]: size,\n [`is-${color}`]: color,\n 'is-fullwidth': fullwidth,\n 'is-boxed': boxed,\n 'is-toggle': toggle,\n 'is-toggle-rounded': rounded,\n });\n\n const tabsClass = classNames(bulmaClasses, bulmaHelperClasses, className);\n return (\n <div className={tabsClass} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Bulma Tab list container.\n *\n * @function\n * @param {TabListProps} props - Props for the TabList component.\n * @returns {JSX.Element} The rendered tab list.\n */\nexport const TabList: React.FC<TabListProps> = ({\n className,\n children,\n ...props\n}) => (\n <ul className={classNames(className)} {...props}>\n {children}\n </ul>\n);\n\n/**\n * Bulma Tab item.\n *\n * @function\n * @param {TabItemProps} props - Props for the TabItem component.\n * @returns {JSX.Element} The rendered tab item.\n */\nexport const TabItem: React.FC<TabItemProps> = ({\n active,\n className,\n children,\n onClick,\n ...props\n}) => (\n <li\n className={classNames({ 'is-active': active }, className)}\n onClick={onClick}\n {...props}\n >\n {children}\n </li>\n);\n\nTabs.List = TabList;\nTabs.Item = TabItem;\n\nexport default Tabs;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Block component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the block.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {React.ReactNode} [children] - Content to be rendered inside the block.\n */\nexport interface BlockProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Block component for rendering a styled Bulma block element.\n *\n * A block is a simple utility element that adds spacing (margin-bottom) between elements.\n * Supports Bulma helper classes for additional styling like text color, background color, and layout.\n *\n * @function\n * @param {BlockProps} props - Props for the Block component.\n * @returns {JSX.Element} The rendered block element.\n * @see {@link https://bulma.io/documentation/elements/block/ | Bulma Block documentation}\n */\nexport const Block: React.FC<BlockProps> = ({\n className,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('block');\n const blockClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <div className={blockClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Box component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the box.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {boolean} [hasShadow=true] - Whether the box has a shadow (default: true).\n * @property {React.ReactNode} [children] - Content to be rendered inside the box.\n */\nexport interface BoxProps\n /** @ignore */\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n hasShadow?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Box component for rendering a styled Bulma box element.\n *\n * Supports Bulma helper classes for styling and layout, with optional shadow control.\n *\n * @function\n * @param {BoxProps} props - Props for the Box component.\n * @returns {JSX.Element} The rendered box element.\n * @see {@link https://bulma.io/documentation/elements/box/ | Bulma Box documentation}\n */\nexport const Box: React.FC<BoxProps> = ({\n className,\n textColor,\n bgColor,\n hasShadow = true,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('box', {\n 'is-shadowless': !hasShadow,\n });\n\n const boxClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <div className={boxClasses} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Box;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Button component.\n *\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the button.\n * @property {'small' | 'normal' | 'medium' | 'large'} [size] - Button size.\n * @property {boolean} [isLight] - Use the light version of the color.\n * @property {boolean} [isRounded] - Button is fully rounded.\n * @property {boolean} [isLoading] - Button shows a loading spinner.\n * @property {boolean} [isStatic] - Button is static and non-interactive.\n * @property {boolean} [isFullWidth] - Button takes the full width of parent.\n * @property {boolean} [isOutlined] - Use outlined button style.\n * @property {boolean} [isInverted] - Use inverted color style.\n * @property {boolean} [isFocused] - Button is styled as focused.\n * @property {boolean} [isActive] - Button is styled as active.\n * @property {boolean} [isHovered] - Button is styled as hovered.\n * @property {boolean} [isDisabled] - Button is disabled.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {'a' | 'button'} [as] - Render as an anchor or button element.\n * @property {string} [href] - Specifies the URL for anchor buttons.\n * @property {React.MouseEventHandler<HTMLButtonElement> | React.MouseEventHandler<HTMLAnchorElement>} [onClick] - Click handler for the button or anchor.\n * @property {string} [target] - Target for anchor element.\n * @property {string} [rel] - Rel attribute for anchor element.\n * @property {React.ReactNode} [children] - Content to be rendered inside the button.\n */\nexport interface ButtonProps\n extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'color' | 'onClick'\n >,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n size?: 'small' | 'normal' | 'medium' | 'large';\n isLight?: boolean;\n isRounded?: boolean;\n isLoading?: boolean;\n isStatic?: boolean;\n isFullWidth?: boolean;\n isOutlined?: boolean;\n isInverted?: boolean;\n isFocused?: boolean;\n isActive?: boolean;\n isHovered?: boolean;\n isDisabled?: boolean;\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n as?: 'a' | 'button';\n href?: string;\n onClick?:\n | React.MouseEventHandler<HTMLButtonElement>\n | React.MouseEventHandler<HTMLAnchorElement>;\n target?: string;\n rel?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Button component for rendering a Bulma-styled button or anchor.\n *\n * Supports Bulma helper classes for colors, sizes, and various button states and modifiers.\n *\n * @function\n * @param {ButtonProps} props - Props for the Button component.\n * @returns {JSX.Element} The rendered button or anchor element.\n * @see {@link https://bulma.io/documentation/elements/button/ | Bulma Button documentation}\n */\nexport const Button: React.FC<ButtonProps> = ({\n color,\n size,\n isLight,\n isRounded,\n isLoading,\n isStatic,\n isFullWidth,\n isOutlined,\n isInverted,\n isFocused,\n isActive,\n isHovered,\n isDisabled,\n className,\n children,\n textColor,\n bgColor,\n as = 'button',\n href,\n onClick,\n target,\n rel,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('button', {\n [`is-${color}`]: color && validColors.includes(color),\n [`is-${size}`]: size,\n 'is-outlined': isOutlined,\n 'is-light': isLight,\n 'is-loading': isLoading,\n 'is-static': isStatic,\n 'is-disabled': isDisabled,\n 'is-rounded': isRounded,\n 'is-hovered': isHovered,\n 'is-focused': isFocused,\n 'is-active': isActive,\n 'is-inverted': isInverted,\n 'is-fullwidth': isFullWidth,\n });\n\n // Combine prefixed Bulma classes with unprefixed user className and prefixed helper classes\n const buttonClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n if (as === 'a') {\n // Create anchor-specific props by excluding button-specific ones\n const {\n type: _type,\n disabled: _disabled,\n form: _form,\n formAction: _formAction,\n formEncType: _formEncType,\n formMethod: _formMethod,\n formNoValidate: _formNoValidate,\n formTarget: _formTarget,\n name: _name,\n value: _value,\n autoFocus: _autoFocus,\n ...anchorRest\n } = rest as React.ButtonHTMLAttributes<HTMLButtonElement>;\n\n return (\n <a\n className={buttonClasses}\n href={href}\n target={target}\n rel={rel}\n aria-disabled={isDisabled}\n tabIndex={isDisabled ? -1 : undefined}\n onClick={\n isDisabled\n ? (e: React.MouseEvent<HTMLAnchorElement>) => e.preventDefault()\n : (onClick as\n | React.MouseEventHandler<HTMLAnchorElement>\n | undefined)\n }\n {...(anchorRest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n </a>\n );\n }\n\n return (\n <button\n className={buttonClasses}\n disabled={isDisabled}\n onClick={\n onClick as React.MouseEventHandler<HTMLButtonElement> | undefined\n }\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nexport default Button;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Buttons component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the buttons group.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {boolean} [isCentered] - Center the group of buttons.\n * @property {boolean} [isRight] - Align the group of buttons to the right.\n * @property {boolean} [hasAddons] - Group buttons together as addons.\n * @property {React.ReactNode} children - The button elements to render inside the group.\n */\ninterface ButtonsProps\n extends React.HTMLAttributes<HTMLDivElement>,\n BulmaClassesProps {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n isCentered?: boolean;\n isRight?: boolean;\n hasAddons?: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Buttons component for rendering a group of Bulma-styled buttons.\n *\n * Supports Bulma helper classes for styling, color, and layout, including centering, right alignment, and grouping as addons.\n *\n * @function\n * @param {ButtonsProps} props - Props for the Buttons component.\n * @returns {JSX.Element} The rendered group of buttons.\n * @see {@link https://bulma.io/documentation/elements/button/#group | Bulma Button Group documentation}\n */\nexport const Buttons: React.FC<ButtonsProps> = ({\n className,\n textColor,\n bgColor,\n isCentered,\n isRight,\n hasAddons,\n children,\n ...props\n}) => {\n const buttonsClasses = usePrefixedClassNames('buttons', {\n 'is-centered': isCentered,\n 'is-right': isRight,\n 'has-addons': hasAddons,\n });\n\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const combinedClasses = classNames(\n buttonsClasses,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={combinedClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Content component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the content.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {'small' | 'normal' | 'medium' | 'large'} [size] - Size modifier for the content.\n * @property {React.ReactNode} [children] - Content to be rendered inside the block.\n */\ninterface ContentProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n size?: 'small' | 'normal' | 'medium' | 'large';\n children?: React.ReactNode;\n}\n\n// Valid size modifiers for the content class\nconst validSizes = ['small', 'medium', 'large'] as const;\n\n/**\n * Content component for rendering a styled Bulma content block.\n *\n * Applies typographic styles to HTML content (e.g., paragraphs, headings, lists) with Bulma's content class.\n * Supports size modifiers and Bulma helper classes for additional styling.\n *\n * @function\n * @param {ContentProps} props - Props for the Content component.\n * @returns {JSX.Element} The rendered content block.\n * @see {@link https://bulma.io/documentation/elements/content/ | Bulma Content documentation}\n */\nexport const Content: React.FC<ContentProps> = ({\n className,\n textColor,\n bgColor,\n size,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('content', {\n [`is-${size}`]: size && size !== 'normal' && validSizes.includes(size),\n });\n\n const contentClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <div className={contentClasses} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Content;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Delete component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the delete button.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {(event: React.MouseEvent<HTMLButtonElement>) => void} [onClick] - Click handler for the button.\n * @property {'small' | 'medium' | 'large'} [size] - Size modifier for the delete button.\n * @property {string} [ariaLabel='Close'] - ARIA label for accessibility (default: 'Close').\n * @property {boolean} [disabled=false] - Whether the button is disabled (default: false).\n */\ninterface DeleteProps\n extends React.HTMLAttributes<HTMLButtonElement>,\n BulmaClassesProps {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n size?: 'small' | 'medium' | 'large';\n ariaLabel?: string;\n disabled?: boolean;\n}\n\n/**\n * Delete component for rendering a Bulma-styled delete/close button.\n *\n * Supports Bulma helper classes for styling, color, and size, and includes accessibility and disabled state.\n *\n * @function\n * @param {DeleteProps} props - Props for the Delete component.\n * @returns {JSX.Element} The rendered delete button.\n * @see {@link https://bulma.io/documentation/elements/delete/ | Bulma Delete documentation}\n */\nexport const Delete: React.FC<DeleteProps> = ({\n className,\n textColor,\n bgColor,\n onClick,\n size,\n ariaLabel = 'Close',\n disabled = false,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('delete', {\n [`is-${size}`]: size,\n 'is-disabled': disabled,\n });\n\n const classes = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <button\n className={classes}\n onClick={onClick}\n aria-label={ariaLabel}\n disabled={disabled}\n type=\"button\"\n {...rest}\n />\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { useIconLibrary } from '../helpers/Config';\n\n// TypeScript declaration for Ionicons web component\ninterface IonIconProps extends React.HTMLAttributes<HTMLElement> {\n name?: string;\n src?: string;\n icon?: unknown;\n size?: string;\n lazy?: boolean;\n sanitize?: boolean;\n color?: string;\n flipRtl?: boolean;\n ariaLabel?: string;\n ariaHidden?: string;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n 'ion-icon': IonIconProps;\n }\n }\n}\n\ntype IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols'; // 'fa' = Font Awesome, 'mdi' = Material Design Icons, 'ion' = Ionicons Web Components, 'material-icons' = Google Material Icons, 'material-symbols' = Google Material Symbols\n\n/**\n * Props for the Icon component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the icon.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {string} name - The icon name (without library prefix).\n * @property {IconLibrary} [library] - The icon library to use ('fa' = Font Awesome, 'mdi' = Material Design Icons, 'ion' = Ionicons Web Components, 'material-icons' = Google Material Icons, 'material-symbols' = Google Material Symbols). Defaults to the value set in ConfigProvider or 'fa' if not configured.\n * @property {string} [variant] - Icon style variant. For Font Awesome: 'solid', 'regular', 'brands', etc. For Material Icons: 'filled', 'outlined', 'round', 'sharp'. For Material Symbols: 'outlined', 'rounded', 'sharp'. For Ionicons: 'outline', 'sharp'.\n * @property {string | string[]} [features] - Additional library-specific modifiers. For Font Awesome: 'fa-lg', 'fa-spin', etc. For others: size classes like 'is-size-1', etc.\n * @property {string | string[]} [libraryFeatures] - DEPRECATED: Use 'variant' and 'features' instead. Additional library-specific classes.\n * @property {'small' | 'medium' | 'large'} [size] - Size modifier for the icon.\n * @property {string} [ariaLabel='icon'] - ARIA label for accessibility (default: 'icon').\n * @property {object} [style] - Inline style object.\n */\nexport interface IconProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n BulmaClassesProps {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n name: string; // e.g., 'star', 'account', 'home-outline'\n icon?: string; // DEPRECATED: legacy prop that should not be used\n library?: IconLibrary; // defaults to ConfigProvider iconLibrary or 'fa'\n variant?: string; // e.g., 'solid', 'outlined', 'rounded', 'sharp'\n features?: string | string[]; // e.g., 'fa-lg', 'fa-spin', 'is-size-1'\n libraryFeatures?: string | string[]; // DEPRECATED: backward compatibility\n size?: 'small' | 'medium' | 'large';\n ariaLabel?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * Gets the correct classes for the icon element based on the library and features.\n *\n * @param {IconLibrary} library - The icon library.\n * @param {string} name - The icon name.\n * @param {string} [variant] - Icon style variant (e.g., 'solid', 'outlined', 'rounded').\n * @param {string | string[]} [features] - Additional library-specific modifiers.\n * @returns {string} The combined class string for the icon.\n */\nfunction getIconClasses(\n library: IconLibrary,\n name: string,\n variant?: string,\n features?: string | string[]\n): string {\n let baseClass = '';\n let iconClass = '';\n let featureList = Array.isArray(features)\n ? features\n : features\n ? [features]\n : [];\n\n switch (library) {\n case 'fa': {\n // Font Awesome: use variant as style ('solid' -> 'fas', 'regular' -> 'far', etc.)\n const styleMap: Record<string, string> = {\n solid: 'fas',\n regular: 'far',\n brands: 'fab',\n light: 'fal',\n duotone: 'fad',\n thin: 'fat',\n };\n const faStyle = variant ? styleMap[variant] || variant : 'fas';\n baseClass = faStyle;\n iconClass = `fa-${name}`;\n return [baseClass, iconClass, ...featureList].join(' ');\n }\n case 'mdi':\n // Material Design Icons: no variants, just features\n baseClass = 'mdi';\n iconClass = `mdi-${name}`;\n return [baseClass, iconClass, ...featureList].join(' ');\n case 'material-icons': {\n // Google Material Icons: map variants to full class names\n const styleVariants: Record<string, string> = {\n filled: 'material-icons',\n outlined: 'material-icons-outlined',\n round: 'material-icons-round',\n sharp: 'material-icons-sharp',\n };\n baseClass = variant\n ? styleVariants[variant] || `material-icons-${variant}`\n : 'material-icons';\n return [baseClass, ...featureList].join(' ');\n }\n case 'material-symbols': {\n // Google Material Symbols: map variants to full class names\n const styleVariants: Record<string, string> = {\n outlined: 'material-symbols-outlined',\n rounded: 'material-symbols-rounded',\n sharp: 'material-symbols-sharp',\n };\n baseClass = variant\n ? styleVariants[variant] || `material-symbols-${variant}`\n : 'material-symbols-outlined';\n return [baseClass, ...featureList].join(' ');\n }\n default:\n // fallback: just icon name and features\n return [name, ...featureList].join(' ');\n }\n}\n\n/**\n * Icon component for rendering a Bulma-styled icon container.\n *\n * Supports Bulma helper classes for styling, color, and size, and renders an <i></i> element for the icon itself.\n *\n * @function\n * @param {IconProps} props - Props for the Icon component.\n * @returns {JSX.Element} The rendered icon element.\n * @see {@link https://bulma.io/documentation/elements/icon/ | Bulma Icon documentation}\n */\nexport const Icon: React.FC<IconProps> = ({\n className,\n textColor,\n bgColor,\n name,\n library,\n variant,\n features,\n libraryFeatures, // Deprecated but maintained for backward compatibility\n size,\n ariaLabel = 'icon',\n style,\n icon, // Capture and exclude the deprecated 'icon' prop from DOM\n color: _color, // Exclude 'color' prop if passed directly\n ...restProps\n}) => {\n // Handle deprecated 'icon' prop - parse it to extract the actual name\n let finalName = name;\n if (!name && icon) {\n // If icon prop is provided instead of name, try to parse it\n // e.g., \"mdi mdi-rocket-launch\" -> \"rocket-launch\"\n if (typeof icon === 'string') {\n const parts = icon.split(' ');\n const lastPart = parts[parts.length - 1];\n if (lastPart.startsWith('mdi-')) {\n finalName = lastPart.substring(4); // Remove \"mdi-\" prefix\n } else if (lastPart.startsWith('fa-')) {\n finalName = lastPart.substring(3); // Remove \"fa-\" prefix\n } else {\n finalName = lastPart;\n }\n }\n }\n\n // Get the default icon library from context, fallback to 'fa' if not set\n const defaultLibrary = useIconLibrary();\n const finalLibrary = library || defaultLibrary || 'fa';\n /**\n * Generates Bulma helper classes and separates out remaining props.\n * Note: variant, features, and libraryFeatures are excluded from props spread\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...restProps,\n });\n\n const bulmaClasses = usePrefixedClassNames('icon', {\n [`is-${size}`]: size,\n });\n\n const iconContainerClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n // Backward compatibility: if libraryFeatures is provided, parse it for variant and features\n let finalVariant = variant;\n let finalFeatures = features;\n\n if (libraryFeatures && !variant && !features) {\n const legacyFeatures = Array.isArray(libraryFeatures)\n ? libraryFeatures\n : [libraryFeatures];\n\n // For Font Awesome, extract style from features\n if (finalLibrary === 'fa') {\n const faStyle = legacyFeatures.find(f =>\n [\n 'fas',\n 'far',\n 'fab',\n 'fal',\n 'fad',\n 'fat',\n 'solid',\n 'regular',\n 'brands',\n 'light',\n 'duotone',\n 'thin',\n ].includes(f)\n );\n if (faStyle) {\n finalVariant = faStyle;\n finalFeatures = legacyFeatures.filter(f => f !== faStyle);\n } else {\n finalFeatures = legacyFeatures;\n }\n }\n // For Material Icons/Symbols, extract style variant\n else if (\n finalLibrary === 'material-icons' ||\n finalLibrary === 'material-symbols'\n ) {\n const styleVariants =\n finalLibrary === 'material-icons'\n ? ['filled', 'outlined', 'round', 'sharp']\n : ['outlined', 'rounded', 'sharp'];\n\n const styleVariant = legacyFeatures.find(f => styleVariants.includes(f));\n if (styleVariant) {\n finalVariant = styleVariant;\n finalFeatures = legacyFeatures.filter(f => f !== styleVariant);\n } else {\n finalFeatures = legacyFeatures;\n }\n }\n // For others, all features go to finalFeatures\n else {\n finalFeatures = legacyFeatures;\n }\n }\n\n // Handle web components vs CSS-based icons\n if (finalLibrary === 'ion') {\n // For Ionicons, handle variant in the name\n let ionName = finalName;\n if (finalVariant === 'outline') {\n ionName = `${finalName}-outline`;\n } else if (finalVariant === 'sharp') {\n ionName = `${finalName}-sharp`;\n }\n\n return (\n <span\n className={iconContainerClasses}\n aria-label={ariaLabel}\n style={style}\n {...rest}\n >\n <ion-icon name={ionName} />\n </span>\n );\n }\n\n // Legacy CSS-based icons\n const iClasses = getIconClasses(\n finalLibrary,\n finalName,\n finalVariant,\n finalFeatures\n );\n\n // Material Icons and Material Symbols use text content, not CSS classes for the icon name\n if (\n finalLibrary === 'material-icons' ||\n finalLibrary === 'material-symbols'\n ) {\n return (\n <span\n className={iconContainerClasses}\n aria-label={ariaLabel}\n style={style}\n {...rest}\n >\n <i className={iClasses}>{finalName}</i>\n </span>\n );\n }\n\n return (\n <span\n className={iconContainerClasses}\n aria-label={ariaLabel}\n style={style}\n {...rest}\n >\n <i className={iClasses} />\n </span>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { Icon, IconProps } from './Icon';\n\n/**\n * Represents an item for the IconText component, containing icon props and optional text.\n *\n * @property {IconProps} iconProps - Props for the Icon component.\n * @property {string} [text] - Optional text to display next to the icon.\n */\ninterface IconTextItem {\n iconProps: IconProps;\n text?: string;\n}\n\n/**\n * Props for the IconText component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the icon text.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {IconProps} [iconProps] - Props for a single Icon component.\n * @property {React.ReactNode} [children] - Text for a single icon.\n * @property {IconTextItem[]} [items] - Array of icon/text pairs for multiple icons.\n */\ninterface IconTextProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n BulmaClassesProps {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n iconProps?: IconProps; // For single icon\n children?: React.ReactNode; // Text for single icon\n items?: IconTextItem[]; // For multiple icons\n}\n\n/**\n * IconText component for rendering one or more icons with optional text, styled with Bulma.\n *\n * Supports Bulma helper classes for styling, color, and layout. Can render a single icon with text or multiple icon/text pairs.\n *\n * @function\n * @param {IconTextProps} props - Props for the IconText component.\n * @returns {JSX.Element} The rendered icon text element.\n * @see {@link https://bulma.io/documentation/elements/icon/#icon-text | Bulma IconText documentation}\n */\nexport const IconText: React.FC<IconTextProps> = ({\n className,\n textColor,\n bgColor,\n iconProps,\n children,\n items,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('icon-text');\n const iconTextClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <span className={iconTextClasses} {...rest}>\n {items ? (\n items.map((item, index) => (\n <React.Fragment key={index}>\n <Icon {...item.iconProps} />\n {item.text && <span>{item.text}</span>}\n </React.Fragment>\n ))\n ) : (\n <>\n {iconProps && <Icon {...iconProps} />}\n {children && <span>{children}</span>}\n </>\n )}\n </span>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Image component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the image container.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {string} [size] - Size or aspect ratio modifier (e.g., '128x128', '16by9', etc.).\n * @property {boolean} [isRounded] - Whether the image should have rounded corners.\n * @property {boolean} [isRetina] - Whether to use retina (2x) image source.\n * @property {string} [src] - Image source URL.\n * @property {string} [alt] - Alternate text for the image.\n * @property {React.ReactNode} [children] - Arbitrary children (e.g., iframe or custom content).\n * @property {'figure' | 'div' | 'p'} [as] - The tag to render. Defaults to 'figure', but can be 'p', 'div', etc.\n */\nexport interface ImageProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n size?:\n | '16x16'\n | '24x24'\n | '32x32'\n | '48x48'\n | '64x64'\n | '96x96'\n | '128x128'\n | 'square'\n | '1by1'\n | '5by4'\n | '4by3'\n | '3by2'\n | '5by3'\n | '16by9'\n | '2by1'\n | '3by1'\n | '4by5'\n | '3by4'\n | '2by3'\n | '3by5'\n | '9by16'\n | '1by2'\n | '1by3';\n isRounded?: boolean;\n isRetina?: boolean;\n src?: string;\n alt?: string;\n children?: React.ReactNode;\n as?: 'figure' | 'div' | 'p';\n}\n\n/**\n * Image component for rendering a styled Bulma image element.\n *\n * Supports fixed-size containers, aspect ratios, rounded images, retina images, and arbitrary children (e.g., iframe).\n *\n * The \"as\" prop allows rendering as \"figure\", \"p\", or \"div\" tags etc.\n *\n * @function\n * @param {ImageProps} props - Props for the Image component.\n * @returns {JSX.Element} The rendered image element.\n * @see {@link https://bulma.io/documentation/elements/image/ | Bulma Image documentation}\n */\nexport const Image: React.FC<ImageProps> = ({\n as,\n className,\n textColor,\n bgColor,\n size,\n isRounded,\n isRetina,\n src,\n alt,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('image', {\n [`is-${size}`]: size,\n 'has-ratio': size && typeof size === 'string' && size.includes('by'),\n });\n\n const imageClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n // Default tag logic: if \"as\" is provided, use it.\n // If not, use <figure> for aspect ratios or children, <div> otherwise.\n let Tag: 'figure' | 'div' | 'p';\n if (as) {\n Tag = as;\n } else if (size && typeof size === 'string' && size.includes('by')) {\n Tag = 'figure';\n } else {\n Tag = 'div';\n }\n\n const roundedClass = usePrefixedClassNames('is-rounded');\n\n const content = children ? (\n children\n ) : (\n <img\n className={classNames({ [roundedClass]: isRounded })}\n src={src}\n alt={alt}\n {...(isRetina && src ? { srcSet: `${src} 2x` } : {})}\n />\n );\n\n return (\n <Tag className={imageClasses} {...rest}>\n {content}\n </Tag>\n );\n};\n\nexport default Image;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Notification component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number]} [color] - Bulma color modifier for the notification.\n * @property {boolean} [isLight] - Use the light color variant.\n * @property {boolean} [hasDelete] - Show a delete (close) button.\n * @property {() => void} [onDelete] - Callback fired when the delete button is clicked.\n * @property {React.ReactNode} [children] - Content to be rendered inside the notification.\n */\nexport interface NotificationProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number];\n isLight?: boolean;\n hasDelete?: boolean;\n onDelete?: () => void;\n children?: React.ReactNode;\n}\n\n/**\n * Notification component for rendering a styled Bulma notification.\n *\n * Supports colors, light variants, a delete button, and arbitrary content.\n *\n * @function\n * @param {NotificationProps} props - Props for the Notification component.\n * @returns {JSX.Element} The rendered notification element.\n * @see {@link https://bulma.io/documentation/elements/notification/ | Bulma Notification documentation}\n */\nexport const Notification: React.FC<NotificationProps> = ({\n className,\n color,\n isLight,\n hasDelete,\n onDelete,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('notification', {\n [`is-${color}`]: color && validColors.includes(color),\n 'is-light': isLight,\n });\n\n const deleteClasses = usePrefixedClassNames('delete');\n\n const notificationClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <div className={notificationClasses} {...rest}>\n {hasDelete && (\n <button\n className={deleteClasses}\n onClick={onDelete}\n aria-label=\"Close notification\"\n />\n )}\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Progress component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number]} [color] - Bulma color modifier for the progress bar.\n * @property {'small' | 'medium' | 'large'} [size] - Size modifier for the progress bar.\n * @property {number} [value] - Current value of the progress bar.\n * @property {number} [max] - Maximum value of the progress bar.\n * @property {React.ReactNode} [children] - Optional custom content inside the progress element.\n */\nexport interface ProgressProps\n extends React.ProgressHTMLAttributes<HTMLProgressElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number];\n size?: 'small' | 'medium' | 'large';\n value?: number;\n max?: number;\n children?: React.ReactNode;\n}\n\n/**\n * Progress component for rendering a styled Bulma progress bar.\n *\n * Supports Bulma color and size modifiers, value/max attributes, and optional custom content.\n *\n * @function\n * @param {ProgressProps} props - Props for the Progress component.\n * @returns {JSX.Element} The rendered progress bar element.\n * @see {@link https://bulma.io/documentation/elements/progress/ | Bulma Progress documentation}\n */\nexport const Progress: React.FC<ProgressProps> = ({\n className,\n color,\n size,\n value,\n max,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('progress', {\n [`is-${color}`]: color && validColors.includes(color),\n [`is-${size}`]: size,\n });\n\n const progressClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <progress className={progressClasses} value={value} max={max} {...rest}>\n {children}\n </progress>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Additional CSS classes to apply */\n className?: string;\n /** Variant of skeleton: 'block' (default) or 'lines' */\n variant?: 'block' | 'lines';\n /** Number of lines (only used if variant=\"lines\") */\n lines?: number;\n /** Render content inside the skeleton (block variant only) */\n children?: React.ReactNode;\n}\n\n/**\n * Skeleton component for rendering a styled Bulma skeleton element.\n *\n * @see https://bulma.io/documentation/features/skeletons/\n */\nexport const Skeleton: React.FC<SkeletonProps> = ({\n className,\n variant = 'block',\n lines = 3,\n children,\n ...props\n}) => {\n const linesClass = usePrefixedClassNames('skeleton-lines');\n const blockClass = usePrefixedClassNames('skeleton-block');\n\n if (variant === 'lines') {\n return (\n <div className={classNames(linesClass, className)} {...props}>\n {Array.from({ length: lines }).map((_, i) => (\n <div key={i} />\n ))}\n </div>\n );\n }\n\n return (\n <div className={classNames(blockClass, className)} {...props}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\nconst validSubTitleSizes = ['1', '2', '3', '4', '5', '6'] as const;\n/**\n * Valid size values for the SubTitle component (Bulma subtitle sizes).\n */\nexport type SubTitleSize = (typeof validSubTitleSizes)[number];\n\nconst validSubTitleElements = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n] as const;\n/**\n * Valid HTML elements for the SubTitle component.\n */\nexport type SubTitleElement = (typeof validSubTitleElements)[number];\n\n/**\n * Props for the SubTitle component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {SubTitleSize} [size] - Size of the subtitle (1-6).\n * @property {SubTitleElement} [as='h1'] - HTML element to render as (h1-h6 or p).\n * @property {boolean} [hasSkeleton] - Adds the has-skeleton CSS class.\n * @property {React.ReactNode} [children] - Subtitle content.\n * @property {string} [textColor] - Text color class (maps to Bulma's color helper).\n * @property {string} [bgColor] - Background color class (maps to Bulma's backgroundColor helper).\n */\nexport interface SubTitleProps\n extends Omit<\n React.HTMLAttributes<HTMLHeadingElement | HTMLParagraphElement>,\n 'color'\n >,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n size?: SubTitleSize;\n as?: SubTitleElement;\n hasSkeleton?: boolean;\n children?: React.ReactNode;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n}\n\n/**\n * SubTitle component for rendering a styled Bulma subtitle.\n *\n * Supports Bulma subtitle sizes and rendering as different HTML elements (h1-h6, p).\n *\n * @function\n * @param {SubTitleProps} props - Props for the SubTitle component.\n * @returns {JSX.Element} The rendered subtitle element.\n * @see {@link https://bulma.io/documentation/elements/title/#subtitle | Bulma Subtitle documentation}\n */\nexport const SubTitle: React.FC<SubTitleProps> = ({\n className,\n size,\n as = 'h1',\n hasSkeleton,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Validate 'as' prop at runtime\n const element = validSubTitleElements.includes(as) ? as : 'h1';\n\n // Validate 'size' prop at runtime\n const validSize =\n size && validSubTitleSizes.includes(size) ? size : undefined;\n\n const bulmaClasses = usePrefixedClassNames('subtitle', {\n [`is-${validSize}`]: validSize,\n 'has-skeleton': hasSkeleton,\n });\n\n const subTitleClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n // Determine the tag based on 'element' and 'validSize'\n const Tag: React.ElementType =\n element === 'p' ? 'p' : validSize ? `h${validSize}` : element;\n\n return (\n <Tag className={subTitleClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\nexport default SubTitle;\n","/**\n * @group Table\n */\nimport React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Table component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [isBordered] - Adds borders to all the cells.\n * @property {boolean} [isStriped] - Adds zebra-striping to rows.\n * @property {boolean} [isNarrow] - Makes the table more compact by cutting cell padding in half.\n * @property {boolean} [isHoverable] - Adds a hover effect on rows.\n * @property {boolean} [isFullwidth] - Makes the table span the full width of its parent.\n * @property {boolean} [isResponsive] - Makes the table horizontally scrollable on small screens.\n * @property {React.ReactNode} [children] - Table content.\n */\nexport interface TableProps\n extends Omit<React.TableHTMLAttributes<HTMLTableElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor'> {\n className?: string;\n isBordered?: boolean;\n isStriped?: boolean;\n isNarrow?: boolean;\n isHoverable?: boolean;\n isFullwidth?: boolean;\n isResponsive?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Table component for rendering a styled Bulma table.\n *\n * Supports responsive, bordered, striped, narrow, hoverable, and fullwidth variants.\n *\n * @function\n * @param {TableProps} props - Props for the Table component.\n * @returns {JSX.Element} The rendered table element.\n * @see {@link https://bulma.io/documentation/elements/table/ | Bulma Table documentation}\n */\nexport const Table: React.FC<TableProps> = ({\n className,\n isBordered,\n isStriped,\n isNarrow,\n isHoverable,\n isFullwidth,\n isResponsive,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const bulmaClasses = usePrefixedClassNames('table', {\n 'is-bordered': isBordered,\n 'is-striped': isStriped,\n 'is-narrow': isNarrow,\n 'is-hoverable': isHoverable,\n 'is-fullwidth': isFullwidth,\n });\n\n const containerClass = usePrefixedClassNames('table-container');\n const tableClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n const tableElement = (\n <table className={tableClasses} {...rest}>\n {children}\n </table>\n );\n\n if (isResponsive) {\n return <div className={containerClass}>{tableElement}</div>;\n }\n\n return tableElement;\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\nconst validTagColors = [\n 'primary',\n 'link',\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'black',\n 'dark',\n 'light',\n 'white',\n] as const;\n\n/**\n * Valid color values for the Tag component (Bulma tag colors).\n */\nexport type TagColor = (typeof validTagColors)[number];\n\nconst validTagSizes = ['normal', 'medium', 'large'] as const;\n/**\n * Valid size values for the Tag component (Bulma tag sizes).\n */\nexport type TagSize = (typeof validTagSizes)[number];\n\n/**\n * Props for the Tag component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {TagColor} [color] - Bulma color modifier for the tag.\n * @property {TagSize} [size] - Size modifier for the tag.\n * @property {boolean} [isRounded] - Whether the tag should have rounded corners.\n * @property {boolean} [isDelete] - Whether the tag is a delete button.\n * @property {boolean} [isHoverable] - Whether the tag is hoverable.\n * @property {() => void} [onDelete] - Callback fired when the delete button is clicked.\n * @property {React.ReactNode} [children] - Tag content.\n */\nexport interface TagProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>,\n Omit<BulmaClassesProps, 'color'> {\n className?: string;\n color?: TagColor;\n size?: TagSize;\n isRounded?: boolean;\n isDelete?: boolean;\n isHoverable?: boolean;\n onDelete?: () => void;\n children?: React.ReactNode;\n}\n\n/**\n * Tag component for rendering a styled Bulma tag.\n *\n * Supports colors, sizes, rounded, delete, and hoverable variants.\n *\n * @function\n * @param {TagProps} props - Props for the Tag component.\n * @returns {JSX.Element} The rendered tag element.\n * @see {@link https://bulma.io/documentation/elements/tag/ | Bulma Tag documentation}\n */\nexport const Tag: React.FC<TagProps> = ({\n className,\n color,\n size,\n isRounded,\n isDelete,\n isHoverable,\n onDelete,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const bulmaClasses = usePrefixedClassNames('tag', {\n [`is-${color}`]: color && validTagColors.includes(color),\n [`is-${size}`]: size && size !== 'normal' && validTagSizes.includes(size),\n 'is-rounded': isRounded,\n 'is-delete': isDelete,\n 'is-hoverable': isHoverable,\n });\n\n const tagClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n if (isDelete) {\n return (\n <button\n className={tagClasses}\n onClick={onDelete}\n aria-label=\"Delete tag\"\n {...rest}\n />\n );\n }\n\n return (\n <span className={tagClasses} {...rest}>\n {children}\n </span>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Tags component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [hasAddons] - Group tags together as addons.\n * @property {boolean} [isMultiline] - Allow tags to wrap onto multiple lines.\n * @property {React.ReactNode} [children] - Tag elements to render inside the container.\n */\nexport interface TagsProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n hasAddons?: boolean;\n isMultiline?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Tags component for rendering a styled Bulma tags container.\n *\n * Supports addons and multiline variants.\n *\n * @function\n * @param {TagsProps} props - Props for the Tags component.\n * @returns {JSX.Element} The rendered tags container.\n * @see {@link https://bulma.io/documentation/elements/tag/#list-of-tags | Bulma Tags documentation}\n */\nexport const Tags: React.FC<TagsProps> = ({\n className,\n hasAddons,\n isMultiline,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const bulmaClasses = usePrefixedClassNames('tags', {\n 'has-addons': hasAddons,\n 'are-multiline': isMultiline,\n });\n\n const tagsClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <div className={tagsClasses} {...rest}>\n {children}\n </div>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport classNames from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Tbody component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Table body content (rows).\n */\nexport interface TbodyProps\n extends Omit<React.HTMLAttributes<HTMLTableSectionElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor'> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Tbody component for rendering a styled Bulma table body.\n *\n * Supports Bulma helper classes for additional styling.\n *\n * @function\n * @param {TbodyProps} props - Props for the Tbody component.\n * @returns {JSX.Element} The rendered table body element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-body | Bulma Table documentation}\n */\nexport const Tbody: React.FC<TbodyProps> = ({\n className,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const tbodyClasses = classNames(className, bulmaHelperClasses);\n\n return (\n <tbody className={tbodyClasses} {...rest}>\n {children}\n </tbody>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\nexport const validTableColors = [\n 'primary',\n 'link',\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'black',\n 'dark',\n 'light',\n 'white',\n] as const;\n\n/**\n * Valid color values for the Td component (Bulma table cell colors).\n */\nexport type TableColor = (typeof validTableColors)[number];\n\n/**\n * Props for the Td component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {TableColor} [color] - Bulma color modifier for the table cell.\n * @property {React.ReactNode} [children] - Table cell content.\n */\nexport interface TdProps\n extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n color?: TableColor;\n children?: React.ReactNode;\n}\n\n/**\n * Td component for rendering a styled Bulma table cell.\n *\n * Supports Bulma color modifiers and helper classes for additional styling.\n *\n * @function\n * @param {TdProps} props - Props for the Td component.\n * @returns {JSX.Element} The rendered table cell element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-body | Bulma Table documentation}\n */\nexport const Td: React.FC<TdProps> = ({\n className,\n color,\n children,\n ...props\n}) => {\n const colorClass = usePrefixedClassNames('', {\n [`is-${color}`]: color && validTableColors.includes(color),\n });\n\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const tdClasses = classNames(colorClass, className, bulmaHelperClasses);\n\n return (\n <td className={tdClasses} {...rest}>\n {children}\n </td>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport classNames from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Tfoot component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Table footer content (rows).\n */\nexport interface TfootProps\n extends Omit<React.HTMLAttributes<HTMLTableSectionElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor'> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Tfoot component for rendering a styled Bulma table footer.\n *\n * Supports Bulma helper classes for additional styling.\n *\n * @function\n * @param {TfootProps} props - Props for the Tfoot component.\n * @returns {JSX.Element} The rendered table footer element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-footer | Bulma Table documentation}\n */\nexport const Tfoot: React.FC<TfootProps> = ({\n className,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const tfootClasses = classNames(className, bulmaHelperClasses);\n\n return (\n <tfoot className={tfootClasses} {...rest}>\n {children}\n </tfoot>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\nimport { TableColor, validTableColors } from './Td';\n\nconst validAlignments = ['left', 'right', 'centered'] as const;\n/**\n * Valid alignment values for the Th component.\n */\ntype TableAlignment = (typeof validAlignments)[number];\n\n/**\n * Props for the Th component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {TableAlignment} [isAligned] - Text alignment for the header cell ('left', 'right', 'centered').\n * @property {string|number} [width] - Width of the header cell (e.g., '100px' or 100).\n * @property {TableColor} [color] - Bulma color modifier for the header cell.\n * @property {React.ReactNode} [children] - Table header cell content.\n */\nexport interface ThProps\n extends Omit<React.ThHTMLAttributes<HTMLTableCellElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n isAligned?: TableAlignment;\n width?: string | number;\n color?: TableColor;\n children?: React.ReactNode;\n}\n\n/**\n * Th component for rendering a styled Bulma table header cell.\n *\n * Supports alignment, width, and color modifiers.\n *\n * @function\n * @param {ThProps} props - Props for the Th component.\n * @returns {JSX.Element} The rendered table header cell element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-head | Bulma Table documentation}\n */\nexport const Th: React.FC<ThProps> = ({\n className,\n isAligned,\n width,\n color,\n children,\n ...props\n}) => {\n const bulmaClasses = usePrefixedClassNames('', {\n [`has-text-${isAligned}`]: isAligned && validAlignments.includes(isAligned),\n [`is-${color}`]: color && validTableColors.includes(color),\n });\n\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const thClasses = classNames(bulmaClasses, className, bulmaHelperClasses);\n\n return (\n <th\n className={thClasses}\n style={\n width\n ? { width: typeof width === 'number' ? `${width}px` : width }\n : undefined\n }\n {...rest}\n >\n {children}\n </th>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport classNames from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Thead component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Table header content (rows).\n */\nexport interface TheadProps\n extends Omit<React.HTMLAttributes<HTMLTableSectionElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor'> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Thead component for rendering a styled Bulma table header.\n *\n * Supports Bulma helper classes for additional styling.\n *\n * @function\n * @param {TheadProps} props - Props for the Thead component.\n * @returns {JSX.Element} The rendered table header element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-head | Bulma Table documentation}\n */\nexport const Thead: React.FC<TheadProps> = ({\n className,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const theadClasses = classNames(className, bulmaHelperClasses);\n\n return (\n <thead className={theadClasses} {...rest}>\n {children}\n </thead>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\nconst validTitleSizes = ['1', '2', '3', '4', '5', '6'] as const;\n/**\n * Valid size values for the Title component (Bulma title sizes).\n */\nexport type TitleSize = (typeof validTitleSizes)[number];\n\nconst validTitleElements = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p'] as const;\n/**\n * Valid HTML elements for the Title component.\n */\nexport type TitleElement = (typeof validTitleElements)[number];\n\n/**\n * Props for the Title component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {TitleSize} [size] - Size of the title (1-6).\n * @property {boolean} [isSpaced] - Adds margin below the title.\n * @property {TitleElement} [as='h1'] - HTML element to render as (h1-h6 or p).\n * @property {boolean} [hasSkeleton] - Adds the has-skeleton CSS class.\n * @property {React.ReactNode} [children] - Title content.\n * @property {string} [textColor] - Text color class (maps to Bulma's color helper).\n * @property {string} [bgColor] - Background color class (maps to Bulma's backgroundColor helper).\n */\nexport interface TitleProps\n extends Omit<\n React.HTMLAttributes<HTMLHeadingElement | HTMLParagraphElement>,\n 'color'\n >,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n size?: TitleSize;\n isSpaced?: boolean;\n as?: TitleElement;\n hasSkeleton?: boolean;\n children?: React.ReactNode;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n}\n\n/**\n * Title component for rendering a styled Bulma title.\n *\n * Supports sizes, spacing, and rendering as different HTML elements.\n *\n * @function\n * @param {TitleProps} props - Props for the Title component.\n * @returns {JSX.Element} The rendered title element.\n * @see {@link https://bulma.io/documentation/elements/title/ | Bulma Title documentation}\n */\nexport const Title: React.FC<TitleProps> = ({\n className,\n size,\n isSpaced,\n as = 'h1',\n hasSkeleton,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Validate 'as' prop at runtime\n const element = validTitleElements.includes(as) ? as : 'h1';\n\n // Validate 'size' prop at runtime\n const validSize = size && validTitleSizes.includes(size) ? size : undefined;\n\n const bulmaClasses = usePrefixedClassNames('title', {\n [`is-${validSize}`]: validSize,\n 'is-spaced': isSpaced,\n 'has-skeleton': hasSkeleton,\n });\n\n const titleClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n // Determine the tag based on 'element' and 'validSize'\n const Tag: React.ElementType =\n element === 'p' ? 'p' : validSize ? `h${validSize}` : element;\n\n return (\n <Tag className={titleClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\nexport default Title;\n","/**\n * @group Table\n */\nimport React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\nimport { TableColor, validTableColors } from './Td'; // Import TableColor from Td\n\n/**\n * Props for the Tr component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [isSelected] - Whether the row is selected (adds Bulma's is-selected class).\n * @property {TableColor} [color] - Bulma color modifier for the table row.\n * @property {React.ReactNode} [children] - Table row content (cells).\n */\nexport interface TrProps\n extends Omit<React.HTMLAttributes<HTMLTableRowElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n isSelected?: boolean;\n color?: TableColor;\n children?: React.ReactNode;\n}\n\n/**\n * Tr component for rendering a styled Bulma table row.\n *\n * Supports the is-selected modifier and color modifiers.\n *\n * @function\n * @param {TrProps} props - Props for the Tr component.\n * @returns {JSX.Element} The rendered table row element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-row | Bulma Table documentation}\n */\nexport const Tr: React.FC<TrProps> = ({\n className,\n isSelected,\n color,\n children,\n ...props\n}) => {\n const bulmaClasses = usePrefixedClassNames('', {\n 'is-selected': isSelected,\n [`is-${color}`]: color && validTableColors.includes(color),\n });\n\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const trClasses = classNames(bulmaClasses, className, bulmaHelperClasses);\n\n return (\n <tr className={trClasses} {...rest}>\n {children}\n </tr>\n );\n};\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Checkbox component.\n *\n * @property {boolean} [disabled] - Whether the checkbox is disabled.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - The label/content for the checkbox.\n * @see Bulma Checkbox documentation: https://bulma.io/documentation/form/checkbox/\n */\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'color'>,\n Omit<BulmaClassesProps, 'color'> {\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Checkbox component with Bulma helper classes support.\n * The label is provided via the children prop.\n *\n * @function\n * @param {CheckboxProps} props - Props for the Checkbox component.\n * @returns {JSX.Element} The rendered checkbox element.\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ disabled, className, children, ...props }, ref) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('checkbox');\n const checkboxClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <label className={checkboxClass}>\n <input ref={ref} type=\"checkbox\" disabled={disabled} {...rest} />\n {children}\n </label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Checkboxes component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Checkbox elements to render in the group.\n */\nexport interface CheckboxesProps extends Omit<BulmaClassesProps, 'color'> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Wraps Checkbox components inside a Bulma 'checkboxes' wrapper.\n * Leverages useBulmaClasses for consistency with other components.\n *\n * @function\n * @param {CheckboxesProps} props - Props for the Checkboxes component.\n * @returns {JSX.Element} The rendered checkboxes group.\n * @see {@link https://bulma.io/documentation/form/checkbox/#grouped-checkboxes | Bulma Checkboxes documentation}\n */\nexport const Checkboxes: React.FC<CheckboxesProps> = ({\n children,\n className,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('checkboxes');\n const wrapperClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <div className={wrapperClass} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Checkboxes;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { Icon, IconProps } from '../elements/Icon';\n\n/**\n * Props for the Control component.\n *\n * @property {boolean} [hasIconsLeft] - Adds left icon container.\n * @property {boolean} [hasIconsRight] - Adds right icon container.\n * @property {boolean} [isLoading] - Shows loading indicator.\n * @property {boolean} [isExpanded] - Makes the control expand to fill available space.\n * @property {'small'|'medium'|'large'} [size] - Sets the control size.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Sets text color.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color for the control.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {IconProps} [iconLeft] - Icon props for left icon.\n * @property {IconProps} [iconRight] - Icon props for right icon.\n * @property {string} [iconLeftName] - Shortcut for left icon name.\n * @property {'small'|'medium'|'large'} [iconLeftSize] - Shortcut for left icon size.\n * @property {string} [iconRightName] - Shortcut for right icon name.\n * @property {'small'|'medium'|'large'} [iconRightSize] - Shortcut for right icon size.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Content inside the control.\n * @property {'div'|'p'} [as] - Element type for the control (default: 'div').\n * @property {React.Ref<HTMLDivElement|HTMLParagraphElement>} [ref] - Ref for the control element.\n */\nexport interface ControlBaseProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n hasIconsLeft?: boolean;\n hasIconsRight?: boolean;\n isLoading?: boolean;\n isExpanded?: boolean;\n size?: 'small' | 'medium' | 'large';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n iconLeft?: IconProps;\n iconRight?: IconProps;\n iconLeftName?: string;\n iconLeftSize?: 'small' | 'medium' | 'large';\n iconRightName?: string;\n iconRightSize?: 'small' | 'medium' | 'large';\n className?: string;\n children?: React.ReactNode;\n}\n\ntype ControlProps =\n | ({ as?: 'div' } & ControlBaseProps & { ref?: React.Ref<HTMLDivElement> })\n | ({ as: 'p' } & Omit<\n ControlBaseProps,\n keyof React.HTMLAttributes<HTMLDivElement>\n > &\n React.HTMLAttributes<HTMLParagraphElement> & {\n ref?: React.Ref<HTMLParagraphElement>;\n });\n\nconst allowedColors = [...validColors, 'inherit', 'current'] as const;\n\n/**\n * Bulma Control component for form controls, with icons, loading, and Bulma helper support.\n *\n * @function\n * @param {ControlProps} props - Props for the Control component.\n * @returns {JSX.Element} The rendered control container.\n * @see {@link https://bulma.io/documentation/form/general/#control | Bulma Control documentation}\n */\nexport const Control = React.forwardRef<\n HTMLDivElement | HTMLParagraphElement,\n ControlProps\n>(\n (\n {\n as = 'div',\n hasIconsLeft,\n hasIconsRight,\n isLoading,\n isExpanded,\n size,\n textColor,\n bgColor,\n iconLeft,\n iconRight,\n iconLeftName,\n iconLeftSize,\n iconRightName,\n iconRightSize,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const Component = (as === 'p' ? 'p' : 'div') as 'div' | 'p';\n\n // Remove textColor/bgColor from props before spreading\n const {\n textColor: _ignoredTextColor,\n bgColor: _ignoredBgColor,\n ...restProps\n } = props as Record<string, unknown>;\n\n const safeTextColor = allowedColors.includes(\n textColor as (typeof allowedColors)[number]\n )\n ? textColor\n : undefined;\n\n const safeBgColor = allowedColors.includes(\n bgColor as (typeof allowedColors)[number]\n )\n ? bgColor\n : undefined;\n\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: safeTextColor,\n backgroundColor: safeBgColor,\n ...restProps,\n });\n\n // Prepare icon props for the shortcut\n const leftIconProps: IconProps | undefined =\n iconLeft ||\n (iconLeftName\n ? {\n name: iconLeftName,\n size: iconLeftSize,\n }\n : undefined);\n\n const rightIconProps: IconProps | undefined =\n iconRight ||\n (iconRightName\n ? {\n name: iconRightName,\n size: iconRightSize,\n }\n : undefined);\n\n const mainClass = usePrefixedClassNames('control', {\n 'has-icons-left': hasIconsLeft || !!leftIconProps,\n 'has-icons-right': hasIconsRight || !!rightIconProps,\n 'is-loading': isLoading,\n 'is-expanded': isExpanded,\n [`is-${size}`]: !!size,\n });\n const controlClass = classNames(mainClass, bulmaHelperClasses, className);\n\n // --- FIX: Spread both restProps (for data-testid, etc) AND rest (from useBulmaClasses) ---\n return (\n <Component\n className={controlClass}\n ref={ref as typeof ref}\n {...restProps}\n {...rest}\n >\n {children}\n {leftIconProps && leftIconProps.name && (\n <Icon {...leftIconProps} className=\"is-left\" />\n )}\n {rightIconProps && rightIconProps.name && (\n <Icon {...rightIconProps} className=\"is-right\" />\n )}\n </Component>\n );\n }\n);\n\nControl.displayName = 'Control';\n\nexport default Control;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Field component.\n *\n * @property {boolean} [horizontal] - Renders the field as horizontal (label and control side by side).\n * @property {boolean|'centered'|'right'|'multiline'} [grouped] - Group controls in a row (optionally centered, right, or multiline).\n * @property {boolean} [hasAddons] - Group controls as addons.\n * @property {React.ReactNode} [label] - Field label.\n * @property {'small'|'normal'|'medium'|'large'} [labelSize] - Size for the label.\n * @property {object} [labelProps] - Props for the label element.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the field.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color for the field.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the field.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Field content.\n */\nexport interface FieldProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n horizontal?: boolean;\n grouped?: boolean | 'centered' | 'right' | 'multiline';\n hasAddons?: boolean;\n label?: React.ReactNode;\n labelSize?: 'small' | 'normal' | 'medium' | 'large';\n labelProps?: React.LabelHTMLAttributes<HTMLLabelElement> & {\n [key: string]: unknown;\n };\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the FieldLabel component.\n *\n * @property {'small'|'normal'|'medium'|'large'} [size] - Size for the field label.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the label.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color for the label.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the label.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Field label content.\n */\nexport interface FieldLabelProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n size?: 'small' | 'normal' | 'medium' | 'large';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the FieldBody component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the field body.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color for the field body.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the field body.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Field body content.\n */\nexport interface FieldBodyProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * FieldLabel component for rendering a Bulma field label.\n *\n * @function\n * @param {FieldLabelProps} props - Props for the FieldLabel component.\n * @returns {JSX.Element} The rendered field label.\n */\nexport const FieldLabel: React.FC<FieldLabelProps> = ({\n size,\n textColor,\n bgColor,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('field-label', {\n [`is-${size}`]: !!size,\n });\n const fieldLabelClass = classNames(mainClass, bulmaHelperClasses, className);\n // Spread ...props and ...rest so custom props like data-testid are included\n return (\n <div className={fieldLabelClass} {...props} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * FieldBody component for rendering Bulma field body.\n *\n * @function\n * @param {FieldBodyProps} props - Props for the FieldBody component.\n * @returns {JSX.Element} The rendered field body.\n */\nexport const FieldBody: React.FC<FieldBodyProps> = ({\n textColor,\n bgColor,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('field-body');\n const fieldBodyClass = classNames(mainClass, bulmaHelperClasses, className);\n // Spread ...props and ...rest so custom props like data-testid are included\n return (\n <div className={fieldBodyClass} {...props} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Field component for rendering a Bulma field container.\n * Supports horizontal, grouped, and labelled fields.\n *\n * @function\n * @param {FieldProps} props - Props for the Field component.\n * @returns {JSX.Element} The rendered field container.\n * @see {@link https://bulma.io/documentation/form/general/#field | Bulma Field documentation}\n */\nexport const Field: React.FC<FieldProps> & {\n Label: typeof FieldLabel;\n Body: typeof FieldBody;\n} = ({\n horizontal,\n grouped,\n hasAddons,\n label,\n labelSize,\n labelProps,\n textColor,\n color: _fieldColor,\n bgColor,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('field', {\n 'is-horizontal': horizontal,\n 'has-addons': !!hasAddons,\n 'is-grouped':\n grouped === true ||\n grouped === 'centered' ||\n grouped === 'right' ||\n grouped === 'multiline',\n 'is-grouped-centered': grouped === 'centered',\n 'is-grouped-right': grouped === 'right',\n 'is-grouped-multiline': grouped === 'multiline',\n });\n const fieldClass = classNames(mainClass, bulmaHelperClasses, className);\n\n // Map 'normal' to undefined for FieldLabel size prop\n const mappedLabelSize: FieldLabelProps['size'] =\n labelSize === 'normal' ? undefined : labelSize;\n\n const labelClass = usePrefixedClassNames('label');\n\n let renderedLabel = null;\n if (label) {\n if (horizontal) {\n renderedLabel = (\n <FieldLabel size={mappedLabelSize}>\n <label\n {...labelProps}\n className={classNames(labelClass, labelProps?.className)}\n style={labelProps?.style}\n >\n {label}\n </label>\n </FieldLabel>\n );\n } else {\n renderedLabel = (\n <label\n {...labelProps}\n className={classNames(labelClass, labelProps?.className)}\n style={{ display: 'block', ...(labelProps?.style || {}) }}\n >\n {label}\n </label>\n );\n }\n }\n\n // If horizontal, wrap children in FieldBody (unless children is already a FieldBody)\n let content = children;\n if (horizontal) {\n // If children is a FieldBody already, don't double wrap\n // Simple check using displayName\n if (\n React.isValidElement(children) &&\n // @ts-expect-error children.type && children.type.displayName &&\n (children.type === FieldBody || children.type.displayName === 'FieldBody')\n ) {\n content = children;\n } else {\n content = <FieldBody>{children}</FieldBody>;\n }\n }\n\n return (\n <div className={fieldClass} {...rest}>\n {renderedLabel}\n {content}\n </div>\n );\n};\n\nFieldLabel.displayName = 'FieldLabel';\nFieldBody.displayName = 'FieldBody';\nField.Label = FieldLabel;\nField.Body = FieldBody;\n\nexport default Field;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the File component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the file input.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the file input.\n * @property {boolean} [isBoxed] - Whether the file input is boxed.\n * @property {boolean} [isFullwidth] - Whether the file input expands to full width.\n * @property {boolean} [isRight] - Align file input to the right.\n * @property {boolean} [isCentered] - Center the file input.\n * @property {boolean} [hasName] - Show a file name indicator.\n * @property {React.ReactNode} [label] - Custom label text or node.\n * @property {React.ReactNode} [iconLeft] - Left icon element.\n * @property {React.ReactNode} [iconRight] - Right icon element.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {string} [inputClassName] - Additional CSS classes for the input.\n * @property {string} [fileName] - File name to display.\n */\nexport interface FileProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'type'\n >,\n Omit<BulmaClassesProps, 'color'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n size?: 'small' | 'medium' | 'large';\n isBoxed?: boolean;\n isFullwidth?: boolean;\n isRight?: boolean;\n isCentered?: boolean;\n hasName?: boolean;\n label?: React.ReactNode;\n iconLeft?: React.ReactNode;\n iconRight?: React.ReactNode;\n className?: string;\n inputClassName?: string;\n fileName?: string;\n}\n\n/**\n * Bulma File upload component with full Bulma helper class support.\n * isRight and isCentered are mutually exclusive (Bulma spec).\n *\n * @function\n * @param {FileProps} props - Props for the File component.\n * @returns {JSX.Element} The rendered file upload field.\n * @see {@link https://bulma.io/documentation/form/file/ | Bulma File documentation}\n */\nexport const File = forwardRef<HTMLInputElement, FileProps>(\n (\n {\n color,\n size,\n isBoxed,\n isFullwidth,\n isRight,\n isCentered,\n hasName,\n label,\n iconLeft,\n iconRight,\n className,\n inputClassName,\n fileName,\n ...props\n },\n ref\n ) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n // Mutually exclusive alignment\n let alignmentClass: string | undefined;\n if (isRight && isCentered) {\n // If both are set, prefer isRight and warn in dev\n alignmentClass = 'is-right';\n } else if (isRight) {\n alignmentClass = 'is-right';\n } else if (isCentered) {\n alignmentClass = 'is-centered';\n }\n\n const mainClass = usePrefixedClassNames('file', {\n [`is-${color}`]: !!color,\n [`is-${size}`]: !!size,\n 'is-boxed': isBoxed,\n 'is-fullwidth': isFullwidth,\n 'has-name': hasName,\n });\n const fileClass = classNames(\n mainClass,\n bulmaHelperClasses,\n alignmentClass,\n className\n );\n\n return (\n <div className={fileClass}>\n <label className=\"file-label\">\n <input\n ref={ref}\n className={classNames('file-input', inputClassName)}\n type=\"file\"\n {...rest}\n />\n <span className=\"file-cta\">\n {iconLeft && <span className=\"file-icon\">{iconLeft}</span>}\n <span className=\"file-label\">{label || 'Choose a file…'}</span>\n {iconRight && <span className=\"file-icon\">{iconRight}</span>}\n </span>\n {hasName && fileName && <span className=\"file-name\">{fileName}</span>}\n </label>\n </div>\n );\n }\n);\n\nFile.displayName = 'File';\n\nexport default File;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Input component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the input.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the input.\n * @property {boolean} [isRounded] - Renders the input with rounded corners.\n * @property {boolean} [isStatic] - Renders the input as static text.\n * @property {boolean} [isHovered] - Applies the hovered state.\n * @property {boolean} [isFocused] - Applies the focused state.\n * @property {boolean} [isLoading] - Shows loading indicator.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [disabled] - Whether the input is disabled.\n * @property {boolean} [readOnly] - Whether the input is read-only.\n */\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n Omit<BulmaClassesProps, 'color'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n size?: 'small' | 'medium' | 'large';\n isRounded?: boolean;\n isStatic?: boolean;\n isHovered?: boolean;\n isFocused?: boolean;\n isLoading?: boolean;\n className?: string;\n disabled?: boolean;\n readOnly?: boolean;\n}\n\n/**\n * Bulma Input component with full Bulma helper class support.\n *\n * @function\n * @param {InputProps} props - Props for the Input component.\n * @returns {JSX.Element} The rendered input element.\n * @see {@link https://bulma.io/documentation/form/input/ | Bulma Input documentation}\n */\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n color,\n size,\n isRounded,\n isStatic,\n isHovered,\n isFocused,\n isLoading,\n className,\n disabled,\n readOnly,\n ...props\n },\n ref\n ) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('input', {\n [`is-${color}`]: !!color,\n [`is-${size}`]: !!size,\n 'is-rounded': isRounded,\n 'is-static': isStatic,\n 'is-hovered': isHovered,\n 'is-focused': isFocused,\n 'is-loading': isLoading,\n });\n const inputClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <input\n ref={ref}\n className={inputClass}\n disabled={disabled}\n readOnly={readOnly}\n {...rest}\n />\n );\n }\n);\nInput.displayName = 'Input';\n\nexport default Input;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Radio component.\n *\n * @property {boolean} [disabled] - Whether the radio is disabled.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - The label/content for the radio.\n * @see Bulma Radio documentation: https://bulma.io/documentation/form/radio/\n */\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'color'>,\n Omit<BulmaClassesProps, 'color'> {\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Radio component with Bulma helper classes support.\n * The label is provided via the children prop.\n *\n * @function\n * @param {RadioProps} props - Props for the Radio component.\n * @returns {JSX.Element} The rendered radio element.\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ disabled, className, children, ...props }, ref) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('radio');\n const radioClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <label className={radioClass}>\n <input ref={ref} type=\"radio\" disabled={disabled} {...rest} />\n {children}\n </label>\n );\n }\n);\n\nRadio.displayName = 'Radio';\n\nexport default Radio;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Radios component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} children - Radio elements to render in the group.\n */\nexport interface RadiosProps extends Omit<BulmaClassesProps, 'color'> {\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * Wraps Radio components inside a Bulma 'radios' wrapper.\n * Leverages useBulmaClasses for consistency with other components.\n *\n * @function\n * @param {RadiosProps} props - Props for the Radios component.\n * @returns {JSX.Element} The rendered radios group.\n * @see {@link https://bulma.io/documentation/form/radio/#grouped-radios | Bulma Radios documentation}\n */\nexport const Radios: React.FC<RadiosProps> = ({\n children,\n className,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('radios');\n const wrapperClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <div className={wrapperClass} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Radios;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Select component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the select.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the select.\n * @property {boolean} [isRounded] - Renders the select with rounded corners.\n * @property {boolean} [isLoading] - Shows loading indicator.\n * @property {boolean} [isActive] - Applies Bulma's is-active modifier.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [disabled] - Whether the select is disabled.\n * @property {boolean} [multiple] - Whether the select allows multiple values.\n * @property {number} [multipleSize] - For multiple select: number of visible options.\n * @property {React.ReactNode} [children] - Option elements.\n */\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'>,\n Omit<BulmaClassesProps, 'color'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n size?: 'small' | 'medium' | 'large';\n isRounded?: boolean;\n isLoading?: boolean;\n isActive?: boolean;\n className?: string;\n disabled?: boolean;\n multiple?: boolean;\n multipleSize?: number;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Select component with full Bulma helper class support.\n *\n * @function\n * @param {SelectProps} props - Props for the Select component.\n * @returns {JSX.Element} The rendered select element.\n * @see {@link https://bulma.io/documentation/form/select/ | Bulma Select documentation}\n */\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n color,\n size,\n isRounded,\n isLoading,\n isActive,\n className,\n disabled,\n children,\n multiple,\n multipleSize,\n ...props\n },\n ref\n ) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('select', {\n [`is-${color}`]: !!color,\n [`is-${size}`]: !!size,\n 'is-rounded': isRounded,\n 'is-loading': isLoading,\n 'is-active': isActive,\n });\n const selectClass = classNames(mainClass, bulmaHelperClasses, className);\n\n // Only set size attribute when multiple is true and multipleSize is specified\n const selectProps: React.SelectHTMLAttributes<HTMLSelectElement> = {\n disabled,\n multiple,\n ...rest,\n };\n\n if (multiple && typeof multipleSize === 'number') {\n selectProps.size = multipleSize;\n }\n\n return (\n <div className={selectClass}>\n <select ref={ref} {...selectProps}>\n {children}\n </select>\n </div>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the TextArea component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the textarea.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the textarea.\n * @property {boolean} [isRounded] - Renders the textarea with rounded corners.\n * @property {boolean} [isStatic] - Renders the textarea as static text.\n * @property {boolean} [isHovered] - Applies the hovered state.\n * @property {boolean} [isFocused] - Applies the focused state.\n * @property {boolean} [isLoading] - Shows loading indicator.\n * @property {boolean} [isActive] - Applies Bulma's is-active modifier.\n * @property {boolean} [hasFixedSize] - Applies Bulma's has-fixed-size modifier.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [disabled] - Whether the textarea is disabled.\n * @property {boolean} [readOnly] - Whether the textarea is read-only.\n * @property {number} [rows] - Number of visible text lines.\n */\nexport interface TextAreaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'>,\n Omit<BulmaClassesProps, 'color'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n size?: 'small' | 'medium' | 'large';\n isRounded?: boolean;\n isStatic?: boolean;\n isHovered?: boolean;\n isFocused?: boolean;\n isLoading?: boolean;\n isActive?: boolean;\n hasFixedSize?: boolean;\n className?: string;\n disabled?: boolean;\n readOnly?: boolean;\n rows?: number;\n}\n\n/**\n * Bulma TextArea component with full Bulma helper class support.\n *\n * @function\n * @param {TextAreaProps} props - Props for the TextArea component.\n * @returns {JSX.Element} The rendered textarea element.\n * @see {@link https://bulma.io/documentation/form/textarea/ | Bulma Textarea documentation}\n */\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n color,\n size,\n isRounded,\n isStatic,\n isHovered,\n isFocused,\n isLoading,\n isActive,\n hasFixedSize,\n className,\n disabled,\n readOnly,\n rows,\n ...props\n },\n ref\n ) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('textarea', {\n [`is-${color}`]: !!color,\n [`is-${size}`]: !!size,\n 'is-rounded': isRounded,\n 'is-static': isStatic,\n 'is-hovered': isHovered,\n 'is-focused': isFocused,\n 'is-loading': isLoading,\n 'is-active': isActive,\n 'has-fixed-size': hasFixedSize,\n });\n const textareaClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <textarea\n ref={ref}\n className={textareaClass}\n disabled={disabled}\n readOnly={readOnly}\n rows={rows}\n {...rest}\n />\n );\n }\n);\nTextArea.displayName = 'TextArea';\n\nexport default TextArea;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Type for grid cell span values.\n */\nexport type CellSpanValue = number;\n\n/**\n * Props for the Cell component.\n *\n * @property {number} [colStart] - Which column the cell starts at (Bulma: is-col-start-x).\n * @property {number} [colFromEnd] - Which column the cell ends at, counting from the end (Bulma: is-col-from-end-x).\n * @property {CellSpanValue} [colSpan] - How many columns the cell will span (Bulma: is-col-span-x).\n * @property {number} [rowStart] - Which row the cell starts at (Bulma: is-row-start-x).\n * @property {number} [rowFromEnd] - Which row the cell ends at, counting from the end (Bulma: is-row-from-end-x).\n * @property {CellSpanValue} [rowSpan] - How many rows the cell will span (Bulma: is-row-span-x).\n * @property {string} [className] - Additional CSS class names.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the cell.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {React.ReactNode} [children] - Children to render inside the cell.\n */\nexport interface CellProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n colStart?: number;\n colFromEnd?: number;\n colSpan?: CellSpanValue;\n rowStart?: number;\n rowFromEnd?: number;\n rowSpan?: CellSpanValue;\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Cell component for CSS Grid layouts.\n *\n * @function\n * @param {CellProps} props - Props for the Cell component.\n * @returns {JSX.Element} The rendered grid cell.\n * @see {@link https://bulma.io/documentation/grid/ | Bulma Grid documentation}\n */\nexport const Cell: React.FC<CellProps> = ({\n colStart,\n colFromEnd,\n colSpan,\n rowStart,\n rowFromEnd,\n rowSpan,\n className,\n textColor,\n color: _fieldColor,\n bgColor,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('cell');\n\n // Build cell grid classes with prefixes\n const cellGridClasses = usePrefixedClassNames('', {\n [`is-col-start-${colStart}`]: colStart !== undefined && colStart !== null,\n [`is-col-from-end-${colFromEnd}`]:\n colFromEnd !== undefined && colFromEnd !== null,\n [`is-col-span-${colSpan}`]: colSpan !== undefined && colSpan !== null,\n [`is-row-start-${rowStart}`]: rowStart !== undefined && rowStart !== null,\n [`is-row-from-end-${rowFromEnd}`]:\n rowFromEnd !== undefined && rowFromEnd !== null,\n [`is-row-span-${rowSpan}`]: rowSpan !== undefined && rowSpan !== null,\n });\n\n const cellClasses = classNames(\n mainClass,\n cellGridClasses,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={cellClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Allowed gap values for Bulma grid.\n */\nexport type BulmaGapValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\n/**\n * Allowed minimum column values for Bulma grid.\n */\nexport type BulmaMinColValue =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n | 26\n | 27\n | 28\n | 29\n | 30\n | 31\n | 32;\n/**\n * Allowed fixed grid columns for Bulma grid.\n */\nexport type BulmaFixedGridCols =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12;\n/**\n * Allowed fixed grid columns prop for Bulma grid.\n */\nexport type BulmaFixedGridColsProp = BulmaFixedGridCols | 'auto';\n\n/**\n * Props for the Grid component.\n *\n * @property {boolean} [isFixed] - Use a fixed grid layout (Bulma's .fixed-grid > .grid).\n * @property {BulmaGapValue} [gap] - Main gap for grid (applies is-gap-X, 0-8).\n * @property {BulmaGapValue} [columnGap] - Column gap for grid (applies is-column-gap-X, 0-8).\n * @property {BulmaGapValue} [rowGap] - Row gap for grid (applies is-row-gap-X, 0-8).\n * @property {BulmaMinColValue} [minCol] - Minimum column width for the grid (applies is-col-min-X, 1-32).\n * @property {BulmaFixedGridColsProp} [fixedCols] - For fixed grid only: explicit column count (applies has-X-cols, 0-12), or 'auto' for has-auto-count.\n * @property {BulmaFixedGridCols} [fixedColsMobile] - For fixed grid only: explicit column count for mobile.\n * @property {BulmaFixedGridCols} [fixedColsTablet] - For fixed grid only: explicit column count for tablet.\n * @property {BulmaFixedGridCols} [fixedColsDesktop] - For fixed grid only: explicit column count for desktop.\n * @property {BulmaFixedGridCols} [fixedColsWidescreen] - For fixed grid only: explicit column count for widescreen.\n * @property {BulmaFixedGridCols} [fixedColsFullhd] - For fixed grid only: explicit column count for fullhd.\n * @property {string} [className] - Additional CSS class names.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the grid.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {React.ReactNode} [children] - Children to render inside the grid.\n */\nexport interface GridProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n isFixed?: boolean;\n gap?: BulmaGapValue;\n columnGap?: BulmaGapValue;\n rowGap?: BulmaGapValue;\n minCol?: BulmaMinColValue;\n fixedCols?: BulmaFixedGridColsProp;\n fixedColsMobile?: BulmaFixedGridCols;\n fixedColsTablet?: BulmaFixedGridCols;\n fixedColsDesktop?: BulmaFixedGridCols;\n fixedColsWidescreen?: BulmaFixedGridCols;\n fixedColsFullhd?: BulmaFixedGridCols;\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Grid component for CSS Grid layouts, supports both fixed and responsive grid modes.\n *\n * @function\n * @param {GridProps} props - Props for the Grid component.\n * @returns {JSX.Element} The rendered grid.\n * @see {@link https://bulma.io/documentation/grid/ | Bulma Grid documentation}\n */\nexport const Grid: React.FC<GridProps> = ({\n isFixed = false,\n gap,\n columnGap,\n rowGap,\n minCol,\n fixedCols,\n fixedColsMobile,\n fixedColsTablet,\n fixedColsDesktop,\n fixedColsWidescreen,\n fixedColsFullhd,\n className,\n textColor,\n color: _fieldColor,\n bgColor,\n children,\n ...props\n}) => {\n // Map textColor and bgColor to color and backgroundColor for useBulmaClasses\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('grid');\n\n // Build grid inner classes with prefixes\n const gridInnerClasses = usePrefixedClassNames('', {\n [`is-gap-${gap}`]: gap !== undefined && gap !== null,\n [`is-column-gap-${columnGap}`]:\n columnGap !== undefined && columnGap !== null,\n [`is-row-gap-${rowGap}`]: rowGap !== undefined && rowGap !== null,\n [`is-col-min-${minCol}`]: minCol !== undefined && minCol !== null,\n });\n\n // Build fixed grid classes with prefixes (always called, used conditionally)\n const fixedGridClasses = usePrefixedClassNames('fixed-grid', {\n 'has-auto-count': fixedCols === 'auto',\n [`has-${fixedCols}-cols`]: fixedCols !== undefined && fixedCols !== 'auto',\n [`has-${fixedColsMobile}-cols-mobile`]:\n fixedColsMobile !== undefined && fixedColsMobile !== null,\n [`has-${fixedColsTablet}-cols-tablet`]:\n fixedColsTablet !== undefined && fixedColsTablet !== null,\n [`has-${fixedColsDesktop}-cols-desktop`]:\n fixedColsDesktop !== undefined && fixedColsDesktop !== null,\n [`has-${fixedColsWidescreen}-cols-widescreen`]:\n fixedColsWidescreen !== undefined && fixedColsWidescreen !== null,\n [`has-${fixedColsFullhd}-cols-fullhd`]:\n fixedColsFullhd !== undefined && fixedColsFullhd !== null,\n });\n\n const gridClasses = classNames(\n mainClass,\n gridInnerClasses,\n bulmaHelperClasses,\n className\n );\n\n if (isFixed) {\n return (\n <div className={fixedGridClasses}>\n <div className={gridClasses} {...rest}>\n {children}\n </div>\n </div>\n );\n }\n\n // Standard Bulma grid (not fixed)\n return (\n <div className={gridClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React, { useEffect, useMemo, ReactNode, CSSProperties } from 'react';\nimport classNames from './classNames';\nimport { useBulmaClasses, BulmaClassesProps } from './useBulmaClasses';\n\n// --- FULL Bulma v1 CSS variable keys (auto-generated from CSSVAR_KEYS) ---\nconst bulmaCssVars = [\n // scheme\n '--bulma-scheme-h',\n '--bulma-scheme-s',\n '--bulma-light-l',\n '--bulma-light-invert-l',\n '--bulma-dark-l',\n '--bulma-dark-invert-l',\n '--bulma-soft-l',\n '--bulma-bold-l',\n '--bulma-soft-invert-l',\n '--bulma-bold-invert-l',\n '--bulma-hover-background-l-delta',\n '--bulma-active-background-l-delta',\n '--bulma-hover-border-l-delta',\n '--bulma-active-border-l-delta',\n '--bulma-hover-color-l-delta',\n '--bulma-active-color-l-delta',\n '--bulma-hover-shadow-a-delta',\n '--bulma-active-shadow-a-delta',\n // colors\n '--bulma-primary-h',\n '--bulma-primary-s',\n '--bulma-primary-l',\n '--bulma-link-h',\n '--bulma-link-s',\n '--bulma-link-l',\n '--bulma-info-h',\n '--bulma-info-s',\n '--bulma-info-l',\n '--bulma-success-h',\n '--bulma-success-s',\n '--bulma-success-l',\n '--bulma-warning-h',\n '--bulma-warning-s',\n '--bulma-warning-l',\n '--bulma-danger-h',\n '--bulma-danger-s',\n '--bulma-danger-l',\n // typography\n '--bulma-family-primary',\n '--bulma-family-secondary',\n '--bulma-family-code',\n '--bulma-size-small',\n '--bulma-size-normal',\n '--bulma-size-medium',\n '--bulma-size-large',\n '--bulma-weight-light',\n '--bulma-weight-normal',\n '--bulma-weight-medium',\n '--bulma-weight-semibold',\n '--bulma-weight-bold',\n '--bulma-weight-extrabold',\n // other\n '--bulma-block-spacing',\n '--bulma-duration',\n '--bulma-easing',\n '--bulma-radius-small',\n '--bulma-radius',\n '--bulma-radius-medium',\n '--bulma-radius-large',\n '--bulma-radius-rounded',\n '--bulma-speed',\n '--bulma-arrow-color',\n '--bulma-loading-color',\n '--bulma-burger-h',\n '--bulma-burger-s',\n '--bulma-burger-l',\n '--bulma-burger-border-radius',\n '--bulma-burger-gap',\n '--bulma-burger-item-height',\n '--bulma-burger-item-width',\n // generic\n '--bulma-body-background-color',\n '--bulma-body-size',\n '--bulma-body-min-width',\n '--bulma-body-rendering',\n '--bulma-body-family',\n '--bulma-body-overflow-x',\n '--bulma-body-overflow-y',\n '--bulma-body-color',\n '--bulma-body-font-size',\n '--bulma-body-weight',\n '--bulma-body-line-height',\n '--bulma-code-family',\n '--bulma-code-padding',\n '--bulma-code-weight',\n '--bulma-code-size',\n '--bulma-small-font-size',\n '--bulma-hr-background-color',\n '--bulma-hr-height',\n '--bulma-hr-margin',\n '--bulma-strong-color',\n '--bulma-strong-weight',\n '--bulma-pre-font-size',\n '--bulma-pre-padding',\n '--bulma-pre-code-font-size',\n // skeleton\n '--bulma-skeleton-background',\n '--bulma-skeleton-radius',\n '--bulma-skeleton-block-min-height',\n '--bulma-skeleton-lines-gap',\n '--bulma-skeleton-line-height',\n // breadcrumb\n '--bulma-breadcrumb-item-color',\n '--bulma-breadcrumb-item-hover-color',\n '--bulma-breadcrumb-item-active-color',\n '--bulma-breadcrumb-item-padding-vertical',\n '--bulma-breadcrumb-item-padding-horizontal',\n '--bulma-breadcrumb-item-separator-color',\n // card\n '--bulma-card-color',\n '--bulma-card-background-color',\n '--bulma-card-shadow',\n '--bulma-card-radius',\n '--bulma-card-header-background-color',\n '--bulma-card-header-color',\n '--bulma-card-header-padding',\n '--bulma-card-header-shadow',\n '--bulma-card-header-weight',\n '--bulma-card-content-background-color',\n '--bulma-card-content-padding',\n '--bulma-card-footer-background-color',\n '--bulma-card-footer-border-top',\n '--bulma-card-footer-padding',\n '--bulma-card-media-margin',\n // dropdown\n '--bulma-dropdown-menu-min-width',\n '--bulma-dropdown-content-background-color',\n '--bulma-dropdown-content-offset',\n '--bulma-dropdown-content-padding-bottom',\n '--bulma-dropdown-content-padding-top',\n '--bulma-dropdown-content-radius',\n '--bulma-dropdown-content-shadow',\n '--bulma-dropdown-content-z',\n '--bulma-dropdown-item-h',\n '--bulma-dropdown-item-s',\n '--bulma-dropdown-item-l',\n '--bulma-dropdown-item-background-l',\n '--bulma-dropdown-item-background-l-delta',\n '--bulma-dropdown-item-hover-background-l-delta',\n '--bulma-dropdown-item-active-background-l-delta',\n '--bulma-dropdown-item-color-l',\n '--bulma-dropdown-item-selected-h',\n '--bulma-dropdown-item-selected-s',\n '--bulma-dropdown-item-selected-l',\n '--bulma-dropdown-item-selected-background-l',\n '--bulma-dropdown-item-selected-color-l',\n '--bulma-dropdown-divider-background-color',\n // menu\n '--bulma-menu-item-h',\n '--bulma-menu-item-s',\n '--bulma-menu-item-l',\n '--bulma-menu-item-background-l',\n '--bulma-menu-item-background-l-delta',\n '--bulma-menu-item-hover-background-l-delta',\n '--bulma-menu-item-active-background-l-delta',\n '--bulma-menu-item-color-l',\n '--bulma-menu-item-radius',\n '--bulma-menu-item-selected-h',\n '--bulma-menu-item-selected-s',\n '--bulma-menu-item-selected-l',\n '--bulma-menu-item-selected-background-l',\n '--bulma-menu-item-selected-color-l',\n '--bulma-menu-list-border-left',\n '--bulma-menu-list-line-height',\n '--bulma-menu-list-link-padding',\n '--bulma-menu-nested-list-margin',\n '--bulma-menu-nested-list-padding-left',\n '--bulma-menu-label-color',\n '--bulma-menu-label-font-size',\n '--bulma-menu-label-letter-spacing',\n '--bulma-menu-label-spacing',\n // message\n '--bulma-message-h',\n '--bulma-message-s',\n '--bulma-message-background-l',\n '--bulma-message-border-l',\n '--bulma-message-border-l-delta',\n '--bulma-message-border-style',\n '--bulma-message-border-width',\n '--bulma-message-color-l',\n '--bulma-message-radius',\n '--bulma-message-header-weight',\n '--bulma-message-header-padding',\n '--bulma-message-header-radius',\n '--bulma-message-header-body-border-width',\n '--bulma-message-header-background-l',\n '--bulma-message-header-color-l',\n '--bulma-message-body-border-width',\n '--bulma-message-body-color',\n '--bulma-message-body-padding',\n '--bulma-message-body-radius',\n '--bulma-message-body-pre-code-background-color',\n // modal\n '--bulma-modal-z',\n '--bulma-modal-background-background-color',\n '--bulma-modal-content-width',\n '--bulma-modal-content-margin-mobile',\n '--bulma-modal-content-spacing-mobile',\n '--bulma-modal-content-spacing-tablet',\n '--bulma-modal-close-dimensions',\n '--bulma-modal-close-right',\n '--bulma-modal-close-top',\n '--bulma-modal-card-spacing',\n '--bulma-modal-card-head-background-color',\n '--bulma-modal-card-head-padding',\n '--bulma-modal-card-head-radius',\n '--bulma-modal-card-title-color',\n '--bulma-modal-card-title-line-height',\n '--bulma-modal-card-title-size',\n '--bulma-modal-card-foot-background-color',\n '--bulma-modal-card-foot-radius',\n '--bulma-modal-card-body-background-color',\n '--bulma-modal-card-body-padding',\n // navbar\n '--bulma-navbar-h',\n '--bulma-navbar-s',\n '--bulma-navbar-l',\n '--bulma-navbar-background-color',\n '--bulma-navbar-box-shadow-size',\n '--bulma-navbar-box-shadow-color',\n '--bulma-navbar-padding-vertical',\n '--bulma-navbar-padding-horizontal',\n '--bulma-navbar-z',\n '--bulma-navbar-fixed-z',\n '--bulma-navbar-item-background-a',\n '--bulma-navbar-item-background-l',\n '--bulma-navbar-item-background-l-delta',\n '--bulma-navbar-item-hover-background-l-delta',\n '--bulma-navbar-item-active-background-l-delta',\n '--bulma-navbar-item-color-l',\n '--bulma-navbar-item-selected-h',\n '--bulma-navbar-item-selected-s',\n '--bulma-navbar-item-selected-l',\n '--bulma-navbar-item-selected-background-l',\n '--bulma-navbar-item-selected-color-l',\n '--bulma-navbar-item-img-max-height',\n '--bulma-navbar-burger-color',\n '--bulma-navbar-tab-hover-background-color',\n '--bulma-navbar-tab-hover-border-bottom-color',\n '--bulma-navbar-tab-active-color',\n '--bulma-navbar-tab-active-background-color',\n '--bulma-navbar-tab-active-border-bottom-color',\n '--bulma-navbar-tab-active-border-bottom-style',\n '--bulma-navbar-tab-active-border-bottom-width',\n '--bulma-navbar-dropdown-background-color',\n '--bulma-navbar-dropdown-border-l',\n '--bulma-navbar-dropdown-border-color',\n '--bulma-navbar-dropdown-border-style',\n '--bulma-navbar-dropdown-border-width',\n '--bulma-navbar-dropdown-offset',\n '--bulma-navbar-dropdown-arrow',\n '--bulma-navbar-dropdown-radius',\n '--bulma-navbar-dropdown-z',\n '--bulma-navbar-dropdown-boxed-radius',\n '--bulma-navbar-dropdown-boxed-shadow',\n '--bulma-navbar-dropdown-item-h',\n '--bulma-navbar-dropdown-item-s',\n '--bulma-navbar-dropdown-item-l',\n '--bulma-navbar-dropdown-item-background-l',\n '--bulma-navbar-dropdown-item-color-l',\n '--bulma-navbar-divider-background-l',\n '--bulma-navbar-divider-height',\n '--bulma-navbar-bottom-box-shadow-size',\n // pagination\n '--bulma-pagination-margin',\n '--bulma-pagination-min-width',\n '--bulma-pagination-item-h',\n '--bulma-pagination-item-s',\n '--bulma-pagination-item-l',\n '--bulma-pagination-item-background-l-delta',\n '--bulma-pagination-item-hover-background-l-delta',\n '--bulma-pagination-item-active-background-l-delta',\n '--bulma-pagination-item-border-style',\n '--bulma-pagination-item-border-width',\n '--bulma-pagination-item-border-l',\n '--bulma-pagination-item-border-l-delta',\n '--bulma-pagination-item-hover-border-l-delta',\n '--bulma-pagination-item-active-border-l-delta',\n '--bulma-pagination-item-focus-border-l-delta',\n '--bulma-pagination-item-color-l',\n '--bulma-pagination-item-font-size',\n '--bulma-pagination-item-margin',\n '--bulma-pagination-item-padding-left',\n '--bulma-pagination-item-padding-right',\n '--bulma-pagination-item-outer-shadow-h',\n '--bulma-pagination-item-outer-shadow-s',\n '--bulma-pagination-item-outer-shadow-l',\n '--bulma-pagination-item-outer-shadow-a',\n '--bulma-pagination-nav-padding-left',\n '--bulma-pagination-nav-padding-right',\n '--bulma-pagination-disabled-color',\n '--bulma-pagination-disabled-background-color',\n '--bulma-pagination-disabled-border-color',\n '--bulma-pagination-current-color',\n '--bulma-pagination-current-background-color',\n '--bulma-pagination-current-border-color',\n '--bulma-pagination-ellipsis-color',\n '--bulma-pagination-shadow-inset',\n '--bulma-pagination-selected-item-h',\n '--bulma-pagination-selected-item-s',\n '--bulma-pagination-selected-item-l',\n '--bulma-pagination-selected-item-background-l',\n '--bulma-pagination-selected-item-border-l',\n '--bulma-pagination-selected-item-color-l',\n // panel\n '--bulma-panel-margin',\n '--bulma-panel-item-border',\n '--bulma-panel-radius',\n '--bulma-panel-shadow',\n '--bulma-panel-heading-line-height',\n '--bulma-panel-heading-padding',\n '--bulma-panel-heading-radius',\n '--bulma-panel-heading-size',\n '--bulma-panel-heading-weight',\n '--bulma-panel-tabs-font-size',\n '--bulma-panel-tab-border-bottom-color',\n '--bulma-panel-tab-border-bottom-style',\n '--bulma-panel-tab-border-bottom-width',\n '--bulma-panel-tab-active-color',\n '--bulma-panel-list-item-color',\n '--bulma-panel-list-item-hover-color',\n '--bulma-panel-block-color',\n '--bulma-panel-block-hover-background-color',\n '--bulma-panel-block-active-border-left-color',\n '--bulma-panel-block-active-color',\n '--bulma-panel-block-active-icon-color',\n '--bulma-panel-icon-color',\n // tabs\n '--bulma-tabs-border-bottom-color',\n '--bulma-tabs-border-bottom-style',\n '--bulma-tabs-border-bottom-width',\n '--bulma-tabs-link-color',\n '--bulma-tabs-link-hover-border-bottom-color',\n '--bulma-tabs-link-hover-color',\n '--bulma-tabs-link-active-border-bottom-color',\n '--bulma-tabs-link-active-color',\n '--bulma-tabs-link-padding',\n '--bulma-tabs-boxed-link-radius',\n '--bulma-tabs-boxed-link-hover-background-color',\n '--bulma-tabs-boxed-link-hover-border-bottom-color',\n '--bulma-tabs-boxed-link-active-background-color',\n '--bulma-tabs-boxed-link-active-border-color',\n '--bulma-tabs-boxed-link-active-border-bottom-color',\n '--bulma-tabs-toggle-link-border-color',\n '--bulma-tabs-toggle-link-border-style',\n '--bulma-tabs-toggle-link-border-width',\n '--bulma-tabs-toggle-link-hover-background-color',\n '--bulma-tabs-toggle-link-hover-border-color',\n '--bulma-tabs-toggle-link-radius',\n '--bulma-tabs-toggle-link-active-background-color',\n '--bulma-tabs-toggle-link-active-border-color',\n '--bulma-tabs-toggle-link-active-color',\n // box\n '--bulma-box-background-color',\n '--bulma-box-color',\n '--bulma-box-radius',\n '--bulma-box-shadow',\n '--bulma-box-padding',\n '--bulma-box-link-hover-shadow',\n '--bulma-box-link-active-shadow',\n // content\n '--bulma-content-heading-color',\n '--bulma-content-heading-weight',\n '--bulma-content-heading-line-height',\n '--bulma-content-block-margin-bottom',\n '--bulma-content-blockquote-background-color',\n '--bulma-content-blockquote-border-left',\n '--bulma-content-blockquote-padding',\n '--bulma-content-pre-padding',\n '--bulma-content-table-cell-border',\n '--bulma-content-table-cell-border-width',\n '--bulma-content-table-cell-padding',\n '--bulma-content-table-cell-heading-color',\n '--bulma-content-table-head-cell-border-width',\n '--bulma-content-table-head-cell-color',\n '--bulma-content-table-body-last-row-cell-border-bottom-width',\n '--bulma-content-table-foot-cell-border-width',\n '--bulma-content-table-foot-cell-color',\n // delete\n '--bulma-delete-dimensions',\n '--bulma-delete-background-l',\n '--bulma-delete-background-alpha',\n '--bulma-delete-color',\n // icon\n '--bulma-icon-dimensions',\n '--bulma-icon-dimensions-small',\n '--bulma-icon-dimensions-medium',\n '--bulma-icon-dimensions-large',\n '--bulma-icon-text-spacing',\n // notification\n '--bulma-notification-h',\n '--bulma-notification-s',\n '--bulma-notification-background-l',\n '--bulma-notification-color-l',\n '--bulma-notification-code-background-color',\n '--bulma-notification-radius',\n '--bulma-notification-padding',\n // progress\n '--bulma-progress-border-radius',\n '--bulma-progress-bar-background-color',\n '--bulma-progress-value-background-color',\n '--bulma-progress-indeterminate-duration',\n // table\n '--bulma-table-color',\n '--bulma-table-background-color',\n '--bulma-table-cell-border-color',\n '--bulma-table-cell-border-style',\n '--bulma-table-cell-border-width',\n '--bulma-table-cell-padding',\n '--bulma-table-cell-heading-color',\n '--bulma-table-cell-text-align',\n '--bulma-table-head-cell-border-width',\n '--bulma-table-head-cell-color',\n '--bulma-table-foot-cell-border-width',\n '--bulma-table-foot-cell-color',\n '--bulma-table-head-background-color',\n '--bulma-table-body-background-color',\n '--bulma-table-foot-background-color',\n '--bulma-table-row-hover-background-color',\n '--bulma-table-row-active-background-color',\n '--bulma-table-row-active-color',\n '--bulma-table-striped-row-even-background-color',\n '--bulma-table-striped-row-even-hover-background-color',\n // tag\n '--bulma-tag-h',\n '--bulma-tag-s',\n '--bulma-tag-background-l',\n '--bulma-tag-background-l-delta',\n '--bulma-tag-hover-background-l-delta',\n '--bulma-tag-active-background-l-delta',\n '--bulma-tag-color-l',\n '--bulma-tag-radius',\n '--bulma-tag-delete-margin',\n // title\n '--bulma-title-color',\n '--bulma-title-family',\n '--bulma-title-size',\n '--bulma-title-weight',\n '--bulma-title-line-height',\n '--bulma-title-strong-color',\n '--bulma-title-strong-weight',\n '--bulma-title-sub-size',\n '--bulma-title-sup-size',\n '--bulma-subtitle-color',\n '--bulma-subtitle-family',\n '--bulma-subtitle-size',\n '--bulma-subtitle-weight',\n '--bulma-subtitle-line-height',\n '--bulma-subtitle-strong-color',\n '--bulma-subtitle-strong-weight',\n // control\n '--bulma-control-radius',\n '--bulma-control-radius-small',\n '--bulma-control-border-width',\n '--bulma-control-height',\n '--bulma-control-line-height',\n '--bulma-control-padding-vertical',\n '--bulma-control-padding-horizontal',\n '--bulma-control-size',\n '--bulma-control-focus-shadow-l',\n // file\n '--bulma-file-radius',\n '--bulma-file-name-border-color',\n '--bulma-file-name-border-style',\n '--bulma-file-name-border-width',\n '--bulma-file-name-max-width',\n '--bulma-file-h',\n '--bulma-file-s',\n '--bulma-file-background-l',\n '--bulma-file-background-l-delta',\n '--bulma-file-hover-background-l-delta',\n '--bulma-file-active-background-l-delta',\n '--bulma-file-border-l',\n '--bulma-file-border-l-delta',\n '--bulma-file-hover-border-l-delta',\n '--bulma-file-active-border-l-delta',\n '--bulma-file-cta-color-l',\n '--bulma-file-name-color-l',\n '--bulma-file-color-l-delta',\n '--bulma-file-hover-color-l-delta',\n '--bulma-file-active-color-l-delta',\n // input\n '--bulma-input-h',\n '--bulma-input-s',\n '--bulma-input-l',\n '--bulma-input-border-style',\n '--bulma-input-border-l',\n '--bulma-input-border-l-delta',\n '--bulma-input-hover-border-l-delta',\n '--bulma-input-active-border-l-delta',\n '--bulma-input-focus-h',\n '--bulma-input-focus-s',\n '--bulma-input-focus-l',\n '--bulma-input-focus-shadow-size',\n '--bulma-input-focus-shadow-alpha',\n '--bulma-input-color-l',\n '--bulma-input-background-l',\n '--bulma-input-background-l-delta',\n '--bulma-input-height',\n '--bulma-input-shadow',\n '--bulma-input-placeholder-color',\n '--bulma-input-disabled-color',\n '--bulma-input-disabled-background-color',\n '--bulma-input-disabled-border-color',\n '--bulma-input-disabled-placeholder-color',\n '--bulma-input-arrow',\n '--bulma-input-icon-color',\n '--bulma-input-icon-hover-color',\n '--bulma-input-icon-focus-color',\n '--bulma-input-radius',\n // columns\n '--bulma-column-gap',\n // grid\n '--bulma-grid-gap',\n '--bulma-grid-column-count',\n '--bulma-grid-column-min',\n '--bulma-grid-cell-column-span',\n '--bulma-grid-cell-column-start',\n // footer\n '--bulma-footer-background-color',\n '--bulma-footer-color',\n '--bulma-footer-padding',\n // hero\n '--bulma-hero-body-padding',\n '--bulma-hero-body-padding-tablet',\n '--bulma-hero-body-padding-small',\n '--bulma-hero-body-padding-medium',\n '--bulma-hero-body-padding-large',\n // media\n '--bulma-media-border-color',\n '--bulma-media-border-size',\n '--bulma-media-spacing',\n '--bulma-media-spacing-large',\n '--bulma-media-content-spacing',\n '--bulma-media-level-1-spacing',\n '--bulma-media-level-1-content-spacing',\n '--bulma-media-level-2-spacing',\n // section\n '--bulma-section-padding',\n '--bulma-section-padding-desktop',\n '--bulma-section-padding-medium',\n '--bulma-section-padding-large',\n] as const;\n\ntype BulmaVarKey = (typeof bulmaCssVars)[number];\ntype BulmaVars = Partial<Record<BulmaVarKey, string>>;\n\n// Utility: Convert Bulma CSS var to camelCase prop name (e.g., --bulma-primary-h -> primaryH)\nfunction cssVarToProp(varName: string): string {\n return varName\n .replace(/^--bulma-/, '')\n .split('-')\n .map((part, i) =>\n i === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1)\n )\n .join('');\n}\n\n// Generate prop names and mapping\nconst bulmaVarPropMap = Object.fromEntries(\n bulmaCssVars.map(cssVar => [cssVarToProp(cssVar), cssVar])\n) as Record<string, string>;\n\n// Explicitly define the props interface to avoid index signature conflicts\nexport interface ThemeProps\n extends Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n children: ReactNode;\n className?: string;\n isRoot?: boolean;\n bulmaVars?: BulmaVars;\n // Bulma scheme variables\n schemeH?: string;\n schemeS?: string;\n lightL?: string;\n lightInvertL?: string;\n darkL?: string;\n darkInvertL?: string;\n softL?: string;\n boldL?: string;\n softInvertL?: string;\n boldInvertL?: string;\n hoverBackgroundLDelta?: string;\n activeBackgroundLDelta?: string;\n hoverBorderLDelta?: string;\n activeBorderLDelta?: string;\n hoverColorLDelta?: string;\n activeColorLDelta?: string;\n hoverShadowADelta?: string;\n activeShadowADelta?: string;\n // Bulma color variables\n primaryH?: string;\n primaryS?: string;\n primaryL?: string;\n linkH?: string;\n linkS?: string;\n linkL?: string;\n infoH?: string;\n infoS?: string;\n infoL?: string;\n successH?: string;\n successS?: string;\n successL?: string;\n warningH?: string;\n warningS?: string;\n warningL?: string;\n dangerH?: string;\n dangerS?: string;\n dangerL?: string;\n // Add other commonly used ones as needed\n}\n\n/**\n * Theme injects Bulma CSS variables as a wrapper component.\n * - className: Additional CSS classes to apply to the wrapper div (when isRoot=false)\n * - bulmaVars: An object mapping Bulma CSS variable names to values.\n * - isRoot: If true, CSS variables are injected globally at :root level. If false (default), they're injected locally on a wrapping div.\n * - Individual props for each Bulma CSS variable (e.g., primaryH, schemeH, etc.)\n * - Supports all BulmaClassesProps for additional styling when isRoot=false\n */\nexport const Theme: React.FC<ThemeProps> = ({\n bulmaVars = {},\n children,\n className,\n isRoot = false,\n ...restProps\n}) => {\n // Extract Bulma variable props from restProps\n const { bulmaVarProps, otherProps } = useMemo(() => {\n const varProps: Record<string, string | undefined> = {};\n const otherPropsObj: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(restProps)) {\n if (Object.prototype.hasOwnProperty.call(bulmaVarPropMap, key)) {\n varProps[key] = value as string;\n } else {\n otherPropsObj[key] = value;\n }\n }\n\n return { bulmaVarProps: varProps, otherProps: otherPropsObj };\n }, [restProps]);\n\n // Use Bulma classes for styling (only when not isRoot)\n const { bulmaHelperClasses, rest } = useBulmaClasses(otherProps);\n\n // Merge bulmaVars and individual props, with props taking precedence\n const mergedVars: BulmaVars = useMemo(() => {\n const vars: BulmaVars = { ...bulmaVars };\n for (const [propName, cssVar] of Object.entries(bulmaVarPropMap)) {\n if (bulmaVarProps[propName] !== undefined) {\n vars[cssVar as BulmaVarKey] = bulmaVarProps[propName] as string;\n }\n }\n return vars;\n }, [bulmaVars, bulmaVarProps]);\n\n // Inject CSS variables globally at :root level\n useEffect(() => {\n if (!isRoot) {\n return;\n }\n\n const validVars = Object.entries(mergedVars).filter(\n ([key, value]) => bulmaCssVars.includes(key as BulmaVarKey) && value\n );\n\n if (validVars.length === 0) {\n return;\n }\n\n // Create and inject a style element for global CSS variables\n const styleId = 'bestax-bulma-theme-vars';\n let styleElement = document.getElementById(styleId) as HTMLStyleElement;\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n const cssRules = validVars\n .map(([key, value]) => `${key}: ${value};`)\n .join(' ');\n styleElement.textContent = `:root { ${cssRules} }`;\n\n // Cleanup function to remove the style element when component unmounts\n return () => {\n const element = document.getElementById(styleId);\n if (element) {\n element.remove();\n }\n };\n }, [mergedVars, isRoot]);\n\n // For local injection (when isRoot is false), prepare style object for CSS vars\n const style: CSSProperties = useMemo(() => {\n if (isRoot) {\n return {};\n }\n\n const styleObj: CSSProperties = {};\n for (const [key, value] of Object.entries(mergedVars)) {\n if (bulmaCssVars.includes(key as BulmaVarKey) && value) {\n (styleObj as Record<string, string>)[key] = value;\n }\n }\n return styleObj;\n }, [mergedVars, isRoot]);\n\n // Generate combined class names for the wrapper div\n const combinedClassName = useMemo(() => {\n if (isRoot) {\n return '';\n }\n return classNames(className, bulmaHelperClasses);\n }, [className, bulmaHelperClasses, isRoot]);\n\n return isRoot ? (\n <>{children}</>\n ) : (\n <div className={combinedClassName || undefined} style={style} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport classNames, { usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Bulma container breakpoints.\n */\nexport type ContainerBreakpoint = 'tablet' | 'desktop' | 'widescreen';\n\n/**\n * Props for the Container component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {boolean} [fluid] - Full-width container.\n * @property {boolean} [widescreen] - Container is widescreen.\n * @property {boolean} [fullhd] - Container is fullhd.\n * @property {ContainerBreakpoint} [breakpoint] - Responsive breakpoint.\n * @property {boolean} [isMax] - Use is-max-* class for breakpoint.\n * @property {React.ReactNode} [children] - Content inside the container.\n */\nexport interface ContainerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n fluid?: boolean;\n widescreen?: boolean;\n fullhd?: boolean;\n breakpoint?: ContainerBreakpoint;\n isMax?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Container component for Bulma.\n * Adds optional responsive, fluid, and color support, including is-max-* and breakpoint classes.\n *\n * @function\n * @param {ContainerProps} props - Props for the Container component.\n * @returns {JSX.Element} The rendered container.\n * @see {@link https://bulma.io/documentation/layout/container/ | Bulma Container documentation}\n */\nexport const Container: React.FC<ContainerProps> = ({\n className,\n textColor,\n bgColor,\n fluid,\n widescreen,\n fullhd,\n breakpoint,\n isMax,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Only allow isMax for supported breakpoints\n const validMaxBreakpoints: ContainerBreakpoint[] = [\n 'tablet',\n 'desktop',\n 'widescreen',\n ];\n let breakpointClass: string | undefined;\n if (breakpoint) {\n if (isMax && validMaxBreakpoints.includes(breakpoint)) {\n breakpointClass = `is-max-${breakpoint}`;\n } else if (!isMax) {\n breakpointClass = `is-${breakpoint}`;\n }\n }\n\n const mainClass = usePrefixedClassNames('container');\n const containerModifiers = usePrefixedClassNames('', {\n 'is-fluid': fluid,\n 'is-widescreen': widescreen,\n 'is-fullhd': fullhd,\n });\n const prefixedBreakpointClass = usePrefixedClassNames(breakpointClass || '');\n\n const containerClasses = classNames(\n mainClass,\n containerModifiers,\n prefixedBreakpointClass,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={containerClasses} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Container;\n","import React from 'react';\nimport classNames, { usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Footer component.\n *\n * @property {'footer'|'div'} [as] - The HTML tag to render as.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content inside the footer.\n */\nexport interface FooterProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n as?: 'footer' | 'div';\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Footer component.\n *\n * @example\n * <Footer>\n * <div className=\"content has-text-centered\">...</div>\n * </Footer>\n * @see {@link https://bulma.io/documentation/layout/footer/ | Bulma Footer documentation}\n */\nexport const Footer: React.FC<FooterProps> = ({\n as = 'footer',\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const Tag = as;\n const mainClass = usePrefixedClassNames('footer');\n const footerClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <Tag className={footerClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\nexport default Footer;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Possible values for Bulma hero size.\n */\nexport type HeroSize =\n | 'small'\n | 'medium'\n | 'large'\n | 'fullheight'\n | 'fullheight-with-navbar';\n\n/**\n * Props for the Hero component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {HeroSize} [size] - Hero size.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {boolean} [fullheightWithNavbar] - Use fullheight with navbar.\n * @property {React.ReactNode} [children] - Content inside the hero.\n */\nexport interface HeroProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n size?: HeroSize;\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n fullheightWithNavbar?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Hero component root.\n *\n * @function\n * @param {HeroProps} props - Props for the Hero component.\n * @returns {JSX.Element} The rendered hero.\n * @see {@link https://bulma.io/documentation/layout/hero/ | Bulma Hero documentation}\n */\nexport const Hero: React.FC<HeroProps> & {\n Head: typeof HeroHead;\n Body: typeof HeroBody;\n Foot: typeof HeroFoot;\n} = ({\n className,\n color,\n size,\n bgColor,\n fullheightWithNavbar,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('hero', {\n [`is-${color}`]: color,\n [`is-${size}`]: size && size !== 'fullheight-with-navbar',\n 'is-fullheight-with-navbar':\n fullheightWithNavbar || size === 'fullheight-with-navbar',\n });\n const heroClasses = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <section className={heroClasses} {...rest}>\n {children}\n </section>\n );\n};\n\n/**\n * Props for the HeroHead component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier for text.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface HeroHeadProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Hero head section.\n */\nexport const HeroHead: React.FC<HeroHeadProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('hero-head');\n const heroHeadClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <div className={heroHeadClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the HeroBody component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier for text.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface HeroBodyProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Hero body section.\n */\nexport const HeroBody: React.FC<HeroBodyProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('hero-body');\n const heroBodyClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <div className={heroBodyClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the HeroFoot component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier for text.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface HeroFootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Hero foot section.\n */\nexport const HeroFoot: React.FC<HeroFootProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('hero-foot');\n const heroFootClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <div className={heroFootClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n// Attach subcomponents\nHero.Head = HeroHead;\nHero.Body = HeroBody;\nHero.Foot = HeroFoot;\n\nexport default Hero;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Level component.\n *\n * @property {boolean} [isMobile] - Enable mobile mode.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Level content.\n */\nexport interface LevelProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n isMobile?: boolean;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Level component for horizontal layouts.\n *\n * @function\n * @param {LevelProps} props - Props for the Level component.\n * @returns {JSX.Element} The rendered level.\n * @see {@link https://bulma.io/documentation/layout/level/ | Bulma Level documentation}\n */\nexport const Level: React.FC<LevelProps> & {\n Left: typeof LevelLeft;\n Right: typeof LevelRight;\n Item: typeof LevelItem;\n} = ({\n isMobile,\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('level', {\n 'is-mobile': isMobile,\n });\n const levelClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <nav className={levelClasses} {...rest}>\n {children}\n </nav>\n );\n};\n\n/**\n * Props for the LevelLeft component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface LevelLeftProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Level left section.\n */\nexport const LevelLeft: React.FC<LevelLeftProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('level-left');\n const levelLeftClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <div className={levelLeftClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the LevelRight component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface LevelRightProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Level right section.\n */\nexport const LevelRight: React.FC<LevelRightProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('level-right');\n const levelRightClasses = classNames(\n mainClass,\n bulmaHelperClasses,\n className\n );\n return (\n <div className={levelRightClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the LevelItem component.\n *\n * @property {'div'|'p'|'a'} [as] - Element type to render.\n * @property {boolean} [hasTextCentered] - Center the text in the item.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n * @property {string} [href] - Href for \"a\" tag.\n * @property {string} [target] - Target for \"a\" tag\n * @property {string} [rel] - Rel for \"a\" tag\n */\nexport interface LevelItemProps\n extends React.HTMLAttributes<\n HTMLDivElement | HTMLParagraphElement | HTMLAnchorElement\n >,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n as?: 'div' | 'p' | 'a';\n hasTextCentered?: boolean;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n href?: string;\n target?: string;\n rel?: string;\n}\n\n/**\n * Bulma Level item section.\n */\nexport const LevelItem: React.FC<LevelItemProps> = ({\n as = 'div',\n hasTextCentered,\n className,\n children,\n href,\n target,\n rel,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const Tag = as;\n\n const mainClass = usePrefixedClassNames('level-item', {\n 'has-text-centered': hasTextCentered,\n });\n const levelItemClasses = classNames(mainClass, bulmaHelperClasses, className);\n\n // If rendering as \"a\", only pass anchor-specific props\n if (Tag === 'a') {\n return (\n <a\n className={levelItemClasses}\n href={href}\n target={target}\n rel={rel}\n {...rest}\n >\n {children}\n </a>\n );\n }\n\n return (\n <Tag className={levelItemClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\nLevel.Left = LevelLeft;\nLevel.Right = LevelRight;\nLevel.Item = LevelItem;\n\nexport default Level;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Media component.\n *\n * @property {'article'|'div'} [as] - Element type to render.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface MediaProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n as?: 'article' | 'div';\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Media component root.\n *\n * @function\n * @param {MediaProps} props - Props for the Media component.\n * @returns {JSX.Element} The rendered media container.\n * @see {@link https://bulma.io/documentation/layout/media-object/ | Bulma Media documentation}\n */\nexport const Media: React.FC<MediaProps> = ({\n as = 'article',\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const Tag = as;\n const mainClass = usePrefixedClassNames('media');\n const mediaClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <Tag className={mediaClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\n/**\n * Props for the MediaLeft component.\n *\n * @property {'figure'|'div'} [as] - Element type to render.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface MediaLeftProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n as?: 'figure' | 'div';\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Media left section.\n */\nexport const MediaLeft: React.FC<MediaLeftProps> = ({\n as = 'figure',\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const Tag = as;\n const mainClass = usePrefixedClassNames('media-left');\n const mediaLeftClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <Tag className={mediaLeftClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\n/**\n * Props for the MediaContent component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface MediaContentProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Media content section.\n */\nexport const MediaContent: React.FC<MediaContentProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('media-content');\n const mediaContentClasses = classNames(\n mainClass,\n bulmaHelperClasses,\n className\n );\n return (\n <div className={mediaContentClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the MediaRight component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface MediaRightProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Media right section.\n */\nexport const MediaRight: React.FC<MediaRightProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('media-right');\n const mediaRightClasses = classNames(\n mainClass,\n bulmaHelperClasses,\n className\n );\n return (\n <div className={mediaRightClasses} {...rest}>\n {children}\n </div>\n );\n};\n\ninterface MediaComponent extends React.FC<MediaProps> {\n Left: React.FC<MediaLeftProps>;\n Content: React.FC<MediaContentProps>;\n Right: React.FC<MediaRightProps>;\n}\n\nconst MediaWithSubcomponents = Media as MediaComponent;\nMediaWithSubcomponents.Left = MediaLeft;\nMediaWithSubcomponents.Content = MediaContent;\nMediaWithSubcomponents.Right = MediaRight;\n\nexport default MediaWithSubcomponents;\n","import React from 'react';\nimport classNames, { usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Section size values for Bulma.\n */\ntype SectionSize = 'medium' | 'large';\n\n/**\n * Props for the Section component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {'medium'|'large'} [size] - Section size.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Section content.\n */\nexport interface SectionProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n size?: SectionSize;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Section component for general layout.\n *\n * @function\n * @param {SectionProps} props - Props for the Section component.\n * @returns {JSX.Element} The rendered section.\n * @see {@link https://bulma.io/documentation/layout/section/ | Bulma Section documentation}\n */\nexport const Section: React.FC<SectionProps> = ({\n size,\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('section');\n const sectionModifiers = usePrefixedClassNames('', {\n [`is-${size}`]: size,\n });\n const sectionClasses = classNames(\n mainClass,\n sectionModifiers,\n className,\n bulmaHelperClasses\n );\n\n return (\n <section className={sectionClasses} {...rest}>\n {children}\n </section>\n );\n};\n"],"names":["_jsx","validSizes","validAlignments","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/helpers/Config.tsx","../src/helpers/classNames.ts","../src/helpers/useBulmaClasses.tsx","../src/columns/Column.tsx","../src/columns/Columns.tsx","../src/components/Breadcrumb.tsx","../src/components/Card.tsx","../src/components/Dropdown.tsx","../src/components/Menu.tsx","../src/components/Message.tsx","../src/components/Modal.tsx","../src/components/Navbar.tsx","../src/components/Pagination.tsx","../src/components/Panel.tsx","../src/components/Tabs.tsx","../src/elements/Block.tsx","../src/elements/Box.tsx","../src/elements/Button.tsx","../src/elements/Buttons.tsx","../src/elements/Content.tsx","../src/elements/Delete.tsx","../src/elements/Icon.tsx","../src/elements/IconText.tsx","../src/elements/Image.tsx","../src/elements/Notification.tsx","../src/elements/Progress.tsx","../src/elements/Skeleton.tsx","../src/elements/SubTitle.tsx","../src/elements/Table.tsx","../src/elements/Tag.tsx","../src/elements/Tags.tsx","../src/elements/Tbody.tsx","../src/elements/Td.tsx","../src/elements/Tfoot.tsx","../src/elements/Th.tsx","../src/elements/Thead.tsx","../src/elements/Title.tsx","../src/elements/Tr.tsx","../src/form/Checkbox.tsx","../src/form/Checkboxes.tsx","../src/form/Control.tsx","../src/form/Field.tsx","../src/form/File.tsx","../src/form/Input.tsx","../src/form/Radio.tsx","../src/form/Radios.tsx","../src/form/Select.tsx","../src/form/TextArea.tsx","../src/grid/Cell.tsx","../src/grid/Grid.tsx","../src/helpers/Theme.tsx","../src/layout/Container.tsx","../src/layout/Footer.tsx","../src/layout/Hero.tsx","../src/layout/Level.tsx","../src/layout/Media.tsx","../src/layout/Section.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode } from 'react';\n\ntype IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';\n\nexport interface ConfigContextProps {\n classPrefix?: string;\n iconLibrary?: IconLibrary;\n}\n\nconst ConfigContext = createContext<ConfigContextProps>({});\n\nexport const useConfig = () => useContext(ConfigContext);\n\nexport interface ConfigProviderProps {\n children: ReactNode;\n classPrefix?: string;\n iconLibrary?: IconLibrary;\n}\n\n/**\n * ConfigProvider injects configuration into all child components via React context.\n * - classPrefix: Used by components to prefix their classNames.\n * - iconLibrary: Sets the default icon library for Icon components.\n */\nexport const ConfigProvider: React.FC<ConfigProviderProps> = ({\n classPrefix,\n iconLibrary,\n children,\n}) => {\n return (\n <ConfigContext.Provider value={{ classPrefix, iconLibrary }}>\n {children}\n </ConfigContext.Provider>\n );\n};\n\n/**\n * Utility hook for components to get the classPrefix and apply it to their classNames.\n * Usage: const { classPrefix } = useConfig();\n */\nexport const useClassPrefix = () => {\n const { classPrefix } = useConfig();\n return classPrefix || '';\n};\n\n/**\n * Utility function to create prefixed Bulma modifier classes.\n * Usage: const prefixedClass = usePrefixedClass('is-primary');\n */\nexport const usePrefixedClass = () => {\n const { classPrefix } = useConfig();\n return (className: string) =>\n classPrefix ? `${classPrefix}${className}` : className;\n};\n\n/**\n * Utility hook to get the default icon library setting.\n * Usage: const iconLibrary = useIconLibrary();\n */\nexport const useIconLibrary = () => {\n const { iconLibrary } = useConfig();\n return iconLibrary;\n};\n","import { useConfig } from './Config';\n\n/**\n * Returns a space-separated string of class names based on input arguments.\n *\n * Accepts any mix of strings, numbers, arrays, or objects. Falsy values are ignored.\n * Array and object values are recursively flattened, and object keys are included\n * if their value is truthy. Duplicate class names are removed.\n *\n * @param {...(string | number | undefined | null | false | Record<string, unknown> | unknown[])} args - Class values to join.\n * @returns {string} A space-separated string of unique class names.\n *\n * @example\n * classNames('foo', ['bar', { baz: true }], { qux: false, quux: true });\n * // => 'foo bar baz quux'\n */\nexport function classNames(\n ...args: (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[]\n): string {\n const classSet = new Set<string>();\n\n function process(\n item:\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n ) {\n if (item === undefined || item === null || item === false || item === '') {\n return;\n }\n if (typeof item === 'string' || typeof item === 'number') {\n for (const cls of String(item).split(/\\s+/)) {\n if (cls) classSet.add(cls);\n }\n } else if (Array.isArray(item)) {\n for (const sub of item as (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[])\n process(sub);\n } else if (typeof item === 'object') {\n for (const key in item) {\n if (Object.prototype.hasOwnProperty.call(item, key) && item[key]) {\n for (const cls of key.split(/\\s+/)) {\n if (cls) classSet.add(cls);\n }\n }\n }\n }\n }\n\n for (const arg of args) {\n process(arg);\n }\n return Array.from(classSet).join(' ');\n}\n\n/**\n * Creates a prefixed version of classNames that automatically applies a prefix to all class names.\n *\n * @param {string} classPrefix - The prefix to apply to all class names.\n * @returns {Function} A classNames function that applies the prefix.\n *\n * @example\n * const prefixedClassNames = createPrefixedClassNames('bulma-');\n * prefixedClassNames('button', { 'is-primary': true });\n * // => 'bulma-button bulma-is-primary'\n */\nexport function createPrefixedClassNames(classPrefix: string) {\n return function prefixedClassNames(\n ...args: (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[]\n ): string {\n const classSet = new Set<string>();\n\n function process(\n item:\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n ) {\n if (\n item === undefined ||\n item === null ||\n item === false ||\n item === ''\n ) {\n return;\n }\n if (typeof item === 'string' || typeof item === 'number') {\n for (const cls of String(item).split(/\\s+/)) {\n if (cls) {\n classSet.add(`${classPrefix}${cls}`);\n }\n }\n } else if (Array.isArray(item)) {\n for (const sub of item as (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[])\n process(sub);\n } else if (typeof item === 'object') {\n for (const key in item) {\n if (Object.prototype.hasOwnProperty.call(item, key) && item[key]) {\n for (const cls of key.split(/\\s+/)) {\n if (cls) {\n classSet.add(`${classPrefix}${cls}`);\n }\n }\n }\n }\n }\n }\n\n for (const arg of args) {\n process(arg);\n }\n return Array.from(classSet).join(' ');\n };\n}\n\nexport default classNames;\n\n/**\n * A simple wrapper around classNames that applies an optional prefix to all class names.\n *\n * @param {string | undefined} prefix - The prefix to apply to all class names. If undefined, no prefix is applied.\n * @param {...(string | number | undefined | null | false | Record<string, unknown> | unknown[])} args - Class values to join.\n * @returns {string} A space-separated string of unique class names, with prefix applied if provided.\n *\n * @example\n * prefixedClassNames('bulma-', 'button', { 'is-primary': true });\n * // => 'bulma-button bulma-is-primary'\n *\n * prefixedClassNames(undefined, 'button', { 'is-primary': true });\n * // => 'button is-primary'\n */\nexport function prefixedClassNames(\n prefix: string | undefined,\n ...args: (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[]\n): string {\n if (!prefix) {\n return classNames(...args);\n }\n\n return createPrefixedClassNames(prefix)(...args);\n}\n\n/**\n * Hook that automatically applies the classPrefix from Config context to class names.\n *\n * @param {...(string | number | undefined | null | false | Record<string, unknown> | unknown[])} args - Class values to join.\n * @returns {string} A space-separated string of unique class names with prefix applied from context.\n *\n * @example\n * // With ConfigProvider providing classPrefix=\"bulma-\"\n * const classes = usePrefixedClassNames('button', { 'is-primary': true });\n * // => 'bulma-button bulma-is-primary'\n */\nexport function usePrefixedClassNames(\n ...args: (\n | string\n | number\n | undefined\n | null\n | false\n | Record<string, unknown>\n | unknown[]\n )[]\n): string {\n const { classPrefix } = useConfig();\n\n return prefixedClassNames(classPrefix, ...args);\n}\n","import { useMemo } from 'react';\nimport { classNames } from '../helpers/classNames';\nimport { useConfig } from './Config';\n\n/**\n * Valid Bulma color classes.\n * @example 'primary', 'link', 'info'\n */\nexport const validColors = [\n 'primary',\n 'link',\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'black',\n 'black-bis',\n 'black-ter',\n 'grey-darker',\n 'grey-dark',\n 'grey',\n 'grey-light',\n 'grey-lighter',\n 'white',\n 'light',\n 'dark',\n] as const;\n\n/**\n * Valid Bulma color shade suffixes.\n<<<<<<< HEAD\n * @example '00', '05', 'invert', 'light', 'dark'\n=======\n * @example '00', '05', 'invert', 'light', 'dark', 'soft', 'bold', 'on-scheme'\n>>>>>>> af5b1f7 (fix(bulma-ui): resolve flex item properties and Card compound component issues (#55))\n */\nexport const validColorShades = [\n '00',\n '05',\n '10',\n '15',\n '20',\n '25',\n '30',\n '35',\n '40',\n '45',\n '50',\n '55',\n '60',\n '65',\n '70',\n '75',\n '80',\n '85',\n '90',\n '95',\n 'invert',\n 'light',\n 'dark',\n 'soft',\n 'bold',\n 'on-scheme',\n] as const;\n\n/**\n * Valid Bulma size classes for margins and paddings.\n * @example '0', '1', 'auto'\n */\nexport const validSizes = ['0', '1', '2', '3', '4', '5', '6', 'auto'] as const;\n\n/**\n * Valid Bulma text size classes.\n * @example '1', '2', '3'\n */\nexport const validTextSizes = ['1', '2', '3', '4', '5', '6', '7'] as const;\n\n/**\n * Valid Bulma text alignment classes.\n * @example 'centered', 'left', 'right'\n */\nexport const validAlignments = [\n 'centered',\n 'justified',\n 'left',\n 'right',\n] as const;\n\n/**\n * Valid Bulma text transformation classes.\n * @example 'capitalized', 'uppercase', 'italic'\n */\nexport const validTextTransforms = [\n 'capitalized',\n 'lowercase',\n 'uppercase',\n 'italic',\n] as const;\n\n/**\n * Valid Bulma text weight classes.\n * @example 'light', 'normal', 'bold'\n */\nexport const validTextWeights = [\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n] as const;\n\n/**\n * Valid Bulma font family classes.\n * @example 'sans-serif', 'monospace', 'code'\n */\nexport const validFontFamilies = [\n 'sans-serif',\n 'monospace',\n 'primary',\n 'secondary',\n 'code',\n] as const;\n\n/**\n * Valid Bulma display classes.\n * @example 'block', 'flex', 'inline'\n */\nexport const validDisplays = [\n 'block',\n 'flex',\n 'inline',\n 'inline-block',\n 'inline-flex',\n] as const;\n\n/**\n * Valid Bulma visibility classes.\n<<<<<<< HEAD\n=======\n * These are all the valid visibility options available in Bulma.\n>>>>>>> af5b1f7 (fix(bulma-ui): resolve flex item properties and Card compound component issues (#55))\n * @example 'hidden', 'sr-only', 'invisible'\n */\nexport const validVisibilities = ['hidden', 'sr-only', 'invisible'] as const;\n\n/**\n * Valid Bulma flex direction classes.\n * @example 'row', 'column', 'row-reverse'\n */\nexport const validFlexDirections = [\n 'row',\n 'row-reverse',\n 'column',\n 'column-reverse',\n] as const;\n\n/**\n * Valid Bulma flex wrap classes.\n * @example 'nowrap', 'wrap', 'wrap-reverse'\n */\nexport const validFlexWraps = ['nowrap', 'wrap', 'wrap-reverse'] as const;\n\n/**\n * Valid Bulma justify-content classes.\n * @example 'flex-start', 'center', 'space-between'\n */\nexport const validJustifyContents = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n 'start',\n 'end',\n 'left',\n 'right',\n] as const;\n\n/**\n * Valid Bulma align-content classes.\n * @example 'flex-start', 'center', 'stretch'\n */\nexport const validAlignContents = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n 'stretch',\n] as const;\n\n/**\n * Valid Bulma align-items classes.\n * @example 'stretch', 'flex-start', 'center'\n */\nexport const validAlignItems = [\n 'stretch',\n 'flex-start',\n 'flex-end',\n 'center',\n 'baseline',\n 'start',\n 'end',\n] as const;\n\n/**\n * Valid Bulma align-self classes.\n * @example 'auto', 'flex-start', 'center'\n */\nexport const validAlignSelfs = [\n 'auto',\n 'flex-start',\n 'flex-end',\n 'center',\n 'baseline',\n 'stretch',\n] as const;\n\n/**\n * Valid Bulma flex grow and shrink values.\n * @example '0', '1', '2', '3', '4', '5'\n */\nexport const validFlexGrowShrink = ['0', '1', '2', '3', '4', '5'] as const;\n\n/**\n * Valid Bulma viewport classes for responsive design.\n * @example 'mobile', 'tablet', 'desktop'\n */\nexport const validViewports = [\n 'mobile',\n 'tablet',\n 'desktop',\n 'widescreen',\n 'fullhd',\n] as const;\n\n/**\n * Props for applying Bulma helper classes to components.\n */\nexport interface BulmaClassesProps {\n /** Text color class (e.g., 'primary', 'info'). */\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n /** Background color class (e.g., 'primary', 'info'). */\n backgroundColor?: (typeof validColors)[number] | 'inherit' | 'current';\n /** Text color shade suffix (e.g., '00', 'invert'). */\n colorShade?: (typeof validColorShades)[number];\n /** Background color shade suffix (e.g., '00', 'invert'). */\n backgroundColorShade?: (typeof validColorShades)[number];\n /** Margin (e.g., '0', '1'). */\n m?: (typeof validSizes)[number];\n /** Margin top. */\n mt?: (typeof validSizes)[number];\n /** Margin right. */\n mr?: (typeof validSizes)[number];\n /** Margin bottom. */\n mb?: (typeof validSizes)[number];\n /** Margin left. */\n ml?: (typeof validSizes)[number];\n /** Margin horizontal (left and right). */\n mx?: (typeof validSizes)[number];\n /** Margin vertical (top and bottom). */\n my?: (typeof validSizes)[number];\n /** Padding (e.g., '0', '1'). */\n p?: (typeof validSizes)[number];\n /** Padding top. */\n pt?: (typeof validSizes)[number];\n /** Padding right. */\n pr?: (typeof validSizes)[number];\n /** Padding bottom. */\n pb?: (typeof validSizes)[number];\n /** Padding left. */\n pl?: (typeof validSizes)[number];\n /** Padding horizontal (left and right). */\n px?: (typeof validSizes)[number];\n /** Padding vertical (top and bottom). */\n py?: (typeof validSizes)[number];\n /** Text size (e.g., '1', '2'). */\n textSize?: (typeof validTextSizes)[number];\n /** Text alignment (e.g., 'centered', 'left'). */\n textAlign?: (typeof validAlignments)[number];\n /** Text transformation (e.g., 'uppercase', 'italic'). */\n textTransform?: (typeof validTextTransforms)[number];\n /** Text weight (e.g., 'light', 'bold'). */\n textWeight?: (typeof validTextWeights)[number];\n /** Font family (e.g., 'sans-serif', 'code'). */\n fontFamily?: (typeof validFontFamilies)[number];\n /** Display type (e.g., 'block', 'flex'). */\n display?: (typeof validDisplays)[number] | 'none';\n /** Visibility (e.g., 'hidden', 'sr-only'). */\n visibility?: (typeof validVisibilities)[number];\n /** Flex direction (e.g., 'row', 'column'). */\n flexDirection?: (typeof validFlexDirections)[number];\n /** Flex wrap (e.g., 'wrap', 'nowrap'). */\n flexWrap?: (typeof validFlexWraps)[number];\n /** Justify content (e.g., 'center', 'space-between'). */\n justifyContent?: (typeof validJustifyContents)[number];\n /** Align content (e.g., 'center', 'stretch'). */\n alignContent?: (typeof validAlignContents)[number];\n /** Align items (e.g., 'center', 'flex-start'). */\n alignItems?: (typeof validAlignItems)[number];\n /** Align self (e.g., 'auto', 'center'). */\n alignSelf?: (typeof validAlignSelfs)[number];\n /** Flex grow value (e.g., '0', '1', '2', '3', '4', '5'). */\n flexGrow?: (typeof validFlexGrowShrink)[number];\n /** Flex shrink value (e.g., '0', '1', '2', '3', '4', '5'). */\n flexShrink?: (typeof validFlexGrowShrink)[number];\n /** Float direction (e.g., 'left', 'right'). */\n float?: 'left' | 'right';\n /** Overflow behavior (e.g., 'clipped'). */\n overflow?: 'clipped';\n /** Applies overlay styling if true. */\n overlay?: boolean;\n /** Interaction behavior (e.g., 'unselectable', 'clickable'). */\n interaction?: 'unselectable' | 'clickable';\n /** Border radius style (e.g., 'radiusless'). */\n radius?: 'radiusless';\n /** Shadow style (e.g., 'shadowless'). */\n shadow?: 'shadowless';\n /** Responsive behavior (e.g., 'mobile', 'narrow'). */\n responsive?: 'mobile' | 'narrow';\n /** Viewport for responsive classes (e.g., 'mobile', 'desktop'). */\n viewport?: (typeof validViewports)[number];\n /** Display type for mobile viewport (up to 768px). */\n displayMobile?: (typeof validDisplays)[number] | 'none';\n /** Display type for tablet viewport (769px - 1023px). */\n displayTablet?: (typeof validDisplays)[number] | 'none';\n /** Display type for desktop viewport (1024px - 1215px). */\n displayDesktop?: (typeof validDisplays)[number] | 'none';\n /** Display type for widescreen viewport (1216px - 1407px). */\n displayWidescreen?: (typeof validDisplays)[number] | 'none';\n /** Display type for fullhd viewport (1408px and above). */\n displayFullhd?: (typeof validDisplays)[number] | 'none';\n /** Text size for mobile viewport (up to 768px). */\n textSizeMobile?: (typeof validTextSizes)[number];\n /** Text size for tablet viewport (769px - 1023px). */\n textSizeTablet?: (typeof validTextSizes)[number];\n /** Text size for desktop viewport (1024px - 1215px). */\n textSizeDesktop?: (typeof validTextSizes)[number];\n /** Text size for widescreen viewport (1216px - 1407px). */\n textSizeWidescreen?: (typeof validTextSizes)[number];\n /** Text size for fullhd viewport (1408px and above). */\n textSizeFullhd?: (typeof validTextSizes)[number];\n /** Text alignment for mobile viewport (up to 768px). */\n textAlignMobile?: (typeof validAlignments)[number];\n /** Text alignment for tablet viewport (769px - 1023px). */\n textAlignTablet?: (typeof validAlignments)[number];\n /** Text alignment for desktop viewport (1024px - 1215px). */\n textAlignDesktop?: (typeof validAlignments)[number];\n /** Text alignment for widescreen viewport (1216px - 1407px). */\n textAlignWidescreen?: (typeof validAlignments)[number];\n /** Text alignment for fullhd viewport (1408px and above). */\n textAlignFullhd?: (typeof validAlignments)[number];\n /** Visibility for mobile viewport (up to 768px). */\n visibilityMobile?: (typeof validVisibilities)[number];\n /** Visibility for tablet viewport (769px - 1023px). */\n visibilityTablet?: (typeof validVisibilities)[number];\n /** Visibility for desktop viewport (1024px - 1215px). */\n visibilityDesktop?: (typeof validVisibilities)[number];\n /** Visibility for widescreen viewport (1216px - 1407px). */\n visibilityWidescreen?: (typeof validVisibilities)[number];\n /** Visibility for fullhd viewport (1408px and above). */\n visibilityFullhd?: (typeof validVisibilities)[number];\n /** Add Bulma skeleton class if true. */\n skeleton?: boolean;\n /** Applies clearfix to fix floating children if true. */\n clearfix?: boolean;\n /** Applies position: relative if true. */\n relative?: boolean;\n}\n\n/**\n * A hook that generates Bulma helper classes from props and separates unhandled props.\n *\n * @function useBulmaClasses\n * @param props - Combination of BulmaClassesProps and additional props.\n * @returns An object containing the Bulma helper classes and unhandled props.\n * @example\n * const { bulmaHelperClasses, rest } = useBulmaClasses({\n * color: 'primary',\n * textSize: '3',\n * className: 'custom-class'\n * });\n * // bulmaHelperClasses: 'has-text-primary is-size-3'\n * // rest: { className: 'custom-class' }\n */\nexport const useBulmaClasses = <T extends Record<string, unknown>>(\n props: BulmaClassesProps & T\n): { bulmaHelperClasses: string; rest: Omit<T, keyof BulmaClassesProps> } => {\n const { classPrefix } = useConfig();\n\n const {\n color,\n backgroundColor,\n colorShade,\n backgroundColorShade,\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n textSize,\n textAlign,\n textTransform,\n textWeight,\n fontFamily,\n display,\n visibility,\n flexDirection,\n flexWrap,\n justifyContent,\n alignContent,\n alignItems,\n alignSelf,\n flexGrow,\n flexShrink,\n float,\n overflow,\n overlay,\n interaction,\n radius,\n shadow,\n responsive,\n viewport,\n displayMobile,\n displayTablet,\n displayDesktop,\n displayWidescreen,\n displayFullhd,\n textSizeMobile,\n textSizeTablet,\n textSizeDesktop,\n textSizeWidescreen,\n textSizeFullhd,\n textAlignMobile,\n textAlignTablet,\n textAlignDesktop,\n textAlignWidescreen,\n textAlignFullhd,\n visibilityMobile,\n visibilityTablet,\n visibilityDesktop,\n visibilityWidescreen,\n visibilityFullhd,\n skeleton,\n clearfix,\n relative,\n ...rest\n } = props;\n\n const bulmaHelperClasses = useMemo(() => {\n const classes: string[] = [];\n\n // Helper function to add class with prefix support\n const addPrefixedClass = (className: string) => {\n classes.push(classPrefix ? `${classPrefix}${className}` : className);\n };\n\n // Helper to add class with optional viewport\n const addClass = (\n prefix: string,\n value: string | undefined,\n validValues: readonly string[],\n supportsViewport = false\n ) => {\n if (value && validValues.includes(value)) {\n const className =\n supportsViewport && viewport && validViewports.includes(viewport)\n ? `${prefix}-${value}-${viewport}`\n : `${prefix}-${value}`;\n addPrefixedClass(className);\n }\n };\n\n // Helper specifically for classes that never support viewport modifiers\n const addClassNoViewport = (\n prefix: string,\n value: string | undefined,\n validValues: readonly string[]\n ) => {\n if (value && (!validValues.length || validValues.includes(value))) {\n addPrefixedClass(`${prefix}-${value}`);\n }\n };\n\n // Color handling\n const addColorClass = (\n prefix: 'has-text' | 'has-background',\n value: string | undefined,\n shade: (typeof validColorShades)[number] | undefined\n ) => {\n if (!value || ![...validColors, 'inherit', 'current'].includes(value))\n return;\n if (shade && validColorShades.includes(shade)) {\n // Color shades never support viewport modifiers in Bulma\n const className = `${prefix}-${value}-${shade}`;\n addPrefixedClass(className);\n } else {\n // Color classes never support viewport modifiers in Bulma\n addClass(\n prefix,\n value,\n [...validColors, 'inherit', 'current'],\n false // supportsViewport = false for all color classes\n );\n }\n };\n\n // Color\n addColorClass('has-text', color, colorShade);\n addColorClass('has-background', backgroundColor, backgroundColorShade);\n\n // Spacing (no viewport support in Bulma)\n addClassNoViewport('m', m, validSizes);\n addClassNoViewport('mt', mt, validSizes);\n addClassNoViewport('mr', mr, validSizes);\n addClassNoViewport('mb', mb, validSizes);\n addClassNoViewport('ml', ml, validSizes);\n addClassNoViewport('mx', mx, validSizes);\n addClassNoViewport('my', my, validSizes);\n addClassNoViewport('p', p, validSizes);\n addClassNoViewport('pt', pt, validSizes);\n addClassNoViewport('pr', pr, validSizes);\n addClassNoViewport('pb', pb, validSizes);\n addClassNoViewport('pl', pl, validSizes);\n addClassNoViewport('px', px, validSizes);\n addClassNoViewport('py', py, validSizes);\n\n // Typography\n addClass('is-size', textSize, validTextSizes, true); // supports viewport\n addClass('has-text', textAlign, validAlignments, true); // supports viewport\n addClassNoViewport('is', textTransform, validTextTransforms); // no viewport support\n addClassNoViewport('has-text-weight', textWeight, validTextWeights); // no viewport support\n addClassNoViewport('is-family', fontFamily, validFontFamilies); // no viewport support\n\n // Viewport-specific text sizes\n const addViewportSpecificTextSizeClass = (\n value: string | undefined,\n viewportSuffix: string\n ) => {\n if (value && (validTextSizes as readonly string[]).includes(value)) {\n addPrefixedClass(`is-size-${value}${viewportSuffix}`);\n }\n };\n\n addViewportSpecificTextSizeClass(textSizeMobile, '-mobile');\n addViewportSpecificTextSizeClass(textSizeTablet, '-tablet');\n addViewportSpecificTextSizeClass(textSizeDesktop, '-desktop');\n addViewportSpecificTextSizeClass(textSizeWidescreen, '-widescreen');\n addViewportSpecificTextSizeClass(textSizeFullhd, '-fullhd');\n\n // Viewport-specific text alignment\n const addViewportSpecificTextAlignClass = (\n value: string | undefined,\n viewportSuffix: string\n ) => {\n if (value && (validAlignments as readonly string[]).includes(value)) {\n addPrefixedClass(`has-text-${value}${viewportSuffix}`);\n }\n };\n\n addViewportSpecificTextAlignClass(textAlignMobile, '-mobile');\n addViewportSpecificTextAlignClass(textAlignTablet, '-tablet');\n addViewportSpecificTextAlignClass(textAlignDesktop, '-desktop');\n addViewportSpecificTextAlignClass(textAlignWidescreen, '-widescreen');\n addViewportSpecificTextAlignClass(textAlignFullhd, '-fullhd');\n\n // Viewport-specific visibility\n const addViewportSpecificVisibilityClass = (\n value: string | undefined,\n viewportSuffix: string\n ) => {\n if (value === 'hidden') {\n addPrefixedClass(`is-hidden${viewportSuffix}`);\n } else if (value === 'sr-only') {\n addPrefixedClass(`is-sr-only${viewportSuffix}`);\n } else if (value === 'invisible') {\n addPrefixedClass(`is-invisible${viewportSuffix}`);\n }\n };\n\n addViewportSpecificVisibilityClass(visibilityMobile, '-mobile');\n addViewportSpecificVisibilityClass(visibilityTablet, '-tablet');\n addViewportSpecificVisibilityClass(visibilityDesktop, '-desktop');\n addViewportSpecificVisibilityClass(visibilityWidescreen, '-widescreen');\n addViewportSpecificVisibilityClass(visibilityFullhd, '-fullhd');\n\n // Visibility and Display\n // Handle viewport-specific display properties first (they take precedence)\n const addDisplayClass = (\n displayValue: string | undefined,\n viewportSuffix: string\n ) => {\n if (displayValue) {\n if (displayValue === 'none') {\n addPrefixedClass(`is-hidden${viewportSuffix}`);\n } else if (\n (validDisplays as readonly string[]).includes(displayValue)\n ) {\n addPrefixedClass(`is-${displayValue}${viewportSuffix}`);\n }\n }\n };\n\n // Apply viewport-specific display classes\n addDisplayClass(displayMobile, '-mobile');\n addDisplayClass(displayTablet, '-tablet');\n addDisplayClass(displayDesktop, '-desktop');\n addDisplayClass(displayWidescreen, '-widescreen');\n addDisplayClass(displayFullhd, '-fullhd');\n\n // Apply legacy display/viewport combination if no viewport-specific display props are set\n const hasViewportSpecificDisplay = !!(\n displayMobile ||\n displayTablet ||\n displayDesktop ||\n displayWidescreen ||\n displayFullhd\n );\n\n if (!hasViewportSpecificDisplay) {\n // Legacy display handling\n if (display === 'none') {\n if (viewport && validViewports.includes(viewport)) {\n addPrefixedClass(`is-hidden-${viewport}`);\n } else {\n addPrefixedClass('is-hidden');\n }\n } else {\n addClass('is', display, [...validDisplays], true); // display supports viewport\n }\n }\n\n // Visibility (always applied regardless of display settings)\n if (visibility) {\n if (\n (visibility === 'hidden' || visibility === 'invisible') &&\n viewport &&\n validViewports.includes(viewport)\n ) {\n addPrefixedClass(`is-${visibility}-${viewport}`);\n } else if (validVisibilities.includes(visibility)) {\n addPrefixedClass(`is-${visibility}`);\n }\n }\n\n // Flexbox\n const hasFlexDisplay =\n display === 'flex' ||\n display === 'inline-flex' ||\n displayMobile === 'flex' ||\n displayMobile === 'inline-flex' ||\n displayTablet === 'flex' ||\n displayTablet === 'inline-flex' ||\n displayDesktop === 'flex' ||\n displayDesktop === 'inline-flex' ||\n displayWidescreen === 'flex' ||\n displayWidescreen === 'inline-flex' ||\n displayFullhd === 'flex' ||\n displayFullhd === 'inline-flex';\n\n if (hasFlexDisplay) {\n // Flexbox container properties do not support viewport modifiers in Bulma\n addClassNoViewport(\n 'is-flex-direction',\n flexDirection,\n validFlexDirections\n );\n addClassNoViewport('is-flex-wrap', flexWrap, validFlexWraps);\n addClassNoViewport(\n 'is-justify-content',\n justifyContent,\n validJustifyContents\n );\n addClassNoViewport('is-align-content', alignContent, validAlignContents);\n addClassNoViewport('is-align-items', alignItems, validAlignItems);\n }\n\n // Flex item properties (can be applied to any element that is a flex item)\n // These don't require the element itself to have display: flex\n addClassNoViewport('is-align-self', alignSelf, validAlignSelfs);\n addClassNoViewport('is-flex-grow', flexGrow, validFlexGrowShrink);\n addClassNoViewport('is-flex-shrink', flexShrink, validFlexGrowShrink);\n\n // Other Helpers (no viewport support)\n if (float) {\n addClassNoViewport('is-pulled', float, ['left', 'right']);\n }\n if (overflow) {\n addClassNoViewport('is', overflow, ['clipped']);\n }\n if (overlay) {\n addPrefixedClass('is-overlay');\n }\n if (interaction) {\n addClassNoViewport('is', interaction, ['unselectable', 'clickable']);\n }\n if (radius) {\n addClassNoViewport('is', radius, ['radiusless']);\n }\n if (shadow) {\n addClassNoViewport('is', shadow, ['shadowless']);\n }\n if (responsive) {\n addClassNoViewport('is', responsive, ['mobile', 'narrow']);\n }\n\n // Bulma Skeleton Helper\n if (skeleton) {\n addPrefixedClass('is-skeleton');\n }\n\n // Clearfix Helper\n if (clearfix) {\n addPrefixedClass('is-clearfix');\n }\n\n // Position Relative Helper\n if (relative) {\n addPrefixedClass('is-relative');\n }\n\n return classNames(classes);\n }, [\n classPrefix,\n color,\n backgroundColor,\n colorShade,\n backgroundColorShade,\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n textSize,\n textAlign,\n textTransform,\n textWeight,\n fontFamily,\n display,\n visibility,\n flexDirection,\n flexWrap,\n justifyContent,\n alignContent,\n alignItems,\n alignSelf,\n flexGrow,\n flexShrink,\n float,\n overflow,\n overlay,\n interaction,\n radius,\n shadow,\n responsive,\n viewport,\n displayMobile,\n displayTablet,\n displayDesktop,\n displayWidescreen,\n displayFullhd,\n skeleton,\n clearfix,\n relative,\n // Viewport-specific properties\n textSizeMobile,\n textSizeTablet,\n textSizeDesktop,\n textSizeWidescreen,\n textSizeFullhd,\n textAlignMobile,\n textAlignTablet,\n textAlignDesktop,\n textAlignWidescreen,\n textAlignFullhd,\n visibilityMobile,\n visibilityTablet,\n visibilityDesktop,\n visibilityWidescreen,\n visibilityFullhd,\n ]);\n\n return { bulmaHelperClasses, rest };\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Possible values for Bulma column size.\n */\nexport type BulmaColumnSize =\n | number\n | 'full'\n | 'half'\n | 'one-third'\n | 'two-thirds'\n | 'one-quarter'\n | 'three-quarters'\n | 'one-fifth'\n | 'two-fifths'\n | 'three-fifths'\n | 'four-fifths';\n\n/**\n * Props for the Column component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the column.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n *\n * @property {BulmaColumnSize} [size] - Column size.\n * @property {BulmaColumnSize} [sizeMobile] - Mobile column size.\n * @property {BulmaColumnSize} [sizeTablet] - Tablet column size.\n * @property {BulmaColumnSize} [sizeDesktop] - Desktop column size.\n * @property {BulmaColumnSize} [sizeWidescreen] - Widescreen column size.\n * @property {BulmaColumnSize} [sizeFullhd] - FullHD column size.\n *\n * @property {BulmaColumnSize} [offset] - Column offset.\n * @property {BulmaColumnSize} [offsetMobile] - Mobile column offset.\n * @property {BulmaColumnSize} [offsetTablet] - Tablet column offset.\n * @property {BulmaColumnSize} [offsetDesktop] - Desktop column offset.\n * @property {BulmaColumnSize} [offsetWidescreen] - Widescreen column offset.\n * @property {BulmaColumnSize} [offsetFullhd] - FullHD column offset.\n *\n * @property {boolean} [isNarrow] - The column is narrow.\n * @property {boolean} [isNarrowMobile] - The column is narrow on mobile.\n * @property {boolean} [isNarrowTablet] - The column is narrow on tablet.\n * @property {boolean} [isNarrowTouch] - The column is narrow on touch devices.\n * @property {boolean} [isNarrowDesktop] - The column is narrow on desktop.\n * @property {boolean} [isNarrowWidescreen] - The column is narrow on widescreen.\n * @property {boolean} [isNarrowFullhd] - The column is narrow on fullhd.\n *\n * @property {React.ReactNode} [children] - Children to render inside the column.\n */\nexport interface ColumnProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n\n size?: BulmaColumnSize;\n sizeMobile?: BulmaColumnSize;\n sizeTablet?: BulmaColumnSize;\n sizeDesktop?: BulmaColumnSize;\n sizeWidescreen?: BulmaColumnSize;\n sizeFullhd?: BulmaColumnSize;\n\n offset?: BulmaColumnSize;\n offsetMobile?: BulmaColumnSize;\n offsetTablet?: BulmaColumnSize;\n offsetDesktop?: BulmaColumnSize;\n offsetWidescreen?: BulmaColumnSize;\n offsetFullhd?: BulmaColumnSize;\n\n isNarrow?: boolean;\n isNarrowMobile?: boolean;\n isNarrowTablet?: boolean;\n isNarrowTouch?: boolean;\n isNarrowDesktop?: boolean;\n isNarrowWidescreen?: boolean;\n isNarrowFullhd?: boolean;\n\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Column component for responsive grid layouts.\n *\n * @function\n * @param {ColumnProps} props - Props for the Column component.\n * @returns {JSX.Element} The rendered column.\n * @see {@link https://bulma.io/documentation/columns/ | Bulma Columns documentation}\n */\nexport const Column: React.FC<ColumnProps> = ({\n className,\n textColor,\n color: _fieldColor,\n bgColor,\n size,\n sizeMobile,\n sizeTablet,\n sizeDesktop,\n sizeWidescreen,\n sizeFullhd,\n offset,\n offsetMobile,\n offsetTablet,\n offsetDesktop,\n offsetWidescreen,\n offsetFullhd,\n isNarrow,\n isNarrowMobile,\n isNarrowTablet,\n isNarrowTouch,\n isNarrowDesktop,\n isNarrowWidescreen,\n isNarrowFullhd,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('column');\n\n // Build column-specific classes with prefixes\n const columnSpecificClasses = usePrefixedClassNames('', {\n [`is-${size}`]: size !== undefined && size !== null,\n [`is-${sizeMobile}-mobile`]:\n sizeMobile !== undefined && sizeMobile !== null,\n [`is-${sizeTablet}-tablet`]:\n sizeTablet !== undefined && sizeTablet !== null,\n [`is-${sizeDesktop}-desktop`]:\n sizeDesktop !== undefined && sizeDesktop !== null,\n [`is-${sizeWidescreen}-widescreen`]:\n sizeWidescreen !== undefined && sizeWidescreen !== null,\n [`is-${sizeFullhd}-fullhd`]:\n sizeFullhd !== undefined && sizeFullhd !== null,\n [`is-offset-${offset}`]: offset !== undefined && offset !== null,\n [`is-offset-${offsetMobile}-mobile`]:\n offsetMobile !== undefined && offsetMobile !== null,\n [`is-offset-${offsetTablet}-tablet`]:\n offsetTablet !== undefined && offsetTablet !== null,\n [`is-offset-${offsetDesktop}-desktop`]:\n offsetDesktop !== undefined && offsetDesktop !== null,\n [`is-offset-${offsetWidescreen}-widescreen`]:\n offsetWidescreen !== undefined && offsetWidescreen !== null,\n [`is-offset-${offsetFullhd}-fullhd`]:\n offsetFullhd !== undefined && offsetFullhd !== null,\n 'is-narrow': !!isNarrow,\n 'is-narrow-mobile': !!isNarrowMobile,\n 'is-narrow-tablet': !!isNarrowTablet,\n 'is-narrow-touch': !!isNarrowTouch,\n 'is-narrow-desktop': !!isNarrowDesktop,\n 'is-narrow-widescreen': !!isNarrowWidescreen,\n 'is-narrow-fullhd': !!isNarrowFullhd,\n });\n\n const columnClasses = classNames(\n mainClass,\n columnSpecificClasses,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={columnClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Possible values for the Bulma columns gap size.\n */\nexport type BulmaGapSize =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | '0'\n | '1'\n | '2'\n | '3'\n | '4'\n | '5'\n | '6'\n | '7'\n | '8';\n\n/**\n * Props for the Columns component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for columns.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {boolean} [isCentered] - Center the columns container.\n * @property {boolean} [isGapless] - Remove all column gaps.\n * @property {boolean} [isMultiline] - Allow columns to wrap to multiple lines.\n * @property {boolean} [isVCentered] - Vertically center columns.\n * @property {boolean} [isMobile] - Only apply columns styles on mobile.\n * @property {boolean} [isDesktop] - Only apply columns styles on desktop.\n * @property {BulmaGapSize} [gapSize] - Gap size for all breakpoints.\n * @property {BulmaGapSize} [gapSizeMobile] - Gap size for mobile.\n * @property {BulmaGapSize} [gapSizeTablet] - Gap size for tablet.\n * @property {BulmaGapSize} [gapSizeDesktop] - Gap size for desktop.\n * @property {BulmaGapSize} [gapSizeWidescreen] - Gap size for widescreen.\n * @property {BulmaGapSize} [gapSizeFullhd] - Gap size for fullhd.\n * @property {React.ReactNode} [children] - Columns to render within the container.\n */\nexport interface ColumnsProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n isCentered?: boolean;\n isGapless?: boolean;\n isMultiline?: boolean;\n isVCentered?: boolean;\n isMobile?: boolean;\n isDesktop?: boolean;\n\n gapSize?: BulmaGapSize;\n gapSizeMobile?: BulmaGapSize;\n gapSizeTablet?: BulmaGapSize;\n gapSizeDesktop?: BulmaGapSize;\n gapSizeWidescreen?: BulmaGapSize;\n gapSizeFullhd?: BulmaGapSize;\n\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Columns container for flexible, responsive layouts.\n *\n * @function\n * @param {ColumnsProps} props - Props for the Columns component.\n * @returns {JSX.Element} The rendered columns container.\n * @see {@link https://bulma.io/documentation/columns/ | Bulma Columns documentation}\n */\nexport const Columns: React.FC<ColumnsProps> = ({\n className,\n textColor,\n color: _fieldColor,\n bgColor,\n isCentered,\n isGapless,\n isMultiline,\n isVCentered,\n isMobile,\n isDesktop,\n gapSize,\n gapSizeMobile,\n gapSizeTablet,\n gapSizeDesktop,\n gapSizeWidescreen,\n gapSizeFullhd,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('columns');\n\n // Build gap classes with prefixes\n const gapClasses = usePrefixedClassNames('', {\n [`is-${gapSize}`]: gapSize !== undefined && gapSize !== null,\n [`is-${gapSizeMobile}-mobile`]:\n gapSizeMobile !== undefined && gapSizeMobile !== null,\n [`is-${gapSizeTablet}-tablet`]:\n gapSizeTablet !== undefined && gapSizeTablet !== null,\n [`is-${gapSizeDesktop}-desktop`]:\n gapSizeDesktop !== undefined && gapSizeDesktop !== null,\n [`is-${gapSizeWidescreen}-widescreen`]:\n gapSizeWidescreen !== undefined && gapSizeWidescreen !== null,\n [`is-${gapSizeFullhd}-fullhd`]:\n gapSizeFullhd !== undefined && gapSizeFullhd !== null,\n 'is-centered': !!isCentered,\n 'is-gapless': !!isGapless,\n 'is-multiline': !!isMultiline,\n 'is-vcentered': !!isVCentered,\n 'is-mobile': !!isMobile,\n 'is-desktop': !!isDesktop,\n });\n\n const columnsClasses = classNames(\n mainClass,\n gapClasses,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={columnsClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\nconst validBreadcrumbAlignments = ['centered', 'right'] as const;\n/**\n * Valid alignment values for the Breadcrumb component.\n */\nexport type BreadcrumbAlignment = (typeof validBreadcrumbAlignments)[number];\n\nconst validBreadcrumbSeparators = [\n 'arrow',\n 'bullet',\n 'dot',\n 'succeeds',\n] as const;\n/**\n * Valid separator values for the Breadcrumb component.\n */\nexport type BreadcrumbSeparator = (typeof validBreadcrumbSeparators)[number];\n\nconst validBreadcrumbSizes = ['small', 'medium', 'large'] as const;\n/**\n * Valid size values for the Breadcrumb component.\n */\nexport type BreadcrumbSize = (typeof validBreadcrumbSizes)[number];\n\n/**\n * Props for the Breadcrumb component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {BreadcrumbAlignment} [alignment] - Alignment modifier for the breadcrumb.\n * @property {BreadcrumbSeparator} [separator] - Separator style for the breadcrumb.\n * @property {BreadcrumbSize} [size] - Size modifier for the breadcrumb.\n * @property {React.ReactNode} [children] - Breadcrumb items (e.g., \"a\" or \"span\" html elements).\n */\nexport interface BreadcrumbProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n alignment?: BreadcrumbAlignment;\n separator?: BreadcrumbSeparator;\n size?: BreadcrumbSize;\n children?: React.ReactNode;\n}\n\n/**\n * Breadcrumb component for rendering a styled Bulma breadcrumb navigation.\n *\n * Supports alignment, separator styles, and sizes.\n *\n * @function\n * @param {BreadcrumbProps} props - Props for the Breadcrumb component.\n * @returns {JSX.Element} The rendered breadcrumb element.\n * @see {@link https://bulma.io/documentation/components/breadcrumb/ | Bulma Breadcrumb documentation}\n */\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({\n className,\n alignment,\n separator,\n size,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('breadcrumb', {\n [`is-${alignment}`]:\n alignment && validBreadcrumbAlignments.includes(alignment),\n [`has-${separator}-separator`]:\n separator && validBreadcrumbSeparators.includes(separator),\n [`is-${size}`]: size && validBreadcrumbSizes.includes(size),\n });\n\n // Combine prefixed Bulma classes with unprefixed user className and prefixed helper classes\n const breadcrumbClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <nav className={breadcrumbClasses} aria-label=\"breadcrumbs\" {...rest}>\n <ul>{children}</ul>\n </nav>\n );\n};\n","import React from 'react';\nimport {\n classNames,\n usePrefixedClassNames,\n prefixedClassNames,\n} from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { useConfig } from '../helpers/Config';\n\n/**\n * Props for the Card component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the card.\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the card.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the card.\n * @property {boolean} [hasShadow] - Whether the card has a shadow (default: true).\n * @property {React.ReactNode} [header] - Card header content, rendered inside `.card-header-title`.\n * @property {boolean} [headerCentered] - If true, centers the header title.\n * @property {React.ReactNode} [headerIcon] - Card header icon, rendered as a sibling to the header title.\n * @property {React.ReactNode|React.ReactNode[]} [footer] - Card footer content, each wrapped in `.card-footer-item`.\n * @property {React.ReactNode|string} [image] - Card image node or image src string.\n * @property {string} [imageAlt] - Alternate text for the card image.\n * @property {React.ReactNode} [children] - Card content.\n */\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n hasShadow?: boolean;\n header?: React.ReactNode;\n headerCentered?: boolean;\n headerIcon?: React.ReactNode;\n footer?: React.ReactNode | React.ReactNode[];\n image?: React.ReactNode | string;\n imageAlt?: string;\n children?: React.ReactNode;\n}\n\n// Always wrap each footer item in .card-footer-item\nconst renderFooter = (\n footer: CardProps['footer'],\n classPrefix: string | undefined\n) => {\n if (!footer) return null;\n const items = Array.isArray(footer) ? footer : [footer];\n return items.map((item, idx) => (\n <span\n className={prefixedClassNames(classPrefix, 'card-footer-item')}\n key={idx}\n >\n {item}\n </span>\n ));\n};\n\n// Check if children contain any Card compound components\nconst hasCompoundComponents = (children: React.ReactNode): boolean => {\n return React.Children.toArray(children).some(child => {\n if (!React.isValidElement(child)) return false;\n\n // Direct comparison with our compound component functions\n return (\n child.type === CardHeader ||\n child.type === CardContent ||\n child.type === CardImage ||\n child.type === CardFooter ||\n child.type === CardFooterItem ||\n child.type === CardHeaderIcon\n );\n });\n};\n\n/**\n * Card component for rendering a styled Bulma card.\n *\n * @function\n * @param {CardProps} props - Props for the Card component.\n * @returns {JSX.Element} The rendered card element.\n * @see {@link https://bulma.io/documentation/components/card/ | Bulma Card documentation}\n */\nconst CardComponent: React.FC<CardProps> = ({\n className,\n children,\n textColor,\n bgColor,\n hasShadow = true,\n header,\n headerCentered,\n headerIcon,\n footer,\n image,\n imageAlt,\n ...props\n}) => {\n const { classPrefix } = useConfig();\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('card', {\n 'is-shadowless': !hasShadow,\n });\n\n // Combine prefixed Bulma classes with unprefixed user className and prefixed helper classes\n const cardClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n // Render header with optional icon and is-centered modifier\n const renderHeader = (\n header: React.ReactNode,\n headerIcon: React.ReactNode,\n headerCentered: boolean | undefined,\n classPrefix: string | undefined\n ) => {\n if (!header && !headerIcon) return null;\n return (\n <header className={prefixedClassNames(classPrefix, 'card-header')}>\n {header && (\n <div\n className={prefixedClassNames(classPrefix, 'card-header-title', {\n 'is-centered': headerCentered,\n })}\n >\n {header}\n </div>\n )}\n {headerIcon}\n </header>\n );\n };\n\n return (\n <div className={cardClasses} {...rest}>\n {renderHeader(header, headerIcon, headerCentered, classPrefix)}\n {image && (\n <div className={prefixedClassNames(classPrefix, 'card-image')}>\n {typeof image === 'string' ? (\n <figure className={prefixedClassNames(classPrefix, 'image')}>\n <img src={image} alt={imageAlt ?? 'Card image'} />\n </figure>\n ) : (\n image\n )}\n </div>\n )}\n {/* Only render card-content if children is specified and doesn't contain compound components */}\n {typeof children !== 'undefined' &&\n children !== null &&\n children !== '' &&\n !hasCompoundComponents(children) && (\n <div className={prefixedClassNames(classPrefix, 'card-content')}>\n {children}\n </div>\n )}\n {/* Render children directly if they contain compound components */}\n {typeof children !== 'undefined' &&\n children !== null &&\n children !== '' &&\n hasCompoundComponents(children) &&\n children}\n {footer && (\n <footer className={prefixedClassNames(classPrefix, 'card-footer')}>\n {Array.isArray(footer)\n ? footer.map((item, idx) => (\n <span\n className={prefixedClassNames(\n classPrefix,\n 'card-footer-item'\n )}\n key={idx}\n >\n {item}\n </span>\n ))\n : footer && (\n <span\n className={prefixedClassNames(\n classPrefix,\n 'card-footer-item'\n )}\n >\n {footer}\n </span>\n )}\n </footer>\n )}\n </div>\n );\n};\n\n// Compound components for flexible composition\nexport interface CardHeaderProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n children?: React.ReactNode;\n centered?: boolean;\n}\n\nexport interface CardImageProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface CardFooterProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface CardFooterItemProps\n extends React.HTMLAttributes<HTMLSpanElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface CardHeaderTitleProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n centered?: boolean;\n}\n\nexport interface CardHeaderIconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nconst CardHeader: React.FC<CardHeaderProps> = ({\n className,\n children,\n centered,\n ...props\n}) => {\n const { classPrefix } = useConfig();\n\n // Check if children contains a CardHeaderTitle component\n const hasHeaderTitle = React.Children.toArray(children).some(\n child =>\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n child.type === CardHeaderTitle\n );\n\n const headerClasses = usePrefixedClassNames('card-header');\n\n return (\n <header className={classNames(headerClasses, className)} {...props}>\n {hasHeaderTitle ? (\n children\n ) : (\n <div\n className={classNames(\n prefixedClassNames(classPrefix, 'card-header-title', {\n 'is-centered': centered,\n }),\n className\n )}\n >\n {children}\n </div>\n )}\n </header>\n );\n};\n\nconst CardHeaderTitle: React.FC<CardHeaderTitleProps> = ({\n className,\n children,\n centered,\n ...props\n}) => (\n <div\n className={classNames(\n usePrefixedClassNames('card-header-title', {\n 'is-centered': centered,\n }),\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\nconst CardHeaderIcon: React.FC<CardHeaderIconProps> = ({\n className,\n children,\n ...props\n}) => (\n <button\n className={classNames(usePrefixedClassNames('card-header-icon'), className)}\n aria-label={props['aria-label'] || 'more options'}\n {...props}\n >\n {children}\n </button>\n);\n\nconst CardImage: React.FC<CardImageProps> = ({\n className,\n children,\n ...props\n}) => (\n <div\n className={classNames(usePrefixedClassNames('card-image'), className)}\n {...props}\n >\n {children}\n </div>\n);\n\nconst CardContent: React.FC<CardContentProps> = ({\n className,\n children,\n ...props\n}) => (\n <div\n className={classNames(usePrefixedClassNames('card-content'), className)}\n {...props}\n >\n {children}\n </div>\n);\n\nconst CardFooter: React.FC<CardFooterProps> = ({\n className,\n children,\n ...props\n}) => (\n <footer\n className={classNames(usePrefixedClassNames('card-footer'), className)}\n {...props}\n >\n {children}\n </footer>\n);\n\nconst CardFooterItem: React.FC<CardFooterItemProps> = ({\n className,\n children,\n ...props\n}) => (\n <span\n className={classNames(usePrefixedClassNames('card-footer-item'), className)}\n {...props}\n >\n {children}\n </span>\n);\n\n// Create a type that extends the Card component with compound components\ntype CardWithCompounds = typeof CardComponent & {\n Header: typeof CardHeader & {\n Title: typeof CardHeaderTitle;\n Icon: typeof CardHeaderIcon;\n };\n Image: typeof CardImage;\n Content: typeof CardContent;\n Footer: typeof CardFooter;\n FooterItem: typeof CardFooterItem;\n};\n\n// Cast Card to the compound type and assign compound components\nconst CardWithSubComponents = CardComponent as CardWithCompounds;\n\n// Create CardHeader with nested Title and Icon components\nconst CardHeaderWithTitle = CardHeader as typeof CardHeader & {\n Title: typeof CardHeaderTitle;\n Icon: typeof CardHeaderIcon;\n};\nCardHeaderWithTitle.Title = CardHeaderTitle;\nCardHeaderWithTitle.Icon = CardHeaderIcon;\n\nCardWithSubComponents.Header = CardHeaderWithTitle;\nCardWithSubComponents.Image = CardImage;\nCardWithSubComponents.Content = CardContent;\nCardWithSubComponents.Footer = CardFooter;\nCardWithSubComponents.FooterItem = CardFooterItem;\n\n// Export the compound component\nexport { CardWithSubComponents as Card };\n\n// Only for test coverage\nexport const __test_exports__ = { renderFooter };\n","import React, { useState, useRef, useEffect } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Checks if code is running in a browser environment.\n * @param win - Window object.\n * @param doc - Document object.\n * @returns {boolean} True if in browser, false otherwise.\n */\nexport const isBrowser = (win?: typeof window, doc?: typeof document) =>\n typeof win !== 'undefined' && typeof doc !== 'undefined';\n\n/**\n * Props for the Dropdown component.\n *\n * @property {React.ReactNode} label - The dropdown button content.\n * @property {React.ReactNode} children - The menu items.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {string} [menuClassName] - Additional CSS classes for the dropdown menu.\n * @property {boolean} [active] - Whether the dropdown is open (controlled).\n * @property {boolean} [up] - Dropdown direction up.\n * @property {boolean} [right] - Dropdown aligned to the right.\n * @property {boolean} [hoverable] - Dropdown opens on hover.\n * @property {boolean} [disabled] - Disables the dropdown trigger.\n * @property {(active: boolean) => void} [onActiveChange] - Called when active state changes.\n * @property {boolean} [closeOnClick=true] - Close dropdown when clicking a menu item.\n * @property {string} [id] - ID for the root element.\n */\nexport interface DropdownProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n label: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n menuClassName?: string;\n active?: boolean;\n up?: boolean;\n right?: boolean;\n hoverable?: boolean;\n disabled?: boolean;\n onActiveChange?: (active: boolean) => void;\n closeOnClick?: boolean;\n id?: string;\n}\n\n/**\n * Bulma Dropdown component.\n *\n * @function\n * @param {DropdownProps} props - Props for the Dropdown component.\n * @returns {JSX.Element} The rendered dropdown.\n * @see {@link https://bulma.io/documentation/components/dropdown/ | Bulma Dropdown documentation}\n */\nconst DropdownComponent: React.FC<DropdownProps> = ({\n label,\n children,\n className,\n menuClassName,\n active: activeProp,\n up,\n right,\n hoverable,\n disabled,\n onActiveChange,\n closeOnClick = true,\n id,\n ...props\n}) => {\n const [active, setActive] = useState<boolean>(!!activeProp);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('dropdown', {\n 'is-active': active,\n 'is-up': up,\n 'is-right': right,\n 'is-hoverable': hoverable,\n 'is-disabled': disabled,\n });\n\n const buttonClass = usePrefixedClassNames('button');\n\n // Controlled mode support\n useEffect(() => {\n if (typeof activeProp === 'boolean') setActive(activeProp);\n }, [activeProp]);\n\n // SSR-safe outside click\n useEffect(() => {\n if (!active) return;\n\n if (!isBrowser(window, document)) return;\n\n const handleClick = (e: MouseEvent) => {\n /* istanbul ignore next: dropdownRef.current is never null while the listener is attached */\n if (!dropdownRef.current?.contains(e.target as Node)) {\n setActive(false);\n onActiveChange?.(false);\n }\n };\n document.addEventListener('mousedown', handleClick);\n return () => document.removeEventListener('mousedown', handleClick);\n }, [active, onActiveChange]);\n\n const handleToggle = () => {\n /* istanbul ignore next: guard is enforced by button[disabled] at the DOM level */\n if (disabled) return;\n\n const newActive = !active;\n setActive(newActive);\n onActiveChange?.(newActive);\n };\n\n const handleMenuClick = () => {\n if (closeOnClick) {\n setActive(false);\n onActiveChange?.(false);\n }\n };\n\n const dropdownClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <div\n className={dropdownClasses}\n ref={dropdownRef}\n id={id}\n data-testid=\"dropdown-root\"\n {...rest}\n >\n <div className={usePrefixedClassNames('dropdown-trigger')}>\n <button\n className={buttonClass}\n aria-haspopup=\"true\"\n aria-controls={id ? `${id}-menu` : undefined}\n aria-expanded={active}\n onClick={handleToggle}\n disabled={disabled}\n type=\"button\"\n >\n <span>{label}</span>\n <span\n className={usePrefixedClassNames('icon', 'is-small')}\n aria-hidden=\"true\"\n >\n <i className=\"fas fa-angle-down\" />\n </span>\n </button>\n </div>\n <div\n className={classNames(\n usePrefixedClassNames('dropdown-menu'),\n menuClassName\n )}\n id={id ? `${id}-menu` : undefined}\n role=\"menu\"\n data-testid=\"dropdown-menu\"\n >\n <div\n className={usePrefixedClassNames('dropdown-content')}\n onClick={handleMenuClick}\n tabIndex={-1}\n >\n {children}\n </div>\n </div>\n </div>\n );\n};\n\n/**\n * Props for the DropdownItem component.\n *\n * @property {boolean} [active] - Whether the item is active.\n * @property {string} [className] - Additional CSS classes.\n * @property {'a'|'div'|'button'} [as] - The element type to render.\n * @property {React.ReactNode} [children] - Item content.\n */\nexport interface DropdownItemProps\n extends Omit<React.HTMLAttributes<HTMLElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n active?: boolean;\n className?: string;\n as?: 'a' | 'div' | 'button';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Dropdown item.\n *\n * @function\n * @param {DropdownItemProps} props - Props for the DropdownItem component.\n * @returns {JSX.Element} The rendered dropdown item.\n */\nexport const DropdownItem: React.FC<DropdownItemProps> = ({\n children,\n active,\n className,\n as: Component = 'a',\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n return (\n <Component\n className={classNames(\n usePrefixedClassNames('dropdown-item', {\n 'is-active': active,\n }),\n bulmaHelperClasses,\n className\n )}\n tabIndex={0}\n role=\"menuitem\"\n data-testid=\"dropdown-item\"\n {...rest}\n >\n {children}\n </Component>\n );\n};\n\n/**\n * Bulma Dropdown divider.\n *\n * @returns {JSX.Element} The divider element.\n */\nexport const DropdownDivider: React.FC = () => (\n <hr className={usePrefixedClassNames('dropdown-divider')} />\n);\n\n// Assign static subcomponents\nexport const Dropdown = Object.assign(DropdownComponent, {\n Item: DropdownItem,\n Divider: DropdownDivider,\n});\n\nexport default Dropdown;\n","import React, { createContext, useContext } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n// Context to track MenuList nesting level\nconst MenuListLevelContext = createContext(0);\n\n/**\n * Props for the Menu component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} children - Menu content.\n */\nexport interface MenuProps\n extends Omit<React.HTMLAttributes<HTMLElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * Bulma Menu component.\n *\n * @function\n * @param {MenuProps} props - Props for the Menu component.\n * @returns {JSX.Element} The rendered menu.\n * @see {@link https://bulma.io/documentation/components/menu/ | Bulma Menu documentation}\n */\nconst MenuComponent: React.FC<MenuProps> = ({\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('menu');\n\n return (\n <aside\n className={classNames(bulmaClasses, bulmaHelperClasses, className)}\n {...rest}\n >\n {children}\n </aside>\n );\n};\n\n/**\n * Props for the MenuLabel component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} children - Label content.\n */\nexport interface MenuLabelProps\n extends Omit<\n React.HTMLAttributes<HTMLParagraphElement>,\n keyof BulmaClassesProps\n >,\n BulmaClassesProps {\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * Bulma Menu label component.\n *\n * @function\n * @param {MenuLabelProps} props - Props for the MenuLabel component.\n * @returns {JSX.Element} The rendered menu label.\n */\nexport const MenuLabel: React.FC<MenuLabelProps> = ({\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n\n return (\n <p\n className={classNames(\n usePrefixedClassNames('menu-label'),\n className,\n bulmaHelperClasses\n )}\n {...rest}\n >\n {children}\n </p>\n );\n};\n\n/**\n * Props for the MenuList component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} children - List items.\n */\nexport interface MenuListProps\n extends Omit<React.HTMLAttributes<HTMLUListElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * MenuList applies `menu-list` class only at the top level (not for nested lists).\n *\n * @function\n * @param {MenuListProps} props - Props for the MenuList component.\n * @returns {JSX.Element} The rendered menu list.\n */\nexport const MenuList: React.FC<MenuListProps> = ({\n className,\n children,\n ...props\n}) => {\n const level = useContext(MenuListLevelContext);\n const { bulmaHelperClasses, rest } = useBulmaClasses(props);\n\n const ulClass = classNames(className, bulmaHelperClasses, {\n [usePrefixedClassNames('menu-list')]: level === 0,\n });\n\n // Increment level for nested MenuLists\n return (\n <MenuListLevelContext.Provider value={level + 1}>\n <ul className={ulClass} {...rest}>\n {children}\n </ul>\n </MenuListLevelContext.Provider>\n );\n};\n\n/**\n * Props for the MenuItem component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [active] - Whether the item is active.\n * @property {string} [href] - Href for link items.\n * @property {React.ElementType} [as] - Render as a custom component.\n * @property {React.ReactNode} children - Item content and optional nested MenuList.\n */\nexport interface MenuItemProps\n extends Omit<React.LiHTMLAttributes<HTMLLIElement>, keyof BulmaClassesProps>,\n BulmaClassesProps {\n className?: string;\n children: React.ReactNode;\n active?: boolean;\n href?: string;\n as?: React.ElementType;\n [key: string]: unknown;\n}\n\n/**\n * MenuItem supports `as` prop for custom link components, e.g., react-router-dom Link.\n *\n * @function\n * @param {MenuItemProps} props - Props for the MenuItem component.\n * @returns {JSX.Element} The rendered menu item.\n */\nexport const MenuItem: React.FC<MenuItemProps> = ({\n className,\n children,\n active,\n href,\n as: Component = 'a',\n 'data-testid': testId,\n ...rest\n}) => {\n const { bulmaHelperClasses, rest: bulmaRest } = useBulmaClasses(rest);\n const itemClass = classNames(\n { [usePrefixedClassNames('is-active')]: active },\n bulmaHelperClasses\n );\n\n // Standard <li> props\n const { style, id, title, role, tabIndex, ...linkProps } = bulmaRest;\n\n // Split children into label and nested MenuList(s)\n const labelChildren: React.ReactNode[] = [];\n const nestedMenuLists: React.ReactNode[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child) && child.type === MenuList) {\n nestedMenuLists.push(child);\n } else {\n labelChildren.push(child);\n }\n });\n\n // href/to should go to the link component\n if (Component === 'a' && href) {\n (linkProps as Record<string, unknown>).href = href;\n }\n if (Object.prototype.hasOwnProperty.call(rest, 'to')) {\n (linkProps as Record<string, unknown>).to = rest.to;\n }\n\n return (\n <li\n className={className}\n data-testid={testId}\n style={style as React.CSSProperties | undefined}\n id={id as string | undefined}\n title={title as string | undefined}\n role={role as React.AriaRole | undefined}\n tabIndex={tabIndex as number | undefined}\n >\n <Component className={itemClass} {...linkProps}>\n {labelChildren}\n </Component>\n {nestedMenuLists}\n </li>\n );\n};\n\n// Attach static subcomponents\nexport const Menu = Object.assign(MenuComponent, {\n Label: MenuLabel,\n List: MenuList,\n Item: MenuItem,\n});\n\nexport default Menu;\n","import React from 'react';\nimport {\n classNames,\n usePrefixedClassNames,\n prefixedClassNames,\n} from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { useConfig } from '../helpers/Config';\n\n/**\n * Props for the Message component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [title] - Title displayed in the message header.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma or 'inherit'/'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the message.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma or 'inherit'/'current').\n * @property {() => void} [onClose] - Called when the close button is clicked.\n * @property {React.ReactNode} [children] - Message body content.\n */\nexport interface MessageProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'title'>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n title?: React.ReactNode;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n onClose?: () => void;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma-styled Message component.\n *\n * Supports Bulma helper classes, color, and an optional close button.\n *\n * @function\n * @param {MessageProps} props - Props for the Message component.\n * @returns {JSX.Element} The rendered message.\n * @see {@link https://bulma.io/documentation/components/message/ | Bulma Message documentation}\n */\nconst MessageComponent: React.FC<MessageProps> = ({\n className,\n title,\n textColor,\n color,\n bgColor,\n onClose,\n children,\n ...props\n}) => {\n const { classPrefix } = useConfig();\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('message', {\n [`is-${color}`]: color,\n });\n const deleteClass = usePrefixedClassNames('delete');\n\n const messageClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <article className={messageClasses} {...rest} data-testid=\"message\">\n {(title || onClose) && (\n <div className={prefixedClassNames(classPrefix, 'message-header')}>\n {title && <span>{title}</span>}\n {onClose && (\n <button\n className={deleteClass}\n aria-label=\"delete\"\n onClick={onClose}\n type=\"button\"\n data-testid=\"message-close\"\n />\n )}\n </div>\n )}\n {children && (\n <div\n className={prefixedClassNames(classPrefix, 'message-body')}\n data-testid=\"message-body\"\n >\n {children}\n </div>\n )}\n </article>\n );\n};\n\n// Compound components for flexible composition\nexport interface MessageHeaderProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface MessageBodyProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nconst MessageHeader: React.FC<MessageHeaderProps> = ({\n className,\n children,\n ...props\n}) => (\n <div\n className={classNames(usePrefixedClassNames('message-header'), className)}\n {...props}\n >\n {children}\n </div>\n);\n\nconst MessageBody: React.FC<MessageBodyProps> = ({\n className,\n children,\n ...props\n}) => (\n <div\n className={classNames(usePrefixedClassNames('message-body'), className)}\n {...props}\n >\n {children}\n </div>\n);\n\n// Create a type that extends the Message component with compound components\ntype MessageWithCompounds = typeof MessageComponent & {\n Header: typeof MessageHeader;\n Body: typeof MessageBody;\n};\n\n// Cast Message to the compound type and assign compound components\nconst MessageWithSubComponents = MessageComponent as MessageWithCompounds;\nMessageWithSubComponents.Header = MessageHeader;\nMessageWithSubComponents.Body = MessageBody;\n\n// Export the compound component\nexport { MessageWithSubComponents as Message };\n\nexport default MessageWithSubComponents;\n","import React from 'react';\nimport {\n classNames,\n usePrefixedClassNames,\n prefixedClassNames,\n} from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { useConfig } from '../helpers/Config';\n\n/**\n * Props for the Modal component.\n *\n * @property {boolean} [active] - Whether the modal is open/visible.\n * @property {boolean} [isActive] - Alias for `active`. Whether the modal is open/visible.\n * @property {() => void} [onClose] - Callback invoked when modal close is requested (background click or close button).\n * @property {string} [className] - Additional CSS classes for the modal.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for modal content.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for modal content.\n * @property {React.ReactNode} [modalCardTitle] - Title for modal card variant (legacy API).\n * @property {React.ReactNode} [modalCardFoot] - Footer for modal card variant (legacy API).\n * @property {'card'|'content'} [type] - Modal type ('card' for modal-card, 'content' for modal-content). Legacy API only.\n * @property {React.ReactNode} [children] - Modal body/content or compound components.\n */\nexport interface ModalProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color' | 'title'>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n active?: boolean;\n isActive?: boolean; // Alias for active\n onClose?: () => void;\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n modalCardTitle?: React.ReactNode;\n modalCardFoot?: React.ReactNode;\n type?: 'card' | 'content';\n children?: React.ReactNode;\n}\n\n/**\n * Props for Modal.Background component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalBackgroundProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Content component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card.Head component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardHeadProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card.Title component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardTitleProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card.Body component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardBodyProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Card.Foot component.\n *\n * @property {string} [className] - Additional CSS classes.\n */\nexport interface ModalCardFootProps extends React.HTMLAttributes<HTMLElement> {\n className?: string;\n}\n\n/**\n * Props for Modal.Close component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {'small' | 'medium' | 'large'} [size] - Size of the close button (only applies to 'floating' variant).\n * @property {'delete' | 'floating'} [variant] - Button variant. 'delete' (default) for modal card headers, 'floating' for overlay close button.\n */\nexport interface ModalCloseProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n className?: string;\n size?: 'small' | 'medium' | 'large';\n variant?: 'delete' | 'floating';\n}\n\n/**\n * Modal.Background - Renders the modal background overlay.\n *\n * @param {ModalBackgroundProps} props - Component props\n * @returns {JSX.Element} Modal background element\n */\nconst ModalBackground: React.FC<ModalBackgroundProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames(\n usePrefixedClassNames('modal-background'),\n className\n );\n return <div className={classes} {...props} />;\n};\n\n/**\n * Modal.Content - Renders modal content wrapper for custom content.\n *\n * @param {ModalContentProps} props - Component props\n * @returns {JSX.Element} Modal content element\n */\nconst ModalContent: React.FC<ModalContentProps> = ({ className, ...props }) => {\n const classes = classNames(usePrefixedClassNames('modal-content'), className);\n return <div className={classes} {...props} />;\n};\n\n/**\n * Modal.Card.Head - Renders modal card header section.\n *\n * @param {ModalCardHeadProps} props - Component props\n * @returns {JSX.Element} Modal card header element\n */\nconst ModalCardHead: React.FC<ModalCardHeadProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames(\n usePrefixedClassNames('modal-card-head'),\n className\n );\n return <header className={classes} {...props} />;\n};\n\n/**\n * Modal.Card.Title - Renders modal card title.\n *\n * @param {ModalCardTitleProps} props - Component props\n * @returns {JSX.Element} Modal card title element\n */\nconst ModalCardTitle: React.FC<ModalCardTitleProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames(\n usePrefixedClassNames('modal-card-title'),\n className\n );\n return <p className={classes} {...props} />;\n};\n\n/**\n * Modal.Card.Body - Renders modal card body section.\n *\n * @param {ModalCardBodyProps} props - Component props\n * @returns {JSX.Element} Modal card body element\n */\nconst ModalCardBody: React.FC<ModalCardBodyProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames(\n usePrefixedClassNames('modal-card-body'),\n className\n );\n return <section className={classes} {...props} />;\n};\n\n/**\n * Modal.Card.Foot - Renders modal card footer section.\n *\n * @param {ModalCardFootProps} props - Component props\n * @returns {JSX.Element} Modal card footer element\n */\nconst ModalCardFoot: React.FC<ModalCardFootProps> = ({\n className,\n ...props\n}) => {\n const classes = classNames(\n usePrefixedClassNames('modal-card-foot'),\n className\n );\n return <footer className={classes} {...props} />;\n};\n\n/**\n * Modal.Card - Renders modal card wrapper with compound components.\n * Use with Modal.Card.Head, Modal.Card.Title, Modal.Card.Body, and Modal.Card.Foot.\n *\n * @param {ModalCardProps} props - Component props\n * @returns {JSX.Element} Modal card element\n */\nconst ModalCard: React.FC<ModalCardProps> & {\n Head: typeof ModalCardHead;\n Title: typeof ModalCardTitle;\n Body: typeof ModalCardBody;\n Foot: typeof ModalCardFoot;\n} = ({ className, ...props }) => {\n const classes = classNames(usePrefixedClassNames('modal-card'), className);\n return <div className={classes} {...props} />;\n};\n\nModalCard.Head = ModalCardHead;\nModalCard.Title = ModalCardTitle;\nModalCard.Body = ModalCardBody;\nModalCard.Foot = ModalCardFoot;\n\n/**\n * Modal.Close - Renders modal close button with two variant styles.\n *\n * @param {ModalCloseProps} props - Component props\n * @returns {JSX.Element} Close button element\n *\n * @remarks\n * Supports two variants:\n * - 'delete' (default): For use in modal card headers, renders with 'delete' class\n * - 'floating': For floating overlay close button, renders with 'modal-close' class\n *\n * The size prop only applies to the 'floating' variant.\n */\nconst ModalClose: React.FC<ModalCloseProps> = ({\n className,\n size = 'large',\n variant = 'delete',\n ...props\n}) => {\n const classes = classNames(\n usePrefixedClassNames(\n variant === 'delete' ? 'delete' : 'modal-close',\n variant === 'floating' && size && { [`is-${size}`]: true }\n ),\n className\n );\n return (\n <button className={classes} aria-label=\"close\" type=\"button\" {...props} />\n );\n};\n\n/**\n * Bulma Modal component, supporting both modal-card and modal-content variants.\n * Supports both legacy props-based API and compound component API.\n *\n * @param {ModalProps} props - Props for the Modal component.\n * @returns {JSX.Element} The rendered modal.\n *\n * @example\n * // Legacy API\n * <Modal active={isOpen} onClose={handleClose} modalCardTitle=\"Title\">\n * Content\n * </Modal>\n *\n * @example\n * // Compound Component API\n * <Modal isActive={isOpen}>\n * <Modal.Background onClick={handleClose} />\n * <Modal.Card>\n * <Modal.Card.Head>\n * <Modal.Card.Title>Title</Modal.Card.Title>\n * <Modal.Close onClick={handleClose} />\n * </Modal.Card.Head>\n * <Modal.Card.Body>Content</Modal.Card.Body>\n * </Modal.Card>\n * </Modal>\n *\n * @see {@link https://bulma.io/documentation/components/modal/ | Bulma Modal documentation}\n */\nconst ModalRoot: React.FC<ModalProps> & {\n Background: typeof ModalBackground;\n Content: typeof ModalContent;\n Card: typeof ModalCard;\n Close: typeof ModalClose;\n} = ({\n active,\n isActive,\n onClose,\n className,\n textColor,\n bgColor,\n modalCardTitle,\n modalCardFoot,\n type,\n children,\n ...props\n}) => {\n const { classPrefix } = useConfig();\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Support both active and isActive props\n const isModalActive = active ?? isActive ?? false;\n\n // Check if children contain compound components\n const hasCompoundComponents = React.Children.toArray(children).some(\n child =>\n React.isValidElement(child) &&\n (child.type === ModalBackground ||\n child.type === ModalContent ||\n child.type === ModalCard ||\n child.type === ModalClose)\n );\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('modal', {\n 'is-active': isModalActive,\n });\n const deleteClass = usePrefixedClassNames('delete');\n\n const modalClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n // If using compound components, render children as-is\n if (hasCompoundComponents) {\n return (\n <div className={modalClasses} {...rest} data-testid=\"modal\">\n {children}\n </div>\n );\n }\n\n // Legacy API: EXPLICIT type wins; fallback to auto detection if not provided\n let isModalCard: boolean;\n if (type === 'card') isModalCard = true;\n else if (type === 'content') isModalCard = false;\n else isModalCard = !!modalCardTitle || !!modalCardFoot;\n\n return (\n <div className={modalClasses} {...rest} data-testid=\"modal\">\n <div\n className={prefixedClassNames(classPrefix, 'modal-background')}\n onClick={onClose}\n data-testid=\"modal-background\"\n />\n {isModalCard ? (\n <div className={prefixedClassNames(classPrefix, 'modal-card')}>\n {modalCardTitle && (\n <header\n className={prefixedClassNames(classPrefix, 'modal-card-head')}\n >\n <p\n className={prefixedClassNames(classPrefix, 'modal-card-title')}\n >\n {modalCardTitle}\n </p>\n {onClose && (\n <button\n className={deleteClass}\n aria-label=\"close\"\n onClick={onClose}\n type=\"button\"\n data-testid=\"modal-close\"\n />\n )}\n </header>\n )}\n <section\n className={prefixedClassNames(classPrefix, 'modal-card-body')}\n data-testid=\"modal-body\"\n >\n {children}\n </section>\n {modalCardFoot && (\n <footer\n className={prefixedClassNames(classPrefix, 'modal-card-foot')}\n >\n {modalCardFoot}\n </footer>\n )}\n </div>\n ) : (\n <div\n className={prefixedClassNames(classPrefix, 'modal-content')}\n data-testid=\"modal-content\"\n >\n {children}\n </div>\n )}\n {/* Show floating close button for modal-content, or for modal-card when no header */}\n {(!isModalCard || (!modalCardTitle && onClose)) && onClose && (\n <button\n className={prefixedClassNames(classPrefix, 'modal-close', 'is-large')}\n aria-label=\"close\"\n onClick={onClose}\n type=\"button\"\n data-testid=\"modal-close-float\"\n />\n )}\n </div>\n );\n};\n\nModalRoot.Background = ModalBackground;\nModalRoot.Content = ModalContent;\nModalRoot.Card = ModalCard;\nModalRoot.Close = ModalClose;\n\nexport const Modal = ModalRoot;\nexport default Modal;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Navbar component.\n *\n * @property {string} [className] - Additional CSS classes for the navbar.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Color for text.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the navbar.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the navbar.\n * @property {boolean} [transparent] - Whether the navbar is transparent.\n * @property {'top'|'bottom'} [fixed] - Whether the navbar is fixed to the top or bottom.\n * @property {React.ReactNode} [children] - Navbar content.\n */\nexport interface NavbarProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n transparent?: boolean;\n fixed?: 'top' | 'bottom';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar component, supports subcomponents for structured navigation.\n *\n * @function\n * @param {NavbarProps} props - Props for the Navbar component.\n * @returns {JSX.Element} The rendered navbar.\n * @see {@link https://bulma.io/documentation/components/navbar/ | Bulma Navbar documentation}\n */\nexport const Navbar: React.FC<NavbarProps> & {\n Brand: typeof NavbarBrand;\n Item: typeof NavbarItem;\n Burger: typeof NavbarBurger;\n Menu: typeof NavbarMenu;\n Start: typeof NavbarStart;\n End: typeof NavbarEnd;\n Dropdown: typeof NavbarDropdown;\n DropdownMenu: typeof NavbarDropdownMenu;\n Divider: typeof NavbarDivider;\n} = ({\n className,\n textColor,\n bgColor,\n color,\n transparent,\n fixed,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('navbar', {\n [`is-${color}`]: color,\n 'is-transparent': transparent,\n [`is-fixed-${fixed}`]: fixed,\n });\n\n const navbarClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <nav\n className={navbarClasses}\n role=\"navigation\"\n aria-label=\"main navigation\"\n {...rest}\n >\n {children}\n </nav>\n );\n};\n\n/**\n * Props for the NavbarBrand component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the brand.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the brand.\n * @property {React.ReactNode} [children] - Brand content.\n */\nexport interface NavbarBrandProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar brand area (usually left side).\n *\n * @function\n * @param {NavbarBrandProps} props - Props for the NavbarBrand component.\n * @returns {JSX.Element} The rendered brand area.\n */\nexport const NavbarBrand: React.FC<NavbarBrandProps> = ({\n className,\n children,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n ...props,\n });\n\n return (\n <div\n className={classNames(\n usePrefixedClassNames('navbar-brand'),\n bulmaHelperClasses,\n className\n )}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\n/**\n * Props for the NavbarItem component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ElementType} [as] - Render as a custom component.\n * @property {boolean} [active] - Whether the item is active.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the item.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the item.\n * @property {React.ReactNode} [children] - Navbar item content.\n */\nexport interface NavbarItemProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n as?: React.ElementType;\n active?: boolean;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar item (link, button, etc).\n *\n * @function\n * @param {NavbarItemProps} props - Props for the NavbarItem component.\n * @returns {JSX.Element} The rendered item.\n */\nexport const NavbarItem: React.FC<NavbarItemProps> = ({\n className,\n as: Component = 'a',\n active,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n return (\n <Component\n className={classNames(\n usePrefixedClassNames('navbar-item', {\n 'is-active': active,\n }),\n bulmaHelperClasses,\n className\n )}\n {...rest}\n >\n {children}\n </Component>\n );\n};\n\n/**\n * Props for the NavbarBurger component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the burger.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the burger.\n * @property {boolean} [active] - Whether the burger is active.\n * @property {React.ReactNode} [children] - Custom content inside the burger.\n * @property {string} ['aria-label'] - Aria label for accessibility.\n * @property {boolean} ['aria-expanded'] - Aria expanded state.\n * @property {React.MouseEventHandler<HTMLButtonElement>} [onClick] - Click handler.\n */\nexport interface NavbarBurgerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n active?: boolean;\n children?: React.ReactNode;\n 'aria-label'?: string;\n 'aria-expanded'?: boolean;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\n/**\n * Bulma Navbar burger (responsive menu toggle).\n *\n * @function\n * @param {NavbarBurgerProps} props - Props for the NavbarBurger component.\n * @returns {JSX.Element} The rendered burger.\n */\nexport const NavbarBurger: React.FC<NavbarBurgerProps> = ({\n className,\n active,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n return (\n <button\n type=\"button\"\n className={classNames(\n usePrefixedClassNames('navbar-burger', {\n 'is-active': active,\n }),\n bulmaHelperClasses,\n className\n )}\n aria-label={props['aria-label'] || 'menu'}\n aria-expanded={props['aria-expanded'] ?? !!active}\n {...rest}\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n {children}\n </button>\n );\n};\n\n/**\n * Props for the NavbarMenu component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the menu.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the menu.\n * @property {boolean} [active] - Whether the menu is active.\n * @property {React.ReactNode} [children] - Menu content.\n */\nexport interface NavbarMenuProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n active?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar menu area (collapsible content).\n *\n * @function\n * @param {NavbarMenuProps} props - Props for the NavbarMenu component.\n * @returns {JSX.Element} The rendered menu.\n */\nexport const NavbarMenu: React.FC<NavbarMenuProps> = ({\n className,\n active,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n return (\n <div\n className={classNames(\n usePrefixedClassNames('navbar-menu', {\n 'is-active': active,\n }),\n bulmaHelperClasses,\n className\n )}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\n/**\n * Props for the NavbarStartEnd component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface NavbarStartEndProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar start area (left-aligned).\n *\n * @function\n * @param {NavbarStartEndProps} props - Props for the NavbarStart component.\n * @returns {JSX.Element} The rendered start area.\n */\nexport const NavbarStart: React.FC<NavbarStartEndProps> = ({\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n return (\n <div\n className={classNames(\n usePrefixedClassNames('navbar-start'),\n bulmaHelperClasses,\n className\n )}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\n/**\n * Bulma Navbar end area (right-aligned).\n *\n * @function\n * @param {NavbarStartEndProps} props - Props for the NavbarEnd component.\n * @returns {JSX.Element} The rendered end area.\n */\nexport const NavbarEnd: React.FC<NavbarStartEndProps> = ({\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n return (\n <div\n className={classNames(\n usePrefixedClassNames('navbar-end'),\n bulmaHelperClasses,\n className\n )}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\n/**\n * Props for the NavbarDropdown component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [right] - Dropdown aligned right.\n * @property {boolean} [up] - Dropdown opens upwards.\n * @property {boolean} [hoverable] - Dropdown opens on hover.\n * @property {boolean} [active] - Dropdown is open.\n * @property {React.ReactNode} [children] - Dropdown content.\n */\nexport interface NavbarDropdownProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n right?: boolean;\n up?: boolean;\n hoverable?: boolean;\n active?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar dropdown (for nested dropdown menus).\n *\n * @function\n * @param {NavbarDropdownProps} props - Props for the NavbarDropdown component.\n * @returns {JSX.Element} The rendered dropdown.\n */\nexport const NavbarDropdown: React.FC<NavbarDropdownProps> = ({\n className,\n right,\n up,\n hoverable,\n active,\n children,\n ...props\n}) => (\n <div\n className={classNames(\n usePrefixedClassNames('navbar-item', 'has-dropdown', {\n 'is-right': right,\n 'is-up': up,\n 'is-hoverable': hoverable,\n 'is-active': active,\n }),\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\n/**\n * Props for the NavbarDropdownMenu component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [right] - Dropdown aligned right.\n * @property {boolean} [up] - Dropdown opens upwards.\n * @property {React.ReactNode} [children] - Dropdown menu content.\n */\nexport interface NavbarDropdownMenuProps\n extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n right?: boolean;\n up?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Navbar dropdown menu container.\n *\n * @function\n * @param {NavbarDropdownMenuProps} props - Props for the NavbarDropdownMenu component.\n * @returns {JSX.Element} The rendered dropdown menu.\n */\nexport const NavbarDropdownMenu: React.FC<NavbarDropdownMenuProps> = ({\n className,\n right,\n up,\n children,\n ...props\n}) => (\n <div\n className={classNames(\n usePrefixedClassNames('navbar-dropdown', {\n 'is-right': right,\n 'is-up': up,\n }),\n className\n )}\n {...props}\n >\n {children}\n </div>\n);\n\n/**\n * Bulma Navbar divider.\n *\n * @param props - Standard hr props.\n * @returns {JSX.Element} The rendered divider.\n */\nexport const NavbarDivider: React.FC<\n React.HTMLAttributes<HTMLHRElement>\n> = props => (\n <hr className={usePrefixedClassNames('navbar-divider')} {...props} />\n);\n\n// Attach subcomponents\nNavbar.Brand = NavbarBrand;\nNavbar.Item = NavbarItem;\nNavbar.Burger = NavbarBurger;\nNavbar.Menu = NavbarMenu;\nNavbar.Start = NavbarStart;\nNavbar.End = NavbarEnd;\nNavbar.Dropdown = NavbarDropdown;\nNavbar.DropdownMenu = NavbarDropdownMenu;\nNavbar.Divider = NavbarDivider;\n\nexport default Navbar;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Pagination component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color for the pagination.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the pagination.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the pagination.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the pagination.\n * @property {'centered'|'right'} [align] - Alignment for the pagination.\n * @property {boolean} [rounded] - Renders pagination with rounded corners.\n * @property {number} [total] - Total number of pages.\n * @property {number} [current] - Current page.\n * @property {(page: number) => void} [onPageChange] - Page change callback.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Custom pagination content.\n */\nexport interface PaginationProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n size?: 'small' | 'medium' | 'large';\n align?: 'centered' | 'right';\n rounded?: boolean;\n total?: number;\n current?: number;\n onPageChange?: (page: number) => void;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for PaginationPrevious and PaginationNext components.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [disabled] - Whether previous/next is disabled.\n * @property {React.ReactNode} [children] - Button content.\n */\nexport interface PaginationPreviousNextProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n className?: string;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Pagination previous button.\n */\nexport const PaginationPrevious: React.FC<PaginationPreviousNextProps> = ({\n className,\n disabled,\n children,\n ...props\n}) => (\n <a\n className={classNames(\n usePrefixedClassNames('pagination-previous'),\n className,\n {\n 'is-disabled': disabled,\n }\n )}\n aria-disabled={disabled}\n tabIndex={disabled ? -1 : 0}\n {...props}\n onClick={\n disabled\n ? e => {\n e.preventDefault();\n e.stopPropagation();\n }\n : props.onClick\n }\n >\n {children}\n </a>\n);\n\n/**\n * Bulma Pagination next button.\n */\nexport const PaginationNext: React.FC<PaginationPreviousNextProps> = ({\n className,\n disabled,\n children,\n ...props\n}) => (\n <a\n className={classNames(usePrefixedClassNames('pagination-next'), className, {\n 'is-disabled': disabled,\n })}\n aria-disabled={disabled}\n tabIndex={disabled ? -1 : 0}\n {...props}\n onClick={\n disabled\n ? e => {\n e.preventDefault();\n e.stopPropagation();\n }\n : props.onClick\n }\n >\n {children}\n </a>\n);\n\n/**\n * Bulma Pagination navigation component.\n *\n * @function\n * @param {PaginationProps} props - Props for the Pagination component.\n * @returns {JSX.Element} The rendered pagination.\n * @see {@link https://bulma.io/documentation/components/pagination/ | Bulma Pagination documentation}\n */\nexport const Pagination: React.FC<PaginationProps> & {\n Link: typeof PaginationLink;\n List: typeof PaginationList;\n Ellipsis: typeof PaginationEllipsis;\n Previous: typeof PaginationPrevious;\n Next: typeof PaginationNext;\n} = ({\n color,\n textColor,\n bgColor,\n size,\n align,\n rounded,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('pagination', {\n [`is-${color}`]: color,\n [`is-${size}`]: size,\n [`is-${align}`]: align,\n 'is-rounded': rounded,\n });\n\n const paginationClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <nav\n className={paginationClasses}\n role=\"navigation\"\n aria-label=\"pagination\"\n {...rest}\n >\n {children}\n </nav>\n );\n};\n\n/**\n * Props for the PaginationList component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the list.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the list.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the list.\n * @property {React.ReactNode} [children] - List items.\n */\nexport interface PaginationListProps\n extends React.HTMLAttributes<HTMLUListElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Pagination list container.\n */\nexport const PaginationList: React.FC<PaginationListProps> = ({\n className,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n return (\n <ul\n className={classNames(\n usePrefixedClassNames('pagination-list'),\n bulmaHelperClasses,\n className\n )}\n {...rest}\n >\n {children}\n </ul>\n );\n};\n\n/**\n * Props for the PaginationLink component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {boolean} [active] - Whether the link is for the current page.\n * @property {boolean} [disabled] - Whether the link is disabled.\n * @property {React.ReactNode} [children] - Link content.\n */\nexport interface PaginationLinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n active?: boolean;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Pagination link (page number).\n */\nexport const PaginationLink: React.FC<PaginationLinkProps> = ({\n className,\n textColor,\n bgColor,\n active,\n disabled,\n onClick,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n if (disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (onClick) {\n onClick(e);\n }\n };\n\n return (\n <li>\n <a\n className={classNames(\n usePrefixedClassNames('pagination-link'),\n bulmaHelperClasses,\n className,\n {\n 'is-current': active,\n 'is-disabled': disabled,\n }\n )}\n aria-current={active ? 'page' : undefined}\n aria-disabled={disabled}\n tabIndex={disabled ? -1 : 0}\n onClick={handleClick}\n {...rest}\n >\n {children}\n </a>\n </li>\n );\n};\n\n/**\n * Bulma Pagination ellipsis element.\n *\n * @param props - Standard li props.\n * @returns {JSX.Element} The rendered ellipsis.\n */\nexport const PaginationEllipsis: React.FC<\n React.LiHTMLAttributes<HTMLLIElement>\n> = props => (\n <li>\n <span className={usePrefixedClassNames('pagination-ellipsis')} {...props}>\n …\n </span>\n </li>\n);\n\nPagination.Link = PaginationLink;\nPagination.List = PaginationList;\nPagination.Ellipsis = PaginationEllipsis;\nPagination.Previous = PaginationPrevious;\nPagination.Next = PaginationNext;\n\nexport default Pagination;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Panel component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the panel.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Panel content.\n */\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelHeading component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Heading content.\n */\nexport interface PanelHeadingProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelTabs component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Tabs content.\n */\nexport interface PanelTabsProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelBlock component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {boolean} [active] - Whether the block is active.\n * @property {React.ReactNode} [children] - Block content.\n */\nexport interface PanelBlockProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n className?: string;\n active?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelIcon component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Icon content.\n */\nexport interface PanelIconProps extends React.HTMLAttributes<HTMLSpanElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelInputBlock component.\n *\n * @property {string} [value] - Input value.\n * @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] - Input change handler.\n * @property {string} [placeholder] - Input placeholder.\n * @property {string} [iconClassName] - Icon class for left icon (default 'fas fa-search').\n */\nexport interface PanelInputBlockProps\n extends React.HTMLAttributes<HTMLDivElement> {\n value?: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n placeholder?: string;\n iconClassName?: string;\n}\n\n/**\n * Props for the PanelCheckboxBlock component.\n *\n * @property {boolean} [checked] - Whether the checkbox is checked.\n * @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] - Checkbox change handler.\n * @property {React.ReactNode} [children] - Label/content.\n */\nexport interface PanelCheckboxBlockProps\n extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'onChange'> {\n checked?: boolean;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the PanelButtonBlock component.\n *\n * @property {React.ReactNode} [children] - Button content.\n */\nexport interface PanelButtonBlockProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Panel component, supports various panel subcomponents.\n *\n * @function\n * @param {PanelProps} props - Props for the Panel component.\n * @returns {JSX.Element} The rendered panel.\n * @see {@link https://bulma.io/documentation/components/panel/ | Bulma Panel documentation}\n */\nexport const Panel: React.FC<PanelProps> & {\n Heading: typeof PanelHeading;\n Tabs: typeof PanelTabs;\n Block: typeof PanelBlock;\n Icon: typeof PanelIcon;\n InputBlock: typeof PanelInputBlock;\n CheckboxBlock: typeof PanelCheckboxBlock;\n ButtonBlock: typeof PanelButtonBlock;\n} = ({ color, className, children, ...props }) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('panel', {\n [`is-${color}`]: color,\n });\n\n const panelClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <nav className={panelClasses} {...rest}>\n {children}\n </nav>\n );\n};\n\n/**\n * Bulma Panel heading.\n */\nexport const PanelHeading: React.FC<PanelHeadingProps> = ({\n className,\n children,\n ...props\n}) => (\n <p\n className={classNames(usePrefixedClassNames('panel-heading'), className)}\n {...props}\n >\n {children}\n </p>\n);\n\n/**\n * Bulma Panel tabs.\n */\nexport const PanelTabs: React.FC<PanelTabsProps> = ({\n className,\n children,\n ...props\n}) => (\n <p\n className={classNames(usePrefixedClassNames('panel-tabs'), className)}\n {...props}\n >\n {children}\n </p>\n);\n\n/**\n * Bulma Panel block.\n */\nexport const PanelBlock: React.FC<PanelBlockProps> = ({\n className,\n active,\n children,\n ...props\n}) => (\n <a\n className={classNames(\n usePrefixedClassNames('panel-block', { 'is-active': active }),\n className\n )}\n {...props}\n >\n {children}\n </a>\n);\n\n/**\n * Bulma Panel icon.\n */\nexport const PanelIcon: React.FC<PanelIconProps> = ({\n className,\n children,\n ...props\n}) => (\n <span\n className={classNames(usePrefixedClassNames('panel-icon'), className)}\n {...props}\n >\n {children}\n </span>\n);\n\n/**\n * Bulma Panel input block.\n */\nexport const PanelInputBlock: React.FC<PanelInputBlockProps> = ({\n value,\n onChange,\n placeholder,\n iconClassName = 'fas fa-search',\n ...props\n}) => {\n const inputClass = usePrefixedClassNames('input');\n\n return (\n <div className={usePrefixedClassNames('panel-block')} {...props}>\n <p className={usePrefixedClassNames('control', 'has-icons-left')}>\n <input\n className={inputClass}\n type=\"text\"\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n />\n <span className={usePrefixedClassNames('icon', 'is-left')}>\n <i className={iconClassName} aria-hidden=\"true\"></i>\n </span>\n </p>\n </div>\n );\n};\n\n/**\n * Bulma Panel checkbox block.\n */\nexport const PanelCheckboxBlock: React.FC<PanelCheckboxBlockProps> = ({\n checked,\n onChange,\n children,\n ...props\n}) => (\n <label className={usePrefixedClassNames('panel-block')} {...props}>\n <input type=\"checkbox\" checked={checked} onChange={onChange} />\n {children}\n </label>\n);\n\n/**\n * Bulma Panel button block.\n */\nexport const PanelButtonBlock: React.FC<PanelButtonBlockProps> = ({\n children,\n className,\n ...props\n}) => (\n <div className={usePrefixedClassNames('panel-block')}>\n <button\n className={classNames(\n usePrefixedClassNames(\n 'button',\n 'is-link',\n 'is-outlined',\n 'is-fullwidth'\n ),\n className\n )}\n {...props}\n >\n {children}\n </button>\n </div>\n);\n\nPanel.Heading = PanelHeading;\nPanel.Tabs = PanelTabs;\nPanel.Block = PanelBlock;\nPanel.Icon = PanelIcon;\nPanel.InputBlock = PanelInputBlock;\nPanel.CheckboxBlock = PanelCheckboxBlock;\nPanel.ButtonBlock = PanelButtonBlock;\n\nexport default Panel;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Tabs component.\n *\n * @property {'centered'|'right'|'left'} [align] - Tab alignment.\n * @property {'small'|'medium'|'large'} [size] - Tab size.\n * @property {boolean} [fullwidth] - Tabs are fullwidth.\n * @property {boolean} [boxed] - Tabs are boxed style.\n * @property {boolean} [toggle] - Tabs are toggle style.\n * @property {boolean} [rounded] - Tabs are rounded (if toggle).\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color for the tabs.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Tab content.\n */\nexport interface TabsProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n align?: 'centered' | 'right' | 'left';\n size?: 'small' | 'medium' | 'large';\n fullwidth?: boolean;\n boxed?: boolean;\n toggle?: boolean;\n rounded?: boolean;\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the TabList component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Tab list items.\n */\nexport interface TabListProps extends React.HTMLAttributes<HTMLUListElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the TabItem component.\n *\n * @property {boolean} [active] - Whether the tab is active.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Tab content.\n * @property {React.MouseEventHandler<HTMLLIElement>} [onClick] - Click handler.\n */\nexport interface TabItemProps extends React.LiHTMLAttributes<HTMLLIElement> {\n active?: boolean;\n className?: string;\n children?: React.ReactNode;\n onClick?: React.MouseEventHandler<HTMLLIElement>;\n}\n\n/**\n * Bulma Tabs component with subcomponents for tab lists and items.\n *\n * @function\n * @param {TabsProps} props - Props for the Tabs component.\n * @returns {JSX.Element} The rendered tabs.\n * @see {@link https://bulma.io/documentation/components/tabs/ | Bulma Tabs documentation}\n */\nexport const Tabs: React.FC<TabsProps> & {\n List: typeof TabList;\n Item: typeof TabItem;\n} = ({\n align,\n size,\n fullwidth,\n boxed,\n toggle,\n rounded,\n color,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('tabs', {\n [`is-${align}`]: align,\n [`is-${size}`]: size,\n [`is-${color}`]: color,\n 'is-fullwidth': fullwidth,\n 'is-boxed': boxed,\n 'is-toggle': toggle,\n 'is-toggle-rounded': rounded,\n });\n\n const tabsClass = classNames(bulmaClasses, bulmaHelperClasses, className);\n return (\n <div className={tabsClass} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Bulma Tab list container.\n *\n * @function\n * @param {TabListProps} props - Props for the TabList component.\n * @returns {JSX.Element} The rendered tab list.\n */\nexport const TabList: React.FC<TabListProps> = ({\n className,\n children,\n ...props\n}) => (\n <ul className={classNames(className)} {...props}>\n {children}\n </ul>\n);\n\n/**\n * Bulma Tab item.\n *\n * @function\n * @param {TabItemProps} props - Props for the TabItem component.\n * @returns {JSX.Element} The rendered tab item.\n */\nexport const TabItem: React.FC<TabItemProps> = ({\n active,\n className,\n children,\n onClick,\n ...props\n}) => (\n <li\n className={classNames(\n { [usePrefixedClassNames('is-active')]: active },\n className\n )}\n onClick={onClick}\n {...props}\n >\n {children}\n </li>\n);\n\nTabs.List = TabList;\nTabs.Item = TabItem;\n\nexport default Tabs;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Block component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the block.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {React.ReactNode} [children] - Content to be rendered inside the block.\n */\nexport interface BlockProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Block component for rendering a styled Bulma block element.\n *\n * A block is a simple utility element that adds spacing (margin-bottom) between elements.\n * Supports Bulma helper classes for additional styling like text color, background color, and layout.\n *\n * @function\n * @param {BlockProps} props - Props for the Block component.\n * @returns {JSX.Element} The rendered block element.\n * @see {@link https://bulma.io/documentation/elements/block/ | Bulma Block documentation}\n */\nexport const Block: React.FC<BlockProps> = ({\n className,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('block');\n const blockClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <div className={blockClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Box component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the box.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {boolean} [hasShadow=true] - Whether the box has a shadow (default: true).\n * @property {React.ReactNode} [children] - Content to be rendered inside the box.\n */\nexport interface BoxProps\n /** @ignore */\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n hasShadow?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Box component for rendering a styled Bulma box element.\n *\n * Supports Bulma helper classes for styling and layout, with optional shadow control.\n *\n * @function\n * @param {BoxProps} props - Props for the Box component.\n * @returns {JSX.Element} The rendered box element.\n * @see {@link https://bulma.io/documentation/elements/box/ | Bulma Box documentation}\n */\nexport const Box: React.FC<BoxProps> = ({\n className,\n textColor,\n bgColor,\n hasShadow = true,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('box', {\n 'is-shadowless': !hasShadow,\n });\n\n const boxClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <div className={boxClasses} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Box;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Button component.\n *\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the button.\n * @property {'small' | 'normal' | 'medium' | 'large'} [size] - Button size.\n * @property {boolean} [isLight] - Use the light version of the color.\n * @property {boolean} [isRounded] - Button is fully rounded.\n * @property {boolean} [isLoading] - Button shows a loading spinner.\n * @property {boolean} [isStatic] - Button is static and non-interactive.\n * @property {boolean} [isFullWidth] - Button takes the full width of parent.\n * @property {boolean} [isOutlined] - Use outlined button style.\n * @property {boolean} [isInverted] - Use inverted color style.\n * @property {boolean} [isFocused] - Button is styled as focused.\n * @property {boolean} [isActive] - Button is styled as active.\n * @property {boolean} [isHovered] - Button is styled as hovered.\n * @property {boolean} [isDisabled] - Button is disabled.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {'a' | 'button'} [as] - Render as an anchor or button element.\n * @property {string} [href] - Specifies the URL for anchor buttons.\n * @property {React.MouseEventHandler<HTMLButtonElement> | React.MouseEventHandler<HTMLAnchorElement>} [onClick] - Click handler for the button or anchor.\n * @property {string} [target] - Target for anchor element.\n * @property {string} [rel] - Rel attribute for anchor element.\n * @property {React.ReactNode} [children] - Content to be rendered inside the button.\n */\nexport interface ButtonProps\n extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'color' | 'onClick'\n >,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n size?: 'small' | 'normal' | 'medium' | 'large';\n isLight?: boolean;\n isRounded?: boolean;\n isLoading?: boolean;\n isStatic?: boolean;\n isFullWidth?: boolean;\n isOutlined?: boolean;\n isInverted?: boolean;\n isFocused?: boolean;\n isActive?: boolean;\n isHovered?: boolean;\n isDisabled?: boolean;\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n as?: 'a' | 'button';\n href?: string;\n onClick?:\n | React.MouseEventHandler<HTMLButtonElement>\n | React.MouseEventHandler<HTMLAnchorElement>;\n target?: string;\n rel?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Button component for rendering a Bulma-styled button or anchor.\n *\n * Supports Bulma helper classes for colors, sizes, and various button states and modifiers.\n *\n * @function\n * @param {ButtonProps} props - Props for the Button component.\n * @returns {JSX.Element} The rendered button or anchor element.\n * @see {@link https://bulma.io/documentation/elements/button/ | Bulma Button documentation}\n */\nexport const Button: React.FC<ButtonProps> = ({\n color,\n size,\n isLight,\n isRounded,\n isLoading,\n isStatic,\n isFullWidth,\n isOutlined,\n isInverted,\n isFocused,\n isActive,\n isHovered,\n isDisabled,\n className,\n children,\n textColor,\n bgColor,\n as = 'button',\n href,\n onClick,\n target,\n rel,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Generate Bulma classes with prefix\n const bulmaClasses = usePrefixedClassNames('button', {\n [`is-${color}`]: color && validColors.includes(color),\n [`is-${size}`]: size,\n 'is-outlined': isOutlined,\n 'is-light': isLight,\n 'is-loading': isLoading,\n 'is-static': isStatic,\n 'is-disabled': isDisabled,\n 'is-rounded': isRounded,\n 'is-hovered': isHovered,\n 'is-focused': isFocused,\n 'is-active': isActive,\n 'is-inverted': isInverted,\n 'is-fullwidth': isFullWidth,\n });\n\n // Combine prefixed Bulma classes with unprefixed user className and prefixed helper classes\n const buttonClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n if (as === 'a') {\n // Create anchor-specific props by excluding button-specific ones\n const {\n type: _type,\n disabled: _disabled,\n form: _form,\n formAction: _formAction,\n formEncType: _formEncType,\n formMethod: _formMethod,\n formNoValidate: _formNoValidate,\n formTarget: _formTarget,\n name: _name,\n value: _value,\n autoFocus: _autoFocus,\n ...anchorRest\n } = rest as React.ButtonHTMLAttributes<HTMLButtonElement>;\n\n return (\n <a\n className={buttonClasses}\n href={href}\n target={target}\n rel={rel}\n aria-disabled={isDisabled}\n tabIndex={isDisabled ? -1 : undefined}\n onClick={\n isDisabled\n ? (e: React.MouseEvent<HTMLAnchorElement>) => e.preventDefault()\n : (onClick as\n | React.MouseEventHandler<HTMLAnchorElement>\n | undefined)\n }\n {...(anchorRest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n </a>\n );\n }\n\n return (\n <button\n className={buttonClasses}\n disabled={isDisabled}\n onClick={\n onClick as React.MouseEventHandler<HTMLButtonElement> | undefined\n }\n {...rest}\n >\n {children}\n </button>\n );\n};\n\nexport default Button;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Buttons component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the buttons group.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {boolean} [isCentered] - Center the group of buttons.\n * @property {boolean} [isRight] - Align the group of buttons to the right.\n * @property {boolean} [hasAddons] - Group buttons together as addons.\n * @property {React.ReactNode} children - The button elements to render inside the group.\n */\ninterface ButtonsProps\n extends React.HTMLAttributes<HTMLDivElement>,\n BulmaClassesProps {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n isCentered?: boolean;\n isRight?: boolean;\n hasAddons?: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Buttons component for rendering a group of Bulma-styled buttons.\n *\n * Supports Bulma helper classes for styling, color, and layout, including centering, right alignment, and grouping as addons.\n *\n * @function\n * @param {ButtonsProps} props - Props for the Buttons component.\n * @returns {JSX.Element} The rendered group of buttons.\n * @see {@link https://bulma.io/documentation/elements/button/#group | Bulma Button Group documentation}\n */\nexport const Buttons: React.FC<ButtonsProps> = ({\n className,\n textColor,\n bgColor,\n isCentered,\n isRight,\n hasAddons,\n children,\n ...props\n}) => {\n const buttonsClasses = usePrefixedClassNames('buttons', {\n 'is-centered': isCentered,\n 'is-right': isRight,\n 'has-addons': hasAddons,\n });\n\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const combinedClasses = classNames(\n buttonsClasses,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={combinedClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Content component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the content.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {'small' | 'normal' | 'medium' | 'large'} [size] - Size modifier for the content.\n * @property {React.ReactNode} [children] - Content to be rendered inside the block.\n */\ninterface ContentProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n size?: 'small' | 'normal' | 'medium' | 'large';\n children?: React.ReactNode;\n}\n\n// Valid size modifiers for the content class\nconst validSizes = ['small', 'medium', 'large'] as const;\n\n/**\n * Content component for rendering a styled Bulma content block.\n *\n * Applies typographic styles to HTML content (e.g., paragraphs, headings, lists) with Bulma's content class.\n * Supports size modifiers and Bulma helper classes for additional styling.\n *\n * @function\n * @param {ContentProps} props - Props for the Content component.\n * @returns {JSX.Element} The rendered content block.\n * @see {@link https://bulma.io/documentation/elements/content/ | Bulma Content documentation}\n */\nexport const Content: React.FC<ContentProps> = ({\n className,\n textColor,\n bgColor,\n size,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('content', {\n [`is-${size}`]: size && size !== 'normal' && validSizes.includes(size),\n });\n\n const contentClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <div className={contentClasses} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Content;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Delete component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the delete button.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {(event: React.MouseEvent<HTMLButtonElement>) => void} [onClick] - Click handler for the button.\n * @property {'small' | 'medium' | 'large'} [size] - Size modifier for the delete button.\n * @property {string} [ariaLabel='Close'] - ARIA label for accessibility (default: 'Close').\n * @property {boolean} [disabled=false] - Whether the button is disabled (default: false).\n */\ninterface DeleteProps\n extends React.HTMLAttributes<HTMLButtonElement>,\n BulmaClassesProps {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n size?: 'small' | 'medium' | 'large';\n ariaLabel?: string;\n disabled?: boolean;\n}\n\n/**\n * Delete component for rendering a Bulma-styled delete/close button.\n *\n * Supports Bulma helper classes for styling, color, and size, and includes accessibility and disabled state.\n *\n * @function\n * @param {DeleteProps} props - Props for the Delete component.\n * @returns {JSX.Element} The rendered delete button.\n * @see {@link https://bulma.io/documentation/elements/delete/ | Bulma Delete documentation}\n */\nexport const Delete: React.FC<DeleteProps> = ({\n className,\n textColor,\n bgColor,\n onClick,\n size,\n ariaLabel = 'Close',\n disabled = false,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('delete', {\n [`is-${size}`]: size,\n 'is-disabled': disabled,\n });\n\n const classes = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <button\n className={classes}\n onClick={onClick}\n aria-label={ariaLabel}\n disabled={disabled}\n type=\"button\"\n {...rest}\n />\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { useIconLibrary } from '../helpers/Config';\n\n// TypeScript declaration for Ionicons web component\ninterface IonIconProps extends React.HTMLAttributes<HTMLElement> {\n name?: string;\n src?: string;\n icon?: unknown;\n size?: string;\n lazy?: boolean;\n sanitize?: boolean;\n color?: string;\n flipRtl?: boolean;\n ariaLabel?: string;\n ariaHidden?: string;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n 'ion-icon': IonIconProps;\n }\n }\n}\n\ntype IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols'; // 'fa' = Font Awesome, 'mdi' = Material Design Icons, 'ion' = Ionicons Web Components, 'material-icons' = Google Material Icons, 'material-symbols' = Google Material Symbols\n\n/**\n * Props for the Icon component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the icon.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {string} name - The icon name (without library prefix).\n * @property {IconLibrary} [library] - The icon library to use ('fa' = Font Awesome, 'mdi' = Material Design Icons, 'ion' = Ionicons Web Components, 'material-icons' = Google Material Icons, 'material-symbols' = Google Material Symbols). Defaults to the value set in ConfigProvider or 'fa' if not configured.\n * @property {string} [variant] - Icon style variant. For Font Awesome: 'solid', 'regular', 'brands', etc. For Material Icons: 'filled', 'outlined', 'round', 'sharp'. For Material Symbols: 'outlined', 'rounded', 'sharp'. For Ionicons: 'outline', 'sharp'.\n * @property {string | string[]} [features] - Additional library-specific modifiers. For Font Awesome: 'fa-lg', 'fa-spin', etc. For others: size classes like 'is-size-1', etc.\n * @property {string | string[]} [libraryFeatures] - DEPRECATED: Use 'variant' and 'features' instead. Additional library-specific classes.\n * @property {'small' | 'medium' | 'large'} [size] - Size modifier for the icon.\n * @property {string} [ariaLabel='icon'] - ARIA label for accessibility (default: 'icon').\n * @property {object} [style] - Inline style object.\n */\nexport interface IconProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n BulmaClassesProps {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n name: string; // e.g., 'star', 'account', 'home-outline'\n icon?: string; // DEPRECATED: legacy prop that should not be used\n library?: IconLibrary; // defaults to ConfigProvider iconLibrary or 'fa'\n variant?: string; // e.g., 'solid', 'outlined', 'rounded', 'sharp'\n features?: string | string[]; // e.g., 'fa-lg', 'fa-spin', 'is-size-1'\n libraryFeatures?: string | string[]; // DEPRECATED: backward compatibility\n size?: 'small' | 'medium' | 'large';\n ariaLabel?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * Gets the correct classes for the icon element based on the library and features.\n *\n * @param {IconLibrary} library - The icon library.\n * @param {string} name - The icon name.\n * @param {string} [variant] - Icon style variant (e.g., 'solid', 'outlined', 'rounded').\n * @param {string | string[]} [features] - Additional library-specific modifiers.\n * @returns {string} The combined class string for the icon.\n */\nfunction getIconClasses(\n library: IconLibrary,\n name: string,\n variant?: string,\n features?: string | string[]\n): string {\n let baseClass = '';\n let iconClass = '';\n let featureList = Array.isArray(features)\n ? features\n : features\n ? [features]\n : [];\n\n switch (library) {\n case 'fa': {\n // Font Awesome: use variant as style ('solid' -> 'fas', 'regular' -> 'far', etc.)\n const styleMap: Record<string, string> = {\n solid: 'fas',\n regular: 'far',\n brands: 'fab',\n light: 'fal',\n duotone: 'fad',\n thin: 'fat',\n };\n const faStyle = variant ? styleMap[variant] || variant : 'fas';\n baseClass = faStyle;\n iconClass = `fa-${name}`;\n return [baseClass, iconClass, ...featureList].join(' ');\n }\n case 'mdi':\n // Material Design Icons: no variants, just features\n baseClass = 'mdi';\n iconClass = `mdi-${name}`;\n return [baseClass, iconClass, ...featureList].join(' ');\n case 'material-icons': {\n // Google Material Icons: map variants to full class names\n const styleVariants: Record<string, string> = {\n filled: 'material-icons',\n outlined: 'material-icons-outlined',\n round: 'material-icons-round',\n sharp: 'material-icons-sharp',\n };\n baseClass = variant\n ? styleVariants[variant] || `material-icons-${variant}`\n : 'material-icons';\n return [baseClass, ...featureList].join(' ');\n }\n case 'material-symbols': {\n // Google Material Symbols: map variants to full class names\n const styleVariants: Record<string, string> = {\n outlined: 'material-symbols-outlined',\n rounded: 'material-symbols-rounded',\n sharp: 'material-symbols-sharp',\n };\n baseClass = variant\n ? styleVariants[variant] || `material-symbols-${variant}`\n : 'material-symbols-outlined';\n return [baseClass, ...featureList].join(' ');\n }\n default:\n // fallback: just icon name and features\n return [name, ...featureList].join(' ');\n }\n}\n\n/**\n * Icon component for rendering a Bulma-styled icon container.\n *\n * Supports Bulma helper classes for styling, color, and size, and renders an <i></i> element for the icon itself.\n *\n * @function\n * @param {IconProps} props - Props for the Icon component.\n * @returns {JSX.Element} The rendered icon element.\n * @see {@link https://bulma.io/documentation/elements/icon/ | Bulma Icon documentation}\n */\nexport const Icon: React.FC<IconProps> = ({\n className,\n textColor,\n bgColor,\n name,\n library,\n variant,\n features,\n libraryFeatures, // Deprecated but maintained for backward compatibility\n size,\n ariaLabel = 'icon',\n style,\n icon, // Capture and exclude the deprecated 'icon' prop from DOM\n color: _color, // Exclude 'color' prop if passed directly\n ...restProps\n}) => {\n // Handle deprecated 'icon' prop - parse it to extract the actual name\n let finalName = name;\n if (!name && icon) {\n // If icon prop is provided instead of name, try to parse it\n // e.g., \"mdi mdi-rocket-launch\" -> \"rocket-launch\"\n if (typeof icon === 'string') {\n const parts = icon.split(' ');\n const lastPart = parts[parts.length - 1];\n if (lastPart.startsWith('mdi-')) {\n finalName = lastPart.substring(4); // Remove \"mdi-\" prefix\n } else if (lastPart.startsWith('fa-')) {\n finalName = lastPart.substring(3); // Remove \"fa-\" prefix\n } else {\n finalName = lastPart;\n }\n }\n }\n\n // Get the default icon library from context, fallback to 'fa' if not set\n const defaultLibrary = useIconLibrary();\n const finalLibrary = library || defaultLibrary || 'fa';\n /**\n * Generates Bulma helper classes and separates out remaining props.\n * Note: variant, features, and libraryFeatures are excluded from props spread\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...restProps,\n });\n\n const bulmaClasses = usePrefixedClassNames('icon', {\n [`is-${size}`]: size,\n });\n\n const iconContainerClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n // Backward compatibility: if libraryFeatures is provided, parse it for variant and features\n let finalVariant = variant;\n let finalFeatures = features;\n\n if (libraryFeatures && !variant && !features) {\n const legacyFeatures = Array.isArray(libraryFeatures)\n ? libraryFeatures\n : [libraryFeatures];\n\n // For Font Awesome, extract style from features\n if (finalLibrary === 'fa') {\n const faStyle = legacyFeatures.find(f =>\n [\n 'fas',\n 'far',\n 'fab',\n 'fal',\n 'fad',\n 'fat',\n 'solid',\n 'regular',\n 'brands',\n 'light',\n 'duotone',\n 'thin',\n ].includes(f)\n );\n if (faStyle) {\n finalVariant = faStyle;\n finalFeatures = legacyFeatures.filter(f => f !== faStyle);\n } else {\n finalFeatures = legacyFeatures;\n }\n }\n // For Material Icons/Symbols, extract style variant\n else if (\n finalLibrary === 'material-icons' ||\n finalLibrary === 'material-symbols'\n ) {\n const styleVariants =\n finalLibrary === 'material-icons'\n ? ['filled', 'outlined', 'round', 'sharp']\n : ['outlined', 'rounded', 'sharp'];\n\n const styleVariant = legacyFeatures.find(f => styleVariants.includes(f));\n if (styleVariant) {\n finalVariant = styleVariant;\n finalFeatures = legacyFeatures.filter(f => f !== styleVariant);\n } else {\n finalFeatures = legacyFeatures;\n }\n }\n // For others, all features go to finalFeatures\n else {\n finalFeatures = legacyFeatures;\n }\n }\n\n // Handle web components vs CSS-based icons\n if (finalLibrary === 'ion') {\n // For Ionicons, handle variant in the name\n let ionName = finalName;\n if (finalVariant === 'outline') {\n ionName = `${finalName}-outline`;\n } else if (finalVariant === 'sharp') {\n ionName = `${finalName}-sharp`;\n }\n\n return (\n <span\n className={iconContainerClasses}\n aria-label={ariaLabel}\n style={style}\n {...rest}\n >\n <ion-icon name={ionName} />\n </span>\n );\n }\n\n // Legacy CSS-based icons\n const iClasses = getIconClasses(\n finalLibrary,\n finalName,\n finalVariant,\n finalFeatures\n );\n\n // Material Icons and Material Symbols use text content, not CSS classes for the icon name\n if (\n finalLibrary === 'material-icons' ||\n finalLibrary === 'material-symbols'\n ) {\n return (\n <span\n className={iconContainerClasses}\n aria-label={ariaLabel}\n style={style}\n {...rest}\n >\n <i className={iClasses}>{finalName}</i>\n </span>\n );\n }\n\n return (\n <span\n className={iconContainerClasses}\n aria-label={ariaLabel}\n style={style}\n {...rest}\n >\n <i className={iClasses} />\n </span>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { Icon, IconProps } from './Icon';\n\n/**\n * Represents an item for the IconText component, containing icon props and optional text.\n *\n * @property {IconProps} iconProps - Props for the Icon component.\n * @property {string} [text] - Optional text to display next to the icon.\n */\ninterface IconTextItem {\n iconProps: IconProps;\n text?: string;\n}\n\n/**\n * Props for the IconText component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the icon text.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {IconProps} [iconProps] - Props for a single Icon component.\n * @property {React.ReactNode} [children] - Text for a single icon.\n * @property {IconTextItem[]} [items] - Array of icon/text pairs for multiple icons.\n */\ninterface IconTextProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n BulmaClassesProps {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n iconProps?: IconProps; // For single icon\n children?: React.ReactNode; // Text for single icon\n items?: IconTextItem[]; // For multiple icons\n}\n\n/**\n * IconText component for rendering one or more icons with optional text, styled with Bulma.\n *\n * Supports Bulma helper classes for styling, color, and layout. Can render a single icon with text or multiple icon/text pairs.\n *\n * @function\n * @param {IconTextProps} props - Props for the IconText component.\n * @returns {JSX.Element} The rendered icon text element.\n * @see {@link https://bulma.io/documentation/elements/icon/#icon-text | Bulma IconText documentation}\n */\nexport const IconText: React.FC<IconTextProps> = ({\n className,\n textColor,\n bgColor,\n iconProps,\n children,\n items,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('icon-text');\n const iconTextClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <span className={iconTextClasses} {...rest}>\n {items ? (\n items.map((item, index) => (\n <React.Fragment key={index}>\n <Icon {...item.iconProps} />\n {item.text && <span>{item.text}</span>}\n </React.Fragment>\n ))\n ) : (\n <>\n {iconProps && <Icon {...iconProps} />}\n {children && <span>{children}</span>}\n </>\n )}\n </span>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Image component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the image container.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {string} [size] - Size or aspect ratio modifier (e.g., '128x128', '16by9', etc.).\n * @property {boolean} [isRounded] - Whether the image should have rounded corners.\n * @property {boolean} [isRetina] - Whether to use retina (2x) image source.\n * @property {string} [src] - Image source URL.\n * @property {string} [alt] - Alternate text for the image.\n * @property {React.ReactNode} [children] - Arbitrary children (e.g., iframe or custom content).\n * @property {'figure' | 'div' | 'p'} [as] - The tag to render. Defaults to 'figure', but can be 'p', 'div', etc.\n */\nexport interface ImageProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n size?:\n | '16x16'\n | '24x24'\n | '32x32'\n | '48x48'\n | '64x64'\n | '96x96'\n | '128x128'\n | 'square'\n | '1by1'\n | '5by4'\n | '4by3'\n | '3by2'\n | '5by3'\n | '16by9'\n | '2by1'\n | '3by1'\n | '4by5'\n | '3by4'\n | '2by3'\n | '3by5'\n | '9by16'\n | '1by2'\n | '1by3';\n isRounded?: boolean;\n isRetina?: boolean;\n src?: string;\n alt?: string;\n children?: React.ReactNode;\n as?: 'figure' | 'div' | 'p';\n}\n\n/**\n * Image component for rendering a styled Bulma image element.\n *\n * Supports fixed-size containers, aspect ratios, rounded images, retina images, and arbitrary children (e.g., iframe).\n *\n * The \"as\" prop allows rendering as \"figure\", \"p\", or \"div\" tags etc.\n *\n * @function\n * @param {ImageProps} props - Props for the Image component.\n * @returns {JSX.Element} The rendered image element.\n * @see {@link https://bulma.io/documentation/elements/image/ | Bulma Image documentation}\n */\nexport const Image: React.FC<ImageProps> = ({\n as,\n className,\n textColor,\n bgColor,\n size,\n isRounded,\n isRetina,\n src,\n alt,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('image', {\n [`is-${size}`]: size,\n 'has-ratio': size && typeof size === 'string' && size.includes('by'),\n });\n\n const imageClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n // Default tag logic: if \"as\" is provided, use it.\n // If not, use <figure> for aspect ratios or children, <div> otherwise.\n let Tag: 'figure' | 'div' | 'p';\n if (as) {\n Tag = as;\n } else if (size && typeof size === 'string' && size.includes('by')) {\n Tag = 'figure';\n } else {\n Tag = 'div';\n }\n\n const roundedClass = usePrefixedClassNames('is-rounded');\n\n const content = children ? (\n children\n ) : (\n <img\n className={classNames({ [roundedClass]: isRounded })}\n src={src}\n alt={alt}\n {...(isRetina && src ? { srcSet: `${src} 2x` } : {})}\n />\n );\n\n return (\n <Tag className={imageClasses} {...rest}>\n {content}\n </Tag>\n );\n};\n\nexport default Image;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Notification component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number]} [color] - Bulma color modifier for the notification.\n * @property {boolean} [isLight] - Use the light color variant.\n * @property {boolean} [hasDelete] - Show a delete (close) button.\n * @property {() => void} [onDelete] - Callback fired when the delete button is clicked.\n * @property {React.ReactNode} [children] - Content to be rendered inside the notification.\n */\nexport interface NotificationProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number];\n isLight?: boolean;\n hasDelete?: boolean;\n onDelete?: () => void;\n children?: React.ReactNode;\n}\n\n/**\n * Notification component for rendering a styled Bulma notification.\n *\n * Supports colors, light variants, a delete button, and arbitrary content.\n *\n * @function\n * @param {NotificationProps} props - Props for the Notification component.\n * @returns {JSX.Element} The rendered notification element.\n * @see {@link https://bulma.io/documentation/elements/notification/ | Bulma Notification documentation}\n */\nexport const Notification: React.FC<NotificationProps> = ({\n className,\n color,\n isLight,\n hasDelete,\n onDelete,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('notification', {\n [`is-${color}`]: color && validColors.includes(color),\n 'is-light': isLight,\n });\n\n const deleteClasses = usePrefixedClassNames('delete');\n\n const notificationClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <div className={notificationClasses} {...rest}>\n {hasDelete && (\n <button\n className={deleteClasses}\n onClick={onDelete}\n aria-label=\"Close notification\"\n />\n )}\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Progress component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {(typeof validColors)[number]} [color] - Bulma color modifier for the progress bar.\n * @property {'small' | 'medium' | 'large'} [size] - Size modifier for the progress bar.\n * @property {number} [value] - Current value of the progress bar.\n * @property {number} [max] - Maximum value of the progress bar.\n * @property {React.ReactNode} [children] - Optional custom content inside the progress element.\n */\nexport interface ProgressProps\n extends React.ProgressHTMLAttributes<HTMLProgressElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number];\n size?: 'small' | 'medium' | 'large';\n value?: number;\n max?: number;\n children?: React.ReactNode;\n}\n\n/**\n * Progress component for rendering a styled Bulma progress bar.\n *\n * Supports Bulma color and size modifiers, value/max attributes, and optional custom content.\n *\n * @function\n * @param {ProgressProps} props - Props for the Progress component.\n * @returns {JSX.Element} The rendered progress bar element.\n * @see {@link https://bulma.io/documentation/elements/progress/ | Bulma Progress documentation}\n */\nexport const Progress: React.FC<ProgressProps> = ({\n className,\n color,\n size,\n value,\n max,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const bulmaClasses = usePrefixedClassNames('progress', {\n [`is-${color}`]: color && validColors.includes(color),\n [`is-${size}`]: size,\n });\n\n const progressClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n return (\n <progress className={progressClasses} value={value} max={max} {...rest}>\n {children}\n </progress>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Additional CSS classes to apply */\n className?: string;\n /** Variant of skeleton: 'block' (default) or 'lines' */\n variant?: 'block' | 'lines';\n /** Number of lines (only used if variant=\"lines\") */\n lines?: number;\n /** Render content inside the skeleton (block variant only) */\n children?: React.ReactNode;\n}\n\n/**\n * Skeleton component for rendering a styled Bulma skeleton element.\n *\n * @see https://bulma.io/documentation/features/skeletons/\n */\nexport const Skeleton: React.FC<SkeletonProps> = ({\n className,\n variant = 'block',\n lines = 3,\n children,\n ...props\n}) => {\n const linesClass = usePrefixedClassNames('skeleton-lines');\n const blockClass = usePrefixedClassNames('skeleton-block');\n\n if (variant === 'lines') {\n return (\n <div className={classNames(linesClass, className)} {...props}>\n {Array.from({ length: lines }).map((_, i) => (\n <div key={i} />\n ))}\n </div>\n );\n }\n\n return (\n <div className={classNames(blockClass, className)} {...props}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\nconst validSubTitleSizes = ['1', '2', '3', '4', '5', '6'] as const;\n/**\n * Valid size values for the SubTitle component (Bulma subtitle sizes).\n */\nexport type SubTitleSize = (typeof validSubTitleSizes)[number];\n\nconst validSubTitleElements = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n] as const;\n/**\n * Valid HTML elements for the SubTitle component.\n */\nexport type SubTitleElement = (typeof validSubTitleElements)[number];\n\n/**\n * Props for the SubTitle component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {SubTitleSize} [size] - Size of the subtitle (1-6).\n * @property {SubTitleElement} [as='h1'] - HTML element to render as (h1-h6 or p).\n * @property {boolean} [hasSkeleton] - Adds the has-skeleton CSS class.\n * @property {React.ReactNode} [children] - Subtitle content.\n * @property {string} [textColor] - Text color class (maps to Bulma's color helper).\n * @property {string} [bgColor] - Background color class (maps to Bulma's backgroundColor helper).\n */\nexport interface SubTitleProps\n extends Omit<\n React.HTMLAttributes<HTMLHeadingElement | HTMLParagraphElement>,\n 'color'\n >,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n size?: SubTitleSize;\n as?: SubTitleElement;\n hasSkeleton?: boolean;\n children?: React.ReactNode;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n}\n\n/**\n * SubTitle component for rendering a styled Bulma subtitle.\n *\n * Supports Bulma subtitle sizes and rendering as different HTML elements (h1-h6, p).\n *\n * @function\n * @param {SubTitleProps} props - Props for the SubTitle component.\n * @returns {JSX.Element} The rendered subtitle element.\n * @see {@link https://bulma.io/documentation/elements/title/#subtitle | Bulma Subtitle documentation}\n */\nexport const SubTitle: React.FC<SubTitleProps> = ({\n className,\n size,\n as = 'h1',\n hasSkeleton,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Validate 'as' prop at runtime\n const element = validSubTitleElements.includes(as) ? as : 'h1';\n\n // Validate 'size' prop at runtime\n const validSize =\n size && validSubTitleSizes.includes(size) ? size : undefined;\n\n const bulmaClasses = usePrefixedClassNames('subtitle', {\n [`is-${validSize}`]: validSize,\n 'has-skeleton': hasSkeleton,\n });\n\n const subTitleClasses = classNames(\n bulmaClasses,\n bulmaHelperClasses,\n className\n );\n\n // Determine the tag based on 'element' and 'validSize'\n const Tag: React.ElementType =\n element === 'p' ? 'p' : validSize ? `h${validSize}` : element;\n\n return (\n <Tag className={subTitleClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\nexport default SubTitle;\n","/**\n * @group Table\n */\nimport React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Table component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [isBordered] - Adds borders to all the cells.\n * @property {boolean} [isStriped] - Adds zebra-striping to rows.\n * @property {boolean} [isNarrow] - Makes the table more compact by cutting cell padding in half.\n * @property {boolean} [isHoverable] - Adds a hover effect on rows.\n * @property {boolean} [isFullwidth] - Makes the table span the full width of its parent.\n * @property {boolean} [isResponsive] - Makes the table horizontally scrollable on small screens.\n * @property {React.ReactNode} [children] - Table content.\n */\nexport interface TableProps\n extends Omit<React.TableHTMLAttributes<HTMLTableElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor'> {\n className?: string;\n isBordered?: boolean;\n isStriped?: boolean;\n isNarrow?: boolean;\n isHoverable?: boolean;\n isFullwidth?: boolean;\n isResponsive?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Table component for rendering a styled Bulma table.\n *\n * Supports responsive, bordered, striped, narrow, hoverable, and fullwidth variants.\n *\n * @function\n * @param {TableProps} props - Props for the Table component.\n * @returns {JSX.Element} The rendered table element.\n * @see {@link https://bulma.io/documentation/elements/table/ | Bulma Table documentation}\n */\nexport const Table: React.FC<TableProps> = ({\n className,\n isBordered,\n isStriped,\n isNarrow,\n isHoverable,\n isFullwidth,\n isResponsive,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const bulmaClasses = usePrefixedClassNames('table', {\n 'is-bordered': isBordered,\n 'is-striped': isStriped,\n 'is-narrow': isNarrow,\n 'is-hoverable': isHoverable,\n 'is-fullwidth': isFullwidth,\n });\n\n const containerClass = usePrefixedClassNames('table-container');\n const tableClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n const tableElement = (\n <table className={tableClasses} {...rest}>\n {children}\n </table>\n );\n\n if (isResponsive) {\n return <div className={containerClass}>{tableElement}</div>;\n }\n\n return tableElement;\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\nconst validTagColors = [\n 'primary',\n 'link',\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'black',\n 'dark',\n 'light',\n 'white',\n] as const;\n\n/**\n * Valid color values for the Tag component (Bulma tag colors).\n */\nexport type TagColor = (typeof validTagColors)[number];\n\nconst validTagSizes = ['normal', 'medium', 'large'] as const;\n/**\n * Valid size values for the Tag component (Bulma tag sizes).\n */\nexport type TagSize = (typeof validTagSizes)[number];\n\n/**\n * Props for the Tag component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {TagColor} [color] - Bulma color modifier for the tag.\n * @property {TagSize} [size] - Size modifier for the tag.\n * @property {boolean} [isRounded] - Whether the tag should have rounded corners.\n * @property {boolean} [isDelete] - Whether the tag is a delete button.\n * @property {boolean} [isHoverable] - Whether the tag is hoverable.\n * @property {() => void} [onDelete] - Callback fired when the delete button is clicked.\n * @property {React.ReactNode} [children] - Tag content.\n */\nexport interface TagProps\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>,\n Omit<BulmaClassesProps, 'color'> {\n className?: string;\n color?: TagColor;\n size?: TagSize;\n isRounded?: boolean;\n isDelete?: boolean;\n isHoverable?: boolean;\n onDelete?: () => void;\n children?: React.ReactNode;\n}\n\n/**\n * Tag component for rendering a styled Bulma tag.\n *\n * Supports colors, sizes, rounded, delete, and hoverable variants.\n *\n * @function\n * @param {TagProps} props - Props for the Tag component.\n * @returns {JSX.Element} The rendered tag element.\n * @see {@link https://bulma.io/documentation/elements/tag/ | Bulma Tag documentation}\n */\nexport const Tag: React.FC<TagProps> = ({\n className,\n color,\n size,\n isRounded,\n isDelete,\n isHoverable,\n onDelete,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const bulmaClasses = usePrefixedClassNames('tag', {\n [`is-${color}`]: color && validTagColors.includes(color),\n [`is-${size}`]: size && size !== 'normal' && validTagSizes.includes(size),\n 'is-rounded': isRounded,\n 'is-delete': isDelete,\n 'is-hoverable': isHoverable,\n });\n\n const tagClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n if (isDelete) {\n return (\n <button\n className={tagClasses}\n onClick={onDelete}\n aria-label=\"Delete tag\"\n {...rest}\n />\n );\n }\n\n return (\n <span className={tagClasses} {...rest}>\n {children}\n </span>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Tags component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [hasAddons] - Group tags together as addons.\n * @property {boolean} [isMultiline] - Allow tags to wrap onto multiple lines.\n * @property {React.ReactNode} [children] - Tag elements to render inside the container.\n */\nexport interface TagsProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n hasAddons?: boolean;\n isMultiline?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Tags component for rendering a styled Bulma tags container.\n *\n * Supports addons and multiline variants.\n *\n * @function\n * @param {TagsProps} props - Props for the Tags component.\n * @returns {JSX.Element} The rendered tags container.\n * @see {@link https://bulma.io/documentation/elements/tag/#list-of-tags | Bulma Tags documentation}\n */\nexport const Tags: React.FC<TagsProps> = ({\n className,\n hasAddons,\n isMultiline,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const bulmaClasses = usePrefixedClassNames('tags', {\n 'has-addons': hasAddons,\n 'are-multiline': isMultiline,\n });\n\n const tagsClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n return (\n <div className={tagsClasses} {...rest}>\n {children}\n </div>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport classNames from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Tbody component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Table body content (rows).\n */\nexport interface TbodyProps\n extends Omit<React.HTMLAttributes<HTMLTableSectionElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor'> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Tbody component for rendering a styled Bulma table body.\n *\n * Supports Bulma helper classes for additional styling.\n *\n * @function\n * @param {TbodyProps} props - Props for the Tbody component.\n * @returns {JSX.Element} The rendered table body element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-body | Bulma Table documentation}\n */\nexport const Tbody: React.FC<TbodyProps> = ({\n className,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const tbodyClasses = classNames(className, bulmaHelperClasses);\n\n return (\n <tbody className={tbodyClasses} {...rest}>\n {children}\n </tbody>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\nexport const validTableColors = [\n 'primary',\n 'link',\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'black',\n 'dark',\n 'light',\n 'white',\n] as const;\n\n/**\n * Valid color values for the Td component (Bulma table cell colors).\n */\nexport type TableColor = (typeof validTableColors)[number];\n\n/**\n * Props for the Td component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {TableColor} [color] - Bulma color modifier for the table cell.\n * @property {React.ReactNode} [children] - Table cell content.\n */\nexport interface TdProps\n extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n color?: TableColor;\n children?: React.ReactNode;\n}\n\n/**\n * Td component for rendering a styled Bulma table cell.\n *\n * Supports Bulma color modifiers and helper classes for additional styling.\n *\n * @function\n * @param {TdProps} props - Props for the Td component.\n * @returns {JSX.Element} The rendered table cell element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-body | Bulma Table documentation}\n */\nexport const Td: React.FC<TdProps> = ({\n className,\n color,\n children,\n ...props\n}) => {\n const colorClass = usePrefixedClassNames('', {\n [`is-${color}`]: color && validTableColors.includes(color),\n });\n\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const tdClasses = classNames(colorClass, className, bulmaHelperClasses);\n\n return (\n <td className={tdClasses} {...rest}>\n {children}\n </td>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport classNames from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Tfoot component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Table footer content (rows).\n */\nexport interface TfootProps\n extends Omit<React.HTMLAttributes<HTMLTableSectionElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor'> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Tfoot component for rendering a styled Bulma table footer.\n *\n * Supports Bulma helper classes for additional styling.\n *\n * @function\n * @param {TfootProps} props - Props for the Tfoot component.\n * @returns {JSX.Element} The rendered table footer element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-footer | Bulma Table documentation}\n */\nexport const Tfoot: React.FC<TfootProps> = ({\n className,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const tfootClasses = classNames(className, bulmaHelperClasses);\n\n return (\n <tfoot className={tfootClasses} {...rest}>\n {children}\n </tfoot>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\nimport { TableColor, validTableColors } from './Td';\n\nconst validAlignments = ['left', 'right', 'centered'] as const;\n/**\n * Valid alignment values for the Th component.\n */\ntype TableAlignment = (typeof validAlignments)[number];\n\n/**\n * Props for the Th component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {TableAlignment} [isAligned] - Text alignment for the header cell ('left', 'right', 'centered').\n * @property {string|number} [width] - Width of the header cell (e.g., '100px' or 100).\n * @property {TableColor} [color] - Bulma color modifier for the header cell.\n * @property {React.ReactNode} [children] - Table header cell content.\n */\nexport interface ThProps\n extends Omit<React.ThHTMLAttributes<HTMLTableCellElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n isAligned?: TableAlignment;\n width?: string | number;\n color?: TableColor;\n children?: React.ReactNode;\n}\n\n/**\n * Th component for rendering a styled Bulma table header cell.\n *\n * Supports alignment, width, and color modifiers.\n *\n * @function\n * @param {ThProps} props - Props for the Th component.\n * @returns {JSX.Element} The rendered table header cell element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-head | Bulma Table documentation}\n */\nexport const Th: React.FC<ThProps> = ({\n className,\n isAligned,\n width,\n color,\n children,\n ...props\n}) => {\n const bulmaClasses = usePrefixedClassNames('', {\n [`has-text-${isAligned}`]: isAligned && validAlignments.includes(isAligned),\n [`is-${color}`]: color && validTableColors.includes(color),\n });\n\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const thClasses = classNames(bulmaClasses, className, bulmaHelperClasses);\n\n return (\n <th\n className={thClasses}\n style={\n width\n ? { width: typeof width === 'number' ? `${width}px` : width }\n : undefined\n }\n {...rest}\n >\n {children}\n </th>\n );\n};\n","/**\n * @group Table\n */\nimport React from 'react';\nimport classNames from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Thead component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Table header content (rows).\n */\nexport interface TheadProps\n extends Omit<React.HTMLAttributes<HTMLTableSectionElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor'> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Thead component for rendering a styled Bulma table header.\n *\n * Supports Bulma helper classes for additional styling.\n *\n * @function\n * @param {TheadProps} props - Props for the Thead component.\n * @returns {JSX.Element} The rendered table header element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-head | Bulma Table documentation}\n */\nexport const Thead: React.FC<TheadProps> = ({\n className,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const theadClasses = classNames(className, bulmaHelperClasses);\n\n return (\n <thead className={theadClasses} {...rest}>\n {children}\n </thead>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\nconst validTitleSizes = ['1', '2', '3', '4', '5', '6'] as const;\n/**\n * Valid size values for the Title component (Bulma title sizes).\n */\nexport type TitleSize = (typeof validTitleSizes)[number];\n\nconst validTitleElements = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p'] as const;\n/**\n * Valid HTML elements for the Title component.\n */\nexport type TitleElement = (typeof validTitleElements)[number];\n\n/**\n * Props for the Title component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {TitleSize} [size] - Size of the title (1-6).\n * @property {boolean} [isSpaced] - Adds margin below the title.\n * @property {TitleElement} [as='h1'] - HTML element to render as (h1-h6 or p).\n * @property {boolean} [hasSkeleton] - Adds the has-skeleton CSS class.\n * @property {React.ReactNode} [children] - Title content.\n * @property {string} [textColor] - Text color class (maps to Bulma's color helper).\n * @property {string} [bgColor] - Background color class (maps to Bulma's backgroundColor helper).\n */\nexport interface TitleProps\n extends Omit<\n React.HTMLAttributes<HTMLHeadingElement | HTMLParagraphElement>,\n 'color'\n >,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n size?: TitleSize;\n isSpaced?: boolean;\n as?: TitleElement;\n hasSkeleton?: boolean;\n children?: React.ReactNode;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n}\n\n/**\n * Title component for rendering a styled Bulma title.\n *\n * Supports sizes, spacing, and rendering as different HTML elements.\n *\n * @function\n * @param {TitleProps} props - Props for the Title component.\n * @returns {JSX.Element} The rendered title element.\n * @see {@link https://bulma.io/documentation/elements/title/ | Bulma Title documentation}\n */\nexport const Title: React.FC<TitleProps> = ({\n className,\n size,\n isSpaced,\n as = 'h1',\n hasSkeleton,\n textColor,\n bgColor,\n children,\n ...props\n}) => {\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Validate 'as' prop at runtime\n const element = validTitleElements.includes(as) ? as : 'h1';\n\n // Validate 'size' prop at runtime\n const validSize = size && validTitleSizes.includes(size) ? size : undefined;\n\n const bulmaClasses = usePrefixedClassNames('title', {\n [`is-${validSize}`]: validSize,\n 'is-spaced': isSpaced,\n 'has-skeleton': hasSkeleton,\n });\n\n const titleClasses = classNames(bulmaClasses, bulmaHelperClasses, className);\n\n // Determine the tag based on 'element' and 'validSize'\n const Tag: React.ElementType =\n element === 'p' ? 'p' : validSize ? `h${validSize}` : element;\n\n return (\n <Tag className={titleClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\nexport default Title;\n","/**\n * @group Table\n */\nimport React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\nimport { TableColor, validTableColors } from './Td'; // Import TableColor from Td\n\n/**\n * Props for the Tr component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [isSelected] - Whether the row is selected (adds Bulma's is-selected class).\n * @property {TableColor} [color] - Bulma color modifier for the table row.\n * @property {React.ReactNode} [children] - Table row content (cells).\n */\nexport interface TrProps\n extends Omit<React.HTMLAttributes<HTMLTableRowElement>, 'color'>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n className?: string;\n isSelected?: boolean;\n color?: TableColor;\n children?: React.ReactNode;\n}\n\n/**\n * Tr component for rendering a styled Bulma table row.\n *\n * Supports the is-selected modifier and color modifiers.\n *\n * @function\n * @param {TrProps} props - Props for the Tr component.\n * @returns {JSX.Element} The rendered table row element.\n * @see {@link https://bulma.io/documentation/elements/table/#table-row | Bulma Table documentation}\n */\nexport const Tr: React.FC<TrProps> = ({\n className,\n isSelected,\n color,\n children,\n ...props\n}) => {\n const bulmaClasses = usePrefixedClassNames('', {\n 'is-selected': isSelected,\n [`is-${color}`]: color && validTableColors.includes(color),\n });\n\n /**\n * Generates Bulma helper classes and separates out remaining props.\n */\n const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });\n\n const trClasses = classNames(bulmaClasses, className, bulmaHelperClasses);\n\n return (\n <tr className={trClasses} {...rest}>\n {children}\n </tr>\n );\n};\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Checkbox component.\n *\n * @property {boolean} [disabled] - Whether the checkbox is disabled.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - The label/content for the checkbox.\n * @see Bulma Checkbox documentation: https://bulma.io/documentation/form/checkbox/\n */\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'color'>,\n Omit<BulmaClassesProps, 'color'> {\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Checkbox component with Bulma helper classes support.\n * The label is provided via the children prop.\n *\n * @function\n * @param {CheckboxProps} props - Props for the Checkbox component.\n * @returns {JSX.Element} The rendered checkbox element.\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ disabled, className, children, ...props }, ref) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('checkbox');\n const checkboxClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <label className={checkboxClass}>\n <input ref={ref} type=\"checkbox\" disabled={disabled} {...rest} />\n {children}\n </label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Checkboxes component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Checkbox elements to render in the group.\n */\nexport interface CheckboxesProps extends Omit<BulmaClassesProps, 'color'> {\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Wraps Checkbox components inside a Bulma 'checkboxes' wrapper.\n * Leverages useBulmaClasses for consistency with other components.\n *\n * @function\n * @param {CheckboxesProps} props - Props for the Checkboxes component.\n * @returns {JSX.Element} The rendered checkboxes group.\n * @see {@link https://bulma.io/documentation/form/checkbox/#grouped-checkboxes | Bulma Checkboxes documentation}\n */\nexport const Checkboxes: React.FC<CheckboxesProps> = ({\n children,\n className,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('checkboxes');\n const wrapperClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <div className={wrapperClass} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Checkboxes;\n","import React from 'react';\nimport {\n classNames,\n usePrefixedClassNames,\n prefixedClassNames,\n} from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\nimport { Icon, IconProps } from '../elements/Icon';\nimport { useConfig } from '../helpers/Config';\n\n/**\n * Props for the Control component.\n *\n * @property {boolean} [hasIconsLeft] - Adds left icon container.\n * @property {boolean} [hasIconsRight] - Adds right icon container.\n * @property {boolean} [isLoading] - Shows loading indicator.\n * @property {boolean} [isExpanded] - Makes the control expand to fill available space.\n * @property {'small'|'medium'|'large'} [size] - Sets the control size.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Sets text color.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color for the control.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {IconProps} [iconLeft] - Icon props for left icon.\n * @property {IconProps} [iconRight] - Icon props for right icon.\n * @property {string} [iconLeftName] - Shortcut for left icon name.\n * @property {'small'|'medium'|'large'} [iconLeftSize] - Shortcut for left icon size.\n * @property {string} [iconRightName] - Shortcut for right icon name.\n * @property {'small'|'medium'|'large'} [iconRightSize] - Shortcut for right icon size.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - Content inside the control.\n * @property {'div'|'p'} [as] - Element type for the control (default: 'div').\n * @property {React.Ref<HTMLDivElement|HTMLParagraphElement>} [ref] - Ref for the control element.\n */\nexport interface ControlBaseProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n hasIconsLeft?: boolean;\n hasIconsRight?: boolean;\n isLoading?: boolean;\n isExpanded?: boolean;\n size?: 'small' | 'medium' | 'large';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n iconLeft?: IconProps;\n iconRight?: IconProps;\n iconLeftName?: string;\n iconLeftSize?: 'small' | 'medium' | 'large';\n iconRightName?: string;\n iconRightSize?: 'small' | 'medium' | 'large';\n className?: string;\n children?: React.ReactNode;\n}\n\ntype ControlProps =\n | ({ as?: 'div' } & ControlBaseProps & { ref?: React.Ref<HTMLDivElement> })\n | ({ as: 'p' } & Omit<\n ControlBaseProps,\n keyof React.HTMLAttributes<HTMLDivElement>\n > &\n React.HTMLAttributes<HTMLParagraphElement> & {\n ref?: React.Ref<HTMLParagraphElement>;\n });\n\nconst allowedColors = [...validColors, 'inherit', 'current'] as const;\n\n/**\n * Bulma Control component for form controls, with icons, loading, and Bulma helper support.\n *\n * @function\n * @param {ControlProps} props - Props for the Control component.\n * @returns {JSX.Element} The rendered control container.\n * @see {@link https://bulma.io/documentation/form/general/#control | Bulma Control documentation}\n */\nexport const Control = React.forwardRef<\n HTMLDivElement | HTMLParagraphElement,\n ControlProps\n>(\n (\n {\n as = 'div',\n hasIconsLeft,\n hasIconsRight,\n isLoading,\n isExpanded,\n size,\n textColor,\n bgColor,\n iconLeft,\n iconRight,\n iconLeftName,\n iconLeftSize,\n iconRightName,\n iconRightSize,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const Component = (as === 'p' ? 'p' : 'div') as 'div' | 'p';\n const { classPrefix } = useConfig();\n\n // Remove textColor/bgColor from props before spreading\n const {\n textColor: _ignoredTextColor,\n bgColor: _ignoredBgColor,\n ...restProps\n } = props as Record<string, unknown>;\n\n const safeTextColor = allowedColors.includes(\n textColor as (typeof allowedColors)[number]\n )\n ? textColor\n : undefined;\n\n const safeBgColor = allowedColors.includes(\n bgColor as (typeof allowedColors)[number]\n )\n ? bgColor\n : undefined;\n\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: safeTextColor,\n backgroundColor: safeBgColor,\n ...restProps,\n });\n\n // Prepare icon props for the shortcut\n const leftIconProps: IconProps | undefined =\n iconLeft ||\n (iconLeftName\n ? {\n name: iconLeftName,\n size: iconLeftSize,\n }\n : undefined);\n\n const rightIconProps: IconProps | undefined =\n iconRight ||\n (iconRightName\n ? {\n name: iconRightName,\n size: iconRightSize,\n }\n : undefined);\n\n const mainClass = usePrefixedClassNames('control', {\n 'has-icons-left': hasIconsLeft || !!leftIconProps,\n 'has-icons-right': hasIconsRight || !!rightIconProps,\n 'is-loading': isLoading,\n 'is-expanded': isExpanded,\n [`is-${size}`]: !!size,\n });\n const controlClass = classNames(mainClass, bulmaHelperClasses, className);\n\n // --- FIX: Spread both restProps (for data-testid, etc) AND rest (from useBulmaClasses) ---\n return (\n <Component\n className={controlClass}\n ref={ref as typeof ref}\n {...restProps}\n {...rest}\n >\n {children}\n {leftIconProps && leftIconProps.name && (\n <Icon\n {...leftIconProps}\n className={prefixedClassNames(classPrefix, 'is-left')}\n />\n )}\n {rightIconProps && rightIconProps.name && (\n <Icon\n {...rightIconProps}\n className={prefixedClassNames(classPrefix, 'is-right')}\n />\n )}\n </Component>\n );\n }\n);\n\nControl.displayName = 'Control';\n\nexport default Control;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Field component.\n *\n * @property {boolean} [horizontal] - Renders the field as horizontal (label and control side by side).\n * @property {boolean|'centered'|'right'|'multiline'} [grouped] - Group controls in a row (optionally centered, right, or multiline).\n * @property {boolean} [hasAddons] - Group controls as addons.\n * @property {React.ReactNode} [label] - Field label.\n * @property {'small'|'normal'|'medium'|'large'} [labelSize] - Size for the label.\n * @property {object} [labelProps] - Props for the label element.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the field.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color for the field.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the field.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Field content.\n */\nexport interface FieldProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n horizontal?: boolean;\n grouped?: boolean | 'centered' | 'right' | 'multiline';\n hasAddons?: boolean;\n label?: React.ReactNode;\n labelSize?: 'small' | 'normal' | 'medium' | 'large';\n labelProps?: React.LabelHTMLAttributes<HTMLLabelElement> & {\n [key: string]: unknown;\n };\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the FieldLabel component.\n *\n * @property {'small'|'normal'|'medium'|'large'} [size] - Size for the field label.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the label.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color for the label.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the label.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Field label content.\n */\nexport interface FieldLabelProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n size?: 'small' | 'normal' | 'medium' | 'large';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Props for the FieldBody component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color for the field body.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color for the field body.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color for the field body.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Field body content.\n */\nexport interface FieldBodyProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * FieldLabel component for rendering a Bulma field label.\n *\n * @function\n * @param {FieldLabelProps} props - Props for the FieldLabel component.\n * @returns {JSX.Element} The rendered field label.\n */\nexport const FieldLabel: React.FC<FieldLabelProps> = ({\n size,\n textColor,\n bgColor,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('field-label', {\n [`is-${size}`]: !!size,\n });\n const fieldLabelClass = classNames(mainClass, bulmaHelperClasses, className);\n // Spread ...props and ...rest so custom props like data-testid are included\n return (\n <div className={fieldLabelClass} {...props} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * FieldBody component for rendering Bulma field body.\n *\n * @function\n * @param {FieldBodyProps} props - Props for the FieldBody component.\n * @returns {JSX.Element} The rendered field body.\n */\nexport const FieldBody: React.FC<FieldBodyProps> = ({\n textColor,\n bgColor,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('field-body');\n const fieldBodyClass = classNames(mainClass, bulmaHelperClasses, className);\n // Spread ...props and ...rest so custom props like data-testid are included\n return (\n <div className={fieldBodyClass} {...props} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Field component for rendering a Bulma field container.\n * Supports horizontal, grouped, and labelled fields.\n *\n * @function\n * @param {FieldProps} props - Props for the Field component.\n * @returns {JSX.Element} The rendered field container.\n * @see {@link https://bulma.io/documentation/form/general/#field | Bulma Field documentation}\n */\nexport const Field: React.FC<FieldProps> & {\n Label: typeof FieldLabel;\n Body: typeof FieldBody;\n} = ({\n horizontal,\n grouped,\n hasAddons,\n label,\n labelSize,\n labelProps,\n textColor,\n color: _fieldColor,\n bgColor,\n className,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('field', {\n 'is-horizontal': horizontal,\n 'has-addons': !!hasAddons,\n 'is-grouped':\n grouped === true ||\n grouped === 'centered' ||\n grouped === 'right' ||\n grouped === 'multiline',\n 'is-grouped-centered': grouped === 'centered',\n 'is-grouped-right': grouped === 'right',\n 'is-grouped-multiline': grouped === 'multiline',\n });\n const fieldClass = classNames(mainClass, bulmaHelperClasses, className);\n\n // Map 'normal' to undefined for FieldLabel size prop\n const mappedLabelSize: FieldLabelProps['size'] =\n labelSize === 'normal' ? undefined : labelSize;\n\n const labelClass = usePrefixedClassNames('label');\n\n let renderedLabel = null;\n if (label) {\n if (horizontal) {\n renderedLabel = (\n <FieldLabel size={mappedLabelSize}>\n <label\n {...labelProps}\n className={classNames(labelClass, labelProps?.className)}\n style={labelProps?.style}\n >\n {label}\n </label>\n </FieldLabel>\n );\n } else {\n renderedLabel = (\n <label\n {...labelProps}\n className={classNames(labelClass, labelProps?.className)}\n style={{ display: 'block', ...(labelProps?.style || {}) }}\n >\n {label}\n </label>\n );\n }\n }\n\n // If horizontal, wrap children in FieldBody (unless children is already a FieldBody)\n let content = children;\n if (horizontal) {\n // If children is a FieldBody already, don't double wrap\n // Simple check using displayName\n if (\n React.isValidElement(children) &&\n // @ts-expect-error children.type && children.type.displayName &&\n (children.type === FieldBody || children.type.displayName === 'FieldBody')\n ) {\n content = children;\n } else {\n content = <FieldBody>{children}</FieldBody>;\n }\n }\n\n return (\n <div className={fieldClass} {...rest}>\n {renderedLabel}\n {content}\n </div>\n );\n};\n\nFieldLabel.displayName = 'FieldLabel';\nFieldBody.displayName = 'FieldBody';\nField.Label = FieldLabel;\nField.Body = FieldBody;\n\nexport default Field;\n","import React, { forwardRef } from 'react';\nimport {\n classNames,\n usePrefixedClassNames,\n prefixedClassNames,\n} from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\nimport { useConfig } from '../helpers/Config';\n\n/**\n * Props for the File component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the file input.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the file input.\n * @property {boolean} [isBoxed] - Whether the file input is boxed.\n * @property {boolean} [isFullwidth] - Whether the file input expands to full width.\n * @property {boolean} [isRight] - Align file input to the right.\n * @property {boolean} [isCentered] - Center the file input.\n * @property {boolean} [hasName] - Show a file name indicator.\n * @property {React.ReactNode} [label] - Custom label text or node.\n * @property {React.ReactNode} [iconLeft] - Left icon element.\n * @property {React.ReactNode} [iconRight] - Right icon element.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {string} [inputClassName] - Additional CSS classes for the input.\n * @property {string} [fileName] - File name to display.\n */\nexport interface FileProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'type'\n >,\n Omit<BulmaClassesProps, 'color'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n size?: 'small' | 'medium' | 'large';\n isBoxed?: boolean;\n isFullwidth?: boolean;\n isRight?: boolean;\n isCentered?: boolean;\n hasName?: boolean;\n label?: React.ReactNode;\n iconLeft?: React.ReactNode;\n iconRight?: React.ReactNode;\n className?: string;\n inputClassName?: string;\n fileName?: string;\n}\n\n/**\n * Bulma File upload component with full Bulma helper class support.\n * isRight and isCentered are mutually exclusive (Bulma spec).\n *\n * @function\n * @param {FileProps} props - Props for the File component.\n * @returns {JSX.Element} The rendered file upload field.\n * @see {@link https://bulma.io/documentation/form/file/ | Bulma File documentation}\n */\nexport const File = forwardRef<HTMLInputElement, FileProps>(\n (\n {\n color,\n size,\n isBoxed,\n isFullwidth,\n isRight,\n isCentered,\n hasName,\n label,\n iconLeft,\n iconRight,\n className,\n inputClassName,\n fileName,\n ...props\n },\n ref\n ) => {\n const { classPrefix } = useConfig();\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n // Mutually exclusive alignment\n let alignmentClass: string | undefined;\n if (isRight && isCentered) {\n // If both are set, prefer isRight and warn in dev\n alignmentClass = prefixedClassNames(classPrefix, 'is-right');\n } else if (isRight) {\n alignmentClass = prefixedClassNames(classPrefix, 'is-right');\n } else if (isCentered) {\n alignmentClass = prefixedClassNames(classPrefix, 'is-centered');\n }\n\n const mainClass = usePrefixedClassNames('file', {\n [`is-${color}`]: !!color,\n [`is-${size}`]: !!size,\n 'is-boxed': isBoxed,\n 'is-fullwidth': isFullwidth,\n 'has-name': hasName,\n });\n const fileClass = classNames(\n mainClass,\n bulmaHelperClasses,\n alignmentClass,\n className\n );\n\n return (\n <div className={fileClass}>\n <label className={usePrefixedClassNames('file-label')}>\n <input\n ref={ref}\n className={classNames(\n usePrefixedClassNames('file-input'),\n inputClassName\n )}\n type=\"file\"\n {...rest}\n />\n <span className={usePrefixedClassNames('file-cta')}>\n {iconLeft && (\n <span className={prefixedClassNames(classPrefix, 'file-icon')}>\n {iconLeft}\n </span>\n )}\n <span className={usePrefixedClassNames('file-label')}>\n {label || 'Choose a file…'}\n </span>\n {iconRight && (\n <span className={prefixedClassNames(classPrefix, 'file-icon')}>\n {iconRight}\n </span>\n )}\n </span>\n {hasName && fileName && (\n <span className={prefixedClassNames(classPrefix, 'file-name')}>\n {fileName}\n </span>\n )}\n </label>\n </div>\n );\n }\n);\n\nFile.displayName = 'File';\n\nexport default File;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Input component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the input.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the input.\n * @property {boolean} [isRounded] - Renders the input with rounded corners.\n * @property {boolean} [isStatic] - Renders the input as static text.\n * @property {boolean} [isHovered] - Applies the hovered state.\n * @property {boolean} [isFocused] - Applies the focused state.\n * @property {boolean} [isLoading] - Shows loading indicator.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [disabled] - Whether the input is disabled.\n * @property {boolean} [readOnly] - Whether the input is read-only.\n */\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n Omit<BulmaClassesProps, 'color'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n size?: 'small' | 'medium' | 'large';\n isRounded?: boolean;\n isStatic?: boolean;\n isHovered?: boolean;\n isFocused?: boolean;\n isLoading?: boolean;\n className?: string;\n disabled?: boolean;\n readOnly?: boolean;\n}\n\n/**\n * Bulma Input component with full Bulma helper class support.\n *\n * @function\n * @param {InputProps} props - Props for the Input component.\n * @returns {JSX.Element} The rendered input element.\n * @see {@link https://bulma.io/documentation/form/input/ | Bulma Input documentation}\n */\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n color,\n size,\n isRounded,\n isStatic,\n isHovered,\n isFocused,\n isLoading,\n className,\n disabled,\n readOnly,\n ...props\n },\n ref\n ) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('input', {\n [`is-${color}`]: !!color,\n [`is-${size}`]: !!size,\n 'is-rounded': isRounded,\n 'is-static': isStatic,\n 'is-hovered': isHovered,\n 'is-focused': isFocused,\n 'is-loading': isLoading,\n });\n const inputClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <input\n ref={ref}\n className={inputClass}\n disabled={disabled}\n readOnly={readOnly}\n {...rest}\n />\n );\n }\n);\nInput.displayName = 'Input';\n\nexport default Input;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Radio component.\n *\n * @property {boolean} [disabled] - Whether the radio is disabled.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} [children] - The label/content for the radio.\n * @see Bulma Radio documentation: https://bulma.io/documentation/form/radio/\n */\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'color'>,\n Omit<BulmaClassesProps, 'color'> {\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Radio component with Bulma helper classes support.\n * The label is provided via the children prop.\n *\n * @function\n * @param {RadioProps} props - Props for the Radio component.\n * @returns {JSX.Element} The rendered radio element.\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ disabled, className, children, ...props }, ref) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('radio');\n const radioClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <label className={radioClass}>\n <input ref={ref} type=\"radio\" disabled={disabled} {...rest} />\n {children}\n </label>\n );\n }\n);\n\nRadio.displayName = 'Radio';\n\nexport default Radio;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Radios component.\n *\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {React.ReactNode} children - Radio elements to render in the group.\n */\nexport interface RadiosProps extends Omit<BulmaClassesProps, 'color'> {\n className?: string;\n children: React.ReactNode;\n}\n\n/**\n * Wraps Radio components inside a Bulma 'radios' wrapper.\n * Leverages useBulmaClasses for consistency with other components.\n *\n * @function\n * @param {RadiosProps} props - Props for the Radios component.\n * @returns {JSX.Element} The rendered radios group.\n * @see {@link https://bulma.io/documentation/form/radio/#grouped-radios | Bulma Radios documentation}\n */\nexport const Radios: React.FC<RadiosProps> = ({\n children,\n className,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('radios');\n const wrapperClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <div className={wrapperClass} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Radios;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Select component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the select.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the select.\n * @property {boolean} [isRounded] - Renders the select with rounded corners.\n * @property {boolean} [isLoading] - Shows loading indicator.\n * @property {boolean} [isActive] - Applies Bulma's is-active modifier.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [disabled] - Whether the select is disabled.\n * @property {boolean} [multiple] - Whether the select allows multiple values.\n * @property {number} [multipleSize] - For multiple select: number of visible options.\n * @property {React.ReactNode} [children] - Option elements.\n */\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'>,\n Omit<BulmaClassesProps, 'color'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n size?: 'small' | 'medium' | 'large';\n isRounded?: boolean;\n isLoading?: boolean;\n isActive?: boolean;\n className?: string;\n disabled?: boolean;\n multiple?: boolean;\n multipleSize?: number;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Select component with full Bulma helper class support.\n *\n * @function\n * @param {SelectProps} props - Props for the Select component.\n * @returns {JSX.Element} The rendered select element.\n * @see {@link https://bulma.io/documentation/form/select/ | Bulma Select documentation}\n */\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n color,\n size,\n isRounded,\n isLoading,\n isActive,\n className,\n disabled,\n children,\n multiple,\n multipleSize,\n ...props\n },\n ref\n ) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('select', {\n [`is-${color}`]: !!color,\n [`is-${size}`]: !!size,\n 'is-rounded': isRounded,\n 'is-loading': isLoading,\n 'is-active': isActive,\n });\n const selectClass = classNames(mainClass, bulmaHelperClasses, className);\n\n // Only set size attribute when multiple is true and multipleSize is specified\n const selectProps: React.SelectHTMLAttributes<HTMLSelectElement> = {\n disabled,\n multiple,\n ...rest,\n };\n\n if (multiple && typeof multipleSize === 'number') {\n selectProps.size = multipleSize;\n }\n\n return (\n <div className={selectClass}>\n <select ref={ref} {...selectProps}>\n {children}\n </select>\n </div>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import React, { forwardRef } from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport { useBulmaClasses, BulmaClassesProps } from '../helpers/useBulmaClasses';\n\n/**\n * Props for the TextArea component.\n *\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the textarea.\n * @property {'small'|'medium'|'large'} [size] - Size modifier for the textarea.\n * @property {boolean} [isRounded] - Renders the textarea with rounded corners.\n * @property {boolean} [isStatic] - Renders the textarea as static text.\n * @property {boolean} [isHovered] - Applies the hovered state.\n * @property {boolean} [isFocused] - Applies the focused state.\n * @property {boolean} [isLoading] - Shows loading indicator.\n * @property {boolean} [isActive] - Applies Bulma's is-active modifier.\n * @property {boolean} [hasFixedSize] - Applies Bulma's has-fixed-size modifier.\n * @property {string} [className] - Additional CSS classes to apply.\n * @property {boolean} [disabled] - Whether the textarea is disabled.\n * @property {boolean} [readOnly] - Whether the textarea is read-only.\n * @property {number} [rows] - Number of visible text lines.\n */\nexport interface TextAreaProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'>,\n Omit<BulmaClassesProps, 'color'> {\n color?:\n | 'primary'\n | 'link'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'black'\n | 'dark'\n | 'light'\n | 'white';\n size?: 'small' | 'medium' | 'large';\n isRounded?: boolean;\n isStatic?: boolean;\n isHovered?: boolean;\n isFocused?: boolean;\n isLoading?: boolean;\n isActive?: boolean;\n hasFixedSize?: boolean;\n className?: string;\n disabled?: boolean;\n readOnly?: boolean;\n rows?: number;\n}\n\n/**\n * Bulma TextArea component with full Bulma helper class support.\n *\n * @function\n * @param {TextAreaProps} props - Props for the TextArea component.\n * @returns {JSX.Element} The rendered textarea element.\n * @see {@link https://bulma.io/documentation/form/textarea/ | Bulma Textarea documentation}\n */\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n color,\n size,\n isRounded,\n isStatic,\n isHovered,\n isFocused,\n isLoading,\n isActive,\n hasFixedSize,\n className,\n disabled,\n readOnly,\n rows,\n ...props\n },\n ref\n ) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('textarea', {\n [`is-${color}`]: !!color,\n [`is-${size}`]: !!size,\n 'is-rounded': isRounded,\n 'is-static': isStatic,\n 'is-hovered': isHovered,\n 'is-focused': isFocused,\n 'is-loading': isLoading,\n 'is-active': isActive,\n 'has-fixed-size': hasFixedSize,\n });\n const textareaClass = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <textarea\n ref={ref}\n className={textareaClass}\n disabled={disabled}\n readOnly={readOnly}\n rows={rows}\n {...rest}\n />\n );\n }\n);\nTextArea.displayName = 'TextArea';\n\nexport default TextArea;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Type for grid cell span values.\n */\nexport type CellSpanValue = number;\n\n/**\n * Props for the Cell component.\n *\n * @property {number} [colStart] - Which column the cell starts at (Bulma: is-col-start-x).\n * @property {number} [colFromEnd] - Which column the cell ends at, counting from the end (Bulma: is-col-from-end-x).\n * @property {CellSpanValue} [colSpan] - How many columns the cell will span (Bulma: is-col-span-x).\n * @property {number} [rowStart] - Which row the cell starts at (Bulma: is-row-start-x).\n * @property {number} [rowFromEnd] - Which row the cell ends at, counting from the end (Bulma: is-row-from-end-x).\n * @property {CellSpanValue} [rowSpan] - How many rows the cell will span (Bulma: is-row-span-x).\n * @property {string} [className] - Additional CSS class names.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the cell.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {React.ReactNode} [children] - Children to render inside the cell.\n */\nexport interface CellProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n colStart?: number;\n colFromEnd?: number;\n colSpan?: CellSpanValue;\n rowStart?: number;\n rowFromEnd?: number;\n rowSpan?: CellSpanValue;\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Cell component for CSS Grid layouts.\n *\n * @function\n * @param {CellProps} props - Props for the Cell component.\n * @returns {JSX.Element} The rendered grid cell.\n * @see {@link https://bulma.io/documentation/grid/ | Bulma Grid documentation}\n */\nexport const Cell: React.FC<CellProps> = ({\n colStart,\n colFromEnd,\n colSpan,\n rowStart,\n rowFromEnd,\n rowSpan,\n className,\n textColor,\n color: _fieldColor,\n bgColor,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('cell');\n\n // Build cell grid classes with prefixes\n const cellGridClasses = usePrefixedClassNames('', {\n [`is-col-start-${colStart}`]: colStart !== undefined && colStart !== null,\n [`is-col-from-end-${colFromEnd}`]:\n colFromEnd !== undefined && colFromEnd !== null,\n [`is-col-span-${colSpan}`]: colSpan !== undefined && colSpan !== null,\n [`is-row-start-${rowStart}`]: rowStart !== undefined && rowStart !== null,\n [`is-row-from-end-${rowFromEnd}`]:\n rowFromEnd !== undefined && rowFromEnd !== null,\n [`is-row-span-${rowSpan}`]: rowSpan !== undefined && rowSpan !== null,\n });\n\n const cellClasses = classNames(\n mainClass,\n cellGridClasses,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={cellClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Allowed gap values for Bulma grid.\n */\nexport type BulmaGapValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\n/**\n * Allowed minimum column values for Bulma grid.\n */\nexport type BulmaMinColValue =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16\n | 17\n | 18\n | 19\n | 20\n | 21\n | 22\n | 23\n | 24\n | 25\n | 26\n | 27\n | 28\n | 29\n | 30\n | 31\n | 32;\n/**\n * Allowed fixed grid columns for Bulma grid.\n */\nexport type BulmaFixedGridCols =\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12;\n/**\n * Allowed fixed grid columns prop for Bulma grid.\n */\nexport type BulmaFixedGridColsProp = BulmaFixedGridCols | 'auto';\n\n/**\n * Props for the Grid component.\n *\n * @property {boolean} [isFixed] - Use a fixed grid layout (Bulma's .fixed-grid > .grid).\n * @property {BulmaGapValue} [gap] - Main gap for grid (applies is-gap-X, 0-8).\n * @property {BulmaGapValue} [columnGap] - Column gap for grid (applies is-column-gap-X, 0-8).\n * @property {BulmaGapValue} [rowGap] - Row gap for grid (applies is-row-gap-X, 0-8).\n * @property {BulmaMinColValue} [minCol] - Minimum column width for the grid (applies is-col-min-X, 1-32).\n * @property {BulmaFixedGridColsProp} [fixedCols] - For fixed grid only: explicit column count (applies has-X-cols, 0-12), or 'auto' for has-auto-count.\n * @property {BulmaFixedGridCols} [fixedColsMobile] - For fixed grid only: explicit column count for mobile.\n * @property {BulmaFixedGridCols} [fixedColsTablet] - For fixed grid only: explicit column count for tablet.\n * @property {BulmaFixedGridCols} [fixedColsDesktop] - For fixed grid only: explicit column count for desktop.\n * @property {BulmaFixedGridCols} [fixedColsWidescreen] - For fixed grid only: explicit column count for widescreen.\n * @property {BulmaFixedGridCols} [fixedColsFullhd] - For fixed grid only: explicit column count for fullhd.\n * @property {string} [className] - Additional CSS class names.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier for the grid.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').\n * @property {React.ReactNode} [children] - Children to render inside the grid.\n */\nexport interface GridProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n isFixed?: boolean;\n gap?: BulmaGapValue;\n columnGap?: BulmaGapValue;\n rowGap?: BulmaGapValue;\n minCol?: BulmaMinColValue;\n fixedCols?: BulmaFixedGridColsProp;\n fixedColsMobile?: BulmaFixedGridCols;\n fixedColsTablet?: BulmaFixedGridCols;\n fixedColsDesktop?: BulmaFixedGridCols;\n fixedColsWidescreen?: BulmaFixedGridCols;\n fixedColsFullhd?: BulmaFixedGridCols;\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Grid component for CSS Grid layouts, supports both fixed and responsive grid modes.\n *\n * @function\n * @param {GridProps} props - Props for the Grid component.\n * @returns {JSX.Element} The rendered grid.\n * @see {@link https://bulma.io/documentation/grid/ | Bulma Grid documentation}\n */\nexport const Grid: React.FC<GridProps> = ({\n isFixed = false,\n gap,\n columnGap,\n rowGap,\n minCol,\n fixedCols,\n fixedColsMobile,\n fixedColsTablet,\n fixedColsDesktop,\n fixedColsWidescreen,\n fixedColsFullhd,\n className,\n textColor,\n color: _fieldColor,\n bgColor,\n children,\n ...props\n}) => {\n // Map textColor and bgColor to color and backgroundColor for useBulmaClasses\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('grid');\n\n // Build grid inner classes with prefixes\n const gridInnerClasses = usePrefixedClassNames('', {\n [`is-gap-${gap}`]: gap !== undefined && gap !== null,\n [`is-column-gap-${columnGap}`]:\n columnGap !== undefined && columnGap !== null,\n [`is-row-gap-${rowGap}`]: rowGap !== undefined && rowGap !== null,\n [`is-col-min-${minCol}`]: minCol !== undefined && minCol !== null,\n });\n\n // Build fixed grid classes with prefixes (always called, used conditionally)\n const fixedGridClasses = usePrefixedClassNames('fixed-grid', {\n 'has-auto-count': fixedCols === 'auto',\n [`has-${fixedCols}-cols`]: fixedCols !== undefined && fixedCols !== 'auto',\n [`has-${fixedColsMobile}-cols-mobile`]:\n fixedColsMobile !== undefined && fixedColsMobile !== null,\n [`has-${fixedColsTablet}-cols-tablet`]:\n fixedColsTablet !== undefined && fixedColsTablet !== null,\n [`has-${fixedColsDesktop}-cols-desktop`]:\n fixedColsDesktop !== undefined && fixedColsDesktop !== null,\n [`has-${fixedColsWidescreen}-cols-widescreen`]:\n fixedColsWidescreen !== undefined && fixedColsWidescreen !== null,\n [`has-${fixedColsFullhd}-cols-fullhd`]:\n fixedColsFullhd !== undefined && fixedColsFullhd !== null,\n });\n\n const gridClasses = classNames(\n mainClass,\n gridInnerClasses,\n bulmaHelperClasses,\n className\n );\n\n if (isFixed) {\n return (\n <div className={fixedGridClasses}>\n <div className={gridClasses} {...rest}>\n {children}\n </div>\n </div>\n );\n }\n\n // Standard Bulma grid (not fixed)\n return (\n <div className={gridClasses} {...rest}>\n {children}\n </div>\n );\n};\n","import React, { useEffect, useMemo, ReactNode, CSSProperties } from 'react';\nimport classNames from './classNames';\nimport { useBulmaClasses, BulmaClassesProps } from './useBulmaClasses';\n\n// --- FULL Bulma v1 CSS variable keys (auto-generated from CSSVAR_KEYS) ---\nconst bulmaCssVars = [\n // scheme\n '--bulma-scheme-h',\n '--bulma-scheme-s',\n '--bulma-light-l',\n '--bulma-light-invert-l',\n '--bulma-dark-l',\n '--bulma-dark-invert-l',\n '--bulma-soft-l',\n '--bulma-bold-l',\n '--bulma-soft-invert-l',\n '--bulma-bold-invert-l',\n '--bulma-hover-background-l-delta',\n '--bulma-active-background-l-delta',\n '--bulma-hover-border-l-delta',\n '--bulma-active-border-l-delta',\n '--bulma-hover-color-l-delta',\n '--bulma-active-color-l-delta',\n '--bulma-hover-shadow-a-delta',\n '--bulma-active-shadow-a-delta',\n // colors\n '--bulma-primary-h',\n '--bulma-primary-s',\n '--bulma-primary-l',\n '--bulma-link-h',\n '--bulma-link-s',\n '--bulma-link-l',\n '--bulma-info-h',\n '--bulma-info-s',\n '--bulma-info-l',\n '--bulma-success-h',\n '--bulma-success-s',\n '--bulma-success-l',\n '--bulma-warning-h',\n '--bulma-warning-s',\n '--bulma-warning-l',\n '--bulma-danger-h',\n '--bulma-danger-s',\n '--bulma-danger-l',\n // typography\n '--bulma-family-primary',\n '--bulma-family-secondary',\n '--bulma-family-code',\n '--bulma-size-small',\n '--bulma-size-normal',\n '--bulma-size-medium',\n '--bulma-size-large',\n '--bulma-weight-light',\n '--bulma-weight-normal',\n '--bulma-weight-medium',\n '--bulma-weight-semibold',\n '--bulma-weight-bold',\n '--bulma-weight-extrabold',\n // other\n '--bulma-block-spacing',\n '--bulma-duration',\n '--bulma-easing',\n '--bulma-radius-small',\n '--bulma-radius',\n '--bulma-radius-medium',\n '--bulma-radius-large',\n '--bulma-radius-rounded',\n '--bulma-speed',\n '--bulma-arrow-color',\n '--bulma-loading-color',\n '--bulma-burger-h',\n '--bulma-burger-s',\n '--bulma-burger-l',\n '--bulma-burger-border-radius',\n '--bulma-burger-gap',\n '--bulma-burger-item-height',\n '--bulma-burger-item-width',\n // generic\n '--bulma-body-background-color',\n '--bulma-body-size',\n '--bulma-body-min-width',\n '--bulma-body-rendering',\n '--bulma-body-family',\n '--bulma-body-overflow-x',\n '--bulma-body-overflow-y',\n '--bulma-body-color',\n '--bulma-body-font-size',\n '--bulma-body-weight',\n '--bulma-body-line-height',\n '--bulma-code-family',\n '--bulma-code-padding',\n '--bulma-code-weight',\n '--bulma-code-size',\n '--bulma-small-font-size',\n '--bulma-hr-background-color',\n '--bulma-hr-height',\n '--bulma-hr-margin',\n '--bulma-strong-color',\n '--bulma-strong-weight',\n '--bulma-pre-font-size',\n '--bulma-pre-padding',\n '--bulma-pre-code-font-size',\n // skeleton\n '--bulma-skeleton-background',\n '--bulma-skeleton-radius',\n '--bulma-skeleton-block-min-height',\n '--bulma-skeleton-lines-gap',\n '--bulma-skeleton-line-height',\n // breadcrumb\n '--bulma-breadcrumb-item-color',\n '--bulma-breadcrumb-item-hover-color',\n '--bulma-breadcrumb-item-active-color',\n '--bulma-breadcrumb-item-padding-vertical',\n '--bulma-breadcrumb-item-padding-horizontal',\n '--bulma-breadcrumb-item-separator-color',\n // card\n '--bulma-card-color',\n '--bulma-card-background-color',\n '--bulma-card-shadow',\n '--bulma-card-radius',\n '--bulma-card-header-background-color',\n '--bulma-card-header-color',\n '--bulma-card-header-padding',\n '--bulma-card-header-shadow',\n '--bulma-card-header-weight',\n '--bulma-card-content-background-color',\n '--bulma-card-content-padding',\n '--bulma-card-footer-background-color',\n '--bulma-card-footer-border-top',\n '--bulma-card-footer-padding',\n '--bulma-card-media-margin',\n // dropdown\n '--bulma-dropdown-menu-min-width',\n '--bulma-dropdown-content-background-color',\n '--bulma-dropdown-content-offset',\n '--bulma-dropdown-content-padding-bottom',\n '--bulma-dropdown-content-padding-top',\n '--bulma-dropdown-content-radius',\n '--bulma-dropdown-content-shadow',\n '--bulma-dropdown-content-z',\n '--bulma-dropdown-item-h',\n '--bulma-dropdown-item-s',\n '--bulma-dropdown-item-l',\n '--bulma-dropdown-item-background-l',\n '--bulma-dropdown-item-background-l-delta',\n '--bulma-dropdown-item-hover-background-l-delta',\n '--bulma-dropdown-item-active-background-l-delta',\n '--bulma-dropdown-item-color-l',\n '--bulma-dropdown-item-selected-h',\n '--bulma-dropdown-item-selected-s',\n '--bulma-dropdown-item-selected-l',\n '--bulma-dropdown-item-selected-background-l',\n '--bulma-dropdown-item-selected-color-l',\n '--bulma-dropdown-divider-background-color',\n // menu\n '--bulma-menu-item-h',\n '--bulma-menu-item-s',\n '--bulma-menu-item-l',\n '--bulma-menu-item-background-l',\n '--bulma-menu-item-background-l-delta',\n '--bulma-menu-item-hover-background-l-delta',\n '--bulma-menu-item-active-background-l-delta',\n '--bulma-menu-item-color-l',\n '--bulma-menu-item-radius',\n '--bulma-menu-item-selected-h',\n '--bulma-menu-item-selected-s',\n '--bulma-menu-item-selected-l',\n '--bulma-menu-item-selected-background-l',\n '--bulma-menu-item-selected-color-l',\n '--bulma-menu-list-border-left',\n '--bulma-menu-list-line-height',\n '--bulma-menu-list-link-padding',\n '--bulma-menu-nested-list-margin',\n '--bulma-menu-nested-list-padding-left',\n '--bulma-menu-label-color',\n '--bulma-menu-label-font-size',\n '--bulma-menu-label-letter-spacing',\n '--bulma-menu-label-spacing',\n // message\n '--bulma-message-h',\n '--bulma-message-s',\n '--bulma-message-background-l',\n '--bulma-message-border-l',\n '--bulma-message-border-l-delta',\n '--bulma-message-border-style',\n '--bulma-message-border-width',\n '--bulma-message-color-l',\n '--bulma-message-radius',\n '--bulma-message-header-weight',\n '--bulma-message-header-padding',\n '--bulma-message-header-radius',\n '--bulma-message-header-body-border-width',\n '--bulma-message-header-background-l',\n '--bulma-message-header-color-l',\n '--bulma-message-body-border-width',\n '--bulma-message-body-color',\n '--bulma-message-body-padding',\n '--bulma-message-body-radius',\n '--bulma-message-body-pre-code-background-color',\n // modal\n '--bulma-modal-z',\n '--bulma-modal-background-background-color',\n '--bulma-modal-content-width',\n '--bulma-modal-content-margin-mobile',\n '--bulma-modal-content-spacing-mobile',\n '--bulma-modal-content-spacing-tablet',\n '--bulma-modal-close-dimensions',\n '--bulma-modal-close-right',\n '--bulma-modal-close-top',\n '--bulma-modal-card-spacing',\n '--bulma-modal-card-head-background-color',\n '--bulma-modal-card-head-padding',\n '--bulma-modal-card-head-radius',\n '--bulma-modal-card-title-color',\n '--bulma-modal-card-title-line-height',\n '--bulma-modal-card-title-size',\n '--bulma-modal-card-foot-background-color',\n '--bulma-modal-card-foot-radius',\n '--bulma-modal-card-body-background-color',\n '--bulma-modal-card-body-padding',\n // navbar\n '--bulma-navbar-h',\n '--bulma-navbar-s',\n '--bulma-navbar-l',\n '--bulma-navbar-background-color',\n '--bulma-navbar-box-shadow-size',\n '--bulma-navbar-box-shadow-color',\n '--bulma-navbar-padding-vertical',\n '--bulma-navbar-padding-horizontal',\n '--bulma-navbar-z',\n '--bulma-navbar-fixed-z',\n '--bulma-navbar-item-background-a',\n '--bulma-navbar-item-background-l',\n '--bulma-navbar-item-background-l-delta',\n '--bulma-navbar-item-hover-background-l-delta',\n '--bulma-navbar-item-active-background-l-delta',\n '--bulma-navbar-item-color-l',\n '--bulma-navbar-item-selected-h',\n '--bulma-navbar-item-selected-s',\n '--bulma-navbar-item-selected-l',\n '--bulma-navbar-item-selected-background-l',\n '--bulma-navbar-item-selected-color-l',\n '--bulma-navbar-item-img-max-height',\n '--bulma-navbar-burger-color',\n '--bulma-navbar-tab-hover-background-color',\n '--bulma-navbar-tab-hover-border-bottom-color',\n '--bulma-navbar-tab-active-color',\n '--bulma-navbar-tab-active-background-color',\n '--bulma-navbar-tab-active-border-bottom-color',\n '--bulma-navbar-tab-active-border-bottom-style',\n '--bulma-navbar-tab-active-border-bottom-width',\n '--bulma-navbar-dropdown-background-color',\n '--bulma-navbar-dropdown-border-l',\n '--bulma-navbar-dropdown-border-color',\n '--bulma-navbar-dropdown-border-style',\n '--bulma-navbar-dropdown-border-width',\n '--bulma-navbar-dropdown-offset',\n '--bulma-navbar-dropdown-arrow',\n '--bulma-navbar-dropdown-radius',\n '--bulma-navbar-dropdown-z',\n '--bulma-navbar-dropdown-boxed-radius',\n '--bulma-navbar-dropdown-boxed-shadow',\n '--bulma-navbar-dropdown-item-h',\n '--bulma-navbar-dropdown-item-s',\n '--bulma-navbar-dropdown-item-l',\n '--bulma-navbar-dropdown-item-background-l',\n '--bulma-navbar-dropdown-item-color-l',\n '--bulma-navbar-divider-background-l',\n '--bulma-navbar-divider-height',\n '--bulma-navbar-bottom-box-shadow-size',\n // pagination\n '--bulma-pagination-margin',\n '--bulma-pagination-min-width',\n '--bulma-pagination-item-h',\n '--bulma-pagination-item-s',\n '--bulma-pagination-item-l',\n '--bulma-pagination-item-background-l-delta',\n '--bulma-pagination-item-hover-background-l-delta',\n '--bulma-pagination-item-active-background-l-delta',\n '--bulma-pagination-item-border-style',\n '--bulma-pagination-item-border-width',\n '--bulma-pagination-item-border-l',\n '--bulma-pagination-item-border-l-delta',\n '--bulma-pagination-item-hover-border-l-delta',\n '--bulma-pagination-item-active-border-l-delta',\n '--bulma-pagination-item-focus-border-l-delta',\n '--bulma-pagination-item-color-l',\n '--bulma-pagination-item-font-size',\n '--bulma-pagination-item-margin',\n '--bulma-pagination-item-padding-left',\n '--bulma-pagination-item-padding-right',\n '--bulma-pagination-item-outer-shadow-h',\n '--bulma-pagination-item-outer-shadow-s',\n '--bulma-pagination-item-outer-shadow-l',\n '--bulma-pagination-item-outer-shadow-a',\n '--bulma-pagination-nav-padding-left',\n '--bulma-pagination-nav-padding-right',\n '--bulma-pagination-disabled-color',\n '--bulma-pagination-disabled-background-color',\n '--bulma-pagination-disabled-border-color',\n '--bulma-pagination-current-color',\n '--bulma-pagination-current-background-color',\n '--bulma-pagination-current-border-color',\n '--bulma-pagination-ellipsis-color',\n '--bulma-pagination-shadow-inset',\n '--bulma-pagination-selected-item-h',\n '--bulma-pagination-selected-item-s',\n '--bulma-pagination-selected-item-l',\n '--bulma-pagination-selected-item-background-l',\n '--bulma-pagination-selected-item-border-l',\n '--bulma-pagination-selected-item-color-l',\n // panel\n '--bulma-panel-margin',\n '--bulma-panel-item-border',\n '--bulma-panel-radius',\n '--bulma-panel-shadow',\n '--bulma-panel-heading-line-height',\n '--bulma-panel-heading-padding',\n '--bulma-panel-heading-radius',\n '--bulma-panel-heading-size',\n '--bulma-panel-heading-weight',\n '--bulma-panel-tabs-font-size',\n '--bulma-panel-tab-border-bottom-color',\n '--bulma-panel-tab-border-bottom-style',\n '--bulma-panel-tab-border-bottom-width',\n '--bulma-panel-tab-active-color',\n '--bulma-panel-list-item-color',\n '--bulma-panel-list-item-hover-color',\n '--bulma-panel-block-color',\n '--bulma-panel-block-hover-background-color',\n '--bulma-panel-block-active-border-left-color',\n '--bulma-panel-block-active-color',\n '--bulma-panel-block-active-icon-color',\n '--bulma-panel-icon-color',\n // tabs\n '--bulma-tabs-border-bottom-color',\n '--bulma-tabs-border-bottom-style',\n '--bulma-tabs-border-bottom-width',\n '--bulma-tabs-link-color',\n '--bulma-tabs-link-hover-border-bottom-color',\n '--bulma-tabs-link-hover-color',\n '--bulma-tabs-link-active-border-bottom-color',\n '--bulma-tabs-link-active-color',\n '--bulma-tabs-link-padding',\n '--bulma-tabs-boxed-link-radius',\n '--bulma-tabs-boxed-link-hover-background-color',\n '--bulma-tabs-boxed-link-hover-border-bottom-color',\n '--bulma-tabs-boxed-link-active-background-color',\n '--bulma-tabs-boxed-link-active-border-color',\n '--bulma-tabs-boxed-link-active-border-bottom-color',\n '--bulma-tabs-toggle-link-border-color',\n '--bulma-tabs-toggle-link-border-style',\n '--bulma-tabs-toggle-link-border-width',\n '--bulma-tabs-toggle-link-hover-background-color',\n '--bulma-tabs-toggle-link-hover-border-color',\n '--bulma-tabs-toggle-link-radius',\n '--bulma-tabs-toggle-link-active-background-color',\n '--bulma-tabs-toggle-link-active-border-color',\n '--bulma-tabs-toggle-link-active-color',\n // box\n '--bulma-box-background-color',\n '--bulma-box-color',\n '--bulma-box-radius',\n '--bulma-box-shadow',\n '--bulma-box-padding',\n '--bulma-box-link-hover-shadow',\n '--bulma-box-link-active-shadow',\n // content\n '--bulma-content-heading-color',\n '--bulma-content-heading-weight',\n '--bulma-content-heading-line-height',\n '--bulma-content-block-margin-bottom',\n '--bulma-content-blockquote-background-color',\n '--bulma-content-blockquote-border-left',\n '--bulma-content-blockquote-padding',\n '--bulma-content-pre-padding',\n '--bulma-content-table-cell-border',\n '--bulma-content-table-cell-border-width',\n '--bulma-content-table-cell-padding',\n '--bulma-content-table-cell-heading-color',\n '--bulma-content-table-head-cell-border-width',\n '--bulma-content-table-head-cell-color',\n '--bulma-content-table-body-last-row-cell-border-bottom-width',\n '--bulma-content-table-foot-cell-border-width',\n '--bulma-content-table-foot-cell-color',\n // delete\n '--bulma-delete-dimensions',\n '--bulma-delete-background-l',\n '--bulma-delete-background-alpha',\n '--bulma-delete-color',\n // icon\n '--bulma-icon-dimensions',\n '--bulma-icon-dimensions-small',\n '--bulma-icon-dimensions-medium',\n '--bulma-icon-dimensions-large',\n '--bulma-icon-text-spacing',\n // notification\n '--bulma-notification-h',\n '--bulma-notification-s',\n '--bulma-notification-background-l',\n '--bulma-notification-color-l',\n '--bulma-notification-code-background-color',\n '--bulma-notification-radius',\n '--bulma-notification-padding',\n // progress\n '--bulma-progress-border-radius',\n '--bulma-progress-bar-background-color',\n '--bulma-progress-value-background-color',\n '--bulma-progress-indeterminate-duration',\n // table\n '--bulma-table-color',\n '--bulma-table-background-color',\n '--bulma-table-cell-border-color',\n '--bulma-table-cell-border-style',\n '--bulma-table-cell-border-width',\n '--bulma-table-cell-padding',\n '--bulma-table-cell-heading-color',\n '--bulma-table-cell-text-align',\n '--bulma-table-head-cell-border-width',\n '--bulma-table-head-cell-color',\n '--bulma-table-foot-cell-border-width',\n '--bulma-table-foot-cell-color',\n '--bulma-table-head-background-color',\n '--bulma-table-body-background-color',\n '--bulma-table-foot-background-color',\n '--bulma-table-row-hover-background-color',\n '--bulma-table-row-active-background-color',\n '--bulma-table-row-active-color',\n '--bulma-table-striped-row-even-background-color',\n '--bulma-table-striped-row-even-hover-background-color',\n // tag\n '--bulma-tag-h',\n '--bulma-tag-s',\n '--bulma-tag-background-l',\n '--bulma-tag-background-l-delta',\n '--bulma-tag-hover-background-l-delta',\n '--bulma-tag-active-background-l-delta',\n '--bulma-tag-color-l',\n '--bulma-tag-radius',\n '--bulma-tag-delete-margin',\n // title\n '--bulma-title-color',\n '--bulma-title-family',\n '--bulma-title-size',\n '--bulma-title-weight',\n '--bulma-title-line-height',\n '--bulma-title-strong-color',\n '--bulma-title-strong-weight',\n '--bulma-title-sub-size',\n '--bulma-title-sup-size',\n '--bulma-subtitle-color',\n '--bulma-subtitle-family',\n '--bulma-subtitle-size',\n '--bulma-subtitle-weight',\n '--bulma-subtitle-line-height',\n '--bulma-subtitle-strong-color',\n '--bulma-subtitle-strong-weight',\n // control\n '--bulma-control-radius',\n '--bulma-control-radius-small',\n '--bulma-control-border-width',\n '--bulma-control-height',\n '--bulma-control-line-height',\n '--bulma-control-padding-vertical',\n '--bulma-control-padding-horizontal',\n '--bulma-control-size',\n '--bulma-control-focus-shadow-l',\n // file\n '--bulma-file-radius',\n '--bulma-file-name-border-color',\n '--bulma-file-name-border-style',\n '--bulma-file-name-border-width',\n '--bulma-file-name-max-width',\n '--bulma-file-h',\n '--bulma-file-s',\n '--bulma-file-background-l',\n '--bulma-file-background-l-delta',\n '--bulma-file-hover-background-l-delta',\n '--bulma-file-active-background-l-delta',\n '--bulma-file-border-l',\n '--bulma-file-border-l-delta',\n '--bulma-file-hover-border-l-delta',\n '--bulma-file-active-border-l-delta',\n '--bulma-file-cta-color-l',\n '--bulma-file-name-color-l',\n '--bulma-file-color-l-delta',\n '--bulma-file-hover-color-l-delta',\n '--bulma-file-active-color-l-delta',\n // input\n '--bulma-input-h',\n '--bulma-input-s',\n '--bulma-input-l',\n '--bulma-input-border-style',\n '--bulma-input-border-l',\n '--bulma-input-border-l-delta',\n '--bulma-input-hover-border-l-delta',\n '--bulma-input-active-border-l-delta',\n '--bulma-input-focus-h',\n '--bulma-input-focus-s',\n '--bulma-input-focus-l',\n '--bulma-input-focus-shadow-size',\n '--bulma-input-focus-shadow-alpha',\n '--bulma-input-color-l',\n '--bulma-input-background-l',\n '--bulma-input-background-l-delta',\n '--bulma-input-height',\n '--bulma-input-shadow',\n '--bulma-input-placeholder-color',\n '--bulma-input-disabled-color',\n '--bulma-input-disabled-background-color',\n '--bulma-input-disabled-border-color',\n '--bulma-input-disabled-placeholder-color',\n '--bulma-input-arrow',\n '--bulma-input-icon-color',\n '--bulma-input-icon-hover-color',\n '--bulma-input-icon-focus-color',\n '--bulma-input-radius',\n // columns\n '--bulma-column-gap',\n // grid\n '--bulma-grid-gap',\n '--bulma-grid-column-count',\n '--bulma-grid-column-min',\n '--bulma-grid-cell-column-span',\n '--bulma-grid-cell-column-start',\n // footer\n '--bulma-footer-background-color',\n '--bulma-footer-color',\n '--bulma-footer-padding',\n // hero\n '--bulma-hero-body-padding',\n '--bulma-hero-body-padding-tablet',\n '--bulma-hero-body-padding-small',\n '--bulma-hero-body-padding-medium',\n '--bulma-hero-body-padding-large',\n // media\n '--bulma-media-border-color',\n '--bulma-media-border-size',\n '--bulma-media-spacing',\n '--bulma-media-spacing-large',\n '--bulma-media-content-spacing',\n '--bulma-media-level-1-spacing',\n '--bulma-media-level-1-content-spacing',\n '--bulma-media-level-2-spacing',\n // section\n '--bulma-section-padding',\n '--bulma-section-padding-desktop',\n '--bulma-section-padding-medium',\n '--bulma-section-padding-large',\n] as const;\n\ntype BulmaVarKey = (typeof bulmaCssVars)[number];\ntype BulmaVars = Partial<Record<BulmaVarKey, string>>;\n\n// Utility: Convert Bulma CSS var to camelCase prop name (e.g., --bulma-primary-h -> primaryH)\nfunction cssVarToProp(varName: string): string {\n return varName\n .replace(/^--bulma-/, '')\n .split('-')\n .map((part, i) =>\n i === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1)\n )\n .join('');\n}\n\n// Generate prop names and mapping\nconst bulmaVarPropMap = Object.fromEntries(\n bulmaCssVars.map(cssVar => [cssVarToProp(cssVar), cssVar])\n) as Record<string, string>;\n\n// Explicitly define the props interface to avoid index signature conflicts\nexport interface ThemeProps\n extends Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n children: ReactNode;\n className?: string;\n isRoot?: boolean;\n bulmaVars?: BulmaVars;\n // Bulma scheme variables\n schemeH?: string;\n schemeS?: string;\n lightL?: string;\n lightInvertL?: string;\n darkL?: string;\n darkInvertL?: string;\n softL?: string;\n boldL?: string;\n softInvertL?: string;\n boldInvertL?: string;\n hoverBackgroundLDelta?: string;\n activeBackgroundLDelta?: string;\n hoverBorderLDelta?: string;\n activeBorderLDelta?: string;\n hoverColorLDelta?: string;\n activeColorLDelta?: string;\n hoverShadowADelta?: string;\n activeShadowADelta?: string;\n // Bulma color variables\n primaryH?: string;\n primaryS?: string;\n primaryL?: string;\n linkH?: string;\n linkS?: string;\n linkL?: string;\n infoH?: string;\n infoS?: string;\n infoL?: string;\n successH?: string;\n successS?: string;\n successL?: string;\n warningH?: string;\n warningS?: string;\n warningL?: string;\n dangerH?: string;\n dangerS?: string;\n dangerL?: string;\n // Add other commonly used ones as needed\n}\n\n/**\n * Theme injects Bulma CSS variables as a wrapper component.\n * - className: Additional CSS classes to apply to the wrapper div (when isRoot=false)\n * - bulmaVars: An object mapping Bulma CSS variable names to values.\n * - isRoot: If true, CSS variables are injected globally at :root level. If false (default), they're injected locally on a wrapping div.\n * - Individual props for each Bulma CSS variable (e.g., primaryH, schemeH, etc.)\n * - Supports all BulmaClassesProps for additional styling when isRoot=false\n */\nexport const Theme: React.FC<ThemeProps> = ({\n bulmaVars = {},\n children,\n className,\n isRoot = false,\n ...restProps\n}) => {\n // Extract Bulma variable props from restProps\n const { bulmaVarProps, otherProps } = useMemo(() => {\n const varProps: Record<string, string | undefined> = {};\n const otherPropsObj: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(restProps)) {\n if (Object.prototype.hasOwnProperty.call(bulmaVarPropMap, key)) {\n varProps[key] = value as string;\n } else {\n otherPropsObj[key] = value;\n }\n }\n\n return { bulmaVarProps: varProps, otherProps: otherPropsObj };\n }, [restProps]);\n\n // Use Bulma classes for styling (only when not isRoot)\n const { bulmaHelperClasses, rest } = useBulmaClasses(otherProps);\n\n // Merge bulmaVars and individual props, with props taking precedence\n const mergedVars: BulmaVars = useMemo(() => {\n const vars: BulmaVars = { ...bulmaVars };\n for (const [propName, cssVar] of Object.entries(bulmaVarPropMap)) {\n if (bulmaVarProps[propName] !== undefined) {\n vars[cssVar as BulmaVarKey] = bulmaVarProps[propName] as string;\n }\n }\n return vars;\n }, [bulmaVars, bulmaVarProps]);\n\n // Inject CSS variables globally at :root level\n useEffect(() => {\n if (!isRoot) {\n return;\n }\n\n const validVars = Object.entries(mergedVars).filter(\n ([key, value]) => bulmaCssVars.includes(key as BulmaVarKey) && value\n );\n\n if (validVars.length === 0) {\n return;\n }\n\n // Create and inject a style element for global CSS variables\n const styleId = 'bestax-bulma-theme-vars';\n let styleElement = document.getElementById(styleId) as HTMLStyleElement;\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n const cssRules = validVars\n .map(([key, value]) => `${key}: ${value};`)\n .join(' ');\n styleElement.textContent = `:root { ${cssRules} }`;\n\n // Cleanup function to remove the style element when component unmounts\n return () => {\n const element = document.getElementById(styleId);\n if (element) {\n element.remove();\n }\n };\n }, [mergedVars, isRoot]);\n\n // For local injection (when isRoot is false), prepare style object for CSS vars\n const style: CSSProperties = useMemo(() => {\n if (isRoot) {\n return {};\n }\n\n const styleObj: CSSProperties = {};\n for (const [key, value] of Object.entries(mergedVars)) {\n if (bulmaCssVars.includes(key as BulmaVarKey) && value) {\n (styleObj as Record<string, string>)[key] = value;\n }\n }\n return styleObj;\n }, [mergedVars, isRoot]);\n\n // Generate combined class names for the wrapper div\n const combinedClassName = useMemo(() => {\n if (isRoot) {\n return '';\n }\n return classNames(className, bulmaHelperClasses);\n }, [className, bulmaHelperClasses, isRoot]);\n\n return isRoot ? (\n <>{children}</>\n ) : (\n <div className={combinedClassName || undefined} style={style} {...rest}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport classNames, { usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Bulma container breakpoints.\n */\nexport type ContainerBreakpoint = 'tablet' | 'desktop' | 'widescreen';\n\n/**\n * Props for the Container component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {'primary'|'link'|'info'|'success'|'warning'|'danger'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {boolean} [fluid] - Full-width container.\n * @property {boolean} [widescreen] - Container is widescreen.\n * @property {boolean} [fullhd] - Container is fullhd.\n * @property {ContainerBreakpoint} [breakpoint] - Responsive breakpoint.\n * @property {boolean} [isMax] - Use is-max-* class for breakpoint.\n * @property {React.ReactNode} [children] - Content inside the container.\n */\nexport interface ContainerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n fluid?: boolean;\n widescreen?: boolean;\n fullhd?: boolean;\n breakpoint?: ContainerBreakpoint;\n isMax?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Container component for Bulma.\n * Adds optional responsive, fluid, and color support, including is-max-* and breakpoint classes.\n *\n * @function\n * @param {ContainerProps} props - Props for the Container component.\n * @returns {JSX.Element} The rendered container.\n * @see {@link https://bulma.io/documentation/layout/container/ | Bulma Container documentation}\n */\nexport const Container: React.FC<ContainerProps> = ({\n className,\n textColor,\n bgColor,\n fluid,\n widescreen,\n fullhd,\n breakpoint,\n isMax,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor,\n backgroundColor: bgColor,\n ...props,\n });\n\n // Only allow isMax for supported breakpoints\n const validMaxBreakpoints: ContainerBreakpoint[] = [\n 'tablet',\n 'desktop',\n 'widescreen',\n ];\n let breakpointClass: string | undefined;\n if (breakpoint) {\n if (isMax && validMaxBreakpoints.includes(breakpoint)) {\n breakpointClass = `is-max-${breakpoint}`;\n } else if (!isMax) {\n breakpointClass = `is-${breakpoint}`;\n }\n }\n\n const mainClass = usePrefixedClassNames('container');\n const containerModifiers = usePrefixedClassNames('', {\n 'is-fluid': fluid,\n 'is-widescreen': widescreen,\n 'is-fullhd': fullhd,\n });\n const prefixedBreakpointClass = usePrefixedClassNames(breakpointClass || '');\n\n const containerClasses = classNames(\n mainClass,\n containerModifiers,\n prefixedBreakpointClass,\n className,\n bulmaHelperClasses\n );\n\n return (\n <div className={containerClasses} {...rest}>\n {children}\n </div>\n );\n};\n\nexport default Container;\n","import React from 'react';\nimport classNames, { usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Footer component.\n *\n * @property {'footer'|'div'} [as] - The HTML tag to render as.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content inside the footer.\n */\nexport interface FooterProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n as?: 'footer' | 'div';\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Footer component.\n *\n * @example\n * <Footer>\n * <div className=\"content has-text-centered\">...</div>\n * </Footer>\n * @see {@link https://bulma.io/documentation/layout/footer/ | Bulma Footer documentation}\n */\nexport const Footer: React.FC<FooterProps> = ({\n as = 'footer',\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const Tag = as;\n const mainClass = usePrefixedClassNames('footer');\n const footerClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <Tag className={footerClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\nexport default Footer;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Possible values for Bulma hero size.\n */\nexport type HeroSize =\n | 'small'\n | 'medium'\n | 'large'\n | 'fullheight'\n | 'fullheight-with-navbar';\n\n/**\n * Props for the Hero component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {HeroSize} [size] - Hero size.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {boolean} [fullheightWithNavbar] - Use fullheight with navbar.\n * @property {React.ReactNode} [children] - Content inside the hero.\n */\nexport interface HeroProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n size?: HeroSize;\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n fullheightWithNavbar?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Hero component root.\n *\n * @function\n * @param {HeroProps} props - Props for the Hero component.\n * @returns {JSX.Element} The rendered hero.\n * @see {@link https://bulma.io/documentation/layout/hero/ | Bulma Hero documentation}\n */\nexport const Hero: React.FC<HeroProps> & {\n Head: typeof HeroHead;\n Body: typeof HeroBody;\n Foot: typeof HeroFoot;\n} = ({\n className,\n color,\n size,\n bgColor,\n fullheightWithNavbar,\n children,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('hero', {\n [`is-${color}`]: color,\n [`is-${size}`]: size && size !== 'fullheight-with-navbar',\n 'is-fullheight-with-navbar':\n fullheightWithNavbar || size === 'fullheight-with-navbar',\n });\n const heroClasses = classNames(mainClass, bulmaHelperClasses, className);\n\n return (\n <section className={heroClasses} {...rest}>\n {children}\n </section>\n );\n};\n\n/**\n * Props for the HeroHead component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier for text.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface HeroHeadProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Hero head section.\n */\nexport const HeroHead: React.FC<HeroHeadProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('hero-head');\n const heroHeadClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <div className={heroHeadClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the HeroBody component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier for text.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface HeroBodyProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Hero body section.\n */\nexport const HeroBody: React.FC<HeroBodyProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('hero-body');\n const heroBodyClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <div className={heroBodyClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the HeroFoot component.\n *\n * @property {string} [className] - Additional CSS classes.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier for text.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface HeroFootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n className?: string;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Hero foot section.\n */\nexport const HeroFoot: React.FC<HeroFootProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('hero-foot');\n const heroFootClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <div className={heroFootClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n// Attach subcomponents\nHero.Head = HeroHead;\nHero.Body = HeroBody;\nHero.Foot = HeroFoot;\n\nexport default Hero;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Level component.\n *\n * @property {boolean} [isMobile] - Enable mobile mode.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Level content.\n */\nexport interface LevelProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n isMobile?: boolean;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Level component for horizontal layouts.\n *\n * @function\n * @param {LevelProps} props - Props for the Level component.\n * @returns {JSX.Element} The rendered level.\n * @see {@link https://bulma.io/documentation/layout/level/ | Bulma Level documentation}\n */\nexport const Level: React.FC<LevelProps> & {\n Left: typeof LevelLeft;\n Right: typeof LevelRight;\n Item: typeof LevelItem;\n} = ({\n isMobile,\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('level', {\n 'is-mobile': isMobile,\n });\n const levelClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <nav className={levelClasses} {...rest}>\n {children}\n </nav>\n );\n};\n\n/**\n * Props for the LevelLeft component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface LevelLeftProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Level left section.\n */\nexport const LevelLeft: React.FC<LevelLeftProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('level-left');\n const levelLeftClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <div className={levelLeftClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the LevelRight component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface LevelRightProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Level right section.\n */\nexport const LevelRight: React.FC<LevelRightProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('level-right');\n const levelRightClasses = classNames(\n mainClass,\n bulmaHelperClasses,\n className\n );\n return (\n <div className={levelRightClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the LevelItem component.\n *\n * @property {'div'|'p'|'a'} [as] - Element type to render.\n * @property {boolean} [hasTextCentered] - Center the text in the item.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n * @property {string} [href] - Href for \"a\" tag.\n * @property {string} [target] - Target for \"a\" tag\n * @property {string} [rel] - Rel for \"a\" tag\n */\nexport interface LevelItemProps\n extends React.HTMLAttributes<\n HTMLDivElement | HTMLParagraphElement | HTMLAnchorElement\n >,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n as?: 'div' | 'p' | 'a';\n hasTextCentered?: boolean;\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n href?: string;\n target?: string;\n rel?: string;\n}\n\n/**\n * Bulma Level item section.\n */\nexport const LevelItem: React.FC<LevelItemProps> = ({\n as = 'div',\n hasTextCentered,\n className,\n children,\n href,\n target,\n rel,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const Tag = as;\n\n const mainClass = usePrefixedClassNames('level-item', {\n 'has-text-centered': hasTextCentered,\n });\n const levelItemClasses = classNames(mainClass, bulmaHelperClasses, className);\n\n // If rendering as \"a\", only pass anchor-specific props\n if (Tag === 'a') {\n return (\n <a\n className={levelItemClasses}\n href={href}\n target={target}\n rel={rel}\n {...rest}\n >\n {children}\n </a>\n );\n }\n\n return (\n <Tag className={levelItemClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\nLevel.Left = LevelLeft;\nLevel.Right = LevelRight;\nLevel.Item = LevelItem;\n\nexport default Level;\n","import React from 'react';\nimport { classNames, usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Props for the Media component.\n *\n * @property {'article'|'div'} [as] - Element type to render.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface MediaProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n as?: 'article' | 'div';\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Media component root.\n *\n * @function\n * @param {MediaProps} props - Props for the Media component.\n * @returns {JSX.Element} The rendered media container.\n * @see {@link https://bulma.io/documentation/layout/media-object/ | Bulma Media documentation}\n */\nexport const Media: React.FC<MediaProps> = ({\n as = 'article',\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const Tag = as;\n const mainClass = usePrefixedClassNames('media');\n const mediaClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <Tag className={mediaClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\n/**\n * Props for the MediaLeft component.\n *\n * @property {'figure'|'div'} [as] - Element type to render.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface MediaLeftProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n as?: 'figure' | 'div';\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Media left section.\n */\nexport const MediaLeft: React.FC<MediaLeftProps> = ({\n as = 'figure',\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const Tag = as;\n const mainClass = usePrefixedClassNames('media-left');\n const mediaLeftClasses = classNames(mainClass, bulmaHelperClasses, className);\n return (\n <Tag className={mediaLeftClasses} {...rest}>\n {children}\n </Tag>\n );\n};\n\n/**\n * Props for the MediaContent component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface MediaContentProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Media content section.\n */\nexport const MediaContent: React.FC<MediaContentProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('media-content');\n const mediaContentClasses = classNames(\n mainClass,\n bulmaHelperClasses,\n className\n );\n return (\n <div className={mediaContentClasses} {...rest}>\n {children}\n </div>\n );\n};\n\n/**\n * Props for the MediaRight component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Content.\n */\nexport interface MediaRightProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Media right section.\n */\nexport const MediaRight: React.FC<MediaRightProps> = ({\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n const mainClass = usePrefixedClassNames('media-right');\n const mediaRightClasses = classNames(\n mainClass,\n bulmaHelperClasses,\n className\n );\n return (\n <div className={mediaRightClasses} {...rest}>\n {children}\n </div>\n );\n};\n\ninterface MediaComponent extends React.FC<MediaProps> {\n Left: React.FC<MediaLeftProps>;\n Content: React.FC<MediaContentProps>;\n Right: React.FC<MediaRightProps>;\n}\n\nconst MediaWithSubcomponents = Media as MediaComponent;\nMediaWithSubcomponents.Left = MediaLeft;\nMediaWithSubcomponents.Content = MediaContent;\nMediaWithSubcomponents.Right = MediaRight;\n\nexport default MediaWithSubcomponents;\n","import React from 'react';\nimport classNames, { usePrefixedClassNames } from '../helpers/classNames';\nimport {\n useBulmaClasses,\n BulmaClassesProps,\n validColors,\n} from '../helpers/useBulmaClasses';\n\n/**\n * Section size values for Bulma.\n */\ntype SectionSize = 'medium' | 'large';\n\n/**\n * Props for the Section component.\n *\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [color] - Bulma color modifier.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color.\n * @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.\n * @property {'medium'|'large'} [size] - Section size.\n * @property {string} [className] - Additional CSS classes.\n * @property {React.ReactNode} [children] - Section content.\n */\nexport interface SectionProps\n extends React.HTMLAttributes<HTMLElement>,\n Omit<BulmaClassesProps, 'backgroundColor' | 'color'> {\n color?: (typeof validColors)[number] | 'inherit' | 'current';\n bgColor?: (typeof validColors)[number] | 'inherit' | 'current';\n textColor?: (typeof validColors)[number] | 'inherit' | 'current';\n size?: SectionSize;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Bulma Section component for general layout.\n *\n * @function\n * @param {SectionProps} props - Props for the Section component.\n * @returns {JSX.Element} The rendered section.\n * @see {@link https://bulma.io/documentation/layout/section/ | Bulma Section documentation}\n */\nexport const Section: React.FC<SectionProps> = ({\n size,\n className,\n children,\n color,\n bgColor,\n textColor,\n ...props\n}) => {\n const { bulmaHelperClasses, rest } = useBulmaClasses({\n color: textColor ?? color,\n backgroundColor: bgColor,\n ...props,\n });\n\n const mainClass = usePrefixedClassNames('section');\n const sectionModifiers = usePrefixedClassNames('', {\n [`is-${size}`]: size,\n });\n const sectionClasses = classNames(\n mainClass,\n sectionModifiers,\n className,\n bulmaHelperClasses\n );\n\n return (\n <section className={sectionClasses} {...rest}>\n {children}\n </section>\n );\n};\n"],"names":["_jsx","validSizes","validAlignments","_jsxs","_Fragment"],"mappings":";;;AASA,MAAM,aAAa,GAAG,aAAa,CAAqB,EAAE,CAAC;AAE9C,MAAA,SAAS,GAAG,MAAM,UAAU,CAAC,aAAa;AAahD,MAAM,cAAc,GAAkC,CAAC,EAC5D,WAAW,EACX,WAAW,EACX,QAAQ,GACT,KAAI;AACH,IAAA,QACEA,GAAC,CAAA,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,YACxD,QAAQ,EAAA,CACc;AAE7B;AAMO,MAAM,cAAc,GAAG,MAAK;AACjC,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;IACnC,OAAO,WAAW,IAAI,EAAE;AAC1B;AAMO,MAAM,gBAAgB,GAAG,MAAK;AACnC,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AACnC,IAAA,OAAO,CAAC,SAAiB,KACvB,WAAW,GAAG,CAAG,EAAA,WAAW,GAAG,SAAS,CAAA,CAAE,GAAG,SAAS;AAC1D;AAMO,MAAM,cAAc,GAAG,MAAK;AACjC,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AACnC,IAAA,OAAO,WAAW;AACpB;;AC9CgB,SAAA,UAAU,CACxB,GAAG,IAQA,EAAA;AAEH,IAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU;IAElC,SAAS,OAAO,CACd,IAOa,EAAA;AAEb,QAAA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,EAAE,EAAE;YACxE;;QAEF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACxD,YAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC3C,gBAAA,IAAI,GAAG;AAAE,oBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;;;AAEvB,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC9B,KAAK,MAAM,GAAG,IAAI,IAQf;gBACD,OAAO,CAAC,GAAG,CAAC;;AACT,aAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACnC,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;oBAChE,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAClC,wBAAA,IAAI,GAAG;AAAE,4BAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;;;;;;AAOpC,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC;;IAEd,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC;AAaM,SAAU,wBAAwB,CAAC,WAAmB,EAAA;AAC1D,IAAA,OAAO,SAAS,kBAAkB,CAChC,GAAG,IAQA,EAAA;AAEH,QAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU;QAElC,SAAS,OAAO,CACd,IAOa,EAAA;YAEb,IACE,IAAI,KAAK,SAAS;AAClB,gBAAA,IAAI,KAAK,IAAI;AACb,gBAAA,IAAI,KAAK,KAAK;gBACd,IAAI,KAAK,EAAE,EACX;gBACA;;YAEF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACxD,gBAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC3C,IAAI,GAAG,EAAE;wBACP,QAAQ,CAAC,GAAG,CAAC,CAAA,EAAG,WAAW,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC;;;;AAGnC,iBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9B,KAAK,MAAM,GAAG,IAAI,IAQf;oBACD,OAAO,CAAC,GAAG,CAAC;;AACT,iBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACnC,gBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,oBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;wBAChE,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;4BAClC,IAAI,GAAG,EAAE;gCACP,QAAQ,CAAC,GAAG,CAAC,CAAA,EAAG,WAAW,CAAG,EAAA,GAAG,CAAE,CAAA,CAAC;;;;;;;AAQhD,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC;;QAEd,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC,KAAC;AACH;SAkBgB,kBAAkB,CAChC,MAA0B,EAC1B,GAAG,IAQA,EAAA;IAEH,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;;IAG5B,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;AAClD;AAagB,SAAA,qBAAqB,CACnC,GAAG,IAQA,EAAA;AAEH,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AAEnC,IAAA,OAAO,kBAAkB,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;AACjD;;AC9Ma,MAAA,WAAW,GAAG;IACzB,SAAS;IACT,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;IACP,WAAW;IACX,WAAW;IACX,aAAa;IACb,WAAW;IACX,MAAM;IACN,YAAY;IACZ,cAAc;IACd,OAAO;IACP,OAAO;IACP,MAAM;;AAWK,MAAA,gBAAgB,GAAG;IAC9B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,WAAW;;MAOAC,YAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;AAMvD,MAAA,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAMnD,MAAAC,iBAAe,GAAG;IAC7B,UAAU;IACV,WAAW;IACX,MAAM;IACN,OAAO;;AAOI,MAAA,mBAAmB,GAAG;IACjC,aAAa;IACb,WAAW;IACX,WAAW;IACX,QAAQ;;AAOG,MAAA,gBAAgB,GAAG;IAC9B,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;;AAOK,MAAA,iBAAiB,GAAG;IAC/B,YAAY;IACZ,WAAW;IACX,SAAS;IACT,WAAW;IACX,MAAM;;AAOK,MAAA,aAAa,GAAG;IAC3B,OAAO;IACP,MAAM;IACN,QAAQ;IACR,cAAc;IACd,aAAa;;AAWF,MAAA,iBAAiB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW;AAMrD,MAAA,mBAAmB,GAAG;IACjC,KAAK;IACL,aAAa;IACb,QAAQ;IACR,gBAAgB;;AAOL,MAAA,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc;AAMlD,MAAA,oBAAoB,GAAG;IAClC,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,eAAe;IACf,cAAc;IACd,cAAc;IACd,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;;AAOI,MAAA,kBAAkB,GAAG;IAChC,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,eAAe;IACf,cAAc;IACd,cAAc;IACd,SAAS;;AAOE,MAAA,eAAe,GAAG;IAC7B,SAAS;IACT,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,UAAU;IACV,OAAO;IACP,KAAK;;AAOM,MAAA,eAAe,GAAG;IAC7B,MAAM;IACN,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,UAAU;IACV,SAAS;;AAOE,MAAA,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAMnD,MAAA,cAAc,GAAG;IAC5B,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,QAAQ;;AAwJG,MAAA,eAAe,GAAG,CAC7B,KAA4B,KAC8C;AAC1E,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AAEnC,IAAA,MAAM,EACJ,KAAK,EACL,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,CAAC,EACD,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,CAAC,EACD,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,QAAQ,EACR,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,MAAM,EACN,MAAM,EACN,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,GAAG,KAAK;AAET,IAAA,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAK;QACtC,MAAM,OAAO,GAAa,EAAE;AAG5B,QAAA,MAAM,gBAAgB,GAAG,CAAC,SAAiB,KAAI;AAC7C,YAAA,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAA,EAAG,WAAW,CAAA,EAAG,SAAS,CAAE,CAAA,GAAG,SAAS,CAAC;AACtE,SAAC;AAGD,QAAA,MAAM,QAAQ,GAAG,CACf,MAAc,EACd,KAAyB,EACzB,WAA8B,EAC9B,gBAAgB,GAAG,KAAK,KACtB;YACF,IAAI,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACxC,MAAM,SAAS,GACb,gBAAgB,IAAI,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ;AAC9D,sBAAE,CAAG,EAAA,MAAM,IAAI,KAAK,CAAA,CAAA,EAAI,QAAQ,CAAE;AAClC,sBAAE,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,KAAK,EAAE;gBAC1B,gBAAgB,CAAC,SAAS,CAAC;;AAE/B,SAAC;QAGD,MAAM,kBAAkB,GAAG,CACzB,MAAc,EACd,KAAyB,EACzB,WAA8B,KAC5B;AACF,YAAA,IAAI,KAAK,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AACjE,gBAAA,gBAAgB,CAAC,CAAG,EAAA,MAAM,IAAI,KAAK,CAAA,CAAE,CAAC;;AAE1C,SAAC;QAGD,MAAM,aAAa,GAAG,CACpB,MAAqC,EACrC,KAAyB,EACzB,KAAoD,KAClD;AACF,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACnE;YACF,IAAI,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAE7C,MAAM,SAAS,GAAG,CAAG,EAAA,MAAM,IAAI,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE;gBAC/C,gBAAgB,CAAC,SAAS,CAAC;;iBACtB;AAEL,gBAAA,QAAQ,CACN,MAAM,EACN,KAAK,EACL,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,EACtC,KAAK,CACN;;AAEL,SAAC;AAGD,QAAA,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;AAC5C,QAAA,aAAa,CAAC,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,CAAC;AAGtE,QAAA,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAED,YAAU,CAAC;AACtC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAEA,YAAU,CAAC;AACtC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;AACxC,QAAA,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAEA,YAAU,CAAC;QAGxC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC;QACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAEC,iBAAe,EAAE,IAAI,CAAC;AACtD,QAAA,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC;AAC5D,QAAA,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,CAAC;AACnE,QAAA,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC;AAG9D,QAAA,MAAM,gCAAgC,GAAG,CACvC,KAAyB,EACzB,cAAsB,KACpB;YACF,IAAI,KAAK,IAAK,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAClE,gBAAA,gBAAgB,CAAC,CAAW,QAAA,EAAA,KAAK,GAAG,cAAc,CAAA,CAAE,CAAC;;AAEzD,SAAC;AAED,QAAA,gCAAgC,CAAC,cAAc,EAAE,SAAS,CAAC;AAC3D,QAAA,gCAAgC,CAAC,cAAc,EAAE,SAAS,CAAC;AAC3D,QAAA,gCAAgC,CAAC,eAAe,EAAE,UAAU,CAAC;AAC7D,QAAA,gCAAgC,CAAC,kBAAkB,EAAE,aAAa,CAAC;AACnE,QAAA,gCAAgC,CAAC,cAAc,EAAE,SAAS,CAAC;AAG3D,QAAA,MAAM,iCAAiC,GAAG,CACxC,KAAyB,EACzB,cAAsB,KACpB;YACF,IAAI,KAAK,IAAKA,iBAAqC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnE,gBAAA,gBAAgB,CAAC,CAAY,SAAA,EAAA,KAAK,GAAG,cAAc,CAAA,CAAE,CAAC;;AAE1D,SAAC;AAED,QAAA,iCAAiC,CAAC,eAAe,EAAE,SAAS,CAAC;AAC7D,QAAA,iCAAiC,CAAC,eAAe,EAAE,SAAS,CAAC;AAC7D,QAAA,iCAAiC,CAAC,gBAAgB,EAAE,UAAU,CAAC;AAC/D,QAAA,iCAAiC,CAAC,mBAAmB,EAAE,aAAa,CAAC;AACrE,QAAA,iCAAiC,CAAC,eAAe,EAAE,SAAS,CAAC;AAG7D,QAAA,MAAM,kCAAkC,GAAG,CACzC,KAAyB,EACzB,cAAsB,KACpB;AACF,YAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;AACtB,gBAAA,gBAAgB,CAAC,CAAA,SAAA,EAAY,cAAc,CAAA,CAAE,CAAC;;AACzC,iBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,gBAAA,gBAAgB,CAAC,CAAA,UAAA,EAAa,cAAc,CAAA,CAAE,CAAC;;AAC1C,iBAAA,IAAI,KAAK,KAAK,WAAW,EAAE;AAChC,gBAAA,gBAAgB,CAAC,CAAA,YAAA,EAAe,cAAc,CAAA,CAAE,CAAC;;AAErD,SAAC;AAED,QAAA,kCAAkC,CAAC,gBAAgB,EAAE,SAAS,CAAC;AAC/D,QAAA,kCAAkC,CAAC,gBAAgB,EAAE,SAAS,CAAC;AAC/D,QAAA,kCAAkC,CAAC,iBAAiB,EAAE,UAAU,CAAC;AACjE,QAAA,kCAAkC,CAAC,oBAAoB,EAAE,aAAa,CAAC;AACvE,QAAA,kCAAkC,CAAC,gBAAgB,EAAE,SAAS,CAAC;AAI/D,QAAA,MAAM,eAAe,GAAG,CACtB,YAAgC,EAChC,cAAsB,KACpB;YACF,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,YAAY,KAAK,MAAM,EAAE;AAC3B,oBAAA,gBAAgB,CAAC,CAAA,SAAA,EAAY,cAAc,CAAA,CAAE,CAAC;;AACzC,qBAAA,IACJ,aAAmC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC3D;AACA,oBAAA,gBAAgB,CAAC,CAAM,GAAA,EAAA,YAAY,GAAG,cAAc,CAAA,CAAE,CAAC;;;AAG7D,SAAC;AAGD,QAAA,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC;AACzC,QAAA,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC;AACzC,QAAA,eAAe,CAAC,cAAc,EAAE,UAAU,CAAC;AAC3C,QAAA,eAAe,CAAC,iBAAiB,EAAE,aAAa,CAAC;AACjD,QAAA,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC;AAGzC,QAAA,MAAM,0BAA0B,GAAG,CAAC,EAClC,aAAa;YACb,aAAa;YACb,cAAc;YACd,iBAAiB;AACjB,YAAA,aAAa,CACd;QAED,IAAI,CAAC,0BAA0B,EAAE;AAE/B,YAAA,IAAI,OAAO,KAAK,MAAM,EAAE;gBACtB,IAAI,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACjD,oBAAA,gBAAgB,CAAC,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAE,CAAC;;qBACpC;oBACL,gBAAgB,CAAC,WAAW,CAAC;;;iBAE1B;AACL,gBAAA,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,IAAI,CAAC;;;QAKrD,IAAI,UAAU,EAAE;YACd,IACE,CAAC,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,WAAW;gBACtD,QAAQ;AACR,gBAAA,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACjC;AACA,gBAAA,gBAAgB,CAAC,CAAM,GAAA,EAAA,UAAU,IAAI,QAAQ,CAAA,CAAE,CAAC;;AAC3C,iBAAA,IAAI,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACjD,gBAAA,gBAAgB,CAAC,CAAA,GAAA,EAAM,UAAU,CAAA,CAAE,CAAC;;;AAKxC,QAAA,MAAM,cAAc,GAClB,OAAO,KAAK,MAAM;AAClB,YAAA,OAAO,KAAK,aAAa;AACzB,YAAA,aAAa,KAAK,MAAM;AACxB,YAAA,aAAa,KAAK,aAAa;AAC/B,YAAA,aAAa,KAAK,MAAM;AACxB,YAAA,aAAa,KAAK,aAAa;AAC/B,YAAA,cAAc,KAAK,MAAM;AACzB,YAAA,cAAc,KAAK,aAAa;AAChC,YAAA,iBAAiB,KAAK,MAAM;AAC5B,YAAA,iBAAiB,KAAK,aAAa;AACnC,YAAA,aAAa,KAAK,MAAM;YACxB,aAAa,KAAK,aAAa;QAEjC,IAAI,cAAc,EAAE;AAElB,YAAA,kBAAkB,CAChB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,CACpB;AACD,YAAA,kBAAkB,CAAC,cAAc,EAAE,QAAQ,EAAE,cAAc,CAAC;AAC5D,YAAA,kBAAkB,CAChB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,CACrB;AACD,YAAA,kBAAkB,CAAC,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,CAAC;AACxE,YAAA,kBAAkB,CAAC,gBAAgB,EAAE,UAAU,EAAE,eAAe,CAAC;;AAKnE,QAAA,kBAAkB,CAAC,eAAe,EAAE,SAAS,EAAE,eAAe,CAAC;AAC/D,QAAA,kBAAkB,CAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,CAAC;AACjE,QAAA,kBAAkB,CAAC,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,CAAC;QAGrE,IAAI,KAAK,EAAE;YACT,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;QAE3D,IAAI,QAAQ,EAAE;YACZ,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;;QAEjD,IAAI,OAAO,EAAE;YACX,gBAAgB,CAAC,YAAY,CAAC;;QAEhC,IAAI,WAAW,EAAE;YACf,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;;QAEtE,IAAI,MAAM,EAAE;YACV,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC;;QAElD,IAAI,MAAM,EAAE;YACV,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC;;QAElD,IAAI,UAAU,EAAE;YACd,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;;QAI5D,IAAI,QAAQ,EAAE;YACZ,gBAAgB,CAAC,aAAa,CAAC;;QAIjC,IAAI,QAAQ,EAAE;YACZ,gBAAgB,CAAC,aAAa,CAAC;;QAIjC,IAAI,QAAQ,EAAE;YACZ,gBAAgB,CAAC,aAAa,CAAC;;AAGjC,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC;AAC5B,KAAC,EAAE;QACD,WAAW;QACX,KAAK;QACL,eAAe;QACf,UAAU;QACV,oBAAoB;QACpB,CAAC;QACD,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,CAAC;QACD,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,EAAE;QACF,QAAQ;QACR,SAAS;QACT,aAAa;QACb,UAAU;QACV,UAAU;QACV,OAAO;QACP,UAAU;QACV,aAAa;QACb,QAAQ;QACR,cAAc;QACd,YAAY;QACZ,UAAU;QACV,SAAS;QACT,QAAQ;QACR,UAAU;QACV,KAAK;QACL,QAAQ;QACR,OAAO;QACP,WAAW;QACX,MAAM;QACN,MAAM;QACN,UAAU;QACV,QAAQ;QACR,aAAa;QACb,aAAa;QACb,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,QAAQ;QACR,QAAQ;QACR,QAAQ;QAER,cAAc;QACd,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,gBAAgB;QAChB,iBAAiB;QACjB,oBAAoB;QACpB,gBAAgB;AACjB,KAAA,CAAC;AAEF,IAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE;AACrC;;AClsBO,MAAM,MAAM,GAA0B,CAAC,EAC5C,SAAS,EACT,SAAS,EACT,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AAGjD,IAAA,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,EAAE,EAAE;QACtD,CAAC,CAAA,GAAA,EAAM,IAAI,CAAA,CAAE,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QACnD,CAAC,CAAA,GAAA,EAAM,UAAU,CAAA,OAAA,CAAS,GACxB,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;QACjD,CAAC,CAAA,GAAA,EAAM,UAAU,CAAA,OAAA,CAAS,GACxB,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;QACjD,CAAC,CAAA,GAAA,EAAM,WAAW,CAAA,QAAA,CAAU,GAC1B,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI;QACnD,CAAC,CAAA,GAAA,EAAM,cAAc,CAAA,WAAA,CAAa,GAChC,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI;QACzD,CAAC,CAAA,GAAA,EAAM,UAAU,CAAA,OAAA,CAAS,GACxB,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;QACjD,CAAC,CAAA,UAAA,EAAa,MAAM,CAAA,CAAE,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAChE,CAAC,CAAA,UAAA,EAAa,YAAY,CAAA,OAAA,CAAS,GACjC,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI;QACrD,CAAC,CAAA,UAAA,EAAa,YAAY,CAAA,OAAA,CAAS,GACjC,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI;QACrD,CAAC,CAAA,UAAA,EAAa,aAAa,CAAA,QAAA,CAAU,GACnC,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI;QACvD,CAAC,CAAA,UAAA,EAAa,gBAAgB,CAAA,WAAA,CAAa,GACzC,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,IAAI;QAC7D,CAAC,CAAA,UAAA,EAAa,YAAY,CAAA,OAAA,CAAS,GACjC,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI;QACrD,WAAW,EAAE,CAAC,CAAC,QAAQ;QACvB,kBAAkB,EAAE,CAAC,CAAC,cAAc;QACpC,kBAAkB,EAAE,CAAC,CAAC,cAAc;QACpC,iBAAiB,EAAE,CAAC,CAAC,aAAa;QAClC,mBAAmB,EAAE,CAAC,CAAC,eAAe;QACtC,sBAAsB,EAAE,CAAC,CAAC,kBAAkB;QAC5C,kBAAkB,EAAE,CAAC,CAAC,cAAc;AACrC,KAAA,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG,UAAU,CAC9B,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,kBAAkB,CACnB;IAED,QACEF,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,aAAa,EAAM,GAAA,IAAI,EACpC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;MC7Fa,OAAO,GAA2B,CAAC,EAC9C,SAAS,EACT,SAAS,EACT,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC;AAGlD,IAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,EAAE,EAAE;QAC3C,CAAC,CAAA,GAAA,EAAM,OAAO,CAAA,CAAE,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QAC5D,CAAC,CAAA,GAAA,EAAM,aAAa,CAAA,OAAA,CAAS,GAC3B,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI;QACvD,CAAC,CAAA,GAAA,EAAM,aAAa,CAAA,OAAA,CAAS,GAC3B,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI;QACvD,CAAC,CAAA,GAAA,EAAM,cAAc,CAAA,QAAA,CAAU,GAC7B,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI;QACzD,CAAC,CAAA,GAAA,EAAM,iBAAiB,CAAA,WAAA,CAAa,GACnC,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,IAAI;QAC/D,CAAC,CAAA,GAAA,EAAM,aAAa,CAAA,OAAA,CAAS,GAC3B,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI;QACvD,aAAa,EAAE,CAAC,CAAC,UAAU;QAC3B,YAAY,EAAE,CAAC,CAAC,SAAS;QACzB,cAAc,EAAE,CAAC,CAAC,WAAW;QAC7B,cAAc,EAAE,CAAC,CAAC,WAAW;QAC7B,WAAW,EAAE,CAAC,CAAC,QAAQ;QACvB,YAAY,EAAE,CAAC,CAAC,SAAS;AAC1B,KAAA,CAAC;AAEF,IAAA,MAAM,cAAc,GAAG,UAAU,CAC/B,SAAS,EACT,UAAU,EACV,SAAS,EACT,kBAAkB,CACnB;IAED,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,cAAc,EAAM,GAAA,IAAI,EACrC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;AC7IA,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAU;AAMhE,MAAM,yBAAyB,GAAG;IAChC,OAAO;IACP,QAAQ;IACR,KAAK;IACL,UAAU;CACF;AAMV,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAU;MAmCrD,UAAU,GAA8B,CAAC,EACpD,SAAS,EACT,SAAS,EACT,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAGlE,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE;AACvD,QAAA,CAAC,CAAM,GAAA,EAAA,SAAS,CAAE,CAAA,GAChB,SAAS,IAAI,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5D,QAAA,CAAC,CAAO,IAAA,EAAA,SAAS,CAAY,UAAA,CAAA,GAC3B,SAAS,IAAI,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5D,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5D,KAAA,CAAC;IAGF,MAAM,iBAAiB,GAAG,UAAU,CAClC,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;AAED,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,iBAAiB,EAAa,YAAA,EAAA,aAAa,EAAK,GAAA,IAAI,YAClEA,GAAK,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,QAAQ,EAAM,CAAA,EAAA,CACf;AAEV;;ACxCA,MAAM,YAAY,GAAG,CACnB,MAA2B,EAC3B,WAA+B,KAC7B;AACF,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,IAAI;AACxB,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;AACvD,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,MACzBA,GACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAG7D,IAAI,EAAA,EAFA,GAAG,CAGH,CACR,CAAC;AACJ,CAAC;AAGD,MAAM,qBAAqB,GAAG,CAAC,QAAyB,KAAa;AACnE,IAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IAAG;AACnD,QAAA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;AAG9C,QAAA,QACE,KAAK,CAAC,IAAI,KAAK,UAAU;YACzB,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1B,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,KAAK,CAAC,IAAI,KAAK,UAAU;YACzB,KAAK,CAAC,IAAI,KAAK,cAAc;AAC7B,YAAA,KAAK,CAAC,IAAI,KAAK,cAAc;AAEjC,KAAC,CAAC;AACJ,CAAC;AAUD,MAAM,aAAa,GAAwB,CAAC,EAC1C,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,GAAG,IAAI,EAChB,MAAM,EACN,cAAc,EACd,UAAU,EACV,MAAM,EACN,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AACnC,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,EAAE;QACjD,eAAe,EAAE,CAAC,SAAS;AAC5B,KAAA,CAAC;IAGF,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAG3E,MAAM,YAAY,GAAG,CACnB,MAAuB,EACvB,UAA2B,EAC3B,cAAmC,EACnC,WAA+B,KAC7B;AACF,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,IAAI;QACvC,QACEG,iBAAQ,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,CAC9D,MAAM,KACLH,aACE,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,EAAE;AAC9D,wBAAA,aAAa,EAAE,cAAc;qBAC9B,CAAC,EAAA,QAAA,EAED,MAAM,EACH,CAAA,CACP,EACA,UAAU,CAAA,EAAA,CACJ;AAEb,KAAC;AAED,IAAA,QACEG,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,WAAW,KAAM,IAAI,EAAA,QAAA,EAAA,CAClC,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,CAAC,EAC7D,KAAK,KACJH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,EAC1D,QAAA,EAAA,OAAO,KAAK,KAAK,QAAQ,IACxBA,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,EACzD,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,YAAY,EAAA,CAAI,EAC3C,CAAA,KAET,KAAK,CACN,EACG,CAAA,CACP,EAEA,OAAO,QAAQ,KAAK,WAAW;AAC9B,gBAAA,QAAQ,KAAK,IAAI;AACjB,gBAAA,QAAQ,KAAK,EAAE;gBACf,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAC9BA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,EAAA,QAAA,EAC5D,QAAQ,EAAA,CACL,CACP,EAEF,OAAO,QAAQ,KAAK,WAAW;AAC9B,gBAAA,QAAQ,KAAK,IAAI;AACjB,gBAAA,QAAQ,KAAK,EAAE;gBACf,qBAAqB,CAAC,QAAQ,CAAC;AAC/B,gBAAA,QAAQ,EACT,MAAM,KACLA,GAAQ,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,EAC9D,QAAA,EAAA,KAAK,CAAC,OAAO,CAAC,MAAM;AACnB,sBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,MACnBA,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,kBAAkB,CAC3B,WAAW,EACX,kBAAkB,CACnB,EAGA,QAAA,EAAA,IAAI,EAFA,EAAA,GAAG,CAGH,CACR;sBACD,MAAM,KACJA,cACE,SAAS,EAAE,kBAAkB,CAC3B,WAAW,EACX,kBAAkB,CACnB,YAEA,MAAM,EAAA,CACF,CACR,EACE,CAAA,CACV,CACG,EAAA,CAAA;AAEV,CAAC;AA2CD,MAAM,UAAU,GAA8B,CAAC,EAC7C,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;IAGnC,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC1D,KAAK,IACH,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;AAC3B,QAAA,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;AAChC,QAAA,KAAK,CAAC,IAAI,KAAK,eAAe,CACjC;AAED,IAAA,MAAM,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC;AAE1D,IAAA,QACEA,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,EAAM,GAAA,KAAK,EAC/D,QAAA,EAAA,cAAc,IACb,QAAQ,KAERA,GACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CACnB,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,EAAE;AACnD,gBAAA,aAAa,EAAE,QAAQ;aACxB,CAAC,EACF,SAAS,CACV,EAAA,QAAA,EAEA,QAAQ,EACL,CAAA,CACP,EACM,CAAA;AAEb,CAAC;AAED,MAAM,eAAe,GAAmC,CAAC,EACvD,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,mBAAmB,EAAE;AACzC,QAAA,aAAa,EAAE,QAAQ;KACxB,CAAC,EACF,SAAS,CACV,EAAA,GACG,KAAK,EAER,QAAA,EAAA,QAAQ,EACL,CAAA,CACP;AAED,MAAM,cAAc,GAAkC,CAAC,EACrD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,EAAA,YAAA,EAC/D,KAAK,CAAC,YAAY,CAAC,IAAI,cAAc,EAC7C,GAAA,KAAK,YAER,QAAQ,EAAA,CACF,CACV;AAED,MAAM,SAAS,GAA6B,CAAC,EAC3C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,KACjE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACL,CACP;AAED,MAAM,WAAW,GAA+B,CAAC,EAC/C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,KACnE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACL,CACP;AAED,MAAM,UAAU,GAA8B,CAAC,EAC7C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,KAClE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACF,CACV;AAED,MAAM,cAAc,GAAkC,CAAC,EACrD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,KACvE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACJ,CACR;AAeK,MAAA,qBAAqB,GAAG;AAG9B,MAAM,mBAAmB,GAAG,UAG3B;AACD,mBAAmB,CAAC,KAAK,GAAG,eAAe;AAC3C,mBAAmB,CAAC,IAAI,GAAG,cAAc;AAEzC,qBAAqB,CAAC,MAAM,GAAG,mBAAmB;AAClD,qBAAqB,CAAC,KAAK,GAAG,SAAS;AACvC,qBAAqB,CAAC,OAAO,GAAG,WAAW;AAC3C,qBAAqB,CAAC,MAAM,GAAG,UAAU;AACzC,qBAAqB,CAAC,UAAU,GAAG,cAAc;AAMpC,MAAA,gBAAgB,GAAG,EAAE,YAAY;;MCnYjC,SAAS,GAAG,CAAC,GAAmB,EAAE,GAAqB,KAClE,OAAO,GAAG,KAAK,WAAW,IAAI,OAAO,GAAG,KAAK;AA2C/C,MAAM,iBAAiB,GAA4B,CAAC,EAClD,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EACb,MAAM,EAAE,UAAU,EAClB,EAAE,EACF,KAAK,EACL,SAAS,EACT,QAAQ,EACR,cAAc,EACd,YAAY,GAAG,IAAI,EACnB,EAAE,EACF,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAU,CAAC,CAAC,UAAU,CAAC;AAC3D,IAAA,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC;IAEhD,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;AAG3D,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,EAAE;AACrD,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,aAAa,EAAE,QAAQ;AACxB,KAAA,CAAC;AAEF,IAAA,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC;IAGnD,SAAS,CAAC,MAAK;QACb,IAAI,OAAO,UAAU,KAAK,SAAS;YAAE,SAAS,CAAC,UAAU,CAAC;AAC5D,KAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAGhB,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;YAAE;AAElC,QAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;;AAEpC,YAAA,IAAI,EAAC,CAAA,EAAA,GAAA,WAAW,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,CAAA,EAAE;gBACpD,SAAS,CAAC,KAAK,CAAC;AAChB,gBAAA,cAAc,aAAd,cAAc,KAAA,MAAA,GAAA,MAAA,GAAd,cAAc,CAAG,KAAK,CAAC;;AAE3B,SAAC;AACD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;QACnD,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;AACrE,KAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE5B,MAAM,YAAY,GAAG,MAAK;AAExB,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,MAAM,SAAS,GAAG,CAAC,MAAM;QACzB,SAAS,CAAC,SAAS,CAAC;AACpB,QAAA,cAAc,aAAd,cAAc,KAAA,MAAA,GAAA,MAAA,GAAd,cAAc,CAAG,SAAS,CAAC;AAC7B,KAAC;IAED,MAAM,eAAe,GAAG,MAAK;QAC3B,IAAI,YAAY,EAAE;YAChB,SAAS,CAAC,KAAK,CAAC;AAChB,YAAA,cAAc,aAAd,cAAc,KAAA,MAAA,GAAA,MAAA,GAAd,cAAc,CAAG,KAAK,CAAC;;AAE3B,KAAC;IAED,MAAM,eAAe,GAAG,UAAU,CAChC,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;AAED,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,EAAE,EACM,aAAA,EAAA,eAAe,EACvB,GAAA,IAAI,EAER,QAAA,EAAA,CAAAH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,EAAA,QAAA,EACvDG,IACE,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,WAAW,mBACR,MAAM,EAAA,eAAA,EACL,EAAE,GAAG,CAAG,EAAA,EAAE,OAAO,GAAG,SAAS,EAC7B,eAAA,EAAA,MAAM,EACrB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,EAEb,QAAA,EAAA,CAAAH,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,EAAA,CAAQ,EACpBA,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAA,aAAA,EACxC,MAAM,EAAA,QAAA,EAElBA,WAAG,SAAS,EAAC,mBAAmB,EAAA,CAAG,EAC9B,CAAA,CAAA,EAAA,CACA,EACL,CAAA,EACNA,aACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,eAAe,CAAC,EACtC,aAAa,CACd,EACD,EAAE,EAAE,EAAE,GAAG,CAAG,EAAA,EAAE,CAAO,KAAA,CAAA,GAAG,SAAS,EACjC,IAAI,EAAC,MAAM,EACC,aAAA,EAAA,eAAe,EAE3B,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,EACpD,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,EAAE,EAAA,QAAA,EAEX,QAAQ,EAAA,CACL,EACF,CAAA,CAAA,EAAA,CACF;AAEV,CAAC;MA0BY,YAAY,GAAgC,CAAC,EACxD,QAAQ,EACR,MAAM,EACN,SAAS,EACT,EAAE,EAAE,SAAS,GAAG,GAAG,EACnB,GAAG,KAAK,EACT,KAAI;IACH,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;IAC3D,QACEA,GAAC,CAAA,SAAS,EACR,EAAA,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,eAAe,EAAE;AACrC,YAAA,WAAW,EAAE,MAAM;SACpB,CAAC,EACF,kBAAkB,EAClB,SAAS,CACV,EACD,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,UAAU,iBACH,eAAe,EAAA,GACvB,IAAI,EAEP,QAAA,EAAA,QAAQ,EACC,CAAA;AAEhB;AAOa,MAAA,eAAe,GAAa,OACvCA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,EAAA,CAAI;MAIjD,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;AACvD,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,OAAO,EAAE,eAAe;AACzB,CAAA;;AC5OD,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC;AAuB7C,MAAM,aAAa,GAAwB,CAAC,EAC1C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;IACH,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;AAG3D,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAElD,IAAA,QACEA,GACE,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAC9D,GAAA,IAAI,YAEP,QAAQ,EAAA,CACH;AAEZ,CAAC;AAyBM,MAAM,SAAS,GAA6B,CAAC,EAClD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;IACH,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;IAE3D,QACEA,WACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,YAAY,CAAC,EACnC,SAAS,EACT,kBAAkB,CACnB,EAAA,GACG,IAAI,EAEP,QAAA,EAAA,QAAQ,EACP,CAAA;AAER;AAsBO,MAAM,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,oBAAoB,CAAC;IAC9C,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;AAE3D,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE;QACxD,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,KAAK,KAAK,CAAC;AAClD,KAAA,CAAC;IAGF,QACEA,IAAC,oBAAoB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,KAAK,GAAG,CAAC,YAC7CA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,OAAO,EAAM,GAAA,IAAI,YAC7B,QAAQ,EAAA,CACN,EACyB,CAAA;AAEpC;AA6BO,MAAM,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,EAAE,EAAE,SAAS,GAAG,GAAG,EACnB,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;AACrE,IAAA,MAAM,SAAS,GAAG,UAAU,CAC1B,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,MAAM,EAAE,EAChD,kBAAkB,CACnB;AAGD,IAAA,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS;IAGpE,MAAM,aAAa,GAAsB,EAAE;IAC3C,MAAM,eAAe,GAAsB,EAAE;IAC7C,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAG;AACvC,QAAA,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1D,YAAA,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;aACtB;AACL,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE7B,KAAC,CAAC;AAGF,IAAA,IAAI,SAAS,KAAK,GAAG,IAAI,IAAI,EAAE;AAC5B,QAAA,SAAqC,CAAC,IAAI,GAAG,IAAI;;AAEpD,IAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACnD,QAAA,SAAqC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;;AAGrD,IAAA,QACEG,IACE,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,SAAS,EAAA,aAAA,EACP,MAAM,EACnB,KAAK,EAAE,KAAwC,EAC/C,EAAE,EAAE,EAAwB,EAC5B,KAAK,EAAE,KAA2B,EAClC,IAAI,EAAE,IAAkC,EACxC,QAAQ,EAAE,QAA8B,aAExCH,GAAC,CAAA,SAAS,IAAC,SAAS,EAAE,SAAS,EAAM,GAAA,SAAS,YAC3C,aAAa,EAAA,CACJ,EACX,eAAe,CAAA,EAAA,CACb;AAET;MAGa,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;AAC/C,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACf,CAAA;;AC/KD,MAAM,gBAAgB,GAA2B,CAAC,EAChD,SAAS,EACT,KAAK,EACL,SAAS,EACT,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AACnC,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,EAAE;AACpD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;AACvB,KAAA,CAAC;AACF,IAAA,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC;IAEnD,MAAM,cAAc,GAAG,UAAU,CAC/B,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;AAED,IAAA,QACEG,IAAS,CAAA,SAAA,EAAA,EAAA,SAAS,EAAE,cAAc,KAAM,IAAI,EAAA,aAAA,EAAc,SAAS,EAAA,QAAA,EAAA,CAChE,CAAC,KAAK,IAAI,OAAO,MAChBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAC9D,QAAA,EAAA,CAAA,KAAK,IAAIH,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,EAAQ,CAAA,EAC7B,OAAO,KACNA,GACE,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,WAAW,gBACX,QAAQ,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,QAAQ,iBACD,eAAe,EAAA,CAC3B,CACH,CAAA,EAAA,CACG,CACP,EACA,QAAQ,KACPA,aACE,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,EAAA,aAAA,EAC9C,cAAc,EAEzB,QAAA,EAAA,QAAQ,GACL,CACP,CAAA,EAAA,CACO;AAEd,CAAC;AAcD,MAAM,aAAa,GAAiC,CAAC,EACnD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,KACrE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACL,CACP;AAED,MAAM,WAAW,GAA+B,CAAC,EAC/C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,KACnE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACL,CACP;AASK,MAAA,wBAAwB,GAAG;AACjC,wBAAwB,CAAC,MAAM,GAAG,aAAa;AAC/C,wBAAwB,CAAC,IAAI,GAAG,WAAW;;ACtB3C,MAAM,eAAe,GAAmC,CAAC,EACvD,SAAS,EACT,GAAG,KAAK,EACT,KAAI;IACH,MAAM,OAAO,GAAG,UAAU,CACxB,qBAAqB,CAAC,kBAAkB,CAAC,EACzC,SAAS,CACV;AACD,IAAA,OAAOA,aAAK,SAAS,EAAE,OAAO,EAAM,GAAA,KAAK,GAAI;AAC/C,CAAC;AAQD,MAAM,YAAY,GAAgC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,KAAI;IAC5E,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;AAC7E,IAAA,OAAOA,aAAK,SAAS,EAAE,OAAO,EAAM,GAAA,KAAK,GAAI;AAC/C,CAAC;AAQD,MAAM,aAAa,GAAiC,CAAC,EACnD,SAAS,EACT,GAAG,KAAK,EACT,KAAI;IACH,MAAM,OAAO,GAAG,UAAU,CACxB,qBAAqB,CAAC,iBAAiB,CAAC,EACxC,SAAS,CACV;AACD,IAAA,OAAOA,gBAAQ,SAAS,EAAE,OAAO,EAAM,GAAA,KAAK,GAAI;AAClD,CAAC;AAQD,MAAM,cAAc,GAAkC,CAAC,EACrD,SAAS,EACT,GAAG,KAAK,EACT,KAAI;IACH,MAAM,OAAO,GAAG,UAAU,CACxB,qBAAqB,CAAC,kBAAkB,CAAC,EACzC,SAAS,CACV;AACD,IAAA,OAAOA,WAAG,SAAS,EAAE,OAAO,EAAM,GAAA,KAAK,GAAI;AAC7C,CAAC;AAQD,MAAM,aAAa,GAAiC,CAAC,EACnD,SAAS,EACT,GAAG,KAAK,EACT,KAAI;IACH,MAAM,OAAO,GAAG,UAAU,CACxB,qBAAqB,CAAC,iBAAiB,CAAC,EACxC,SAAS,CACV;AACD,IAAA,OAAOA,iBAAS,SAAS,EAAE,OAAO,EAAM,GAAA,KAAK,GAAI;AACnD,CAAC;AAQD,MAAM,aAAa,GAAiC,CAAC,EACnD,SAAS,EACT,GAAG,KAAK,EACT,KAAI;IACH,MAAM,OAAO,GAAG,UAAU,CACxB,qBAAqB,CAAC,iBAAiB,CAAC,EACxC,SAAS,CACV;AACD,IAAA,OAAOA,gBAAQ,SAAS,EAAE,OAAO,EAAM,GAAA,KAAK,GAAI;AAClD,CAAC;AASD,MAAM,SAAS,GAKX,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,KAAI;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;AAC1E,IAAA,OAAOA,aAAK,SAAS,EAAE,OAAO,EAAM,GAAA,KAAK,GAAI;AAC/C,CAAC;AAED,SAAS,CAAC,IAAI,GAAG,aAAa;AAC9B,SAAS,CAAC,KAAK,GAAG,cAAc;AAChC,SAAS,CAAC,IAAI,GAAG,aAAa;AAC9B,SAAS,CAAC,IAAI,GAAG,aAAa;AAe9B,MAAM,UAAU,GAA8B,CAAC,EAC7C,SAAS,EACT,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,QAAQ,EAClB,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,OAAO,GAAG,UAAU,CACxB,qBAAqB,CACnB,OAAO,KAAK,QAAQ,GAAG,QAAQ,GAAG,aAAa,EAC/C,OAAO,KAAK,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI,EAAE,CAC3D,EACD,SAAS,CACV;AACD,IAAA,QACEA,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,OAAO,EAAa,YAAA,EAAA,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAA,GAAK,KAAK,EAAA,CAAI;AAE9E,CAAC;AA8BD,MAAM,SAAS,GAKX,CAAC,EACH,MAAM,EACN,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,cAAc,EACd,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AACH,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AACnC,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAM,GAAI,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,KAAK;IAGjD,MAAM,qBAAqB,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CACjE,KAAK,IACH,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;AAC3B,SAAC,KAAK,CAAC,IAAI,KAAK,eAAe;YAC7B,KAAK,CAAC,IAAI,KAAK,YAAY;YAC3B,KAAK,CAAC,IAAI,KAAK,SAAS;AACxB,YAAA,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAC/B;AAGD,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE;AAClD,QAAA,WAAW,EAAE,aAAa;AAC3B,KAAA,CAAC;AACF,IAAA,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC;IAEnD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAG5E,IAAI,qBAAqB,EAAE;AACzB,QAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,YAAY,EAAA,GAAM,IAAI,EAAA,aAAA,EAAc,OAAO,EAAA,QAAA,EACxD,QAAQ,EAAA,CACL;;AAKV,IAAA,IAAI,WAAoB;IACxB,IAAI,IAAI,KAAK,MAAM;QAAE,WAAW,GAAG,IAAI;SAClC,IAAI,IAAI,KAAK,SAAS;QAAE,WAAW,GAAG,KAAK;;QAC3C,WAAW,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,aAAa;AAEtD,IAAA,QACEG,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAA,GAAM,IAAI,EAAc,aAAA,EAAA,OAAO,aACzDH,GACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAC9D,OAAO,EAAE,OAAO,EAAA,aAAA,EACJ,kBAAkB,EAC9B,CAAA,EACD,WAAW,IACVG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,CAC1D,cAAc,KACbA,iBACE,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAE7DH,GACE,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAE7D,QAAA,EAAA,cAAc,GACb,EACH,OAAO,KACNA,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAE,WAAW,gBACX,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,QAAQ,EACD,aAAA,EAAA,aAAa,GACzB,CACH,CAAA,EAAA,CACM,CACV,EACDA,GAAA,CAAA,SAAA,EAAA,EACE,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAA,aAAA,EACjD,YAAY,EAEvB,QAAA,EAAA,QAAQ,GACD,EACT,aAAa,KACZA,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAE5D,aAAa,EACP,CAAA,CACV,IACG,KAENA,aACE,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,iBAC/C,eAAe,EAAA,QAAA,EAE1B,QAAQ,EACL,CAAA,CACP,EAEA,CAAC,CAAC,WAAW,KAAK,CAAC,cAAc,IAAI,OAAO,CAAC,KAAK,OAAO,KACxDA,GACE,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,gBAC1D,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,QAAQ,EACD,aAAA,EAAA,mBAAmB,GAC/B,CACH,CAAA,EAAA,CACG;AAEV,CAAC;AAED,SAAS,CAAC,UAAU,GAAG,eAAe;AACtC,SAAS,CAAC,OAAO,GAAG,YAAY;AAChC,SAAS,CAAC,IAAI,GAAG,SAAS;AAC1B,SAAS,CAAC,KAAK,GAAG,UAAU;AAErB,MAAM,KAAK,GAAG;;AC7XR,MAAA,MAAM,GAUf,CAAC,EACH,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,WAAW,EACX,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE;AACnD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;AACtB,QAAA,gBAAgB,EAAE,WAAW;AAC7B,QAAA,CAAC,CAAY,SAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;AAC7B,KAAA,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAE7E,IAAA,QACEA,GACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,aAAa,EACxB,IAAI,EAAC,YAAY,EAAA,YAAA,EACN,iBAAiB,EACxB,GAAA,IAAI,YAEP,QAAQ,EAAA,CACL;AAEV;AA0Ba,MAAA,WAAW,GAA+B,CAAC,EACtD,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IAEF,QACEA,aACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,cAAc,CAAC,EACrC,kBAAkB,EAClB,SAAS,CACV,EAAA,GACG,IAAI,EAEP,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AA8Ba,MAAA,UAAU,GAA8B,CAAC,EACpD,SAAS,EACT,EAAE,EAAE,SAAS,GAAG,GAAG,EACnB,MAAM,EACN,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IAEF,QACEA,GAAC,CAAA,SAAS,EACR,EAAA,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,aAAa,EAAE;AACnC,YAAA,WAAW,EAAE,MAAM;SACpB,CAAC,EACF,kBAAkB,EAClB,SAAS,CACV,EACG,GAAA,IAAI,EAEP,QAAA,EAAA,QAAQ,EACC,CAAA;AAEhB;AAkCa,MAAA,YAAY,GAAgC,CAAC,EACxD,SAAS,EACT,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,QACEG,IAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,eAAe,EAAE;AACrC,YAAA,WAAW,EAAE,MAAM;AACpB,SAAA,CAAC,EACF,kBAAkB,EAClB,SAAS,CACV,EAAA,YAAA,EACW,KAAK,CAAC,YAAY,CAAC,IAAI,MAAM,EAC1B,eAAA,EAAA,CAAA,EAAA,GAAA,KAAK,CAAC,eAAe,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC,CAAC,MAAM,KAC7C,IAAI,EAAA,QAAA,EAAA,CAERH,6BAAkB,MAAM,EAAA,CAAQ,EAChCA,GAAkB,CAAA,MAAA,EAAA,EAAA,aAAA,EAAA,MAAM,EAAQ,CAAA,EAChCA,6BAAkB,MAAM,EAAA,CAAQ,EAC/B,QAAQ,CAAA,EAAA,CACF;AAEb;AA4Ba,MAAA,UAAU,GAA8B,CAAC,EACpD,SAAS,EACT,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IAEF,QACEA,aACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,aAAa,EAAE;AACnC,YAAA,WAAW,EAAE,MAAM;SACpB,CAAC,EACF,kBAAkB,EAClB,SAAS,CACV,EACG,GAAA,IAAI,EAEP,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AA0BO,MAAM,WAAW,GAAkC,CAAC,EACzD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IACF,QACEA,aACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,cAAc,CAAC,EACrC,kBAAkB,EAClB,SAAS,CACV,EAAA,GACG,IAAI,EAEP,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AASO,MAAM,SAAS,GAAkC,CAAC,EACvD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IACF,QACEA,aACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,YAAY,CAAC,EACnC,kBAAkB,EAClB,SAAS,CACV,EAAA,GACG,IAAI,EAEP,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AA6BO,MAAM,cAAc,GAAkC,CAAC,EAC5D,SAAS,EACT,KAAK,EACL,EAAE,EACF,SAAS,EACT,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,aAAa,EAAE,cAAc,EAAE;AACnD,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,WAAW,EAAE,MAAM;KACpB,CAAC,EACF,SAAS,CACV,EAAA,GACG,KAAK,EAER,QAAA,EAAA,QAAQ,EACL,CAAA;AA0BD,MAAM,kBAAkB,GAAsC,CAAC,EACpE,SAAS,EACT,KAAK,EACL,EAAE,EACF,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,iBAAiB,EAAE;AACvC,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,OAAO,EAAE,EAAE;KACZ,CAAC,EACF,SAAS,CACV,EAAA,GACG,KAAK,EAER,QAAA,EAAA,QAAQ,EACL,CAAA;MASK,aAAa,GAEtB,KAAK,KACPA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,KAAM,KAAK,EAAA,CAAI;AAIvE,MAAM,CAAC,KAAK,GAAG,WAAW;AAC1B,MAAM,CAAC,IAAI,GAAG,UAAU;AACxB,MAAM,CAAC,MAAM,GAAG,YAAY;AAC5B,MAAM,CAAC,IAAI,GAAG,UAAU;AACxB,MAAM,CAAC,KAAK,GAAG,WAAW;AAC1B,MAAM,CAAC,GAAG,GAAG,SAAS;AACtB,MAAM,CAAC,QAAQ,GAAG,cAAc;AAChC,MAAM,CAAC,YAAY,GAAG,kBAAkB;AACxC,MAAM,CAAC,OAAO,GAAG,aAAa;;AC9bvB,MAAM,kBAAkB,GAA0C,CAAC,EACxE,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,qBAAqB,CAAC,EAC5C,SAAS,EACT;AACE,QAAA,aAAa,EAAE,QAAQ;KACxB,CACF,EAAA,eAAA,EACc,QAAQ,EACvB,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAA,GACvB,KAAK,EACT,OAAO,EACL;UACI,CAAC,IAAG;YACF,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;;UAErB,KAAK,CAAC,OAAO,YAGlB,QAAQ,EAAA,CACP;AAMC,MAAM,cAAc,GAA0C,CAAC,EACpE,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE;AACzE,QAAA,aAAa,EAAE,QAAQ;KACxB,CAAC,EAAA,eAAA,EACa,QAAQ,EACvB,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAA,GACvB,KAAK,EACT,OAAO,EACL;UACI,CAAC,IAAG;YACF,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;;UAErB,KAAK,CAAC,OAAO,YAGlB,QAAQ,EAAA,CACP;AAWO,MAAA,UAAU,GAMnB,CAAC,EACH,KAAK,EACL,SAAS,EACT,OAAO,EACP,IAAI,EACJ,KAAK,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE;AACvD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;AACtB,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI;AACpB,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;AACtB,QAAA,YAAY,EAAE,OAAO;AACtB,KAAA,CAAC;IAEF,MAAM,iBAAiB,GAAG,UAAU,CAClC,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;AAED,IAAA,QACEA,GACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,iBAAiB,EAC5B,IAAI,EAAC,YAAY,EAAA,YAAA,EACN,YAAY,EACnB,GAAA,IAAI,YAEP,QAAQ,EAAA,CACL;AAEV;AAwBa,MAAA,cAAc,GAAkC,CAAC,EAC5D,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IACF,QACEA,YACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,iBAAiB,CAAC,EACxC,kBAAkB,EAClB,SAAS,CACV,EAAA,GACG,IAAI,EAEP,QAAA,EAAA,QAAQ,EACN,CAAA;AAET;AA4Ba,MAAA,cAAc,GAAkC,CAAC,EAC5D,SAAS,EACT,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,WAAW,GAAG,CAAC,CAAkD,KAAI;QACzE,IAAI,QAAQ,EAAE;YACZ,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;YACnB;;QAEF,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,CAAC,CAAC;;AAEd,KAAC;AAED,IAAA,QACEA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,GACE,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,iBAAiB,CAAC,EACxC,kBAAkB,EAClB,SAAS,EACT;AACE,gBAAA,YAAY,EAAE,MAAM;AACpB,gBAAA,aAAa,EAAE,QAAQ;AACxB,aAAA,CACF,kBACa,MAAM,GAAG,MAAM,GAAG,SAAS,mBAC1B,QAAQ,EACvB,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAC3B,OAAO,EAAE,WAAW,EAAA,GAChB,IAAI,EAEP,QAAA,EAAA,QAAQ,EACP,CAAA,EAAA,CACD;AAET;MAQa,kBAAkB,GAE3B,KAAK,KACPA,GACE,CAAA,IAAA,EAAA,EAAA,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,KAAM,KAAK,EAAA,QAAA,EAAA,QAAA,EAAA,CAEjE,EACJ,CAAA;AAGP,UAAU,CAAC,IAAI,GAAG,cAAc;AAChC,UAAU,CAAC,IAAI,GAAG,cAAc;AAChC,UAAU,CAAC,QAAQ,GAAG,kBAAkB;AACxC,UAAU,CAAC,QAAQ,GAAG,kBAAkB;AACxC,UAAU,CAAC,IAAI,GAAG,cAAc;;AC1MnB,MAAA,KAAK,GAQd,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,KAAI;AAC/C,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;QACnD,KAAK;AACL,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE;AAClD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;AACvB,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAE5E,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAM,GAAA,IAAI,EACnC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AAKO,MAAM,YAAY,GAAgC,CAAC,EACxD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,KACpE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACP;AAMC,MAAM,SAAS,GAA6B,CAAC,EAClD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,KACjE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACP;AAMO,MAAA,UAAU,GAA8B,CAAC,EACpD,SAAS,EACT,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAC7D,SAAS,CACV,EACG,GAAA,KAAK,YAER,QAAQ,EAAA,CACP;AAMC,MAAM,SAAS,GAA6B,CAAC,EAClD,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,KACjE,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACJ;MAMI,eAAe,GAAmC,CAAC,EAC9D,KAAK,EACL,QAAQ,EACR,WAAW,EACX,aAAa,GAAG,eAAe,EAC/B,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC;AAEjD,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,qBAAqB,CAAC,aAAa,CAAC,EAAM,GAAA,KAAK,EAC7D,QAAA,EAAAG,IAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,CAC9DH,GACE,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,UAAU,EACrB,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAAA,CAClB,EACFA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAA,QAAA,EACvDA,GAAG,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,aAAa,EAAc,aAAA,EAAA,MAAM,EAAK,CAAA,EAAA,CAC/C,CACL,EAAA,CAAA,EAAA,CACA;AAEV;MAKa,kBAAkB,GAAsC,CAAC,EACpE,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,MACCG,IAAO,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,qBAAqB,CAAC,aAAa,CAAC,KAAM,KAAK,EAAA,QAAA,EAAA,CAC/DH,eAAO,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAC9D,QAAQ,CACH,EAAA,CAAA;MAMG,gBAAgB,GAAoC,CAAC,EAChE,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,qBAAqB,CAAC,aAAa,CAAC,EAAA,QAAA,EAClDA,gBACE,SAAS,EAAE,UAAU,CACnB,qBAAqB,CACnB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,CACf,EACD,SAAS,CACV,EACG,GAAA,KAAK,YAER,QAAQ,EAAA,CACF,EACL,CAAA;AAGR,KAAK,CAAC,OAAO,GAAG,YAAY;AAC5B,KAAK,CAAC,IAAI,GAAG,SAAS;AACtB,KAAK,CAAC,KAAK,GAAG,UAAU;AACxB,KAAK,CAAC,IAAI,GAAG,SAAS;AACtB,KAAK,CAAC,UAAU,GAAG,eAAe;AAClC,KAAK,CAAC,aAAa,GAAG,kBAAkB;AACxC,KAAK,CAAC,WAAW,GAAG,gBAAgB;;AC/N7B,MAAM,IAAI,GAGb,CAAC,EACH,KAAK,EACL,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,EAAE;AACjD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;AACtB,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI;AACpB,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;AACtB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,mBAAmB,EAAE,OAAO;AAC7B,KAAA,CAAC;IAEF,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IACzE,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,SAAS,EAAM,GAAA,IAAI,EAChC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AASO,MAAM,OAAO,GAA2B,CAAC,EAC9C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,MACCA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EAC5C,QAAQ,EAAA,CACN;MAUM,OAAO,GAA2B,CAAC,EAC9C,MAAM,EACN,SAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,IAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,MAAM,EAAE,EAChD,SAAS,CACV,EACD,OAAO,EAAE,OAAO,EAAA,GACZ,KAAK,EAER,QAAA,EAAA,QAAQ,EACN,CAAA;AAGP,IAAI,CAAC,IAAI,GAAG,OAAO;AACnB,IAAI,CAAC,IAAI,GAAG,OAAO;;ACvHN,MAAA,KAAK,GAAyB,CAAC,EAC1C,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC;IACnD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAE5E,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAM,GAAA,IAAI,EACnC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;MCtBa,GAAG,GAAuB,CAAC,EACtC,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,GAAG,IAAI,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,EAAE;QAChD,eAAe,EAAE,CAAC,SAAS;AAC5B,KAAA,CAAC;IAEF,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAE1E,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,UAAU,EAAM,GAAA,IAAI,EACjC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;ACQa,MAAA,MAAM,GAA0B,CAAC,EAC5C,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,EACP,EAAE,GAAG,QAAQ,EACb,IAAI,EACJ,OAAO,EACP,MAAM,EACN,GAAG,EACH,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE;AACnD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrD,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI;AACpB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,cAAc,EAAE,WAAW;AAC5B,KAAA,CAAC;IAGF,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAE7E,IAAA,IAAI,EAAE,KAAK,GAAG,EAAE;QAEd,MAAM,EACJ,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,SAAS,EACnB,IAAI,EAAE,KAAK,EACX,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,YAAY,EACzB,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,WAAW,EACvB,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,UAAU,EACrB,GAAG,UAAU,EACd,GAAG,IAAqD;AAEzD,QAAA,QACEA,GAAA,CAAA,GAAA,EAAA,EACE,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACO,eAAA,EAAA,UAAU,EACzB,QAAQ,EAAE,UAAU,GAAG,EAAE,GAAG,SAAS,EACrC,OAAO,EACL;kBACI,CAAC,CAAsC,KAAK,CAAC,CAAC,cAAc;kBAC3D,OAEa,EAEf,GAAA,UAA4D,YAEhE,QAAQ,EAAA,CACP;;AAIR,IAAA,QACEA,GACE,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,UAAU,EACpB,OAAO,EACL,OAAiE,EAE/D,GAAA,IAAI,YAEP,QAAQ,EAAA,CACF;AAEb;;ACvIa,MAAA,OAAO,GAA2B,CAAC,EAC9C,SAAS,EACT,SAAS,EACT,OAAO,EACP,UAAU,EACV,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,cAAc,GAAG,qBAAqB,CAAC,SAAS,EAAE;AACtD,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA,CAAC;AAKF,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IAEF,MAAM,eAAe,GAAG,UAAU,CAChC,cAAc,EACd,SAAS,EACT,kBAAkB,CACnB;IAED,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,eAAe,EAAM,GAAA,IAAI,EACtC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;ACjDA,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAU;MAa3C,OAAO,GAA2B,CAAC,EAC9C,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,EAAE;AACpD,QAAA,CAAC,MAAM,IAAI,CAAA,CAAE,GAAG,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvE,KAAA,CAAC;IAEF,MAAM,cAAc,GAAG,UAAU,CAC/B,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;IAED,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,cAAc,EAAM,GAAA,IAAI,EACrC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;AChCO,MAAM,MAAM,GAA0B,CAAC,EAC5C,SAAS,EACT,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,SAAS,GAAG,OAAO,EACnB,QAAQ,GAAG,KAAK,EAChB,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE;AACnD,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI;AACpB,QAAA,aAAa,EAAE,QAAQ;AACxB,KAAA,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAEvE,QACEA,gBACE,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,EACJ,YAAA,EAAA,SAAS,EACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,EACT,GAAA,IAAI,EACR,CAAA;AAEN;;ACFA,SAAS,cAAc,CACrB,OAAoB,EACpB,IAAY,EACZ,OAAgB,EAChB,QAA4B,EAAA;IAE5B,IAAI,SAAS,GAAG,EAAE;IAClB,IAAI,SAAS,GAAG,EAAE;AAClB,IAAA,IAAI,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ;AACtC,UAAE;AACF,UAAE;cACE,CAAC,QAAQ;cACT,EAAE;IAER,QAAQ,OAAO;QACb,KAAK,IAAI,EAAE;AAET,YAAA,MAAM,QAAQ,GAA2B;AACvC,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,IAAI,EAAE,KAAK;aACZ;AACD,YAAA,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,KAAK;YAC9D,SAAS,GAAG,OAAO;AACnB,YAAA,SAAS,GAAG,CAAA,GAAA,EAAM,IAAI,CAAA,CAAE;AACxB,YAAA,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAEzD,QAAA,KAAK,KAAK;YAER,SAAS,GAAG,KAAK;AACjB,YAAA,SAAS,GAAG,CAAA,IAAA,EAAO,IAAI,CAAA,CAAE;AACzB,YAAA,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACzD,KAAK,gBAAgB,EAAE;AAErB,YAAA,MAAM,aAAa,GAA2B;AAC5C,gBAAA,MAAM,EAAE,gBAAgB;AACxB,gBAAA,QAAQ,EAAE,yBAAyB;AACnC,gBAAA,KAAK,EAAE,sBAAsB;AAC7B,gBAAA,KAAK,EAAE,sBAAsB;aAC9B;AACD,YAAA,SAAS,GAAG;kBACR,aAAa,CAAC,OAAO,CAAC,IAAI,CAAA,eAAA,EAAkB,OAAO,CAAE;kBACrD,gBAAgB;YACpB,OAAO,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;QAE9C,KAAK,kBAAkB,EAAE;AAEvB,YAAA,MAAM,aAAa,GAA2B;AAC5C,gBAAA,QAAQ,EAAE,2BAA2B;AACrC,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,KAAK,EAAE,wBAAwB;aAChC;AACD,YAAA,SAAS,GAAG;kBACR,aAAa,CAAC,OAAO,CAAC,IAAI,CAAA,iBAAA,EAAoB,OAAO,CAAE;kBACvD,2BAA2B;YAC/B,OAAO,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE9C,QAAA;YAEE,OAAO,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE7C;AAYa,MAAA,IAAI,GAAwB,CAAC,EACxC,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,SAAS,GAAG,MAAM,EAClB,KAAK,EACL,IAAI,EACJ,KAAK,EAAE,MAAM,EACb,GAAG,SAAS,EACb,KAAI;IAEH,IAAI,SAAS,GAAG,IAAI;AACpB,IAAA,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AAGjB,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC,YAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC/B,gBAAA,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;;AAC5B,iBAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACrC,gBAAA,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;;iBAC5B;gBACL,SAAS,GAAG,QAAQ;;;;AAM1B,IAAA,MAAM,cAAc,GAAG,cAAc,EAAE;AACvC,IAAA,MAAM,YAAY,GAAG,OAAO,IAAI,cAAc,IAAI,IAAI;AAKtD,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,SAAS;AACb,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,EAAE;AACjD,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI;AACrB,KAAA,CAAC;IAEF,MAAM,oBAAoB,GAAG,UAAU,CACrC,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;IAGD,IAAI,YAAY,GAAG,OAAO;IAC1B,IAAI,aAAa,GAAG,QAAQ;IAE5B,IAAI,eAAe,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE;AAC5C,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe;AAClD,cAAE;AACF,cAAE,CAAC,eAAe,CAAC;AAGrB,QAAA,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IACnC;gBACE,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,OAAO;gBACP,SAAS;gBACT,QAAQ;gBACR,OAAO;gBACP,SAAS;gBACT,MAAM;AACP,aAAA,CAAC,QAAQ,CAAC,CAAC,CAAC,CACd;YACD,IAAI,OAAO,EAAE;gBACX,YAAY,GAAG,OAAO;AACtB,gBAAA,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC;;iBACpD;gBACL,aAAa,GAAG,cAAc;;;aAI7B,IACH,YAAY,KAAK,gBAAgB;YACjC,YAAY,KAAK,kBAAkB,EACnC;AACA,YAAA,MAAM,aAAa,GACjB,YAAY,KAAK;kBACb,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;kBACvC,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;AAEtC,YAAA,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,YAAY,EAAE;gBAChB,YAAY,GAAG,YAAY;AAC3B,gBAAA,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC;;iBACzD;gBACL,aAAa,GAAG,cAAc;;;aAI7B;YACH,aAAa,GAAG,cAAc;;;AAKlC,IAAA,IAAI,YAAY,KAAK,KAAK,EAAE;QAE1B,IAAI,OAAO,GAAG,SAAS;AACvB,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAC9B,YAAA,OAAO,GAAG,CAAA,EAAG,SAAS,CAAA,QAAA,CAAU;;AAC3B,aAAA,IAAI,YAAY,KAAK,OAAO,EAAE;AACnC,YAAA,OAAO,GAAG,CAAA,EAAG,SAAS,CAAA,MAAA,CAAQ;;QAGhC,QACEA,cACE,SAAS,EAAE,oBAAoB,EACnB,YAAA,EAAA,SAAS,EACrB,KAAK,EAAE,KAAK,EACR,GAAA,IAAI,YAERA,GAAU,CAAA,UAAA,EAAA,EAAA,IAAI,EAAE,OAAO,EAAA,CAAI,EACtB,CAAA;;AAKX,IAAA,MAAM,QAAQ,GAAG,cAAc,CAC7B,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,aAAa,CACd;IAGD,IACE,YAAY,KAAK,gBAAgB;QACjC,YAAY,KAAK,kBAAkB,EACnC;QACA,QACEA,cACE,SAAS,EAAE,oBAAoB,EACnB,YAAA,EAAA,SAAS,EACrB,KAAK,EAAE,KAAK,KACR,IAAI,EAAA,QAAA,EAERA,GAAG,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,QAAQ,YAAG,SAAS,EAAA,CAAK,EAClC,CAAA;;IAIX,QACEA,cACE,SAAS,EAAE,oBAAoB,EACnB,YAAA,EAAA,SAAS,EACrB,KAAK,EAAE,KAAK,EACR,GAAA,IAAI,YAERA,GAAG,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,QAAQ,EAAA,CAAI,EACrB,CAAA;AAEX;;MChRa,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,WAAW,CAAC;IACvD,MAAM,eAAe,GAAG,UAAU,CAChC,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;AAED,IAAA,QACEA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,eAAe,EAAM,GAAA,IAAI,EACvC,QAAA,EAAA,KAAK,IACJ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MACpBG,IAAC,CAAA,KAAK,CAAC,QAAQ,eACbH,GAAC,CAAA,IAAI,EAAK,EAAA,GAAA,IAAI,CAAC,SAAS,EAAA,CAAI,EAC3B,IAAI,CAAC,IAAI,IAAIA,GAAO,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,IAAI,CAAC,IAAI,EAAA,CAAQ,CAFnB,EAAA,EAAA,KAAK,CAGT,CAClB,CAAC,KAEFG,IACG,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,SAAS,IAAIJ,GAAC,CAAA,IAAI,EAAK,EAAA,GAAA,SAAS,GAAI,EACpC,QAAQ,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,QAAQ,EAAQ,CAAA,CAAA,EAAA,CACnC,CACJ,EAAA,CACI;AAEX;;ACrBO,MAAM,KAAK,GAAyB,CAAC,EAC1C,EAAE,EACF,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,EACH,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE;AAClD,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI;AACpB,QAAA,WAAW,EAAE,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrE,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAI5E,IAAA,IAAI,GAA2B;IAC/B,IAAI,EAAE,EAAE;QACN,GAAG,GAAG,EAAE;;AACH,SAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAClE,GAAG,GAAG,QAAQ;;SACT;QACL,GAAG,GAAG,KAAK;;AAGb,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,CAAC;IAExD,MAAM,OAAO,GAAG,QAAQ,IACtB,QAAQ,KAERA,aACE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,YAAY,GAAG,SAAS,EAAE,CAAC,EACpD,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EAAA,IACH,QAAQ,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,CAAA,EAAG,GAAG,CAAA,GAAA,CAAK,EAAE,GAAG,EAAE,CAAC,EACpD,CAAA,CACH;AAED,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAE,YAAY,EAAA,GAAM,IAAI,EAAA,QAAA,EACnC,OAAO,EAAA,CACJ;AAEV;;MC7Fa,YAAY,GAAgC,CAAC,EACxD,SAAS,EACT,KAAK,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,cAAc,EAAE;AACzD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrD,QAAA,UAAU,EAAE,OAAO;AACpB,KAAA,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG,qBAAqB,CAAC,QAAQ,CAAC;IAErD,MAAM,mBAAmB,GAAG,UAAU,CACpC,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;IAED,QACEG,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,mBAAmB,EAAM,GAAA,IAAI,EAC1C,QAAA,EAAA,CAAA,SAAS,KACRH,GACE,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,QAAQ,EACN,YAAA,EAAA,oBAAoB,EAC/B,CAAA,CACH,EACA,QAAQ,CACL,EAAA,CAAA;AAEV;;MCzCa,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,KAAK,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,EAAE;AACrD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrD,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI;AACrB,KAAA,CAAC;IAEF,MAAM,eAAe,GAAG,UAAU,CAChC,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;AAED,IAAA,QACEA,GAAU,CAAA,UAAA,EAAA,EAAA,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAM,GAAA,IAAI,YACnE,QAAQ,EAAA,CACA;AAEf;;MCpDa,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,OAAO,GAAG,OAAO,EACjB,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;AAC1D,IAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;AAE1D,IAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,QAAA,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EACzD,QAAA,EAAA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MACtCA,eAAU,CAAC,CAAI,CAChB,CAAC,EAAA,CACE;;AAIV,IAAA,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,QAAA,EACzD,QAAQ,EAAA,CACL;AAEV;;ACpCA,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU;AAMlE,MAAM,qBAAqB,GAAG;IAC5B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,GAAG;CACK;AA0CG,MAAA,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,IAAI,EACJ,EAAE,GAAG,IAAI,EACT,WAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;AAG9D,IAAA,MAAM,SAAS,GACb,IAAI,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS;AAE9D,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,EAAE;AACrD,QAAA,CAAC,CAAM,GAAA,EAAA,SAAS,CAAE,CAAA,GAAG,SAAS;AAC9B,QAAA,cAAc,EAAE,WAAW;AAC5B,KAAA,CAAC;IAEF,MAAM,eAAe,GAAG,UAAU,CAChC,YAAY,EACZ,kBAAkB,EAClB,SAAS,CACV;IAGD,MAAM,GAAG,GACP,OAAO,KAAK,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,CAAI,CAAA,EAAA,SAAS,EAAE,GAAG,OAAO;AAE/D,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAE,eAAe,EAAA,GAAM,IAAI,EAAA,QAAA,EACtC,QAAQ,EAAA,CACL;AAEV;;ACpEa,MAAA,KAAK,GAAyB,CAAC,EAC1C,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAElE,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE;AAClD,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,cAAc,EAAE,WAAW;AAC5B,KAAA,CAAC;AAEF,IAAA,MAAM,cAAc,GAAG,qBAAqB,CAAC,iBAAiB,CAAC;IAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAE5E,IAAA,MAAM,YAAY,IAChBA,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAE,YAAY,EAAA,GAAM,IAAI,EAAA,QAAA,EACrC,QAAQ,EAAA,CACH,CACT;IAED,IAAI,YAAY,EAAE;AAChB,QAAA,OAAOA,aAAK,SAAS,EAAE,cAAc,EAAG,QAAA,EAAA,YAAY,GAAO;;AAG7D,IAAA,OAAO,YAAY;AACrB;;AC5EA,MAAM,cAAc,GAAG;IACrB,SAAS;IACT,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;CACC;AAOV,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAU;AAyC/C,MAAA,GAAG,GAAuB,CAAC,EACtC,SAAS,EACT,KAAK,EACL,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAElE,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,EAAE;AAChD,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxD,QAAA,CAAC,MAAM,IAAI,CAAA,CAAE,GAAG,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzE,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,cAAc,EAAE,WAAW;AAC5B,KAAA,CAAC;IAEF,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAE1E,IAAI,QAAQ,EAAE;AACZ,QAAA,QACEA,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,QAAQ,gBACN,YAAY,EAAA,GACnB,IAAI,EAAA,CACR;;IAIN,QACEA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,UAAU,EAAM,GAAA,IAAI,EAClC,QAAA,EAAA,QAAQ,EACJ,CAAA;AAEX;;AC1Ea,MAAA,IAAI,GAAwB,CAAC,EACxC,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAElE,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,EAAE;AACjD,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,eAAe,EAAE,WAAW;AAC7B,KAAA,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAE3E,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,WAAW,EAAM,GAAA,IAAI,EAClC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;ACzBO,MAAM,KAAK,GAAyB,CAAC,EAC1C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAElE,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAE9D,QACEA,GAAO,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAM,GAAA,IAAI,EACrC,QAAA,EAAA,QAAQ,EACH,CAAA;AAEZ;;ACxCa,MAAA,gBAAgB,GAAG;IAC9B,SAAS;IACT,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;;AAiCI,MAAA,EAAE,GAAsB,CAAC,EACpC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,EAAE,EAAE;AAC3C,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3D,KAAA,CAAC;AAKF,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAElE,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,kBAAkB,CAAC;IAEvE,QACEA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,SAAS,EAAM,GAAA,IAAI,EAC/B,QAAA,EAAA,QAAQ,EACN,CAAA;AAET;;AC1CO,MAAM,KAAK,GAAyB,CAAC,EAC1C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAElE,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAE9D,QACEA,GAAO,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAM,GAAA,IAAI,EACrC,QAAA,EAAA,QAAQ,EACH,CAAA;AAEZ;;ACvCA,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAU;MAmCjD,EAAE,GAAsB,CAAC,EACpC,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,EAAE,EAAE;AAC7C,QAAA,CAAC,CAAY,SAAA,EAAA,SAAS,CAAE,CAAA,GAAG,SAAS,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC3E,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3D,KAAA,CAAC;AAKF,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAElE,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC;IAEzE,QACEA,YACE,SAAS,EAAE,SAAS,EACpB,KAAK,EACH;AACE,cAAE,EAAE,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,GAAG,KAAK,CAAA,EAAA,CAAI,GAAG,KAAK;cACzD,SAAS,EAEX,GAAA,IAAI,YAEP,QAAQ,EAAA,CACN;AAET;;AC9CO,MAAM,KAAK,GAAyB,CAAC,EAC1C,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAElE,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAE9D,QACEA,GAAO,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAM,GAAA,IAAI,EACrC,QAAA,EAAA,QAAQ,EACH,CAAA;AAEZ;;ACvCA,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU;AAM/D,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAU;AA4CtE,MAAM,KAAK,GAAyB,CAAC,EAC1C,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,EAAE,GAAG,IAAI,EACT,WAAW,EACX,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAIH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;AAG3D,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS;AAE3E,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE;AAClD,QAAA,CAAC,CAAM,GAAA,EAAA,SAAS,CAAE,CAAA,GAAG,SAAS;AAC9B,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,cAAc,EAAE,WAAW;AAC5B,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAG5E,MAAM,GAAG,GACP,OAAO,KAAK,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,CAAI,CAAA,EAAA,SAAS,EAAE,GAAG,OAAO;AAE/D,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAE,YAAY,EAAA,GAAM,IAAI,EAAA,QAAA,EACnC,QAAQ,EAAA,CACL;AAEV;;AClEa,MAAA,EAAE,GAAsB,CAAC,EACpC,SAAS,EACT,UAAU,EACV,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,EAAE,EAAE;AAC7C,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3D,KAAA,CAAC;AAKF,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IAElE,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC;IAEzE,QACEA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,SAAS,EAAM,GAAA,IAAI,EAC/B,QAAA,EAAA,QAAQ,EACN,CAAA;AAET;;MC/Ba,QAAQ,GAAG,UAAU,CAChC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACnD,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC;IACnD,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAE1E,QACEG,IAAO,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,aAAa,aAC7BH,GAAO,CAAA,OAAA,EAAA,EAAA,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,QAAQ,EAAA,GAAM,IAAI,EAAA,CAAI,EAChE,QAAQ,CACH,EAAA,CAAA;AAEZ,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACtB1B,MAAM,UAAU,GAA8B,CAAC,EACpD,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC;IACrD,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAEzE,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAM,GAAA,IAAI,EACnC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;AC0BA,MAAM,aAAa,GAAG,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,SAAS,CAAU;MAUxD,OAAO,GAAG,KAAK,CAAC,UAAU,CAIrC,CACE,EACE,EAAE,GAAG,KAAK,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,UAAU,EACV,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,SAAS,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,GAAG,KAAK,CAAgB;AAC3D,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AAGnC,IAAA,MAAM,EACJ,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,EACxB,GAAG,SAAS,EACb,GAAG,KAAgC;AAEpC,IAAA,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAC1C,SAA2C;AAE3C,UAAE;UACA,SAAS;AAEb,IAAA,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CACxC,OAAyC;AAEzC,UAAE;UACA,SAAS;AAEb,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,eAAe,EAAE,WAAW;AAC5B,QAAA,GAAG,SAAS;AACb,KAAA,CAAC;IAGF,MAAM,aAAa,GACjB,QAAQ;AACR,SAAC;AACC,cAAE;AACE,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,IAAI,EAAE,YAAY;AACnB;cACD,SAAS,CAAC;IAEhB,MAAM,cAAc,GAClB,SAAS;AACT,SAAC;AACC,cAAE;AACE,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,IAAI,EAAE,aAAa;AACpB;cACD,SAAS,CAAC;AAEhB,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,EAAE;AACjD,QAAA,gBAAgB,EAAE,YAAY,IAAI,CAAC,CAAC,aAAa;AACjD,QAAA,iBAAiB,EAAE,aAAa,IAAI,CAAC,CAAC,cAAc;AACpD,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,CAAC,MAAM,IAAI,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI;AACvB,KAAA,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAGzE,IAAA,QACEG,IAAA,CAAC,SAAS,EAAA,EACR,SAAS,EAAE,YAAY,EACvB,GAAG,EAAE,GAAiB,EAAA,GAClB,SAAS,EACT,GAAA,IAAI,EAEP,QAAA,EAAA,CAAA,QAAQ,EACR,aAAa,IAAI,aAAa,CAAC,IAAI,KAClCH,GAAC,CAAA,IAAI,EACC,EAAA,GAAA,aAAa,EACjB,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,EACrD,CAAA,CACH,EACA,cAAc,IAAI,cAAc,CAAC,IAAI,KACpCA,GAAA,CAAC,IAAI,EAAA,EAAA,GACC,cAAc,EAClB,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAA,CACtD,CACH,CAAA,EAAA,CACS;AAEhB,CAAC;AAGH,OAAO,CAAC,WAAW,GAAG,SAAS;;MCjGlB,UAAU,GAA8B,CAAC,EACpD,IAAI,EACJ,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,aAAa,EAAE;AACrD,QAAA,CAAC,MAAM,IAAI,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI;AACvB,KAAA,CAAC;IACF,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAE5E,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,eAAe,EAAA,GAAM,KAAK,EAAA,GAAM,IAAI,EAAA,QAAA,EACjD,QAAQ,EAAA,CACL;AAEV;AASa,MAAA,SAAS,GAA6B,CAAC,EAClD,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC;IACrD,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAE3E,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,GAAM,KAAK,EAAA,GAAM,IAAI,EAAA,QAAA,EAChD,QAAQ,EAAA,CACL;AAEV;AAWO,MAAM,KAAK,GAGd,CAAC,EACH,UAAU,EACV,OAAO,EACP,SAAS,EACT,KAAK,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE;AAC/C,QAAA,eAAe,EAAE,UAAU;QAC3B,YAAY,EAAE,CAAC,CAAC,SAAS;QACzB,YAAY,EACV,OAAO,KAAK,IAAI;AAChB,YAAA,OAAO,KAAK,UAAU;AACtB,YAAA,OAAO,KAAK,OAAO;AACnB,YAAA,OAAO,KAAK,WAAW;QACzB,qBAAqB,EAAE,OAAO,KAAK,UAAU;QAC7C,kBAAkB,EAAE,OAAO,KAAK,OAAO;QACvC,sBAAsB,EAAE,OAAO,KAAK,WAAW;AAChD,KAAA,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAGvE,IAAA,MAAM,eAAe,GACnB,SAAS,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS;AAEhD,IAAA,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC;IAEjD,IAAI,aAAa,GAAG,IAAI;IACxB,IAAI,KAAK,EAAE;QACT,IAAI,UAAU,EAAE;AACd,YAAA,aAAa,IACXA,GAAA,CAAC,UAAU,EAAC,EAAA,IAAI,EAAE,eAAe,EAAA,QAAA,EAC/BA,GACM,CAAA,OAAA,EAAA,EAAA,GAAA,UAAU,EACd,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAE,SAAS,CAAC,EACxD,KAAK,EAAE,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,MAAA,GAAA,MAAA,GAAA,UAAU,CAAE,KAAK,EAAA,QAAA,EAEvB,KAAK,EACA,CAAA,EAAA,CACG,CACd;;aACI;YACL,aAAa,IACXA,GACM,CAAA,OAAA,EAAA,EAAA,GAAA,UAAU,EACd,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,MAAA,GAAA,MAAA,GAAA,UAAU,CAAE,SAAS,CAAC,EACxD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAA,UAAU,aAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAE,KAAK,KAAI,EAAE,CAAC,EAAE,EAExD,QAAA,EAAA,KAAK,EACA,CAAA,CACT;;;IAKL,IAAI,OAAO,GAAG,QAAQ;IACtB,IAAI,UAAU,EAAE;AAGd,QAAA,IACE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;AAE9B,aAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,EAC1E;YACA,OAAO,GAAG,QAAQ;;aACb;AACL,YAAA,OAAO,GAAGA,GAAC,CAAA,SAAS,EAAE,EAAA,QAAA,EAAA,QAAQ,GAAa;;;AAI/C,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,EAAA,GAAM,IAAI,EAAA,QAAA,EAAA,CACjC,aAAa,EACb,OAAO,CAAA,EAAA,CACJ;AAEV;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;AACrC,SAAS,CAAC,WAAW,GAAG,WAAW;AACnC,KAAK,CAAC,KAAK,GAAG,UAAU;AACxB,KAAK,CAAC,IAAI,GAAG,SAAS;;ACxLT,MAAA,IAAI,GAAG,UAAU,CAC5B,CACE,EACE,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,cAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE;AACnC,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;QACnD,KAAK;AACL,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,IAAI,cAAkC;AACtC,IAAA,IAAI,OAAO,IAAI,UAAU,EAAE;AAEzB,QAAA,cAAc,GAAG,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC;;SACvD,IAAI,OAAO,EAAE;AAClB,QAAA,cAAc,GAAG,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC;;SACvD,IAAI,UAAU,EAAE;AACrB,QAAA,cAAc,GAAG,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC;;AAGjE,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE;AAC9C,QAAA,CAAC,MAAM,KAAK,CAAA,CAAE,GAAG,CAAC,CAAC,KAAK;AACxB,QAAA,CAAC,MAAM,IAAI,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI;AACtB,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,UAAU,EAAE,OAAO;AACpB,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,UAAU,CAC1B,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,SAAS,CACV;IAED,QACEH,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,SAAS,YACvBG,IAAO,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,qBAAqB,CAAC,YAAY,CAAC,EACnD,QAAA,EAAA,CAAAH,GAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,UAAU,CACnB,qBAAqB,CAAC,YAAY,CAAC,EACnC,cAAc,CACf,EACD,IAAI,EAAC,MAAM,EACP,GAAA,IAAI,EACR,CAAA,EACFG,IAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,qBAAqB,CAAC,UAAU,CAAC,EAC/C,QAAA,EAAA,CAAA,QAAQ,KACPH,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,EAC1D,QAAA,EAAA,QAAQ,EACJ,CAAA,CACR,EACDA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,qBAAqB,CAAC,YAAY,CAAC,EACjD,QAAA,EAAA,KAAK,IAAI,gBAAgB,EAAA,CACrB,EACN,SAAS,KACRA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,EAC1D,QAAA,EAAA,SAAS,EACL,CAAA,CACR,CACI,EAAA,CAAA,EACN,OAAO,IAAI,QAAQ,KAClBA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,EAAA,QAAA,EAC1D,QAAQ,EAAA,CACJ,CACR,CAAA,EAAA,CACK,EACJ,CAAA;AAEV,CAAC;AAGH,IAAI,CAAC,WAAW,GAAG,MAAM;;ACxGlB,MAAM,KAAK,GAAG,UAAU,CAC7B,CACE,EACE,KAAK,EACL,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;QACnD,KAAK;AACL,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE;AAC/C,QAAA,CAAC,MAAM,KAAK,CAAA,CAAE,GAAG,CAAC,CAAC,KAAK;AACxB,QAAA,CAAC,MAAM,IAAI,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,YAAY,EAAE,SAAS;AACxB,KAAA,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAEvE,QACEA,eACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EACd,GAAA,IAAI,EACR,CAAA;AAEN,CAAC;AAEH,KAAK,CAAC,WAAW,GAAG,OAAO;;MCnEd,KAAK,GAAG,UAAU,CAC7B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACnD,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC;IAChD,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAEvE,QACEG,IAAO,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,UAAU,aAC1BH,GAAO,CAAA,OAAA,EAAA,EAAA,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAA,GAAM,IAAI,EAAA,CAAI,EAC7D,QAAQ,CACH,EAAA,CAAA;AAEZ,CAAC;AAGH,KAAK,CAAC,WAAW,GAAG,OAAO;;ACtBpB,MAAM,MAAM,GAA0B,CAAC,EAC5C,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;IACjD,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAEzE,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAM,GAAA,IAAI,EACnC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;ACUO,MAAM,MAAM,GAAG,UAAU,CAC9B,CACE,EACE,KAAK,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;QACnD,KAAK;AACL,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,EAAE;AAChD,QAAA,CAAC,MAAM,KAAK,CAAA,CAAE,GAAG,CAAC,CAAC,KAAK;AACxB,QAAA,CAAC,MAAM,IAAI,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,QAAQ;AACtB,KAAA,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAGxE,IAAA,MAAM,WAAW,GAAkD;QACjE,QAAQ;QACR,QAAQ;AACR,QAAA,GAAG,IAAI;KACR;AAED,IAAA,IAAI,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AAChD,QAAA,WAAW,CAAC,IAAI,GAAG,YAAY;;AAGjC,IAAA,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,WAAW,YACzBA,GAAQ,CAAA,QAAA,EAAA,EAAA,GAAG,EAAE,GAAG,KAAM,WAAW,EAAA,QAAA,EAC9B,QAAQ,EACF,CAAA,EAAA,CACL;AAEV,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;AC9ChB,MAAA,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,KAAK,EACL,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;QACnD,KAAK;AACL,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,EAAE;AAClD,QAAA,CAAC,MAAM,KAAK,CAAA,CAAE,GAAG,CAAC,CAAC,KAAK;AACxB,QAAA,CAAC,MAAM,IAAI,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI;AACtB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,gBAAgB,EAAE,YAAY;AAC/B,KAAA,CAAC;IACF,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAE1E,QACEA,GACE,CAAA,UAAA,EAAA,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACN,GAAA,IAAI,EACR,CAAA;AAEN,CAAC;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACvD1B,MAAM,IAAI,GAAwB,CAAC,EACxC,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAG/C,IAAA,MAAM,eAAe,GAAG,qBAAqB,CAAC,EAAE,EAAE;QAChD,CAAC,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAE,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QACzE,CAAC,CAAA,gBAAA,EAAmB,UAAU,CAAA,CAAE,GAC9B,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;QACjD,CAAC,CAAA,YAAA,EAAe,OAAO,CAAA,CAAE,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QACrE,CAAC,CAAA,aAAA,EAAgB,QAAQ,CAAA,CAAE,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QACzE,CAAC,CAAA,gBAAA,EAAmB,UAAU,CAAA,CAAE,GAC9B,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;QACjD,CAAC,CAAA,YAAA,EAAe,OAAO,CAAA,CAAE,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;AACtE,KAAA,CAAC;AAEF,IAAA,MAAM,WAAW,GAAG,UAAU,CAC5B,SAAS,EACT,eAAe,EACf,SAAS,EACT,kBAAkB,CACnB;IAED,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,WAAW,EAAM,GAAA,IAAI,EAClC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;MCqBa,IAAI,GAAwB,CAAC,EACxC,OAAO,GAAG,KAAK,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,SAAS,EACT,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AAEH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAG/C,IAAA,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,EAAE,EAAE;QACjD,CAAC,CAAA,OAAA,EAAU,GAAG,CAAA,CAAE,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QACpD,CAAC,CAAA,cAAA,EAAiB,SAAS,CAAA,CAAE,GAC3B,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI;QAC/C,CAAC,CAAA,WAAA,EAAc,MAAM,CAAA,CAAE,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QACjE,CAAC,CAAA,WAAA,EAAc,MAAM,CAAA,CAAE,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;AAClE,KAAA,CAAC;AAGF,IAAA,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,YAAY,EAAE;QAC3D,gBAAgB,EAAE,SAAS,KAAK,MAAM;QACtC,CAAC,CAAA,IAAA,EAAO,SAAS,CAAA,KAAA,CAAO,GAAG,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,MAAM;QAC1E,CAAC,CAAA,IAAA,EAAO,eAAe,CAAA,YAAA,CAAc,GACnC,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI;QAC3D,CAAC,CAAA,IAAA,EAAO,eAAe,CAAA,YAAA,CAAc,GACnC,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI;QAC3D,CAAC,CAAA,IAAA,EAAO,gBAAgB,CAAA,aAAA,CAAe,GACrC,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,IAAI;QAC7D,CAAC,CAAA,IAAA,EAAO,mBAAmB,CAAA,gBAAA,CAAkB,GAC3C,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,KAAK,IAAI;QACnE,CAAC,CAAA,IAAA,EAAO,eAAe,CAAA,YAAA,CAAc,GACnC,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI;AAC5D,KAAA,CAAC;AAEF,IAAA,MAAM,WAAW,GAAG,UAAU,CAC5B,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,CACV;IAED,IAAI,OAAO,EAAE;AACX,QAAA,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,gBAAgB,YAC9BA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,WAAW,KAAM,IAAI,EAAA,QAAA,EAClC,QAAQ,EACL,CAAA,EAAA,CACF;;IAKV,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,WAAW,EAAM,GAAA,IAAI,EAClC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;AC9LA,MAAM,YAAY,GAAG;IAEnB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,wBAAwB;IACxB,gBAAgB;IAChB,uBAAuB;IACvB,gBAAgB;IAChB,gBAAgB;IAChB,uBAAuB;IACvB,uBAAuB;IACvB,kCAAkC;IAClC,mCAAmC;IACnC,8BAA8B;IAC9B,+BAA+B;IAC/B,6BAA6B;IAC7B,8BAA8B;IAC9B,8BAA8B;IAC9B,+BAA+B;IAE/B,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAElB,wBAAwB;IACxB,0BAA0B;IAC1B,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;IACvB,yBAAyB;IACzB,qBAAqB;IACrB,0BAA0B;IAE1B,uBAAuB;IACvB,kBAAkB;IAClB,gBAAgB;IAChB,sBAAsB;IACtB,gBAAgB;IAChB,uBAAuB;IACvB,sBAAsB;IACtB,wBAAwB;IACxB,eAAe;IACf,qBAAqB;IACrB,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,8BAA8B;IAC9B,oBAAoB;IACpB,4BAA4B;IAC5B,2BAA2B;IAE3B,+BAA+B;IAC/B,mBAAmB;IACnB,wBAAwB;IACxB,wBAAwB;IACxB,qBAAqB;IACrB,yBAAyB;IACzB,yBAAyB;IACzB,oBAAoB;IACpB,wBAAwB;IACxB,qBAAqB;IACrB,0BAA0B;IAC1B,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,mBAAmB;IACnB,yBAAyB;IACzB,6BAA6B;IAC7B,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,4BAA4B;IAE5B,6BAA6B;IAC7B,yBAAyB;IACzB,mCAAmC;IACnC,4BAA4B;IAC5B,8BAA8B;IAE9B,+BAA+B;IAC/B,qCAAqC;IACrC,sCAAsC;IACtC,0CAA0C;IAC1C,4CAA4C;IAC5C,yCAAyC;IAEzC,oBAAoB;IACpB,+BAA+B;IAC/B,qBAAqB;IACrB,qBAAqB;IACrB,sCAAsC;IACtC,2BAA2B;IAC3B,6BAA6B;IAC7B,4BAA4B;IAC5B,4BAA4B;IAC5B,uCAAuC;IACvC,8BAA8B;IAC9B,sCAAsC;IACtC,gCAAgC;IAChC,6BAA6B;IAC7B,2BAA2B;IAE3B,iCAAiC;IACjC,2CAA2C;IAC3C,iCAAiC;IACjC,yCAAyC;IACzC,sCAAsC;IACtC,iCAAiC;IACjC,iCAAiC;IACjC,4BAA4B;IAC5B,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,oCAAoC;IACpC,0CAA0C;IAC1C,gDAAgD;IAChD,iDAAiD;IACjD,+BAA+B;IAC/B,kCAAkC;IAClC,kCAAkC;IAClC,kCAAkC;IAClC,6CAA6C;IAC7C,wCAAwC;IACxC,2CAA2C;IAE3C,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,gCAAgC;IAChC,sCAAsC;IACtC,4CAA4C;IAC5C,6CAA6C;IAC7C,2BAA2B;IAC3B,0BAA0B;IAC1B,8BAA8B;IAC9B,8BAA8B;IAC9B,8BAA8B;IAC9B,yCAAyC;IACzC,oCAAoC;IACpC,+BAA+B;IAC/B,+BAA+B;IAC/B,gCAAgC;IAChC,iCAAiC;IACjC,uCAAuC;IACvC,0BAA0B;IAC1B,8BAA8B;IAC9B,mCAAmC;IACnC,4BAA4B;IAE5B,mBAAmB;IACnB,mBAAmB;IACnB,8BAA8B;IAC9B,0BAA0B;IAC1B,gCAAgC;IAChC,8BAA8B;IAC9B,8BAA8B;IAC9B,yBAAyB;IACzB,wBAAwB;IACxB,+BAA+B;IAC/B,gCAAgC;IAChC,+BAA+B;IAC/B,0CAA0C;IAC1C,qCAAqC;IACrC,gCAAgC;IAChC,mCAAmC;IACnC,4BAA4B;IAC5B,8BAA8B;IAC9B,6BAA6B;IAC7B,gDAAgD;IAEhD,iBAAiB;IACjB,2CAA2C;IAC3C,6BAA6B;IAC7B,qCAAqC;IACrC,sCAAsC;IACtC,sCAAsC;IACtC,gCAAgC;IAChC,2BAA2B;IAC3B,yBAAyB;IACzB,4BAA4B;IAC5B,0CAA0C;IAC1C,iCAAiC;IACjC,gCAAgC;IAChC,gCAAgC;IAChC,sCAAsC;IACtC,+BAA+B;IAC/B,0CAA0C;IAC1C,gCAAgC;IAChC,0CAA0C;IAC1C,iCAAiC;IAEjC,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,iCAAiC;IACjC,gCAAgC;IAChC,iCAAiC;IACjC,iCAAiC;IACjC,mCAAmC;IACnC,kBAAkB;IAClB,wBAAwB;IACxB,kCAAkC;IAClC,kCAAkC;IAClC,wCAAwC;IACxC,8CAA8C;IAC9C,+CAA+C;IAC/C,6BAA6B;IAC7B,gCAAgC;IAChC,gCAAgC;IAChC,gCAAgC;IAChC,2CAA2C;IAC3C,sCAAsC;IACtC,oCAAoC;IACpC,6BAA6B;IAC7B,2CAA2C;IAC3C,8CAA8C;IAC9C,iCAAiC;IACjC,4CAA4C;IAC5C,+CAA+C;IAC/C,+CAA+C;IAC/C,+CAA+C;IAC/C,0CAA0C;IAC1C,kCAAkC;IAClC,sCAAsC;IACtC,sCAAsC;IACtC,sCAAsC;IACtC,gCAAgC;IAChC,+BAA+B;IAC/B,gCAAgC;IAChC,2BAA2B;IAC3B,sCAAsC;IACtC,sCAAsC;IACtC,gCAAgC;IAChC,gCAAgC;IAChC,gCAAgC;IAChC,2CAA2C;IAC3C,sCAAsC;IACtC,qCAAqC;IACrC,+BAA+B;IAC/B,uCAAuC;IAEvC,2BAA2B;IAC3B,8BAA8B;IAC9B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,4CAA4C;IAC5C,kDAAkD;IAClD,mDAAmD;IACnD,sCAAsC;IACtC,sCAAsC;IACtC,kCAAkC;IAClC,wCAAwC;IACxC,8CAA8C;IAC9C,+CAA+C;IAC/C,8CAA8C;IAC9C,iCAAiC;IACjC,mCAAmC;IACnC,gCAAgC;IAChC,sCAAsC;IACtC,uCAAuC;IACvC,wCAAwC;IACxC,wCAAwC;IACxC,wCAAwC;IACxC,wCAAwC;IACxC,qCAAqC;IACrC,sCAAsC;IACtC,mCAAmC;IACnC,8CAA8C;IAC9C,0CAA0C;IAC1C,kCAAkC;IAClC,6CAA6C;IAC7C,yCAAyC;IACzC,mCAAmC;IACnC,iCAAiC;IACjC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,+CAA+C;IAC/C,2CAA2C;IAC3C,0CAA0C;IAE1C,sBAAsB;IACtB,2BAA2B;IAC3B,sBAAsB;IACtB,sBAAsB;IACtB,mCAAmC;IACnC,+BAA+B;IAC/B,8BAA8B;IAC9B,4BAA4B;IAC5B,8BAA8B;IAC9B,8BAA8B;IAC9B,uCAAuC;IACvC,uCAAuC;IACvC,uCAAuC;IACvC,gCAAgC;IAChC,+BAA+B;IAC/B,qCAAqC;IACrC,2BAA2B;IAC3B,4CAA4C;IAC5C,8CAA8C;IAC9C,kCAAkC;IAClC,uCAAuC;IACvC,0BAA0B;IAE1B,kCAAkC;IAClC,kCAAkC;IAClC,kCAAkC;IAClC,yBAAyB;IACzB,6CAA6C;IAC7C,+BAA+B;IAC/B,8CAA8C;IAC9C,gCAAgC;IAChC,2BAA2B;IAC3B,gCAAgC;IAChC,gDAAgD;IAChD,mDAAmD;IACnD,iDAAiD;IACjD,6CAA6C;IAC7C,oDAAoD;IACpD,uCAAuC;IACvC,uCAAuC;IACvC,uCAAuC;IACvC,iDAAiD;IACjD,6CAA6C;IAC7C,iCAAiC;IACjC,kDAAkD;IAClD,8CAA8C;IAC9C,uCAAuC;IAEvC,8BAA8B;IAC9B,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,+BAA+B;IAC/B,gCAAgC;IAEhC,+BAA+B;IAC/B,gCAAgC;IAChC,qCAAqC;IACrC,qCAAqC;IACrC,6CAA6C;IAC7C,wCAAwC;IACxC,oCAAoC;IACpC,6BAA6B;IAC7B,mCAAmC;IACnC,yCAAyC;IACzC,oCAAoC;IACpC,0CAA0C;IAC1C,8CAA8C;IAC9C,uCAAuC;IACvC,8DAA8D;IAC9D,8CAA8C;IAC9C,uCAAuC;IAEvC,2BAA2B;IAC3B,6BAA6B;IAC7B,iCAAiC;IACjC,sBAAsB;IAEtB,yBAAyB;IACzB,+BAA+B;IAC/B,gCAAgC;IAChC,+BAA+B;IAC/B,2BAA2B;IAE3B,wBAAwB;IACxB,wBAAwB;IACxB,mCAAmC;IACnC,8BAA8B;IAC9B,4CAA4C;IAC5C,6BAA6B;IAC7B,8BAA8B;IAE9B,gCAAgC;IAChC,uCAAuC;IACvC,yCAAyC;IACzC,yCAAyC;IAEzC,qBAAqB;IACrB,gCAAgC;IAChC,iCAAiC;IACjC,iCAAiC;IACjC,iCAAiC;IACjC,4BAA4B;IAC5B,kCAAkC;IAClC,+BAA+B;IAC/B,sCAAsC;IACtC,+BAA+B;IAC/B,sCAAsC;IACtC,+BAA+B;IAC/B,qCAAqC;IACrC,qCAAqC;IACrC,qCAAqC;IACrC,0CAA0C;IAC1C,2CAA2C;IAC3C,gCAAgC;IAChC,iDAAiD;IACjD,uDAAuD;IAEvD,eAAe;IACf,eAAe;IACf,0BAA0B;IAC1B,gCAAgC;IAChC,sCAAsC;IACtC,uCAAuC;IACvC,qBAAqB;IACrB,oBAAoB;IACpB,2BAA2B;IAE3B,qBAAqB;IACrB,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,4BAA4B;IAC5B,6BAA6B;IAC7B,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,yBAAyB;IACzB,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAEhC,wBAAwB;IACxB,8BAA8B;IAC9B,8BAA8B;IAC9B,wBAAwB;IACxB,6BAA6B;IAC7B,kCAAkC;IAClC,oCAAoC;IACpC,sBAAsB;IACtB,gCAAgC;IAEhC,qBAAqB;IACrB,gCAAgC;IAChC,gCAAgC;IAChC,gCAAgC;IAChC,6BAA6B;IAC7B,gBAAgB;IAChB,gBAAgB;IAChB,2BAA2B;IAC3B,iCAAiC;IACjC,uCAAuC;IACvC,wCAAwC;IACxC,uBAAuB;IACvB,6BAA6B;IAC7B,mCAAmC;IACnC,oCAAoC;IACpC,0BAA0B;IAC1B,2BAA2B;IAC3B,4BAA4B;IAC5B,kCAAkC;IAClC,mCAAmC;IAEnC,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,4BAA4B;IAC5B,wBAAwB;IACxB,8BAA8B;IAC9B,oCAAoC;IACpC,qCAAqC;IACrC,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,iCAAiC;IACjC,kCAAkC;IAClC,uBAAuB;IACvB,4BAA4B;IAC5B,kCAAkC;IAClC,sBAAsB;IACtB,sBAAsB;IACtB,iCAAiC;IACjC,8BAA8B;IAC9B,yCAAyC;IACzC,qCAAqC;IACrC,0CAA0C;IAC1C,qBAAqB;IACrB,0BAA0B;IAC1B,gCAAgC;IAChC,gCAAgC;IAChC,sBAAsB;IAEtB,oBAAoB;IAEpB,kBAAkB;IAClB,2BAA2B;IAC3B,yBAAyB;IACzB,+BAA+B;IAC/B,gCAAgC;IAEhC,iCAAiC;IACjC,sBAAsB;IACtB,wBAAwB;IAExB,2BAA2B;IAC3B,kCAAkC;IAClC,iCAAiC;IACjC,kCAAkC;IAClC,iCAAiC;IAEjC,4BAA4B;IAC5B,2BAA2B;IAC3B,uBAAuB;IACvB,6BAA6B;IAC7B,+BAA+B;IAC/B,+BAA+B;IAC/B,uCAAuC;IACvC,+BAA+B;IAE/B,yBAAyB;IACzB,iCAAiC;IACjC,gCAAgC;IAChC,+BAA+B;CACvB;AAMV,SAAS,YAAY,CAAC,OAAe,EAAA;AACnC,IAAA,OAAO;AACJ,SAAA,OAAO,CAAC,WAAW,EAAE,EAAE;SACvB,KAAK,CAAC,GAAG;AACT,SAAA,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KACX,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAE9D,IAAI,CAAC,EAAE,CAAC;AACb;AAGA,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACxC,YAAY,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CACjC;MA0Dd,KAAK,GAAyB,CAAC,EAC1C,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,SAAS,EACT,MAAM,GAAG,KAAK,EACd,GAAG,SAAS,EACb,KAAI;IAEH,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAK;QACjD,MAAM,QAAQ,GAAuC,EAAE;QACvD,MAAM,aAAa,GAA4B,EAAE;AAEjD,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACpD,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;AAC9D,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAe;;iBAC1B;AACL,gBAAA,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK;;;QAI9B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE;AAC/D,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAGf,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;AAGhE,IAAA,MAAM,UAAU,GAAc,OAAO,CAAC,MAAK;AACzC,QAAA,MAAM,IAAI,GAAc,EAAE,GAAG,SAAS,EAAE;AACxC,QAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AAChE,YAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;gBACzC,IAAI,CAAC,MAAqB,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAW;;;AAGnE,QAAA,OAAO,IAAI;AACb,KAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAG9B,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,MAAM,EAAE;YACX;;AAGF,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,YAAY,CAAC,QAAQ,CAAC,GAAkB,CAAC,IAAI,KAAK,CACrE;AAED,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B;;QAIF,MAAM,OAAO,GAAG,yBAAyB;QACzC,IAAI,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAqB;QAEvE,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC9C,YAAA,YAAY,CAAC,EAAE,GAAG,OAAO;AACzB,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;;QAGzC,MAAM,QAAQ,GAAG;AACd,aAAA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAG,EAAA,GAAG,CAAK,EAAA,EAAA,KAAK,GAAG;aACzC,IAAI,CAAC,GAAG,CAAC;AACZ,QAAA,YAAY,CAAC,WAAW,GAAG,CAAW,QAAA,EAAA,QAAQ,IAAI;AAGlD,QAAA,OAAO,MAAK;YACV,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;YAChD,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,MAAM,EAAE;;AAEpB,SAAC;AACH,KAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAGxB,IAAA,MAAM,KAAK,GAAkB,OAAO,CAAC,MAAK;QACxC,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,EAAE;;QAGX,MAAM,QAAQ,GAAkB,EAAE;AAClC,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACrD,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAkB,CAAC,IAAI,KAAK,EAAE;AACrD,gBAAA,QAAmC,CAAC,GAAG,CAAC,GAAG,KAAK;;;AAGrD,QAAA,OAAO,QAAQ;AACjB,KAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAGxB,IAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAK;QACrC,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,EAAE;;AAEX,QAAA,OAAO,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC;KACjD,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAE3C,IAAA,OAAO,MAAM,IACXA,GAAA,CAAAI,QAAA,EAAA,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAI,KAEfJ,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,iBAAiB,IAAI,SAAS,EAAE,KAAK,EAAE,KAAK,EAAA,GAAM,IAAI,EAAA,QAAA,EACnE,QAAQ,EAAA,CACL,CACP;AACH;;ACxqBO,MAAM,SAAS,GAA6B,CAAC,EAClD,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAGF,IAAA,MAAM,mBAAmB,GAA0B;QACjD,QAAQ;QACR,SAAS;QACT,YAAY;KACb;AACD,IAAA,IAAI,eAAmC;IACvC,IAAI,UAAU,EAAE;QACd,IAAI,KAAK,IAAI,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACrD,YAAA,eAAe,GAAG,CAAA,OAAA,EAAU,UAAU,CAAA,CAAE;;aACnC,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,eAAe,GAAG,CAAA,GAAA,EAAM,UAAU,CAAA,CAAE;;;AAIxC,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC;AACpD,IAAA,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,EAAE,EAAE;AACnD,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,WAAW,EAAE,MAAM;AACpB,KAAA,CAAC;IACF,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,eAAe,IAAI,EAAE,CAAC;AAE5E,IAAA,MAAM,gBAAgB,GAAG,UAAU,CACjC,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,CACnB;IAED,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,gBAAgB,EAAM,GAAA,IAAI,EACvC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;;ACnEa,MAAA,MAAM,GAA0B,CAAC,EAC5C,EAAE,GAAG,QAAQ,EACb,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IACF,MAAM,GAAG,GAAG,EAAE;AACd,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;IACjD,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAC1E,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAE,aAAa,EAAA,GAAM,IAAI,EAAA,QAAA,EACpC,QAAQ,EAAA,CACL;AAEV;;MCba,IAAI,GAIb,CAAC,EACH,SAAS,EACT,KAAK,EACL,IAAI,EACJ,OAAO,EACP,oBAAoB,EACpB,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE;AAC9C,QAAA,CAAC,CAAM,GAAA,EAAA,KAAK,CAAE,CAAA,GAAG,KAAK;QACtB,CAAC,CAAA,GAAA,EAAM,IAAI,CAAE,CAAA,GAAG,IAAI,IAAI,IAAI,KAAK,wBAAwB;AACzD,QAAA,2BAA2B,EACzB,oBAAoB,IAAI,IAAI,KAAK,wBAAwB;AAC5D,KAAA,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAExE,QACEA,GAAS,CAAA,SAAA,EAAA,EAAA,SAAS,EAAE,WAAW,EAAM,GAAA,IAAI,EACtC,QAAA,EAAA,QAAQ,EACD,CAAA;AAEd;MAwBa,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC;IACpD,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAC5E,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,eAAe,EAAM,GAAA,IAAI,EACtC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;MAwBa,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC;IACpD,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAC5E,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,eAAe,EAAM,GAAA,IAAI,EACtC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;MAwBa,QAAQ,GAA4B,CAAC,EAChD,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC;IACpD,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAC5E,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,eAAe,EAAM,GAAA,IAAI,EACtC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AAGA,IAAI,CAAC,IAAI,GAAG,QAAQ;AACpB,IAAI,CAAC,IAAI,GAAG,QAAQ;AACpB,IAAI,CAAC,IAAI,GAAG,QAAQ;;MClLP,KAAK,GAId,CAAC,EACH,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE;AAC/C,QAAA,WAAW,EAAE,QAAQ;AACtB,KAAA,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IACzE,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,YAAY,EAAM,GAAA,IAAI,EACnC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;MAwBa,SAAS,GAA6B,CAAC,EAClD,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC;IACrD,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;IAC7E,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,gBAAgB,EAAM,GAAA,IAAI,EACvC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;MAwBa,UAAU,GAA8B,CAAC,EACpD,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,aAAa,CAAC;IACtD,MAAM,iBAAiB,GAAG,UAAU,CAClC,SAAS,EACT,kBAAkB,EAClB,SAAS,CACV;IACD,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,iBAAiB,EAAM,GAAA,IAAI,EACxC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AAoCO,MAAM,SAAS,GAA6B,CAAC,EAClD,EAAE,GAAG,KAAK,EACV,eAAe,EACf,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IACF,MAAM,GAAG,GAAG,EAAE;AAEd,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,EAAE;AACpD,QAAA,mBAAmB,EAAE,eAAe;AACrC,KAAA,CAAC;IACF,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAG7E,IAAA,IAAI,GAAG,KAAK,GAAG,EAAE;QACf,QACEA,WACE,SAAS,EAAE,gBAAgB,EAC3B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EAAA,GACJ,IAAI,EAEP,QAAA,EAAA,QAAQ,EACP,CAAA;;AAIR,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAE,gBAAgB,EAAA,GAAM,IAAI,EAAA,QAAA,EACvC,QAAQ,EAAA,CACL;AAEV;AAEA,KAAK,CAAC,IAAI,GAAG,SAAS;AACtB,KAAK,CAAC,KAAK,GAAG,UAAU;AACxB,KAAK,CAAC,IAAI,GAAG,SAAS;;AC5MT,MAAA,KAAK,GAAyB,CAAC,EAC1C,EAAE,GAAG,SAAS,EACd,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IACF,MAAM,GAAG,GAAG,EAAE;AACd,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC;IAChD,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AACzE,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAE,YAAY,EAAA,GAAM,IAAI,EAAA,QAAA,EACnC,QAAQ,EAAA,CACL;AAEV;AA0Ba,MAAA,SAAS,GAA6B,CAAC,EAClD,EAAE,GAAG,QAAQ,EACb,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;IACF,MAAM,GAAG,GAAG,EAAE;AACd,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC;IACrD,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAC7E,IAAA,QACEA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAE,gBAAgB,EAAA,GAAM,IAAI,EAAA,QAAA,EACvC,QAAQ,EAAA,CACL;AAEV;MAwBa,YAAY,GAAgC,CAAC,EACxD,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC;IACxD,MAAM,mBAAmB,GAAG,UAAU,CACpC,SAAS,EACT,kBAAkB,EAClB,SAAS,CACV;IACD,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,mBAAmB,EAAM,GAAA,IAAI,EAC1C,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;MAwBa,UAAU,GAA8B,CAAC,EACpD,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,aAAa,CAAC;IACtD,MAAM,iBAAiB,GAAG,UAAU,CAClC,SAAS,EACT,kBAAkB,EAClB,SAAS,CACV;IACD,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,iBAAiB,EAAM,GAAA,IAAI,EACxC,QAAA,EAAA,QAAQ,EACL,CAAA;AAEV;AAQA,MAAM,sBAAsB,GAAG,KAAuB;AACtD,sBAAsB,CAAC,IAAI,GAAG,SAAS;AACvC,sBAAsB,CAAC,OAAO,GAAG,YAAY;AAC7C,sBAAsB,CAAC,KAAK,GAAG,UAAU;;MC5K5B,OAAO,GAA2B,CAAC,EAC9C,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC;AACnD,QAAA,KAAK,EAAE,SAAS,KAAA,IAAA,IAAT,SAAS,KAAT,MAAA,GAAA,SAAS,GAAI,KAAK;AACzB,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,GAAG,KAAK;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC;AAClD,IAAA,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,EAAE,EAAE;AACjD,QAAA,CAAC,CAAM,GAAA,EAAA,IAAI,CAAE,CAAA,GAAG,IAAI;AACrB,KAAA,CAAC;AACF,IAAA,MAAM,cAAc,GAAG,UAAU,CAC/B,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,kBAAkB,CACnB;IAED,QACEA,GAAS,CAAA,SAAA,EAAA,EAAA,SAAS,EAAE,cAAc,EAAM,GAAA,IAAI,EACzC,QAAA,EAAA,QAAQ,EACD,CAAA;AAEd;;;;"}
|