@limetech/lime-crm-building-blocks 1.98.0 → 1.99.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 (170) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/{index.esm-a894ac76.js → index.esm-d785eb6e.js} +2 -0
  3. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  4. package/dist/cjs/limebb-browser.cjs.entry.js +1 -1
  5. package/dist/cjs/limebb-chat-item_2.cjs.entry.js +1 -1
  6. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  7. package/dist/cjs/limebb-component-config.cjs.entry.js +1 -1
  8. package/dist/cjs/limebb-component-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  11. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  13. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +89 -169
  17. package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +80 -0
  18. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +147 -0
  19. package/dist/cjs/limebb-lime-query-filter-group_4.cjs.entry.js +603 -0
  20. package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +68 -0
  21. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +1 -1
  22. package/dist/cjs/limebb-limetype-field_2.cjs.entry.js +37 -6
  23. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  24. package/dist/cjs/limebb-loader.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-locale-picker.cjs.entry.js +2 -2
  26. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  27. package/dist/cjs/limebb-mention.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  29. package/dist/cjs/limebb-notification-item.cjs.entry.js +2 -2
  30. package/dist/cjs/limebb-notification-list.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-text-editor.cjs.entry.js +3 -3
  33. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  34. package/dist/cjs/{limetype-1fe0207f.js → limetype-f2e4376e.js} +1 -1
  35. package/dist/cjs/loader.cjs.js +1 -1
  36. package/dist/collection/collection-manifest.json +1 -0
  37. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +41 -49
  38. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +77 -41
  39. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +35 -46
  40. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +130 -0
  41. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +269 -0
  42. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +19 -25
  43. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +34 -34
  44. package/dist/collection/components/lime-query-builder/lime-query-builder.js +32 -17
  45. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  46. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  47. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  48. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  49. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  50. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  51. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  52. package/dist/collection/components/text-editor/text-editor.js +1 -1
  53. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  54. package/dist/components/index.esm.js +2 -1
  55. package/dist/components/lime-query-filter-comparison.js +32 -45
  56. package/dist/components/lime-query-filter-expression.js +315 -0
  57. package/dist/components/limebb-lime-query-builder.js +93 -177
  58. package/dist/components/limebb-lime-query-filter-and.js +130 -1
  59. package/dist/components/limebb-lime-query-filter-comparison.js +1 -1
  60. package/dist/components/limebb-lime-query-filter-expression.js +1 -1
  61. package/dist/components/limebb-lime-query-filter-group.d.ts +11 -0
  62. package/dist/components/limebb-lime-query-filter-group.js +6 -0
  63. package/dist/components/limebb-lime-query-filter-not.js +1 -1
  64. package/dist/components/limebb-lime-query-filter-or.js +118 -1
  65. package/dist/components/limebb-locale-picker.js +1 -1
  66. package/dist/components/limebb-mention-group-counter.js +2 -2
  67. package/dist/components/limebb-percentage-visualizer.js +2 -2
  68. package/dist/components/limebb-text-editor.js +1 -1
  69. package/dist/components/limebb-trend-indicator.js +1 -1
  70. package/dist/components/limetype-field.js +34 -2
  71. package/dist/components/live-docs-info.js +2 -2
  72. package/dist/components/notification-item.js +1 -1
  73. package/dist/components/summary-popover.js +3 -3
  74. package/dist/esm/{index.esm-d8fdeb18.js → index.esm-bb569663.js} +2 -1
  75. package/dist/esm/lime-crm-building-blocks.js +1 -1
  76. package/dist/esm/limebb-browser.entry.js +1 -1
  77. package/dist/esm/limebb-chat-item_2.entry.js +1 -1
  78. package/dist/esm/limebb-chat-list.entry.js +1 -1
  79. package/dist/esm/limebb-component-config.entry.js +1 -1
  80. package/dist/esm/limebb-component-picker.entry.js +1 -1
  81. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  82. package/dist/esm/limebb-date-picker.entry.js +1 -1
  83. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  84. package/dist/esm/limebb-feed.entry.js +1 -1
  85. package/dist/esm/limebb-info-tile.entry.js +1 -1
  86. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  87. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  88. package/dist/esm/limebb-lime-query-builder.entry.js +88 -168
  89. package/dist/esm/limebb-lime-query-filter-and.entry.js +76 -0
  90. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +142 -0
  91. package/dist/esm/limebb-lime-query-filter-group_4.entry.js +596 -0
  92. package/dist/esm/limebb-lime-query-filter-or.entry.js +64 -0
  93. package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -1
  94. package/dist/esm/limebb-limetype-field_2.entry.js +36 -5
  95. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  96. package/dist/esm/limebb-loader.entry.js +1 -1
  97. package/dist/esm/limebb-locale-picker.entry.js +2 -2
  98. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  99. package/dist/esm/limebb-mention.entry.js +1 -1
  100. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  101. package/dist/esm/limebb-notification-item.entry.js +2 -2
  102. package/dist/esm/limebb-notification-list.entry.js +1 -1
  103. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  104. package/dist/esm/limebb-text-editor.entry.js +3 -3
  105. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  106. package/dist/esm/{limetype-6e7552a7.js → limetype-c0e041f7.js} +1 -1
  107. package/dist/esm/loader.js +1 -1
  108. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  109. package/dist/lime-crm-building-blocks/p-03accd53.entry.js +1 -0
  110. package/dist/lime-crm-building-blocks/{p-a1818969.entry.js → p-03af0e66.entry.js} +1 -1
  111. package/dist/lime-crm-building-blocks/{p-f402184f.entry.js → p-098ee6c1.entry.js} +1 -1
  112. package/dist/lime-crm-building-blocks/{p-42e52b50.entry.js → p-1be0eec7.entry.js} +1 -1
  113. package/dist/lime-crm-building-blocks/{p-2aa18c2b.entry.js → p-206575e4.entry.js} +1 -1
  114. package/dist/lime-crm-building-blocks/p-20bfca36.js +1 -0
  115. package/dist/lime-crm-building-blocks/{p-82d33d43.entry.js → p-2faaacbc.entry.js} +1 -1
  116. package/dist/lime-crm-building-blocks/{p-d4016891.entry.js → p-2fdcb868.entry.js} +1 -1
  117. package/dist/lime-crm-building-blocks/{p-f52125a0.entry.js → p-3122ea05.entry.js} +1 -1
  118. package/dist/lime-crm-building-blocks/{p-baf4e428.entry.js → p-3175883d.entry.js} +1 -1
  119. package/dist/lime-crm-building-blocks/{p-8c8b7115.entry.js → p-32534eb7.entry.js} +1 -1
  120. package/dist/lime-crm-building-blocks/{p-6c1146ca.entry.js → p-36ea13c0.entry.js} +1 -1
  121. package/dist/lime-crm-building-blocks/p-4715210d.entry.js +1 -0
  122. package/dist/lime-crm-building-blocks/{p-1fba0ade.js → p-4838284a.js} +1 -1
  123. package/dist/lime-crm-building-blocks/{p-5e4ba110.entry.js → p-5464f0de.entry.js} +1 -1
  124. package/dist/lime-crm-building-blocks/{p-e9d23ef7.entry.js → p-569c86b5.entry.js} +1 -1
  125. package/dist/lime-crm-building-blocks/{p-90e1716a.entry.js → p-5dc574a3.entry.js} +1 -1
  126. package/dist/lime-crm-building-blocks/p-5f7644b5.entry.js +1 -0
  127. package/dist/lime-crm-building-blocks/{p-00da9b24.entry.js → p-631ca5a5.entry.js} +1 -1
  128. package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +1 -0
  129. package/dist/lime-crm-building-blocks/{p-beb0d164.entry.js → p-7271f47a.entry.js} +1 -1
  130. package/dist/lime-crm-building-blocks/{p-34357744.entry.js → p-9031f136.entry.js} +1 -1
  131. package/dist/lime-crm-building-blocks/p-91732502.entry.js +1 -0
  132. package/dist/lime-crm-building-blocks/{p-8c4eb49f.entry.js → p-93cadc1e.entry.js} +1 -1
  133. package/dist/lime-crm-building-blocks/{p-3932077b.entry.js → p-9cac4de2.entry.js} +1 -1
  134. package/dist/lime-crm-building-blocks/{p-79d4668a.entry.js → p-a200954f.entry.js} +1 -1
  135. package/dist/lime-crm-building-blocks/p-aa646df7.entry.js +1 -0
  136. package/dist/lime-crm-building-blocks/{p-d89c44ad.entry.js → p-b9b954d9.entry.js} +1 -1
  137. package/dist/lime-crm-building-blocks/{p-3a620226.entry.js → p-cfa1a4ad.entry.js} +1 -1
  138. package/dist/lime-crm-building-blocks/{p-ef8a5266.entry.js → p-e8946134.entry.js} +1 -1
  139. package/dist/lime-crm-building-blocks/{p-9d9f25da.entry.js → p-eb81bceb.entry.js} +1 -1
  140. package/dist/lime-crm-building-blocks/{p-50d3d61a.entry.js → p-ee1b00b9.entry.js} +1 -1
  141. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +5 -4
  142. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +6 -4
  143. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +10 -14
  144. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +60 -0
  145. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +4 -4
  146. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +5 -4
  147. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +6 -0
  148. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +2 -1
  149. package/dist/types/components.d.ts +177 -65
  150. package/package.json +1 -1
  151. package/dist/cjs/isEqual-e77cce75.js +0 -37
  152. package/dist/cjs/lime-query.types-bcb63a22.js +0 -61
  153. package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +0 -278
  154. package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +0 -239
  155. package/dist/cjs/limebb-property-selector.cjs.entry.js +0 -234
  156. package/dist/components/isEqual.js +0 -35
  157. package/dist/components/lime-query-filter-and.js +0 -408
  158. package/dist/esm/isEqual-57d0c223.js +0 -35
  159. package/dist/esm/lime-query.types-f72355e1.js +0 -59
  160. package/dist/esm/limebb-lime-query-filter-and_5.entry.js +0 -270
  161. package/dist/esm/limebb-lime-query-value-input.entry.js +0 -235
  162. package/dist/esm/limebb-property-selector.entry.js +0 -230
  163. package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +0 -1
  164. package/dist/lime-crm-building-blocks/p-0957b2a6.entry.js +0 -1
  165. package/dist/lime-crm-building-blocks/p-3b0a15ec.js +0 -1
  166. package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +0 -1
  167. package/dist/lime-crm-building-blocks/p-60971d64.js +0 -1
  168. package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +0 -1
  169. package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +0 -1
  170. package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +0 -1
