@accelint/design-system 0.11.1 → 0.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/components/aria/index.d.ts +4 -4
  2. package/dist/components/aria/index.js.map +1 -1
  3. package/dist/components/button/index.d.ts +3 -3
  4. package/dist/components/button/index.js +6 -1
  5. package/dist/components/button/index.js.map +1 -1
  6. package/dist/components/date-field/index.js.map +1 -1
  7. package/dist/components/date-input/index.js.map +1 -1
  8. package/dist/components/dialog/index.d.ts +1 -1
  9. package/dist/components/dialog/index.js.map +1 -1
  10. package/dist/components/drawer/index.js.map +1 -1
  11. package/dist/components/element/index.js.map +1 -1
  12. package/dist/components/group/index.js.map +1 -1
  13. package/dist/components/icon/index.d.ts +1 -1
  14. package/dist/components/input/index.js.map +1 -1
  15. package/dist/components/menu/index.js.map +1 -1
  16. package/dist/components/merge-provider/index.js.map +1 -1
  17. package/dist/components/options/index.js.map +1 -1
  18. package/dist/components/picker/index.js.map +1 -1
  19. package/dist/components/query-builder/group.js.map +1 -1
  20. package/dist/components/query-builder/index.js.map +1 -1
  21. package/dist/components/query-builder/rule.js.map +1 -1
  22. package/dist/components/query-builder/utils.js.map +1 -1
  23. package/dist/components/query-builder/value-editor.js.map +1 -1
  24. package/dist/components/query-builder/value-selector.js +3 -1
  25. package/dist/components/query-builder/value-selector.js.map +1 -1
  26. package/dist/components/slider/index.js.map +1 -1
  27. package/dist/components/switch/index.js.map +1 -1
  28. package/dist/components/text-field/index.d.ts +80 -8
  29. package/dist/components/textarea/index.js.map +1 -1
  30. package/dist/components/time-field/index.js.map +1 -1
  31. package/dist/components/tree/index.js.map +1 -1
  32. package/dist/components/tree/utils.js.map +1 -1
  33. package/dist/hooks/use-collection-render/index.js.map +1 -1
  34. package/dist/hooks/use-slot/index.js.map +1 -1
  35. package/dist/hooks/use-theme/index.js.map +1 -1
  36. package/dist/hooks/use-tree/index.js.map +1 -1
  37. package/dist/hooks/use-tree/utils.js.map +1 -1
  38. package/dist/hooks/use-update-effect/index.js.map +1 -1
  39. package/dist/ladle/actions.js.map +1 -1
  40. package/dist/test/setup.js +7 -7
  41. package/dist/test/setup.js.map +1 -1
  42. package/dist/utils/css/index.js.map +1 -1
  43. package/dist/utils/props/index.js.map +1 -1
  44. package/package.json +13 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/menu/index.tsx"],"names":["Menu","MenuList","RACMenu","MenuItem","RACMenuItem"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type CollectionRenderer,\n CollectionRendererContext,\n type ContextValue,\n DEFAULT_SLOT,\n MenuStateContext,\n Popover,\n type PopoverRenderProps,\n Provider,\n Menu as RACMenu,\n MenuItem as RACMenuItem,\n type MenuItemRenderProps as RACMenuItemRenderProps,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies, headings } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext } from '../icon';\nimport type { IconProps } from '../icon/types';\nimport { menuClassNames, menuItemStateVars, menuStateVars } from './menu.css';\nimport type {\n MenuItemProps,\n MenuListProps,\n MenuMapping,\n MenuProps,\n} from './types';\n\nconst defaultMapping: MenuMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n header: {\n sm: headings.v4,\n lg: headings.v5,\n },\n label: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n shortcut: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const MenuContext =\n createContext<ContextValue<MenuProps, HTMLElement>>(null);\n\n/**\n * Menu component that supports display and selection of menu items via a trigger (right-click or click)\n * Customization of React Aria's Menu and Menu Item components https://react-spectrum.adobe.com/react-aria/Menu.html\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n menu: { container: theme.className }, // required to consume global theme within Popover\n }),\n [classNamesProp, theme.Menu, theme.className],\n );\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const style = useCallback(\n (renderProps: PopoverRenderProps) => ({\n ...theme.style, // required to consume global styles within Popover\n ...inlineVars(menuStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof MenuListContext,\n ContextValue<MenuListProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[MenuListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.menu?.menu}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.menu?.menu, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.menu?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const MenuListContext =\n createContext<ContextValue<MenuListProps<unknown>, HTMLDivElement>>(null);\n\ntype MenuListContexts = [\n [\n typeof MenuItemContext,\n ContextValue<MenuItemProps<unknown>, HTMLDivElement>,\n ],\n [typeof AriaSectionContext, ContextValue<SectionProps<object>, HTMLElement>],\n [\n typeof AriaHeaderContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n [typeof AriaSeparatorContext, ContextValue<SeparatorProps, HTMLElement>],\n];\n\nexport const MenuList = forwardRef(function MenuList<T extends object>(\n props: MenuListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuListContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n items,\n mapping: mappingProp,\n selectionMode = 'single',\n size = defaultSize,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, theme.Menu, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Menu, classNamesProp, mapping.header, size],\n );\n\n const values = useMemo<MenuListContexts>(\n () => [\n [MenuItemContext, { classNames, mapping, size }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, mapping, size],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <AriaSection className={classNames?.list?.list}>\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </AriaSection>\n );\n }, [childrenProp, classNames?.list?.list, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n // @ts-expect-error ts unnecessarily guarding against null state\n () => createCollectionRenderer(MenuStateContext, values),\n [values],\n );\n\n return (\n <CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <RACMenu<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </RACMenu>\n </Provider>\n </CollectionRendererContext.Provider>\n );\n});\n\nexport const MenuItemContext =\n createContext<ContextValue<MenuItemProps<unknown>, HTMLDivElement>>(null);\n\nexport const MenuItem = forwardRef(function MenuItem<T extends object>(\n props: MenuItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuItemContext);\n props = useDefaultProps(props, 'MenuItem');\n\n const {\n id,\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Menu, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: RACMenuItemRenderProps) =>\n inlineVars(menuItemStateVars, { ...renderProps, size, hasDescription }),\n [hasDescription, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [\n typeof AriaKeyboardContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n ]\n >(\n () => [\n [\n AriaTextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [\n IconContext,\n {\n slots: {\n [DEFAULT_SLOT]: { classNames: classNames?.item?.icon },\n more: { classNames: classNames?.item?.more },\n },\n },\n ],\n [AriaKeyboardContext, { className: classNames?.item?.shortcut }],\n ],\n [\n classNames?.item?.label,\n descriptionRef,\n classNames?.item?.description,\n classNames?.item?.icon,\n classNames?.item?.more,\n classNames?.item?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: RACMenuItemRenderProps) => {\n const content = callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n });\n\n return (\n <Provider values={values}>\n <div className={classNames?.item?.item}>\n {typeof content === 'string' ? (\n <AriaText slot='label'>{content}</AriaText>\n ) : (\n content\n )}\n </div>\n </Provider>\n );\n },\n [childrenProp, classNames?.item?.item, size, values],\n );\n\n return (\n <RACMenuItem<T>\n {...rest}\n id={id ?? textValue}\n ref={ref as ForwardedRef<T>}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </RACMenuItem>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/menu/index.tsx"],"names":["Menu","MenuList","RACMenu","MenuItem","RACMenuItem"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type CollectionRenderer,\n CollectionRendererContext,\n type ContextValue,\n DEFAULT_SLOT,\n MenuStateContext,\n Popover,\n type PopoverRenderProps,\n Provider,\n Menu as RACMenu,\n MenuItem as RACMenuItem,\n type MenuItemRenderProps as RACMenuItemRenderProps,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies, headings } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext } from '../icon';\nimport type { IconProps } from '../icon/types';\nimport { menuClassNames, menuItemStateVars, menuStateVars } from './menu.css';\nimport type {\n MenuItemProps,\n MenuListProps,\n MenuMapping,\n MenuProps,\n} from './types';\n\nconst defaultMapping: MenuMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n header: {\n sm: headings.v4,\n lg: headings.v5,\n },\n label: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n shortcut: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const MenuContext =\n createContext<ContextValue<MenuProps, HTMLElement>>(null);\n\n/**\n * Menu component that supports display and selection of menu items via a trigger (right-click or click)\n * Customization of React Aria's Menu and Menu Item components https://react-spectrum.adobe.com/react-aria/Menu.html\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n menu: { container: theme.className }, // required to consume global theme within Popover\n }),\n [classNamesProp, theme.Menu, theme.className],\n );\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const style = useCallback(\n (renderProps: PopoverRenderProps) => ({\n ...theme.style, // required to consume global styles within Popover\n ...inlineVars(menuStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof MenuListContext,\n ContextValue<MenuListProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[MenuListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.menu?.menu}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.menu?.menu, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.menu?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const MenuListContext =\n createContext<ContextValue<MenuListProps<unknown>, HTMLDivElement>>(null);\n\ntype MenuListContexts = [\n [\n typeof MenuItemContext,\n ContextValue<MenuItemProps<unknown>, HTMLDivElement>,\n ],\n [typeof AriaSectionContext, ContextValue<SectionProps<object>, HTMLElement>],\n [\n typeof AriaHeaderContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n [typeof AriaSeparatorContext, ContextValue<SeparatorProps, HTMLElement>],\n];\n\nexport const MenuList = forwardRef(function MenuList<T extends object>(\n props: MenuListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuListContext);\n props = useDefaultProps(props, 'Menu');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n items,\n mapping: mappingProp,\n selectionMode = 'single',\n size = defaultSize,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, theme.Menu, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Menu, classNamesProp, mapping.header, size],\n );\n\n const values = useMemo<MenuListContexts>(\n () => [\n [MenuItemContext, { classNames, mapping, size }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, mapping, size],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <AriaSection className={classNames?.list?.list}>\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </AriaSection>\n );\n }, [childrenProp, classNames?.list?.list, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n // @ts-expect-error ts unnecessarily guarding against null state\n () => createCollectionRenderer(MenuStateContext, values),\n [values],\n );\n\n return (\n <CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <RACMenu<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </RACMenu>\n </Provider>\n </CollectionRendererContext.Provider>\n );\n});\n\nexport const MenuItemContext =\n createContext<ContextValue<MenuItemProps<unknown>, HTMLDivElement>>(null);\n\nexport const MenuItem = forwardRef(function MenuItem<T extends object>(\n props: MenuItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, MenuItemContext);\n props = useDefaultProps(props, 'MenuItem');\n\n const {\n id,\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(menuClassNames, classNamesProp, theme.Menu, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Menu, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: RACMenuItemRenderProps) =>\n inlineVars(menuItemStateVars, { ...renderProps, size, hasDescription }),\n [hasDescription, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [\n typeof AriaKeyboardContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n ]\n >(\n () => [\n [\n AriaTextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [\n IconContext,\n {\n slots: {\n [DEFAULT_SLOT]: { classNames: classNames?.item?.icon },\n more: { classNames: classNames?.item?.more },\n },\n },\n ],\n [AriaKeyboardContext, { className: classNames?.item?.shortcut }],\n ],\n [\n classNames?.item?.label,\n descriptionRef,\n classNames?.item?.description,\n classNames?.item?.icon,\n classNames?.item?.more,\n classNames?.item?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: RACMenuItemRenderProps) => {\n const content = callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n });\n\n return (\n <Provider values={values}>\n <div className={classNames?.item?.item}>\n {typeof content === 'string' ? (\n <AriaText slot='label'>{content}</AriaText>\n ) : (\n content\n )}\n </div>\n </Provider>\n );\n },\n [childrenProp, classNames?.item?.item, size, values],\n );\n\n return (\n <RACMenuItem<T>\n {...rest}\n id={id ?? textValue}\n ref={ref}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </RACMenuItem>\n );\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/merge-provider/index.tsx"],"names":[],"mappings":";;;;AAgBA,SAAS,KAAA,CAAS,OAAA,EAAqB,IAAA,EAAS,QAAA,EAAqB;AACnE,EAAA,OAAO,SAAS,SAAS,IAAA,EAAS;AAChC,IAAA,IAAI,MAAA,GAAS,IAAA;AAEb,IAAA,IACE,IAAA,IAAQ,QACR,IAAA,IAAQ,IAAA,IACR,OAAO,IAAA,KAAS,QAAA,IAChB,OAAO,IAAA,KAAS,QAAA,EAChB;AACA,MAAA,MAAM,SAAA,GACJ,OAAA,IAAW,IAAA,IAAS,IAAA,CAAK,KAAA;AAE3B,MAAA,MAAM,SAAA,GACJ,OAAA,IAAW,IAAA,IAAS,IAAA,CAAK,KAAA;AAE3B,MAAA,IAAI,aAAa,SAAA,EAAW;AAC1B,QAAA,MAAA,GAAS;AAAA,UACP,GAAG,IAAA;AAAA,UACH,GAAG,IAAA;AAAA,UACH,KAAA,EAAO;AAAA,YACL,GAAG,SAAA;AAAA,YACH,GAAG,SAAA;AAAA,YACH,GAAG,QAAQ,OAAA,CAAQ,SAAS,EAAE,MAAA,CAE5B,CAAC,KAAK,GAAA,KAAQ;AACd,cAAA,MAAM,KAAA,GAAQ,UAAU,GAAG,CAAA;AAE3B,cAAA,IAAI,MAAA,CAAO,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA,EAAG;AACjC,gBAAA,GAAA,CAAI,GAAG,CAAA,GAAI,UAAA,CAAW,SAAA,CAAU,GAAG,GAAG,KAAK,CAAA;AAAA;AAG7C,cAAA,OAAO,GAAA;AAAA,aACT,EAAG,EAAE;AAAA;AACP,SACF;AAAA,OACF,MAAA,IAAW,EAAE,SAAA,IAAa,SAAA,CAAA,EAAY;AACpC,QAAA,MAAA,GAAS,UAAA,CAAW,MAAgB,IAAc,CAAA;AAAA;AACpD;AAGF,IAAA,2BAAQ,OAAA,CAAQ,QAAA,EAAR,EAAiB,KAAA,EAAO,QAAS,QAAA,EAAS,CAAA;AAAA,GACpD;AACF;AAcO,SAAS,aAAA,CAA+C;AAAA,EAC7D,MAAA;AAAA,EACA;AACF,CAAA,EAAwD;AACtD,EAAA,KAAA,MAAW,CAAC,OAAA,EAAS,IAAI,CAAA,IAAK,MAAA,EAAQ;AACpC,IAAA,QAAA,mBACE,GAAA,CAAC,QAAQ,QAAA,EAAR,EACE,gBAAM,OAAA,EAAiC,IAAA,EAAM,QAAQ,CAAA,EACxD,CAAA;AAAA;AAIJ,EAAA,uCAAU,QAAA,EAAS,CAAA;AACrB","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Context, ReactNode } from 'react';\nimport { mergeProps } from '../../utils/props';\nimport type { MergeProviderProps } from './types';\n\nfunction merge<T>(context: Context<T>, next: T, children: ReactNode) {\n return function Consumer(prev: T) {\n let merged = next;\n\n if (\n prev != null &&\n next != null &&\n typeof prev === 'object' &&\n typeof next === 'object'\n ) {\n const prevSlots =\n 'slots' in prev && (prev.slots as Record<string | symbol, object>);\n\n const nextSlots =\n 'slots' in next && (next.slots as Record<string | symbol, object>);\n\n if (prevSlots && nextSlots) {\n merged = {\n ...prev,\n ...next,\n slots: {\n ...prevSlots,\n ...nextSlots,\n ...Reflect.ownKeys(nextSlots).reduce<\n Record<string | symbol, object>\n >((acc, key) => {\n const value = nextSlots[key];\n\n if (Object.hasOwn(prevSlots, key)) {\n acc[key] = mergeProps(prevSlots[key], value);\n }\n\n return acc;\n }, {}),\n },\n } as T;\n } else if (!(prevSlots || nextSlots)) {\n merged = mergeProps(prev as object, next as object) as T;\n }\n }\n\n return <context.Provider value={merged}>{children}</context.Provider>;\n };\n}\n\n/**\n * Merges provided contexts with parent contexts, if available and of the same structure\n * If parent context doesn't exist or differs in structure (slotted vs non-slotted) from\n * the context being provided, the provided context will override the parent context\n *\n * This is typically used in conjunction with React Aria Component's contexts, where a\n * RAC may provide a slotted context (ex: ButtonContext, with a slot of \"remove\") where\n * that slot has a number of attributes and event listeners, but we want to merge in our\n * own to supplement things for stylistic or additional functionality purposes\n *\n * See tests for examples\n */\nexport function MergeProvider<A, B, C, D, E, F, G, H, I, J, K>({\n values,\n children,\n}: MergeProviderProps<A, B, C, D, E, F, G, H, I, J, K>) {\n for (const [context, next] of values) {\n children = (\n <context.Consumer>\n {merge(context as Context<typeof next>, next, children)}\n </context.Consumer>\n );\n }\n\n return <>{children}</>;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/merge-provider/index.tsx"],"names":[],"mappings":";;;;AAgBA,SAAS,KAAA,CAAS,OAAA,EAAqB,IAAA,EAAS,QAAA,EAAqB;AACnE,EAAA,OAAO,SAAS,SAAS,IAAA,EAAS;AAChC,IAAA,IAAI,MAAA,GAAS,IAAA;AAEb,IAAA,IACE,IAAA,IAAQ,QACR,IAAA,IAAQ,IAAA,IACR,OAAO,IAAA,KAAS,QAAA,IAChB,OAAO,IAAA,KAAS,QAAA,EAChB;AACA,MAAA,MAAM,SAAA,GACJ,OAAA,IAAW,IAAA,IAAS,IAAA,CAAK,KAAA;AAE3B,MAAA,MAAM,SAAA,GACJ,OAAA,IAAW,IAAA,IAAS,IAAA,CAAK,KAAA;AAE3B,MAAA,IAAI,aAAa,SAAA,EAAW;AAC1B,QAAA,MAAA,GAAS;AAAA,UACP,GAAG,IAAA;AAAA,UACH,GAAG,IAAA;AAAA,UACH,KAAA,EAAO;AAAA,YACL,GAAG,SAAA;AAAA,YACH,GAAG,SAAA;AAAA,YACH,GAAG,QAAQ,OAAA,CAAQ,SAAS,EAAE,MAAA,CAE5B,CAAC,KAAK,GAAA,KAAQ;AACd,cAAA,MAAM,KAAA,GAAQ,UAAU,GAAG,CAAA;AAE3B,cAAA,IAAI,MAAA,CAAO,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA,EAAG;AACjC,gBAAA,GAAA,CAAI,GAAG,CAAA,GAAI,UAAA,CAAW,SAAA,CAAU,GAAG,GAAG,KAAK,CAAA;AAAA,cAC7C;AAEA,cAAA,OAAO,GAAA;AAAA,YACT,CAAA,EAAG,EAAE;AAAA;AACP,SACF;AAAA,MACF,CAAA,MAAA,IAAW,EAAE,SAAA,IAAa,SAAA,CAAA,EAAY;AACpC,QAAA,MAAA,GAAS,UAAA,CAAW,MAAgB,IAAc,CAAA;AAAA,MACpD;AAAA,IACF;AAEA,IAAA,2BAAQ,OAAA,CAAQ,QAAA,EAAR,EAAiB,KAAA,EAAO,QAAS,QAAA,EAAS,CAAA;AAAA,EACpD,CAAA;AACF;AAcO,SAAS,aAAA,CAA+C;AAAA,EAC7D,MAAA;AAAA,EACA;AACF,CAAA,EAAwD;AACtD,EAAA,KAAA,MAAW,CAAC,OAAA,EAAS,IAAI,CAAA,IAAK,MAAA,EAAQ;AACpC,IAAA,QAAA,mBACE,GAAA,CAAC,QAAQ,QAAA,EAAR,EACE,gBAAM,OAAA,EAAiC,IAAA,EAAM,QAAQ,CAAA,EACxD,CAAA;AAAA,EAEJ;AAEA,EAAA,uCAAU,QAAA,EAAS,CAAA;AACrB","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Context, ReactNode } from 'react';\nimport { mergeProps } from '../../utils/props';\nimport type { MergeProviderProps } from './types';\n\nfunction merge<T>(context: Context<T>, next: T, children: ReactNode) {\n return function Consumer(prev: T) {\n let merged = next;\n\n if (\n prev != null &&\n next != null &&\n typeof prev === 'object' &&\n typeof next === 'object'\n ) {\n const prevSlots =\n 'slots' in prev && (prev.slots as Record<string | symbol, object>);\n\n const nextSlots =\n 'slots' in next && (next.slots as Record<string | symbol, object>);\n\n if (prevSlots && nextSlots) {\n merged = {\n ...prev,\n ...next,\n slots: {\n ...prevSlots,\n ...nextSlots,\n ...Reflect.ownKeys(nextSlots).reduce<\n Record<string | symbol, object>\n >((acc, key) => {\n const value = nextSlots[key];\n\n if (Object.hasOwn(prevSlots, key)) {\n acc[key] = mergeProps(prevSlots[key], value);\n }\n\n return acc;\n }, {}),\n },\n } as T;\n } else if (!(prevSlots || nextSlots)) {\n merged = mergeProps(prev as object, next as object) as T;\n }\n }\n\n return <context.Provider value={merged}>{children}</context.Provider>;\n };\n}\n\n/**\n * Merges provided contexts with parent contexts, if available and of the same structure\n * If parent context doesn't exist or differs in structure (slotted vs non-slotted) from\n * the context being provided, the provided context will override the parent context\n *\n * This is typically used in conjunction with React Aria Component's contexts, where a\n * RAC may provide a slotted context (ex: ButtonContext, with a slot of \"remove\") where\n * that slot has a number of attributes and event listeners, but we want to merge in our\n * own to supplement things for stylistic or additional functionality purposes\n *\n * See tests for examples\n */\nexport function MergeProvider<A, B, C, D, E, F, G, H, I, J, K>({\n values,\n children,\n}: MergeProviderProps<A, B, C, D, E, F, G, H, I, J, K>) {\n for (const [context, next] of values) {\n children = (\n <context.Consumer>\n {merge(context as Context<typeof next>, next, children)}\n </context.Consumer>\n );\n }\n\n return <>{children}</>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/options/index.tsx"],"names":["Options"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type CollectionRenderer,\n CollectionRendererContext,\n type ContextValue,\n ListBox,\n ListBoxItem,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n ListStateContext,\n Popover,\n type PopoverRenderProps,\n Provider,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies, headings } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext } from '../icon';\nimport type { IconProps } from '../icon/types';\nimport {\n optionsClassNames,\n optionsItemStateVars,\n optionsStateVars,\n} from './options.css';\nimport type {\n OptionsItemProps,\n OptionsListProps,\n OptionsMapping,\n OptionsProps,\n} from './types';\n\nconst defaultMapping: OptionsMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n header: {\n sm: headings.v4,\n lg: headings.v5,\n },\n label: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n shortcut: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const OptionsContext =\n createContext<ContextValue<OptionsProps, HTMLElement>>(null);\n\nexport const Options = forwardRef(function Options(\n props: OptionsProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsContext);\n props = useDefaultProps(props, 'Options');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {\n options: {\n container: theme.className, // required to consume global theme within Popover\n },\n }),\n [theme.className, theme.Options, classNamesProp],\n );\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const style = useCallback(\n ({ ...renderProps }: PopoverRenderProps) => ({\n ...theme.style, // required to consume global styles within Popover\n ...inlineVars(optionsStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof OptionsListContext,\n ContextValue<OptionsListProps<object>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[OptionsListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.options?.options}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.options?.options, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.options?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const OptionsListContext =\n createContext<ContextValue<OptionsListProps<object>, HTMLDivElement>>(null);\n\ntype OptionsListContexts = [\n [\n typeof OptionsItemContext,\n ContextValue<OptionsItemProps<object>, HTMLDivElement>,\n ],\n [typeof AriaSectionContext, ContextValue<SectionProps<object>, HTMLElement>],\n [\n typeof AriaHeaderContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n [typeof AriaSeparatorContext, ContextValue<SeparatorProps, HTMLElement>],\n];\n\nexport const OptionsList = forwardRef(function OptionList<T extends object>(\n props: OptionsListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsListContext);\n props = useDefaultProps(props, 'OptionsList');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n items,\n mapping: mappingProp,\n selectionMode = 'single',\n size = defaultSize,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Options, classNamesProp, mapping, size],\n );\n\n const values = useMemo<OptionsListContexts>(\n () => [\n [OptionsItemContext, { classNames, size, mapping }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, size, mapping],\n );\n\n const style = useCallback(\n (renderProps: ListBoxRenderProps) =>\n inlineVars(optionsItemStateVars, { ...renderProps, size }),\n [size],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <AriaSection className={classNames?.list?.list}>\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </AriaSection>\n );\n }, [classNames?.list?.list, childrenProp, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n // @ts-expect-error ts unnecessarily guarding against null state\n () => createCollectionRenderer(ListStateContext, values),\n [values],\n );\n\n return (\n <CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n </CollectionRendererContext.Provider>\n );\n});\n\nexport const OptionsItemContext =\n createContext<ContextValue<OptionsItemProps<object>, HTMLDivElement>>(null);\n\nexport const OptionsItem = forwardRef(function OptionItem<T extends object>(\n props: OptionsItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsItemContext);\n props = useDefaultProps(props, 'OptionsItem');\n\n const {\n id,\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, classNamesProp, theme.Options, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Options, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(optionsItemStateVars, {\n ...renderProps,\n size,\n hasDescription,\n }),\n [hasDescription, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [\n typeof AriaKeyboardContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n ]\n >(\n () => [\n [\n AriaTextContext,\n {\n slots: {\n label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [IconContext, { classNames: classNames?.item?.icon }],\n [AriaKeyboardContext, { className: classNames?.item?.shortcut }],\n ],\n [\n classNames?.item?.label,\n descriptionRef,\n classNames?.item?.description,\n classNames?.item?.icon,\n classNames?.item?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => {\n const content = callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n });\n\n return (\n <Provider values={values}>\n <div className={classNames?.item?.item}>\n {typeof content === 'string' ? (\n <AriaText slot='label'>{content}</AriaText>\n ) : (\n content\n )}\n </div>\n </Provider>\n );\n },\n [childrenProp, classNames?.item?.item, size, values],\n );\n\n return (\n <ListBoxItem<T>\n {...rest}\n id={id ?? textValue}\n ref={ref as ForwardedRef<T>}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/options/index.tsx"],"names":["Options"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type CollectionRenderer,\n CollectionRendererContext,\n type ContextValue,\n ListBox,\n ListBoxItem,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n ListStateContext,\n Popover,\n type PopoverRenderProps,\n Provider,\n type SectionProps,\n type SeparatorProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useSlot } from '../../hooks/use-slot';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies, headings } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n AriaHeaderContext,\n AriaKeyboardContext,\n AriaSection,\n AriaSectionContext,\n AriaSeparatorContext,\n AriaText,\n AriaTextContext,\n} from '../aria';\nimport { createCollectionRenderer } from '../collection';\nimport { IconContext } from '../icon';\nimport type { IconProps } from '../icon/types';\nimport {\n optionsClassNames,\n optionsItemStateVars,\n optionsStateVars,\n} from './options.css';\nimport type {\n OptionsItemProps,\n OptionsListProps,\n OptionsMapping,\n OptionsProps,\n} from './types';\n\nconst defaultMapping: OptionsMapping = {\n description: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n header: {\n sm: headings.v4,\n lg: headings.v5,\n },\n label: {\n sm: bodies.sm,\n lg: bodies.sm,\n },\n shortcut: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nconst defaultSize = 'lg';\n\nexport const OptionsContext =\n createContext<ContextValue<OptionsProps, HTMLElement>>(null);\n\nexport const Options = forwardRef(function Options(\n props: OptionsProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsContext);\n props = useDefaultProps(props, 'Options');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {\n options: {\n container: theme.className, // required to consume global theme within Popover\n },\n }),\n [theme.className, theme.Options, classNamesProp],\n );\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const style = useCallback(\n ({ ...renderProps }: PopoverRenderProps) => ({\n ...theme.style, // required to consume global styles within Popover\n ...inlineVars(optionsStateVars, {\n ...renderProps,\n size,\n }),\n }),\n [theme.style, size],\n );\n\n const values = useMemo<\n [\n [\n typeof OptionsListContext,\n ContextValue<OptionsListProps<object>, HTMLDivElement>,\n ],\n ]\n >(\n () => [[OptionsListContext, { classNames, mapping, size }]],\n [classNames, mapping, size],\n );\n\n const children = useCallback(\n (renderProps: PopoverRenderProps) => (\n <Provider values={values}>\n <div className={classNames?.options?.options}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n })}\n </div>\n </Provider>\n ),\n [childrenProp, classNames?.options?.options, size, values],\n );\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={classNames?.options?.container}\n style={style}\n >\n {children}\n </Popover>\n );\n});\n\nexport const OptionsListContext =\n createContext<ContextValue<OptionsListProps<object>, HTMLDivElement>>(null);\n\ntype OptionsListContexts = [\n [\n typeof OptionsItemContext,\n ContextValue<OptionsItemProps<object>, HTMLDivElement>,\n ],\n [typeof AriaSectionContext, ContextValue<SectionProps<object>, HTMLElement>],\n [\n typeof AriaHeaderContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n [typeof AriaSeparatorContext, ContextValue<SeparatorProps, HTMLElement>],\n];\n\nexport const OptionsList = forwardRef(function OptionList<T extends object>(\n props: OptionsListProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsListContext);\n props = useDefaultProps(props, 'OptionsList');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n items,\n mapping: mappingProp,\n selectionMode = 'single',\n size = defaultSize,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {\n list: { header: mapping.header[size] },\n }),\n [theme.Options, classNamesProp, mapping, size],\n );\n\n const values = useMemo<OptionsListContexts>(\n () => [\n [OptionsItemContext, { classNames, size, mapping }],\n [AriaSectionContext, { className: classNames?.list?.section }],\n [AriaHeaderContext, { className: classNames?.list?.header }],\n [AriaSeparatorContext, { className: classNames?.list?.separator }],\n ],\n [classNames, size, mapping],\n );\n\n const style = useCallback(\n (renderProps: ListBoxRenderProps) =>\n inlineVars(optionsItemStateVars, { ...renderProps, size }),\n [size],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <AriaSection className={classNames?.list?.list}>\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </AriaSection>\n );\n }, [classNames?.list?.list, childrenProp, items]);\n\n const renderer = useMemo<CollectionRenderer>(\n // @ts-expect-error ts unnecessarily guarding against null state\n () => createCollectionRenderer(ListStateContext, values),\n [values],\n );\n\n return (\n <CollectionRendererContext.Provider value={renderer}>\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n </CollectionRendererContext.Provider>\n );\n});\n\nexport const OptionsItemContext =\n createContext<ContextValue<OptionsItemProps<object>, HTMLDivElement>>(null);\n\nexport const OptionsItem = forwardRef(function OptionItem<T extends object>(\n props: OptionsItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, OptionsItemContext);\n props = useDefaultProps(props, 'OptionsItem');\n\n const {\n id,\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(optionsClassNames, classNamesProp, theme.Options, {\n item: {\n description: mapping.description[size],\n label: mapping.label[size],\n shortcut: mapping.shortcut[size],\n },\n }),\n [theme.Options, classNamesProp, mapping, size],\n );\n\n const [descriptionRef, hasDescription] = useSlot();\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(optionsItemStateVars, {\n ...renderProps,\n size,\n hasDescription,\n }),\n [hasDescription, size],\n );\n\n const values = useMemo<\n [\n [typeof AriaTextContext, ContextValue<TextProps, HTMLElement>],\n [typeof IconContext, ContextValue<IconProps, HTMLDivElement>],\n [\n typeof AriaKeyboardContext,\n ContextValue<HTMLAttributes<HTMLElement>, HTMLElement>,\n ],\n ]\n >(\n () => [\n [\n AriaTextContext,\n {\n slots: {\n label: { className: classNames?.item?.label },\n description: {\n ref: descriptionRef,\n className: classNames?.item?.description,\n },\n },\n },\n ],\n [IconContext, { classNames: classNames?.item?.icon }],\n [AriaKeyboardContext, { className: classNames?.item?.shortcut }],\n ],\n [\n classNames?.item?.label,\n descriptionRef,\n classNames?.item?.description,\n classNames?.item?.icon,\n classNames?.item?.shortcut,\n ],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => {\n const content = callRenderProps(childrenProp, {\n ...renderProps,\n size,\n defaultChildren: null,\n });\n\n return (\n <Provider values={values}>\n <div className={classNames?.item?.item}>\n {typeof content === 'string' ? (\n <AriaText slot='label'>{content}</AriaText>\n ) : (\n content\n )}\n </div>\n </Provider>\n );\n },\n [childrenProp, classNames?.item?.item, size, values],\n );\n\n return (\n <ListBoxItem<T>\n {...rest}\n id={id ?? textValue}\n ref={ref}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/picker/index.tsx"],"names":["Picker","PickerItem"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type ContextValue,\n ListBox,\n ListBoxItem,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n Provider,\n Section,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n pickerClassNames,\n pickerItemStateVars,\n pickerStateVars,\n} from './picker.css';\nimport type { PickerItemProps, PickerProps } from './types';\n\nexport const PickerContext =\n createContext<ContextValue<PickerProps<unknown>, HTMLDivElement>>(null);\n\nexport const PickerItemContext =\n createContext<ContextValue<PickerItemProps<unknown>, HTMLDivElement>>(null);\n\n/**\n * Generic stylable picker that supports the functionality (sans drag and drop) of\n * React Aria's ListBox: https://react-spectrum.adobe.com/react-aria/ListBox.html\n *\n * NOTE: The picker items does not support sections or separators\n */\nexport const Picker = forwardRef(function Picker<T extends object>(\n props: PickerProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerContext);\n\n props = useDefaultProps(props, 'Picker');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n columns,\n items,\n layout = 'stack',\n orientation = 'horizontal',\n selectionMode = 'single',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const values = useMemo<\n [\n [\n typeof PickerItemContext,\n ContextValue<PickerItemProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(() => [[PickerItemContext, { classNames }]], [classNames]);\n\n const style = useCallback(\n ({ state, ...renderProps }: ListBoxRenderProps) =>\n inlineVars(pickerStateVars, {\n ...renderProps,\n columns,\n layout,\n orientation,\n }),\n [columns, layout, orientation],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <Section\n className={classNames?.list?.list}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </Section>\n );\n }, [childrenProp, items, classNames?.list?.list, ariaLabel, ariaLabelledBy]);\n\n return (\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n layout={layout}\n orientation={orientation}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n );\n});\n\nexport const PickerItem = forwardRef(function PickerItem<T extends object>(\n props: PickerItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerItemContext);\n\n const {\n children: childrenProp,\n id,\n classNames: classNamesProp,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(pickerItemStateVars, renderProps),\n [],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => (\n <div className={classNames?.item?.item}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [childrenProp, classNames?.item?.item],\n );\n\n return (\n <ListBoxItem<T>\n {...rest}\n ref={ref as ForwardedRef<T>}\n id={id ?? textValue}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/picker/index.tsx"],"names":["Picker","PickerItem"],"mappings":";;;;;;;;;;;AAyCO,IAAM,aAAA,GACX,cAAkE,IAAI;AAEjE,IAAM,iBAAA,GACX,cAAsE,IAAI;AAQrE,IAAM,MAAA,GAAS,UAAA,CAAW,SAASA,OAAAA,CACxC,OACA,GAAA,EACA;AACA,EAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,KAAA,EAAO,KAAK,aAAa,CAAA;AAExD,EAAA,KAAA,GAAQ,eAAA,CAAgB,OAAO,QAAQ,CAAA;AAEvC,EAAA,MAAM;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,UAAA,EAAY,cAAA;AAAA,IACZ,OAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA,GAAS,OAAA;AAAA,IACT,WAAA,GAAc,YAAA;AAAA,IACd,aAAA,GAAgB,QAAA;AAAA,IAChB,YAAA,EAAc,SAAA;AAAA,IACd,iBAAA,EAAmB,cAAA;AAAA,IACnB,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,EAAA,MAAM,UAAA,GAAa,OAAA;AAAA,IACjB,MAAM,eAAA,CAAgB,gBAAA,EAAkB,KAAA,CAAM,QAAQ,cAAc,CAAA;AAAA,IACpE,CAAC,KAAA,CAAM,MAAA,EAAQ,cAAc;AAAA,GAC/B;AAEA,EAAA,MAAM,MAAA,GAAS,OAAA,CAOb,MAAM,CAAC,CAAC,iBAAA,EAAmB,EAAE,UAAA,EAAY,CAAC,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAE3D,EAAA,MAAM,KAAA,GAAQ,WAAA;AAAA,IACZ,CAAC,EAAE,KAAA,EAAO,GAAG,WAAA,EAAY,KACvB,WAAW,eAAA,EAAiB;AAAA,MAC1B,GAAG,WAAA;AAAA,MACH,OAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,IACH,CAAC,OAAA,EAAS,MAAA,EAAQ,WAAW;AAAA,GAC/B;AAEA,EAAA,MAAM,QAAA,GAAW,QAAQ,MAAM;AAC7B,IAAA,IAAI,EAAE,gBAAgB,KAAA,CAAA,EAAQ;AAC5B,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,YAAY,IAAA,EAAM,IAAA;AAAA,QAC7B,YAAA,EAAY,SAAA;AAAA,QACZ,iBAAA,EAAiB,cAAA;AAAA,QAEhB,iBAAO,YAAA,KAAiB,UAAA,uBACtB,UAAA,EAAA,EAAW,KAAA,EAAe,wBAAa,CAAA,GAExC;AAAA;AAAA,KAEJ;AAAA,EAEJ,CAAA,EAAG,CAAC,YAAA,EAAc,KAAA,EAAO,YAAY,IAAA,EAAM,IAAA,EAAM,SAAA,EAAW,cAAc,CAAC,CAAA;AAE3E,EAAA,uBACE,GAAA,CAAC,YAAS,MAAA,EACR,QAAA,kBAAA,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MACA,SAAA,EAAW,YAAY,IAAA,EAAM,SAAA;AAAA,MAC7B,KAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA,EAAY,SAAA;AAAA,MACZ,iBAAA,EAAiB,cAAA;AAAA,MAEhB;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC;AAEM,IAAM,UAAA,GAAa,UAAA,CAAW,SAASC,WAAAA,CAC5C,OACA,GAAA,EACA;AACA,EAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,KAAA,EAAO,KAAK,iBAAiB,CAAA;AAE5D,EAAA,MAAM;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,EAAA;AAAA,IACA,UAAA,EAAY,cAAA;AAAA,IACZ,SAAA,GAAY,OAAO,YAAA,KAAiB,QAAA,GAAW,YAAA,GAAe,MAAA;AAAA,IAC9D,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,EAAA,MAAM,UAAA,GAAa,OAAA;AAAA,IACjB,MAAM,eAAA,CAAgB,gBAAA,EAAkB,KAAA,CAAM,QAAQ,cAAc,CAAA;AAAA,IACpE,CAAC,KAAA,CAAM,MAAA,EAAQ,cAAc;AAAA,GAC/B;AAEA,EAAA,MAAM,KAAA,GAAQ,WAAA;AAAA,IACZ,CAAC,WAAA,KACC,UAAA,CAAW,mBAAA,EAAqB,WAAW,CAAA;AAAA,IAC7C;AAAC,GACH;AAEA,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,gCACC,GAAA,CAAC,KAAA,EAAA,EAAI,WAAW,UAAA,EAAY,IAAA,EAAM,IAAA,EAC/B,QAAA,EAAA,eAAA,CAAgB,YAAA,EAAc;AAAA,MAC7B,GAAG,WAAA;AAAA,MACH,eAAA,EAAiB;AAAA,KAClB,CAAA,EACH,CAAA;AAAA,IAEF,CAAC,YAAA,EAAc,UAAA,EAAY,IAAA,EAAM,IAAI;AAAA,GACvC;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MACA,IAAI,EAAA,IAAM,SAAA;AAAA,MACV,SAAA,EAAW,YAAY,IAAA,EAAM,SAAA;AAAA,MAC7B,KAAA;AAAA,MACA,SAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type ContextValue,\n ListBox,\n ListBoxItem,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n Provider,\n Section,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n pickerClassNames,\n pickerItemStateVars,\n pickerStateVars,\n} from './picker.css';\nimport type { PickerItemProps, PickerProps } from './types';\n\nexport const PickerContext =\n createContext<ContextValue<PickerProps<unknown>, HTMLDivElement>>(null);\n\nexport const PickerItemContext =\n createContext<ContextValue<PickerItemProps<unknown>, HTMLDivElement>>(null);\n\n/**\n * Generic stylable picker that supports the functionality (sans drag and drop) of\n * React Aria's ListBox: https://react-spectrum.adobe.com/react-aria/ListBox.html\n *\n * NOTE: The picker items does not support sections or separators\n */\nexport const Picker = forwardRef(function Picker<T extends object>(\n props: PickerProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerContext);\n\n props = useDefaultProps(props, 'Picker');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n columns,\n items,\n layout = 'stack',\n orientation = 'horizontal',\n selectionMode = 'single',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const values = useMemo<\n [\n [\n typeof PickerItemContext,\n ContextValue<PickerItemProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(() => [[PickerItemContext, { classNames }]], [classNames]);\n\n const style = useCallback(\n ({ state, ...renderProps }: ListBoxRenderProps) =>\n inlineVars(pickerStateVars, {\n ...renderProps,\n columns,\n layout,\n orientation,\n }),\n [columns, layout, orientation],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <Section\n className={classNames?.list?.list}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </Section>\n );\n }, [childrenProp, items, classNames?.list?.list, ariaLabel, ariaLabelledBy]);\n\n return (\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n layout={layout}\n orientation={orientation}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n );\n});\n\nexport const PickerItem = forwardRef(function PickerItem<T extends object>(\n props: PickerItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerItemContext);\n\n const {\n children: childrenProp,\n id,\n classNames: classNamesProp,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(pickerItemStateVars, renderProps),\n [],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => (\n <div className={classNames?.item?.item}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [childrenProp, classNames?.item?.item],\n );\n\n return (\n <ListBoxItem<T>\n {...rest}\n ref={ref}\n id={id ?? textValue}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/query-builder/group.tsx"],"names":["Fragment"],"mappings":"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","file":"group.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { Fragment, useContext, useMemo } from 'react';\nimport {\n type RuleGroupArray,\n type RuleGroupICArray,\n type RuleGroupProps,\n TestID,\n isRuleGroup,\n isRuleGroupType,\n pathsAreEqual,\n useRuleGroup,\n useStopEventPropagation,\n} from 'react-querybuilder';\nimport { inlineVars } from '../../utils/css';\nimport { QueryBuilderContext } from './constants';\nimport { queryBuilderGroupStateVars } from './query-builder.css';\nimport type { RuleGroupElementsProps } from './types';\n\n/**\n * Rules have 5 non-optional functional pieces:\n * - Field\n * - Operator (conditional)\n * - Value Source (conditional)\n * - Value (conditional)\n * - Remove\n */\nconst HORZ_CORE_COLUMNS_COUNT = 5;\n// When layout == column, Field, Operator, Value Source & Value are grouped into a single column\nconst VERT_CORE_COLUMNS_COUNT = 2;\n\nexport function RuleGroup(props: RuleGroupProps) {\n const {\n classNames,\n controlElements: {\n ruleGroupBodyElements: RuleGroupBodyElements,\n ruleGroupFooterElements: RuleGroupFooterElements,\n ruleGroupHeaderElements: RuleGroupHeaderElements,\n },\n orientation,\n } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n enableDragAndDrop,\n showCloneButtons,\n showLockButtons,\n showShiftActions,\n },\n } = props;\n\n const after = useMemo(\n () =>\n [showCloneButtons, showLockButtons].reduce(\n (acc, flag) => acc + (flag ? 1 : 0),\n 0,\n ),\n [showCloneButtons, showLockButtons],\n );\n\n const before = useMemo(\n () =>\n [enableDragAndDrop, showShiftActions].reduce(\n (acc, flag) => acc + (flag ? 1 : 0),\n 0,\n ),\n [enableDragAndDrop, showShiftActions],\n );\n\n const columns = useMemo(\n () =>\n (orientation === 'horizontal'\n ? HORZ_CORE_COLUMNS_COUNT\n : VERT_CORE_COLUMNS_COUNT) +\n before +\n after,\n [orientation, after, before],\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderGroupStateVars, {\n after,\n before,\n columns,\n orientation,\n isDisabled: false,\n }),\n [after, before, columns, orientation],\n );\n\n const group = useRuleGroup(props);\n const addRule = useStopEventPropagation(group.addRule);\n const addGroup = useStopEventPropagation(group.addGroup);\n const cloneGroup = useStopEventPropagation(group.cloneGroup);\n const toggleLockGroup = useStopEventPropagation(group.toggleLockGroup);\n const removeGroup = useStopEventPropagation(group.removeGroup);\n const shiftGroupUp = useStopEventPropagation(group.shiftGroupUp);\n const shiftGroupDown = useStopEventPropagation(group.shiftGroupDown);\n\n const elementProps = useMemo(\n () => ({\n ...(group as RuleGroupElementsProps),\n addGroup,\n addRule,\n cloneGroup,\n removeGroup,\n shiftGroupDown,\n shiftGroupUp,\n toggleLockGroup,\n }),\n [\n addGroup,\n addRule,\n cloneGroup,\n group,\n removeGroup,\n shiftGroupDown,\n shiftGroupUp,\n toggleLockGroup,\n ],\n );\n\n return (\n <div className={classNames?.group?.container} style={style}>\n <div\n ref={group.previewRef}\n className={group.outerClassName}\n data-dragmonitorid={group.dragMonitorId}\n data-dropmonitorid={group.dropMonitorId}\n data-level={group.path.length}\n data-path={JSON.stringify(group.path)}\n data-rule-group-id={group.id}\n data-testid={TestID.ruleGroup}\n >\n <div ref={group.dropRef} className={group.classNames.header}>\n <RuleGroupHeaderElements {...elementProps} />\n </div>\n <div className={group.classNames.body}>\n <RuleGroupBodyElements {...elementProps} />\n </div>\n <div className={classNames?.group?.footer}>\n <RuleGroupFooterElements {...elementProps} />\n </div>\n </div>\n </div>\n );\n}\n\nexport function RuleGroupHeaderComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const { classNames } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n controls: {\n shiftActions: ShiftActionsControlElement,\n dragHandle: DragHandleControlElement,\n combinatorSelector: CombinatorSelectorControlElement,\n notToggle: NotToggleControlElement,\n cloneGroupAction: CloneGroupActionControlElement,\n lockGroupAction: LockGroupActionControlElement,\n removeGroupAction: RemoveGroupActionControlElement,\n },\n },\n } = ruleGroup;\n\n const titles = useMemo(\n () => ({\n shiftUp: ruleGroup.translations.shiftActionUp.title,\n shiftDown: ruleGroup.translations.shiftActionDown.title,\n }),\n [\n ruleGroup.translations.shiftActionDown.title,\n ruleGroup.translations.shiftActionUp.title,\n ],\n );\n\n const labels = useMemo(\n () => ({\n shiftUp: ruleGroup.translations.shiftActionUp.label,\n shiftDown: ruleGroup.translations.shiftActionDown.label,\n }),\n [\n ruleGroup.translations.shiftActionDown.label,\n ruleGroup.translations.shiftActionUp.label,\n ],\n );\n\n return (\n <>\n {ruleGroup.schema.showShiftActions && ruleGroup.path.length > 0 && (\n <div className={classNames?.group?.shift}>\n <ShiftActionsControlElement\n key={TestID.shiftActions}\n testID={TestID.shiftActions}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n titles={titles}\n labels={labels}\n className={ruleGroup.classNames.shiftActions}\n disabled={ruleGroup.disabled}\n shiftUp={ruleGroup.shiftGroupUp}\n shiftDown={ruleGroup.shiftGroupDown}\n shiftUpDisabled={ruleGroup.shiftUpDisabled}\n shiftDownDisabled={ruleGroup.shiftDownDisabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleOrGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {ruleGroup.path.length > 0 && ruleGroup.schema.enableDragAndDrop && (\n <div className={classNames?.group?.drag}>\n <DragHandleControlElement\n key={TestID.dragHandle}\n testID={TestID.dragHandle}\n ref={ruleGroup.dragRef}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n title={ruleGroup.translations.dragHandle.title}\n label={ruleGroup.translations.dragHandle.label}\n className={ruleGroup.classNames.dragHandle}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleOrGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {!(\n ruleGroup.schema.showCombinatorsBetweenRules ||\n ruleGroup.schema.independentCombinators\n ) && (\n <div className={classNames?.group?.combinator}>\n <CombinatorSelectorControlElement\n key={TestID.combinators}\n testID={TestID.combinators}\n options={ruleGroup.schema.combinators}\n value={ruleGroup.combinator}\n title={ruleGroup.translations.combinators.title}\n className={ruleGroup.classNames.combinators}\n handleOnChange={ruleGroup.onCombinatorChange}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.schema.showNotToggle && (\n <div className={classNames?.group?.toggle}>\n <NotToggleControlElement\n key={TestID.notToggle}\n testID={TestID.notToggle}\n className={ruleGroup.classNames.notToggle}\n title={ruleGroup.translations.notToggle.title}\n label={ruleGroup.translations.notToggle.label}\n checked={ruleGroup.ruleGroup.not}\n handleOnChange={ruleGroup.onNotToggleChange}\n level={ruleGroup.path.length}\n disabled={ruleGroup.disabled}\n path={ruleGroup.path}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {ruleGroup.schema.showCloneButtons && ruleGroup.path.length >= 1 && (\n <div className={classNames?.group?.clone}>\n <CloneGroupActionControlElement\n key={TestID.cloneGroup}\n testID={TestID.cloneGroup}\n label={ruleGroup.translations.cloneRuleGroup.label}\n title={ruleGroup.translations.cloneRuleGroup.title}\n className={ruleGroup.classNames.cloneGroup}\n handleOnClick={ruleGroup.cloneGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.schema.showLockButtons && (\n <div className={classNames?.group?.lock}>\n <LockGroupActionControlElement\n key={TestID.lockGroup}\n testID={TestID.lockGroup}\n label={ruleGroup.translations.lockGroup.label}\n title={ruleGroup.translations.lockGroup.title}\n className={ruleGroup.classNames.lockGroup}\n handleOnClick={ruleGroup.toggleLockGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n disabledTranslation={\n ruleGroup.parentDisabled\n ? undefined\n : ruleGroup.translations.lockGroupDisabled\n }\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.path.length > 0 && (\n <div className={classNames?.group?.remove}>\n <RemoveGroupActionControlElement\n key={TestID.removeGroup}\n testID={TestID.removeGroup}\n label={ruleGroup.translations.removeGroup.label}\n title={ruleGroup.translations.removeGroup.title}\n className={ruleGroup.classNames.removeGroup}\n handleOnClick={ruleGroup.removeGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n </>\n );\n}\n\nexport function RuleGroupBodyComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const {\n schema: {\n controls: {\n ruleGroup: RuleGroupControlElement,\n rule: RuleControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n {(ruleGroup.ruleGroup.rules as RuleGroupICArray | RuleGroupArray).map(\n (rule, idx, { length: ruleArrayLength }) => {\n const thisPathMemo = ruleGroup.pathsMemo[idx];\n const thisPath = thisPathMemo?.path ?? [];\n\n const thisPathDisabled =\n !thisPathMemo ||\n thisPathMemo.disabled ||\n (typeof rule !== 'string' && rule.disabled);\n\n const shiftUpDisabled = pathsAreEqual([0], thisPath);\n\n const shiftDownDisabled =\n ruleGroup.path.length === 0 && idx === ruleArrayLength - 1;\n\n const key =\n typeof rule === 'string' ? [...thisPath, rule].join('-') : rule.id;\n\n return (\n <Fragment key={key}>\n {isRuleGroup(rule) && (\n <RuleGroupControlElement\n key={TestID.ruleGroup}\n id={rule.id}\n schema={ruleGroup.schema}\n actions={ruleGroup.actions}\n path={thisPath}\n translations={ruleGroup.translations}\n ruleGroup={rule}\n rules={rule.rules}\n combinator={\n isRuleGroupType(rule) ? rule.combinator : undefined\n }\n not={!!rule.not}\n disabled={thisPathDisabled}\n parentDisabled={\n ruleGroup.parentDisabled || ruleGroup.disabled\n }\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={ruleGroup.context}\n />\n )}\n {typeof rule !== 'string' && !isRuleGroup(rule) && (\n <RuleControlElement\n key={TestID.rule}\n // biome-ignore lint/style/noNonNullAssertion: intentional\n id={rule.id!}\n rule={rule}\n field={rule.field}\n operator={rule.operator}\n value={rule.value}\n valueSource={rule.valueSource}\n schema={ruleGroup.schema}\n actions={ruleGroup.actions}\n path={thisPath}\n disabled={thisPathDisabled}\n parentDisabled={\n ruleGroup.parentDisabled || ruleGroup.disabled\n }\n translations={ruleGroup.translations}\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={ruleGroup.context}\n />\n )}\n </Fragment>\n );\n },\n )}\n </>\n );\n}\n\nexport function RuleGroupFooterComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const { classNames } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n controls: {\n addGroupAction: AddGroupActionControlElement,\n addRuleAction: AddRuleActionControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n <div className={classNames?.rule?.add}>\n <AddRuleActionControlElement\n key={TestID.addRule}\n testID={TestID.addRule}\n label={ruleGroup.translations.addRule.label}\n title={ruleGroup.translations.addRule.title}\n className={ruleGroup.classNames.addRule}\n handleOnClick={ruleGroup.addRule}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n <div className={classNames?.group?.add}>\n <AddGroupActionControlElement\n key={TestID.addGroup}\n testID={TestID.addGroup}\n label={ruleGroup.translations.addGroup.label}\n title={ruleGroup.translations.addGroup.title}\n className={ruleGroup.classNames.addGroup}\n handleOnClick={ruleGroup.addGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/query-builder/group.tsx"],"names":["Fragment"],"mappings":";;;;;;;;AAqCA,IAAM,uBAAA,GAA0B,CAAA;AAEhC,IAAM,uBAAA,GAA0B,CAAA;AAEzB,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,MAAM;AAAA,IACJ,UAAA;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,qBAAA,EAAuB,qBAAA;AAAA,MACvB,uBAAA,EAAyB,uBAAA;AAAA,MACzB,uBAAA,EAAyB;AAAA,KAC3B;AAAA,IACA;AAAA,GACF,GAAI,WAAW,mBAAmB,CAAA;AAElC,EAAA,MAAM;AAAA,IACJ,MAAA,EAAQ;AAAA,MACN,iBAAA;AAAA,MACA,gBAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA;AACF,GACF,GAAI,KAAA;AAEJ,EAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,IACZ,MACE,CAAC,gBAAA,EAAkB,eAAe,CAAA,CAAE,MAAA;AAAA,MAClC,CAAC,GAAA,EAAK,IAAA,KAAS,GAAA,IAAO,OAAO,CAAA,GAAI,CAAA,CAAA;AAAA,MACjC;AAAA,KACF;AAAA,IACF,CAAC,kBAAkB,eAAe;AAAA,GACpC;AAEA,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IACb,MACE,CAAC,iBAAA,EAAmB,gBAAgB,CAAA,CAAE,MAAA;AAAA,MACpC,CAAC,GAAA,EAAK,IAAA,KAAS,GAAA,IAAO,OAAO,CAAA,GAAI,CAAA,CAAA;AAAA,MACjC;AAAA,KACF;AAAA,IACF,CAAC,mBAAmB,gBAAgB;AAAA,GACtC;AAEA,EAAA,MAAM,OAAA,GAAU,OAAA;AAAA,IACd,MAAA,CACG,WAAA,KAAgB,YAAA,GACb,uBAAA,GACA,2BACJ,MAAA,GACA,KAAA;AAAA,IACF,CAAC,WAAA,EAAa,KAAA,EAAO,MAAM;AAAA,GAC7B;AAEA,EAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,IACZ,MACE,WAAW,0BAAA,EAA4B;AAAA,MACrC,KAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA,EAAY;AAAA,KACb,CAAA;AAAA,IACH,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAA,EAAS,WAAW;AAAA,GACtC;AAEA,EAAA,MAAM,KAAA,GAAQ,aAAa,KAAK,CAAA;AAChC,EAAA,MAAM,OAAA,GAAU,uBAAA,CAAwB,KAAA,CAAM,OAAO,CAAA;AACrD,EAAA,MAAM,QAAA,GAAW,uBAAA,CAAwB,KAAA,CAAM,QAAQ,CAAA;AACvD,EAAA,MAAM,UAAA,GAAa,uBAAA,CAAwB,KAAA,CAAM,UAAU,CAAA;AAC3D,EAAA,MAAM,eAAA,GAAkB,uBAAA,CAAwB,KAAA,CAAM,eAAe,CAAA;AACrE,EAAA,MAAM,WAAA,GAAc,uBAAA,CAAwB,KAAA,CAAM,WAAW,CAAA;AAC7D,EAAA,MAAM,YAAA,GAAe,uBAAA,CAAwB,KAAA,CAAM,YAAY,CAAA;AAC/D,EAAA,MAAM,cAAA,GAAiB,uBAAA,CAAwB,KAAA,CAAM,cAAc,CAAA;AAEnE,EAAA,MAAM,YAAA,GAAe,OAAA;AAAA,IACnB,OAAO;AAAA,MACL,GAAI,KAAA;AAAA,MACJ,QAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA;AAAA,MACE,QAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,WAAW,KAAA,EAC5C,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAK,KAAA,CAAM,UAAA;AAAA,MACX,WAAW,KAAA,CAAM,cAAA;AAAA,MACjB,sBAAoB,KAAA,CAAM,aAAA;AAAA,MAC1B,sBAAoB,KAAA,CAAM,aAAA;AAAA,MAC1B,YAAA,EAAY,MAAM,IAAA,CAAK,MAAA;AAAA,MACvB,WAAA,EAAW,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA;AAAA,MACpC,sBAAoB,KAAA,CAAM,EAAA;AAAA,MAC1B,eAAa,MAAA,CAAO,SAAA;AAAA,MAEpB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,KAAA,CAAM,OAAA,EAAS,SAAA,EAAW,KAAA,CAAM,UAAA,CAAW,MAAA,EACnD,QAAA,kBAAA,GAAA,CAAC,uBAAA,EAAA,EAAyB,GAAG,YAAA,EAAc,CAAA,EAC7C,CAAA;AAAA,wBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,KAAA,CAAM,UAAA,CAAW,MAC/B,QAAA,kBAAA,GAAA,CAAC,qBAAA,EAAA,EAAuB,GAAG,YAAA,EAAc,CAAA,EAC3C,CAAA;AAAA,wBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,QACjC,QAAA,kBAAA,GAAA,CAAC,uBAAA,EAAA,EAAyB,GAAG,YAAA,EAAc,CAAA,EAC7C;AAAA;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;AAEO,SAAS,0BACd,SAAA,EACA;AACA,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,UAAA,CAAW,mBAAmB,CAAA;AAErD,EAAA,MAAM;AAAA,IACJ,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU;AAAA,QACR,YAAA,EAAc,0BAAA;AAAA,QACd,UAAA,EAAY,wBAAA;AAAA,QACZ,kBAAA,EAAoB,gCAAA;AAAA,QACpB,SAAA,EAAW,uBAAA;AAAA,QACX,gBAAA,EAAkB,8BAAA;AAAA,QAClB,eAAA,EAAiB,6BAAA;AAAA,QACjB,iBAAA,EAAmB;AAAA;AACrB;AACF,GACF,GAAI,SAAA;AAEJ,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IACb,OAAO;AAAA,MACL,OAAA,EAAS,SAAA,CAAU,YAAA,CAAa,aAAA,CAAc,KAAA;AAAA,MAC9C,SAAA,EAAW,SAAA,CAAU,YAAA,CAAa,eAAA,CAAgB;AAAA,KACpD,CAAA;AAAA,IACA;AAAA,MACE,SAAA,CAAU,aAAa,eAAA,CAAgB,KAAA;AAAA,MACvC,SAAA,CAAU,aAAa,aAAA,CAAc;AAAA;AACvC,GACF;AAEA,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IACb,OAAO;AAAA,MACL,OAAA,EAAS,SAAA,CAAU,YAAA,CAAa,aAAA,CAAc,KAAA;AAAA,MAC9C,SAAA,EAAW,SAAA,CAAU,YAAA,CAAa,eAAA,CAAgB;AAAA,KACpD,CAAA;AAAA,IACA;AAAA,MACE,SAAA,CAAU,aAAa,eAAA,CAAgB,KAAA;AAAA,MACvC,SAAA,CAAU,aAAa,aAAA,CAAc;AAAA;AACvC,GACF;AAEA,EAAA,uBACE,IAAA,CAAAA,UAAA,EACG,QAAA,EAAA;AAAA,IAAA,SAAA,CAAU,MAAA,CAAO,gBAAA,IAAoB,SAAA,CAAU,IAAA,CAAK,MAAA,GAAS,CAAA,oBAC5D,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,KAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,0BAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,YAAA;AAAA,QACf,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,MAAA;AAAA,QACA,MAAA;AAAA,QACA,SAAA,EAAW,UAAU,UAAA,CAAW,YAAA;AAAA,QAChC,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,SAAS,SAAA,CAAU,YAAA;AAAA,QACnB,WAAW,SAAA,CAAU,cAAA;AAAA,QACrB,iBAAiB,SAAA,CAAU,eAAA;AAAA,QAC3B,mBAAmB,SAAA,CAAU,iBAAA;AAAA,QAC7B,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,QAAQ,SAAA,CAAU,MAAA;AAAA,QAClB,aAAa,SAAA,CAAU;AAAA,OAAA;AAAA,MAflB,MAAA,CAAO;AAAA,KAgBd,EACF,CAAA;AAAA,IAED,SAAA,CAAU,IAAA,CAAK,MAAA,GAAS,CAAA,IAAK,SAAA,CAAU,MAAA,CAAO,iBAAA,oBAC7C,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,IAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,UAAA;AAAA,QACf,KAAK,SAAA,CAAU,OAAA;AAAA,QACf,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,UAAA,CAAW,KAAA;AAAA,QACzC,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,UAAA,CAAW,KAAA;AAAA,QACzC,SAAA,EAAW,UAAU,UAAA,CAAW,UAAA;AAAA,QAChC,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,QAAQ,SAAA,CAAU,MAAA;AAAA,QAClB,aAAa,SAAA,CAAU;AAAA,OAAA;AAAA,MAZlB,MAAA,CAAO;AAAA,KAad,EACF,CAAA;AAAA,IAED,EACC,SAAA,CAAU,MAAA,CAAO,2BAAA,IACjB,SAAA,CAAU,MAAA,CAAO,sBAAA,CAAA,oBAEjB,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,UAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,gCAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,WAAA;AAAA,QACf,OAAA,EAAS,UAAU,MAAA,CAAO,WAAA;AAAA,QAC1B,OAAO,SAAA,CAAU,UAAA;AAAA,QACjB,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,WAAA,CAAY,KAAA;AAAA,QAC1C,SAAA,EAAW,UAAU,UAAA,CAAW,WAAA;AAAA,QAChC,gBAAgB,SAAA,CAAU,kBAAA;AAAA,QAC1B,KAAA,EAAO,UAAU,SAAA,CAAU,KAAA;AAAA,QAC3B,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,QAAQ,SAAA,CAAU;AAAA,OAAA;AAAA,MAbb,MAAA,CAAO;AAAA,KAcd,EACF,CAAA;AAAA,IAED,SAAA,CAAU,OAAO,aAAA,oBAChB,GAAA,CAAC,SAAI,SAAA,EAAW,UAAA,EAAY,OAAO,MAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,SAAA;AAAA,QACf,SAAA,EAAW,UAAU,UAAA,CAAW,SAAA;AAAA,QAChC,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,SAAA,CAAU,KAAA;AAAA,QACxC,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,SAAA,CAAU,KAAA;AAAA,QACxC,OAAA,EAAS,UAAU,SAAA,CAAU,GAAA;AAAA,QAC7B,gBAAgB,SAAA,CAAU,iBAAA;AAAA,QAC1B,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,QAAQ,SAAA,CAAU,MAAA;AAAA,QAClB,WAAW,SAAA,CAAU;AAAA,OAAA;AAAA,MAbhB,MAAA,CAAO;AAAA,KAcd,EACF,CAAA;AAAA,IAED,SAAA,CAAU,MAAA,CAAO,gBAAA,IAAoB,SAAA,CAAU,IAAA,CAAK,MAAA,IAAU,CAAA,oBAC7D,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,KAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,8BAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,UAAA;AAAA,QACf,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,cAAA,CAAe,KAAA;AAAA,QAC7C,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,cAAA,CAAe,KAAA;AAAA,QAC7C,SAAA,EAAW,UAAU,UAAA,CAAW,UAAA;AAAA,QAChC,eAAe,SAAA,CAAU,UAAA;AAAA,QACzB,KAAA,EAAO,UAAU,SAAA,CAAU,KAAA;AAAA,QAC3B,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,aAAa,SAAA,CAAU,SAAA;AAAA,QACvB,QAAQ,SAAA,CAAU;AAAA,OAAA;AAAA,MAbb,MAAA,CAAO;AAAA,KAcd,EACF,CAAA;AAAA,IAED,SAAA,CAAU,OAAO,eAAA,oBAChB,GAAA,CAAC,SAAI,SAAA,EAAW,UAAA,EAAY,OAAO,IAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,6BAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,SAAA;AAAA,QACf,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,SAAA,CAAU,KAAA;AAAA,QACxC,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,SAAA,CAAU,KAAA;AAAA,QACxC,SAAA,EAAW,UAAU,UAAA,CAAW,SAAA;AAAA,QAChC,eAAe,SAAA,CAAU,eAAA;AAAA,QACzB,KAAA,EAAO,UAAU,SAAA,CAAU,KAAA;AAAA,QAC3B,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,mBAAA,EACE,SAAA,CAAU,cAAA,GACN,MAAA,GACA,UAAU,YAAA,CAAa,iBAAA;AAAA,QAE7B,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,aAAa,SAAA,CAAU,SAAA;AAAA,QACvB,QAAQ,SAAA,CAAU;AAAA,OAAA;AAAA,MAlBb,MAAA,CAAO;AAAA,KAmBd,EACF,CAAA;AAAA,IAED,SAAA,CAAU,KAAK,MAAA,GAAS,CAAA,wBACtB,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,KAAA,EAAO,MAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,+BAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,WAAA;AAAA,QACf,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,WAAA,CAAY,KAAA;AAAA,QAC1C,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,WAAA,CAAY,KAAA;AAAA,QAC1C,SAAA,EAAW,UAAU,UAAA,CAAW,WAAA;AAAA,QAChC,eAAe,SAAA,CAAU,WAAA;AAAA,QACzB,KAAA,EAAO,UAAU,SAAA,CAAU,KAAA;AAAA,QAC3B,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,aAAa,SAAA,CAAU,SAAA;AAAA,QACvB,QAAQ,SAAA,CAAU;AAAA,OAAA;AAAA,MAbb,MAAA,CAAO;AAAA,KAcd,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAEO,SAAS,wBACd,SAAA,EACA;AACA,EAAA,MAAM;AAAA,IACJ,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU;AAAA,QACR,SAAA,EAAW,uBAAA;AAAA,QACX,IAAA,EAAM;AAAA;AACR;AACF,GACF,GAAI,SAAA;AAEJ,EAAA,uBACE,GAAA,CAAAA,QAAAA,EAAA,EACI,QAAA,EAAA,SAAA,CAAU,UAAU,KAAA,CAA4C,GAAA;AAAA,IAChE,CAAC,IAAA,EAAM,GAAA,EAAK,EAAE,MAAA,EAAQ,iBAAgB,KAAM;AAC1C,MAAA,MAAM,YAAA,GAAe,SAAA,CAAU,SAAA,CAAU,GAAG,CAAA;AAC5C,MAAA,MAAM,QAAA,GAAW,YAAA,EAAc,IAAA,IAAQ,EAAC;AAExC,MAAA,MAAM,gBAAA,GACJ,CAAC,YAAA,IACD,YAAA,CAAa,YACZ,OAAO,IAAA,KAAS,YAAY,IAAA,CAAK,QAAA;AAEpC,MAAA,MAAM,eAAA,GAAkB,aAAA,CAAc,CAAC,CAAC,GAAG,QAAQ,CAAA;AAEnD,MAAA,MAAM,oBACJ,SAAA,CAAU,IAAA,CAAK,MAAA,KAAW,CAAA,IAAK,QAAQ,eAAA,GAAkB,CAAA;AAE3D,MAAA,MAAM,GAAA,GACJ,OAAO,IAAA,KAAS,QAAA,GAAW,CAAC,GAAG,QAAA,EAAU,IAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,IAAA,CAAK,EAAA;AAElE,MAAA,4BACGA,UAAA,EAAA,EACE,QAAA,EAAA;AAAA,QAAA,WAAA,CAAY,IAAI,CAAA,oBACf,GAAA;AAAA,UAAC,uBAAA;AAAA,UAAA;AAAA,YAEC,IAAI,IAAA,CAAK,EAAA;AAAA,YACT,QAAQ,SAAA,CAAU,MAAA;AAAA,YAClB,SAAS,SAAA,CAAU,OAAA;AAAA,YACnB,IAAA,EAAM,QAAA;AAAA,YACN,cAAc,SAAA,CAAU,YAAA;AAAA,YACxB,SAAA,EAAW,IAAA;AAAA,YACX,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,UAAA,EACE,eAAA,CAAgB,IAAI,CAAA,GAAI,KAAK,UAAA,GAAa,MAAA;AAAA,YAE5C,GAAA,EAAK,CAAC,CAAC,IAAA,CAAK,GAAA;AAAA,YACZ,QAAA,EAAU,gBAAA;AAAA,YACV,cAAA,EACE,SAAA,CAAU,cAAA,IAAkB,SAAA,CAAU,QAAA;AAAA,YAExC,eAAA;AAAA,YACA,iBAAA;AAAA,YACA,SAAS,SAAA,CAAU;AAAA,WAAA;AAAA,UAlBd,MAAA,CAAO;AAAA,SAmBd;AAAA,QAED,OAAO,IAAA,KAAS,QAAA,IAAY,CAAC,WAAA,CAAY,IAAI,CAAA,oBAC5C,GAAA;AAAA,UAAC,kBAAA;AAAA,UAAA;AAAA,YAGC,IAAI,IAAA,CAAK,EAAA;AAAA,YACT,IAAA;AAAA,YACA,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,aAAa,IAAA,CAAK,WAAA;AAAA,YAClB,QAAQ,SAAA,CAAU,MAAA;AAAA,YAClB,SAAS,SAAA,CAAU,OAAA;AAAA,YACnB,IAAA,EAAM,QAAA;AAAA,YACN,QAAA,EAAU,gBAAA;AAAA,YACV,cAAA,EACE,SAAA,CAAU,cAAA,IAAkB,SAAA,CAAU,QAAA;AAAA,YAExC,cAAc,SAAA,CAAU,YAAA;AAAA,YACxB,eAAA;AAAA,YACA,iBAAA;AAAA,YACA,SAAS,SAAA,CAAU;AAAA,WAAA;AAAA,UAlBd,MAAA,CAAO;AAAA;AAmBd,OAAA,EAAA,EA7CW,GA+Cf,CAAA;AAAA,IAEJ;AAAA,GACF,EACF,CAAA;AAEJ;AAEO,SAAS,0BACd,SAAA,EACA;AACA,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,UAAA,CAAW,mBAAmB,CAAA;AAErD,EAAA,MAAM;AAAA,IACJ,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU;AAAA,QACR,cAAA,EAAgB,4BAAA;AAAA,QAChB,aAAA,EAAe;AAAA;AACjB;AACF,GACF,GAAI,SAAA;AAEJ,EAAA,uBACE,IAAA,CAAAA,UAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,IAAA,EAAM,GAAA,EAChC,QAAA,kBAAA,GAAA;AAAA,MAAC,2BAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,OAAA;AAAA,QACf,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,OAAA,CAAQ,KAAA;AAAA,QACtC,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,OAAA,CAAQ,KAAA;AAAA,QACtC,SAAA,EAAW,UAAU,UAAA,CAAW,OAAA;AAAA,QAChC,eAAe,SAAA,CAAU,OAAA;AAAA,QACzB,KAAA,EAAO,UAAU,SAAA,CAAU,KAAA;AAAA,QAC3B,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,aAAa,SAAA,CAAU,SAAA;AAAA,QACvB,QAAQ,SAAA,CAAU;AAAA,OAAA;AAAA,MAbb,MAAA,CAAO;AAAA,KAcd,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,OAAO,GAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,4BAAA;AAAA,MAAA;AAAA,QAEC,QAAQ,MAAA,CAAO,QAAA;AAAA,QACf,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,QAAA,CAAS,KAAA;AAAA,QACvC,KAAA,EAAO,SAAA,CAAU,YAAA,CAAa,QAAA,CAAS,KAAA;AAAA,QACvC,SAAA,EAAW,UAAU,UAAA,CAAW,QAAA;AAAA,QAChC,eAAe,SAAA,CAAU,QAAA;AAAA,QACzB,KAAA,EAAO,UAAU,SAAA,CAAU,KAAA;AAAA,QAC3B,KAAA,EAAO,UAAU,IAAA,CAAK,MAAA;AAAA,QACtB,MAAM,SAAA,CAAU,IAAA;AAAA,QAChB,UAAU,SAAA,CAAU,QAAA;AAAA,QACpB,SAAS,SAAA,CAAU,OAAA;AAAA,QACnB,YAAY,SAAA,CAAU,gBAAA;AAAA,QACtB,aAAa,SAAA,CAAU,SAAA;AAAA,QACvB,QAAQ,SAAA,CAAU;AAAA,OAAA;AAAA,MAbb,MAAA,CAAO;AAAA,KAcd,EACF;AAAA,GAAA,EACF,CAAA;AAEJ","file":"group.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { Fragment, useContext, useMemo } from 'react';\nimport {\n type RuleGroupArray,\n type RuleGroupICArray,\n type RuleGroupProps,\n TestID,\n isRuleGroup,\n isRuleGroupType,\n pathsAreEqual,\n useRuleGroup,\n useStopEventPropagation,\n} from 'react-querybuilder';\nimport { inlineVars } from '../../utils/css';\nimport { QueryBuilderContext } from './constants';\nimport { queryBuilderGroupStateVars } from './query-builder.css';\nimport type { RuleGroupElementsProps } from './types';\n\n/**\n * Rules have 5 non-optional functional pieces:\n * - Field\n * - Operator (conditional)\n * - Value Source (conditional)\n * - Value (conditional)\n * - Remove\n */\nconst HORZ_CORE_COLUMNS_COUNT = 5;\n// When layout == column, Field, Operator, Value Source & Value are grouped into a single column\nconst VERT_CORE_COLUMNS_COUNT = 2;\n\nexport function RuleGroup(props: RuleGroupProps) {\n const {\n classNames,\n controlElements: {\n ruleGroupBodyElements: RuleGroupBodyElements,\n ruleGroupFooterElements: RuleGroupFooterElements,\n ruleGroupHeaderElements: RuleGroupHeaderElements,\n },\n orientation,\n } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n enableDragAndDrop,\n showCloneButtons,\n showLockButtons,\n showShiftActions,\n },\n } = props;\n\n const after = useMemo(\n () =>\n [showCloneButtons, showLockButtons].reduce(\n (acc, flag) => acc + (flag ? 1 : 0),\n 0,\n ),\n [showCloneButtons, showLockButtons],\n );\n\n const before = useMemo(\n () =>\n [enableDragAndDrop, showShiftActions].reduce(\n (acc, flag) => acc + (flag ? 1 : 0),\n 0,\n ),\n [enableDragAndDrop, showShiftActions],\n );\n\n const columns = useMemo(\n () =>\n (orientation === 'horizontal'\n ? HORZ_CORE_COLUMNS_COUNT\n : VERT_CORE_COLUMNS_COUNT) +\n before +\n after,\n [orientation, after, before],\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderGroupStateVars, {\n after,\n before,\n columns,\n orientation,\n isDisabled: false,\n }),\n [after, before, columns, orientation],\n );\n\n const group = useRuleGroup(props);\n const addRule = useStopEventPropagation(group.addRule);\n const addGroup = useStopEventPropagation(group.addGroup);\n const cloneGroup = useStopEventPropagation(group.cloneGroup);\n const toggleLockGroup = useStopEventPropagation(group.toggleLockGroup);\n const removeGroup = useStopEventPropagation(group.removeGroup);\n const shiftGroupUp = useStopEventPropagation(group.shiftGroupUp);\n const shiftGroupDown = useStopEventPropagation(group.shiftGroupDown);\n\n const elementProps = useMemo(\n () => ({\n ...(group as RuleGroupElementsProps),\n addGroup,\n addRule,\n cloneGroup,\n removeGroup,\n shiftGroupDown,\n shiftGroupUp,\n toggleLockGroup,\n }),\n [\n addGroup,\n addRule,\n cloneGroup,\n group,\n removeGroup,\n shiftGroupDown,\n shiftGroupUp,\n toggleLockGroup,\n ],\n );\n\n return (\n <div className={classNames?.group?.container} style={style}>\n <div\n ref={group.previewRef}\n className={group.outerClassName}\n data-dragmonitorid={group.dragMonitorId}\n data-dropmonitorid={group.dropMonitorId}\n data-level={group.path.length}\n data-path={JSON.stringify(group.path)}\n data-rule-group-id={group.id}\n data-testid={TestID.ruleGroup}\n >\n <div ref={group.dropRef} className={group.classNames.header}>\n <RuleGroupHeaderElements {...elementProps} />\n </div>\n <div className={group.classNames.body}>\n <RuleGroupBodyElements {...elementProps} />\n </div>\n <div className={classNames?.group?.footer}>\n <RuleGroupFooterElements {...elementProps} />\n </div>\n </div>\n </div>\n );\n}\n\nexport function RuleGroupHeaderComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const { classNames } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n controls: {\n shiftActions: ShiftActionsControlElement,\n dragHandle: DragHandleControlElement,\n combinatorSelector: CombinatorSelectorControlElement,\n notToggle: NotToggleControlElement,\n cloneGroupAction: CloneGroupActionControlElement,\n lockGroupAction: LockGroupActionControlElement,\n removeGroupAction: RemoveGroupActionControlElement,\n },\n },\n } = ruleGroup;\n\n const titles = useMemo(\n () => ({\n shiftUp: ruleGroup.translations.shiftActionUp.title,\n shiftDown: ruleGroup.translations.shiftActionDown.title,\n }),\n [\n ruleGroup.translations.shiftActionDown.title,\n ruleGroup.translations.shiftActionUp.title,\n ],\n );\n\n const labels = useMemo(\n () => ({\n shiftUp: ruleGroup.translations.shiftActionUp.label,\n shiftDown: ruleGroup.translations.shiftActionDown.label,\n }),\n [\n ruleGroup.translations.shiftActionDown.label,\n ruleGroup.translations.shiftActionUp.label,\n ],\n );\n\n return (\n <>\n {ruleGroup.schema.showShiftActions && ruleGroup.path.length > 0 && (\n <div className={classNames?.group?.shift}>\n <ShiftActionsControlElement\n key={TestID.shiftActions}\n testID={TestID.shiftActions}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n titles={titles}\n labels={labels}\n className={ruleGroup.classNames.shiftActions}\n disabled={ruleGroup.disabled}\n shiftUp={ruleGroup.shiftGroupUp}\n shiftDown={ruleGroup.shiftGroupDown}\n shiftUpDisabled={ruleGroup.shiftUpDisabled}\n shiftDownDisabled={ruleGroup.shiftDownDisabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleOrGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {ruleGroup.path.length > 0 && ruleGroup.schema.enableDragAndDrop && (\n <div className={classNames?.group?.drag}>\n <DragHandleControlElement\n key={TestID.dragHandle}\n testID={TestID.dragHandle}\n ref={ruleGroup.dragRef}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n title={ruleGroup.translations.dragHandle.title}\n label={ruleGroup.translations.dragHandle.label}\n className={ruleGroup.classNames.dragHandle}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleOrGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {!(\n ruleGroup.schema.showCombinatorsBetweenRules ||\n ruleGroup.schema.independentCombinators\n ) && (\n <div className={classNames?.group?.combinator}>\n <CombinatorSelectorControlElement\n key={TestID.combinators}\n testID={TestID.combinators}\n options={ruleGroup.schema.combinators}\n value={ruleGroup.combinator}\n title={ruleGroup.translations.combinators.title}\n className={ruleGroup.classNames.combinators}\n handleOnChange={ruleGroup.onCombinatorChange}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.schema.showNotToggle && (\n <div className={classNames?.group?.toggle}>\n <NotToggleControlElement\n key={TestID.notToggle}\n testID={TestID.notToggle}\n className={ruleGroup.classNames.notToggle}\n title={ruleGroup.translations.notToggle.title}\n label={ruleGroup.translations.notToggle.label}\n checked={ruleGroup.ruleGroup.not}\n handleOnChange={ruleGroup.onNotToggleChange}\n level={ruleGroup.path.length}\n disabled={ruleGroup.disabled}\n path={ruleGroup.path}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n schema={ruleGroup.schema}\n ruleGroup={ruleGroup.ruleGroup}\n />\n </div>\n )}\n {ruleGroup.schema.showCloneButtons && ruleGroup.path.length >= 1 && (\n <div className={classNames?.group?.clone}>\n <CloneGroupActionControlElement\n key={TestID.cloneGroup}\n testID={TestID.cloneGroup}\n label={ruleGroup.translations.cloneRuleGroup.label}\n title={ruleGroup.translations.cloneRuleGroup.title}\n className={ruleGroup.classNames.cloneGroup}\n handleOnClick={ruleGroup.cloneGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.schema.showLockButtons && (\n <div className={classNames?.group?.lock}>\n <LockGroupActionControlElement\n key={TestID.lockGroup}\n testID={TestID.lockGroup}\n label={ruleGroup.translations.lockGroup.label}\n title={ruleGroup.translations.lockGroup.title}\n className={ruleGroup.classNames.lockGroup}\n handleOnClick={ruleGroup.toggleLockGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n disabledTranslation={\n ruleGroup.parentDisabled\n ? undefined\n : ruleGroup.translations.lockGroupDisabled\n }\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n {ruleGroup.path.length > 0 && (\n <div className={classNames?.group?.remove}>\n <RemoveGroupActionControlElement\n key={TestID.removeGroup}\n testID={TestID.removeGroup}\n label={ruleGroup.translations.removeGroup.label}\n title={ruleGroup.translations.removeGroup.title}\n className={ruleGroup.classNames.removeGroup}\n handleOnClick={ruleGroup.removeGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n )}\n </>\n );\n}\n\nexport function RuleGroupBodyComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const {\n schema: {\n controls: {\n ruleGroup: RuleGroupControlElement,\n rule: RuleControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n {(ruleGroup.ruleGroup.rules as RuleGroupICArray | RuleGroupArray).map(\n (rule, idx, { length: ruleArrayLength }) => {\n const thisPathMemo = ruleGroup.pathsMemo[idx];\n const thisPath = thisPathMemo?.path ?? [];\n\n const thisPathDisabled =\n !thisPathMemo ||\n thisPathMemo.disabled ||\n (typeof rule !== 'string' && rule.disabled);\n\n const shiftUpDisabled = pathsAreEqual([0], thisPath);\n\n const shiftDownDisabled =\n ruleGroup.path.length === 0 && idx === ruleArrayLength - 1;\n\n const key =\n typeof rule === 'string' ? [...thisPath, rule].join('-') : rule.id;\n\n return (\n <Fragment key={key}>\n {isRuleGroup(rule) && (\n <RuleGroupControlElement\n key={TestID.ruleGroup}\n id={rule.id}\n schema={ruleGroup.schema}\n actions={ruleGroup.actions}\n path={thisPath}\n translations={ruleGroup.translations}\n ruleGroup={rule}\n rules={rule.rules}\n combinator={\n isRuleGroupType(rule) ? rule.combinator : undefined\n }\n not={!!rule.not}\n disabled={thisPathDisabled}\n parentDisabled={\n ruleGroup.parentDisabled || ruleGroup.disabled\n }\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={ruleGroup.context}\n />\n )}\n {typeof rule !== 'string' && !isRuleGroup(rule) && (\n <RuleControlElement\n key={TestID.rule}\n // biome-ignore lint/style/noNonNullAssertion: intentional\n id={rule.id!}\n rule={rule}\n field={rule.field}\n operator={rule.operator}\n value={rule.value}\n valueSource={rule.valueSource}\n schema={ruleGroup.schema}\n actions={ruleGroup.actions}\n path={thisPath}\n disabled={thisPathDisabled}\n parentDisabled={\n ruleGroup.parentDisabled || ruleGroup.disabled\n }\n translations={ruleGroup.translations}\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={ruleGroup.context}\n />\n )}\n </Fragment>\n );\n },\n )}\n </>\n );\n}\n\nexport function RuleGroupFooterComponents(\n ruleGroup: RuleGroupProps & ReturnType<typeof useRuleGroup>,\n) {\n const { classNames } = useContext(QueryBuilderContext);\n\n const {\n schema: {\n controls: {\n addGroupAction: AddGroupActionControlElement,\n addRuleAction: AddRuleActionControlElement,\n },\n },\n } = ruleGroup;\n\n return (\n <>\n <div className={classNames?.rule?.add}>\n <AddRuleActionControlElement\n key={TestID.addRule}\n testID={TestID.addRule}\n label={ruleGroup.translations.addRule.label}\n title={ruleGroup.translations.addRule.title}\n className={ruleGroup.classNames.addRule}\n handleOnClick={ruleGroup.addRule}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n <div className={classNames?.group?.add}>\n <AddGroupActionControlElement\n key={TestID.addGroup}\n testID={TestID.addGroup}\n label={ruleGroup.translations.addGroup.label}\n title={ruleGroup.translations.addGroup.title}\n className={ruleGroup.classNames.addGroup}\n handleOnClick={ruleGroup.addGroup}\n rules={ruleGroup.ruleGroup.rules}\n level={ruleGroup.path.length}\n path={ruleGroup.path}\n disabled={ruleGroup.disabled}\n context={ruleGroup.context}\n validation={ruleGroup.validationResult}\n ruleOrGroup={ruleGroup.ruleGroup}\n schema={ruleGroup.schema}\n />\n </div>\n </>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/query-builder/index.tsx"],"names":["RQBuilder"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0DA,IAAM,cAAA,GAAsC;AAAA,EAC1C,MAAA,EAAQ;AAAA,IACN,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAM,SAAS,OAAA,EAAQ;AAAA,IACnC,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAM,SAAS,OAAA;AAAQ,GACrC;AAAA,EACA,KAAA,EAAO;AAAA,IACL,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAK;AAAA,IACjB,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA;AAAK,GACnB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAK;AAAA,IACjB,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA;AAAK,GACnB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAK;AAAA,IACjB,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA;AAAK,GACnB;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,IAAI,MAAA,CAAO;AAAA;AAEf,CAAA;AAEO,SAAS,YAAA,CAAa;AAAA,EAC3B,UAAA,EAAY,cAAA;AAAA,EACZ,iBAAA,GAAoB,IAAA;AAAA,EACpB,eAAA,EAAiB,mBAAA;AAAA,EACjB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,EAAS,WAAA;AAAA,EACT,WAAA,GAAc,kBAAA;AAAA,EACd,aAAA,GAAgB,IAAA;AAAA,EAChB,IAAA,GAAO,WAAA;AAAA,EACP,YAAA,EAAc,gBAAA;AAAA,EACd,GAAG;AACL,CAAA,EAAsB;AACpB,EAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,EAAA,MAAM,OAAA,GAAU,OAAA;AAAA,IACd,OAAO;AAAA,MACL,GAAG,cAAA;AAAA,MACH,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAA,MAAM,UAAA,GAAa,OAAA;AAAA,IACjB,MACE,eAAA;AAAA,MACE,sBAAA;AAAA,MACA,KAAA,CAAM,YAAA;AAAA,MACN,cAAA;AAAA,MACA;AAAA,QACE,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,GAAQ,IAAI,CAAA;AAAE;AACxC,KACF;AAAA,IACF,CAAC,OAAA,EAAS,KAAA,EAAO,IAAA,EAAM,KAAA,CAAM,cAAc,cAAc;AAAA,GAC3D;AAEA,EAAA,MAAM,iBAAA,GAAoB,QAAQ,MAAM;AACtC,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,GAAI,cAAc,EAAC;AAEnB,IAAA,OAAO;AAAA,MACL,QAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAc,YAAA,EAAc,YAAA;AAAA,MAC5B,WAAW,KAAA,EAAO,KAAA;AAAA,MAClB,QAAQ,KAAA,EAAO,MAAA;AAAA,MACf,MAAM,KAAA,EAAO,IAAA;AAAA,MACb,MAAM,IAAA,EAAM;AAAA,KACd;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,MAAM,eAAA,GAAkB,OAAA;AAAA,IACtB,OAAO;AAAA,MACL,aAAA,EAAe,aAAA;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,SAAA,EAAW,SAAA;AAAA,MACX,WAAA,EAAa,WAAA;AAAA,MACb,aAAA,EAAe,aAAA;AAAA,MACf,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,mBAAmB;AAAA,GACtB;AAEA,EAAA,MAAM,YAAA,GAAe,OAAA;AAAA,IACnB,OAAO;AAAA,MACL,GAAG,mBAAA;AAAA,MACH,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,gBAAgB;AAAA,GACnB;AAEA,EAAA,MAAM,OAAA,GAAU,OAAA;AAAA,IAYd,MAAM;AAAA,MACJ;AAAA,QACE,mBAAA;AAAA,QACA;AAAA,UACE,UAAA;AAAA,UACA,iBAAA;AAAA,UACA,eAAA,EAAiB;AAAA,YACf,qBAAA,EAAuB,uBAAA;AAAA,YACvB,uBAAA,EAAyB,yBAAA;AAAA,YACzB,uBAAA,EAAyB;AAAA,WAC3B;AAAA,UACA,KAAA;AAAA,UACA,OAAA;AAAA,UACA,WAAA;AAAA,UACA,aAAA;AAAA,UACA,IAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA;AAAA,QACE,aAAA;AAAA,QACA,EAAE,GAAG,OAAA,EAAS,MAAA,GAAS,IAAI,CAAA,EAAG,UAAA,EAAY,YAAY,MAAA;AAAO,OAC/D;AAAA,MACA,CAAC,eAAA,EAAiB,EAAE,UAAA,EAAY,UAAA,EAAY,UAAU,CAAA;AAAA,MACtD;AAAA,QACE,YAAA;AAAA,QACA,EAAE,GAAG,OAAA,EAAS,KAAA,GAAQ,IAAI,CAAA,EAAG,UAAA,EAAY,YAAY,KAAA;AAAM,OAC7D;AAAA,MACA,CAAC,iBAAA,EAAmB,EAAE,UAAA,EAAY,UAAA,EAAY,OAAO,CAAA;AAAA,MACrD;AAAA,QACE,aAAA;AAAA,QACA,EAAE,GAAG,OAAA,EAAS,MAAA,GAAS,IAAI,CAAA,EAAG,UAAA,EAAY,YAAY,MAAA;AAAO,OAC/D;AAAA,MACA,CAAC,aAAA,EAAe,EAAE,UAAA,EAAY,UAAA,EAAY,QAAQ,CAAA;AAAA,MAClD;AAAA,QACE,eAAA;AAAA,QACA,EAAE,GAAG,OAAA,EAAS,QAAA,GAAW,IAAI,CAAA,EAAG,UAAA,EAAY,YAAY,QAAA;AAAS;AACnE,KACF;AAAA,IACA;AAAA,MACE,UAAA;AAAA,MACA,iBAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,IACZ,MACE,WAAW,qBAAA,EAAuB;AAAA,MAChC,UAAA,EAAY,OAAO,QAAA,KAAa,SAAA,GAAY,QAAA,GAAW,KAAA;AAAA,MACvD;AAAA,KACD,CAAA;AAAA,IACH,CAAC,UAAU,aAAa;AAAA,GAC1B;AAEA,EAAA,uBACE,GAAA,CAAC,QAAA,EAAA,EAAS,MAAA,EAAQ,OAAA,EAChB,QAAA,kBAAA,GAAA,CAAC,SAAI,SAAA,EAAW,UAAA,EAAY,YAAA,EAAc,SAAA,EAAW,KAAA,EACnD,QAAA,kBAAA,GAAA;AAAA,IAACA,cAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,eAAA;AAAA,MACA,iBAAA,EAAmB,iBAAA;AAAA,MACnB,QAAA;AAAA,MACA,aAAA,EAAa;AAAA;AAAA,KAEjB,CAAA,EACF,CAAA;AAEJ","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useMemo } from 'react';\nimport { Provider } from 'react-aria-components';\nimport { QueryBuilder as RQBuilder } from 'react-querybuilder';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { mergeClassNames } from '../../utils/props';\nimport { ButtonContext } from '../button';\nimport type { ButtonProps } from '../button/types';\nimport { CheckboxContext } from '../checkbox';\nimport type { CheckboxProps } from '../checkbox/types';\nimport { InputContext } from '../input';\nimport type { InputProps } from '../input/types';\nimport { RadioGroupContext } from '../radio';\nimport type { RadioGroupProps } from '../radio/types';\nimport { SelectContext } from '../select';\nimport type { SelectProps } from '../select/types';\nimport { SwitchContext } from '../switch';\nimport type { SwitchProps } from '../switch/types';\nimport { TextAreaContext } from '../textarea';\nimport type { TextAreaProps } from '../textarea/types';\nimport { ActionElement } from './action-element';\nimport {\n QueryBuilderContext,\n defaultOrientation,\n defaultSize,\n} from './constants';\nimport {\n RuleGroup,\n RuleGroupBodyComponents,\n RuleGroupFooterComponents,\n RuleGroupHeaderComponents,\n} from './group';\nimport {\n queryBuilderClassNames,\n queryBuilderStateVars,\n} from './query-builder.css';\nimport { Rule } from './rule';\nimport type {\n QueryBuilderContextValue,\n QueryBuilderMapping,\n QueryBuilderProps,\n} from './types';\nimport { ValueEditor, defaultValueEditors } from './value-editor';\nimport { ValueSelector } from './value-selector';\n\nconst defaultMapping: QueryBuilderMapping = {\n button: {\n sm: { size: 'sm', variant: 'solid' },\n lg: { size: 'md', variant: 'solid' },\n },\n input: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n select: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n textarea: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nexport function QueryBuilder({\n classNames: classNamesProp,\n consistentColumns = true,\n controlElements: controlElementsProp,\n disabled,\n icons,\n mapping: mappingProp,\n orientation = defaultOrientation,\n showRuleLines = true,\n size = defaultSize,\n valueEditors: valueEditorsProp,\n ...rest\n}: QueryBuilderProps) {\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(\n queryBuilderClassNames,\n theme.QueryBuilder,\n classNamesProp,\n {\n rule: { error: mapping?.error?.[size] },\n },\n ),\n [mapping?.error, size, theme.QueryBuilder, classNamesProp],\n );\n\n const controlClassNames = useMemo(() => {\n const {\n addGroup,\n addRule,\n cloneGroup,\n cloneRule,\n dragHandle,\n lockGroup,\n lockRule,\n removeGroup,\n removeRule,\n queryBuilder,\n group,\n rule,\n } = classNames ?? {};\n\n return {\n addGroup,\n addRule,\n cloneGroup,\n cloneRule,\n dragHandle,\n lockGroup,\n lockRule,\n removeGroup,\n removeRule,\n queryBuilder: queryBuilder?.queryBuilder,\n ruleGroup: group?.group,\n header: group?.header,\n body: group?.body,\n rule: rule?.rule,\n };\n }, [classNames]);\n\n const controlElements = useMemo(\n () => ({\n actionElement: ActionElement,\n rule: Rule,\n ruleGroup: RuleGroup,\n valueEditor: ValueEditor,\n valueSelector: ValueSelector,\n ...controlElementsProp,\n }),\n [controlElementsProp],\n );\n\n const valueEditors = useMemo(\n () => ({\n ...defaultValueEditors,\n ...valueEditorsProp,\n }),\n [valueEditorsProp],\n );\n\n const context = useMemo<\n [\n [typeof QueryBuilderContext, QueryBuilderContextValue],\n [typeof ButtonContext, ButtonProps],\n [typeof CheckboxContext, CheckboxProps],\n [typeof InputContext, InputProps],\n [typeof RadioGroupContext, RadioGroupProps],\n [typeof SelectContext, SelectProps<object>],\n [typeof SwitchContext, SwitchProps],\n [typeof TextAreaContext, TextAreaProps],\n ]\n >(\n () => [\n [\n QueryBuilderContext,\n {\n classNames,\n consistentColumns,\n controlElements: {\n ruleGroupBodyElements: RuleGroupBodyComponents,\n ruleGroupFooterElements: RuleGroupFooterComponents,\n ruleGroupHeaderElements: RuleGroupHeaderComponents,\n },\n icons,\n mapping,\n orientation,\n showRuleLines,\n size,\n valueEditors,\n },\n ],\n [\n ButtonContext,\n { ...mapping?.button?.[size], classNames: classNames?.button },\n ],\n [CheckboxContext, { classNames: classNames?.checkbox }],\n [\n InputContext,\n { ...mapping?.input?.[size], classNames: classNames?.input },\n ],\n [RadioGroupContext, { classNames: classNames?.radio }],\n [\n SelectContext,\n { ...mapping?.select?.[size], classNames: classNames?.select },\n ],\n [SwitchContext, { classNames: classNames?.switch }],\n [\n TextAreaContext,\n { ...mapping?.textarea?.[size], classNames: classNames?.textarea },\n ],\n ],\n [\n classNames,\n consistentColumns,\n icons,\n mapping,\n orientation,\n showRuleLines,\n size,\n valueEditors,\n ],\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderStateVars, {\n isDisabled: typeof disabled === 'boolean' ? disabled : false,\n showRuleLines,\n }),\n [disabled, showRuleLines],\n );\n\n return (\n <Provider values={context}>\n <div className={classNames?.queryBuilder?.container} style={style}>\n <RQBuilder\n {...rest}\n controlElements={controlElements}\n controlClassnames={controlClassNames}\n disabled={disabled}\n listsAsArrays\n />\n </div>\n </Provider>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/query-builder/index.tsx"],"names":["RQBuilder"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useMemo } from 'react';\nimport { Provider } from 'react-aria-components';\nimport { QueryBuilder as RQBuilder } from 'react-querybuilder';\nimport { useTheme } from '../../hooks/use-theme';\nimport { bodies } from '../../styles/typography.css';\nimport { inlineVars } from '../../utils/css';\nimport { mergeClassNames } from '../../utils/props';\nimport { ButtonContext } from '../button';\nimport type { ButtonProps } from '../button/types';\nimport { CheckboxContext } from '../checkbox';\nimport type { CheckboxProps } from '../checkbox/types';\nimport { InputContext } from '../input';\nimport type { InputProps } from '../input/types';\nimport { RadioGroupContext } from '../radio';\nimport type { RadioGroupProps } from '../radio/types';\nimport { SelectContext } from '../select';\nimport type { SelectProps } from '../select/types';\nimport { SwitchContext } from '../switch';\nimport type { SwitchProps } from '../switch/types';\nimport { TextAreaContext } from '../textarea';\nimport type { TextAreaProps } from '../textarea/types';\nimport { ActionElement } from './action-element';\nimport {\n QueryBuilderContext,\n defaultOrientation,\n defaultSize,\n} from './constants';\nimport {\n RuleGroup,\n RuleGroupBodyComponents,\n RuleGroupFooterComponents,\n RuleGroupHeaderComponents,\n} from './group';\nimport {\n queryBuilderClassNames,\n queryBuilderStateVars,\n} from './query-builder.css';\nimport { Rule } from './rule';\nimport type {\n QueryBuilderContextValue,\n QueryBuilderMapping,\n QueryBuilderProps,\n} from './types';\nimport { ValueEditor, defaultValueEditors } from './value-editor';\nimport { ValueSelector } from './value-selector';\n\nconst defaultMapping: QueryBuilderMapping = {\n button: {\n sm: { size: 'sm', variant: 'solid' },\n lg: { size: 'md', variant: 'solid' },\n },\n input: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n select: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n textarea: {\n sm: { size: 'sm' },\n lg: { size: 'lg' },\n },\n error: {\n sm: bodies.xs,\n lg: bodies.xs,\n },\n};\n\nexport function QueryBuilder({\n classNames: classNamesProp,\n consistentColumns = true,\n controlElements: controlElementsProp,\n disabled,\n icons,\n mapping: mappingProp,\n orientation = defaultOrientation,\n showRuleLines = true,\n size = defaultSize,\n valueEditors: valueEditorsProp,\n ...rest\n}: QueryBuilderProps) {\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(\n queryBuilderClassNames,\n theme.QueryBuilder,\n classNamesProp,\n {\n rule: { error: mapping?.error?.[size] },\n },\n ),\n [mapping?.error, size, theme.QueryBuilder, classNamesProp],\n );\n\n const controlClassNames = useMemo(() => {\n const {\n addGroup,\n addRule,\n cloneGroup,\n cloneRule,\n dragHandle,\n lockGroup,\n lockRule,\n removeGroup,\n removeRule,\n queryBuilder,\n group,\n rule,\n } = classNames ?? {};\n\n return {\n addGroup,\n addRule,\n cloneGroup,\n cloneRule,\n dragHandle,\n lockGroup,\n lockRule,\n removeGroup,\n removeRule,\n queryBuilder: queryBuilder?.queryBuilder,\n ruleGroup: group?.group,\n header: group?.header,\n body: group?.body,\n rule: rule?.rule,\n };\n }, [classNames]);\n\n const controlElements = useMemo(\n () => ({\n actionElement: ActionElement,\n rule: Rule,\n ruleGroup: RuleGroup,\n valueEditor: ValueEditor,\n valueSelector: ValueSelector,\n ...controlElementsProp,\n }),\n [controlElementsProp],\n );\n\n const valueEditors = useMemo(\n () => ({\n ...defaultValueEditors,\n ...valueEditorsProp,\n }),\n [valueEditorsProp],\n );\n\n const context = useMemo<\n [\n [typeof QueryBuilderContext, QueryBuilderContextValue],\n [typeof ButtonContext, ButtonProps],\n [typeof CheckboxContext, CheckboxProps],\n [typeof InputContext, InputProps],\n [typeof RadioGroupContext, RadioGroupProps],\n [typeof SelectContext, SelectProps<object>],\n [typeof SwitchContext, SwitchProps],\n [typeof TextAreaContext, TextAreaProps],\n ]\n >(\n () => [\n [\n QueryBuilderContext,\n {\n classNames,\n consistentColumns,\n controlElements: {\n ruleGroupBodyElements: RuleGroupBodyComponents,\n ruleGroupFooterElements: RuleGroupFooterComponents,\n ruleGroupHeaderElements: RuleGroupHeaderComponents,\n },\n icons,\n mapping,\n orientation,\n showRuleLines,\n size,\n valueEditors,\n },\n ],\n [\n ButtonContext,\n { ...mapping?.button?.[size], classNames: classNames?.button },\n ],\n [CheckboxContext, { classNames: classNames?.checkbox }],\n [\n InputContext,\n { ...mapping?.input?.[size], classNames: classNames?.input },\n ],\n [RadioGroupContext, { classNames: classNames?.radio }],\n [\n SelectContext,\n { ...mapping?.select?.[size], classNames: classNames?.select },\n ],\n [SwitchContext, { classNames: classNames?.switch }],\n [\n TextAreaContext,\n { ...mapping?.textarea?.[size], classNames: classNames?.textarea },\n ],\n ],\n [\n classNames,\n consistentColumns,\n icons,\n mapping,\n orientation,\n showRuleLines,\n size,\n valueEditors,\n ],\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderStateVars, {\n isDisabled: typeof disabled === 'boolean' ? disabled : false,\n showRuleLines,\n }),\n [disabled, showRuleLines],\n );\n\n return (\n <Provider values={context}>\n <div className={classNames?.queryBuilder?.container} style={style}>\n <RQBuilder\n {...rest}\n controlElements={controlElements}\n controlClassnames={controlClassNames}\n disabled={disabled}\n listsAsArrays\n />\n </div>\n </Provider>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/query-builder/rule.tsx"],"names":[],"mappings":"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","file":"rule.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useContext, useMemo } from 'react';\nimport {\n type RuleProps,\n TestID,\n useRule,\n useStopEventPropagation,\n} from 'react-querybuilder';\nimport { inlineVars } from '../../utils/css';\nimport { AriaText } from '../aria';\nimport { QueryBuilderContext } from './constants';\nimport { queryBuilderRuleStateVars } from './query-builder.css';\nimport { getValidationResult } from './utils';\n\nexport function Rule(props: RuleProps) {\n const { classNames, orientation } = useContext(QueryBuilderContext);\n const rule = useRule(props);\n const cloneRule = useStopEventPropagation(rule.cloneRule);\n const toggleLockRule = useStopEventPropagation(rule.toggleLockRule);\n const removeRule = useStopEventPropagation(rule.removeRule);\n const shiftRuleUp = useStopEventPropagation(rule.shiftRuleUp);\n const shiftRuleDown = useStopEventPropagation(rule.shiftRuleDown);\n\n const { valid: isValid, reasons } = getValidationResult(\n props.rule,\n rule.fieldData?.validator,\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderRuleStateVars, {\n orientation,\n isDisabled: rule.disabled,\n isDragging: rule.isDragging,\n isDropTarget: rule.isOver,\n }),\n [rule.disabled, rule.isDragging, rule.isOver, orientation],\n );\n\n return (\n <div className={classNames?.rule?.container} style={style}>\n <div\n ref={rule.dndRef}\n className={rule.outerClassName}\n data-dragmonitorid={rule.dragMonitorId}\n data-dropmonitorid={rule.dropMonitorId}\n data-level={rule.path.length}\n data-path={JSON.stringify(rule.path)}\n data-rule-id={rule.id}\n data-testid={TestID.rule}\n >\n <RuleComponents\n {...rule}\n cloneRule={cloneRule}\n removeRule={removeRule}\n shiftRuleDown={shiftRuleDown}\n shiftRuleUp={shiftRuleUp}\n toggleLockRule={toggleLockRule}\n />\n </div>\n {!isValid &&\n reasons?.map((reason) => (\n <AriaText key={reason} className={classNames?.rule?.error}>\n {reason}\n </AriaText>\n ))}\n </div>\n );\n}\n\nexport function RuleComponents({\n classNames: classNamesProp,\n cloneRule,\n context,\n disabled,\n dragRef,\n fieldData,\n generateOnChangeHandler,\n hideValueControls,\n inputType,\n operators,\n parentDisabled,\n path,\n removeRule,\n rule,\n schema,\n shiftDownDisabled,\n shiftUpDisabled,\n shiftRuleDown,\n shiftRuleUp,\n toggleLockRule,\n translations,\n validationResult,\n valueEditorSeparator,\n valueEditorType,\n valueSourceOptions,\n valueSources,\n values,\n}: RuleProps & ReturnType<typeof useRule>) {\n const { classNames, consistentColumns, orientation } =\n useContext(QueryBuilderContext);\n\n const {\n controls: {\n shiftActions: ShiftActionsControlElement,\n dragHandle: DragHandleControlElement,\n fieldSelector: FieldSelectorControlElement,\n operatorSelector: OperatorSelectorControlElement,\n valueSourceSelector: ValueSourceSelectorControlElement,\n valueEditor: ValueEditorControlElement,\n cloneRuleAction: CloneRuleActionControlElement,\n lockRuleAction: LockRuleActionControlElement,\n removeRuleAction: RemoveRuleActionControlElement,\n },\n enableDragAndDrop,\n showCloneButtons,\n showLockButtons,\n showShiftActions,\n } = schema;\n\n const titles = useMemo(\n () => ({\n shiftUp: translations.shiftActionUp.title,\n shiftDown: translations.shiftActionDown.title,\n }),\n [translations.shiftActionDown.title, translations.shiftActionUp.title],\n );\n\n const labels = useMemo(\n () => ({\n shiftUp: translations.shiftActionUp.label,\n shiftDown: translations.shiftActionDown.label,\n }),\n [translations.shiftActionDown.label, translations.shiftActionUp.label],\n );\n\n const renderOperator =\n schema.autoSelectField ||\n rule.field !== translations.fields.placeholderName;\n\n const operator = useMemo(() => {\n if (renderOperator) {\n return (\n <div className={classNames?.rule?.operator}>\n <OperatorSelectorControlElement\n testID={TestID.operators}\n field={rule.field}\n fieldData={fieldData}\n title={translations.operators.title}\n options={operators}\n value={rule.operator}\n className={classNamesProp.operators}\n handleOnChange={generateOnChangeHandler('operator')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderOperator &&\n consistentColumns &&\n orientation === 'horizontal' ? (\n <div className={classNames?.rule?.operator} />\n ) : null;\n }, [\n OperatorSelectorControlElement,\n classNames?.rule?.operator,\n classNamesProp.operators,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n operators,\n path,\n renderOperator,\n rule,\n schema,\n translations.operators.title,\n validationResult,\n orientation,\n ]);\n\n const renderValue =\n renderOperator &&\n (schema.autoSelectOperator ||\n rule.operator !== translations.operators.placeholderName) &&\n !hideValueControls;\n\n const value = useMemo(() => {\n if (renderValue) {\n return (\n <div className={classNames?.rule?.values}>\n <ValueEditorControlElement\n testID={TestID.valueEditor}\n field={rule.field}\n fieldData={fieldData}\n title={translations.value.title}\n operator={rule.operator}\n value={rule.value}\n valueSource={rule.valueSource ?? 'value'}\n type={valueEditorType}\n inputType={inputType}\n values={values}\n listsAsArrays={schema.listsAsArrays}\n parseNumbers={schema.parseNumbers}\n separator={valueEditorSeparator}\n className={classNamesProp.value}\n handleOnChange={generateOnChangeHandler('value')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderValue && consistentColumns && orientation === 'horizontal' ? (\n <div className={classNames?.rule?.values} />\n ) : null;\n }, [\n ValueEditorControlElement,\n classNames?.rule?.values,\n classNamesProp.value,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n inputType,\n path,\n renderValue,\n rule,\n schema,\n translations.value.title,\n validationResult,\n valueEditorSeparator,\n valueEditorType,\n values,\n orientation,\n ]);\n\n const renderValueSources =\n renderValue &&\n !['null', 'notNull'].includes(rule.operator) &&\n valueSources.length > 1;\n\n const sources = useMemo(() => {\n if (renderValueSources) {\n return (\n <div className={classNames?.rule?.source}>\n <ValueSourceSelectorControlElement\n testID={TestID.valueSourceSelector}\n field={rule.field}\n fieldData={fieldData}\n title={translations.valueSourceSelector.title}\n options={valueSourceOptions}\n value={rule.valueSource ?? 'value'}\n className={classNamesProp.valueSource}\n handleOnChange={generateOnChangeHandler('valueSource')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderValueSources &&\n consistentColumns &&\n orientation === 'horizontal' ? (\n <div className={classNames?.rule?.source} />\n ) : null;\n }, [\n ValueSourceSelectorControlElement,\n classNames?.rule?.source,\n classNamesProp.valueSource,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n path,\n renderValueSources,\n rule,\n schema,\n translations.valueSourceSelector.title,\n validationResult,\n valueSourceOptions,\n orientation,\n ]);\n\n const core = useMemo(() => {\n const controls = (\n <>\n <div className={classNames?.rule?.field}>\n <FieldSelectorControlElement\n testID={TestID.fields}\n options={schema.fields}\n title={translations.fields.title}\n value={rule.field}\n operator={rule.operator}\n className={classNamesProp.fields}\n handleOnChange={generateOnChangeHandler('field')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n {operator}\n {sources}\n {value}\n </>\n );\n\n return orientation === 'horizontal' ? (\n controls\n ) : (\n <div className={classNames?.rule?.core}>{controls}</div>\n );\n }, [\n FieldSelectorControlElement,\n classNames?.rule?.core,\n classNames?.rule?.field,\n schema.fields,\n translations.fields.title,\n classNamesProp.fields,\n generateOnChangeHandler,\n path,\n disabled,\n context,\n validationResult,\n schema,\n rule,\n operator,\n sources,\n value,\n orientation,\n ]);\n\n return (\n <>\n {showShiftActions && (\n <div className={classNames?.rule?.shift}>\n <ShiftActionsControlElement\n testID={TestID.shiftActions}\n level={path.length}\n path={path}\n titles={titles}\n labels={labels}\n className={classNamesProp.shiftActions}\n disabled={disabled}\n shiftUp={shiftRuleUp}\n shiftDown={shiftRuleDown}\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={context}\n validation={validationResult}\n schema={schema}\n ruleOrGroup={rule}\n />\n </div>\n )}\n {enableDragAndDrop && (\n <div className={classNames?.rule?.drag}>\n <DragHandleControlElement\n testID={TestID.dragHandle}\n ref={dragRef}\n level={path.length}\n path={path}\n title={translations.dragHandle.title}\n label={translations.dragHandle.label}\n className={classNamesProp.dragHandle}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n ruleOrGroup={rule}\n />\n </div>\n )}\n {core}\n {showCloneButtons && (\n <div className={classNames?.rule?.clone}>\n <CloneRuleActionControlElement\n testID={TestID.cloneRule}\n label={translations.cloneRule.label}\n title={translations.cloneRule.title}\n className={classNamesProp.cloneRule}\n handleOnClick={cloneRule}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n )}\n {showLockButtons && (\n <div className={classNames?.rule?.lock}>\n <LockRuleActionControlElement\n testID={TestID.lockRule}\n label={translations.lockRule.label}\n title={translations.lockRule.title}\n className={classNamesProp.lockRule}\n handleOnClick={toggleLockRule}\n level={path.length}\n path={path}\n disabled={disabled}\n disabledTranslation={\n parentDisabled ? undefined : translations.lockRuleDisabled\n }\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n )}\n <div className={classNames?.rule?.remove}>\n <RemoveRuleActionControlElement\n testID={TestID.removeRule}\n label={translations.removeRule.label}\n title={translations.removeRule.title}\n className={classNamesProp.removeRule}\n handleOnClick={removeRule}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/query-builder/rule.tsx"],"names":[],"mappings":"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","file":"rule.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useContext, useMemo } from 'react';\nimport {\n type RuleProps,\n TestID,\n useRule,\n useStopEventPropagation,\n} from 'react-querybuilder';\nimport { inlineVars } from '../../utils/css';\nimport { AriaText } from '../aria';\nimport { QueryBuilderContext } from './constants';\nimport { queryBuilderRuleStateVars } from './query-builder.css';\nimport { getValidationResult } from './utils';\n\nexport function Rule(props: RuleProps) {\n const { classNames, orientation } = useContext(QueryBuilderContext);\n const rule = useRule(props);\n const cloneRule = useStopEventPropagation(rule.cloneRule);\n const toggleLockRule = useStopEventPropagation(rule.toggleLockRule);\n const removeRule = useStopEventPropagation(rule.removeRule);\n const shiftRuleUp = useStopEventPropagation(rule.shiftRuleUp);\n const shiftRuleDown = useStopEventPropagation(rule.shiftRuleDown);\n\n const { valid: isValid, reasons } = getValidationResult(\n props.rule,\n rule.fieldData?.validator,\n );\n\n const style = useMemo(\n () =>\n inlineVars(queryBuilderRuleStateVars, {\n orientation,\n isDisabled: rule.disabled,\n isDragging: rule.isDragging,\n isDropTarget: rule.isOver,\n }),\n [rule.disabled, rule.isDragging, rule.isOver, orientation],\n );\n\n return (\n <div className={classNames?.rule?.container} style={style}>\n <div\n ref={rule.dndRef}\n className={rule.outerClassName}\n data-dragmonitorid={rule.dragMonitorId}\n data-dropmonitorid={rule.dropMonitorId}\n data-level={rule.path.length}\n data-path={JSON.stringify(rule.path)}\n data-rule-id={rule.id}\n data-testid={TestID.rule}\n >\n <RuleComponents\n {...rule}\n cloneRule={cloneRule}\n removeRule={removeRule}\n shiftRuleDown={shiftRuleDown}\n shiftRuleUp={shiftRuleUp}\n toggleLockRule={toggleLockRule}\n />\n </div>\n {!isValid &&\n reasons?.map((reason) => (\n <AriaText key={reason} className={classNames?.rule?.error}>\n {reason}\n </AriaText>\n ))}\n </div>\n );\n}\n\nexport function RuleComponents({\n classNames: classNamesProp,\n cloneRule,\n context,\n disabled,\n dragRef,\n fieldData,\n generateOnChangeHandler,\n hideValueControls,\n inputType,\n operators,\n parentDisabled,\n path,\n removeRule,\n rule,\n schema,\n shiftDownDisabled,\n shiftUpDisabled,\n shiftRuleDown,\n shiftRuleUp,\n toggleLockRule,\n translations,\n validationResult,\n valueEditorSeparator,\n valueEditorType,\n valueSourceOptions,\n valueSources,\n values,\n}: RuleProps & ReturnType<typeof useRule>) {\n const { classNames, consistentColumns, orientation } =\n useContext(QueryBuilderContext);\n\n const {\n controls: {\n shiftActions: ShiftActionsControlElement,\n dragHandle: DragHandleControlElement,\n fieldSelector: FieldSelectorControlElement,\n operatorSelector: OperatorSelectorControlElement,\n valueSourceSelector: ValueSourceSelectorControlElement,\n valueEditor: ValueEditorControlElement,\n cloneRuleAction: CloneRuleActionControlElement,\n lockRuleAction: LockRuleActionControlElement,\n removeRuleAction: RemoveRuleActionControlElement,\n },\n enableDragAndDrop,\n showCloneButtons,\n showLockButtons,\n showShiftActions,\n } = schema;\n\n const titles = useMemo(\n () => ({\n shiftUp: translations.shiftActionUp.title,\n shiftDown: translations.shiftActionDown.title,\n }),\n [translations.shiftActionDown.title, translations.shiftActionUp.title],\n );\n\n const labels = useMemo(\n () => ({\n shiftUp: translations.shiftActionUp.label,\n shiftDown: translations.shiftActionDown.label,\n }),\n [translations.shiftActionDown.label, translations.shiftActionUp.label],\n );\n\n const renderOperator =\n schema.autoSelectField ||\n rule.field !== translations.fields.placeholderName;\n\n const operator = useMemo(() => {\n if (renderOperator) {\n return (\n <div className={classNames?.rule?.operator}>\n <OperatorSelectorControlElement\n testID={TestID.operators}\n field={rule.field}\n fieldData={fieldData}\n title={translations.operators.title}\n options={operators}\n value={rule.operator}\n className={classNamesProp.operators}\n handleOnChange={generateOnChangeHandler('operator')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderOperator &&\n consistentColumns &&\n orientation === 'horizontal' ? (\n <div className={classNames?.rule?.operator} />\n ) : null;\n }, [\n OperatorSelectorControlElement,\n classNames?.rule?.operator,\n classNamesProp.operators,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n operators,\n path,\n renderOperator,\n rule,\n schema,\n translations.operators.title,\n validationResult,\n orientation,\n ]);\n\n const renderValue =\n renderOperator &&\n (schema.autoSelectOperator ||\n rule.operator !== translations.operators.placeholderName) &&\n !hideValueControls;\n\n const value = useMemo(() => {\n if (renderValue) {\n return (\n <div className={classNames?.rule?.values}>\n <ValueEditorControlElement\n testID={TestID.valueEditor}\n field={rule.field}\n fieldData={fieldData}\n title={translations.value.title}\n operator={rule.operator}\n value={rule.value}\n valueSource={rule.valueSource ?? 'value'}\n type={valueEditorType}\n inputType={inputType}\n values={values}\n listsAsArrays={schema.listsAsArrays}\n parseNumbers={schema.parseNumbers}\n separator={valueEditorSeparator}\n className={classNamesProp.value}\n handleOnChange={generateOnChangeHandler('value')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderValue && consistentColumns && orientation === 'horizontal' ? (\n <div className={classNames?.rule?.values} />\n ) : null;\n }, [\n ValueEditorControlElement,\n classNames?.rule?.values,\n classNamesProp.value,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n inputType,\n path,\n renderValue,\n rule,\n schema,\n translations.value.title,\n validationResult,\n valueEditorSeparator,\n valueEditorType,\n values,\n orientation,\n ]);\n\n const renderValueSources =\n renderValue &&\n !['null', 'notNull'].includes(rule.operator) &&\n valueSources.length > 1;\n\n const sources = useMemo(() => {\n if (renderValueSources) {\n return (\n <div className={classNames?.rule?.source}>\n <ValueSourceSelectorControlElement\n testID={TestID.valueSourceSelector}\n field={rule.field}\n fieldData={fieldData}\n title={translations.valueSourceSelector.title}\n options={valueSourceOptions}\n value={rule.valueSource ?? 'value'}\n className={classNamesProp.valueSource}\n handleOnChange={generateOnChangeHandler('valueSource')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n );\n }\n\n return !renderValueSources &&\n consistentColumns &&\n orientation === 'horizontal' ? (\n <div className={classNames?.rule?.source} />\n ) : null;\n }, [\n ValueSourceSelectorControlElement,\n classNames?.rule?.source,\n classNamesProp.valueSource,\n consistentColumns,\n context,\n disabled,\n fieldData,\n generateOnChangeHandler,\n path,\n renderValueSources,\n rule,\n schema,\n translations.valueSourceSelector.title,\n validationResult,\n valueSourceOptions,\n orientation,\n ]);\n\n const core = useMemo(() => {\n const controls = (\n <>\n <div className={classNames?.rule?.field}>\n <FieldSelectorControlElement\n testID={TestID.fields}\n options={schema.fields}\n title={translations.fields.title}\n value={rule.field}\n operator={rule.operator}\n className={classNamesProp.fields}\n handleOnChange={generateOnChangeHandler('field')}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n rule={rule}\n />\n </div>\n {operator}\n {sources}\n {value}\n </>\n );\n\n return orientation === 'horizontal' ? (\n controls\n ) : (\n <div className={classNames?.rule?.core}>{controls}</div>\n );\n }, [\n FieldSelectorControlElement,\n classNames?.rule?.core,\n classNames?.rule?.field,\n schema.fields,\n translations.fields.title,\n classNamesProp.fields,\n generateOnChangeHandler,\n path,\n disabled,\n context,\n validationResult,\n schema,\n rule,\n operator,\n sources,\n value,\n orientation,\n ]);\n\n return (\n <>\n {showShiftActions && (\n <div className={classNames?.rule?.shift}>\n <ShiftActionsControlElement\n testID={TestID.shiftActions}\n level={path.length}\n path={path}\n titles={titles}\n labels={labels}\n className={classNamesProp.shiftActions}\n disabled={disabled}\n shiftUp={shiftRuleUp}\n shiftDown={shiftRuleDown}\n shiftUpDisabled={shiftUpDisabled}\n shiftDownDisabled={shiftDownDisabled}\n context={context}\n validation={validationResult}\n schema={schema}\n ruleOrGroup={rule}\n />\n </div>\n )}\n {enableDragAndDrop && (\n <div className={classNames?.rule?.drag}>\n <DragHandleControlElement\n testID={TestID.dragHandle}\n ref={dragRef}\n level={path.length}\n path={path}\n title={translations.dragHandle.title}\n label={translations.dragHandle.label}\n className={classNamesProp.dragHandle}\n disabled={disabled}\n context={context}\n validation={validationResult}\n schema={schema}\n ruleOrGroup={rule}\n />\n </div>\n )}\n {core}\n {showCloneButtons && (\n <div className={classNames?.rule?.clone}>\n <CloneRuleActionControlElement\n testID={TestID.cloneRule}\n label={translations.cloneRule.label}\n title={translations.cloneRule.title}\n className={classNamesProp.cloneRule}\n handleOnClick={cloneRule}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n )}\n {showLockButtons && (\n <div className={classNames?.rule?.lock}>\n <LockRuleActionControlElement\n testID={TestID.lockRule}\n label={translations.lockRule.label}\n title={translations.lockRule.title}\n className={classNamesProp.lockRule}\n handleOnClick={toggleLockRule}\n level={path.length}\n path={path}\n disabled={disabled}\n disabledTranslation={\n parentDisabled ? undefined : translations.lockRuleDisabled\n }\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n )}\n <div className={classNames?.rule?.remove}>\n <RemoveRuleActionControlElement\n testID={TestID.removeRule}\n label={translations.removeRule.label}\n title={translations.removeRule.title}\n className={classNamesProp.removeRule}\n handleOnClick={removeRule}\n level={path.length}\n path={path}\n disabled={disabled}\n context={context}\n validation={validationResult}\n ruleOrGroup={rule}\n schema={schema}\n />\n </div>\n </>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/query-builder/utils.ts"],"names":[],"mappings":";;;AA2BO,IAAM,iBAAA,GAAoB,CAAC,KAAA,MAC/B;AAAA,EACC,GAAG,KAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,eAAA,EAAiB;AACnB,CAAA;AAoBK,IAAM,mBAAA,GAAsB,CACjC,IAAA,EACA,SAAA,KACqB;AACrB,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,OAAO,EAAE,OAAO,IAAA,EAAK;AAAA;AAGvB,EAAA,MAAM,MAAA,GAAS,UAAU,IAAI,CAAA;AAE7B,EAAA,IAAI,OAAO,WAAW,SAAA,EAAW;AAC/B,IAAA,OAAO,EAAE,OAAO,MAAA,EAAO;AAAA;AAGzB,EAAA,OAAO;AAAA,IACL,OAAO,MAAA,CAAO,KAAA;AAAA,IACd,OAAA,EAAS,MAAA,CAAO,KAAA,GAAQ,KAAK,MAAA,CAAO;AAAA,GACtC;AACF","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { noop } from '@accelint/core';\nimport type { PressEvent } from '@react-types/shared';\nimport type { MouseEvent } from 'react';\nimport type {\n RuleType,\n RuleValidator,\n ValidationResult,\n} from 'react-querybuilder';\n\n/**\n * This is required because the design system Button supports an onPress event but\n * QueryBuilder provides a callback that expects a MouseEvent and will error\n * out if preventDefault is not available as a method.\n * @param event\n */\nexport const pressToMouseEvent = (event: PressEvent) =>\n ({\n ...event,\n preventDefault: noop,\n stopPropagation: noop,\n }) as unknown as MouseEvent;\n\n/**\n * Validates according to the validator function\n *\n * For single-value rules (e.g. 5 is a number), validator function should provide a single conditional\n * const singleValidator = z.string().min(1);\n *\n * For multi-value rules (e.g. using operators such as \"between\" or \"during), validator func can optionally\n * be a union conditional https://zod.dev/?id=unions to allow validation against either a single value or multiple.\n * Right and left validators in the tuple do not need to be the same.\n *\n * const multiValidator = z.union([\n * singleValidator,\n * z.tuple([singleValidator, singleValidator])\n * ])\n *\n * @param rule\n * @param validator\n */\nexport const getValidationResult = (\n rule: RuleType,\n validator?: RuleValidator,\n): ValidationResult => {\n if (!validator) {\n return { valid: true };\n }\n\n const result = validator(rule);\n\n if (typeof result === 'boolean') {\n return { valid: result };\n }\n\n return {\n valid: result.valid,\n reasons: result.valid ? [] : result.reasons,\n };\n};\n"]}
1
+ {"version":3,"sources":["../../../src/components/query-builder/utils.ts"],"names":[],"mappings":";;;AA2BO,IAAM,iBAAA,GAAoB,CAAC,KAAA,MAC/B;AAAA,EACC,GAAG,KAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,eAAA,EAAiB;AACnB,CAAA;AAoBK,IAAM,mBAAA,GAAsB,CACjC,IAAA,EACA,SAAA,KACqB;AACrB,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,OAAO,EAAE,OAAO,IAAA,EAAK;AAAA,EACvB;AAEA,EAAA,MAAM,MAAA,GAAS,UAAU,IAAI,CAAA;AAE7B,EAAA,IAAI,OAAO,WAAW,SAAA,EAAW;AAC/B,IAAA,OAAO,EAAE,OAAO,MAAA,EAAO;AAAA,EACzB;AAEA,EAAA,OAAO;AAAA,IACL,OAAO,MAAA,CAAO,KAAA;AAAA,IACd,OAAA,EAAS,MAAA,CAAO,KAAA,GAAQ,KAAK,MAAA,CAAO;AAAA,GACtC;AACF","file":"utils.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { noop } from '@accelint/core';\nimport type { PressEvent } from '@react-types/shared';\nimport type { MouseEvent } from 'react';\nimport type {\n RuleType,\n RuleValidator,\n ValidationResult,\n} from 'react-querybuilder';\n\n/**\n * This is required because the design system Button supports an onPress event but\n * QueryBuilder provides a callback that expects a MouseEvent and will error\n * out if preventDefault is not available as a method.\n * @param event\n */\nexport const pressToMouseEvent = (event: PressEvent) =>\n ({\n ...event,\n preventDefault: noop,\n stopPropagation: noop,\n }) as unknown as MouseEvent;\n\n/**\n * Validates according to the validator function\n *\n * For single-value rules (e.g. 5 is a number), validator function should provide a single conditional\n * const singleValidator = z.string().min(1);\n *\n * For multi-value rules (e.g. using operators such as \"between\" or \"during), validator func can optionally\n * be a union conditional https://zod.dev/?id=unions to allow validation against either a single value or multiple.\n * Right and left validators in the tuple do not need to be the same.\n *\n * const multiValidator = z.union([\n * singleValidator,\n * z.tuple([singleValidator, singleValidator])\n * ])\n *\n * @param rule\n * @param validator\n */\nexport const getValidationResult = (\n rule: RuleType,\n validator?: RuleValidator,\n): ValidationResult => {\n if (!validator) {\n return { valid: true };\n }\n\n const result = validator(rule);\n\n if (typeof result === 'boolean') {\n return { valid: result };\n }\n\n return {\n valid: result.valid,\n reasons: result.valid ? [] : result.reasons,\n };\n};\n"]}