@limetech/lime-crm-building-blocks 1.140.0 → 2.0.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 (215) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/file-contents-url-CIoCVl85.js +14 -0
  3. package/dist/cjs/{filter-group-logic-BPpM2NqX.js → filter-group-logic-EDLGrkTt.js} +12 -12
  4. package/dist/cjs/{filter-operators-BTWvpD6A.js → filter-operators-CVCyCZ7Q.js} +11 -11
  5. package/dist/cjs/index.cjs.js +2 -2
  6. package/dist/cjs/{index.esm-Se3EtD3m.js → index.esm-CcYbS__E.js} +210 -181
  7. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  8. package/dist/cjs/{lime-query-validation-CJC3mtnT.js → lime-query-validation-B0oYW7Z6.js} +7 -7
  9. package/dist/cjs/limebb-browser.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +1 -1
  11. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-component-config.cjs.entry.js +1 -1
  13. package/dist/cjs/limebb-component-picker.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-data-cells.cjs.entry.js +1 -1
  17. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +5 -1
  19. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  20. package/dist/cjs/limebb-filter-chip_6.cjs.entry.js +22 -22
  21. package/dist/cjs/limebb-info-tile.cjs.entry.js +10 -9
  22. package/dist/cjs/limebb-inline-image.cjs.entry.js +49 -0
  23. package/dist/cjs/limebb-kanban-group.cjs.entry.js +2 -2
  24. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +3 -3
  26. package/dist/cjs/limebb-lime-query-filter-builder.cjs.entry.js +5 -5
  27. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +4 -4
  28. package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +2 -2
  29. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +3 -3
  30. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +3 -3
  31. package/dist/cjs/limebb-loader.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
  33. package/dist/cjs/limebb-mention.cjs.entry.js +1 -1
  34. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  35. package/dist/cjs/limebb-notification-list.cjs.entry.js +1 -1
  36. package/dist/cjs/limebb-object-chip.cjs.entry.js +3 -3
  37. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +1 -1
  38. package/dist/cjs/limebb-property-selector.cjs.entry.js +3 -3
  39. package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +2 -2
  40. package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +2 -2
  41. package/dist/cjs/limebb-rule-editor.cjs.entry.js +2 -2
  42. package/dist/cjs/limebb-rule-gate.cjs.entry.js +1 -1
  43. package/dist/cjs/limebb-text-editor.cjs.entry.js +51 -144
  44. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  45. package/dist/cjs/limebb-value-comparison-editor.cjs.entry.js +9 -9
  46. package/dist/cjs/{limetype-CmgP0nbZ.js → limetype-C-fVThrI.js} +1 -1
  47. package/dist/cjs/loader.cjs.js +1 -1
  48. package/dist/collection/collection-manifest.json +1 -0
  49. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +4 -0
  50. package/dist/collection/components/info-tile/info-tile.js +1 -1
  51. package/dist/collection/components/info-tile/loader.js +2 -1
  52. package/dist/collection/components/inline-image/inline-image.css +12 -0
  53. package/dist/collection/components/inline-image/inline-image.js +146 -0
  54. package/dist/collection/components/rule-editor/value-comparison-editor/value-comparison-editor.js +1 -1
  55. package/dist/collection/components/text-editor/text-editor.js +57 -45
  56. package/dist/collection/util/file-contents-url.js +10 -0
  57. package/dist/components/chat-item.js +1 -1
  58. package/dist/components/currency-picker.js +1 -1
  59. package/dist/components/date-picker.js +1 -1
  60. package/dist/components/feed-timeline-item.js +1 -1
  61. package/dist/components/file-contents-url.js +1 -0
  62. package/dist/components/filter-chip.js +1 -1
  63. package/dist/components/filter-condition-picker.js +1 -1
  64. package/dist/components/filter-operators.js +1 -1
  65. package/dist/components/index.esm.js +1 -1
  66. package/dist/components/kanban-group.js +1 -1
  67. package/dist/components/kanban-item.js +1 -1
  68. package/dist/components/lime-query-filter-builder.js +1 -1
  69. package/dist/components/lime-query-filter-comparison-editor.js +1 -1
  70. package/dist/components/lime-query-filter-comparison.js +1 -1
  71. package/dist/components/lime-query-filter-expression.js +1 -1
  72. package/dist/components/lime-query-validation.js +1 -1
  73. package/dist/components/lime-query-value-input.js +1 -1
  74. package/dist/components/limebb-browser.js +1 -1
  75. package/dist/components/limebb-chat-list.js +1 -1
  76. package/dist/components/limebb-component-config.js +1 -1
  77. package/dist/components/limebb-component-picker.js +1 -1
  78. package/dist/components/limebb-composer-toolbar.js +1 -1
  79. package/dist/components/limebb-data-cells.js +1 -1
  80. package/dist/components/limebb-feed.js +1 -1
  81. package/dist/components/limebb-info-tile.js +1 -1
  82. package/dist/components/limebb-inline-image.d.ts +11 -0
  83. package/dist/components/limebb-inline-image.js +1 -0
  84. package/dist/components/limebb-lime-query-builder.js +1 -1
  85. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  86. package/dist/components/limebb-limeobject-file-viewer.js +1 -1
  87. package/dist/components/limebb-loader.js +1 -1
  88. package/dist/components/limebb-locale-picker.js +1 -1
  89. package/dist/components/limebb-mention.js +1 -1
  90. package/dist/components/limebb-notification-list.js +1 -1
  91. package/dist/components/limebb-object-chip.js +1 -1
  92. package/dist/components/limebb-rule-arg-filter-editor.js +1 -1
  93. package/dist/components/limebb-rule-editor.js +1 -1
  94. package/dist/components/limebb-rule-gate.js +1 -1
  95. package/dist/components/limebb-text-editor.js +1 -1
  96. package/dist/components/limebb-trend-indicator.js +1 -1
  97. package/dist/components/limebb-value-comparison-editor.js +1 -1
  98. package/dist/components/limetype-field.js +1 -1
  99. package/dist/components/notification-item.js +1 -1
  100. package/dist/components/percentage-visualizer.js +1 -1
  101. package/dist/components/property-selector.js +1 -1
  102. package/dist/components/rule-chip-popover.js +1 -1
  103. package/dist/esm/file-contents-url-Oswz9F3I.js +12 -0
  104. package/dist/esm/{filter-group-logic-BMY_GEsX.js → filter-group-logic-DS1inQTh.js} +12 -12
  105. package/dist/esm/{filter-operators-Lw-ccmxQ.js → filter-operators-CsZi5iCV.js} +11 -11
  106. package/dist/esm/{index.esm-C-L5fkQs.js → index.esm-BjIhvFKX.js} +200 -172
  107. package/dist/esm/index.js +2 -2
  108. package/dist/esm/lime-crm-building-blocks.js +1 -1
  109. package/dist/esm/{lime-query-validation-BwvluehW.js → lime-query-validation-CVV7mrLj.js} +7 -7
  110. package/dist/esm/limebb-browser.entry.js +1 -1
  111. package/dist/esm/limebb-chat-icon-list_3.entry.js +1 -1
  112. package/dist/esm/limebb-chat-list.entry.js +1 -1
  113. package/dist/esm/limebb-component-config.entry.js +1 -1
  114. package/dist/esm/limebb-component-picker.entry.js +1 -1
  115. package/dist/esm/limebb-composer-toolbar.entry.js +1 -1
  116. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  117. package/dist/esm/limebb-data-cells.entry.js +1 -1
  118. package/dist/esm/limebb-date-picker.entry.js +1 -1
  119. package/dist/esm/limebb-feed-timeline-item.entry.js +5 -1
  120. package/dist/esm/limebb-feed.entry.js +1 -1
  121. package/dist/esm/limebb-filter-chip_6.entry.js +22 -22
  122. package/dist/esm/limebb-info-tile.entry.js +10 -9
  123. package/dist/esm/limebb-inline-image.entry.js +47 -0
  124. package/dist/esm/limebb-kanban-group.entry.js +2 -2
  125. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  126. package/dist/esm/limebb-lime-query-builder.entry.js +3 -3
  127. package/dist/esm/limebb-lime-query-filter-builder.entry.js +5 -5
  128. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +4 -4
  129. package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +2 -2
  130. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +3 -3
  131. package/dist/esm/limebb-limeobject-file-viewer.entry.js +3 -3
  132. package/dist/esm/limebb-loader.entry.js +2 -2
  133. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  134. package/dist/esm/limebb-mention.entry.js +1 -1
  135. package/dist/esm/limebb-notification-item.entry.js +1 -1
  136. package/dist/esm/limebb-notification-list.entry.js +1 -1
  137. package/dist/esm/limebb-object-chip.entry.js +3 -3
  138. package/dist/esm/limebb-percentage-visualizer.entry.js +1 -1
  139. package/dist/esm/limebb-property-selector.entry.js +3 -3
  140. package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
  141. package/dist/esm/limebb-rule-chip-popover.entry.js +2 -2
  142. package/dist/esm/limebb-rule-editor.entry.js +2 -2
  143. package/dist/esm/limebb-rule-gate.entry.js +1 -1
  144. package/dist/esm/limebb-text-editor.entry.js +51 -144
  145. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  146. package/dist/esm/limebb-value-comparison-editor.entry.js +9 -9
  147. package/dist/esm/{limetype-D4ZaWZ-3.js → limetype-BbMRN-SU.js} +1 -1
  148. package/dist/esm/loader.js +1 -1
  149. package/dist/lime-crm-building-blocks/index.esm.js +1 -1
  150. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  151. package/dist/lime-crm-building-blocks/p-135ba2ee.entry.js +1 -0
  152. package/dist/lime-crm-building-blocks/p-1c6e5402.entry.js +1 -0
  153. package/dist/lime-crm-building-blocks/{p-9452fb56.entry.js → p-240cbd82.entry.js} +1 -1
  154. package/dist/lime-crm-building-blocks/{p-58f18819.entry.js → p-25984c90.entry.js} +1 -1
  155. package/dist/lime-crm-building-blocks/{p-80e04b27.entry.js → p-397a6191.entry.js} +1 -1
  156. package/dist/lime-crm-building-blocks/{p-a6e9cefe.entry.js → p-52a92d89.entry.js} +1 -1
  157. package/dist/lime-crm-building-blocks/p-585f6cfe.entry.js +1 -0
  158. package/dist/lime-crm-building-blocks/{p-05a1762a.entry.js → p-59fb624c.entry.js} +1 -1
  159. package/dist/lime-crm-building-blocks/{p-fb8d854b.entry.js → p-5beb508a.entry.js} +1 -1
  160. package/dist/lime-crm-building-blocks/{p-92bf5318.entry.js → p-662fb8b6.entry.js} +1 -1
  161. package/dist/lime-crm-building-blocks/{p-00ca6522.entry.js → p-673226a6.entry.js} +1 -1
  162. package/dist/lime-crm-building-blocks/{p-e242b955.entry.js → p-69b08896.entry.js} +1 -1
  163. package/dist/lime-crm-building-blocks/{p-01f84b0c.entry.js → p-6c2e25d9.entry.js} +1 -1
  164. package/dist/lime-crm-building-blocks/{p-3bf316f9.entry.js → p-742926a3.entry.js} +1 -1
  165. package/dist/lime-crm-building-blocks/p-78d362b4.entry.js +1 -0
  166. package/dist/lime-crm-building-blocks/p-79c492b2.entry.js +1 -0
  167. package/dist/lime-crm-building-blocks/{p-dba6f583.entry.js → p-7a5c2dda.entry.js} +1 -1
  168. package/dist/lime-crm-building-blocks/{p-354257f4.entry.js → p-7ce967b6.entry.js} +1 -1
  169. package/dist/lime-crm-building-blocks/{p-d40f53a5.entry.js → p-906b4eca.entry.js} +1 -1
  170. package/dist/lime-crm-building-blocks/p-CE43qjk3.js +1 -0
  171. package/dist/lime-crm-building-blocks/p-Cw4kdMw3.js +1 -0
  172. package/dist/lime-crm-building-blocks/p-DLehg4hi.js +1 -0
  173. package/dist/lime-crm-building-blocks/{p-CI6VHE0w.js → p-Dhyy9Td7.js} +1 -1
  174. package/dist/lime-crm-building-blocks/p-Oswz9F3I.js +1 -0
  175. package/dist/lime-crm-building-blocks/p-a3058b72.entry.js +1 -0
  176. package/dist/lime-crm-building-blocks/p-b78ub0mY.js +1 -0
  177. package/dist/lime-crm-building-blocks/{p-f3cb68d6.entry.js → p-bc297cf4.entry.js} +1 -1
  178. package/dist/lime-crm-building-blocks/{p-cac2a49f.entry.js → p-bcd8c767.entry.js} +1 -1
  179. package/dist/lime-crm-building-blocks/p-c4e5e589.entry.js +1 -0
  180. package/dist/lime-crm-building-blocks/{p-8986f27b.entry.js → p-d014ec57.entry.js} +1 -1
  181. package/dist/lime-crm-building-blocks/p-d20404ec.entry.js +1 -0
  182. package/dist/lime-crm-building-blocks/{p-fb050628.entry.js → p-d2e85be2.entry.js} +1 -1
  183. package/dist/lime-crm-building-blocks/{p-dec2b87d.entry.js → p-d3fe25a7.entry.js} +1 -1
  184. package/dist/lime-crm-building-blocks/{p-f1090436.entry.js → p-d43cf8d1.entry.js} +1 -1
  185. package/dist/lime-crm-building-blocks/{p-430e3d11.entry.js → p-dd7aec09.entry.js} +1 -1
  186. package/dist/lime-crm-building-blocks/{p-b34817df.entry.js → p-e2e1358d.entry.js} +1 -1
  187. package/dist/lime-crm-building-blocks/{p-c0fa239a.entry.js → p-e4a21ebe.entry.js} +1 -1
  188. package/dist/lime-crm-building-blocks/{p-c4e2dca5.entry.js → p-e581d0b7.entry.js} +1 -1
  189. package/dist/lime-crm-building-blocks/{p-863f456c.entry.js → p-e6a85c26.entry.js} +1 -1
  190. package/dist/lime-crm-building-blocks/p-e8b2df7c.entry.js +1 -0
  191. package/dist/lime-crm-building-blocks/{p-6fe4c1cd.entry.js → p-ef890206.entry.js} +1 -1
  192. package/dist/lime-crm-building-blocks/{p-d7d21bad.entry.js → p-f6377fa5.entry.js} +1 -1
  193. package/dist/lime-crm-building-blocks/p-f9e9d18e.entry.js +1 -0
  194. package/dist/test/setup.js +1 -0
  195. package/dist/types/components/inline-image/inline-image.d.ts +32 -0
  196. package/dist/types/components/text-editor/text-editor.d.ts +17 -11
  197. package/dist/types/components.d.ts +93 -14
  198. package/dist/types/interface.d.ts +0 -5
  199. package/dist/types/util/file-contents-url.d.ts +9 -0
  200. package/package.json +12 -13
  201. package/dist/collection/components/text-editor/uploader/building-blocks-upload-handler.js +0 -112
  202. package/dist/lime-crm-building-blocks/p-29758303.entry.js +0 -1
  203. package/dist/lime-crm-building-blocks/p-2dab7d4b.entry.js +0 -1
  204. package/dist/lime-crm-building-blocks/p-43bdd66b.entry.js +0 -1
  205. package/dist/lime-crm-building-blocks/p-752742f8.entry.js +0 -1
  206. package/dist/lime-crm-building-blocks/p-B-WBKAaa.js +0 -1
  207. package/dist/lime-crm-building-blocks/p-BjXRsiQr.js +0 -1
  208. package/dist/lime-crm-building-blocks/p-Bkno2RtN.js +0 -1
  209. package/dist/lime-crm-building-blocks/p-D1RJ1y7s.js +0 -1
  210. package/dist/lime-crm-building-blocks/p-c891125e.entry.js +0 -1
  211. package/dist/lime-crm-building-blocks/p-cd7106f7.entry.js +0 -1
  212. package/dist/lime-crm-building-blocks/p-dbbc5ba7.entry.js +0 -1
  213. package/dist/lime-crm-building-blocks/p-ec1e079e.entry.js +0 -1
  214. package/dist/lime-crm-building-blocks/p-edeb359f.entry.js +0 -1
  215. package/dist/types/components/text-editor/uploader/building-blocks-upload-handler.d.ts +0 -62
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwHAn7LS.js';
2
- import { n as nt } from './index.esm-C-L5fkQs.js';
3
- import { i as isGroupShape } from './filter-group-logic-BMY_GEsX.js';
2
+ import { o as ot } from './index.esm-BjIhvFKX.js';
3
+ import { i as isGroupShape } from './filter-group-logic-DS1inQTh.js';
4
4
 
5
5
  const limeQueryFilterBuilderCss = () => `.expression-with-promotion{display:flex;flex-direction:column;gap:1rem}limel-button{width:100%}.query-options-section{margin-top:1rem}`;
6
6
 
@@ -11,7 +11,7 @@ const LimeQueryFilterBuilderComponent = class {
11
11
  this.handleAddFirstCondition = () => {
12
12
  const newExpression = {
13
13
  key: '',
14
- op: nt.EQUALS,
14
+ op: ot.EQUALS,
15
15
  exp: '',
16
16
  };
17
17
  this.expressionChange.emit(newExpression);
@@ -22,12 +22,12 @@ const LimeQueryFilterBuilderComponent = class {
22
22
  }
23
23
  // Wrap current expression in AND and add a new comparison
24
24
  const newExpression = {
25
- op: nt.AND,
25
+ op: ot.AND,
26
26
  exp: [
27
27
  this.expression,
28
28
  {
29
29
  key: '',
30
- op: nt.EQUALS,
30
+ op: ot.EQUALS,
31
31
  exp: '',
32
32
  },
33
33
  ],
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-DwHAn7LS.js';
2
- import { b as n, n as nt } from './index.esm-C-L5fkQs.js';
3
- import { a as operatorToCondition } from './filter-operators-Lw-ccmxQ.js';
2
+ import { n, o as ot } from './index.esm-BjIhvFKX.js';
3
+ import { a as operatorToCondition } from './filter-operators-CsZi5iCV.js';
4
4
  import { a as getNormalizedProperties } from './property-resolution-CQUZjrU4.js';
5
5
  import { g as getActualPropertyType } from './type-resolution-CVEd2QZ8.js';
6
- import { a as asGroupExpression } from './filter-group-logic-BMY_GEsX.js';
6
+ import { a as asGroupExpression } from './filter-group-logic-DS1inQTh.js';
7
7
 
8
8
  const limeQueryFilterComparisonCss = () => `:host(limebb-lime-query-filter-comparison){display:inline-block;max-width:25rem}`;
9
9
 
@@ -133,7 +133,7 @@ const LimeQueryFilterExpressionComponent = class {
133
133
  if (groupShaped) {
134
134
  return (h("limebb-lime-query-filter-group", Object.assign({}, props, { expression: groupShaped, onExpressionChange: this.handleExpressionChange })));
135
135
  }
136
- if (this.expression.op === nt.NOT) {
136
+ if (this.expression.op === ot.NOT) {
137
137
  return (h("limebb-lime-query-filter-not", Object.assign({}, props, { expression: this.expression, onExpressionChange: this.handleExpressionChange })));
138
138
  }
139
139
  }
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-DwHAn7LS.js';
2
- import { b as n } from './index.esm-C-L5fkQs.js';
3
- import { g as getIcon } from './limetype-D4ZaWZ-3.js';
2
+ import { n } from './index.esm-BjIhvFKX.js';
3
+ import { g as getIcon } from './limetype-BbMRN-SU.js';
4
4
  import { i as isNonNull } from './non-null-CkTg5UPD.js';
5
5
  import { b as baseIsEqual } from './_baseIsEqual-C-Mrg4RA.js';
6
6
  import { i as isObjectLike, a as isArray, b as baseGetTag } from './_MapCache-BgAfMcRA.js';
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwHAn7LS.js';
2
- import { L as Le } from './index.esm-C-L5fkQs.js';
3
- import { v as validateResponseFormatOnly } from './lime-query-validation-BwvluehW.js';
2
+ import { I as Ie } from './index.esm-BjIhvFKX.js';
3
+ import { v as validateResponseFormatOnly } from './lime-query-validation-CVV7mrLj.js';
4
4
  import './property-resolution-CQUZjrU4.js';
5
5
 
6
6
  /**
@@ -256,7 +256,7 @@ const LimeQueryResponseFormatBuilder = class {
256
256
  }
257
257
  };
258
258
  __decorate([
259
- Le()
259
+ Ie()
260
260
  ], LimeQueryResponseFormatBuilder.prototype, "limetypes", void 0);
261
261
  LimeQueryResponseFormatBuilder.style = limeQueryResponseFormatBuilderCss();
262
262
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-DwHAn7LS.js';
2
- import { G as Ge, R as Re, b as n } from './index.esm-C-L5fkQs.js';
2
+ import { W as We, L as Le, n } from './index.esm-BjIhvFKX.js';
3
3
  import { g as getPreviewType } from './extension-mapping-Bcm94u_z.js';
4
4
  import { n as negate } from './negate-ooVD-6_a.js';
5
5
 
@@ -127,10 +127,10 @@ const FileViewer = class {
127
127
  }
128
128
  };
129
129
  __decorate([
130
- Ge()
130
+ We()
131
131
  ], FileViewer.prototype, "limeobject", void 0);
132
132
  __decorate([
133
- Re()
133
+ Le()
134
134
  ], FileViewer.prototype, "limetype", void 0);
135
135
  FileViewer.style = fileViewerCss();
136
136
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent } from './index-DwHAn7LS.js';
2
- import { H, b as n } from './index.esm-C-L5fkQs.js';
2
+ import { U, n } from './index.esm-BjIhvFKX.js';
3
3
  import { H as HighlightFeedItemHandler } from './highlight-item.handler-BWMpG2bS.js';
4
4
 
5
5
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -34,7 +34,7 @@ let HighlightFeedItemCommand = class HighlightFeedItemCommand {
34
34
  }
35
35
  };
36
36
  HighlightFeedItemCommand = __decorate([
37
- H({
37
+ U({
38
38
  id: COMMAND_ID,
39
39
  })
40
40
  ], HighlightFeedItemCommand);
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwHAn7LS.js';
2
- import { b as n } from './index.esm-C-L5fkQs.js';
2
+ import { n } from './index.esm-BjIhvFKX.js';
3
3
  import { t as toString, c as castPath, a as toKey, i as isKey, g as get, b as baseGet, d as arrayMap } from './get-Cq4rshNg.js';
4
4
  import { e as isArrayLike, f as isIndex, h as isArguments, j as arrayPush, S as Stack, k as keys, l as isLength, d as baseUnary } from './_Uint8Array-CUI8uY-p.js';
5
5
  import { c as isObject, e as eq, a as isArray, S as Symbol } from './_MapCache-BgAfMcRA.js';
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, g as getElement, h } from './index-DwHAn7LS.js';
2
2
  import { f as findParentElement } from './dom-B95D7tDb.js';
3
- import { b as n } from './index.esm-C-L5fkQs.js';
3
+ import { n } from './index.esm-BjIhvFKX.js';
4
4
 
5
5
  const mentionCss = () => `:host(limebb-mention){display:inline}a{transition:background-color 0.2s ease;white-space:normal;overflow-wrap:break-word;word-break:break-word;padding:0 0.125rem;border-radius:0.25rem;text-decoration:none;color:rgb(var(--color-blue-default));background-color:rgb(var(--color-blue-default), 0.06)}a:hover{background-color:rgb(var(--color-blue-default), 0.16)}a:before,span:before{content:"@";opacity:0.7}`;
6
6
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-DwHAn7LS.js';
2
- import { b as n } from './index.esm-C-L5fkQs.js';
2
+ import { n } from './index.esm-BjIhvFKX.js';
3
3
 
4
4
  const notificationItemCss = () => `@charset "UTF-8";*{box-sizing:border-box}:host(limebb-notification-item){isolation:isolate;position:relative;box-sizing:border-box;display:flex;flex-direction:column;gap:0.25rem;margin-left:0.5rem;border-radius:0.75rem;border:1px solid rgb(var(--contrast-500))}:host(limebb-notification-item):before{content:"";display:block;position:absolute;left:-1rem;top:0.85rem;border-radius:50%;height:0.5rem;width:0.5rem;transition:background-color 0.2s ease, scale 0.2s cubic-bezier(0.82, 0.3, 0.14, 1.36);scale:var(--limebb-notification-item-unread-badge-scale, 0.6);background-color:var(--limebb-notification-item-unread-badge-color, transparent)}:host(limebb-notification-item:hover) .timestamp{color:rgb(var(--contrast-1100))}:host(limebb-notification-item:hover) .body-text{opacity:1}.header{display:flex;align-items:center;gap:0.25rem;min-height:2rem;padding:0 0 0 0.25rem;margin-bottom:0.25rem}.header:not(:has(.icon)){padding-left:0.75rem}.header:not(:has(.unpromoted-actions-menu)){padding-right:0.5rem}.caption,.timestamp{font-size:0.75rem}.caption{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0;flex-grow:1;font-weight:600;color:rgb(var(--contrast-900))}.timestamp{flex-shrink:0;margin-left:auto;transition:color 0.4s ease, opacity 0.2s ease;color:rgb(var(--contrast-900))}.headline{display:flex;gap:0.25rem;align-items:center}.content{display:flex;min-width:0;gap:0.5rem;padding:0 0.75rem 0.5rem 0.75rem}.heading{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:2.5rem;font-size:0.875rem;--markdown-hyperlink-color:var(--mdc-theme-primary);--markdown-hyperlink-color--hovered:rgb(var(--color-teal-light))}.body{display:flex;flex-direction:column;gap:0.5rem}.body-text{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:3;max-height:4.25rem;transition:opacity 0.2s ease;opacity:0.7}.icon{--icon-background-color:var(--limebb-feed-background-color);flex-shrink:0;width:1.5rem;padding:0.125rem}.author-avatar{border-radius:50%;width:2rem;height:2rem;object-fit:cover;margin-top:auto;margin-right:-0.25rem;margin-left:auto;box-shadow:0 0 0 1px rgb(var(--contrast-600))}.author{font-weight:bold;text-decoration:none;white-space:nowrap}a.author{position:relative;cursor:pointer;transition:color 0.2s ease;color:var(--mdc-theme-primary)}a.author:before{transition:opacity 0.2s ease, transform 0.3s ease-out;content:"";position:absolute;inset:auto 0 0 0;width:calc(100% - 0.5rem);margin:auto;height:0.125rem;border-radius:1rem;background-color:currentColor;opacity:0;transform:scale(0.6)}a.author:hover{color:rgb(var(--color-teal-light))}a.author:hover:before{opacity:0.3;transform:scale(1)}limel-chip-set{--button-shadow-normal:none;margin-left:-1rem;margin-bottom:-0.5rem}`;
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwHAn7LS.js';
2
- import { b as n } from './index.esm-C-L5fkQs.js';
2
+ import { n } from './index.esm-BjIhvFKX.js';
3
3
 
4
4
  /**
5
5
  * Processes a list of notifications by adding date headers and a "new items" indicator.
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, g as getElement, h } from './index-DwHAn7LS.js';
2
- import { g as getIcon } from './limetype-D4ZaWZ-3.js';
2
+ import { g as getIcon } from './limetype-BbMRN-SU.js';
3
3
  import { f as findParentElement } from './dom-B95D7tDb.js';
4
- import { M as Mt, b as n } from './index.esm-C-L5fkQs.js';
4
+ import { b as It, n } from './index.esm-BjIhvFKX.js';
5
5
 
6
- const logger = Mt('object-resolver');
6
+ const logger = It('object-resolver');
7
7
  /**
8
8
  * Build the navigation URL for a Lime CRM object.
9
9
  * @param limetype
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-DwHAn7LS.js';
2
- import { b as n } from './index.esm-C-L5fkQs.js';
2
+ import { n } from './index.esm-BjIhvFKX.js';
3
3
  import { g as getPercentageClass, n as normalizeValue } from './normalize-value-Cg1DC15C.js';
4
4
 
5
5
  const percentageVisualizerCss = () => `@charset "UTF-8";*,::before,::after{box-sizing:border-box}:host(limebb-percentage-visualizer){width:100%}limel-notched-outline:not([invalid]:not([invalid=false])) .limel-notched-outline--outlines{--limel-notched-outline-border-color:transparent}div[slot=content]:focus{outline:none}div[slot=content]:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}div[slot=content]{display:flex;align-items:center;gap:0.5rem;border-radius:inherit;background-color:transparent !important}:host(limebb-percentage-visualizer[invalid]:not([invalid=false])) div[slot=content]{border-color:rgb(var(--color-red-default))}:host(limebb-percentage-visualizer):has(label) div[slot=content]{min-height:2.5rem;padding:0 0.375rem 0 1rem}.percentage-text{flex-shrink:0;min-width:2.5rem}:host([range-min^="-"]) .percentage-text{min-width:3.75rem}.percent-sign{opacity:0.4}.zero-point{content:"";position:absolute;transform:translateX(-50%);left:var(--limebb-percentage-visualizer-zero-point-position);height:0.25rem;width:0.25rem;border-radius:50%;box-shadow:0 0 0 0.125rem var(--limebb-percentage-visualizer-zero-point-color, rgb(var(--contrast-1200), 0.3));background-color:var(--limebb-percentage-visualizer-zero-point-color, rgb(var(--contrast-200), 0.9))}.percentage-bar{overflow:hidden;flex-grow:1;position:relative;display:flex;align-items:center;height:0.5rem;min-width:2rem;border-radius:0.5rem;background-color:rgb(var(--contrast-800), 0.6)}.percentage-fill{transition:width 0.2s ease;position:absolute;margin:auto;left:var(--limebb-percentage-visualizer-zero-point-position, 0);rotate:var(--limebb-percentage-visualizer-rotate, 0deg);transform-origin:left center;width:var(--limebb-percentage-visualizer-width);height:100%;border-radius:0.5rem}:host(limebb-percentage-visualizer:focus),:host(limebb-percentage-visualizer:focus-visible),:host(limebb-percentage-visualizer:focus-within){--limel-h-l-grid-template-rows-transition-speed:0.46s;--limel-h-l-grid-template-rows:1fr}:host(limebb-percentage-visualizer){--limel-h-l-grid-template-rows-transition-speed:0.3s;--limel-h-l-grid-template-rows:0fr}:host(limebb-percentage-visualizer:focus) limel-helper-line,:host(limebb-percentage-visualizer:focus-visible) limel-helper-line,:host(limebb-percentage-visualizer:focus-within) limel-helper-line,:host(limebb-percentage-visualizer:hover) limel-helper-line{will-change:grid-template-rows}.percentage-fill{background-color:var(--percentage-visualizer-color, var(--limebb-percentage-visualizer-color, var(--mdc-theme-primary)))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-200or-larger-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-red-darker))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-200to100-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-red-dark))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-100to90-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-red-dark))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-90to80-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-red-dark))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-80to70-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-red-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-70to60-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-red-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-60to50-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-coral-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-50to40-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-coral-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-40to30-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-orange-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-30to20-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-orange-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-20to10-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-amber-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-10to0-negative) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-amber-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-0) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--contrast-800))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-0to10-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-yellow-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-10to20-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-yellow-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-20to30-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-grass-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-30to40-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-grass-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-40to50-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-lime-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-50to60-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-lime-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-60to70-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-teal-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-70to80-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-teal-default))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-80to90-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-teal-dark))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-90to100-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-teal-dark))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-100to200-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-teal-dark))}:host([range-min^="-"][display-percentage-colors]:not([display-percentage-colors=false]).has-value-200or-larger-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-teal-darker))}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-0) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--contrast-800))}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-0to10-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--0to10)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-10to20-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--10to20)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-20to30-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--20to30)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-30to40-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--30to40)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-40to50-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--40to50)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-50to60-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--50to60)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-60to70-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--60to70)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-70to80-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--70to80)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-80to90-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--80to90)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-90to100-positive) .percentage-fill{--limebb-percentage-visualizer-color:var(--color-percent--90to100)}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-100to200-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-teal-dark))}:host([display-percentage-colors]:not([display-percentage-colors=false]).has-value-200or-larger-positive) .percentage-fill{--limebb-percentage-visualizer-color:rgb(var(--color-teal-darker))}`;
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwHAn7LS.js';
2
- import { L as Le, b as n } from './index.esm-C-L5fkQs.js';
2
+ import { I as Ie, n } from './index.esm-BjIhvFKX.js';
3
3
  import { g as getPropertyFromPath, a as getNormalizedProperties } from './property-resolution-CQUZjrU4.js';
4
- import { g as getIcon } from './limetype-D4ZaWZ-3.js';
4
+ import { g as getIcon } from './limetype-BbMRN-SU.js';
5
5
 
6
6
  const propertySelectorCss = () => `:host(limebb-property-selector){display:block}limel-menu{display:block;width:100%}`;
7
7
 
@@ -249,7 +249,7 @@ const PropertySelector = class {
249
249
  static get delegatesFocus() { return true; }
250
250
  };
251
251
  __decorate([
252
- Le()
252
+ Ie()
253
253
  ], PropertySelector.prototype, "limetypes", void 0);
254
254
  PropertySelector.style = propertySelectorCss();
255
255
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwHAn7LS.js';
2
- import { O as Ot } from './index.esm-C-L5fkQs.js';
2
+ import { M as Mt } from './index.esm-BjIhvFKX.js';
3
3
 
4
4
  const ruleArgFilterEditorCss = () => `:host{display:block}`;
5
5
 
@@ -36,7 +36,7 @@ const RuleArgFilterEditor = class {
36
36
  }
37
37
  };
38
38
  __decorate([
39
- Ot('context')
39
+ Mt('context')
40
40
  ], RuleArgFilterEditor.prototype, "resolvedContext", void 0);
41
41
  RuleArgFilterEditor.style = ruleArgFilterEditorCss();
42
42
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwHAn7LS.js';
2
- import { T as Tt, b as n } from './index.esm-C-L5fkQs.js';
2
+ import { k as kt, n } from './index.esm-BjIhvFKX.js';
3
3
  import { L as LimeWebComponentTemplate } from './web-component-template-CAI6pXCH.js';
4
4
 
5
5
  const ruleChipPopoverCss = () => `:host{display:block}.popover{display:flex;flex-direction:column;min-width:24rem;background-color:rgb(var(--contrast-100));border:1px solid rgb(var(--contrast-700));border-radius:0.5rem;box-shadow:0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);overflow:hidden}.popover__header{--header-background-color:rgba(var(--contrast-300));padding-right:0.5rem;gap:1rem}.popover__header-actions{display:grid;grid-auto-flow:column;grid-gap:0.75rem;padding:0.25rem;align-items:center}.popover__delete-button{color:rgb(var(--contrast-1100))}.popover__body{padding:1rem}`;
@@ -73,7 +73,7 @@ const RuleChipPopover = class {
73
73
  }
74
74
  };
75
75
  __decorate([
76
- Tt('context')
76
+ kt('context')
77
77
  ], RuleChipPopover.prototype, "context", void 0);
78
78
  RuleChipPopover.style = ruleChipPopoverCss();
79
79
 
@@ -1,5 +1,5 @@
1
1
  import { h, r as registerInstance, c as createEvent, g as getElement } from './index-DwHAn7LS.js';
2
- import { O as Ot, b as n } from './index.esm-C-L5fkQs.js';
2
+ import { M as Mt, n } from './index.esm-BjIhvFKX.js';
3
3
 
4
4
  /**
5
5
  * Remove the node at `path`.
@@ -800,7 +800,7 @@ const RuleEditor = class {
800
800
  }; }
801
801
  };
802
802
  __decorate([
803
- Ot('context')
803
+ Mt('context')
804
804
  ], RuleEditor.prototype, "resolvedContext", void 0);
805
805
  const EMPTY_CONTEXT = Object.freeze({
806
806
  limetype: null,
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement } from './index-DwHAn7LS.js';
2
- import { b as n } from './index.esm-C-L5fkQs.js';
2
+ import { n } from './index.esm-BjIhvFKX.js';
3
3
 
4
4
  const ruleGateCss = () => `:host{display:block}:host([hidden]){display:none}`;
5
5
 
@@ -1,12 +1,13 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-DwHAn7LS.js';
2
- import { b as n, r as rt, c as it, L as Le } from './index.esm-C-L5fkQs.js';
2
+ import { n, s as st, c as ct, I as Ie, _ as _t } from './index.esm-BjIhvFKX.js';
3
3
  import { A as ARROW_DOWN, a as ESCAPE, b as ARROW_UP, E as ENTER, T as TAB } from './keycodes-CwMJvF_Z.js';
4
4
  import { o as overArg, U as Uint8Array, c as isPrototype, a as getTag, d as baseUnary, n as nodeUtil, i as isBuffer, S as Stack, g as getAllKeys } from './_Uint8Array-CUI8uY-p.js';
5
5
  import { d as defineProperty } from './_defineProperty-DZ483KPn.js';
6
6
  import { c as isObject, e as eq, S as Symbol, i as isObjectLike, a as isArray, r as root } from './_MapCache-BgAfMcRA.js';
7
7
  import { c as createRandomString } from './random-string-C2JP2nLw.js';
8
- import { h as hasHasManyRelation, b as hasLabel, c as getRelationProperty } from './limetype-D4ZaWZ-3.js';
8
+ import { h as hasHasManyRelation, b as hasLabel, c as getRelationProperty } from './limetype-BbMRN-SU.js';
9
9
  import { i as isNonNull } from './non-null-CkTg5UPD.js';
10
+ import { g as getFileContentsUrl } from './file-contents-url-Oswz9F3I.js';
10
11
  import { i as isSymbol } from './isSymbol-_IkM6xCs.js';
11
12
 
12
13
  /** Used to match a single whitespace character. */
@@ -944,7 +945,7 @@ class MentionsService {
944
945
  [coworkerProperty.name]: {
945
946
  count: {
946
947
  aggregate: {
947
- op: rt.Count,
948
+ op: st.Count,
948
949
  },
949
950
  },
950
951
  },
@@ -1020,7 +1021,7 @@ class FileUpload {
1020
1021
  };
1021
1022
  }
1022
1023
  async initialize() {
1023
- this.uploadService = await this.http.createFileUpload(it.Post, this.getUrl(), this.file);
1024
+ this.uploadService = await this.http.createFileUpload(ct.Post, this.getUrl(), this.file);
1024
1025
  if (this.progressCallback) {
1025
1026
  this.uploadService.onProgress = this.progressCallback;
1026
1027
  }
@@ -1043,117 +1044,6 @@ class FileUpload {
1043
1044
  }
1044
1045
  }
1045
1046
 
1046
- const UPLOAD_COMPLETED = 100;
1047
- class UploadHandler {
1048
- constructor(platform) {
1049
- this.platform = platform;
1050
- }
1051
- /**
1052
- * Handles image paste events in the text editor
1053
- *
1054
- * @param imageInserter - The image inserter with the file info
1055
- * @returns Promise resolving to the uploaded file wrapper or undefined if upload fails
1056
- */
1057
- async handleImagePasted(imageInserter) {
1058
- const fileInfo = imageInserter === null || imageInserter === void 0 ? void 0 : imageInserter.fileInfo;
1059
- if (!fileInfo) {
1060
- return;
1061
- }
1062
- if (!this.validateImageSize(fileInfo)) {
1063
- return;
1064
- }
1065
- imageInserter.insertThumbnail();
1066
- const uploadedFile = await this.createFileUpload(fileInfo);
1067
- const fileUrl = uploadedFile === null || uploadedFile === void 0 ? void 0 : uploadedFile.href;
1068
- const fileId = uploadedFile === null || uploadedFile === void 0 ? void 0 : uploadedFile.fileId;
1069
- if (fileUrl && fileId !== undefined) {
1070
- imageInserter.insertImage(fileUrl);
1071
- }
1072
- else {
1073
- imageInserter.insertFailedThumbnail();
1074
- }
1075
- return uploadedFile;
1076
- }
1077
- /**
1078
- * Extracts a file ID from a image source string.
1079
- *
1080
- * This function parses a URL to find a file ID that appears before
1081
- * '/contents/' at the end of the URL.
1082
- *
1083
- * @param src - The URL string to parse
1084
- * @returns The extracted file ID or undefined if no match is found
1085
- *
1086
- * @example
1087
- * // Returns 123
1088
- * parseFileIdFromSrc('/api/file/123/contents/');
1089
- *
1090
- * @example
1091
- * // Returns 456
1092
- * parseFileIdFromSrc('https://example.com/limepkg-email/api/v1/file/456/contents/');
1093
- *
1094
- * @example
1095
- * // Returns undefined
1096
- * parseFileIdFromSrc('/invalid/url/format/');
1097
- */
1098
- parseFileIdFromSrc(src) {
1099
- if (src) {
1100
- const regex = /\/(\d+)\/contents\/?$/;
1101
- const matches = regex.exec(src);
1102
- if (matches && matches[1]) {
1103
- return Number(matches[1]);
1104
- }
1105
- }
1106
- }
1107
- /**
1108
- * Validates that the image file size is within limits
1109
- *
1110
- * @param fileInfo - The file info to validate
1111
- * @returns True if file size is valid, false otherwise
1112
- */
1113
- validateImageSize(fileInfo) {
1114
- if (!fileInfo.fileContent) {
1115
- return false;
1116
- }
1117
- return fileInfo.fileContent.size <= MAX_FILE_SIZE;
1118
- }
1119
- /**
1120
- * Creates and uploads a file
1121
- *
1122
- * @param fileInfo - The file info to upload
1123
- * @returns Promise resolving to the uploaded file wrapper or undefined if upload fails
1124
- */
1125
- async createFileUpload(fileInfo) {
1126
- var _a;
1127
- if (!fileInfo.fileContent) {
1128
- return;
1129
- }
1130
- const imageFile = new FileUpload(fileInfo.fileContent, this.http);
1131
- await imageFile.initialize();
1132
- const imageUpload = Object.assign(Object.assign({}, fileInfo), { progress: 0, file: imageFile, state: 'added', fileId: undefined, href: undefined, id: fileInfo.id });
1133
- imageFile.onProgress = (progress) => {
1134
- if (imageUpload.progress === 0) {
1135
- imageUpload.state = 'uploading';
1136
- }
1137
- imageUpload.progress = progress;
1138
- if (progress === UPLOAD_COMPLETED) {
1139
- imageUpload.state = 'finalizing';
1140
- }
1141
- };
1142
- const response = await imageFile.upload();
1143
- imageUpload.fileId = response.id;
1144
- imageUpload.filename = response.filename;
1145
- imageUpload.extension = response.extension;
1146
- imageUpload.contentType = response.contentType;
1147
- imageUpload.size = response.size;
1148
- imageUpload.state = 'done';
1149
- imageUpload.href = (_a = response._links) === null || _a === void 0 ? void 0 : _a.contents.href;
1150
- return imageUpload;
1151
- }
1152
- get http() {
1153
- return this.platform.get(n.Http);
1154
- }
1155
- }
1156
-
1157
1047
  const textEditorCss = () => `:host(limebb-text-editor){display:block;width:100%;min-width:5rem;min-height:5rem;height:100%;max-height:var(--text-editor-max-height, calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)) - 4rem))}`;
1158
1048
 
1159
1049
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -1178,7 +1068,7 @@ const LimeBBTextEditor = class {
1178
1068
  constructor(hostRef) {
1179
1069
  registerInstance(this, hostRef);
1180
1070
  this.change = createEvent(this, "change");
1181
- this.metadataChange = createEvent(this, "metadataChange");
1071
+ this.imageUploadingChange = createEvent(this, "imageUploadingChange");
1182
1072
  /**
1183
1073
  * Set to true to enable mentioning a coworker or groups of coworkers.
1184
1074
  *
@@ -1247,15 +1137,19 @@ const LimeBBTextEditor = class {
1247
1137
  this.triggerMap = {};
1248
1138
  this.customElements = [];
1249
1139
  /**
1250
- * Enables image pasting in the editor.
1140
+ * Enables pasting images into the editor.
1251
1141
  * Default: `false`
1252
1142
  *
1143
+ * Existing inline images always render and round-trip regardless of this
1144
+ * setting; it only controls whether the user can paste and upload new ones.
1145
+ *
1253
1146
  * :::note
1254
- * This component handles the upload process.
1255
- * The consumer must process the uploaded images by listening to `metadataChange` event.
1147
+ * This component handles the upload process and embeds pasted images
1148
+ * directly in the editor content. Listen to `imageUploadingChange` to know
1149
+ * when an upload is in progress (e.g. to disable a save button).
1256
1150
  * :::
1257
1151
  */
1258
- this.allowInlineImages = false;
1152
+ this.allowPasteImages = false;
1259
1153
  this.items = [];
1260
1154
  this.highlightedItemIndex = 0;
1261
1155
  /**
@@ -1270,6 +1164,7 @@ const LimeBBTextEditor = class {
1270
1164
  this.registeredTriggerMap = this.triggerMap;
1271
1165
  this.registeredCustomElements = this.customElements;
1272
1166
  this.activeTrigger = undefined;
1167
+ this.pendingUploads = 0;
1273
1168
  this.handleMouseClick = (event) => {
1274
1169
  if (!this.textEditorPickerElement) {
1275
1170
  return;
@@ -1327,20 +1222,6 @@ const LimeBBTextEditor = class {
1327
1222
  this.handleEnterOrTabKey = (event) => {
1328
1223
  this.handleItemSelection(event);
1329
1224
  };
1330
- this.handleMetadataChange = (event) => {
1331
- event.stopPropagation();
1332
- const editorMetadata = event.detail;
1333
- const enhancedImages = this.getEnhancedImages(editorMetadata.images || []);
1334
- const enhancedMetadata = Object.assign(Object.assign({}, editorMetadata), { images: enhancedImages });
1335
- this.metadataChange.emit(enhancedMetadata);
1336
- };
1337
- this.handleImagePasted = (event) => {
1338
- event.stopPropagation();
1339
- if (!this.allowInlineImages) {
1340
- return;
1341
- }
1342
- this.uploadHandler.handleImagePasted(event.detail);
1343
- };
1344
1225
  this.handleTriggerStart = (event) => {
1345
1226
  event.stopPropagation();
1346
1227
  this.activeTrigger = event.detail.trigger;
@@ -1441,7 +1322,6 @@ const LimeBBTextEditor = class {
1441
1322
  document.addEventListener('visibilitychange', this.handleVisibilityChange);
1442
1323
  window.addEventListener('beforeunload', this.handleBeforeUnload);
1443
1324
  }
1444
- this.uploadHandler = new UploadHandler(this.platform);
1445
1325
  }
1446
1326
  componentWillLoad() {
1447
1327
  if (this.allowMentioning) {
@@ -1520,7 +1400,7 @@ const LimeBBTextEditor = class {
1520
1400
  }
1521
1401
  render() {
1522
1402
  return [
1523
- h("limel-text-editor", { key: '0f637527386d51f5b5c3e3a49b42acebafcba3fd', ref: (el) => (this.textEditor = el), tabindex: this.disabled ? -1 : 0, value: this.value, contentType: this.contentType, customElements: this.registeredCustomElements, "aria-disabled": this.disabled, language: this.language, triggers: this.registeredTriggers, onTriggerStart: this.handleTriggerStart, onTriggerStop: this.handleTriggerStop, onTriggerChange: this.handleTriggerChange, onImagePasted: this.handleImagePasted, onMetadataChange: this.handleMetadataChange, ui: this.ui, allowResize: this.allowResize, required: this.required, disabled: this.disabled, readonly: this.readonly, helperText: this.helperText, placeholder: this.placeholder, label: this.label, invalid: this.invalid }),
1403
+ h("limel-text-editor", { key: '7c5597fd2affe6f7a625c3fabfbaaef70ac41b00', ref: (el) => (this.textEditor = el), tabindex: this.disabled ? -1 : 0, value: this.value, contentType: this.contentType, customElements: this.registeredCustomElements, "aria-disabled": this.disabled, language: this.language, triggers: this.registeredTriggers, onTriggerStart: this.handleTriggerStart, onTriggerStop: this.handleTriggerStop, onTriggerChange: this.handleTriggerChange, inlineImages: this.inlineImages, ui: this.ui, allowResize: this.allowResize, required: this.required, disabled: this.disabled, readonly: this.readonly, helperText: this.helperText, placeholder: this.placeholder, label: this.label, invalid: this.invalid }),
1524
1404
  this.renderPicker(),
1525
1405
  ];
1526
1406
  }
@@ -1531,14 +1411,38 @@ const LimeBBTextEditor = class {
1531
1411
  return (h("limel-portal", { containerId: this.portalId, visible: this.isPickerOpen, openDirection: "top", inheritParentWidth: true, anchor: this.textEditor }, h("limebb-text-editor-picker", { ref: (el) => (this.textEditorPickerElement =
1532
1412
  el), items: getUpdatedItems(this.items, this.highlightedItemIndex), onItemSelected: this.handleItemSelection, emptyMessage: this.pickerMessage, isSearching: this.isSearching })));
1533
1413
  }
1534
- getEnhancedImages(images) {
1535
- return images.map((image) => {
1536
- let fileId;
1537
- if (image.state === 'success') {
1538
- fileId = this.uploadHandler.parseFileIdFromSrc(image.src);
1414
+ get inlineImages() {
1415
+ return Object.assign({ tagName: 'limebb-inline-image', getUrl: (id) => getFileContentsUrl(this.appName, id) }, (this.allowPasteImages && {
1416
+ upload: (file) => this.uploadImage(file),
1417
+ }));
1418
+ }
1419
+ async uploadImage(file) {
1420
+ if (this.pendingUploads === 0) {
1421
+ this.imageUploadingChange.emit(true);
1422
+ }
1423
+ this.pendingUploads++;
1424
+ try {
1425
+ return await this.uploadFile(file);
1426
+ }
1427
+ finally {
1428
+ this.pendingUploads--;
1429
+ if (this.pendingUploads === 0) {
1430
+ this.imageUploadingChange.emit(false);
1539
1431
  }
1540
- return fileId ? Object.assign(Object.assign({}, image), { fileId: fileId }) : image;
1541
- });
1432
+ }
1433
+ }
1434
+ async uploadFile(file) {
1435
+ if (file.size > MAX_FILE_SIZE) {
1436
+ throw new Error('Image exceeds the maximum file size');
1437
+ }
1438
+ const http = this.platform.get(n.Http);
1439
+ const upload = new FileUpload(file, http);
1440
+ await upload.initialize();
1441
+ const response = await upload.upload();
1442
+ if (!response.id) {
1443
+ throw new Error('File upload response is missing an id');
1444
+ }
1445
+ return String(response.id);
1542
1446
  }
1543
1447
  loadDraft() {
1544
1448
  if (!this.userDataService || !this.textEditorInnerId) {
@@ -1584,10 +1488,13 @@ const LimeBBTextEditor = class {
1584
1488
  }; }
1585
1489
  };
1586
1490
  __decorate([
1587
- Le({
1491
+ Ie({
1588
1492
  map: [getMentionLimetypes],
1589
1493
  })
1590
1494
  ], LimeBBTextEditor.prototype, "searchableLimetypes", void 0);
1495
+ __decorate([
1496
+ _t()
1497
+ ], LimeBBTextEditor.prototype, "appName", void 0);
1591
1498
  LimeBBTextEditor.style = textEditorCss();
1592
1499
 
1593
1500
  export { LimeBBTextEditor as limebb_text_editor };
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-DwHAn7LS.js';
2
- import { b as n } from './index.esm-C-L5fkQs.js';
2
+ import { n } from './index.esm-BjIhvFKX.js';
3
3
  import { g as getPercentageClass, n as normalizeValue } from './normalize-value-Cg1DC15C.js';
4
4
 
5
5
  const trendIndicatorCss = () => `@charset "UTF-8";*{box-sizing:border-box}:host(limebb-trend-indicator){position:relative;display:block;height:100%;width:100%}limel-notched-outline:not([invalid]:not([invalid=false])) .limel-notched-outline--outlines{--limel-notched-outline-border-color:transparent}div[slot=content]:focus{outline:none}div[slot=content]:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}div[slot=content]{display:flex;align-items:center;gap:0.5rem;border-radius:inherit;background-color:transparent !important}:host(limebb-trend-indicator):has(label) div[slot=content]{min-height:2.5rem;padding:0 0.375rem 0 1rem}:host(limebb-trend-indicator[former-value]) div[slot=content]{cursor:help}div[slot=content] span{flex-shrink:0}.icon{flex-shrink:0;display:flex;transition-property:color, background-color, transform;transition-duration:0.4s;transition-timing-function:ease;width:1.25rem;height:1.25rem;border-radius:50%;padding:0.12rem;color:rgb(var(--color-white));background-color:rgb(var(--color-gray-default), 0.5)}:host(.has-value-40to30-negative) .icon{color:rgb(var(--color-gray-darker))}:host(.has-value-30to20-negative) .icon{color:rgb(var(--color-gray-darker))}:host(.has-value-20to10-negative) .icon{color:rgb(var(--color-gray-darker))}:host(.has-value-10to0-negative) .icon{color:rgb(var(--color-gray-darker))}:host(.has-value-0to10-positive) .icon{color:rgb(var(--color-gray-dark))}:host(.has-value-10to20-positive) .icon{color:rgb(var(--color-gray-dark))}:host(.has-value-20to30-positive) .icon{color:rgb(var(--color-gray-dark))}:host(.has-value-30to40-positive) .icon{color:rgb(var(--color-gray-dark))}:host(.has-value-200or-larger-negative) .icon{background-color:rgb(var(--color-red-darker));transform:rotate(90deg)}:host(.has-value-200to100-negative) .icon{background-color:rgb(var(--color-red-dark));transform:rotate(90deg)}:host(.has-value-100to90-negative) .icon{background-color:rgb(var(--color-red-dark));transform:rotate(90deg)}:host(.has-value-90to80-negative) .icon{background-color:rgb(var(--color-red-dark));transform:rotate(81deg)}:host(.has-value-80to70-negative) .icon{background-color:rgb(var(--color-red-default));transform:rotate(72deg)}:host(.has-value-70to60-negative) .icon{background-color:rgb(var(--color-red-default));transform:rotate(63deg)}:host(.has-value-60to50-negative) .icon{background-color:rgb(var(--color-coral-default));transform:rotate(54deg)}:host(.has-value-50to40-negative) .icon{background-color:rgb(var(--color-coral-default));transform:rotate(45deg)}:host(.has-value-40to30-negative) .icon{background-color:rgb(var(--color-orange-default));transform:rotate(36deg)}:host(.has-value-30to20-negative) .icon{background-color:rgb(var(--color-orange-default));transform:rotate(27deg)}:host(.has-value-20to10-negative) .icon{background-color:rgb(var(--color-amber-default));transform:rotate(18deg)}:host(.has-value-10to0-negative) .icon{background-color:rgb(var(--color-amber-default));transform:rotate(9deg)}:host(.has-value-0) .icon{background-color:rgb(var(--color-gray-default));transform:rotate(0deg)}:host(.has-value-0to10-positive) .icon{background-color:rgb(var(--color-yellow-default));transform:rotate(-9deg)}:host(.has-value-10to20-positive) .icon{background-color:rgb(var(--color-yellow-default));transform:rotate(-18deg)}:host(.has-value-20to30-positive) .icon{background-color:rgb(var(--color-grass-default));transform:rotate(-27deg)}:host(.has-value-30to40-positive) .icon{background-color:rgb(var(--color-grass-default));transform:rotate(-36deg)}:host(.has-value-40to50-positive) .icon{background-color:rgb(var(--color-lime-default));transform:rotate(-45deg)}:host(.has-value-50to60-positive) .icon{background-color:rgb(var(--color-lime-default));transform:rotate(-54deg)}:host(.has-value-60to70-positive) .icon{background-color:rgb(var(--color-teal-default));transform:rotate(-63deg)}:host(.has-value-70to80-positive) .icon{background-color:rgb(var(--color-teal-default));transform:rotate(-72deg)}:host(.has-value-80to90-positive) .icon{background-color:rgb(var(--color-teal-dark));transform:rotate(-81deg)}:host(.has-value-90to100-positive) .icon{background-color:rgb(var(--color-teal-dark));transform:rotate(-90deg)}:host(.has-value-100to200-positive) .icon{background-color:rgb(var(--color-teal-dark));transform:rotate(-90deg)}:host(.has-value-200or-larger-positive) .icon{background-color:rgb(var(--color-teal-darker));transform:rotate(-90deg)}:host(.has-value-0) .icon{background-color:rgb(var(--color-gray-default), 0.5);transform:rotate(0deg)}:host(.has-value-0) .icon polyline{color:transparent}:host(.has-value-200or-larger-negative) .icon:after,:host(.has-value-200or-larger-negative) .icon:before,:host(.has-value-200to100-negative) .icon:after,:host(.has-value-200to100-negative) .icon:before,:host(.has-value-100to200-positive) .icon:after,:host(.has-value-100to200-positive) .icon:before,:host(.has-value-200or-larger-positive) .icon:after,:host(.has-value-200or-larger-positive) .icon:before{transition:border-color 0.6s ease;content:"";position:absolute;inset:0;margin:auto;border:1px solid transparent;border-radius:50%}:host(.has-value-200or-larger-negative) .icon:before,:host(.has-value-200to100-negative) .icon:before,:host(.has-value-100to200-positive) .icon:before,:host(.has-value-200or-larger-positive) .icon:before{transform:scale(1.2)}:host(.has-value-200or-larger-negative) .icon:after,:host(.has-value-200to100-negative) .icon:after,:host(.has-value-100to200-positive) .icon:after,:host(.has-value-200or-larger-positive) .icon:after{transform:scale(1.4);opacity:0.4}:host(.has-value-200to100-negative) .icon:before,:host(.has-value-200or-larger-negative) .icon:before{border-color:rgb(var(--color-red-dark))}:host(.has-value-200or-larger-negative) .icon:after{border-color:rgb(var(--color-red-darker))}:host(.has-value-100to200-positive) .icon:before,:host(.has-value-200or-larger-positive) .icon:before{border-color:rgb(var(--color-teal-dark))}:host(.has-value-200or-larger-positive) .icon:after{border-color:rgb(var(--color-teal-darker))}.no-value{transform:translateY(0.5rem)}.growth-unit{padding-left:0.5rem;opacity:0.5}:host(limebb-trend-indicator:focus),:host(limebb-trend-indicator:focus-visible),:host(limebb-trend-indicator:focus-within){--limel-h-l-grid-template-rows-transition-speed:0.46s;--limel-h-l-grid-template-rows:1fr}:host(limebb-trend-indicator){--limel-h-l-grid-template-rows-transition-speed:0.3s;--limel-h-l-grid-template-rows:0fr}:host(limebb-trend-indicator:focus) limel-helper-line,:host(limebb-trend-indicator:focus-visible) limel-helper-line,:host(limebb-trend-indicator:focus-within) limel-helper-line,:host(limebb-trend-indicator:hover) limel-helper-line{will-change:grid-template-rows}`;
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwHAn7LS.js';
2
- import { n as nt } from './index.esm-C-L5fkQs.js';
3
- import { o as operatorsToConditions, c as conditionToOperator, a as operatorToCondition } from './filter-operators-Lw-ccmxQ.js';
2
+ import { o as ot } from './index.esm-BjIhvFKX.js';
3
+ import { o as operatorsToConditions, c as conditionToOperator, a as operatorToCondition } from './filter-operators-CsZi5iCV.js';
4
4
 
5
5
  const valueComparisonEditorCss = () => `:host{display:block}.rule{display:grid;gap:0.5rem;grid-template-columns:repeat(auto-fit, minmax(12rem, 1fr))}.offset-builder{display:flex;gap:0.5rem;align-items:flex-end;grid-column:1/-1}.offset-builder .offset-count{max-width:6rem}`;
6
6
 
@@ -17,12 +17,12 @@ const TYPE_OPTIONS = [
17
17
  * lives in the shared `filter-operators` helpers.
18
18
  */
19
19
  const COMPARISON_OPERATORS = [
20
- nt.EQUALS,
21
- nt.NOT_EQUALS,
22
- nt.LESS,
23
- nt.LESS_OR_EQUAL,
24
- nt.GREATER,
25
- nt.GREATER_OR_EQUAL,
20
+ ot.EQUALS,
21
+ ot.NOT_EQUALS,
22
+ ot.LESS,
23
+ ot.LESS_OR_EQUAL,
24
+ ot.GREATER,
25
+ ot.GREATER_OR_EQUAL,
26
26
  ];
27
27
  const COMPARISON_CONDITIONS = operatorsToConditions(COMPARISON_OPERATORS);
28
28
  /**
@@ -169,7 +169,7 @@ const ValueComparisonEditor = class {
169
169
  }
170
170
  render() {
171
171
  const selectedType = TYPE_OPTIONS.find((option) => option.value === this.valueType);
172
- return (h("div", { key: 'ad1ae4fae21a213a2364a8b07db2ed157bf75419', class: "rule" }, h("limel-select", { key: 'e8dfb3d4499344b7f22b8cea5c40b59f4d15e21f', class: "type-select", label: "Compare as", options: TYPE_OPTIONS, value: selectedType, onChange: this.handleTypeChange }), h("limebb-filter-condition-picker", { key: '777d5eece2263568bf46c4a5348befeec0fe2035', class: "operator-select", platform: this.platform, propertyType: PROPERTY_TYPE_BY_VALUE_TYPE[this.valueType], conditions: COMPARISON_CONDITIONS, value: operatorToCondition(this.currentOperator), onChange: this.handleConditionChange }), this.renderOperand()));
172
+ return (h("div", { key: '46633e3dd6527173fdb2a54f50e7844175dbbbe5', class: "rule" }, h("limel-select", { key: '98f82c22a21840061c57a942c273b85416c539cb', class: "type-select", label: "Compare as", options: TYPE_OPTIONS, value: selectedType, onChange: this.handleTypeChange }), h("limebb-filter-condition-picker", { key: 'dac247e83cb2fac41b0e6fdb49f070d5c1b18081', class: "operator-select", platform: this.platform, propertyType: PROPERTY_TYPE_BY_VALUE_TYPE[this.valueType], conditions: COMPARISON_CONDITIONS, value: operatorToCondition(this.currentOperator), onChange: this.handleConditionChange }), this.renderOperand()));
173
173
  }
174
174
  renderOperand() {
175
175
  if (TEMPORAL_TYPES.has(this.valueType)) {
@@ -1,4 +1,4 @@
1
- import { i, a } from './index.esm-C-L5fkQs.js';
1
+ import { i, a } from './index.esm-BjIhvFKX.js';
2
2
 
3
3
  /**
4
4
  * Get the color for a limetype from its UI configuration