@limetech/lime-crm-building-blocks 1.130.0 → 1.131.1

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 (328) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/filter-group-logic-Bwk6B784.js +136 -0
  3. package/dist/cjs/{index-C_OnxXhP.js → index-dBY184XR.js} +12 -0
  4. package/dist/cjs/{index.esm-g8gOl7RV.js → index.esm-DcWSoSRE.js} +2 -2
  5. package/dist/cjs/lime-crm-building-blocks.cjs.js +2 -2
  6. package/dist/cjs/lime-query-operators-Ci-RNshi.js +65 -0
  7. package/dist/cjs/{lime-query-validation-DTurSvtv.js → lime-query-validation-nql4N6Z8.js} +1 -1
  8. package/dist/cjs/limebb-alert-dialog.cjs.entry.js +2 -2
  9. package/dist/cjs/limebb-browser.cjs.entry.js +4 -4
  10. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +6 -6
  11. package/dist/cjs/limebb-chat-list.cjs.entry.js +3 -3
  12. package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +2 -2
  13. package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +2 -2
  14. package/dist/cjs/limebb-component-config.cjs.entry.js +3 -3
  15. package/dist/cjs/limebb-component-picker.cjs.entry.js +3 -3
  16. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +4 -4
  17. package/dist/cjs/limebb-currency-picker.cjs.entry.js +3 -3
  18. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +2 -2
  19. package/dist/cjs/limebb-data-cells.cjs.entry.js +2 -2
  20. package/dist/cjs/limebb-date-picker.cjs.entry.js +3 -3
  21. package/dist/cjs/limebb-date-range.cjs.entry.js +2 -2
  22. package/dist/cjs/limebb-document-chips.cjs.entry.js +2 -2
  23. package/dist/cjs/limebb-document-item.cjs.entry.js +3 -3
  24. package/dist/cjs/limebb-document-picker.cjs.entry.js +2 -2
  25. package/dist/cjs/limebb-empty-state.cjs.entry.js +1 -1
  26. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +2 -2
  27. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +3 -3
  28. package/dist/cjs/limebb-feed.cjs.entry.js +3 -3
  29. package/dist/cjs/limebb-icon-picker.cjs.entry.js +2 -2
  30. package/dist/cjs/limebb-info-tile-currency-format.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-info-tile-date-format.cjs.entry.js +1 -1
  32. package/dist/cjs/limebb-info-tile-decimal-format.cjs.entry.js +1 -1
  33. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +2 -2
  34. package/dist/cjs/limebb-info-tile-relative-date-format.cjs.entry.js +1 -1
  35. package/dist/cjs/limebb-info-tile-unit-format.cjs.entry.js +1 -1
  36. package/dist/cjs/limebb-info-tile.cjs.entry.js +4 -4
  37. package/dist/cjs/limebb-kanban-group.cjs.entry.js +3 -3
  38. package/dist/cjs/limebb-kanban-item.cjs.entry.js +3 -3
  39. package/dist/cjs/limebb-kanban.cjs.entry.js +1 -1
  40. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +4 -4
  41. package/dist/cjs/limebb-lime-query-filter-builder.cjs.entry.js +4 -8
  42. package/dist/cjs/{limebb-lime-query-filter-group_3.cjs.entry.js → limebb-lime-query-filter-comparison-editor_4.cjs.entry.js} +158 -187
  43. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +83 -121
  44. package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +5 -5
  45. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +3 -3
  46. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +4 -4
  47. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +2 -2
  48. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +2 -2
  49. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +3 -3
  50. package/dist/cjs/limebb-loader.cjs.entry.js +2 -2
  51. package/dist/cjs/limebb-locale-picker.cjs.entry.js +3 -3
  52. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +3 -3
  53. package/dist/cjs/limebb-mention.cjs.entry.js +2 -2
  54. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  55. package/dist/cjs/limebb-notification-item.cjs.entry.js +3 -3
  56. package/dist/cjs/limebb-notification-list.cjs.entry.js +2 -2
  57. package/dist/cjs/limebb-object-chip.cjs.entry.js +3 -3
  58. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +4 -4
  59. package/dist/cjs/limebb-property-selector.cjs.entry.js +42 -19
  60. package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +2 -2
  61. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +4 -4
  62. package/dist/cjs/limebb-rule-editor.cjs.entry.js +4 -4
  63. package/dist/cjs/limebb-rule-gate.cjs.entry.js +3 -3
  64. package/dist/cjs/limebb-text-editor-picker.cjs.entry.js +1 -1
  65. package/dist/cjs/limebb-text-editor.cjs.entry.js +4 -4
  66. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +3 -3
  67. package/dist/cjs/{limetype-DJNXULgk.js → limetype-CNjUGemK.js} +1 -1
  68. package/dist/cjs/loader.cjs.js +2 -2
  69. package/dist/cjs/{web-component-template-BWCutZB6.js → web-component-template-CZ0lPHIg.js} +1 -1
  70. package/dist/collection/collection-manifest.json +1 -0
  71. package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
  72. package/dist/collection/components/browser/browser.js +2 -2
  73. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  74. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  75. package/dist/collection/components/chat-list/chat-list.js +1 -1
  76. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  77. package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
  78. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
  79. package/dist/collection/components/component-command-picker/component-picker/component-picker.js +1 -1
  80. package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
  81. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  82. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  83. package/dist/collection/components/date-picker/date-picker.js +1 -1
  84. package/dist/collection/components/date-range/date-range.js +1 -1
  85. package/dist/collection/components/document-chips/document-chips.js +1 -1
  86. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  87. package/dist/collection/components/document-picker/document-picker.js +1 -1
  88. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  89. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  90. package/dist/collection/components/feed/feed.js +1 -1
  91. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  92. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  93. package/dist/collection/components/info-tile/info-tile.js +1 -1
  94. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  95. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  96. package/dist/collection/components/lime-query-builder/expressions/filter-group-logic.js +75 -72
  97. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.js +2 -6
  98. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.css +12 -0
  99. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +231 -0
  100. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.css +2 -17
  101. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +91 -118
  102. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +9 -14
  103. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +105 -179
  104. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +93 -94
  105. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  106. package/dist/collection/components/lime-query-builder/expressions/lime-query-operators.js +60 -0
  107. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  108. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  109. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  110. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  111. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  112. package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +39 -16
  113. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  114. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  115. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  116. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  117. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  118. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +1 -1
  119. package/dist/collection/components/rule-editor/rule-editor.css +1 -0
  120. package/dist/collection/components/rule-editor/rule-editor.js +1 -1
  121. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  122. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  123. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  124. package/dist/collection/components/text-editor/text-editor.js +1 -1
  125. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  126. package/dist/components/chat-icon-list.js +1 -1
  127. package/dist/components/chat-item.js +1 -1
  128. package/dist/components/currency-picker.js +1 -1
  129. package/dist/components/date-picker.js +1 -1
  130. package/dist/components/document-item.js +1 -1
  131. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  132. package/dist/components/feed-timeline-item.js +1 -1
  133. package/dist/components/kanban-group.js +1 -1
  134. package/dist/components/kanban-item.js +1 -1
  135. package/dist/components/lime-query-filter-builder.js +1 -1
  136. package/dist/components/lime-query-filter-comparison-editor.js +1 -0
  137. package/dist/components/lime-query-filter-comparison.js +1 -1
  138. package/dist/components/lime-query-filter-expression.js +1 -1
  139. package/dist/components/limebb-alert-dialog.js +1 -1
  140. package/dist/components/limebb-browser.js +1 -1
  141. package/dist/components/limebb-chat-list.js +1 -1
  142. package/dist/components/limebb-color-palette-picker.js +1 -1
  143. package/dist/components/limebb-color-palette-swatches.js +1 -1
  144. package/dist/components/limebb-component-picker.js +1 -1
  145. package/dist/components/limebb-composer-toolbar.js +1 -1
  146. package/dist/components/limebb-dashboard-widget.js +1 -1
  147. package/dist/components/limebb-date-range.js +1 -1
  148. package/dist/components/limebb-document-chips.js +1 -1
  149. package/dist/components/limebb-document-picker.js +1 -1
  150. package/dist/components/limebb-feed.js +1 -1
  151. package/dist/components/limebb-icon-picker.js +1 -1
  152. package/dist/components/limebb-info-tile-format.js +1 -1
  153. package/dist/components/limebb-info-tile.js +1 -1
  154. package/dist/components/limebb-lime-query-builder.js +1 -1
  155. package/dist/components/limebb-lime-query-filter-comparison-editor.d.ts +11 -0
  156. package/dist/components/limebb-lime-query-filter-comparison-editor.js +1 -0
  157. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  158. package/dist/components/limebb-locale-picker.js +1 -1
  159. package/dist/components/limebb-mention-group-counter.js +1 -1
  160. package/dist/components/limebb-rule-arg-filter-editor.js +1 -1
  161. package/dist/components/limebb-rule-editor.js +1 -1
  162. package/dist/components/limebb-rule-gate.js +1 -1
  163. package/dist/components/limebb-text-editor.js +1 -1
  164. package/dist/components/limebb-trend-indicator.js +1 -1
  165. package/dist/components/limetype-field.js +1 -1
  166. package/dist/components/live-docs-info.js +1 -1
  167. package/dist/components/notification-item.js +1 -1
  168. package/dist/components/order-by-editor.js +1 -1
  169. package/dist/components/order-by-item.js +1 -1
  170. package/dist/components/percentage-visualizer.js +1 -1
  171. package/dist/components/property-selector.js +1 -1
  172. package/dist/components/response-format-item.js +1 -1
  173. package/dist/components/rule-chip-popover.js +1 -1
  174. package/dist/components/summary-popover.js +1 -1
  175. package/dist/components/typing-indicator.js +1 -1
  176. package/dist/esm/filter-group-logic-RXn-GGk1.js +126 -0
  177. package/dist/esm/{index-BIwHMk6j.js → index-DYpn0EkA.js} +12 -0
  178. package/dist/esm/{index.esm-CJU4N9K8.js → index.esm-DAe4_MLR.js} +1 -1
  179. package/dist/esm/lime-crm-building-blocks.js +3 -3
  180. package/dist/esm/lime-query-operators-DYlN1dAt.js +63 -0
  181. package/dist/esm/{lime-query-validation-COGfPUFN.js → lime-query-validation-DXxPZ2CH.js} +1 -1
  182. package/dist/esm/limebb-alert-dialog.entry.js +2 -2
  183. package/dist/esm/limebb-browser.entry.js +4 -4
  184. package/dist/esm/limebb-chat-icon-list_3.entry.js +6 -6
  185. package/dist/esm/limebb-chat-list.entry.js +3 -3
  186. package/dist/esm/limebb-color-palette-picker.entry.js +2 -2
  187. package/dist/esm/limebb-color-palette-swatches.entry.js +2 -2
  188. package/dist/esm/limebb-component-config.entry.js +3 -3
  189. package/dist/esm/limebb-component-picker.entry.js +3 -3
  190. package/dist/esm/limebb-composer-toolbar.entry.js +4 -4
  191. package/dist/esm/limebb-currency-picker.entry.js +3 -3
  192. package/dist/esm/limebb-dashboard-widget.entry.js +2 -2
  193. package/dist/esm/limebb-data-cells.entry.js +2 -2
  194. package/dist/esm/limebb-date-picker.entry.js +3 -3
  195. package/dist/esm/limebb-date-range.entry.js +2 -2
  196. package/dist/esm/limebb-document-chips.entry.js +2 -2
  197. package/dist/esm/limebb-document-item.entry.js +3 -3
  198. package/dist/esm/limebb-document-picker.entry.js +2 -2
  199. package/dist/esm/limebb-empty-state.entry.js +1 -1
  200. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +2 -2
  201. package/dist/esm/limebb-feed-timeline-item.entry.js +3 -3
  202. package/dist/esm/limebb-feed.entry.js +3 -3
  203. package/dist/esm/limebb-icon-picker.entry.js +2 -2
  204. package/dist/esm/limebb-info-tile-currency-format.entry.js +1 -1
  205. package/dist/esm/limebb-info-tile-date-format.entry.js +1 -1
  206. package/dist/esm/limebb-info-tile-decimal-format.entry.js +1 -1
  207. package/dist/esm/limebb-info-tile-format.entry.js +2 -2
  208. package/dist/esm/limebb-info-tile-relative-date-format.entry.js +1 -1
  209. package/dist/esm/limebb-info-tile-unit-format.entry.js +1 -1
  210. package/dist/esm/limebb-info-tile.entry.js +4 -4
  211. package/dist/esm/limebb-kanban-group.entry.js +3 -3
  212. package/dist/esm/limebb-kanban-item.entry.js +3 -3
  213. package/dist/esm/limebb-kanban.entry.js +1 -1
  214. package/dist/esm/limebb-lime-query-builder.entry.js +4 -4
  215. package/dist/esm/limebb-lime-query-filter-builder.entry.js +4 -8
  216. package/dist/esm/{limebb-lime-query-filter-group_3.entry.js → limebb-lime-query-filter-comparison-editor_4.entry.js} +158 -188
  217. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +83 -121
  218. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +5 -5
  219. package/dist/esm/limebb-lime-query-order-by-item.entry.js +3 -3
  220. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +4 -4
  221. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +2 -2
  222. package/dist/esm/limebb-limeobject-file-viewer.entry.js +2 -2
  223. package/dist/esm/limebb-live-docs-info.entry.js +3 -3
  224. package/dist/esm/limebb-loader.entry.js +2 -2
  225. package/dist/esm/limebb-locale-picker.entry.js +3 -3
  226. package/dist/esm/limebb-mention-group-counter.entry.js +3 -3
  227. package/dist/esm/limebb-mention.entry.js +2 -2
  228. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  229. package/dist/esm/limebb-notification-item.entry.js +3 -3
  230. package/dist/esm/limebb-notification-list.entry.js +2 -2
  231. package/dist/esm/limebb-object-chip.entry.js +3 -3
  232. package/dist/esm/limebb-percentage-visualizer.entry.js +4 -4
  233. package/dist/esm/limebb-property-selector.entry.js +42 -19
  234. package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
  235. package/dist/esm/limebb-rule-chip-popover.entry.js +4 -4
  236. package/dist/esm/limebb-rule-editor.entry.js +4 -4
  237. package/dist/esm/limebb-rule-gate.entry.js +3 -3
  238. package/dist/esm/limebb-text-editor-picker.entry.js +1 -1
  239. package/dist/esm/limebb-text-editor.entry.js +4 -4
  240. package/dist/esm/limebb-trend-indicator.entry.js +3 -3
  241. package/dist/esm/{limetype-Dc4uQPMG.js → limetype-C1wEJnPI.js} +1 -1
  242. package/dist/esm/loader.js +3 -3
  243. package/dist/esm/{web-component-template-6zRYia86.js → web-component-template-D6zkEjKN.js} +1 -1
  244. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  245. package/dist/lime-crm-building-blocks/p-072756ea.entry.js +1 -0
  246. package/dist/lime-crm-building-blocks/{p-32c3789e.entry.js → p-07ef2fd0.entry.js} +1 -1
  247. package/dist/lime-crm-building-blocks/{p-c609b5ec.entry.js → p-0ba1294a.entry.js} +1 -1
  248. package/dist/lime-crm-building-blocks/{p-7fee7ef3.entry.js → p-0fac2307.entry.js} +1 -1
  249. package/dist/lime-crm-building-blocks/{p-97e6712f.entry.js → p-16fa6f3e.entry.js} +1 -1
  250. package/dist/lime-crm-building-blocks/{p-0c572fe9.entry.js → p-18ce3ce5.entry.js} +1 -1
  251. package/dist/lime-crm-building-blocks/p-1dfdf045.entry.js +1 -0
  252. package/dist/lime-crm-building-blocks/{p-20206710.entry.js → p-22296e19.entry.js} +1 -1
  253. package/dist/lime-crm-building-blocks/{p-1747221f.entry.js → p-24337de2.entry.js} +1 -1
  254. package/dist/lime-crm-building-blocks/{p-de6f4670.entry.js → p-3996a598.entry.js} +1 -1
  255. package/dist/lime-crm-building-blocks/{p-d2a01f51.entry.js → p-3bff70d2.entry.js} +1 -1
  256. package/dist/lime-crm-building-blocks/{p-7c96b265.entry.js → p-3c437049.entry.js} +1 -1
  257. package/dist/lime-crm-building-blocks/{p-3a112b17.entry.js → p-43af24b5.entry.js} +1 -1
  258. package/dist/lime-crm-building-blocks/{p-2cb31064.entry.js → p-464b02c2.entry.js} +1 -1
  259. package/dist/lime-crm-building-blocks/{p-02565865.entry.js → p-47a7b3fd.entry.js} +1 -1
  260. package/dist/lime-crm-building-blocks/{p-e6083593.entry.js → p-4c10bea0.entry.js} +1 -1
  261. package/dist/lime-crm-building-blocks/{p-e7a10082.entry.js → p-4e0d077b.entry.js} +1 -1
  262. package/dist/lime-crm-building-blocks/{p-25d8a718.entry.js → p-5006c5ea.entry.js} +1 -1
  263. package/dist/lime-crm-building-blocks/{p-c678f22f.entry.js → p-52c07130.entry.js} +1 -1
  264. package/dist/lime-crm-building-blocks/{p-492b1b0c.entry.js → p-55692241.entry.js} +1 -1
  265. package/dist/lime-crm-building-blocks/{p-b2383e7f.entry.js → p-5573a867.entry.js} +1 -1
  266. package/dist/lime-crm-building-blocks/{p-bec4231f.entry.js → p-563d69ff.entry.js} +1 -1
  267. package/dist/lime-crm-building-blocks/p-56bb13b2.entry.js +1 -0
  268. package/dist/lime-crm-building-blocks/{p-32f8477f.entry.js → p-571777c3.entry.js} +1 -1
  269. package/dist/lime-crm-building-blocks/{p-4446f170.entry.js → p-58e63c29.entry.js} +1 -1
  270. package/dist/lime-crm-building-blocks/{p-31d8f414.entry.js → p-5a718d20.entry.js} +1 -1
  271. package/dist/lime-crm-building-blocks/{p-9c27e558.entry.js → p-5eef1781.entry.js} +1 -1
  272. package/dist/lime-crm-building-blocks/{p-861ac606.entry.js → p-603ab702.entry.js} +1 -1
  273. package/dist/lime-crm-building-blocks/{p-3252e153.entry.js → p-661e4700.entry.js} +1 -1
  274. package/dist/lime-crm-building-blocks/{p-184ae23d.entry.js → p-68a951f5.entry.js} +1 -1
  275. package/dist/lime-crm-building-blocks/{p-ed1e7e34.entry.js → p-692084d2.entry.js} +1 -1
  276. package/dist/lime-crm-building-blocks/{p-1428aa13.entry.js → p-6ee28dfc.entry.js} +1 -1
  277. package/dist/lime-crm-building-blocks/{p-fdd236ff.entry.js → p-725e6748.entry.js} +1 -1
  278. package/dist/lime-crm-building-blocks/{p-c394c1f6.entry.js → p-7a4704dc.entry.js} +1 -1
  279. package/dist/lime-crm-building-blocks/{p-48c2b617.entry.js → p-7b9359cc.entry.js} +1 -1
  280. package/dist/lime-crm-building-blocks/{p-6ff38954.entry.js → p-7d969bbe.entry.js} +1 -1
  281. package/dist/lime-crm-building-blocks/{p-eb8d58ab.entry.js → p-7f5c97fe.entry.js} +1 -1
  282. package/dist/lime-crm-building-blocks/{p-6cceabf1.entry.js → p-81655182.entry.js} +1 -1
  283. package/dist/lime-crm-building-blocks/p-8238723b.entry.js +1 -0
  284. package/dist/lime-crm-building-blocks/{p-2a3098a7.entry.js → p-898b097e.entry.js} +1 -1
  285. package/dist/lime-crm-building-blocks/{p-46c00a4b.entry.js → p-8d14a58a.entry.js} +1 -1
  286. package/dist/lime-crm-building-blocks/{p-48deac2a.entry.js → p-8d5311e4.entry.js} +1 -1
  287. package/dist/lime-crm-building-blocks/{p-08eb070d.entry.js → p-8ed7b025.entry.js} +1 -1
  288. package/dist/lime-crm-building-blocks/p-99464fa7.entry.js +1 -0
  289. package/dist/lime-crm-building-blocks/{p-C_tMNOSt.js → p-BKtEmDNs.js} +1 -1
  290. package/dist/lime-crm-building-blocks/{p-BV8CPdbi.js → p-BbFGcMnU.js} +1 -1
  291. package/dist/lime-crm-building-blocks/{p-C84z8BwL.js → p-CqRNpSRV.js} +1 -1
  292. package/dist/lime-crm-building-blocks/p-D3UYWGdn.js +1 -0
  293. package/dist/lime-crm-building-blocks/p-DYpn0EkA.js +2 -0
  294. package/dist/lime-crm-building-blocks/{p-BsNp-hBU.js → p-DzXJyKRS.js} +1 -1
  295. package/dist/lime-crm-building-blocks/{p-d910699a.entry.js → p-a5850f04.entry.js} +1 -1
  296. package/dist/lime-crm-building-blocks/{p-8d3fa274.entry.js → p-a6103d04.entry.js} +1 -1
  297. package/dist/lime-crm-building-blocks/{p-b24b7338.entry.js → p-b01f2045.entry.js} +1 -1
  298. package/dist/lime-crm-building-blocks/{p-731820f0.entry.js → p-b16bbda2.entry.js} +1 -1
  299. package/dist/lime-crm-building-blocks/{p-dabb227b.entry.js → p-b424f55f.entry.js} +1 -1
  300. package/dist/lime-crm-building-blocks/{p-f1d9e133.entry.js → p-b95b94b6.entry.js} +1 -1
  301. package/dist/lime-crm-building-blocks/{p-2a46f4be.entry.js → p-bd264cfa.entry.js} +1 -1
  302. package/dist/lime-crm-building-blocks/{p-9e5862de.entry.js → p-c7c5991f.entry.js} +1 -1
  303. package/dist/lime-crm-building-blocks/{p-c9003b76.entry.js → p-dc1d543d.entry.js} +1 -1
  304. package/dist/lime-crm-building-blocks/{p-e4fe45d3.entry.js → p-dc3a86f3.entry.js} +1 -1
  305. package/dist/lime-crm-building-blocks/p-ec335be5.entry.js +1 -0
  306. package/dist/lime-crm-building-blocks/{p-5743a74e.entry.js → p-ecd0280d.entry.js} +1 -1
  307. package/dist/lime-crm-building-blocks/p-efab4f7e.entry.js +1 -0
  308. package/dist/lime-crm-building-blocks/{p-9f7992b0.entry.js → p-efb70fbb.entry.js} +1 -1
  309. package/dist/lime-crm-building-blocks/{p-3263f8d5.entry.js → p-f011673a.entry.js} +1 -1
  310. package/dist/lime-crm-building-blocks/p-y_s8hZmV.js +1 -0
  311. package/dist/types/components/lime-query-builder/expressions/filter-group-logic.d.ts +56 -54
  312. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.d.ts +29 -0
  313. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +12 -9
  314. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +4 -0
  315. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +14 -30
  316. package/dist/types/components/lime-query-builder/expressions/lime-query-operators.d.ts +12 -0
  317. package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +1 -0
  318. package/dist/types/components.d.ts +106 -47
  319. package/package.json +1 -1
  320. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +0 -137
  321. package/dist/lime-crm-building-blocks/p-34eb61da.entry.js +0 -1
  322. package/dist/lime-crm-building-blocks/p-6002654f.entry.js +0 -1
  323. package/dist/lime-crm-building-blocks/p-7acd06eb.entry.js +0 -1
  324. package/dist/lime-crm-building-blocks/p-89b43ac5.entry.js +0 -1
  325. package/dist/lime-crm-building-blocks/p-BIwHMk6j.js +0 -2
  326. package/dist/lime-crm-building-blocks/p-a3556715.entry.js +0 -1
  327. package/dist/lime-crm-building-blocks/p-c6a913af.entry.js +0 -1
  328. package/dist/lime-crm-building-blocks/p-c6fee2bd.entry.js +0 -1
