@limetech/lime-crm-building-blocks 1.129.0 → 1.131.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 (331) 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 +2 -2
  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 +104 -12
  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/composer-toolbar/composer-toolbar.js +2 -2
  80. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  81. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  82. package/dist/collection/components/date-picker/date-picker.js +1 -1
  83. package/dist/collection/components/date-range/date-range.js +1 -1
  84. package/dist/collection/components/document-chips/document-chips.js +1 -1
  85. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  86. package/dist/collection/components/document-picker/document-picker.js +1 -1
  87. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  88. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  89. package/dist/collection/components/feed/feed.js +1 -1
  90. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  91. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  92. package/dist/collection/components/info-tile/info-tile.js +1 -1
  93. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  94. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  95. package/dist/collection/components/lime-query-builder/expressions/filter-group-logic.js +75 -72
  96. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.js +2 -6
  97. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.css +12 -0
  98. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +231 -0
  99. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.css +2 -17
  100. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +91 -118
  101. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +9 -14
  102. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +105 -179
  103. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +93 -94
  104. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  105. package/dist/collection/components/lime-query-builder/expressions/lime-query-operators.js +60 -0
  106. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  107. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  108. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  109. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  110. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  111. package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +39 -16
  112. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  113. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  114. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  115. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  116. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  117. package/dist/collection/components/rule-editor/chip-picker-view.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 +102 -10
  121. package/dist/collection/components/rule-editor/view-helpers.js +9 -0
  122. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  123. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  124. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  125. package/dist/collection/components/text-editor/text-editor.js +1 -1
  126. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  127. package/dist/components/chat-icon-list.js +1 -1
  128. package/dist/components/chat-item.js +1 -1
  129. package/dist/components/currency-picker.js +1 -1
  130. package/dist/components/date-picker.js +1 -1
  131. package/dist/components/document-item.js +1 -1
  132. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  133. package/dist/components/feed-timeline-item.js +1 -1
  134. package/dist/components/kanban-group.js +1 -1
  135. package/dist/components/kanban-item.js +1 -1
  136. package/dist/components/lime-query-filter-builder.js +1 -1
  137. package/dist/components/lime-query-filter-comparison-editor.js +1 -0
  138. package/dist/components/lime-query-filter-comparison.js +1 -1
  139. package/dist/components/lime-query-filter-expression.js +1 -1
  140. package/dist/components/limebb-alert-dialog.js +1 -1
  141. package/dist/components/limebb-browser.js +1 -1
  142. package/dist/components/limebb-chat-list.js +1 -1
  143. package/dist/components/limebb-color-palette-picker.js +1 -1
  144. package/dist/components/limebb-color-palette-swatches.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 +2 -2
  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 +104 -12
  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-34eb61da.entry.js → p-00d00277.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/p-072756ea.entry.js +1 -0
  247. package/dist/lime-crm-building-blocks/{p-32c3789e.entry.js → p-07ef2fd0.entry.js} +1 -1
  248. package/dist/lime-crm-building-blocks/{p-c609b5ec.entry.js → p-0ba1294a.entry.js} +1 -1
  249. package/dist/lime-crm-building-blocks/{p-7fee7ef3.entry.js → p-0fac2307.entry.js} +1 -1
  250. package/dist/lime-crm-building-blocks/{p-97e6712f.entry.js → p-16fa6f3e.entry.js} +1 -1
  251. package/dist/lime-crm-building-blocks/{p-0c572fe9.entry.js → p-18ce3ce5.entry.js} +1 -1
  252. package/dist/lime-crm-building-blocks/p-1dfdf045.entry.js +1 -0
  253. package/dist/lime-crm-building-blocks/{p-20206710.entry.js → p-22296e19.entry.js} +1 -1
  254. package/dist/lime-crm-building-blocks/{p-1747221f.entry.js → p-24337de2.entry.js} +1 -1
  255. package/dist/lime-crm-building-blocks/{p-de6f4670.entry.js → p-3996a598.entry.js} +1 -1
  256. package/dist/lime-crm-building-blocks/{p-d2a01f51.entry.js → p-3bff70d2.entry.js} +1 -1
  257. package/dist/lime-crm-building-blocks/{p-7c96b265.entry.js → p-3c437049.entry.js} +1 -1
  258. package/dist/lime-crm-building-blocks/{p-3a112b17.entry.js → p-43af24b5.entry.js} +1 -1
  259. package/dist/lime-crm-building-blocks/{p-2cb31064.entry.js → p-464b02c2.entry.js} +1 -1
  260. package/dist/lime-crm-building-blocks/{p-02565865.entry.js → p-47a7b3fd.entry.js} +1 -1
  261. package/dist/lime-crm-building-blocks/{p-e6083593.entry.js → p-4c10bea0.entry.js} +1 -1
  262. package/dist/lime-crm-building-blocks/{p-e7a10082.entry.js → p-4e0d077b.entry.js} +1 -1
  263. package/dist/lime-crm-building-blocks/{p-25d8a718.entry.js → p-5006c5ea.entry.js} +1 -1
  264. package/dist/lime-crm-building-blocks/{p-c678f22f.entry.js → p-52c07130.entry.js} +1 -1
  265. package/dist/lime-crm-building-blocks/{p-492b1b0c.entry.js → p-55692241.entry.js} +1 -1
  266. package/dist/lime-crm-building-blocks/{p-b2383e7f.entry.js → p-5573a867.entry.js} +1 -1
  267. package/dist/lime-crm-building-blocks/{p-bec4231f.entry.js → p-563d69ff.entry.js} +1 -1
  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-b95b94b6.entry.js +1 -0
  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/rule-editor/rule-editor-views.d.ts +2 -1
  319. package/dist/types/components/rule-editor/rule-editor.d.ts +54 -3
  320. package/dist/types/components/rule-editor/view-helpers.d.ts +8 -1
  321. package/dist/types/components.d.ts +136 -49
  322. package/package.json +2 -2
  323. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +0 -137
  324. package/dist/lime-crm-building-blocks/p-6002654f.entry.js +0 -1
  325. package/dist/lime-crm-building-blocks/p-7acd06eb.entry.js +0 -1
  326. package/dist/lime-crm-building-blocks/p-89b43ac5.entry.js +0 -1
  327. package/dist/lime-crm-building-blocks/p-BIwHMk6j.js +0 -2
  328. package/dist/lime-crm-building-blocks/p-a3556715.entry.js +0 -1
  329. package/dist/lime-crm-building-blocks/p-bd6e12e6.entry.js +0 -1
  330. package/dist/lime-crm-building-blocks/p-c6a913af.entry.js +0 -1
  331. package/dist/lime-crm-building-blocks/p-c6fee2bd.entry.js +0 -1
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { AlertType } from "./components/alert-dialog/alert-dialog.types";
9
- import { AggregateOperator, AndOrExpression, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, Rule, RuleRef } from "@limetech/lime-web-components";
9
+ import { AggregateOperator, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, Rule, RuleRef } from "@limetech/lime-web-components";
10
10
  import { BrowserItem } from "./components/browser/browser-item.types";
