@limetech/lime-crm-building-blocks 1.112.2 → 1.113.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 (169) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/lime-crm-building-blocks.cjs.js +1 -1
  3. package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +115 -0
  4. package/dist/cjs/limebb-currency-picker.cjs.entry.js +1 -1
  5. package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +1 -1
  6. package/dist/cjs/limebb-date-picker.cjs.entry.js +1 -1
  7. package/dist/cjs/limebb-date-range.cjs.entry.js +1 -1
  8. package/dist/cjs/limebb-document-item.cjs.entry.js +2 -2
  9. package/dist/cjs/limebb-document-picker.cjs.entry.js +2 -2
  10. package/dist/cjs/limebb-feed-item-thumbnail-file-info.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-icon-picker.cjs.entry.js +1 -1
  14. package/dist/cjs/limebb-info-tile-format.cjs.entry.js +1 -1
  15. package/dist/cjs/limebb-info-tile.cjs.entry.js +1 -1
  16. package/dist/cjs/limebb-kanban-group.cjs.entry.js +1 -1
  17. package/dist/cjs/limebb-kanban-item.cjs.entry.js +1 -1
  18. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +1 -1
  19. package/dist/cjs/limebb-lime-query-filter-builder_3.cjs.entry.js +2 -2
  20. package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +1 -1
  21. package/dist/cjs/limebb-lime-query-filter-group_3.cjs.entry.js +3 -3
  22. package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +2 -2
  23. package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +1 -1
  24. package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +1 -1
  25. package/dist/cjs/limebb-live-docs-info.cjs.entry.js +2 -2
  26. package/dist/cjs/limebb-locale-picker.cjs.entry.js +1 -1
  27. package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +2 -2
  28. package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
  29. package/dist/cjs/limebb-notification-item.cjs.entry.js +1 -1
  30. package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +2 -2
  31. package/dist/cjs/limebb-text-editor.cjs.entry.js +1 -1
  32. package/dist/cjs/limebb-trend-indicator.cjs.entry.js +1 -1
  33. package/dist/cjs/loader.cjs.js +1 -1
  34. package/dist/collection/collection-manifest.json +1 -0
  35. package/dist/collection/components/composer-toolbar/composer-toolbar.css +26 -0
  36. package/dist/collection/components/composer-toolbar/composer-toolbar.js +316 -0
  37. package/dist/collection/components/composer-toolbar/composer-toolbar.types.js +1 -0
  38. package/dist/collection/components/currency-picker/currency-picker.js +1 -1
  39. package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
  40. package/dist/collection/components/date-picker/date-picker.js +1 -1
  41. package/dist/collection/components/date-range/date-range.js +1 -1
  42. package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
  43. package/dist/collection/components/document-picker/document-picker.css +5 -0
  44. package/dist/collection/components/document-picker/document-picker.js +1 -1
  45. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
  46. package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
  47. package/dist/collection/components/feed/feed.js +1 -1
  48. package/dist/collection/components/icon-picker/icon-picker.js +1 -1
  49. package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
  50. package/dist/collection/components/info-tile/info-tile.js +1 -1
  51. package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
  52. package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
  53. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +1 -1
  54. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +2 -2
  55. package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
  56. package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
  57. package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
  58. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
  59. package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
  60. package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
  61. package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
  62. package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
  63. package/dist/collection/components/locale-picker/locale-picker.js +1 -1
  64. package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
  65. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  66. package/dist/collection/components/summary-popover/summary-popover.js +3 -3
  67. package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
  68. package/dist/collection/components/text-editor/text-editor.js +1 -1
  69. package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
  70. package/dist/components/currency-picker.js +1 -1
  71. package/dist/components/date-picker.js +1 -1
  72. package/dist/components/document-item.js +2 -2
  73. package/dist/components/feed-item-thumbnail-file-info.js +1 -1
  74. package/dist/components/feed-timeline-item.js +1 -1
  75. package/dist/components/kanban-group.js +1 -1
  76. package/dist/components/kanban-item.js +1 -1
  77. package/dist/components/lime-query-filter-comparison.js +1 -1
  78. package/dist/components/lime-query-filter-expression.js +3 -3
  79. package/dist/components/limebb-composer-toolbar.d.ts +11 -0
  80. package/dist/components/limebb-composer-toolbar.js +136 -0
  81. package/dist/components/limebb-dashboard-widget.js +1 -1
  82. package/dist/components/limebb-date-range.js +1 -1
  83. package/dist/components/limebb-document-picker.js +2 -2
  84. package/dist/components/limebb-feed.js +1 -1
  85. package/dist/components/limebb-icon-picker.js +1 -1
  86. package/dist/components/limebb-info-tile-format.js +1 -1
  87. package/dist/components/limebb-info-tile.js +1 -1
  88. package/dist/components/limebb-lime-query-builder.js +1 -1
  89. package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
  90. package/dist/components/limebb-locale-picker.js +1 -1
  91. package/dist/components/limebb-mention-group-counter.js +2 -2
  92. package/dist/components/limebb-text-editor.js +1 -1
  93. package/dist/components/limebb-trend-indicator.js +1 -1
  94. package/dist/components/limetype-field.js +1 -1
  95. package/dist/components/live-docs-info.js +2 -2
  96. package/dist/components/notification-item.js +1 -1
  97. package/dist/components/order-by-editor.js +1 -1
  98. package/dist/components/order-by-item.js +2 -2
  99. package/dist/components/percentage-visualizer.js +2 -2
  100. package/dist/components/response-format-item.js +1 -1
  101. package/dist/components/summary-popover.js +3 -3
  102. package/dist/esm/lime-crm-building-blocks.js +1 -1
  103. package/dist/esm/limebb-composer-toolbar.entry.js +111 -0
  104. package/dist/esm/limebb-currency-picker.entry.js +1 -1
  105. package/dist/esm/limebb-dashboard-widget.entry.js +1 -1
  106. package/dist/esm/limebb-date-picker.entry.js +1 -1
  107. package/dist/esm/limebb-date-range.entry.js +1 -1
  108. package/dist/esm/limebb-document-item.entry.js +2 -2
  109. package/dist/esm/limebb-document-picker.entry.js +2 -2
  110. package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +1 -1
  111. package/dist/esm/limebb-feed-timeline-item.entry.js +1 -1
  112. package/dist/esm/limebb-feed.entry.js +1 -1
  113. package/dist/esm/limebb-icon-picker.entry.js +1 -1
  114. package/dist/esm/limebb-info-tile-format.entry.js +1 -1
  115. package/dist/esm/limebb-info-tile.entry.js +1 -1
  116. package/dist/esm/limebb-kanban-group.entry.js +1 -1
  117. package/dist/esm/limebb-kanban-item.entry.js +1 -1
  118. package/dist/esm/limebb-lime-query-builder.entry.js +1 -1
  119. package/dist/esm/limebb-lime-query-filter-builder_3.entry.js +2 -2
  120. package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +1 -1
  121. package/dist/esm/limebb-lime-query-filter-group_3.entry.js +3 -3
  122. package/dist/esm/limebb-lime-query-order-by-item.entry.js +2 -2
  123. package/dist/esm/limebb-lime-query-response-format-builder.entry.js +1 -1
  124. package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +1 -1
  125. package/dist/esm/limebb-live-docs-info.entry.js +2 -2
  126. package/dist/esm/limebb-locale-picker.entry.js +1 -1
  127. package/dist/esm/limebb-mention-group-counter.entry.js +2 -2
  128. package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
  129. package/dist/esm/limebb-notification-item.entry.js +1 -1
  130. package/dist/esm/limebb-percentage-visualizer.entry.js +2 -2
  131. package/dist/esm/limebb-text-editor.entry.js +1 -1
  132. package/dist/esm/limebb-trend-indicator.entry.js +1 -1
  133. package/dist/esm/loader.js +1 -1
  134. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  135. package/dist/lime-crm-building-blocks/{p-2ba38d7f.entry.js → p-00414464.entry.js} +1 -1
  136. package/dist/lime-crm-building-blocks/{p-d7fcac35.entry.js → p-023246db.entry.js} +1 -1
  137. package/dist/lime-crm-building-blocks/{p-62c5cb1b.entry.js → p-0c25d565.entry.js} +1 -1
  138. package/dist/lime-crm-building-blocks/{p-cc1ef69e.entry.js → p-0eac6b68.entry.js} +1 -1
  139. package/dist/lime-crm-building-blocks/{p-7c54f3c7.entry.js → p-14cd62c1.entry.js} +1 -1
  140. package/dist/lime-crm-building-blocks/{p-a1bb9206.entry.js → p-1d44c670.entry.js} +1 -1
  141. package/dist/lime-crm-building-blocks/{p-74953ead.entry.js → p-2395476f.entry.js} +1 -1
  142. package/dist/lime-crm-building-blocks/{p-377da950.entry.js → p-283a6f9e.entry.js} +1 -1
  143. package/dist/lime-crm-building-blocks/{p-239d68c7.entry.js → p-3443a292.entry.js} +1 -1
  144. package/dist/lime-crm-building-blocks/{p-920a321e.entry.js → p-35b75e49.entry.js} +1 -1
  145. package/dist/lime-crm-building-blocks/{p-e980329d.entry.js → p-385020b4.entry.js} +1 -1
  146. package/dist/lime-crm-building-blocks/{p-630fa055.entry.js → p-401ccdec.entry.js} +1 -1
  147. package/dist/lime-crm-building-blocks/{p-71697503.entry.js → p-4d9244e7.entry.js} +1 -1
  148. package/dist/lime-crm-building-blocks/{p-55c494f9.entry.js → p-551ffa9f.entry.js} +1 -1
  149. package/dist/lime-crm-building-blocks/{p-de84f26b.entry.js → p-5d0874f6.entry.js} +1 -1
  150. package/dist/lime-crm-building-blocks/{p-40f29017.entry.js → p-6c67ed0e.entry.js} +1 -1
  151. package/dist/lime-crm-building-blocks/{p-48585665.entry.js → p-711df3e6.entry.js} +1 -1
  152. package/dist/lime-crm-building-blocks/p-79efe2bd.entry.js +1 -0
  153. package/dist/lime-crm-building-blocks/{p-ce1b05e4.entry.js → p-83ff2b4c.entry.js} +1 -1
  154. package/dist/lime-crm-building-blocks/{p-57591c89.entry.js → p-8c3f563e.entry.js} +1 -1
  155. package/dist/lime-crm-building-blocks/p-8eb3abc8.entry.js +1 -0
  156. package/dist/lime-crm-building-blocks/{p-adc423db.entry.js → p-9161869b.entry.js} +1 -1
  157. package/dist/lime-crm-building-blocks/{p-8e885ec8.entry.js → p-9c334694.entry.js} +1 -1
  158. package/dist/lime-crm-building-blocks/{p-e990af19.entry.js → p-a4f367f8.entry.js} +1 -1
  159. package/dist/lime-crm-building-blocks/{p-5cea7fb4.entry.js → p-b2e705bc.entry.js} +1 -1
  160. package/dist/lime-crm-building-blocks/{p-f0890c24.entry.js → p-c09dcd4c.entry.js} +1 -1
  161. package/dist/lime-crm-building-blocks/{p-64cbf4f4.entry.js → p-ddf0dcbc.entry.js} +1 -1
  162. package/dist/lime-crm-building-blocks/{p-8633cd5f.entry.js → p-df13ebba.entry.js} +1 -1
  163. package/dist/lime-crm-building-blocks/{p-2fd586a0.entry.js → p-e96367d2.entry.js} +1 -1
  164. package/dist/lime-crm-building-blocks/{p-b90be9d3.entry.js → p-f31eeeaa.entry.js} +1 -1
  165. package/dist/types/components/composer-toolbar/composer-toolbar.d.ts +77 -0
  166. package/dist/types/components/composer-toolbar/composer-toolbar.types.d.ts +40 -0
  167. package/dist/types/components.d.ts +153 -2
  168. package/package.json +4 -4
  169. package/dist/lime-crm-building-blocks/p-1b13e8f1.entry.js +0 -1
@@ -1 +1 @@
1
- import{r as e,h as o,c as t}from"./p-52cf8641.js";const r={expand:"expand",minimize:"minus_math",maximize:"minus_math",newTab:"up_right_arrow",back:"left_arrow",close:"multiply",shrink:"compress",float:"rectangle"},i=class{constructor(t){e(this,t),this.renderAsLink=()=>o("a",{class:this.getContainerClassList(),id:"tooltipId","aria-label":this.tooltipLabel&&this.tooltipHelperLabel,href:this.href,target:"newTab"===this.type?"_blank":void 0},this.renderType(),this.renderTooltip()),this.renderAsButton=()=>o("button",{class:this.getContainerClassList(),id:"tooltipId","aria-label":this.tooltipLabel&&this.tooltipHelperLabel},this.renderType(),this.renderTooltip()),this.getContainerClassList=()=>({"navigation-button":!0,[this.type]:!0})}render(){return this.href?this.renderAsLink():this.renderAsButton()}renderType(){return this.renderIcon(r[this.type])}renderTooltip(){if(this.tooltipLabel)return o("limel-tooltip",{label:this.tooltipLabel,helperLabel:this.tooltipHelperLabel,elementId:"tooltipId"})}renderIcon(e){return o("limel-icon",{name:e})}static get delegatesFocus(){return!0}};i.style='@charset "UTF-8";.navigation-button{all:unset;isolation:isolate;position:relative;display:flex;justify-content:center;align-items:center;height:1.875rem;width:1.875rem;border-radius:50%;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(--navigation-button-background-color, var(--lime-elevated-surface-background-color))}.navigation-button:hover,.navigation-button:focus,.navigation-button:focus-visible{will-change:color, background-color, box-shadow, transform}.navigation-button:hover,.navigation-button:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}.navigation-button:hover{box-shadow:var(--button-shadow-hovered)}.navigation-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)}.navigation-button:hover,.navigation-button:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.navigation-button:focus{outline:none}.navigation-button:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.navigation-button limel-icon{transition:color 0.2s ease, transform 0.2s cubic-bezier(0.84, 0.15, 0.52, 1.42);color:var(--header-menu-icon-color);width:1.25rem}.newTab limel-icon{transition:transform 0.2s ease;transform:scale(0.8);z-index:3}.newTab:before{z-index:2}.newTab::after{z-index:1}.newTab:before,.newTab:after{content:"";transition:transform 0.2s ease, border-color 0.2s ease;position:absolute;width:0.875rem;height:0.875rem;outline:1.5px solid rgb(var(--contrast-900));border-radius:1px;background-color:var(--navigation-button-background-color, rgb(var(--contrast-100)))}.newTab:hover limel-icon{color:var(--mdc-theme-primary);transform:translate3d(-0.1rem, 0.1rem, 0) scale(1)}.newTab:hover:before{transform:translate3d(0.125rem, -0.125rem, 0);border-color:rgb(var(--contrast-1000));box-shadow:var(--shadow-depth-8)}.newTab:hover:after{transform:translate3d(-0.15rem, 0.15rem, 0) scale(0.9);border-color:rgb(var(--contrast-700))}.expand:after{transition:transform 0.2s ease;content:"";position:absolute;z-index:1;background-color:var(--navigation-button-background-color, rgb(var(--contrast-100)));width:0.75rem;height:0.75rem}.expand:hover limel-icon{color:var(--mdc-theme-primary)}.expand:hover:after{transform:scale(0.5)}.expand:hover limel-icon{transform:scale(1.18)}.minimize:before,.minimize:after,.maximize:before,.maximize:after{content:"";transition:transform 0.3s ease-out 0.15s, background-color 0.1s ease}.minimize limel-icon,.maximize limel-icon{transition:transform 0.2s ease 0.1s}.minimize:before,.maximize:after,.maximize:hover:before{transform:scaleY(1) scaleX(1);z-index:-1;box-sizing:border-box;position:absolute;width:70%;height:60%;border-radius:0.25rem;transform-origin:bottom}.minimize:hover:before,.maximize:before{transition:transform 0.3s ease-out 0.15s, background-color 0.1s ease;transform:scaleY(0.3) scaleX(0.7);background-color:rgb(var(--contrast-500))}.minimize:hover limel-icon,.maximize limel-icon{transform:scaleX(0.8) translate3d(0, 0.4rem, 0)}.maximize limel-icon{color:rgb(var(--contrast-900))}.maximize:hover limel-icon{color:currentColor;transform:scaleX(1.1) translate3d(0, -0.1rem, 0)}.maximize:after{z-index:-2;border:1px dashed rgb(var(--contrast-800))}.close limel-icon{transition:transform 0.2s ease, color 0.2s ease}.close:before,.close:after{transition-delay:0.1s;content:"";position:absolute;inset:0;border-radius:50%;opacity:0}.close:before{transition:transform 0.3s ease, opacity 0.3s ease;background-color:rgb(var(--color-orange-dark))}.close:after{transition:transform 0.6s ease, opacity 0.6s ease;background-color:rgb(var(--color-orange-light))}.close:hover limel-icon{color:rgb(var(--color-white));transform:scale(0.7) rotate(90deg)}.close:hover:before{opacity:1;transform:scale(0.4)}.close:hover:after{opacity:0.4;transform:scale(0.6)}.float:after{transition:width 0.2s ease-out, opacity 0.2s ease;content:"";position:absolute;inset:0 0.5rem 0 auto;border-radius:1px;opacity:0.8;transform:translate3d(0, 0, 0);background-color:rgb(var(--contrast-800));width:0.125rem;height:0.6rem;margin:auto}.float:hover:after{width:0.4rem;opacity:1;transform:translate3d(0, 0, 0)}';const a=class{constructor(o){e(this,o),this.actionSelected=t(this,"actionSelected",7),this.triggerDelay=600,this.openDirection="top",this.popoverMaxWidth="20rem",this.popoverMaxHeight="min(35rem, calc(100vh - 2rem))",this.actions=[],this.isPopoverOpen=!1,this.openPopoverWithDelay=e=>{e.stopPropagation(),clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>{a.currentOpenPopover&&a.currentOpenPopover!==this&&(a.currentOpenPopover.isPopoverOpen=!1),a.currentOpenPopover=this,this.isPopoverOpen=!0}),this.triggerDelay)},this.resetTimeout=()=>{this.isPopoverOpen||clearTimeout(this.hoverTimeout)},this.onPopoverClose=e=>{e.stopPropagation(),this.isPopoverOpen=!1,a.currentOpenPopover===this&&(a.currentOpenPopover=null)},this.handleCloseClick=e=>{e.stopPropagation(),this.isPopoverOpen=!1},this.handleSelected=e=>{this.actionSelected.emit(e.detail)}}render(){return o("limel-popover",{key:"d5142ad5871d8cf04492bda3623c3030d1b86699",style:{"--limebb-summary-popover-timeout":`${this.triggerDelay}ms`},open:this.isPopoverOpen,onClose:this.onPopoverClose,openDirection:this.openDirection},o("div",{key:"876fc3afb9e00e18effdaf081f8e879bccfe0a56",slot:"trigger",tabIndex:0,onMouseEnter:this.openPopoverWithDelay,onMouseLeave:this.resetTimeout,onFocus:this.openPopoverWithDelay},o("slot",{key:"aec98e47257894960d4adacd004a286e7f7cb64c",name:"trigger"}),o("div",{key:"f1771f1aea8080c383ba81295848bb242c910f29",class:"opening-countdown-indicator"})),o("limel-card",{key:"1d17f98a066f31650432cd7b657a835ae1dbebcb",style:{"max-width":this.popoverMaxWidth,"max-height":this.popoverMaxHeight,"min-width":"7rem","min-height":"3rem"},orientation:"landscape",heading:this.heading,subheading:this.subheading,icon:this.icon,value:this.value,image:this.image,actions:this.actions,onActionSelected:this.handleSelected},o("limebb-navigation-button",{key:"2edbd8ce64c46b48bc0c11be51339b98f980db40",slot:"component",type:"close",style:{"--navigation-button-background-color":"rgb(var(--contrast-100), 0.8)",position:"absolute",top:"0.125rem",right:"0.125rem"},tooltipLabel:"Close",tooltipHelperLabel:"Esc",onClick:this.handleCloseClick})))}};a.currentOpenPopover=null,a.style="limel-popover{--popover-border-radius:0.95rem;--popover-body-background-color:transparent;--popover-box-shadow:var(--shadow-depth-8)}div[slot=trigger]{position:relative;display:flex;align-items:center;justify-content:center}div[slot=trigger] *{min-width:0;min-height:0}.opening-countdown-indicator{position:absolute;inset:auto 0 -0.25rem 0;margin:0 auto;height:0.125rem;border-radius:1rem;transition:width ease-out, opacity ease;transition-duration:120ms;opacity:0;width:0%;background-color:var(--mdc-theme-primary)}div[slot=trigger]:not([aria-expanded=true]):hover .opening-countdown-indicator{transition-duration:var(--limebb-summary-popover-timeout);opacity:1;width:100%}";export{i as limebb_navigation_button,a as limebb_summary_popover}
1
+ import{r as e,h as o,c as t}from"./p-52cf8641.js";const r={expand:"expand",minimize:"minus_math",maximize:"minus_math",newTab:"up_right_arrow",back:"left_arrow",close:"multiply",shrink:"compress",float:"rectangle"},i=class{constructor(t){e(this,t),this.renderAsLink=()=>o("a",{class:this.getContainerClassList(),id:"tooltipId","aria-label":this.tooltipLabel&&this.tooltipHelperLabel,href:this.href,target:"newTab"===this.type?"_blank":void 0},this.renderType(),this.renderTooltip()),this.renderAsButton=()=>o("button",{class:this.getContainerClassList(),id:"tooltipId","aria-label":this.tooltipLabel&&this.tooltipHelperLabel},this.renderType(),this.renderTooltip()),this.getContainerClassList=()=>({"navigation-button":!0,[this.type]:!0})}render(){return this.href?this.renderAsLink():this.renderAsButton()}renderType(){return this.renderIcon(r[this.type])}renderTooltip(){if(this.tooltipLabel)return o("limel-tooltip",{label:this.tooltipLabel,helperLabel:this.tooltipHelperLabel,elementId:"tooltipId"})}renderIcon(e){return o("limel-icon",{name:e})}static get delegatesFocus(){return!0}};i.style='@charset "UTF-8";.navigation-button{all:unset;isolation:isolate;position:relative;display:flex;justify-content:center;align-items:center;height:1.875rem;width:1.875rem;border-radius:50%;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(--navigation-button-background-color, var(--lime-elevated-surface-background-color))}.navigation-button:hover,.navigation-button:focus,.navigation-button:focus-visible{will-change:color, background-color, box-shadow, transform}.navigation-button:hover,.navigation-button:focus-visible{transform:translate3d(0, 0.01rem, 0);color:var(--limel-theme-on-surface-color);background-color:var(--lime-elevated-surface-background-color)}.navigation-button:hover{box-shadow:var(--button-shadow-hovered)}.navigation-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)}.navigation-button:hover,.navigation-button:active{--limel-clickable-transition-speed:0.2s;--limel-clickable-transform-speed:0.16s}.navigation-button:focus{outline:none}.navigation-button:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.navigation-button limel-icon{transition:color 0.2s ease, transform 0.2s cubic-bezier(0.84, 0.15, 0.52, 1.42);color:var(--header-menu-icon-color);width:1.25rem}.newTab limel-icon{transition:transform 0.2s ease;transform:scale(0.8);z-index:3}.newTab:before{z-index:2}.newTab::after{z-index:1}.newTab:before,.newTab:after{content:"";transition:transform 0.2s ease, border-color 0.2s ease;position:absolute;width:0.875rem;height:0.875rem;outline:1.5px solid rgb(var(--contrast-900));border-radius:1px;background-color:var(--navigation-button-background-color, rgb(var(--contrast-100)))}.newTab:hover limel-icon{color:var(--mdc-theme-primary);transform:translate3d(-0.1rem, 0.1rem, 0) scale(1)}.newTab:hover:before{transform:translate3d(0.125rem, -0.125rem, 0);border-color:rgb(var(--contrast-1000));box-shadow:var(--shadow-depth-8)}.newTab:hover:after{transform:translate3d(-0.15rem, 0.15rem, 0) scale(0.9);border-color:rgb(var(--contrast-700))}.expand:after{transition:transform 0.2s ease;content:"";position:absolute;z-index:1;background-color:var(--navigation-button-background-color, rgb(var(--contrast-100)));width:0.75rem;height:0.75rem}.expand:hover limel-icon{color:var(--mdc-theme-primary)}.expand:hover:after{transform:scale(0.5)}.expand:hover limel-icon{transform:scale(1.18)}.minimize:before,.minimize:after,.maximize:before,.maximize:after{content:"";transition:transform 0.3s ease-out 0.15s, background-color 0.1s ease}.minimize limel-icon,.maximize limel-icon{transition:transform 0.2s ease 0.1s}.minimize:before,.maximize:after,.maximize:hover:before{transform:scaleY(1) scaleX(1);z-index:-1;box-sizing:border-box;position:absolute;width:70%;height:60%;border-radius:0.25rem;transform-origin:bottom}.minimize:hover:before,.maximize:before{transition:transform 0.3s ease-out 0.15s, background-color 0.1s ease;transform:scaleY(0.3) scaleX(0.7);background-color:rgb(var(--contrast-500))}.minimize:hover limel-icon,.maximize limel-icon{transform:scaleX(0.8) translate3d(0, 0.4rem, 0)}.maximize limel-icon{color:rgb(var(--contrast-900))}.maximize:hover limel-icon{color:currentColor;transform:scaleX(1.1) translate3d(0, -0.1rem, 0)}.maximize:after{z-index:-2;border:1px dashed rgb(var(--contrast-800))}.close limel-icon{transition:transform 0.2s ease, color 0.2s ease}.close:before,.close:after{transition-delay:0.1s;content:"";position:absolute;inset:0;border-radius:50%;opacity:0}.close:before{transition:transform 0.3s ease, opacity 0.3s ease;background-color:rgb(var(--color-orange-dark))}.close:after{transition:transform 0.6s ease, opacity 0.6s ease;background-color:rgb(var(--color-orange-light))}.close:hover limel-icon{color:rgb(var(--color-white));transform:scale(0.7) rotate(90deg)}.close:hover:before{opacity:1;transform:scale(0.4)}.close:hover:after{opacity:0.4;transform:scale(0.6)}.float:after{transition:width 0.2s ease-out, opacity 0.2s ease;content:"";position:absolute;inset:0 0.5rem 0 auto;border-radius:1px;opacity:0.8;transform:translate3d(0, 0, 0);background-color:rgb(var(--contrast-800));width:0.125rem;height:0.6rem;margin:auto}.float:hover:after{width:0.4rem;opacity:1;transform:translate3d(0, 0, 0)}';const a=class{constructor(o){e(this,o),this.actionSelected=t(this,"actionSelected",7),this.triggerDelay=600,this.openDirection="top",this.popoverMaxWidth="20rem",this.popoverMaxHeight="min(35rem, calc(100vh - 2rem))",this.actions=[],this.isPopoverOpen=!1,this.openPopoverWithDelay=e=>{e.stopPropagation(),clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>{a.currentOpenPopover&&a.currentOpenPopover!==this&&(a.currentOpenPopover.isPopoverOpen=!1),a.currentOpenPopover=this,this.isPopoverOpen=!0}),this.triggerDelay)},this.resetTimeout=()=>{this.isPopoverOpen||clearTimeout(this.hoverTimeout)},this.onPopoverClose=e=>{e.stopPropagation(),this.isPopoverOpen=!1,a.currentOpenPopover===this&&(a.currentOpenPopover=null)},this.handleCloseClick=e=>{e.stopPropagation(),this.isPopoverOpen=!1},this.handleSelected=e=>{this.actionSelected.emit(e.detail)}}render(){return o("limel-popover",{key:"eaadc371fc4bb4bc46e009f9c8ffd82996361c65",style:{"--limebb-summary-popover-timeout":`${this.triggerDelay}ms`},open:this.isPopoverOpen,onClose:this.onPopoverClose,openDirection:this.openDirection},o("div",{key:"2da24adb5ff182b08731bc99e2454c615c19aabf",slot:"trigger",tabIndex:0,onMouseEnter:this.openPopoverWithDelay,onMouseLeave:this.resetTimeout,onFocus:this.openPopoverWithDelay},o("slot",{key:"0bda4e6b3a3c62c9930ddbb287114f1bea45897b",name:"trigger"}),o("div",{key:"25a0847697bc40c869a129a2433968aeed0f1fea",class:"opening-countdown-indicator"})),o("limel-card",{key:"a402a4bcb876e432f70eff407b0d0b0878971f4d",style:{"max-width":this.popoverMaxWidth,"max-height":this.popoverMaxHeight,"min-width":"7rem","min-height":"3rem"},orientation:"landscape",heading:this.heading,subheading:this.subheading,icon:this.icon,value:this.value,image:this.image,actions:this.actions,onActionSelected:this.handleSelected},o("limebb-navigation-button",{key:"5ed4dbb27bf026101ecf0f7dd1a0907fe2f099ad",slot:"component",type:"close",style:{"--navigation-button-background-color":"rgb(var(--contrast-100), 0.8)",position:"absolute",top:"0.125rem",right:"0.125rem"},tooltipLabel:"Close",tooltipHelperLabel:"Esc",onClick:this.handleCloseClick})))}};a.currentOpenPopover=null,a.style="limel-popover{--popover-border-radius:0.95rem;--popover-body-background-color:transparent;--popover-box-shadow:var(--shadow-depth-8)}div[slot=trigger]{position:relative;display:flex;align-items:center;justify-content:center}div[slot=trigger] *{min-width:0;min-height:0}.opening-countdown-indicator{position:absolute;inset:auto 0 -0.25rem 0;margin:0 auto;height:0.125rem;border-radius:1rem;transition:width ease-out, opacity ease;transition-duration:120ms;opacity:0;width:0%;background-color:var(--mdc-theme-primary)}div[slot=trigger]:not([aria-expanded=true]):hover .opening-countdown-indicator{transition-duration:var(--limebb-summary-popover-timeout);opacity:1;width:100%}";export{i as limebb_navigation_button,a as limebb_summary_popover}
@@ -1 +1 @@
1
- import{r,h as d}from"./p-52cf8641.js";const a=class{constructor(a){r(this,a),this.renderHeader=()=>{if(this.heading||this.subheading||this.supportingText||this.icon)return d("limel-header",{heading:this.heading,subheading:this.subheading,supportingText:this.supportingText,icon:this.icon},d("slot",{name:"header-actions"}))}}render(){return[this.renderHeader(),d("slot",{key:"1b38b23d42d5a90c88e814ae617ee98d8dbf4d94",name:"content"})]}};a.style=":host(limebb-dashboard-widget){--dashboard-widget-background-color:var(\n --start-page-grid-widget-background-color,\n rgb(var(--contrast-100))\n );--header-icon-color:var(--dashboard-widget-icon-color);--header-background-color:var(\n --dashboard-widget-header-background-color,\n var(--start-page-grid-widget-header-color)\n );--dashboard-widget-border-radius:var(\n --start-page-grid-widget-border-radius,\n 1rem\n );--header-top-right-left-border-radius:0;display:flex;flex-direction:column;border-radius:var(--dashboard-widget-border-radius);background-color:var(--dashboard-widget-background-color);height:100%;width:100%;overflow:hidden}";export{a as limebb_dashboard_widget}
1
+ import{r,h as d}from"./p-52cf8641.js";const a=class{constructor(a){r(this,a),this.renderHeader=()=>{if(this.heading||this.subheading||this.supportingText||this.icon)return d("limel-header",{heading:this.heading,subheading:this.subheading,supportingText:this.supportingText,icon:this.icon},d("slot",{name:"header-actions"}))}}render(){return[this.renderHeader(),d("slot",{key:"3d016060b9b3287c330d1250c4f107fd2fb25612",name:"content"})]}};a.style=":host(limebb-dashboard-widget){--dashboard-widget-background-color:var(\n --start-page-grid-widget-background-color,\n rgb(var(--contrast-100))\n );--header-icon-color:var(--dashboard-widget-icon-color);--header-background-color:var(\n --dashboard-widget-header-background-color,\n var(--start-page-grid-widget-header-color)\n );--dashboard-widget-border-radius:var(\n --start-page-grid-widget-border-radius,\n 1rem\n );--header-top-right-left-border-radius:0;display:flex;flex-direction:column;border-radius:var(--dashboard-widget-border-radius);background-color:var(--dashboard-widget-background-color);height:100%;width:100%;overflow:hidden}";export{a as limebb_dashboard_widget}
@@ -0,0 +1,77 @@
1
+ import { FileInfo } from '@limetech/lime-elements';
2
+ import { EventEmitter } from '../../stencil-public-runtime';
3
+ import { LimeWebComponentPlatform } from '@limetech/lime-web-components';
4
+ import { ComposerTrigger, FileInputConfig } from './composer-toolbar.types';
5
+ /**
6
+ * A toolbar for composers, primarily intended to be placed below
7
+ * a `limebb-text-editor` in the Activity Feed.
8
+ *
9
+ * The toolbar provides a consistent layout with built-in trigger buttons
10
+ * for common actions (mentions, text snippets, internal links) and
11
+ * a built-in file input. Consumers can extend the toolbar with custom
12
+ * elements using the `leading` and `trailing` slots, and provide their
13
+ * own submit button via the `primary-action` slot.
14
+ *
15
+ * @slot leading - Place custom elements before the built-in actions.
16
+ * For example, a custom file picker.
17
+ * @slot trailing - Place custom elements after the built-in actions.
18
+ * @slot primary-action - The submit button area. Render a `limel-button`
19
+ * or `limel-split-button` here.
20
+ *
21
+ * @exampleComponent limebb-example-composer-toolbar-basic
22
+ * @exampleComponent limebb-example-composer-toolbar-primary-action
23
+ * @exampleComponent limebb-example-composer-toolbar-file-input
24
+ * @exampleComponent limebb-example-composer-toolbar-full
25
+ * @exampleComponent limebb-example-composer-toolbar-custom-slots
26
+ * @exampleComponent limebb-example-composer-toolbar-with-text-editor
27
+ *
28
+ * @beta
29
+ */
30
+ export declare class ComposerToolbar {
31
+ /**
32
+ * @inheritdoc
33
+ */
34
+ platform?: LimeWebComponentPlatform;
35
+ /**
36
+ * When `true`, displays a button that triggers
37
+ * the mention character (`@`) in the text editor.
38
+ */
39
+ mentions: boolean;
40
+ /**
41
+ * When `true`, displays a button that triggers
42
+ * the text snippet character (`!`) in the text editor.
43
+ */
44
+ textSnippets: boolean;
45
+ /**
46
+ * When `true`, displays a button that triggers
47
+ * the internal link character (`#`) in the text editor.
48
+ */
49
+ internalLinks: boolean;
50
+ /**
51
+ * When `true`, displays a button that toggles the visibility
52
+ * of the rich text formatting toolbar in the text editor.
53
+ */
54
+ richText: boolean;
55
+ /**
56
+ * Configuration for the built-in file input button.
57
+ * When provided, an attachment button is rendered.
58
+ * Set to `null` or `undefined` to hide the file input.
59
+ */
60
+ fileInput?: FileInputConfig;
61
+ /**
62
+ * Fired when a built-in trigger button is clicked.
63
+ */
64
+ triggerInsert: EventEmitter<ComposerTrigger>;
65
+ /**
66
+ * Fired when files are selected via the built-in file input.
67
+ */
68
+ filesSelected: EventEmitter<FileInfo[]>;
69
+ render(): any[];
70
+ private get translator();
71
+ private get triggerActions();
72
+ private renderTriggerActions;
73
+ private handleTriggerSelected;
74
+ private renderFileInput;
75
+ private handleFilesSelected;
76
+ }
77
+ //# sourceMappingURL=composer-toolbar.d.ts.map
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Identifies which built-in trigger button was clicked.
3
+ * Each trigger corresponds to a special character that gets
4
+ * inserted into the text editor.
5
+ *
6
+ * - `mention` → `@` (mentions a coworker)
7
+ * - `text-snippet` → `!` (inserts a text snippet)
8
+ * - `internal-link` → `#` (links to a CRM object)
9
+ * - `rich-text` → toggles the rich text formatting toolbar
10
+ *
11
+ * @public
12
+ */
13
+ export type ComposerTrigger = 'mention' | 'text-snippet' | 'internal-link' | 'rich-text';
14
+ /**
15
+ * Configuration for the built-in file input.
16
+ *
17
+ * @public
18
+ */
19
+ export interface FileInputConfig {
20
+ /**
21
+ * Specifies the types of files that will be accepted.
22
+ * By default, all file types are accepted.
23
+ *
24
+ * Formats can be specified using MIME types (`image/*`, `audio/*`),
25
+ * file extensions (`.jpg`, `.pdf`), or a comma-separated combination
26
+ * of both (e.g. `image/png, .pdf`).
27
+ *
28
+ * @see [HTML attribute: accept](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept)
29
+ */
30
+ accept?: string;
31
+ /**
32
+ * Set to `true` to allow selection of multiple files.
33
+ */
34
+ multiple?: boolean;
35
+ /**
36
+ * Set to `true` to disable the file input.
37
+ */
38
+ disabled?: boolean;
39
+ }
40
+ //# sourceMappingURL=composer-toolbar.types.d.ts.map
@@ -8,9 +8,10 @@ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { AlertType } from "./components/alert-dialog/alert-dialog.types";
9
9
  import { AggregateOperator, AndOrExpression, Expression, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator } from "@limetech/lime-web-components";
10
10
  import { BrowserItem } from "./components/browser/browser-item.types";
11
- import { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FormInfo, Icon, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
11
+ import { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
12
12
  import { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
13
13
  import { ComponentPickerType } from "./components/component-command-picker/types";
14
+ import { ComposerTrigger, FileInputConfig } from "./components/composer-toolbar/composer-toolbar.types";
14
15
  import { DataCell } from "./components/data-cells/data-cells.types";
15
16
  import { DocumentItem } from "./components/document-picker/document-item/document-item.types";
16
17
  import { DocumentType } from "./components/document-picker/document.types";
@@ -29,9 +30,10 @@ import { EnhancedEditorMetadata } from "./components/text-editor/uploader/buildi
29
30
  export { AlertType } from "./components/alert-dialog/alert-dialog.types";
30
31
  export { AggregateOperator, AndOrExpression, Expression, LimeFileUrlType, LimeType, LimeWebComponentContext, LimeWebComponentPlatform, NotExpression, Operator } from "@limetech/lime-web-components";
31
32
  export { BrowserItem } from "./components/browser/browser-item.types";
32
- export { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FormInfo, Icon, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
33
+ export { ActionBarItem, CustomElementDefinition, DateType, EditorUiType, FileInfo, FormInfo, Icon, Image, Languages, ListItem, ListSeparator, OpenDirection } from "@limetech/lime-elements";
33
34
  export { ChatItem } from "./components/chat-list/chat-item/chat-item.types";
34
35
  export { ComponentPickerType } from "./components/component-command-picker/types";
36
+ export { ComposerTrigger, FileInputConfig } from "./components/composer-toolbar/composer-toolbar.types";
35
37
  export { DataCell } from "./components/data-cells/data-cells.types";
36
38
  export { DocumentItem } from "./components/document-picker/document-item/document-item.types";
37
39
  export { DocumentType } from "./components/document-picker/document.types";
@@ -327,6 +329,48 @@ export namespace Components {
327
329
  */
328
330
  "value": string;
329
331
  }
332
+ /**
333
+ * A toolbar for composers, primarily intended to be placed below
334
+ * a `limebb-text-editor` in the Activity Feed.
335
+ * The toolbar provides a consistent layout with built-in trigger buttons
336
+ * for common actions (mentions, text snippets, internal links) and
337
+ * a built-in file input. Consumers can extend the toolbar with custom
338
+ * elements using the `leading` and `trailing` slots, and provide their
339
+ * own submit button via the `primary-action` slot.
340
+ * @exampleComponent limebb-example-composer-toolbar-basic
341
+ * @exampleComponent limebb-example-composer-toolbar-primary-action
342
+ * @exampleComponent limebb-example-composer-toolbar-file-input
343
+ * @exampleComponent limebb-example-composer-toolbar-full
344
+ * @exampleComponent limebb-example-composer-toolbar-custom-slots
345
+ * @exampleComponent limebb-example-composer-toolbar-with-text-editor
346
+ * @beta
347
+ */
348
+ interface LimebbComposerToolbar {
349
+ /**
350
+ * Configuration for the built-in file input button. When provided, an attachment button is rendered. Set to `null` or `undefined` to hide the file input.
351
+ */
352
+ "fileInput"?: FileInputConfig;
353
+ /**
354
+ * When `true`, displays a button that triggers the internal link character (`#`) in the text editor.
355
+ */
356
+ "internalLinks": boolean;
357
+ /**
358
+ * When `true`, displays a button that triggers the mention character (`@`) in the text editor.
359
+ */
360
+ "mentions": boolean;
361
+ /**
362
+ * @inheritdoc
363
+ */
364
+ "platform"?: LimeWebComponentPlatform;
365
+ /**
366
+ * When `true`, displays a button that toggles the visibility of the rich text formatting toolbar in the text editor.
367
+ */
368
+ "richText": boolean;
369
+ /**
370
+ * When `true`, displays a button that triggers the text snippet character (`!`) in the text editor.
371
+ */
372
+ "textSnippets": boolean;
373
+ }
330
374
  /**
331
375
  * All currencies have a ISO code, an international standard with three-letters
332
376
  * which is used by many systems such as ERPs.
@@ -2247,6 +2291,10 @@ export interface LimebbComponentPickerCustomEvent<T> extends CustomEvent<T> {
2247
2291
  detail: T;
2248
2292
  target: HTMLLimebbComponentPickerElement;
2249
2293
  }
2294
+ export interface LimebbComposerToolbarCustomEvent<T> extends CustomEvent<T> {
2295
+ detail: T;
2296
+ target: HTMLLimebbComposerToolbarElement;
2297
+ }
2250
2298
  export interface LimebbCurrencyPickerCustomEvent<T> extends CustomEvent<T> {
2251
2299
  detail: T;
2252
2300
  target: HTMLLimebbCurrencyPickerElement;
@@ -2564,6 +2612,40 @@ declare global {
2564
2612
  prototype: HTMLLimebbComponentPickerElement;
2565
2613
  new (): HTMLLimebbComponentPickerElement;
2566
2614
  };
2615
+ interface HTMLLimebbComposerToolbarElementEventMap {
2616
+ "triggerInsert": ComposerTrigger;
2617
+ "filesSelected": FileInfo[];
2618
+ }
2619
+ /**
2620
+ * A toolbar for composers, primarily intended to be placed below
2621
+ * a `limebb-text-editor` in the Activity Feed.
2622
+ * The toolbar provides a consistent layout with built-in trigger buttons
2623
+ * for common actions (mentions, text snippets, internal links) and
2624
+ * a built-in file input. Consumers can extend the toolbar with custom
2625
+ * elements using the `leading` and `trailing` slots, and provide their
2626
+ * own submit button via the `primary-action` slot.
2627
+ * @exampleComponent limebb-example-composer-toolbar-basic
2628
+ * @exampleComponent limebb-example-composer-toolbar-primary-action
2629
+ * @exampleComponent limebb-example-composer-toolbar-file-input
2630
+ * @exampleComponent limebb-example-composer-toolbar-full
2631
+ * @exampleComponent limebb-example-composer-toolbar-custom-slots
2632
+ * @exampleComponent limebb-example-composer-toolbar-with-text-editor
2633
+ * @beta
2634
+ */
2635
+ interface HTMLLimebbComposerToolbarElement extends Components.LimebbComposerToolbar, HTMLStencilElement {
2636
+ addEventListener<K extends keyof HTMLLimebbComposerToolbarElementEventMap>(type: K, listener: (this: HTMLLimebbComposerToolbarElement, ev: LimebbComposerToolbarCustomEvent<HTMLLimebbComposerToolbarElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2637
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2638
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2639
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2640
+ removeEventListener<K extends keyof HTMLLimebbComposerToolbarElementEventMap>(type: K, listener: (this: HTMLLimebbComposerToolbarElement, ev: LimebbComposerToolbarCustomEvent<HTMLLimebbComposerToolbarElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2641
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2642
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2643
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2644
+ }
2645
+ var HTMLLimebbComposerToolbarElement: {
2646
+ prototype: HTMLLimebbComposerToolbarElement;
2647
+ new (): HTMLLimebbComposerToolbarElement;
2648
+ };
2567
2649
  interface HTMLLimebbCurrencyPickerElementEventMap {
2568
2650
  "change": string;
2569
2651
  }
@@ -3903,6 +3985,7 @@ declare global {
3903
3985
  "limebb-chat-list": HTMLLimebbChatListElement;
3904
3986
  "limebb-component-config": HTMLLimebbComponentConfigElement;
3905
3987
  "limebb-component-picker": HTMLLimebbComponentPickerElement;
3988
+ "limebb-composer-toolbar": HTMLLimebbComposerToolbarElement;
3906
3989
  "limebb-currency-picker": HTMLLimebbCurrencyPickerElement;
3907
3990
  "limebb-dashboard-widget": HTMLLimebbDashboardWidgetElement;
3908
3991
  "limebb-data-cells": HTMLLimebbDataCellsElement;
@@ -4257,6 +4340,56 @@ declare namespace LocalJSX {
4257
4340
  */
4258
4341
  "value"?: string;
4259
4342
  }
4343
+ /**
4344
+ * A toolbar for composers, primarily intended to be placed below
4345
+ * a `limebb-text-editor` in the Activity Feed.
4346
+ * The toolbar provides a consistent layout with built-in trigger buttons
4347
+ * for common actions (mentions, text snippets, internal links) and
4348
+ * a built-in file input. Consumers can extend the toolbar with custom
4349
+ * elements using the `leading` and `trailing` slots, and provide their
4350
+ * own submit button via the `primary-action` slot.
4351
+ * @exampleComponent limebb-example-composer-toolbar-basic
4352
+ * @exampleComponent limebb-example-composer-toolbar-primary-action
4353
+ * @exampleComponent limebb-example-composer-toolbar-file-input
4354
+ * @exampleComponent limebb-example-composer-toolbar-full
4355
+ * @exampleComponent limebb-example-composer-toolbar-custom-slots
4356
+ * @exampleComponent limebb-example-composer-toolbar-with-text-editor
4357
+ * @beta
4358
+ */
4359
+ interface LimebbComposerToolbar {
4360
+ /**
4361
+ * Configuration for the built-in file input button. When provided, an attachment button is rendered. Set to `null` or `undefined` to hide the file input.
4362
+ */
4363
+ "fileInput"?: FileInputConfig;
4364
+ /**
4365
+ * When `true`, displays a button that triggers the internal link character (`#`) in the text editor.
4366
+ */
4367
+ "internalLinks"?: boolean;
4368
+ /**
4369
+ * When `true`, displays a button that triggers the mention character (`@`) in the text editor.
4370
+ */
4371
+ "mentions"?: boolean;
4372
+ /**
4373
+ * Fired when files are selected via the built-in file input.
4374
+ */
4375
+ "onFilesSelected"?: (event: LimebbComposerToolbarCustomEvent<FileInfo[]>) => void;
4376
+ /**
4377
+ * Fired when a built-in trigger button is clicked.
4378
+ */
4379
+ "onTriggerInsert"?: (event: LimebbComposerToolbarCustomEvent<ComposerTrigger>) => void;
4380
+ /**
4381
+ * @inheritdoc
4382
+ */
4383
+ "platform"?: LimeWebComponentPlatform;
4384
+ /**
4385
+ * When `true`, displays a button that toggles the visibility of the rich text formatting toolbar in the text editor.
4386
+ */
4387
+ "richText"?: boolean;
4388
+ /**
4389
+ * When `true`, displays a button that triggers the text snippet character (`!`) in the text editor.
4390
+ */
4391
+ "textSnippets"?: boolean;
4392
+ }
4260
4393
  /**
4261
4394
  * All currencies have a ISO code, an international standard with three-letters
4262
4395
  * which is used by many systems such as ERPs.
@@ -6334,6 +6467,7 @@ declare namespace LocalJSX {
6334
6467
  "limebb-chat-list": LimebbChatList;
6335
6468
  "limebb-component-config": LimebbComponentConfig;
6336
6469
  "limebb-component-picker": LimebbComponentPicker;
6470
+ "limebb-composer-toolbar": LimebbComposerToolbar;
6337
6471
  "limebb-currency-picker": LimebbCurrencyPicker;
6338
6472
  "limebb-dashboard-widget": LimebbDashboardWidget;
6339
6473
  "limebb-data-cells": LimebbDataCells;
@@ -6485,6 +6619,23 @@ declare module "@stencil/core" {
6485
6619
  * @exampleComponent limebb-example-command-picker
6486
6620
  */
6487
6621
  "limebb-component-picker": LocalJSX.LimebbComponentPicker & JSXBase.HTMLAttributes<HTMLLimebbComponentPickerElement>;
6622
+ /**
6623
+ * A toolbar for composers, primarily intended to be placed below
6624
+ * a `limebb-text-editor` in the Activity Feed.
6625
+ * The toolbar provides a consistent layout with built-in trigger buttons
6626
+ * for common actions (mentions, text snippets, internal links) and
6627
+ * a built-in file input. Consumers can extend the toolbar with custom
6628
+ * elements using the `leading` and `trailing` slots, and provide their
6629
+ * own submit button via the `primary-action` slot.
6630
+ * @exampleComponent limebb-example-composer-toolbar-basic
6631
+ * @exampleComponent limebb-example-composer-toolbar-primary-action
6632
+ * @exampleComponent limebb-example-composer-toolbar-file-input
6633
+ * @exampleComponent limebb-example-composer-toolbar-full
6634
+ * @exampleComponent limebb-example-composer-toolbar-custom-slots
6635
+ * @exampleComponent limebb-example-composer-toolbar-with-text-editor
6636
+ * @beta
6637
+ */
6638
+ "limebb-composer-toolbar": LocalJSX.LimebbComposerToolbar & JSXBase.HTMLAttributes<HTMLLimebbComposerToolbarElement>;
6488
6639
  /**
6489
6640
  * All currencies have a ISO code, an international standard with three-letters
6490
6641
  * which is used by many systems such as ERPs.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-crm-building-blocks",
3
- "version": "1.112.2",
3
+ "version": "1.113.0",
4
4
  "description": "A home for shared components meant for use with Lime CRM",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -35,11 +35,11 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@limetech/eslint-config": "^3.0.1",
38
- "@limetech/lime-elements": "^39.10.3",
38
+ "@limetech/lime-elements": "^39.12.0",
39
39
  "@limetech/lime-web-components": "^6.13.1",
40
40
  "@limetech/lime-web-components-testing": "^1.0.0",
41
- "@lundalogik/lime-icons8": "^2.38.1",
42
- "@lundalogik/limeclient.js": "^1.88.4",
41
+ "@lundalogik/lime-icons8": "^2.38.2",
42
+ "@lundalogik/limeclient.js": "^1.88.5",
43
43
  "@stencil/core": "^4.27.2",
44
44
  "@stencil/sass": "^3.1.9",
45
45
  "@types/jest": "^29.5.14",
@@ -1 +0,0 @@
1
- import{r as e,c as i,h as t,H as l}from"./p-52cf8641.js";import{c as o}from"./p-fbda77a7.js";const s=class{constructor(l){e(this,l),this.change=i(this,"change",7),this.items=[],this.invalid=!1,this.required=!1,this.type="checkbox",this.handleItemInteract=e=>{e.stopPropagation();const i=e.detail;if(!i)return;let t;t="radio"===this.type?this.items.map((e=>Object.assign(Object.assign({},e),e.file.id===i.file.id?{selected:i.selected}:{selected:!1}))).find((e=>e.selected)):this.items.map((e=>e.file.id===i.file.id?Object.assign(Object.assign({},e),{selected:i.selected}):e)).filter((e=>e.selected)),this.change.emit(t)},this.renderHelperLine=()=>{if(this.helperText)return t("limel-helper-line",{helperText:this.helperText,helperTextId:this.helperTextId,invalid:this.invalid})},this.helperTextId=o(),this.labelId=o()}render(){return t(l,{key:"48b0a743a0ae3295497d40ac4c363e3b273ef079"},t("limel-notched-outline",{key:"11888648097397f97361b3088c047ebb947a3ac7",labelId:this.labelId,label:this.label,required:this.required,invalid:this.invalid,hasFloatingLabel:!0},t("div",{key:"3288515518395ff1f57c2614760bd549d107f9b5",slot:"content",role:"radio"===this.type?"radiogroup":"group","aria-labelledby":this.label?this.labelId:void 0,"aria-describedby":this.helperText?this.helperTextId:void 0},this.renderItems())),this.renderHelperLine())}renderItems(){return this.items.map((e=>t("limebb-document-item",{platform:this.platform,context:this.context,item:e,key:e.file.id,type:this.type,onInteract:this.handleItemInteract})))}};s.style='@charset "UTF-8";:host(limebb-document-picker:not([invalid]):not([invalid=true])) .limel-notched-outline{--limel-notched-outline-border-color:transparent;--limel-notched-outline-background-color:transparent}div[slot=content]{display:block;width:100%;padding:0.75rem 0.5rem;columns:10rem;gap:clamp(0.25rem, 2vmin, 0.75rem)}div[slot=content]>limebb-document-item{display:block;break-inside:avoid;margin-bottom:clamp(0.25rem, 2vmin, 0.75rem)}@supports (grid-template-rows: masonry){div[slot=content]{column-width:initial;column-gap:initial;display:grid;grid-template-columns:repeat(auto-fill, minmax(10rem, 1fr));grid-template-rows:masonry;grid-auto-flow:dense;gap:0.5rem}div[slot=content]>limebb-document-item{display:block;width:auto;margin:0;break-inside:auto}}:host(limebb-document-picker:focus),:host(limebb-document-picker:focus-visible),:host(limebb-document-picker:focus-within){--limel-h-l-grid-template-rows-transition-speed:0.46s;--limel-h-l-grid-template-rows:1fr}:host(limebb-document-picker){--limel-h-l-grid-template-rows-transition-speed:0.3s;--limel-h-l-grid-template-rows:0fr}:host(limebb-document-picker:focus) limel-helper-line,:host(limebb-document-picker:focus-visible) limel-helper-line,:host(limebb-document-picker:focus-within) limel-helper-line,:host(limebb-document-picker:hover) limel-helper-line{will-change:grid-template-rows}';export{s as limebb_document_picker}