@@ -1,108 +1,112 @@
1
- import { h, Host, } from "@stencil/core";
1
+ import { h, Host } from "@stencil/core";
2
2
  import { Operator, } from "@limetech/lime-web-components";
3
- import { addExpressionToGroup, createEmptyComparison, createNestedGroup, getFilterGroupSubheading, toggleGroupOperator, updateChildExpression, } from "./filter-group-logic";
3
+ import { addExpressionToGroup, createEmptyComparison, createNestedGroup, getCombinator, getInnerAndOr, setCombinator, updateChildExpression, } from "./filter-group-logic";
4
+ const OP_STYLE = {
5
+ AND: {
6
+ color: 'rgb(var(--contrast-900))',
7
+ iconName: 'dot_circle',
8
+ text: 'All of',
9
+ secondaryText: 'True when every condition is true',
10
+ },
11
+ OR: {
12
+ color: 'rgb(var(--color-sky-default))',
13
+ iconName: 'centre_point',
14
+ text: 'Any of',
15
+ secondaryText: 'True when at least one condition is true',
16
+ },
17
+ NOT_AND: {
18
+ color: 'rgb(var(--color-orange-default))',
19
+ iconName: 'dot_circle',
20
+ text: 'Not all of',
21
+ secondaryText: 'True when at least one condition is false',
22
+ },
23
+ NOT_OR: {
24
+ color: 'rgb(var(--color-red-default))',
25
+ iconName: 'centre_point',
26
+ text: 'None of',
27
+ secondaryText: 'True when every condition is false',
28
+ },
29
+ };
30
+ const COMBINATOR_OPTIONS = ['AND', 'OR', 'NOT_AND', 'NOT_OR'].map((value) => ({
31
+ text: OP_STYLE[value].text,
32
+ secondaryText: OP_STYLE[value].secondaryText,
33
+ value,
34
+ icon: { name: OP_STYLE[value].iconName, color: OP_STYLE[value].color },
35
+ }));
4
36
  /**
5
37
  * Lime Query Filter Group Component
6
38
  *
7
- * Renders a group of filter expressions with AND/OR logic that can be toggled.
8
- * Users can click the header to toggle between "All conditions" (AND) and
9
- * "Any condition" (OR).
10
- *
11
- * This component displays:
12
- * - A clickable header showing the current logic (AND/OR)
13
- * - A list of child expressions (which can be comparisons or nested groups)
14
- * - An "Add" button to add more expressions
15
- *
16
- * Clicking the header toggles between AND and OR logic.
17
- * If a child component emits an ExpressionChange event with undefined, the
18
- * child is removed from the group.
39
+ * Renders a group of filter expressions with a combinator picker that selects
40
+ * between All, Any, Not all, and Not any. The first two map to a bare AND/OR
41
+ * group; the latter two wrap the same group in a NOT expression. Choosing a
42
+ * value re-shapes the group, preserving all children.
19
43
  *
20
44
  * @private
21
45
  */
