@react-querybuilder/core 8.23.0 → 8.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +507 -448
  2. package/dist/cjs/react-querybuilder_core.cjs.development.js +169 -6
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  4. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +507 -448
  5. package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
  6. package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
  7. package/dist/derivations.d.mts +288 -237
  8. package/dist/derivations.d.ts +288 -237
  9. package/dist/derivations.js +137 -4
  10. package/dist/derivations.js.map +1 -1
  11. package/dist/derivations.mjs +136 -5
  12. package/dist/derivations.mjs.map +1 -1
  13. package/dist/formatQuery.d.mts +1 -1
  14. package/dist/formatQuery.d.ts +1 -1
  15. package/dist/formatQuery.js +7 -4
  16. package/dist/formatQuery.js.map +1 -1
  17. package/dist/formatQuery.mjs +7 -4
  18. package/dist/formatQuery.mjs.map +1 -1
  19. package/dist/{index-OF2Q1gTp.d.mts → index-94yESPHr.d.mts} +4 -2
  20. package/dist/{index-XueTy_XQ.d.ts → index-D41_Ba4j.d.ts} +4 -2
  21. package/dist/parseCEL.d.mts +110 -110
  22. package/dist/parseCEL.d.ts +110 -110
  23. package/dist/parseCEL.js +4 -4
  24. package/dist/parseCEL.js.map +1 -1
  25. package/dist/parseCEL.mjs +4 -4
  26. package/dist/parseCEL.mjs.map +1 -1
  27. package/dist/parseCypher.d.mts +7 -7
  28. package/dist/parseCypher.d.ts +7 -7
  29. package/dist/parseGremlin.d.mts +4 -4
  30. package/dist/parseGremlin.d.ts +4 -4
  31. package/dist/parseJSONata.d.mts +37 -37
  32. package/dist/parseJSONata.d.ts +37 -37
  33. package/dist/parseJSONata.js +2 -2
  34. package/dist/parseJSONata.mjs +2 -2
  35. package/dist/parseJsonLogic.d.mts +8 -8
  36. package/dist/parseJsonLogic.d.ts +8 -8
  37. package/dist/parseJsonLogic.js +3 -3
  38. package/dist/parseJsonLogic.mjs +3 -3
  39. package/dist/parseMongoDB.d.mts +7 -7
  40. package/dist/parseMongoDB.d.ts +7 -7
  41. package/dist/parseMongoDB.js +3 -3
  42. package/dist/parseMongoDB.mjs +3 -3
  43. package/dist/parseSPARQL.d.mts +4 -4
  44. package/dist/parseSPARQL.d.ts +4 -4
  45. package/dist/parseSQL.d.mts +61 -61
  46. package/dist/parseSQL.d.ts +61 -61
  47. package/dist/parseSQL.js +4 -4
  48. package/dist/parseSQL.js.map +1 -1
  49. package/dist/parseSQL.mjs +4 -4
  50. package/dist/parseSQL.mjs.map +1 -1
  51. package/dist/parseSpEL.d.mts +55 -55
  52. package/dist/parseSpEL.d.ts +55 -55
  53. package/dist/parseSpEL.js +4 -4
  54. package/dist/parseSpEL.js.map +1 -1
  55. package/dist/parseSpEL.mjs +4 -4
  56. package/dist/parseSpEL.mjs.map +1 -1
  57. package/dist/{parserUtils-DbBXyAht.js → parserUtils-2VtG7m8L.js} +3 -3
  58. package/dist/{parserUtils-DbBXyAht.js.map → parserUtils-2VtG7m8L.js.map} +1 -1
  59. package/dist/{parserUtils-BKPstAaO.mjs → parserUtils-BlafvoFb.mjs} +3 -3
  60. package/dist/{parserUtils-BKPstAaO.mjs.map → parserUtils-BlafvoFb.mjs.map} +1 -1
  61. package/dist/{prepareQueryObjects-Dj9cTl9D.js → prepareQueryObjects-DJ_VjOLb.js} +2 -2
  62. package/dist/{prepareQueryObjects-Dj9cTl9D.js.map → prepareQueryObjects-DJ_VjOLb.js.map} +1 -1
  63. package/dist/{prepareQueryObjects-Dmyf3Wi_.mjs → prepareQueryObjects-DawsH4e3.mjs} +2 -2
  64. package/dist/{prepareQueryObjects-Dmyf3Wi_.mjs.map → prepareQueryObjects-DawsH4e3.mjs.map} +1 -1
  65. package/dist/react-querybuilder_core.d.mts +507 -448
  66. package/dist/react-querybuilder_core.legacy-esm.d.ts +507 -448
  67. package/dist/react-querybuilder_core.legacy-esm.js +172 -14
  68. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  69. package/dist/react-querybuilder_core.mjs +168 -7
  70. package/dist/react-querybuilder_core.mjs.map +1 -1
  71. package/dist/react-querybuilder_core.production.d.mts +507 -448
  72. package/dist/react-querybuilder_core.production.mjs +1 -1
  73. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  74. package/dist/{utils-e-7KHkjV.js → utils-B4E1-ZvU.js} +12 -2
  75. package/dist/utils-B4E1-ZvU.js.map +1 -0
  76. package/dist/{utils-CP5Jqy1P.mjs → utils-DLZCoyAh.mjs} +12 -2
  77. package/dist/utils-DLZCoyAh.mjs.map +1 -0
  78. package/package.json +20 -19
  79. package/dist/utils-CP5Jqy1P.mjs.map +0 -1
  80. package/dist/utils-e-7KHkjV.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { $ as ValueProcessorOptions, $t as DefaultRuleGroupType, A as FormatQueryFinalOptions, An as SetRequired, At as ValidationMap, B as RQBJsonLogicStartsWith, Bt as RuleGroupTypeAny, C as DiagnosticEntry, Cn as OptionList, Ct as ValueSource, D as ExportFormat, Dn as ToFullOption, Dt as WithRequired, E as DiagnosticsStats, En as ToFlexibleOption, Et as ValueSources, F as NLTranslations, Fn as IsNever, Ft as DefaultRuleOrGroupArray, G as RuleGroupICDiagnosticsArray, Gt as CommonRuleAndGroupProperties, H as RuleDiagnosticsResult, Ht as RuleOrGroupArray, I as ParameterizedNamedSQL, In as IsAny, It as GenericizeRuleGroupType, J as RuleProcessor, Jt as DefaultCombinatorName, K as RuleGroupICDiagnosticsResult, Kt as DefaultCombinator, L as ParameterizedSQL, Lt as GetRuleGroupType, M as FormatQueryValidateRule, Mt as DefaultRuleGroupICArray, N as GroupVariantCondition, Nn as Simplify, Nt as DefaultRuleGroupTypeAny, O as ExportObjectFormats, On as ValueOption, Ot as QueryValidator, P as NLTranslationKey, Pn as If, Pt as DefaultRuleGroupTypeIC, Q as ValueProcessorLegacy, Qt as DefaultRuleGroupArray, R as RQBJsonLogic, Rt as GetRuleTypeFromGroupWithFieldAndOperator, S as ConstituentWordOrderString, Sn as OptionGroup, St as ValueEditorType, T as DiagnosticsResult, Tn as StringUnionToFullOptionArray, Tt as ValueSourceFullOptions, U as RuleGroupDiagnosticsArray, Ut as ToRuleGroupType, V as RQBJsonLogicVar, Vt as RuleGroupTypeIC, W as RuleGroupDiagnosticsResult, Wt as ToRuleGroupTypeIC, X as ValueProcessor, Xt as DefaultOperator, Y as SQLPreset, Yt as DefaultCombinatorNameExtended, Z as ValueProcessorByRule, Zt as DefaultOperatorName, _ as JsonLogicSome, _n as FullOptionRecord, _t as ParseNumberMethod, a as JsonLogicGreaterThan, an as UpdateableProperties, at as CombinatorByValue, b as JsonLogicVar, bn as NameLabelPair, bt as RemoveNullability, c as JsonLogicInString, cn as BaseOption, ct as FullCombinator, d as JsonLogicNegation, dn as FlexibleOptionGroup, dt as InputType, en as DefaultRuleType, et as AccessibleDescriptionGenerator, f as JsonLogicNone, fn as FlexibleOptionList, ft as MatchConfig, g as JsonLogicRulesLogic, gn as FullOptionMap, gt as OperatorByValue, h as JsonLogicReservedOperations, hn as FullOptionList, ht as Operator, i as JsonLogicEqual, in as UpdateValueMap, it as Combinator, j as FormatQueryOptions, jn as Except, jt as ValidationResult, k as ExportOperatorMap, kn as WithUnknownIndex, kt as RuleValidator, l as JsonLogicLessThan, ln as BaseOptionMap, lt as FullField, m as JsonLogicOr, mn as FullOption, mt as MatchModeOptions, n as JsonLogicAnd, nn as RuleGroupType, nt as Arity, o as JsonLogicGreaterThanOrEqual, on as ExpressionNode, ot as Field, p as JsonLogicNotEqual, pn as FlexibleOptionListProp, pt as MatchMode, q as RuleGroupProcessor, qt as DefaultCombinatorExtended, r as JsonLogicDoubleNegation, rn as RuleType, rt as Classname, s as JsonLogicInArray, sn as BaseFullOption, st as FieldByValue, t as JsonLogicAll, tn as RuleGroupArray, tt as ActionElementEventHandler, u as JsonLogicLessThanOrEqual, un as FlexibleOption, ut as FullOperator, v as JsonLogicStrictEqual, vn as GetOptionIdentifierType, vt as ParseNumbersPropConfig, w as DiagnosticsFieldSummaryEntry, wn as StringUnionToFlexibleOptionArray, wt as ValueSourceFlexibleOptions, x as ConstituentWordOrder, xn as Option, xt as ValueChangeEventHandler, y as JsonLogicStrictNotEqual, yn as GetOptionType, yt as Path, z as RQBJsonLogicEndsWith, zt as RuleGroupICArray } from "./index-DOIE2pwx.js";
2
- import "./index-XueTy_XQ.js";
2
+ import "./index-D41_Ba4j.js";
3
3
  import { n as transformQuery, t as TransformQueryOptions } from "./transformQuery-BXDiUBGB.js";
4
4
  import "immer";
5
5
  //#region src/controlPropKeys.d.ts
@@ -20,13 +20,13 @@ import "immer";
20
20
  *
21
21
  * @group Props
22
22
  */
23
- declare const controlKeys: readonly ["actionElement", "addGroupAction", "addRuleAction", "cloneGroupAction", "cloneRuleAction", "combinatorSelector", "dragHandle", "fieldSelector", "inlineCombinator", "lockGroupAction", "lockRuleAction", "matchModeEditor", "muteGroupAction", "muteRuleAction", "notToggle", "operatorSelector", "removeGroupAction", "removeRuleAction", "rule", "ruleGroup", "ruleGroupBodyElements", "ruleGroupHeaderElements", "shiftActions", "undoRedoActions", "valueEditor", "valueSelector", "valueSourceSelector"];
23
+ export declare const controlKeys: readonly ["actionElement", "addGroupAction", "addRuleAction", "cloneGroupAction", "cloneRuleAction", "combinatorSelector", "dragHandle", "fieldSelector", "inlineCombinator", "lockGroupAction", "lockRuleAction", "matchModeEditor", "muteGroupAction", "muteRuleAction", "notToggle", "operatorSelector", "removeGroupAction", "removeRuleAction", "rule", "ruleGroup", "ruleGroupBodyElements", "ruleGroupHeaderElements", "shiftActions", "undoRedoActions", "ungroupAction", "valueEditor", "valueSelector", "valueSourceSelector"];
24
24
  /**
25
25
  * The name of a query builder control.
26
26
  *
27
27
  * @group Props
28
28
  */
29
- type ControlKey = (typeof controlKeys)[number];
29
+ export type ControlKey = (typeof controlKeys)[number];
30
30
  /**
31
31
  * The full set of prop names each default control receives. Ports can use this to declare
32
32
  * every prop explicitly instead of relying on fall-through/attribute inheritance.
@@ -39,7 +39,7 @@ type ControlKey = (typeof controlKeys)[number];
39
39
  *
40
40
  * @group Props
41
41
  */
