@limetech/lime-crm-building-blocks 1.129.0 → 1.131.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.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/filter-group-logic-Bwk6B784.js +136 -0
- package/dist/cjs/{index-C_OnxXhP.js → index-dBY184XR.js} +12 -0
- package/dist/cjs/{index.esm-g8gOl7RV.js → index.esm-DcWSoSRE.js} +2 -2
- package/dist/cjs/lime-crm-building-blocks.cjs.js +2 -2
- package/dist/cjs/lime-query-operators-Ci-RNshi.js +65 -0
- package/dist/cjs/{lime-query-validation-DTurSvtv.js → lime-query-validation-nql4N6Z8.js} +1 -1
- package/dist/cjs/limebb-alert-dialog.cjs.entry.js +2 -2
- package/dist/cjs/limebb-browser.cjs.entry.js +4 -4
- package/dist/cjs/limebb-chat-icon-list_3.cjs.entry.js +6 -6
- package/dist/cjs/limebb-chat-list.cjs.entry.js +3 -3
- package/dist/cjs/limebb-color-palette-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-color-palette-swatches.cjs.entry.js +2 -2
- package/dist/cjs/limebb-component-config.cjs.entry.js +3 -3
- package/dist/cjs/limebb-component-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-composer-toolbar.cjs.entry.js +4 -4
- package/dist/cjs/limebb-currency-picker.cjs.entry.js +3 -3
- package/dist/cjs/limebb-dashboard-widget.cjs.entry.js +2 -2
- package/dist/cjs/limebb-data-cells.cjs.entry.js +2 -2
- package/dist/cjs/limebb-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/limebb-date-range.cjs.entry.js +2 -2
- package/dist/cjs/limebb-document-chips.cjs.entry.js +2 -2
- package/dist/cjs/limebb-document-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-document-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/limebb-feed-item-thumbnail-file-info.cjs.entry.js +2 -2
- package/dist/cjs/limebb-feed-timeline-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-feed.cjs.entry.js +3 -3
- package/dist/cjs/limebb-icon-picker.cjs.entry.js +2 -2
- package/dist/cjs/limebb-info-tile-currency-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-date-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-decimal-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-format.cjs.entry.js +2 -2
- package/dist/cjs/limebb-info-tile-relative-date-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile-unit-format.cjs.entry.js +1 -1
- package/dist/cjs/limebb-info-tile.cjs.entry.js +4 -4
- package/dist/cjs/limebb-kanban-group.cjs.entry.js +3 -3
- package/dist/cjs/limebb-kanban-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-kanban.cjs.entry.js +1 -1
- package/dist/cjs/limebb-lime-query-builder.cjs.entry.js +4 -4
- package/dist/cjs/limebb-lime-query-filter-builder.cjs.entry.js +4 -8
- package/dist/cjs/{limebb-lime-query-filter-group_3.cjs.entry.js → limebb-lime-query-filter-comparison-editor_4.cjs.entry.js} +158 -187
- package/dist/cjs/limebb-lime-query-filter-comparison_2.cjs.entry.js +83 -121
- package/dist/cjs/limebb-lime-query-order-by-editor_2.cjs.entry.js +5 -5
- package/dist/cjs/limebb-lime-query-order-by-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-lime-query-response-format-builder.cjs.entry.js +4 -4
- package/dist/cjs/limebb-lime-query-response-format-editor_2.cjs.entry.js +2 -2
- package/dist/cjs/limebb-limeobject-file-viewer.cjs.entry.js +2 -2
- package/dist/cjs/limebb-live-docs-info.cjs.entry.js +3 -3
- package/dist/cjs/limebb-loader.cjs.entry.js +2 -2
- package/dist/cjs/limebb-locale-picker.cjs.entry.js +3 -3
- package/dist/cjs/limebb-mention-group-counter.cjs.entry.js +3 -3
- package/dist/cjs/limebb-mention.cjs.entry.js +2 -2
- package/dist/cjs/limebb-navigation-button_2.cjs.entry.js +3 -3
- package/dist/cjs/limebb-notification-item.cjs.entry.js +3 -3
- package/dist/cjs/limebb-notification-list.cjs.entry.js +2 -2
- package/dist/cjs/limebb-object-chip.cjs.entry.js +3 -3
- package/dist/cjs/limebb-percentage-visualizer.cjs.entry.js +4 -4
- package/dist/cjs/limebb-property-selector.cjs.entry.js +42 -19
- package/dist/cjs/limebb-rule-arg-filter-editor.cjs.entry.js +2 -2
- package/dist/cjs/limebb-rule-chip-popover.cjs.entry.js +4 -4
- package/dist/cjs/limebb-rule-editor.cjs.entry.js +104 -12
- package/dist/cjs/limebb-rule-gate.cjs.entry.js +3 -3
- package/dist/cjs/limebb-text-editor-picker.cjs.entry.js +1 -1
- package/dist/cjs/limebb-text-editor.cjs.entry.js +4 -4
- package/dist/cjs/limebb-trend-indicator.cjs.entry.js +3 -3
- package/dist/cjs/{limetype-DJNXULgk.js → limetype-CNjUGemK.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{web-component-template-BWCutZB6.js → web-component-template-CZ0lPHIg.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/alert-dialog/alert-dialog.js +1 -1
- package/dist/collection/components/browser/browser.js +2 -2
- package/dist/collection/components/chat-list/chat-icon-list/chat-icon-list.js +1 -1
- package/dist/collection/components/chat-list/chat-item/chat-item.js +2 -2
- package/dist/collection/components/chat-list/chat-list.js +1 -1
- package/dist/collection/components/chat-list/typing-indicator/typing-indicator.js +1 -1
- package/dist/collection/components/color-palette-picker/color-palette-picker.js +1 -1
- package/dist/collection/components/color-palette-picker/color-palette-swatches/color-palette-swatches.js +1 -1
- package/dist/collection/components/composer-toolbar/composer-toolbar.js +2 -2
- package/dist/collection/components/currency-picker/currency-picker.js +1 -1
- package/dist/collection/components/dashboard-widget/dashboard-widget.js +1 -1
- package/dist/collection/components/date-picker/date-picker.js +1 -1
- package/dist/collection/components/date-range/date-range.js +1 -1
- package/dist/collection/components/document-chips/document-chips.js +1 -1
- package/dist/collection/components/document-picker/document-item/document-item.js +2 -2
- package/dist/collection/components/document-picker/document-picker.js +1 -1
- package/dist/collection/components/feed/feed-item/feed-timeline-item.js +1 -1
- package/dist/collection/components/feed/feed-item-thumbnail-file-info/feed-item-thumbnail-file-info.js +1 -1
- package/dist/collection/components/feed/feed.js +1 -1
- package/dist/collection/components/icon-picker/icon-picker.js +1 -1
- package/dist/collection/components/info-tile/format/config/info-tile-format.js +1 -1
- package/dist/collection/components/info-tile/info-tile.js +1 -1
- package/dist/collection/components/kanban/kanban-group/kanban-group.js +1 -1
- package/dist/collection/components/kanban/kanban-item/kanban-item.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/filter-group-logic.js +75 -72
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-builder.js +2 -6
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.css +12 -0
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.js +231 -0
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.css +2 -17
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-comparison.js +91 -118
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.js +9 -14
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.css +105 -179
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-group.js +93 -94
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-not.js +1 -1
- package/dist/collection/components/lime-query-builder/expressions/lime-query-operators.js +60 -0
- package/dist/collection/components/lime-query-builder/lime-query-builder.js +1 -1
- package/dist/collection/components/lime-query-builder/lime-query-response-format-builder.js +1 -1
- package/dist/collection/components/lime-query-builder/limetype-field/limetype-field.js +1 -1
- package/dist/collection/components/lime-query-builder/order-by/order-by-editor.js +1 -1
- package/dist/collection/components/lime-query-builder/order-by/order-by-item.js +2 -2
- package/dist/collection/components/lime-query-builder/property-selector/property-selector.js +39 -16
- package/dist/collection/components/lime-query-builder/response-format/response-format-item.js +1 -1
- package/dist/collection/components/limeobject/file-viewer/live-docs-info.js +2 -2
- package/dist/collection/components/locale-picker/locale-picker.js +1 -1
- package/dist/collection/components/notification-list/notification-item/notification-item.js +1 -1
- package/dist/collection/components/percentage-visualizer/percentage-visualizer.js +2 -2
- package/dist/collection/components/rule-editor/chip-picker-view.js +2 -2
- package/dist/collection/components/rule-editor/rule-chip-popover/rule-chip-popover.js +1 -1
- package/dist/collection/components/rule-editor/rule-editor.css +1 -0
- package/dist/collection/components/rule-editor/rule-editor.js +102 -10
- package/dist/collection/components/rule-editor/view-helpers.js +9 -0
- package/dist/collection/components/rule-gate/rule-gate.js +1 -1
- package/dist/collection/components/summary-popover/summary-popover.js +2 -2
- package/dist/collection/components/text-editor/mention-group-counter.js +2 -2
- package/dist/collection/components/text-editor/text-editor.js +1 -1
- package/dist/collection/components/trend-indicator/trend-indicator.js +1 -1
- package/dist/components/chat-icon-list.js +1 -1
- package/dist/components/chat-item.js +1 -1
- package/dist/components/currency-picker.js +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/document-item.js +1 -1
- package/dist/components/feed-item-thumbnail-file-info.js +1 -1
- package/dist/components/feed-timeline-item.js +1 -1
- package/dist/components/kanban-group.js +1 -1
- package/dist/components/kanban-item.js +1 -1
- package/dist/components/lime-query-filter-builder.js +1 -1
- package/dist/components/lime-query-filter-comparison-editor.js +1 -0
- package/dist/components/lime-query-filter-comparison.js +1 -1
- package/dist/components/lime-query-filter-expression.js +1 -1
- package/dist/components/limebb-alert-dialog.js +1 -1
- package/dist/components/limebb-browser.js +1 -1
- package/dist/components/limebb-chat-list.js +1 -1
- package/dist/components/limebb-color-palette-picker.js +1 -1
- package/dist/components/limebb-color-palette-swatches.js +1 -1
- package/dist/components/limebb-composer-toolbar.js +1 -1
- package/dist/components/limebb-dashboard-widget.js +1 -1
- package/dist/components/limebb-date-range.js +1 -1
- package/dist/components/limebb-document-chips.js +1 -1
- package/dist/components/limebb-document-picker.js +1 -1
- package/dist/components/limebb-feed.js +1 -1
- package/dist/components/limebb-icon-picker.js +1 -1
- package/dist/components/limebb-info-tile-format.js +1 -1
- package/dist/components/limebb-info-tile.js +1 -1
- package/dist/components/limebb-lime-query-builder.js +1 -1
- package/dist/components/limebb-lime-query-filter-comparison-editor.d.ts +11 -0
- package/dist/components/limebb-lime-query-filter-comparison-editor.js +1 -0
- package/dist/components/limebb-lime-query-response-format-builder.js +1 -1
- package/dist/components/limebb-locale-picker.js +1 -1
- package/dist/components/limebb-mention-group-counter.js +1 -1
- package/dist/components/limebb-rule-arg-filter-editor.js +1 -1
- package/dist/components/limebb-rule-editor.js +1 -1
- package/dist/components/limebb-rule-gate.js +1 -1
- package/dist/components/limebb-text-editor.js +1 -1
- package/dist/components/limebb-trend-indicator.js +1 -1
- package/dist/components/limetype-field.js +1 -1
- package/dist/components/live-docs-info.js +1 -1
- package/dist/components/notification-item.js +1 -1
- package/dist/components/order-by-editor.js +1 -1
- package/dist/components/order-by-item.js +1 -1
- package/dist/components/percentage-visualizer.js +1 -1
- package/dist/components/property-selector.js +1 -1
- package/dist/components/response-format-item.js +1 -1
- package/dist/components/rule-chip-popover.js +1 -1
- package/dist/components/summary-popover.js +1 -1
- package/dist/components/typing-indicator.js +1 -1
- package/dist/esm/filter-group-logic-RXn-GGk1.js +126 -0
- package/dist/esm/{index-BIwHMk6j.js → index-DYpn0EkA.js} +12 -0
- package/dist/esm/{index.esm-CJU4N9K8.js → index.esm-DAe4_MLR.js} +1 -1
- package/dist/esm/lime-crm-building-blocks.js +3 -3
- package/dist/esm/lime-query-operators-DYlN1dAt.js +63 -0
- package/dist/esm/{lime-query-validation-COGfPUFN.js → lime-query-validation-DXxPZ2CH.js} +1 -1
- package/dist/esm/limebb-alert-dialog.entry.js +2 -2
- package/dist/esm/limebb-browser.entry.js +4 -4
- package/dist/esm/limebb-chat-icon-list_3.entry.js +6 -6
- package/dist/esm/limebb-chat-list.entry.js +3 -3
- package/dist/esm/limebb-color-palette-picker.entry.js +2 -2
- package/dist/esm/limebb-color-palette-swatches.entry.js +2 -2
- package/dist/esm/limebb-component-config.entry.js +3 -3
- package/dist/esm/limebb-component-picker.entry.js +2 -2
- package/dist/esm/limebb-composer-toolbar.entry.js +4 -4
- package/dist/esm/limebb-currency-picker.entry.js +3 -3
- package/dist/esm/limebb-dashboard-widget.entry.js +2 -2
- package/dist/esm/limebb-data-cells.entry.js +2 -2
- package/dist/esm/limebb-date-picker.entry.js +3 -3
- package/dist/esm/limebb-date-range.entry.js +2 -2
- package/dist/esm/limebb-document-chips.entry.js +2 -2
- package/dist/esm/limebb-document-item.entry.js +3 -3
- package/dist/esm/limebb-document-picker.entry.js +2 -2
- package/dist/esm/limebb-empty-state.entry.js +1 -1
- package/dist/esm/limebb-feed-item-thumbnail-file-info.entry.js +2 -2
- package/dist/esm/limebb-feed-timeline-item.entry.js +3 -3
- package/dist/esm/limebb-feed.entry.js +3 -3
- package/dist/esm/limebb-icon-picker.entry.js +2 -2
- package/dist/esm/limebb-info-tile-currency-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-date-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-decimal-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-format.entry.js +2 -2
- package/dist/esm/limebb-info-tile-relative-date-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile-unit-format.entry.js +1 -1
- package/dist/esm/limebb-info-tile.entry.js +4 -4
- package/dist/esm/limebb-kanban-group.entry.js +3 -3
- package/dist/esm/limebb-kanban-item.entry.js +3 -3
- package/dist/esm/limebb-kanban.entry.js +1 -1
- package/dist/esm/limebb-lime-query-builder.entry.js +4 -4
- package/dist/esm/limebb-lime-query-filter-builder.entry.js +4 -8
- package/dist/esm/{limebb-lime-query-filter-group_3.entry.js → limebb-lime-query-filter-comparison-editor_4.entry.js} +158 -188
- package/dist/esm/limebb-lime-query-filter-comparison_2.entry.js +83 -121
- package/dist/esm/limebb-lime-query-order-by-editor_2.entry.js +5 -5
- package/dist/esm/limebb-lime-query-order-by-item.entry.js +3 -3
- package/dist/esm/limebb-lime-query-response-format-builder.entry.js +4 -4
- package/dist/esm/limebb-lime-query-response-format-editor_2.entry.js +2 -2
- package/dist/esm/limebb-limeobject-file-viewer.entry.js +2 -2
- package/dist/esm/limebb-live-docs-info.entry.js +3 -3
- package/dist/esm/limebb-loader.entry.js +2 -2
- package/dist/esm/limebb-locale-picker.entry.js +3 -3
- package/dist/esm/limebb-mention-group-counter.entry.js +3 -3
- package/dist/esm/limebb-mention.entry.js +2 -2
- package/dist/esm/limebb-navigation-button_2.entry.js +3 -3
- package/dist/esm/limebb-notification-item.entry.js +3 -3
- package/dist/esm/limebb-notification-list.entry.js +2 -2
- package/dist/esm/limebb-object-chip.entry.js +3 -3
- package/dist/esm/limebb-percentage-visualizer.entry.js +4 -4
- package/dist/esm/limebb-property-selector.entry.js +42 -19
- package/dist/esm/limebb-rule-arg-filter-editor.entry.js +2 -2
- package/dist/esm/limebb-rule-chip-popover.entry.js +4 -4
- package/dist/esm/limebb-rule-editor.entry.js +104 -12
- package/dist/esm/limebb-rule-gate.entry.js +3 -3
- package/dist/esm/limebb-text-editor-picker.entry.js +1 -1
- package/dist/esm/limebb-text-editor.entry.js +4 -4
- package/dist/esm/limebb-trend-indicator.entry.js +3 -3
- package/dist/esm/{limetype-Dc4uQPMG.js → limetype-C1wEJnPI.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{web-component-template-6zRYia86.js → web-component-template-D6zkEjKN.js} +1 -1
- package/dist/lime-crm-building-blocks/lime-crm-building-blocks.esm.js +1 -1
- package/dist/lime-crm-building-blocks/{p-34eb61da.entry.js → p-00d00277.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-072756ea.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-32c3789e.entry.js → p-07ef2fd0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c609b5ec.entry.js → p-0ba1294a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7fee7ef3.entry.js → p-0fac2307.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-97e6712f.entry.js → p-16fa6f3e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-0c572fe9.entry.js → p-18ce3ce5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-1dfdf045.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-20206710.entry.js → p-22296e19.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1747221f.entry.js → p-24337de2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-de6f4670.entry.js → p-3996a598.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d2a01f51.entry.js → p-3bff70d2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-7c96b265.entry.js → p-3c437049.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3a112b17.entry.js → p-43af24b5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-2cb31064.entry.js → p-464b02c2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-02565865.entry.js → p-47a7b3fd.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e6083593.entry.js → p-4c10bea0.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e7a10082.entry.js → p-4e0d077b.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-25d8a718.entry.js → p-5006c5ea.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c678f22f.entry.js → p-52c07130.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-492b1b0c.entry.js → p-55692241.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b2383e7f.entry.js → p-5573a867.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-bec4231f.entry.js → p-563d69ff.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-32f8477f.entry.js → p-571777c3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-4446f170.entry.js → p-58e63c29.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-31d8f414.entry.js → p-5a718d20.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9c27e558.entry.js → p-5eef1781.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-861ac606.entry.js → p-603ab702.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3252e153.entry.js → p-661e4700.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-184ae23d.entry.js → p-68a951f5.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-ed1e7e34.entry.js → p-692084d2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-1428aa13.entry.js → p-6ee28dfc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-fdd236ff.entry.js → p-725e6748.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c394c1f6.entry.js → p-7a4704dc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-48c2b617.entry.js → p-7b9359cc.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6ff38954.entry.js → p-7d969bbe.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-eb8d58ab.entry.js → p-7f5c97fe.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-6cceabf1.entry.js → p-81655182.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-8238723b.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-2a3098a7.entry.js → p-898b097e.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-46c00a4b.entry.js → p-8d14a58a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-48deac2a.entry.js → p-8d5311e4.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-08eb070d.entry.js → p-8ed7b025.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-99464fa7.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-C_tMNOSt.js → p-BKtEmDNs.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-BV8CPdbi.js → p-BbFGcMnU.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-C84z8BwL.js → p-CqRNpSRV.js} +1 -1
- package/dist/lime-crm-building-blocks/p-D3UYWGdn.js +1 -0
- package/dist/lime-crm-building-blocks/p-DYpn0EkA.js +2 -0
- package/dist/lime-crm-building-blocks/{p-BsNp-hBU.js → p-DzXJyKRS.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-d910699a.entry.js → p-a5850f04.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-8d3fa274.entry.js → p-a6103d04.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-b24b7338.entry.js → p-b01f2045.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-731820f0.entry.js → p-b16bbda2.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-dabb227b.entry.js → p-b424f55f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-b95b94b6.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-2a46f4be.entry.js → p-bd264cfa.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-9e5862de.entry.js → p-c7c5991f.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-c9003b76.entry.js → p-dc1d543d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-e4fe45d3.entry.js → p-dc3a86f3.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-ec335be5.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-5743a74e.entry.js → p-ecd0280d.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-efab4f7e.entry.js +1 -0
- package/dist/lime-crm-building-blocks/{p-9f7992b0.entry.js → p-efb70fbb.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/{p-3263f8d5.entry.js → p-f011673a.entry.js} +1 -1
- package/dist/lime-crm-building-blocks/p-y_s8hZmV.js +1 -0
- package/dist/types/components/lime-query-builder/expressions/filter-group-logic.d.ts +56 -54
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison-editor.d.ts +29 -0
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-comparison.d.ts +12 -9
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-expression.d.ts +4 -0
- package/dist/types/components/lime-query-builder/expressions/lime-query-filter-group.d.ts +14 -30
- package/dist/types/components/lime-query-builder/expressions/lime-query-operators.d.ts +12 -0
- package/dist/types/components/lime-query-builder/property-selector/property-selector.d.ts +1 -0
- package/dist/types/components/rule-editor/rule-editor-views.d.ts +2 -1
- package/dist/types/components/rule-editor/rule-editor.d.ts +54 -3
- package/dist/types/components/rule-editor/view-helpers.d.ts +8 -1
- package/dist/types/components.d.ts +136 -49
- package/package.json +2 -2
- package/dist/collection/components/lime-query-builder/expressions/lime-query-filter-expression.css +0 -137
- package/dist/lime-crm-building-blocks/p-6002654f.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-7acd06eb.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-89b43ac5.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-BIwHMk6j.js +0 -2
- package/dist/lime-crm-building-blocks/p-a3556715.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-bd6e12e6.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-c6a913af.entry.js +0 -1
- package/dist/lime-crm-building-blocks/p-c6fee2bd.entry.js +0 -1
|
@@ -38,9 +38,9 @@ export class OrderByItemComponent {
|
|
|
38
38
|
render() {
|
|
39
39
|
const propertyPath = Object.keys(this.item)[0] || '';
|
|
40
40
|
const direction = this.item[propertyPath] || 'ASC';
|
|
41
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: '8d91628467c6ec1912d1f87a7922464e5341c8e1' }, h("limebb-property-selector", { key: '26e7729c7c43f91e02446ad45aa59c56922b377c', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: propertyPath, required: true, onChange: this.handlePathChange }), h("div", { key: '1926ad94ddb9d4c2112007068ab4cbf38057622b', class: "control-buttons" }, h("limel-icon-button", { key: '96e4595c737c68ccb30d90295ba6115ec2c7a014', icon: direction === 'ASC'
|
|
42
42
|
? 'sort_ascending'
|
|
43
|
-
: 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: '
|
|
43
|
+
: 'sort_descending', label: direction === 'ASC' ? 'Ascending' : 'Descending', onClick: this.handleToggleDirection }), h("limel-icon-button", { key: 'eee7957506516cc344007ae12a94381a33f9171b', icon: "trash", label: "Remove", onClick: this.handleRemove }))));
|
|
44
44
|
}
|
|
45
45
|
static get is() { return "limebb-lime-query-order-by-item"; }
|
|
46
46
|
static get encapsulation() { return "shadow"; }
|
package/dist/collection/components/lime-query-builder/property-selector/property-selector.js
CHANGED
|
@@ -56,6 +56,23 @@ export class PropertySelector {
|
|
|
56
56
|
this.isOpen = true;
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
|
+
this.handleChipSetBlur = () => {
|
|
60
|
+
var _a;
|
|
61
|
+
// Ignore blurs caused by `limel-menu` auto-focusing its list/items
|
|
62
|
+
// for keyboard navigation when it opens. That focus shift moves into
|
|
63
|
+
// *our* menu surface (portal-rendered, so `document.activeElement`
|
|
64
|
+
// reports it as `LIMEL-MENU-LIST`) — the user hasn't navigated away.
|
|
65
|
+
const active = document.activeElement;
|
|
66
|
+
if ((_a = active === null || active === void 0 ? void 0 : active.tagName) === null || _a === void 0 ? void 0 : _a.startsWith('LIMEL-MENU')) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// When focus genuinely leaves the chip-set (user clicked Value,
|
|
70
|
+
// closed the popover, etc.), close the menu so the next focus can
|
|
71
|
+
// re-open it cleanly. Without this, `isOpen` stays stuck `true` and
|
|
72
|
+
// subsequent focus events short-circuit on the `!this.isOpen` guard.
|
|
73
|
+
this.isOpen = false;
|
|
74
|
+
this.navigationPath = '';
|
|
75
|
+
};
|
|
59
76
|
this.handleSelect = (event) => {
|
|
60
77
|
event.stopPropagation();
|
|
61
78
|
const selectedPath = event.detail.value;
|
|
@@ -128,7 +145,7 @@ export class PropertySelector {
|
|
|
128
145
|
return null;
|
|
129
146
|
}
|
|
130
147
|
const chips = this.getChipsForPath(this.navigationPath || this.value || '');
|
|
131
|
-
return (h("limel-menu", { items: this.menuItems, open: this.isOpen, emptyResultMessage: "No available properties", surfaceWidth: "inherit-from-trigger", openDirection: "bottom-end", onSelect: this.handleSelect, onNavigateMenu: this.handleNavigateMenu, onCancel: this.handleCancel }, h("div", { slot: "trigger" }, h("div", { onClick: this.handleChipSetWrapperClick }, h("limel-chip-set", { type: "input", label: this.label, value: chips, required: this.required, helperText: this.helperText, delimiter: "\u203A", maxItems: 1, onChange: this.handleChipSetChange, onFocus: this.handleChipSetFocus })))));
|
|
148
|
+
return (h("limel-menu", { items: this.menuItems, open: this.isOpen, emptyResultMessage: "No available properties", surfaceWidth: "inherit-from-trigger", openDirection: "bottom-end", onSelect: this.handleSelect, onNavigateMenu: this.handleNavigateMenu, onCancel: this.handleCancel }, h("div", { slot: "trigger" }, h("div", { onClick: this.handleChipSetWrapperClick }, h("limel-chip-set", { type: "input", label: this.label, value: chips, required: this.required, helperText: this.helperText, delimiter: "\u203A", maxItems: 1, onChange: this.handleChipSetChange, onFocus: this.handleChipSetFocus, onStopEdit: this.handleChipSetBlur })))));
|
|
132
149
|
}
|
|
133
150
|
loadMenuItems() {
|
|
134
151
|
// Get the limetype we're currently navigating in
|
|
@@ -219,30 +236,36 @@ export class PropertySelector {
|
|
|
219
236
|
return [];
|
|
220
237
|
}
|
|
221
238
|
const parts = path.split('.');
|
|
222
|
-
const
|
|
239
|
+
const labels = [];
|
|
240
|
+
let leafIcon;
|
|
223
241
|
let currentLimetype = this.limetypes[this.limetype];
|
|
224
|
-
let currentPath = '';
|
|
225
242
|
for (const part of parts) {
|
|
226
|
-
currentPath = currentPath ? `${currentPath}.${part}` : part;
|
|
227
|
-
// Use getNormalizedProperties to include _id and _timestamp
|
|
228
243
|
const normalizedProperties = getNormalizedProperties(currentLimetype);
|
|
229
244
|
const property = normalizedProperties[part];
|
|
230
|
-
if (property) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
if (property.relation) {
|
|
238
|
-
currentLimetype = property.relation.getLimetype();
|
|
239
|
-
}
|
|
245
|
+
if (!property) {
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
labels.push(property.localname || part);
|
|
249
|
+
leafIcon = this.getIconForProperty(property);
|
|
250
|
+
if (property.relation) {
|
|
251
|
+
currentLimetype = property.relation.getLimetype();
|
|
240
252
|
}
|
|
241
253
|
}
|
|
242
|
-
|
|
254
|
+
if (labels.length === 0) {
|
|
255
|
+
return [];
|
|
256
|
+
}
|
|
257
|
+
return [
|
|
258
|
+
{
|
|
259
|
+
id: path,
|
|
260
|
+
text: labels.join('.'),
|
|
261
|
+
icon: leafIcon,
|
|
262
|
+
value: path,
|
|
263
|
+
},
|
|
264
|
+
];
|
|
243
265
|
}
|
|
244
266
|
static get is() { return "limebb-property-selector"; }
|
|
245
267
|
static get encapsulation() { return "shadow"; }
|
|
268
|
+
static get delegatesFocus() { return true; }
|
|
246
269
|
static get originalStyleUrls() {
|
|
247
270
|
return {
|
|
248
271
|
"$": ["property-selector.scss"]
|
package/dist/collection/components/lime-query-builder/response-format/response-format-item.js
CHANGED
|
@@ -66,7 +66,7 @@ export class ResponseFormatItem {
|
|
|
66
66
|
}
|
|
67
67
|
render() {
|
|
68
68
|
return [
|
|
69
|
-
h("div", { key: '
|
|
69
|
+
h("div", { key: '98518fb21bacceef31e398faf0e7d66d92152a9f', class: "property-controls" }, h("div", { key: '1d636436ce63b930abdfb40600106d0d8f643663', class: "property-path" }, h("limebb-property-selector", { key: '3e0fa6a5c5c414c70e38b52f7157a806be8358df', platform: this.platform, context: this.context, limetype: this.limetype, label: "Property", value: this.item.path, required: true, onChange: this.handlePathChange }), h("div", { key: '03bc814455e46812ad7365ddf893431e97b255df', class: "input-grid" }, this.renderAliasInput()), h("div", { key: '8d6b47ff44a01288e9875494b1fea5a57649205f', class: "input-grid" }, this.renderDescriptionInput()), h("div", { key: 'e2e4741bc80c0fef0741f153c7183b8a12da7aa9', class: "button-group" }, this.renderAliasButton(), this.renderDescriptionButton())), h("limel-icon-button", { key: '7f204e6331dbcd0e8e62a5e9a61676f62b14a045', icon: "trash", label: "Remove property", onClick: this.handleRemove })),
|
|
70
70
|
];
|
|
71
71
|
}
|
|
72
72
|
renderAliasButton() {
|
|
@@ -5,8 +5,8 @@ import { h } from "@stencil/core";
|
|
|
5
5
|
export class LiveDocsInfo {
|
|
6
6
|
render() {
|
|
7
7
|
return [
|
|
8
|
-
h("div", { key: '
|
|
9
|
-
h("p", { key: '
|
|
8
|
+
h("div", { key: '36018d23b4f56d1ef1cba8aaf6d24c9e1913fc51', class: "header" }, h("limel-icon", { key: 'e262d9b9b22f4ab604f8786ae20964da908c5179', name: "not_showing_video_frames" }), h("h2", { key: '283107fa6651f1de7308d805b3aa48c479c1b281' }, "Viewing this file type requires ", h("em", { key: '4bb7d2d83e4ae2c073f35038827b5b606448af2d' }, "Live Docs"))),
|
|
9
|
+
h("p", { key: '8f5a3fd0b9958f4bdaa11c0f3b82990706100c65' }, h("em", { key: '23aed14b3a3b54c82f63f2fa4aa6016290aebf26' }, "Live Docs"), " not only enables you to view many file formats such as Microsoft Office documents, but it also empowers you to edit them right in the CRM. No need to download anything on your device!", h("a", { key: 'a018062eefaa0c9b3fff92504e330700979cc407', target: "_blank", href: "https://www.lime-technologies.com/en/lime-crm/live-docs/" }, "Learn more")),
|
|
10
10
|
];
|
|
11
11
|
}
|
|
12
12
|
static get is() { return "limebb-live-docs-info"; }
|
|
@@ -53,7 +53,7 @@ export class LocalePicker {
|
|
|
53
53
|
const value = this.value;
|
|
54
54
|
selectedOptions = options.find((option) => option.value === value);
|
|
55
55
|
}
|
|
56
|
-
return (h("limel-select", { key: '
|
|
56
|
+
return (h("limel-select", { key: 'b42d403250d57155547eaa97731bfc471596c224', value: selectedOptions, options: sortBy(options, 'text'), helperText: this.helperText, label: this.label, required: this.required, disabled: this.disabled, readonly: this.readonly, onChange: this.handleChange, multiple: this.multipleChoice }));
|
|
57
57
|
}
|
|
58
58
|
static get is() { return "limebb-locale-picker"; }
|
|
59
59
|
static get encapsulation() { return "shadow"; }
|
|
@@ -56,7 +56,7 @@ export class NotificationListItem {
|
|
|
56
56
|
}
|
|
57
57
|
render() {
|
|
58
58
|
var _a, _b;
|
|
59
|
-
return (h(Host, { key: '
|
|
59
|
+
return (h(Host, { key: 'dff09ced1e8ae05c746912e249f2557de6fce96e', id: this.item.id, class: {
|
|
60
60
|
'is-clickable': this.isItemClickable(),
|
|
61
61
|
'is-read': !!((_a = this.item) === null || _a === void 0 ? void 0 : _a.read),
|
|
62
62
|
'is-selected': !!((_b = this.item) === null || _b === void 0 ? void 0 : _b.selected),
|
|
@@ -108,11 +108,11 @@ export class PercentageVisualizer {
|
|
|
108
108
|
render() {
|
|
109
109
|
const normalizedValue = this.getNormalizedValue();
|
|
110
110
|
const zeroPoint = this.getZeroPointPosition();
|
|
111
|
-
return (h(Host, { key: '
|
|
111
|
+
return (h(Host, { key: 'ea0690be403aa9c1e4e1fc82b788ad159a8a4cc3', class: this.getContainerClassList(), style: {
|
|
112
112
|
'--limebb-percentage-visualizer-zero-point-position': `${zeroPoint}%`,
|
|
113
113
|
'--limebb-percentage-visualizer-width': `${Math.abs(normalizedValue)}%`,
|
|
114
114
|
'--limebb-percentage-visualizer-rotate': `${normalizedValue >= 0 ? '0deg' : '180deg'}`,
|
|
115
|
-
} }, h("limel-notched-outline", { key: '
|
|
115
|
+
} }, h("limel-notched-outline", { key: '77b09269ca09806a33b6297692ca7cf79ee68a53', tabIndex: 0, role: "meter", "aria-valuemin": this.rangeMin, "aria-valuemax": this.rangeMax, "aria-valuenow": this.numValue, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-controls": this.helperTextId }, h("div", { key: '7b3905e69e8d5b372f7736a9ec40576a23b10385', slot: "content" }, this.renderVisualization())), this.renderHelperLine()));
|
|
116
116
|
}
|
|
117
117
|
renderVisualization() {
|
|
118
118
|
if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
|
|
@@ -36,10 +36,10 @@ export const GroupChipsView = ({ groupNode, groupPath, chipChildren, ctx }) => {
|
|
|
36
36
|
const value = chipChildren.map((entry) => {
|
|
37
37
|
const token = chipTokenFor(entry.index);
|
|
38
38
|
chipsByToken.set(token, entry);
|
|
39
|
-
const base = resolveItem(ctx.
|
|
39
|
+
const base = resolveItem(ctx.allPrimitiveOptions, entry.ref.id);
|
|
40
40
|
return Object.assign(Object.assign({}, base), { text: entry.isNegated ? `¬ ${base.text}` : base.text, value: token });
|
|
41
41
|
});
|
|
42
|
-
const searcher = createSearcher(ctx.
|
|
42
|
+
const searcher = createSearcher(ctx.availablePrimitiveOptions);
|
|
43
43
|
const openChip = findOpenChip(chipChildren, groupPath, ctx.openChipPath);
|
|
44
44
|
const delimiter = groupNode.type === 'all' ? '&' : '|';
|
|
45
45
|
return (h("limel-popover", { class: "rule-node__chips-popover", open: openChip !== null, openDirection: "bottom-start", onClose: ctx.onPopoverClose }, h("div", { slot: "trigger", class: "rule-node__chips" }, h("limel-picker", { multiple: true, label: ctx.translator.get('webclient.rule-editor.rules-label'), value: value, searcher: searcher, delimiter: delimiter, readonly: ctx.readonly, disabled: ctx.disabled, onChange: chipsChangeHandler(groupNode, groupPath, chipsByToken, ctx), onInteract: chipInteractHandler(groupPath, chipsByToken, ctx) })), h("div", null, renderChipPopoverContent(openChip, groupPath, ctx))));
|
|
@@ -37,7 +37,7 @@ export class RuleChipPopover {
|
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
render() {
|
|
40
|
-
return (h("div", { key: '
|
|
40
|
+
return (h("div", { key: 'ca7901be2a99590faddea0c678d149b13b5d564f', class: "popover" }, this.renderHeader(), this.renderBody()));
|
|
41
41
|
}
|
|
42
42
|
renderHeader() {
|
|
43
43
|
var _a, _b, _c, _d;
|
|
@@ -2,7 +2,7 @@ import { h, } from "@stencil/core";
|
|
|
2
2
|
import { PlatformServiceName, } from "@limetech/lime-web-components";
|
|
3
3
|
import { deleteNode, replaceNode, updateArgs, } from "./rule-operations";
|
|
4
4
|
import { extractGroup, RuleNodeView, } from "./rule-editor-views";
|
|
5
|
-
import { createPrimitiveOptions } from "./view-helpers";
|
|
5
|
+
import { createPrimitiveOptions, primitiveReadsCovered } from "./view-helpers";
|
|
6
6
|
/**
|
|
7
7
|
* Tree editor for {@link Rule}.
|
|
8
8
|
*
|
|
@@ -19,6 +19,14 @@ import { createPrimitiveOptions } from "./view-helpers";
|
|
|
19
19
|
* forwards it to `RuleRegistry.validate` so `missing-slot` diagnostics
|
|
20
20
|
* surface inline on the offending nodes.
|
|
21
21
|
*
|
|
22
|
+
* The palette is surface-aware. When the editor is mounted in the DOM,
|
|
23
|
+
* it walks its host's ancestors through the context registry and unions
|
|
24
|
+
* the result with `availableContexts` to determine which context slots
|
|
25
|
+
* are reachable where the rule runs. Primitives whose `reads` slots
|
|
26
|
+
* aren't all reachable are hidden from the add palette, so an author
|
|
27
|
+
* can't pick a primitive that would silently fail closed at evaluation
|
|
28
|
+
* time.
|
|
29
|
+
*
|
|
22
30
|
* @exampleComponent limebb-example-rule-editor
|
|
23
31
|
*
|
|
24
32
|
* @alpha
|
|
@@ -29,8 +37,11 @@ export class RuleEditor {
|
|
|
29
37
|
this.issues = [];
|
|
30
38
|
this.openChipPath = null;
|
|
31
39
|
this.metadataById = new Map();
|
|
32
|
-
this.
|
|
40
|
+
this.allPrimitiveOptions = [];
|
|
41
|
+
this.availablePrimitiveOptions = [];
|
|
42
|
+
this.reachableSlots = new Set();
|
|
33
43
|
this.normalizedCache = null;
|
|
44
|
+
this.hasLoaded = false;
|
|
34
45
|
this.handleDelete = (path) => {
|
|
35
46
|
this.openChipPath = null;
|
|
36
47
|
this.emitIfChanged(deleteNode(this.normalizedValue, path));
|
|
@@ -49,10 +60,30 @@ export class RuleEditor {
|
|
|
49
60
|
};
|
|
50
61
|
}
|
|
51
62
|
componentWillLoad() {
|
|
63
|
+
this.rebuildFromRegistries();
|
|
64
|
+
}
|
|
65
|
+
rebuildFromRegistries() {
|
|
66
|
+
this.computeReachableSlots();
|
|
52
67
|
this.indexMetadata();
|
|
68
|
+
this.rebuildAvailableOptions();
|
|
69
|
+
this.runValidation();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Re-walk reachable slots when the editor is re-attached to the DOM,
|
|
73
|
+
* e.g. moved between surfaces. The reachable set depends on the host's
|
|
74
|
+
* ancestors, so a move can change which primitives the palette offers.
|
|
75
|
+
* Skipped on the first connect — `componentWillLoad` covers that.
|
|
76
|
+
*/
|
|
77
|
+
connectedCallback() {
|
|
78
|
+
if (!this.hasLoaded) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.computeReachableSlots();
|
|
82
|
+
this.rebuildAvailableOptions();
|
|
53
83
|
this.runValidation();
|
|
54
84
|
}
|
|
55
85
|
componentDidLoad() {
|
|
86
|
+
this.hasLoaded = true;
|
|
56
87
|
this.emitNormalization();
|
|
57
88
|
}
|
|
58
89
|
onValueChange() {
|
|
@@ -62,14 +93,14 @@ export class RuleEditor {
|
|
|
62
93
|
this.runValidation();
|
|
63
94
|
}
|
|
64
95
|
onAvailableContextsChange() {
|
|
65
|
-
this.
|
|
96
|
+
this.rebuildFromRegistries();
|
|
66
97
|
}
|
|
67
98
|
render() {
|
|
68
99
|
const containerClasses = {
|
|
69
100
|
'rule-editor': true,
|
|
70
101
|
'rule-editor--disabled': this.disabled,
|
|
71
102
|
};
|
|
72
|
-
return (h("div", { key: '
|
|
103
|
+
return (h("div", { key: 'f1479b58e37918312e4e47031e6fd3e7d6129449', class: containerClasses }, this.renderLabel(), h(RuleNodeView, { key: '3c49ff3c08a6f0b51a4ab6608521d571a2ec1625', node: this.normalizedValue, path: [], ctx: this.createRenderContext() }), this.renderHelperText()));
|
|
73
104
|
}
|
|
74
105
|
renderLabel() {
|
|
75
106
|
if (!this.label) {
|
|
@@ -87,13 +118,14 @@ export class RuleEditor {
|
|
|
87
118
|
return {
|
|
88
119
|
issues: this.issues,
|
|
89
120
|
metadataById: this.metadataById,
|
|
90
|
-
|
|
121
|
+
allPrimitiveOptions: this.allPrimitiveOptions,
|
|
122
|
+
availablePrimitiveOptions: this.availablePrimitiveOptions,
|
|
91
123
|
isMutable: !this.readonly && !this.disabled,
|
|
92
124
|
readonly: this.readonly,
|
|
93
125
|
disabled: this.disabled,
|
|
94
126
|
platform: this.platform,
|
|
95
127
|
context: this.context,
|
|
96
|
-
translator: this.
|
|
128
|
+
translator: this.translator,
|
|
97
129
|
openChipPath: this.openChipPath,
|
|
98
130
|
onDelete: this.handleDelete,
|
|
99
131
|
onUpdateArgs: this.handleUpdateArgs,
|
|
@@ -106,14 +138,66 @@ export class RuleEditor {
|
|
|
106
138
|
var _a, _b, _c;
|
|
107
139
|
const metadata = (_c = (_b = (_a = this.ruleRegistry).listMetadata) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : [];
|
|
108
140
|
this.metadataById = new Map(metadata.map((item) => [item.id, item]));
|
|
109
|
-
this.
|
|
141
|
+
this.allPrimitiveOptions = createPrimitiveOptions(this.metadataById, this.translator);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Recompute the cached add-palette options. The inputs — indexed
|
|
145
|
+
* metadata, the reachable slot set, and the translator — only change
|
|
146
|
+
* in `rebuildFromRegistries` and `connectedCallback`, so caching here
|
|
147
|
+
* keeps `render` from rebuilding and sorting the list every pass.
|
|
148
|
+
*/
|
|
149
|
+
rebuildAvailableOptions() {
|
|
150
|
+
this.availablePrimitiveOptions = createPrimitiveOptions(this.availablePrimitiveMetadata(), this.translator);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* The subset of registered metadata offered for adding in the
|
|
154
|
+
* palette: primitives whose `reads` aren't fully covered by the
|
|
155
|
+
* reachable slots are dropped. Filtering only the palette — not the
|
|
156
|
+
* full `allPrimitiveOptions` — keeps already-placed chips resolving
|
|
157
|
+
* to their proper title even when their read slot isn't reachable.
|
|
158
|
+
*/
|
|
159
|
+
availablePrimitiveMetadata() {
|
|
160
|
+
const filtered = new Map();
|
|
161
|
+
for (const [id, meta] of this.metadataById) {
|
|
162
|
+
if (primitiveReadsCovered(meta, this.reachableSlots)) {
|
|
163
|
+
filtered.set(id, meta);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return filtered;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Recompute the context slots reachable from the editor's mount
|
|
170
|
+
* point, unioning two sources:
|
|
171
|
+
*
|
|
172
|
+
* - the registered keys the resolver answers for — it walks the DOM
|
|
173
|
+
* from the host (and the session-wide fallbacks) the same way the
|
|
174
|
+
* runtime scope does, so a key resolves only when an ancestor
|
|
175
|
+
* actually provides it;
|
|
176
|
+
* - `availableContexts`, a hardcoded hint for keys (notably
|
|
177
|
+
* `limeobject`) that have no session-wide fallback and are provided
|
|
178
|
+
* by a different application than the one hosting the editor, so the
|
|
179
|
+
* DOM walk can't discover them.
|
|
180
|
+
*/
|
|
181
|
+
computeReachableSlots() {
|
|
182
|
+
var _a;
|
|
183
|
+
const contextRegistry = this.contextRegistry;
|
|
184
|
+
const resolvable = contextRegistry
|
|
185
|
+
.list()
|
|
186
|
+
.map((metadata) => metadata.id)
|
|
187
|
+
.filter((key) => contextRegistry.get(key, this.host) !== undefined);
|
|
188
|
+
this.reachableSlots = new Set([
|
|
189
|
+
...resolvable,
|
|
190
|
+
...((_a = this.availableContexts) !== null && _a !== void 0 ? _a : []),
|
|
191
|
+
]);
|
|
110
192
|
}
|
|
111
193
|
runValidation() {
|
|
112
194
|
if (!this.value) {
|
|
113
195
|
this.issues = [];
|
|
114
196
|
return;
|
|
115
197
|
}
|
|
116
|
-
const result = this.ruleRegistry.validate(this.normalizedValue,
|
|
198
|
+
const result = this.ruleRegistry.validate(this.normalizedValue, [
|
|
199
|
+
...this.reachableSlots,
|
|
200
|
+
]);
|
|
117
201
|
this.issues = result.ok ? [] : result.issues;
|
|
118
202
|
}
|
|
119
203
|
emitIfChanged(next) {
|
|
@@ -164,6 +248,12 @@ export class RuleEditor {
|
|
|
164
248
|
get ruleRegistry() {
|
|
165
249
|
return this.platform.get(PlatformServiceName.RuleRegistry);
|
|
166
250
|
}
|
|
251
|
+
get translator() {
|
|
252
|
+
return this.platform.get(PlatformServiceName.Translate);
|
|
253
|
+
}
|
|
254
|
+
get contextRegistry() {
|
|
255
|
+
return this.platform.get(PlatformServiceName.ContextRegistry);
|
|
256
|
+
}
|
|
167
257
|
static get is() { return "limebb-rule-editor"; }
|
|
168
258
|
static get encapsulation() { return "shadow"; }
|
|
169
259
|
static get originalStyleUrls() {
|
|
@@ -272,7 +362,7 @@ export class RuleEditor {
|
|
|
272
362
|
"optional": true,
|
|
273
363
|
"docs": {
|
|
274
364
|
"tags": [],
|
|
275
|
-
"text": "Context keys the caller knows will be available where the rule\nruns. Forwarded to the rule registry's `validate` method so\n`missing-slot` issues surface inline. Leave unset when the\nevaluation context is not known
|
|
365
|
+
"text": "Context keys the caller knows will be available where the rule\nruns. Forwarded to the rule registry's `validate` method so\n`missing-slot` issues surface inline. Leave unset when the\nevaluation context is not known \u2014 typical for editors that target\nthe saved-rule library."
|
|
276
366
|
},
|
|
277
367
|
"getter": false,
|
|
278
368
|
"setter": false
|
|
@@ -392,7 +482,8 @@ export class RuleEditor {
|
|
|
392
482
|
static get states() {
|
|
393
483
|
return {
|
|
394
484
|
"issues": {},
|
|
395
|
-
"openChipPath": {}
|
|
485
|
+
"openChipPath": {},
|
|
486
|
+
"availablePrimitiveOptions": {}
|
|
396
487
|
};
|
|
397
488
|
}
|
|
398
489
|
static get events() {
|
|
@@ -420,6 +511,7 @@ export class RuleEditor {
|
|
|
420
511
|
}
|
|
421
512
|
}];
|
|
422
513
|
}
|
|
514
|
+
static get elementRef() { return "host"; }
|
|
423
515
|
static get watchers() {
|
|
424
516
|
return [{
|
|
425
517
|
"propName": "value",
|
|
@@ -36,6 +36,15 @@ export function createPrimitiveOptions(metadataById, translator) {
|
|
|
36
36
|
}))
|
|
37
37
|
.sort((a, b) => a.text.localeCompare(b.text));
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Whether every context key a primitive reads is in the reachable set.
|
|
41
|
+
* A primitive that reads nothing is always covered.
|
|
42
|
+
* @param meta
|
|
43
|
+
* @param reachable
|
|
44
|
+
*/
|
|
45
|
+
export function primitiveReadsCovered(meta, reachable) {
|
|
46
|
+
return meta.reads.every((key) => reachable.has(key));
|
|
47
|
+
}
|
|
39
48
|
/**
|
|
40
49
|
* Find the picker item for `id`, falling back to a placeholder marked
|
|
41
50
|
* with the unknown-primitive icon when the id isn't in the registry.
|
|
@@ -26,7 +26,7 @@ export class RuleGate {
|
|
|
26
26
|
this.compileAndEvaluate();
|
|
27
27
|
}
|
|
28
28
|
render() {
|
|
29
|
-
return (h(Host, { key: '
|
|
29
|
+
return (h(Host, { key: '8fe8b9fad90211b80b4672563f6d599ce1cb11c3', hidden: !this.shouldRender }, h("slot", { key: 'f434d25308b85fd084d369ccf2b0e22bd3513210' })));
|
|
30
30
|
}
|
|
31
31
|
get ruleRegistry() {
|
|
32
32
|
return this.platform.get(PlatformServiceName.RuleRegistry);
|
|
@@ -128,9 +128,9 @@ export class SummaryPopover {
|
|
|
128
128
|
top: '0.125rem',
|
|
129
129
|
right: '0.125rem',
|
|
130
130
|
};
|
|
131
|
-
return (h("limel-popover", { key: '
|
|
131
|
+
return (h("limel-popover", { key: '7e4e777539c58689faf6a0e69c5f2cf8ed771641', style: {
|
|
132
132
|
'--limebb-summary-popover-timeout': `${this.triggerDelay}ms`,
|
|
133
|
-
}, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: '
|
|
133
|
+
}, open: this.isPopoverOpen, onClose: this.onPopoverClose, openDirection: this.openDirection }, h("div", { key: '21e0e2569a1abdb404c0c6dbd80714f7ff794ca1', slot: "trigger", onMouseEnter: this.openPopoverWithDelay, onMouseLeave: this.resetTimeout, onFocusin: this.openPopoverWithDelay }, h("slot", { key: 'c771e4d9aa10acd6a0a044be4d01d611e22bcc13', name: "trigger" }), h("div", { key: '0c25b9418a311fdf7b700f76a8dbadeea5fb8010', class: "opening-countdown-indicator" })), this.renderCard(closeButtonStyle)));
|
|
134
134
|
}
|
|
135
135
|
renderCard(closeButtonStyle) {
|
|
136
136
|
return (h("limel-card", { style: {
|
|
@@ -13,8 +13,8 @@ export class MentionGroupCounter {
|
|
|
13
13
|
render() {
|
|
14
14
|
const label = this.getLabel();
|
|
15
15
|
return [
|
|
16
|
-
h("span", { key: '
|
|
17
|
-
h("limel-tooltip", { key: '
|
|
16
|
+
h("span", { key: '24bc1b7b14ada4e19a4f560455cbb26bfd0b83b7', id: this.tooltipId }, label),
|
|
17
|
+
h("limel-tooltip", { key: '81a8ce747eea55013b9968a2f3eceb652257355f', elementId: this.tooltipId, label: label, helperLabel: this.helperLabel }),
|
|
18
18
|
];
|
|
19
19
|
}
|
|
20
20
|
getLabel() {
|
|
@@ -391,7 +391,7 @@ export class LimeBBTextEditor {
|
|
|
391
391
|
}
|
|
392
392
|
render() {
|
|
393
393
|
return [
|
|
394
|
-
h("limel-text-editor", { key: '
|
|
394
|
+
h("limel-text-editor", { key: '58b3a06b62159010bab0d99fe48ae3d9ebc0bc5e', ref: (el) => (this.textEditor = el), tabindex: this.disabled ? -1 : 0, value: this.value, contentType: this.contentType, customElements: this.registeredCustomElements, "aria-disabled": this.disabled, language: this.language, triggers: this.registeredTriggers, onTriggerStart: this.handleTriggerStart, onTriggerStop: this.handleTriggerStop, onTriggerChange: this.handleTriggerChange, onImagePasted: this.handleImagePasted, onMetadataChange: this.handleMetadataChange, ui: this.ui, allowResize: this.allowResize, required: this.required, disabled: this.disabled, readonly: this.readonly, helperText: this.helperText, placeholder: this.placeholder, label: this.label, invalid: this.invalid }),
|
|
395
395
|
this.renderPicker(),
|
|
396
396
|
];
|
|
397
397
|
}
|
|
@@ -69,7 +69,7 @@ export class TrendIndicator {
|
|
|
69
69
|
this.numValue = this.parseValue(this.value);
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
|
-
return (h(Host, { key: '
|
|
72
|
+
return (h(Host, { key: 'ea5709dccccd0ca07684bd221e7f5fe79b76dae4', class: this.getContainerClassList() }, h("limel-notched-outline", { key: '952a07d4e934d589460a8848a52bad130f351cdf', id: this.tooltipId, label: this.label, labelId: this.labelId, invalid: this.invalid, required: this.required, hasValue: true, hasFloatingLabel: true, "aria-labelledby": this.labelId, "aria-describedby": this.helperTextId, "aria-controls": this.helperTextId }, h("div", { key: 'a620318b3edea23636d656654da65c9532b4a5f0', slot: "content", tabIndex: 0 }, this.renderVisualization())), this.renderHelperLine(), this.renderTooltip()));
|
|
73
73
|
}
|
|
74
74
|
renderVisualization() {
|
|
75
75
|
if (this.reducePresence && (this.numValue === 0 || !this.hasValue())) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{proxyCustomElement as e,HTMLElement as i,h as n,Host as t,transformTag as o}from"@stencil/core/internal/client";const r=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow()}render(){return n(t,{key:"
|
|
1
|
+
import{proxyCustomElement as e,HTMLElement as i,h as n,Host as t,transformTag as o}from"@stencil/core/internal/client";const r=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow()}render(){return n(t,{key:"024fd30bb3420ed1de16013a85bee1c5c5f46b78",id:this.item.id},this.renderLabel(),n("div",{key:"1359fa6708829a4c65cd0c742ab321b05bb824a3",class:"icons"},this.item.icons.map(((e,i)=>this.renderIcon(e,i)))))}renderLabel(){if(this.item.label)return n("span",{class:"label"},this.item.label)}renderIcon(e,i){const t=`icon-${this.item.id}-${i}`;return[n("limel-icon",{tabIndex:0,key:i,id:t,badge:!0,name:e.name,class:{"is-pending":!!e.pending},style:{color:e.color,"background-color":e.backgroundColor}}),this.renderTooltip(e,t)]}renderTooltip(e,i){if(e.title)return n("limel-tooltip",{label:e.title,elementId:i})}static get style(){return'@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}:host(limebb-chat-icon-list){display:flex;align-items:center;gap:0.5rem;margin-right:auto;max-width:calc(100% - 2rem);padding:0 0.25rem}.label{font-size:0.75rem;color:rgb(var(--contrast-900))}.icons{display:flex;align-items:center;gap:0.25rem}.icons:hover limel-icon,.icons:focus-within limel-icon{margin-left:0 !important}limel-icon{--icon-background-color:rgb(var(--contrast-500), 0.5);transition:margin-left 0.2s cubic-bezier(0.075, 0.82, 0.165, 1), opacity 0.2s ease, box-shadow 0.2s ease;position:relative;width:1.75rem;padding:0.375rem;flex-shrink:0}limel-icon:focus{outline:none}limel-icon:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}limel-icon:not(.is-pending):not(:first-child){margin-left:-0.75rem}limel-icon.is-pending{animation:pending 3s linear infinite;padding:0.5rem}limel-icon.is-pending:after{content:"";position:absolute;inset:0;width:1.75rem;height:1.75rem;border-radius:50%;pointer-events:none;border-radius:50%;border:0.125rem solid rgb(var(--color-white), 0.5);border-top-color:rgb(var(--color-black), 0.8);mix-blend-mode:color-dodge;animation:spin 1s cubic-bezier(0.4, 0, 0.2, 1) infinite}@keyframes pending{0%,20%,80%,100%{filter:grayscale(0%)}45%,55%{filter:grayscale(100%)}}@keyframes spin{to{transform:rotate(360deg)}}'}},[1,"limebb-chat-icon-list",{item:[16]}]);function s(){"undefined"!=typeof customElements&&["limebb-chat-icon-list"].forEach((e=>{"limebb-chat-icon-list"===e&&(customElements.get(o(e))||customElements.define(o(e),r))}))}export{r as C,s as d}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{proxyCustomElement as
|
|
1
|
+
import{proxyCustomElement as e,HTMLElement as t,h as i,Host as r,transformTag as o}from"@stencil/core/internal/client";import{b as a}from"./index.esm.js";const s=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.hasError=!1,this.createActionBarItem=e=>{var t,i;if("separator"in e)return e;let r={value:e,text:null!==(t=e.label)&&void 0!==t?t:"",secondaryText:e.description,disabled:e.disabled};return!e.label&&e.icon?r=Object.assign(Object.assign({},r),{icon:e.icon,text:null!==(i=e.description)&&void 0!==i?i:r.text,iconOnly:!0}):e.icon&&(r=Object.assign(Object.assign({},r),{icon:e.icon})),r},this.handleActionBarItemSelect=e=>{var t;e.stopPropagation();const i=null===(t=e.detail.value)||void 0===t?void 0:t.command;i&&this.commandbus.handle(i)},this.createMenuItem=e=>{var t,i;return"separator"in e?e:{value:e,text:null!==(t=e.label)&&void 0!==t?t:"",secondaryText:e.description,disabled:e.disabled,icon:null!==(i=e.icon)&&void 0!==i?i:""}},this.handleMenuItemSelect=e=>{var t;e.stopPropagation();const i=null===(t=e.detail.value)||void 0===t?void 0:t.command;i&&this.commandbus.handle(i)}}render(){const e=`helper-text-${this.item.id}`;return i(r,{key:"1c51ff5a54feec865eb17d4077bef880486e5a26",id:this.item.id,"aria-describedby":this.helperText?e:void 0,"aria-live":this.hasError?"assertive":"off",class:{[`${this.item.ui}`]:!0}},i("div",{key:"f8d37fa94833f9685308610387871752d4368d8e",class:"bubble-content"},i("div",{key:"8b76262f95c3200257727bc451976cd5bfa7bafc",class:"icon-picture"},this.renderIcon(),this.renderAuthorPicture()),this.renderErrorSign(),i("div",{key:"63b4f7f4acee9cf8eaa7b1c7cfe56c055b284df0",class:"item"},this.renderHeader(),this.renderValue(),i("footer",{key:"0e614fd79439c77db0678dca46616d87619e3a4e"},this.renderHelperText(e),this.renderTimestamp()))),this.renderPromotedAction())}renderErrorSign(){if(this.hasError)return i("limel-icon",{class:"error-sign",name:"brake_warning"})}renderHeader(){var e;if(null===(e=this.item.author)||void 0===e?void 0:e.name)return i("header",null,this.renderAuthorName(),i("div",{class:"action-buttons"},this.renderUnpromotedActionsMenu()))}renderIcon(){var e,t,r,o;if(this.item.icon)return i("limel-icon",{class:"icon",badge:!0,name:null!==(t=null===(e=this.item.icon)||void 0===e?void 0:e.name)&&void 0!==t?t:"dot_circle",style:{color:`${null===(r=this.item.icon)||void 0===r?void 0:r.color}`,"background-color":`${null===(o=this.item.icon)||void 0===o?void 0:o.backgroundColor}`}})}renderHelperText(e){if(this.helperText)return i("span",{class:"helper-text",id:e},this.helperText)}renderValue(){if(this.item.value)return i("limel-markdown",{class:"body-text reset-img-height",value:this.item.value})}renderAuthorName(){var e,t;if("string"==typeof(null===(e=this.item.author)||void 0===e?void 0:e.name))return i("span",{class:"author"},this.item.author.name);if("object"==typeof(null===(t=this.item.author)||void 0===t?void 0:t.name)){const{href:e,title:t,text:r}=this.item.author.name;return i("a",{class:"author",href:e,title:t},r)}}renderAuthorPicture(){var e;if(null===(e=this.item.author)||void 0===e?void 0:e.picture)return"limel-ai-avatar"===this.item.author.picture?i("limel-ai-avatar",{class:"author-avatar"}):i("img",{class:"author-avatar",loading:"lazy",src:this.item.author.picture})}renderUnpromotedActionsMenu(){var e,t;if(!(null===(e=this.item.unpromotedActions)||void 0===e?void 0:e.length))return;const r=this.item.unpromotedActions.map(this.createMenuItem);return i("limel-menu",{class:"unpromoted-actions-menu",items:r,openDirection:"bottom-end",onSelect:this.handleMenuItemSelect},i("limel-icon-button",{icon:"menu_2",slot:"trigger",label:null===(t=this.translator)||void 0===t?void 0:t.get("webclient.more-actions")}))}renderPromotedAction(){if(!this.item.promotedActions)return;const e=this.item.promotedActions.map(this.createActionBarItem);return i("div",{class:"action-bar"},i("div",{class:"action-bar-hider"},i("limel-action-bar",{accessibleLabel:"Action bar",actions:e,layout:"fullWidth",onItemSelected:this.handleActionBarItemSelect})))}renderTimestamp(){const e=this.item.timestamp;if(e)return i("span",{class:"timestamp"},this.dateTimeFormatter.format(e,"timeofday"))}get dateTimeFormatter(){return this.platform.get(a.DateTimeFormatter)}get translator(){var e;return null===(e=this.platform)||void 0===e?void 0:e.get(a.Translate)}get commandbus(){var e;return null===(e=this.platform)||void 0===e?void 0:e.get(a.CommandBus)}static get style(){return'@charset "UTF-8";*{box-sizing:border-box}:host(limebb-chat-item){display:flex;flex-direction:column;gap:0.25rem;min-width:0;min-height:0;max-width:calc(100% - 2rem)}.bubble-content{display:flex;gap:0.25rem;min-width:0;min-height:0}:host(limebb-chat-item:hover) .helper-text,:host(limebb-chat-item:hover) .timestamp,:host(limebb-chat-item:focus-within) .helper-text,:host(limebb-chat-item:focus-within) .timestamp{opacity:1}:host(limebb-chat-item.mine){margin-left:auto}:host(limebb-chat-item.mine) .item{border-bottom-right-radius:0.125rem;background-color:rgb(var(--color-sky-default), 0.2)}:host(limebb-chat-item.mine) .bubble-content{justify-content:end}:host(limebb-chat-item.mine) .icon-picture{order:2}:host(limebb-chat-item.theirs){margin-right:auto}:host(limebb-chat-item.theirs) .item{border-bottom-left-radius:0.125rem;background-color:rgb(var(--contrast-300), 0.7)}.item{display:flex;flex-direction:column;min-width:0;border-radius:1.25rem;padding:0 0.25rem 0.25rem 0.25rem;backdrop-filter:blur(0.5rem);-webkit-backdrop-filter:blur(0.5rem)}.icon-picture{display:flex;flex-direction:column;gap:0.5rem;align-items:center;justify-content:flex-end}.icon-picture:has(.author-avatar) limel-icon{width:1.25rem;padding:0.125rem}.icon{--icon-background-color:rgb(var(--contrast-500), 0.5);flex-shrink:0;padding:0.375rem;width:2.25rem;backdrop-filter:blur(0.5rem);-webkit-backdrop-filter:blur(0.5rem)}limel-ai-avatar.author-avatar{background-color:rgb(var(--color-glaucous-darker))}header{display:flex;justify-content:space-between;align-items:center;min-height:2rem;padding-left:0.5rem}header:not(:has(.unpromoted-actions-menu)){padding-right:0.5rem}.body-text{padding:0.25rem 0.5rem}footer{display:flex;justify-content:space-between;align-items:end;gap:0.5rem;font-size:x-small}footer:not(:empty){padding:0 0.25rem 0.125rem 0.5rem}footer *{transition:opacity 0.2s ease;opacity:0.4}.timestamp{margin-left:auto}.author-avatar{border-radius:50%;width:2rem;height:2rem;object-fit:cover;box-shadow:0 0 0 1px rgb(var(--contrast-600))}.author{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500;text-decoration:none}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-action-bar{--action-bar-item-height:1.75rem;transition:opacity 0.2s ease;justify-content:flex-start;opacity:0.8}.action-bar{display:grid;transition:grid-template-rows var(--limebb-promoted-action-bar-grid-template-rows-transition-speed, 0.2s) cubic-bezier(1, 0.09, 0, 0.89) var(--limebb-promoted-action-bar-grid-template-rows-transition-delay, 0s);grid-template-rows:var(--limebb-promoted-action-bar-grid-template-rows, 1fr)}.action-bar-hider{overflow:hidden}limel-action-bar{transition:padding var(--limebb-promoted-action-bar-grid-template-rows-transition-speed) cubic-bezier(1, 0.09, 0, 0.89) var(--limebb-promoted-action-bar-grid-template-rows-transition-delay);padding-top:0;padding-bottom:0.75rem}:host(limebb-chat-item:hover) .action-bar,:host(limebb-chat-item:focus-within) .action-bar,:host(limebb-chat-item:focus-visible) .action-bar{--limebb-promoted-action-bar-grid-template-rows:1fr;will-change:grid-template-rows}:host(limebb-chat-item:hover) limel-action-bar,:host(limebb-chat-item:focus-within) limel-action-bar,:host(limebb-chat-item:focus-visible) limel-action-bar{will-change:opacity;opacity:1}:host(limebb-chat-item:hover),:host(limebb-chat-item:focus-within){--limebb-promoted-action-bar-grid-template-rows-transition-speed:0.46s;--limebb-promoted-action-bar-grid-template-rows-transition-delay:0.7s}.action-bar{min-width:0;width:calc(100% - calc(2rem + 0.25rem))}:host(limebb-chat-item.theirs) .action-bar{margin-left:calc(2rem + 0.25rem)}:host(limebb-chat-item[has-error]:not([has-error=false])) .bubble-content{cursor:help}:host(limebb-chat-item[has-error]:not([has-error=false])) .item{border:1px solid rgb(var(--color-red-default))}:host(limebb-chat-item[has-error]:not([has-error=false])) .error-sign{color:rgb(var(--color-red-default));flex-shrink:0;width:1.25rem;align-self:center}:host(limebb-chat-item.mine[has-error]:not([has-error=false])) .action-bar{padding-left:1.25rem}:host(limebb-chat-item.mine[has-error]:not([has-error=false])) .helper-text{opacity:1;color:rgb(var(--color-red-default))}'}},[1,"limebb-chat-item",{platform:[16],context:[16],item:[16],helperText:[1,"helper-text"],hasError:[516,"has-error"]}]);function n(){"undefined"!=typeof customElements&&["limebb-chat-item"].forEach((e=>{"limebb-chat-item"===e&&(customElements.get(o(e))||customElements.define(o(e),s))}))}export{s as C,n as d}
|