22
46
  export class LimeQueryFilterGroupComponent {
23
47
  constructor() {
24
- this.options = [
25
- {
26
- text: 'All',
27
- secondaryText: 'AND operator',
28
- value: 'and',
29
- },
30
- {
31
- text: 'Any',
32
- secondaryText: 'OR operator',
33
- value: 'or',
34
- },
35
- ];
36
- this.renderChildExpression = (expression, childIndex) => (h("limebb-lime-query-filter-expression", { role: "listitem", platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleExpressionChange(childIndex) }));
48
+ this.renderChildExpression = (expression, childIndex) => (h("li", { class: "row" }, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleChildExpressionChange(childIndex) })));
49
+ this.handleCombinatorChange = (event) => {
50
+ event.stopPropagation();
51
+ const next = event.detail.value;
52
+ if (!next || next === getCombinator(this.expression)) {
53
+ return;
54
+ }
55
+ this.expressionChange.emit(setCombinator(this.expression, next));
56
+ };
37
57
  this.handleDeleteGroup = () => {
38
58
  this.expressionChange.emit();
39
59
  };
40
- this.handleToggleOperator = (event) => {
41
- const selectedOption = Array.isArray(event.detail)
42
- ? event.detail[0]
43
- : event.detail;
44
- this.value = selectedOption;
45
- const newOp = selectedOption.value === 'and' ? Operator.AND : Operator.OR;
46
- if (newOp !== this.expression.op) {
47
- const newGroup = toggleGroupOperator(this.expression);
48
- this.expressionChange.emit(newGroup);
49
- }
50
- };
51
60
  this.handleAddChildExpression = () => {
52
- const newChild = createEmptyComparison();
53
- const newGroup = addExpressionToGroup(this.expression, newChild);
54
- this.expressionChange.emit(newGroup);
61
+ const inner = getInnerAndOr(this.expression);
62
+ const updatedInner = addExpressionToGroup(inner, createEmptyComparison());
63
+ this.expressionChange.emit(this.wrap(updatedInner));
55
64
  };