42
- declare const controlPropKeys: {
42
+ export declare const controlPropKeys: {
43
43
  readonly actionElement: readonly ["className", "context", "disabled", "disabledTranslation", "handleOnClick", "label", "level", "path", "ruleOrGroup", "rules", "schema", "testID", "title", "validation"];
44
44
  readonly addGroupAction: readonly ["className", "context", "disabled", "disabledTranslation", "handleOnClick", "label", "level", "path", "ruleOrGroup", "rules", "schema", "testID", "title", "validation"];
45
45
  readonly addRuleAction: readonly ["className", "context", "disabled", "disabledTranslation", "handleOnClick", "label", "level", "path", "ruleOrGroup", "rules", "schema", "testID", "title", "validation"];
@@ -60,10 +60,11 @@ declare const controlPropKeys: {
60
60
  readonly removeRuleAction: readonly ["className", "context", "disabled", "disabledTranslation", "handleOnClick", "label", "level", "path", "ruleOrGroup", "rules", "schema", "testID", "title", "validation"];
61
61
  readonly rule: readonly ["actions", "context", "disabled", "dndRef", "dragHandleAttributes", "dragMonitorId", "dragRef", "dropEffect", "dropMonitorId", "dropNotAllowed", "field", "groupItems", "id", "isDragging", "isOver", "operator", "parentDisabled", "parentMuted", "path", "rule", "schema", "shiftDownDisabled", "shiftUpDisabled", "translations", "value", "valueSource"];
62
62
  readonly ruleGroup: readonly ["actions", "combinator", "context", "disabled", "dragHandleAttributes", "dragMonitorId", "dragRef", "dropEffect", "dropMonitorId", "dropNotAllowed", "dropRef", "groupItems", "id", "isDragging", "isOver", "not", "parentDisabled", "parentMuted", "path", "previewRef", "ruleGroup", "rules", "schema", "shiftDownDisabled", "shiftUpDisabled", "translations"];
63
- readonly ruleGroupBodyElements: readonly ["accessibleDescription", "actions", "addGroup", "addRule", "classNames", "cloneGroup", "combinator", "context", "disabled", "dragHandleAttributes", "dragMonitorId", "dragRef", "dropEffect", "dropMonitorId", "dropNotAllowed", "dropRef", "groupItems", "id", "isDragging", "isOver", "muted", "not", "onCombinatorChange", "onGroupAdd", "onIndependentCombinatorChange", "onNotToggleChange", "outerClassName", "parentDisabled", "parentMuted", "path", "pathsMemo", "previewRef", "removeGroup", "ruleGroup", "rules", "schema", "shiftDownDisabled", "shiftGroupDown", "shiftGroupUp", "shiftUpDisabled", "toggleLockGroup", "toggleMuteGroup", "translations", "validationClassName", "validationResult"];
64
- readonly ruleGroupHeaderElements: readonly ["accessibleDescription", "actions", "addGroup", "addRule", "classNames", "cloneGroup", "combinator", "context", "disabled", "dragHandleAttributes", "dragMonitorId", "dragRef", "dropEffect", "dropMonitorId", "dropNotAllowed", "dropRef", "groupItems", "id", "isDragging", "isOver", "muted", "not", "onCombinatorChange", "onGroupAdd", "onIndependentCombinatorChange", "onNotToggleChange", "outerClassName", "parentDisabled", "parentMuted", "path", "pathsMemo", "previewRef", "removeGroup", "ruleGroup", "rules", "schema", "shiftDownDisabled", "shiftGroupDown", "shiftGroupUp", "shiftUpDisabled", "toggleLockGroup", "toggleMuteGroup", "translations", "validationClassName", "validationResult"];
63
+ readonly ruleGroupBodyElements: readonly ["accessibleDescription", "actions", "addGroup", "addRule", "classNames", "cloneGroup", "combinator", "context", "disabled", "dragHandleAttributes", "dragMonitorId", "dragRef", "dropEffect", "dropMonitorId", "dropNotAllowed", "dropRef", "groupItems", "id", "isDragging", "isOver", "muted", "not", "onCombinatorChange", "onGroupAdd", "onIndependentCombinatorChange", "onNotToggleChange", "outerClassName", "parentDisabled", "parentMuted", "path", "pathsMemo", "previewRef", "removeGroup", "ruleGroup", "rules", "schema", "shiftDownDisabled", "shiftGroupDown", "shiftGroupUp", "shiftUpDisabled", "toggleLockGroup", "toggleMuteGroup", "translations", "ungroup", "validationClassName", "validationResult"];
64
+ readonly ruleGroupHeaderElements: readonly ["accessibleDescription", "actions", "addGroup", "addRule", "classNames", "cloneGroup", "combinator", "context", "disabled", "dragHandleAttributes", "dragMonitorId", "dragRef", "dropEffect", "dropMonitorId", "dropNotAllowed", "dropRef", "groupItems", "id", "isDragging", "isOver", "muted", "not", "onCombinatorChange", "onGroupAdd", "onIndependentCombinatorChange", "onNotToggleChange", "outerClassName", "parentDisabled", "parentMuted", "path", "pathsMemo", "previewRef", "removeGroup", "ruleGroup", "rules", "schema", "shiftDownDisabled", "shiftGroupDown", "shiftGroupUp", "shiftUpDisabled", "toggleLockGroup", "toggleMuteGroup", "translations", "ungroup", "validationClassName", "validationResult"];
65
65
  readonly shiftActions: readonly ["className", "context", "disabled", "labels", "level", "path", "ruleOrGroup", "schema", "shiftDown", "shiftDownDisabled", "shiftUp", "shiftUpDisabled", "testID", "title", "titles", "validation"];
66
66
  readonly undoRedoActions: readonly ["className", "classNames", "context", "disabled", "labels", "level", "path", "ruleOrGroup", "schema", "testID", "title", "titles", "validation"];
67
+ readonly ungroupAction: readonly ["className", "context", "disabled", "disabledTranslation", "handleOnClick", "label", "level", "path", "ruleOrGroup", "rules", "schema", "testID", "title", "validation"];
67
68
  readonly valueEditor: readonly ["className", "context", "disabled", "field", "fieldData", "handleOnChange", "inputType", "level", "listsAsArrays", "operator", "parseNumbers", "path", "rule", "schema", "selectorComponent", "separator", "skipHook", "testID", "title", "type", "validation", "value", "valueSource", "values"];
68
69
  readonly valueSelector: readonly ["className", "context", "disabled", "handleOnChange", "level", "listsAsArrays", "multiple", "options", "path", "schema", "testID", "title", "validation", "value"];
69
70
  readonly valueSourceSelector: readonly ["className", "context", "disabled", "field", "fieldData", "handleOnChange", "level", "options", "path", "rule", "schema", "testID", "title", "validation", "value"];
@@ -83,7 +84,7 @@ declare const controlPropKeys: {
83
84
  *
84
85
  * @group Props
85
86
  */
86
- declare const controlKind: {
87
+ export declare const controlKind: {
87
88
  readonly actionElement: null;
88
89
  readonly addGroupAction: "action";
89
90
  readonly addRuleAction: "action";
@@ -108,6 +109,7 @@ declare const controlKind: {
108
109
  readonly ruleGroupHeaderElements: null;
109
110
  readonly shiftActions: null;
110
111
  readonly undoRedoActions: null;
112
+ readonly ungroupAction: "action";
111
113
  readonly valueEditor: null;
112
114
  readonly valueSelector: null;
113
115
  readonly valueSourceSelector: "selector";
@@ -268,16 +270,16 @@ type RequiredDeep<T> = T extends BuiltIns ? T : T extends Map<infer KeyType, inf
268
270
  type RequiredObjectDeep<ObjectType extends object> = { [KeyType in keyof ObjectType]-?: RequiredDeep<ObjectType[KeyType]>; };
269
271
  //#endregion
270
272
  //#region src/types/dnd.d.ts
271
- type DndDropTargetType = "rule" | "ruleGroup" | "inlineCombinator";
272
- type DraggedItem = (RuleType & {
273
+ export type DndDropTargetType = "rule" | "ruleGroup" | "inlineCombinator";
274
+ export type DraggedItem = (RuleType & {
273
275
  path: Path;
274
276
  qbId: string;
275
277
  }) | (RuleGroupTypeAny & {
276
278
  path: Path;
277
279
  qbId: string;
278
280
  });
279
- type DropEffect = "move" | "copy";
280
- interface DropResult {
281
+ export type DropEffect = "move" | "copy";
282
+ export interface DropResult {
281
283
  path: Path;
282
284
  type: DndDropTargetType;
283
285
  dropEffect?: DropEffect;
@@ -286,11 +288,11 @@ interface DropResult {
286
288
  getQuery: () => RuleGroupTypeAny;
287
289
  dispatchQuery: (query: RuleGroupTypeAny) => void;
288
290
  }
289
- interface DragCollection {
291
+ export interface DragCollection {
290
292
  isDragging: boolean;
291
293
  dragMonitorId: string | symbol;
292
294
  }
293
- interface DropCollection {
295
+ export interface DropCollection {
294
296
  dropNotAllowed: boolean;
295
297
  isOver: boolean;
296
298
  dropMonitorId: string | symbol;
@@ -305,7 +307,7 @@ interface DropCollection {
305
307
  * Shared by the `react-querybuilder/history` entry point and the
306
308
  * {@link index!QueryManager QueryManager} utility.
307
309
  */
308
- interface QueryHistoryOptions {
310
+ export interface QueryHistoryOptions {
309
311
  /**
310
312
  * Maximum number of undo steps to retain. Older entries are discarded.
311
313
  *
@@ -330,7 +332,7 @@ interface QueryHistoryOptions {
330
332
  *
331
333
  * @group Props
332
334
  */
333
- interface CommonRuleSubComponentProps {
335
+ export interface CommonRuleSubComponentProps {
334
336
  rule: RuleType;
335
337
  }
336
338
  /**
@@ -338,7 +340,7 @@ interface CommonRuleSubComponentProps {
338
340
  *
339
341
  * @group Props
340
342
  */
341
- interface Classnames {
343
+ export interface Classnames {
342
344
  /**
343
345
  * Classnames applied to the root `<div>` element.
344
346
  */
@@ -375,6 +377,10 @@ interface Classnames {
375
377
  * Classnames applied to the `<button>` to clone a RuleGroup.
376
378
  */
377
379
  cloneGroup: Classname;
380
+ /**
381
+ * Classnames applied to the `<button>` to ungroup a RuleGroup.
382
+ */
383
+ ungroup: Classname;
378
384
  /**
379
385
  * Classnames applied to the `<button>` to remove a RuleGroup.
380
386
  */
@@ -538,7 +544,7 @@ interface Classnames {
538
544
  *
539
545
  * @group Props
540
546
  */
541
- interface Placeholder {
547
+ export interface Placeholder {
542
548
  /**
543
549
  * Value for the placeholder field option if autoSelectField is false,
544
550
  * or the placeholder operator option if autoSelectOperator is false.
@@ -560,7 +566,7 @@ interface Placeholder {
560
566
  *
561
567
  * @group Props
562
568
  */
563
- interface BaseTranslation {
569
+ export interface BaseTranslation {
564
570
  title?: string;
565
571
  }
566
572
  /**
@@ -568,7 +574,7 @@ interface BaseTranslation {
568
574
  *
569
575
  * @group Props
570
576
  */
571
- interface BaseTranslationWithLabel<LabelType = string> extends BaseTranslation {
577
+ export interface BaseTranslationWithLabel<LabelType = string> extends BaseTranslation {
572
578
  label?: LabelType;
573
579
  }
574
580
  /**
@@ -576,13 +582,13 @@ interface BaseTranslationWithLabel<LabelType = string> extends BaseTranslation {
576
582
  *
577
583
  * @group Props
578
584
  */
579
- interface BaseTranslationWithPlaceholders extends BaseTranslation, Placeholder {}
585
+ export interface BaseTranslationWithPlaceholders extends BaseTranslation, Placeholder {}
580
586
  /**
581
587
  * The shape of the `translations` prop.
582
588
  *
583
589
  * @group Props
584
590
  */
585
- interface BaseTranslations<LabelType = string> {
591
+ export interface BaseTranslations<LabelType = string> {
586
592
  fields: BaseTranslationWithPlaceholders;
587
593
  operators: BaseTranslationWithPlaceholders;
588
594
  values: BaseTranslationWithPlaceholders;
@@ -599,6 +605,7 @@ interface BaseTranslations<LabelType = string> {
599
605
  notToggle: BaseTranslationWithLabel<LabelType>;
600
606
  cloneRule: BaseTranslationWithLabel<LabelType>;
601
607
  cloneRuleGroup: BaseTranslationWithLabel<LabelType>;
608
+ ungroupRuleGroup: BaseTranslationWithLabel<LabelType>;
602
609
  shiftActionUp: BaseTranslationWithLabel<LabelType>;
603
610
  shiftActionDown: BaseTranslationWithLabel<LabelType>;
604
611
  undo: BaseTranslationWithLabel<LabelType>;
@@ -619,13 +626,13 @@ interface BaseTranslations<LabelType = string> {
619
626
  *
620
627
  * @group Props
621
628
  */
622
- type BaseTranslationsFull<LabelType = string> = RequiredDeep<BaseTranslations<LabelType>>;
629
+ export type BaseTranslationsFull<LabelType = string> = RequiredDeep<BaseTranslations<LabelType>>;
623
630
  /**
624
631
  * Functions included in the `actions` prop passed to every subcomponent.
625
632
  *
626
633
  * @group Props
627
634
  */
628
- interface QueryActions {
635
+ export interface QueryActions {
629
636
  onGroupAdd(group: RuleGroupTypeAny, parentPath: Path, context?: any): void;
630
637
  onGroupRemove(path: Path): void;
631
638
  onPropChange(prop: Exclude<keyof RuleType | keyof RuleGroupType, "id" | "path">, value: any, path: Path, context?: any): void;
@@ -633,8 +640,9 @@ interface QueryActions {
633
640
  onRuleRemove(path: Path): void;
634
641
  moveRule(oldPath: Path, newPath: Path | "up" | "down", clone?: boolean, context?: any): void;
635
642
  groupRule(sourcePath: Path, targetPath: Path, clone?: boolean, context?: any): void;
643
+ ungroupRuleGroup(path: Path, context?: any): void;
636
644
  }
637
- interface QueryBuilderFlags {
645
+ export interface QueryBuilderFlags {
638
646
  /**
639
647
  * Set to `false` to avoid calling the `onQueryChange` callback
640
648
  * when the component mounts.
@@ -701,6 +709,13 @@ interface QueryBuilderFlags {
701
709
  * @default false
702
710
  */
703
711
  showCloneButtons?: boolean;
712
+ /**
713
+ * Show the "Ungroup" button on each non-root group, which replaces the group with its
714
+ * own rules in the parent group.
715
+ *
716
+ * @default false
717
+ */
718
+ showUngroupButtons?: boolean;
704
719
  /**
705
720
  * Show the "Lock rule" and "Lock group" buttons.
706
721
  *
@@ -768,149 +783,149 @@ interface QueryBuilderFlags {
768
783
  /**
769
784
  * @group Defaults
770
785
  */
771
- declare const defaultPlaceholderName = "~";
786
+ export declare const defaultPlaceholderName = "~";
772
787
  /**
773
788
  * @group Defaults
774
789
  */
775
- declare const defaultPlaceholderLabel = "------";
790
+ export declare const defaultPlaceholderLabel = "------";
776
791
  /**
777
792
  * Default `name` for placeholder option in the `fields` array.
778
793
  *
779
794
  * @group Defaults
780
795
  */
781
- declare const defaultPlaceholderFieldName: typeof defaultPlaceholderName;
796
+ export declare const defaultPlaceholderFieldName: typeof defaultPlaceholderName;
782
797
  /**
783
798
  * Default `label` for placeholder option in the `fields` array.
784
799
  *
785
800
  * @group Defaults
786
801
  */
787
- declare const defaultPlaceholderFieldLabel: typeof defaultPlaceholderLabel;
802
+ export declare const defaultPlaceholderFieldLabel: typeof defaultPlaceholderLabel;
788
803
  /**
789
804
  * Default `label` for placeholder option group in the `fields` array.
790
805
  *
791
806
  * @group Defaults
792
807
  */
793
- declare const defaultPlaceholderFieldGroupLabel: typeof defaultPlaceholderLabel;
808
+ export declare const defaultPlaceholderFieldGroupLabel: typeof defaultPlaceholderLabel;
794
809
  /**
795
810
  * Default `name` for placeholder option in the `operators` array.
796
811
  *
797
812
  * @group Defaults
798
813
  */
799
- declare const defaultPlaceholderOperatorName: typeof defaultPlaceholderName;
814
+ export declare const defaultPlaceholderOperatorName: typeof defaultPlaceholderName;
800
815
  /**
801
816
  * Default `label` for placeholder option in the `operators` array.
802
817
  *
803
818
  * @group Defaults
804
819
  */
805
- declare const defaultPlaceholderOperatorLabel: typeof defaultPlaceholderLabel;
820
+ export declare const defaultPlaceholderOperatorLabel: typeof defaultPlaceholderLabel;
806
821
  /**
807
822
  * Default `label` for placeholder option group in the `operators` array.
808
823
  *
809
824
  * @group Defaults
810
825
  */
811
- declare const defaultPlaceholderOperatorGroupLabel: typeof defaultPlaceholderLabel;
826
+ export declare const defaultPlaceholderOperatorGroupLabel: typeof defaultPlaceholderLabel;
812
827
  /**
813
828
  * Default `name` for placeholder option in the `values` array.
814
829
  *
815
830
  * @group Defaults
816
831
  */
817
- declare const defaultPlaceholderValueName: typeof defaultPlaceholderName;
832
+ export declare const defaultPlaceholderValueName: typeof defaultPlaceholderName;
818
833
  /**
819
834
  * Default `label` for placeholder option in the `values` array.
820
835
  *
821
836
  * @group Defaults
822
837
  */
823
- declare const defaultPlaceholderValueLabel: typeof defaultPlaceholderLabel;
838
+ export declare const defaultPlaceholderValueLabel: typeof defaultPlaceholderLabel;
824
839
  /**
825
840
  * Default `label` for placeholder option group in the `values` array.
826
841
  *
827
842
  * @group Defaults
828
843
  */
829
- declare const defaultPlaceholderValueGroupLabel: typeof defaultPlaceholderLabel;
844
+ export declare const defaultPlaceholderValueGroupLabel: typeof defaultPlaceholderLabel;
830
845
  /**
831
846
  * Default configuration of translatable strings.
832
847
  *
833
848
  * @group Defaults
834
849
  */
835
- declare const defaultTranslations: BaseTranslationsFull;
850
+ export declare const defaultTranslations: BaseTranslationsFull;
836
851
  /**
837
852
  * Default character used to `.join` and `.split` arrays.
838
853
  *
839
854
  * @group Defaults
840
855
  */
841
- declare const defaultJoinChar = ",";
842
- type DefaultOperators = StringUnionToFullOptionArray<DefaultOperatorName>;
843
- declare const defaultOperatorLabelMap: Record<DefaultOperatorName, string>;
844
- declare const defaultCombinatorLabelMap: Record<DefaultCombinatorNameExtended, string>;
856
+ export declare const defaultJoinChar = ",";
857
+ export type DefaultOperators = StringUnionToFullOptionArray<DefaultOperatorName>;
858
+ export declare const defaultOperatorLabelMap: Record<DefaultOperatorName, string>;
859
+ export declare const defaultCombinatorLabelMap: Record<DefaultCombinatorNameExtended, string>;
845
860
  /**
846
861
  * Default operator list.
847
862
  *
848
863
  * @group Defaults
849
864
  */
850
- declare const defaultOperators: DefaultOperators;
865
+ export declare const defaultOperators: DefaultOperators;
851
866
  /**
852
867
  * Map of default operators to their respective opposite/negating operators.
853
868
  *
854
869
  * @group Defaults
855
870
  */
856
- declare const defaultOperatorNegationMap: Record<DefaultOperatorName, DefaultOperatorName>;
871
+ export declare const defaultOperatorNegationMap: Record<DefaultOperatorName, DefaultOperatorName>;
857
872
  /**
858
873
  * Relational/comparison operators (`=`, `!=`, `<`, `>`, `<=`, `>=`).
859
874
  *
860
875
  * @group Defaults
861
876
  */
862
- declare const relationalOperators: Set<DefaultOperatorName>;
877
+ export declare const relationalOperators: Set<DefaultOperatorName>;
863
878
  /**
864
879
  * Substring/text-matching operators (`contains`, `beginsWith`, `endsWith`, and negations).
865
880
  *
866
881
  * @group Defaults
867
882
  */
868
- declare const substringOperators: Set<DefaultOperatorName>;
883
+ export declare const substringOperators: Set<DefaultOperatorName>;
869
884
  /**
870
885
  * Null-check operators (`null`, `notNull`).
871
886
  *
872
887
  * @group Defaults
873
888
  */
874
- declare const nullOperators: Set<DefaultOperatorName>;
889
+ export declare const nullOperators: Set<DefaultOperatorName>;
875
890
  /**
876
891
  * List-membership operators (`in`, `notIn`).
877
892
  *
878
893
  * @group Defaults
879
894
  */
880
- declare const inOperators: Set<DefaultOperatorName>;
895
+ export declare const inOperators: Set<DefaultOperatorName>;
881
896
  /**
882
897
  * Range operators (`between`, `notBetween`).
883
898
  *
884
899
  * @group Defaults
885
900
  */
886
- declare const betweenOperators: Set<DefaultOperatorName>;
887
- type DefaultCombinators = StringUnionToFullOptionArray<DefaultCombinatorName>;
901
+ export declare const betweenOperators: Set<DefaultOperatorName>;
902
+ export type DefaultCombinators = StringUnionToFullOptionArray<DefaultCombinatorName>;
888
903
  /**
889
904
  * Default combinator list.
890
905
  *
891
906
  * @group Defaults
892
907
  */
893
- declare const defaultCombinators: DefaultCombinators;
894
- type DefaultCombinatorsExtended = StringUnionToFullOptionArray<DefaultCombinatorNameExtended>;
908
+ export declare const defaultCombinators: DefaultCombinators;
909
+ export type DefaultCombinatorsExtended = StringUnionToFullOptionArray<DefaultCombinatorNameExtended>;
895
910
  /**
896
911
  * Default combinator list, with `XOR` added.
897
912
  *
898
913
  * @group Defaults
899
914
  */
900
- declare const defaultCombinatorsExtended: DefaultCombinatorsExtended;
901
- type DefaultMatchModes = StringUnionToFullOptionArray<MatchMode>;
915
+ export declare const defaultCombinatorsExtended: DefaultCombinatorsExtended;
916
+ export type DefaultMatchModes = StringUnionToFullOptionArray<MatchMode>;
902
917
  /**
903
918
  * Default match modes.
904
919
  *
905
920
  * @group Defaults
906
921
  */
907
- declare const defaultMatchModes: DefaultMatchModes;
922
+ export declare const defaultMatchModes: DefaultMatchModes;
908
923
  /**
909
924
  * Standard classnames applied to each component.
910
925
  *
911
926
  * @group Defaults
912
927
  */
913
- declare const standardClassnames: {
928
+ export declare const standardClassnames: {
914
929
  readonly queryBuilder: "queryBuilder";
915
930
  readonly ruleGroup: "ruleGroup";
916
931
  readonly header: "ruleGroup-header";
@@ -920,6 +935,7 @@ declare const standardClassnames: {
920
935
  readonly addGroup: "ruleGroup-addGroup";
921
936
  readonly cloneRule: "rule-cloneRule";
922
937
  readonly cloneGroup: "ruleGroup-cloneGroup";
938
+ readonly ungroup: "ruleGroup-ungroup";
923
939
  readonly removeGroup: "ruleGroup-remove";
924
940
  readonly notToggle: "ruleGroup-notToggle";
925
941
  readonly rule: "rule";
@@ -964,13 +980,13 @@ declare const standardClassnames: {
964
980
  *
965
981
  * @group Defaults
966
982
  */
967
- declare const defaultControlClassnames: Classnames;
983
+ export declare const defaultControlClassnames: Classnames;
968
984
  /**
969
985
  * Default reason codes for a group being invalid.
970
986
  *
971
987
  * @group Defaults
972
988
  */
973
- declare const groupInvalidReasons: {
989
+ export declare const groupInvalidReasons: {
974
990
  readonly empty: "empty";
975
991
  readonly invalidCombinator: "invalid combinator";
976
992
  readonly invalidIndependentCombinators: "invalid independent combinators";
@@ -980,13 +996,14 @@ declare const groupInvalidReasons: {
980
996
  *
981
997
  * @group Defaults
982
998
  */
983
- declare const TestID: {
999
+ export declare const TestID: {
984
1000
  readonly rule: "rule";
985
1001
  readonly ruleGroup: "rule-group";
986
1002
  readonly inlineCombinator: "inline-combinator";
987
1003
  readonly addGroup: "add-group";
988
1004
  readonly removeGroup: "remove-group";
989
1005
  readonly cloneGroup: "clone-group";
1006
+ readonly ungroup: "ungroup";
990
1007
  readonly cloneRule: "clone-rule";
991
1008
  readonly addRule: "add-rule";
992
1009
  readonly removeRule: "remove-rule";
@@ -1007,7 +1024,7 @@ declare const TestID: {
1007
1024
  readonly valueSourceSelector: "value-source-selector";
1008
1025
  readonly matchModeEditor: "match-mode-editor";
1009
1026
  };
1010
- declare const LogType: {
1027
+ export declare const LogType: {
1011
1028
  readonly parentPathDisabled: "action aborted: parent path disabled";
1012
1029
  readonly pathDisabled: "action aborted: path is disabled";
1013
1030
  readonly queryUpdate: "query updated";
@@ -1018,38 +1035,40 @@ declare const LogType: {
1018
1035
  readonly onMoveRuleFalse: "onMoveRule callback returned false";
1019
1036
  readonly onMoveGroupFalse: "onMoveGroup callback returned false";
1020
1037
  readonly onRemoveFalse: "onRemove callback returned false";
1038
+ readonly onUngroupFalse: "onUngroup callback returned false";
1021
1039
  readonly add: "rule or group added";
1022
1040
  readonly remove: "rule or group removed";
1023
1041
  readonly update: "rule or group updated";
1024
1042
  readonly move: "rule or group moved";
1025
1043
  readonly group: "rule or group grouped with another";
1044
+ readonly ungroup: "group replaced by its own rules";
1026
1045
  };
1027
1046
  /**
1028
1047
  * The {@link Path} of the root group.
1029
1048
  *
1030
1049
  * @group Defaults
1031
1050
  */
1032
- declare const rootPath: Path;
1051
+ export declare const rootPath: Path;
1033
1052
  /**
1034
1053
  * Default values for all `boolean`
1035
1054
  * {@link react-querybuilder!QueryBuilder QueryBuilder} options.
1036
1055
  *
1037
1056
  * @group Defaults
1038
1057
  */
1039
- declare const queryBuilderFlagDefaults: Required<QueryBuilderFlags>;
1058
+ export declare const queryBuilderFlagDefaults: Required<QueryBuilderFlags>;
1040
1059
  /**
1041
1060
  * Default maximum number of undo steps retained by query history.
1042
1061
  *
1043
1062
  * @group Defaults
1044
1063
  */
1045
- declare const defaultMaxHistory = 50;
1064
+ export declare const defaultMaxHistory = 50;
1046
1065
  /**
1047
1066
  * Default time window (in milliseconds) within which consecutive changes to the same
1048
1067
  * property of the same rule are coalesced into a single undo step.
1049
1068
  *
1050
1069
  * @group Defaults
1051
1070
  */
1052
- declare const defaultCoalesceMs = 500;
1071
+ export declare const defaultCoalesceMs = 500;
1053
1072
  //#endregion
1054
1073
  //#region src/utils/queryTools.d.ts
1055
1074
  /**
@@ -1062,17 +1081,17 @@ declare const defaultCoalesceMs = 500;
1062
1081
  *
1063
1082
  * @group Query Tools
1064
1083
  */
1065
- type AbortReason = "target-not-found" | "parent-not-found" | "parent-not-a-group" | "destination-not-found" | "root-not-allowed" | "not-a-combinator-slot" | "same-location" | "no-change" | "target-disabled" | "parent-disabled" | "max-levels-exceeded";
1084
+ export type AbortReason = "target-not-found" | "parent-not-found" | "parent-not-a-group" | "target-not-a-group" | "destination-not-found" | "root-not-allowed" | "not-a-combinator-slot" | "same-location" | "no-change" | "target-disabled" | "parent-disabled" | "max-levels-exceeded";
1066
1085
  /**
1067
1086
  * Details about an aborted query tool operation.
1068
1087
  *
1069
1088
  * @group Query Tools
1070
1089
  */
1071
- interface AbortInfo {
1090
+ export interface AbortInfo {
1072
1091
  /** Why the operation was aborted. */
1073
1092
  reason: AbortReason;
1074
1093
  /** The query tool that aborted. */
1075
- operation: "add" | "remove" | "update" | "move" | "insert" | "group";
1094
+ operation: "add" | "remove" | "update" | "move" | "insert" | "group" | "ungroup";
1076
1095
  /** The path or `id` that could not be used, when the reason relates to a specific target. */
1077
1096
  pathOrID?: Path | string;
1078
1097
  }
@@ -1086,7 +1105,7 @@ interface AbortInfo {
1086
1105
  *
1087
1106
  * @group Query Tools
1088
1107
  */
1089
- interface GuardOptions {
1108
+ export interface GuardOptions {
1090
1109
  /**
1091
1110
  * Abort when the target (or its parent, for `add`/`insert`) is disabled, either directly or
1092
1111
  * by descending from a disabled group. Defaults to `false`.
@@ -1117,7 +1136,7 @@ interface GuardOptions {
1117
1136
  *
1118
1137
  * @group Query Tools
1119
1138
  */
1120
- interface AbortOptions extends GuardOptions {
1139
+ export interface AbortOptions extends GuardOptions {
1121
1140
  /**
1122
1141
  * Called when the operation returns the query unmodified, with the reason why. Query tools
1123
1142
  * never throw, so this is the only way to distinguish "the target was invalid" from
@@ -1130,7 +1149,7 @@ interface AbortOptions extends GuardOptions {
1130
1149
  *
1131
1150
  * @group Query Tools
1132
1151
  */
1133
- interface QueryToolOptions extends AbortOptions {
1152
+ export interface QueryToolOptions extends AbortOptions {
1134
1153
  /**
1135
1154
  * Set `false` to skip immer's auto-freeze on the returned query, e.g. when the query will be
1136
1155
  * handed to a framework that wraps it in a proxy (Vue `reactive`, Solid stores) or otherwise
@@ -1149,7 +1168,7 @@ interface QueryToolOptions extends AbortOptions {
1149
1168
  *
1150
1169
  * @group Query Tools
1151
1170
  */
1152
- declare const getGuardAbortReason: (query: RuleGroupTypeAny, pathOrID: Path | string | undefined, guards?: GuardOptions, { asParent }?: {
1171
+ export declare const getGuardAbortReason: (query: RuleGroupTypeAny, pathOrID: Path | string | undefined, guards?: GuardOptions, { asParent }?: {
1153
1172
  asParent?: boolean;
1154
1173
  }) => AbortReason | null;
1155
1174
  /**
@@ -1157,13 +1176,13 @@ declare const getGuardAbortReason: (query: RuleGroupTypeAny, pathOrID: Path | st
1157
1176
  *
1158
1177
  * @group Query Tools
1159
1178
  */
1160
- declare const exceedsMaxLevels: (parentPath: Path | undefined, { maxLevels }?: GuardOptions) => boolean;
1179
+ export declare const exceedsMaxLevels: (parentPath: Path | undefined, { maxLevels }?: GuardOptions) => boolean;
1161
1180
  /**
1162
1181
  * Options for {@link add}.
1163
1182
  *
1164
1183
  * @group Query Tools
1165
1184
  */
1166
- interface AddOptions extends QueryToolOptions {
1185
+ export interface AddOptions extends QueryToolOptions {
1167
1186
  /**
1168
1187
  * If the query extends `RuleGroupTypeIC` (i.e. the query has independent
1169
1188
  * combinators), then the first combinator in this list will be inserted
@@ -1182,7 +1201,7 @@ interface AddOptions extends QueryToolOptions {
1182
1201
  */
1183
1202
  idGenerator?: () => string;
1184
1203
  }
1185
- interface AddMethod {
1204
+ export interface AddMethod {
1186
1205
  <RG extends RuleGroupTypeAny>(query: RG, ruleOrGroup: RG | RuleType, parentPathOrID: Path | string, options?: AddOptions): RG;
1187
1206
  }
1188
1207
  /**
@@ -1192,7 +1211,7 @@ interface AddMethod {
1192
1211
  *
1193
1212
  * @group Query Tools
1194
1213
  */
1195
- declare const add: AddMethod;
1214
+ export declare const add: AddMethod;
1196
1215
  /**
1197
1216
  * Adds a rule or group to a query in place.
1198
1217
  *
@@ -1200,13 +1219,13 @@ declare const add: AddMethod;
1200
1219
  *
1201
1220
  * @group Query Tools
1202
1221
  */
1203
- declare const addInPlace: AddMethod;
1222
+ export declare const addInPlace: AddMethod;
1204
1223
  /**
1205
1224
  * Options for {@link update}.
1206
1225
  *
1207
1226
  * @group Query Tools
1208
1227
  */
1209
- interface UpdateOptions extends QueryToolOptions {
1228
+ export interface UpdateOptions extends QueryToolOptions {
1210
1229
  /**
1211
1230
  * When updating the `field` of a rule, the rule's `operator`, `value`, and `valueSource`
1212
1231
  * will be reset to their respective defaults. Defaults to `true`.
@@ -1234,7 +1253,7 @@ interface UpdateOptions extends QueryToolOptions {
1234
1253
  */
1235
1254
  getMatchModes?: (field: string) => MatchModeOptions;
1236
1255
  }
1237
- interface UpdateMethod {
1256
+ export interface UpdateMethod {
1238
1257
  /**
1239
1258
  * Updates a single property of a rule or group.
1240
1259
  */
@@ -1262,7 +1281,7 @@ interface UpdateMethod {
1262
1281
  *
1263
1282
  * @group Query Tools
1264
1283
  */
1265
- declare const update: UpdateMethod;
1284
+ export declare const update: UpdateMethod;
1266
1285
  /**
1267
1286
  * Updates one or more properties of a rule or group within a query in place.
1268
1287
  * See {@link update} for the supported argument forms and ordering semantics.
@@ -1271,14 +1290,14 @@ declare const update: UpdateMethod;
1271
1290
  *
1272
1291
  * @group Query Tools
1273
1292
  */
1274
- declare const updateInPlace: UpdateMethod;
1293
+ export declare const updateInPlace: UpdateMethod;
1275
1294
  /**
1276
1295
  * Options for {@link remove}.
1277
1296
  *
1278
1297
  * @group Query Tools
1279
1298
  */
1280
- interface RemoveOptions extends QueryToolOptions {}
1281
- interface RemoveMethod {
1299
+ export interface RemoveOptions extends QueryToolOptions {}
1300
+ export interface RemoveMethod {
1282
1301
  <RG extends RuleGroupTypeAny>(query: RG, pathOrID: Path | string, options?: RemoveOptions): RG;
1283
1302
  }
1284
1303
  /**
@@ -1288,7 +1307,7 @@ interface RemoveMethod {
1288
1307
  *
1289
1308
  * @group Query Tools
1290
1309
  */
1291
- declare const remove: RemoveMethod;
1310
+ export declare const remove: RemoveMethod;
1292
1311
  /**
1293
1312
  * Removes a rule or group from a query in place.
1294
1313
  *
@@ -1296,13 +1315,41 @@ declare const remove: RemoveMethod;
1296
1315
  *
1297
1316
  * @group Query Tools
1298
1317
  */
1299
- declare const removeInPlace: RemoveMethod;
1318
+ export declare const removeInPlace: RemoveMethod;
1319
+ /**
1320
+ * Options for {@link ungroup}.
1321
+ *
1322
+ * @group Query Tools
1323
+ */
1324
+ export interface UngroupOptions extends QueryToolOptions {}
1325
+ export interface UngroupMethod {
1326
+ <RG extends RuleGroupTypeAny>(query: RG, pathOrID: Path | string, options?: UngroupOptions): RG;
1327
+ }
1328
+ /**
1329
+ * Replaces a group with its own rules in its parent group, without mutating the original query.
1330
+ *
1331
+ * The group's `combinator`, `not`, `id`, `muted`, and `disabled` properties are discarded; its
1332
+ * rules keep their `id`s since they remain in the same query. An empty group is simply removed.
1333
+ *
1334
+ * @returns A new query with the group's rules promoted into its parent group.
1335
+ *
1336
+ * @group Query Tools
1337
+ */
1338
+ export declare const ungroup: UngroupMethod;
1339
+ /**
1340
+ * Replaces a group with its own rules in its parent group, in place.
1341
+ *
1342
+ * @returns The query (mutated in place) with the group's rules promoted into its parent group.
1343
+ *
1344
+ * @group Query Tools
1345
+ */
1346
+ export declare const ungroupInPlace: UngroupMethod;
1300
1347
  /**
1301
1348
  * Options for {@link move}.
1302
1349
  *
1303
1350
  * @group Query Tools
1304
1351
  */
1305
- interface MoveOptions extends QueryToolOptions {
1352
+ export interface MoveOptions extends QueryToolOptions {
1306
1353
  /**
1307
1354
  * When `true`, the source rule/group will not be removed from its original path.
1308
1355
  */
@@ -1318,7 +1365,7 @@ interface MoveOptions extends QueryToolOptions {
1318
1365
  */
1319
1366
  idGenerator?: () => string;
1320
1367
  }
1321
- interface MoveMethod {
1368
+ export interface MoveMethod {
1322
1369
  <RG extends RuleGroupTypeAny>(query: RG, oldPathOrID: Path | string, newPath: Path | "up" | "down", options?: MoveOptions): RG;
1323
1370
  }
1324
1371
  /**
@@ -1329,7 +1376,7 @@ interface MoveMethod {
1329
1376
  *
1330
1377
  * @group Query Tools
1331
1378
  */
1332
- declare const move: MoveMethod;
1379
+ export declare const move: MoveMethod;
1333
1380
  /**
1334
1381
  * Moves a rule or group from one path to another in place.
1335
1382
  * In the options parameter, pass `{ clone: true }` to copy instead of move.
@@ -1338,13 +1385,13 @@ declare const move: MoveMethod;
1338
1385
  *
1339
1386
  * @group Query Tools
1340
1387
  */
1341
- declare const moveInPlace: MoveMethod;
1388
+ export declare const moveInPlace: MoveMethod;
1342
1389
  /**
1343
1390
  * Options for {@link insert}.
1344
1391
  *
1345
1392
  * @group Query Tools
1346
1393
  */
1347
- interface InsertOptions extends QueryToolOptions {
1394
+ export interface InsertOptions extends QueryToolOptions {
1348
1395
  /**
1349
1396
  * If the query extends `RuleGroupTypeIC` (i.e. the query has independent
1350
1397
  * combinators), then the first combinator in this list will be inserted
@@ -1377,7 +1424,7 @@ interface InsertOptions extends QueryToolOptions {
1377
1424
  */
1378
1425
  replace?: boolean;
1379
1426
  }
1380
- interface InsertMethod {
1427
+ export interface InsertMethod {
1381
1428
  <RG extends RuleGroupTypeAny>(query: RG, ruleOrGroup: RG | RuleType, path: number[], options?: InsertOptions): RG;
1382
1429
  }
1383
1430
  /**
@@ -1387,7 +1434,7 @@ interface InsertMethod {
1387
1434
  *
1388
1435
  * @group Query Tools
1389
1436
  */
1390
- declare const insert: InsertMethod;
1437
+ export declare const insert: InsertMethod;
1391
1438
  /**
1392
1439
  * Inserts a rule or group into a query in place.
1393
1440
  *
@@ -1395,13 +1442,13 @@ declare const insert: InsertMethod;
1395
1442
  *
1396
1443
  * @group Query Tools
1397
1444
  */
1398
- declare const insertInPlace: InsertMethod;
1445
+ export declare const insertInPlace: InsertMethod;
1399
1446
  /**
1400
1447
  * Options for {@link group}.
1401
1448
  *
1402
1449
  * @group Query Tools
1403
1450
  */
1404
- interface GroupOptions extends QueryToolOptions {
1451
+ export interface GroupOptions extends QueryToolOptions {
1405
1452
  /**
1406
1453
  * When `true`, the source rule/group will not be removed from its original path.
1407
1454
  */
@@ -1417,7 +1464,7 @@ interface GroupOptions extends QueryToolOptions {
1417
1464
  */
1418
1465
  idGenerator?: () => string;
1419
1466
  }
1420
- interface GroupMethod {
1467
+ export interface GroupMethod {
1421
1468
  <RG extends RuleGroupTypeAny>(query: RG, sourcePathOrID: Path | string, targetPathOrID: Path | string, options?: GroupOptions): RG;
1422
1469
  }
1423
1470
  /**
@@ -1429,7 +1476,7 @@ interface GroupMethod {
1429
1476
  *
1430
1477
  * @group Query Tools
1431
1478
  */
1432
- declare const group: GroupMethod;
1479
+ export declare const group: GroupMethod;
1433
1480
  /**
1434
1481
  * Creates a new group at a target path with its `rules` array containing the current
1435
1482
  * objects at the target path and the source path in place.
@@ -1439,7 +1486,7 @@ declare const group: GroupMethod;
1439
1486
  *
1440
1487
  * @group Query Tools
1441
1488
  */
1442
- declare const groupInPlace: GroupMethod;
1489
+ export declare const groupInPlace: GroupMethod;
1443
1490
  //#endregion
1444
1491
  //#region src/utils/abortReasons.d.ts
1445
1492
  /**
@@ -1452,7 +1499,7 @@ declare const groupInPlace: GroupMethod;
1452
1499
  *
1453
1500
  * @group Query Tools
1454
1501
  */
1455
- declare const strictAbortReasons: readonly AbortReason[];
1502
+ export declare const strictAbortReasons: readonly AbortReason[];
1456
1503
  //#endregion
1457
1504
  //#region src/utils/arrayUtils.d.ts
1458
1505
  /**
@@ -1467,7 +1514,7 @@ declare const strictAbortReasons: readonly AbortReason[];
1467
1514
  * // would return
1468
1515
  * ['this,,that', '', 'the other', '', '', ',']
1469
1516
  */
1470
- declare const splitBy: (str?: string, splitChar?: string) => string[];
1517
+ export declare const splitBy: (str?: string, splitChar?: string) => string[];
1471
1518
  /**
1472
1519
  * Joins an array of strings using the given character (see {@link defaultJoinChar}). When
1473
1520
  * the given character appears in an array element, a backslash will be added just before it
@@ -1481,31 +1528,31 @@ declare const splitBy: (str?: string, splitChar?: string) => string[];
1481
1528
  * // would return
1482
1529
  * 'this\\,\\,that, , the other, , , \\,'
1483
1530
  */
1484
- declare const joinWith: (strArr: unknown[], joinChar?: string) => string;
1531
+ export declare const joinWith: (strArr: unknown[], joinChar?: string) => string;
1485
1532
  type IsUnknown<T> = unknown extends T ? true : false;
1486
1533
  type Trimmed<T> = IsUnknown<T> extends true ? string : T;
1487
1534
  /**
1488
1535
  * Trims the value if it is a string. Otherwise returns the value as is.
1489
1536
  */
1490
- declare const trimIfString: <T>(val: T) => Trimmed<T>;
1537
+ export declare const trimIfString: <T>(val: T) => Trimmed<T>;
1491
1538
  type ToArrayResult<T> = IsUnknown<T> extends true ? string[] : T extends readonly (infer U)[] ? Trimmed<U>[] : T extends string ? string[] : T extends number ? number[] : never[];
1492
1539
  /**
1493
1540
  * Splits a string by comma then trims each element. Arrays are returned as is except
1494
1541
  * any string elements are trimmed.
1495
1542
  */
1496
- declare const toArray: <T>(a: T, { retainEmptyStrings }?: {
1543
+ export declare const toArray: <T>(a: T, { retainEmptyStrings }?: {
1497
1544
  retainEmptyStrings?: boolean;
1498
1545
  }) => ToArrayResult<T>;
1499
1546
  /**
1500
1547
  * Determines if an array is free of `null`/`undefined`.
1501
1548
  */
1502
- declare const nullFreeArray: <T>(arr: T[]) => arr is Exclude<T, null>[];
1549
+ export declare const nullFreeArray: <T>(arr: T[]) => arr is Exclude<T, null>[];
1503
1550
  //#endregion
1504
1551
  //#region ../../node_modules/clsx/clsx.d.mts
1505
1552
  type ClassValue = ClassArray | ClassDictionary | string | number | bigint | null | boolean | undefined;
1506
1553
  type ClassDictionary = Record<string, any>;
1507
1554
  type ClassArray = ClassValue[];
1508
- declare function clsx(...inputs: ClassValue[]): string;
1555
+ export declare function clsx(...inputs: ClassValue[]): string;
1509
1556
  //#endregion
1510
1557
  //#region src/utils/coalesce.d.ts
1511
1558
  /**
@@ -1528,7 +1575,7 @@ declare function clsx(...inputs: ClassValue[]): string;
1528
1575
  * @param now Timestamp of the change being recorded.
1529
1576
  * @param coalesceMs Coalescing window in milliseconds.
1530
1577
  */
1531
- declare const shouldCoalesce: (prevSig: string | undefined, nextSig: string, prevAt: number, now: number, coalesceMs?: number) => boolean;
1578
+ export declare const shouldCoalesce: (prevSig: string | undefined, nextSig: string, prevAt: number, now: number, coalesceMs?: number) => boolean;
1532
1579
  //#endregion
1533
1580
  //#region src/utils/convertQuery.d.ts
1534
1581
  /**
@@ -1539,7 +1586,7 @@ declare const shouldCoalesce: (prevSig: string | undefined, nextSig: string, pre
1539
1586
  *
1540
1587
  * @group Query Tools
1541
1588
  */
1542
- declare const convertFromIC: <RG extends RuleGroupTypeAny>(rg: RG) => ToRuleGroupType<RG>;
1589
+ export declare const convertFromIC: <RG extends RuleGroupTypeAny>(rg: RG) => ToRuleGroupType<RG>;
1543
1590
  /**
1544
1591
  * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}.
1545
1592
  *
@@ -1548,7 +1595,7 @@ declare const convertFromIC: <RG extends RuleGroupTypeAny>(rg: RG) => ToRuleGrou
1548
1595
  *
1549
1596
  * @group Query Tools
1550
1597
  */
1551
- declare const convertToIC: <RG extends RuleGroupTypeAny>(rg: RG) => ToRuleGroupTypeIC<RG>;
1598
+ export declare const convertToIC: <RG extends RuleGroupTypeAny>(rg: RG) => ToRuleGroupTypeIC<RG>;
1552
1599
  /**
1553
1600
  * Converts a {@link RuleGroupType} to {@link RuleGroupTypeIC}. For a more explicit
1554
1601
  * operation, use {@link convertToIC}.
@@ -1570,7 +1617,7 @@ declare function convertQuery(query: RuleGroupTypeIC): RuleGroupType;
1570
1617
  * `validator` prop. It assumes that you want to validate groups, and has a no-op
1571
1618
  * for validating rules which you can replace with your own implementation.
1572
1619
  */
1573
- declare const defaultValidator: QueryValidator;
1620
+ export declare const defaultValidator: QueryValidator;
1574
1621
  //#endregion
1575
1622
  //#region src/utils/deriveClassNames.d.ts
1576
1623
  /** Classname keys that have both a standard class and a `controlClassnames` entry. */
@@ -1582,7 +1629,7 @@ type StandardClassnameKey = keyof typeof standardClassnames & keyof Classnames;
1582
1629
  * entry. Set `standardOnly` when the standard class is conditional but no custom class
1583
1630
  * corresponds to it.
1584
1631
  */
1585
- interface ClassnameCondition<S> {
1632
+ export interface ClassnameCondition<S> {
1586
1633
  key: StandardClassnameKey;
1587
1634
  when: (state: S) => boolean | undefined;
1588
1635
  standardOnly?: boolean;
@@ -1591,16 +1638,16 @@ interface ClassnameCondition<S> {
1591
1638
  * How one derived classname is composed: the `controlClassnames` keys that contribute to it (in
1592
1639
  * application order, after the standard classname), plus any state-dependent classes.
1593
1640
  */
1594
- interface ClassnameSpec<S> {
1641
+ export interface ClassnameSpec<S> {
1595
1642
  sources: readonly (keyof Classnames)[];
1596
1643
  conditions?: readonly ClassnameCondition<S>[];
1597
1644
  }
1598
1645
  /** Keys of the `classNames` object returned for a rule. */
1599
- type RuleClassnameKey = "shiftActions" | "dragHandle" | "fields" | "matchMode" | "matchThreshold" | "operators" | "valueSource" | "value" | "cloneRule" | "lockRule" | "muteRule" | "removeRule" | "valueListItem";
1646
+ export type RuleClassnameKey = "shiftActions" | "dragHandle" | "fields" | "matchMode" | "matchThreshold" | "operators" | "valueSource" | "value" | "cloneRule" | "lockRule" | "muteRule" | "removeRule" | "valueListItem";
1600
1647
  /** Keys of the `classNames` object returned for a rule group. */
1601
- type RuleGroupClassnameKey = "header" | "shiftActions" | "undoRedoActions" | "undoAction" | "redoAction" | "dragHandle" | "combinators" | "notToggle" | "addRule" | "addGroup" | "cloneGroup" | "lockGroup" | "muteGroup" | "removeGroup" | "body";
1648
+ export type RuleGroupClassnameKey = "header" | "shiftActions" | "undoRedoActions" | "undoAction" | "redoAction" | "dragHandle" | "combinators" | "notToggle" | "addRule" | "addGroup" | "cloneGroup" | "ungroup" | "lockGroup" | "muteGroup" | "removeGroup" | "body";
1602
1649
  /** Drag-and-drop state that can contribute conditional classnames. */
1603
- interface DndClassNameState {
1650
+ export interface DndClassNameState {
1604
1651
  isDragging?: boolean;
1605
1652
  isOver?: boolean;
1606
1653
  dropEffect?: "move" | "copy";
@@ -1608,18 +1655,18 @@ interface DndClassNameState {
1608
1655
  dropNotAllowed?: boolean;
1609
1656
  }
1610
1657
  /** State that contributes conditional classnames to a rule's wrapper element. */
1611
- interface RuleClassNameState extends DndClassNameState {
1658
+ export interface RuleClassNameState extends DndClassNameState {
1612
1659
  disabled?: boolean;
1613
1660
  muted?: boolean;
1614
1661
  hasSubQuery?: boolean;
1615
1662
  }
1616
1663
  /** State that contributes conditional classnames to the query builder's wrapper element. */
1617
- interface QueryBuilderClassNameState {
1664
+ export interface QueryBuilderClassNameState {
1618
1665
  disabled?: boolean;
1619
1666
  validationResult?: boolean | ValidationMap;
1620
1667
  }
1621
1668
  /** Options common to every classname derivation. */
1622
- interface DeriveClassNamesOptions {
1669
+ export interface DeriveClassNamesOptions {
1623
1670
  /** The merged `controlClassnames` for the query builder. */
1624
1671
  classNames: Partial<Classnames> | undefined;
1625
1672
  /** When `true`, standard (`rule`, `ruleGroup-*`, etc.) classnames are omitted. */
@@ -1631,7 +1678,7 @@ interface DeriveClassNamesOptions {
1631
1678
  *
1632
1679
  * @group Query Tools
1633
1680
  */
1634
- declare const deriveRuleClassNames: (options: DeriveClassNamesOptions) => Record<RuleClassnameKey, string>;
1681
+ export declare const deriveRuleClassNames: (options: DeriveClassNamesOptions) => Record<RuleClassnameKey, string>;
1635
1682
  /**
1636
1683
  * The classname for a single element of a rule, composed from the same table as
1637
1684
  * {@link deriveRuleClassNames}. Useful where only one is needed, such as the items of a
@@ -1639,7 +1686,7 @@ declare const deriveRuleClassNames: (options: DeriveClassNamesOptions) => Record
1639
1686
  *
1640
1687
  * @group Query Tools
1641
1688
  */
1642
- declare const deriveRuleClassName: (key: RuleClassnameKey, options: DeriveClassNamesOptions) => string;
1689
+ export declare const deriveRuleClassName: (key: RuleClassnameKey, options: DeriveClassNamesOptions) => string;
1643
1690
  /**
1644
1691
  * Classnames for each element rendered by a rule group, including its conditionally-classed
1645
1692
  * `header`. This is the framework-agnostic core of the `classNames` object returned by the
@@ -1647,9 +1694,9 @@ declare const deriveRuleClassName: (key: RuleClassnameKey, options: DeriveClassN
1647
1694
  *
1648
1695
  * @group Query Tools
1649
1696
  */
1650
- declare const deriveRuleGroupClassNames: (options: DeriveClassNamesOptions & DndClassNameState) => Record<RuleGroupClassnameKey, string>;
1697
+ export declare const deriveRuleGroupClassNames: (options: DeriveClassNamesOptions & DndClassNameState) => Record<RuleGroupClassnameKey, string>;
1651
1698
  /** Inputs common to every outer (wrapper) classname derivation. */
1652
- interface OuterClassNameOptionsBase extends DeriveClassNamesOptions {
1699
+ export interface OuterClassNameOptionsBase extends DeriveClassNamesOptions {
1653
1700
  /**
1654
1701
  * Classnames contributed by the rule or group itself and its configuration, applied first.
1655
1702
  * For a rule that is the rule/field/operator classnames; for a group, the group and combinator
@@ -1660,13 +1707,13 @@ interface OuterClassNameOptionsBase extends DeriveClassNamesOptions {
1660
1707
  validationClassName?: Classname;
1661
1708
  }
1662
1709
  /** Inputs to {@link deriveRuleOuterClassName} and {@link deriveRuleGroupOuterClassName}. */
1663
- interface OuterClassNameOptions extends OuterClassNameOptionsBase, RuleClassNameState {}
1710
+ export interface OuterClassNameOptions extends OuterClassNameOptionsBase, RuleClassNameState {}
1664
1711
  /**
1665
1712
  * The outer (wrapper) classname for a rule, including every conditional state class.
1666
1713
  *
1667
1714
  * @group Query Tools
1668
1715
  */
1669
- declare const deriveRuleOuterClassName: (options: OuterClassNameOptions) => string;
1716
+ export declare const deriveRuleOuterClassName: (options: OuterClassNameOptions) => string;
1670
1717
  /**
1671
1718
  * The outer (wrapper) classname for a rule group, including every conditional state class.
1672
1719
  *
@@ -1676,21 +1723,21 @@ declare const deriveRuleOuterClassName: (options: OuterClassNameOptions) => stri
1676
1723
  *
1677
1724
  * @group Query Tools
1678
1725
  */
1679
- declare const deriveRuleGroupOuterClassName: (options: OuterClassNameOptions) => string;
1726
+ export declare const deriveRuleGroupOuterClassName: (options: OuterClassNameOptions) => string;
1680
1727
  /**
1681
1728
  * The outer (wrapper) classname for the query builder itself, including the conditional
1682
1729
  * `disabled`, `valid`, and `invalid` state classes.
1683
1730
  *
1684
1731
  * @group Query Tools
1685
1732
  */
1686
- declare const deriveQueryBuilderClassNames: (options: OuterClassNameOptionsBase & QueryBuilderClassNameState) => string;
1733
+ export declare const deriveQueryBuilderClassNames: (options: OuterClassNameOptionsBase & QueryBuilderClassNameState) => string;
1687
1734
  //#endregion
1688
1735
  //#region src/utils/deriveRuleContext.d.ts
1689
1736
  /**
1690
1737
  * Functions used by {@link deriveRuleContext} to resolve a rule's configuration. Each corresponds
1691
1738
  * to the `QueryBuilder` prop (or `useQueryBuilderSetup` output) of the same name.
1692
1739
  */
1693
- interface RuleContextResolvers<F extends FullField = FullField> {
1740
+ export interface RuleContextResolvers<F extends FullField = FullField> {
1694
1741
  fields: OptionList<F>;
1695
1742
  fieldMap: Partial<FullOptionRecord<FullField>>;
1696
1743
  getInputType: (field: string, operator: string, misc: {
@@ -1721,7 +1768,7 @@ interface RuleContextResolvers<F extends FullField = FullField> {
1721
1768
  /**
1722
1769
  * Everything {@link deriveRuleContext} resolves for a single rule.
1723
1770
  */
1724
- interface RuleContext<F extends FullField = FullField> {
1771
+ export interface RuleContext<F extends FullField = FullField> {
1725
1772
  fieldData: F;
1726
1773
  hideValueControls: boolean;
1727
1774
  inputType: InputType | null;
@@ -1740,44 +1787,44 @@ interface RuleContext<F extends FullField = FullField> {
1740
1787
  * Resolves the field configuration for a rule's `field`, falling back to a minimal option object
1741
1788
  * when the field isn't present in the field map.
1742
1789
  */
1743
- declare const getFieldData: (field: string, fieldMap: Partial<FullOptionRecord<FullField>>) => FullField;
1790
+ export declare const getFieldData: (field: string, fieldMap: Partial<FullOptionRecord<FullField>>) => FullField;
1744
1791
  /**
1745
1792
  * The input type for a rule. A field's own `inputType` takes precedence over `getInputType`.
1746
1793
  */
1747
- declare const getRuleInputType: <F extends FullField = FullField>(field: string, operator: string, fieldData: F, getInputType: RuleContextResolvers<F>["getInputType"]) => InputType | null;
1794
+ export declare const getRuleInputType: <F extends FullField = FullField>(field: string, operator: string, fieldData: F, getInputType: RuleContextResolvers<F>["getInputType"]) => InputType | null;
1748
1795
  /**
1749
1796
  * Whether the value editor(s) should be hidden for an operator, based on its `arity`.
1750
1797
  */
1751
- declare const hideValueControlsForOperator: (operatorObject?: FullOperator) => boolean;
1798
+ export declare const hideValueControlsForOperator: (operatorObject?: FullOperator) => boolean;
1752
1799
  /**
1753
1800
  * The subset of a rule that determines its configuration. Accepting only these properties (rather
1754
1801
  * than the whole rule) lets React callers keep granular memoization dependencies, so editing a
1755
1802
  * rule's `value` doesn't recompute its operators, value sources, or option lists.
1756
1803
  */
1757
- type RuleFacet = Pick<RuleType, "field" | "operator" | "valueSource">;
1804
+ export type RuleFacet = Pick<RuleType, "field" | "operator" | "valueSource">;
1758
1805
  /**
1759
1806
  * Value source options for a rule. A `valueSource` present on the rule but absent from the
1760
1807
  * configured list is appended, so the current selection is always representable.
1761
1808
  */
1762
- declare const getRuleValueSourceOptions: <F extends FullField = FullField>(rule: RuleFacet, fieldData: F, getValueSources: RuleContextResolvers<F>["getValueSources"]) => ValueSourceFullOptions;
1809
+ export declare const getRuleValueSourceOptions: <F extends FullField = FullField>(rule: RuleFacet, fieldData: F, getValueSources: RuleContextResolvers<F>["getValueSources"]) => ValueSourceFullOptions;
1763
1810
  /**
1764
1811
  * Normalizes the result of `getParameters` to a non-empty list or `null`.
1765
1812
  */
1766
- declare const getParametersAsList: (parameters: FlexibleOptionList<Option>) => FlexibleOptionList<Option> | null;
1813
+ export declare const getParametersAsList: (parameters: FlexibleOptionList<Option>) => FlexibleOptionList<Option> | null;
1767
1814
  /**
1768
1815
  * The value editor type for a rule. `valueSource: "field"` always uses a select list, and
1769
1816
  * `valueSource: "parameter"` uses a (multi)select when parameters are available.
1770
1817
  */
1771
- declare const getRuleValueEditorType: <F extends FullField = FullField>(rule: RuleFacet, fieldData: F, parametersAsList: FlexibleOptionList<Option> | null, getValueEditorType: RuleContextResolvers<F>["getValueEditorType"]) => ValueEditorType;
1818
+ export declare const getRuleValueEditorType: <F extends FullField = FullField>(rule: RuleFacet, fieldData: F, parametersAsList: FlexibleOptionList<Option> | null, getValueEditorType: RuleContextResolvers<F>["getValueEditorType"]) => ValueEditorType;
1772
1819
  /**
1773
1820
  * The option list presented by a rule's value editor, resolved from its `valueSource`.
1774
1821
  */
1775
- declare const getRuleValues: <F extends FullField = FullField>(rule: RuleFacet, fieldData: F, fields: OptionList<F>, parametersAsList: FlexibleOptionList<Option> | null, getValues: RuleContextResolvers<F>["getValues"]) => FlexibleOptionList<Option>;
1822
+ export declare const getRuleValues: <F extends FullField = FullField>(rule: RuleFacet, fieldData: F, fields: OptionList<F>, parametersAsList: FlexibleOptionList<Option> | null, getValues: RuleContextResolvers<F>["getValues"]) => FlexibleOptionList<Option>;
1776
1823
  /**
1777
1824
  * The validation result for a rule: the entry from a query-level {@link ValidationMap} if present,
1778
1825
  * otherwise the field's own `validator` result, otherwise `null`.
1779
1826
  */
1780
- declare const getRuleValidationResult: (rule: RuleType, fieldData: FullField, validationMap?: ValidationMap, id?: string) => boolean | ValidationResult;
1827
+ export declare const getRuleValidationResult: (rule: RuleType, fieldData: FullField, validationMap?: ValidationMap, id?: string) => boolean | ValidationResult;
1781
1828
  /**
1782
1829
  * Resolves everything about a single rule that depends on the field/operator configuration:
1783
1830
  * its field data, operators, value editor type, value list, value sources, match modes, and
@@ -1789,14 +1836,14 @@ declare const getRuleValidationResult: (rule: RuleType, fieldData: FullField, va
1789
1836
  *
1790
1837
  * @group Query Tools
1791
1838
  */
1792
- declare const deriveRuleContext: <F extends FullField = FullField>(rule: RuleType, resolvers: RuleContextResolvers<F>, options?: {
1839
+ export declare const deriveRuleContext: <F extends FullField = FullField>(rule: RuleType, resolvers: RuleContextResolvers<F>, options?: {
1793
1840
  validationMap?: ValidationMap;
1794
1841
  id?: string;
1795
1842
  }) => RuleContext<F>;
1796
1843
  /**
1797
1844
  * Everything {@link deriveRuleGroupContext} resolves for a single rule group.
1798
1845
  */
1799
- interface RuleGroupContext<C extends FullCombinator = FullCombinator> {
1846
+ export interface RuleGroupContext<C extends FullCombinator = FullCombinator> {
1800
1847
  combinator: string;
1801
1848
  combinatorObject: C | undefined;
1802
1849
  combinators: FullOptionList<C>;
@@ -1812,7 +1859,7 @@ interface RuleGroupContext<C extends FullCombinator = FullCombinator> {
1812
1859
  * This intentionally covers only the current property-based API. The `RuleGroup` component
1813
1860
  * additionally falls back to its deprecated `combinator` prop; that fallback stays in the hook.
1814
1861
  */
1815
- declare const getRuleGroupCombinator: <C extends FullCombinator = FullCombinator>(ruleGroup: RuleGroupTypeAny, combinators: FullOptionList<C>) => string;
1862
+ export declare const getRuleGroupCombinator: <C extends FullCombinator = FullCombinator>(ruleGroup: RuleGroupTypeAny, combinators: FullOptionList<C>) => string;
1816
1863
  /**
1817
1864
  * Resolves everything about a rule group that depends on the combinator configuration, plus its
1818
1865
  * validation result.
@@ -1822,7 +1869,7 @@ declare const getRuleGroupCombinator: <C extends FullCombinator = FullCombinator
1822
1869
  *
1823
1870
  * @group Query Tools
1824
1871
  */
1825
- declare const deriveRuleGroupContext: <C extends FullCombinator = FullCombinator>(ruleGroup: RuleGroupTypeAny, combinators: FullOptionList<C>, options?: {
1872
+ export declare const deriveRuleGroupContext: <C extends FullCombinator = FullCombinator>(ruleGroup: RuleGroupTypeAny, combinators: FullOptionList<C>, options?: {
1826
1873
  validationMap?: ValidationMap;
1827
1874
  id?: string;
1828
1875
  }) => RuleGroupContext<C>;
@@ -1833,7 +1880,7 @@ declare const deriveRuleGroupContext: <C extends FullCombinator = FullCombinator
1833
1880
  *
1834
1881
  * @group Value Editors
1835
1882
  */
1836
- declare const isBetweenOperator: (operator: string) => boolean;
1883
+ export declare const isBetweenOperator: (operator: string) => boolean;
1837
1884
  /**
1838
1885
  * Determines whether a rule's `value` needs to be collapsed to a single element because it no
1839
1886
  * longer represents a list, and what it should become.
@@ -1848,7 +1895,7 @@ declare const isBetweenOperator: (operator: string) => boolean;
1848
1895
  *
1849
1896
  * @group Value Editors
1850
1897
  */
1851
- declare const getValueEditorReset: ({ skipHook, type, operator, value, inputType }: {
1898
+ export declare const getValueEditorReset: ({ skipHook, type, operator, value, inputType }: {
1852
1899
  skipHook?: boolean;
1853
1900
  type?: string;
1854
1901
  operator: string;
@@ -1867,7 +1914,7 @@ declare const getValueEditorReset: ({ skipHook, type, operator, value, inputType
1867
1914
  *
1868
1915
  * @group Value Editors
1869
1916
  */
1870
- declare const getMultiValueUpdate: ({ value, index, valueAsArray, operator, values, listsAsArrays, parseNumberMethod }: {
1917
+ export declare const getMultiValueUpdate: ({ value, index, valueAsArray, operator, values, listsAsArrays, parseNumberMethod }: {
1871
1918
  value: unknown;
1872
1919
  index: number;
1873
1920
  valueAsArray: unknown[];
@@ -1882,21 +1929,21 @@ declare const getMultiValueUpdate: ({ value, index, valueAsArray, operator, valu
1882
1929
  *
1883
1930
  * @group Value Editors
1884
1931
  */
1885
- declare const coerceBigIntValue: (value: unknown, parseNumberMethod?: ParseNumberMethod) => unknown;
1932
+ export declare const coerceBigIntValue: (value: unknown, parseNumberMethod?: ParseNumberMethod) => unknown;
1886
1933
  /**
1887
1934
  * The `type` attribute an `<input>` should use for a rule. `bigint` values and the `in`/`notIn`
1888
1935
  * operators (whose value is a comma-separated list) both require a text input.
1889
1936
  *
1890
1937
  * @group Value Editors
1891
1938
  */
1892
- declare const coerceInputType: (inputType: InputType | null | undefined, operator: string) => InputType;
1939
+ export declare const coerceInputType: (inputType: InputType | null | undefined, operator: string) => InputType;
1893
1940
  /**
1894
1941
  * Produces the next value for a value selector. Multiselect values are normalized to an array
1895
1942
  * first, then comma-joined unless `listsAsArrays` is `true`. Single-select values pass through.
1896
1943
  *
1897
1944
  * @group Value Editors
1898
1945
  */
1899
- declare const getValueSelectorUpdate: (value: string | string[], { multiple, listsAsArrays }?: {
1946
+ export declare const getValueSelectorUpdate: (value: string | string[], { multiple, listsAsArrays }?: {
1900
1947
  multiple?: boolean;
1901
1948
  listsAsArrays?: boolean;
1902
1949
  }) => string | string[];
@@ -1906,7 +1953,7 @@ declare const getValueSelectorUpdate: (value: string | string[], { multiple, lis
1906
1953
  *
1907
1954
  * @group Value Editors
1908
1955
  */
1909
- declare const normalizeValueSelectorValue: (value: unknown, multiple?: boolean) => any;
1956
+ export declare const normalizeValueSelectorValue: (value: unknown, multiple?: boolean) => any;
1910
1957
  //#endregion
1911
1958
  //#region src/utils/filterFieldsByComparator.d.ts
1912
1959
  /**
@@ -1920,7 +1967,7 @@ declare const normalizeValueSelectorValue: (value: unknown, multiple?: boolean)
1920
1967
  *
1921
1968
  * @group Option Lists
1922
1969
  */
1923
- declare const filterFieldsByComparator: (field: FullField, fields: OptionList<FullField>, operator: string) => FullField[] | {
1970
+ export declare const filterFieldsByComparator: (field: FullField, fields: OptionList<FullField>, operator: string) => FullField[] | {
1924
1971
  options: WithUnknownIndex<FullField>[];
1925
1972
  label: string;
1926
1973
  }[];
@@ -1932,11 +1979,11 @@ declare const filterFieldsByComparator: (field: FullField, fields: OptionList<Fu
1932
1979
  *
1933
1980
  * @group Accessibility
1934
1981
  */
1935
- declare const generateAccessibleDescription: AccessibleDescriptionGenerator;
1982
+ export declare const generateAccessibleDescription: AccessibleDescriptionGenerator;
1936
1983
  //#endregion
1937
1984
  //#region src/utils/generateID.d.ts
1938
1985
  type UUID = `${string}-${string}-${string}-${string}-${string}`;
1939
- declare const uuidV4regex: RegExp;
1986
+ export declare const uuidV4regex: RegExp;
1940
1987
  /**
1941
1988
  * Default `id` generator. Generates a valid v4 UUID. Uses `crypto.randomUUID()`
1942
1989
  * when available, otherwise uses an alternate method based on `getRandomValues`.
@@ -1946,7 +1993,7 @@ declare const uuidV4regex: RegExp;
1946
1993
  * ```
1947
1994
  * @returns Valid v4 UUID
1948
1995
  */
1949
- declare let generateID: () => UUID;
1996
+ export declare let generateID: () => UUID;
1950
1997
  //#endregion
1951
1998
  //#region src/utils/getMatchModesUtil.d.ts
1952
1999
  /**
@@ -1955,19 +2002,19 @@ declare let generateID: () => UUID;
1955
2002
  * property, the `getMatchModes` prop is used. Returns
1956
2003
  * `FullOption<MatchMode>[]` of all match modes by default.
1957
2004
  */
1958
- declare const getMatchModesUtil: <F extends FullField>(fieldData: F, getMatchModes?: (field: GetOptionIdentifierType<F>, misc: {
2005
+ export declare const getMatchModesUtil: <F extends FullField>(fieldData: F, getMatchModes?: (field: GetOptionIdentifierType<F>, misc: {
1959
2006
  fieldData: F;
1960
2007
  }) => boolean | MatchMode[] | FlexibleOption<MatchMode>[]) => MatchModeOptions;
1961
2008
  //#endregion
1962
2009
  //#region src/utils/getParseNumberMethod.d.ts
1963
- declare const getParseNumberMethod: ({ parseNumbers, inputType }: {
2010
+ export declare const getParseNumberMethod: ({ parseNumbers, inputType }: {
1964
2011
  parseNumbers?: ParseNumbersPropConfig;
1965
2012
  inputType?: InputType | null;
1966
2013
  }) => ParseNumberMethod;
1967
2014
  //#endregion
1968
2015
  //#region src/utils/getRuleDefaultValue.d.ts
1969
2016
  /** Options for {@link getRuleDefaultValue}. */
1970
- interface GetRuleDefaultValueOptions<F extends FullField = FullField> {
2017
+ export interface GetRuleDefaultValueOptions<F extends FullField = FullField> {
1971
2018
  /** Resolved field configuration for `rule.field` (e.g. `fieldMap[rule.field] ?? {}`). */
1972
2019
  fieldData: F;
1973
2020
  /** Full field list, used to seed a comparator-valid field when `valueSource` is `'field'`. */
@@ -2008,7 +2055,7 @@ declare const getRuleDefaultValue$1: <F extends FullField = FullField>(rule: Rul
2008
2055
  * Gets the standard classname for valid or invalid components
2009
2056
  * based on the given validation result.
2010
2057
  */
2011
- declare const getValidationClassNames: (validationResult: boolean | ValidationResult) => "" | (typeof standardClassnames)["valid"] | (typeof standardClassnames)["invalid"];
2058
+ export declare const getValidationClassNames: (validationResult: boolean | ValidationResult) => "" | (typeof standardClassnames)["valid"] | (typeof standardClassnames)["invalid"];
2012
2059
  //#endregion
2013
2060
  //#region src/utils/getValueSourcesUtil.d.ts
2014
2061
  /**
@@ -2017,7 +2064,7 @@ declare const getValidationClassNames: (validationResult: boolean | ValidationRe
2017
2064
  * `valueSources` property, the `getValueSources` prop is used.
2018
2065
  * Returns `[FullOption<"value">]` by default.
2019
2066
  */
2020
- declare const getValueSourcesUtil: <F extends FullField, O extends string>(fieldData: F, operator: string, getValueSources?: (field: GetOptionIdentifierType<F>, operator: O, misc: {
2067
+ export declare const getValueSourcesUtil: <F extends FullField, O extends string>(fieldData: F, operator: string, getValueSources?: (field: GetOptionIdentifierType<F>, operator: O, misc: {
2021
2068
  fieldData: F;
2022
2069
  }) => ValueSources | ValueSourceFlexibleOptions) => ValueSourceFullOptions;
2023
2070
  //#endregion
@@ -2035,70 +2082,70 @@ declare const getValueSourcesUtil: <F extends FullField, O extends string>(field
2035
2082
  *
2036
2083
  * @group Query Tools
2037
2084
  */
2038
- declare const setAutoFreeze: (autoFreeze: boolean) => void;
2085
+ export declare const setAutoFreeze: (autoFreeze: boolean) => void;
2039
2086
  //#endregion
2040
2087
  //#region src/utils/isRuleGroup.d.ts
2041
2088
  /**
2042
2089
  * Determines if an object is a {@link RuleType} (only checks for a `field` property).
2043
2090
  */
2044
- declare const isRuleType: (s: unknown) => s is RuleType;
2091
+ export declare const isRuleType: (s: unknown) => s is RuleType;
2045
2092
  /**
2046
2093
  * Determines if an object is a {@link RuleGroupType} or {@link RuleGroupTypeIC}.
2047
2094
  */
2048
- declare const isRuleGroup: (rg: unknown) => rg is RuleGroupTypeAny;
2095
+ export declare const isRuleGroup: (rg: unknown) => rg is RuleGroupTypeAny;
2049
2096
  /**
2050
2097
  * Determines if an object is a {@link RuleGroupType}.
2051
2098
  */
2052
- declare const isRuleGroupType: (rg: unknown) => rg is RuleGroupType;
2099
+ export declare const isRuleGroupType: (rg: unknown) => rg is RuleGroupType;
2053
2100
  /**
2054
2101
  * Determines if an object is a {@link RuleGroupTypeIC}.
2055
2102
  */
2056
- declare const isRuleGroupTypeIC: (rg: unknown) => rg is RuleGroupTypeIC;
2103
+ export declare const isRuleGroupTypeIC: (rg: unknown) => rg is RuleGroupTypeIC;
2057
2104
  //#endregion
2058
2105
  //#region src/utils/isRuleOrGroupValid.d.ts
2059
2106
  /**
2060
2107
  * Determines if an object is useful as a validation result.
2061
2108
  */
2062
- declare const isValidationResult: (vr?: ValidationResult) => vr is ValidationResult;
2109
+ export declare const isValidationResult: (vr?: ValidationResult) => vr is ValidationResult;
2063
2110
  /**
2064
2111
  * Determines if a rule or group is valid based on a validation result (if defined)
2065
2112
  * or a validator function. Returns `true` if neither are defined and the `muted`
2066
2113
  * property is not `true`.
2067
2114
  */
2068
- declare const isRuleOrGroupValid: (rg: RuleType | RuleGroupTypeAny, validationResult?: boolean | ValidationResult, validator?: RuleValidator) => boolean;
2115
+ export declare const isRuleOrGroupValid: (rg: RuleType | RuleGroupTypeAny, validationResult?: boolean | ValidationResult, validator?: RuleValidator) => boolean;
2069
2116
  //#endregion
2070
2117
  //#region src/utils/mergeAnyTranslations.d.ts
2071
2118
  /**
2072
2119
  * Merges any number of partial translations into a single definition.
2073
2120
  */
2074
- declare const mergeAnyTranslations: (base: Record<string, Record<string, unknown>>, ...otherTranslations: (Record<string, Record<string, unknown>> | undefined)[]) => Record<string, Record<string, unknown>>;
2075
- declare const mergeAnyTranslation: (el: string, keyPropContextMap: Record<string, [unknown, unknown]>, defaults?: Record<string, Record<string, unknown>>) => Record<string, Record<string, unknown>> | undefined;
2121
+ export declare const mergeAnyTranslations: (base: Record<string, Record<string, unknown>>, ...otherTranslations: (Record<string, Record<string, unknown>> | undefined)[]) => Record<string, Record<string, unknown>>;
2122
+ export declare const mergeAnyTranslation: (el: string, keyPropContextMap: Record<string, [unknown, unknown]>, defaults?: Record<string, Record<string, unknown>>) => Record<string, Record<string, unknown>> | undefined;
2076
2123
  //#endregion
2077
2124
  //#region src/utils/mergeClassnames.d.ts
2078
2125
  type MergeClassnamesParams = (Partial<Classnames> | undefined)[];
2079
2126
  /**
2080
2127
  * Merges a list of partial {@link Classnames} definitions into a single definition.
2081
2128
  */
2082
- declare const mergeClassnames: (...args: MergeClassnamesParams) => Classnames;
2129
+ export declare const mergeClassnames: (...args: MergeClassnamesParams) => Classnames;
2083
2130
  //#endregion
2084
2131
  //#region src/utils/misc.d.ts
2085
2132
  /**
2086
2133
  * Converts a value to lowercase if it's a string, otherwise returns the value as is.
2087
2134
  */
2088
- declare const lc: <T>(v: T) => T;
2135
+ export declare const lc: <T>(v: T) => T;
2089
2136
  /**
2090
2137
  * Regex matching numeric strings. Passes for positive/negative integers, decimals,
2091
2138
  * and E notation, with optional surrounding whitespace.
2092
2139
  */
2093
- declare const numericRegex: RegExp;
2140
+ export declare const numericRegex: RegExp;
2094
2141
  /**
2095
2142
  * Determines if a variable is a plain old JavaScript object, aka POJO.
2096
2143
  */
2097
- declare const isPojo: (obj: unknown) => obj is Record<string, any>;
2144
+ export declare const isPojo: (obj: unknown) => obj is Record<string, any>;
2098
2145
  /**
2099
2146
  * Simple helper to determine whether a value is null, undefined, or an empty string.
2100
2147
  */
2101
- declare const nullOrUndefinedOrEmpty: (value: unknown) => value is null | undefined | "";
2148
+ export declare const nullOrUndefinedOrEmpty: (value: unknown) => value is null | undefined | "";
2102
2149
  //#endregion
2103
2150
  //#region src/utils/objectUtils.d.ts
2104
2151
  /**
@@ -2113,18 +2160,18 @@ type ObjectKeys<T extends object> = Exclude<keyof T, symbol>;
2113
2160
  *
2114
2161
  * [Original source](https://github.com/sindresorhus/ts-extras/blob/44f57392c5f027268330771996c4fdf9260b22d6/source/object-keys.ts)
2115
2162
  */
2116
- declare const objectKeys: <Type extends object>(value: Type) => Array<ObjectKeys<Type>>;
2163
+ export declare const objectKeys: <Type extends object>(value: Type) => Array<ObjectKeys<Type>>;
2117
2164
  /**
2118
2165
  * A strongly-typed version of `Object.entries()`.
2119
2166
  *
2120
2167
  * [Original source](https://github.com/sindresorhus/ts-extras/blob/44f57392c5f027268330771996c4fdf9260b22d6/source/object-entries.ts)
2121
2168
  */
2122
- declare const objectEntries: <Type extends Record<PropertyKey, unknown>>(value: Type) => Array<[ObjectKeys<Type>, Type[ObjectKeys<Type>]]>;
2169
+ export declare const objectEntries: <Type extends Record<PropertyKey, unknown>>(value: Type) => Array<[ObjectKeys<Type>, Type[ObjectKeys<Type>]]>;
2123
2170
  /**
2124
2171
  * Returns `true` if the key could cause prototype pollution when used
2125
2172
  * as a property name in bracket-notation assignment.
2126
2173
  */
2127
- declare const isUnsafeKey: (key: unknown) => boolean;
2174
+ export declare const isUnsafeKey: (key: unknown) => boolean;
2128
2175
  //#endregion
2129
2176
  //#region src/utils/optGroupUtils.d.ts
2130
2177
  /**
@@ -2133,27 +2180,27 @@ declare const isUnsafeKey: (key: unknown) => boolean;
2133
2180
  *
2134
2181
  * @group Option Lists
2135
2182
  */
2136
- declare function toFullOption<Opt extends BaseOption>(opt: Opt | string, baseProperties?: Record<string, unknown>, labelMap?: Record<string, unknown>): ToFullOption<Opt>;
2183
+ export declare function toFullOption<Opt extends BaseOption>(opt: Opt | string, baseProperties?: Record<string, unknown>, labelMap?: Record<string, unknown>): ToFullOption<Opt>;
2137
2184
  /**
2138
2185
  * Converts an {@link OptionList} or {@link FlexibleOptionList} into a {@link FullOptionList}.
2139
2186
  * Lists of full options are left unchanged.
2140
2187
  *
2141
2188
  * @group Option Lists
2142
2189
  */
2143
- declare function toFullOptionList<Opt extends BaseOption>(optList: unknown[], baseProperties?: Record<string, unknown>, labelMap?: Record<string, unknown>): FullOptionList<Opt>;
2190
+ export declare function toFullOptionList<Opt extends BaseOption>(optList: unknown[], baseProperties?: Record<string, unknown>, labelMap?: Record<string, unknown>): FullOptionList<Opt>;
2144
2191
  /**
2145
2192
  * Converts a {@link FlexibleOptionList} into a {@link FullOptionList}.
2146
2193
  * Lists of full options are left unchanged.
2147
2194
  *
2148
2195
  * @group Option Lists
2149
2196
  */
2150
- declare function toFullOptionMap<OptMap extends BaseOptionMap>(optMap: OptMap, baseProperties?: Record<string, unknown>): OptMap extends BaseOptionMap<infer V, infer K> ? Partial<Record<K, ToFullOption<V>>> : never;
2197
+ export declare function toFullOptionMap<OptMap extends BaseOptionMap>(optMap: OptMap, baseProperties?: Record<string, unknown>): OptMap extends BaseOptionMap<infer V, infer K> ? Partial<Record<K, ToFullOption<V>>> : never;
2151
2198
  /**
2152
2199
  * @deprecated Renamed to {@link uniqByIdentifier}.
2153
2200
  *
2154
2201
  * @group Option Lists
2155
2202
  */
2156
- declare const uniqByName: <T extends {
2203
+ export declare const uniqByName: <T extends {
2157
2204
  name: string;
2158
2205
  value?: string;
2159
2206
  } | {
@@ -2166,7 +2213,7 @@ declare const uniqByName: <T extends {
2166
2213
  *
2167
2214
  * @group Option Lists
2168
2215
  */
2169
- declare const uniqByIdentifier: <T extends RequireAtLeastOne<{
2216
+ export declare const uniqByIdentifier: <T extends RequireAtLeastOne<{
2170
2217
  name: string;
2171
2218
  value: string;
2172
2219
  }, "name" | "value">>(originalArray: T[]) => T[];
@@ -2175,25 +2222,25 @@ declare const uniqByIdentifier: <T extends RequireAtLeastOne<{
2175
2222
  *
2176
2223
  * @group Option Lists
2177
2224
  */
2178
- declare const isOptionGroupArray: (arr: unknown) => arr is OptionGroup<BaseOption>[];
2225
+ export declare const isOptionGroupArray: (arr: unknown) => arr is OptionGroup<BaseOption>[];
2179
2226
  /**
2180
2227
  * Determines if an array is a flat array of {@link FlexibleOption}.
2181
2228
  *
2182
2229
  * @group Option Lists
2183
2230
  */
2184
- declare const isFlexibleOptionArray: (arr: unknown) => arr is FlexibleOption[];
2231
+ export declare const isFlexibleOptionArray: (arr: unknown) => arr is FlexibleOption[];
2185
2232
  /**
2186
2233
  * Determines if an array is a flat array of {@link FullOption}.
2187
2234
  *
2188
2235
  * @group Option Lists
2189
2236
  */
2190
- declare const isFullOptionArray: (arr: unknown) => arr is FullOption[];
2237
+ export declare const isFullOptionArray: (arr: unknown) => arr is FullOption[];
2191
2238
  /**
2192
2239
  * Determines if a {@link FlexibleOptionList} is a {@link FlexibleOptionGroup} array.
2193
2240
  *
2194
2241
  * @group Option Lists
2195
2242
  */
2196
- declare const isFlexibleOptionGroupArray: (arr: unknown, { allowEmpty }?: {
2243
+ export declare const isFlexibleOptionGroupArray: (arr: unknown, { allowEmpty }?: {
2197
2244
  allowEmpty?: boolean;
2198
2245
  }) => arr is FlexibleOptionGroup[];
2199
2246
  /**
@@ -2201,7 +2248,7 @@ declare const isFlexibleOptionGroupArray: (arr: unknown, { allowEmpty }?: {
2201
2248
  *
2202
2249
  * @group Option Lists
2203
2250
  */
2204
- declare const isFullOptionGroupArray: (arr: unknown, { allowEmpty }?: {
2251
+ export declare const isFullOptionGroupArray: (arr: unknown, { allowEmpty }?: {
2205
2252
  allowEmpty?: boolean;
2206
2253
  }) => arr is OptionGroup<FullOption>[];
2207
2254
  /**
@@ -2210,46 +2257,46 @@ declare const isFullOptionGroupArray: (arr: unknown, { allowEmpty }?: {
2210
2257
  *
2211
2258
  * @group Option Lists
2212
2259
  */
2213
- declare function getOption<OptType extends FullOption>(arr: FullOptionList<OptType>, name: string): OptType | undefined;
2214
- declare function getOption<OptType extends ValueOption>(arr: FlexibleOptionList<OptType>, name: string): OptType | undefined;
2215
- declare function getOption<OptType extends Option>(arr: FlexibleOptionList<OptType>, name: string): OptType | undefined;
2260
+ export declare function getOption<OptType extends FullOption>(arr: FullOptionList<OptType>, name: string): OptType | undefined;
2261
+ export declare function getOption<OptType extends ValueOption>(arr: FlexibleOptionList<OptType>, name: string): OptType | undefined;
2262
+ export declare function getOption<OptType extends Option>(arr: FlexibleOptionList<OptType>, name: string): OptType | undefined;
2216
2263
  /**
2217
2264
  * Gets the first option from an {@link OptionList}.
2218
2265
  *
2219
2266
  * @group Option Lists
2220
2267
  */
2221
- declare function getFirstOption<Opt extends FullOption>(arr?: OptionGroup<Opt>[] | Opt[]): GetOptionIdentifierType<Opt> | null;
2222
- declare function getFirstOption<Opt extends ValueOption>(arr?: OptionGroup<Opt>[] | Opt[]): GetOptionIdentifierType<Opt> | null;
2223
- declare function getFirstOption<Opt extends Option>(arr?: OptionGroup<Opt>[] | Opt[]): GetOptionIdentifierType<Opt> | null;
2268
+ export declare function getFirstOption<Opt extends FullOption>(arr?: OptionGroup<Opt>[] | Opt[]): GetOptionIdentifierType<Opt> | null;
2269
+ export declare function getFirstOption<Opt extends ValueOption>(arr?: OptionGroup<Opt>[] | Opt[]): GetOptionIdentifierType<Opt> | null;
2270
+ export declare function getFirstOption<Opt extends Option>(arr?: OptionGroup<Opt>[] | Opt[]): GetOptionIdentifierType<Opt> | null;
2224
2271
  /**
2225
2272
  * Flattens {@link FlexibleOptionGroup} arrays into {@link BaseOption} arrays.
2226
2273
  * If the array is already flat, it is returned as is.
2227
2274
  *
2228
2275
  * @group Option Lists
2229
2276
  */
2230
- declare const toFlatOptionArray: <T extends FullOption>(arr: FullOptionList<T>) => T[];
2277
+ export declare const toFlatOptionArray: <T extends FullOption>(arr: FullOptionList<T>) => T[];
2231
2278
  /**
2232
2279
  * Generates a new {@link OptionGroup} array with duplicates
2233
2280
  * removed based on the identifying property (`value` or `name`).
2234
2281
  *
2235
2282
  * @group Option Lists
2236
2283
  */
2237
- declare const uniqOptGroups: <T extends BaseOption>(originalArray: FlexibleOptionGroup<T>[]) => OptionGroup<ToFullOption<T>>[];
2284
+ export declare const uniqOptGroups: <T extends BaseOption>(originalArray: FlexibleOptionGroup<T>[]) => OptionGroup<ToFullOption<T>>[];
2238
2285
  /**
2239
2286
  * Generates a new {@link Option} or {@link OptionGroup} array with duplicates
2240
2287
  * removed based on the identifier property (`value` or `name`).
2241
2288
  *
2242
2289
  * @group Option Lists
2243
2290
  */
2244
- declare const uniqOptList: <T extends BaseOption>(originalArray: FlexibleOptionList<T>) => WithUnknownIndex<BaseOption & FullOption>[] | OptionGroup<ToFullOption<T>>[];
2291
+ export declare const uniqOptList: <T extends BaseOption>(originalArray: FlexibleOptionList<T>) => WithUnknownIndex<BaseOption & FullOption>[] | OptionGroup<ToFullOption<T>>[];
2245
2292
  /** Result of {@link prepareOptionList}. */
2246
- interface PreparedOptionList<O extends FullOption> {
2293
+ export interface PreparedOptionList<O extends FullOption> {
2247
2294
  defaultOption: FullOption;
2248
2295
  optionList: FullOptionList<O>;
2249
2296
  optionsMap: Partial<FullOptionRecord<O>>;
2250
2297
  }
2251
2298
  /** Parameters for {@link prepareOptionList}. */
2252
- interface PrepareOptionListParams<O extends FullOption> {
2299
+ export interface PrepareOptionListParams<O extends FullOption> {
2253
2300
  placeholder?: Placeholder;
2254
2301
  optionList?: FlexibleOptionListProp<O> | BaseOptionMap<O>;
2255
2302
  baseOption?: Record<string, unknown>;
@@ -2270,13 +2317,13 @@ interface PrepareOptionListParams<O extends FullOption> {
2270
2317
  *
2271
2318
  * @group Option Lists
2272
2319
  */
2273
- declare const prepareOptionList: <O extends FullOption>(props: PrepareOptionListParams<O>) => PreparedOptionList<O>;
2320
+ export declare const prepareOptionList: <O extends FullOption>(props: PrepareOptionListParams<O>) => PreparedOptionList<O>;
2274
2321
  //#endregion
2275
2322
  //#region src/utils/optionResolvers.d.ts
2276
2323
  /**
2277
2324
  * Options shared by the resolvers below that produce a normalized option list.
2278
2325
  */
2279
- interface ResolveOptionListOptions {
2326
+ export interface ResolveOptionListOptions {
2280
2327
  /**
2281
2328
  * Prepended as an empty placeholder option when `autoSelectOption` is `false`. Supplied by the
2282
2329
  * `translations` prop in React; omit it where translations don't apply.
@@ -2294,7 +2341,7 @@ interface ResolveOptionListOptions {
2294
2341
  *
2295
2342
  * @group Option Lists
2296
2343
  */
2297
- declare const resolveOperatorList: <F extends FullField = FullField, O extends FullOperator = FullOperator>({ field, fieldData, getOperators, operators, placeholder, baseOption, autoSelectOption }: {
2344
+ export declare const resolveOperatorList: <F extends FullField = FullField, O extends FullOperator = FullOperator>({ field, fieldData, getOperators, operators, placeholder, baseOption, autoSelectOption }: {
2298
2345
  field: string;
2299
2346
  fieldData: F;
2300
2347
  getOperators?: (field: string, misc: {
@@ -2309,7 +2356,7 @@ declare const resolveOperatorList: <F extends FullField = FullField, O extends F
2309
2356
  *
2310
2357
  * @group Option Lists
2311
2358
  */
2312
- declare const resolveDefaultOperator: <F extends FullField = FullField>({ field, fieldData, getDefaultOperator, getOperators }: {
2359
+ export declare const resolveDefaultOperator: <F extends FullField = FullField>({ field, fieldData, getDefaultOperator, getOperators }: {
2313
2360
  field: string;
2314
2361
  fieldData: F;
2315
2362
  getDefaultOperator?: string | ((field: string, misc: {
@@ -2327,7 +2374,7 @@ declare const resolveDefaultOperator: <F extends FullField = FullField>({ field,
2327
2374
  *
2328
2375
  * @group Option Lists
2329
2376
  */
2330
- declare const resolveValueEditorType: <F extends FullField = FullField>({ field, operator, fieldData, getValueEditorType }: {
2377
+ export declare const resolveValueEditorType: <F extends FullField = FullField>({ field, operator, fieldData, getValueEditorType }: {
2331
2378
  field: string;
2332
2379
  operator: string;
2333
2380
  fieldData: F;
@@ -2342,7 +2389,7 @@ declare const resolveValueEditorType: <F extends FullField = FullField>({ field,
2342
2389
  *
2343
2390
  * @group Option Lists
2344
2391
  */
2345
- declare const resolveValueList: <F extends FullField = FullField>({ field, operator, fieldData, getValues, placeholder, baseOption, autoSelectOption }: {
2392
+ export declare const resolveValueList: <F extends FullField = FullField>({ field, operator, fieldData, getValues, placeholder, baseOption, autoSelectOption }: {
2346
2393
  field: string;
2347
2394
  operator: string;
2348
2395
  fieldData: F;
@@ -2355,44 +2402,44 @@ declare const resolveValueList: <F extends FullField = FullField>({ field, opera
2355
2402
  /**
2356
2403
  * Return type for {@link findPath}.
2357
2404
  */
2358
- type FindPathReturnType = RuleGroupTypeAny | RuleType | null;
2405
+ export type FindPathReturnType = RuleGroupTypeAny | RuleType | null;
2359
2406
  /**
2360
2407
  * Returns the {@link RuleType} or {@link RuleGroupType}/{@link RuleGroupTypeIC}
2361
2408
  * at the given path within a query.
2362
2409
  */
2363
- declare const findPath: (path: Path, query: RuleGroupTypeAny) => FindPathReturnType;
2410
+ export declare const findPath: (path: Path, query: RuleGroupTypeAny) => FindPathReturnType;
2364
2411
  /**
2365
2412
  * Returns the {@link RuleType} or {@link RuleGroupType}/{@link RuleGroupTypeIC}
2366
2413
  * with the given `id` within a query.
2367
2414
  */
2368
- declare const findID: (id: string, query: RuleGroupTypeAny) => FindPathReturnType;
2415
+ export declare const findID: (id: string, query: RuleGroupTypeAny) => FindPathReturnType;
2369
2416
  /**
2370
2417
  * Returns the {@link Path} of the {@link RuleType} or {@link RuleGroupType}/{@link RuleGroupTypeIC}
2371
2418
  * with the given `id` within a query.
2372
2419
  */
2373
- declare const getPathOfID: (id: string, query: RuleGroupTypeAny) => Path | null;
2420
+ export declare const getPathOfID: (id: string, query: RuleGroupTypeAny) => Path | null;
2374
2421
  /**
2375
2422
  * Truncates the last element of an array and returns the result as a new array.
2376
2423
  */
2377
- declare const getParentPath: (path: Path) => Path;
2424
+ export declare const getParentPath: (path: Path) => Path;
2378
2425
  /**
2379
2426
  * Determines if two paths (each `Path`) are equivalent.
2380
2427
  */
2381
- declare const pathsAreEqual: (path1: Path, path2: Path) => boolean;
2428
+ export declare const pathsAreEqual: (path1: Path, path2: Path) => boolean;
2382
2429
  /**
2383
2430
  * Determines if the first path is an ancestor of the second path. The first path must
2384
2431
  * be shorter and exactly match the second path up through the length of the first path.
2385
2432
  */
2386
- declare const isAncestor: (maybeAncestor: Path, path: Path) => boolean;
2433
+ export declare const isAncestor: (maybeAncestor: Path, path: Path) => boolean;
2387
2434
  /**
2388
2435
  * Finds the deepest/longest path that two paths have in common.
2389
2436
  */
2390
- declare const getCommonAncestorPath: (path1: Path, path2: Path) => Path;
2437
+ export declare const getCommonAncestorPath: (path1: Path, path2: Path) => Path;
2391
2438
  /**
2392
2439
  * Determines if the rule or group at the specified path is either disabled itself
2393
2440
  * or disabled by an ancestor group.
2394
2441
  */
2395
- declare const pathIsDisabled: (path: Path, query: RuleGroupTypeAny) => boolean;
2442
+ export declare const pathIsDisabled: (path: Path, query: RuleGroupTypeAny) => boolean;
2396
2443
  /**
2397
2444
  * Determines if the rule or group at the specified path is disabled by `disabledPaths`—the array
2398
2445
  * form of the `QueryBuilder` `disabled` prop, which disables nodes by position rather than by a
@@ -2401,8 +2448,8 @@ declare const pathIsDisabled: (path: Path, query: RuleGroupTypeAny) => boolean;
2401
2448
  *
2402
2449
  * @group Paths
2403
2450
  */
2404
- declare const pathIsDisabledByPaths: (path: Path, disabledPaths?: Path[]) => boolean;
2405
- /** The path of a child rule or group, and whether it is disabled. */ interface PathInfo {
2451
+ export declare const pathIsDisabledByPaths: (path: Path, disabledPaths?: Path[]) => boolean;
2452
+ /** The path of a child rule or group, and whether it is disabled. */ export interface PathInfo {
2406
2453
  path: Path;
2407
2454
  disabled: boolean;
2408
2455
  }
@@ -2412,7 +2459,7 @@ declare const pathIsDisabledByPaths: (path: Path, disabledPaths?: Path[]) => boo
2412
2459
  *
2413
2460
  * @group Paths
2414
2461
  */
2415
- declare const derivePathInfo: (path: Path, childCount: number, { disabled, disabledPaths }?: {
2462
+ export declare const derivePathInfo: (path: Path, childCount: number, { disabled, disabledPaths }?: {
2416
2463
  disabled?: boolean;
2417
2464
  disabledPaths?: Path[];
2418
2465
  }) => PathInfo[];
@@ -2609,7 +2656,7 @@ interface QueryManagerOptions<F extends FullField = FullField, O extends FullOpe
2609
2656
  * be proven equivalent, so a caller that rebuilds `getDefaultValue` per render must either
2610
2657
  * memoize it or accept the reconfigure.
2611
2658
  */
2612
- declare const valuesEqual: (a: unknown, b: unknown) => boolean;
2659
+ export declare const valuesEqual: (a: unknown, b: unknown) => boolean;
2613
2660
  /**
2614
2661
  * Whether two {@link QueryManagerOptions} objects describe the same configuration, per
2615
2662
  * {@link valuesEqual}: data by value, functions by identity.
@@ -2621,13 +2668,13 @@ declare const valuesEqual: (a: unknown, b: unknown) => boolean;
2621
2668
  * Nested option objects (`history`, `translations`, …) are descended into rather than compared
2622
2669
  * by identity, so `{ history: { maxHistory: 10 } }` rebuilt per render compares equal.
2623
2670
  */
2624
- declare const optionsEqual: <F extends FullField = FullField, O extends FullOperator = FullOperator, C extends FullCombinator = FullCombinator>(a: Partial<QueryManagerOptions<F, O, C>> | undefined, b: Partial<QueryManagerOptions<F, O, C>> | undefined) => boolean;
2671
+ export declare const optionsEqual: <F extends FullField = FullField, O extends FullOperator = FullOperator, C extends FullCombinator = FullCombinator>(a: Partial<QueryManagerOptions<F, O, C>> | undefined, b: Partial<QueryManagerOptions<F, O, C>> | undefined) => boolean;
2625
2672
  //#endregion
2626
2673
  //#region src/utils/parseNumber.d.ts
2627
2674
  /**
2628
2675
  * Options object for {@link parseNumber}.
2629
2676
  */
2630
- interface ParseNumberOptions {
2677
+ export interface ParseNumberOptions {
2631
2678
  parseNumbers?: ParseNumberMethod;
2632
2679
  /**
2633
2680
  * Generates a `bigint` value if the string represents a valid integer
@@ -2641,45 +2688,45 @@ interface ParseNumberOptions {
2641
2688
  * If that returns `NaN`, the string is returned unchanged. Numeric values are returned
2642
2689
  * as-is regardless of the `parseNumbers` option.
2643
2690
  */
2644
- declare const parseNumber: (val: unknown, { parseNumbers, bigIntOnOverflow }?: ParseNumberOptions) => any;
2691
+ export declare const parseNumber: (val: unknown, { parseNumbers, bigIntOnOverflow }?: ParseNumberOptions) => any;
2645
2692
  //#endregion
2646
2693
  //#region src/utils/preferProp.d.ts
2647
2694
  /**
2648
2695
  * For given default, prop, and context values, return the first provided of prop,
2649
2696
  * context, and default, in that order.
2650
2697
  */
2651
- declare const preferProp: (def: boolean, prop?: boolean, context?: boolean, doNotFinalize?: boolean) => boolean;
2698
+ export declare const preferProp: (def: boolean, prop?: boolean, context?: boolean, doNotFinalize?: boolean) => boolean;
2652
2699
  /**
2653
2700
  * For given default, prop, and context values, return the first provided of prop,
2654
2701
  * context, and default, in that order.
2655
2702
  */
2656
- declare const preferAnyProp: (def?: any, prop?: any, context?: any) => any;
2703
+ export declare const preferAnyProp: (def?: any, prop?: any, context?: any) => any;
2657
2704
  /**
2658
2705
  * For a given set of defaults, props, and context values, return the first provided of prop,
2659
2706
  * context, and default—in that order—for each property in the defaults object.
2660
2707
  */
2661
- declare const preferFlagProps: (props?: QueryBuilderFlags, contextVals?: QueryBuilderFlags, finalize?: boolean) => QueryBuilderFlags;
2708
+ export declare const preferFlagProps: (props?: QueryBuilderFlags, contextVals?: QueryBuilderFlags, finalize?: boolean) => QueryBuilderFlags;
2662
2709
  //#endregion
2663
2710
  //#region src/utils/prepareQueryObjects.d.ts
2664
2711
  /**
2665
2712
  * Options for {@link prepareRule}/{@link prepareRuleGroup}.
2666
2713
  */
2667
- interface PreparerOptions {
2714
+ export interface PreparerOptions {
2668
2715
  idGenerator?: () => string;
2669
2716
  }
2670
2717
  /**
2671
2718
  * Ensures that a rule is valid by adding an `id` property if it does not already exist.
2672
2719
  */
2673
- declare const prepareRule: (rule: RuleType, { idGenerator }?: PreparerOptions) => RuleType;
2720
+ export declare const prepareRule: (rule: RuleType, { idGenerator }?: PreparerOptions) => RuleType;
2674
2721
  /**
2675
2722
  * Ensures that a rule group is valid by recursively adding an `id` property to the group itself
2676
2723
  * and all its rules and subgroups where one does not already exist.
2677
2724
  */
2678
- declare const prepareRuleGroup: <RG extends RuleGroupTypeAny>(queryObject: RG, { idGenerator }?: PreparerOptions) => RG;
2725
+ export declare const prepareRuleGroup: <RG extends RuleGroupTypeAny>(queryObject: RG, { idGenerator }?: PreparerOptions) => RG;
2679
2726
  /**
2680
2727
  * Ensures that a rule or group is valid. See {@link prepareRule} and {@link prepareRuleGroup}.
2681
2728
  */
2682
- declare const prepareRuleOrGroup: (rg: RuleGroupTypeAny | RuleType, { idGenerator }?: PreparerOptions) => RuleGroupType | RuleGroupTypeIC | RuleType;
2729
+ export declare const prepareRuleOrGroup: (rg: RuleGroupTypeAny | RuleType, { idGenerator }?: PreparerOptions) => RuleGroupType | RuleGroupTypeIC | RuleType;
2683
2730
  /**
2684
2731
  * Resolves the query a query builder should render from the available sources, in precedence
2685
2732
  * order: the controlled `query`, then whatever is already in the store, then the uncontrolled
@@ -2691,7 +2738,7 @@ declare const prepareRuleOrGroup: (rg: RuleGroupTypeAny | RuleType, { idGenerato
2691
2738
  *
2692
2739
  * @group Query Tools
2693
2740
  */
2694
- declare const resolveCandidateQuery: <RG extends RuleGroupTypeAny>(sources: {
2741
+ export declare const resolveCandidateQuery: <RG extends RuleGroupTypeAny>(sources: {
2695
2742
  query?: RG;
2696
2743
  storeQuery?: RG;
2697
2744
  defaultQuery?: RG;
@@ -2709,11 +2756,13 @@ declare const resolveCandidateQuery: <RG extends RuleGroupTypeAny>(sources: {
2709
2756
  * _replacement rule/group_ to add instead of the one provided.
2710
2757
  * - `onMoveRule`/`onMoveGroup`/`onGroupRule`/`onGroupGroup` may return `true` to proceed, a
2711
2758
  * falsy value to cancel, or a _replacement query_ to apply instead of the computed one.
2759
+ * - `onUngroup` may return `true` to proceed, a falsy value to cancel, or a _replacement query_
2760
+ * to apply instead of the computed one.
2712
2761
  * - `onRemove` is boolean only.
2713
2762
  *
2714
2763
  * @group Query Tools
2715
2764
  */
2716
- interface QueryActionCallbacks {
2765
+ export interface QueryActionCallbacks {
2717
2766
  onAddRule?: (rule: RuleType, parentPath: Path, query: any, context?: any) => RuleType | boolean;
2718
2767
  onAddGroup?: (ruleGroup: any, parentPath: Path, query: any, context?: any) => RuleGroupTypeAny | boolean;
2719
2768
  onRemove?: (ruleOrGroup: any, path: Path, query: any, context?: any) => boolean;
@@ -2721,13 +2770,14 @@ interface QueryActionCallbacks {
2721
2770
  onMoveGroup?: (...args: any[]) => RuleGroupTypeAny | boolean;
2722
2771
  onGroupRule?: (...args: any[]) => RuleGroupTypeAny | boolean;
2723
2772
  onGroupGroup?: (...args: any[]) => RuleGroupTypeAny | boolean;
2773
+ onUngroup?: (...args: any[]) => RuleGroupTypeAny | boolean;
2724
2774
  }
2725
2775
  /**
2726
2776
  * Configuration for {@link createQueryActions}.
2727
2777
  *
2728
2778
  * @group Query Tools
2729
2779
  */
2730
- interface QueryActionsConfig extends QueryActionCallbacks {
2780
+ export interface QueryActionsConfig extends QueryActionCallbacks {
2731
2781
  /** Identifier included in every log payload. */
2732
2782
  qbId?: string;
2733
2783
  combinators?: OptionList;
@@ -2768,22 +2818,23 @@ interface QueryActionsConfig extends QueryActionCallbacks {
2768
2818
  onLog?: (payload: Record<string, any>) => void;
2769
2819
  }
2770
2820
  /**
2771
- * The six mutations a query builder performs. Each takes the current query and returns the next
2821
+ * The seven mutations a query builder performs. Each takes the current query and returns the next
2772
2822
  * one, or `undefined` when the mutation was aborted—because the target is disabled, a
2773
2823
  * confirmation callback declined, or a depth limit was reached.
2774
2824
  *
2775
2825
  * @group Query Tools
2776
2826
  */
2777
- interface QueryActionHandlers {
2827
+ export interface QueryActionHandlers {
2778
2828
  addRule: (query: any, rule: RuleType, parentPath: Path, context?: any) => any;
2779
2829
  addGroup: (query: any, ruleGroup: any, parentPath: Path, context?: any) => any;
2780
2830
  propChange: (query: any, prop: UpdateableProperties, value: any, path: Path) => any;
2781
2831
  removeRuleOrGroup: (query: any, path: Path, context?: any) => any;
2782
2832
  moveRule: (query: any, oldPath: Path, newPath: Path | "up" | "down", clone?: boolean, context?: any) => any;
2783
2833
  groupRule: (query: any, sourcePath: Path, targetPath: Path, clone?: boolean, context?: any) => any;
2834
+ ungroupRuleGroup: (query: any, path: Path, context?: any) => any;
2784
2835
  }
2785
2836
  /**
2786
- * Builds the query builder's six mutation handlers as pure functions of the current query.
2837
+ * Builds the query builder's seven mutation handlers as pure functions of the current query.
2787
2838
  *
2788
2839
  * This is the framework-agnostic core of the action handlers in `useQueryBuilderSchema`. It owns
2789
2840
  * the policy that surrounds the query tools—disabled gating, the confirmation callback protocol,
@@ -2792,23 +2843,23 @@ interface QueryActionHandlers {
2792
2843
  *
2793
2844
  * @group Query Tools
2794
2845
  */
2795
- declare const createQueryActions: (config?: QueryActionsConfig) => QueryActionHandlers;
2846
+ export declare const createQueryActions: (config?: QueryActionsConfig) => QueryActionHandlers;
2796
2847
  //#endregion
2797
2848
  //#region src/utils/regenerateIDs.d.ts
2798
2849
  /**
2799
2850
  * Options object for {@link regenerateID}/{@link regenerateIDs}.
2800
2851
  */
2801
- interface RegenerateIdOptions {
2852
+ export interface RegenerateIdOptions {
2802
2853
  idGenerator?: () => string;
2803
2854
  }
2804
2855
  /**
2805
2856
  * Generates a new `id` property for a rule.
2806
2857
  */
2807
- declare const regenerateID: <R extends RuleType>(rule: R, { idGenerator }?: RegenerateIdOptions) => SetRequired<R, "id">;
2858
+ export declare const regenerateID: <R extends RuleType>(rule: R, { idGenerator }?: RegenerateIdOptions) => SetRequired<R, "id">;
2808
2859
  /**
2809
2860
  * Recursively generates new `id` properties for a rule group and all its rules and subgroups.
2810
2861
  */
2811
- declare const regenerateIDs: <RG>(subject: RG, { idGenerator }?: RegenerateIdOptions) => RG & {
2862
+ export declare const regenerateIDs: <RG>(subject: RG, { idGenerator }?: RegenerateIdOptions) => RG & {
2812
2863
  id: string;
2813
2864
  };
2814
2865
  //#endregion
@@ -2817,7 +2868,7 @@ declare const regenerateIDs: <RG>(subject: RG, { idGenerator }?: RegenerateIdOpt
2817
2868
  * Everything {@link createRule} needs to produce a new rule. Each member corresponds to the
2818
2869
  * `QueryBuilder` prop (or `useQueryBuilderSetup` output) of the same name.
2819
2870
  */
2820
- interface CreateRuleOptions<F extends FullField = FullField> {
2871
+ export interface CreateRuleOptions<F extends FullField = FullField> {
2821
2872
  fields: FullOptionList<F>;
2822
2873
  getDefaultField?: string | ((fieldsData: FullOptionList<F>) => string);
2823
2874
  /** Produces the default operator for a field, i.e. `resolveDefaultOperator` already bound. */
@@ -2841,11 +2892,11 @@ interface CreateRuleOptions<F extends FullField = FullField> {
2841
2892
  *
2842
2893
  * @group Query Tools
2843
2894
  */
2844
- declare const createRule: <F extends FullField = FullField>({ fields, getDefaultField, getRuleDefaultOperator, getValueSources, getMatchModes, getRuleDefaultValue, idGenerator }: CreateRuleOptions<F>) => RuleType;
2895
+ export declare const createRule: <F extends FullField = FullField>({ fields, getDefaultField, getRuleDefaultOperator, getValueSources, getMatchModes, getRuleDefaultValue, idGenerator }: CreateRuleOptions<F>) => RuleType;
2845
2896
  /**
2846
2897
  * Everything {@link createRuleGroup} needs to produce a new group.
2847
2898
  */
2848
- interface CreateRuleGroupOptions<C extends FullCombinator = FullCombinator> {
2899
+ export interface CreateRuleGroupOptions<C extends FullCombinator = FullCombinator> {
2849
2900
  combinators: FullOptionList<C>;
2850
2901
  /** When `true`, the new group contains one new rule. */
2851
2902
  addRuleToNewGroups?: boolean;
@@ -2863,7 +2914,7 @@ interface CreateRuleGroupOptions<C extends FullCombinator = FullCombinator> {
2863
2914
  *
2864
2915
  * @group Query Tools
2865
2916
  */
2866
- declare const createRuleGroup: <C extends FullCombinator = FullCombinator>({ combinators, addRuleToNewGroups, createRule: createRuleMain, idGenerator }: CreateRuleGroupOptions<C>, independentCombinators?: boolean) => RuleGroupTypeAny;
2917
+ export declare const createRuleGroup: <C extends FullCombinator = FullCombinator>({ combinators, addRuleToNewGroups, createRule: createRuleMain, idGenerator }: CreateRuleGroupOptions<C>, independentCombinators?: boolean) => RuleGroupTypeAny;
2867
2918
  //#endregion
2868
2919
  //#region src/utils/signature.d.ts
2869
2920
  /**
@@ -2871,12 +2922,12 @@ declare const createRuleGroup: <C extends FullCombinator = FullCombinator>({ com
2871
2922
  * removed, moved, or reordered—rather than the properties of a single node. Structural changes
2872
2923
  * never coalesce with each other, so each one produces its own history entry.
2873
2924
  */
2874
- declare const structuralSignature = "~structural";
2925
+ export declare const structuralSignature = "~structural";
2875
2926
  /**
2876
2927
  * Signature returned when two queries differ by reference only, with no observable difference
2877
2928
  * in their properties.
2878
2929
  */
2879
- declare const unchangedSignature = "";
2930
+ export declare const unchangedSignature = "";
2880
2931
  /**
2881
2932
  * Describes _what changed_ between two versions of a query as a short string, so that
2882
2933
  * consecutive edits to the same property of the same rule (e.g. typing in a value editor) can
@@ -2896,7 +2947,7 @@ declare const unchangedSignature = "";
2896
2947
  * gets its own history entry—but controlled components that clone the query on every change
2897
2948
  * will not benefit from coalescing.
2898
2949
  */
2899
- declare const signatureOf: (prev: RuleGroupTypeAny, next: RuleGroupTypeAny) => string;
2950
+ export declare const signatureOf: (prev: RuleGroupTypeAny, next: RuleGroupTypeAny) => string;
2900
2951
  //#endregion
2901
- export { AbortInfo, AbortOptions, AbortReason, AccessibleDescriptionGenerator, ActionElementEventHandler, AddMethod, AddOptions, Arity, BaseFullOption, BaseOption, BaseOptionMap, BaseTranslation, BaseTranslationWithLabel, BaseTranslationWithPlaceholders, BaseTranslations, BaseTranslationsFull, Classname, ClassnameCondition, ClassnameSpec, Classnames, Combinator, CombinatorByValue, CommonRuleAndGroupProperties, CommonRuleSubComponentProps, ConstituentWordOrder, ConstituentWordOrderString, ControlKey, CreateRuleGroupOptions, CreateRuleOptions, DefaultCombinator, DefaultCombinatorExtended, DefaultCombinatorName, DefaultCombinatorNameExtended, DefaultCombinators, DefaultCombinatorsExtended, DefaultMatchModes, DefaultOperator, DefaultOperatorName, DefaultOperators, DefaultRuleGroupArray, DefaultRuleGroupICArray, DefaultRuleGroupType, DefaultRuleGroupTypeAny, DefaultRuleGroupTypeIC, DefaultRuleOrGroupArray, DefaultRuleType, DeriveClassNamesOptions, DiagnosticEntry, DiagnosticsFieldSummaryEntry, DiagnosticsResult, DiagnosticsStats, DndClassNameState, DndDropTargetType, DragCollection, DraggedItem, DropCollection, DropEffect, DropResult, ExportFormat, ExportObjectFormats, ExportOperatorMap, ExpressionNode, Field, FieldByValue, FindPathReturnType, FlexibleOption, FlexibleOptionGroup, FlexibleOptionList, FlexibleOptionListProp, FormatQueryFinalOptions, FormatQueryOptions, FormatQueryValidateRule, FullCombinator, FullField, FullOperator, FullOption, FullOptionList, FullOptionMap, FullOptionRecord, GenericizeRuleGroupType, GetOptionIdentifierType, GetOptionType, GetRuleDefaultValueOptions, GetRuleGroupType, GetRuleTypeFromGroupWithFieldAndOperator, GroupMethod, GroupOptions, GroupVariantCondition, GuardOptions, InputType, InsertMethod, InsertOptions, type JsonLogicAll, type JsonLogicAnd, type JsonLogicDoubleNegation, type JsonLogicEqual, type JsonLogicGreaterThan, type JsonLogicGreaterThanOrEqual, type JsonLogicInArray, type JsonLogicInString, type JsonLogicLessThan, type JsonLogicLessThanOrEqual, type JsonLogicNegation, type JsonLogicNone, type JsonLogicNotEqual, type JsonLogicOr, type JsonLogicReservedOperations, type JsonLogicRulesLogic, type JsonLogicSome, type JsonLogicStrictEqual, type JsonLogicStrictNotEqual, type JsonLogicVar, LogType, MatchConfig, MatchMode, MatchModeOptions, MoveMethod, MoveOptions, NLTranslationKey, NLTranslations, NameLabelPair, Operator, OperatorByValue, Option, OptionGroup, OptionList, OuterClassNameOptions, OuterClassNameOptionsBase, ParameterizedNamedSQL, ParameterizedSQL, ParseNumberMethod, ParseNumberOptions, ParseNumbersPropConfig, Path, PathInfo, Placeholder, PrepareOptionListParams, PreparedOptionList, PreparerOptions, QueryActionCallbacks, QueryActionHandlers, QueryActions, QueryActionsConfig, QueryBuilderClassNameState, QueryBuilderFlags, QueryHistoryOptions, QueryToolOptions, QueryValidator, RQBJsonLogic, RQBJsonLogicEndsWith, RQBJsonLogicStartsWith, RQBJsonLogicVar, RegenerateIdOptions, RemoveMethod, RemoveNullability, RemoveOptions, ResolveOptionListOptions, RuleClassNameState, RuleClassnameKey, RuleContext, RuleContextResolvers, RuleDiagnosticsResult, RuleFacet, RuleGroupArray, RuleGroupClassnameKey, RuleGroupContext, RuleGroupDiagnosticsArray, RuleGroupDiagnosticsResult, RuleGroupICArray, RuleGroupICDiagnosticsArray, RuleGroupICDiagnosticsResult, RuleGroupProcessor, RuleGroupType, RuleGroupTypeAny, RuleGroupTypeIC, RuleOrGroupArray, RuleProcessor, RuleType, RuleValidator, SQLPreset, StringUnionToFlexibleOptionArray, StringUnionToFullOptionArray, TestID, ToFlexibleOption, ToFullOption, ToRuleGroupType, ToRuleGroupTypeIC, TransformQueryOptions, UpdateMethod, UpdateOptions, UpdateValueMap, UpdateableProperties, ValidationMap, ValidationResult, ValueChangeEventHandler, ValueEditorType, ValueOption, ValueProcessor, ValueProcessorByRule, ValueProcessorLegacy, ValueProcessorOptions, ValueSource, ValueSourceFlexibleOptions, ValueSourceFullOptions, ValueSources, WithRequired, WithUnknownIndex, add, addInPlace, betweenOperators, clsx, coerceBigIntValue, coerceInputType, controlKeys, controlKind, controlPropKeys, convertFromIC, convertQuery, convertToIC, createQueryActions, createRule, createRuleGroup, defaultCoalesceMs, defaultCombinatorLabelMap, defaultCombinators, defaultCombinatorsExtended, defaultControlClassnames, defaultJoinChar, defaultMatchModes, defaultMaxHistory, defaultOperatorLabelMap, defaultOperatorNegationMap, defaultOperators, defaultPlaceholderFieldGroupLabel, defaultPlaceholderFieldLabel, defaultPlaceholderFieldName, defaultPlaceholderLabel, defaultPlaceholderName, defaultPlaceholderOperatorGroupLabel, defaultPlaceholderOperatorLabel, defaultPlaceholderOperatorName, defaultPlaceholderValueGroupLabel, defaultPlaceholderValueLabel, defaultPlaceholderValueName, defaultTranslations, defaultValidator, derivePathInfo, deriveQueryBuilderClassNames, deriveRuleClassName, deriveRuleClassNames, deriveRuleContext, deriveRuleGroupClassNames, deriveRuleGroupContext, deriveRuleGroupOuterClassName, deriveRuleOuterClassName, exceedsMaxLevels, filterFieldsByComparator, findID, findPath, generateAccessibleDescription, generateID, getCommonAncestorPath, getFieldData, getFirstOption, getGuardAbortReason, getMatchModesUtil, getMultiValueUpdate, getOption, getParametersAsList, getParentPath, getParseNumberMethod, getPathOfID, getRuleDefaultValue$1 as getRuleDefaultValue, getRuleGroupCombinator, getRuleInputType, getRuleValidationResult, getRuleValueEditorType, getRuleValueSourceOptions, getRuleValues, getValidationClassNames, getValueEditorReset, getValueSelectorUpdate, getValueSourcesUtil, group, groupInPlace, groupInvalidReasons, hideValueControlsForOperator, inOperators, insert, insertInPlace, isAncestor, isBetweenOperator, isFlexibleOptionArray, isFlexibleOptionGroupArray, isFullOptionArray, isFullOptionGroupArray, isOptionGroupArray, isPojo, isRuleGroup, isRuleGroupType, isRuleGroupTypeIC, isRuleOrGroupValid, isRuleType, isUnsafeKey, isValidationResult, joinWith, lc, mergeAnyTranslation, mergeAnyTranslations, mergeClassnames, move, moveInPlace, normalizeValueSelectorValue, nullFreeArray, nullOperators, nullOrUndefinedOrEmpty, numericRegex, objectEntries, objectKeys, optionsEqual, parseNumber, pathIsDisabled, pathIsDisabledByPaths, pathsAreEqual, preferAnyProp, preferFlagProps, preferProp, prepareOptionList, prepareRule, prepareRuleGroup, prepareRuleOrGroup, queryBuilderFlagDefaults, regenerateID, regenerateIDs, relationalOperators, remove, removeInPlace, resolveCandidateQuery, resolveDefaultOperator, resolveOperatorList, resolveValueEditorType, resolveValueList, rootPath, setAutoFreeze, shouldCoalesce, signatureOf, splitBy, standardClassnames, strictAbortReasons, structuralSignature, substringOperators, toArray, toFlatOptionArray, toFullOption, toFullOptionList, toFullOptionMap, transformQuery, trimIfString, unchangedSignature, uniqByIdentifier, uniqByName, uniqOptGroups, uniqOptList, update, updateInPlace, uuidV4regex, valuesEqual };
2952
+ export { AccessibleDescriptionGenerator, ActionElementEventHandler, Arity, BaseFullOption, BaseOption, BaseOptionMap, Classname, Combinator, CombinatorByValue, CommonRuleAndGroupProperties, ConstituentWordOrder, ConstituentWordOrderString, DefaultCombinator, DefaultCombinatorExtended, DefaultCombinatorName, DefaultCombinatorNameExtended, DefaultOperator, DefaultOperatorName, DefaultRuleGroupArray, DefaultRuleGroupICArray, DefaultRuleGroupType, DefaultRuleGroupTypeAny, DefaultRuleGroupTypeIC, DefaultRuleOrGroupArray, DefaultRuleType, DiagnosticEntry, DiagnosticsFieldSummaryEntry, DiagnosticsResult, DiagnosticsStats, ExportFormat, ExportObjectFormats, ExportOperatorMap, ExpressionNode, Field, FieldByValue, FlexibleOption, FlexibleOptionGroup, FlexibleOptionList, FlexibleOptionListProp, FormatQueryFinalOptions, FormatQueryOptions, FormatQueryValidateRule, FullCombinator, FullField, FullOperator, FullOption, FullOptionList, FullOptionMap, FullOptionRecord, GenericizeRuleGroupType, GetOptionIdentifierType, GetOptionType, GetRuleGroupType, GetRuleTypeFromGroupWithFieldAndOperator, GroupVariantCondition, InputType, type JsonLogicAll, type JsonLogicAnd, type JsonLogicDoubleNegation, type JsonLogicEqual, type JsonLogicGreaterThan, type JsonLogicGreaterThanOrEqual, type JsonLogicInArray, type JsonLogicInString, type JsonLogicLessThan, type JsonLogicLessThanOrEqual, type JsonLogicNegation, type JsonLogicNone, type JsonLogicNotEqual, type JsonLogicOr, type JsonLogicReservedOperations, type JsonLogicRulesLogic, type JsonLogicSome, type JsonLogicStrictEqual, type JsonLogicStrictNotEqual, type JsonLogicVar, MatchConfig, MatchMode, MatchModeOptions, NLTranslationKey, NLTranslations, NameLabelPair, Operator, OperatorByValue, Option, OptionGroup, OptionList, ParameterizedNamedSQL, ParameterizedSQL, ParseNumberMethod, ParseNumbersPropConfig, Path, QueryValidator, RQBJsonLogic, RQBJsonLogicEndsWith, RQBJsonLogicStartsWith, RQBJsonLogicVar, RemoveNullability, RuleDiagnosticsResult, RuleGroupArray, RuleGroupDiagnosticsArray, RuleGroupDiagnosticsResult, RuleGroupICArray, RuleGroupICDiagnosticsArray, RuleGroupICDiagnosticsResult, RuleGroupProcessor, RuleGroupType, RuleGroupTypeAny, RuleGroupTypeIC, RuleOrGroupArray, RuleProcessor, RuleType, RuleValidator, SQLPreset, StringUnionToFlexibleOptionArray, StringUnionToFullOptionArray, ToFlexibleOption, ToFullOption, ToRuleGroupType, ToRuleGroupTypeIC, TransformQueryOptions, UpdateValueMap, UpdateableProperties, ValidationMap, ValidationResult, ValueChangeEventHandler, ValueEditorType, ValueOption, ValueProcessor, ValueProcessorByRule, ValueProcessorLegacy, ValueProcessorOptions, ValueSource, ValueSourceFlexibleOptions, ValueSourceFullOptions, ValueSources, WithRequired, WithUnknownIndex, convertQuery, getRuleDefaultValue$1 as getRuleDefaultValue, transformQuery };
2902
2953
  //# sourceMappingURL=derivations.d.ts.map