@limetech/lime-crm-building-blocks 1.98.0 → 1.100.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 (176) hide show
  1. package/CHANGELOG.md +14 -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 +68 -179
  17. package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +80 -0
  18. package/dist/cjs/{limebb-limetype-field_2.cjs.entry.js → limebb-lime-query-filter-builder_3.cjs.entry.js} +108 -6
  19. package/dist/cjs/limebb-lime-query-filter-comparison_5.cjs.entry.js +705 -0
  20. package/dist/cjs/limebb-lime-query-filter-expression.cjs.entry.js +45 -0
  21. package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +68 -0
  22. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +1 -1
  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 +2 -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-builder.css +5 -0
  39. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.js +225 -0
  40. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +77 -41
  41. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +35 -46
  42. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +130 -0
  43. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +269 -0
  44. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +19 -25
  45. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +34 -34
  46. package/dist/collection/components/lime-query-builder/lime-query-builder.js +11 -26
  47. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  48. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  49. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  50. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  51. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  52. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  53. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  54. package/dist/collection/components/text-editor/text-editor.js +1 -1
  55. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  56. package/dist/components/index.esm.js +2 -1
  57. package/dist/components/lime-query-filter-builder.js +129 -0
  58. package/dist/components/lime-query-filter-comparison.js +32 -45
  59. package/dist/components/lime-query-filter-expression.js +315 -0
  60. package/dist/components/limebb-lime-query-builder.js +73 -182
  61. package/dist/components/limebb-lime-query-filter-and.js +130 -1
  62. package/dist/components/limebb-lime-query-filter-builder.d.ts +11 -0
  63. package/dist/components/limebb-lime-query-filter-builder.js +6 -0
  64. package/dist/components/limebb-lime-query-filter-comparison.js +1 -1
  65. package/dist/components/limebb-lime-query-filter-expression.js +1 -1
  66. package/dist/components/limebb-lime-query-filter-group.d.ts +11 -0
  67. package/dist/components/limebb-lime-query-filter-group.js +6 -0
  68. package/dist/components/limebb-lime-query-filter-not.js +1 -1
  69. package/dist/components/limebb-lime-query-filter-or.js +118 -1
  70. package/dist/components/limebb-locale-picker.js +1 -1
  71. package/dist/components/limebb-mention-group-counter.js +2 -2
  72. package/dist/components/limebb-percentage-visualizer.js +2 -2
  73. package/dist/components/limebb-text-editor.js +1 -1
  74. package/dist/components/limebb-trend-indicator.js +1 -1
  75. package/dist/components/limetype-field.js +34 -2
  76. package/dist/components/live-docs-info.js +2 -2
  77. package/dist/components/notification-item.js +1 -1
  78. package/dist/components/summary-popover.js +3 -3
  79. package/dist/esm/{index.esm-d8fdeb18.js → index.esm-bb569663.js} +2 -1
  80. package/dist/esm/lime-crm-building-blocks.js +1 -1
  81. package/dist/esm/limebb-browser.entry.js +1 -1
  82. package/dist/esm/limebb-chat-item_2.entry.js +1 -1
  83. package/dist/esm/limebb-chat-list.entry.js +1 -1
  84. package/dist/esm/limebb-component-config.entry.js +1 -1
  85. package/dist/esm/limebb-component-picker.entry.js +1 -1
  86. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  87. package/dist/esm/limebb-date-picker.entry.js +1 -1
  88. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  89. package/dist/esm/limebb-feed.entry.js +1 -1
  90. package/dist/esm/limebb-info-tile.entry.js +1 -1
  91. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  92. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  93. package/dist/esm/limebb-lime-query-builder.entry.js +67 -178
  94. package/dist/esm/limebb-lime-query-filter-and.entry.js +76 -0
  95. package/dist/esm/{limebb-limetype-field_2.entry.js → limebb-lime-query-filter-builder_3.entry.js} +107 -6
  96. package/dist/esm/limebb-lime-query-filter-comparison_5.entry.js +697 -0
  97. package/dist/esm/limebb-lime-query-filter-expression.entry.js +41 -0
  98. package/dist/esm/limebb-lime-query-filter-or.entry.js +64 -0
  99. package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -1
  100. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  101. package/dist/esm/limebb-loader.entry.js +1 -1
  102. package/dist/esm/limebb-locale-picker.entry.js +2 -2
  103. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  104. package/dist/esm/limebb-mention.entry.js +1 -1
  105. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  106. package/dist/esm/limebb-notification-item.entry.js +2 -2
  107. package/dist/esm/limebb-notification-list.entry.js +1 -1
  108. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  109. package/dist/esm/limebb-text-editor.entry.js +3 -3
  110. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  111. package/dist/esm/{limetype-6e7552a7.js → limetype-c0e041f7.js} +1 -1
  112. package/dist/esm/loader.js +1 -1
  113. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  114. package/dist/lime-crm-building-blocks/{p-a1818969.entry.js → p-03af0e66.entry.js} +1 -1
  115. package/dist/lime-crm-building-blocks/{p-f402184f.entry.js → p-098ee6c1.entry.js} +1 -1
  116. package/dist/lime-crm-building-blocks/{p-42e52b50.entry.js → p-1be0eec7.entry.js} +1 -1
  117. package/dist/lime-crm-building-blocks/{p-2aa18c2b.entry.js → p-206575e4.entry.js} +1 -1
  118. package/dist/lime-crm-building-blocks/p-20bfca36.js +1 -0
  119. package/dist/lime-crm-building-blocks/p-24aeb928.entry.js +1 -0
  120. package/dist/lime-crm-building-blocks/{p-82d33d43.entry.js → p-2faaacbc.entry.js} +1 -1
  121. package/dist/lime-crm-building-blocks/{p-d4016891.entry.js → p-2fdcb868.entry.js} +1 -1
  122. package/dist/lime-crm-building-blocks/{p-f52125a0.entry.js → p-3122ea05.entry.js} +1 -1
  123. package/dist/lime-crm-building-blocks/{p-baf4e428.entry.js → p-3175883d.entry.js} +1 -1
  124. package/dist/lime-crm-building-blocks/{p-8c8b7115.entry.js → p-32534eb7.entry.js} +1 -1
  125. package/dist/lime-crm-building-blocks/{p-6c1146ca.entry.js → p-36ea13c0.entry.js} +1 -1
  126. package/dist/lime-crm-building-blocks/p-422f6d51.entry.js +1 -0
  127. package/dist/lime-crm-building-blocks/{p-1fba0ade.js → p-4838284a.js} +1 -1
  128. package/dist/lime-crm-building-blocks/{p-5e4ba110.entry.js → p-5464f0de.entry.js} +1 -1
  129. package/dist/lime-crm-building-blocks/{p-e9d23ef7.entry.js → p-569c86b5.entry.js} +1 -1
  130. package/dist/lime-crm-building-blocks/{p-90e1716a.entry.js → p-5dc574a3.entry.js} +1 -1
  131. package/dist/lime-crm-building-blocks/{p-00da9b24.entry.js → p-631ca5a5.entry.js} +1 -1
  132. package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +1 -0
  133. package/dist/lime-crm-building-blocks/p-6d119dab.entry.js +1 -0
  134. package/dist/lime-crm-building-blocks/{p-beb0d164.entry.js → p-7271f47a.entry.js} +1 -1
  135. package/dist/lime-crm-building-blocks/{p-34357744.entry.js → p-9031f136.entry.js} +1 -1
  136. package/dist/lime-crm-building-blocks/p-91732502.entry.js +1 -0
  137. package/dist/lime-crm-building-blocks/{p-8c4eb49f.entry.js → p-93cadc1e.entry.js} +1 -1
  138. package/dist/lime-crm-building-blocks/{p-3932077b.entry.js → p-9cac4de2.entry.js} +1 -1
  139. package/dist/lime-crm-building-blocks/{p-79d4668a.entry.js → p-a200954f.entry.js} +1 -1
  140. package/dist/lime-crm-building-blocks/p-b198194a.entry.js +1 -0
  141. package/dist/lime-crm-building-blocks/{p-d89c44ad.entry.js → p-b9b954d9.entry.js} +1 -1
  142. package/dist/lime-crm-building-blocks/{p-3a620226.entry.js → p-cfa1a4ad.entry.js} +1 -1
  143. package/dist/lime-crm-building-blocks/{p-ef8a5266.entry.js → p-e8946134.entry.js} +1 -1
  144. package/dist/lime-crm-building-blocks/{p-9d9f25da.entry.js → p-eb81bceb.entry.js} +1 -1
  145. package/dist/lime-crm-building-blocks/{p-50d3d61a.entry.js → p-ee1b00b9.entry.js} +1 -1
  146. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +5 -4
  147. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-builder.d.ts +50 -0
  148. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +6 -4
  149. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +10 -14
  150. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +60 -0
  151. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +4 -4
  152. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +5 -4
  153. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +1 -0
  154. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +2 -1
  155. package/dist/types/components.d.ts +293 -65
  156. package/package.json +1 -1
  157. package/dist/cjs/isEqual-e77cce75.js +0 -37
  158. package/dist/cjs/lime-query.types-bcb63a22.js +0 -61
  159. package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +0 -278
  160. package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +0 -239
  161. package/dist/cjs/limebb-property-selector.cjs.entry.js +0 -234
  162. package/dist/components/isEqual.js +0 -35
  163. package/dist/components/lime-query-filter-and.js +0 -408
  164. package/dist/esm/isEqual-57d0c223.js +0 -35
  165. package/dist/esm/lime-query.types-f72355e1.js +0 -59
  166. package/dist/esm/limebb-lime-query-filter-and_5.entry.js +0 -270
  167. package/dist/esm/limebb-lime-query-value-input.entry.js +0 -235
  168. package/dist/esm/limebb-property-selector.entry.js +0 -230
  169. package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +0 -1
  170. package/dist/lime-crm-building-blocks/p-0957b2a6.entry.js +0 -1
  171. package/dist/lime-crm-building-blocks/p-3b0a15ec.js +0 -1
  172. package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +0 -1
  173. package/dist/lime-crm-building-blocks/p-60971d64.js +0 -1
  174. package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +0 -1
  175. package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +0 -1
  176. package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +0 -1