56
65
  this.handleAddChildGroup = () => {
57
- const newChild = createNestedGroup(this.expression.op);
58
- const newGroup = addExpressionToGroup(this.expression, newChild);
59
- this.expressionChange.emit(newGroup);
66
+ const inner = getInnerAndOr(this.expression);
67
+ const newChild = createNestedGroup(inner.op);
68
+ const updatedInner = addExpressionToGroup(inner, newChild);
69
+ this.expressionChange.emit(this.wrap(updatedInner));
60
70
  };
61
- this.handleExpressionChange = (updatedChildIndex) => (event) => {
71
+ this.handleChildExpressionChange = (childIndex) => (event) => {
62
72
  event.stopPropagation();
63
- const updatedExpression = event.detail;
64
- const result = updateChildExpression(this.expression, updatedChildIndex, updatedExpression);
73
+ const inner = getInnerAndOr(this.expression);
74
+ const result = updateChildExpression(inner, childIndex, event.detail);
75
+ if (result.type === 'removed') {
76
+ this.expressionChange.emit(undefined);
77
+ return;
78
+ }
79
+ if (this.isNegated) {
80
+ this.expressionChange.emit({
81
+ op: Operator.NOT,
82
+ exp: result.expression,
83
+ });
84
+ return;
85
+ }
65
86
  this.expressionChange.emit(result.expression);
66
87
  };
67
88
  }