@@ -1,19 +1,13 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
- import { LimeQueryFilterExpression } from '../lime-query.types';
3
- import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
2
+ import { Expression, LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
4
3
  /**
5
4
  * Lime Query Filter Expression Router
6
5
  *
7
- * This is the main entry point for rendering Lime Query filters.
8
- * It routes to the appropriate sub-component based on the filter type:
9
- * - `'AND'` → limebb-lime-query-filter-and
10
- * - `'OR'` → limebb-lime-query-filter-or
11
- * - `'NOT'` → limebb-lime-query-filter-not
12
- * - `'comparison'` → limebb-lime-query-filter-comparison
13
- * - `''` (missing) → limebb-lime-query-filter-comparison (default)
14
- *
15
- * Use this component when you need to render a complete filter expression
16
- * that may contain nested AND/OR/NOT logic.
6
+ * Router component for rendering Lime Query filter expressions.
7
+ * Routes to the appropriate sub-component based on expression structure:
8
+ * - Has `key` property → limebb-lime-query-filter-comparison
9
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
10
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
17
11
  *
18
12
  * @private
19
13
  */
@@ -43,11 +37,13 @@ export declare class LimeQueryFilterExpressionComponent implements LimeWebCompon
43
37
  /**
44
38
  * The filter expression to render
45
39
  */
46
- expression: LimeQueryFilterExpression;
40
+ expression: Expression;
47
41
  /**
48
42
  * Emitted when the filter expression changes
43
+ * Emits undefined when expression should be removed
49
44
  */
50
- expressionChange: EventEmitter<LimeQueryFilterExpression>;
45
+ expressionChange: EventEmitter<Expression | undefined>;
51
46
  render(): any;
47
+ private handleExpressionChange;
52
48
  }
