@limetech/lime-crm-building-blocks 1.98.0 → 1.100.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 (176) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/{index.esm-a894ac76.js → index.esm-d785eb6e.js} +2 -0
  3. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  4. package/dist/cjs/limebb-browser.cjs.entry.js +1 -1
  5. package/dist/cjs/limebb-chat-item_2.cjs.entry.js +1 -1
  6. package/dist/cjs/limebb-chat-list.cjs.entry.js +1 -1
  7. package/dist/cjs/limebb-component-config.cjs.entry.js +1 -1
  8. package/dist/cjs/limebb-component-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  11. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +1 -1
  12. package/dist/cjs/limebb-feed.cjs.entry.js +1 -1
  13. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +68 -179
  17. package/dist/cjs/limebb-lime-query-filter-and.cjs.entry.js +80 -0
  18. package/dist/cjs/{limebb-limetype-field_2.cjs.entry.js → limebb-lime-query-filter-builder_3.cjs.entry.js} +108 -6
  19. package/dist/cjs/limebb-lime-query-filter-comparison_5.cjs.entry.js +705 -0
  20. package/dist/cjs/limebb-lime-query-filter-expression.cjs.entry.js +45 -0
  21. package/dist/cjs/limebb-lime-query-filter-or.cjs.entry.js +68 -0
  22. package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +1 -1
  23. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  24. package/dist/cjs/limebb-loader.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-locale-picker.cjs.entry.js +2 -2
  26. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  27. package/dist/cjs/limebb-mention.cjs.entry.js +1 -1
  28. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  29. package/dist/cjs/limebb-notification-item.cjs.entry.js +2 -2
  30. package/dist/cjs/limebb-notification-list.cjs.entry.js +1 -1
  31. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  32. package/dist/cjs/limebb-text-editor.cjs.entry.js +3 -3
  33. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  34. package/dist/cjs/{limetype-1fe0207f.js → limetype-f2e4376e.js} +1 -1
  35. package/dist/cjs/loader.cjs.js +1 -1
  36. package/dist/collection/collection-manifest.json +2 -0
  37. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-and.js +41 -49
  38. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.css +5 -0
  39. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.js +225 -0
  40. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +77 -41
  41. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +35 -46
  42. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +130 -0
  43. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +269 -0
  44. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +19 -25
  45. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-or.js +34 -34
  46. package/dist/collection/components/lime-query-builder/lime-query-builder.js +11 -26
  47. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  48. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  49. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  50. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  51. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  52. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  53. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  54. package/dist/collection/components/text-editor/text-editor.js +1 -1
  55. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  56. package/dist/components/index.esm.js +2 -1
  57. package/dist/components/lime-query-filter-builder.js +129 -0
  58. package/dist/components/lime-query-filter-comparison.js +32 -45
  59. package/dist/components/lime-query-filter-expression.js +315 -0
  60. package/dist/components/limebb-lime-query-builder.js +73 -182
  61. package/dist/components/limebb-lime-query-filter-and.js +130 -1
  62. package/dist/components/limebb-lime-query-filter-builder.d.ts +11 -0
  63. package/dist/components/limebb-lime-query-filter-builder.js +6 -0
  64. package/dist/components/limebb-lime-query-filter-comparison.js +1 -1
  65. package/dist/components/limebb-lime-query-filter-expression.js +1 -1
  66. package/dist/components/limebb-lime-query-filter-group.d.ts +11 -0
  67. package/dist/components/limebb-lime-query-filter-group.js +6 -0
  68. package/dist/components/limebb-lime-query-filter-not.js +1 -1
  69. package/dist/components/limebb-lime-query-filter-or.js +118 -1
  70. package/dist/components/limebb-locale-picker.js +1 -1
  71. package/dist/components/limebb-mention-group-counter.js +2 -2
  72. package/dist/components/limebb-percentage-visualizer.js +2 -2
  73. package/dist/components/limebb-text-editor.js +1 -1
  74. package/dist/components/limebb-trend-indicator.js +1 -1
  75. package/dist/components/limetype-field.js +34 -2
  76. package/dist/components/live-docs-info.js +2 -2
  77. package/dist/components/notification-item.js +1 -1
  78. package/dist/components/summary-popover.js +3 -3
  79. package/dist/esm/{index.esm-d8fdeb18.js → index.esm-bb569663.js} +2 -1
  80. package/dist/esm/lime-crm-building-blocks.js +1 -1
  81. package/dist/esm/limebb-browser.entry.js +1 -1
  82. package/dist/esm/limebb-chat-item_2.entry.js +1 -1
  83. package/dist/esm/limebb-chat-list.entry.js +1 -1
  84. package/dist/esm/limebb-component-config.entry.js +1 -1
  85. package/dist/esm/limebb-component-picker.entry.js +1 -1
  86. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  87. package/dist/esm/limebb-date-picker.entry.js +1 -1
  88. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  89. package/dist/esm/limebb-feed.entry.js +1 -1
  90. package/dist/esm/limebb-info-tile.entry.js +1 -1
  91. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  92. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  93. package/dist/esm/limebb-lime-query-builder.entry.js +67 -178
  94. package/dist/esm/limebb-lime-query-filter-and.entry.js +76 -0
  95. package/dist/esm/{limebb-limetype-field_2.entry.js → limebb-lime-query-filter-builder_3.entry.js} +107 -6
  96. package/dist/esm/limebb-lime-query-filter-comparison_5.entry.js +697 -0
  97. package/dist/esm/limebb-lime-query-filter-expression.entry.js +41 -0
  98. package/dist/esm/limebb-lime-query-filter-or.entry.js +64 -0
  99. package/dist/esm/limebb-limeobject-file-viewer.entry.js +1 -1
  100. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  101. package/dist/esm/limebb-loader.entry.js +1 -1
  102. package/dist/esm/limebb-locale-picker.entry.js +2 -2
  103. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  104. package/dist/esm/limebb-mention.entry.js +1 -1
  105. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  106. package/dist/esm/limebb-notification-item.entry.js +2 -2
  107. package/dist/esm/limebb-notification-list.entry.js +1 -1
  108. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  109. package/dist/esm/limebb-text-editor.entry.js +3 -3
  110. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  111. package/dist/esm/{limetype-6e7552a7.js → limetype-c0e041f7.js} +1 -1
  112. package/dist/esm/loader.js +1 -1
  113. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  114. package/dist/lime-crm-building-blocks/{p-a1818969.entry.js → p-03af0e66.entry.js} +1 -1
  115. package/dist/lime-crm-building-blocks/{p-f402184f.entry.js → p-098ee6c1.entry.js} +1 -1
  116. package/dist/lime-crm-building-blocks/{p-42e52b50.entry.js → p-1be0eec7.entry.js} +1 -1
  117. package/dist/lime-crm-building-blocks/{p-2aa18c2b.entry.js → p-206575e4.entry.js} +1 -1
  118. package/dist/lime-crm-building-blocks/p-20bfca36.js +1 -0
  119. package/dist/lime-crm-building-blocks/p-24aeb928.entry.js +1 -0
  120. package/dist/lime-crm-building-blocks/{p-82d33d43.entry.js → p-2faaacbc.entry.js} +1 -1
  121. package/dist/lime-crm-building-blocks/{p-d4016891.entry.js → p-2fdcb868.entry.js} +1 -1
  122. package/dist/lime-crm-building-blocks/{p-f52125a0.entry.js → p-3122ea05.entry.js} +1 -1
  123. package/dist/lime-crm-building-blocks/{p-baf4e428.entry.js → p-3175883d.entry.js} +1 -1
  124. package/dist/lime-crm-building-blocks/{p-8c8b7115.entry.js → p-32534eb7.entry.js} +1 -1
  125. package/dist/lime-crm-building-blocks/{p-6c1146ca.entry.js → p-36ea13c0.entry.js} +1 -1
  126. package/dist/lime-crm-building-blocks/p-422f6d51.entry.js +1 -0
  127. package/dist/lime-crm-building-blocks/{p-1fba0ade.js → p-4838284a.js} +1 -1
  128. package/dist/lime-crm-building-blocks/{p-5e4ba110.entry.js → p-5464f0de.entry.js} +1 -1
  129. package/dist/lime-crm-building-blocks/{p-e9d23ef7.entry.js → p-569c86b5.entry.js} +1 -1
  130. package/dist/lime-crm-building-blocks/{p-90e1716a.entry.js → p-5dc574a3.entry.js} +1 -1
  131. package/dist/lime-crm-building-blocks/{p-00da9b24.entry.js → p-631ca5a5.entry.js} +1 -1
  132. package/dist/lime-crm-building-blocks/p-67dbaa4c.entry.js +1 -0
  133. package/dist/lime-crm-building-blocks/p-6d119dab.entry.js +1 -0
  134. package/dist/lime-crm-building-blocks/{p-beb0d164.entry.js → p-7271f47a.entry.js} +1 -1
  135. package/dist/lime-crm-building-blocks/{p-34357744.entry.js → p-9031f136.entry.js} +1 -1
  136. package/dist/lime-crm-building-blocks/p-91732502.entry.js +1 -0
  137. package/dist/lime-crm-building-blocks/{p-8c4eb49f.entry.js → p-93cadc1e.entry.js} +1 -1
  138. package/dist/lime-crm-building-blocks/{p-3932077b.entry.js → p-9cac4de2.entry.js} +1 -1
  139. package/dist/lime-crm-building-blocks/{p-79d4668a.entry.js → p-a200954f.entry.js} +1 -1
  140. package/dist/lime-crm-building-blocks/p-b198194a.entry.js +1 -0
  141. package/dist/lime-crm-building-blocks/{p-d89c44ad.entry.js → p-b9b954d9.entry.js} +1 -1
  142. package/dist/lime-crm-building-blocks/{p-3a620226.entry.js → p-cfa1a4ad.entry.js} +1 -1
  143. package/dist/lime-crm-building-blocks/{p-ef8a5266.entry.js → p-e8946134.entry.js} +1 -1
  144. package/dist/lime-crm-building-blocks/{p-9d9f25da.entry.js → p-eb81bceb.entry.js} +1 -1
  145. package/dist/lime-crm-building-blocks/{p-50d3d61a.entry.js → p-ee1b00b9.entry.js} +1 -1
  146. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-and.d.ts +5 -4
  147. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-builder.d.ts +50 -0
  148. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +6 -4
  149. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +10 -14
  150. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +60 -0
  151. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-not.d.ts +4 -4
  152. package/dist/types/components/lime-query-builder/expressions/lime-query-filter-or.d.ts +5 -4
  153. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +1 -0
  154. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +2 -1
  155. package/dist/types/components.d.ts +293 -65
  156. package/package.json +1 -1
  157. package/dist/cjs/isEqual-e77cce75.js +0 -37
  158. package/dist/cjs/lime-query.types-bcb63a22.js +0 -61
  159. package/dist/cjs/limebb-lime-query-filter-and_5.cjs.entry.js +0 -278
  160. package/dist/cjs/limebb-lime-query-value-input.cjs.entry.js +0 -239
  161. package/dist/cjs/limebb-property-selector.cjs.entry.js +0 -234
  162. package/dist/components/isEqual.js +0 -35
  163. package/dist/components/lime-query-filter-and.js +0 -408
  164. package/dist/esm/isEqual-57d0c223.js +0 -35
  165. package/dist/esm/lime-query.types-f72355e1.js +0 -59
  166. package/dist/esm/limebb-lime-query-filter-and_5.entry.js +0 -270
  167. package/dist/esm/limebb-lime-query-value-input.entry.js +0 -235
  168. package/dist/esm/limebb-property-selector.entry.js +0 -230
  169. package/dist/lime-crm-building-blocks/p-02c0cc04.entry.js +0 -1
  170. package/dist/lime-crm-building-blocks/p-0957b2a6.entry.js +0 -1
  171. package/dist/lime-crm-building-blocks/p-3b0a15ec.js +0 -1
  172. package/dist/lime-crm-building-blocks/p-5a6d2e7f.js +0 -1
  173. package/dist/lime-crm-building-blocks/p-60971d64.js +0 -1
  174. package/dist/lime-crm-building-blocks/p-70a28b93.entry.js +0 -1
  175. package/dist/lime-crm-building-blocks/p-96beaabc.entry.js +0 -1
  176. package/dist/lime-crm-building-blocks/p-f99c611d.entry.js +0 -1