68
- // Initialize value to match current operator
69
- componentWillLoad() {
70
- this.value =
71
- this.options.find((option) => option.value ===
72
- (this.expression.op === Operator.AND ? 'and' : 'or')) || this.options[0];
73
- }
74
89
  render() {
75
- return (h(Host, { key: '4b1647c741b78253b4ce4ed1bd347800da394563', style: {
76
- '--limebb-lime-query-filter-group-operator': `"${this.expression.op === Operator.AND ? 'AND' : 'OR'}"`,
77
- } }, h("div", { key: '47fd3000275e17ef70d86af5e6abcb492806ffba', class: "expression" }, this.renderHeader(), h("ul", { key: '224249a4b305eb2b20c1aedad98d2c3191d47e83' }, this.expression.exp.map(this.renderChildExpression), this.renderAddButton()), this.renderAddGroupButton())));
78
- }
79
- renderHeader() {
80
- const subheading = this.getSubheading();
81
- if (!subheading) {
82
- return null;
83
- }
84
- return (h("limel-header", { subheading: subheading }, this.renderOperators(), this.renderDeleteGroupButton()));
85
- }
86
- renderOperators() {
87
- return (h("limel-select", { class: "operator-select", slot: "actions", value: this.value, options: this.options, onChange: this.handleToggleOperator }));
88
- }
89
- renderDeleteGroupButton() {
90
- return (h("limel-icon-button", { class: "delete-group", slot: "actions", icon: "trash", label: "Delete This Group", onClick: this.handleDeleteGroup }));
91
- }
92
- getSubheading() {
93
- return getFilterGroupSubheading(this.expression.op, this.expression.exp.length);
94
- }
95
- renderAddButton() {
96
- return (h("limel-button", { role: "listitem", label: "Condition", icon: {
90
+ const combinator = getCombinator(this.expression);
91
+ const inner = getInnerAndOr(this.expression);
92
+ const selected = COMBINATOR_OPTIONS.find((o) => o.value === combinator);
93
+ return (h(Host, { key: 'c9ca20c6b893416088807266fede19e5a24e360d', "data-op": combinator, style: {
94
+ '--limebb-query-filter-group-color-code': OP_STYLE[combinator].color,
95
+ } }, h("div", { key: '8efe9e6e4d1ba552b8a761ec23b18668a1aef7f3', class: "group" }, h("div", { key: 'e99bb85a9532431a63ce0916dc4882a2f73d2307', class: "group-header" }, h("limel-select", { key: '981fd5c1d4755ef937451144245640228ed515a9', class: "combinator", label: "Match", value: selected, options: COMBINATOR_OPTIONS, onChange: this.handleCombinatorChange }), h("limel-icon-button", { key: 'caa427e897501a12a98a370c4d2364564904c042', class: "delete-group", icon: "trash", label: "Delete this group", onClick: this.handleDeleteGroup })), h("ul", { key: '8a21efdd1d783b11bb00f39c3579eec7277a505e', class: "rows" }, inner.exp.map(this.renderChildExpression), h("limel-chip", { key: 'b4612f1899060f2f553283cc7afac53777b0c1ef', role: "listitem", class: "add-condition", text: "Condition", icon: { name: 'plus_math', title: 'Add' }, onClick: this.handleAddChildExpression })), h("limel-chip", { key: '7046abfe1929fa13f4de3e90285610280467fd76', class: "add-group", size: "small", text: "Group", icon: {
97
96
  name: 'plus_math',
98
97
  title: 'Add',
99
- }, onClick: this.handleAddChildExpression }));
98
+ color: 'var(--group-rail-color)',
99
+ }, onClick: this.handleAddChildGroup }))));
100
100
  }