53
49
  //# sourceMappingURL=lime-query-filter-expression.d.ts.map
@@ -0,0 +1,60 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ import { AndOrExpression, Expression, LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
+ /**
4
+ * Lime Query Filter Group Component
5
+ *
6
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
7
+ * Users can click the header to toggle between "All conditions" (AND) and
8
+ * "Any condition" (OR).
9
+ *
10
+ * This component displays:
11
+ * - A clickable header showing the current logic (AND/OR)
12
+ * - A list of child expressions (which can be comparisons or nested groups)
13
+ * - An "Add" button to add more expressions
14
+ *
15
+ * Clicking the header toggles between AND and OR logic.
16
+ * If a child component emits an ExpressionChange event with undefined, the
17
+ * child is removed from the group.
18
+ *
19
+ * @private
20
+ */
21
+ export declare class LimeQueryFilterGroupComponent implements LimeWebComponent {
22
+ /**
23
+ * Platform service provider
24
+ */
25
+ platform: LimeWebComponentPlatform;
26
+ /**
27
+ * Component context
28
+ */
29
+ context: LimeWebComponentContext;
30
+ /**
31
+ * The limetype being queried (e.g., "deal", "company")
32
+ */
33
+ limetype: string;
34
+ /**
35
+ * The limetype of the active object (for %activeObject% placeholders)
36
+ */
37
+ activeLimetype?: string;
38
+ /**
39
+ * The group expression (AND or OR)
40
+ */
41
+ expression: AndOrExpression;
42
+ /**
43
+ * Emitted when the group expression changes
44
+ * Emits undefined when expression should be removed
45
+ * Can emit any Expression type when unwrapping (single child)
46
+ */
47
+ expressionChange: EventEmitter<Expression | undefined>;
48
+ render(): any;
49
+ private getSubheading;
50
+ private renderChildExpression;
51
+ private renderAddButton;
52
+ private renderAddGroupButton;
53
+ private getAddButtonLabel;
54
+ private getAddGroupButtonLabel;
55
+ private handleToggleOperator;
56
+ private handleAddChildExpression;
57
+ private handleAddChildGroup;
58
+ private handleExpressionChange;
59
+ }
60
+ //# sourceMappingURL=lime-query-filter-group.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
- import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
- import { LimeQueryFilterNot, LimeQueryFilterMissing } from '../lime-query.types';
2
+ import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression } from '@limetech/lime-web-components';
4
3
  /**
5
4
  * Lime Query Filter NOT Component
6
5
  *
@@ -43,11 +42,12 @@ export declare class LimeQueryFilterNotComponent implements LimeWebComponent {
43
42
  /**
44
43
  * The NOT expression containing the child expression to negate
45
44
  */
46
- expression: LimeQueryFilterNot;
45
+ expression: NotExpression;
47
46
  /**
48
47
  * Emitted when the NOT expression changes (child expression modified or removed)
48
+ * Emits undefined when the expression should be removed
49
49
  */
50
- expressionChange: EventEmitter<LimeQueryFilterNot | LimeQueryFilterMissing>;
50
+ expressionChange: EventEmitter<NotExpression | undefined>;
51
51
  render(): any;
52
52
  private handleExpressionChange;
53
53
  }