@@ -1,5 +1,5 @@
1
1
  import { h, r as registerInstance, c as createEvent } from './index-96dd111f.js';
2
- import { c } from './index.esm-d8fdeb18.js';
2
+ import { c } from './index.esm-bb569663.js';
3
3
  import { g as get } from './get-3e42932b.js';
4
4
  import './_Map-aede53b6.js';
5
5
  import './isSymbol-1c5f65cc.js';
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-96dd111f.js';
2
- import { c } from './index.esm-d8fdeb18.js';
2
+ import { c } from './index.esm-bb569663.js';
3
3
 
4
4
  const componentPickerCss = ":host(limebb-component-picker){position:relative;display:flex;align-items:center}:host(limebb-component-picker) limel-picker{flex-grow:1;min-width:0}:host(limebb-component-picker) limel-icon-button{position:absolute;right:0.25rem}";
5
5
  const LimebbComponentPickerStyle0 = componentPickerCss;
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-96dd111f.js';
2
- import { c } from './index.esm-d8fdeb18.js';
2
+ import { c } from './index.esm-bb569663.js';
3
3
  import { i as isNonNull } from './non-null-5a66a269.js';
4
4
 
5
5
  var nub = function (xs, cmp) {
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-96dd111f.js';
2
- import { c } from './index.esm-d8fdeb18.js';
2
+ import { c } from './index.esm-bb569663.js';
3
3
 
4
4
  /**
5
5
  * Create a UTC date with the same values for year, month and day as the given
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement } from './index-96dd111f.js';
2
- import { c } from './index.esm-d8fdeb18.js';
2
+ import { c } from './index.esm-bb569663.js';
3
3
 
4
4
  const feedTimelineItemCss = "@charset \"UTF-8\";limel-action-bar{--action-bar-item-height:1.75rem;transition:opacity 0.2s ease;justify-content:flex-start;opacity:0.8}.action-bar{display:grid;transition:grid-template-rows var(--limebb-promoted-action-bar-grid-template-rows-transition-speed, 0.2s) cubic-bezier(1, 0.09, 0, 0.89) var(--limebb-promoted-action-bar-grid-template-rows-transition-delay, 0s);grid-template-rows:var(--limebb-promoted-action-bar-grid-template-rows, 1fr)}.action-bar-hider{overflow:hidden}limel-action-bar{transition:padding var(--limebb-promoted-action-bar-grid-template-rows-transition-speed) cubic-bezier(1, 0.09, 0, 0.89) var(--limebb-promoted-action-bar-grid-template-rows-transition-delay);padding-top:0;padding-bottom:0.75rem}:host(limebb-feed-timeline-item:hover) .action-bar,:host(limebb-feed-timeline-item:focus-within) .action-bar,:host(limebb-feed-timeline-item:focus-visible) .action-bar{--limebb-promoted-action-bar-grid-template-rows:1fr;will-change:grid-template-rows}:host(limebb-feed-timeline-item:hover) limel-action-bar,:host(limebb-feed-timeline-item:focus-within) limel-action-bar,:host(limebb-feed-timeline-item:focus-visible) limel-action-bar{will-change:opacity;opacity:1}:host(limebb-feed-timeline-item:hover),:host(limebb-feed-timeline-item:focus-within){--limebb-promoted-action-bar-grid-template-rows-transition-speed:0.46s;--limebb-promoted-action-bar-grid-template-rows-transition-delay:0.7s}:host(limebb-feed-timeline-item.is-tall) .markdown-container{margin-bottom:0.5rem}:host(limebb-feed-timeline-item.is-tall) .body-text{--body-text-min-height-set-by-code:10rem;min-height:calc(var(--body-text-min-height-set-by-code) + 0.25rem)}:host(limebb-feed-timeline-item.is-tall) .body-text:after{transition:opacity 0.6s ease;content:\"\";opacity:0.26;pointer-events:none;position:absolute;bottom:-0.125rem;right:-0.125rem;left:-0.125rem;height:2.5rem;background:radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0)) 0 100%, linear-gradient(to bottom, rgb(var(--limebb-feed-item-background-color), 0) 0%, rgb(var(--limebb-feed-item-background-color), 90%) 100%);background-repeat:no-repeat;background-size:100% 0.5rem, 100% 100%}:host(limebb-feed-timeline-item.is-tall.shows-less) .markdown-container{grid-template-rows:0fr}:host(limebb-feed-timeline-item.is-tall.shows-less) .body-text:after{opacity:1}:host(limebb-feed-timeline-item.is-tall.shows-more) .markdown-container{grid-template-rows:1fr}:host(limebb-feed-timeline-item.is-tall.shows-more) #show-more-button limel-icon{rotate:180deg}.markdown-container{position:relative;display:grid}.markdown-container:not(.opened){transition:grid-template-rows min(var(--body-text-height) * 1.2ms, 500ms) cubic-bezier(1, 0.09, 0, 0.89)}.body-text{display:block;overflow:hidden}#show-more-button{all:unset;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-normal);z-index:1;position:absolute;right:0;bottom:-0.6rem;left:0;margin:0 auto;display:flex;align-items:center;justify-content:center;border-radius:3rem;width:2rem;height:1rem}#show-more-button:hover,#show-more-button:focus,#show-more-button:focus-visible{will-change:color, background-color, box-shadow, transform}#show-more-button:hover,#show-more-button:focus-visible{transform:translate3d(0, -0.04rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}#show-more-button:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}#show-more-button:hover,#show-more-button:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}#show-more-button:focus{outline:none}#show-more-button:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}#show-more-button limel-icon{transition:rotate 0.2s ease 0.5s;color:var(--mdc-theme-primary);width:0.75rem}:host(limebb-feed-timeline-item[ui=standard]) .content{background-color:rgb(var(--limebb-feed-item-background-color))}:host(limebb-feed-timeline-item[ui=emphasized]) .content{border:1px dashed rgb(var(--contrast-800))}:host(limebb-feed-timeline-item[ui=minimal]) limel-markdown{--markdown-hyperlink-color:rgb(var(--contrast-900))}:host(limebb-feed-timeline-item[ui=minimal]) limel-markdown:hover{--markdown-hyperlink-color:rgb(var(--color-blue-default))}:host(limebb-feed-timeline-item[ui=minimal]) a.author{color:rgb(var(--contrast-900))}:host(limebb-feed-timeline-item[ui=minimal]) .header:hover a.author{color:rgb(var(--color-blue-default))}:host(limebb-feed-timeline-item[ui=minimal]) .icon{color:rgb(var(--contrast-900)) !important}:host(limebb-feed-timeline-item[ui=minimal]) .body-text{color:rgb(var(--contrast-900))}:host(limebb-feed-timeline-item[ui=minimal]) .body-text:hover{color:rgb(var(--contrast-1100))}:host(limebb-feed-timeline-item[ui=thread-message]){padding:0.25rem 0}:host(limebb-feed-timeline-item[ui=thread-message]) .content{border-radius:0;box-shadow:var(--button-shadow-normal);margin-bottom:0.25rem;background-color:var(--lime-elevated-surface-background-color)}:host(limebb-feed-timeline-item[ui=thread-message]) .header{padding-bottom:0.75rem;margin-bottom:0.25rem}:host(limebb-feed-timeline-item[ui=thread-message]) .header:before{content:\"\";position:absolute;top:calc(var(--limebb-feed-item-paddings) * -1 + 0.25rem);left:calc(var(--limebb-feed-item-paddings) * -1);right:calc(var(--limebb-feed-item-paddings) * -1);bottom:0;pointer-events:none;border-bottom:1px dashed rgb(var(--contrast-600))}:host(limebb-feed-timeline-item[ui=thread-message]) .thread-effects{transition:transform 0.2s ease;pointer-events:none;content:\"\";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;box-shadow:var(--button-shadow-normal);transform:translate3d(-0.225rem, -0.125rem, 0) rotate(0.5deg);background-color:rgb(var(--contrast-300))}:host(limebb-feed-timeline-item.is-tall[ui=thread-message]) .body-text{--body-text-min-height-set-by-code:3rem;min-height:calc(var(--body-text-min-height-set-by-code) + 0.25rem);max-height:35rem}:host(limebb-feed-timeline-item.is-tall[ui=thread-message].shows-more) .body-text{overflow-y:auto}:host(limebb-feed-timeline-item[ui=error-message]) .icon{color:rgb(var(--color-red-default))}:host(limebb-feed-timeline-item[ui=error-message]) .content{border:1px dashed rgb(var(--color-red-light));background-color:rgb(var(--color-red-lighter), 0.2)}.content{position:relative}.content:before,.content:after{content:\"\";position:absolute;top:1rem;bottom:1rem;left:-0.125rem;width:0.25rem;border-radius:0.25rem}.content:before{background-color:var(--color-code)}:host(limebb-feed-timeline-item[ui=emphasized]) .content:before,:host(limebb-feed-timeline-item[ui=emphasized]) .content:after{left:calc(-0.125rem - 0.5px)}:host(limebb-feed-timeline-item[ui=minimal]) .content:before{opacity:0.25}:host(limebb-feed-timeline-item[ui=minimal]) .content:after{opacity:0.5;background:repeating-linear-gradient(45deg, var(--color-code), var(--color-code) 0.5rem, transparent 0.5rem, transparent 1rem);background-size:0.25rem 100%;background-repeat:repeat-y;background-position:left;rotate:180deg}:host(limebb-feed-timeline-item[ui=thread-message]) .content:before{top:0.25rem;bottom:unset;height:1.75rem}*{box-sizing:border-box}:host(limebb-feed-timeline-item){--limebb-feed-item-paddings:0.75rem;display:flex;gap:0.75rem;position:relative;isolation:isolate;border-radius:0.5rem}:host(limebb-feed-timeline-item[is-bundled]:hover){--limebb-feed-item-timestamp-opacity-delay:0.5s}:host(limebb-feed-timeline-item[is-bundled]:hover) .timestamp{opacity:1}:host(limebb-feed-timeline-item[is-bundled]) .timestamp{opacity:0}:host(limebb-feed-timeline-item:hover),:host(limebb-feed-timeline-item:focus),:host(limebb-feed-timeline-item:focus-within){--limebb-feed-item-timeline-color:var(--mdc-theme-primary);--limebb-feed-item-timestamp-color:var(--mdc-theme-primary)}.left:before{transition:background-color 0.2s ease;content:\"\";position:absolute;z-index:-1;top:-0.25rem;bottom:-0.25rem;left:1rem;width:1px;border-radius:1rem;background-color:var(--limebb-feed-item-timeline-color, rgb(var(--contrast-600)))}.info{position:sticky;top:0.5rem;display:flex;flex-direction:column;align-items:center;gap:0.25rem}.right,.content{display:flex;flex-direction:column;flex-grow:1;min-width:0}.content{border-radius:1rem;gap:0.25rem;padding:var(--limebb-feed-item-paddings)}.header{position:relative;display:flex;gap:0.25rem;padding-bottom:0.25rem;margin-top:-0.25rem;color:rgb(var(--contrast-900));font-size:0.875rem}:host(.has-unpromoted-actions) .header{padding-right:2rem}.header limel-markdown{--markdown-hyperlink-color:var(--mdc-theme-primary);--markdown-hyperlink-color--hovered:rgb(var(--color-teal-light))}.heading{flex-grow:1;overflow:hidden;white-space:nowrap}.heading.expanded-heading{white-space:normal}button.expand-heading{all:unset;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:rgb(var(--color-blue-default));background-color:transparent;border-radius:1rem;padding:0 0.25rem 0.25rem 0.25rem;height:1rem;white-space:nowrap}button.expand-heading:hover,button.expand-heading:focus,button.expand-heading:focus-visible{will-change:color, background-color, box-shadow, transform}button.expand-heading:hover,button.expand-heading:focus-visible{transform:translate3d(0, 0.01rem, 0);color:rgb(var(--color-blue-default));background-color:var(--lime-elevated-surface-background-color)}button.expand-heading:hover{box-shadow:var(--button-shadow-hovered)}button.expand-heading:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}button.expand-heading:hover,button.expand-heading:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}button.collapse-heading{all:unset;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-normal);flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:1.5rem;width:1rem}button.collapse-heading:hover,button.collapse-heading:focus,button.collapse-heading:focus-visible{will-change:color, background-color, box-shadow, transform}button.collapse-heading:hover,button.collapse-heading:focus-visible{transform:translate3d(0, -0.04rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}button.collapse-heading:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}button.collapse-heading:hover,button.collapse-heading:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}button.collapse-heading:focus{outline:none}button.collapse-heading:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}button.collapse-heading limel-icon{width:0.75rem}.unpromoted-actions-menu{position:absolute;top:0;right:0;z-index:1}.timestamp{transition:color 0.4s ease, opacity 0.2s ease;transition-delay:var(--limebb-feed-item-timestamp-opacity-delay, 0s);display:flex;flex-direction:column;align-items:center;gap:0.25rem;font-size:0.75rem;text-align:center;color:var(--limebb-feed-item-timestamp-color, rgb(var(--contrast-800)));background-color:var(--limebb-feed-background-color);padding:0.125rem 0;width:2rem;border-radius:1rem}.timestamp:after{width:0.5rem;height:0.5rem;border-radius:50%;background-color:rgb(var(--color-red-default))}:host(.is-new) .timestamp:after{content:\"\"}.icon{--icon-background-color:var(--limebb-feed-background-color);width:2rem;padding:0.125rem}:host(.has-author-picture) .icon{width:1.5rem}img{cursor:help;border-radius:50%;width:2rem;height:2rem;object-fit:cover;background-color:var(--limebb-feed-background-color);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{--limel-chip-size:1.5rem;--button-shadow-normal:none;margin-left:-1rem;margin-bottom:-0.5rem}.helper-text{transition:opacity 0.2s ease;opacity:0.6;font-size:x-small;margin-top:0.5rem;margin-bottom:-0.25rem}:host(limebb-feed-timeline-item:hover) .helper-text,:host(limebb-feed-timeline-item:focus-within) .helper-text{opacity:1}.thumbnail-card-link{--card-border-radius:0.5rem;border-radius:var(--card-border-radius);text-decoration:none;display:inline-block}.thumbnail-card-link:focus{outline:none}.thumbnail-card-link:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.thumbnails-grid{display:block;width:100%;padding:0.25rem 0;columns:10rem;gap:clamp(0.25rem, 2vmin, 0.75rem)}.thumbnails-grid>.thumbnail-card-link{display:block;break-inside:avoid;margin-bottom:clamp(0.25rem, 2vmin, 0.75rem)}@supports (grid-template-rows: masonry){.thumbnails-grid{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}.thumbnails-grid>.thumbnail-card-link{display:block;width:auto;margin:0;break-inside:auto}}:host(limebb-feed-timeline-item[has-error]:not([has-error=false])) .left:before{background-color:rgb(var(--color-red-default));box-shadow:0 0 0 1px rgb(var(--color-red-default))}:host(limebb-feed-timeline-item[has-error]:not([has-error=false])) img,:host(limebb-feed-timeline-item[has-error]:not([has-error=false])) .icon{box-shadow:var(--shadow-error-state)}:host(limebb-feed-timeline-item[has-error]:not([has-error=false])) .helper-text{opacity:1;color:rgb(var(--color-red-default))}";
5
5
  const LimebbFeedTimelineItemStyle0 = feedTimelineItemCss;
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-96dd111f.js';
2
- import { c } from './index.esm-d8fdeb18.js';
2
+ import { c } from './index.esm-bb569663.js';
3
3
  import { H as HighlightFeedItemHandler } from './highlight-item.handler-dfbf11c0.js';
4
4
 
5
5
  function getRoundingMethod(method) {
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, h } from './index-96dd111f.js';
2
- import { c, Y as Ye, K as Ke, W as We } from './index.esm-d8fdeb18.js';
2
+ import { c, Y as Ye, K as Ke, W as We } from './index.esm-bb569663.js';
3
3
  import { i as isArrayLike, a as isBuffer, b as isTypedArray, c as isArguments, g as getTag, d as isPrototype, e as baseKeys } from './_getTag-d02a95fa.js';
4
4
  import { i as isArray } from './_Map-aede53b6.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-96dd111f.js';
2
- import { L as Le, c } from './index.esm-d8fdeb18.js';
2
+ import { L as Le, c } from './index.esm-bb569663.js';
3
3
 
4
4
  const kanbanGroupCss = "@charset \"UTF-8\";:host(limebb-feed-timeline-item.is-tall) .markdown-container{margin-bottom:0.5rem}:host(limebb-feed-timeline-item.is-tall) .body-text{--body-text-min-height-set-by-code:10rem;min-height:calc(var(--body-text-min-height-set-by-code) + 0.25rem)}:host(limebb-feed-timeline-item.is-tall) .body-text:after{transition:opacity 0.6s ease;content:\"\";opacity:0.26;pointer-events:none;position:absolute;bottom:-0.125rem;right:-0.125rem;left:-0.125rem;height:2.5rem;background:radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0)) 0 100%, linear-gradient(to bottom, rgb(var(--limebb-feed-item-background-color), 0) 0%, rgb(var(--limebb-feed-item-background-color), 90%) 100%);background-repeat:no-repeat;background-size:100% 0.5rem, 100% 100%}:host(limebb-feed-timeline-item.is-tall.shows-less) .markdown-container{grid-template-rows:0fr}:host(limebb-feed-timeline-item.is-tall.shows-less) .body-text:after{opacity:1}:host(limebb-feed-timeline-item.is-tall.shows-more) .markdown-container{grid-template-rows:1fr}:host(limebb-feed-timeline-item.is-tall.shows-more) #show-more-button limel-icon{rotate:180deg}.markdown-container{position:relative;display:grid}.markdown-container:not(.opened){transition:grid-template-rows min(var(--body-text-height) * 1.2ms, 500ms) cubic-bezier(1, 0.09, 0, 0.89)}.body-text{display:block;overflow:hidden}#show-more-button{all:unset;transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-normal);z-index:1;position:absolute;right:0;bottom:-0.6rem;left:0;margin:0 auto;display:flex;align-items:center;justify-content:center;border-radius:3rem;width:2rem;height:1rem}#show-more-button:hover,#show-more-button:focus,#show-more-button:focus-visible{will-change:color, background-color, box-shadow, transform}#show-more-button:hover,#show-more-button:focus-visible{transform:translate3d(0, -0.04rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}#show-more-button:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}#show-more-button:hover,#show-more-button:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}#show-more-button:focus{outline:none}#show-more-button:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}#show-more-button limel-icon{transition:rotate 0.2s ease 0.5s;color:var(--mdc-theme-primary);width:0.75rem}*{box-sizing:border-box}:host(limebb-kanban-group){position:relative;background-color:rgb(var(--limebb-kanban-group-primary-background));--header-top-right-left-border-radius:0.5rem;--limebb-kanban-group-secondary-background:var(--contrast-300);--limebb-kanban-group-primary-background:var(--contrast-600);scroll-snap-align:start;box-sizing:border-box;display:flex;flex-direction:column;border-radius:0.5rem}:host(limebb-kanban-group.secondary){border:1px dashed rgb(var(--contrast-700));background-color:rgb(var(--limebb-kanban-group-secondary-background))}:host(limebb-kanban-group.secondary) limebb-kanban-item{border:1px dashed rgb(var(--contrast-700))}:host(limebb-kanban-group.secondary) limel-header{background-color:rgb(var(--limebb-kanban-group-secondary-background))}limel-header{padding-right:0.5rem;background-color:rgb(var(--limebb-kanban-group-primary-background));width:22rem}limel-header:has(+.items:empty){width:10rem}limel-badge{--badge-background-color:rgb(var(--contrast-200))}limel-help{position:absolute;z-index:1;left:-0.25rem;top:-0.25rem}.group-summary{flex-shrink:0;padding:0 0.75rem 0.5rem 0.75rem;opacity:0.6;max-height:7rem;max-width:22rem;overflow-y:auto}.load-more-button,limel-spinner{align-self:center}.load-more-button{--icon-background-color:var(--lime-elevated-surface-background-color)}.items{--limel-overflow-mask-vertical:linear-gradient(\n to bottom,\n transparent 0%,\n black calc(0% + var(--limel-top-edge-fade-height, 1rem)),\n black calc(100% - var(--limel-bottom-edge-fade-height, 1rem)),\n transparent 100%\n );-webkit-mask-image:var(--limel-overflow-mask-vertical);mask-image:var(--limel-overflow-mask-vertical);padding-top:var(--limel-top-edge-fade-height, 1rem);padding-bottom:var(--limel-bottom-edge-fade-height, 1rem);--limel-top-edge-fade-height:0.5rem;--limel-bottom-edge-fade-height:2rem;flex-grow:1;display:flex;flex-direction:column;gap:0.75rem;padding:var(--limel-top-edge-fade-height) 0.5rem var(--limel-bottom-edge-fade-height) 0.5rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.items:not(:empty){width:22rem}limebb-kanban-item{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}limebb-kanban-item:hover,limebb-kanban-item:focus,limebb-kanban-item:focus-visible{will-change:color, background-color, box-shadow, transform}limebb-kanban-item:hover,limebb-kanban-item:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}limebb-kanban-item:hover{box-shadow:var(--button-shadow-hovered)}limebb-kanban-item:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}limebb-kanban-item:hover,limebb-kanban-item:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}limebb-kanban-item:focus{outline:none}limebb-kanban-item:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}limebb-kanban-item.is-selected{box-shadow:var(--shadow-focused-state)}limebb-kanban-item.is-selected:hover{box-shadow:var(--shadow-focused-state), var(--button-shadow-hovered)}";
5
5
  const LimebbKanbanGroupStyle0 = kanbanGroupCss;
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-96dd111f.js';
2
- import { c } from './index.esm-d8fdeb18.js';
2
+ import { c } from './index.esm-bb569663.js';
3
3
 
4
4
  const kanbanItemCss = "@charset \"UTF-8\";*,*:before,*:after{box-sizing:border-box}:host(limebb-kanban-item){position:relative;box-sizing:border-box;display:flex;flex-direction:column;border-radius:0.5rem}:host(limebb-kanban-item):before{content:\"\";display:block;position:absolute;top:1rem;bottom:1rem;right:0;transform:translateX(50%);width:0.25rem;border-radius:1rem;background-color:var(--limebb-kanban-item-color-code)}.content{padding-top:0.25rem;min-height:3rem}.header{display:flex;align-items:flex-start;gap:0.5rem;min-height:1.75rem;padding:0.25rem 0.5rem;border-radius:0.5rem 0.5rem 0 0;background-color:rgb(var(--contrast-300))}.header a{position:relative;cursor:pointer;transition:color 0.2s ease;color:var(--mdc-theme-primary);text-decoration:none}.header a: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)}.header a:hover{color:rgb(var(--color-teal-light))}.header a:hover:before{opacity:0.3;transform:scale(1)}.heading{--markdown-hyperlink-color:var(--mdc-theme-primary);--markdown-hyperlink-color--hovered:rgb(var(--color-teal-light))}.unpromoted-actions-menu{margin:-0.5rem -0.5rem -0.25rem auto}.body{--limel-top-edge-fade-height:0.5rem;--limel-bottom-edge-fade-height:1rem;display:block;padding-left:0.5rem;padding-right:0.5rem;margin-top:-0.5rem;color:rgb(var(--contrast-1100));max-height:12rem;--limel-overflow-mask-vertical:linear-gradient(\n to bottom,\n transparent 0%,\n black calc(0% + var(--limel-top-edge-fade-height, 1rem)),\n black calc(100% - var(--limel-bottom-edge-fade-height, 1rem)),\n transparent 100%\n );-webkit-mask-image:var(--limel-overflow-mask-vertical);mask-image:var(--limel-overflow-mask-vertical);padding-top:var(--limel-top-edge-fade-height, 1rem);padding-bottom:var(--limel-bottom-edge-fade-height, 1rem)}limel-chip-set{--limel-chip-size:1.5rem;display:block;margin-left:-0.5rem;margin-right:0.5rem;padding-bottom:0.5rem}.footer{position:relative;display:flex;align-items:center;gap:0.5rem;padding:0.25rem 0.25rem 0.125rem;margin:0 0.25rem;border-top:1px dashed rgb(var(--contrast-300))}.header limel-icon,.footer limel-icon{flex-shrink:0;width:1.25rem;height:1.25rem}.header .actions{margin:0.5rem 0.25rem 0}.header .actions:hover{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-normal)}.header .actions:hover:hover,.header .actions:hover:focus,.header .actions:hover:focus-visible{will-change:color, background-color, box-shadow, transform}.header .actions:hover:hover,.header .actions:hover:focus-visible{transform:translate3d(0, -0.04rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}.header .actions:hover:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}.header .actions:hover:hover,.header .actions:hover:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.footer img{border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px rgb(var(--contrast-800), 0.4);flex-shrink:0;width:1.25rem;height:1.25rem}.assignees{display:flex;align-items:center;gap:0.25rem}.assignees:has(>:nth-child(2)) span{display:none}.assignees:has(>:nth-child(2)) img,.assignees:has(>:nth-child(2)) limel-icon{margin-right:-0.5rem}.assignees:hover img,.assignees:hover limel-icon,.assignees:focus-within img,.assignees:focus-within limel-icon{margin-right:0rem}.assignees:hover .assignee:not(:hover):not(:focus-visible) img,.assignees:hover .assignee:not(:hover):not(:focus-visible) limel-icon,.assignees:focus-within .assignee:not(:hover):not(:focus-visible) img,.assignees:focus-within .assignee:not(:hover):not(:focus-visible) limel-icon{filter:grayscale(1);opacity:0.6}.assignee{transition:color var(--limel-clickable-transition-speed, 0.4s) ease, background-color var(--limel-clickable-transition-speed, 0.4s) ease, box-shadow var(--limel-clickable-transform-speed, 0.4s) ease, transform var(--limel-clickable-transform-speed, 0.4s) var(--limel-clickable-transform-timing-function, ease);cursor:pointer;color:var(--limel-theme-on-surface-color);background-color:transparent;display:flex;align-items:center;text-decoration:none;gap:0.25rem;margin-left:0;border-radius:1rem}.assignee:hover,.assignee:focus,.assignee:focus-visible{will-change:color, background-color, box-shadow, transform}.assignee:hover,.assignee:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}.assignee:hover{box-shadow:var(--button-shadow-hovered)}.assignee:active{--limel-clickable-transform-timing-function:cubic-bezier(\n 0.83,\n -0.15,\n 0.49,\n 1.16\n );transform:translate3d(0, 0.05rem, 0);box-shadow:var(--button-shadow-pressed)}.assignee:hover,.assignee:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.assignee:focus{outline:none}.assignee:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.assignee limel-icon,.assignee img{transition:margin 0.2s ease, opacity 0.2s ease, filter 0.2s ease}.assignee limel-icon{padding:0.125rem;box-shadow:0 0 0 1px rgb(var(--contrast-800), 0.4);background-color:rgb(var(--contrast-100))}.assignee span{font-size:0.75rem;color:rgb(var(--contrast-900));padding-right:0.5rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}";
5
5
  const LimebbKanbanItemStyle0 = kanbanItemCss;
@@ -1,64 +1,65 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-96dd111f.js';
2
- import { T as Te } from './index.esm-d8fdeb18.js';
3
- import { L as LIME_QUERY_OPERATORS } from './lime-query.types-f72355e1.js';
2
+ import { T as Te } from './index.esm-bb569663.js';
4
3
  import { g as getNormalizedProperties, a as getPropertyFromPath } from './property-resolution-fde2375e.js';
5
4
 
6
5
  /**
7
- * Convert UI filter representation to Lime Query filter format
8
- * @param filter
6
+ * TypeScript type definitions for Lime Query DSL
7
+ *
8
+ * These types represent the structure of Lime Query as defined in:
9
+ * - lime-core/lime_query/schema.py
10
+ * - lime-core/lime_filter/schema.py
9
11
  */
10
- function guiFilterToLimeQuery(filter) {
11
- if (filter.filter_type === '') {
12
- return undefined;
13
- }
14
- if (filter.filter_type === 'comparison') {
15
- return {
16
- key: filter.property,
17
- op: filter.operator,
18
- exp: filter.value,
19
- };
20
- }
21
- if (filter.filter_type === 'AND') {
22
- const expressions = filter.expressions
23
- .map(guiFilterToLimeQuery)
24
- .filter((f) => f !== undefined);
25
- if (expressions.length === 0) {
26
- return undefined;
27
- }
28
- if (expressions.length === 1) {
29
- return expressions[0];
30
- }
31
- return {
32
- op: 'AND',
33
- exp: expressions,
34
- };
35
- }
36
- if (filter.filter_type === 'OR') {
37
- const expressions = filter.expressions
38
- .map(guiFilterToLimeQuery)
39
- .filter((f) => f !== undefined);
40
- if (expressions.length === 0) {
41
- return undefined;
42
- }
43
- if (expressions.length === 1) {
44
- return expressions[0];
45
- }
46
- return {
47
- op: 'OR',
48
- exp: expressions,
49
- };
50
- }
51
- if (filter.filter_type === 'NOT') {
52
- const innerFilter = guiFilterToLimeQuery(filter.expression);
53
- if (innerFilter) {
54
- return {
55
- op: '!',
56
- exp: innerFilter,
57
- };
58
- }
59
- }
60
- return undefined;
61
- }
12
+ /**
13
+ * Available operators with display metadata
14
+ */
15
+ const LIME_QUERY_OPERATORS = [
16
+ { value: '=', label: 'Equals', icon: 'equals' },
17
+ { value: '!=', label: 'Not Equals', icon: 'not-equal' },
18
+ {
19
+ value: '>',
20
+ label: 'Greater Than',
21
+ icon: 'greater-than',
22
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
23
+ },
24
+ {
25
+ value: '>=',
26
+ label: 'Greater or Equal',
27
+ icon: 'greater-or-equal',
28
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
29
+ },
30
+ {
31
+ value: '<',
32
+ label: 'Less Than',
33
+ icon: 'less-than',
34
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
35
+ },
36
+ {
37
+ value: '<=',
38
+ label: 'Less or Equal',
39
+ icon: 'less-or-equal',
40
+ applicableTypes: ['integer', 'decimal', 'date', 'time'],
41
+ },
42
+ { value: 'IN', label: 'In List', icon: 'list' },
43
+ {
44
+ value: '?',
45
+ label: 'Contains',
46
+ icon: '-lime-filter-contain',
47
+ applicableTypes: ['string', 'text'],
48
+ },
49
+ {
50
+ value: '=?',
51
+ label: 'Begins With',
52
+ icon: '-lime-filter-begin',
53
+ applicableTypes: ['string', 'text'],
54
+ },
55
+ {
56
+ value: '=$',
57
+ label: 'Ends With',
58
+ icon: '-lime-filter-end',
59
+ applicableTypes: ['string', 'text'],
60
+ },
61
+ ];
62
+
62
63
  /**
63
64
  * Validate and convert a FilterExpression (comparison filter)
64
65
  * @param filter
@@ -160,103 +161,6 @@ function limeQueryToGuiFilter(filter) {
160
161
  // It's a FilterGroup
161
162
  return validateAndConvertFilterGroup(filter);
162
163
  }
163
- /**
164
- * Normalize filter for GUI mode by ensuring proper AND/OR wrapper structure.
165
- * GUI mode requires filters to be wrapped in AND([OR(...)]) so users have
166
- * access to add/remove buttons on the AND and OR components.
167
- *
168
- * This function ensures that:
169
- * - Single comparisons are wrapped in AND([OR([comparison])])
170
- * - OR groups are wrapped in AND([OR group])
171
- * - AND groups have their comparison children wrapped in OR
172
- * - Empty/undefined filters become AND([])
173
- *
174
- * When converting back to Lime Query JSON, limeQueryFilterToLimeQuery()
175
- * automatically unwraps single-item AND/OR groups.
176
- *
177
- * @param filter The filter expression from limeQueryToLimeQueryFilter
178
- * @returns Normalized filter suitable for GUI editing
179
- */
180
- function normalizeLimeQueryFilterForGui(filter) {
181
- // Empty AND is already correct for GUI
182
- if (filter.filter_type === 'AND' && filter.expressions.length === 0) {
183
- return filter;
184
- }
185
- // Single comparison needs wrapping
186
- if (filter.filter_type === 'comparison') {
187
- return {
188
- filter_type: 'AND',
189
- expressions: [
190
- {
191
- filter_type: 'OR',
192
- expressions: [filter],
193
- },
194
- ],
195
- };
196
- }
197
- // OR needs wrapping in AND
198
- if (filter.filter_type === 'OR') {
199
- return {
200
- filter_type: 'AND',
201
- expressions: [filter],
202
- };
203
- }
204
- // NOT needs wrapping
205
- if (filter.filter_type === 'NOT') {
206
- return {
207
- filter_type: 'AND',
208
- expressions: [
209
- {
210
- filter_type: 'OR',
211
- expressions: [filter],
212
- },
213
- ],
214
- };
215
- }
216
- // AND group - check if children need OR wrappers
217
- if (filter.filter_type === 'AND') {
218
- const normalizedChildren = filter.expressions.map((child) => {
219
- // If child is already OR, keep it
220
- if (child.filter_type === 'OR') {
221
- return child;
222
- }
223
- // If child is NOT, keep it (NOT can be a direct child of AND)
224
- if (child.filter_type === 'NOT') {
225
- return child;
226
- }
227
- // If child is comparison, wrap in OR
228
- if (child.filter_type === 'comparison') {
229
- return {
230
- filter_type: 'OR',
231
- expressions: [child],
232
- };
233
- }
234
- // If child is nested AND, recursively normalize and wrap in OR
235
- if (child.filter_type === 'AND') {
236
- return {
237
- filter_type: 'OR',
238
- expressions: [normalizeLimeQueryFilterForGui(child)],
239
- };
240
- }
241
- // Unknown filter type, keep as is
242
- return child;
243
- });
244
- return {
245
- filter_type: 'AND',
246
- expressions: normalizedChildren,
247
- };
248
- }
249
- // Fallback: wrap in AND/OR structure
250
- return {
251
- filter_type: 'AND',
252
- expressions: [
253
- {
254
- filter_type: 'OR',
255
- expressions: [filter],
256
- },
257
- ],
258
- };
259
- }
260
164
 
261
165
  /**
262
166
  * Dynamic filter values and placeholders that are valid in Lime Query
@@ -655,18 +559,11 @@ const LimeQueryBuilder = class {
655
559
  this.mode = 'gui';
656
560
  this.codeValue = '';
657
561
  this.limetype = '';
658
- this.filter = {
659
- filter_type: 'AND',
660
- expressions: [],
661
- };
662
562
  this.handleLimetypeChange = (event) => {
663
563
  event.stopPropagation();
664
564
  this.limetype = event.detail;
665
565
  // Reset filter when limetype changes
666
- this.filter = {
667
- filter_type: 'AND',
668
- expressions: [],
669
- };
566
+ this.filter = undefined;
670
567
  // Reset response format when limetype changes
671
568
  this.internalResponseFormat = {
672
569
  object: {
@@ -676,17 +573,9 @@ const LimeQueryBuilder = class {
676
573
  this.emitChange();
677
574
  };
678
575
  this.handleFilterChange = (event) => {
576
+ var _a;
679
577
  event.stopPropagation();
680
- // Convert missing expression back to empty AND to keep the UI consistent
681
- if (event.detail.filter_type === '') {
682
- this.filter = {
683
- filter_type: 'AND',
684
- expressions: [],
685
- };
686
- }
687
- else {
688
- this.filter = event.detail;
689
- }
578
+ this.filter = (_a = event.detail) !== null && _a !== void 0 ? _a : undefined;
690
579
  this.emitChange();
691
580
  };
692
581
  this.handleResponseFormatChange = (event) => {
@@ -712,7 +601,7 @@ const LimeQueryBuilder = class {
712
601
  }
713
602
  // Update internal state from parsed query
714
603
  this.limetype = parsed.limetype || '';
715
- this.filter = normalizeLimeQueryFilterForGui(limeQueryToGuiFilter(parsed.filter));
604
+ this.filter = parsed.filter;
716
605
  this.internalResponseFormat = parsed.responseFormat;
717
606
  this.limit = parsed.limit;
718
607
  this.mode = 'gui';
@@ -753,7 +642,7 @@ const LimeQueryBuilder = class {
753
642
  }
754
643
  if (this.value) {
755
644
  this.limetype = this.value.limetype || '';
756
- this.filter = normalizeLimeQueryFilterForGui(limeQueryToGuiFilter(this.value.filter));
645
+ this.filter = this.value.filter;
757
646
  this.internalResponseFormat = this.value.responseFormat;
758
647
  this.limit = this.value.limit;
759
648
  }
@@ -768,7 +657,7 @@ const LimeQueryBuilder = class {
768
657
  render() {
769
658
  const guiSupported = this.checkGuiSupport();
770
659
  const showCodeMode = !this.guiModeEnabled || this.mode === 'code';
771
- return (h("div", { key: '96d1a933f699404c3806af3742e9ad30d53562aa', class: "lime-query-builder" }, this.renderLabel(), this.renderModeControls(guiSupported), showCodeMode
660
+ return (h("div", { key: '0b4d2bb5b4d503a775d8d3215e1e4c74fdb1eceb', class: "lime-query-builder" }, this.renderLabel(), this.renderModeControls(guiSupported), showCodeMode
772
661
  ? this.renderCodeMode(guiSupported)
773
662
  : this.renderGuiMode()));
774
663
  }
@@ -789,7 +678,7 @@ const LimeQueryBuilder = class {
789
678
  const limeQuery = {
790
679
  limetype: this.limetype,
791
680
  responseFormat: responseFormat,
792
- filter: guiFilterToLimeQuery(this.filter),
681
+ filter: this.filter,
793
682
  };
794
683
  if (this.limit !== undefined && this.limit > 0) {
795
684
  limeQuery.limit = this.limit;
@@ -810,7 +699,7 @@ const LimeQueryBuilder = class {
810
699
  const limeQuery = {
811
700
  limetype: this.limetype,
812
701
  responseFormat: responseFormat,
813
- filter: guiFilterToLimeQuery(this.filter),
702
+ filter: this.filter,
814
703
  };
815
704
  if (this.limit !== undefined && this.limit > 0) {
816
705
  limeQuery.limit = this.limit;
@@ -861,7 +750,7 @@ const LimeQueryBuilder = class {
861
750
  queryToCheck = {
862
751
  limetype: this.limetype,
863
752
  responseFormat: responseFormat,
864
- filter: guiFilterToLimeQuery(this.filter),
753
+ filter: this.filter,
865
754
  };
866
755
  if (this.limit !== undefined && this.limit > 0) {
867
756
  queryToCheck.limit = this.limit;
@@ -893,7 +782,7 @@ const LimeQueryBuilder = class {
893
782
  if (!this.limetype) {
894
783
  return;
895
784
  }
896
- return (h("div", { class: "filter-section" }, h("h4", { class: "section-label" }, "Filter Conditions"), h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.filter, onExpressionChange: this.handleFilterChange })));
785
+ return (h("div", { class: "filter-section" }, h("h4", { class: "section-label" }, "Filter Conditions"), h("limebb-lime-query-filter-builder", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: this.filter, onExpressionChange: this.handleFilterChange })));
897
786
  }
898
787
  renderQueryOptionsSection() {
899
788
  var _a;
@@ -0,0 +1,76 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-96dd111f.js';
2
+ import { Z as Zt } from './index.esm-bb569663.js';
3
+
4
+ const limeQueryFilterAndCss = "@charset \"UTF-8\";.expression{display:flex;flex-direction:column;margin-bottom:1rem;gap:0;background-color:rgb(var(--contrast-100));border:1px solid rgb(var(--contrast-500));border-radius:0.75rem}.expression>ul{margin-top:0;margin-right:1rem;margin-bottom:1rem;margin-left:1rem;padding-left:1rem;list-style:disc}.expression>ul li{margin-top:1rem}.expression>ul li.add-button{list-style:none}";
5
+ const LimebbLimeQueryFilterAndStyle0 = limeQueryFilterAndCss;
6
+
7
+ const LimeQueryFilterAndComponent = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.expressionChange = createEvent(this, "expressionChange", 7);
11
+ this.renderChildExpression = (expression, childIndex) => (h("li", null, h("limebb-lime-query-filter-expression", { platform: this.platform, context: this.context, limetype: this.limetype, activeLimetype: this.activeLimetype, expression: expression, onExpressionChange: this.handleExpressionChange(childIndex) })));
12
+ this.handleAddChildExpression = () => {
13
+ const newOrGroup = {
14
+ op: Zt.OR,
15
+ exp: [
16
+ {
17
+ key: '',
18
+ op: Zt.EQUALS,
19
+ exp: '',
20
+ },
21
+ ],
22
+ };
23
+ const updatedExpressionsList = [
24
+ ...this.expression.exp,
25
+ newOrGroup,
26
+ ];
27
+ this.expressionChange.emit({
28
+ op: Zt.AND,
29
+ exp: updatedExpressionsList,
30
+ });
31
+ };
32
+ this.handleExpressionChange = (updatedChildIndex) => (event) => {
33
+ var _a;
34
+ event.stopPropagation();
35
+ const updatedExpression = (_a = event.detail) !== null && _a !== void 0 ? _a : undefined;
36
+ const expressions = [...this.expression.exp];
37
+ if (updatedExpression === undefined) {
38
+ expressions.splice(updatedChildIndex, 1);
39
+ }
40
+ else {
41
+ expressions[updatedChildIndex] = updatedExpression;
42
+ }
43
+ if (expressions.length === 0) {
44
+ this.expressionChange.emit(undefined);
45
+ return;
46
+ }
47
+ if (expressions.length === 1) {
48
+ this.expressionChange.emit(expressions[0]);
49
+ return;
50
+ }
51
+ this.expressionChange.emit({
52
+ op: Zt.AND,
53
+ exp: expressions,
54
+ });
55
+ };
56
+ }
57
+ render() {
58
+ let subheading = 'All of these conditions are true';
59
+ if (this.expression.exp.length <= 1) {
60
+ subheading = '';
61
+ }
62
+ return (h("div", { key: 'f07c53808d6be8d846f5a45223abb5c94b1a0b16', class: "expression" }, (this.label || subheading) && (h("limel-header", { key: '229f0d58ff15743fbb12da53ad9c593bfba801d1', heading: this.label, subheading: subheading })), h("ul", { key: '2600c2bee2b958036ea606141bcfcac0e277114c' }, this.expression.exp.map(this.renderChildExpression), h("li", { key: '6395e605ee8f454a820ac73601da89b19686187a', class: "add-button" }, this.renderAddChildExpression()))));
63
+ }
64
+ renderAddChildExpression() {
65
+ return (h("limel-button", { label: this.getAddButtonLabel(), icon: "plus_math", onClick: this.handleAddChildExpression }));
66
+ }
67
+ getAddButtonLabel() {
68
+ if (this.expression.exp.length === 0) {
69
+ return 'Add a condition';
70
+ }
71
+ return 'Add another condition';
72
+ }
73
+ };
74
+ LimeQueryFilterAndComponent.style = LimebbLimeQueryFilterAndStyle0;
75
+
76
+ export { LimeQueryFilterAndComponent as limebb_lime_query_filter_and };