@limetech/lime-crm-building-blocks 1.38.2 → 1.39.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 (42) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  3. package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +15 -3
  4. package/dist/cjs/limebb-feed.cjs.entry.js +5 -1
  5. package/dist/cjs/limebb-icon-picker.cjs.entry.js +35 -0
  6. package/dist/cjs/limebb-kanban-column.cjs.entry.js +24 -5
  7. package/dist/cjs/limebb-kanban.cjs.entry.js +6 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/components/feed/feed-item/feed-timeline-item.css +21 -0
  10. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +37 -3
  11. package/dist/collection/components/feed/feed.js +25 -1
  12. package/dist/collection/components/kanban/kanban-column/kanban-column.js +63 -5
  13. package/dist/collection/components/kanban/kanban.js +24 -1
  14. package/dist/components/feed-timeline-item.js +16 -4
  15. package/dist/components/kanban-column.js +28 -7
  16. package/dist/components/limebb-feed.js +5 -1
  17. package/dist/components/limebb-icon-picker.js +35 -0
  18. package/dist/components/limebb-kanban.js +7 -1
  19. package/dist/esm/lime-crm-building-blocks.js +1 -1
  20. package/dist/esm/limebb-feed-timeline-item.entry.js +16 -4
  21. package/dist/esm/limebb-feed.entry.js +5 -1
  22. package/dist/esm/limebb-icon-picker.entry.js +35 -0
  23. package/dist/esm/limebb-kanban-column.entry.js +25 -6
  24. package/dist/esm/limebb-kanban.entry.js +6 -1
  25. package/dist/esm/loader.js +1 -1
  26. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  27. package/dist/lime-crm-building-blocks/p-186bb066.entry.js +1 -0
  28. package/dist/lime-crm-building-blocks/p-2ccd3c25.entry.js +1 -0
  29. package/dist/lime-crm-building-blocks/{p-de636ef5.entry.js → p-80c5ab71.entry.js} +1 -1
  30. package/dist/lime-crm-building-blocks/p-937e86f1.entry.js +1 -0
  31. package/dist/lime-crm-building-blocks/p-f00025ae.entry.js +1 -0
  32. package/dist/types/components/feed/feed-item/feed-item.types.d.ts +6 -0
  33. package/dist/types/components/feed/feed-item/feed-timeline-item.d.ts +6 -0
  34. package/dist/types/components/feed/feed.d.ts +6 -0
  35. package/dist/types/components/kanban/kanban-column/kanban-column.d.ts +15 -0
  36. package/dist/types/components/kanban/kanban.d.ts +5 -0
  37. package/dist/types/components.d.ts +36 -0
  38. package/package.json +6 -6
  39. package/dist/lime-crm-building-blocks/p-5dd09873.entry.js +0 -1
  40. package/dist/lime-crm-building-blocks/p-bb2b82e4.entry.js +0 -1
  41. package/dist/lime-crm-building-blocks/p-bd200010.entry.js +0 -1
  42. package/dist/lime-crm-building-blocks/p-c7278226.entry.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## [1.39.0](https://github.com/Lundalogik/lime-crm-building-blocks/compare/v1.38.3...v1.39.0) (2024-08-22)