@@ -1,6 +1,5 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
- import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
- import { LimeQueryFilterOr, LimeQueryFilterMissing } from '../lime-query.types';
2
+ import { AndOrExpression, Expression, LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
4
3
  /**
5
4
  * Lime Query Filter OR Component
6
5
  *
@@ -41,11 +40,13 @@ export declare class LimeQueryFilterOrComponent implements LimeWebComponent {
41
40
  /**
42
41
  * The OR expression containing child expressions
43
42
  */
44
- expression: LimeQueryFilterOr;
43
+ expression: AndOrExpression;
45
44
  /**
46
45
  * Emitted when the OR expression changes (expressions added/removed/modified)
46
+ * Emits undefined when expression should be removed
47
+ * Can emit any Expression type when unwrapping (single child)
47
48
  */
48
- expressionChange: EventEmitter<LimeQueryFilterOr | LimeQueryFilterMissing>;
49
+ expressionChange: EventEmitter<Expression | undefined>;
49
50
  render(): any;
50
51
  private renderChildExpression;
51
52
  private handleExpressionChange;
@@ -70,6 +70,12 @@ export declare class LimeQueryBuilder implements LimeWebComponent {
70
70
  private handleFilterChange;
71
71
  private handleResponseFormatChange;
72
72
  private handleLimitChange;
73
+ /**
74
+ * Normalize filter to ensure top-level is an AND group.
75
+ * This ensures Add buttons are available in the UI.
76
+ * @param filter
77
+ */
78
+ private normalizeFilter;
73
79
  private emitChange;
74
80
  private updateCodeValue;
75
81
  private checkGuiSupport;
@@ -5,10 +5,11 @@
5
5
  * - lime-core/lime_query/schema.py
6
6
  * - lime-core/lime_filter/schema.py
7
7
  */
8
+ import { Expression } from '@limetech/lime-web-components';
8
9
  export interface LimeQuery {
9
10
  limetype: string;
10
11
  responseFormat: ResponseFormat;
11
- filter?: FilterExpression | FilterGroup;
12
+ filter?: Expression;
12
13
  orderBy?: OrderByItem[];
13
14
  limit?: number;
14
15
  offset?: number;
@@ -5,7 +5,7 @@
5
5
  * It contains typing information for all components that exist in this project.
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
- import { AggregateOperator, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform } from "@limetech/lime-web-components";
8
+ import { AggregateOperator, AndOrExpression, Expression, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression } from "@limetech/lime-web-components";
9
9
  import { BrowserItem } from "./components/browser/browser-item.types";
10
10
  import { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FormInfo, Icon, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
11
11
  import { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
@@ -17,14 +17,14 @@ import { DateTimeFormat, NumberFormat, RelativeDateTimeFormat } from "./componen
17
17
  import { InfoTile } from "./components/info-tile/info-tile";
18
18
  import { KanbanGroup } from "./components/kanban/kanban-group/kanban-group.types";
19
19
  import { KanbanItem } from "./components/kanban/kanban-item/kanban-item.types";
20
- import { FilterOperator, LimeQuery, LimeQueryFilterAnd, LimeQueryFilterComparison, LimeQueryFilterExpression, LimeQueryFilterMissing, LimeQueryFilterNot, LimeQueryFilterOr, ResponseFormat } from "./components/lime-query-builder/lime-query.types";
20
+ import { FilterOperator, LimeQuery, ResponseFormat } from "./components/lime-query-builder/lime-query.types";
21
21
  import { LanguagePickerType } from "./components/locale-picker/language-picker.types";
22
22
  import { NavigationButtonType } from "./components/navigation-button/navigation-button.types";
23
23
  import { NotificationItem } from "./components/notification-list/notification-item/notification-item.types";
24
24
  import { PropertySelectionItem } from "./components/lime-query-builder/property-selection-format";
25
25
  import { TriggerMap } from "./components/text-editor/text-editor.types";
26
26
  import { EnhancedEditorMetadata } from "./components/text-editor/uploader/building-blocks-upload-handler";
27
- export { AggregateOperator, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform } from "@limetech/lime-web-components";
27
+ export { AggregateOperator, AndOrExpression, Expression, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression } from "@limetech/lime-web-components";
28
28
  export { BrowserItem } from "./components/browser/browser-item.types";
29
29
  export { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FormInfo, Icon, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
30
30
  export { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
@@ -36,7 +36,7 @@ export { DateTimeFormat, NumberFormat, RelativeDateTimeFormat } from "./componen
36
36
  export { InfoTile } from "./components/info-tile/info-tile";
37
37
  export { KanbanGroup } from "./components/kanban/kanban-group/kanban-group.types";
38
38
  export { KanbanItem } from "./components/kanban/kanban-item/kanban-item.types";
39
- export { FilterOperator, LimeQuery, LimeQueryFilterAnd, LimeQueryFilterComparison, LimeQueryFilterExpression, LimeQueryFilterMissing, LimeQueryFilterNot, LimeQueryFilterOr, ResponseFormat } from "./components/lime-query-builder/lime-query.types";
39
+ export { FilterOperator, LimeQuery, ResponseFormat } from "./components/lime-query-builder/lime-query.types";
40
40
  export { LanguagePickerType } from "./components/locale-picker/language-picker.types";
41
41
  export { NavigationButtonType } from "./components/navigation-button/navigation-button.types";
42
42
  export { NotificationItem } from "./components/notification-list/notification-item/notification-item.types";
@@ -1016,7 +1016,7 @@ export namespace Components {
1016
1016
  /**
1017
1017
  * The AND expression containing child expressions
1018
1018
  */
1019
- "expression": LimeQueryFilterAnd;
1019
+ "expression": AndOrExpression;
1020
1020
  /**
1021
1021
  * Optional label for the AND group
1022
1022
  */
@@ -1060,7 +1060,7 @@ export namespace Components {
1060
1060
  /**
1061
1061
  * The comparison expression to render
1062
1062
  */
1063
- "expression": LimeQueryFilterComparison;
1063
+ "expression": ComparisonExpression;
1064
1064
  /**
1065
1065
  * Optional label for the comparison
1066
1066
  */
@@ -1076,15 +1076,11 @@ export namespace Components {
1076
1076
  }
1077
1077
  /**
1078
1078
  * Lime Query Filter Expression Router
1079
- * This is the main entry point for rendering Lime Query filters.
1080
- * It routes to the appropriate sub-component based on the filter type:
1081
- * - `'AND'` → limebb-lime-query-filter-and
1082
- * - `'OR'` → limebb-lime-query-filter-or
1083
- * - `'NOT'` → limebb-lime-query-filter-not
1084
- * - `'comparison'` → limebb-lime-query-filter-comparison
1085
- * - `''` (missing) → limebb-lime-query-filter-comparison (default)
1086
- * Use this component when you need to render a complete filter expression
1087
- * that may contain nested AND/OR/NOT logic.
1079
+ * Router component for rendering Lime Query filter expressions.
1080
+ * Routes to the appropriate sub-component based on expression structure:
1081
+ * - Has `key` property → limebb-lime-query-filter-comparison
1082
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
1083
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
1088
1084
  * @private
1089
1085
  */
1090
1086
  interface LimebbLimeQueryFilterExpression {
@@ -1099,7 +1095,7 @@ export namespace Components {
1099
1095
  /**
1100
1096
  * The filter expression to render
1101
1097
  */
1102
- "expression": LimeQueryFilterExpression;
1098
+ "expression": Expression;
1103
1099
  /**
1104
1100
  * Optional label for the expression
1105
1101
  */
@@ -1113,6 +1109,42 @@ export namespace Components {
1113
1109
  */
1114
1110
  "platform": LimeWebComponentPlatform;
1115
1111
  }
1112
+ /**
1113
+ * Lime Query Filter Group Component
1114
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
1115
+ * Users can click the header to toggle between "All conditions" (AND) and
1116
+ * "Any condition" (OR).
1117
+ * This component displays:
1118
+ * - A clickable header showing the current logic (AND/OR)
1119
+ * - A list of child expressions (which can be comparisons or nested groups)
1120
+ * - An "Add" button to add more expressions
1121
+ * Clicking the header toggles between AND and OR logic.
1122
+ * If a child component emits an ExpressionChange event with undefined, the
1123
+ * child is removed from the group.
1124
+ * @private
1125
+ */
1126
+ interface LimebbLimeQueryFilterGroup {
1127
+ /**
1128
+ * The limetype of the active object (for %activeObject% placeholders)
1129
+ */
1130
+ "activeLimetype"?: string;
1131
+ /**
1132
+ * Component context
1133
+ */
1134
+ "context": LimeWebComponentContext;
1135
+ /**
1136
+ * The group expression (AND or OR)
1137
+ */
1138
+ "expression": AndOrExpression;
1139
+ /**
1140
+ * The limetype being queried (e.g., "deal", "company")
1141
+ */
1142
+ "limetype": string;
1143
+ /**
1144
+ * Platform service provider
1145
+ */
1146
+ "platform": LimeWebComponentPlatform;
1147
+ }
1116
1148
  /**
1117
1149
  * Lime Query Filter NOT Component
1118
1150
  * Renders a negated filter expression. This inverts the logic of the child expression,
@@ -1138,7 +1170,7 @@ export namespace Components {
1138
1170
  /**
1139
1171
  * The NOT expression containing the child expression to negate
1140
1172
  */
1141
- "expression": LimeQueryFilterNot;
1173
+ "expression": NotExpression;
1142
1174
  /**
1143
1175
  * Optional label for the NOT expression
1144
1176
  */
@@ -1176,7 +1208,7 @@ export namespace Components {
1176
1208
  /**
1177
1209
  * The OR expression containing child expressions
1178
1210
  */
1179
- "expression": LimeQueryFilterOr;
1211
+ "expression": AndOrExpression;
1180
1212
  /**
1181
1213
  * Optional label for the OR group
1182
1214
  */
@@ -2099,6 +2131,10 @@ export interface LimebbLimeQueryFilterExpressionCustomEvent<T> extends CustomEve
2099
2131
  detail: T;
2100
2132
  target: HTMLLimebbLimeQueryFilterExpressionElement;
2101
2133
  }
2134
+ export interface LimebbLimeQueryFilterGroupCustomEvent<T> extends CustomEvent<T> {
2135
+ detail: T;
2136
+ target: HTMLLimebbLimeQueryFilterGroupElement;
2137
+ }
2102
2138
  export interface LimebbLimeQueryFilterNotCustomEvent<T> extends CustomEvent<T> {
2103
2139
  detail: T;
2104
2140
  target: HTMLLimebbLimeQueryFilterNotElement;
@@ -2809,7 +2845,7 @@ declare global {
2809
2845
  new (): HTMLLimebbLimeQueryBuilderElement;
2810
2846
  };
2811
2847
  interface HTMLLimebbLimeQueryFilterAndElementEventMap {
2812
- "expressionChange": LimeQueryFilterAnd | LimeQueryFilterMissing;
2848
+ "expressionChange": Expression | undefined;
2813
2849
  }
2814
2850
  /**
2815
2851
  * Lime Query Filter AND Component
@@ -2838,7 +2874,7 @@ declare global {
2838
2874
  new (): HTMLLimebbLimeQueryFilterAndElement;
2839
2875
  };
2840
2876
  interface HTMLLimebbLimeQueryFilterComparisonElementEventMap {
2841
- "expressionChange": LimeQueryFilterComparison | LimeQueryFilterMissing;
2877
+ "expressionChange": ComparisonExpression | undefined;
2842
2878
  }
2843
2879
  /**
2844
2880
  * Lime Query Filter Comparison Component
@@ -2873,19 +2909,15 @@ declare global {
2873
2909
  new (): HTMLLimebbLimeQueryFilterComparisonElement;
2874
2910
  };
2875
2911
  interface HTMLLimebbLimeQueryFilterExpressionElementEventMap {
2876
- "expressionChange": LimeQueryFilterExpression;
2912
+ "expressionChange": Expression | undefined;
2877
2913
  }
2878
2914
  /**
2879
2915
  * Lime Query Filter Expression Router
2880
- * This is the main entry point for rendering Lime Query filters.
2881
- * It routes to the appropriate sub-component based on the filter type:
2882
- * - `'AND'` → limebb-lime-query-filter-and
2883
- * - `'OR'` → limebb-lime-query-filter-or
2884
- * - `'NOT'` → limebb-lime-query-filter-not
2885
- * - `'comparison'` → limebb-lime-query-filter-comparison
2886
- * - `''` (missing) → limebb-lime-query-filter-comparison (default)
2887
- * Use this component when you need to render a complete filter expression
2888
- * that may contain nested AND/OR/NOT logic.
2916
+ * Router component for rendering Lime Query filter expressions.
2917
+ * Routes to the appropriate sub-component based on expression structure:
2918
+ * - Has `key` property → limebb-lime-query-filter-comparison
2919
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
2920
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
2889
2921
  * @private
2890
2922
  */
2891
2923
  interface HTMLLimebbLimeQueryFilterExpressionElement extends Components.LimebbLimeQueryFilterExpression, HTMLStencilElement {
@@ -2902,8 +2934,39 @@ declare global {
2902
2934
  prototype: HTMLLimebbLimeQueryFilterExpressionElement;
2903
2935
  new (): HTMLLimebbLimeQueryFilterExpressionElement;
2904
2936
  };
2937
+ interface HTMLLimebbLimeQueryFilterGroupElementEventMap {
2938
+ "expressionChange": Expression | undefined;
2939
+ }
2940
+ /**
2941
+ * Lime Query Filter Group Component
2942
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
2943
+ * Users can click the header to toggle between "All conditions" (AND) and
2944
+ * "Any condition" (OR).
2945
+ * This component displays:
2946
+ * - A clickable header showing the current logic (AND/OR)
2947
+ * - A list of child expressions (which can be comparisons or nested groups)
2948
+ * - An "Add" button to add more expressions
2949
+ * Clicking the header toggles between AND and OR logic.
2950
+ * If a child component emits an ExpressionChange event with undefined, the
2951
+ * child is removed from the group.
2952
+ * @private
2953
+ */
2954
+ interface HTMLLimebbLimeQueryFilterGroupElement extends Components.LimebbLimeQueryFilterGroup, HTMLStencilElement {
2955
+ addEventListener<K extends keyof HTMLLimebbLimeQueryFilterGroupElementEventMap>(type: K, listener: (this: HTMLLimebbLimeQueryFilterGroupElement, ev: LimebbLimeQueryFilterGroupCustomEvent<HTMLLimebbLimeQueryFilterGroupElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2956
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2957
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2958
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2959
+ removeEventListener<K extends keyof HTMLLimebbLimeQueryFilterGroupElementEventMap>(type: K, listener: (this: HTMLLimebbLimeQueryFilterGroupElement, ev: LimebbLimeQueryFilterGroupCustomEvent<HTMLLimebbLimeQueryFilterGroupElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2960
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2961
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2962
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2963
+ }
2964
+ var HTMLLimebbLimeQueryFilterGroupElement: {
2965
+ prototype: HTMLLimebbLimeQueryFilterGroupElement;
2966
+ new (): HTMLLimebbLimeQueryFilterGroupElement;
2967
+ };
2905
2968
  interface HTMLLimebbLimeQueryFilterNotElementEventMap {
2906
- "expressionChange": LimeQueryFilterNot | LimeQueryFilterMissing;
2969
+ "expressionChange": NotExpression | undefined;
2907
2970
  }
2908
2971
  /**
2909
2972
  * Lime Query Filter NOT Component
@@ -2933,7 +2996,7 @@ declare global {
2933
2996
  new (): HTMLLimebbLimeQueryFilterNotElement;
2934
2997
  };
2935
2998
  interface HTMLLimebbLimeQueryFilterOrElementEventMap {
2936
- "expressionChange": LimeQueryFilterOr | LimeQueryFilterMissing;
2999
+ "expressionChange": Expression | undefined;
2937
3000
  }
2938
3001
  /**
2939
3002
  * Lime Query Filter OR Component
@@ -3503,6 +3566,7 @@ declare global {
3503
3566
  "limebb-lime-query-filter-and": HTMLLimebbLimeQueryFilterAndElement;
3504
3567
  "limebb-lime-query-filter-comparison": HTMLLimebbLimeQueryFilterComparisonElement;
3505
3568
  "limebb-lime-query-filter-expression": HTMLLimebbLimeQueryFilterExpressionElement;
3569
+ "limebb-lime-query-filter-group": HTMLLimebbLimeQueryFilterGroupElement;
3506
3570
  "limebb-lime-query-filter-not": HTMLLimebbLimeQueryFilterNotElement;
3507
3571
  "limebb-lime-query-filter-or": HTMLLimebbLimeQueryFilterOrElement;
3508
3572
  "limebb-lime-query-value-input": HTMLLimebbLimeQueryValueInputElement;
@@ -4596,7 +4660,7 @@ declare namespace LocalJSX {
4596
4660
  /**
4597
4661
  * The AND expression containing child expressions
4598
4662
  */
4599
- "expression"?: LimeQueryFilterAnd;
4663
+ "expression"?: AndOrExpression;
4600
4664
  /**
4601
4665
  * Optional label for the AND group
4602
4666
  */
@@ -4606,9 +4670,9 @@ declare namespace LocalJSX {
4606
4670
  */
4607
4671
  "limetype"?: string;
4608
4672
  /**
4609
- * Emitted when the AND expression changes (expressions added/removed/modified)
4673
+ * Emitted when the AND expression changes (expressions added/removed/modified) Emits undefined when expression should be removed Can emit any Expression type when unwrapping (single child)
4610
4674
  */
4611
- "onExpressionChange"?: (event: LimebbLimeQueryFilterAndCustomEvent<LimeQueryFilterAnd | LimeQueryFilterMissing>) => void;
4675
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterAndCustomEvent<Expression | undefined>) => void;
4612
4676
  /**
4613
4677
  * Platform service provider
4614
4678
  */
@@ -4644,7 +4708,7 @@ declare namespace LocalJSX {
4644
4708
  /**
4645
4709
  * The comparison expression to render
4646
4710
  */
4647
- "expression"?: LimeQueryFilterComparison;
4711
+ "expression"?: ComparisonExpression;
4648
4712
  /**
4649
4713
  * Optional label for the comparison
4650
4714
  */
@@ -4654,9 +4718,9 @@ declare namespace LocalJSX {
4654
4718
  */
4655
4719
  "limetype"?: string;
4656
4720
  /**
4657
- * Emitted when the comparison expression changes (property/operator/value modified)
4721
+ * Emitted when the comparison expression changes (property/operator/value modified) Emits undefined when the expression should be removed
4658
4722
  */
4659
- "onExpressionChange"?: (event: LimebbLimeQueryFilterComparisonCustomEvent<LimeQueryFilterComparison | LimeQueryFilterMissing>) => void;
4723
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterComparisonCustomEvent<ComparisonExpression | undefined>) => void;
4660
4724
  /**
4661
4725
  * Platform service provider
4662
4726
  */
@@ -4664,15 +4728,11 @@ declare namespace LocalJSX {
4664
4728
  }
4665
4729
  /**
4666
4730
  * Lime Query Filter Expression Router
4667
- * This is the main entry point for rendering Lime Query filters.
4668
- * It routes to the appropriate sub-component based on the filter type:
4669
- * - `'AND'` → limebb-lime-query-filter-and
4670
- * - `'OR'` → limebb-lime-query-filter-or
4671
- * - `'NOT'` → limebb-lime-query-filter-not
4672
- * - `'comparison'` → limebb-lime-query-filter-comparison
4673
- * - `''` (missing) → limebb-lime-query-filter-comparison (default)
4674
- * Use this component when you need to render a complete filter expression
4675
- * that may contain nested AND/OR/NOT logic.
4731
+ * Router component for rendering Lime Query filter expressions.
4732
+ * Routes to the appropriate sub-component based on expression structure:
4733
+ * - Has `key` property → limebb-lime-query-filter-comparison
4734
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
4735
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
4676
4736
  * @private
4677
4737
  */
4678
4738
  interface LimebbLimeQueryFilterExpression {
@@ -4687,7 +4747,7 @@ declare namespace LocalJSX {
4687
4747
  /**
4688
4748
  * The filter expression to render
4689
4749
  */
4690
- "expression"?: LimeQueryFilterExpression;
4750
+ "expression"?: Expression;
4691
4751
  /**
4692
4752
  * Optional label for the expression
4693
4753
  */
@@ -4697,9 +4757,49 @@ declare namespace LocalJSX {
4697
4757
  */
4698
4758
  "limetype"?: string;
4699
4759
  /**
4700
- * Emitted when the filter expression changes
4760
+ * Emitted when the filter expression changes Emits undefined when expression should be removed
4701
4761
  */
4702
- "onExpressionChange"?: (event: LimebbLimeQueryFilterExpressionCustomEvent<LimeQueryFilterExpression>) => void;
4762
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterExpressionCustomEvent<Expression | undefined>) => void;
4763
+ /**
4764
+ * Platform service provider
4765
+ */
4766
+ "platform"?: LimeWebComponentPlatform;
4767
+ }
4768
+ /**
4769
+ * Lime Query Filter Group Component
4770
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
4771
+ * Users can click the header to toggle between "All conditions" (AND) and
4772
+ * "Any condition" (OR).
4773
+ * This component displays:
4774
+ * - A clickable header showing the current logic (AND/OR)
4775
+ * - A list of child expressions (which can be comparisons or nested groups)
4776
+ * - An "Add" button to add more expressions
4777
+ * Clicking the header toggles between AND and OR logic.
4778
+ * If a child component emits an ExpressionChange event with undefined, the
4779
+ * child is removed from the group.
4780
+ * @private
4781
+ */
4782
+ interface LimebbLimeQueryFilterGroup {
4783
+ /**
4784
+ * The limetype of the active object (for %activeObject% placeholders)
4785
+ */
4786
+ "activeLimetype"?: string;
4787
+ /**
4788
+ * Component context
4789
+ */
4790
+ "context"?: LimeWebComponentContext;
4791
+ /**
4792
+ * The group expression (AND or OR)
4793
+ */
4794
+ "expression"?: AndOrExpression;
4795
+ /**
4796
+ * The limetype being queried (e.g., "deal", "company")
4797
+ */
4798
+ "limetype"?: string;
4799
+ /**
4800
+ * Emitted when the group expression changes Emits undefined when expression should be removed Can emit any Expression type when unwrapping (single child)
4801
+ */
4802
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterGroupCustomEvent<Expression | undefined>) => void;
4703
4803
  /**
4704
4804
  * Platform service provider
4705
4805
  */
@@ -4730,7 +4830,7 @@ declare namespace LocalJSX {
4730
4830
  /**
4731
4831
  * The NOT expression containing the child expression to negate
4732
4832
  */
4733
- "expression"?: LimeQueryFilterNot;
4833
+ "expression"?: NotExpression;
4734
4834
  /**
4735
4835
  * Optional label for the NOT expression
4736
4836
  */
@@ -4740,9 +4840,9 @@ declare namespace LocalJSX {
4740
4840
  */
4741
4841
  "limetype"?: string;
4742
4842
  /**
4743
- * Emitted when the NOT expression changes (child expression modified or removed)
4843
+ * Emitted when the NOT expression changes (child expression modified or removed) Emits undefined when the expression should be removed
4744
4844
  */
4745
- "onExpressionChange"?: (event: LimebbLimeQueryFilterNotCustomEvent<LimeQueryFilterNot | LimeQueryFilterMissing>) => void;
4845
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterNotCustomEvent<NotExpression | undefined>) => void;
4746
4846
  /**
4747
4847
  * Platform service provider
4748
4848
  */
@@ -4772,7 +4872,7 @@ declare namespace LocalJSX {
4772
4872
  /**
4773
4873
  * The OR expression containing child expressions
4774
4874
  */
4775
- "expression"?: LimeQueryFilterOr;
4875
+ "expression"?: AndOrExpression;
4776
4876
  /**
4777
4877
  * Optional label for the OR group
4778
4878
  */
@@ -4782,9 +4882,9 @@ declare namespace LocalJSX {
4782
4882
  */
4783
4883
  "limetype"?: string;
4784
4884
  /**
4785
- * Emitted when the OR expression changes (expressions added/removed/modified)
4885
+ * Emitted when the OR expression changes (expressions added/removed/modified) Emits undefined when expression should be removed Can emit any Expression type when unwrapping (single child)
4786
4886
  */
4787
- "onExpressionChange"?: (event: LimebbLimeQueryFilterOrCustomEvent<LimeQueryFilterOr | LimeQueryFilterMissing>) => void;
4887
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterOrCustomEvent<Expression | undefined>) => void;
4788
4888
  /**
4789
4889
  * Platform service provider
4790
4890
  */
@@ -5692,6 +5792,7 @@ declare namespace LocalJSX {
5692
5792
  "limebb-lime-query-filter-and": LimebbLimeQueryFilterAnd;
5693
5793
  "limebb-lime-query-filter-comparison": LimebbLimeQueryFilterComparison;
5694
5794
  "limebb-lime-query-filter-expression": LimebbLimeQueryFilterExpression;
5795
+ "limebb-lime-query-filter-group": LimebbLimeQueryFilterGroup;
5695
5796
  "limebb-lime-query-filter-not": LimebbLimeQueryFilterNot;
5696
5797
  "limebb-lime-query-filter-or": LimebbLimeQueryFilterOr;
5697
5798
  "limebb-lime-query-value-input": LimebbLimeQueryValueInput;
@@ -6047,18 +6148,29 @@ declare module "@stencil/core" {
6047
6148
  "limebb-lime-query-filter-comparison": LocalJSX.LimebbLimeQueryFilterComparison & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterComparisonElement>;
6048
6149
  /**
6049
6150
  * Lime Query Filter Expression Router
6050
- * This is the main entry point for rendering Lime Query filters.
6051
- * It routes to the appropriate sub-component based on the filter type:
6052
- * - `'AND'` → limebb-lime-query-filter-and
6053
- * - `'OR'` → limebb-lime-query-filter-or
6054
- * - `'NOT'` → limebb-lime-query-filter-not
6055
- * - `'comparison'` → limebb-lime-query-filter-comparison
6056
- * - `''` (missing) → limebb-lime-query-filter-comparison (default)
6057
- * Use this component when you need to render a complete filter expression
6058
- * that may contain nested AND/OR/NOT logic.
6151
+ * Router component for rendering Lime Query filter expressions.
6152
+ * Routes to the appropriate sub-component based on expression structure:
6153
+ * - Has `key` property → limebb-lime-query-filter-comparison
6154
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
6155
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
6059
6156
  * @private
6060
6157
  */
6061
6158
  "limebb-lime-query-filter-expression": LocalJSX.LimebbLimeQueryFilterExpression & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterExpressionElement>;
6159
+ /**
6160
+ * Lime Query Filter Group Component
6161
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
6162
+ * Users can click the header to toggle between "All conditions" (AND) and
6163
+ * "Any condition" (OR).
6164
+ * This component displays:
6165
+ * - A clickable header showing the current logic (AND/OR)
6166
+ * - A list of child expressions (which can be comparisons or nested groups)
6167
+ * - An "Add" button to add more expressions
6168
+ * Clicking the header toggles between AND and OR logic.
6169
+ * If a child component emits an ExpressionChange event with undefined, the
6170
+ * child is removed from the group.
6171
+ * @private
6172
+ */
6173
+ "limebb-lime-query-filter-group": LocalJSX.LimebbLimeQueryFilterGroup & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterGroupElement>;
6062
6174
  /**
6063
6175
  * Lime Query Filter NOT Component
6064
6176
  * Renders a negated filter expression. This inverts the logic of the child expression,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-crm-building-blocks",
3
- "version": "1.98.0",
3
+ "version": "1.99.0",
4
4
  "description": "A home for shared components meant for use with Lime CRM",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",