@limetech/lime-crm-building-blocks 1.124.0 → 1.126.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 (264) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/color-palettes-BWuwMtwv.js +334 -0
  3. package/dist/cjs/index.cjs.js +5 -0
  4. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  5. package/dist/cjs/limebb-alert-dialog.cjs.entry.js +1 -1
  6. package/dist/cjs/limebb-browser.cjs.entry.js +2 -2
  7. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +4 -4
  8. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +85 -0
  10. package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +21 -0
  11. package/dist/cjs/limebb-component-config.cjs.entry.js +2 -14
  12. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +3 -3
  13. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-date-range.cjs.entry.js +1 -1
  17. package/dist/cjs/limebb-document-chips.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-document-item.cjs.entry.js +2 -2
  19. package/dist/cjs/limebb-document-picker.cjs.entry.js +1 -1
  20. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  22. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  23. package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
  24. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  26. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  27. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +1 -1
  29. package/dist/cjs/limebb-lime-query-filter-builder_3.cjs.entry.js +2 -2
  30. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-lime-query-filter-group_3.cjs.entry.js +3 -3
  32. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
  33. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +1 -1
  34. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
  35. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  36. package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
  37. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  38. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +2 -2
  39. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  40. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  41. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +59 -0
  42. package/dist/cjs/limebb-rule-editor.cjs.entry.js +646 -0
  43. package/dist/cjs/limebb-rule-gate.cjs.entry.js +5 -1
  44. package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
  45. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  46. package/dist/cjs/loader.cjs.js +1 -1
  47. package/dist/cjs/web-component-template-BWCutZB6.js +18 -0
  48. package/dist/collection/collection-manifest.json +4 -0
  49. package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
  50. package/dist/collection/components/browser/browser.js +2 -2
  51. package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
  52. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  53. package/dist/collection/components/chat-list/chat-list.js +1 -1
  54. package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
  55. package/dist/collection/components/color-palette-picker/color-palette-picker.css +5 -0
  56. package/dist/collection/components/color-palette-picker/color-palette-picker.js +295 -0
  57. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.css +28 -0
  58. package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +61 -0
  59. package/dist/collection/components/composer-toolbar/composer-toolbar.js +3 -3
  60. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  61. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  62. package/dist/collection/components/date-picker/date-picker.js +1 -1
  63. package/dist/collection/components/date-range/date-range.js +1 -1
  64. package/dist/collection/components/document-chips/document-chips.js +1 -1
  65. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  66. package/dist/collection/components/document-picker/document-picker.js +1 -1
  67. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  68. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  69. package/dist/collection/components/feed/feed.js +1 -1
  70. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  71. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  72. package/dist/collection/components/info-tile/info-tile.js +1 -1
  73. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  74. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  75. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
  76. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
  77. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  78. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  79. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  80. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  81. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  82. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  83. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  84. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  85. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  86. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  87. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  88. package/dist/collection/components/rule-editor/chip-picker-view.js +141 -0
  89. package/dist/collection/components/rule-editor/group-node-view.js +79 -0
  90. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.css +36 -0
  91. package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +301 -0
  92. package/dist/collection/components/rule-editor/rule-editor-views.js +43 -0
  93. package/dist/collection/components/rule-editor/rule-editor.css +96 -0
  94. package/dist/collection/components/rule-editor/rule-editor.js +457 -0
  95. package/dist/collection/components/rule-editor/rule-operations.js +132 -0
  96. package/dist/collection/components/rule-editor/view-helpers.js +70 -0
  97. package/dist/collection/components/rule-gate/rule-gate.js +9 -4
  98. package/dist/collection/components/summary-popover/summary-popover.js +2 -2
  99. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  100. package/dist/collection/components/text-editor/text-editor.js +1 -1
  101. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  102. package/dist/collection/index.js +1 -0
  103. package/dist/collection/util/color-palettes.js +329 -0
  104. package/dist/components/chat-icon-list.js +1 -1
  105. package/dist/components/chat-item.js +1 -1
  106. package/dist/components/color-palettes.js +1 -0
  107. package/dist/components/currency-picker.js +1 -1
  108. package/dist/components/date-picker.js +1 -1
  109. package/dist/components/document-item.js +1 -1
  110. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  111. package/dist/components/feed-timeline-item.js +1 -1
  112. package/dist/components/index.js +1 -1
  113. package/dist/components/kanban-group.js +1 -1
  114. package/dist/components/kanban-item.js +1 -1
  115. package/dist/components/lime-query-filter-comparison.js +1 -1
  116. package/dist/components/lime-query-filter-expression.js +1 -1
  117. package/dist/components/limebb-alert-dialog.js +1 -1
  118. package/dist/components/limebb-browser.js +1 -1
  119. package/dist/components/limebb-chat-list.js +1 -1
  120. package/dist/components/limebb-color-palette-picker.d.ts +11 -0
  121. package/dist/components/limebb-color-palette-picker.js +1 -0
  122. package/dist/components/limebb-color-palette-swatches.d.ts +11 -0
  123. package/dist/components/limebb-color-palette-swatches.js +1 -0
  124. package/dist/components/limebb-component-config.js +1 -1
  125. package/dist/components/limebb-composer-toolbar.js +1 -1
  126. package/dist/components/limebb-dashboard-widget.js +1 -1
  127. package/dist/components/limebb-date-range.js +1 -1
  128. package/dist/components/limebb-document-chips.js +1 -1
  129. package/dist/components/limebb-document-picker.js +1 -1
  130. package/dist/components/limebb-feed.js +1 -1
  131. package/dist/components/limebb-icon-picker.js +1 -1
  132. package/dist/components/limebb-info-tile-format.js +1 -1
  133. package/dist/components/limebb-info-tile.js +1 -1
  134. package/dist/components/limebb-lime-query-builder.js +1 -1
  135. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  136. package/dist/components/limebb-locale-picker.js +1 -1
  137. package/dist/components/limebb-mention-group-counter.js +1 -1
  138. package/dist/components/limebb-rule-chip-popover.d.ts +11 -0
  139. package/dist/components/limebb-rule-chip-popover.js +1 -0
  140. package/dist/components/limebb-rule-editor.d.ts +11 -0
  141. package/dist/components/limebb-rule-editor.js +1 -0
  142. package/dist/components/limebb-rule-gate.js +1 -1
  143. package/dist/components/limebb-text-editor.js +1 -1
  144. package/dist/components/limebb-trend-indicator.js +1 -1
  145. package/dist/components/limetype-field.js +1 -1
  146. package/dist/components/live-docs-info.js +1 -1
  147. package/dist/components/notification-item.js +1 -1
  148. package/dist/components/order-by-editor.js +1 -1
  149. package/dist/components/order-by-item.js +1 -1
  150. package/dist/components/percentage-visualizer.js +1 -1
  151. package/dist/components/response-format-item.js +1 -1
  152. package/dist/components/rule-chip-popover.js +1 -0
  153. package/dist/components/summary-popover.js +1 -1
  154. package/dist/components/typing-indicator.js +1 -1
  155. package/dist/components/web-component-template.js +1 -0
  156. package/dist/esm/color-palettes-1N3bZuHj.js +331 -0
  157. package/dist/esm/index.js +1 -0
  158. package/dist/esm/lime-crm-building-blocks.js +1 -1
  159. package/dist/esm/limebb-alert-dialog.entry.js +1 -1
  160. package/dist/esm/limebb-browser.entry.js +2 -2
  161. package/dist/esm/limebb-chat-icon-list_3.entry.js +4 -4
  162. package/dist/esm/limebb-chat-list.entry.js +1 -1
  163. package/dist/esm/limebb-color-palette-picker.entry.js +83 -0
  164. package/dist/esm/limebb-color-palette-swatches.entry.js +19 -0
  165. package/dist/esm/limebb-component-config.entry.js +2 -14
  166. package/dist/esm/limebb-composer-toolbar.entry.js +3 -3
  167. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  168. package/dist/esm/limebb-dashboard-widget.entry.js +1 -1
  169. package/dist/esm/limebb-date-picker.entry.js +1 -1
  170. package/dist/esm/limebb-date-range.entry.js +1 -1
  171. package/dist/esm/limebb-document-chips.entry.js +1 -1
  172. package/dist/esm/limebb-document-item.entry.js +2 -2
  173. package/dist/esm/limebb-document-picker.entry.js +1 -1
  174. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
  175. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  176. package/dist/esm/limebb-feed.entry.js +1 -1
  177. package/dist/esm/limebb-icon-picker.entry.js +1 -1
  178. package/dist/esm/limebb-info-tile-format.entry.js +1 -1
  179. package/dist/esm/limebb-info-tile.entry.js +1 -1
  180. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  181. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  182. package/dist/esm/limebb-lime-query-builder.entry.js +1 -1
  183. package/dist/esm/limebb-lime-query-filter-builder_3.entry.js +2 -2
  184. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +1 -1
  185. package/dist/esm/limebb-lime-query-filter-group_3.entry.js +3 -3
  186. package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
  187. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +1 -1
  188. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
  189. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  190. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  191. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  192. package/dist/esm/limebb-navigation-button_2.entry.js +2 -2
  193. package/dist/esm/limebb-notification-item.entry.js +1 -1
  194. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  195. package/dist/esm/limebb-rule-chip-popover.entry.js +57 -0
  196. package/dist/esm/limebb-rule-editor.entry.js +644 -0
  197. package/dist/esm/limebb-rule-gate.entry.js +5 -1
  198. package/dist/esm/limebb-text-editor.entry.js +1 -1
  199. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  200. package/dist/esm/loader.js +1 -1
  201. package/dist/esm/web-component-template-6zRYia86.js +16 -0
  202. package/dist/lime-crm-building-blocks/index.esm.js +1 -1
  203. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  204. package/dist/lime-crm-building-blocks/{p-e8425a2c.entry.js → p-057e1638.entry.js} +1 -1
  205. package/dist/lime-crm-building-blocks/{p-0f2d1ea7.entry.js → p-0c572fe9.entry.js} +1 -1
  206. package/dist/lime-crm-building-blocks/{p-f0a5076c.entry.js → p-11494f30.entry.js} +1 -1
  207. package/dist/lime-crm-building-blocks/p-1747221f.entry.js +1 -0
  208. package/dist/lime-crm-building-blocks/p-1831e571.entry.js +1 -0
  209. package/dist/lime-crm-building-blocks/{p-8f8108c1.entry.js → p-184ae23d.entry.js} +1 -1
  210. package/dist/lime-crm-building-blocks/p-1N3bZuHj.js +1 -0
  211. package/dist/lime-crm-building-blocks/{p-4f042496.entry.js → p-20206710.entry.js} +1 -1
  212. package/dist/lime-crm-building-blocks/{p-529dbe46.entry.js → p-24fc049c.entry.js} +1 -1
  213. package/dist/lime-crm-building-blocks/{p-e3e2852a.entry.js → p-277b6ad4.entry.js} +1 -1
  214. package/dist/lime-crm-building-blocks/{p-e4ff2906.entry.js → p-2cb31064.entry.js} +1 -1
  215. package/dist/lime-crm-building-blocks/{p-2caf01c8.entry.js → p-3313e357.entry.js} +1 -1
  216. package/dist/lime-crm-building-blocks/{p-ad27bd5d.entry.js → p-3781a766.entry.js} +1 -1
  217. package/dist/lime-crm-building-blocks/{p-85caaf36.entry.js → p-43a7facd.entry.js} +1 -1
  218. package/dist/lime-crm-building-blocks/{p-5f97c392.entry.js → p-6cceabf1.entry.js} +1 -1
  219. package/dist/lime-crm-building-blocks/{p-67326d92.entry.js → p-6d3a9ed3.entry.js} +1 -1
  220. package/dist/lime-crm-building-blocks/{p-09c63bce.entry.js → p-71a6f624.entry.js} +1 -1
  221. package/dist/lime-crm-building-blocks/{p-25c4e389.entry.js → p-731820f0.entry.js} +1 -1
  222. package/dist/lime-crm-building-blocks/p-74455a30.entry.js +1 -0
  223. package/dist/lime-crm-building-blocks/p-7922726c.entry.js +1 -0
  224. package/dist/lime-crm-building-blocks/{p-9214b92e.entry.js → p-7a125570.entry.js} +1 -1
  225. package/dist/lime-crm-building-blocks/{p-dd07a1ac.entry.js → p-7d51a34c.entry.js} +1 -1
  226. package/dist/lime-crm-building-blocks/{p-287780c1.entry.js → p-7fee7ef3.entry.js} +1 -1
  227. package/dist/lime-crm-building-blocks/{p-27798ace.entry.js → p-8084e825.entry.js} +1 -1
  228. package/dist/lime-crm-building-blocks/p-861ac606.entry.js +1 -0
  229. package/dist/lime-crm-building-blocks/{p-fcedbc77.entry.js → p-8d3fa274.entry.js} +1 -1
  230. package/dist/lime-crm-building-blocks/{p-b0567904.entry.js → p-9f7992b0.entry.js} +1 -1
  231. package/dist/lime-crm-building-blocks/p-C_tMNOSt.js +1 -0
  232. package/dist/lime-crm-building-blocks/{p-bb5d40b1.entry.js → p-abcb1e49.entry.js} +1 -1
  233. package/dist/lime-crm-building-blocks/{p-f7114acb.entry.js → p-b1a8d1a0.entry.js} +1 -1
  234. package/dist/lime-crm-building-blocks/p-b8d9ff68.entry.js +1 -0
  235. package/dist/lime-crm-building-blocks/{p-52bddb06.entry.js → p-bec4231f.entry.js} +1 -1
  236. package/dist/lime-crm-building-blocks/{p-5fa5e7f4.entry.js → p-c139ab98.entry.js} +1 -1
  237. package/dist/lime-crm-building-blocks/{p-774cd93c.entry.js → p-c4f41ec4.entry.js} +1 -1
  238. package/dist/lime-crm-building-blocks/{p-4b275818.entry.js → p-c609b5ec.entry.js} +1 -1
  239. package/dist/lime-crm-building-blocks/{p-6a05192a.entry.js → p-c6a913af.entry.js} +1 -1
  240. package/dist/lime-crm-building-blocks/p-dd38e0ba.entry.js +1 -0
  241. package/dist/lime-crm-building-blocks/{p-6cb2d9dd.entry.js → p-de6f4670.entry.js} +1 -1
  242. package/dist/lime-crm-building-blocks/{p-0cbe7498.entry.js → p-e6ed33ff.entry.js} +1 -1
  243. package/dist/lime-crm-building-blocks/p-e717bdff.entry.js +1 -0
  244. package/dist/lime-crm-building-blocks/{p-9d56503d.entry.js → p-ef62c7d8.entry.js} +1 -1
  245. package/dist/lime-crm-building-blocks/{p-9a42ae42.entry.js → p-f0a567f3.entry.js} +1 -1
  246. package/dist/lime-crm-building-blocks/{p-b07b3ae3.entry.js → p-fd6dcfe3.entry.js} +1 -1
  247. package/dist/types/components/color-palette-picker/color-palette-picker.d.ts +89 -0
  248. package/dist/types/components/color-palette-picker/color-palette-swatches/color-palette-swatches.d.ts +23 -0
  249. package/dist/types/components/rule-editor/chip-picker-view.d.ts +27 -0
  250. package/dist/types/components/rule-editor/group-node-view.d.ts +11 -0
  251. package/dist/types/components/rule-editor/rule-chip-popover/rule-chip-popover.d.ts +31 -0
  252. package/dist/types/components/rule-editor/rule-editor-views.d.ts +51 -0
  253. package/dist/types/components/rule-editor/rule-editor.d.ts +118 -0
  254. package/dist/types/components/rule-editor/rule-operations.d.ts +62 -0
  255. package/dist/types/components/rule-editor/view-helpers.d.ts +40 -0
  256. package/dist/types/components/rule-gate/rule-gate.d.ts +5 -2
  257. package/dist/types/components.d.ts +588 -6
  258. package/dist/types/index.d.ts +1 -0
  259. package/dist/types/util/color-palettes.d.ts +67 -0
  260. package/package.json +4 -4
  261. package/dist/lime-crm-building-blocks/p-51ab9d60.entry.js +0 -1
  262. package/dist/lime-crm-building-blocks/p-628ce56b.entry.js +0 -1
  263. package/dist/lime-crm-building-blocks/p-6318fd46.entry.js +0 -1
  264. package/dist/lime-crm-building-blocks/p-c6caa3f9.entry.js +0 -1
