@limetech/lime-crm-building-blocks 1.95.0 → 1.97.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 (246) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/{_MapCache-2e84a981.js → _MapCache-8b125fbb.js} +0 -26
  3. package/dist/cjs/{_Uint8Array-1e99726d.js → _Uint8Array-95263550.js} +1 -12
  4. package/dist/cjs/_baseIsEqual-cb7951b0.js +496 -0
  5. package/dist/cjs/_defineProperty-40a6ad5d.js +15 -0
  6. package/dist/cjs/{get-1acf79ce.js → get-932b213e.js} +5 -4
  7. package/dist/cjs/isEqual-e77cce75.js +37 -0
  8. package/dist/cjs/isSymbol-5b36aeee.js +30 -0
  9. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  10. package/dist/cjs/lime-query.types-bcb63a22.js +61 -0
  11. package/dist/cjs/limebb-component-config.cjs.entry.js +3 -2
  12. package/dist/cjs/limebb-document-item.cjs.entry.js +174 -0
  13. package/dist/cjs/limebb-document-picker.cjs.entry.js +82 -0
  14. package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  17. package/dist/cjs/limebb-icon-picker.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
  19. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  20. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  22. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +382 -150
  23. package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +278 -0
  24. package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +239 -0
  25. package/dist/cjs/limebb-limetype-field_2.cjs.entry.js +406 -0
  26. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  27. package/dist/cjs/limebb-locale-picker.cjs.entry.js +13 -498
  28. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  29. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  30. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-property-selector.cjs.entry.js +234 -0
  33. package/dist/cjs/limebb-response-format-item.cjs.entry.js +80 -0
  34. package/dist/cjs/limebb-text-editor.cjs.entry.js +22 -83
  35. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  36. package/dist/cjs/limetype-1fe0207f.js +90 -0
  37. package/dist/cjs/loader.cjs.js +1 -1
  38. package/dist/cjs/property-resolution-fb42a46b.js +66 -0
  39. package/dist/cjs/random-string-aac0a74b.js +24 -0
  40. package/dist/collection/collection-manifest.json +12 -0
  41. package/dist/collection/components/document-picker/document-item/document-item.css +64 -0
  42. package/dist/collection/components/document-picker/document-item/document-item.js +265 -0
  43. package/dist/collection/components/document-picker/document-item/document-item.types.js +1 -0
  44. package/dist/collection/components/document-picker/document-picker.css +139 -0
  45. package/dist/collection/components/document-picker/document-picker.js +304 -0
  46. package/dist/collection/components/document-picker/document.types.js +1 -0
  47. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  48. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  49. package/dist/collection/components/feed/feed.js +1 -1
  50. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  51. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  52. package/dist/collection/components/info-tile/info-tile.js +1 -1
  53. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  54. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  55. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.css +121 -0
  56. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +257 -0
  57. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.css +39 -0
  58. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +246 -0
  59. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +104 -0
  60. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +220 -0
  61. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.css +107 -0
  62. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +212 -0
  63. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.css +123 -0
  64. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +237 -0
  65. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.css +48 -0
  66. package/dist/collection/components/lime-query-builder/expressions/lime-query-value-input.js +457 -0
  67. package/dist/collection/components/lime-query-builder/filter-conversion.js +118 -21
  68. package/dist/collection/components/lime-query-builder/lime-query-builder.css +30 -17
  69. package/dist/collection/components/lime-query-builder/lime-query-builder.js +233 -28
  70. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +435 -0
  71. package/dist/collection/components/lime-query-builder/property-selection-format.js +158 -0
  72. package/dist/collection/components/lime-query-builder/property-selector/property-selector.css +8 -0
  73. package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +422 -0
  74. package/dist/collection/components/lime-query-builder/response-format-editor.css +72 -0
  75. package/dist/collection/components/lime-query-builder/response-format-editor.js +249 -0
  76. package/dist/collection/components/lime-query-builder/response-format-item.css +61 -0
  77. package/dist/collection/components/lime-query-builder/response-format-item.js +208 -0
  78. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  79. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  80. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  81. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  82. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  83. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  84. package/dist/collection/components/text-editor/text-editor.js +1 -1
  85. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  86. package/dist/collection/util/format-bytes.js +36 -0
  87. package/dist/components/_MapCache.js +2 -27
  88. package/dist/components/_Uint8Array.js +2 -12
  89. package/dist/components/_baseIsEqual.js +494 -0
  90. package/dist/components/_defineProperty.js +13 -0
  91. package/dist/components/document-item.js +190 -0
  92. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  93. package/dist/components/feed-timeline-item.js +1 -1
  94. package/dist/components/get.js +2 -1
  95. package/dist/components/isEqual.js +35 -0
  96. package/dist/components/isSymbol.js +28 -0
  97. package/dist/components/kanban-group.js +1 -1
  98. package/dist/components/kanban-item.js +1 -1
  99. package/dist/components/lime-query-filter-and.js +408 -0
  100. package/dist/components/lime-query-filter-comparison.js +152 -0
  101. package/dist/components/lime-query-value-input.js +266 -0
  102. package/dist/components/limebb-document-item.d.ts +11 -0
  103. package/dist/components/limebb-document-item.js +6 -0
  104. package/dist/components/limebb-document-picker.d.ts +11 -0
  105. package/dist/components/limebb-document-picker.js +111 -0
  106. package/dist/components/limebb-feed.js +1 -1
  107. package/dist/components/limebb-icon-picker.js +1 -1
  108. package/dist/components/limebb-info-tile-format.js +1 -1
  109. package/dist/components/limebb-info-tile.js +1 -1
  110. package/dist/components/limebb-lime-query-builder.js +441 -149
  111. package/dist/components/limebb-lime-query-filter-and.d.ts +11 -0
  112. package/dist/components/limebb-lime-query-filter-and.js +6 -0
  113. package/dist/components/limebb-lime-query-filter-comparison.d.ts +11 -0
  114. package/dist/components/limebb-lime-query-filter-comparison.js +6 -0
  115. package/dist/components/limebb-lime-query-filter-expression.d.ts +11 -0
  116. package/dist/components/limebb-lime-query-filter-expression.js +6 -0
  117. package/dist/components/limebb-lime-query-filter-not.d.ts +11 -0
  118. package/dist/components/limebb-lime-query-filter-not.js +6 -0
  119. package/dist/components/limebb-lime-query-filter-or.d.ts +11 -0
  120. package/dist/components/limebb-lime-query-filter-or.js +6 -0
  121. package/dist/components/limebb-lime-query-value-input.d.ts +11 -0
  122. package/dist/components/limebb-lime-query-value-input.js +6 -0
  123. package/dist/components/limebb-limetype-field.d.ts +11 -0
  124. package/dist/components/limebb-limetype-field.js +6 -0
  125. package/dist/components/limebb-locale-picker.js +8 -493
  126. package/dist/components/limebb-mention-group-counter.js +2 -2
  127. package/dist/components/limebb-percentage-visualizer.js +2 -2
  128. package/dist/components/limebb-property-selector.d.ts +11 -0
  129. package/dist/components/limebb-property-selector.js +6 -0
  130. package/dist/components/limebb-response-format-editor.d.ts +11 -0
  131. package/dist/components/limebb-response-format-editor.js +6 -0
  132. package/dist/components/limebb-response-format-item.d.ts +11 -0
  133. package/dist/components/limebb-response-format-item.js +6 -0
  134. package/dist/components/limebb-text-editor.js +8 -69
  135. package/dist/components/limebb-trend-indicator.js +1 -1
  136. package/dist/components/limetype-field.js +184 -0
  137. package/dist/components/limetype.js +85 -0
  138. package/dist/components/live-docs-info.js +2 -2
  139. package/dist/components/notification-item.js +1 -1
  140. package/dist/components/property-selector.js +317 -0
  141. package/dist/components/random-string.js +22 -0
  142. package/dist/components/response-format-editor.js +278 -0
  143. package/dist/components/response-format-item.js +104 -0
  144. package/dist/components/summary-popover.js +3 -3
  145. package/dist/esm/{_MapCache-6484495d.js → _MapCache-af496e9d.js} +2 -27
  146. package/dist/esm/{_Uint8Array-e5cac922.js → _Uint8Array-d6ebd526.js} +3 -13
  147. package/dist/esm/_baseIsEqual-28053b81.js +494 -0
  148. package/dist/esm/_defineProperty-e6a185c3.js +13 -0
  149. package/dist/esm/{get-f9e0b2e1.js → get-3e42932b.js} +2 -1
  150. package/dist/esm/isEqual-57d0c223.js +35 -0
  151. package/dist/esm/isSymbol-1c5f65cc.js +28 -0
  152. package/dist/esm/lime-crm-building-blocks.js +1 -1
  153. package/dist/esm/lime-query.types-f72355e1.js +59 -0
  154. package/dist/esm/limebb-component-config.entry.js +3 -2
  155. package/dist/esm/limebb-document-item.entry.js +170 -0
  156. package/dist/esm/limebb-document-picker.entry.js +78 -0
  157. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
  158. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  159. package/dist/esm/limebb-feed.entry.js +1 -1
  160. package/dist/esm/limebb-icon-picker.entry.js +1 -1
  161. package/dist/esm/limebb-info-tile-format.entry.js +1 -1
  162. package/dist/esm/limebb-info-tile.entry.js +1 -1
  163. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  164. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  165. package/dist/esm/limebb-lime-query-builder.entry.js +379 -147
  166. package/dist/esm/limebb-lime-query-filter-and_5.entry.js +270 -0
  167. package/dist/esm/limebb-lime-query-value-input.entry.js +235 -0
  168. package/dist/esm/limebb-limetype-field_2.entry.js +401 -0
  169. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  170. package/dist/esm/limebb-locale-picker.entry.js +9 -494
  171. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  172. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  173. package/dist/esm/limebb-notification-item.entry.js +1 -1
  174. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  175. package/dist/esm/limebb-property-selector.entry.js +230 -0
  176. package/dist/esm/limebb-response-format-item.entry.js +76 -0
  177. package/dist/esm/limebb-text-editor.entry.js +8 -69
  178. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  179. package/dist/esm/limetype-6e7552a7.js +85 -0
  180. package/dist/esm/loader.js +1 -1
  181. package/dist/esm/property-resolution-fde2375e.js +63 -0
  182. package/dist/esm/random-string-f6ef6fbf.js +22 -0
  183. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  184. package/dist/lime-crm-building-blocks/{p-85e11ff7.entry.js → p-00da9b24.entry.js} +1 -1
  185. package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +1 -0
  186. package/dist/lime-crm-building-blocks/p-123190c3.js +1 -0
  187. package/dist/lime-crm-building-blocks/p-244ee55b.entry.js +1 -0
  188. package/dist/lime-crm-building-blocks/p-35897ec3.js +1 -0
  189. package/dist/lime-crm-building-blocks/{p-d6a07ea4.entry.js → p-3932077b.entry.js} +1 -1
  190. package/dist/lime-crm-building-blocks/p-3b0a15ec.js +1 -0
  191. package/dist/lime-crm-building-blocks/p-4a82410e.entry.js +1 -0
  192. package/dist/lime-crm-building-blocks/{p-a694aae5.entry.js → p-50d3d61a.entry.js} +1 -1
  193. package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +1 -0
  194. package/dist/lime-crm-building-blocks/p-60971d64.js +1 -0
  195. package/dist/lime-crm-building-blocks/{p-a44f543c.entry.js → p-61282e1a.entry.js} +1 -1
  196. package/dist/lime-crm-building-blocks/p-6c1146ca.entry.js +1 -0
  197. package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +1 -0
  198. package/dist/lime-crm-building-blocks/{p-16199127.entry.js → p-79d4668a.entry.js} +1 -1
  199. package/dist/lime-crm-building-blocks/p-7e6fb4af.js +1 -0
  200. package/dist/lime-crm-building-blocks/{p-88cc5b66.entry.js → p-82d33d43.entry.js} +1 -1
  201. package/dist/lime-crm-building-blocks/{p-7db8652e.entry.js → p-8c4eb49f.entry.js} +1 -1
  202. package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +1 -0
  203. package/dist/lime-crm-building-blocks/p-9d25ed5a.entry.js +1 -0
  204. package/dist/lime-crm-building-blocks/{p-8dce83ad.entry.js → p-9d9f25da.entry.js} +1 -1
  205. package/dist/lime-crm-building-blocks/p-a659d55a.js +1 -0
  206. package/dist/lime-crm-building-blocks/p-b7c72179.entry.js +1 -0
  207. package/dist/lime-crm-building-blocks/p-baf4e428.entry.js +1 -0
  208. package/dist/lime-crm-building-blocks/{p-516210d4.entry.js → p-beb0d164.entry.js} +1 -1
  209. package/dist/lime-crm-building-blocks/p-d298b34e.js +1 -0
  210. package/dist/lime-crm-building-blocks/{p-047c89de.entry.js → p-d89c44ad.entry.js} +1 -1
  211. package/dist/lime-crm-building-blocks/p-e0ab1554.js +1 -0
  212. package/dist/lime-crm-building-blocks/{p-46d2f604.entry.js → p-e35299e0.entry.js} +1 -1
  213. package/dist/lime-crm-building-blocks/{p-8ef39ab8.entry.js → p-e9d23ef7.entry.js} +1 -1
  214. package/dist/lime-crm-building-blocks/p-ef8a5266.entry.js +1 -0
  215. package/dist/lime-crm-building-blocks/{p-abf1c197.entry.js → p-f52125a0.entry.js} +1 -1
  216. package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +1 -0
  217. package/dist/lime-crm-building-blocks/p-fbda77a7.js +1 -0
  218. package/dist/lime-crm-building-blocks/p-fe2b91d9.js +1 -0
  219. package/dist/lime-crm-building-blocks/{p-d6af09a8.entry.js → p-ff0b244b.entry.js} +1 -1
  220. package/dist/types/components/document-picker/document-item/document-item.d.ts +46 -0
  221. package/dist/types/components/document-picker/document-item/document-item.types.d.ts +37 -0
  222. package/dist/types/components/document-picker/document-picker.d.ts +80 -0
  223. package/dist/types/components/document-picker/document.types.d.ts +2 -0
  224. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +56 -0
  225. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +64 -0
  226. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +53 -0
  227. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +54 -0
  228. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +55 -0
  229. package/dist/types/components/lime-query-builder/expressions/lime-query-value-input.d.ts +92 -0
  230. package/dist/types/components/lime-query-builder/filter-conversion.d.ts +18 -0
  231. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +30 -8
  232. package/dist/types/components/lime-query-builder/limetype-field/limetype-field.d.ts +96 -0
  233. package/dist/types/components/lime-query-builder/property-selection-format.d.ts +23 -0
  234. package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +71 -0
  235. package/dist/types/components/lime-query-builder/response-format-editor.d.ts +57 -0
  236. package/dist/types/components/lime-query-builder/response-format-item.d.ts +46 -0
  237. package/dist/types/components.d.ts +1795 -114
  238. package/dist/types/util/format-bytes.d.ts +20 -0
  239. package/package.json +2 -2
  240. package/dist/lime-crm-building-blocks/p-29346b1a.entry.js +0 -1
  241. package/dist/lime-crm-building-blocks/p-4ccce5cc.entry.js +0 -1
  242. package/dist/lime-crm-building-blocks/p-7ef3bace.entry.js +0 -1
  243. package/dist/lime-crm-building-blocks/p-8044ffbd.js +0 -1
  244. package/dist/lime-crm-building-blocks/p-92ec9205.entry.js +0 -1
  245. package/dist/lime-crm-building-blocks/p-bcc23575.js +0 -1
  246. package/dist/lime-crm-building-blocks/p-c40a3f4b.js +0 -1