11
11
  import { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
12
12
  import { ChatIconList } from "./components/chat-list/chat-icon-list/chat-icon-list.types";
@@ -24,6 +24,8 @@ import { InfoTile } from "./components/info-tile/info-tile";
24
24
  import { KanbanGroup } from "./components/kanban/kanban-group/kanban-group.types";
25
25
  import { KanbanItem } from "./components/kanban/kanban-item/kanban-item.types";
26
26
  import { LimeQuery, OrderByItem, ResponseFormat } from "./components/lime-query-builder/lime-query.types";
27
+ import { ComparisonExpression } from "./components/lime-query-builder/expressions/lime-query-operators";
28
+ import { GroupExpression } from "./components/lime-query-builder/expressions/filter-group-logic";
27
29
  import { PropertySelectionItem } from "./components/lime-query-builder/property-selection-format";
28
30
  import { LanguagePickerType } from "./components/locale-picker/language-picker.types";
29
31
  import { NavigationButtonType } from "./components/navigation-button/navigation-button.types";
@@ -32,7 +34,7 @@ import { RuleArgFilterEditorValue } from "./components/rule-editor/rule-arg-filt
32
34
  import { TriggerMap } from "./components/text-editor/text-editor.types";
33
35
  import { EnhancedEditorMetadata } from "./components/text-editor/uploader/building-blocks-upload-handler";
34
36
  export { AlertType } from "./components/alert-dialog/alert-dialog.types";
35
- export { AggregateOperator, AndOrExpression, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, Rule, RuleRef } from "@limetech/lime-web-components";
37
+ export { AggregateOperator, ContextMap, ContextScope, Expression, JsonValue, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator, PrimitiveMetadata, Rule, RuleRef } from "@limetech/lime-web-components";
36
38
  export { BrowserItem } from "./components/browser/browser-item.types";
37
39
  export { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, IconName, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
38
40
  export { ChatIconList } from "./components/chat-list/chat-icon-list/chat-icon-list.types";
@@ -50,6 +52,8 @@ export { InfoTile } from "./components/info-tile/info-tile";
50
52
  export { KanbanGroup } from "./components/kanban/kanban-group/kanban-group.types";
51
53
  export { KanbanItem } from "./components/kanban/kanban-item/kanban-item.types";
52
54
  export { LimeQuery, OrderByItem, ResponseFormat } from "./components/lime-query-builder/lime-query.types";
55
+ export { ComparisonExpression } from "./components/lime-query-builder/expressions/lime-query-operators";
56
+ export { GroupExpression } from "./components/lime-query-builder/expressions/filter-group-logic";
53
57
  export { PropertySelectionItem } from "./components/lime-query-builder/property-selection-format";
54
58
  export { LanguagePickerType } from "./components/locale-picker/language-picker.types";
55
59
  export { NavigationButtonType } from "./components/navigation-button/navigation-button.types";
@@ -1395,6 +1399,19 @@ export namespace Components {
1395
1399
  */
1396
1400
  "platform": LimeWebComponentPlatform;
1397
1401
  }
1402
+ /**
1403
+ * Inline editor for a single comparison expression. `shadow: true` so
1404
+ * its stylesheet travels with the host when `limel-popover` portals it
1405
+ * out of the parent's shadow root.
1406
+ * @private
1407
+ */
1408
+ interface LimebbLimeQueryFilterComparisonEditor {
1409
+ "activeLimetype"?: string;
1410
+ "context": LimeWebComponentContext;
1411
+ "expression": ComparisonExpression;
1412
+ "limetype": string;
1413
+ "platform": LimeWebComponentPlatform;
1414
+ }
1398
1415
  /**
1399
1416
  * Lime Query Filter Expression Router
1400
1417
  * Router component for rendering Lime Query filter expressions.
@@ -1402,6 +1419,9 @@ export namespace Components {
1402
1419
  * - Has `key` property → limebb-lime-query-filter-comparison
1403
1420
  * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
1404
1421
  * - `op: Operator.NOT` → limebb-lime-query-filter-not
1422
+ * Uses `scoped: true` (no shadow root) so the dispatched child element
1423
+ * participates in the parent's light DOM — that lets the parent drive
1424
+ * its own layout off the rendered tag (e.g. `:has(limebb-lime-query-filter-group)`).
1405
1425
  * @private
1406
1426
  */
1407
1427
  interface LimebbLimeQueryFilterExpression {
@@ -1432,16 +1452,10 @@ export namespace Components {
1432
1452
  }
1433
1453
  /**
1434
1454
  * Lime Query Filter Group Component
1435
- * Renders a group of filter expressions with AND/OR logic that can be toggled.
1436
- * Users can click the header to toggle between "All conditions" (AND) and
1437
- * "Any condition" (OR).
1438
- * This component displays:
1439
- * - A clickable header showing the current logic (AND/OR)
1440
- * - A list of child expressions (which can be comparisons or nested groups)
1441
- * - An "Add" button to add more expressions
1442
- * Clicking the header toggles between AND and OR logic.
1443
- * If a child component emits an ExpressionChange event with undefined, the
1444
- * child is removed from the group.
1455
+ * Renders a group of filter expressions with a combinator picker that selects
1456
+ * between All, Any, Not all, and Not any. The first two map to a bare AND/OR
1457
+ * group; the latter two wrap the same group in a NOT expression. Choosing a
1458
+ * value re-shapes the group, preserving all children.
1445
1459
  * @private
1446
1460
  */
1447
1461
  interface LimebbLimeQueryFilterGroup {
@@ -1454,9 +1468,9 @@ export namespace Components {
1454
1468
  */
1455
1469
  "context": LimeWebComponentContext;
1456
1470
  /**
1457
- * The group expression (AND or OR)
1471
+ * The group expression: an AND/OR group, optionally wrapped in NOT
1458
1472
  */
1459
- "expression": AndOrExpression;
1473
+ "expression": GroupExpression;
1460
1474
  /**
1461
1475
  * The limetype being queried (e.g., "deal", "company")
1462
1476
  */
@@ -2272,13 +2286,20 @@ export namespace Components {
2272
2286
  * caller knows will be available where the rule runs. The component
2273
2287
  * forwards it to `RuleRegistry.validate` so `missing-slot` diagnostics
2274
2288
  * surface inline on the offending nodes.
2289
+ * The palette is surface-aware. When the editor is mounted in the DOM,
2290
+ * it walks its host's ancestors through the context registry and unions
2291
+ * the result with `availableContexts` to determine which context slots
2292
+ * are reachable where the rule runs. Primitives whose `reads` slots
2293
+ * aren't all reachable are hidden from the add palette, so an author
2294
+ * can't pick a primitive that would silently fail closed at evaluation
2295
+ * time.
2275
2296
  * @exampleComponent limebb-example-rule-editor
2276
2297
  * @alpha
2277
2298
  * @private
2278
2299
  */
2279
2300
  interface LimebbRuleEditor {
2280
2301
  /**
2281
- * Context keys the caller knows will be available where the rule runs. Forwarded to the rule registry's `validate` method so `missing-slot` issues surface inline. Leave unset when the evaluation context is not known (typical for editors that target the saved-rule library).
2302
+ * Context keys the caller knows will be available where the rule runs. Forwarded to the rule registry's `validate` method so `missing-slot` issues surface inline. Leave unset when the evaluation context is not known typical for editors that target the saved-rule library.
2282
2303
  */
2283
2304
  "availableContexts"?: (keyof ContextMap)[];
2284
2305
  /**
@@ -2763,6 +2784,10 @@ export interface LimebbLimeQueryFilterComparisonCustomEvent<T> extends CustomEve
2763
2784
  detail: T;
2764
2785
  target: HTMLLimebbLimeQueryFilterComparisonElement;
2765
2786
  }
2787
+ export interface LimebbLimeQueryFilterComparisonEditorCustomEvent<T> extends CustomEvent<T> {
2788
+ detail: T;
2789
+ target: HTMLLimebbLimeQueryFilterComparisonEditorElement;
2790
+ }
2766
2791
  export interface LimebbLimeQueryFilterExpressionCustomEvent<T> extends CustomEvent<T> {
2767
2792
  detail: T;
2768
2793
  target: HTMLLimebbLimeQueryFilterExpressionElement;
@@ -3781,6 +3806,29 @@ declare global {
3781
3806
  prototype: HTMLLimebbLimeQueryFilterComparisonElement;
3782
3807
  new (): HTMLLimebbLimeQueryFilterComparisonElement;
3783
3808
  };
3809
+ interface HTMLLimebbLimeQueryFilterComparisonEditorElementEventMap {
3810
+ "expressionChange": ComparisonExpression;
3811
+ }
3812
+ /**
3813
+ * Inline editor for a single comparison expression. `shadow: true` so
3814
+ * its stylesheet travels with the host when `limel-popover` portals it
3815
+ * out of the parent's shadow root.
3816
+ * @private
3817
+ */
3818
+ interface HTMLLimebbLimeQueryFilterComparisonEditorElement extends Components.LimebbLimeQueryFilterComparisonEditor, HTMLStencilElement {
3819
+ addEventListener<K extends keyof HTMLLimebbLimeQueryFilterComparisonEditorElementEventMap>(type: K, listener: (this: HTMLLimebbLimeQueryFilterComparisonEditorElement, ev: LimebbLimeQueryFilterComparisonEditorCustomEvent<HTMLLimebbLimeQueryFilterComparisonEditorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3820
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3821
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3822
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3823
+ removeEventListener<K extends keyof HTMLLimebbLimeQueryFilterComparisonEditorElementEventMap>(type: K, listener: (this: HTMLLimebbLimeQueryFilterComparisonEditorElement, ev: LimebbLimeQueryFilterComparisonEditorCustomEvent<HTMLLimebbLimeQueryFilterComparisonEditorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3824
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3825
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3826
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3827
+ }
3828
+ var HTMLLimebbLimeQueryFilterComparisonEditorElement: {
3829
+ prototype: HTMLLimebbLimeQueryFilterComparisonEditorElement;
3830
+ new (): HTMLLimebbLimeQueryFilterComparisonEditorElement;
3831
+ };
3784
3832
  interface HTMLLimebbLimeQueryFilterExpressionElementEventMap {
3785
3833
  "expressionChange": Expression | undefined;
3786
3834
  }
@@ -3791,6 +3839,9 @@ declare global {
3791
3839
  * - Has `key` property → limebb-lime-query-filter-comparison
3792
3840
  * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
3793
3841
  * - `op: Operator.NOT` → limebb-lime-query-filter-not
3842
+ * Uses `scoped: true` (no shadow root) so the dispatched child element
3843
+ * participates in the parent's light DOM — that lets the parent drive
3844
+ * its own layout off the rendered tag (e.g. `:has(limebb-lime-query-filter-group)`).
3794
3845
  * @private
3795
3846
  */
3796
3847
  interface HTMLLimebbLimeQueryFilterExpressionElement extends Components.LimebbLimeQueryFilterExpression, HTMLStencilElement {
@@ -3812,16 +3863,10 @@ declare global {
3812
3863
  }
3813
3864
  /**
3814
3865
  * Lime Query Filter Group Component
3815
- * Renders a group of filter expressions with AND/OR logic that can be toggled.
3816
- * Users can click the header to toggle between "All conditions" (AND) and
3817
- * "Any condition" (OR).
3818
- * This component displays:
3819
- * - A clickable header showing the current logic (AND/OR)
3820
- * - A list of child expressions (which can be comparisons or nested groups)
3821
- * - An "Add" button to add more expressions
3822
- * Clicking the header toggles between AND and OR logic.
3823
- * If a child component emits an ExpressionChange event with undefined, the
3824
- * child is removed from the group.
3866
+ * Renders a group of filter expressions with a combinator picker that selects
3867
+ * between All, Any, Not all, and Not any. The first two map to a bare AND/OR
3868
+ * group; the latter two wrap the same group in a NOT expression. Choosing a
3869
+ * value re-shapes the group, preserving all children.
3825
3870
  * @private
3826
3871
  */
3827
3872
  interface HTMLLimebbLimeQueryFilterGroupElement extends Components.LimebbLimeQueryFilterGroup, HTMLStencilElement {
@@ -4401,6 +4446,13 @@ declare global {
4401
4446
  * caller knows will be available where the rule runs. The component
4402
4447
  * forwards it to `RuleRegistry.validate` so `missing-slot` diagnostics
4403
4448
  * surface inline on the offending nodes.
4449
+ * The palette is surface-aware. When the editor is mounted in the DOM,
4450
+ * it walks its host's ancestors through the context registry and unions
4451
+ * the result with `availableContexts` to determine which context slots
4452
+ * are reachable where the rule runs. Primitives whose `reads` slots
4453
+ * aren't all reachable are hidden from the add palette, so an author
4454
+ * can't pick a primitive that would silently fail closed at evaluation
4455
+ * time.
4404
4456
  * @exampleComponent limebb-example-rule-editor
4405
4457
  * @alpha
4406
4458
  * @private
@@ -4640,6 +4692,7 @@ declare global {
4640
4692
  "limebb-lime-query-builder": HTMLLimebbLimeQueryBuilderElement;
4641
4693
  "limebb-lime-query-filter-builder": HTMLLimebbLimeQueryFilterBuilderElement;
4642
4694
  "limebb-lime-query-filter-comparison": HTMLLimebbLimeQueryFilterComparisonElement;
4695
+ "limebb-lime-query-filter-comparison-editor": HTMLLimebbLimeQueryFilterComparisonEditorElement;
4643
4696
  "limebb-lime-query-filter-expression": HTMLLimebbLimeQueryFilterExpressionElement;
4644
4697
  "limebb-lime-query-filter-group": HTMLLimebbLimeQueryFilterGroupElement;
4645
4698
  "limebb-lime-query-filter-not": HTMLLimebbLimeQueryFilterNotElement;
@@ -6137,6 +6190,20 @@ declare namespace LocalJSX {
6137
6190
  */
6138
6191
  "platform"?: LimeWebComponentPlatform;
6139
6192
  }
6193
+ /**
6194
+ * Inline editor for a single comparison expression. `shadow: true` so
6195
+ * its stylesheet travels with the host when `limel-popover` portals it
6196
+ * out of the parent's shadow root.
6197
+ * @private
6198
+ */
6199
+ interface LimebbLimeQueryFilterComparisonEditor {
6200
+ "activeLimetype"?: string;
6201
+ "context"?: LimeWebComponentContext;
6202
+ "expression"?: ComparisonExpression;
6203
+ "limetype"?: string;
6204
+ "onExpressionChange"?: (event: LimebbLimeQueryFilterComparisonEditorCustomEvent<ComparisonExpression>) => void;
6205
+ "platform"?: LimeWebComponentPlatform;
6206
+ }
6140
6207
  /**
6141
6208
  * Lime Query Filter Expression Router
6142
6209
  * Router component for rendering Lime Query filter expressions.
@@ -6144,6 +6211,9 @@ declare namespace LocalJSX {
6144
6211
  * - Has `key` property → limebb-lime-query-filter-comparison
6145
6212
  * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
6146
6213
  * - `op: Operator.NOT` → limebb-lime-query-filter-not
6214
+ * Uses `scoped: true` (no shadow root) so the dispatched child element
6215
+ * participates in the parent's light DOM — that lets the parent drive
6216
+ * its own layout off the rendered tag (e.g. `:has(limebb-lime-query-filter-group)`).
6147
6217
  * @private
6148
6218
  */
6149
6219
  interface LimebbLimeQueryFilterExpression {
@@ -6178,16 +6248,10 @@ declare namespace LocalJSX {
6178
6248
  }
6179
6249
  /**
6180
6250
  * Lime Query Filter Group Component
6181
- * Renders a group of filter expressions with AND/OR logic that can be toggled.
6182
- * Users can click the header to toggle between "All conditions" (AND) and
6183
- * "Any condition" (OR).
6184
- * This component displays:
6185
- * - A clickable header showing the current logic (AND/OR)
6186
- * - A list of child expressions (which can be comparisons or nested groups)
6187
- * - An "Add" button to add more expressions
6188
- * Clicking the header toggles between AND and OR logic.
6189
- * If a child component emits an ExpressionChange event with undefined, the
6190
- * child is removed from the group.
6251
+ * Renders a group of filter expressions with a combinator picker that selects
6252
+ * between All, Any, Not all, and Not any. The first two map to a bare AND/OR
6253
+ * group; the latter two wrap the same group in a NOT expression. Choosing a
6254
+ * value re-shapes the group, preserving all children.
6191
6255
  * @private
6192
6256
  */
6193
6257
  interface LimebbLimeQueryFilterGroup {
@@ -6200,15 +6264,15 @@ declare namespace LocalJSX {
6200
6264
  */
6201
6265
  "context"?: LimeWebComponentContext;
6202
6266
  /**
6203
- * The group expression (AND or OR)
6267
+ * The group expression: an AND/OR group, optionally wrapped in NOT
6204
6268
  */
6205
- "expression"?: AndOrExpression;
6269
+ "expression"?: GroupExpression;
6206
6270
  /**
6207
6271
  * The limetype being queried (e.g., "deal", "company")
6208
6272
  */
6209
6273
  "limetype"?: string;
6210
6274
  /**
6211
- * Emitted when the group expression changes Emits undefined when expression should be removed Can emit any Expression type when unwrapping (single child)
6275
+ * Emitted when the group expression changes. Emits undefined when the group itself should be removed.
6212
6276
  */
6213
6277
  "onExpressionChange"?: (event: LimebbLimeQueryFilterGroupCustomEvent<Expression | undefined>) => void;
6214
6278
  /**
@@ -7084,13 +7148,20 @@ declare namespace LocalJSX {
7084
7148
  * caller knows will be available where the rule runs. The component
7085
7149
  * forwards it to `RuleRegistry.validate` so `missing-slot` diagnostics
7086
7150
  * surface inline on the offending nodes.
7151
+ * The palette is surface-aware. When the editor is mounted in the DOM,
7152
+ * it walks its host's ancestors through the context registry and unions
7153
+ * the result with `availableContexts` to determine which context slots
7154
+ * are reachable where the rule runs. Primitives whose `reads` slots
7155
+ * aren't all reachable are hidden from the add palette, so an author
7156
+ * can't pick a primitive that would silently fail closed at evaluation
7157
+ * time.
7087
7158
  * @exampleComponent limebb-example-rule-editor
7088
7159
  * @alpha
7089
7160
  * @private
7090
7161
  */
7091
7162
  interface LimebbRuleEditor {
7092
7163
  /**
7093
- * Context keys the caller knows will be available where the rule runs. Forwarded to the rule registry's `validate` method so `missing-slot` issues surface inline. Leave unset when the evaluation context is not known (typical for editors that target the saved-rule library).
7164
+ * Context keys the caller knows will be available where the rule runs. Forwarded to the rule registry's `validate` method so `missing-slot` issues surface inline. Leave unset when the evaluation context is not known typical for editors that target the saved-rule library.
7094
7165
  */
7095
7166
  "availableContexts"?: (keyof ContextMap)[];
7096
7167
  /**
@@ -7663,6 +7734,10 @@ declare namespace LocalJSX {
7663
7734
  "limetype": string;
7664
7735
  "activeLimetype": string;
7665
7736
  }
7737
+ interface LimebbLimeQueryFilterComparisonEditorAttributes {
7738
+ "limetype": string;
7739
+ "activeLimetype": string;
7740
+ }
7666
7741
  interface LimebbLimeQueryFilterExpressionAttributes {
7667
7742
  "label": string;
7668
7743
  "limetype": string;
@@ -7861,6 +7936,7 @@ declare namespace LocalJSX {
7861
7936
  "limebb-lime-query-builder": Omit<LimebbLimeQueryBuilder, keyof LimebbLimeQueryBuilderAttributes> & { [K in keyof LimebbLimeQueryBuilder & keyof LimebbLimeQueryBuilderAttributes]?: LimebbLimeQueryBuilder[K] } & { [K in keyof LimebbLimeQueryBuilder & keyof LimebbLimeQueryBuilderAttributes as `attr:${K}`]?: LimebbLimeQueryBuilderAttributes[K] } & { [K in keyof LimebbLimeQueryBuilder & keyof LimebbLimeQueryBuilderAttributes as `prop:${K}`]?: LimebbLimeQueryBuilder[K] };
7862
7937
  "limebb-lime-query-filter-builder": Omit<LimebbLimeQueryFilterBuilder, keyof LimebbLimeQueryFilterBuilderAttributes> & { [K in keyof LimebbLimeQueryFilterBuilder & keyof LimebbLimeQueryFilterBuilderAttributes]?: LimebbLimeQueryFilterBuilder[K] } & { [K in keyof LimebbLimeQueryFilterBuilder & keyof LimebbLimeQueryFilterBuilderAttributes as `attr:${K}`]?: LimebbLimeQueryFilterBuilderAttributes[K] } & { [K in keyof LimebbLimeQueryFilterBuilder & keyof LimebbLimeQueryFilterBuilderAttributes as `prop:${K}`]?: LimebbLimeQueryFilterBuilder[K] };
7863
7938
  "limebb-lime-query-filter-comparison": Omit<LimebbLimeQueryFilterComparison, keyof LimebbLimeQueryFilterComparisonAttributes> & { [K in keyof LimebbLimeQueryFilterComparison & keyof LimebbLimeQueryFilterComparisonAttributes]?: LimebbLimeQueryFilterComparison[K] } & { [K in keyof LimebbLimeQueryFilterComparison & keyof LimebbLimeQueryFilterComparisonAttributes as `attr:${K}`]?: LimebbLimeQueryFilterComparisonAttributes[K] } & { [K in keyof LimebbLimeQueryFilterComparison & keyof LimebbLimeQueryFilterComparisonAttributes as `prop:${K}`]?: LimebbLimeQueryFilterComparison[K] };
7939
+ "limebb-lime-query-filter-comparison-editor": Omit<LimebbLimeQueryFilterComparisonEditor, keyof LimebbLimeQueryFilterComparisonEditorAttributes> & { [K in keyof LimebbLimeQueryFilterComparisonEditor & keyof LimebbLimeQueryFilterComparisonEditorAttributes]?: LimebbLimeQueryFilterComparisonEditor[K] } & { [K in keyof LimebbLimeQueryFilterComparisonEditor & keyof LimebbLimeQueryFilterComparisonEditorAttributes as `attr:${K}`]?: LimebbLimeQueryFilterComparisonEditorAttributes[K] } & { [K in keyof LimebbLimeQueryFilterComparisonEditor & keyof LimebbLimeQueryFilterComparisonEditorAttributes as `prop:${K}`]?: LimebbLimeQueryFilterComparisonEditor[K] };
7864
7940
  "limebb-lime-query-filter-expression": Omit<LimebbLimeQueryFilterExpression, keyof LimebbLimeQueryFilterExpressionAttributes> & { [K in keyof LimebbLimeQueryFilterExpression & keyof LimebbLimeQueryFilterExpressionAttributes]?: LimebbLimeQueryFilterExpression[K] } & { [K in keyof LimebbLimeQueryFilterExpression & keyof LimebbLimeQueryFilterExpressionAttributes as `attr:${K}`]?: LimebbLimeQueryFilterExpressionAttributes[K] } & { [K in keyof LimebbLimeQueryFilterExpression & keyof LimebbLimeQueryFilterExpressionAttributes as `prop:${K}`]?: LimebbLimeQueryFilterExpression[K] };
7865
7941
  "limebb-lime-query-filter-group": Omit<LimebbLimeQueryFilterGroup, keyof LimebbLimeQueryFilterGroupAttributes> & { [K in keyof LimebbLimeQueryFilterGroup & keyof LimebbLimeQueryFilterGroupAttributes]?: LimebbLimeQueryFilterGroup[K] } & { [K in keyof LimebbLimeQueryFilterGroup & keyof LimebbLimeQueryFilterGroupAttributes as `attr:${K}`]?: LimebbLimeQueryFilterGroupAttributes[K] } & { [K in keyof LimebbLimeQueryFilterGroup & keyof LimebbLimeQueryFilterGroupAttributes as `prop:${K}`]?: LimebbLimeQueryFilterGroup[K] };
7866
7942
  "limebb-lime-query-filter-not": Omit<LimebbLimeQueryFilterNot, keyof LimebbLimeQueryFilterNotAttributes> & { [K in keyof LimebbLimeQueryFilterNot & keyof LimebbLimeQueryFilterNotAttributes]?: LimebbLimeQueryFilterNot[K] } & { [K in keyof LimebbLimeQueryFilterNot & keyof LimebbLimeQueryFilterNotAttributes as `attr:${K}`]?: LimebbLimeQueryFilterNotAttributes[K] } & { [K in keyof LimebbLimeQueryFilterNot & keyof LimebbLimeQueryFilterNotAttributes as `prop:${K}`]?: LimebbLimeQueryFilterNot[K] };
@@ -8360,6 +8436,13 @@ declare module "@stencil/core" {
8360
8436
  * @private
8361
8437
  */
8362
8438
  "limebb-lime-query-filter-comparison": LocalJSX.IntrinsicElements["limebb-lime-query-filter-comparison"] & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterComparisonElement>;
8439
+ /**
8440
+ * Inline editor for a single comparison expression. `shadow: true` so
8441
+ * its stylesheet travels with the host when `limel-popover` portals it
8442
+ * out of the parent's shadow root.
8443
+ * @private
8444
+ */
8445
+ "limebb-lime-query-filter-comparison-editor": LocalJSX.IntrinsicElements["limebb-lime-query-filter-comparison-editor"] & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterComparisonEditorElement>;
8363
8446
  /**
8364
8447
  * Lime Query Filter Expression Router
8365
8448
  * Router component for rendering Lime Query filter expressions.
@@ -8367,21 +8450,18 @@ declare module "@stencil/core" {
8367
8450
  * - Has `key` property → limebb-lime-query-filter-comparison
8368
8451
  * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
8369
8452
  * - `op: Operator.NOT` → limebb-lime-query-filter-not
8453
+ * Uses `scoped: true` (no shadow root) so the dispatched child element
8454
+ * participates in the parent's light DOM — that lets the parent drive
8455
+ * its own layout off the rendered tag (e.g. `:has(limebb-lime-query-filter-group)`).
8370
8456
  * @private
8371
8457
  */
8372
8458
  "limebb-lime-query-filter-expression": LocalJSX.IntrinsicElements["limebb-lime-query-filter-expression"] & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterExpressionElement>;
8373
8459
  /**
8374
8460
  * Lime Query Filter Group Component
8375
- * Renders a group of filter expressions with AND/OR logic that can be toggled.
8376
- * Users can click the header to toggle between "All conditions" (AND) and
8377
- * "Any condition" (OR).
8378
- * This component displays:
8379
- * - A clickable header showing the current logic (AND/OR)
8380
- * - A list of child expressions (which can be comparisons or nested groups)
8381
- * - An "Add" button to add more expressions
8382
- * Clicking the header toggles between AND and OR logic.
8383
- * If a child component emits an ExpressionChange event with undefined, the
8384
- * child is removed from the group.
8461
+ * Renders a group of filter expressions with a combinator picker that selects
8462
+ * between All, Any, Not all, and Not any. The first two map to a bare AND/OR
8463
+ * group; the latter two wrap the same group in a NOT expression. Choosing a
8464
+ * value re-shapes the group, preserving all children.
8385
8465
  * @private
8386
8466
  */
8387
8467
  "limebb-lime-query-filter-group": LocalJSX.IntrinsicElements["limebb-lime-query-filter-group"] & JSXBase.HTMLAttributes<HTMLLimebbLimeQueryFilterGroupElement>;
@@ -8668,6 +8748,13 @@ declare module "@stencil/core" {
8668
8748
  * caller knows will be available where the rule runs. The component
8669
8749
  * forwards it to `RuleRegistry.validate` so `missing-slot` diagnostics
8670
8750
  * surface inline on the offending nodes.
8751
+ * The palette is surface-aware. When the editor is mounted in the DOM,
8752
+ * it walks its host's ancestors through the context registry and unions
8753
+ * the result with `availableContexts` to determine which context slots
8754
+ * are reachable where the rule runs. Primitives whose `reads` slots
8755
+ * aren't all reachable are hidden from the add palette, so an author
8756
+ * can't pick a primitive that would silently fail closed at evaluation
8757
+ * time.
8671
8758
  * @exampleComponent limebb-example-rule-editor
8672
8759
  * @alpha
8673
8760
  * @private
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-crm-building-blocks",
3
- "version": "1.129.0",
3
+ "version": "1.131.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",
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@limetech/eslint-config": "^4.0.1",
38
- "@limetech/lime-elements": "^39.29.2",
38
+ "@limetech/lime-elements": "^39.29.3",
39
39
  "@limetech/lime-web-components": "^6.24.0",
40
40
  "@lundalogik/lime-icons8": "^2.41.0",
41
41
  "@lundalogik/limeclient.js": "^1.105.0",
@@ -1,137 +0,0 @@
1
- @charset "UTF-8";
2
- /**
3
- * Root-level entry point for consuming @limetech/lime-elements SCSS utilities.
4
- *
5
- * This file enables the clean import path:
6
- * `@use '@limetech/lime-elements' as lime-elements;`
7
- *
8
- * It simply forwards everything from the built exports file.
9
- */
10
- /**
11
- * Public SCSS exports for consumers of @limetech/lime-elements.
12
- *
13
- * This file provides reusable styling utilities.
14
- *
15
- * Import this file using:
16
- * `@use '@limetech/lime-elements' as lime-elements;`
17
- *
18
- * For detailed documentation of each utility, its parameters,
19
- * and usage examples, refer to the respective source files.
20
- */
21
- /**
22
- * Note! This file is forwarded via `src/style/exports.scss`
23
- * and exposed to consumers through the root `index.scss`.
24
- *
25
- * Consumers import it using:
26
- * `@use '@limetech/lime-elements' as lime-elements;`
27
- *
28
- * Legacy import paths (`dist/scss/mixins`) are maintained
29
- * for backward compatibility via copy rules in the Stencil config.
30
- */
31
- /**
32
- * Neutralizes the user-agent styles that browsers apply to `<button>` elements
33
- * (their default background, border, padding, font, etc.), without stripping
34
- * the useful defaults that `all: unset;` would also remove
35
- * (such as `display`, `cursor`, and focus behavior).
36
- *
37
- * Prefer this mixin over `all: unset;` on `<button>` elements, then layer
38
- * the styling you want on top — often one of the `is-*-clickable` mixins.
39
- */
40
- /**
41
- * This can be used on a trigger element that opens a dropdown menu or a popover.
42
- */
43
- /**
44
- * This mixin will mask out the content that is close to
45
- * the edges of a scrollable area.
46
- * - If the scrollable content has `overflow-y`, use `vertically`
47
- * as an argument for `$direction`.
48
- - If the scrollable content has `overflow-x`, use `horizontally`
49
- * as an argument for `$direction`.
50
- *
51
- * For the visual effect to work smoothly, we need to make sure that
52
- * the size of the fade-out edge effect is the same as the
53
- * internal paddings of the scrollable area. Otherwise, content of a
54
- * scrollable area that does not have a padding will fade out before
55
- * any scrolling has been done.
56
- * This is why this mixin already adds paddings, which automatically
57
- * default to the size of the fade-out effect.
58
- * This size defaults to `1rem`, but to override the size use
59
- * `--limel-top-edge-fade-height` & `--limel-bottom-edge-fade-height`
60
- * when `vertically` argument is set, and use
61
- * `--limel-left-edge-fade-width` & `--limel-right-edge-fade-width`
62
- * when `horizontally` argument is set.
63
- * Of course you can also programmatically increase and decrease the
64
- * size of these variables for each edge, based on the amount of
65
- * scrolling that has been done by the user. In this case, make sure
66
- * to add a custom padding where the mixin is used, to override
67
- * the paddings that are automatically added by the mixin in the
68
- * compiled CSS code.
69
- */
70
- /**
71
- * This mixin will add an animated underline to the bottom of an `a` elements.
72
- * Note that you may need to add `all: unset;` –depending on your use case–
73
- * before using this mixin.
74
- */
75
- /**
76
- * This mixin creates a cross-browser font stack.
77
- * - `sans-serif` can be used for the UI of the components.
78
- * - `monospace` can be used for code.
79
- *
80
- * ⚠️ If we change the font stacks, we need to update
81
- * 1. the consumer documentation in `README.md`, and
82
- * 2. the CSS variables of `--kompendium-example-font-family`
83
- * in the `<style>` tag of `index.html`.
84
- */
85
- /**
86
- * This mixin is a hack, using old CSS syntax
87
- * to enable you to truncate a piece of text,
88
- * after a certain number of lines.
89
- */
90
- /**
91
- * This mixin will add a chessboard background pattern,
92
- * typically used to visualize transparency.
93
- */
94
- /**
95
- * Make a container resizable by the user.
96
- * This is used in the documentations and examples
97
- * of some components, to demonstrate how the component
98
- * behaves in a resizable container.
99
- */
100
- /**
101
- * Drag to reorder mixins
102
- */
103
- /**
104
- * The breakpoints below are used to create responsive designs
105
- * in Lime's products. Therefore, they are here to get distributed
106
- * to all components in other private repos, which rely on this `mixins`
107
- * file, to create consistent styles.
108
- *
109
- * :::important
110
- * In very rare cases you should used media queries!
111
- * Nowadays, there are many better ways of achieving responsive design
112
- * without media queries. For example, using CSS Grid, Flexbox, and their features.
113
- * :::
114
- */
115
- /**
116
- * Media query mixins for responsive design based on screen width.
117
- * Note that these mixins do not detect the device type!
118
- */
119
- /**
120
- * @mixin action-bar-interactions($item-selector)
121
- * This mixin applies styles for the action bar interactions.
122
- * For example, it animates the height of the action bar from `0` to `auto`.
123
- *
124
- * :::note
125
- * The consumer should set:
126
- * `--limebb-promoted-action-bar-grid-template-rows: 0fr;`
127
- * when the action bar is not supposed to be visible.
128
- * :::
129
- *
130
- * @param {string} $item-selector - The consumer component's tag name for the item that displays the action bar.
131
- */
132
- .expression {
133
- display: flex;
134
- flex-direction: column;
135
- margin-bottom: 1rem;
136
- gap: 1rem;
137
- }
@@ -1 +0,0 @@
1
- import{r as e,c as t,h as i,H as r}from"./p-BIwHMk6j.js";import{n as l,b as s}from"./p-C84z8BwL.js";const a=[{value:l.EQUALS,label:"webclient.operator.equals",icon:"-lime-filter-equal"},{value:l.NOT_EQUALS,label:"webclient.operator.not-equals",icon:"-lime-filter-equal-not"},{value:l.GREATER,label:"webclient.operator.greater-than",icon:"-lime-filter-greater",applicableTypes:["integer","decimal","date","time"]},{value:l.GREATER_OR_EQUAL,label:"webclient.operator.greater-than-or-equal-to",icon:"-lime-filter-greater-equal",applicableTypes:["integer","decimal","date","time"]},{value:l.LESS,label:"webclient.operator.less-than",icon:"-lime-filter-less",applicableTypes:["integer","decimal","date","time"]},{value:l.LESS_OR_EQUAL,label:"webclient.operator.less-than-or-equal-to",icon:"-lime-filter-less-equal",applicableTypes:["integer","decimal","date","time"]},{value:l.IN,label:"webclient.operator.in-filter",icon:"-lime-filter-set-included"},{value:l.LIKE,label:"webclient.operator.contains",icon:"-lime-filter-contain",applicableTypes:["string","text"]},{value:l.BEGINS,label:"webclient.operator.begins-with",icon:"-lime-filter-starts-with",applicableTypes:["string","text"]},{value:l.ENDS,label:"webclient.operator.ends-with",icon:"-lime-filter-ends-with",applicableTypes:["string","text"]}],o=class{constructor(i){e(this,i),this.expressionChange=t(this,"expressionChange"),this.handlePropertyChange=e=>{e.stopPropagation(),this.expressionChange.emit(Object.assign(Object.assign({},this.expression),{key:e.detail}))},this.handleOperatorChange=e=>{e.stopPropagation();const t=e.detail.value,i=this.expression.op;let r=this.expression.exp;t!==l.IN||Array.isArray(r)?i===l.IN&&t!==l.IN&&Array.isArray(r)&&(r=r.length>0?r[0]:""):r=void 0!==r&&""!==r?[r]:[],this.expressionChange.emit({key:this.expression.key,op:t,exp:r})},this.handleValueChange=e=>{e.stopPropagation(),this.expressionChange.emit(Object.assign(Object.assign({},this.expression),{exp:e.detail}))},this.removeExpression=()=>{this.expressionChange.emit(void 0)}}render(){return i(r,{key:"29ddf92b2e83eafe695faeb9a4ce6b8d29aa973e"},this.renderHeader(),i("div",{key:"258f8aeee98a2435d324a1e5b816f111188cf3cc",class:"expression-container"},this.renderPropertySelector(),this.renderOperator(),this.renderValueInput(),i("limel-icon-button",{key:"c9e4cf456908fb82507e2599af631691e96ab8e4",class:"remove",icon:"trash",label:"Remove condition",onClick:this.removeExpression})))}renderHeader(){if(this.label)return i("limel-header",{subheading:this.label})}renderPropertySelector(){return i("limebb-property-selector",{platform:this.platform,context:this.context,label:"Property",limetype:this.limetype,value:this.expression.key,required:!0,onChange:this.handlePropertyChange})}renderOperator(){const e=!!this.expression.op,t=a.map((e=>{var t,i;return{text:null!==(i=null===(t=this.translator)||void 0===t?void 0:t.get(e.label))&&void 0!==i?i:e.label,value:e.value,icon:e.icon?{name:e.icon}:void 0}})),r=t.find((e=>e.value===this.expression.op));return i("limel-select",{class:"operator",label:"Operator",value:r,options:t,disabled:!e&&!this.expression.key,onChange:this.handleOperatorChange})}renderValueInput(){return this.expression.op?i("limebb-lime-query-value-input",{platform:this.platform,context:this.context,limetype:this.limetype,activeLimetype:this.activeLimetype,propertyPath:this.expression.key,operator:this.expression.op,value:this.expression.exp,onChange:this.handleValueChange}):null}get translator(){var e;return null===(e=this.platform)||void 0===e?void 0:e.get(s.Translate)}};o.style=":host(limebb-lime-query-filter-comparison){display:flex;flex-direction:column;gap:0.5rem}.expression-container{position:relative;display:grid;grid-template-columns:repeat(auto-fit, minmax(10rem, 1fr));grid-gap:0.5rem;padding-right:2.75rem}.remove{position:absolute;right:0;top:0.125rem}";const n=class{constructor(i){e(this,i),this.expressionChange=t(this,"expressionChange"),this.handleExpressionChange=e=>{e.stopPropagation(),this.expressionChange.emit(e.detail)}}render(){if(!this.expression)return;const e={platform:this.platform,context:this.context,label:this.label,limetype:this.limetype,activeLimetype:this.activeLimetype};return"key"in this.expression?i("limebb-lime-query-filter-comparison",Object.assign({},e,{expression:this.expression,onExpressionChange:this.handleExpressionChange})):this.expression.op===l.AND||this.expression.op===l.OR?i("limebb-lime-query-filter-group",Object.assign({},e,{expression:this.expression,onExpressionChange:this.handleExpressionChange})):this.expression.op===l.NOT?i("limebb-lime-query-filter-not",Object.assign({},e,{expression:this.expression,onExpressionChange:this.handleExpressionChange})):void 0}};n.style='@charset "UTF-8";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem}';export{o as limebb_lime_query_filter_comparison,n as limebb_lime_query_filter_expression}
@@ -1 +0,0 @@
1
- import{r as e,c as t,h as i,H as r}from"./p-BIwHMk6j.js";import{b as s}from"./p-C84z8BwL.js";import{g as o}from"./p-BV8CPdbi.js";import{i as n}from"./p-CkTg5UPD.js";import{b as l}from"./p-CKEnwX6j.js";import{i as a,a as d,b as h}from"./p-BgAfMcRA.js";import"./p-CtcTT7BK.js";function m(e){return"string"==typeof e||!d(e)&&a(e)&&"[object String]"==h(e)}const c=class{constructor(i){e(this,i),this.change=t(this,"change"),this.label="Sort Order",this.items=[],this.handleItemChange=e=>t=>{t.stopPropagation();const i=[...this.items];null===t.detail?i.splice(e,1):i[e]=t.detail,this.items=i,this.emitChange()},this.handleAddSortField=()=>{this.items=[...this.items,{"":"ASC"}],this.emitChange()}}componentWillLoad(){this.value&&this.value.length>0&&(this.items=[...this.value])}handleValueChange(e){e&&(e.length!==this.items.length||!e.every(((e,t)=>{const i=this.items[t];if(!i)return!1;const r=Object.keys(e)[0],s=Object.keys(i)[0];return r===s&&e[r]===i[s]})))&&(this.items=e.length>0?[...e]:[])}render(){return i(r,{key:"6ef5ee3cf7b67cc0f821272f9d552eab48b60065"},this.renderEmptyState(),this.renderOrderByEditor())}renderEmptyState(){return this.limetype?null:i("div",{class:"empty-state"},i("p",null,"Select a limetype to configure sorting"))}renderOrderByEditor(){return this.limetype?[this.renderHeader(),this.renderOrderByList(),this.renderActions()]:null}renderHeader(){return i("limel-header",{class:"is-narrow",heading:this.label,icon:"sorting_arrows"})}renderOrderByList(){return 0===this.items.length?null:i("div",{class:"order-by-list"},this.items.map(((e,t)=>this.renderItem(e,t))))}renderActions(){return i("limel-button",{label:"Add Sort Field",icon:"plus_math",onClick:this.handleAddSortField})}renderItem(e,t){const r=Object.keys(e)[0]||"";return i("limebb-lime-query-order-by-item",{key:`${r}-${t}`,class:"order-by-item",platform:this.platform,context:this.context,limetype:this.limetype,item:e,onItemChange:this.handleItemChange(t)})}emitChange(){this.change.emit(this.items)}static get watchers(){return{value:[{handleValueChange:0}]}}};c.style=":host(limebb-lime-query-order-by-editor){display:flex;flex-direction:column;gap:1rem;padding:1rem 0}.header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.header h4{margin:0;font-size:1rem;font-weight:600;color:rgb(var(--contrast-1000))}.order-by-list{display:flex;flex-direction:column;gap:1rem;border:1px solid rgb(var(--contrast-300));border-radius:0.25rem;background-color:rgb(var(--contrast-50));min-height:4rem}.order-by-item{padding:0.5rem;border-radius:0.25rem;transition:background-color 0.2s}.order-by-item:hover{background-color:rgb(var(--contrast-100))}.actions{display:flex;width:100%}.summary{display:flex;justify-content:space-between;align-items:center;padding-top:0.5rem;border-top:1px solid rgb(var(--contrast-300))}.summary .count{font-size:0.875rem;font-weight:500;color:rgb(var(--contrast-900))}limel-header.is-narrow{--header-top-right-left-border-radius:0;width:calc(100% + var(--limebb-lime-query-builder-visual-mode-padding) * 2);margin-left:calc(var(--limebb-lime-query-builder-visual-mode-padding) * -1)}.empty-state{padding:0 2rem;text-align:center;color:rgb(var(--contrast-700))}";const u=["string","text","phone","integer","decimal","percent","time","date","year","quarter","month","yesno","link","user","xml","option","set","file","system"],p=u.filter((e=>"system"!==e));p.push("belongsto","hasone","hasmany","hasandbelongstomany");const b=class{constructor(i){e(this,i),this.change=t(this,"change"),this.propertyFields=[],this.fieldName="limetype",this.handleChange=e=>{e.stopPropagation();let t="";e.detail&&"value"in e.detail&&(t=e.detail.value),this.change.emit(t||void 0)}}componentWillLoad(){const e=this.platform.get(s.Application).getLanguage();this.collator=new Intl.Collator(e,{numeric:!0,sensitivity:"base"})}componentShouldUpdate(e,t,i){var r,s,o,n;return"formInfo"!==i||(o=null===(r=null==e?void 0:e.schema)||void 0===r?void 0:r.oneOf,n=null===(s=null==t?void 0:t.schema)||void 0===s?void 0:s.oneOf,!l(o,n))}render(){var e;const t=this.getLimeTypes().map(g);t.sort(((e,t)=>this.collator.compare(e.text,t.text)));let r=t.find((e=>e.value===this.value)),s=this.invalid;return this.value&&!r&&(s=!0,t.unshift({text:(null===(e=this.limeTypeRepository.getLimeType(this.value))||void 0===e?void 0:e.localname.singular)||this.value,value:this.value}),r=t[0]),t.unshift({text:"",value:""}),i("limel-select",{key:"20a7d5eb86c746d11ad805083be5ef9f5fd2397d",label:this.label,options:t,value:r,required:this.required,helperText:this.helperText,invalid:s,disabled:this.disabled||this.readonly,onChange:this.handleChange})}componentWillRender(){this.updatePropertyFields(this.value||"")}getLimeTypes(){var e,t;let i=this.limetypes;return(null===(t=null===(e=this.formInfo)||void 0===e?void 0:e.schema)||void 0===t?void 0:t.oneOf)&&(i=this.formInfo.schema.oneOf.map((e=>e.const)).filter(m)),i?i.map((e=>this.limeTypeRepository.getLimeType(e))).filter(n):this.limeTypeRepository.getLimeTypes()}updatePropertyFields(e){for(const t of this.propertyFields)t.limetype=e,t.allowedPropertyTypes===u&&(t.allowedPropertyTypes=p)}get limeTypeRepository(){return this.platform.get(s.LimeTypeRepository)}},g=e=>({text:e.localname.singular,value:e.name,icon:o(e)});export{c as limebb_lime_query_order_by_editor,b as limebb_limetype_field}
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as s}from"./p-BIwHMk6j.js";import{L as e,b as o}from"./p-C84z8BwL.js";import{g as r,a as n}from"./p-CQUZjrU4.js";import{g as h}from"./p-BV8CPdbi.js";const l=class{constructor(s){t(this,s),this.change=i(this,"change"),this.label="Property",this.required=!1,this.isOpen=!1,this.navigationPath="",this.menuItems=[],this.handleChipSetWrapperClick=t=>{t.stopPropagation()},this.handleChipSetFocus=()=>{this.isOpen||(this.navigationPath=this.value||"",this.loadMenuItems(),this.isOpen=!0)},this.handleSelect=t=>{t.stopPropagation();const i=t.detail.value;if(!i)return;const s=r(this.limetypes,this.limetype,i);(null==s?void 0:s.relation)?this.navigationPath=i:(this.change.emit(i),this.isOpen=!1,this.navigationPath="")},this.handleNavigateMenu=t=>{var i;t.stopPropagation(),(null===(i=t.detail)||void 0===i?void 0:i.value)&&(this.navigationPath=t.detail.value)},this.handleCancel=()=>{this.isOpen=!1,this.navigationPath=""},this.handleChipSetChange=t=>{t.stopPropagation();const i=t.detail;if(!i)return this.change.emit(""),void(this.navigationPath="");const s=Array.isArray(i)?i:[i];if(0===s.length)this.change.emit(""),this.navigationPath="";else{const t=s.at(-1);t&&this.change.emit(t.value),this.navigationPath=""}}}componentWillLoad(){const t=this.platform.get(o.Application).getLanguage();this.collator=new Intl.Collator(t,{numeric:!0,sensitivity:"base"})}render(){if(!this.limetype||!this.limetypes)return null;const t=this.getChipsForPath(this.navigationPath||this.value||"");return s("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},s("div",{slot:"trigger"},s("div",{onClick:this.handleChipSetWrapperClick},s("limel-chip-set",{type:"input",label:this.label,value:t,required:this.required,helperText:this.helperText,delimiter:"›",maxItems:1,onChange:this.handleChipSetChange,onFocus:this.handleChipSetFocus}))))}loadMenuItems(){const t=this.getCurrentLimetype();this.menuItems=t?this.createMenuItems(t,""):[]}getCurrentLimetype(){if(!this.navigationPath)return this.limetypes[this.limetype];const t=r(this.limetypes,this.limetype,this.navigationPath);return(null==t?void 0:t.relation)?t.relation.getLimetype():this.limetypes[this.limetype]}createMenuItems(t,i){const s=[];if(!t)return s;const e=n(t);for(const[t,o]of Object.entries(e)){if("hasmany"===o.type||"hasandbelongstomany"===o.type)continue;const e=i?`${i}.${t}`:t;let r;if(o.relation&&o.relation){const t=o.relation.getLimetype();t&&(r=async()=>this.createMenuItems(t,e))}s.push({text:o.localname||t,secondaryText:this.getSecondaryText(o),icon:this.getIconForProperty(o),value:e,items:r})}return s.sort(((t,i)=>{var s,e;return this.collator.compare(null!==(s=t.text)&&void 0!==s?s:"",null!==(e=i.text)&&void 0!==e?e:"")})),0===s.length?[{text:"No available properties",value:"",disabled:!0}]:s}getSecondaryText(t){var i;if(t.relation){const s=t.relation.getLimetype();return(null===(i=null==s?void 0:s.localname)||void 0===i?void 0:i.singular)||"Object"}return t.type.charAt(0).toUpperCase()+t.type.slice(1)}getIconForProperty(t){return t.relation?h(t.relation.getLimetype()):{name:"dot_circle",color:"rgb(var(--color-gray-default))"}}getChipsForPath(t){if(!t)return[];const i=t.split("."),s=[];let e=this.limetypes[this.limetype],o="";for(const t of i){o=o?`${o}.${t}`:t;const i=n(e)[t];i&&(s.push({id:o,text:i.localname||t,icon:this.getIconForProperty(i),value:o}),i.relation&&(e=i.relation.getLimetype()))}return s}};(function(t,i,s,e){var o,r=arguments.length,n=r<3?i:null===e?e=Object.getOwnPropertyDescriptor(i,s):e;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,i,s,e);else for(var h=t.length-1;h>=0;h--)(o=t[h])&&(n=(r<3?o(n):r>3?o(i,s,n):o(i,s))||n);r>3&&n&&Object.defineProperty(i,s,n)})([e()],l.prototype,"limetypes",void 0),l.style=":host(limebb-property-selector){display:block}limel-menu{display:block;width:100%}";export{l as limebb_property_selector}
@@ -1,2 +0,0 @@
1
- function t(t,e,n){const o="undefined"!=typeof HTMLElement?HTMLElement.prototype:null;for(;t&&t!==o;){const o=Object.getOwnPropertyDescriptor(t,e);if(o&&(!n||o.get))return o;t=Object.getPrototypeOf(t)}}var e,n,o=(e,n)=>{var o;Object.entries(null!=(o=n.o.t)?o:{}).map((([o,[l]])=>{if(31&l||32&l){const l=e[o],i=t(Object.getPrototypeOf(e),o,!0)||Object.getOwnPropertyDescriptor(e,o);i&&Object.defineProperty(e,o,{get(){return i.get.call(this)},set(t){i.set.call(this,t)},configurable:!0,enumerable:!0}),n.l.has(o)?e[o]=n.l.get(o):void 0!==l&&(e[o]=l)}}))},l=t=>{if(t.__stencil__getHostRef)return t.__stencil__getHostRef()},i=(t,e)=>{e&&(t.__stencil__getHostRef=()=>e,e.i=t,512&e.o.u&&o(t,e))},s=(t,e)=>e in t,r=(t,n)=>(e||console.error)(t,n),c=t=>e=t,u=new Map,f=new Map,a="http://www.w3.org/1999/xlink",d="undefined"!=typeof window?window:{},p={u:0,p:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,o)=>t.addEventListener(e,n,o),rel:(t,e,n,o)=>t.removeEventListener(e,n,o),ce:(t,e)=>new CustomEvent(t,e)},h=t=>Promise.resolve(t),m=(()=>{try{return!!d.document.adoptedStyleSheets&&(new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync)}catch(t){}return!1})(),v=!!m&&(()=>!!d.document&&Object.getOwnPropertyDescriptor(d.document.adoptedStyleSheets,"length").writable)(),y=!1,b=[],$=[],w=(t,e)=>n=>{t.push(n),y||(y=!0,e&&4&p.u?S(j):p.raf(j))},g=t=>{for(let e=0;e<t.length;e++)try{t[e](performance.now())}catch(t){r(t)}t.length=0},j=()=>{g(b),g($),(y=b.length>0)&&p.raf(j)},S=t=>h().then(t),O=w($,!0);function k(t){const e={mode:"open"};e.delegatesFocus=!!(16&t.u);const o=this.attachShadow(e);void 0===n&&(n=null),n&&(v?o.adoptedStyleSheets.push(n):o.adoptedStyleSheets=[...o.adoptedStyleSheets,n])}function E(t){var e,n,o;return null!=(o=null==(n=null==(e=t.head)?void 0:e.querySelector('meta[name="csp-nonce"]'))?void 0:n.getAttribute("content"))?o:void 0}var M,C=new WeakMap,x=t=>"sc-"+t.h,A=t=>"object"==(t=typeof t)||"function"===t,L=(t,e,...n)=>{let o=null,l=null,i=!1,s=!1;const r=[],c=e=>{for(let n=0;n<e.length;n++)o=e[n],Array.isArray(o)?c(o):null!=o&&"boolean"!=typeof o&&((i="function"!=typeof t&&!A(o))&&(o+=""),i&&s?r[r.length-1].m+=o:r.push(i?N(null,o):o),s=i)};if(c(n),e){e.key&&(l=e.key);{const t=e.className||e.class;t&&(e.class="object"!=typeof t?t:Object.keys(t).filter((e=>t[e])).join(" "))}}if("function"==typeof t)return t(null===e?{}:e,r,D);const u=N(t,null);return u.v=e,r.length>0&&(u.$=r),u.j=l,u},N=(t,e)=>({u:0,S:t,m:null!=e?e:null,O:null,$:null,v:null,j:null}),R={},D={forEach:(t,e)=>t.map(H).forEach(e),map:(t,e)=>t.map(H).map(e).map(P)},H=t=>({vattrs:t.v,vchildren:t.$,vkey:t.j,vname:t.k,vtag:t.S,vtext:t.m}),P=t=>{if("function"==typeof t.vtag){const e={...t.vattrs};return t.vkey&&(e.key=t.vkey),t.vname&&(e.name=t.vname),L(t.vtag,e,...t.vchildren||[])}const e=N(t.vtag,t.vtext);return e.v=t.vattrs,e.$=t.vchildren,e.j=t.vkey,e.k=t.vname,e},T=t=>{if(!t)return;const e=Object.keys(t);if(0===e.length)return;let n=!1;for(const o of e){if(n)break;for(const e of t[o])if("string"==typeof e){n=!0;break}}if(!n)return t;const o={};for(const n of e)o[n]=t[n].map((t=>"string"==typeof t?{[t]:0}:t));return o},U=(t,e)=>null==t||A(t)?t:4&e?"false"!==t&&(""===t||!!t):2&e?"string"==typeof t?parseFloat(t):"number"==typeof t?t:NaN:1&e?t+"":t,W=t=>{var e;return null==(e=l(t))?void 0:e.$hostElement$},z=(t,e)=>{const n=W(t);return{emit:t=>F(n,e,{bubbles:!0,composed:!0,cancelable:!0,detail:t})}},F=(t,e,n)=>{const o=p.ce(e,n);return t.dispatchEvent(o),o},V=(t,e,n,o,i,r)=>{if(n===o)return;let c=s(t,e),u=e.toLowerCase();if("class"===e){const e=t.classList,l=G(n);let i=G(o);e.remove(...l.filter((t=>t&&!i.includes(t)))),e.add(...i.filter((t=>t&&!l.includes(t))))}else if("style"===e){for(const e in n)o&&null!=o[e]||(e.includes("-")?t.style.removeProperty(e):t.style[e]="");for(const e in o)n&&o[e]===n[e]||(e.includes("-")?t.style.setProperty(e,o[e]):t.style[e]=o[e])}else if("key"===e);else if("ref"===e)o&&it(o,t);else if(c||"o"!==e[0]||"n"!==e[1]){if("a"===e[0]&&e.startsWith("attr:")){const n=e.slice(5);let i;{const e=l(t);if(e&&e.o&&e.o.t){const t=e.o.t[n];t&&t[1]&&(i=t[1])}}return i||(i=n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),void(null==o||!1===o?!1===o&&""!==t.getAttribute(i)||t.removeAttribute(i):t.setAttribute(i,!0===o?"":o))}if("p"===e[0]&&e.startsWith("prop:")){const n=e.slice(5);try{t[n]=o}catch(t){}return}{const l=A(o);if((c||l&&null!==o)&&!i)try{if(t.tagName.includes("-"))t[e]!==o&&(t[e]=o);else{const l=null==o?"":o;"list"===e?c=!1:null!=n&&t[e]===l||("function"==typeof t.__lookupSetter__(e)?t[e]=l:t.setAttribute(e,l))}}catch(t){}let s=!1;u!==(u=u.replace(/^xlink\:?/,""))&&(e=u,s=!0),null==o||!1===o?!1===o&&""!==t.getAttribute(e)||(s?t.removeAttributeNS(a,e):t.removeAttribute(e)):(!c||4&r||i)&&!l&&1===t.nodeType&&(o=!0===o?"":o,s?t.setAttributeNS(a,e,o):t.setAttribute(e,o))}}else if(e="-"===e[2]?e.slice(3):s(d,u)?u.slice(2):u[2]+e.slice(3),n||o){const l=e.endsWith(Y);e=e.replace(Z,""),n&&p.rel(t,e,n,l),o&&p.ael(t,e,o,l)}},q=/\s/,G=t=>("object"==typeof t&&t&&"baseVal"in t&&(t=t.baseVal),t&&"string"==typeof t?t.split(q):[]),Y="Capture",Z=RegExp(Y+"$"),_=(t,e,n)=>{const o=11===e.O.nodeType&&e.O.host?e.O.host:e.O,l=t&&t.v||{},i=e.v||{};for(const t of B(Object.keys(l)))t in i||V(o,t,l[t],void 0,n,e.u);for(const t of B(Object.keys(i)))V(o,t,l[t],i[t],n,e.u)};function B(t){return t.includes("ref")?[...t.filter((t=>"ref"!==t)),"ref"]:t}var I=!1,J=!1,K=[],Q=[],X=(t,e,n)=>{const o=e.$[n];let l,i,s=0;if(null!=o.m)l=o.O=d.document.createTextNode(o.m);else{if(!d.document)throw Error("You are trying to render a Stencil component in an environment that doesn't support the DOM.");if(l=o.O=d.document.createElement(o.S),_(null,o,J),o.$){const e="template"===o.S?l.content:l;for(s=0;s<o.$.length;++s)i=X(t,o,s),i&&e.appendChild(i)}}return l["s-hn"]=M,l},tt=(t,e,n,o,l,i)=>{let s,r=t;for(r.shadowRoot&&r.tagName===M&&(r=r.shadowRoot),"template"===n.S&&(r=r.content);l<=i;++l)o[l]&&(s=X(null,n,l),s&&(o[l].O=s,st(r,s,e)))},et=(t,e,n)=>{for(let o=e;o<=n;++o){const e=t[o];if(e){const t=e.O;lt(e),t&&t.remove()}}},nt=(t,e,n=!1)=>t.S===e.S&&(n?(n&&!t.j&&e.j&&(t.j=e.j),!0):t.j===e.j),ot=(t,e,n=!1)=>{const o=e.O=t.O,l=t.$,i=e.$,s=e.m;null==s?("slot"!==e.S||I||t.k!==e.k&&(e.O["s-sn"]=e.k||"",(t=>{p.u|=1;const e=t.closest(M.toLowerCase());if(null!=e){const n=Array.from(e.__childNodes||e.childNodes).find((t=>t["s-cr"])),o=Array.from(t.__childNodes||t.childNodes);for(const t of n?o.reverse():o)null!=t["s-sh"]&&(st(e,t,null!=n?n:null),t["s-sh"]=void 0)}p.u&=-2})(e.O.parentElement)),_(t,e,J),null!==l&&null!==i?((t,e,n,o,l=!1)=>{let i,s,r=0,c=0,u=0,f=0,a=e.length-1,d=e[0],p=e[a],h=o.length-1,m=o[0],v=o[h];const y="template"===n.S?t.content:t;for(;r<=a&&c<=h;)if(null==d)d=e[++r];else if(null==p)p=e[--a];else if(null==m)m=o[++c];else if(null==v)v=o[--h];else if(nt(d,m,l))ot(d,m,l),d=e[++r],m=o[++c];else if(nt(p,v,l))ot(p,v,l),p=e[--a],v=o[--h];else if(nt(d,v,l))ot(d,v,l),st(y,d.O,p.O.nextSibling),d=e[++r],v=o[--h];else if(nt(p,m,l))ot(p,m,l),st(y,p.O,d.O),p=e[--a],m=o[++c];else{for(u=-1,f=r;f<=a;++f)if(e[f]&&null!==e[f].j&&e[f].j===m.j){u=f;break}u>=0?(s=e[u],s.S!==m.S?i=X(e&&e[c],n,u):(ot(s,m,l),e[u]=void 0,i=s.O),m=o[++c]):(i=X(e&&e[c],n,c),m=o[++c]),i&&st(d.O.parentNode,i,d.O)}r>a?tt(t,null==o[h+1]?null:o[h+1].O,n,o,c,h):c>h&&et(e,r,a)})(o,l,e,i,n):null!==i?(null!==t.m&&(o.textContent=""),tt(o,null,e,i,0,i.length-1)):!n&&null!==l&&et(l,0,l.length-1)):t.m!==s&&(o.data=s)},lt=t=>{t.v&&t.v.ref&&K.push((()=>t.v.ref(null))),t.$&&t.$.map(lt)},it=(t,e)=>{Q.push((()=>t(e)))},st=(t,e,n)=>t.__insertBefore?t.__insertBefore(e,n):null==t?void 0:t.insertBefore(e,n),rt=(t,e)=>{if(e&&!t.M&&e["s-p"]){const n=e["s-p"].push(new Promise((o=>t.M=()=>{e["s-p"].splice(n-1,1),o()})))}},ct=(t,e)=>{if(t.u|=16,4&t.u)return void(t.u|=512);rt(t,t.C);const n=()=>ut(t,e);if(!e)return O(n);queueMicrotask((()=>{n()}))},ut=(t,e)=>{const n=t.$hostElement$,o=t.i;if(!o)throw Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`);let l;return e?(t.A.length&&t.A.forEach((t=>t(n))),l=vt(o,"componentWillLoad",void 0,n)):l=vt(o,"componentWillUpdate",void 0,n),l=ft(l,(()=>vt(o,"componentWillRender",void 0,n))),ft(l,(()=>dt(t,o,e)))},ft=(t,e)=>at(t)?t.then(e).catch((t=>{console.error(t),e()})):e(),at=t=>t instanceof Promise||t&&t.then&&"function"==typeof t.then,dt=async(t,e,n)=>{var o;const l=t.$hostElement$,i=l["s-rc"];n&&(t=>{const e=t.o,n=t.$hostElement$,o=e.u,l=((t,e)=>{var n,o,l;const i=x(e),s=f.get(i);if(!d.document)return i;if(t=11===t.nodeType?t:d.document,s)if("string"==typeof s){let l,r=C.get(t=t.head||t);if(r||C.set(t,r=new Set),!r.has(i)){l=d.document.createElement("style"),l.textContent=s;const c=null!=(n=p.L)?n:E(d.document);if(null!=c&&l.setAttribute("nonce",c),!(1&e.u))if("HEAD"===t.nodeName){const e=t.querySelectorAll("link[rel=preconnect]"),n=e.length>0?e[e.length-1].nextSibling:t.querySelector("style");t.insertBefore(l,(null==n?void 0:n.parentNode)===t?n:null)}else if("host"in t)if(m){const e=new(null!=(o=t.defaultView)?o:t.ownerDocument.defaultView).CSSStyleSheet;e.replaceSync(s),v?t.adoptedStyleSheets.unshift(e):t.adoptedStyleSheets=[e,...t.adoptedStyleSheets]}else{const e=t.querySelector("style");e?e.textContent=s+e.textContent:t.prepend(l)}else t.append(l);1&e.u&&t.insertBefore(l,null),4&e.u&&(l.textContent+="slot-fb{display:contents}slot-fb[hidden]{display:none}"),r&&r.add(i)}}else{let e=C.get(t);if(e||C.set(t,e=new Set),!e.has(i)){const n=null!=(l=t.defaultView)?l:t.ownerDocument.defaultView;let o;if(s.constructor===n.CSSStyleSheet)o=s;else{o=new n.CSSStyleSheet;for(let t=0;t<s.cssRules.length;t++)o.insertRule(s.cssRules[t].cssText,t)}v?t.adoptedStyleSheets.push(o):t.adoptedStyleSheets=[...t.adoptedStyleSheets,o],e.add(i)}}return i})(n.shadowRoot?n.shadowRoot:n.getRootNode(),e);10&o&&(n["s-sc"]=l,n.classList.add(l+"-h"))})(t);pt(t,e,l,n),i&&(i.map((t=>t())),l["s-rc"]=void 0);{const e=null!=(o=l["s-p"])?o:[],n=()=>ht(t);0===e.length?n():(Promise.all(e).then(n).catch(n),t.u|=4,e.length=0)}},pt=(t,e,n,o)=>{try{e=e.render&&e.render(),t.u&=-17,t.u|=2,((t,e,n=!1)=>{const o=t.$hostElement$,l=t.o,i=t.N||N(null,null),s=(t=>t&&t.S===R)(e)?e:L(null,null,e);if(M=o.tagName,l.R&&(s.v=s.v||{},l.R.forEach((([t,e])=>{s.v[e]=o[t]}))),n&&s.v)for(const t of Object.keys(s.v))o.hasAttribute(t)&&!["key","ref","style","class"].includes(t)&&(s.v[t]=o[t]);s.S=null,s.u|=4,t.N=s,s.O=i.O=o.shadowRoot||o,I=!(!(1&l.u)||128&l.u),ot(i,s,n),K.forEach((t=>t())),K.length=0,Q.forEach((t=>t())),Q.length=0})(t,e,o)}catch(e){r(e,t.$hostElement$)}return null},ht=t=>{const e=t.$hostElement$,n=t.i,o=t.C;vt(n,"componentDidRender",void 0,e),64&t.u?vt(n,"componentDidUpdate",void 0,e):(t.u|=64,yt(e),vt(n,"componentDidLoad",void 0,e),t.D(e),o||mt()),t.M&&(t.M(),t.M=void 0),512&t.u&&S((()=>ct(t,!1))),t.u&=-517},mt=()=>{S((()=>F(d,"appload",{detail:{namespace:"lime-crm-building-blocks"}})))},vt=(t,e,n,o)=>{if(t&&t[e])try{return t[e](n)}catch(t){r(t,o)}},yt=t=>t.classList.add("hydrated"),bt=(t,e,n,o)=>{const i=l(t);if(!i)return;if(!i)throw Error(`Couldn't find host element for "${o.h}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`);const s=i.$hostElement$,c=i.l.get(e),u=i.u,f=i.i;if(n=U(n,o.t[e][0]),!(8&u&&void 0!==c||n===c||Number.isNaN(c)&&Number.isNaN(n))){if(i.l.set(e,n),o.H){const t=o.H[e];t&&t.map((t=>{try{const[[o,l]]=Object.entries(t);(128&u||1&l)&&(f?f[o](n,c,e):i.A.push((()=>{i.i[o](n,c,e)})))}catch(t){r(t,s)}}))}if(2&u){if(f.componentShouldUpdate&&!1===f.componentShouldUpdate(n,c,e)&&!(16&u))return;16&u||ct(i,!1)}}},$t=(e,n,o)=>{var i,s;const r=e.prototype;{e.watchers&&!n.H&&(n.H=T(e.watchers)),e.deserializers&&!n.P&&(n.P=e.deserializers),e.serializers&&!n.T&&(n.T=e.serializers);const c=Object.entries(null!=(i=n.t)?i:{});if(c.map((([e,[i]])=>{if(31&i||2&o&&32&i){const{get:s,set:c}=t(r,e)||{};s&&(n.t[e][0]|=2048),c&&(n.t[e][0]|=4096),(1&o||!s)&&Object.defineProperty(r,e,{get(){{if(!(2048&n.t[e][0]))return((t,e)=>l(this).l.get(e))(0,e);const t=l(this),o=t?t.i:r;if(!o)return;return o[e]}},configurable:!0,enumerable:!0}),Object.defineProperty(r,e,{set(t){const s=l(this);if(s){if(c)return void 0===(32&i?this[e]:s.$hostElement$[e])&&s.l.get(e)&&(t=s.l.get(e)),c.call(this,U(t,i)),void bt(this,e,t=32&i?this[e]:s.$hostElement$[e],n);{if(!(1&o&&4096&n.t[e][0]))return bt(this,e,t,n),void(1&o&&!s.i&&s.A.push((()=>{4096&n.t[e][0]&&s.i[e]!==s.l.get(e)&&(s.i[e]=t)})));const l=()=>{const o=s.i[e];!s.l.get(e)&&o&&s.l.set(e,o),s.i[e]=U(t,i),bt(this,e,s.i[e],n)};s.i?l():s.A.push((()=>{l()}))}}}})}})),1&o){const t=new Map;r.attributeChangedCallback=function(e,o,i){p.jmp((()=>{var s;const u=t.get(e),f=l(this);if(this.hasOwnProperty(u)&&(i=this[u],delete this[u]),r.hasOwnProperty(u)&&"number"==typeof this[u]&&this[u]==i)return;if(null==u){const t=null==f?void 0:f.u;if(f&&t&&!(8&t)&&i!==o){const l=f.i,r=null==(s=n.H)?void 0:s[e];null==r||r.forEach((n=>{const[[s,r]]=Object.entries(n);null!=l[s]&&(128&t||1&r)&&l[s].call(l,i,o,e)}))}return}const a=c.find((([t])=>t===u)),d=a&&4&a[1][0],p=d&&null===i&&void 0===this[u];d&&(i=null!==i&&"false"!==i);const h=Object.getOwnPropertyDescriptor(r,u);p||i==this[u]||h.get&&!h.set||(this[u]=i)}))},e.observedAttributes=Array.from(new Set([...Object.keys(null!=(s=n.H)?s:{}),...c.filter((([t,e])=>31&e[0])).map((([e,o])=>{var l;const i=o[1]||e;return t.set(i,e),512&o[0]&&(null==(l=n.R)||l.push([e,i])),i}))]))}}return e},wt=(t,e)=>{vt(t,"connectedCallback",void 0,e)},gt=(t,e)=>{vt(t,"disconnectedCallback",void 0,e||t)},jt=(t,e={})=>{var n;if(!d.document)return void console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");const o=[],i=e.exclude||[],s=d.customElements,c=d.document.head,a=c.querySelector("meta[charset]"),h=d.document.createElement("style"),v=[];let y,b=!0;if(Object.assign(p,e),p.p=new URL(e.resourcesUrl||"./",d.document.baseURI).href,t.map((t=>{t[1].map((e=>{var n,c;const a={u:e[0],h:e[1],t:e[2],U:e[3]};a.t=e[2],a.R=[],a.H=T(e[4]),a.T=null!=(n=e[5])?n:{},a.P=null!=(c=e[6])?c:{};const d=a.h,h=class extends HTMLElement{"s-p";"s-rc";hasRegisteredEventListeners=!1;constructor(t){if(super(t),((t,e)=>{const n={u:0,$hostElement$:t,o:e,l:new Map,W:new Map};n.F=new Promise((t=>n.D=t)),t["s-p"]=[],t["s-rc"]=[],n.A=[];const o=n;t.__stencil__getHostRef=()=>o})(t=this,a),1&a.u)if(t.shadowRoot){if("open"!==t.shadowRoot.mode)throw Error(`Unable to re-use existing shadow root for ${a.h}! Mode is set to ${t.shadowRoot.mode} but Stencil only supports open shadow roots.`)}else k.call(t,a)}connectedCallback(){l(this)&&(this.hasRegisteredEventListeners||(this.hasRegisteredEventListeners=!0),y&&(clearTimeout(y),y=null),b?v.push(this):p.jmp((()=>(t=>{if(!(1&p.u)){const e=l(t);if(!e)return;const n=e.o,o=()=>{};if(1&e.u)(null==e?void 0:e.i)?wt(e.i,t):(null==e?void 0:e.F)&&e.F.then((()=>wt(e.i,t)));else{e.u|=1;{let n=t;for(;n=n.parentNode||n.host;)if(n["s-p"]){rt(e,e.C=n);break}}n.t&&Object.entries(n.t).map((([e,[n]])=>{if(31&n&&Object.prototype.hasOwnProperty.call(t,e)){const n=t[e];delete t[e],t[e]=n}})),(async(t,e,n)=>{let o;try{if(!(32&e.u)){if(e.u|=32,n.V){const l=((t,e)=>{const n=t.h.replace(/-/g,"_"),o=t.V;if(!o)return;const l=u.get(o);return l?l[n]:import(`./${o}.entry.js`).then((t=>(u.set(o,t),t[n])),(t=>{r(t,e.$hostElement$)}))
2
- /*!__STENCIL_STATIC_IMPORT_SWITCH__*/})(n,e);if(l&&"then"in l){const t=()=>{};o=await l,t()}else o=l;if(!o)throw Error(`Constructor for "${n.h}#${e.q}" was not found`);o.isProxied||(n.H=T(o.watchers),n.T=o.serializers,n.P=o.deserializers,$t(o,n,2),o.isProxied=!0);const i=()=>{};e.u|=8;try{new o(e)}catch(e){r(e,t)}e.u&=-9,e.u|=128,i(),wt(e.i,t)}else o=t.constructor,customElements.whenDefined(t.localName).then((()=>e.u|=128));if(o&&o.style){let t;"string"==typeof o.style&&(t=o.style);const e=x(n);if(!f.has(e)){const o=()=>{};((t,e,n)=>{let o=f.get(t);m&&n?(o=o||new CSSStyleSheet,"string"==typeof o?o=e:o.replaceSync(e)):o=e,f.set(t,o)})(e,t,!!(1&n.u)),o()}}}const l=e.C,i=()=>ct(e,!0);l&&l["s-rc"]?l["s-rc"].push(i):i()}catch(n){r(n,t),e.M&&(e.M(),e.M=void 0),e.D&&e.D(t)}})(t,e,n)}o()}})(this))))}disconnectedCallback(){p.jmp((()=>(async t=>{if(!(1&p.u)){const e=l(t);(null==e?void 0:e.i)?gt(e.i,t):(null==e?void 0:e.F)&&e.F.then((()=>gt(e.i,t)))}C.has(t)&&C.delete(t),t.shadowRoot&&C.has(t.shadowRoot)&&C.delete(t.shadowRoot)})(this))),p.raf((()=>{var t;const e=l(this);if(!e)return;const n=v.findIndex((t=>t===this));n>-1&&v.splice(n,1),(null==(t=null==e?void 0:e.N)?void 0:t.O)instanceof Node&&!e.N.O.isConnected&&delete e.N.O}))}componentOnReady(){var t;return null==(t=l(this))?void 0:t.F}};a.V=t[0],i.includes(d)||s.get(d)||(o.push(d),s.define(d,$t(h,a,1)))}))})),o.length>0&&(h.textContent+=o.sort()+"{visibility:hidden}.hydrated{visibility:inherit}",h.innerHTML.length)){h.setAttribute("data-styles","");const t=null!=(n=p.L)?n:E(d.document);null!=t&&h.setAttribute("nonce",t),c.insertBefore(h,a?a.nextSibling:c.firstChild)}b=!1,v.length?v.map((t=>t.connectedCallback())):p.jmp((()=>y=setTimeout(mt,30)))},St=t=>p.L=t;export{R as H,c as a,jt as b,z as c,W as g,L as h,h as p,i as r,St as s}