@limetech/lime-crm-building-blocks 1.104.5 → 1.105.1

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 (51) 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-document-item.cjs.entry.js +29 -8
  4. package/dist/cjs/limebb-document-picker.cjs.entry.js +3 -3
  5. package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +28 -3
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
  8. package/dist/collection/components/chat-list/chat-list.js +2 -2
  9. package/dist/collection/components/component-command-picker/component-config/component-config.js +2 -2
  10. package/dist/collection/components/component-command-picker/component-picker/component-picker.js +2 -2
  11. package/dist/collection/components/date-picker/date-picker.js +2 -2
  12. package/dist/collection/components/date-range/date-range.js +2 -2
  13. package/dist/collection/components/document-picker/document-item/document-item.js +55 -10
  14. package/dist/collection/components/document-picker/document-picker.js +5 -5
  15. package/dist/collection/components/feed/feed-item/feed-timeline-item.js +2 -2
  16. package/dist/collection/components/feed/feed.js +2 -2
  17. package/dist/collection/components/info-tile/info-tile.js +2 -2
  18. package/dist/collection/components/kanban/kanban-group/kanban-group.js +2 -2
  19. package/dist/collection/components/kanban/kanban-item/kanban-item.js +2 -2
  20. package/dist/collection/components/kanban/kanban.js +2 -2
  21. package/dist/collection/components/lime-query-builder/lime-query-builder.css +1 -0
  22. package/dist/collection/components/lime-query-builder/lime-query-builder.js +29 -3
  23. package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +2 -2
  24. package/dist/collection/components/limeobject/file-viewer/file-viewer.js +2 -2
  25. package/dist/collection/components/loader/loader.js +2 -2
  26. package/dist/collection/components/locale-picker/locale-picker.js +2 -2
  27. package/dist/collection/components/notification-list/notification-item/notification-item.js +2 -2
  28. package/dist/collection/components/notification-list/notification-list.js +2 -2
  29. package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
  30. package/dist/collection/components/trend-indicator/trend-indicator.js +2 -2
  31. package/dist/components/document-item.js +31 -9
  32. package/dist/components/limebb-document-picker.js +3 -3
  33. package/dist/components/limebb-lime-query-builder.js +30 -4
  34. package/dist/esm/lime-crm-building-blocks.js +1 -1
  35. package/dist/esm/limebb-document-item.entry.js +29 -8
  36. package/dist/esm/limebb-document-picker.entry.js +3 -3
  37. package/dist/esm/limebb-lime-query-builder.entry.js +28 -3
  38. package/dist/esm/loader.js +1 -1
  39. package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
  40. package/dist/lime-crm-building-blocks/p-1421e1f8.entry.js +1 -0
  41. package/dist/lime-crm-building-blocks/p-2673c79e.entry.js +1 -0
  42. package/dist/lime-crm-building-blocks/p-80b9d946.entry.js +1 -0
  43. package/dist/types/components/document-picker/document-item/document-item.d.ts +8 -1
  44. package/dist/types/components/document-picker/document-item/document-item.types.d.ts +3 -15
  45. package/dist/types/components/lime-query-builder/lime-query-builder.d.ts +4 -0
  46. package/dist/types/components/lime-query-builder/lime-query.types.d.ts +16 -0
  47. package/dist/types/components.d.ts +96 -88
  48. package/package.json +4 -4
  49. package/dist/lime-crm-building-blocks/p-2abf615b.entry.js +0 -1
  50. package/dist/lime-crm-building-blocks/p-876701c6.entry.js +0 -1
  51. package/dist/lime-crm-building-blocks/p-9d25ed5a.entry.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as e,c as i,h as t,H as l}from"./p-1556b545.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:"5e4a9004ed3b81b6c35be868c664e61cb88d490c"},t("limel-notched-outline",{key:"ada8928b3ed815896e1ef5fb61f539f0ab77c7af",labelId:this.labelId,label:this.label,required:this.required,invalid:this.invalid,hasFloatingLabel:!0},t("div",{key:"343aeef460a4ea4e0a4a247daf6988f749dc2b49",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}
@@ -0,0 +1 @@
1
+ import{r as i,c as e,h as t,H as o}from"./p-1556b545.js";const r=class{constructor(t){i(this,t),this.interact=e(this,"interact",7),this.type="checkbox",this.fileTypes=["view","contents","download"],this.handleDocumentItemClick=i=>{if(!this.isUnavailable()){if((null==i?void 0:i.target)instanceof HTMLElement&&(i.target.closest("limel-checkbox")||i.target.closest("limel-radio-button")))return;this.toggleSelection()}},this.handleSelectionControlClick=i=>{var e,t;i.stopPropagation(),this.isUnavailable()||"radio"===this.type&&(null===(e=this.item)||void 0===e?void 0:e.selected)&&(i.preventDefault(),this.forceInputUnchecked(i),this.emitSelectionChange(!(null===(t=this.item)||void 0===t?void 0:t.selected)))},this.handleSelectionControlChange=i=>{var e;if(i.stopPropagation(),this.isUnavailable())return;let t;if("detail"in i&&"boolean"==typeof i.detail)t=i.detail;else{const e=i.target;t=!!(null==e?void 0:e.checked)}"radio"!==this.type||!(null===(e=this.item)||void 0===e?void 0:e.selected)||t?this.emitSelectionChange(t):this.emitSelectionChange(!1)},this.handleKeyDown=i=>{" "!==i.key&&"Enter"!==i.key||(i.preventDefault(),this.isUnavailable()||this.toggleSelection())}}render(){const i=this.isUnavailable(),e=this.getImage();return t(o,{key:"7fc37bbc0185cdb38c837f2487c88f4d275d1c2f",id:String(this.item.file.id),class:{"has-image":!!e,"has-error":!!this.item.hasError},role:"radio"===this.type?"radio":"checkbox","aria-checked":this.item.selected?"true":"false","aria-disabled":i?"true":"false",tabIndex:i?-1:0},t("limel-card",{key:"da1329af4f1eac4617da054b5b02715b512631ff",image:e,clickable:!i,onClick:this.handleDocumentItemClick,onKeyDown:this.handleKeyDown},t("div",{key:"a30361cfb76512065fe3cf1b513f31257cf115ee",slot:"component"},this.renderFileSize(),this.renderBooleanInput())),this.renderHelp())}renderBooleanInput(){const i=this.getControlId();return t("radio"===this.type?"limel-radio-button":"limel-checkbox",{id:i,label:this.item.file.filename,disabled:this.isUnavailable(),checked:this.item.selected,onClick:this.handleSelectionControlClick,onChange:this.handleSelectionControlChange})}renderFileSize(){var i,e;const o=function(i,e=1){if(null==i||Number.isNaN(i))return"";if(i<0)return"";if(0===i)return"0 B";const t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],o=Math.min(t.length-1,Math.floor(Math.log(i)/Math.log(1024))),r=i/Math.pow(1024,o),l=r<10?Math.max(0,e):0;return`${Number.parseFloat(r.toFixed(l))} ${t[o]}`}(null===(e=null===(i=this.item)||void 0===i?void 0:i.file)||void 0===e?void 0:e.size);if(o)return t("span",{class:"file-size"},o)}renderHelp(){if(this.item.help)return t("limel-help",{value:this.item.help,openDirection:"bottom-end"})}toggleSelection(){var i,e;if("radio"===this.type){const e=!(null===(i=this.item)||void 0===i?void 0:i.selected);return void this.emitSelectionChange(e)}const t=!(null===(e=this.item)||void 0===e?void 0:e.selected);this.emitSelectionChange(t)}emitSelectionChange(i){this.interact.emit(Object.assign(Object.assign({},this.item),{selected:i}))}getControlId(){return`boolean-input-${String(this.item.file.id)}`}isUnavailable(){var i,e;return(null===(i=this.item)||void 0===i?void 0:i.disabled)||(null===(e=this.item)||void 0===e?void 0:e.hasError)}forceInputUnchecked(i){const e=i.target,t=null==e?void 0:e.closest("limel-radio-button"),o=null==t?void 0:t.querySelector('input[type="radio"]');o&&(o.checked=!1)}getImage(){const i=this.hrefForFile();if(i)return{src:i,alt:this.item.file.filename}}hrefForFile(){return["preview",...this.fileTypes].map((i=>this.item.file.getUrl(i))).find(Boolean)}static get delegatesFocus(){return!0}};r.style="*{box-sizing:border-box;min-width:0;min-height:0}:host(limebb-document-item){position:relative}limel-card:not([clickable]):not([clickable=true]){pointer-events:none;opacity:0.75}div[slot=component]{pointer-events:none;display:flex;flex-direction:column;margin-top:-0.25rem;padding:0 0.25rem}limel-checkbox,limel-radio-button{width:100%}.file-size{pointer-events:none;width:fit-content;padding:0 0.375rem;font-size:0.6875rem;color:rgb(var(--color-white));border-radius:1rem;opacity:0.75;background-color:rgb(var(--color-glaucous-darker), 0.8);box-shadow:var(--shadow-brighten-edges-outside);backdrop-filter:blur(0.75rem);margin-top:0.5rem}:host(.has-image) .file-size{margin-top:-1.5rem;margin-bottom:0.5rem}limel-help{position:absolute;top:0;right:0}:host(.has-error) limel-card{box-shadow:0 0 0 1px rgb(var(--color-red-light))}:host(.has-error) limel-help{--color-sky-default:var(\n --color-red-default\n );--color-sky-lighter:var(--color-red-lighter);--lime-elevated-surface-background-color:rgb(\n var(--color-yellow-default)\n )}";export{r as limebb_document_item}
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '../../../stencil-public-runtime';
2
- import { LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
2
+ import { LimeFileUrlType, LimeWebComponent, LimeWebComponentContext, LimeWebComponentPlatform } from '@limetech/lime-web-components';
3
3
  import { DocumentItem } from './document-item.types';
4
4
  /**
5
5
  * Document item
@@ -25,6 +25,11 @@ export declare class DocumentItemComponent implements LimeWebComponent {
25
25
  * - 'checkbox': renders a checkbox for multiple selection.
26
26
  */
27
27
  type: 'radio' | 'checkbox';
28
+ /**
29
+ * The preferred file URL types to use when displaying
30
+ * the document's image preview.
31
+ */
32
+ fileTypes: LimeFileUrlType[];
28
33
  /**
29
34
  * Fired when clicking on the document item.
30
35
  */
@@ -42,5 +47,7 @@ export declare class DocumentItemComponent implements LimeWebComponent {
42
47
  private getControlId;
43
48
  private isUnavailable;
44
49
  private forceInputUnchecked;
50
+ private getImage;
51
+ private hrefForFile;
45
52
  }
46
53
  //# sourceMappingURL=document-item.d.ts.map
@@ -1,21 +1,9 @@
1
- import { Image } from '@limetech/lime-elements';
1
+ import { LimeFile } from '@limetech/lime-web-components';
2
2
  export interface DocumentItem {
3
3
  /**
4
- * The unique identifier for the document.
4
+ * The underlying file metadata for the document.
5
5
  */
6
- id: number | string;
7
- /**
8
- * The file name of the document, which ends with the file extension.
9
- */
10
- fileName: string;
11
- /**
12
- * The size of the document in bytes.
13
- */
14
- fileSize?: number;
15
- /**
16
- * A thumbnail visualizing the document.
17
- */
18
- thumbnail?: Image;
6
+ file: LimeFile;
19
7
  /**
20
8
  * Indicates the selected state of the document.
21
9
  */
@@ -65,6 +65,7 @@ export declare class LimeQueryBuilder implements LimeWebComponent {
65
65
  private internalResponseFormat?;
66
66
  private limit?;
67
67
  private orderBy?;
68
+ private description?;
68
69
  private getButtons;
69
70
  private get visualModeEnabled();
70
71
  componentWillLoad(): void;
@@ -75,6 +76,8 @@ export declare class LimeQueryBuilder implements LimeWebComponent {
75
76
  private handleResponseFormatChange;
76
77
  private handleLimitChange;
77
78
  private handleOrderByChange;
79
+ private handleDescriptionChange;
80
+ private handleDescriptionBlur;
78
81
  private emitChange;
79
82
  private updateCodeValue;
80
83
  private buildLimeQuery;
@@ -82,6 +85,7 @@ export declare class LimeQueryBuilder implements LimeWebComponent {
82
85
  private renderModeSwitch;
83
86
  private renderCodeEditor;
84
87
  private renderLimetypeSection;
88
+ private renderDescriptionSection;
85
89
  private renderResponseFormatSection;
86
90
  private renderFilterSection;
87
91
  private renderQueryOptionsSection;
@@ -6,7 +6,23 @@
6
6
  * - lime-core/lime_filter/schema.py
7
7
  */
8
8
  import { Expression } from '@limetech/lime-web-components';
9
+ /**
10
+ * Lime Query structure
11
+ * @example
12
+ * {
13
+ * "#description": "High-value deals with customer info",
14
+ * "limetype": "deal",
15
+ * "responseFormat": { "object": { "name": null } }
16
+ * }
17
+ */
9
18
  export interface LimeQuery {
19
+ /**
20
+ * Optional human-readable description of the query's purpose.
21
+ * Useful for documenting what data the query retrieves, particularly
22
+ * when passing queries to AI agents for context.
23
+ * This field is preserved but ignored by the backend.
24
+ */
25
+ '#description'?: string;
10
26
  limetype: string;
11
27
  responseFormat: ResponseFormat;
12
28
  filter?: Expression;