101
- renderAddGroupButton() {
102
- return (h("limel-button", { class: "add-group", label: "Group", icon: {
103
- name: 'plus_math',
104
- title: 'Add',
105
- }, onClick: this.handleAddChildGroup }));
101
+ get isNegated() {
102
+ return this.expression.op === Operator.NOT;
103
+ }
104
+ wrap(inner) {
105
+ if (this.isNegated) {
106
+ const wrapped = { op: Operator.NOT, exp: inner };
107
+ return wrapped;
108
+ }
109
+ return inner;
106
110
  }
107
111
  static get is() { return "limebb-lime-query-filter-group"; }
108
112
  static get encapsulation() { return "shadow"; }
@@ -208,14 +212,14 @@ export class LimeQueryFilterGroupComponent {
208
212
  "type": "unknown",
209
213
  "mutable": false,
210
214
  "complexType": {
211
- "original": "AndOrExpression",
212
- "resolved": "{ op: Operator.AND | Operator.OR; exp: Expression[]; }",
215
+ "original": "GroupExpression",
216
+ "resolved": "{ op: Operator.AND | Operator.OR; exp: Expression[]; } | { op: Operator.NOT; exp: AndOrExpression; }",
213
217
  "references": {
214
- "AndOrExpression": {
218
+ "GroupExpression": {
215
219
  "location": "import",
216
- "path": "@limetech/lime-web-components",
217
- "id": "node_modules::AndOrExpression",
218
- "referenceLocation": "AndOrExpression"
220
+ "path": "./filter-group-logic",
221
+ "id": "src/components/lime-query-builder/expressions/filter-group-logic.ts::GroupExpression",
222
+ "referenceLocation": "GroupExpression"
219
223
  }
220
224
  }
221
225
  },
@@ -223,18 +227,13 @@ export class LimeQueryFilterGroupComponent {
223
227
  "optional": false,
224
228
  "docs": {
225
229
  "tags": [],
226
- "text": "The group expression (AND or OR)"
230
+ "text": "The group expression: an AND/OR group, optionally wrapped in NOT"
227
231
  },
228
232
  "getter": false,
229
233
  "setter": false
230
234
  }
231
235
  };
232
236
  }
233
- static get states() {
234
- return {
235
- "value": {}
236
- };
237
- }
238
237
  static get events() {
239
238
  return [{
240
239
  "method": "expressionChange",
@@ -244,7 +243,7 @@ export class LimeQueryFilterGroupComponent {
244
243
  "composed": true,
245
244
  "docs": {
246
245
  "tags": [],
247
- "text": "Emitted when the group expression changes\nEmits undefined when expression should be removed\nCan emit any Expression type when unwrapping (single child)"
246
+ "text": "Emitted when the group expression changes.\nEmits undefined when the group itself should be removed."
248
247
  },
249
248
  "complexType": {
250
249
  "original": "Expression | undefined",
@@ -35,7 +35,7 @@ export class LimeQueryFilterNotComponent {
35
35
  };
36
36
  }
37
37
  render() {
38
- return (h("div", { key: '16246e10be820ad18713cb097146040d30e242bf', class: "expression" }, this.label && h("limel-header", { key: '539d60a4567727282463dec2a90e06a3630501aa', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '67f892704ea3e5a061acdcb8f3ffe22271971569', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
38
+ return (h("div", { key: '30b9f2fbe27c8277633ef02fbebbafb227387ed8', class: "expression" }, this.label && h("limel-header", { key: '05b193ac0ec191b1f9394ed48691c24e534ba66c', heading: this.label }), h("limebb-lime-query-filter-expression", { key: '83b6a42631b886735502a8ec6454f5e9c868cc4c', platform: this.platform, context: this.context, label: "Not", limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression.exp, onExpressionChange: this.handleExpressionChange })));
39
39
  }
40
40
  static get is() { return "limebb-lime-query-filter-not"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,60 @@
1
+ import { Operator, } from "@limetech/lime-web-components";
2
+ export const LIME_QUERY_OPERATORS = [
3
+ {
4
+ value: Operator.EQUALS,
5
+ label: 'webclient.operator.equals',
6
+ icon: '-lime-filter-equal',
7
+ },
8
+ {
9
+ value: Operator.NOT_EQUALS,
10
+ label: 'webclient.operator.not-equals',
11
+ icon: '-lime-filter-equal-not',
12
+ },
13
+ {
14
+ value: Operator.GREATER,
15
+ label: 'webclient.operator.greater-than',
16
+ icon: '-lime-filter-greater',
17
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
18
+ },
19
+ {
20
+ value: Operator.GREATER_OR_EQUAL,
21
+ label: 'webclient.operator.greater-than-or-equal-to',
22
+ icon: '-lime-filter-greater-equal',
23
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
24
+ },
25
+ {
26
+ value: Operator.LESS,
27
+ label: 'webclient.operator.less-than',
28
+ icon: '-lime-filter-less',
29
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
30
+ },
31
+ {
32
+ value: Operator.LESS_OR_EQUAL,
33
+ label: 'webclient.operator.less-than-or-equal-to',
34
+ icon: '-lime-filter-less-equal',
35
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
36
+ },
37
+ {
38
+ value: Operator.IN,
39
+ label: 'webclient.operator.in-filter',
40
+ icon: '-lime-filter-set-included',
41
+ },
42
+ {
43
+ value: Operator.LIKE,
44
+ label: 'webclient.operator.contains',
45
+ icon: '-lime-filter-contain',
46
+ applicableTypes: ['string', 'text'],
47
+ },
48
+ {
49
+ value: Operator.BEGINS,
50
+ label: 'webclient.operator.begins-with',
51
+ icon: '-lime-filter-starts-with',
52
+ applicableTypes: ['string', 'text'],
53
+ },
54
+ {
55
+ value: Operator.ENDS,
56
+ label: 'webclient.operator.ends-with',
57
+ icon: '-lime-filter-ends-with',
58
+ applicableTypes: ['string', 'text'],
59
+ },
60
+ ];
@@ -172,7 +172,7 @@ export class LimeQueryBuilder {
172
172
  }
173
173
  }
174
174
  render() {
175
- return (h(Host, { key: '9a121529165f1691e32b2b156b128977c5b5ba3a' }, this.renderHeader(), this.renderContent()));
175
+ return (h(Host, { key: '08917b4c102db24180be24f392067ba5ec14569f' }, this.renderHeader(), this.renderContent()));
176
176
  }
177
177
  renderContent() {
178
178
  const visualModeSupported = this.checkVisualModeSupport();
@@ -154,7 +154,7 @@ export class LimeQueryResponseFormatBuilder {
154
154
  }
155
155
  render() {
156
156
  const visualModeSupported = this.checkVisualModeSupport();
157
- return (h("div", { key: '65a41f46fe1088f0d52be0337c427177a1aa1a44', class: "response-format-builder" }, this.label && h("h1", { key: '5a75e321aee3ff6753baccbd72d17c5377f28d28', class: "builder-label" }, this.label), this.helperText && (h("p", { key: 'e13518253b52ff8f847575b4465dc2295c7452f0', class: "builder-helper-text" }, this.helperText)), this.visualModeEnabled && (h("div", { key: '2122357f51fd2185d1b544381eb2199de5b1f56c', class: "mode-controls" }, this.renderModeSwitch(visualModeSupported))), !this.visualModeEnabled || this.mode === 'code' ? (h("div", { class: "code-mode" }, this.renderCodeEditor(visualModeSupported))) : (h("div", { class: "visual-mode" }, this.renderVisualMode()))));
157
+ return (h("div", { key: '6f59c4ff1f5ef1ee726bacbe3b8333cd5f6dff77', class: "response-format-builder" }, this.label && h("h1", { key: '28d5825c0ca043f6f671cf812c174aa028950524', class: "builder-label" }, this.label), this.helperText && (h("p", { key: '1e35efbfaa73c0fd871f813059660eea3d026063', class: "builder-helper-text" }, this.helperText)), this.visualModeEnabled && (h("div", { key: '8cbe1f088d88cbdefbdd092cdf879facdbb807a3', class: "mode-controls" }, this.renderModeSwitch(visualModeSupported))), !this.visualModeEnabled || this.mode === 'code' ? (h("div", { class: "code-mode" }, this.renderCodeEditor(visualModeSupported))) : (h("div", { class: "visual-mode" }, this.renderVisualMode()))));
158
158
  }
159
159
  renderModeSwitch(support) {
160
160
  const visualDisabled = !support.visualModeSupported;
@@ -78,7 +78,7 @@ export class LimetypeField {
78
78
  value: '',
79
79
  };
80
80
  options.unshift(emptyOption);
81
- return (h("limel-select", { key: '20a7d5eb86c746d11ad805083be5ef9f5fd2397d', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
81
+ return (h("limel-select", { key: '85956ae62a4975a7706b4a561b1e321078e0dc2a', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
82
82
  }
83
83
  componentWillRender() {
84
84
  this.updatePropertyFields(this.value || '');
@@ -69,7 +69,7 @@ export class OrderByEditor {
69
69
  }
70
70
  }
71
71
  render() {
72
- return (h(Host, { key: '6ef5ee3cf7b67cc0f821272f9d552eab48b60065' }, this.renderEmptyState(), this.renderOrderByEditor()));
72
+ return (h(Host, { key: '59e3bb0334e5528fc8a0f8747086348d1a195c82' }, this.renderEmptyState(), this.renderOrderByEditor()));
73
73
  }
74
74
  renderEmptyState() {
75
75
  if (this.limetype) {
@@ -38,9 +38,9 @@ export class OrderByItemComponent {
38
38
  render() {
39
39
  const propertyPath = Object.keys(this.item)[0] || '';
40
40
  const direction = this.item[propertyPath] || 'ASC';
41
- return (h(Host, { key: 'f8b1d7505feec325eae8668672afe3768a4892aa' }, h("limebb-property-selector", { key: '03f71edd8692c6a46612f87a9df21aabd2bf71eb', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: 'a1a6db7060f8dc862d7acfb5750861293e2411d3', class: "control-buttons" }, h("limel-icon-button", { key: '76703911899c38d71f116dc8256d00cb7c937971', icon: direction === 'ASC'
41
+ return (h(Host, { key: '8d91628467c6ec1912d1f87a7922464e5341c8e1' }, h("limebb-property-selector", { key: '26e7729c7c43f91e02446ad45aa59c56922b377c', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: '1926ad94ddb9d4c2112007068ab4cbf38057622b', class: "control-buttons" }, h("limel-icon-button", { key: '96e4595c737c68ccb30d90295ba6115ec2c7a014', icon: direction === 'ASC'
42
42
  ? 'sort_ascending'
43
- : 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: '91a3370d5c6151370b96e7b67d59f226ad526f21', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
43
+ : 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: 'eee7957506516cc344007ae12a94381a33f9171b', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
44
44
  }
45
45
  static get is() { return "limebb-lime-query-order-by-item"; }
46
46
  static get encapsulation() { return "shadow"; }
@@ -56,6 +56,23 @@ export class PropertySelector {
56
56
  this.isOpen = true;
57
57
  }
58
58
  };
59
+ this.handleChipSetBlur = () => {
60
+ var _a;
61
+ // Ignore blurs caused by `limel-menu` auto-focusing its list/items
62
+ // for keyboard navigation when it opens. That focus shift moves into
63
+ // *our* menu surface (portal-rendered, so `document.activeElement`
64
+ // reports it as `LIMEL-MENU-LIST`) — the user hasn't navigated away.
65
+ const active = document.activeElement;
66
+ if ((_a = active === null || active === void 0 ? void 0 : active.tagName) === null || _a === void 0 ? void 0 : _a.startsWith('LIMEL-MENU')) {
67
+ return;
68
+ }
69
+ // When focus genuinely leaves the chip-set (user clicked Value,
70
+ // closed the popover, etc.), close the menu so the next focus can
71
+ // re-open it cleanly. Without this, `isOpen` stays stuck `true` and
72
+ // subsequent focus events short-circuit on the `!this.isOpen` guard.
73
+ this.isOpen = false;
74
+ this.navigationPath = '';
75
+ };
59
76
  this.handleSelect = (event) => {
60
77
  event.stopPropagation();
61
78
  const selectedPath = event.detail.value;
@@ -128,7 +145,7 @@ export class PropertySelector {
128
145
  return null;
129
146
  }
130
147
  const chips = this.getChipsForPath(this.navigationPath || this.value || '');
131
- return (h("limel-menu", { items: this.menuItems, open: this.isOpen, emptyResultMessage: "No available properties", surfaceWidth: "inherit-from-trigger", openDirection: "bottom-end", onSelect: this.handleSelect, onNavigateMenu: this.handleNavigateMenu, onCancel: this.handleCancel }, h("div", { slot: "trigger" }, h("div", { onClick: this.handleChipSetWrapperClick }, h("limel-chip-set", { type: "input", label: this.label, value: chips, required: this.required, helperText: this.helperText, delimiter: "\u203A", maxItems: 1, onChange: this.handleChipSetChange, onFocus: this.handleChipSetFocus })))));
148
+ return (h("limel-menu", { items: this.menuItems, open: this.isOpen, emptyResultMessage: "No available properties", surfaceWidth: "inherit-from-trigger", openDirection: "bottom-end", onSelect: this.handleSelect, onNavigateMenu: this.handleNavigateMenu, onCancel: this.handleCancel }, h("div", { slot: "trigger" }, h("div", { onClick: this.handleChipSetWrapperClick }, h("limel-chip-set", { type: "input", label: this.label, value: chips, required: this.required, helperText: this.helperText, delimiter: "\u203A", maxItems: 1, onChange: this.handleChipSetChange, onFocus: this.handleChipSetFocus, onStopEdit: this.handleChipSetBlur })))));
132
149
  }
133
150
  loadMenuItems() {
134
151
  // Get the limetype we're currently navigating in
@@ -219,30 +236,36 @@ export class PropertySelector {
219
236
  return [];
220
237
  }
221
238
  const parts = path.split('.');
222
- const chips = [];
239
+ const labels = [];
240
+ let leafIcon;
223
241
  let currentLimetype = this.limetypes[this.limetype];
224
- let currentPath = '';
225
242
  for (const part of parts) {
226
- currentPath = currentPath ? `${currentPath}.${part}` : part;
227
- // Use getNormalizedProperties to include _id and _timestamp
228
243
  const normalizedProperties = getNormalizedProperties(currentLimetype);
229
244
  const property = normalizedProperties[part];
230
- if (property) {
231
- chips.push({
232
- id: currentPath,
233
- text: property.localname || part,
234
- icon: this.getIconForProperty(property),
235
- value: currentPath,
236
- });
237
- if (property.relation) {
238
- currentLimetype = property.relation.getLimetype();
239
- }
245
+ if (!property) {
246
+ continue;
247
+ }
248
+ labels.push(property.localname || part);
249
+ leafIcon = this.getIconForProperty(property);
250
+ if (property.relation) {
251
+ currentLimetype = property.relation.getLimetype();
240
252
  }
241
253
  }
242
- return chips;
254
+ if (labels.length === 0) {
255
+ return [];
256
+ }
257
+ return [
258
+ {
259
+ id: path,
260
+ text: labels.join('.'),
261
+ icon: leafIcon,
262
+ value: path,
263
+ },
264
+ ];
243
265
  }
244
266
  static get is() { return "limebb-property-selector"; }
245
267
  static get encapsulation() { return "shadow"; }
268
+ static get delegatesFocus() { return true; }
246
269
  static get originalStyleUrls() {
247
270
  return {
248
271
  "$": ["property-selector.scss"]
@@ -66,7 +66,7 @@ export class ResponseFormatItem {
66
66
  }
67
67
  render() {
68
68
  return [
69
- h("div", { key: '1fc4a0dbdaa2b362e56a53a82483ca3afe21f6bf', class: "property-controls" }, h("div", { key: '5269250030c559943d4f610734d1ac490a8355ad', class: "property-path" }, h("limebb-property-selector", { key: '2602b66035849922fc413cbc0c82b8163a928ecd', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: '4974a2c7ff30c527b0328d0fbed3b8bac519fdcd', class: "input-grid" }, this.renderAliasInput()), h("div", { key: 'fb058b3a5d5599c387b852e409bd5ac8e8afbc30', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: '97a5e7e2ed68fdbac160bdd60498541f3a16371d', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: '42ab29e5e8e5fc08e90bc4afe6c6d504e434d33e', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
69
+ h("div", { key: '98518fb21bacceef31e398faf0e7d66d92152a9f', class: "property-controls" }, h("div", { key: '1d636436ce63b930abdfb40600106d0d8f643663', class: "property-path" }, h("limebb-property-selector", { key: '3e0fa6a5c5c414c70e38b52f7157a806be8358df', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: '03bc814455e46812ad7365ddf893431e97b255df', class: "input-grid" }, this.renderAliasInput()), h("div", { key: '8d6b47ff44a01288e9875494b1fea5a57649205f', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: 'e2e4741bc80c0fef0741f153c7183b8a12da7aa9', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: '7f204e6331dbcd0e8e62a5e9a61676f62b14a045', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
70
70
  ];
71
71
  }
72
72
  renderAliasButton() {
@@ -5,8 +5,8 @@ import { h } from "@stencil/core";
5
5
  export class LiveDocsInfo {
6
6
  render() {
7
7
  return [
8
- h("div", { key: 'ace2c3e78a926a405e6bb9a15db259953820ca1a', class: "header" }, h("limel-icon", { key: 'd1d94917a24d4b066ee2a389082a48c3b3ab29af', name: "not_showing_video_frames" }), h("h2", { key: '3d164cdece408fef99df8a0c18b03a33118f6737' }, "Viewing this file type requires ", h("em", { key: '3f46b83b55eb9474df36b18c71cd02a12696a41f' }, "Live Docs"))),
9
- h("p", { key: 'e691f783583a0a3d421a033087accf825981e935' }, h("em", { key: '9bd0d29362de47d35cdc1e765c85dfd2c459b5d6' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: 'e4a575a382890c7c52e78dd363e695f2b97b9a9f', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
8
+ h("div", { key: '36018d23b4f56d1ef1cba8aaf6d24c9e1913fc51', class: "header" }, h("limel-icon", { key: 'e262d9b9b22f4ab604f8786ae20964da908c5179', name: "not_showing_video_frames" }), h("h2", { key: '283107fa6651f1de7308d805b3aa48c479c1b281' }, "Viewing this file type requires ", h("em", { key: '4bb7d2d83e4ae2c073f35038827b5b606448af2d' }, "Live Docs"))),
9
+ h("p", { key: '8f5a3fd0b9958f4bdaa11c0f3b82990706100c65' }, h("em", { key: '23aed14b3a3b54c82f63f2fa4aa6016290aebf26' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: 'a018062eefaa0c9b3fff92504e330700979cc407', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
10
10
  ];
11
11
  }
12
12
  static get is() { return "limebb-live-docs-info"; }
@@ -53,7 +53,7 @@ export class LocalePicker {
53
53
  const value = this.value;
54
54
  selectedOptions = options.find((option) => option.value === value);
55
55
  }
56
- return (h("limel-select", { key: 'b5aad60b10237826f58f096a343beb7fcbfe2b9b', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
56
+ return (h("limel-select", { key: 'b42d403250d57155547eaa97731bfc471596c224', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
57
57
  }
58
58
  static get is() { return "limebb-locale-picker"; }
59
59
  static get encapsulation() { return "shadow"; }
@@ -56,7 +56,7 @@ export class NotificationListItem {
56
56
  }
57
57
  render() {
58
58
  var _a, _b;
59
- return (h(Host, { key: '951b650d804bfe49133743bc461e344d9dd0324b', id: this.item.id, class: {
59
+ return (h(Host, { key: 'dff09ced1e8ae05c746912e249f2557de6fce96e', id: this.item.id, class: {
60
60
  'is-clickable': this.isItemClickable(),
61
61
  'is-read': !!((_a = this.item) === null || _a === void 0 ? void 0 : _a.read),
62
62
  'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
@@ -108,11 +108,11 @@ export class PercentageVisualizer {
108
108
  render() {
109
109
  const normalizedValue = this.getNormalizedValue();
110
110
  const zeroPoint = this.getZeroPointPosition();
111
- return (h(Host, { key: 'c57fbde9785115a91c28db17ccebee42a335a80f', class: this.getContainerClassList(), style: {
111
+ return (h(Host, { key: 'ea0690be403aa9c1e4e1fc82b788ad159a8a4cc3', class: this.getContainerClassList(), style: {
112
112
  '--limebb-percentage-visualizer-zero-point-position': `${zeroPoint}%`,
113
113
  '--limebb-percentage-visualizer-width': `${Math.abs(normalizedValue)}%`,
114
114
  '--limebb-percentage-visualizer-rotate': `${normalizedValue >= 0 ? '0deg' : '180deg'}`,
115
- } }, h("limel-notched-outline", { key: '27d6dada52041ce9ebec9d987bae303afacfff89', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: '2afd6d0ff95eace6fac444fd3e2732d22ab97728', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
115
+ } }, h("limel-notched-outline", { key: '77b09269ca09806a33b6297692ca7cf79ee68a53', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: '7b3905e69e8d5b372f7736a9ec40576a23b10385', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
116
116
  }
117
117
  renderVisualization() {
118
118
  if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
@@ -37,7 +37,7 @@ export class RuleChipPopover {
37
37
  };
38
38
  }
39
39
  render() {
40
- return (h("div", { key: '14ab805ec2930bb31fa1aeb4a987b97a9c816f3c', class: "popover" }, this.renderHeader(), this.renderBody()));
40
+ return (h("div", { key: 'ca7901be2a99590faddea0c678d149b13b5d564f', class: "popover" }, this.renderHeader(), this.renderBody()));
41
41
  }
42
42
  renderHeader() {
43
43
  var _a, _b, _c, _d;
@@ -67,6 +67,7 @@
67
67
 
68
68
  limel-popover.rule-node__chips-popover {
69
69
  display: contents;
70
+ --popover-surface-width: min(calc(100vw - 4rem), 50rem);
70
71
  }
71
72
 
72
73
  .rule-node__chips {
@@ -100,7 +100,7 @@ export class RuleEditor {
100
100
  'rule-editor': true,
101
101
  'rule-editor--disabled': this.disabled,
102
102
  };
103
- return (h("div", { key: 'dfdc801d8c0d48b8276b9d4cff8a4a2c0754c52f', class: containerClasses }, this.renderLabel(), h(RuleNodeView, { key: '250d53eba7681872f181003c709303238971be2a', node: this.normalizedValue, path: [], ctx: this.createRenderContext() }), this.renderHelperText()));
103
+ return (h("div", { key: 'f1479b58e37918312e4e47031e6fd3e7d6129449', class: containerClasses }, this.renderLabel(), h(RuleNodeView, { key: '3c49ff3c08a6f0b51a4ab6608521d571a2ec1625', node: this.normalizedValue, path: [], ctx: this.createRenderContext() }), this.renderHelperText()));
104
104
  }
105
105
  renderLabel() {
106
106
  if (!this.label) {
@@ -26,7 +26,7 @@ export class RuleGate {
26
26
  this.compileAndEvaluate();
27
27
  }
28
28
  render() {
29
- return (h(Host, { key: '365df6908301371b8b964671382ad936971b6624', hidden: !this.shouldRender }, h("slot", { key: 'ca7c2a9febf0189dfae882a2ae894d1d0262a213' })));
29
+ return (h(Host, { key: '8fe8b9fad90211b80b4672563f6d599ce1cb11c3', hidden: !this.shouldRender }, h("slot", { key: 'f434d25308b85fd084d369ccf2b0e22bd3513210' })));
30
30
  }
31
31
  get ruleRegistry() {
32
32
  return this.platform.get(PlatformServiceName.RuleRegistry);
@@ -128,9 +128,9 @@ export class SummaryPopover {
128
128
  top: '0.125rem',
129
129
  right: '0.125rem',
130
130
  };
131
- return (h("limel-popover", { key: '901e726d37719331f2b30df6e35f2375951c161f', style: {
131
+ return (h("limel-popover", { key: '7e4e777539c58689faf6a0e69c5f2cf8ed771641', style: {
132
132
  '--limebb-summary-popover-timeout': `${this.triggerDelay}ms`,
133
- }, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: 'a9a73b0a0f16cf12aaa6fa3434071c56a26a1038', slot: "trigger", onMouseEnter: this.openPopoverWithDelay, onMouseLeave: this.resetTimeout, onFocusin: this.openPopoverWithDelay }, h("slot", { key: '594bcc9e419e33ef97fd6ca863cf44a67617fa48', name: "trigger" }), h("div", { key: 'a6f548eeb737f4392e2c938682a1c9a509523658', class: "opening-countdown-indicator" })), this.renderCard(closeButtonStyle)));
133
+ }, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: '21e0e2569a1abdb404c0c6dbd80714f7ff794ca1', slot: "trigger", onMouseEnter: this.openPopoverWithDelay, onMouseLeave: this.resetTimeout, onFocusin: this.openPopoverWithDelay }, h("slot", { key: 'c771e4d9aa10acd6a0a044be4d01d611e22bcc13', name: "trigger" }), h("div", { key: '0c25b9418a311fdf7b700f76a8dbadeea5fb8010', class: "opening-countdown-indicator" })), this.renderCard(closeButtonStyle)));
134
134
  }
135
135
  renderCard(closeButtonStyle) {
136
136
  return (h("limel-card", { style: {
@@ -13,8 +13,8 @@ export class MentionGroupCounter {
13
13
  render() {
14
14
  const label = this.getLabel();
15
15
  return [
16
- h("span", { key: 'b2dca0d50a70b8c7bf187ef2f6c29960c4caf563', id: this.tooltipId }, label),
17
- h("limel-tooltip", { key: '97adc0a2b91b830a6fe040712cbdfc1d9839c8f8', elementId: this.tooltipId, label: label, helperLabel: this.helperLabel }),
16
+ h("span", { key: '24bc1b7b14ada4e19a4f560455cbb26bfd0b83b7', id: this.tooltipId }, label),
17
+ h("limel-tooltip", { key: '81a8ce747eea55013b9968a2f3eceb652257355f', elementId: this.tooltipId, label: label, helperLabel: this.helperLabel }),
18
18
  ];
19
19
  }
20
20
  getLabel() {
@@ -391,7 +391,7 @@ export class LimeBBTextEditor {
391
391
  }
392
392
  render() {
393
393
  return [
394
- h("limel-text-editor", { key: '3ef0538b3df2cfbd3e363868add7dad46559e035', ref: (el) => (this.textEditor = el), tabindex: this.disabled ? -1 : 0, value: this.value, contentType: this.contentType, customElements: this.registeredCustomElements, "aria-disabled": this.disabled, language: this.language, triggers: this.registeredTriggers, onTriggerStart: this.handleTriggerStart, onTriggerStop: this.handleTriggerStop, onTriggerChange: this.handleTriggerChange, onImagePasted: this.handleImagePasted, onMetadataChange: this.handleMetadataChange, ui: this.ui, allowResize: this.allowResize, required: this.required, disabled: this.disabled, readonly: this.readonly, helperText: this.helperText, placeholder: this.placeholder, label: this.label, invalid: this.invalid }),
394
+ h("limel-text-editor", { key: '58b3a06b62159010bab0d99fe48ae3d9ebc0bc5e', ref: (el) => (this.textEditor = el), tabindex: this.disabled ? -1 : 0, value: this.value, contentType: this.contentType, customElements: this.registeredCustomElements, "aria-disabled": this.disabled, language: this.language, triggers: this.registeredTriggers, onTriggerStart: this.handleTriggerStart, onTriggerStop: this.handleTriggerStop, onTriggerChange: this.handleTriggerChange, onImagePasted: this.handleImagePasted, onMetadataChange: this.handleMetadataChange, ui: this.ui, allowResize: this.allowResize, required: this.required, disabled: this.disabled, readonly: this.readonly, helperText: this.helperText, placeholder: this.placeholder, label: this.label, invalid: this.invalid }),
395
395
  this.renderPicker(),
396
396
  ];
397
397
  }
@@ -69,7 +69,7 @@ export class TrendIndicator {
69
69
  this.numValue = this.parseValue(this.value);
70
70
  }
71
71
  render() {
72
- return (h(Host, { key: 'fd3bce29b7cd49a4642904fa630616b10e7d55b8', class: this.getContainerClassList() }, h("limel-notched-outline", { key: '3502f060569abb0e12c5b6bca84fdf9b190e840f', id: this.tooltipId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, "aria-controls": this.helperTextId }, h("div", { key: '4f007fec33a71fe2205c1fbb861b45b8d41f440e', slot: "content", tabIndex: 0 }, this.renderVisualization())), this.renderHelperLine(), this.renderTooltip()));
72
+ return (h(Host, { key: 'ea5709dccccd0ca07684bd221e7f5fe79b76dae4', class: this.getContainerClassList() }, h("limel-notched-outline", { key: '952a07d4e934d589460a8848a52bad130f351cdf', id: this.tooltipId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, "aria-controls": this.helperTextId }, h("div", { key: 'a620318b3edea23636d656654da65c9532b4a5f0', slot: "content", tabIndex: 0 }, this.renderVisualization())), this.renderHelperLine(), this.renderTooltip()));
73
73
  }
74
74
  renderVisualization() {
75
75
  if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {