@limetech/lime-crm-building-blocks 1.130.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 (325) hide show
  1. package/CHANGELOG.md +7 -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 +4 -4
  63. package/dist/cjs/limebb-rule-gate.cjs.entry.js +3 -3
  64. package/dist/cjs/limebb-text-editor-picker.cjs.entry.js +1 -1
  65. package/dist/cjs/limebb-text-editor.cjs.entry.js +4 -4
  66. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +3 -3
  67. package/dist/cjs/{limetype-DJNXULgk.js → limetype-CNjUGemK.js} +1 -1
  68. package/dist/cjs/loader.cjs.js +2 -2
  69. package/dist/cjs/{web-component-template-BWCutZB6.js → web-component-template-CZ0lPHIg.js} +1 -1
  70. package/dist/collection/collection-manifest.json +1 -0
  71. package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
  72. package/dist/collection/components/browser/browser.js +2 -2
  73. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  74. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  75. package/dist/collection/components/chat-list/chat-list.js +1 -1
  76. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  77. package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
  78. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
  79. package/dist/collection/components/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/rule-chip-popover/rule-chip-popover.js +1 -1
  118. package/dist/collection/components/rule-editor/rule-editor.css +1 -0
  119. package/dist/collection/components/rule-editor/rule-editor.js +1 -1
  120. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  121. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  122. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  123. package/dist/collection/components/text-editor/text-editor.js +1 -1
  124. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  125. package/dist/components/chat-icon-list.js +1 -1
  126. package/dist/components/chat-item.js +1 -1
  127. package/dist/components/currency-picker.js +1 -1
  128. package/dist/components/date-picker.js +1 -1
  129. package/dist/components/document-item.js +1 -1
  130. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  131. package/dist/components/feed-timeline-item.js +1 -1
  132. package/dist/components/kanban-group.js +1 -1
  133. package/dist/components/kanban-item.js +1 -1
  134. package/dist/components/lime-query-filter-builder.js +1 -1
  135. package/dist/components/lime-query-filter-comparison-editor.js +1 -0
  136. package/dist/components/lime-query-filter-comparison.js +1 -1
  137. package/dist/components/lime-query-filter-expression.js +1 -1
  138. package/dist/components/limebb-alert-dialog.js +1 -1
  139. package/dist/components/limebb-browser.js +1 -1
  140. package/dist/components/limebb-chat-list.js +1 -1
  141. package/dist/components/limebb-color-palette-picker.js +1 -1
  142. package/dist/components/limebb-color-palette-swatches.js +1 -1
  143. package/dist/components/limebb-composer-toolbar.js +1 -1
  144. package/dist/components/limebb-dashboard-widget.js +1 -1
  145. package/dist/components/limebb-date-range.js +1 -1
  146. package/dist/components/limebb-document-chips.js +1 -1
  147. package/dist/components/limebb-document-picker.js +1 -1
  148. package/dist/components/limebb-feed.js +1 -1
  149. package/dist/components/limebb-icon-picker.js +1 -1
  150. package/dist/components/limebb-info-tile-format.js +1 -1
  151. package/dist/components/limebb-info-tile.js +1 -1
  152. package/dist/components/limebb-lime-query-builder.js +1 -1
  153. package/dist/components/limebb-lime-query-filter-comparison-editor.d.ts +11 -0
  154. package/dist/components/limebb-lime-query-filter-comparison-editor.js +1 -0
  155. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  156. package/dist/components/limebb-locale-picker.js +1 -1
  157. package/dist/components/limebb-mention-group-counter.js +1 -1
  158. package/dist/components/limebb-rule-arg-filter-editor.js +1 -1
  159. package/dist/components/limebb-rule-editor.js +1 -1
  160. package/dist/components/limebb-rule-gate.js +1 -1
  161. package/dist/components/limebb-text-editor.js +1 -1
  162. package/dist/components/limebb-trend-indicator.js +1 -1
  163. package/dist/components/limetype-field.js +1 -1
  164. package/dist/components/live-docs-info.js +1 -1
  165. package/dist/components/notification-item.js +1 -1
  166. package/dist/components/order-by-editor.js +1 -1
  167. package/dist/components/order-by-item.js +1 -1
  168. package/dist/components/percentage-visualizer.js +1 -1
  169. package/dist/components/property-selector.js +1 -1
  170. package/dist/components/response-format-item.js +1 -1
  171. package/dist/components/rule-chip-popover.js +1 -1
  172. package/dist/components/summary-popover.js +1 -1
  173. package/dist/components/typing-indicator.js +1 -1
  174. package/dist/esm/filter-group-logic-RXn-GGk1.js +126 -0
  175. package/dist/esm/{index-BIwHMk6j.js → index-DYpn0EkA.js} +12 -0
  176. package/dist/esm/{index.esm-CJU4N9K8.js → index.esm-DAe4_MLR.js} +1 -1
  177. package/dist/esm/lime-crm-building-blocks.js +3 -3
  178. package/dist/esm/lime-query-operators-DYlN1dAt.js +63 -0
  179. package/dist/esm/{lime-query-validation-COGfPUFN.js → lime-query-validation-DXxPZ2CH.js} +1 -1
  180. package/dist/esm/limebb-alert-dialog.entry.js +2 -2
  181. package/dist/esm/limebb-browser.entry.js +4 -4
  182. package/dist/esm/limebb-chat-icon-list_3.entry.js +6 -6
  183. package/dist/esm/limebb-chat-list.entry.js +3 -3
  184. package/dist/esm/limebb-color-palette-picker.entry.js +2 -2
  185. package/dist/esm/limebb-color-palette-swatches.entry.js +2 -2
  186. package/dist/esm/limebb-component-config.entry.js +3 -3
  187. package/dist/esm/limebb-component-picker.entry.js +2 -2
  188. package/dist/esm/limebb-composer-toolbar.entry.js +4 -4
  189. package/dist/esm/limebb-currency-picker.entry.js +3 -3
  190. package/dist/esm/limebb-dashboard-widget.entry.js +2 -2
  191. package/dist/esm/limebb-data-cells.entry.js +2 -2
  192. package/dist/esm/limebb-date-picker.entry.js +3 -3
  193. package/dist/esm/limebb-date-range.entry.js +2 -2
  194. package/dist/esm/limebb-document-chips.entry.js +2 -2
  195. package/dist/esm/limebb-document-item.entry.js +3 -3
  196. package/dist/esm/limebb-document-picker.entry.js +2 -2
  197. package/dist/esm/limebb-empty-state.entry.js +1 -1
  198. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +2 -2
  199. package/dist/esm/limebb-feed-timeline-item.entry.js +3 -3
  200. package/dist/esm/limebb-feed.entry.js +3 -3
  201. package/dist/esm/limebb-icon-picker.entry.js +2 -2
  202. package/dist/esm/limebb-info-tile-currency-format.entry.js +1 -1
  203. package/dist/esm/limebb-info-tile-date-format.entry.js +1 -1
  204. package/dist/esm/limebb-info-tile-decimal-format.entry.js +1 -1
  205. package/dist/esm/limebb-info-tile-format.entry.js +2 -2
  206. package/dist/esm/limebb-info-tile-relative-date-format.entry.js +1 -1
  207. package/dist/esm/limebb-info-tile-unit-format.entry.js +1 -1
  208. package/dist/esm/limebb-info-tile.entry.js +4 -4
  209. package/dist/esm/limebb-kanban-group.entry.js +3 -3
  210. package/dist/esm/limebb-kanban-item.entry.js +3 -3
  211. package/dist/esm/limebb-kanban.entry.js +1 -1
  212. package/dist/esm/limebb-lime-query-builder.entry.js +4 -4
  213. package/dist/esm/limebb-lime-query-filter-builder.entry.js +4 -8
  214. package/dist/esm/{limebb-lime-query-filter-group_3.entry.js → limebb-lime-query-filter-comparison-editor_4.entry.js} +158 -188
  215. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +83 -121
  216. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +5 -5
  217. package/dist/esm/limebb-lime-query-order-by-item.entry.js +3 -3
  218. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +4 -4
  219. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +2 -2
  220. package/dist/esm/limebb-limeobject-file-viewer.entry.js +2 -2
  221. package/dist/esm/limebb-live-docs-info.entry.js +3 -3
  222. package/dist/esm/limebb-loader.entry.js +2 -2
  223. package/dist/esm/limebb-locale-picker.entry.js +3 -3
  224. package/dist/esm/limebb-mention-group-counter.entry.js +3 -3
  225. package/dist/esm/limebb-mention.entry.js +2 -2
  226. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  227. package/dist/esm/limebb-notification-item.entry.js +3 -3
  228. package/dist/esm/limebb-notification-list.entry.js +2 -2
  229. package/dist/esm/limebb-object-chip.entry.js +3 -3
  230. package/dist/esm/limebb-percentage-visualizer.entry.js +4 -4
  231. package/dist/esm/limebb-property-selector.entry.js +42 -19
  232. package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
  233. package/dist/esm/limebb-rule-chip-popover.entry.js +4 -4
  234. package/dist/esm/limebb-rule-editor.entry.js +4 -4
  235. package/dist/esm/limebb-rule-gate.entry.js +3 -3
  236. package/dist/esm/limebb-text-editor-picker.entry.js +1 -1
  237. package/dist/esm/limebb-text-editor.entry.js +4 -4
  238. package/dist/esm/limebb-trend-indicator.entry.js +3 -3
  239. package/dist/esm/{limetype-Dc4uQPMG.js → limetype-C1wEJnPI.js} +1 -1
  240. package/dist/esm/loader.js +3 -3
  241. package/dist/esm/{web-component-template-6zRYia86.js → web-component-template-D6zkEjKN.js} +1 -1
  242. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  243. package/dist/lime-crm-building-blocks/{p-34eb61da.entry.js → p-00d00277.entry.js} +1 -1
  244. package/dist/lime-crm-building-blocks/p-072756ea.entry.js +1 -0
  245. package/dist/lime-crm-building-blocks/{p-32c3789e.entry.js → p-07ef2fd0.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/{p-c609b5ec.entry.js → p-0ba1294a.entry.js} +1 -1
  247. package/dist/lime-crm-building-blocks/{p-7fee7ef3.entry.js → p-0fac2307.entry.js} +1 -1
  248. package/dist/lime-crm-building-blocks/{p-97e6712f.entry.js → p-16fa6f3e.entry.js} +1 -1
  249. package/dist/lime-crm-building-blocks/{p-0c572fe9.entry.js → p-18ce3ce5.entry.js} +1 -1
  250. package/dist/lime-crm-building-blocks/p-1dfdf045.entry.js +1 -0
  251. package/dist/lime-crm-building-blocks/{p-20206710.entry.js → p-22296e19.entry.js} +1 -1
  252. package/dist/lime-crm-building-blocks/{p-1747221f.entry.js → p-24337de2.entry.js} +1 -1
  253. package/dist/lime-crm-building-blocks/{p-de6f4670.entry.js → p-3996a598.entry.js} +1 -1
  254. package/dist/lime-crm-building-blocks/{p-d2a01f51.entry.js → p-3bff70d2.entry.js} +1 -1
  255. package/dist/lime-crm-building-blocks/{p-7c96b265.entry.js → p-3c437049.entry.js} +1 -1
  256. package/dist/lime-crm-building-blocks/{p-3a112b17.entry.js → p-43af24b5.entry.js} +1 -1
  257. package/dist/lime-crm-building-blocks/{p-2cb31064.entry.js → p-464b02c2.entry.js} +1 -1
  258. package/dist/lime-crm-building-blocks/{p-02565865.entry.js → p-47a7b3fd.entry.js} +1 -1
  259. package/dist/lime-crm-building-blocks/{p-e6083593.entry.js → p-4c10bea0.entry.js} +1 -1
  260. package/dist/lime-crm-building-blocks/{p-e7a10082.entry.js → p-4e0d077b.entry.js} +1 -1
  261. package/dist/lime-crm-building-blocks/{p-25d8a718.entry.js → p-5006c5ea.entry.js} +1 -1
  262. package/dist/lime-crm-building-blocks/{p-c678f22f.entry.js → p-52c07130.entry.js} +1 -1
  263. package/dist/lime-crm-building-blocks/{p-492b1b0c.entry.js → p-55692241.entry.js} +1 -1
  264. package/dist/lime-crm-building-blocks/{p-b2383e7f.entry.js → p-5573a867.entry.js} +1 -1
  265. package/dist/lime-crm-building-blocks/{p-bec4231f.entry.js → p-563d69ff.entry.js} +1 -1
  266. package/dist/lime-crm-building-blocks/{p-32f8477f.entry.js → p-571777c3.entry.js} +1 -1
  267. package/dist/lime-crm-building-blocks/{p-4446f170.entry.js → p-58e63c29.entry.js} +1 -1
  268. package/dist/lime-crm-building-blocks/{p-31d8f414.entry.js → p-5a718d20.entry.js} +1 -1
  269. package/dist/lime-crm-building-blocks/{p-9c27e558.entry.js → p-5eef1781.entry.js} +1 -1
  270. package/dist/lime-crm-building-blocks/{p-861ac606.entry.js → p-603ab702.entry.js} +1 -1
  271. package/dist/lime-crm-building-blocks/{p-3252e153.entry.js → p-661e4700.entry.js} +1 -1
  272. package/dist/lime-crm-building-blocks/{p-184ae23d.entry.js → p-68a951f5.entry.js} +1 -1
  273. package/dist/lime-crm-building-blocks/{p-ed1e7e34.entry.js → p-692084d2.entry.js} +1 -1
  274. package/dist/lime-crm-building-blocks/{p-1428aa13.entry.js → p-6ee28dfc.entry.js} +1 -1
  275. package/dist/lime-crm-building-blocks/{p-fdd236ff.entry.js → p-725e6748.entry.js} +1 -1
  276. package/dist/lime-crm-building-blocks/{p-c394c1f6.entry.js → p-7a4704dc.entry.js} +1 -1
  277. package/dist/lime-crm-building-blocks/{p-48c2b617.entry.js → p-7b9359cc.entry.js} +1 -1
  278. package/dist/lime-crm-building-blocks/{p-6ff38954.entry.js → p-7d969bbe.entry.js} +1 -1
  279. package/dist/lime-crm-building-blocks/{p-eb8d58ab.entry.js → p-7f5c97fe.entry.js} +1 -1
  280. package/dist/lime-crm-building-blocks/{p-6cceabf1.entry.js → p-81655182.entry.js} +1 -1
  281. package/dist/lime-crm-building-blocks/p-8238723b.entry.js +1 -0
  282. package/dist/lime-crm-building-blocks/{p-2a3098a7.entry.js → p-898b097e.entry.js} +1 -1
  283. package/dist/lime-crm-building-blocks/{p-46c00a4b.entry.js → p-8d14a58a.entry.js} +1 -1
  284. package/dist/lime-crm-building-blocks/{p-48deac2a.entry.js → p-8d5311e4.entry.js} +1 -1
  285. package/dist/lime-crm-building-blocks/{p-08eb070d.entry.js → p-8ed7b025.entry.js} +1 -1
  286. package/dist/lime-crm-building-blocks/p-99464fa7.entry.js +1 -0
  287. package/dist/lime-crm-building-blocks/{p-C_tMNOSt.js → p-BKtEmDNs.js} +1 -1
  288. package/dist/lime-crm-building-blocks/{p-BV8CPdbi.js → p-BbFGcMnU.js} +1 -1
  289. package/dist/lime-crm-building-blocks/{p-C84z8BwL.js → p-CqRNpSRV.js} +1 -1
  290. package/dist/lime-crm-building-blocks/p-D3UYWGdn.js +1 -0
  291. package/dist/lime-crm-building-blocks/p-DYpn0EkA.js +2 -0
  292. package/dist/lime-crm-building-blocks/{p-BsNp-hBU.js → p-DzXJyKRS.js} +1 -1
  293. package/dist/lime-crm-building-blocks/{p-d910699a.entry.js → p-a5850f04.entry.js} +1 -1
  294. package/dist/lime-crm-building-blocks/{p-8d3fa274.entry.js → p-a6103d04.entry.js} +1 -1
  295. package/dist/lime-crm-building-blocks/{p-b24b7338.entry.js → p-b01f2045.entry.js} +1 -1
  296. package/dist/lime-crm-building-blocks/{p-731820f0.entry.js → p-b16bbda2.entry.js} +1 -1
  297. package/dist/lime-crm-building-blocks/{p-dabb227b.entry.js → p-b424f55f.entry.js} +1 -1
  298. package/dist/lime-crm-building-blocks/{p-f1d9e133.entry.js → p-b95b94b6.entry.js} +1 -1
  299. package/dist/lime-crm-building-blocks/{p-2a46f4be.entry.js → p-bd264cfa.entry.js} +1 -1
  300. package/dist/lime-crm-building-blocks/{p-9e5862de.entry.js → p-c7c5991f.entry.js} +1 -1
  301. package/dist/lime-crm-building-blocks/{p-c9003b76.entry.js → p-dc1d543d.entry.js} +1 -1
  302. package/dist/lime-crm-building-blocks/{p-e4fe45d3.entry.js → p-dc3a86f3.entry.js} +1 -1
  303. package/dist/lime-crm-building-blocks/p-ec335be5.entry.js +1 -0
  304. package/dist/lime-crm-building-blocks/{p-5743a74e.entry.js → p-ecd0280d.entry.js} +1 -1
  305. package/dist/lime-crm-building-blocks/p-efab4f7e.entry.js +1 -0
  306. package/dist/lime-crm-building-blocks/{p-9f7992b0.entry.js → p-efb70fbb.entry.js} +1 -1
  307. package/dist/lime-crm-building-blocks/{p-3263f8d5.entry.js → p-f011673a.entry.js} +1 -1
  308. package/dist/lime-crm-building-blocks/p-y_s8hZmV.js +1 -0
  309. package/dist/types/components/lime-query-builder/expressions/filter-group-logic.d.ts +56 -54
  310. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.d.ts +29 -0
  311. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +12 -9
  312. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +4 -0
  313. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +14 -30
  314. package/dist/types/components/lime-query-builder/expressions/lime-query-operators.d.ts +12 -0
  315. package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +1 -0
  316. package/dist/types/components.d.ts +106 -47
  317. package/package.json +1 -1
  318. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +0 -137
  319. package/dist/lime-crm-building-blocks/p-6002654f.entry.js +0 -1
  320. package/dist/lime-crm-building-blocks/p-7acd06eb.entry.js +0 -1
  321. package/dist/lime-crm-building-blocks/p-89b43ac5.entry.js +0 -1
  322. package/dist/lime-crm-building-blocks/p-BIwHMk6j.js +0 -2
  323. package/dist/lime-crm-building-blocks/p-a3556715.entry.js +0 -1
  324. package/dist/lime-crm-building-blocks/p-c6a913af.entry.js +0 -1
  325. package/dist/lime-crm-building-blocks/p-c6fee2bd.entry.js +0 -1
@@ -1,64 +1,7 @@
1
- import { Operator, PlatformServiceName, } from "@limetech/lime-web-components";
2
- import { Host, h } from "@stencil/core";
3
- const LIME_QUERY_OPERATORS = [
4
- {
5
- value: Operator.EQUALS,
6
- label: 'webclient.operator.equals',
7
- icon: '-lime-filter-equal',
8
- },
9
- {
10
- value: Operator.NOT_EQUALS,
11
- label: 'webclient.operator.not-equals',
12
- icon: '-lime-filter-equal-not',
13
- },
14
- {
15
- value: Operator.GREATER,
16
- label: 'webclient.operator.greater-than',
17
- icon: '-lime-filter-greater',
18
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
19
- },
20
- {
21
- value: Operator.GREATER_OR_EQUAL,
22
- label: 'webclient.operator.greater-than-or-equal-to',
23
- icon: '-lime-filter-greater-equal',
24
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
25
- },
26
- {
27
- value: Operator.LESS,
28
- label: 'webclient.operator.less-than',
29
- icon: '-lime-filter-less',
30
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
31
- },
32
- {
33
- value: Operator.LESS_OR_EQUAL,
34
- label: 'webclient.operator.less-than-or-equal-to',
35
- icon: '-lime-filter-less-equal',
36
- applicableTypes: ['integer', 'decimal', 'date', 'time'],
37
- },
38
- {
39
- value: Operator.IN,
40
- label: 'webclient.operator.in-filter',
41
- icon: '-lime-filter-set-included',
42
- },
43
- {
44
- value: Operator.LIKE,
45
- label: 'webclient.operator.contains',
46
- icon: '-lime-filter-contain',
47
- applicableTypes: ['string', 'text'],
48
- },
49
- {
50
- value: Operator.BEGINS,
51
- label: 'webclient.operator.begins-with',
52
- icon: '-lime-filter-starts-with',
53
- applicableTypes: ['string', 'text'],
54
- },
55
- {
56
- value: Operator.ENDS,
57
- label: 'webclient.operator.ends-with',
58
- icon: '-lime-filter-ends-with',
59
- applicableTypes: ['string', 'text'],
60
- },
61
- ];
1
+ import { PlatformServiceName, } from "@limetech/lime-web-components";
2
+ import { Host, h, } from "@stencil/core";
3
+ import { LIME_QUERY_OPERATORS, } from "./lime-query-operators";
4
+ import { getNormalizedProperties } from "../property-resolution";
62
5
  /**
63
6
  * Lime Query Filter Comparison Component
64
7
  *
@@ -83,74 +26,95 @@ const LIME_QUERY_OPERATORS = [
83
26
  */
84
27
  export class LimeQueryFilterComparisonComponent {
85
28
  constructor() {
86
- this.handlePropertyChange = (event) => {
87
- event.stopPropagation();
88
- this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { key: event.detail }));
29
+ this.isOpen = false;
30
+ this.handleOpen = () => {
31
+ this.isOpen = true;
89
32
  };
90
- this.handleOperatorChange = (event) => {
91
- event.stopPropagation();
92
- const newOperator = event.detail.value;
93
- const oldOperator = this.expression.op;
94
- let convertedValue = this.expression.exp;
95
- // Convert value when switching between IN and other operators
96
- // IN operator expects an array, other operators expect a single value
97
- if (newOperator === Operator.IN && !Array.isArray(convertedValue)) {
98
- // Switching TO IN operator: wrap non-array value in array
99
- convertedValue =
100
- convertedValue !== undefined && convertedValue !== ''
101
- ? [convertedValue]
102
- : [];
103
- }
104
- else if (oldOperator === Operator.IN &&
105
- newOperator !== Operator.IN &&
106
- Array.isArray(convertedValue)) {
107
- // Switching FROM IN operator: extract first element from array
108
- convertedValue = convertedValue.length > 0 ? convertedValue[0] : '';
109
- }
110
- this.expressionChange.emit({
111
- key: this.expression.key,
112
- op: newOperator,
113
- exp: convertedValue,
114
- });
33
+ this.handleClose = () => {
34
+ this.isOpen = false;
115
35
  };
116
- this.handleValueChange = (event) => {
36
+ this.handleEditorChange = (event) => {
117
37
  event.stopPropagation();
118
- this.expressionChange.emit(Object.assign(Object.assign({}, this.expression), { exp: event.detail }));
38
+ this.expressionChange.emit(event.detail);
119
39
  };
120
40
  this.removeExpression = () => {
121
41
  this.expressionChange.emit(undefined);
122
42
  };
123
43
  }
44
+ componentWillLoad() {
45
+ var _a;
46
+ if (!((_a = this.expression) === null || _a === void 0 ? void 0 : _a.key)) {
47
+ this.isOpen = true;
48
+ }
49
+ }
124
50
  render() {
125
- return (h(Host, { key: '29ddf92b2e83eafe695faeb9a4ce6b8d29aa973e' }, this.renderHeader(), h("div", { key: '258f8aeee98a2435d324a1e5b816f111188cf3cc', class: "expression-container" }, this.renderPropertySelector(), this.renderOperator(), this.renderValueInput(), h("limel-icon-button", { key: 'c9e4cf456908fb82507e2599af631691e96ab8e4', class: "remove", icon: "trash", label: "Remove condition", onClick: this.removeExpression }))));
51
+ return (h(Host, { key: 'f85d1669dccffd7a0905ac5549eeea2f4c350782' }, this.renderHeader(), h("limel-popover", { key: '793a3ea0377182b86511165e39ff30212736d030', open: this.isOpen, openDirection: "bottom-start", onClose: this.handleClose }, h("limel-chip", { key: '0d4c7c565268c096d390994a862920c8066e1f11', slot: "trigger", text: this.summaryText(), icon: this.summaryIcon(), removable: true, onClick: this.handleOpen, onRemove: this.removeExpression }), h("limebb-lime-query-filter-comparison-editor", { key: 'a4ddad5edc49c4de265e9b3e237fb31455ae48e0', platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.expression, onExpressionChange: this.handleEditorChange }))));
126
52
  }
127
- renderHeader() {
128
- if (!this.label) {
129
- return;
53
+ summaryText() {
54
+ var _a;
55
+ const key = (_a = this.expression) === null || _a === void 0 ? void 0 : _a.key;
56
+ if (!key) {
57
+ return 'New condition';
130
58
  }
131
- return h("limel-header", { subheading: this.label });
59
+ const propertyLabel = this.getPropertyLabel(key);
60
+ const opLabel = this.getOperatorLabel(this.expression.op);
61
+ const value = this.formatValue(this.expression.exp);
62
+ return `${propertyLabel} ${opLabel} ${value}`.trim();
132
63
  }
133
- renderPropertySelector() {
134
- return (h("limebb-property-selector", { platform: this.platform, context: this.context, label: "Property", limetype: this.limetype, value: this.expression.key, required: true, onChange: this.handlePropertyChange }));
64
+ getPropertyLabel(key) {
65
+ var _a, _b;
66
+ const repository = (_a = this.platform) === null || _a === void 0 ? void 0 : _a.get(PlatformServiceName.LimeTypeRepository);
67
+ if (!repository || !this.limetype) {
68
+ return key;
69
+ }
70
+ const parts = key.split('.');
71
+ const labels = [];
72
+ let currentType = repository.getLimeType(this.limetype);
73
+ for (const part of parts) {
74
+ if (!currentType) {
75
+ labels.push(part);
76
+ continue;
77
+ }
78
+ const property = getNormalizedProperties(currentType)[part];
79
+ labels.push((property === null || property === void 0 ? void 0 : property.localname) || part);
80
+ currentType = (_b = property === null || property === void 0 ? void 0 : property.relation) === null || _b === void 0 ? void 0 : _b.getLimetype();
81
+ }
82
+ return labels.join(' › ');
135
83
  }
136
- renderOperator() {
137
- const operatorHasBeenSet = !!this.expression.op;
138
- const options = LIME_QUERY_OPERATORS.map((op) => {
139
- var _a, _b;
140
- return ({
141
- text: (_b = (_a = this.translator) === null || _a === void 0 ? void 0 : _a.get(op.label)) !== null && _b !== void 0 ? _b : op.label,
142
- value: op.value,
143
- icon: op.icon ? { name: op.icon } : undefined,
144
- });
145
- });
146
- const selectedOption = options.find((o) => o.value === this.expression.op);
147
- return (h("limel-select", { class: "operator", label: "Operator", value: selectedOption, options: options, disabled: !operatorHasBeenSet && !this.expression.key, onChange: this.handleOperatorChange }));
84
+ summaryIcon() {
85
+ var _a;
86
+ if (!((_a = this.expression) === null || _a === void 0 ? void 0 : _a.op)) {
87
+ return undefined;
88
+ }
89
+ const meta = LIME_QUERY_OPERATORS.find((op) => op.value === this.expression.op);
90
+ return meta === null || meta === void 0 ? void 0 : meta.icon;
91
+ }
92
+ getOperatorLabel(op) {
93
+ var _a, _b;
94
+ if (!op)
95
+ return '';
96
+ const meta = LIME_QUERY_OPERATORS.find((m) => m.value === op);
97
+ if (!meta)
98
+ return '';
99
+ return (_b = (_a = this.translator) === null || _a === void 0 ? void 0 : _a.get(meta.label)) !== null && _b !== void 0 ? _b : meta.label;
148
100
  }
149
- renderValueInput() {
150
- if (!this.expression.op) {
151
- return null;
101
+ formatValue(value) {
102
+ if (value === undefined || value === null || value === '') {
103
+ return '…';
104
+ }
105
+ if (Array.isArray(value)) {
106
+ return value.map((v) => this.formatValue(v)).join(', ');
107
+ }
108
+ if (typeof value === 'string') {
109
+ return `"${value}"`;
152
110
  }
153
- return (h("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 }));
111
+ return String(value);
112
+ }
113
+ renderHeader() {
114
+ if (!this.label) {
115
+ return;
116
+ }
117
+ return h("limel-header", { subheading: this.label });
154
118
  }
155
119
  get translator() {
156
120
  var _a;
@@ -283,8 +247,10 @@ export class LimeQueryFilterComparisonComponent {
283
247
  "resolved": "{ key: string; op: BasicOperator; exp: ExpressionValue; } | { key: string; op: Operator.IN; exp: ExpressionValue[]; } | { type: \"filter\"; key: string; op: Operator.IN; exp: string; }",
284
248
  "references": {
285
249
  "ComparisonExpression": {
286
- "location": "global",
287
- "id": "global::ComparisonExpression"
250
+ "location": "import",
251
+ "path": "./lime-query-operators",
252
+ "id": "src/components/lime-query-builder/expressions/lime-query-operators.ts::ComparisonExpression",
253
+ "referenceLocation": "ComparisonExpression"
288
254
  }
289
255
  }
290
256
  },
@@ -299,6 +265,11 @@ export class LimeQueryFilterComparisonComponent {
299
265
  }
300
266
  };
301
267
  }
268
+ static get states() {
269
+ return {
270
+ "isOpen": {}
271
+ };
272
+ }
302
273
  static get events() {
303
274
  return [{
304
275
  "method": "expressionChange",
@@ -315,8 +286,10 @@ export class LimeQueryFilterComparisonComponent {
315
286
  "resolved": "undefined | { key: string; op: BasicOperator; exp: ExpressionValue; } | { key: string; op: Operator.IN; exp: ExpressionValue[]; } | { type: \"filter\"; key: string; op: Operator.IN; exp: string; }",
316
287
  "references": {
317
288
  "ComparisonExpression": {
318
- "location": "global",
319
- "id": "global::ComparisonExpression"
289
+ "location": "import",
290
+ "path": "./lime-query-operators",
291
+ "id": "src/components/lime-query-builder/expressions/lime-query-operators.ts::ComparisonExpression",
292
+ "referenceLocation": "ComparisonExpression"
320
293
  }
321
294
  }
322
295
  }
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { Operator, } from "@limetech/lime-web-components";
3
+ import { asGroupExpression } from "./filter-group-logic";
3
4
  /**
4
5
  * Lime Query Filter Expression Router
5
6
  *
@@ -9,6 +10,10 @@ import { Operator, } from "@limetech/lime-web-components";
9
10
  * - `op: Operator.AND | Operator.OR` → limebb-lime-query-filter-group
10
11
  * - `op: Operator.NOT` → limebb-lime-query-filter-not
11
12
  *
13
+ * Uses `scoped: true` (no shadow root) so the dispatched child element
14
+ * participates in the parent's light DOM — that lets the parent drive
15
+ * its own layout off the rendered tag (e.g. `:has(limebb-lime-query-filter-group)`).
16
+ *
12
17
  * @private
13
18
  */
14
19
  export class LimeQueryFilterExpressionComponent {
@@ -32,26 +37,16 @@ export class LimeQueryFilterExpressionComponent {
32
37
  if ('key' in this.expression) {
33
38
  return (h("limebb-lime-query-filter-comparison", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
34
39
  }
35
- if (this.expression.op === Operator.AND ||
36
- this.expression.op === Operator.OR) {
37
- return (h("limebb-lime-query-filter-group", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
40
+ const groupShaped = asGroupExpression(this.expression);
41
+ if (groupShaped) {
42
+ return (h("limebb-lime-query-filter-group", Object.assign({}, props, { expression: groupShaped, onExpressionChange: this.handleExpressionChange })));
38
43
  }
39
44
  if (this.expression.op === Operator.NOT) {
40
45
  return (h("limebb-lime-query-filter-not", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
41
46
  }
42
47
  }
43
48
  static get is() { return "limebb-lime-query-filter-expression"; }
44
- static get encapsulation() { return "shadow"; }
45
- static get originalStyleUrls() {
46
- return {
47
- "$": ["lime-query-filter-expression.scss"]
48
- };
49
- }
50
- static get styleUrls() {
51
- return {
52
- "$": ["lime-query-filter-expression.css"]
53
- };
54
- }
49
+ static get encapsulation() { return "scoped"; }
55
50
  static get properties() {
56
51
  return {
57
52
  "platform": {
@@ -1,205 +1,131 @@
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
1
  *,
133
- *::before,
2
+ *:before,
134
3
  *::after {
135
4
  box-sizing: border-box;
136
5
  }
137
6
 
138
- limebb-lime-query-filter-expression {
7
+ :host(limebb-lime-query-filter-group) {
8
+ --group-rail-color: var(--limebb-query-filter-group-color-code);
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: 1.5rem;
12
+ }
13
+
14
+ :host([data-op=AND]) {
15
+ --combinator-symbol: "&";
16
+ }
17
+
18
+ :host([data-op=NOT_AND]) {
19
+ --combinator-symbol: "- &";
20
+ }
21
+
22
+ :host([data-op=OR]) {
23
+ --combinator-symbol: "or";
24
+ }
25
+
26
+ :host([data-op=NOT_OR]) {
27
+ --combinator-symbol: "- or";
28
+ }
29
+
30
+ .group {
139
31
  position: relative;
140
- isolation: isolate;
32
+ display: flex;
33
+ flex-direction: column;
34
+ gap: 1rem;
35
+ padding: 0.5rem;
36
+ border-radius: 0.75rem;
37
+ background-color: rgb(var(--contrast-800), 0.15);
38
+ transition: box-shadow 120ms ease;
141
39
  }
142
- limebb-lime-query-filter-expression:not(:first-of-type):after {
40
+ .group:before {
143
41
  content: "";
144
42
  position: absolute;
145
- top: -0.5rem;
146
- left: 0.75rem;
147
- display: block;
148
- border-radius: 1rem;
149
- height: 2rem;
43
+ top: 1rem;
44
+ bottom: calc(1rem + 1.75rem);
45
+ left: 0;
150
46
  width: 0.125rem;
151
- background-color: var(--limebb-lime-query-builder-group-color);
47
+ transform: translateX(-50%);
48
+ border-radius: 1rem;
49
+ background-color: var(--group-rail-color);
152
50
  }
153
- limebb-lime-query-filter-expression:not(:first-of-type):before {
154
- position: relative;
155
- z-index: 1;
51
+ .group:has(limel-icon-button.delete-group:hover), .group:has(limel-icon-button.delete-group:focus-within) {
52
+ box-shadow: var(--shadow-error-state);
53
+ }
54
+
55
+ .group-header {
156
56
  display: flex;
157
- justify-content: center;
158
57
  align-items: center;
159
- height: 1rem;
160
- content: var(--limebb-lime-query-filter-group-operator);
161
- display: inline-block;
162
- margin: 0 auto 0.5rem auto;
163
- transform: translateY(-50%);
164
- font-size: 0.625rem;
165
- padding: 0 0.5rem;
166
- color: rgb(var(--color-blue-dark));
167
- background-color: var(--limebb-lime-query-builder-group-color);
168
- border-radius: 2rem;
58
+ gap: 0.5rem;
169
59
  }
170
60
 
171
- .expression {
172
- display: flex;
173
- flex-direction: column;
174
- margin-bottom: 1rem;
175
- gap: 0;
176
- background-color: rgb(var(--contrast-100));
177
- border-radius: 0.75rem;
178
- border: 1px solid var(--limebb-lime-query-builder-group-color);
61
+ limel-select.combinator {
62
+ min-width: 9rem;
63
+ }
64
+
65
+ limel-icon-button.delete-group {
66
+ margin-left: auto;
67
+ opacity: 0;
68
+ transition: opacity 120ms ease;
69
+ }
70
+
71
+ limel-chip.add-group {
72
+ --lime-elevated-surface-background-color: transparent;
73
+ --button-shadow-normal: none;
74
+ isolation: isolate;
75
+ position: relative;
76
+ margin-right: auto;
77
+ }
78
+ limel-chip.add-group:after {
79
+ content: "";
80
+ position: absolute;
81
+ width: 0.5rem;
82
+ height: 1.75rem;
83
+ top: 0;
84
+ left: calc(0.5rem * -1 - 0.125rem / 2);
85
+ border-width: 0 0 0.125rem 0.125rem;
86
+ border-color: var(--group-rail-color);
87
+ border-style: solid;
88
+ border-radius: 0 0 0 0.5rem;
89
+ transform: translateY(calc(-50% - 0.125rem / 2));
90
+ }
91
+
92
+ .group:hover > .group-header > limel-icon-button.delete-group,
93
+ limel-icon-button.delete-group:focus-within {
94
+ opacity: 1;
179
95
  }
180
- .expression ul {
96
+
97
+ ul.rows {
181
98
  list-style: none;
182
99
  margin: 0;
183
- padding: 0.5rem;
184
100
  display: flex;
185
- flex-direction: column;
101
+ flex-direction: row;
102
+ flex-wrap: wrap;
186
103
  align-items: center;
187
- gap: 1rem;
104
+ column-gap: 0.5rem;
105
+ row-gap: 0.5rem;
106
+ padding: 0 0.5rem 0.5rem 0.5rem;
188
107
  }
189
- .expression ul [role=listitem] {
108
+
109
+ li.row {
190
110
  list-style: none;
191
- width: 100%;
111
+ position: relative;
192
112
  }
193
-
194
- limel-button.add-group {
195
- width: fit-content;
196
- margin: 0.5rem;
113
+ li.row:has(> limebb-lime-query-filter-expression > limebb-lime-query-filter-group) {
114
+ flex-basis: 100%;
115
+ align-self: stretch;
197
116
  }
198
-
199
- limel-icon-button.delete-group {
200
- margin-left: 0.5rem;
117
+ li.row + li.row:before {
118
+ content: var(--combinator-symbol);
119
+ color: var(--limebb-query-filter-group-color-code);
120
+ font-size: 0.75rem;
121
+ font-weight: 600;
201
122
  }
202
-
203
- limel-select.operator-select {
204
- min-width: 8rem;
123
+ li.row + li.row:has(> limebb-lime-query-filter-expression > limebb-lime-query-filter-group):before {
124
+ position: absolute;
125
+ left: 0;
126
+ top: 0;
127
+ transform: translate(-50%, -50%);
128
+ }
129
+ li.row + li.row:not(:has(> limebb-lime-query-filter-expression > limebb-lime-query-filter-group)):before {
130
+ margin-right: 0.5rem;
205
131
  }