@@ -0,0 +1,266 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
+ import { T as Te } from './index.esm.js';
3
+ import { a as getPropertyFromPath, d as defineCustomElement$1 } from './property-selector.js';
4
+
5
+ const limeQueryValueInputCss = ":host{display:block}.value-input-container{display:flex;flex-direction:row;align-items:flex-start;gap:0.5rem;width:100%}.mode-toggle{flex-shrink:0;margin-top:0.5rem;opacity:0.7;transition:opacity 0.2s ease}.mode-toggle:hover{opacity:1}.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}";
6
+ const LimebbLimeQueryValueInputStyle0 = limeQueryValueInputCss;
7
+
8
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
11
+ r = Reflect.decorate(decorators, target, key, desc);
12
+ else
13
+ for (var i = decorators.length - 1; i >= 0; i--)
14
+ if (d = decorators[i])
15
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
17
+ };
18
+ const LimeQueryValueInput = /*@__PURE__*/ proxyCustomElement(class LimeQueryValueInput extends HTMLElement {
19
+ constructor() {
20
+ super();
21
+ this.__registerHost();
22
+ this.__attachShadow();
23
+ this.change = createEvent(this, "change", 7);
24
+ /**
25
+ * Optional label for the input
26
+ */
27
+ this.label = 'Value';
28
+ this.inputMode = 'value';
29
+ this.handleTextChange = (event) => {
30
+ event.stopPropagation();
31
+ // Try to parse as number for number inputs
32
+ const value = event.detail;
33
+ const numValue = Number(value);
34
+ if (!Number.isNaN(numValue) && value !== '') {
35
+ this.change.emit(numValue);
36
+ }
37
+ else {
38
+ this.change.emit(value);
39
+ }
40
+ };
41
+ this.handleSelectChange = (event) => {
42
+ event.stopPropagation();
43
+ const detail = event.detail;
44
+ if (Array.isArray(detail)) {
45
+ this.change.emit(detail.map((o) => o.value));
46
+ }
47
+ else {
48
+ this.change.emit(detail === null || detail === void 0 ? void 0 : detail.value);
49
+ }
50
+ };
51
+ this.handleBooleanChange = (event) => {
52
+ event.stopPropagation();
53
+ const detail = event.detail;
54
+ if (!Array.isArray(detail)) {
55
+ // Convert string back to boolean
56
+ this.change.emit((detail === null || detail === void 0 ? void 0 : detail.value) === 'true');
57
+ }
58
+ };
59
+ this.handleDateChange = (event) => {
60
+ event.stopPropagation();
61
+ // Convert Date to ISO string for storage
62
+ const date = event.detail;
63
+ this.change.emit(date ? date.toISOString() : null);
64
+ };
65
+ this.handleMultiValueChange = (event) => {
66
+ event.stopPropagation();
67
+ // Split by comma and trim whitespace
68
+ const values = event.detail
69
+ .split(',')
70
+ .map((v) => v.trim())
71
+ .filter((v) => v.length > 0);
72
+ this.change.emit(values);
73
+ };
74
+ this.handleModeToggle = () => {
75
+ if (this.inputMode === 'value') {
76
+ // Switching to placeholder mode
77
+ this.inputMode = 'placeholder';
78
+ // Emit placeholder value (empty initially)
79
+ this.change.emit('%activeObject%');
80
+ }
81
+ else {
82
+ // Switching to value mode
83
+ this.inputMode = 'value';
84
+ // Emit empty value
85
+ this.change.emit('');
86
+ }
87
+ };
88
+ this.handlePlaceholderPropertyChange = (event) => {
89
+ event.stopPropagation();
90
+ const propertyPath = event.detail;
91
+ const placeholderValue = this.buildPlaceholderValue(propertyPath);
92
+ this.change.emit(placeholderValue);
93
+ };
94
+ }
95
+ componentWillLoad() {
96
+ // Detect if the current value is a placeholder
97
+ if (this.isPlaceholder(this.value)) {
98
+ this.inputMode = 'placeholder';
99
+ }
100
+ }
101
+ componentWillUpdate() {
102
+ // Update mode if value changes externally
103
+ if (this.isPlaceholder(this.value) &&
104
+ this.inputMode !== 'placeholder') {
105
+ this.inputMode = 'placeholder';
106
+ }
107
+ else if (!this.isPlaceholder(this.value) &&
108
+ this.inputMode === 'placeholder') {
109
+ this.inputMode = 'value';
110
+ }
111
+ }
112
+ isPlaceholder(value) {
113
+ return typeof value === 'string' && value.startsWith('%activeObject%');
114
+ }
115
+ parsePlaceholderPath(value) {
116
+ if (!this.isPlaceholder(value)) {
117
+ return '';
118
+ }
119
+ // Extract path after %activeObject%. (e.g., "%activeObject%.company.name" → "company.name")
120
+ return value.replace(/^%activeObject%\.?/, '');
121
+ }
122
+ buildPlaceholderValue(propertyPath) {
123
+ if (!propertyPath) {
124
+ return '%activeObject%';
125
+ }
126
+ return `%activeObject%.${propertyPath}`;
127
+ }
128
+ render() {
129
+ if (!this.operator) {
130
+ return null;
131
+ }
132
+ return (h("div", { class: "value-input-container" }, this.renderModeToggle(), this.inputMode === 'placeholder'
133
+ ? this.renderPlaceholderInput()
134
+ : this.renderValueInputByType()));
135
+ }
136
+ renderModeToggle() {
137
+ // Only show toggle if activeLimetype is set
138
+ if (!this.activeLimetype) {
139
+ return null;
140
+ }
141
+ const isPlaceholderMode = this.inputMode === 'placeholder';
142
+ const buttonLabel = isPlaceholderMode ? 'Use Value' : 'Use Placeholder';
143
+ const buttonIcon = isPlaceholderMode ? 'text' : 'link';
144
+ return (h("limel-icon-button", { class: "mode-toggle", icon: buttonIcon, label: buttonLabel, onClick: this.handleModeToggle }));
145
+ }
146
+ renderPlaceholderInput() {
147
+ const propertyPath = this.parsePlaceholderPath(this.value);
148
+ return (h("div", { class: "placeholder-input" }, h("limebb-property-selector", { platform: this.platform, context: this.context, limetype: this.activeLimetype, label: "Active Object Property", value: propertyPath, required: false, helperText: "Select property from the active object", onChange: this.handlePlaceholderPropertyChange }), this.isPlaceholder(this.value) && (h("div", { class: "placeholder-preview" }, h("limel-icon", { name: "info", size: "small" }), h("span", null, "Placeholder: ", this.value)))));
149
+ }
150
+ renderValueInputByType() {
151
+ // Special handling for IN operator - always use chip set for arrays
152
+ if (this.operator === 'IN') {
153
+ return this.renderMultiValueInput();
154
+ }
155
+ const property = this.getProperty();
156
+ if (!property) {
157
+ return this.renderTextInput();
158
+ }
159
+ switch (property.type) {
160
+ case 'integer':
161
+ case 'decimal': {
162
+ return this.renderNumberInput(property.type);
163
+ }
164
+ case 'yesno': {
165
+ return this.renderBooleanInput();
166
+ }
167
+ case 'option': {
168
+ return this.renderOptionInput(property);
169
+ }
170
+ case 'date': {
171
+ return this.renderDateInput();
172
+ }
173
+ case 'time': {
174
+ return this.renderTimeInput();
175
+ }
176
+ default: {
177
+ return this.renderTextInput();
178
+ }
179
+ }
180
+ }
181
+ renderTextInput() {
182
+ var _a;
183
+ return (h("limel-input-field", { label: this.label, value: ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) || '', placeholder: "Enter value", onChange: this.handleTextChange }));
184
+ }
185
+ renderNumberInput(type) {
186
+ var _a;
187
+ const step = type === 'integer' ? 1 : 0.01;
188
+ return (h("limel-input-field", { label: this.label, type: "number", value: ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) || '', step: step, onChange: this.handleTextChange }));
189
+ }
190
+ renderBooleanInput() {
191
+ const options = [
192
+ { text: 'True', value: 'true' },
193
+ { text: 'False', value: 'false' },
194
+ ];
195
+ const valueAsString = this.value === true || this.value === 'true' ? 'true' : 'false';
196
+ const selectedOption = options.find((o) => o.value === valueAsString);
197
+ return (h("limel-select", { label: this.label, options: options, value: selectedOption, onChange: this.handleBooleanChange }));
198
+ }
199
+ renderOptionInput(property) {
200
+ if (!property.options || property.options.length === 0) {
201
+ return this.renderTextInput();
202
+ }
203
+ const options = property.options.map((opt) => ({
204
+ text: opt.text || opt.key,
205
+ value: opt.key,
206
+ }));
207
+ const selectedOption = options.find((o) => o.value === this.value);
208
+ return (h("limel-select", { label: this.label, options: options, value: selectedOption, onChange: this.handleSelectChange }));
209
+ }
210
+ renderDateInput() {
211
+ // Convert string to Date if needed
212
+ const dateValue = typeof this.value === 'string' ? new Date(this.value) : this.value;
213
+ return (h("limel-date-picker", { label: this.label, value: dateValue, onChange: this.handleDateChange }));
214
+ }
215
+ renderTimeInput() {
216
+ return (h("limel-input-field", { label: this.label, type: "time", value: this.value || '', onChange: this.handleTextChange }));
217
+ }
218
+ renderMultiValueInput() {
219
+ // For IN operator, allow comma-separated values
220
+ const displayValue = Array.isArray(this.value)
221
+ ? this.value.join(', ')
222
+ : this.value || '';
223
+ return (h("limel-input-field", { label: this.label + ' (comma-separated)', value: displayValue, placeholder: "e.g., won, lost, tender", onChange: this.handleMultiValueChange }));
224
+ }
225
+ getProperty() {
226
+ if (!this.limetypes || !this.limetype || !this.propertyPath) {
227
+ return;
228
+ }
229
+ return getPropertyFromPath(this.limetypes, this.limetype, this.propertyPath);
230
+ }
231
+ static get style() { return LimebbLimeQueryValueInputStyle0; }
232
+ }, [1, "limebb-lime-query-value-input", {
233
+ "platform": [16],
234
+ "context": [16],
235
+ "limetype": [1],
236
+ "activeLimetype": [1, "active-limetype"],
237
+ "propertyPath": [1, "property-path"],
238
+ "operator": [1],
239
+ "value": [8],
240
+ "label": [1],
241
+ "limetypes": [32],
242
+ "inputMode": [32]
243
+ }]);
244
+ __decorate([
245
+ Te()
246
+ ], LimeQueryValueInput.prototype, "limetypes", void 0);
247
+ function defineCustomElement() {
248
+ if (typeof customElements === "undefined") {
249
+ return;
250
+ }
251
+ const components = ["limebb-lime-query-value-input", "limebb-property-selector"];
252
+ components.forEach(tagName => { switch (tagName) {
253
+ case "limebb-lime-query-value-input":
254
+ if (!customElements.get(tagName)) {
255
+ customElements.define(tagName, LimeQueryValueInput);
256
+ }
257
+ break;
258
+ case "limebb-property-selector":
259
+ if (!customElements.get(tagName)) {
260
+ defineCustomElement$1();
261
+ }
262
+ break;
263
+ } });
264
+ }
265
+
266
+ export { LimeQueryValueInput as L, defineCustomElement as d };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LimebbDocumentItem extends Components.LimebbDocumentItem, HTMLElement {}
4
+ export const LimebbDocumentItem: {
5
+ prototype: LimebbDocumentItem;
6
+ new (): LimebbDocumentItem;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { D as DocumentItemComponent, d as defineCustomElement$1 } from './document-item.js';
2
+
3
+ const LimebbDocumentItem = DocumentItemComponent;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { LimebbDocumentItem, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LimebbDocumentPicker extends Components.LimebbDocumentPicker, HTMLElement {}
4
+ export const LimebbDocumentPicker: {
5
+ prototype: LimebbDocumentPicker;
6
+ new (): LimebbDocumentPicker;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,111 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { c as createRandomString } from './random-string.js';
3
+ import { d as defineCustomElement$2 } from './document-item.js';
4
+
5
+ const documentPickerCss = "@charset \"UTF-8\";:host(limebb-document-picker:not([invalid]):not([invalid=true])) .limel-notched-outline{--limel-notched-outline-border-color:transparent;--limel-notched-outline-background-color:transparent}div[slot=content]{display:block;width:100%;padding:0.75rem 0.5rem;columns:10rem;gap:clamp(0.25rem, 2vmin, 0.75rem)}div[slot=content]>limebb-document-item{display:block;break-inside:avoid;margin-bottom:clamp(0.25rem, 2vmin, 0.75rem)}@supports (grid-template-rows: masonry){div[slot=content]{column-width:initial;column-gap:initial;display:grid;grid-template-columns:repeat(auto-fill, minmax(10rem, 1fr));grid-template-rows:masonry;grid-auto-flow:dense;gap:0.5rem}div[slot=content]>limebb-document-item{display:block;width:auto;margin:0;break-inside:auto}}:host(limebb-document-picker:focus),:host(limebb-document-picker:focus-visible),:host(limebb-document-picker:focus-within){--limel-h-l-grid-template-rows-transition-speed:0.46s;--limel-h-l-grid-template-rows:1fr}:host(limebb-document-picker){--limel-h-l-grid-template-rows-transition-speed:0.3s;--limel-h-l-grid-template-rows:0fr}:host(limebb-document-picker:focus) limel-helper-line,:host(limebb-document-picker:focus-visible) limel-helper-line,:host(limebb-document-picker:focus-within) limel-helper-line,:host(limebb-document-picker:hover) limel-helper-line{will-change:grid-template-rows}";
6
+ const LimebbDocumentPickerStyle0 = documentPickerCss;
7
+
8
+ const DocumentPicker = /*@__PURE__*/ proxyCustomElement(class DocumentPicker extends HTMLElement {
9
+ constructor() {
10
+ super();
11
+ this.__registerHost();
12
+ this.__attachShadow();
13
+ this.change = createEvent(this, "change", 7);
14
+ /**
15
+ * The list of document items to display in the picker.
16
+ */
17
+ this.items = [];
18
+ /**
19
+ * Set to `true` to indicate that the current selection is invalid.
20
+ */
21
+ this.invalid = false;
22
+ /**
23
+ * Set to `true` to indicate that selecting an item is required.
24
+ */
25
+ this.required = false;
26
+ /**
27
+ * Defines whether the picker allows single or multiple selection.
28
+ * - 'radio': Allows single selection within a group.
29
+ * - 'checkbox': Allows multiple selection.
30
+ */
31
+ this.type = 'checkbox';
32
+ this.handleItemInteract = (event) => {
33
+ event.stopPropagation();
34
+ const interactedItem = event.detail;
35
+ if (!interactedItem) {
36
+ return;
37
+ }
38
+ let updatedItems;
39
+ if (this.type === 'radio') {
40
+ // For radio buttons: either select the clicked item (and deselect others)
41
+ // or allow deselecting if clicking the already selected item
42
+ updatedItems = this.items
43
+ .map((item) => {
44
+ if (item.id === interactedItem.id) {
45
+ return Object.assign(Object.assign({}, item), { selected: interactedItem.selected });
46
+ }
47
+ return Object.assign(Object.assign({}, item), { selected: false });
48
+ })
49
+ .find((item) => item.selected);
50
+ }
51
+ else {
52
+ updatedItems = this.items
53
+ .map((item) => {
54
+ if (item.id === interactedItem.id) {
55
+ return Object.assign(Object.assign({}, item), { selected: interactedItem.selected });
56
+ }
57
+ return item;
58
+ })
59
+ .filter((item) => item.selected);
60
+ }
61
+ this.change.emit(updatedItems);
62
+ };
63
+ this.renderHelperLine = () => {
64
+ if (!this.helperText) {
65
+ return;
66
+ }
67
+ return (h("limel-helper-line", { helperText: this.helperText, helperTextId: this.helperTextId, invalid: this.invalid }));
68
+ };
69
+ this.helperTextId = createRandomString();
70
+ this.labelId = createRandomString();
71
+ }
72
+ render() {
73
+ return (h(Host, { key: '28bf6afd1999efc62689bc43b7d63d8c308d3663' }, h("limel-notched-outline", { key: '0b6f3d9f0cc88e9e1b782e3d12e7a08853211be6', labelId: this.labelId, label: this.label, required: this.required, invalid: this.invalid, hasFloatingLabel: true }, h("div", { key: 'a3d64740ca2139a3435884526b9a6195929d8060', slot: "content", role: this.type === 'radio' ? 'radiogroup' : 'group', "aria-labelledby": this.label ? this.labelId : undefined, "aria-describedby": this.helperText ? this.helperTextId : undefined }, this.renderItems())), this.renderHelperLine()));
74
+ }
75
+ renderItems() {
76
+ return this.items.map((item) => (h("limebb-document-item", { platform: this.platform, context: this.context, item: item, key: item.id, type: this.type, onInteract: this.handleItemInteract })));
77
+ }
78
+ static get style() { return LimebbDocumentPickerStyle0; }
79
+ }, [1, "limebb-document-picker", {
80
+ "platform": [16],
81
+ "context": [16],
82
+ "items": [16],
83
+ "label": [513],
84
+ "helperText": [513, "helper-text"],
85
+ "invalid": [516],
86
+ "required": [516],
87
+ "type": [513]
88
+ }]);
89
+ function defineCustomElement$1() {
90
+ if (typeof customElements === "undefined") {
91
+ return;
92
+ }
93
+ const components = ["limebb-document-picker", "limebb-document-item"];
94
+ components.forEach(tagName => { switch (tagName) {
95
+ case "limebb-document-picker":
96
+ if (!customElements.get(tagName)) {
97
+ customElements.define(tagName, DocumentPicker);
98
+ }
99
+ break;
100
+ case "limebb-document-item":
101
+ if (!customElements.get(tagName)) {
102
+ defineCustomElement$2();
103
+ }
104
+ break;
105
+ } });
106
+ }
107
+
108
+ const LimebbDocumentPicker = DocumentPicker;
109
+ const defineCustomElement = defineCustomElement$1;
110
+
111
+ export { LimebbDocumentPicker, defineCustomElement };
@@ -244,7 +244,7 @@ const Feed = /*@__PURE__*/ proxyCustomElement(class Feed extends HTMLElement {
244
244
  this.highlighter.unregisterFeed(this.feedItemElement);
245
245
  }
246
246
  render() {
247
- return (h(Host, { key: '78617233bbe38626901f6d266d495483f2bfd523', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
247
+ return (h(Host, { key: '8b53e0a71a8921ed0cb7fcd50273c1070eef365e', role: "log", "aria-busy": this.loading ? 'true' : 'false', style: {
248
248
  '--limebb-feed-highlight-duration': `${ITEM_HIGHLIGHT_DURATION}ms`,
249
249
  } }, this.renderLoadMore(), this.renderEmptyFeedMessage(), this.renderSpinner(), this.renderFeedItems()));
250
250
  }
@@ -52965,7 +52965,7 @@ const IconPicker = /*@__PURE__*/ proxyCustomElement(class IconPicker extends HTM
52965
52965
  icon: this.value,
52966
52966
  };
52967
52967
  }
52968
- return (h("limel-picker", { key: '4be7dd4855e9fb6bbb0f6167a9c3e478f262b23c', label: this.label, helperText: this.helperText, disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, required: this.required, value: value, searcher: this.search, onChange: this.handleChange, badgeIcons: false, leadingIcon: "search", searchLabel: "Start typing to find the right icon" }));
52968
+ return (h("limel-picker", { key: 'cfb1562215c69464d6736ec96fd39e0d45c92d7d', label: this.label, helperText: this.helperText, disabled: this.disabled, readonly: this.readonly, invalid: this.invalid, required: this.required, value: value, searcher: this.search, onChange: this.handleChange, badgeIcons: false, leadingIcon: "search", searchLabel: "Start typing to find the right icon" }));
52969
52969
  }
52970
52970
  }, [1, "limebb-icon-picker", {
52971
52971
  "value": [1],
@@ -94,7 +94,7 @@ const InfoTileAdminConfig = /*@__PURE__*/ proxyCustomElement(class InfoTileAdmin
94
94
  },
95
95
  ];
96
96
  return [
97
- h("limel-button-group", { key: '74a794bc61c9692587bf35e54712c649d3768f9b', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
97
+ h("limel-button-group", { key: '8c7bba2402e84e73df2bc5e906780aeb66b1af58', value: buttons.filter(this.isValidButton), onChange: this.handleChangeType }),
98
98
  this.renderFormatConfig(),
99
99
  ];
100
100
  }
@@ -377,7 +377,7 @@ const InfoTile = /*@__PURE__*/ proxyCustomElement(class InfoTile extends HTMLEle
377
377
  const errorProps = Object.assign(Object.assign({}, baseProps), { icon: 'error', prefix: 'ERROR', loading: true, label: this.getLabel(filter) });
378
378
  const normalProps = Object.assign(Object.assign({}, baseProps), { label: this.getLabel(filter), link: this.getLink(filter), loading: this.loading, value: value === null || value === void 0 ? void 0 : value.value.trim() });
379
379
  const props = !filter || this.error ? errorProps : normalProps;
380
- return (h("limel-info-tile", Object.assign({ key: '4fca09fbc878e3960ed691f68c6041ce53eb12da', class: { error: !filter || this.error } }, props)));
380
+ return (h("limel-info-tile", Object.assign({ key: 'bb8b9eede8bdd3fdd17934753e463d134c46f7df', class: { error: !filter || this.error } }, props)));
381
381
  }
382
382
  getFormattedValue() {
383
383
  if (!this.value && this.value !== 0) {