@accelint/design-system 0.11.1 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/aria/index.d.ts +4 -4
- package/dist/components/aria/index.js.map +1 -1
- package/dist/components/button/index.d.ts +3 -3
- package/dist/components/button/index.js +6 -1
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/date-field/index.js.map +1 -1
- package/dist/components/date-input/index.js.map +1 -1
- package/dist/components/dialog/index.d.ts +1 -1
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/element/index.js.map +1 -1
- package/dist/components/group/index.js.map +1 -1
- package/dist/components/icon/index.d.ts +1 -1
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/menu/index.js.map +1 -1
- package/dist/components/merge-provider/index.js.map +1 -1
- package/dist/components/options/index.js.map +1 -1
- package/dist/components/picker/index.js.map +1 -1
- package/dist/components/query-builder/group.js.map +1 -1
- package/dist/components/query-builder/index.js.map +1 -1
- package/dist/components/query-builder/rule.js.map +1 -1
- package/dist/components/query-builder/utils.js.map +1 -1
- package/dist/components/query-builder/value-editor.js.map +1 -1
- package/dist/components/query-builder/value-selector.js +3 -1
- package/dist/components/query-builder/value-selector.js.map +1 -1
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/text-field/index.d.ts +80 -8
- package/dist/components/textarea/index.js.map +1 -1
- package/dist/components/time-field/index.js.map +1 -1
- package/dist/components/tree/index.js.map +1 -1
- package/dist/components/tree/utils.js.map +1 -1
- package/dist/hooks/use-collection-render/index.js.map +1 -1
- package/dist/hooks/use-slot/index.js.map +1 -1
- package/dist/hooks/use-theme/index.js.map +1 -1
- package/dist/hooks/use-tree/index.js.map +1 -1
- package/dist/hooks/use-tree/utils.js.map +1 -1
- package/dist/hooks/use-update-effect/index.js.map +1 -1
- package/dist/ladle/actions.js.map +1 -1
- package/dist/test/setup.js +7 -7
- package/dist/test/setup.js.map +1 -1
- package/dist/utils/css/index.js.map +1 -1
- package/dist/utils/props/index.js.map +1 -1
- 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;
|
|
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":";;;;;;;;;;;;;;;;AAoEA,IAAM,cAAA,GAAiC;AAAA,EACrC,WAAA,EAAa;AAAA,IACX,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,IAAI,MAAA,CAAO;AAAA,GACb;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAI,QAAA,CAAS,EAAA;AAAA,IACb,IAAI,QAAA,CAAS;AAAA,GACf;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,IAAI,MAAA,CAAO;AAAA,GACb;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,IAAI,MAAA,CAAO;AAAA;AAEf,CAAA;AAEA,IAAM,WAAA,GAAc,IAAA;AAEb,IAAM,cAAA,GACX,cAAuD,IAAI;AAEtD,IAAM,OAAA,GAAU,UAAA,CAAW,SAASA,QAAAA,CACzC,OACA,GAAA,EACA;AACA,EAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,KAAA,EAAO,KAAK,cAAc,CAAA;AACzD,EAAA,KAAA,GAAQ,eAAA,CAAgB,OAAO,SAAS,CAAA;AAExC,EAAA,MAAM;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,UAAA,EAAY,cAAA;AAAA,IACZ,OAAA,EAAS,WAAA;AAAA,IACT,IAAA,GAAO,WAAA;AAAA,IACP,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,EAAA,MAAM,UAAA,GAAa,OAAA;AAAA,IACjB,MACE,eAAA,CAAgB,iBAAA,EAAmB,KAAA,CAAM,SAAS,cAAA,EAAgB;AAAA,MAChE,OAAA,EAAS;AAAA,QACP,WAAW,KAAA,CAAM;AAAA;AAAA;AACnB,KACD,CAAA;AAAA,IACH,CAAC,KAAA,CAAM,SAAA,EAAW,KAAA,CAAM,SAAS,cAAc;AAAA,GACjD;AAEA,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,KAAA,GAAQ,WAAA;AAAA,IACZ,CAAC,EAAE,GAAG,WAAA,EAAY,MAA2B;AAAA,MAC3C,GAAG,KAAA,CAAM,KAAA;AAAA;AAAA,MACT,GAAG,WAAW,gBAAA,EAAkB;AAAA,QAC9B,GAAG,WAAA;AAAA,QACH;AAAA,OACD;AAAA,KACH,CAAA;AAAA,IACA,CAAC,KAAA,CAAM,KAAA,EAAO,IAAI;AAAA,GACpB;AAEA,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IAQb,MAAM,CAAC,CAAC,kBAAA,EAAoB,EAAE,UAAA,EAAY,OAAA,EAAS,IAAA,EAAM,CAAC,CAAA;AAAA,IAC1D,CAAC,UAAA,EAAY,OAAA,EAAS,IAAI;AAAA,GAC5B;AAEA,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,WAAA,qBACC,GAAA,CAAC,QAAA,EAAA,EAAS,MAAA,EACR,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,EAAY,OAAA,EAAS,OAAA,EAClC,QAAA,EAAA,eAAA,CAAgB,YAAA,EAAc;AAAA,MAC7B,GAAG,WAAA;AAAA,MACH,IAAA;AAAA,MACA,eAAA,EAAiB;AAAA,KAClB,GACH,CAAA,EACF,CAAA;AAAA,IAEF,CAAC,YAAA,EAAc,UAAA,EAAY,OAAA,EAAS,OAAA,EAAS,MAAM,MAAM;AAAA,GAC3D;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MACA,SAAA,EAAW,YAAY,OAAA,EAAS,SAAA;AAAA,MAChC,KAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;AAEM,IAAM,kBAAA,GACX,cAAsE,IAAI;AAerE,IAAM,WAAA,GAAc,UAAA,CAAW,SAAS,UAAA,CAC7C,OACA,GAAA,EACA;AACA,EAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,KAAA,EAAO,KAAK,kBAAkB,CAAA;AAC7D,EAAA,KAAA,GAAQ,eAAA,CAAgB,OAAO,aAAa,CAAA;AAE5C,EAAA,MAAM;AAAA,IACJ,QAAA,EAAU,YAAA;AAAA,IACV,UAAA,EAAY,cAAA;AAAA,IACZ,KAAA;AAAA,IACA,OAAA,EAAS,WAAA;AAAA,IACT,aAAA,GAAgB,QAAA;AAAA,IAChB,IAAA,GAAO,WAAA;AAAA,IACP,YAAA,EAAc,SAAA;AAAA,IACd,iBAAA,EAAmB,cAAA;AAAA,IACnB,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,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,CAAgB,iBAAA,EAAmB,KAAA,CAAM,SAAS,cAAA,EAAgB;AAAA,MAChE,MAAM,EAAE,MAAA,EAAQ,OAAA,CAAQ,MAAA,CAAO,IAAI,CAAA;AAAE,KACtC,CAAA;AAAA,IACH,CAAC,KAAA,CAAM,OAAA,EAAS,cAAA,EAAgB,SAAS,IAAI;AAAA,GAC/C;AAEA,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IACb,MAAM;AAAA,MACJ,CAAC,kBAAA,EAAoB,EAAE,UAAA,EAAY,IAAA,EAAM,SAAS,CAAA;AAAA,MAClD,CAAC,kBAAA,EAAoB,EAAE,WAAW,UAAA,EAAY,IAAA,EAAM,SAAS,CAAA;AAAA,MAC7D,CAAC,iBAAA,EAAmB,EAAE,WAAW,UAAA,EAAY,IAAA,EAAM,QAAQ,CAAA;AAAA,MAC3D,CAAC,oBAAA,EAAsB,EAAE,WAAW,UAAA,EAAY,IAAA,EAAM,WAAW;AAAA,KACnE;AAAA,IACA,CAAC,UAAA,EAAY,IAAA,EAAM,OAAO;AAAA,GAC5B;AAEA,EAAA,MAAM,KAAA,GAAQ,WAAA;AAAA,IACZ,CAAC,gBACC,UAAA,CAAW,oBAAA,EAAsB,EAAE,GAAG,WAAA,EAAa,MAAM,CAAA;AAAA,IAC3D,CAAC,IAAI;AAAA,GACP;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,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,UAAA,EAAY,MAAM,IAAA,EACvC,QAAA,EAAA,OAAO,YAAA,KAAiB,UAAA,mBACvB,GAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAe,QAAA,EAAA,YAAA,EAAa,IAExC,YAAA,EAEJ,CAAA;AAAA,EAEJ,GAAG,CAAC,UAAA,EAAY,MAAM,IAAA,EAAM,YAAA,EAAc,KAAK,CAAC,CAAA;AAEhD,EAAA,MAAM,QAAA,GAAW,OAAA;AAAA;AAAA,IAEf,MAAM,wBAAA,CAAyB,gBAAA,EAAkB,MAAM,CAAA;AAAA,IACvD,CAAC,MAAM;AAAA,GACT;AAEA,EAAA,uBACE,GAAA,CAAC,0BAA0B,QAAA,EAA1B,EAAmC,OAAO,QAAA,EACzC,QAAA,kBAAA,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,aAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA,EAAY,SAAA;AAAA,MACZ,iBAAA,EAAiB,cAAA;AAAA,MAEhB;AAAA;AAAA,KAEL,CAAA,EACF,CAAA;AAEJ,CAAC;AAEM,IAAM,kBAAA,GACX,cAAsE,IAAI;AAErE,IAAM,WAAA,GAAc,UAAA,CAAW,SAAS,UAAA,CAC7C,OACA,GAAA,EACA;AACA,EAAA,CAAC,OAAO,GAAG,CAAA,GAAI,eAAA,CAAgB,KAAA,EAAO,KAAK,kBAAkB,CAAA;AAC7D,EAAA,KAAA,GAAQ,eAAA,CAAgB,OAAO,aAAa,CAAA;AAE5C,EAAA,MAAM;AAAA,IACJ,EAAA;AAAA,IACA,QAAA,EAAU,YAAA;AAAA,IACV,UAAA,EAAY,cAAA;AAAA,IACZ,OAAA,EAAS,WAAA;AAAA,IACT,IAAA,GAAO,WAAA;AAAA,IACP,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,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,CAAgB,iBAAA,EAAmB,cAAA,EAAgB,MAAM,OAAA,EAAS;AAAA,MAChE,IAAA,EAAM;AAAA,QACJ,WAAA,EAAa,OAAA,CAAQ,WAAA,CAAY,IAAI,CAAA;AAAA,QACrC,KAAA,EAAO,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAAA,QACzB,QAAA,EAAU,OAAA,CAAQ,QAAA,CAAS,IAAI;AAAA;AACjC,KACD,CAAA;AAAA,IACH,CAAC,KAAA,CAAM,OAAA,EAAS,cAAA,EAAgB,SAAS,IAAI;AAAA,GAC/C;AAEA,EAAA,MAAM,CAAC,cAAA,EAAgB,cAAc,CAAA,GAAI,OAAA,EAAQ;AAEjD,EAAA,MAAM,KAAA,GAAQ,WAAA;AAAA,IACZ,CAAC,WAAA,KACC,UAAA,CAAW,oBAAA,EAAsB;AAAA,MAC/B,GAAG,WAAA;AAAA,MACH,IAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,IACH,CAAC,gBAAgB,IAAI;AAAA,GACvB;AAEA,EAAA,MAAM,MAAA,GAAS,OAAA;AAAA,IAUb,MAAM;AAAA,MACJ;AAAA,QACE,eAAA;AAAA,QACA;AAAA,UACE,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,EAAE,SAAA,EAAW,UAAA,EAAY,MAAM,KAAA,EAAM;AAAA,YAC5C,WAAA,EAAa;AAAA,cACX,GAAA,EAAK,cAAA;AAAA,cACL,SAAA,EAAW,YAAY,IAAA,EAAM;AAAA;AAC/B;AACF;AACF,OACF;AAAA,MACA,CAAC,WAAA,EAAa,EAAE,YAAY,UAAA,EAAY,IAAA,EAAM,MAAM,CAAA;AAAA,MACpD,CAAC,mBAAA,EAAqB,EAAE,WAAW,UAAA,EAAY,IAAA,EAAM,UAAU;AAAA,KACjE;AAAA,IACA;AAAA,MACE,YAAY,IAAA,EAAM,KAAA;AAAA,MAClB,cAAA;AAAA,MACA,YAAY,IAAA,EAAM,WAAA;AAAA,MAClB,YAAY,IAAA,EAAM,IAAA;AAAA,MAClB,YAAY,IAAA,EAAM;AAAA;AACpB,GACF;AAEA,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,WAAA,KAAwC;AACvC,MAAA,MAAM,OAAA,GAAU,gBAAgB,YAAA,EAAc;AAAA,QAC5C,GAAG,WAAA;AAAA,QACH,IAAA;AAAA,QACA,eAAA,EAAiB;AAAA,OAClB,CAAA;AAED,MAAA,2BACG,QAAA,EAAA,EAAS,MAAA,EACR,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAY,IAAA,EAAM,IAAA,EAC/B,iBAAO,OAAA,KAAY,QAAA,uBACjB,QAAA,EAAA,EAAS,IAAA,EAAK,SAAS,QAAA,EAAA,OAAA,EAAQ,CAAA,GAEhC,SAEJ,CAAA,EACF,CAAA;AAAA,IAEJ,CAAA;AAAA,IACA,CAAC,YAAA,EAAc,UAAA,EAAY,IAAA,EAAM,IAAA,EAAM,MAAM,MAAM;AAAA,GACrD;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,IAAI,EAAA,IAAM,SAAA;AAAA,MACV,GAAA;AAAA,MACA,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 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":";;;;;;;;;;;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;
|
|
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}\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":"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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 +1 @@
|
|
|
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
|
+
{"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;
|
|
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"]}
|