@@ -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";
@@ -968,6 +968,7 @@ export namespace Components {
968
968
  * These placeholders reference properties of a contextual "active object"
969
969
  * (e.g., `%activeObject%.company` references the company of the active object).
970
970
  * @exampleComponent limebb-example-lime-query-builder-basic
971
+ * @exampleComponent limebb-example-lime-query-builder-with-active-limetype
971
972
  * @private
972
973
  */
973
974
  interface LimebbLimeQueryBuilder {
@@ -1016,7 +1017,7 @@ export namespace Components {
1016
1017
  /**
1017
1018
  * The AND expression containing child expressions
1018
1019
  */
1019
- "expression": LimeQueryFilterAnd;
1020
+ "expression": AndOrExpression;
1020
1021
  /**
1021
1022
  * Optional label for the AND group
1022
1023
  */
@@ -1030,6 +1031,38 @@ export namespace Components {
1030
1031
  */
1031
1032
  "platform": LimeWebComponentPlatform;
1032
1033
  }
1034
+ /**
1035
+ * Lime Query Filter Builder
1036
+ * Entry component for building Lime Query filter expressions.
1037
+ * This component wraps the expression router and adds promotion logic
1038
+ * for handling Add buttons and expression structure.
1039
+ * Unlike the expression router (which is pure routing), this component
1040
+ * contains business logic for promoting expressions and managing the
1041
+ * filter structure.
1042
+ * @private
1043
+ */
1044
+ interface LimebbLimeQueryFilterBuilder {
1045
+ /**
1046
+ * The limetype of the active object (for %activeObject% placeholders)
1047
+ */
1048
+ "activeLimetype"?: string;
1049
+ /**
1050
+ * Component context
1051
+ */
1052
+ "context": LimeWebComponentContext;
1053
+ /**
1054
+ * The filter expression to build
1055
+ */
1056
+ "expression": Expression | undefined;
1057
+ /**
1058
+ * The limetype being queried (e.g., "deal", "company")
1059
+ */
1060
+ "limetype": string;
1061
+ /**
1062
+ * Platform service provider
1063
+ */
1064
+ "platform": LimeWebComponentPlatform;
1065
+ }
1033
1066
  /**
1034
1067
  * Lime Query Filter Comparison Component
1035
1068
  * Renders a single comparison expression with three parts:
@@ -1060,7 +1093,7 @@ export namespace Components {
1060
1093
  /**
1061
1094
  * The comparison expression to render
1062
1095
  */
1063
- "expression": LimeQueryFilterComparison;
1096
+ "expression": ComparisonExpression;
1064
1097
  /**
1065
1098
  * Optional label for the comparison
1066
1099
  */
@@ -1076,15 +1109,11 @@ export namespace Components {
1076
1109
  }
1077
1110
  /**
1078
1111
  * 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.
1112
+ * Router component for rendering Lime Query filter expressions.
1113
+ * Routes to the appropriate sub-component based on expression structure:
1114
+ * - Has `key` property → limebb-lime-query-filter-comparison
1115
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
1116
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
1088
1117
  * @private
1089
1118
  */
1090
1119
  interface LimebbLimeQueryFilterExpression {
@@ -1099,7 +1128,7 @@ export namespace Components {
1099
1128
  /**
1100
1129
  * The filter expression to render
1101
1130
  */
1102
- "expression": LimeQueryFilterExpression;
1131
+ "expression": Expression;
1103
1132
  /**
1104
1133
  * Optional label for the expression
1105
1134
  */
@@ -1113,6 +1142,42 @@ export namespace Components {
1113
1142
  */
1114
1143
  "platform": LimeWebComponentPlatform;
1115
1144
  }
1145
+ /**
1146
+ * Lime Query Filter Group Component
1147
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
1148
+ * Users can click the header to toggle between "All conditions" (AND) and
1149
+ * "Any condition" (OR).
1150
+ * This component displays:
1151
+ * - A clickable header showing the current logic (AND/OR)
1152
+ * - A list of child expressions (which can be comparisons or nested groups)
1153
+ * - An "Add" button to add more expressions
1154
+ * Clicking the header toggles between AND and OR logic.
1155
+ * If a child component emits an ExpressionChange event with undefined, the
1156
+ * child is removed from the group.
1157
+ * @private
1158
+ */
1159
+ interface LimebbLimeQueryFilterGroup {
1160
+ /**
1161
+ * The limetype of the active object (for %activeObject% placeholders)
1162
+ */
1163
+ "activeLimetype"?: string;
1164
+ /**
1165
+ * Component context
1166
+ */
1167
+ "context": LimeWebComponentContext;
1168
+ /**
1169
+ * The group expression (AND or OR)
1170
+ */
1171
+ "expression": AndOrExpression;
1172
+ /**
1173
+ * The limetype being queried (e.g., "deal", "company")
1174
+ */
1175
+ "limetype": string;
1176
+ /**
1177
+ * Platform service provider
1178
+ */
1179
+ "platform": LimeWebComponentPlatform;
1180
+ }
1116
1181
  /**
1117
1182
  * Lime Query Filter NOT Component
1118
1183
  * Renders a negated filter expression. This inverts the logic of the child expression,
@@ -1138,7 +1203,7 @@ export namespace Components {
1138
1203
  /**
1139
1204
  * The NOT expression containing the child expression to negate
1140
1205
  */
1141
- "expression": LimeQueryFilterNot;
1206
+ "expression": NotExpression;
1142
1207
  /**
1143
1208
  * Optional label for the NOT expression
1144
1209
  */
@@ -1176,7 +1241,7 @@ export namespace Components {
1176
1241
  /**
1177
1242
  * The OR expression containing child expressions
1178
1243
  */
1179
- "expression": LimeQueryFilterOr;
1244
+ "expression": AndOrExpression;
1180
1245
  /**
1181
1246
  * Optional label for the OR group
1182
1247
  */
@@ -2091,6 +2156,10 @@ export interface LimebbLimeQueryFilterAndCustomEvent<T> extends CustomEvent<T> {
2091
2156
  detail: T;
2092
2157
  target: HTMLLimebbLimeQueryFilterAndElement;
2093
2158
  }
2159
+ export interface LimebbLimeQueryFilterBuilderCustomEvent<T> extends CustomEvent<T> {
2160
+ detail: T;
2161
+ target: HTMLLimebbLimeQueryFilterBuilderElement;
2162
+ }
2094
2163
  export interface LimebbLimeQueryFilterComparisonCustomEvent<T> extends CustomEvent<T> {
2095
2164
  detail: T;
2096
2165
  target: HTMLLimebbLimeQueryFilterComparisonElement;
@@ -2099,6 +2168,10 @@ export interface LimebbLimeQueryFilterExpressionCustomEvent<T> extends CustomEve
2099
2168
  detail: T;
2100
2169
  target: HTMLLimebbLimeQueryFilterExpressionElement;
2101
2170
  }
2171
+ export interface LimebbLimeQueryFilterGroupCustomEvent<T> extends CustomEvent<T> {
2172
+ detail: T;
2173
+ target: HTMLLimebbLimeQueryFilterGroupElement;
2174
+ }
2102
2175
  export interface LimebbLimeQueryFilterNotCustomEvent<T> extends CustomEvent<T> {
2103
2176
  detail: T;
2104
2177
  target: HTMLLimebbLimeQueryFilterNotElement;
@@ -2792,6 +2865,7 @@ declare global {
2792
2865
  * These placeholders reference properties of a contextual "active object"
2793
2866
  * (e.g., `%activeObject%.company` references the company of the active object).
2794
2867
  * @exampleComponent limebb-example-lime-query-builder-basic
2868
+ * @exampleComponent limebb-example-lime-query-builder-with-active-limetype
2795
2869
  * @private
2796
2870
  */
2797
2871
  interface HTMLLimebbLimeQueryBuilderElement extends Components.LimebbLimeQueryBuilder, HTMLStencilElement {
@@ -2809,7 +2883,7 @@ declare global {
2809
2883
  new (): HTMLLimebbLimeQueryBuilderElement;
2810
2884
  };
2811
2885
  interface HTMLLimebbLimeQueryFilterAndElementEventMap {
2812
- "expressionChange": LimeQueryFilterAnd | LimeQueryFilterMissing;
2886
+ "expressionChange": Expression | undefined;
2813
2887
  }
2814
2888
  /**
2815
2889
  * Lime Query Filter AND Component
@@ -2837,8 +2911,35 @@ declare global {
2837
2911
  prototype: HTMLLimebbLimeQueryFilterAndElement;
2838
2912
  new (): HTMLLimebbLimeQueryFilterAndElement;
2839
2913
  };
2914
+ interface HTMLLimebbLimeQueryFilterBuilderElementEventMap {
2915
+ "expressionChange": Expression | undefined;
2916
+ }
2917
+ /**
2918
+ * Lime Query Filter Builder
2919
+ * Entry component for building Lime Query filter expressions.
2920
+ * This component wraps the expression router and adds promotion logic
2921
+ * for handling Add buttons and expression structure.
2922
+ * Unlike the expression router (which is pure routing), this component
2923
+ * contains business logic for promoting expressions and managing the
2924
+ * filter structure.
2925
+ * @private
2926
+ */
2927
+ interface HTMLLimebbLimeQueryFilterBuilderElement extends Components.LimebbLimeQueryFilterBuilder, HTMLStencilElement {
2928
+ addEventListener<K extends keyof HTMLLimebbLimeQueryFilterBuilderElementEventMap>(type: K, listener: (this: HTMLLimebbLimeQueryFilterBuilderElement, ev: LimebbLimeQueryFilterBuilderCustomEvent<HTMLLimebbLimeQueryFilterBuilderElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2929
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2930
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2931
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2932
+ removeEventListener<K extends keyof HTMLLimebbLimeQueryFilterBuilderElementEventMap>(type: K, listener: (this: HTMLLimebbLimeQueryFilterBuilderElement, ev: LimebbLimeQueryFilterBuilderCustomEvent<HTMLLimebbLimeQueryFilterBuilderElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2933
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2934
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2935
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2936
+ }
2937
+ var HTMLLimebbLimeQueryFilterBuilderElement: {
2938
+ prototype: HTMLLimebbLimeQueryFilterBuilderElement;
2939
+ new (): HTMLLimebbLimeQueryFilterBuilderElement;
2940
+ };
2840
2941
  interface HTMLLimebbLimeQueryFilterComparisonElementEventMap {
2841
- "expressionChange": LimeQueryFilterComparison | LimeQueryFilterMissing;
2942
+ "expressionChange": ComparisonExpression | undefined;
2842
2943
  }
2843
2944
  /**
2844
2945
  * Lime Query Filter Comparison Component
@@ -2873,19 +2974,15 @@ declare global {
2873
2974
  new (): HTMLLimebbLimeQueryFilterComparisonElement;
2874
2975
  };
2875
2976
  interface HTMLLimebbLimeQueryFilterExpressionElementEventMap {
2876
- "expressionChange": LimeQueryFilterExpression;
2977
+ "expressionChange": Expression | undefined;
2877
2978
  }
2878
2979
  /**
2879
2980
  * 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.
2981
+ * Router component for rendering Lime Query filter expressions.
2982
+ * Routes to the appropriate sub-component based on expression structure:
2983
+ * - Has `key` property → limebb-lime-query-filter-comparison
2984
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
2985
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
2889
2986
  * @private
2890
2987
  */
2891
2988
  interface HTMLLimebbLimeQueryFilterExpressionElement extends Components.LimebbLimeQueryFilterExpression, HTMLStencilElement {
@@ -2902,8 +2999,39 @@ declare global {
2902
2999
  prototype: HTMLLimebbLimeQueryFilterExpressionElement;
2903
3000
  new (): HTMLLimebbLimeQueryFilterExpressionElement;
2904
3001
  };
3002
+ interface HTMLLimebbLimeQueryFilterGroupElementEventMap {
3003
+ "expressionChange": Expression | undefined;
3004
+ }
3005
+ /**
3006
+ * Lime Query Filter Group Component
3007
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
3008
+ * Users can click the header to toggle between "All conditions" (AND) and
3009
+ * "Any condition" (OR).
3010
+ * This component displays:
3011
+ * - A clickable header showing the current logic (AND/OR)
3012
+ * - A list of child expressions (which can be comparisons or nested groups)
3013
+ * - An "Add" button to add more expressions
3014
+ * Clicking the header toggles between AND and OR logic.
3015
+ * If a child component emits an ExpressionChange event with undefined, the
3016
+ * child is removed from the group.
3017
+ * @private
3018
+ */
3019
+ interface HTMLLimebbLimeQueryFilterGroupElement extends Components.LimebbLimeQueryFilterGroup, HTMLStencilElement {
3020
+ addEventListener<K extends keyof HTMLLimebbLimeQueryFilterGroupElementEventMap>(type: K, listener: (this: HTMLLimebbLimeQueryFilterGroupElement, ev: LimebbLimeQueryFilterGroupCustomEvent<HTMLLimebbLimeQueryFilterGroupElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3021
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3022
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3023
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3024
+ removeEventListener<K extends keyof HTMLLimebbLimeQueryFilterGroupElementEventMap>(type: K, listener: (this: HTMLLimebbLimeQueryFilterGroupElement, ev: LimebbLimeQueryFilterGroupCustomEvent<HTMLLimebbLimeQueryFilterGroupElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3025
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3026
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3027
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3028
+ }
3029
+ var HTMLLimebbLimeQueryFilterGroupElement: {
3030
+ prototype: HTMLLimebbLimeQueryFilterGroupElement;
3031
+ new (): HTMLLimebbLimeQueryFilterGroupElement;
3032
+ };
2905
3033
  interface HTMLLimebbLimeQueryFilterNotElementEventMap {
2906
- "expressionChange": LimeQueryFilterNot | LimeQueryFilterMissing;
3034
+ "expressionChange": NotExpression | undefined;
2907
3035
  }
2908
3036
  /**
2909
3037
  * Lime Query Filter NOT Component
@@ -2933,7 +3061,7 @@ declare global {
2933
3061
  new (): HTMLLimebbLimeQueryFilterNotElement;
2934
3062
  };
2935
3063
  interface HTMLLimebbLimeQueryFilterOrElementEventMap {
2936
- "expressionChange": LimeQueryFilterOr | LimeQueryFilterMissing;
3064
+ "expressionChange": Expression | undefined;
2937
3065
  }
2938
3066
  /**
2939
3067
  * Lime Query Filter OR Component
@@ -3501,8 +3629,10 @@ declare global {
3501
3629
  "limebb-kanban-item": HTMLLimebbKanbanItemElement;
3502
3630
  "limebb-lime-query-builder": HTMLLimebbLimeQueryBuilderElement;
3503
3631
  "limebb-lime-query-filter-and": HTMLLimebbLimeQueryFilterAndElement;
3632
+ "limebb-lime-query-filter-builder": HTMLLimebbLimeQueryFilterBuilderElement;
3504
3633
  "limebb-lime-query-filter-comparison": HTMLLimebbLimeQueryFilterComparisonElement;
3505
3634
  "limebb-lime-query-filter-expression": HTMLLimebbLimeQueryFilterExpressionElement;
3635
+ "limebb-lime-query-filter-group": HTMLLimebbLimeQueryFilterGroupElement;
3506
3636
  "limebb-lime-query-filter-not": HTMLLimebbLimeQueryFilterNotElement;
3507
3637
  "limebb-lime-query-filter-or": HTMLLimebbLimeQueryFilterOrElement;
3508
3638
  "limebb-lime-query-value-input": HTMLLimebbLimeQueryValueInputElement;
@@ -4544,6 +4674,7 @@ declare namespace LocalJSX {
4544
4674
  * These placeholders reference properties of a contextual "active object"
4545
4675
  * (e.g., `%activeObject%.company` references the company of the active object).
4546
4676
  * @exampleComponent limebb-example-lime-query-builder-basic
4677
+ * @exampleComponent limebb-example-lime-query-builder-with-active-limetype
4547
4678
  * @private
4548
4679
  */
4549
4680
  interface LimebbLimeQueryBuilder {
@@ -4596,7 +4727,7 @@ declare namespace LocalJSX {
4596
4727
  /**
4597
4728
  * The AND expression containing child expressions
4598
4729
  */
4599
- "expression"?: LimeQueryFilterAnd;
4730
+ "expression"?: AndOrExpression;
4600
4731
  /**
4601
4732
  * Optional label for the AND group
4602
4733
  */
@@ -4606,9 +4737,45 @@ declare namespace LocalJSX {
4606
4737
  */
4607
4738
  "limetype"?: string;
4608
4739
  /**
4609
- * Emitted when the AND expression changes (expressions added/removed/modified)
4740
+ * 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)
4741
+ */
4742
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterAndCustomEvent<Expression | undefined>) => void;
4743
+ /**
4744
+ * Platform service provider
4745
+ */
4746
+ "platform"?: LimeWebComponentPlatform;
4747
+ }
4748
+ /**
4749
+ * Lime Query Filter Builder
4750
+ * Entry component for building Lime Query filter expressions.
4751
+ * This component wraps the expression router and adds promotion logic
4752
+ * for handling Add buttons and expression structure.
4753
+ * Unlike the expression router (which is pure routing), this component
4754
+ * contains business logic for promoting expressions and managing the
4755
+ * filter structure.
4756
+ * @private
4757
+ */
4758
+ interface LimebbLimeQueryFilterBuilder {
4759
+ /**
4760
+ * The limetype of the active object (for %activeObject% placeholders)
4761
+ */
4762
+ "activeLimetype"?: string;
4763
+ /**
4764
+ * Component context
4765
+ */
4766
+ "context"?: LimeWebComponentContext;
4767
+ /**
4768
+ * The filter expression to build
4769
+ */
4770
+ "expression"?: Expression | undefined;
4771
+ /**
4772
+ * The limetype being queried (e.g., "deal", "company")
4773
+ */
4774
+ "limetype"?: string;
4775
+ /**
4776
+ * Emitted when the filter expression changes Emits undefined when expression should be removed
4610
4777
  */
4611
- "onExpressionChange"?: (event: LimebbLimeQueryFilterAndCustomEvent<LimeQueryFilterAnd | LimeQueryFilterMissing>) => void;
4778
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterBuilderCustomEvent<Expression | undefined>) => void;
4612
4779
  /**
4613
4780
  * Platform service provider
4614
4781
  */
@@ -4644,7 +4811,7 @@ declare namespace LocalJSX {
4644
4811
  /**
4645
4812
  * The comparison expression to render
4646
4813
  */
4647
- "expression"?: LimeQueryFilterComparison;
4814
+ "expression"?: ComparisonExpression;
4648
4815
  /**
4649
4816
  * Optional label for the comparison
4650
4817
  */
@@ -4654,9 +4821,9 @@ declare namespace LocalJSX {
4654
4821
  */
4655
4822
  "limetype"?: string;
4656
4823
  /**
4657
- * Emitted when the comparison expression changes (property/operator/value modified)
4824
+ * Emitted when the comparison expression changes (property/operator/value modified) Emits undefined when the expression should be removed
4658
4825
  */
4659
- "onExpressionChange"?: (event: LimebbLimeQueryFilterComparisonCustomEvent<LimeQueryFilterComparison | LimeQueryFilterMissing>) => void;
4826
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterComparisonCustomEvent<ComparisonExpression | undefined>) => void;
4660
4827
  /**
4661
4828
  * Platform service provider
4662
4829
  */
@@ -4664,15 +4831,11 @@ declare namespace LocalJSX {
4664
4831
  }
4665
4832
  /**
4666
4833
  * 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.
4834
+ * Router component for rendering Lime Query filter expressions.
4835
+ * Routes to the appropriate sub-component based on expression structure:
4836
+ * - Has `key` property → limebb-lime-query-filter-comparison
4837
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
4838
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
4676
4839
  * @private
4677
4840
  */
4678
4841
  interface LimebbLimeQueryFilterExpression {
@@ -4687,7 +4850,7 @@ declare namespace LocalJSX {
4687
4850
  /**
4688
4851
  * The filter expression to render
4689
4852
  */
4690
- "expression"?: LimeQueryFilterExpression;
4853
+ "expression"?: Expression;
4691
4854
  /**
4692
4855
  * Optional label for the expression
4693
4856
  */
@@ -4697,9 +4860,49 @@ declare namespace LocalJSX {
4697
4860
  */
4698
4861
  "limetype"?: string;
4699
4862
  /**
4700
- * Emitted when the filter expression changes
4863
+ * Emitted when the filter expression changes Emits undefined when expression should be removed
4701
4864
  */
4702
- "onExpressionChange"?: (event: LimebbLimeQueryFilterExpressionCustomEvent<LimeQueryFilterExpression>) => void;
4865
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterExpressionCustomEvent<Expression | undefined>) => void;
4866
+ /**
4867
+ * Platform service provider
4868
+ */
4869
+ "platform"?: LimeWebComponentPlatform;
4870
+ }
4871
+ /**
4872
+ * Lime Query Filter Group Component
4873
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
4874
+ * Users can click the header to toggle between "All conditions" (AND) and
4875
+ * "Any condition" (OR).
4876
+ * This component displays:
4877
+ * - A clickable header showing the current logic (AND/OR)
4878
+ * - A list of child expressions (which can be comparisons or nested groups)
4879
+ * - An "Add" button to add more expressions
4880
+ * Clicking the header toggles between AND and OR logic.
4881
+ * If a child component emits an ExpressionChange event with undefined, the
4882
+ * child is removed from the group.
4883
+ * @private
4884
+ */
4885
+ interface LimebbLimeQueryFilterGroup {
4886
+ /**
4887
+ * The limetype of the active object (for %activeObject% placeholders)
4888
+ */
4889
+ "activeLimetype"?: string;
4890
+ /**
4891
+ * Component context
4892
+ */
4893
+ "context"?: LimeWebComponentContext;
4894
+ /**
4895
+ * The group expression (AND or OR)
4896
+ */
4897
+ "expression"?: AndOrExpression;
4898
+ /**
4899
+ * The limetype being queried (e.g., "deal", "company")
4900
+ */
4901
+ "limetype"?: string;
4902
+ /**
4903
+ * Emitted when the group expression changes Emits undefined when expression should be removed Can emit any Expression type when unwrapping (single child)
4904
+ */
4905
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterGroupCustomEvent<Expression | undefined>) => void;
4703
4906
  /**
4704
4907
  * Platform service provider
4705
4908
  */
@@ -4730,7 +4933,7 @@ declare namespace LocalJSX {
4730
4933
  /**
4731
4934
  * The NOT expression containing the child expression to negate
4732
4935
  */
4733
- "expression"?: LimeQueryFilterNot;
4936
+ "expression"?: NotExpression;
4734
4937
  /**
4735
4938
  * Optional label for the NOT expression
4736
4939
  */
@@ -4740,9 +4943,9 @@ declare namespace LocalJSX {
4740
4943
  */
4741
4944
  "limetype"?: string;
4742
4945
  /**
4743
- * Emitted when the NOT expression changes (child expression modified or removed)
4946
+ * Emitted when the NOT expression changes (child expression modified or removed) Emits undefined when the expression should be removed
4744
4947
  */
4745
- "onExpressionChange"?: (event: LimebbLimeQueryFilterNotCustomEvent<LimeQueryFilterNot | LimeQueryFilterMissing>) => void;
4948
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterNotCustomEvent<NotExpression | undefined>) => void;
4746
4949
  /**
4747
4950
  * Platform service provider
4748
4951
  */
@@ -4772,7 +4975,7 @@ declare namespace LocalJSX {
4772
4975
  /**
4773
4976
  * The OR expression containing child expressions
4774
4977
  */
4775
- "expression"?: LimeQueryFilterOr;
4978
+ "expression"?: AndOrExpression;
4776
4979
  /**
4777
4980
  * Optional label for the OR group
4778
4981
  */
@@ -4782,9 +4985,9 @@ declare namespace LocalJSX {
4782
4985
  */
4783
4986
  "limetype"?: string;
4784
4987
  /**
4785
- * Emitted when the OR expression changes (expressions added/removed/modified)
4988
+ * 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
4989
  */
4787
- "onExpressionChange"?: (event: LimebbLimeQueryFilterOrCustomEvent<LimeQueryFilterOr | LimeQueryFilterMissing>) => void;
4990
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterOrCustomEvent<Expression | undefined>) => void;
4788
4991
  /**
4789
4992
  * Platform service provider
4790
4993
  */
@@ -5690,8 +5893,10 @@ declare namespace LocalJSX {
5690
5893
  "limebb-kanban-item": LimebbKanbanItem;
5691
5894
  "limebb-lime-query-builder": LimebbLimeQueryBuilder;
5692
5895
  "limebb-lime-query-filter-and": LimebbLimeQueryFilterAnd;
5896
+ "limebb-lime-query-filter-builder": LimebbLimeQueryFilterBuilder;
5693
5897
  "limebb-lime-query-filter-comparison": LimebbLimeQueryFilterComparison;
5694
5898
  "limebb-lime-query-filter-expression": LimebbLimeQueryFilterExpression;
5899
+ "limebb-lime-query-filter-group": LimebbLimeQueryFilterGroup;
5695
5900
  "limebb-lime-query-filter-not": LimebbLimeQueryFilterNot;
5696
5901
  "limebb-lime-query-filter-or": LimebbLimeQueryFilterOr;
5697
5902
  "limebb-lime-query-value-input": LimebbLimeQueryValueInput;
@@ -6010,6 +6215,7 @@ declare module "@stencil/core" {
6010
6215
  * These placeholders reference properties of a contextual "active object"
6011
6216
  * (e.g., `%activeObject%.company` references the company of the active object).
6012
6217
  * @exampleComponent limebb-example-lime-query-builder-basic
6218
+ * @exampleComponent limebb-example-lime-query-builder-with-active-limetype
6013
6219
  * @private
6014
6220
  */
6015
6221
  "limebb-lime-query-builder": LocalJSX.LimebbLimeQueryBuilder & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryBuilderElement>;
@@ -6026,6 +6232,17 @@ declare module "@stencil/core" {
6026
6232
  * @private
6027
6233
  */
6028
6234
  "limebb-lime-query-filter-and": LocalJSX.LimebbLimeQueryFilterAnd & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterAndElement>;
6235
+ /**
6236
+ * Lime Query Filter Builder
6237
+ * Entry component for building Lime Query filter expressions.
6238
+ * This component wraps the expression router and adds promotion logic
6239
+ * for handling Add buttons and expression structure.
6240
+ * Unlike the expression router (which is pure routing), this component
6241
+ * contains business logic for promoting expressions and managing the
6242
+ * filter structure.
6243
+ * @private
6244
+ */
6245
+ "limebb-lime-query-filter-builder": LocalJSX.LimebbLimeQueryFilterBuilder & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterBuilderElement>;
6029
6246
  /**
6030
6247
  * Lime Query Filter Comparison Component
6031
6248
  * Renders a single comparison expression with three parts:
@@ -6047,18 +6264,29 @@ declare module "@stencil/core" {
6047
6264
  "limebb-lime-query-filter-comparison": LocalJSX.LimebbLimeQueryFilterComparison & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterComparisonElement>;
6048
6265
  /**
6049
6266
  * 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.
6267
+ * Router component for rendering Lime Query filter expressions.
6268
+ * Routes to the appropriate sub-component based on expression structure:
6269
+ * - Has `key` property → limebb-lime-query-filter-comparison
6270
+ * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
6271
+ * - `op: Operator.NOT` → limebb-lime-query-filter-not
6059
6272
  * @private
6060
6273
  */
6061
6274
  "limebb-lime-query-filter-expression": LocalJSX.LimebbLimeQueryFilterExpression & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterExpressionElement>;
6275
+ /**
6276
+ * Lime Query Filter Group Component
6277
+ * Renders a group of filter expressions with AND/OR logic that can be toggled.
6278
+ * Users can click the header to toggle between "All conditions" (AND) and
6279
+ * "Any condition" (OR).
6280
+ * This component displays:
6281
+ * - A clickable header showing the current logic (AND/OR)
6282
+ * - A list of child expressions (which can be comparisons or nested groups)
6283
+ * - An "Add" button to add more expressions
6284
+ * Clicking the header toggles between AND and OR logic.
6285
+ * If a child component emits an ExpressionChange event with undefined, the
6286
+ * child is removed from the group.
6287
+ * @private
6288
+ */
6289
+ "limebb-lime-query-filter-group": LocalJSX.LimebbLimeQueryFilterGroup & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterGroupElement>;
6062
6290
  /**
6063
6291
  * Lime Query Filter NOT Component
6064
6292
  * 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.100.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",