@limetech/lime-crm-building-blocks 1.138.0 → 1.139.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/{filter-group-logic-BoF3Z5_P.js → filter-group-logic-BPpM2NqX.js} +1 -1
  3. package/dist/cjs/{index-B9Bi9dpZ.js → index-BrWc7h0p.js} +1 -1
  4. package/dist/cjs/{index.esm-8LHVbTD0.js → index.esm-Se3EtD3m.js} +2 -2
  5. package/dist/cjs/lime-crm-building-blocks.cjs.js +3 -3
  6. package/dist/cjs/{lime-query-validation-q-sH7XSs.js → lime-query-validation-CJC3mtnT.js} +1 -1
  7. package/dist/cjs/limebb-alert-dialog.cjs.entry.js +2 -2
  8. package/dist/cjs/limebb-browser.cjs.entry.js +4 -4
  9. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +7 -7
  10. package/dist/cjs/limebb-chat-list.cjs.entry.js +3 -3
  11. package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +2 -2
  12. package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +2 -2
  13. package/dist/cjs/limebb-component-config.cjs.entry.js +3 -3
  14. package/dist/cjs/limebb-component-picker.cjs.entry.js +2 -2
  15. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +4 -4
  16. package/dist/cjs/limebb-currency-picker.cjs.entry.js +3 -3
  17. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +2 -2
  18. package/dist/cjs/limebb-data-cells.cjs.entry.js +7 -4
  19. package/dist/cjs/limebb-date-picker.cjs.entry.js +3 -3
  20. package/dist/cjs/limebb-date-range.cjs.entry.js +2 -2
  21. package/dist/cjs/limebb-document-chips.cjs.entry.js +2 -2
  22. package/dist/cjs/limebb-document-item.cjs.entry.js +3 -3
  23. package/dist/cjs/limebb-document-picker.cjs.entry.js +2 -2
  24. package/dist/cjs/limebb-empty-state.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +2 -2
  26. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +4 -4
  27. package/dist/cjs/limebb-feed.cjs.entry.js +91 -34
  28. package/dist/cjs/limebb-filter-chip_5.cjs.entry.js +11 -11
  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 +4 -4
  38. package/dist/cjs/limebb-kanban-item.cjs.entry.js +4 -4
  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 +3 -3
  42. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +5 -5
  43. package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +5 -5
  44. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +3 -3
  45. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +4 -4
  46. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +3 -3
  47. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +2 -2
  48. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +3 -3
  49. package/dist/cjs/limebb-loader.cjs.entry.js +2 -2
  50. package/dist/cjs/limebb-locale-picker.cjs.entry.js +3 -3
  51. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +3 -3
  52. package/dist/cjs/limebb-mention.cjs.entry.js +2 -2
  53. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  54. package/dist/cjs/limebb-notification-item.cjs.entry.js +3 -3
  55. package/dist/cjs/limebb-notification-list.cjs.entry.js +2 -2
  56. package/dist/cjs/limebb-object-chip.cjs.entry.js +3 -3
  57. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +5 -5
  58. package/dist/cjs/limebb-property-selector.cjs.entry.js +3 -3
  59. package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +2 -2
  60. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +4 -4
  61. package/dist/cjs/limebb-rule-editor.cjs.entry.js +3 -3
  62. package/dist/cjs/limebb-rule-gate.cjs.entry.js +3 -3
  63. package/dist/cjs/limebb-text-editor-picker.cjs.entry.js +1 -1
  64. package/dist/cjs/limebb-text-editor.cjs.entry.js +4 -4
  65. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +4 -4
  66. package/dist/cjs/limebb-value-comparison-editor.cjs.entry.js +282 -26
  67. package/dist/cjs/{limetype-CK5MVyW0.js → limetype-CmgP0nbZ.js} +1 -1
  68. package/dist/cjs/loader.cjs.js +2 -2
  69. package/dist/cjs/{web-component-template-7B9wK2bO.js → web-component-template-C9hvjrMm.js} +1 -1
  70. package/dist/collection/collection-manifest.json +1 -1
  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.css +7 -5
  74. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  75. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  76. package/dist/collection/components/chat-list/chat-list.js +1 -1
  77. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  78. package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
  79. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
  80. package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
  81. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  82. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  83. package/dist/collection/components/data-cells/data-cells.js +5 -2
  84. package/dist/collection/components/date-picker/date-picker.js +1 -1
  85. package/dist/collection/components/date-range/date-range.js +1 -1
  86. package/dist/collection/components/document-chips/document-chips.js +1 -1
  87. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  88. package/dist/collection/components/document-picker/document-picker.js +1 -1
  89. package/dist/collection/components/feed/feed-item/feed-timeline-item.css +32 -24
  90. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  91. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  92. package/dist/collection/components/feed/feed.js +2 -2
  93. package/dist/collection/components/filter-chip/filter-chip.css +19 -17
  94. package/dist/collection/components/filter-chip/filter-chip.js +3 -3
  95. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  96. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  97. package/dist/collection/components/info-tile/info-tile.js +1 -1
  98. package/dist/collection/components/kanban/kanban-group/kanban-group.css +14 -12
  99. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  100. package/dist/collection/components/kanban/kanban-item/kanban-item.css +11 -7
  101. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  102. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +1 -1
  103. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +2 -2
  104. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +4 -4
  105. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
  106. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  107. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  108. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  109. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  110. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  111. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  112. package/dist/collection/components/lime-query-builder/response-format/response-format-item.css +8 -6
  113. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  114. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  115. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  116. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  117. package/dist/collection/components/percentage-visualizer/percentage-visualizer.css +7 -7
  118. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +5 -5
  119. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +1 -1
  120. package/dist/collection/components/rule-editor/rule-editor.js +1 -1
  121. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.css +11 -0
  122. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.js +297 -33
  123. package/dist/collection/components/rule-gate/rule-gate.js +1 -1
  124. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  125. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  126. package/dist/collection/components/text-editor/text-editor.js +1 -1
  127. package/dist/collection/components/trend-indicator/trend-indicator.css +7 -7
  128. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  129. package/dist/components/chat-icon-list.js +1 -1
  130. package/dist/components/chat-item.js +1 -1
  131. package/dist/components/currency-picker.js +1 -1
  132. package/dist/components/date-picker.js +1 -1
  133. package/dist/components/document-item.js +1 -1
  134. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  135. package/dist/components/feed-timeline-item.js +1 -1
  136. package/dist/components/filter-chip.js +1 -1
  137. package/dist/components/kanban-group.js +1 -1
  138. package/dist/components/kanban-item.js +1 -1
  139. package/dist/components/lime-query-filter-comparison-editor.js +1 -1
  140. package/dist/components/lime-query-filter-comparison.js +1 -1
  141. package/dist/components/lime-query-filter-expression.js +1 -1
  142. package/dist/components/limebb-alert-dialog.js +1 -1
  143. package/dist/components/limebb-browser.js +1 -1
  144. package/dist/components/limebb-chat-list.js +1 -1
  145. package/dist/components/limebb-color-palette-picker.js +1 -1
  146. package/dist/components/limebb-color-palette-swatches.js +1 -1
  147. package/dist/components/limebb-composer-toolbar.js +1 -1
  148. package/dist/components/limebb-dashboard-widget.js +1 -1
  149. package/dist/components/limebb-data-cells.js +1 -1
  150. package/dist/components/limebb-date-range.js +1 -1
  151. package/dist/components/limebb-document-chips.js +1 -1
  152. package/dist/components/limebb-document-picker.js +1 -1
  153. package/dist/components/limebb-feed.js +1 -1
  154. package/dist/components/limebb-icon-picker.js +1 -1
  155. package/dist/components/limebb-info-tile-format.js +1 -1
  156. package/dist/components/limebb-info-tile.js +1 -1
  157. package/dist/components/limebb-lime-query-builder.js +1 -1
  158. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  159. package/dist/components/limebb-locale-picker.js +1 -1
  160. package/dist/components/limebb-mention-group-counter.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/limebb-value-comparison-editor.js +1 -1
  166. package/dist/components/limetype-field.js +1 -1
  167. package/dist/components/live-docs-info.js +1 -1
  168. package/dist/components/notification-item.js +1 -1
  169. package/dist/components/order-by-editor.js +1 -1
  170. package/dist/components/order-by-item.js +1 -1
  171. package/dist/components/percentage-visualizer.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-CRznE2g-.js → filter-group-logic-BMY_GEsX.js} +1 -1
  177. package/dist/esm/{index-LEJjPpY0.js → index-DwHAn7LS.js} +1 -1
  178. package/dist/esm/{index.esm-B7wJLMmp.js → index.esm-C-L5fkQs.js} +1 -1
  179. package/dist/esm/lime-crm-building-blocks.js +4 -4
  180. package/dist/esm/{lime-query-validation-Dds_iPHd.js → lime-query-validation-BwvluehW.js} +1 -1
  181. package/dist/esm/limebb-alert-dialog.entry.js +2 -2
  182. package/dist/esm/limebb-browser.entry.js +4 -4
  183. package/dist/esm/limebb-chat-icon-list_3.entry.js +7 -7
  184. package/dist/esm/limebb-chat-list.entry.js +3 -3
  185. package/dist/esm/limebb-color-palette-picker.entry.js +2 -2
  186. package/dist/esm/limebb-color-palette-swatches.entry.js +2 -2
  187. package/dist/esm/limebb-component-config.entry.js +3 -3
  188. package/dist/esm/limebb-component-picker.entry.js +2 -2
  189. package/dist/esm/limebb-composer-toolbar.entry.js +4 -4
  190. package/dist/esm/limebb-currency-picker.entry.js +3 -3
  191. package/dist/esm/limebb-dashboard-widget.entry.js +2 -2
  192. package/dist/esm/limebb-data-cells.entry.js +7 -4
  193. package/dist/esm/limebb-date-picker.entry.js +3 -3
  194. package/dist/esm/limebb-date-range.entry.js +2 -2
  195. package/dist/esm/limebb-document-chips.entry.js +2 -2
  196. package/dist/esm/limebb-document-item.entry.js +3 -3
  197. package/dist/esm/limebb-document-picker.entry.js +2 -2
  198. package/dist/esm/limebb-empty-state.entry.js +1 -1
  199. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +2 -2
  200. package/dist/esm/limebb-feed-timeline-item.entry.js +4 -4
  201. package/dist/esm/limebb-feed.entry.js +91 -34
  202. package/dist/esm/limebb-filter-chip_5.entry.js +11 -11
  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 +4 -4
  212. package/dist/esm/limebb-kanban-item.entry.js +4 -4
  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 +3 -3
  216. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +5 -5
  217. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +5 -5
  218. package/dist/esm/limebb-lime-query-order-by-item.entry.js +3 -3
  219. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +4 -4
  220. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +3 -3
  221. package/dist/esm/limebb-limeobject-file-viewer.entry.js +2 -2
  222. package/dist/esm/limebb-live-docs-info.entry.js +3 -3
  223. package/dist/esm/limebb-loader.entry.js +2 -2
  224. package/dist/esm/limebb-locale-picker.entry.js +3 -3
  225. package/dist/esm/limebb-mention-group-counter.entry.js +3 -3
  226. package/dist/esm/limebb-mention.entry.js +2 -2
  227. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  228. package/dist/esm/limebb-notification-item.entry.js +3 -3
  229. package/dist/esm/limebb-notification-list.entry.js +2 -2
  230. package/dist/esm/limebb-object-chip.entry.js +3 -3
  231. package/dist/esm/limebb-percentage-visualizer.entry.js +5 -5
  232. package/dist/esm/limebb-property-selector.entry.js +3 -3
  233. package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
  234. package/dist/esm/limebb-rule-chip-popover.entry.js +4 -4
  235. package/dist/esm/limebb-rule-editor.entry.js +3 -3
  236. package/dist/esm/limebb-rule-gate.entry.js +3 -3
  237. package/dist/esm/limebb-text-editor-picker.entry.js +1 -1
  238. package/dist/esm/limebb-text-editor.entry.js +4 -4
  239. package/dist/esm/limebb-trend-indicator.entry.js +4 -4
  240. package/dist/esm/limebb-value-comparison-editor.entry.js +282 -26
  241. package/dist/esm/{limetype-DH77rgZZ.js → limetype-D4ZaWZ-3.js} +1 -1
  242. package/dist/esm/loader.js +3 -3
  243. package/dist/esm/{web-component-template-CXFK-BYa.js → web-component-template-CAI6pXCH.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-bb825e68.entry.js → p-00ca6522.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/p-01f84b0c.entry.js +1 -0
  247. package/dist/lime-crm-building-blocks/{p-7597eb85.entry.js → p-0253fd45.entry.js} +1 -1
  248. package/dist/lime-crm-building-blocks/{p-4e66111a.entry.js → p-0579d006.entry.js} +1 -1
  249. package/dist/lime-crm-building-blocks/{p-e3d8fd1b.entry.js → p-0843b50b.entry.js} +1 -1
  250. package/dist/lime-crm-building-blocks/{p-4f398108.entry.js → p-0c4f6220.entry.js} +1 -1
  251. package/dist/lime-crm-building-blocks/{p-cf687fcd.entry.js → p-0f821315.entry.js} +1 -1
  252. package/dist/lime-crm-building-blocks/{p-4fcb97ea.entry.js → p-0f9a680c.entry.js} +1 -1
  253. package/dist/lime-crm-building-blocks/{p-61ee03f9.entry.js → p-13a35953.entry.js} +1 -1
  254. package/dist/lime-crm-building-blocks/{p-5095a168.entry.js → p-1cd148e2.entry.js} +1 -1
  255. package/dist/lime-crm-building-blocks/{p-2caee700.entry.js → p-29758303.entry.js} +1 -1
  256. package/dist/lime-crm-building-blocks/{p-382ab76b.entry.js → p-2e48601d.entry.js} +1 -1
  257. package/dist/lime-crm-building-blocks/p-302e6e3e.entry.js +1 -0
  258. package/dist/lime-crm-building-blocks/{p-db9ed6ed.entry.js → p-354257f4.entry.js} +1 -1
  259. package/dist/lime-crm-building-blocks/{p-b8e4a0d1.entry.js → p-39009b47.entry.js} +1 -1
  260. package/dist/lime-crm-building-blocks/{p-5960143c.entry.js → p-3bf316f9.entry.js} +1 -1
  261. package/dist/lime-crm-building-blocks/{p-cfc3f16b.entry.js → p-3fc9866a.entry.js} +1 -1
  262. package/dist/lime-crm-building-blocks/{p-b9c4df08.entry.js → p-41ddbdde.entry.js} +1 -1
  263. package/dist/lime-crm-building-blocks/{p-88bdf554.entry.js → p-46dc34a6.entry.js} +1 -1
  264. package/dist/lime-crm-building-blocks/{p-00860497.entry.js → p-558915e4.entry.js} +1 -1
  265. package/dist/lime-crm-building-blocks/p-5b1ccfe1.entry.js +1 -0
  266. package/dist/lime-crm-building-blocks/p-5b819d10.entry.js +1 -0
  267. package/dist/lime-crm-building-blocks/{p-7dedd057.entry.js → p-5bc41701.entry.js} +1 -1
  268. package/dist/lime-crm-building-blocks/{p-45d89e49.entry.js → p-69a3038b.entry.js} +1 -1
  269. package/dist/lime-crm-building-blocks/{p-50f5380d.entry.js → p-6cdefdc9.entry.js} +1 -1
  270. package/dist/lime-crm-building-blocks/{p-b6a8ad7a.entry.js → p-6f4e2590.entry.js} +1 -1
  271. package/dist/lime-crm-building-blocks/p-752742f8.entry.js +1 -0
  272. package/dist/lime-crm-building-blocks/p-7a158104.entry.js +1 -0
  273. package/dist/lime-crm-building-blocks/{p-6db41866.entry.js → p-80e04b27.entry.js} +1 -1
  274. package/dist/lime-crm-building-blocks/{p-b2b595cc.entry.js → p-817e2952.entry.js} +1 -1
  275. package/dist/lime-crm-building-blocks/{p-bec2bcef.entry.js → p-89f120f8.entry.js} +1 -1
  276. package/dist/lime-crm-building-blocks/p-8d592755.entry.js +1 -0
  277. package/dist/lime-crm-building-blocks/{p-46cc4edb.entry.js → p-9033acb5.entry.js} +1 -1
  278. package/dist/lime-crm-building-blocks/p-92679e20.entry.js +1 -0
  279. package/dist/lime-crm-building-blocks/p-927e446d.entry.js +1 -0
  280. package/dist/lime-crm-building-blocks/{p-c85e44a9.entry.js → p-96ea4550.entry.js} +1 -1
  281. package/dist/lime-crm-building-blocks/{p-639032ba.entry.js → p-97839894.entry.js} +1 -1
  282. package/dist/lime-crm-building-blocks/{p-0bdfd7ab.entry.js → p-994296b0.entry.js} +1 -1
  283. package/dist/lime-crm-building-blocks/p-B-WBKAaa.js +1 -0
  284. package/dist/lime-crm-building-blocks/p-BjXRsiQr.js +1 -0
  285. package/dist/lime-crm-building-blocks/{p-Dtg8KAQt.js → p-Bkno2RtN.js} +1 -1
  286. package/dist/lime-crm-building-blocks/{p-DM0fyjo-.js → p-CI6VHE0w.js} +1 -1
  287. package/dist/lime-crm-building-blocks/{p-BxpMk4Zk.js → p-DI3GWqfD.js} +1 -1
  288. package/dist/lime-crm-building-blocks/{p-2091d4c8.entry.js → p-a6e9cefe.entry.js} +1 -1
  289. package/dist/lime-crm-building-blocks/{p-e2503bad.entry.js → p-b0b8ce73.entry.js} +1 -1
  290. package/dist/lime-crm-building-blocks/{p-f5c44de2.entry.js → p-b0ec4121.entry.js} +1 -1
  291. package/dist/lime-crm-building-blocks/p-b7e5a10e.entry.js +1 -0
  292. package/dist/lime-crm-building-blocks/{p-e0107a69.entry.js → p-bd0a30d7.entry.js} +1 -1
  293. package/dist/lime-crm-building-blocks/{p-c84136ae.entry.js → p-bde3e779.entry.js} +1 -1
  294. package/dist/lime-crm-building-blocks/{p-90f3e299.entry.js → p-be5c43bb.entry.js} +1 -1
  295. package/dist/lime-crm-building-blocks/p-bf4b2a91.entry.js +1 -0
  296. package/dist/lime-crm-building-blocks/{p-73fab4a9.entry.js → p-c891125e.entry.js} +1 -1
  297. package/dist/lime-crm-building-blocks/{p-8d41a7f8.entry.js → p-d7d6d21b.entry.js} +1 -1
  298. package/dist/lime-crm-building-blocks/{p-22e4b5e9.entry.js → p-d95f66c8.entry.js} +1 -1
  299. package/dist/lime-crm-building-blocks/{p-3c25e289.entry.js → p-dacd1df3.entry.js} +1 -1
  300. package/dist/lime-crm-building-blocks/{p-5e4c9115.entry.js → p-de785fee.entry.js} +1 -1
  301. package/dist/lime-crm-building-blocks/{p-23556cb1.entry.js → p-e2420cde.entry.js} +1 -1
  302. package/dist/lime-crm-building-blocks/{p-d8d30ec3.entry.js → p-e4cef02f.entry.js} +1 -1
  303. package/dist/lime-crm-building-blocks/{p-00be69ac.entry.js → p-e618ccd3.entry.js} +1 -1
  304. package/dist/lime-crm-building-blocks/{p-a201e304.entry.js → p-ec1e079e.entry.js} +1 -1
  305. package/dist/lime-crm-building-blocks/{p-37fbd50d.entry.js → p-f4d518ec.entry.js} +1 -1
  306. package/dist/lime-crm-building-blocks/{p-1c67e198.entry.js → p-f73e3da0.entry.js} +1 -1
  307. package/dist/lime-crm-building-blocks/{p-f3d3ff7e.entry.js → p-fb8d854b.entry.js} +1 -1
  308. package/dist/lime-crm-building-blocks/{p-342aae30.entry.js → p-fce1a282.entry.js} +1 -1
  309. package/dist/lime-crm-building-blocks/{p-4e7b8559.entry.js → p-fd38bf57.entry.js} +1 -1
  310. package/dist/types/components/rule-editor/value-comparison-editor/value-comparison-editor.d.ts +40 -19
  311. package/dist/types/components.d.ts +30 -42
  312. package/dist/types/stencil-public-runtime.d.ts +1 -0
  313. package/package.json +10 -10
  314. package/dist/lime-crm-building-blocks/p-01ddcb14.entry.js +0 -1
  315. package/dist/lime-crm-building-blocks/p-15bb23c9.entry.js +0 -1
  316. package/dist/lime-crm-building-blocks/p-31580e01.entry.js +0 -1
  317. package/dist/lime-crm-building-blocks/p-52f39097.entry.js +0 -1
  318. package/dist/lime-crm-building-blocks/p-5f940ea8.entry.js +0 -1
  319. package/dist/lime-crm-building-blocks/p-6cfebec1.entry.js +0 -1
  320. package/dist/lime-crm-building-blocks/p-7b119566.entry.js +0 -1
  321. package/dist/lime-crm-building-blocks/p-840b817b.entry.js +0 -1
  322. package/dist/lime-crm-building-blocks/p-9ad269dd.entry.js +0 -1
  323. package/dist/lime-crm-building-blocks/p-Bb18Bgig.js +0 -1
  324. package/dist/lime-crm-building-blocks/p-d7462e93.entry.js +0 -1
  325. package/dist/lime-crm-building-blocks/p-f382f2fa.entry.js +0 -1
  326. package/dist/lime-crm-building-blocks/p-xIXgZHrE.js +0 -1
  327. /package/dist/lime-crm-building-blocks/{p-LEJjPpY0.js → p-DwHAn7LS.js} +0 -0
@@ -78,7 +78,7 @@ export class LimetypeField {
78
78
  value: '',
79
79
  };
80
80
  options.unshift(emptyOption);
81
- return (h("limel-select", { key: '53d14fd956c5762249f3027456733f6d9fe1a98a', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
81
+ return (h("limel-select", { key: '412e4360e37481f5e5e42eb6018a78350bcde4ae', label: this.label, options: options, value: selectedOption, required: this.required, helperText: this.helperText, invalid: invalid, disabled: this.disabled || this.readonly, onChange: this.handleChange }));
82
82
  }
83
83
  componentWillRender() {
84
84
  this.updatePropertyFields(this.value || '');
@@ -69,7 +69,7 @@ export class OrderByEditor {
69
69
  }
70
70
  }
71
71
  render() {
72
- return (h(Host, { key: '80d8a3366d87715e62ba62205b1c0111e358daa5' }, this.renderEmptyState(), this.renderOrderByEditor()));
72
+ return (h(Host, { key: 'ce933b9c6df59149fa40d26f7e38bdce89208df0' }, this.renderEmptyState(), this.renderOrderByEditor()));
73
73
  }
74
74
  renderEmptyState() {
75
75
  if (this.limetype) {
@@ -38,9 +38,9 @@ export class OrderByItemComponent {
38
38
  render() {
39
39
  const propertyPath = Object.keys(this.item)[0] || '';
40
40
  const direction = this.item[propertyPath] || 'ASC';
41
- return (h(Host, { key: '3d546bbd06326fdf84b97cbf8002e61bf4d65bf9' }, h("limebb-property-selector", { key: '908dd26127731052d920fc3b738977f49738aefc', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: '5a451c6124141537e40e4b38811428072c93d3fc', class: "control-buttons" }, h("limel-icon-button", { key: 'dae62d712d7225dc20b91b5d2c78cc346355ce52', icon: direction === 'ASC'
41
+ return (h(Host, { key: 'd5d6e8ff87d1afa4d5edbf593455bf43834b29ec' }, h("limebb-property-selector", { key: '92ceae9018edf1b6d073645414dd7b8f094a833d', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: 'f2a3eb4b19a8ea762928dfb8e61e47d60204ad53', class: "control-buttons" }, h("limel-icon-button", { key: '310fc4eaf3645dd185670409cb83dc4b96d234d4', icon: direction === 'ASC'
42
42
  ? 'sort_ascending'
43
- : 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: 'a75604a6baff7dabd131364ca110984bd31787ac', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
43
+ : 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: 'e4b65c9ad1df1f9ff92bf7079d2871f0958d7b10', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
44
44
  }
45
45
  static get is() { return "limebb-lime-query-order-by-item"; }
46
46
  static get encapsulation() { return "shadow"; }
@@ -180,12 +180,6 @@
180
180
  cursor: pointer;
181
181
  color: var(--limel-theme-on-surface-color);
182
182
  background-color: transparent;
183
- font-size: 0.625rem;
184
- padding: 0 0.5rem 0 0.25rem;
185
- display: flex;
186
- align-items: center;
187
- gap: 0.25rem;
188
- border-radius: 0.25rem;
189
183
  }
190
184
  .button-group button:hover, .button-group button:focus, .button-group button:focus-visible {
191
185
  will-change: color, background-color, box-shadow, transform;
@@ -219,6 +213,14 @@
219
213
  outline: none;
220
214
  box-shadow: var(--shadow-depth-8-focused);
221
215
  }
216
+ .button-group button {
217
+ font-size: 0.625rem;
218
+ padding: 0 0.5rem 0 0.25rem;
219
+ display: flex;
220
+ align-items: center;
221
+ gap: 0.25rem;
222
+ border-radius: 0.25rem;
223
+ }
222
224
  .button-group button:hover {
223
225
  transform: scale(1.2);
224
226
  }
@@ -66,7 +66,7 @@ export class ResponseFormatItem {
66
66
  }
67
67
  render() {
68
68
  return [
69
- h("div", { key: '06809c3ef5e4ee2dbbfceadf21bf9ad62efe4d69', class: "property-controls" }, h("div", { key: 'da5275346d5895eaafa1d0cd1b872ae384313c19', class: "property-path" }, h("limebb-property-selector", { key: 'e7fdee44a0baa487ef31b1e9ae50d6902efb789e', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: '874a5182ceecc35a4ef5017d84e8c934b596a653', class: "input-grid" }, this.renderAliasInput()), h("div", { key: '2ec93a1a3c33472bd319dd6eb8ba7b78c6c25716', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: '9728a5b115293684c2102dae3a25eb071b1d47c0', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: '96f26604fd4b8893ffc6d9f22a98d22234e8b415', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
69
+ h("div", { key: '1b848d424ba2e13afe06deb80e3344257fbc44e2', class: "property-controls" }, h("div", { key: 'd6b4217961f610f2d4e96cb1c33544e44d4a3a36', class: "property-path" }, h("limebb-property-selector", { key: 'ec7e294945d9974ee0d5159c678cc7d94dc082af', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: '8aabbbf8548d9abbb930b5aaad6b8d476fc261b1', class: "input-grid" }, this.renderAliasInput()), h("div", { key: 'fa1b078c6b5a1c2d80ecc6bf5114af8f6d8ba12f', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: '49c482d4b60ae15afac30b67af4ab01d02b9c1e9', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: 'e7123ea4974c2928b8b5977595595f77e2271b1a', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
70
70
  ];
71
71
  }
72
72
  renderAliasButton() {
@@ -5,8 +5,8 @@ import { h } from "@stencil/core";
5
5
  export class LiveDocsInfo {
6
6
  render() {
7
7
  return [
8
- h("div", { key: 'f81bc7b988839c66b858bd6ac361067d7be94b6d', class: "header" }, h("limel-icon", { key: 'b7304f72bb145945db981eb93b1ee4d14114edfa', name: "not_showing_video_frames" }), h("h2", { key: '0331b8264505e135f9bb865e67a31292b1ed35f4' }, "Viewing this file type requires ", h("em", { key: 'bd7049ae2fe5c9b66255d71dc1157dbcac1e34bf' }, "Live Docs"))),
9
- h("p", { key: 'b34ef63df0f29d319c0993adeb5360ad9961834e' }, h("em", { key: 'ff6e076d06abb21efb6ca9aba4343e56339a5adb' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: '6abd8c066d30ed815e58febf40abf65560a15b0b', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
8
+ h("div", { key: '59e539b27d23e3e18806704e8fe2264bc7da1375', class: "header" }, h("limel-icon", { key: '2b6d28bedbc16cd7665b1a250b634ed608d494a5', name: "not_showing_video_frames" }), h("h2", { key: '9ae03ca947c6cadd3754dbf13cd971af1b922fa6' }, "Viewing this file type requires ", h("em", { key: '08fecec0c0fe0ffae4dee5c3268897920c090f48' }, "Live Docs"))),
9
+ h("p", { key: '7ec4f32f2523ca39518ecce705bcdffa17e73fe3' }, h("em", { key: '4569da9a16c5be8171d01df9620e9adae19eac43' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: '829b8bd8be2751607146797f83b8c220db68f1c2', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
10
10
  ];
11
11
  }
12
12
  static get is() { return "limebb-live-docs-info"; }
@@ -53,7 +53,7 @@ export class LocalePicker {
53
53
  const value = this.value;
54
54
  selectedOptions = options.find((option) => option.value === value);
55
55
  }
56
- return (h("limel-select", { key: '231a49f12d52d8dcd0374dbc50a625c9dc5c9680', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
56
+ return (h("limel-select", { key: '36c73b129d7750a035ec241c412a6c2447e23bd4', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
57
57
  }
58
58
  static get is() { return "limebb-locale-picker"; }
59
59
  static get encapsulation() { return "shadow"; }
@@ -56,7 +56,7 @@ export class NotificationListItem {
56
56
  }
57
57
  render() {
58
58
  var _a, _b;
59
- return (h(Host, { key: '70aa4b0d5b07a56b414585422771813cacac8d04', id: this.item.id, class: {
59
+ return (h(Host, { key: '466bd6547e34e2176054e4abe4354377ea02c316', id: this.item.id, class: {
60
60
  'is-clickable': this.isItemClickable(),
61
61
  'is-read': !!((_a = this.item) === null || _a === void 0 ? void 0 : _a.read),
62
62
  'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
@@ -133,13 +133,6 @@ limel-notched-outline:not([invalid]:not([invalid=false])) .limel-notched-outline
133
133
  --limel-notched-outline-border-color: transparent;
134
134
  }
135
135
 
136
- div[slot=content] {
137
- display: flex;
138
- align-items: center;
139
- gap: 0.5rem;
140
- border-radius: inherit;
141
- background-color: transparent !important;
142
- }
143
136
  div[slot=content]:focus {
144
137
  outline: none;
145
138
  }
@@ -147,6 +140,13 @@ div[slot=content]:focus-visible {
147
140
  outline: none;
148
141
  box-shadow: var(--shadow-depth-8-focused);
149
142
  }
143
+ div[slot=content] {
144
+ display: flex;
145
+ align-items: center;
146
+ gap: 0.5rem;
147
+ border-radius: inherit;
148
+ background-color: transparent !important;
149
+ }
150
150
  :host(limebb-percentage-visualizer[invalid]:not([invalid=false])) div[slot=content] {
151
151
  border-color: rgb(var(--color-red-default));
152
152
  }
@@ -108,11 +108,11 @@ export class PercentageVisualizer {
108
108
  render() {
109
109
  const normalizedValue = this.getNormalizedValue();
110
110
  const zeroPoint = this.getZeroPointPosition();
111
- return (h(Host, { key: '8fb1abf25655577aa6310c53da7380742a7751c9', class: this.getContainerClassList(), style: {
111
+ return (h(Host, { key: '28577ee369379142fa8eb6cf5acc6956475451ec', class: this.getContainerClassList(), style: {
112
112
  '--limebb-percentage-visualizer-zero-point-position': `${zeroPoint}%`,
113
113
  '--limebb-percentage-visualizer-width': `${Math.abs(normalizedValue)}%`,
114
114
  '--limebb-percentage-visualizer-rotate': `${normalizedValue >= 0 ? '0deg' : '180deg'}`,
115
- } }, h("limel-notched-outline", { key: '8f936a2aef75ca6656b60cf57a31dc49260b9530', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: '6c9fd8738d41a3419bb211345bc8ffe16a615026', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
115
+ } }, h("limel-notched-outline", { key: '1f47e875b69a06ddc10528916f004ffcdb23b65b', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: 'd3a0d2bc17bbe9b6c26789118f0f679bda356c63', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
116
116
  }
117
117
  renderVisualization() {
118
118
  if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
@@ -319,7 +319,7 @@ export class PercentageVisualizer {
319
319
  "setter": false,
320
320
  "reflect": true,
321
321
  "attribute": "range-max",
322
- "defaultValue": "DEFAULT_RANGE_MAX"
322
+ "defaultValue": "100"
323
323
  },
324
324
  "rangeMin": {
325
325
  "type": "number",
@@ -339,7 +339,7 @@ export class PercentageVisualizer {
339
339
  "setter": false,
340
340
  "reflect": true,
341
341
  "attribute": "range-min",
342
- "defaultValue": "DEFAULT_RANGE_MIN"
342
+ "defaultValue": "0"
343
343
  },
344
344
  "multiplier": {
345
345
  "type": "number",
@@ -359,7 +359,7 @@ export class PercentageVisualizer {
359
359
  "setter": false,
360
360
  "reflect": true,
361
361
  "attribute": "multiplier",
362
- "defaultValue": "DEFAULT_MULTIPLIER_FACTOR"
362
+ "defaultValue": "1"
363
363
  },
364
364
  "label": {
365
365
  "type": "string",
@@ -45,7 +45,7 @@ export class RuleChipPopover {
45
45
  };
46
46
  }
47
47
  render() {
48
- return (h("div", { key: '9577a4da5cb41e51ab83f2ed602781c13d7af503', class: "popover" }, this.renderHeader(), this.renderBody()));
48
+ return (h("div", { key: '1b3a5fc8fc65f577b082cb368d92a99cfc68806a', class: "popover" }, this.renderHeader(), this.renderBody()));
49
49
  }
50
50
  renderHeader() {
51
51
  var _a, _b, _c, _d;
@@ -126,7 +126,7 @@ export class RuleEditor {
126
126
  'rule-editor': true,
127
127
  'rule-editor--disabled': this.disabled,
128
128
  };
129
- return (h("div", { key: '2c1a7d0162a9145de148c55d3d349edb21c26b34', class: containerClasses }, this.renderLabel(), h(RuleNodeView, { key: 'bfcadccfef5f55ba8325454fa11ee4e27faa1adc', node: this.normalizedValue, path: [], ctx: this.createRenderContext() }), this.renderHelperText()));
129
+ return (h("div", { key: '983f8e733e177da750191a88e3c176166932f7e0', class: containerClasses }, this.renderLabel(), h(RuleNodeView, { key: '48be41683418ead2b1f2283615b559cfcabbfa98', node: this.normalizedValue, path: [], ctx: this.createRenderContext() }), this.renderHelperText()));
130
130
  }
131
131
  renderLabel() {
132
132
  if (!this.label) {
@@ -6,4 +6,15 @@
6
6
  display: grid;
7
7
  gap: 0.5rem;
8
8
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
9
+ }
10
+
11
+ .offset-builder {
12
+ display: flex;
13
+ gap: 0.5rem;
14
+ align-items: flex-end;
15
+ grid-column: 1/-1;
16
+ }
17
+
18
+ .offset-builder .offset-count {
19
+ max-width: 6rem;
9
20
  }
@@ -1,5 +1,12 @@
1
- import { h } from "@stencil/core";
1
+ import { h, } from "@stencil/core";
2
2
  import { Operator } from "@limetech/lime-web-components";
3
+ const TYPE_OPTIONS = [
4
+ { value: 'string', text: 'Text' },
5
+ { value: 'number', text: 'Number' },
6
+ { value: 'date', text: 'Date' },
7
+ { value: 'datetime', text: 'Date & time' },
8
+ { value: 'time', text: 'Time' },
9
+ ];
3
10
  const OPERATOR_OPTIONS = [
4
11
  { value: Operator.EQUALS, text: 'Equals' },
5
12
  { value: Operator.NOT_EQUALS, text: 'Does not equal' },
@@ -8,16 +15,43 @@ const OPERATOR_OPTIONS = [
8
15
  { value: Operator.GREATER, text: 'Greater than' },
9
16
  { value: Operator.GREATER_OR_EQUAL, text: 'Greater than or equal to' },
10
17
  ];
18
+ const RELATIVE_OFFSET_KEY = '__relative_offset__';
19
+ const SPECIFIC_KEY = '__specific__';
20
+ const FIXED_TOKEN_OPTIONS = [
21
+ { value: '$now', text: 'Now' },
22
+ { value: '$today', text: 'Today' },
23
+ { value: '$tomorrow', text: 'Tomorrow' },
24
+ { value: '$yesterday', text: 'Yesterday' },
25
+ { value: '$this_week', text: 'This week' },
26
+ { value: '$this_month', text: 'This month' },
27
+ { value: '$this_quarter', text: 'This quarter' },
28
+ { value: '$this_year', text: 'This year' },
29
+ ];
30
+ const FIXED_TOKENS = new Set(FIXED_TOKEN_OPTIONS.map((option) => option.value));
31
+ const DIRECTION_OPTIONS = [
32
+ { value: 'next', text: 'Next' },
33
+ { value: 'previous', text: 'Previous' },
34
+ ];
35
+ const UNIT_OPTIONS = [
36
+ { value: 'day', text: 'days' },
37
+ { value: 'week', text: 'weeks' },
38
+ { value: 'month', text: 'months' },
39
+ { value: 'quarter', text: 'quarters' },
40
+ { value: 'year', text: 'years' },
41
+ ];
42
+ // Same grammar the primitive parses in limeclient.js `relative-dates.ts`.
43
+ const PARAMETERIZED_TOKEN = /^\$(next|previous)_(day|week|month|quarter|year)\((\d+)\)$/;
44
+ const TEMPORAL_TYPES = new Set([
45
+ 'date',
46
+ 'datetime',
47
+ 'time',
48
+ ]);
11
49
  /**
12
- * Args editor for the `limetech.value-comparison` rule primitive: an
13
- * operator from the match-filter {@link Operator} vocabulary plus the value
14
- * to compare against. The operand is emitted as a number when it parses as
15
- * one and as a string otherwise; the `valueType` follows from it so the
16
- * primitive orders numerically for numbers and lexically for strings (ISO
17
- * date strings sort correctly that way).
18
- *
19
- * Emptiness is a separate concern handled by the `limetech.value-is-empty`
20
- * primitive, so this editor offers comparison operators only.
50
+ * Args editor for the `limetech.value-comparison` rule primitive: a comparison
51
+ * type, an operator from the match-filter {@link Operator} vocabulary, and the
52
+ * value to compare against. The chosen type drives the operand input text and
53
+ * numbers use a plain field; dates, datetimes and times offer a date picker plus
54
+ * relative-date choices.
21
55
  *
22
56
  * @alpha
23
57
  * @private
@@ -28,46 +62,263 @@ export class ValueComparisonEditor {
28
62
  * @inheritdoc
29
63
  */
30
64
  this.value = {};
65
+ this.direction = 'next';
66
+ this.unit = 'week';
67
+ this.count = 1;
68
+ this.countInput = '1';
69
+ this.countInvalid = false;
70
+ this.handleTypeChange = (event) => {
71
+ var _a, _b;
72
+ event.stopPropagation();
73
+ this.resetOperandState();
74
+ this.emit(this.value.operator, undefined, (_b = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 'string');
75
+ };
31
76
  this.handleOperatorChange = (event) => {
32
77
  var _a;
33
78
  event.stopPropagation();
34
79
  const operator = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.value;
35
80
  if (!operator) {
36
- this.change.emit({});
81
+ this.emit(undefined, undefined);
82
+ return;
83
+ }
84
+ this.emit(operator, this.value.operand);
85
+ };
86
+ this.handleScalarOperandChange = (event) => {
87
+ event.stopPropagation();
88
+ const operator = this.value.operator;
89
+ if (!operator) {
90
+ return;
91
+ }
92
+ this.emit(operator, this.parseScalarOperand(event.detail));
93
+ };
94
+ this.handleOperandKeyChange = (event) => {
95
+ var _a;
96
+ event.stopPropagation();
97
+ const operator = this.value.operator;
98
+ if (!operator) {
99
+ return;
100
+ }
101
+ const key = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.value;
102
+ this.operandKey = key;
103
+ if (key === RELATIVE_OFFSET_KEY) {
104
+ this.emit(operator, this.relativeOffsetToken());
105
+ return;
106
+ }
107
+ if (key === SPECIFIC_KEY) {
108
+ // Default to now so the operand is always a real, rebuildable value.
109
+ if (!this.specificDate) {
110
+ this.specificDate = new Date();
111
+ }
112
+ this.emit(operator, this.formatSpecific(this.specificDate));
37
113
  return;
38
114
  }
39
- this.change.emit(this.withOperand(operator, this.value.operand));
115
+ // A fixed token (or nothing selected).
116
+ this.emit(operator, key || undefined);
117
+ };
118
+ this.handleDirectionChange = (event) => {
119
+ var _a, _b;
120
+ event.stopPropagation();
121
+ this.direction = (_b = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 'next';
122
+ this.emitRelativeOffset();
123
+ };
124
+ this.handleUnitChange = (event) => {
125
+ var _a, _b;
126
+ event.stopPropagation();
127
+ this.unit = (_b = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 'week';
128
+ this.emitRelativeOffset();
40
129
  };
41
- this.handleOperandChange = (event) => {
130
+ this.handleCountChange = (event) => {
131
+ event.stopPropagation();
132
+ this.countInput = String(event.detail);
133
+ const parsed = Number.parseInt(this.countInput, 10);
134
+ if (Number.isNaN(parsed) || parsed < 1) {
135
+ // Keep showing what the author typed, but flag it instead of
136
+ // emitting an operand that disagrees with the field.
137
+ this.countInvalid = true;
138
+ return;
139
+ }
140
+ this.countInvalid = false;
141
+ this.count = parsed;
142
+ this.emitRelativeOffset();
143
+ };
144
+ this.handleSpecificDateChange = (event) => {
42
145
  event.stopPropagation();
43
146
  const operator = this.value.operator;
44
147
  if (!operator) {
45
148
  return;
46
149
  }
47
- this.change.emit(this.withOperand(operator, parseOperand(event.detail)));
150
+ const date = event.detail instanceof Date ? event.detail : undefined;
151
+ this.specificDate = date;
152
+ this.emit(operator, date ? this.formatSpecific(date) : undefined);
48
153
  };
49
154
  }
155
+ componentWillLoad() {
156
+ this.syncFromValue(this.value);
157
+ }
158
+ onValueChange(value) {
159
+ this.syncFromValue(value);
160
+ }
161
+ get valueType() {
162
+ var _a;
163
+ return (_a = this.value.valueType) !== null && _a !== void 0 ? _a : 'string';
164
+ }
50
165
  render() {
51
- const selected = OPERATOR_OPTIONS.find((option) => option.value === this.value.operator);
52
- return (h("div", { key: 'e3589c48dc94a8a191e46adcd19947c825f12562', class: "rule" }, h("limel-select", { key: '8cb50df76bd8adb26d4bbab185258f1d594f71d8', label: "When the value", options: OPERATOR_OPTIONS, value: selected, onChange: this.handleOperatorChange }), this.renderOperandInput()));
166
+ const selectedType = TYPE_OPTIONS.find((option) => option.value === this.valueType);
167
+ const selectedOperator = OPERATOR_OPTIONS.find((option) => option.value === this.value.operator);
168
+ return (h("div", { key: '9c6e6b6f160fb05bd4a242a207d16b8420ff41df', class: "rule" }, h("limel-select", { key: '703815442cf66522e406223da8ec738eca3d17ff', class: "type-select", label: "Compare as", options: TYPE_OPTIONS, value: selectedType, onChange: this.handleTypeChange }), h("limel-select", { key: '371b67efd26c2519ad2dc2a826a8a28d4b17a659', class: "operator-select", label: "When the value", options: OPERATOR_OPTIONS, value: selectedOperator, onChange: this.handleOperatorChange }), this.renderOperand()));
53
169
  }
54
- renderOperandInput() {
170
+ renderOperand() {
55
171
  if (!this.value.operator) {
56
172
  return null;
57
173
  }
58
- return (h("limel-input-field", { label: "Compared with", value: this.value.operand === undefined
174
+ if (TEMPORAL_TYPES.has(this.valueType)) {
175
+ return this.renderTemporalOperand();
176
+ }
177
+ return this.renderScalarInput();
178
+ }
179
+ renderScalarInput() {
180
+ return (h("limel-input-field", { class: "operand-input", label: "Compared with", type: this.valueType === 'number' ? 'number' : 'text', value: this.value.operand === undefined
59
181
  ? ''
60
- : String(this.value.operand), onChange: this.handleOperandChange }));
182
+ : String(this.value.operand), onChange: this.handleScalarOperandChange }));
61
183
  }
62
- withOperand(operator, operand) {
63
- if (operand === undefined) {
64
- return { operator };
184
+ renderTemporalOperand() {
185
+ const options = this.operandOptions();
186
+ const selected = options.find((option) => option.value === this.operandKey);
187
+ return [
188
+ h("limel-select", { key: "operand-select", class: "operand-select", label: "Compared with", options: options, value: selected, onChange: this.handleOperandKeyChange }),
189
+ this.renderTemporalSubControl(),
190
+ ];
191
+ }
192
+ operandOptions() {
193
+ if (this.valueType === 'time') {
194
+ return [
195
+ { value: '$now', text: 'Now' },
196
+ { value: SPECIFIC_KEY, text: 'Specific time…' },
197
+ ];
65
198
  }
66
- return {
67
- operator,
68
- operand,
69
- valueType: typeof operand === 'number' ? 'number' : 'string',
70
- };
199
+ const specificText = this.valueType === 'datetime'
200
+ ? 'Specific date & time…'
201
+ : 'Specific date…';
202
+ // For a pure date `$now` resolves to the same value as `$today`, so
203
+ // only datetime (where the time component matters) offers it.
204
+ const fixedTokens = this.valueType === 'date'
205
+ ? FIXED_TOKEN_OPTIONS.filter((option) => option.value !== '$now')
206
+ : FIXED_TOKEN_OPTIONS;
207
+ return [
208
+ ...fixedTokens,
209
+ { value: RELATIVE_OFFSET_KEY, text: 'Relative offset…' },
210
+ { value: SPECIFIC_KEY, text: specificText },
211
+ ];
212
+ }
213
+ renderTemporalSubControl() {
214
+ if (this.operandKey === RELATIVE_OFFSET_KEY) {
215
+ return this.renderOffsetBuilder();
216
+ }
217
+ if (this.operandKey === SPECIFIC_KEY) {
218
+ return this.renderDatePicker();
219
+ }
220
+ return null;
221
+ }
222
+ renderOffsetBuilder() {
223
+ const selectedDirection = DIRECTION_OPTIONS.find((option) => option.value === this.direction);
224
+ const selectedUnit = UNIT_OPTIONS.find((option) => option.value === this.unit);
225
+ return (h("div", { key: "offset-builder", class: "offset-builder" }, h("limel-select", { class: "offset-direction", options: DIRECTION_OPTIONS, value: selectedDirection, onChange: this.handleDirectionChange }), h("limel-input-field", { class: "offset-count", label: "Amount", type: "number", required: true, invalid: this.countInvalid, value: this.countInput, onChange: this.handleCountChange }), h("limel-select", { class: "offset-unit", options: UNIT_OPTIONS, value: selectedUnit, onChange: this.handleUnitChange })));
226
+ }
227
+ renderDatePicker() {
228
+ return (h("limel-date-picker", { key: "specific-picker", class: "operand-picker", label: "Compared with", type: this.valueType, value: this.specificDate, onChange: this.handleSpecificDateChange }));
229
+ }
230
+ emitRelativeOffset() {
231
+ const operator = this.value.operator;
232
+ if (!operator) {
233
+ return;
234
+ }
235
+ this.emit(operator, this.relativeOffsetToken());
236
+ }
237
+ relativeOffsetToken() {
238
+ return `$${this.direction}_${this.unit}(${this.count})`;
239
+ }
240
+ parseScalarOperand(raw) {
241
+ const text = String(raw);
242
+ if (text.trim() === '') {
243
+ return undefined;
244
+ }
245
+ if (this.valueType !== 'number') {
246
+ return text;
247
+ }
248
+ const parsed = Number(text);
249
+ return Number.isNaN(parsed) ? undefined : parsed;
250
+ }
251
+ formatSpecific(date) {
252
+ if (this.valueType === 'datetime') {
253
+ return date.toISOString();
254
+ }
255
+ if (this.valueType === 'time') {
256
+ return `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
257
+ }
258
+ return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
259
+ }
260
+ emit(operator, operand, valueType = this.valueType) {
261
+ // Always carry valueType so the type selection round-trips through
262
+ // value even when there's no operand yet; the primitive ignores it
263
+ // until an operand is present.
264
+ const next = { valueType };
265
+ if (operator) {
266
+ next.operator = operator;
267
+ }
268
+ if (operand !== undefined) {
269
+ next.operand = operand;
270
+ }
271
+ this.change.emit(next);
272
+ }
273
+ resetOperandState() {
274
+ this.operandKey = undefined;
275
+ this.specificDate = undefined;
276
+ this.direction = 'next';
277
+ this.unit = 'week';
278
+ this.count = 1;
279
+ this.countInput = '1';
280
+ this.countInvalid = false;
281
+ }
282
+ syncFromValue(value) {
283
+ const operand = value === null || value === void 0 ? void 0 : value.operand;
284
+ if (typeof operand !== 'string' || operand === '') {
285
+ // No operand: keep the sub-control the author has open.
286
+ return;
287
+ }
288
+ if (!TEMPORAL_TYPES.has(this.valueType)) {
289
+ this.operandKey = undefined;
290
+ return;
291
+ }
292
+ const match = PARAMETERIZED_TOKEN.exec(operand);
293
+ if (match) {
294
+ const [, direction, unit, count] = match;
295
+ this.operandKey = RELATIVE_OFFSET_KEY;
296
+ this.direction = direction;
297
+ this.unit = unit;
298
+ this.count = Number(count);
299
+ this.countInput = count;
300
+ this.countInvalid = false;
301
+ return;
302
+ }
303
+ if (FIXED_TOKENS.has(operand)) {
304
+ this.operandKey = operand;
305
+ return;
306
+ }
307
+ this.operandKey = SPECIFIC_KEY;
308
+ this.specificDate = this.parseSpecific(operand);
309
+ }
310
+ parseSpecific(operand) {
311
+ const date = new Date(this.specificDateText(operand));
312
+ return Number.isNaN(date.getTime()) ? undefined : date;
313
+ }
314
+ specificDateText(operand) {
315
+ if (this.valueType === 'time') {
316
+ return `1970-01-01T${operand}`;
317
+ }
318
+ if (this.valueType === 'date') {
319
+ return `${operand}T00:00:00`;
320
+ }
321
+ return operand;
71
322
  }
72
323
  static get is() { return "limebb-value-comparison-editor"; }
73
324
  static get encapsulation() { return "shadow"; }
@@ -112,6 +363,17 @@ export class ValueComparisonEditor {
112
363
  }
113
364
  };
114
365
  }
366
+ static get states() {
367
+ return {
368
+ "operandKey": {},
369
+ "direction": {},
370
+ "unit": {},
371
+ "count": {},
372
+ "countInput": {},
373
+ "countInvalid": {},
374
+ "specificDate": {}
375
+ };
376
+ }
115
377
  static get events() {
116
378
  return [{
117
379
  "method": "change",
@@ -139,11 +401,13 @@ export class ValueComparisonEditor {
139
401
  }
140
402
  }];
141
403
  }
142
- }
143
- function parseOperand(raw) {
144
- if (raw.trim() === '') {
145
- return undefined;
404
+ static get watchers() {
405
+ return [{
406
+ "propName": "value",
407
+ "methodName": "onValueChange"
408
+ }];
146
409
  }
147
- const parsed = Number(raw);
148
- return Number.isNaN(parsed) ? raw : parsed;
410
+ }
411
+ function pad(value) {
412
+ return String(value).padStart(2, '0');
149
413
  }
@@ -33,7 +33,7 @@ export class RuleGate {
33
33
  this.evaluate();
34
34
  }
35
35
  render() {
36
- return (h(Host, { key: 'fd7edf7439ea87b25e48c6f39a92f957b08ed49a', hidden: !this.shouldRender }, h("slot", { key: 'b7996f2833b46fa5ed41e37047380b0f7ce46d17' })));
36
+ return (h(Host, { key: '1aebc90e382bed53ff293634f4aa37cbc5b1f9d0', hidden: !this.shouldRender }, h("slot", { key: 'f28d6bc819101c43c980b80b4467dcb0d15292fa' })));
37
37
  }
38
38
  get ruleRegistry() {
39
39
  return this.platform.get(PlatformServiceName.RuleRegistry);
@@ -128,9 +128,9 @@ export class SummaryPopover {
128
128
  top: '0.125rem',
129
129
  right: '0.125rem',
130
130
  };
131
- return (h("limel-popover", { key: 'eaa26f8cd3c778f154d1ddab917819cef43967f2', style: {
131
+ return (h("limel-popover", { key: '3dac27c083b2d950d473e5f0f686cd19278eb0a0', style: {
132
132
  '--limebb-summary-popover-timeout': `${this.triggerDelay}ms`,
133
- }, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: 'd9c24139c31ad10e544d7c88cfc2f7e246a825b4', slot: "trigger", onMouseEnter: this.openPopoverWithDelay, onMouseLeave: this.resetTimeout, onFocusin: this.openPopoverWithDelay }, h("slot", { key: '261c91114ae898c2cfad0b5108a3db3209517911', name: "trigger" }), h("div", { key: 'f5274138994499992e3ff98d37d339c255c4526a', class: "opening-countdown-indicator" })), this.renderCard(closeButtonStyle)));
133
+ }, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: 'acc7cc0472a6af2b53b38915111a7c4a8c5e20a1', slot: "trigger", onMouseEnter: this.openPopoverWithDelay, onMouseLeave: this.resetTimeout, onFocusin: this.openPopoverWithDelay }, h("slot", { key: 'd6bdbf59b1d39793484de55dcfb2e43d890468bf', name: "trigger" }), h("div", { key: 'dc462c2b1b787de54b22aed6ca51cac245df3c09', class: "opening-countdown-indicator" })), this.renderCard(closeButtonStyle)));
134
134
  }
135
135
  renderCard(closeButtonStyle) {
136
136
  return (h("limel-card", { style: {
@@ -13,8 +13,8 @@ export class MentionGroupCounter {
13
13
  render() {
14
14
  const label = this.getLabel();
15
15
  return [
16
- h("span", { key: '2eee86762d277a56502e0ddfe6c40e25ebcffabf', id: this.tooltipId }, label),
17
- h("limel-tooltip", { key: '612f0b91e7b0ba20ab912e8d77fa3de4eee40212', elementId: this.tooltipId, label: label, helperLabel: this.helperLabel }),
16
+ h("span", { key: '638df46fb134015d8f9402830580d36dc759bcd1', id: this.tooltipId }, label),
17
+ h("limel-tooltip", { key: 'bdd49e3025be834b9d808473d456341a50d6f50d', elementId: this.tooltipId, label: label, helperLabel: this.helperLabel }),
18
18
  ];
19
19
  }
20
20
  getLabel() {