@@ -1 +1 @@
1
- import{r as e,c as t,h as i,H as r}from"./p-BIwHMk6j.js";import{X as s,j as l}from"./p-BeLcuSg8.js";import{g as o}from"./p-CQUZjrU4.js";function n(){return{key:"",op:s.EQUALS,exp:""}}function a(e,t){return{op:e.op,exp:[...e.exp,t]}}const h=class{constructor(r){e(this,r),this.expressionChange=t(this,"expressionChange"),this.options=[{text:"All",secondaryText:"AND operator",value:"and"},{text:"Any",secondaryText:"OR operator",value:"or"}],this.renderChildExpression=(e,t)=>i("limebb-lime-query-filter-expression",{role:"listitem",platform:this.platform,context:this.context,limetype:this.limetype,activeLimetype:this.activeLimetype,expression:e,onExpressionChange:this.handleExpressionChange(t)}),this.handleDeleteGroup=()=>{this.expressionChange.emit()},this.handleToggleOperator=e=>{const t=Array.isArray(e.detail)?e.detail[0]:e.detail;if(this.value=t,("and"===t.value?s.AND:s.OR)!==this.expression.op){const e={op:(i=this.expression).op===s.AND?s.OR:s.AND,exp:[...i.exp]};this.expressionChange.emit(e)}var i},this.handleAddChildExpression=()=>{const e=n(),t=a(this.expression,e);this.expressionChange.emit(t)},this.handleAddChildGroup=()=>{const e={op:this.expression.op===s.AND?s.OR:s.AND,exp:[n()]},t=a(this.expression,e);this.expressionChange.emit(t)},this.handleExpressionChange=e=>t=>{t.stopPropagation();const i=function(e,t,i){const r=[...e.exp];return i?(r[t]=i,{type:"updated",expression:{op:e.op,exp:r}}):(r.splice(t,1),0===r.length?{type:"removed",expression:void 0}:1===r.length?{type:"unwrapped",expression:r[0]}:{type:"updated",expression:{op:e.op,exp:r}})}(this.expression,e,t.detail);this.expressionChange.emit(i.expression)}}componentWillLoad(){this.value=this.options.find((e=>e.value===(this.expression.op===s.AND?"and":"or")))||this.options[0]}render(){return i(r,{key:"b6fa2e2e21d68867587e42b9247df54495c64a86",style:{"--limebb-lime-query-filter-group-operator":`"${this.expression.op===s.AND?"AND":"OR"}"`}},i("div",{key:"2d02f59f34a6bcd52f24dc942eb55ca8405ae744",class:"expression"},this.renderHeader(),i("ul",{key:"8fba5156c7e8573aaee21932640112d04d7890cf"},this.expression.exp.map(this.renderChildExpression),this.renderAddButton()),this.renderAddGroupButton()))}renderHeader(){const e=this.getSubheading();return e?i("limel-header",{subheading:e},this.renderOperators(),this.renderDeleteGroupButton()):null}renderOperators(){return i("limel-select",{class:"operator-select",slot:"actions",value:this.value,options:this.options,onChange:this.handleToggleOperator})}renderDeleteGroupButton(){return i("limel-icon-button",{class:"delete-group",slot:"actions",icon:"trash",label:"Delete This Group",onClick:this.handleDeleteGroup})}getSubheading(){return this.expression.exp.length<=1?"":this.expression.op===s.AND?"All of these conditions are met":"Any of these conditions are met"}renderAddButton(){return i("limel-button",{role:"listitem",label:"Condition",icon:{name:"plus_math",title:"Add"},onClick:this.handleAddChildExpression})}renderAddGroupButton(){return i("limel-button",{class:"add-group",label:"Group",icon:{name:"plus_math",title:"Add"},onClick:this.handleAddChildGroup})}};h.style='@charset "UTF-8";*,*::before,*::after{box-sizing:border-box}limebb-lime-query-filter-expression{position:relative;isolation:isolate}limebb-lime-query-filter-expression:not(:first-of-type):after{content:"";position:absolute;top:-0.5rem;left:0.75rem;display:block;border-radius:1rem;height:2rem;width:0.125rem;background-color:var(--limebb-lime-query-builder-group-color)}limebb-lime-query-filter-expression:not(:first-of-type):before{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;height:1rem;content:var(--limebb-lime-query-filter-group-operator);display:inline-block;margin:0 auto 0.5rem auto;transform:translateY(-50%);font-size:0.625rem;padding:0 0.5rem;color:rgb(var(--color-blue-dark));background-color:var(--limebb-lime-query-builder-group-color);border-radius:2rem}.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-100));border-radius:0.75rem;border:1px solid var(--limebb-lime-query-builder-group-color)}.expression ul{list-style:none;margin:0;padding:0.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.expression ul [role=listitem]{list-style:none;width:100%}limel-button.add-group{width:fit-content;margin:0.5rem}limel-icon-button.delete-group{margin-left:0.5rem}limel-select.operator-select{min-width:8rem}';const c=class{constructor(i){e(this,i),this.expressionChange=t(this,"expressionChange"),this.handleExpressionChange=e=>{var t;e.stopPropagation();const i=null!==(t=e.detail)&&void 0!==t?t:void 0;this.expressionChange.emit(void 0!==i?{op:s.NOT,exp:i}:void 0)}}render(){return i("div",{key:"540260cd3203c932bb630f7a714447d574c371c6",class:"expression"},this.label&&i("limel-header",{key:"32eb4b638008d7409c017627c556944d85d5db33",heading:this.label}),i("limebb-lime-query-filter-expression",{key:"e547fef08281f285baa1868a7942f3c7db1cf87f",platform:this.platform,context:this.context,label:"Not",limetype:this.limetype,activeLimetype:this.activeLimetype,expression:this.expression.exp,onExpressionChange:this.handleExpressionChange}))}};c.style='@charset "UTF-8";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem;padding:1rem;border-left:0.25rem solid rgb(var(--contrast-400));background-color:rgb(var(--contrast-100))}';const d={timestamp:"time",createdtime:"time",updatedtime:"time",id:"integer",createduser:"integer",updateduser:"integer",descriptive:"string"},u={date:"date",time:"datetime",timeofday:"time",month:"month",quarter:"quarter",year:"year"};const p=class{constructor(i){e(this,i),this.change=t(this,"change"),this.label="Value",this.inputMode="value",this.handleTextChange=e=>{e.stopPropagation();const t=e.detail,i=Number(t);Number.isNaN(i)||""===t?this.change.emit(t):this.change.emit(i)},this.handleSelectChange=e=>{e.stopPropagation();const t=e.detail;Array.isArray(t)?this.change.emit(t.map((e=>e.value))):this.change.emit(null==t?void 0:t.value)},this.handleBooleanChange=e=>{e.stopPropagation();const t=e.detail;Array.isArray(t)||this.change.emit("true"===(null==t?void 0:t.value))},this.handleDateChange=e=>{e.stopPropagation();const t=e.detail;this.change.emit(t?t.toISOString():null)},this.handleMultiValueChange=e=>{e.stopPropagation();const t=e.detail.split(",").map((e=>e.trim())).filter((e=>e.length>0));this.change.emit(t)},this.handleModeToggle=()=>{"value"===this.inputMode?(this.inputMode="placeholder",this.change.emit("%activeObject%")):(this.inputMode="value",this.change.emit(""))},this.handlePlaceholderPropertyChange=e=>{e.stopPropagation();const t=this.buildPlaceholderValue(e.detail);this.change.emit(t)}}componentWillLoad(){this.isPlaceholder(this.value)&&(this.inputMode="placeholder")}componentWillUpdate(){this.isPlaceholder(this.value)&&"placeholder"!==this.inputMode?this.inputMode="placeholder":this.isPlaceholder(this.value)||"placeholder"!==this.inputMode||(this.inputMode="value")}isPlaceholder(e){return"string"==typeof e&&e.startsWith("%activeObject%")}parsePlaceholderPath(e){return this.isPlaceholder(e)?e.replace(/^%activeObject%\.?/,""):""}buildPlaceholderValue(e){return e?`%activeObject%.${e}`:"%activeObject%"}render(){return this.operator?i(r,null,this.renderModeToggle(),this.renderInputByMode()):null}renderInputByMode(){return"placeholder"===this.inputMode?this.renderPlaceholderInput():this.renderValueInputByType()}renderModeToggle(){if(!this.activeLimetype)return null;const e="placeholder"===this.inputMode;return i("limel-icon-button",{class:"mode-toggle",icon:e?"text":"link",label:e?"Use Value":"Use Placeholder",onClick:this.handleModeToggle})}renderPlaceholderInput(){const e=this.parsePlaceholderPath(this.value);return i("div",{class:"placeholder-input"},i("limebb-property-selector",{platform:this.platform,context:this.context,limetype:this.activeLimetype,label:"Active Object Property",value:e,required:!1,helperText:"Select property from the active object",onChange:this.handlePlaceholderPropertyChange}),this.renderPlaceholderPreview())}renderPlaceholderPreview(){if(this.isPlaceholder(this.value))return i("div",{class:"placeholder-preview"},i("limel-icon",{name:"info",size:"small"}),i("span",null,"Placeholder: ",this.value))}renderValueInputByType(){if(this.operator===s.IN)return this.renderMultiValueInput();const e=this.getProperty();if(!e)return this.renderTextInput();const t=function(e){return"system"===e.type?function(e){const t=e.replace(/^_/,"");return d[t]||"string"}(e.name):e.type}(e);switch(t){case"integer":case"decimal":return this.renderNumberInput(t);case"yesno":return this.renderBooleanInput();case"option":return this.renderOptionInput(e);case"date":case"time":case"timeofday":case"year":case"month":case"quarter":return this.renderDateTimeInput(t);default:return this.renderTextInput()}}renderTextInput(){var e;return i("limel-input-field",{label:this.label,value:(null===(e=this.value)||void 0===e?void 0:e.toString())||"",placeholder:"Enter value",onChange:this.handleTextChange})}renderNumberInput(e){var t;const r="integer"===e?1:.01;return i("limel-input-field",{label:this.label,type:"number",value:(null===(t=this.value)||void 0===t?void 0:t.toString())||"",step:r,onChange:this.handleTextChange})}renderBooleanInput(){const e=[{text:"True",value:"true"},{text:"False",value:"false"}],t=!0===this.value||"true"===this.value?"true":"false",r=e.find((e=>e.value===t));return i("limel-select",{label:this.label,options:e,value:r,onChange:this.handleBooleanChange})}renderOptionInput(e){if(!e.options||0===e.options.length)return this.renderTextInput();const t=e.options.map((e=>({text:e.text||e.key,value:e.key}))),r=t.find((e=>e.value===this.value));return i("limel-select",{label:this.label,options:t,value:r,onChange:this.handleSelectChange})}renderDateTimeInput(e){const t="string"==typeof this.value?new Date(this.value):this.value;return i("limel-date-picker",{label:this.label,value:t,type:u[e]||"date",onChange:this.handleDateChange})}renderMultiValueInput(){const e=Array.isArray(this.value)?this.value.join(", "):this.value||"";return i("limel-input-field",{label:this.label+" (comma-separated)",value:e,placeholder:"e.g., won, lost, tender",onChange:this.handleMultiValueChange})}getProperty(){if(this.limetypes&&this.limetype&&this.propertyPath)return o(this.limetypes,this.limetype,this.propertyPath)}};(function(e,t,i,r){var s,l=arguments.length,o=l<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var n=e.length-1;n>=0;n--)(s=e[n])&&(o=(l<3?s(o):l>3?s(t,i,o):s(t,i))||o);l>3&&o&&Object.defineProperty(t,i,o)})([l()],p.prototype,"limetypes",void 0),p.style=":host{display:flex;gap:0.5rem}:host>*{flex-grow:1}*{box-sizing:border-box}.value-input-container{display:flex;flex-direction:row;align-items:flex-start;gap:0.5rem;width:100%}.mode-toggle{flex-shrink:0;flex-grow:0}.placeholder-input{flex-grow:1;display:flex;flex-direction:column;gap:0.5rem}.placeholder-preview{display:flex;align-items:center;gap:0.5rem;padding:0.5rem;background-color:rgba(var(--color-blue-light), 0.1);border-radius:var(--border-radius-small);font-size:0.875rem;color:rgb(var(--color-blue-default));border-left:3px solid rgb(var(--color-blue-default))}.placeholder-preview limel-icon{flex-shrink:0;color:rgb(var(--color-blue-default))}.placeholder-preview span{font-family:var(--font-monospace);word-break:break-all}";export{h as limebb_lime_query_filter_group,c as limebb_lime_query_filter_not,p as limebb_lime_query_value_input}
1
+ import{r as e,c as t,h as i,H as r}from"./p-BIwHMk6j.js";import{X as s,j as l}from"./p-BeLcuSg8.js";import{g as o}from"./p-CQUZjrU4.js";function n(){return{key:"",op:s.EQUALS,exp:""}}function a(e,t){return{op:e.op,exp:[...e.exp,t]}}const h=class{constructor(r){e(this,r),this.expressionChange=t(this,"expressionChange"),this.options=[{text:"All",secondaryText:"AND operator",value:"and"},{text:"Any",secondaryText:"OR operator",value:"or"}],this.renderChildExpression=(e,t)=>i("limebb-lime-query-filter-expression",{role:"listitem",platform:this.platform,context:this.context,limetype:this.limetype,activeLimetype:this.activeLimetype,expression:e,onExpressionChange:this.handleExpressionChange(t)}),this.handleDeleteGroup=()=>{this.expressionChange.emit()},this.handleToggleOperator=e=>{const t=Array.isArray(e.detail)?e.detail[0]:e.detail;if(this.value=t,("and"===t.value?s.AND:s.OR)!==this.expression.op){const e={op:(i=this.expression).op===s.AND?s.OR:s.AND,exp:[...i.exp]};this.expressionChange.emit(e)}var i},this.handleAddChildExpression=()=>{const e=n(),t=a(this.expression,e);this.expressionChange.emit(t)},this.handleAddChildGroup=()=>{const e={op:this.expression.op===s.AND?s.OR:s.AND,exp:[n()]},t=a(this.expression,e);this.expressionChange.emit(t)},this.handleExpressionChange=e=>t=>{t.stopPropagation();const i=function(e,t,i){const r=[...e.exp];return i?(r[t]=i,{type:"updated",expression:{op:e.op,exp:r}}):(r.splice(t,1),0===r.length?{type:"removed",expression:void 0}:1===r.length?{type:"unwrapped",expression:r[0]}:{type:"updated",expression:{op:e.op,exp:r}})}(this.expression,e,t.detail);this.expressionChange.emit(i.expression)}}componentWillLoad(){this.value=this.options.find((e=>e.value===(this.expression.op===s.AND?"and":"or")))||this.options[0]}render(){return i(r,{key:"4b1647c741b78253b4ce4ed1bd347800da394563",style:{"--limebb-lime-query-filter-group-operator":`"${this.expression.op===s.AND?"AND":"OR"}"`}},i("div",{key:"47fd3000275e17ef70d86af5e6abcb492806ffba",class:"expression"},this.renderHeader(),i("ul",{key:"224249a4b305eb2b20c1aedad98d2c3191d47e83"},this.expression.exp.map(this.renderChildExpression),this.renderAddButton()),this.renderAddGroupButton()))}renderHeader(){const e=this.getSubheading();return e?i("limel-header",{subheading:e},this.renderOperators(),this.renderDeleteGroupButton()):null}renderOperators(){return i("limel-select",{class:"operator-select",slot:"actions",value:this.value,options:this.options,onChange:this.handleToggleOperator})}renderDeleteGroupButton(){return i("limel-icon-button",{class:"delete-group",slot:"actions",icon:"trash",label:"Delete This Group",onClick:this.handleDeleteGroup})}getSubheading(){return this.expression.exp.length<=1?"":this.expression.op===s.AND?"All of these conditions are met":"Any of these conditions are met"}renderAddButton(){return i("limel-button",{role:"listitem",label:"Condition",icon:{name:"plus_math",title:"Add"},onClick:this.handleAddChildExpression})}renderAddGroupButton(){return i("limel-button",{class:"add-group",label:"Group",icon:{name:"plus_math",title:"Add"},onClick:this.handleAddChildGroup})}};h.style='@charset "UTF-8";*,*::before,*::after{box-sizing:border-box}limebb-lime-query-filter-expression{position:relative;isolation:isolate}limebb-lime-query-filter-expression:not(:first-of-type):after{content:"";position:absolute;top:-0.5rem;left:0.75rem;display:block;border-radius:1rem;height:2rem;width:0.125rem;background-color:var(--limebb-lime-query-builder-group-color)}limebb-lime-query-filter-expression:not(:first-of-type):before{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;height:1rem;content:var(--limebb-lime-query-filter-group-operator);display:inline-block;margin:0 auto 0.5rem auto;transform:translateY(-50%);font-size:0.625rem;padding:0 0.5rem;color:rgb(var(--color-blue-dark));background-color:var(--limebb-lime-query-builder-group-color);border-radius:2rem}.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-100));border-radius:0.75rem;border:1px solid var(--limebb-lime-query-builder-group-color)}.expression ul{list-style:none;margin:0;padding:0.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.expression ul [role=listitem]{list-style:none;width:100%}limel-button.add-group{width:fit-content;margin:0.5rem}limel-icon-button.delete-group{margin-left:0.5rem}limel-select.operator-select{min-width:8rem}';const c=class{constructor(i){e(this,i),this.expressionChange=t(this,"expressionChange"),this.handleExpressionChange=e=>{var t;e.stopPropagation();const i=null!==(t=e.detail)&&void 0!==t?t:void 0;this.expressionChange.emit(void 0!==i?{op:s.NOT,exp:i}:void 0)}}render(){return i("div",{key:"16246e10be820ad18713cb097146040d30e242bf",class:"expression"},this.label&&i("limel-header",{key:"539d60a4567727282463dec2a90e06a3630501aa",heading:this.label}),i("limebb-lime-query-filter-expression",{key:"67f892704ea3e5a061acdcb8f3ffe22271971569",platform:this.platform,context:this.context,label:"Not",limetype:this.limetype,activeLimetype:this.activeLimetype,expression:this.expression.exp,onExpressionChange:this.handleExpressionChange}))}};c.style='@charset "UTF-8";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem;padding:1rem;border-left:0.25rem solid rgb(var(--contrast-400));background-color:rgb(var(--contrast-100))}';const d={timestamp:"time",createdtime:"time",updatedtime:"time",id:"integer",createduser:"integer",updateduser:"integer",descriptive:"string"},u={date:"date",time:"datetime",timeofday:"time",month:"month",quarter:"quarter",year:"year"};const p=class{constructor(i){e(this,i),this.change=t(this,"change"),this.label="Value",this.inputMode="value",this.handleTextChange=e=>{e.stopPropagation();const t=e.detail,i=Number(t);Number.isNaN(i)||""===t?this.change.emit(t):this.change.emit(i)},this.handleSelectChange=e=>{e.stopPropagation();const t=e.detail;Array.isArray(t)?this.change.emit(t.map((e=>e.value))):this.change.emit(null==t?void 0:t.value)},this.handleBooleanChange=e=>{e.stopPropagation();const t=e.detail;Array.isArray(t)||this.change.emit("true"===(null==t?void 0:t.value))},this.handleDateChange=e=>{e.stopPropagation();const t=e.detail;this.change.emit(t?t.toISOString():null)},this.handleMultiValueChange=e=>{e.stopPropagation();const t=e.detail.split(",").map((e=>e.trim())).filter((e=>e.length>0));this.change.emit(t)},this.handleModeToggle=()=>{"value"===this.inputMode?(this.inputMode="placeholder",this.change.emit("%activeObject%")):(this.inputMode="value",this.change.emit(""))},this.handlePlaceholderPropertyChange=e=>{e.stopPropagation();const t=this.buildPlaceholderValue(e.detail);this.change.emit(t)}}componentWillLoad(){this.isPlaceholder(this.value)&&(this.inputMode="placeholder")}componentWillUpdate(){this.isPlaceholder(this.value)&&"placeholder"!==this.inputMode?this.inputMode="placeholder":this.isPlaceholder(this.value)||"placeholder"!==this.inputMode||(this.inputMode="value")}isPlaceholder(e){return"string"==typeof e&&e.startsWith("%activeObject%")}parsePlaceholderPath(e){return this.isPlaceholder(e)?e.replace(/^%activeObject%\.?/,""):""}buildPlaceholderValue(e){return e?`%activeObject%.${e}`:"%activeObject%"}render(){return this.operator?i(r,null,this.renderModeToggle(),this.renderInputByMode()):null}renderInputByMode(){return"placeholder"===this.inputMode?this.renderPlaceholderInput():this.renderValueInputByType()}renderModeToggle(){if(!this.activeLimetype)return null;const e="placeholder"===this.inputMode;return i("limel-icon-button",{class:"mode-toggle",icon:e?"text":"link",label:e?"Use Value":"Use Placeholder",onClick:this.handleModeToggle})}renderPlaceholderInput(){const e=this.parsePlaceholderPath(this.value);return i("div",{class:"placeholder-input"},i("limebb-property-selector",{platform:this.platform,context:this.context,limetype:this.activeLimetype,label:"Active Object Property",value:e,required:!1,helperText:"Select property from the active object",onChange:this.handlePlaceholderPropertyChange}),this.renderPlaceholderPreview())}renderPlaceholderPreview(){if(this.isPlaceholder(this.value))return i("div",{class:"placeholder-preview"},i("limel-icon",{name:"info",size:"small"}),i("span",null,"Placeholder: ",this.value))}renderValueInputByType(){if(this.operator===s.IN)return this.renderMultiValueInput();const e=this.getProperty();if(!e)return this.renderTextInput();const t=function(e){return"system"===e.type?function(e){const t=e.replace(/^_/,"");return d[t]||"string"}(e.name):e.type}(e);switch(t){case"integer":case"decimal":return this.renderNumberInput(t);case"yesno":return this.renderBooleanInput();case"option":return this.renderOptionInput(e);case"date":case"time":case"timeofday":case"year":case"month":case"quarter":return this.renderDateTimeInput(t);default:return this.renderTextInput()}}renderTextInput(){var e;return i("limel-input-field",{label:this.label,value:(null===(e=this.value)||void 0===e?void 0:e.toString())||"",placeholder:"Enter value",onChange:this.handleTextChange})}renderNumberInput(e){var t;const r="integer"===e?1:.01;return i("limel-input-field",{label:this.label,type:"number",value:(null===(t=this.value)||void 0===t?void 0:t.toString())||"",step:r,onChange:this.handleTextChange})}renderBooleanInput(){const e=[{text:"True",value:"true"},{text:"False",value:"false"}],t=!0===this.value||"true"===this.value?"true":"false",r=e.find((e=>e.value===t));return i("limel-select",{label:this.label,options:e,value:r,onChange:this.handleBooleanChange})}renderOptionInput(e){if(!e.options||0===e.options.length)return this.renderTextInput();const t=e.options.map((e=>({text:e.text||e.key,value:e.key}))),r=t.find((e=>e.value===this.value));return i("limel-select",{label:this.label,options:t,value:r,onChange:this.handleSelectChange})}renderDateTimeInput(e){const t="string"==typeof this.value?new Date(this.value):this.value;return i("limel-date-picker",{label:this.label,value:t,type:u[e]||"date",onChange:this.handleDateChange})}renderMultiValueInput(){const e=Array.isArray(this.value)?this.value.join(", "):this.value||"";return i("limel-input-field",{label:this.label+" (comma-separated)",value:e,placeholder:"e.g., won, lost, tender",onChange:this.handleMultiValueChange})}getProperty(){if(this.limetypes&&this.limetype&&this.propertyPath)return o(this.limetypes,this.limetype,this.propertyPath)}};(function(e,t,i,r){var s,l=arguments.length,o=l<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var n=e.length-1;n>=0;n--)(s=e[n])&&(o=(l<3?s(o):l>3?s(t,i,o):s(t,i))||o);l>3&&o&&Object.defineProperty(t,i,o)})([l()],p.prototype,"limetypes",void 0),p.style=":host{display:flex;gap:0.5rem}:host>*{flex-grow:1}*{box-sizing:border-box}.value-input-container{display:flex;flex-direction:row;align-items:flex-start;gap:0.5rem;width:100%}.mode-toggle{flex-shrink:0;flex-grow:0}.placeholder-input{flex-grow:1;display:flex;flex-direction:column;gap:0.5rem}.placeholder-preview{display:flex;align-items:center;gap:0.5rem;padding:0.5rem;background-color:rgba(var(--color-blue-light), 0.1);border-radius:var(--border-radius-small);font-size:0.875rem;color:rgb(var(--color-blue-default));border-left:3px solid rgb(var(--color-blue-default))}.placeholder-preview limel-icon{flex-shrink:0;color:rgb(var(--color-blue-default))}.placeholder-preview span{font-family:var(--font-monospace);word-break:break-all}";export{h as limebb_lime_query_filter_group,c as limebb_lime_query_filter_not,p as limebb_lime_query_value_input}
@@ -1 +1 @@
1
- import{r as i,c as e,h as t,H as r}from"./p-BIwHMk6j.js";import{j as s}from"./p-BeLcuSg8.js";import{i as o}from"./p-C25FPZQh.js";import"./p-CQUZjrU4.js";const l=class{constructor(t){i(this,t),this.change=e(this,"change"),this.mode="visual",this.codeValue="",this.limetype="",this.handleLimetypeChange=i=>{i.stopPropagation(),this.limetype=i.detail,this.filter=void 0,this.internalResponseFormat={object:{}},this.emitChange()},this.handleFilterChange=i=>{var e;i.stopPropagation(),this.filter=null!==(e=i.detail)&&void 0!==e?e:void 0,this.emitChange()},this.handleResponseFormatChange=i=>{i.stopPropagation(),this.internalResponseFormat=i.detail,this.emitChange()},this.handleLimitChange=i=>{i.stopPropagation();const e=i.detail;this.limit=e?Number.parseInt(e,10):void 0,this.emitChange()},this.handleOrderByChange=i=>{i.stopPropagation(),this.orderBy=i.detail,this.emitChange()},this.handleDescriptionChange=i=>{i.stopPropagation(),this.description=i.detail||void 0,this.emitChange()},this.handleDescriptionBlur=()=>{if(this.description){const i=this.description.trim();i!==this.description&&(this.description=i||void 0,this.emitChange())}},this.handleChange=i=>{i.stopPropagation();const e=i.detail.id;if("visual"===e)try{const i=JSON.parse(this.codeValue);if(!this.checkVisualModeSupport().visualModeSupported)return;this.limetype=i.limetype||"",this.filter=i.filter,this.internalResponseFormat=i.responseFormat,this.limit=i.limit,this.orderBy=i.orderBy,this.description=i["#description"],this.mode="visual",this.change.emit(i)}catch(i){}else"code"===e&&(this.updateCodeValue(),this.mode="code")},this.handleCodeChange=i=>{i.stopPropagation(),this.codeValue=i.detail;try{const i=JSON.parse(this.codeValue);this.change.emit(i)}catch(i){}}}getButtons(){return[{id:"visual",title:"Visual"},{id:"code",title:"Code"}]}get visualModeEnabled(){var i,e,t;return null!==(t=null===(e=null===(i=this.platform)||void 0===i?void 0:i.isFeatureEnabled)||void 0===e?void 0:e.call(i,"useLimeQueryBuilderGuiMode"))&&void 0!==t&&t}componentWillLoad(){if(!this.visualModeEnabled)return this.mode="code",void this.updateCodeValue();this.value&&(this.limetype=this.value.limetype||"",this.filter=this.value.filter,this.internalResponseFormat=this.value.responseFormat,this.limit=this.value.limit,this.orderBy=this.value.orderBy,this.description=this.value["#description"]),this.updateCodeValue(),this.checkVisualModeSupport().visualModeSupported||(this.mode="code")}render(){return t(r,{key:"2ee09dd23db195ddf96976ac90be2eca54d69dcd"},this.renderHeader(),this.renderContent())}renderContent(){const i=this.checkVisualModeSupport();return this.visualModeEnabled&&"code"!==this.mode?this.renderVisualMode():this.renderCodeMode(i)}emitChange(){"code"!==this.mode&&this.limetype&&this.change.emit(this.buildLimeQuery())}updateCodeValue(){this.codeValue=this.limetype?JSON.stringify(this.buildLimeQuery(),null,2):JSON.stringify(this.value||{},null,2)}buildLimeQuery(){const i={limetype:this.limetype,responseFormat:this.internalResponseFormat||{object:{_id:null}},filter:this.filter};return this.description&&(i["#description"]=this.description),void 0!==this.limit&&this.limit>0&&(i.limit=this.limit),this.orderBy&&this.orderBy.length>0&&(i.orderBy=this.orderBy),i}checkVisualModeSupport(){if(!this.limetypes)return{valid:!0,visualModeSupported:!0,validationErrors:[],visualModeLimitations:[]};let i;if("code"===this.mode&&this.codeValue)try{i=JSON.parse(this.codeValue)}catch(i){return{valid:!1,visualModeSupported:!1,validationErrors:["Invalid JSON"],visualModeLimitations:[]}}else{if(!this.limetype)return{valid:!0,visualModeSupported:!0,validationErrors:[],visualModeLimitations:[]};i={limetype:this.limetype,responseFormat:this.internalResponseFormat||{object:{_id:null}},filter:this.filter},void 0!==this.limit&&this.limit>0&&(i.limit=this.limit)}return o(i,this.limetypes,this.activeLimetype,this.visualModeEnabled)}renderModeSwitch(i){const e=!i.visualModeSupported,r=this.getButtons().map((i=>Object.assign(Object.assign({},i),{selected:i.id===this.mode})));return t("limel-button-group",{slot:"actions",onChange:this.handleChange,value:r,disabled:e})}renderCodeEditor(i){return[t("limel-code-editor",{value:this.codeValue,language:"json",lineNumbers:!0,fold:!0,lint:!0,onChange:this.handleCodeChange}),!i.valid&&i.validationErrors.length>0&&t("div",{class:"validation-errors"},t("strong",null,"Invalid Lime Query:"),t("ul",null,i.validationErrors.map((i=>t("li",null,i))))),this.visualModeEnabled&&i.valid&&!i.visualModeSupported&&i.visualModeLimitations.length>0&&t("div",{class:"visual-mode-limitations"},t("strong",null,"Cannot switch to visual mode:"),t("ul",null,i.visualModeLimitations.map((i=>t("li",null,i)))))]}renderLimetypeSection(){return t("limebb-limetype-field",{platform:this.platform,context:this.context,label:"Limetype",value:this.limetype,required:!0,fieldName:"limetype",onChange:this.handleLimetypeChange})}renderDescriptionSection(){if(this.limetype)return t("section",{class:"description"},t("limel-input-field",{label:"Description",type:"textarea",value:this.description||"",placeholder:"Describe what data this query retrieves...",helperText:"Optional: Help AI agents and humans understand the query purpose",onChange:this.handleDescriptionChange,onBlur:this.handleDescriptionBlur}))}renderResponseFormatSection(){if(this.limetype)return t("section",{class:"response-format"},t("limebb-lime-query-response-format-editor",{platform:this.platform,context:this.context,limetype:this.limetype,value:this.internalResponseFormat,onChange:this.handleResponseFormatChange}))}renderFilterSection(){if(this.limetype)return t("section",{class:"filter"},t("limel-header",{class:"is-narrow",heading:"Filter Conditions",icon:"-lime-filter"}),t("limebb-lime-query-filter-builder",{platform:this.platform,context:this.context,limetype:this.limetype,activeLimetype:this.activeLimetype,expression:this.filter,onExpressionChange:this.handleFilterChange}))}renderQueryOptionsSection(){var i;if(this.limetype)return t("section",{class:"query-options"},t("limel-header",{class:"is-narrow",heading:"Query Options",icon:"ask_question"}),t("div",{class:"query-options-controls"},t("limel-input-field",{label:"Limit",type:"number",value:(null===(i=this.limit)||void 0===i?void 0:i.toString())||"",placeholder:"No limit",helperText:"Maximum number of results",onChange:this.handleLimitChange}),t("limebb-lime-query-order-by-editor",{platform:this.platform,context:this.context,limetype:this.limetype,value:this.orderBy,onChange:this.handleOrderByChange})))}renderVisualMode(){return t("div",{class:"visual-mode"},this.renderLimetypeSection(),this.renderDescriptionSection(),this.renderResponseFormatSection(),this.renderFilterSection(),this.renderQueryOptionsSection())}renderHeader(){const i=this.checkVisualModeSupport();return t("limel-header",{heading:this.label},this.renderModeControls(i))}renderModeControls(i){if(this.visualModeEnabled)return this.renderModeSwitch(i)}renderCodeMode(i){return t("div",{class:"code-mode"},this.renderCodeEditor(i))}};(function(i,e,t,r){var s,o=arguments.length,l=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,t):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(i,e,t,r);else for(var d=i.length-1;d>=0;d--)(s=i[d])&&(l=(o<3?s(l):o>3?s(e,t,l):s(e,t))||l);o>3&&l&&Object.defineProperty(e,t,l)})([s()],l.prototype,"limetypes",void 0),l.style="*,*:before,*:after{box-sizing:border-box}:host(limebb-lime-query-builder){--header-background-color:rgb(var(--contrast-500));--limebb-lime-query-builder-background-color:rgb(var(--contrast-100));--limebb-lime-query-builder-border-radius:0.75rem;--limebb-lime-query-builder-visual-mode-padding:1rem;--limebb-lime-query-builder-group-color:rgb(var(--color-sky-lighter));box-sizing:border-box;width:calc(100% - 1.5rem);margin:0.75rem auto;display:flex;flex-direction:column;border-radius:var(--limebb-lime-query-builder-border-radius);background-color:var(--limebb-lime-query-builder-background-color);box-shadow:var(--shadow-inflated-16)}.visual-mode{display:flex;flex-direction:column;gap:1rem;padding:var(--limebb-lime-query-builder-visual-mode-padding);border:1px solid var(--header-background-color);border-radius:0 0 var(--limebb-lime-query-builder-border-radius) var(--limebb-lime-query-builder-border-radius)}.code-mode{--code-editor-max-height:70vh;display:flex;flex-direction:column;gap:1rem}.code-mode .validation-errors{padding:0.75rem 1rem;color:rgb(var(--color-red-default));background-color:rgb(var(--color-red-lighter));border-left:0.25rem solid rgb(var(--color-red-default));border-radius:0.25rem;font-size:0.875rem}.code-mode .validation-errors strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-mode .validation-errors ul{margin:0;padding-left:1.5rem}.code-mode .validation-errors li{margin:0.25rem 0}.code-mode .visual-mode-limitations{padding:0.75rem 1rem;color:rgb(var(--color-blue-dark));background-color:rgb(var(--color-blue-lighter));border-left:0.25rem solid rgb(var(--color-blue-default));border-radius:0.25rem;font-size:0.875rem}.code-mode .visual-mode-limitations strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-mode .visual-mode-limitations ul{margin:0;padding-left:1.5rem}.code-mode .visual-mode-limitations li{margin:0.25rem 0}section.description,section.filter,section.query-options{display:flex;flex-direction:column;gap:1rem}section h4{margin:0;font-size:1.125rem;font-weight:600;color:rgb(var(--contrast-1000))}limel-header.is-narrow{--header-top-right-left-border-radius:0;width:calc(100% + var(--limebb-lime-query-builder-visual-mode-padding) * 2);margin-left:calc(var(--limebb-lime-query-builder-visual-mode-padding) * -1)}.query-options-controls{display:flex;flex-direction:column;gap:1rem}";export{l as limebb_lime_query_builder}
1
+ import{r as i,c as e,h as t,H as r}from"./p-BIwHMk6j.js";import{j as s}from"./p-BeLcuSg8.js";import{i as o}from"./p-C25FPZQh.js";import"./p-CQUZjrU4.js";const l=class{constructor(t){i(this,t),this.change=e(this,"change"),this.mode="visual",this.codeValue="",this.limetype="",this.handleLimetypeChange=i=>{i.stopPropagation(),this.limetype=i.detail,this.filter=void 0,this.internalResponseFormat={object:{}},this.emitChange()},this.handleFilterChange=i=>{var e;i.stopPropagation(),this.filter=null!==(e=i.detail)&&void 0!==e?e:void 0,this.emitChange()},this.handleResponseFormatChange=i=>{i.stopPropagation(),this.internalResponseFormat=i.detail,this.emitChange()},this.handleLimitChange=i=>{i.stopPropagation();const e=i.detail;this.limit=e?Number.parseInt(e,10):void 0,this.emitChange()},this.handleOrderByChange=i=>{i.stopPropagation(),this.orderBy=i.detail,this.emitChange()},this.handleDescriptionChange=i=>{i.stopPropagation(),this.description=i.detail||void 0,this.emitChange()},this.handleDescriptionBlur=()=>{if(this.description){const i=this.description.trim();i!==this.description&&(this.description=i||void 0,this.emitChange())}},this.handleChange=i=>{i.stopPropagation();const e=i.detail.id;if("visual"===e)try{const i=JSON.parse(this.codeValue);if(!this.checkVisualModeSupport().visualModeSupported)return;this.limetype=i.limetype||"",this.filter=i.filter,this.internalResponseFormat=i.responseFormat,this.limit=i.limit,this.orderBy=i.orderBy,this.description=i["#description"],this.mode="visual",this.change.emit(i)}catch(i){}else"code"===e&&(this.updateCodeValue(),this.mode="code")},this.handleCodeChange=i=>{i.stopPropagation(),this.codeValue=i.detail;try{const i=JSON.parse(this.codeValue);this.change.emit(i)}catch(i){}}}getButtons(){return[{id:"visual",title:"Visual"},{id:"code",title:"Code"}]}get visualModeEnabled(){var i,e,t;return null!==(t=null===(e=null===(i=this.platform)||void 0===i?void 0:i.isFeatureEnabled)||void 0===e?void 0:e.call(i,"useLimeQueryBuilderGuiMode"))&&void 0!==t&&t}componentWillLoad(){if(!this.visualModeEnabled)return this.mode="code",void this.updateCodeValue();this.value&&(this.limetype=this.value.limetype||"",this.filter=this.value.filter,this.internalResponseFormat=this.value.responseFormat,this.limit=this.value.limit,this.orderBy=this.value.orderBy,this.description=this.value["#description"]),this.updateCodeValue(),this.checkVisualModeSupport().visualModeSupported||(this.mode="code")}render(){return t(r,{key:"9a121529165f1691e32b2b156b128977c5b5ba3a"},this.renderHeader(),this.renderContent())}renderContent(){const i=this.checkVisualModeSupport();return this.visualModeEnabled&&"code"!==this.mode?this.renderVisualMode():this.renderCodeMode(i)}emitChange(){"code"!==this.mode&&this.limetype&&this.change.emit(this.buildLimeQuery())}updateCodeValue(){this.codeValue=this.limetype?JSON.stringify(this.buildLimeQuery(),null,2):JSON.stringify(this.value||{},null,2)}buildLimeQuery(){const i={limetype:this.limetype,responseFormat:this.internalResponseFormat||{object:{_id:null}},filter:this.filter};return this.description&&(i["#description"]=this.description),void 0!==this.limit&&this.limit>0&&(i.limit=this.limit),this.orderBy&&this.orderBy.length>0&&(i.orderBy=this.orderBy),i}checkVisualModeSupport(){if(!this.limetypes)return{valid:!0,visualModeSupported:!0,validationErrors:[],visualModeLimitations:[]};let i;if("code"===this.mode&&this.codeValue)try{i=JSON.parse(this.codeValue)}catch(i){return{valid:!1,visualModeSupported:!1,validationErrors:["Invalid JSON"],visualModeLimitations:[]}}else{if(!this.limetype)return{valid:!0,visualModeSupported:!0,validationErrors:[],visualModeLimitations:[]};i={limetype:this.limetype,responseFormat:this.internalResponseFormat||{object:{_id:null}},filter:this.filter},void 0!==this.limit&&this.limit>0&&(i.limit=this.limit)}return o(i,this.limetypes,this.activeLimetype,this.visualModeEnabled)}renderModeSwitch(i){const e=!i.visualModeSupported,r=this.getButtons().map((i=>Object.assign(Object.assign({},i),{selected:i.id===this.mode})));return t("limel-button-group",{slot:"actions",onChange:this.handleChange,value:r,disabled:e})}renderCodeEditor(i){return[t("limel-code-editor",{value:this.codeValue,language:"json",lineNumbers:!0,fold:!0,lint:!0,onChange:this.handleCodeChange}),!i.valid&&i.validationErrors.length>0&&t("div",{class:"validation-errors"},t("strong",null,"Invalid Lime Query:"),t("ul",null,i.validationErrors.map((i=>t("li",null,i))))),this.visualModeEnabled&&i.valid&&!i.visualModeSupported&&i.visualModeLimitations.length>0&&t("div",{class:"visual-mode-limitations"},t("strong",null,"Cannot switch to visual mode:"),t("ul",null,i.visualModeLimitations.map((i=>t("li",null,i)))))]}renderLimetypeSection(){return t("limebb-limetype-field",{platform:this.platform,context:this.context,label:"Limetype",value:this.limetype,required:!0,fieldName:"limetype",onChange:this.handleLimetypeChange})}renderDescriptionSection(){if(this.limetype)return t("section",{class:"description"},t("limel-input-field",{label:"Description",type:"textarea",value:this.description||"",placeholder:"Describe what data this query retrieves...",helperText:"Optional: Help AI agents and humans understand the query purpose",onChange:this.handleDescriptionChange,onBlur:this.handleDescriptionBlur}))}renderResponseFormatSection(){if(this.limetype)return t("section",{class:"response-format"},t("limebb-lime-query-response-format-editor",{platform:this.platform,context:this.context,limetype:this.limetype,value:this.internalResponseFormat,onChange:this.handleResponseFormatChange}))}renderFilterSection(){if(this.limetype)return t("section",{class:"filter"},t("limel-header",{class:"is-narrow",heading:"Filter Conditions",icon:"-lime-filter"}),t("limebb-lime-query-filter-builder",{platform:this.platform,context:this.context,limetype:this.limetype,activeLimetype:this.activeLimetype,expression:this.filter,onExpressionChange:this.handleFilterChange}))}renderQueryOptionsSection(){var i;if(this.limetype)return t("section",{class:"query-options"},t("limel-header",{class:"is-narrow",heading:"Query Options",icon:"ask_question"}),t("div",{class:"query-options-controls"},t("limel-input-field",{label:"Limit",type:"number",value:(null===(i=this.limit)||void 0===i?void 0:i.toString())||"",placeholder:"No limit",helperText:"Maximum number of results",onChange:this.handleLimitChange}),t("limebb-lime-query-order-by-editor",{platform:this.platform,context:this.context,limetype:this.limetype,value:this.orderBy,onChange:this.handleOrderByChange})))}renderVisualMode(){return t("div",{class:"visual-mode"},this.renderLimetypeSection(),this.renderDescriptionSection(),this.renderResponseFormatSection(),this.renderFilterSection(),this.renderQueryOptionsSection())}renderHeader(){const i=this.checkVisualModeSupport();return t("limel-header",{heading:this.label},this.renderModeControls(i))}renderModeControls(i){if(this.visualModeEnabled)return this.renderModeSwitch(i)}renderCodeMode(i){return t("div",{class:"code-mode"},this.renderCodeEditor(i))}};(function(i,e,t,r){var s,o=arguments.length,l=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,t):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(i,e,t,r);else for(var d=i.length-1;d>=0;d--)(s=i[d])&&(l=(o<3?s(l):o>3?s(e,t,l):s(e,t))||l);o>3&&l&&Object.defineProperty(e,t,l)})([s()],l.prototype,"limetypes",void 0),l.style="*,*:before,*:after{box-sizing:border-box}:host(limebb-lime-query-builder){--header-background-color:rgb(var(--contrast-500));--limebb-lime-query-builder-background-color:rgb(var(--contrast-100));--limebb-lime-query-builder-border-radius:0.75rem;--limebb-lime-query-builder-visual-mode-padding:1rem;--limebb-lime-query-builder-group-color:rgb(var(--color-sky-lighter));box-sizing:border-box;width:calc(100% - 1.5rem);margin:0.75rem auto;display:flex;flex-direction:column;border-radius:var(--limebb-lime-query-builder-border-radius);background-color:var(--limebb-lime-query-builder-background-color);box-shadow:var(--shadow-inflated-16)}.visual-mode{display:flex;flex-direction:column;gap:1rem;padding:var(--limebb-lime-query-builder-visual-mode-padding);border:1px solid var(--header-background-color);border-radius:0 0 var(--limebb-lime-query-builder-border-radius) var(--limebb-lime-query-builder-border-radius)}.code-mode{--code-editor-max-height:70vh;display:flex;flex-direction:column;gap:1rem}.code-mode .validation-errors{padding:0.75rem 1rem;color:rgb(var(--color-red-default));background-color:rgb(var(--color-red-lighter));border-left:0.25rem solid rgb(var(--color-red-default));border-radius:0.25rem;font-size:0.875rem}.code-mode .validation-errors strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-mode .validation-errors ul{margin:0;padding-left:1.5rem}.code-mode .validation-errors li{margin:0.25rem 0}.code-mode .visual-mode-limitations{padding:0.75rem 1rem;color:rgb(var(--color-blue-dark));background-color:rgb(var(--color-blue-lighter));border-left:0.25rem solid rgb(var(--color-blue-default));border-radius:0.25rem;font-size:0.875rem}.code-mode .visual-mode-limitations strong{display:block;margin-bottom:0.5rem;font-weight:600}.code-mode .visual-mode-limitations ul{margin:0;padding-left:1.5rem}.code-mode .visual-mode-limitations li{margin:0.25rem 0}section.description,section.filter,section.query-options{display:flex;flex-direction:column;gap:1rem}section h4{margin:0;font-size:1.125rem;font-weight:600;color:rgb(var(--contrast-1000))}limel-header.is-narrow{--header-top-right-left-border-radius:0;width:calc(100% + var(--limebb-lime-query-builder-visual-mode-padding) * 2);margin-left:calc(var(--limebb-lime-query-builder-visual-mode-padding) * -1)}.query-options-controls{display:flex;flex-direction:column;gap:1rem}";export{l as limebb_lime_query_builder}
@@ -0,0 +1,89 @@
1
+ import { FormComponent } from '@limetech/lime-elements';
2
+ import { EventEmitter } from '../../stencil-public-runtime';
3
+ /**
4
+ * Picks a color palette from the built-in color-palettes registry,
5
+ * and shows the palette's swatches alongside its title — both in
6
+ * the dropdown row and in the selected trigger area.
7
+ *
8
+ * ### When to use this picker
9
+ *
10
+ * Use it when a Lime CRM widget needs the admin to choose a set of
11
+ * colors purely for **visual differentiation** between items in a
12
+ * list. The picker's contract is "give every item a distinct, nicely
13
+ * harmonized color"; it does **not** assume any item-to-color
14
+ * mapping is meaningful. Concrete examples:
15
+ *
16
+ * - bars / slices in a chart widget
17
+ * - swimlanes in a kanban view
18
+ * - event categories in a calendar
19
+ * - tag chips on a list view
20
+ *
21
+ * ### When **not** to use it
22
+ *
23
+ * Don't use this picker when colors carry semantic meaning that
24
+ * end users must learn and rely on — e.g. _red = high priority_,
25
+ * _green = healthy_, _yellow = pending_. The palette's color order
26
+ * and contents may evolve over time (designers tweaking shades,
27
+ * appending new colors, retiring duplicates), so item-to-color
28
+ * mappings are intentionally **not** stable across releases. For
29
+ * status / priority / severity surfaces, encode meaning at the
30
+ * value level (icons, badges, labels) rather than color alone.
31
+ *
32
+ * @exampleComponent limebb-example-color-palette-picker
33
+ * @beta
34
+ */
35
+ export declare class ColorPalettePicker implements FormComponent<string> {
36
+ /**
37
+ * @inheritdoc
38
+ */
39
+ value: string;
40
+ /**
41
+ * @inheritdoc
42
+ */
43
+ required: boolean;
44
+ /**
45
+ * @inheritdoc
46
+ */
47
+ readonly: boolean;
48
+ /**
49
+ * @inheritdoc
50
+ */
51
+ invalid: boolean;
52
+ /**
53
+ * @inheritdoc
54
+ */
55
+ disabled: boolean;
56
+ /**
57
+ * @inheritdoc
58
+ */
59
+ label: string;
60
+ /**
61
+ * @inheritdoc
62
+ */
63
+ helperText: string;
64
+ /**
65
+ * Emitted when the user picks a different palette. The detail is
66
+ * the chosen palette's `id`.
67
+ */
68
+ change: EventEmitter<string>;
69
+ private options;
70
+ private optionsById;
71
+ /**
72
+ * Tracks the last `value` we warned about so we don't log on
73
+ * every render when the same unknown id persists.
74
+ */
75
+ private lastWarnedValue?;
76
+ componentWillLoad(): void;
77
+ render(): any;
78
+ /**
79
+ * Resolve `this.value` against the cached options map. Returns
80
+ * `undefined` when no value is set (so the trigger renders
81
+ * unselected), or falls back to the (none) option when the value
82
+ * is set but unrecognized — with a one-time warning so a
83
+ * developer integrating the picker sees the stale id during
84
+ * debugging.
85
+ */
86
+ private getSelectedOption;
87
+ private handleChange;
88
+ }
89
+ //# sourceMappingURL=color-palette-picker.d.ts.map
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Renders a small grid of color swatches for a palette. Used as the
3
+ * inline preview inside [limebb-color-palette-picker](..) — both in
4
+ * the trigger (the currently chosen palette) and in each row of its
5
+ * dropdown list (so users can see the colors before picking). Pass
6
+ * any CSS color strings (`rgb(var(--…))`, hex, etc.).
7
+ *
8
+ * The swatches are purely decorative — they carry no semantic
9
+ * information beyond what the surrounding context (e.g. the picker
10
+ * option's text and secondary text) already provides. The component
11
+ * marks itself `aria-hidden` so assistive tech skips it cleanly.
12
+ *
13
+ * @exampleComponent limebb-example-color-palette-swatches
14
+ * @private
15
+ */
16
+ export declare class ColorPaletteSwatches {
17
+ /**
18
+ * Ordered list of CSS color values to render as swatches.
19
+ */
20
+ colors: string[];
21
+ render(): any;
22
+ }
23
+ //# sourceMappingURL=color-palette-swatches.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { FunctionalComponent } from '../../stencil-public-runtime';
2
+ import { Rule, RuleAll, RuleAny, RuleRef } from '@limetech/lime-web-components';
3
+ import { RulePath } from './rule-operations';
4
+ import { RuleNodeRenderContext } from './rule-editor-views';
5
+ export interface ChipChild {
6
+ ref: RuleRef;
7
+ isNegated: boolean;
8
+ index: number;
9
+ }
10
+ /**
11
+ * If `node` is a `ref` or a `not(ref)`, return the underlying ref
12
+ * together with its negation flag. Used to decide whether a child of a
13
+ * group renders as a chip (this returns non-null) or as a nested box
14
+ * (this returns null).
15
+ * @param node
16
+ */
17
+ export declare function extractRef(node: Rule): {
18
+ ref: RuleRef;
19
+ isNegated: boolean;
20
+ } | null;
21
+ export declare const GroupChipsView: FunctionalComponent<{
22
+ groupNode: RuleAll | RuleAny;
23
+ groupPath: RulePath;
24
+ chipChildren: ChipChild[];
25
+ ctx: RuleNodeRenderContext;
26
+ }>;
27
+ //# sourceMappingURL=chip-picker-view.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { FunctionalComponent } from '../../stencil-public-runtime';
2
+ import { RuleAll, RuleAny } from '@limetech/lime-web-components';
3
+ import { RulePath } from './rule-operations';
4
+ import { RuleNodeRenderContext } from './rule-editor-views';
5
+ export declare const GroupNodeView: FunctionalComponent<{
6
+ node: RuleAll | RuleAny;
7
+ path: RulePath;
8
+ isNegated: boolean;
9
+ ctx: RuleNodeRenderContext;
10
+ }>;
11
+ //# sourceMappingURL=group-node-view.d.ts.map
@@ -0,0 +1,31 @@
1
+ import { JsonValue, LimeWebComponentContext, LimeWebComponentPlatform, PrimitiveMetadata, RuleRef } from '@limetech/lime-web-components';
2
+ import { EventEmitter } from '../../../stencil-public-runtime';
3
+ /**
4
+ * Popover content for a rule-editor chip. Carries its own styles so
5
+ * they travel with the element when `limel-popover` portals it out of
6
+ * the rule-editor's shadow DOM.
7
+ *
8
+ * @private
9
+ */
10
+ export declare class RuleChipPopover {
11
+ platform: LimeWebComponentPlatform;
12
+ context: LimeWebComponentContext;
13
+ refNode: RuleRef;
14
+ isNegated: boolean;
15
+ metadata?: PrimitiveMetadata;
16
+ readonly: boolean;
17
+ disabled: boolean;
18
+ isMutable: boolean;
19
+ negate: EventEmitter<boolean>;
20
+ updateArgs: EventEmitter<JsonValue>;
21
+ deleteChip: EventEmitter<void>;
22
+ render(): any;
23
+ private renderHeader;
24
+ private renderHeaderActions;
25
+ private get translator();
26
+ private renderBody;
27
+ private handleNegateChange;
28
+ private handleArgsChange;
29
+ private handleDelete;
30
+ }
31
+ //# sourceMappingURL=rule-chip-popover.d.ts.map
@@ -0,0 +1,51 @@
1
+ import { ListItem } from '@limetech/lime-elements';
2
+ import { FunctionalComponent } from '../../stencil-public-runtime';
3
+ import { JsonValue, LimeWebComponentContext, LimeWebComponentPlatform, PrimitiveMetadata, Rule, RuleAll, RuleAny, RuleValidationIssue, Translator } from '@limetech/lime-web-components';
4
+ import { RulePath } from './rule-operations';
5
+ /**
6
+ * State and callbacks the rule-editor passes down through the
7
+ * recursive render tree. Built once per render in the editor's
8
+ * `render()` and forwarded by every view.
9
+ */
10
+ export interface RuleNodeRenderContext {
11
+ issues: RuleValidationIssue[];
12
+ metadataById: Map<string, PrimitiveMetadata>;
13
+ primitiveOptions: Array<ListItem<string>>;
14
+ isMutable: boolean;
15
+ readonly: boolean;
16
+ disabled: boolean;
17
+ platform: LimeWebComponentPlatform;
18
+ context: LimeWebComponentContext;
19
+ translator: Translator;
20
+ openChipPath: RulePath | null;
21
+ onDelete: (path: RulePath) => void;
22
+ onUpdateArgs: (path: RulePath, args: JsonValue) => void;
23
+ onReplaceNode: (path: RulePath, replacement: Rule) => void;
24
+ onChipInteract: (path: RulePath) => void;
25
+ onPopoverClose: () => void;
26
+ }
27
+ interface NodeProps {
28
+ node: Rule;
29
+ path: RulePath;
30
+ ctx: RuleNodeRenderContext;
31
+ }
32
+ /**
33
+ * Render a `Rule` node and recurse into its children.
34
+ * @param props
35
+ */
36
+ export declare const RuleNodeView: FunctionalComponent<NodeProps>;
37
+ /**
38
+ * If `node` is a group (`all`/`any`) or a negated group, return the
39
+ * inner group together with its negation flag. Otherwise `null`.
40
+ * Used by the dispatcher and by the editor's input normalization.
41
+ * @param node
42
+ */
43
+ export declare function extractGroup(node: Rule): {
44
+ node: RuleAll | RuleAny;
45
+ isNegated: boolean;
46
+ } | null;
47
+ export declare const IssuesView: FunctionalComponent<{
48
+ issues: RuleValidationIssue[];
49
+ }>;
50
+ export {};
51
+ //# sourceMappingURL=rule-editor-views.d.ts.map
@@ -0,0 +1,118 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { FormComponent } from '@limetech/lime-elements';
3
+ import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform, Rule, SubjectRegistry } from '@limetech/lime-web-components';
4
+ /**
5
+ * Tree editor for {@link Rule}.
6
+ *
7
+ * Renders a `Rule` value as a tree of nodes. Lets an author pick
8
+ * primitive refs in `all` / `any` groups, toggle negation, delete
9
+ * nodes, and edit per-primitive args via the editor declared on each
10
+ * primitive's metadata.
11
+ *
12
+ * The component is value-in / value-out. Pass `value` and listen for
13
+ * `change`; persistence is the caller's concern.
14
+ *
15
+ * Pass `availableSubjects` to forward the list of subject slots the
16
+ * caller knows will be available where the rule runs. The component
17
+ * forwards it to `RuleRegistry.validate` so `missing-slot` diagnostics
18
+ * surface inline on the offending nodes.
19
+ *
20
+ * @exampleComponent limebb-example-rule-editor
21
+ *
22
+ * @alpha
23
+ * @private
24
+ */
25
+ export declare class RuleEditor implements LimeWebComponent, FormComponent<Rule | undefined> {
26
+ platform: LimeWebComponentPlatform;
27
+ context: LimeWebComponentContext;
28
+ /**
29
+ * @inheritdoc
30
+ */
31
+ value: Rule | undefined;
32
+ /**
33
+ * Subject slots the caller knows will be available where the rule
34
+ * runs. Forwarded to the rule registry's `validate` method so
35
+ * `missing-slot` issues surface inline. Leave unset when the
36
+ * evaluation context is not known (typical for editors that target
37
+ * the saved-rule library).
38
+ */
39
+ availableSubjects?: (keyof SubjectRegistry)[];
40
+ /**
41
+ * @inheritdoc
42
+ */
43
+ required: boolean;
44
+ /**
45
+ * The mutation UI (delete and negate toggles, add-group button) is
46
+ * hidden when set. The args editor for each ref is still rendered,
47
+ * with `readonly` forwarded to it.
48
+ *
49
+ * @inheritdoc
50
+ */
51
+ readonly: boolean;
52
+ /**
53
+ * The mutation UI is hidden when set. The args editor is rendered
54
+ * with `disabled` forwarded to it.
55
+ *
56
+ * @inheritdoc
57
+ */
58
+ disabled: boolean;
59
+ /**
60
+ * @inheritdoc
61
+ */
62
+ label: string;
63
+ /**
64
+ * @inheritdoc
65
+ */
66
+ helperText: string;
67
+ /**
68
+ * Emitted when the rule tree is mutated. Detail is the new rule, or
69
+ * `undefined` when the user has cleared the editor to an empty root
70
+ * group — callers can persist `undefined` as "no rule" without
71
+ * having to inspect the rule shape themselves.
72
+ */
73
+ change: EventEmitter<Rule | undefined>;
74
+ private issues;
75
+ private openChipPath;
76
+ private metadataById;
77
+ private primitiveOptions;
78
+ private normalizedCache;
79
+ componentWillLoad(): void;
80
+ componentDidLoad(): void;
81
+ protected onValueChange(): void;
82
+ protected onAvailableSubjectsChange(): void;
83
+ render(): any;
84
+ private renderLabel;
85
+ private renderHelperText;
86
+ private createRenderContext;
87
+ private handleDelete;
88
+ private handleUpdateArgs;
89
+ private handleReplaceNode;
90
+ private handleChipInteract;
91
+ private handlePopoverClose;
92
+ private indexMetadata;
93
+ private runValidation;
94
+ private emitIfChanged;
95
+ /**
96
+ * Wrap any non-group `value` in a top-level `all` so the editor
97
+ * always has a group to render against. When `value` is unset,
98
+ * returns a fresh empty `all`-group as a render-only placeholder —
99
+ * `emitNormalization` will *not* push that placeholder back to the
100
+ * caller, so an unset value stays unset until the user edits.
101
+ *
102
+ * Memoized so callers that read this several times in one handler
103
+ * see the same reference — the identity check in `emitIfChanged`
104
+ * depends on it.
105
+ */
106
+ private get normalizedValue();
107
+ /**
108
+ * If `value` wasn't already a group, emit the normalized form so
109
+ * the caller's stored state catches up. Skipped when `value` is
110
+ * unset — we render a placeholder group locally but don't push it
111
+ * back to the caller, so callers can't tell "no rule yet" apart
112
+ * from "user cleared a rule" by inspecting the emitted shape.
113
+ * Returns `true` when an emit happened so callers can short-circuit.
114
+ */
115
+ private emitNormalization;
116
+ private get ruleRegistry();
117
+ }
118
+ //# sourceMappingURL=rule-editor.d.ts.map
@@ -0,0 +1,62 @@
1
+ import { JsonValue, Rule, RuleAll, RuleAny, RuleValidationIssue } from '@limetech/lime-web-components';
2
+ /**
3
+ * Address of a node in a {@link Rule} tree. Numeric keys index into a
4
+ * combinator's `rules`; the string `'rules'` or `'rule'` steps from a
5
+ * combinator into its children container.
6
+ */
7
+ export type RulePath = (string | number)[];
8
+ /**
9
+ * Remove the node at `path`.
10
+ *
11
+ * Removing the root yields an empty `all`-group so the tree always has
12
+ * something to render. Returns `rule` unchanged when `path` does not
13
+ * address a removable node.
14
+ * @param rule
15
+ * @param path
16
+ */
17
+ export declare function deleteNode(rule: Rule, path: RulePath): Rule;
18
+ /**
19
+ * Replace the `args` of a `ref` node. Returns `rule` unchanged when
20
+ * `path` does not resolve to a `ref`.
21
+ * @param rule
22
+ * @param path
23
+ * @param args
24
+ */
25
+ export declare function updateArgs(rule: Rule, path: RulePath, args: JsonValue): Rule;
26
+ /**
27
+ * Replace the node at `path` with `replacement`, returning a new rule
28
+ * tree. Used by callers that need to apply a non-atomic change as a
29
+ * single emit (e.g. updating a group's whole `rules` array at once).
30
+ * @param rule
31
+ * @param path
32
+ * @param replacement
33
+ */
34
+ export declare function replaceNode(rule: Rule, path: RulePath, replacement: Rule): Rule;
35
+ /**
36
+ * Wrap `group` in a `not` when `isNegated`, otherwise return it
37
+ * unchanged. Used when re-emitting a group whose negation flag should
38
+ * be preserved.
39
+ * @param group
40
+ * @param isNegated
41
+ */
42
+ export declare function wrapNegated(group: RuleAll | RuleAny, isNegated: boolean): Rule;
43
+ /**
44
+ * Append `child` to a group's `rules`, returning a new group. The
45
+ * input is not mutated.
46
+ * @param group
47
+ * @param child
48
+ */
49
+ export declare function appendChild(group: RuleAll | RuleAny, child: Rule): RuleAll | RuleAny;
50
+ /**
51
+ * Structural equality on two paths.
52
+ * @param a
53
+ * @param b
54
+ */
55
+ export declare function pathsEqual(a: RulePath, b: RulePath): boolean;
56
+ /**
57
+ * Filter validation issues to those whose `path` matches `path`.
58
+ * @param issues
59
+ * @param path
60
+ */
61
+ export declare function issuesAt(issues: RuleValidationIssue[], path: RulePath): RuleValidationIssue[];
62
+ //# sourceMappingURL=rule-operations.d.ts.map
@@ -0,0 +1,40 @@
1
+ import { LimelPickerCustomEvent, ListItem } from '@limetech/lime-elements';
2
+ import { PrimitiveMetadata, RuleValidationIssue } from '@limetech/lime-web-components';
3
+ /**
4
+ * Event emitted by `limel-picker` when its value changes. Single-select
5
+ * pickers receive a single item, multi-select pickers receive an array.
6
+ */
7
+ export type PickerChangeEvent = LimelPickerCustomEvent<ListItem<string> | Array<ListItem<string>>>;
8
+ /**
9
+ * Event emitted by `limel-picker` when the user interacts with an
10
+ * existing chip (e.g. clicks it).
11
+ */
12
+ export type PickerInteractEvent = LimelPickerCustomEvent<ListItem<string>>;
13
+ /**
14
+ * Class map for a rule-node container. Adds the type modifier and an
15
+ * `invalid` flag when validation issues attach to this node.
16
+ * @param type
17
+ * @param issues
18
+ */
19
+ export declare function nodeClasses(type: 'all' | 'any', issues: RuleValidationIssue[]): Record<string, boolean>;
20
+ /**
21
+ * Build the searchable list shown by the primitive pickers. Cached on
22
+ * the render context so it isn't recomputed per node.
23
+ * @param metadataById
24
+ */
25
+ export declare function createPrimitiveOptions(metadataById: Map<string, PrimitiveMetadata>): Array<ListItem<string>>;
26
+ /**
27
+ * Find the picker item for `id`, falling back to a placeholder marked
28
+ * with the unknown-primitive icon when the id isn't in the registry.
29
+ * @param allItems
30
+ * @param id
31
+ */
32
+ export declare function resolveItem(allItems: Array<ListItem<string>>, id: string): ListItem<string>;
33
+ /**
34
+ * Build a picker `searcher` bound to a fixed item list. Both the ref
35
+ * picker and the chip picker want exactly this — wrapping
36
+ * {@link searchItems} in a promise — and deserve to share it.
37
+ * @param items
38
+ */
39
+ export declare function createSearcher(items: Array<ListItem<string>>): (query: string) => Promise<Array<ListItem<string>>>;
40
+ //# sourceMappingURL=view-helpers.d.ts.map
@@ -9,14 +9,17 @@ import { LimeWebComponentPlatform, Rule, RuleScope } from '@limetech/lime-web-co
9
9
  * @exampleComponent limebb-example-rule-gate
10
10
  *
11
11
  * @alpha
12
+ * @private
12
13
  */
13
14
  export declare class RuleGate {
14
15
  host: HTMLElement;
15
16
  platform: LimeWebComponentPlatform;
16
17
  /**
17
- * The rule to evaluate.
18
+ * The rule to evaluate. When unset, the gate renders its slot
19
+ * unconditionally — "no rule" means "no gating", which mirrors
20
+ * the editor's `Rule | undefined` emit contract.
18
21
  */
19
- rule: Rule;
22
+ rule: Rule | undefined;
20
23
  /**
21
24
  * Optional scope override. By default the gate resolves subject
22
25
  * values by walking up the DOM to ancestors that registered providers