2
+
3
+
4
+ ### Features
5
+
6
+
7
+ * **feed:** make items optionally clickable ([d01d5d5](https://github.com/Lundalogik/lime-crm-building-blocks/commit/d01d5d54259e7c6d575df912ab3a8bcb6655869b))
8
+
9
+ ### [1.38.3](https://github.com/Lundalogik/lime-crm-building-blocks/compare/v1.38.2...v1.38.3) (2024-08-15)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+
15
+ * **kanban:** don't render all items in all groups ([51f3056](https://github.com/Lundalogik/lime-crm-building-blocks/commit/51f3056718b8e62c36acf066902e353b55a9477d))
16
+ * **kanban:** use correct tag to render the kanban items in columns ([20b066b](https://github.com/Lundalogik/lime-crm-building-blocks/commit/20b066b49e2565875090e770bf09490448244d53))
17
+
1
18
  ### [1.38.2](https://github.com/Lundalogik/lime-crm-building-blocks/compare/v1.38.1...v1.38.2) (2024-08-13)
2
19
 
3
20
 
@@ -15,5 +15,5 @@ const patchBrowser = () => {
15
15
  };
16
16
 
17
17
  patchBrowser().then(options => {
18
- return index.bootstrapLazy([["limebb-kanban.cjs",[[1,"limebb-kanban",{"platform":[16],"context":[16],"items":[16],"groupBy":[513,"group-by"],"groups":[16]}]]],["limebb-date-range.cjs",[[1,"limebb-date-range",{"platform":[16],"context":[16],"startTime":[16],"endTime":[16],"startTimeLabel":[1,"start-time-label"],"endTimeLabel":[1,"end-time-label"],"language":[1],"timeFormat":[1,"time-format"],"type":[1]}]]],["limebb-feed.cjs",[[1,"limebb-feed",{"platform":[16],"context":[16],"items":[16],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"minutesOfProximity":[2,"minutes-of-proximity"],"totalCount":[2,"total-count"],"lastVisitedTimestamp":[1,"last-visited-timestamp"]}]]],["limebb-browser.cjs",[[17,"limebb-browser",{"platform":[16],"context":[16],"items":[16],"layout":[1],"filter":[32]}]]],["limebb-currency-picker.cjs",[[1,"limebb-currency-picker",{"label":[513],"platform":[16],"currencies":[16],"helperText":[513,"helper-text"],"required":[516],"readonly":[516],"invalid":[516],"disabled":[516],"value":[16]}]]],["limebb-dashboard-widget.cjs",[[1,"limebb-dashboard-widget",{"heading":[513],"subheading":[513],"supportingText":[513,"supporting-text"],"icon":[513]}]]],["limebb-icon-picker.cjs",[[1,"limebb-icon-picker",{"value":[1],"required":[4],"readonly":[4],"invalid":[4],"disabled":[4],"label":[1],"helperText":[1,"helper-text"]}]]],["limebb-info-tile.cjs",[[1,"limebb-info-tile",{"platform":[16],"context":[16],"filterId":[1,"filter-id"],"disabled":[4],"icon":[1],"label":[1],"prefix":[1],"suffix":[1],"propertyName":[1,"property-name"],"aggregateOperator":[1,"aggregate-operator"],"filters":[32],"value":[32],"loading":[32],"error":[32]}]]],["limebb-limeobject-file-viewer.cjs",[[1,"limebb-limeobject-file-viewer",{"platform":[16],"context":[16],"property":[1],"fileTypes":[16],"limeobject":[32],"limetype":[32]}]]],["limebb-locale-picker.cjs",[[1,"limebb-locale-picker",{"platform":[16],"context":[16],"value":[1],"required":[4],"disabled":[4],"label":[1],"helperText":[1,"helper-text"],"readonly":[4],"multipleChoice":[4,"multiple-choice"],"allLanguages":[32]}]]],["limebb-navigation-button.cjs",[[17,"limebb-navigation-button",{"href":[513],"tooltipLabel":[513,"tooltip-label"],"tooltipHelperLabel":[513,"tooltip-helper-label"],"type":[513]}]]],["limebb-kanban-item.cjs",[[1,"limebb-kanban-item",{"platform":[16],"context":[16],"item":[16]}]]],["limebb-kanban-column.cjs",[[1,"limebb-kanban-column",{"platform":[16],"context":[16],"columnHeading":[1,"column-heading"],"items":[16],"loading":[4]}]]],["limebb-date-picker.cjs",[[1,"limebb-date-picker",{"platform":[16],"context":[16],"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"placeholder":[513],"helperText":[513,"helper-text"],"required":[516],"value":[1],"type":[513]}]]],["limebb-feed-timeline-item.cjs",[[1,"limebb-feed-timeline-item",{"platform":[16],"context":[16],"item":[16],"ui":[513],"isBundled":[516,"is-bundled"],"headingCanExpand":[32],"isHeadingExpanded":[32],"showMore":[32],"isTall":[32]}]]]], options);
18
+ return index.bootstrapLazy([["limebb-kanban.cjs",[[1,"limebb-kanban",{"platform":[16],"context":[16],"items":[16],"paginationSize":[2,"pagination-size"],"groupBy":[513,"group-by"],"groups":[16]}]]],["limebb-date-range.cjs",[[1,"limebb-date-range",{"platform":[16],"context":[16],"startTime":[16],"endTime":[16],"startTimeLabel":[1,"start-time-label"],"endTimeLabel":[1,"end-time-label"],"language":[1],"timeFormat":[1,"time-format"],"type":[1]}]]],["limebb-feed.cjs",[[1,"limebb-feed",{"platform":[16],"context":[16],"items":[16],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"minutesOfProximity":[2,"minutes-of-proximity"],"totalCount":[2,"total-count"],"lastVisitedTimestamp":[1,"last-visited-timestamp"]}]]],["limebb-browser.cjs",[[17,"limebb-browser",{"platform":[16],"context":[16],"items":[16],"layout":[1],"filter":[32]}]]],["limebb-currency-picker.cjs",[[1,"limebb-currency-picker",{"label":[513],"platform":[16],"currencies":[16],"helperText":[513,"helper-text"],"required":[516],"readonly":[516],"invalid":[516],"disabled":[516],"value":[16]}]]],["limebb-dashboard-widget.cjs",[[1,"limebb-dashboard-widget",{"heading":[513],"subheading":[513],"supportingText":[513,"supporting-text"],"icon":[513]}]]],["limebb-icon-picker.cjs",[[1,"limebb-icon-picker",{"value":[1],"required":[4],"readonly":[4],"invalid":[4],"disabled":[4],"label":[1],"helperText":[1,"helper-text"]}]]],["limebb-info-tile.cjs",[[1,"limebb-info-tile",{"platform":[16],"context":[16],"filterId":[1,"filter-id"],"disabled":[4],"icon":[1],"label":[1],"prefix":[1],"suffix":[1],"propertyName":[1,"property-name"],"aggregateOperator":[1,"aggregate-operator"],"filters":[32],"value":[32],"loading":[32],"error":[32]}]]],["limebb-limeobject-file-viewer.cjs",[[1,"limebb-limeobject-file-viewer",{"platform":[16],"context":[16],"property":[1],"fileTypes":[16],"limeobject":[32],"limetype":[32]}]]],["limebb-locale-picker.cjs",[[1,"limebb-locale-picker",{"platform":[16],"context":[16],"value":[1],"required":[4],"disabled":[4],"label":[1],"helperText":[1,"helper-text"],"readonly":[4],"multipleChoice":[4,"multiple-choice"],"allLanguages":[32]}]]],["limebb-navigation-button.cjs",[[17,"limebb-navigation-button",{"href":[513],"tooltipLabel":[513,"tooltip-label"],"tooltipHelperLabel":[513,"tooltip-helper-label"],"type":[513]}]]],["limebb-kanban-item.cjs",[[1,"limebb-kanban-item",{"platform":[16],"context":[16],"item":[16]}]]],["limebb-kanban-column.cjs",[[1,"limebb-kanban-column",{"platform":[16],"context":[16],"columnHeading":[1,"column-heading"],"items":[16],"loading":[4],"paginationSize":[2,"pagination-size"],"displayedItemCount":[32]}]]],["limebb-date-picker.cjs",[[1,"limebb-date-picker",{"platform":[16],"context":[16],"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"placeholder":[513],"helperText":[513,"helper-text"],"required":[516],"value":[1],"type":[513]}]]],["limebb-feed-timeline-item.cjs",[[1,"limebb-feed-timeline-item",{"platform":[16],"context":[16],"item":[16],"ui":[513],"isBundled":[516,"is-bundled"],"headingCanExpand":[32],"isHeadingExpanded":[32],"showMore":[32],"isTall":[32]}]]]], options);
19
19
  });
@@ -5,11 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-5aaf6970.js');
6
6
  const types = require('./types-be0cc46f.js');
7
7
 
8
- const feedTimelineItemCss = "@charset \"UTF-8\";*{box-sizing:border-box}:host(limebb-feed-timeline-item){--limebb-feed-item-paddings:0.75rem;display:flex;gap:0.75rem;position:relative;isolation:isolate}:host(limebb-feed-timeline-item:hover) .timestamp{color:rgb(var(--contrast-1100))}: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}.left:before{content:\"\";position:absolute;z-index:0;top:-0.25rem;bottom:-0.25rem;left:1rem;width:1px;background-color:rgb(var(--contrast-600));z-index:-1}.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 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;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{color:rgb(var(--color-blue-default));background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}button.expand-heading:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}button.collapse-heading{all:unset;transition:color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);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{color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}button.collapse-heading:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}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);font-size:0.75rem;text-align:center;color:rgb(var(--contrast-800));background-color:var(--limebb-feed-background-color);padding:0.125rem 0;width:2rem}.icon{--icon-background-color:var(--limebb-feed-background-color);width:2rem;padding:0.125rem}:host(.has-author-picture) .icon{width:1.5rem}img{border-radius:50%;width:2rem;height:2rem;object-fit:cover;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}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-feed-item-action-bar-grid-template-rows-transition-speed, 0.2s) cubic-bezier(1, 0.09, 0, 0.89) var(--limebb-feed-item-action-bar-grid-template-rows-transition-delay, 0s);grid-template-rows:var(--limebb-feed-item-action-bar-grid-template-rows, 1fr)}.action-bar-hider{overflow:hidden}limel-action-bar{transition:padding var(--limebb-feed-item-action-bar-grid-template-rows-transition-speed) cubic-bezier(1, 0.09, 0, 0.89) var(--limebb-feed-item-action-bar-grid-template-rows-transition-delay);padding-bottom:0.5rem}: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-feed-item-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){--limebb-feed-item-action-bar-grid-template-rows-transition-speed:0.46s;--limebb-feed-item-action-bar-grid-template-rows-transition-delay:0.5s}: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 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);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{color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}#show-more-button:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}#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]) .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(1.5deg);background-color:rgb(var(--contrast-300))}:host(limebb-feed-timeline-item[ui=thread-message]) .content:hover .thread-effects{transform:translate3d(-0.325rem, -0.3rem, 0) rotate(1.5deg)}: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)}.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}";
8
+ const feedTimelineItemCss = "@charset \"UTF-8\";*{box-sizing:border-box}:host(limebb-feed-timeline-item){--limebb-feed-item-paddings:0.75rem;display:flex;gap:0.75rem;position:relative;isolation:isolate}:host(limebb-feed-timeline-item:hover) .timestamp{color:rgb(var(--contrast-1100))}: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}.left:before{content:\"\";position:absolute;z-index:0;top:-0.25rem;bottom:-0.25rem;left:1rem;width:1px;background-color:rgb(var(--contrast-600));z-index:-1}.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 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;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{color:rgb(var(--color-blue-default));background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}button.expand-heading:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}button.collapse-heading{all:unset;transition:color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);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{color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}button.collapse-heading:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}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);font-size:0.75rem;text-align:center;color:rgb(var(--contrast-800));background-color:var(--limebb-feed-background-color);padding:0.125rem 0;width:2rem}.icon{--icon-background-color:var(--limebb-feed-background-color);width:2rem;padding:0.125rem}:host(.has-author-picture) .icon{width:1.5rem}img{border-radius:50%;width:2rem;height:2rem;object-fit:cover;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}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-feed-item-action-bar-grid-template-rows-transition-speed, 0.2s) cubic-bezier(1, 0.09, 0, 0.89) var(--limebb-feed-item-action-bar-grid-template-rows-transition-delay, 0s);grid-template-rows:var(--limebb-feed-item-action-bar-grid-template-rows, 1fr)}.action-bar-hider{overflow:hidden}limel-action-bar{transition:padding var(--limebb-feed-item-action-bar-grid-template-rows-transition-speed) cubic-bezier(1, 0.09, 0, 0.89) var(--limebb-feed-item-action-bar-grid-template-rows-transition-delay);padding-bottom:0.5rem}: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-feed-item-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){--limebb-feed-item-action-bar-grid-template-rows-transition-speed:0.46s;--limebb-feed-item-action-bar-grid-template-rows-transition-delay:0.5s}: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 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);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{color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}#show-more-button:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}#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.is-clickable[ui=standard]) .content,: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]) .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(1.5deg);background-color:rgb(var(--contrast-300))}:host(limebb-feed-timeline-item[ui=thread-message]) .content:hover .thread-effects{transform:translate3d(-0.325rem, -0.3rem, 0) rotate(1.5deg)}: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)}.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}:host(limebb-feed-timeline-item.is-clickable) .content{cursor:pointer;transition:color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;cursor:pointer;color:var(--mdc-theme-on-surface);background-color:transparent}:host(limebb-feed-timeline-item.is-clickable) .content:hover{color:var(--mdc-theme-on-surface);background-color:var(--lime-elevated-surface-background-color);box-shadow:var(--button-shadow-hovered)}:host(limebb-feed-timeline-item.is-clickable) .content:active{box-shadow:var(--button-shadow-pressed);transform:translate3d(0, 0.08rem, 0)}:host(limebb-feed-timeline-item.is-clickable) .content:hover{z-index:1}";
9
9
 
10
10
  const FeedTimelineItem = class {
11
11
  constructor(hostRef) {
12
12
  index.registerInstance(this, hostRef);
13
+ this.interact = index.createEvent(this, "interact", 7);
13
14
  /**
14
15
  * Defines the visualization and features of the feed item.
15
16
  */
@@ -60,6 +61,9 @@ const FeedTimelineItem = class {
60
61
  this.bodyTextHeight = height;
61
62
  }
62
63
  };
64
+ this.handleFeedItemClick = () => {
65
+ this.interact.emit(this.item);
66
+ };
63
67
  this.renderHeader = () => {
64
68
  if ((this.isBundled && !this.item.heading) ||
65
69
  (!this.item.author && !this.item.heading)) {
@@ -176,7 +180,7 @@ const FeedTimelineItem = class {
176
180
  (_a = this.bodyResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
177
181
  }
178
182
  render() {
179
- var _a, _b;
183
+ var _a, _b, _c;
180
184
  return (index.h(index.Host, { id: this.item.id, class: {
181
185
  'has-unpromoted-actions': !!((_a = this.item.unpromotedActions) === null || _a === void 0 ? void 0 : _a.length),
182
186
  'has-author-picture': !!((_b = this.item.author) === null || _b === void 0 ? void 0 : _b.picture),
@@ -184,6 +188,7 @@ const FeedTimelineItem = class {
184
188
  'expanded-heading': this.isHeadingExpanded,
185
189
  'shows-more': this.showMore,
186
190
  'is-tall': this.isTall,
191
+ 'is-clickable': !!((_c = this.item) === null || _c === void 0 ? void 0 : _c.clickable),
187
192
  }, style: {
188
193
  '--body-text-height': `${this.bodyTextHeight}`,
189
194
  '--color-code': `${this.item.color}`,
@@ -206,7 +211,14 @@ const FeedTimelineItem = class {
206
211
  } }));
207
212
  }
208
213
  renderContent() {
209
- return (index.h("div", { class: "right" }, index.h("div", { class: "content" }, this.renderThreadEffects(), this.renderHeader(), this.renderUnpromotedActionsMenu(), this.renderValue(), this.renderRelations()), this.renderPromotedActions()));
214
+ let handleClick;
215
+ if (this.item.clickable) {
216
+ handleClick = this.handleFeedItemClick;
217
+ }
218
+ else {
219
+ handleClick = undefined;
220
+ }
221
+ return (index.h("div", { class: "right" }, index.h("div", { class: "content", onClick: handleClick }, this.renderThreadEffects(), this.renderHeader(), this.renderUnpromotedActionsMenu(), this.renderValue(), this.renderRelations()), this.renderPromotedActions()));
210
222
  }
211
223
  renderThreadEffects() {
212
224
  if (!this.isThreadMessage) {
@@ -171,6 +171,7 @@ const Feed = class {
171
171
  constructor(hostRef) {
172
172
  index.registerInstance(this, hostRef);
173
173
  this.loadMore = index.createEvent(this, "loadMore", 7);
174
+ this.itemClick = index.createEvent(this, "itemClick", 7);
174
175
  /**
175
176
  * List of items to display in the feed.
176
177
  */
@@ -184,6 +185,9 @@ const Feed = class {
184
185
  * The total number of items available
185
186
  */
186
187
  this.totalCount = 0;
188
+ this.handleItemClick = (event) => {
189
+ this.itemClick.emit(event.detail);
190
+ };
187
191
  this.isBundled = (item, index) => {
188
192
  var _a, _b, _c, _d, _e, _f;
189
193
  if (index === 0) {
@@ -237,7 +241,7 @@ const Feed = class {
237
241
  return [
238
242
  this.renderNewItemsIndicator(item.timestamp, index$1),
239
243
  this.renderDateHeader(item.timestamp, index$1),
240
- index.h("limebb-feed-timeline-item", { platform: this.platform, context: this.context, item: item, key: item.id, ui: item === null || item === void 0 ? void 0 : item.ui, isBundled: this.isBundled(item, index$1) }),
244
+ index.h("limebb-feed-timeline-item", { platform: this.platform, context: this.context, item: item, key: item.id, ui: item === null || item === void 0 ? void 0 : item.ui, isBundled: this.isBundled(item, index$1), onInteract: this.handleItemClick }),
241
245
  ];
242
246
  });
243
247
  }
@@ -14440,6 +14440,41 @@ const icons = [
14440
14440
  tags: [
14441
14441
  ]
14442
14442
  },
14443
+ {
14444
+ id: "notification.svg",
14445
+ tags: [
14446
+ ]
14447
+ },
14448
+ {
14449
+ id: "notification_alert.svg",
14450
+ tags: [
14451
+ ]
14452
+ },
14453
+ {
14454
+ id: "snooze.svg",
14455
+ tags: [
14456
+ ]
14457
+ },
14458
+ {
14459
+ id: "add_reminder.svg",
14460
+ tags: [
14461
+ ]
14462
+ },
14463
+ {
14464
+ id: "topic_push_notification.svg",
14465
+ tags: [
14466
+ ]
14467
+ },
14468
+ {
14469
+ id: "unread_messages.svg",
14470
+ tags: [
14471
+ ]
14472
+ },
14473
+ {
14474
+ id: "do_not_disturb_ios.svg",
14475
+ tags: [
14476
+ ]
14477
+ },
14443
14478
  {
14444
14479
  id: "notification_center_92458.svg",
14445
14480
  tags: [
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-5aaf6970.js');
6
+ const types = require('./types-be0cc46f.js');
6
7
 
7
8
  const kanbanColumnCss = ":host(limebb-kanban-column){--header-top-right-left-border-radius:0.5rem;scroll-snap-align:start;box-sizing:border-box;display:flex;flex-direction:column;border-radius:0.5rem;min-width:20rem;height:100%;background-color:rgb(var(--contrast-500))}:host(limebb-kanban-column.ungrouped-column){border:1px dashed rgb(var(--contrast-500));background-color:rgb(var(--contrast-200))}limel-header{flex-shrink:0}.items{flex-grow:1;display:flex;flex-direction:column;gap:0.5rem;padding:0.5rem;overflow-y:auto;-webkit-overflow-scrolling:touch}";
8
9
 
9
10
  const KanbanColumn = class {
10
11
  constructor(hostRef) {
11
12
  index.registerInstance(this, hostRef);
13
+ this.loadMore = index.createEvent(this, "loadMore", 7);
12
14
  /**
13
15
  * The title of the column, which is taken from the
14
16
  * `groupBy` property of the `limebb-kanban` component.
@@ -18,11 +20,20 @@ const KanbanColumn = class {
18
20
  * List of items to display in the column.
19
21
  */
20
22
  this.items = [];
23
+ this.displayedItemCount = 0;
24
+ this.handleLoadMore = (event) => {
25
+ event.stopPropagation();
26
+ this.displayedItemCount += this.paginationSize;
27
+ this.loadMore.emit();
28
+ };
29
+ }
30
+ componentWillLoad() {
31
+ this.displayedItemCount = this.paginationSize;
21
32
  }
22
33
  render() {
23
34
  return [
24
35
  this.renderColumnHeading(),
25
- index.h("div", { class: "items" }, this.renderSpinner(), this.renderKanbanItems()),
36
+ index.h("div", { class: "items" }, this.renderSpinner(), this.renderKanbanItems(), this.renderLoadMore()),
26
37
  ];
27
38
  }
28
39
  renderColumnHeading() {
@@ -34,12 +45,20 @@ const KanbanColumn = class {
34
45
  }
35
46
  }
36
47
  renderKanbanItems() {
37
- return this.items.map((item) => {
38
- return [
39
- index.h("limebb-kanban-item", { platform: this.platform, context: this.context, item: item, key: item.id }),
40
- ];
48
+ return this.items.slice(0, this.displayedItemCount).map((item) => {
49
+ return (index.h("limebb-kanban-item", { platform: this.platform, context: this.context, item: item, key: item.id }));
41
50
  });
42
51
  }
52
+ renderLoadMore() {
53
+ if (!this.items.length ||
54
+ this.displayedItemCount >= this.items.length) {
55
+ return;
56
+ }
57
+ return (index.h("limel-icon-button", { class: "load-more-button", icon: "more", onClick: this.handleLoadMore, elevated: true, label: this.translator.get('webclient.load-more') }));
58
+ }
59
+ get translator() {
60
+ return this.platform.get(types.PlatformServiceName.Translate);
61
+ }
43
62
  };
44
63
  KanbanColumn.style = kanbanColumnCss;
45
64
 
@@ -13,6 +13,11 @@ const Kanban = class {
13
13
  * List of items to display in the kanban board.
14
14
  */
15
15
  this.items = [];
16
+ /**
17
+ * The number of items rendered in each column,
18
+ * before pressing the "Load more" button.
19
+ */
20
+ this.paginationSize = 0;
16
21
  /**
17
22
  * List of possible groups to display in the kanban board.
18
23
  * These need to be the values which are potentially
@@ -27,7 +32,7 @@ const Kanban = class {
27
32
  }
28
33
  renderColumns() {
29
34
  const groupedItems = this.groupItems();
30
- return groupedItems.map((group) => (index.h("limebb-kanban-column", { platform: this.platform, context: this.context, items: group.items, columnHeading: group.key, class: group.key === 'Ungrouped' ? 'ungrouped-column' : '' })));
35
+ return groupedItems.map((group) => (index.h("limebb-kanban-column", { platform: this.platform, context: this.context, paginationSize: this.paginationSize, items: group.items, columnHeading: group.key, class: group.key === 'Ungrouped' ? 'ungrouped-column' : '' })));
31
36
  }
32
37
  groupItems() {
33
38
  const groups = this.items.reduce((acc, item) => {
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy([["limebb-kanban.cjs",[[1,"limebb-kanban",{"platform":[16],"context":[16],"items":[16],"groupBy":[513,"group-by"],"groups":[16]}]]],["limebb-date-range.cjs",[[1,"limebb-date-range",{"platform":[16],"context":[16],"startTime":[16],"endTime":[16],"startTimeLabel":[1,"start-time-label"],"endTimeLabel":[1,"end-time-label"],"language":[1],"timeFormat":[1,"time-format"],"type":[1]}]]],["limebb-feed.cjs",[[1,"limebb-feed",{"platform":[16],"context":[16],"items":[16],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"minutesOfProximity":[2,"minutes-of-proximity"],"totalCount":[2,"total-count"],"lastVisitedTimestamp":[1,"last-visited-timestamp"]}]]],["limebb-browser.cjs",[[17,"limebb-browser",{"platform":[16],"context":[16],"items":[16],"layout":[1],"filter":[32]}]]],["limebb-currency-picker.cjs",[[1,"limebb-currency-picker",{"label":[513],"platform":[16],"currencies":[16],"helperText":[513,"helper-text"],"required":[516],"readonly":[516],"invalid":[516],"disabled":[516],"value":[16]}]]],["limebb-dashboard-widget.cjs",[[1,"limebb-dashboard-widget",{"heading":[513],"subheading":[513],"supportingText":[513,"supporting-text"],"icon":[513]}]]],["limebb-icon-picker.cjs",[[1,"limebb-icon-picker",{"value":[1],"required":[4],"readonly":[4],"invalid":[4],"disabled":[4],"label":[1],"helperText":[1,"helper-text"]}]]],["limebb-info-tile.cjs",[[1,"limebb-info-tile",{"platform":[16],"context":[16],"filterId":[1,"filter-id"],"disabled":[4],"icon":[1],"label":[1],"prefix":[1],"suffix":[1],"propertyName":[1,"property-name"],"aggregateOperator":[1,"aggregate-operator"],"filters":[32],"value":[32],"loading":[32],"error":[32]}]]],["limebb-limeobject-file-viewer.cjs",[[1,"limebb-limeobject-file-viewer",{"platform":[16],"context":[16],"property":[1],"fileTypes":[16],"limeobject":[32],"limetype":[32]}]]],["limebb-locale-picker.cjs",[[1,"limebb-locale-picker",{"platform":[16],"context":[16],"value":[1],"required":[4],"disabled":[4],"label":[1],"helperText":[1,"helper-text"],"readonly":[4],"multipleChoice":[4,"multiple-choice"],"allLanguages":[32]}]]],["limebb-navigation-button.cjs",[[17,"limebb-navigation-button",{"href":[513],"tooltipLabel":[513,"tooltip-label"],"tooltipHelperLabel":[513,"tooltip-helper-label"],"type":[513]}]]],["limebb-kanban-item.cjs",[[1,"limebb-kanban-item",{"platform":[16],"context":[16],"item":[16]}]]],["limebb-kanban-column.cjs",[[1,"limebb-kanban-column",{"platform":[16],"context":[16],"columnHeading":[1,"column-heading"],"items":[16],"loading":[4]}]]],["limebb-date-picker.cjs",[[1,"limebb-date-picker",{"platform":[16],"context":[16],"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"placeholder":[513],"helperText":[513,"helper-text"],"required":[516],"value":[1],"type":[513]}]]],["limebb-feed-timeline-item.cjs",[[1,"limebb-feed-timeline-item",{"platform":[16],"context":[16],"item":[16],"ui":[513],"isBundled":[516,"is-bundled"],"headingCanExpand":[32],"isHeadingExpanded":[32],"showMore":[32],"isTall":[32]}]]]], options);
17
+ return index.bootstrapLazy([["limebb-kanban.cjs",[[1,"limebb-kanban",{"platform":[16],"context":[16],"items":[16],"paginationSize":[2,"pagination-size"],"groupBy":[513,"group-by"],"groups":[16]}]]],["limebb-date-range.cjs",[[1,"limebb-date-range",{"platform":[16],"context":[16],"startTime":[16],"endTime":[16],"startTimeLabel":[1,"start-time-label"],"endTimeLabel":[1,"end-time-label"],"language":[1],"timeFormat":[1,"time-format"],"type":[1]}]]],["limebb-feed.cjs",[[1,"limebb-feed",{"platform":[16],"context":[16],"items":[16],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"minutesOfProximity":[2,"minutes-of-proximity"],"totalCount":[2,"total-count"],"lastVisitedTimestamp":[1,"last-visited-timestamp"]}]]],["limebb-browser.cjs",[[17,"limebb-browser",{"platform":[16],"context":[16],"items":[16],"layout":[1],"filter":[32]}]]],["limebb-currency-picker.cjs",[[1,"limebb-currency-picker",{"label":[513],"platform":[16],"currencies":[16],"helperText":[513,"helper-text"],"required":[516],"readonly":[516],"invalid":[516],"disabled":[516],"value":[16]}]]],["limebb-dashboard-widget.cjs",[[1,"limebb-dashboard-widget",{"heading":[513],"subheading":[513],"supportingText":[513,"supporting-text"],"icon":[513]}]]],["limebb-icon-picker.cjs",[[1,"limebb-icon-picker",{"value":[1],"required":[4],"readonly":[4],"invalid":[4],"disabled":[4],"label":[1],"helperText":[1,"helper-text"]}]]],["limebb-info-tile.cjs",[[1,"limebb-info-tile",{"platform":[16],"context":[16],"filterId":[1,"filter-id"],"disabled":[4],"icon":[1],"label":[1],"prefix":[1],"suffix":[1],"propertyName":[1,"property-name"],"aggregateOperator":[1,"aggregate-operator"],"filters":[32],"value":[32],"loading":[32],"error":[32]}]]],["limebb-limeobject-file-viewer.cjs",[[1,"limebb-limeobject-file-viewer",{"platform":[16],"context":[16],"property":[1],"fileTypes":[16],"limeobject":[32],"limetype":[32]}]]],["limebb-locale-picker.cjs",[[1,"limebb-locale-picker",{"platform":[16],"context":[16],"value":[1],"required":[4],"disabled":[4],"label":[1],"helperText":[1,"helper-text"],"readonly":[4],"multipleChoice":[4,"multiple-choice"],"allLanguages":[32]}]]],["limebb-navigation-button.cjs",[[17,"limebb-navigation-button",{"href":[513],"tooltipLabel":[513,"tooltip-label"],"tooltipHelperLabel":[513,"tooltip-helper-label"],"type":[513]}]]],["limebb-kanban-item.cjs",[[1,"limebb-kanban-item",{"platform":[16],"context":[16],"item":[16]}]]],["limebb-kanban-column.cjs",[[1,"limebb-kanban-column",{"platform":[16],"context":[16],"columnHeading":[1,"column-heading"],"items":[16],"loading":[4],"paginationSize":[2,"pagination-size"],"displayedItemCount":[32]}]]],["limebb-date-picker.cjs",[[1,"limebb-date-picker",{"platform":[16],"context":[16],"disabled":[516],"readonly":[516],"invalid":[516],"label":[513],"placeholder":[513],"helperText":[513,"helper-text"],"required":[516],"value":[1],"type":[513]}]]],["limebb-feed-timeline-item.cjs",[[1,"limebb-feed-timeline-item",{"platform":[16],"context":[16],"item":[16],"ui":[513],"isBundled":[516,"is-bundled"],"headingCanExpand":[32],"isHeadingExpanded":[32],"showMore":[32],"isTall":[32]}]]]], options);
18
18
  });
19
19
  };
20
20
 
@@ -400,6 +400,7 @@ limel-action-bar {
400
400
  width: 0.75rem;
401
401
  }
402
402
 
403
+ :host(limebb-feed-timeline-item.is-clickable[ui=standard]) .content,
403
404
  :host(limebb-feed-timeline-item[ui=standard]) .content {
404
405
  background-color: rgb(var(--limebb-feed-item-background-color));
405
406
  }
@@ -509,4 +510,24 @@ limel-action-bar {
509
510
  top: 0.25rem;
510
511
  bottom: unset;
511
512
  height: 1.75rem;
513
+ }
514
+
515
+ :host(limebb-feed-timeline-item.is-clickable) .content {
516
+ cursor: pointer;
517
+ transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
518
+ cursor: pointer;
519
+ color: var(--mdc-theme-on-surface);
520
+ background-color: transparent;
521
+ }
522
+ :host(limebb-feed-timeline-item.is-clickable) .content:hover {
523
+ color: var(--mdc-theme-on-surface);
524
+ background-color: var(--lime-elevated-surface-background-color);
525
+ box-shadow: var(--button-shadow-hovered);
526
+ }
527
+ :host(limebb-feed-timeline-item.is-clickable) .content:active {
528
+ box-shadow: var(--button-shadow-pressed);
529
+ transform: translate3d(0, 0.08rem, 0);
530
+ }
531
+ :host(limebb-feed-timeline-item.is-clickable) .content:hover {
532
+ z-index: 1;
512
533
  }
@@ -1,4 +1,4 @@
1
- import { h, Host } from '@stencil/core';
1
+ import { h, Host, } from '@stencil/core';
2
2
  import { PlatformServiceName, } from '@limetech/lime-web-components';
3
3
  /**
4
4
  * Feed item
@@ -57,6 +57,9 @@ export class FeedTimelineItem {
57
57
  this.bodyTextHeight = height;
58
58
  }
59
59
  };
60
+ this.handleFeedItemClick = () => {
61
+ this.interact.emit(this.item);
62
+ };
60
63
  this.renderHeader = () => {
61
64
  if ((this.isBundled && !this.item.heading) ||
62
65
  (!this.item.author && !this.item.heading)) {
@@ -173,7 +176,7 @@ export class FeedTimelineItem {
173
176
  (_a = this.bodyResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
174
177
  }
175
178
  render() {
176
- var _a, _b;
179
+ var _a, _b, _c;
177
180
  return (h(Host, { id: this.item.id, class: {
178
181
  'has-unpromoted-actions': !!((_a = this.item.unpromotedActions) === null || _a === void 0 ? void 0 : _a.length),
179
182
  'has-author-picture': !!((_b = this.item.author) === null || _b === void 0 ? void 0 : _b.picture),
@@ -181,6 +184,7 @@ export class FeedTimelineItem {
181
184
  'expanded-heading': this.isHeadingExpanded,
182
185
  'shows-more': this.showMore,
183
186
  'is-tall': this.isTall,
187
+ 'is-clickable': !!((_c = this.item) === null || _c === void 0 ? void 0 : _c.clickable),
184
188
  }, style: {
185
189
  '--body-text-height': `${this.bodyTextHeight}`,
186
190
  '--color-code': `${this.item.color}`,
@@ -203,7 +207,14 @@ export class FeedTimelineItem {
203
207
  } }));
204
208
  }
205
209
  renderContent() {
206
- return (h("div", { class: "right" }, h("div", { class: "content" }, this.renderThreadEffects(), this.renderHeader(), this.renderUnpromotedActionsMenu(), this.renderValue(), this.renderRelations()), this.renderPromotedActions()));
210
+ let handleClick;
211
+ if (this.item.clickable) {
212
+ handleClick = this.handleFeedItemClick;
213
+ }
214
+ else {
215
+ handleClick = undefined;
216
+ }
217
+ return (h("div", { class: "right" }, h("div", { class: "content", onClick: handleClick }, this.renderThreadEffects(), this.renderHeader(), this.renderUnpromotedActionsMenu(), this.renderValue(), this.renderRelations()), this.renderPromotedActions()));
207
218
  }
208
219
  renderThreadEffects() {
209
220
  if (!this.isThreadMessage) {
@@ -438,5 +449,28 @@ export class FeedTimelineItem {
438
449
  "isTall": {}
439
450
  };
440
451
  }
452
+ static get events() {
453
+ return [{
454
+ "method": "interact",
455
+ "name": "interact",
456
+ "bubbles": true,
457
+ "cancelable": true,
458
+ "composed": true,
459
+ "docs": {
460
+ "tags": [],
461
+ "text": "Fired when clicking on the Feed item"
462
+ },
463
+ "complexType": {
464
+ "original": "FeedItem",
465
+ "resolved": "FeedItem",
466
+ "references": {
467
+ "FeedItem": {
468
+ "location": "import",
469
+ "path": "./feed-item.types"
470
+ }
471
+ }
472
+ }
473
+ }];
474
+ }
441
475
  static get elementRef() { return "el"; }
442
476
  }
@@ -26,6 +26,7 @@ const MINUTES_OF_PROXIMITY = 5;
26
26
  * @exampleComponent limebb-example-feed-item-types
27
27
  * @exampleComponent limebb-example-feed-item-color-coding
28
28
  * @exampleComponent limebb-example-feed-new-items
29
+ * @exampleComponent limebb-example-feed-item-clickable
29
30
  * @beta
30
31
  */
31
32
  export class Feed {
@@ -43,6 +44,9 @@ export class Feed {
43
44
  * The total number of items available
44
45
  */
45
46
  this.totalCount = 0;
47
+ this.handleItemClick = (event) => {
48
+ this.itemClick.emit(event.detail);
49
+ };
46
50
  this.isBundled = (item, index) => {
47
51
  var _a, _b, _c, _d, _e, _f;
48
52
  if (index === 0) {
@@ -96,7 +100,7 @@ export class Feed {
96
100
  return [
97
101
  this.renderNewItemsIndicator(item.timestamp, index),
98
102
  this.renderDateHeader(item.timestamp, index),
99
- h("limebb-feed-timeline-item", { platform: this.platform, context: this.context, item: item, key: item.id, ui: item === null || item === void 0 ? void 0 : item.ui, isBundled: this.isBundled(item, index) }),
103
+ h("limebb-feed-timeline-item", { platform: this.platform, context: this.context, item: item, key: item.id, ui: item === null || item === void 0 ? void 0 : item.ui, isBundled: this.isBundled(item, index), onInteract: this.handleItemClick }),
100
104
  ];
101
105
  });
102
106
  }
@@ -340,6 +344,26 @@ export class Feed {
340
344
  "resolved": "void",
341
345
  "references": {}
342
346
  }
347
+ }, {
348
+ "method": "itemClick",
349
+ "name": "itemClick",
350
+ "bubbles": true,
351
+ "cancelable": true,
352
+ "composed": true,
353
+ "docs": {
354
+ "tags": [],
355
+ "text": "Fired when a feed item with `clickable` set to `true` is clicked"
356
+ },
357
+ "complexType": {
358
+ "original": "FeedItem",
359
+ "resolved": "FeedItem",
360
+ "references": {
361
+ "FeedItem": {
362
+ "location": "import",
363
+ "path": "./feed-item/feed-item.types"
364
+ }
365
+ }
366
+ }
343
367
  }];
344
368
  }
345
369
  }
@@ -1,4 +1,5 @@
1
1
  import { h } from '@stencil/core';
2
+ import { PlatformServiceName, } from '@limetech/lime-web-components';
2
3
  /**
3
4
  * This component generates the columns for `limebb-kanban`.
4
5
  *
@@ -15,11 +16,20 @@ export class KanbanColumn {
15
16
  * List of items to display in the column.
16
17
  */
17
18
  this.items = [];
19
+ this.displayedItemCount = 0;
20
+ this.handleLoadMore = (event) => {
21
+ event.stopPropagation();
22
+ this.displayedItemCount += this.paginationSize;
23
+ this.loadMore.emit();
24
+ };
25
+ }
26
+ componentWillLoad() {
27
+ this.displayedItemCount = this.paginationSize;
18
28
  }
19
29
  render() {
20
30
  return [
21
31
  this.renderColumnHeading(),
22
- h("div", { class: "items" }, this.renderSpinner(), this.renderKanbanItems()),
32
+ h("div", { class: "items" }, this.renderSpinner(), this.renderKanbanItems(), this.renderLoadMore()),
23
33
  ];
24
34
  }
25
35
  renderColumnHeading() {
@@ -31,12 +41,20 @@ export class KanbanColumn {
31
41
  }
32
42
  }
33
43
  renderKanbanItems() {
34
- return this.items.map((item) => {
35
- return [
36
- h("limebb-kanban-item", { platform: this.platform, context: this.context, item: item, key: item.id }),
37
- ];
44
+ return this.items.slice(0, this.displayedItemCount).map((item) => {
45
+ return (h("limebb-kanban-item", { platform: this.platform, context: this.context, item: item, key: item.id }));
38
46
  });
39
47
  }
48
+ renderLoadMore() {
49
+ if (!this.items.length ||
50
+ this.displayedItemCount >= this.items.length) {
51
+ return;
52
+ }
53
+ return (h("limel-icon-button", { class: "load-more-button", icon: "more", onClick: this.handleLoadMore, elevated: true, label: this.translator.get('webclient.load-more') }));
54
+ }
55
+ get translator() {
56
+ return this.platform.get(PlatformServiceName.Translate);
57
+ }
40
58
  static get is() { return "limebb-kanban-column"; }
41
59
  static get encapsulation() { return "shadow"; }
42
60
  static get originalStyleUrls() {
@@ -152,7 +170,47 @@ export class KanbanColumn {
152
170
  },
153
171
  "attribute": "loading",
154
172
  "reflect": false
173
+ },
174
+ "paginationSize": {
175
+ "type": "number",
176
+ "mutable": false,
177
+ "complexType": {
178
+ "original": "number",
179
+ "resolved": "number",
180
+ "references": {}
181
+ },
182
+ "required": false,
183
+ "optional": false,
184
+ "docs": {
185
+ "tags": [],
186
+ "text": "The number of items rendered in each column,\nbefore pressing the \"Load more\" button."
187
+ },
188
+ "attribute": "pagination-size",
189
+ "reflect": false
155
190
  }
156
191
  };
157
192
  }
193
+ static get states() {
194
+ return {
195
+ "displayedItemCount": {}
196
+ };
197
+ }
198
+ static get events() {
199
+ return [{
200
+ "method": "loadMore",
201
+ "name": "loadMore",
202
+ "bubbles": true,
203
+ "cancelable": true,
204
+ "composed": true,
205
+ "docs": {
206
+ "tags": [],
207
+ "text": "Emitted when the load more button is clicked"
208
+ },
209
+ "complexType": {
210
+ "original": "void",
211
+ "resolved": "void",
212
+ "references": {}
213
+ }
214
+ }];
215
+ }
158
216
  }
@@ -19,6 +19,11 @@ export class Kanban {
19
19
  * List of items to display in the kanban board.
20
20
  */
21
21
  this.items = [];
22
+ /**
23
+ * The number of items rendered in each column,
24
+ * before pressing the "Load more" button.
25
+ */
26
+ this.paginationSize = 0;
22
27
  /**
23
28
  * List of possible groups to display in the kanban board.
24
29
  * These need to be the values which are potentially
@@ -33,7 +38,7 @@ export class Kanban {
33
38
  }
34
39
  renderColumns() {
35
40
  const groupedItems = this.groupItems();
36
- return groupedItems.map((group) => (h("limebb-kanban-column", { platform: this.platform, context: this.context, items: group.items, columnHeading: group.key, class: group.key === 'Ungrouped' ? 'ungrouped-column' : '' })));
41
+ return groupedItems.map((group) => (h("limebb-kanban-column", { platform: this.platform, context: this.context, paginationSize: this.paginationSize, items: group.items, columnHeading: group.key, class: group.key === 'Ungrouped' ? 'ungrouped-column' : '' })));
37
42
  }
38
43
  groupItems() {
39
44
  const groups = this.items.reduce((acc, item) => {
@@ -141,6 +146,24 @@ export class Kanban {
141
146
  },
142
147
  "defaultValue": "[]"
143
148
  },
149
+ "paginationSize": {
150
+ "type": "number",
151
+ "mutable": false,
152
+ "complexType": {
153
+ "original": "number",
154
+ "resolved": "number",
155
+ "references": {}
156
+ },
157
+ "required": false,
158
+ "optional": false,
159
+ "docs": {
160
+ "tags": [],
161
+ "text": "The number of items rendered in each column,\nbefore pressing the \"Load more\" button."
162
+ },
163
+ "attribute": "pagination-size",
164
+ "reflect": false,
165
+ "defaultValue": "0"
166
+ },
144
167
  "groupBy": {
145
168
  "type": "string",
146
169
  "mutable": false,