@accelint/design-system 0.12.1 → 0.12.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.
@@ -35,15 +35,19 @@ var defaultMapping = {
35
35
  var defaultSize = "lg";
36
36
  var OptionsContext = createContext(null);
37
37
  var Options = forwardRef(function Options2(props, ref) {
38
- [props, ref] = useContextProps(props, ref, OptionsContext);
39
- props = useDefaultProps(props, "Options");
38
+ const [resolvedProps, resolvedRef] = useContextProps(
39
+ props,
40
+ ref,
41
+ OptionsContext
42
+ );
43
+ const finalProps = useDefaultProps(resolvedProps, "Options");
40
44
  const {
41
45
  children: childrenProp,
42
46
  classNames: classNamesProp,
43
47
  mapping: mappingProp,
44
48
  size = defaultSize,
45
49
  ...rest
46
- } = props;
50
+ } = finalProps;
47
51
  const theme = useTheme();
48
52
  const classNames = useMemo(
49
53
  () => mergeClassNames(optionsClassNames, theme.Options, classNamesProp, {
@@ -88,7 +92,7 @@ var Options = forwardRef(function Options2(props, ref) {
88
92
  Popover,
89
93
  {
90
94
  ...rest,
91
- ref,
95
+ ref: resolvedRef,
92
96
  className: classNames?.options?.container,
93
97
  style,
94
98
  children
@@ -97,8 +101,12 @@ var Options = forwardRef(function Options2(props, ref) {
97
101
  });
98
102
  var OptionsListContext = createContext(null);
99
103
  var OptionsList = forwardRef(function OptionList(props, ref) {
100
- [props, ref] = useContextProps(props, ref, OptionsListContext);
101
- props = useDefaultProps(props, "OptionsList");
104
+ const [resolvedProps, resolvedRef] = useContextProps(
105
+ props,
106
+ ref,
107
+ OptionsListContext
108
+ );
109
+ const finalProps = useDefaultProps(resolvedProps, "OptionsList");
102
110
  const {
103
111
  children: childrenProp,
104
112
  classNames: classNamesProp,
@@ -109,7 +117,7 @@ var OptionsList = forwardRef(function OptionList(props, ref) {
109
117
  "aria-label": ariaLabel,
110
118
  "aria-labelledby": ariaLabelledBy,
111
119
  ...rest
112
- } = props;
120
+ } = finalProps;
113
121
  const theme = useTheme();
114
122
  const mapping = useMemo(
115
123
  () => ({
@@ -152,7 +160,7 @@ var OptionsList = forwardRef(function OptionList(props, ref) {
152
160
  ListBox,
153
161
  {
154
162
  ...rest,
155
- ref,
163
+ ref: resolvedRef,
156
164
  className: classNames?.list?.container,
157
165
  items,
158
166
  selectionMode,
@@ -165,8 +173,12 @@ var OptionsList = forwardRef(function OptionList(props, ref) {
165
173
  });
166
174
  var OptionsItemContext = createContext(null);
167
175
  var OptionsItem = forwardRef(function OptionItem(props, ref) {
168
- [props, ref] = useContextProps(props, ref, OptionsItemContext);
169
- props = useDefaultProps(props, "OptionsItem");
176
+ const [resolvedProps, resolvedRef] = useContextProps(
177
+ props,
178
+ ref,
179
+ OptionsItemContext
180
+ );
181
+ const finalProps = useDefaultProps(resolvedProps, "OptionsItem");
170
182
  const {
171
183
  id,
172
184
  children: childrenProp,
@@ -175,7 +187,7 @@ var OptionsItem = forwardRef(function OptionItem(props, ref) {
175
187
  size = defaultSize,
176
188
  textValue = typeof childrenProp === "string" ? childrenProp : void 0,
177
189
  ...rest
178
- } = props;
190
+ } = finalProps;
179
191
  const theme = useTheme();
180
192
  const mapping = useMemo(
181
193
  () => ({
@@ -244,7 +256,7 @@ var OptionsItem = forwardRef(function OptionItem(props, ref) {
244
256
  {
245
257
  ...rest,
246
258
  id: id ?? textValue,
247
- ref,
259
+ ref: resolvedRef,
248
260
  className: classNames?.item?.container,
249
261
  style,
250
262
  textValue,
@@ -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}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/options/index.tsx"],"names":["Options"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n type HTMLAttributes,\n type Ref,\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 const [resolvedProps, resolvedRef] = useContextProps(\n props,\n ref,\n OptionsContext,\n );\n const finalProps = useDefaultProps(resolvedProps, 'Options');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n mapping: mappingProp,\n size = defaultSize,\n ...rest\n } = finalProps;\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={resolvedRef}\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 const [resolvedProps, resolvedRef] = useContextProps(\n props,\n ref,\n OptionsListContext,\n );\n const finalProps = useDefaultProps(resolvedProps, '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 } = finalProps;\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={resolvedRef}\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 const [resolvedProps, resolvedRef] = useContextProps(\n props,\n ref,\n OptionsItemContext,\n );\n const finalProps = useDefaultProps(resolvedProps, '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 } = finalProps;\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={resolvedRef as unknown as Ref<T>}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
@@ -12,8 +12,12 @@ import { jsx } from 'react/jsx-runtime';
12
12
  var PickerContext = createContext(null);
13
13
  var PickerItemContext = createContext(null);
14
14
  var Picker = forwardRef(function Picker2(props, ref) {
15
- [props, ref] = useContextProps(props, ref, PickerContext);
16
- props = useDefaultProps(props, "Picker");
15
+ const [resolvedProps, resolvedRef] = useContextProps(
16
+ props,
17
+ ref,
18
+ PickerContext
19
+ );
20
+ const finalProps = useDefaultProps(resolvedProps, "Picker");
17
21
  const {
18
22
  children: childrenProp,
19
23
  classNames: classNamesProp,
@@ -25,7 +29,7 @@ var Picker = forwardRef(function Picker2(props, ref) {
25
29
  "aria-label": ariaLabel,
26
30
  "aria-labelledby": ariaLabelledBy,
27
31
  ...rest
28
- } = props;
32
+ } = finalProps;
29
33
  const theme = useTheme();
30
34
  const classNames = useMemo(
31
35
  () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),
@@ -59,7 +63,7 @@ var Picker = forwardRef(function Picker2(props, ref) {
59
63
  ListBox,
60
64
  {
61
65
  ...rest,
62
- ref,
66
+ ref: resolvedRef,
63
67
  className: classNames?.list?.container,
64
68
  items,
65
69
  layout,
@@ -73,14 +77,18 @@ var Picker = forwardRef(function Picker2(props, ref) {
73
77
  ) });
74
78
  });
75
79
  var PickerItem = forwardRef(function PickerItem2(props, ref) {
76
- [props, ref] = useContextProps(props, ref, PickerItemContext);
80
+ const [resolvedProps, resolvedRef] = useContextProps(
81
+ props,
82
+ ref,
83
+ PickerItemContext
84
+ );
77
85
  const {
78
86
  children: childrenProp,
79
87
  id,
80
88
  classNames: classNamesProp,
81
89
  textValue = typeof childrenProp === "string" ? childrenProp : void 0,
82
90
  ...rest
83
- } = props;
91
+ } = resolvedProps;
84
92
  const theme = useTheme();
85
93
  const classNames = useMemo(
86
94
  () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),
@@ -101,7 +109,7 @@ var PickerItem = forwardRef(function PickerItem2(props, ref) {
101
109
  ListBoxItem,
102
110
  {
103
111
  ...rest,
104
- ref,
112
+ ref: resolvedRef,
105
113
  id: id ?? textValue,
106
114
  className: classNames?.item?.container,
107
115
  style,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/picker/index.tsx"],"names":["Picker","PickerItem"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n type ForwardedRef,\n createContext,\n forwardRef,\n useCallback,\n useMemo,\n} from 'react';\nimport {\n Collection,\n type ContextValue,\n ListBox,\n ListBoxItem,\n type ListBoxItemRenderProps,\n type ListBoxRenderProps,\n Provider,\n Section,\n} from 'react-aria-components';\nimport { useContextProps } from '../../hooks/use-context-props';\nimport { useDefaultProps } from '../../hooks/use-defaults';\nimport { useTheme } from '../../hooks/use-theme';\nimport { inlineVars } from '../../utils/css';\nimport { callRenderProps, mergeClassNames } from '../../utils/props';\nimport {\n pickerClassNames,\n pickerItemStateVars,\n pickerStateVars,\n} from './picker.css';\nimport type { PickerItemProps, PickerProps } from './types';\n\nexport const PickerContext =\n createContext<ContextValue<PickerProps<unknown>, HTMLDivElement>>(null);\n\nexport const PickerItemContext =\n createContext<ContextValue<PickerItemProps<unknown>, HTMLDivElement>>(null);\n\n/**\n * Generic stylable picker that supports the functionality (sans drag and drop) of\n * React Aria's ListBox: https://react-spectrum.adobe.com/react-aria/ListBox.html\n *\n * NOTE: The picker items does not support sections or separators\n */\nexport const Picker = forwardRef(function Picker<T extends object>(\n props: PickerProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerContext);\n\n props = useDefaultProps(props, 'Picker');\n\n const {\n children: childrenProp,\n classNames: classNamesProp,\n columns,\n items,\n layout = 'stack',\n orientation = 'horizontal',\n selectionMode = 'single',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const values = useMemo<\n [\n [\n typeof PickerItemContext,\n ContextValue<PickerItemProps<unknown>, HTMLDivElement>,\n ],\n ]\n >(() => [[PickerItemContext, { classNames }]], [classNames]);\n\n const style = useCallback(\n ({ state, ...renderProps }: ListBoxRenderProps) =>\n inlineVars(pickerStateVars, {\n ...renderProps,\n columns,\n layout,\n orientation,\n }),\n [columns, layout, orientation],\n );\n\n const children = useMemo(() => {\n if (!(childrenProp || items)) {\n return null;\n }\n\n return (\n <Section\n className={classNames?.list?.list}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {typeof childrenProp === 'function' ? (\n <Collection items={items}>{childrenProp}</Collection>\n ) : (\n childrenProp\n )}\n </Section>\n );\n }, [childrenProp, items, classNames?.list?.list, ariaLabel, ariaLabelledBy]);\n\n return (\n <Provider values={values}>\n <ListBox<T>\n {...rest}\n ref={ref}\n className={classNames?.list?.container}\n items={items}\n layout={layout}\n orientation={orientation}\n selectionMode={selectionMode}\n style={style}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {children}\n </ListBox>\n </Provider>\n );\n});\n\nexport const PickerItem = forwardRef(function PickerItem<T extends object>(\n props: PickerItemProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n [props, ref] = useContextProps(props, ref, PickerItemContext);\n\n const {\n children: childrenProp,\n id,\n classNames: classNamesProp,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = props;\n\n const theme = useTheme();\n\n const classNames = useMemo(\n () => mergeClassNames(pickerClassNames, theme.Picker, classNamesProp),\n [theme.Picker, classNamesProp],\n );\n\n const style = useCallback(\n (renderProps: ListBoxItemRenderProps) =>\n inlineVars(pickerItemStateVars, renderProps),\n [],\n );\n\n const children = useCallback(\n (renderProps: ListBoxItemRenderProps) => (\n <div className={classNames?.item?.item}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n defaultChildren: null,\n })}\n </div>\n ),\n [childrenProp, classNames?.item?.item],\n );\n\n return (\n <ListBoxItem<T>\n {...rest}\n ref={ref}\n id={id ?? textValue}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/picker/index.tsx"],"names":["Picker","PickerItem"],"mappings":"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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 Ref,\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 const [resolvedProps, resolvedRef] = useContextProps(\n props,\n ref,\n PickerContext,\n );\n\n const finalProps = useDefaultProps(resolvedProps, '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 } = finalProps;\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={resolvedRef}\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 const [resolvedProps, resolvedRef] = useContextProps(\n props,\n ref,\n PickerItemContext,\n );\n\n const {\n children: childrenProp,\n id,\n classNames: classNamesProp,\n textValue = typeof childrenProp === 'string' ? childrenProp : undefined,\n ...rest\n } = resolvedProps;\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={resolvedRef as unknown as Ref<T>}\n id={id ?? textValue}\n className={classNames?.item?.container}\n style={style}\n textValue={textValue}\n >\n {children}\n </ListBoxItem>\n );\n});\n"]}
@@ -188,6 +188,7 @@ function RuleGroupHeaderComponents(ruleGroup) {
188
188
  className: ruleGroup.classNames.combinators,
189
189
  handleOnChange: ruleGroup.onCombinatorChange,
190
190
  rules: ruleGroup.ruleGroup.rules,
191
+ ruleGroup: ruleGroup.ruleGroup,
191
192
  level: ruleGroup.path.length,
192
193
  path: ruleGroup.path,
193
194
  disabled: ruleGroup.disabled,
@@ -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 ruleGroup={ruleGroup.ruleGroup}\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":["../../../node_modules/.pnpm/@ladle+react@4.1.2_@swc+helpers@0.5.17_@types+node@24.2.0_@types+react@19.1.9_acorn@8.1_6ff39e1e721d442b059118618a41a0c4/node_modules/@ladle/react/lib/app/exports.ts","../../src/ladle/actions.ts"],"names":[],"mappings":";;;;;;AA+CO,IAAM,MAAA,GAAS,CAAC,IAAA,KAAiB;AACtC,EAAA,MAAM,WAAY,MAAA,CACf,aAAA;AACH,EAAA,OAAO,CAAC,KAAA,GAAa,MAAA,KACnB,QAAA,CAAS;AAAA,IACP,MAAM,UAAA,CAAW,YAAA;AAAA,IACjB,KAAA,EAAO,EAAE,IAAA,EAAM,KAAA,EAAM;AAAA,IACrB,KAAA,EAAO;AAAA,GACR,CAAA;AACL,CAAA;;;ACtDO,SAAS,WAAc,IAAA,EAA+B;AAC3D,EAAA,OAAO,IAAA,CAAK,MAAA,CAAmB,CAAC,GAAA,EAAK,GAAA,KAAQ;AAC3C,IAAA,GAAA,CAAI,GAAG,CAAA,GAAI,MAAA,CAAO,GAAa,CAAA;AAE/B,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AACP","file":"actions.js","sourcesContent":["import type * as React from \"react\";\nimport { useLadleContext } from \"./src/context\";\nimport {\n StoryDecorator,\n ActionType,\n GlobalState,\n ThemeState,\n ModeState,\n GlobalAction,\n Config,\n KnownMeta,\n MetaJson as BaseMetaJson,\n MetaJsonStory as BaseMetaJsonStory,\n} from \"../shared/types\";\n\nimport * as msw from \"msw\";\nexport { msw };\n\nexport type { UserConfig } from \"../shared/types\";\nexport { useMDXComponents } from \"@mdx-js/react\";\nexport const Story = (props: any) => props.children;\nexport const Meta = (props: any) => props.children;\nexport const Description = (props: any) => props.children;\n\ntype ReactNodeWithoutObject =\n | React.ReactElement\n | string\n | number\n | boolean\n | null\n | undefined;\n\nexport { useLadleContext, ActionType, ThemeState, ModeState };\nexport type { StoryDecorator };\n\n// deprecated, linkTo is just easier to use\nexport const useLink = () => {\n const { dispatch } = useLadleContext();\n return (value: string) => dispatch({ type: ActionType.UpdateStory, value });\n};\n\nexport const linkTo = (value: string) => {\n const dispatch = (window as any)\n .ladleDispatch as React.Dispatch<GlobalAction>;\n return () => dispatch({ type: ActionType.UpdateStory, value });\n};\n\nexport const action = (name: string) => {\n const dispatch = (window as any)\n .ladleDispatch as React.Dispatch<GlobalAction>;\n return (event: any = undefined) =>\n dispatch({\n type: ActionType.UpdateAction,\n value: { name, event },\n clear: false,\n });\n};\n\nexport type GlobalProvider = React.FC<{\n globalState: GlobalState;\n dispatch: React.Dispatch<GlobalAction>;\n config: Config;\n children: ReactNodeWithoutObject;\n storyMeta?: Meta;\n}>;\n\nexport type SourceHeader = React.FC<{\n path: string;\n locStart: number;\n locEnd: number;\n}>;\n\nexport interface StoryDefault<P = {}> {\n args?: Args<P>;\n argTypes?: ArgTypes<P>;\n decorators?: StoryDecorator<P>[];\n meta?: Meta;\n title?: string;\n msw?: msw.RequestHandler[];\n parameters?: { [key: string]: any };\n}\n\nexport interface Story<P = {}> extends React.FC<P> {\n args?: Args<P>;\n argTypes?: ArgTypes<P>;\n decorators?: StoryDecorator<P>[];\n meta?: Meta;\n storyName?: string;\n msw?: msw.RequestHandler[];\n parameters?: { [key: string]: any };\n}\n\nexport type Args<\n P = {\n [key: string]: any;\n },\n> = Partial<P>;\n\nexport type ControlType =\n | \"select\"\n | \"multi-select\"\n | \"radio\"\n | \"inline-radio\"\n | \"check\"\n | \"inline-check\"\n | \"background\"\n | \"color\"\n | \"date\"\n | \"number\"\n | \"text\"\n | \"boolean\"\n | \"range\";\n\nexport interface ArgType<K = any> {\n control?: {\n name?: string;\n labels?: { [key: string]: string };\n type: ControlType;\n min?: number;\n max?: number;\n step?: number;\n [key: string]: any;\n };\n mapping?: { [key: string | number]: any };\n options?: K[] | unknown;\n defaultValue?: K;\n description?: string;\n name?: string;\n action?: string;\n [key: string]: any;\n}\n\nexport type ArgTypes<\n P = {\n [key: string]: any;\n },\n> = {\n [key in keyof P]?: ArgType<P[key]>;\n};\n\nexport interface Meta extends KnownMeta {\n [key: string]: any;\n}\n\nexport type MetaJson = BaseMetaJson<Meta>;\nexport type MetaJsonStory = BaseMetaJsonStory<Meta>;\n","import { action } from '@ladle/react';\n\nexport function actions<T>(...keys: (keyof T)[]): Partial<T> {\n return keys.reduce<Partial<T>>((acc, key) => {\n acc[key] = action(key as string) as T[keyof T];\n\n return acc;\n }, {});\n}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/@ladle+react@4.1.2_@swc+helpers@0.5.17_@types+node@24.6.2_@types+react@19.1.1_react-dom_78f74e33c18b8483375dd9508e517c6a/node_modules/@ladle/react/lib/app/exports.ts","../../src/ladle/actions.ts"],"names":[],"mappings":";;;;;;AA+CO,IAAM,MAAA,GAAS,CAAC,IAAA,KAAiB;AACtC,EAAA,MAAM,WAAY,MAAA,CACf,aAAA;AACH,EAAA,OAAO,CAAC,KAAA,GAAa,MAAA,KACnB,QAAA,CAAS;AAAA,IACP,MAAM,UAAA,CAAW,YAAA;AAAA,IACjB,KAAA,EAAO,EAAE,IAAA,EAAM,KAAA,EAAM;AAAA,IACrB,KAAA,EAAO;AAAA,GACR,CAAA;AACL,CAAA;;;ACtDO,SAAS,WAAc,IAAA,EAA+B;AAC3D,EAAA,OAAO,IAAA,CAAK,MAAA,CAAmB,CAAC,GAAA,EAAK,GAAA,KAAQ;AAC3C,IAAA,GAAA,CAAI,GAAG,CAAA,GAAI,MAAA,CAAO,GAAa,CAAA;AAE/B,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AACP","file":"actions.js","sourcesContent":["import type * as React from \"react\";\nimport { useLadleContext } from \"./src/context\";\nimport {\n StoryDecorator,\n ActionType,\n GlobalState,\n ThemeState,\n ModeState,\n GlobalAction,\n Config,\n KnownMeta,\n MetaJson as BaseMetaJson,\n MetaJsonStory as BaseMetaJsonStory,\n} from \"../shared/types\";\n\nimport * as msw from \"msw\";\nexport { msw };\n\nexport type { UserConfig } from \"../shared/types\";\nexport { useMDXComponents } from \"@mdx-js/react\";\nexport const Story = (props: any) => props.children;\nexport const Meta = (props: any) => props.children;\nexport const Description = (props: any) => props.children;\n\ntype ReactNodeWithoutObject =\n | React.ReactElement\n | string\n | number\n | boolean\n | null\n | undefined;\n\nexport { useLadleContext, ActionType, ThemeState, ModeState };\nexport type { StoryDecorator };\n\n// deprecated, linkTo is just easier to use\nexport const useLink = () => {\n const { dispatch } = useLadleContext();\n return (value: string) => dispatch({ type: ActionType.UpdateStory, value });\n};\n\nexport const linkTo = (value: string) => {\n const dispatch = (window as any)\n .ladleDispatch as React.Dispatch<GlobalAction>;\n return () => dispatch({ type: ActionType.UpdateStory, value });\n};\n\nexport const action = (name: string) => {\n const dispatch = (window as any)\n .ladleDispatch as React.Dispatch<GlobalAction>;\n return (event: any = undefined) =>\n dispatch({\n type: ActionType.UpdateAction,\n value: { name, event },\n clear: false,\n });\n};\n\nexport type GlobalProvider = React.FC<{\n globalState: GlobalState;\n dispatch: React.Dispatch<GlobalAction>;\n config: Config;\n children: ReactNodeWithoutObject;\n storyMeta?: Meta;\n}>;\n\nexport type SourceHeader = React.FC<{\n path: string;\n locStart: number;\n locEnd: number;\n}>;\n\nexport interface StoryDefault<P = {}> {\n args?: Args<P>;\n argTypes?: ArgTypes<P>;\n decorators?: StoryDecorator<P>[];\n meta?: Meta;\n title?: string;\n msw?: msw.RequestHandler[];\n parameters?: { [key: string]: any };\n}\n\nexport interface Story<P = {}> extends React.FC<P> {\n args?: Args<P>;\n argTypes?: ArgTypes<P>;\n decorators?: StoryDecorator<P>[];\n meta?: Meta;\n storyName?: string;\n msw?: msw.RequestHandler[];\n parameters?: { [key: string]: any };\n}\n\nexport type Args<\n P = {\n [key: string]: any;\n },\n> = Partial<P>;\n\nexport type ControlType =\n | \"select\"\n | \"multi-select\"\n | \"radio\"\n | \"inline-radio\"\n | \"check\"\n | \"inline-check\"\n | \"background\"\n | \"color\"\n | \"date\"\n | \"number\"\n | \"text\"\n | \"boolean\"\n | \"range\";\n\nexport interface ArgType<K = any> {\n control?: {\n name?: string;\n labels?: { [key: string]: string };\n type: ControlType;\n min?: number;\n max?: number;\n step?: number;\n [key: string]: any;\n };\n mapping?: { [key: string | number]: any };\n options?: K[] | unknown;\n defaultValue?: K;\n description?: string;\n name?: string;\n action?: string;\n [key: string]: any;\n}\n\nexport type ArgTypes<\n P = {\n [key: string]: any;\n },\n> = {\n [key in keyof P]?: ArgType<P[key]>;\n};\n\nexport interface Meta extends KnownMeta {\n [key: string]: any;\n}\n\nexport type MetaJson = BaseMetaJson<Meta>;\nexport type MetaJsonStory = BaseMetaJsonStory<Meta>;\n","import { action } from '@ladle/react';\n\nexport function actions<T>(...keys: (keyof T)[]): Partial<T> {\n return keys.reduce<Partial<T>>((acc, key) => {\n acc[key] = action(key as string) as T[keyof T];\n\n return acc;\n }, {});\n}\n"]}
@@ -3879,7 +3879,7 @@ typeof document !== "undefined" && document.body ? getQueriesForElement(document
3879
3879
  return helpers;
3880
3880
  }, initialValue);
3881
3881
 
3882
- // ../node_modules/.pnpm/@testing-library+react@16.3.0_@testing-library+dom@10.4.0_@types+react-dom@19.1.7_@type_006cfc0e867fe4fbd2eb85bf6bc961ee/node_modules/@testing-library/react/dist/@testing-library/react.esm.js
3882
+ // ../node_modules/.pnpm/@testing-library+react@16.3.0_@testing-library+dom@10.4.0_@types+react-dom@19.1.1_@type_7493c477d8ee6200c9fe69ec2493f911/node_modules/@testing-library/react/dist/@testing-library/react.esm.js
3883
3883
  var reactAct = typeof React.act === "function" ? React.act : DeprecatedReactTestUtils.act;
3884
3884
  function getGlobalThis() {
3885
3885
  if (typeof globalThis !== "undefined") {
@@ -4025,7 +4025,7 @@ if (typeof process === "undefined" || !process.env?.RTL_SKIP_AUTO_CLEANUP) {
4025
4025
  }
4026
4026
  }
4027
4027
 
4028
- // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.2.0_jsdom@25.0.1_lightningcss@1.30.1_msw@2.10.4_@types+node_bd31f00d24f7de9d4c3dd1b1abef4a27/node_modules/vitest/dist/chunks/utils.Ck2hJTRs.js
4028
+ // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.6.2_jsdom@25.0.1_msw@2.11.3_@types+node@24.6.2_typescript@5.8.3_/node_modules/vitest/dist/chunks/utils.Ck2hJTRs.js
4029
4029
  function getWorkerState() {
4030
4030
  const workerState = globalThis.__vitest_worker__;
4031
4031
  if (!workerState) {
@@ -4039,7 +4039,7 @@ function getCurrentEnvironment() {
4039
4039
  return state?.environment.name;
4040
4040
  }
4041
4041
 
4042
- // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.2.0_jsdom@25.0.1_lightningcss@1.30.1_msw@2.10.4_@types+node_bd31f00d24f7de9d4c3dd1b1abef4a27/node_modules/vitest/dist/chunks/index.CxRxs566.js
4042
+ // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.6.2_jsdom@25.0.1_msw@2.11.3_@types+node@24.6.2_typescript@5.8.3_/node_modules/vitest/dist/chunks/index.CxRxs566.js
4043
4043
  function getRunMode() {
4044
4044
  return getWorkerState().config.mode;
4045
4045
  }
@@ -4047,7 +4047,7 @@ function isRunningInBenchmark() {
4047
4047
  return getRunMode() === "benchmark";
4048
4048
  }
4049
4049
 
4050
- // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.2.0_jsdom@25.0.1_lightningcss@1.30.1_msw@2.10.4_@types+node_bd31f00d24f7de9d4c3dd1b1abef4a27/node_modules/vitest/dist/chunks/benchmark.C8CRJYG4.js
4050
+ // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.6.2_jsdom@25.0.1_msw@2.11.3_@types+node@24.6.2_typescript@5.8.3_/node_modules/vitest/dist/chunks/benchmark.C8CRJYG4.js
4051
4051
  var benchFns = /* @__PURE__ */ new WeakMap();
4052
4052
  var benchOptsMap = /* @__PURE__ */ new WeakMap();
4053
4053
  var bench = createBenchmark(function(name, fn2 = noop, options = {}) {
@@ -4076,7 +4076,7 @@ function formatName(name) {
4076
4076
  return typeof name === "string" ? name : name instanceof Function ? name.name || "<anonymous>" : String(name);
4077
4077
  }
4078
4078
 
4079
- // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.2.0_jsdom@25.0.1_lightningcss@1.30.1_msw@2.10.4_@types+node_bd31f00d24f7de9d4c3dd1b1abef4a27/node_modules/vitest/dist/chunks/run-once.Sxe67Wng.js
4079
+ // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.6.2_jsdom@25.0.1_msw@2.11.3_@types+node@24.6.2_typescript@5.8.3_/node_modules/vitest/dist/chunks/run-once.Sxe67Wng.js
4080
4080
  var filesCount = /* @__PURE__ */ new Map();
4081
4081
  var cache = /* @__PURE__ */ new Map();
4082
4082
  function runOnce(fn2, key) {
@@ -4099,7 +4099,7 @@ function isFirstRun() {
4099
4099
  return firstRun;
4100
4100
  }
4101
4101
 
4102
- // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.2.0_jsdom@25.0.1_lightningcss@1.30.1_msw@2.10.4_@types+node_bd31f00d24f7de9d4c3dd1b1abef4a27/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js
4102
+ // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.6.2_jsdom@25.0.1_msw@2.11.3_@types+node@24.6.2_typescript@5.8.3_/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js
4103
4103
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
4104
4104
  function getDefaultExportFromCjs(x) {
4105
4105
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
@@ -4111,7 +4111,7 @@ function isChildProcess() {
4111
4111
  return typeof process !== "undefined" && !!process.send;
4112
4112
  }
4113
4113
 
4114
- // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.2.0_jsdom@25.0.1_lightningcss@1.30.1_msw@2.10.4_@types+node_bd31f00d24f7de9d4c3dd1b1abef4a27/node_modules/vitest/dist/chunks/date.W2xKR2qe.js
4114
+ // ../node_modules/.pnpm/vitest@2.1.3_@types+node@24.6.2_jsdom@25.0.1_msw@2.11.3_@types+node@24.6.2_typescript@5.8.3_/node_modules/vitest/dist/chunks/date.W2xKR2qe.js
4115
4115
  var RealDate = Date;
4116
4116
  var now = null;
4117
4117
  var MockDate = class _MockDate extends RealDate {
@@ -4951,7 +4951,7 @@ function requireTypeDetect() {
4951
4951
  (function(module2, exports) {
4952
4952
  (function(global3, factory) {
4953
4953
  module2.exports = factory();
4954
- })(typeDetect, function() {
4954
+ })(typeDetect, (function() {
4955
4955
  var promiseExists = typeof Promise === "function";
4956
4956
  var globalObject = typeof self === "object" ? self : commonjsGlobal;
4957
4957
  var symbolExists = typeof Symbol !== "undefined";
@@ -5060,7 +5060,7 @@ function requireTypeDetect() {
5060
5060
  return Object.prototype.toString.call(obj).slice(toStringLeftSliceLength, toStringRightSliceLength);
5061
5061
  }
5062
5062
  return typeDetect2;
5063
- });
5063
+ }));
5064
5064
  })(typeDetect$1);
5065
5065
  return typeDetect$1.exports;
5066
5066
  }