@redvars/peacock 3.5.0 → 3.6.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/dist/BaseButton-BNFAYn-S.js +219 -0
- package/dist/BaseButton-BNFAYn-S.js.map +1 -0
- package/dist/BaseHyperlinkMixin-BNuwbiEf.js +65 -0
- package/dist/BaseHyperlinkMixin-BNuwbiEf.js.map +1 -0
- package/dist/BaseInput-14YmcfK7.js +27 -0
- package/dist/BaseInput-14YmcfK7.js.map +1 -0
- package/dist/assets/components.css +1 -1
- package/dist/assets/components.css.map +1 -1
- package/dist/assets/styles.css +1 -1
- package/dist/assets/styles.css.map +1 -1
- package/dist/banner.js +14 -30
- package/dist/banner.js.map +1 -1
- package/dist/{button-DMN1dPAg.js → button-colors-Ccys3hvS.js} +5 -468
- package/dist/button-colors-Ccys3hvS.js.map +1 -0
- package/dist/button-group.js +228 -8
- package/dist/button-group.js.map +1 -1
- package/dist/button.js +294 -8
- package/dist/button.js.map +1 -1
- package/dist/calendar-column-view.js +634 -0
- package/dist/calendar-column-view.js.map +1 -0
- package/dist/calendar-event-BrQ_SEKD.js +199 -0
- package/dist/calendar-event-BrQ_SEKD.js.map +1 -0
- package/dist/calendar-month-view.js +376 -0
- package/dist/calendar-month-view.js.map +1 -0
- package/dist/calendar.js +339 -0
- package/dist/calendar.js.map +1 -0
- package/dist/canvas.js +361 -0
- package/dist/canvas.js.map +1 -0
- package/dist/card.js +18 -73
- package/dist/card.js.map +1 -1
- package/dist/cb-compound-expression.js +125 -0
- package/dist/cb-compound-expression.js.map +1 -0
- package/dist/cb-divider.js +150 -0
- package/dist/cb-divider.js.map +1 -0
- package/dist/cb-expression.js +75 -0
- package/dist/cb-expression.js.map +1 -0
- package/dist/cb-predicate.js +137 -0
- package/dist/cb-predicate.js.map +1 -0
- package/dist/chart-bar.js.map +1 -1
- package/dist/chart-doughnut.js +2 -2
- package/dist/chart-doughnut.js.map +1 -1
- package/dist/chart-pie.js +2 -2
- package/dist/chart-pie.js.map +1 -1
- package/dist/chart-stacked-bar.js.map +1 -1
- package/dist/code-editor.js +2 -1
- package/dist/code-editor.js.map +1 -1
- package/dist/code-highlighter.js +2 -1
- package/dist/code-highlighter.js.map +1 -1
- package/dist/condition-builder.js +58 -0
- package/dist/condition-builder.js.map +1 -0
- package/dist/custom-elements-jsdocs.json +10860 -5567
- package/dist/custom-elements.json +16180 -7996
- package/dist/dropdown-button.js +216 -0
- package/dist/dropdown-button.js.map +1 -0
- package/dist/event-manager-D-QCmUgR.js +113 -0
- package/dist/event-manager-D-QCmUgR.js.map +1 -0
- package/dist/fab.js +421 -9
- package/dist/fab.js.map +1 -1
- package/dist/flow-designer-dZnLJOQT.js +1656 -0
- package/dist/flow-designer-dZnLJOQT.js.map +1 -0
- package/dist/flow-designer-node-XMe-jlKg.js +548 -0
- package/dist/flow-designer-node-XMe-jlKg.js.map +1 -0
- package/dist/flow-designer-node.js +4 -0
- package/dist/flow-designer-node.js.map +1 -0
- package/dist/flow-designer.js +16 -0
- package/dist/flow-designer.js.map +1 -0
- package/dist/html-editor.js +358 -0
- package/dist/html-editor.js.map +1 -0
- package/dist/icon-button-CK1ZuE-2.js +247 -0
- package/dist/icon-button-CK1ZuE-2.js.map +1 -0
- package/dist/index.js +31 -8
- package/dist/index.js.map +1 -1
- package/dist/{is-dark-mode-DicqGkCJ.js → is-dark-mode-DOcaw4Yq.js} +2 -27
- package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -0
- package/dist/modal.js +418 -0
- package/dist/modal.js.map +1 -0
- package/dist/{select-4pl4XBj7.js → navigation-rail-DyO0oAZU.js} +2000 -2767
- package/dist/navigation-rail-DyO0oAZU.js.map +1 -0
- package/dist/notification-manager.js +268 -0
- package/dist/notification-manager.js.map +1 -0
- package/dist/notification.js +3 -2
- package/dist/notification.js.map +1 -1
- package/dist/peacock-loader.js +102 -14
- package/dist/peacock-loader.js.map +1 -1
- package/dist/popover-NC7b1lTq.js +1971 -0
- package/dist/popover-NC7b1lTq.js.map +1 -0
- package/dist/popover-content.js +125 -0
- package/dist/popover-content.js.map +1 -0
- package/dist/popover.js +4 -0
- package/dist/popover.js.map +1 -0
- package/dist/search.js +4 -0
- package/dist/search.js.map +1 -1
- package/dist/split-button.js +388 -0
- package/dist/split-button.js.map +1 -0
- package/dist/src/__controllers/floating-controller.d.ts +35 -0
- package/dist/src/__mixins/BaseButtonMixin.d.ts +20 -0
- package/dist/src/__mixins/BaseHyperlinkMixin.d.ts +18 -0
- package/dist/src/__mixins/MixinConstructor.d.ts +1 -0
- package/dist/src/banner/banner.d.ts +0 -4
- package/dist/src/button/BaseButton.d.ts +4 -47
- package/dist/src/button/button/button.d.ts +32 -3
- package/dist/src/button/button-group/button-group.d.ts +2 -2
- package/dist/src/button/icon-button/icon-button.d.ts +33 -8
- package/dist/src/calendar/base-event.d.ts +10 -0
- package/dist/src/calendar/calendar-column-view.d.ts +41 -0
- package/dist/src/calendar/calendar-event.d.ts +7 -0
- package/dist/src/calendar/calendar-month-view.d.ts +31 -0
- package/dist/src/calendar/calendar.d.ts +65 -0
- package/dist/src/calendar/event-manager.d.ts +17 -0
- package/dist/src/calendar/index.d.ts +4 -0
- package/dist/src/calendar/types.d.ts +13 -0
- package/dist/src/calendar/utils.d.ts +31 -0
- package/dist/src/canvas/canvas.d.ts +92 -0
- package/dist/src/canvas/index.d.ts +2 -0
- package/dist/src/card/card.d.ts +4 -15
- package/dist/src/condition-builder/cb-compound-expression.d.ts +31 -0
- package/dist/src/condition-builder/cb-divider.d.ts +26 -0
- package/dist/src/condition-builder/cb-expression.d.ts +31 -0
- package/dist/src/condition-builder/cb-predicate.d.ts +30 -0
- package/dist/src/condition-builder/condition-builder.d.ts +27 -0
- package/dist/src/condition-builder/index.d.ts +5 -0
- package/dist/src/dropdown-button/dropdown-button.d.ts +68 -0
- package/dist/src/dropdown-button/index.d.ts +1 -0
- package/dist/src/fab/fab.d.ts +4 -35
- package/dist/src/flow-designer/commands.d.ts +66 -0
- package/dist/src/flow-designer/flow-designer-node.d.ts +46 -0
- package/dist/src/flow-designer/flow-designer.d.ts +133 -0
- package/dist/src/flow-designer/index.d.ts +7 -0
- package/dist/src/flow-designer/layout.d.ts +30 -0
- package/dist/src/flow-designer/types.d.ts +142 -0
- package/dist/src/flow-designer/validation.d.ts +43 -0
- package/dist/src/flow-designer/workflow-utils.d.ts +40 -0
- package/dist/src/focus-ring/focus-ring.d.ts +11 -5
- package/dist/src/html-editor/html-editor.d.ts +56 -0
- package/dist/src/html-editor/index.d.ts +2 -0
- package/dist/src/index.d.ts +16 -1
- package/dist/src/link/link.d.ts +1 -1
- package/dist/src/menu/menu/menu.d.ts +5 -7
- package/dist/src/menu/menu-item/menu-item.d.ts +14 -13
- package/dist/src/modal/index.d.ts +1 -0
- package/dist/src/modal/modal.d.ts +63 -0
- package/dist/src/navigation-rail/index.d.ts +2 -0
- package/dist/src/navigation-rail/navigation-rail-item.d.ts +55 -0
- package/dist/src/navigation-rail/navigation-rail.d.ts +71 -0
- package/dist/src/notification-manager/index.d.ts +1 -0
- package/dist/src/notification-manager/notification-manager.d.ts +44 -0
- package/dist/src/popover/index.d.ts +2 -0
- package/dist/src/popover/popover-content.d.ts +29 -0
- package/dist/src/popover/popover.d.ts +62 -0
- package/dist/src/sidebar-menu/index.d.ts +3 -0
- package/dist/src/sidebar-menu/sidebar-menu-item.d.ts +58 -0
- package/dist/src/sidebar-menu/sidebar-menu.d.ts +38 -0
- package/dist/src/sidebar-menu/sidebar-sub-menu.d.ts +35 -0
- package/dist/src/split-button/index.d.ts +1 -0
- package/dist/src/split-button/split-button.d.ts +72 -0
- package/dist/src/toolbar/toolbar.d.ts +10 -10
- package/dist/src/tooltip/tooltip.d.ts +5 -15
- package/dist/src/url-field/index.d.ts +1 -0
- package/dist/src/url-field/url-field.d.ts +48 -0
- package/dist/test/flow-designer.test.d.ts +1 -0
- package/dist/test/sidebar-menu.test.d.ts +1 -0
- package/dist/toolbar.js +10 -10
- package/dist/toolbar.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
- package/readme.md +73 -65
- package/scss/mixin.scss +16 -0
- package/src/__controllers/floating-controller.ts +237 -0
- package/src/__mixins/BaseButtonMixin.ts +83 -0
- package/src/__mixins/BaseHyperlinkMixin.ts +68 -0
- package/src/__mixins/MixinConstructor.ts +1 -0
- package/src/{__base_element → __mixins}/README.md +2 -2
- package/src/banner/banner.scss +20 -25
- package/src/banner/banner.ts +1 -7
- package/src/button/BaseButton.ts +11 -100
- package/src/button/button/button-sizes.scss +4 -2
- package/src/button/button/button.ts +77 -23
- package/src/button/button-group/button-group.ts +2 -2
- package/src/button/icon-button/icon-button.ts +75 -33
- package/src/calendar/base-event.ts +49 -0
- package/src/calendar/calendar-column-view.scss +326 -0
- package/src/calendar/calendar-column-view.ts +392 -0
- package/src/calendar/calendar-event.ts +20 -0
- package/src/calendar/calendar-month-view.scss +192 -0
- package/src/calendar/calendar-month-view.ts +244 -0
- package/src/calendar/calendar.scss +71 -0
- package/src/calendar/calendar.ts +298 -0
- package/src/calendar/event-manager.ts +117 -0
- package/src/calendar/index.ts +4 -0
- package/src/calendar/types.ts +14 -0
- package/src/calendar/utils.ts +180 -0
- package/src/canvas/canvas.scss +60 -0
- package/src/canvas/canvas.ts +391 -0
- package/src/canvas/index.ts +2 -0
- package/src/card/card.ts +11 -71
- package/src/chart-bar/chart-bar.ts +9 -14
- package/src/chart-bar/chart-stacked-bar.ts +12 -18
- package/src/chart-doughnut/chart-doughnut.ts +23 -27
- package/src/chart-pie/chart-pie.ts +19 -23
- package/src/checkbox/checkbox.scss +17 -34
- package/src/checkbox/checkbox.ts +3 -1
- package/src/code-highlighter/code-highlighter.scss +1 -0
- package/src/code-highlighter/code-highlighter.ts +1 -1
- package/src/condition-builder/cb-compound-expression.scss +37 -0
- package/src/condition-builder/cb-compound-expression.ts +80 -0
- package/src/condition-builder/cb-divider.scss +93 -0
- package/src/condition-builder/cb-divider.ts +56 -0
- package/src/condition-builder/cb-expression.scss +14 -0
- package/src/condition-builder/cb-expression.ts +49 -0
- package/src/condition-builder/cb-predicate.scss +35 -0
- package/src/condition-builder/cb-predicate.ts +102 -0
- package/src/condition-builder/condition-builder.scss +13 -0
- package/src/condition-builder/condition-builder.ts +38 -0
- package/src/condition-builder/index.ts +5 -0
- package/src/date-picker/date-picker.ts +1 -1
- package/src/dropdown-button/demo/index.html +110 -0
- package/src/dropdown-button/dropdown-button.scss +22 -0
- package/src/dropdown-button/dropdown-button.ts +206 -0
- package/src/dropdown-button/index.ts +1 -0
- package/src/elevation/elevation.scss +5 -5
- package/src/fab/fab.ts +29 -100
- package/src/flow-designer/DEMO.md +239 -0
- package/src/flow-designer/commands.ts +278 -0
- package/src/flow-designer/flow-designer-node.ts +172 -0
- package/src/flow-designer/flow-designer.scss +457 -0
- package/src/flow-designer/flow-designer.ts +611 -0
- package/src/flow-designer/index.ts +41 -0
- package/src/flow-designer/layout.ts +357 -0
- package/src/flow-designer/types.ts +166 -0
- package/src/flow-designer/validation.ts +284 -0
- package/src/flow-designer/workflow-utils.ts +282 -0
- package/src/focus-ring/focus-ring.ts +47 -40
- package/src/html-editor/html-editor.scss +146 -0
- package/src/html-editor/html-editor.ts +276 -0
- package/src/html-editor/index.ts +3 -0
- package/src/index.ts +28 -1
- package/src/input/input.ts +3 -1
- package/src/link/link.ts +2 -2
- package/src/menu/menu/menu.scss +2 -2
- package/src/menu/menu/menu.ts +91 -101
- package/src/menu/menu-item/menu-item.scss +4 -0
- package/src/menu/menu-item/menu-item.ts +85 -79
- package/src/modal/index.ts +1 -0
- package/src/modal/modal.scss +206 -0
- package/src/modal/modal.ts +201 -0
- package/src/navigation-rail/index.ts +2 -0
- package/src/navigation-rail/navigation-rail-item.scss +216 -0
- package/src/navigation-rail/navigation-rail-item.ts +223 -0
- package/src/navigation-rail/navigation-rail.scss +72 -0
- package/src/navigation-rail/navigation-rail.ts +149 -0
- package/src/notification/notification.ts +3 -2
- package/src/notification-manager/index.ts +1 -0
- package/src/notification-manager/notification-manager.scss +113 -0
- package/src/notification-manager/notification-manager.ts +199 -0
- package/src/number-field/number-field.ts +6 -4
- package/src/pagination/pagination.ts +6 -4
- package/src/peacock-loader.ts +93 -5
- package/src/popover/index.ts +2 -0
- package/src/popover/popover-content.scss +69 -0
- package/src/popover/popover-content.ts +51 -0
- package/src/popover/popover.scss +7 -0
- package/src/popover/popover.ts +170 -0
- package/src/search/search.ts +4 -0
- package/src/sidebar-menu/demo/index.html +68 -0
- package/src/sidebar-menu/index.ts +3 -0
- package/src/sidebar-menu/sidebar-menu-item.scss +102 -0
- package/src/sidebar-menu/sidebar-menu-item.ts +151 -0
- package/src/{tree-view/tree-view.scss → sidebar-menu/sidebar-menu.scss} +1 -1
- package/src/sidebar-menu/sidebar-menu.ts +182 -0
- package/src/sidebar-menu/sidebar-sub-menu.scss +130 -0
- package/src/sidebar-menu/sidebar-sub-menu.ts +160 -0
- package/src/skeleton/skeleton.scss +18 -24
- package/src/snackbar/snackbar.ts +1 -1
- package/src/split-button/index.ts +1 -0
- package/src/split-button/split-button-colors.scss +56 -0
- package/src/split-button/split-button-sizes.scss +28 -0
- package/src/split-button/split-button.scss +79 -0
- package/src/split-button/split-button.ts +236 -0
- package/src/table/table.ts +2 -2
- package/src/tabs/tab.ts +4 -3
- package/src/text/text.css-component.scss +7 -1
- package/src/time-picker/time-picker.ts +1 -1
- package/src/toolbar/toolbar.ts +10 -10
- package/src/tooltip/tooltip.scss +4 -3
- package/src/tooltip/tooltip.ts +64 -98
- package/src/url-field/index.ts +1 -0
- package/src/url-field/url-field.scss +50 -0
- package/src/url-field/url-field.ts +239 -0
- package/dist/button-DMN1dPAg.js.map +0 -1
- package/dist/button-group-CX9CUUXk.js +0 -435
- package/dist/button-group-CX9CUUXk.js.map +0 -1
- package/dist/fab-C5Nzxk0E.js +0 -497
- package/dist/fab-C5Nzxk0E.js.map +0 -1
- package/dist/is-dark-mode-DicqGkCJ.js.map +0 -1
- package/dist/select-4pl4XBj7.js.map +0 -1
- package/dist/spread-B5cgadZl.js +0 -32
- package/dist/spread-B5cgadZl.js.map +0 -1
- package/dist/src/__base_element/BaseHyperlink.d.ts +0 -20
- package/dist/src/menu/menu/MenuSurfaceController.d.ts +0 -18
- package/dist/src/tree-view/index.d.ts +0 -2
- package/dist/src/tree-view/tree-node.d.ts +0 -69
- package/dist/src/tree-view/tree-view.d.ts +0 -40
- package/dist/src/tree-view/wc-tree-view.d.ts +0 -6
- package/dist/test/tree-view.test.d.ts +0 -1
- package/dist/throttle-C7ZAPqtu.js +0 -24
- package/dist/throttle-C7ZAPqtu.js.map +0 -1
- package/src/__base_element/BaseHyperlink.ts +0 -42
- package/src/menu/menu/MenuSurfaceController.ts +0 -61
- package/src/tree-view/demo/index.html +0 -57
- package/src/tree-view/index.ts +0 -2
- package/src/tree-view/tree-node.scss +0 -101
- package/src/tree-view/tree-node.ts +0 -268
- package/src/tree-view/tree-view.ts +0 -182
- package/src/tree-view/wc-tree-view.ts +0 -9
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
@use '../../scss/mixin';
|
|
2
|
+
|
|
3
|
+
@include mixin.base-styles;
|
|
4
|
+
|
|
5
|
+
:host {
|
|
6
|
+
display: block;
|
|
7
|
+
height: 100%;
|
|
8
|
+
width: 100%;
|
|
9
|
+
--cb-divider-line-color: var(--color-outline-variant);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.divider {
|
|
13
|
+
display: flex;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.divider:not(.vertical) {
|
|
17
|
+
height: 100%;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
padding-bottom: var(--spacing-200);
|
|
22
|
+
|
|
23
|
+
.line {
|
|
24
|
+
height: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&.connect-start .line-start {
|
|
28
|
+
width: 1rem;
|
|
29
|
+
margin-left: 1rem;
|
|
30
|
+
border-inline-start: 1px solid var(--cb-divider-line-color);
|
|
31
|
+
border-top: 1px solid var(--cb-divider-line-color);
|
|
32
|
+
border-radius: var(--shape-corner-extra-small) 0 0 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&:not(.connect-start) .line-start {
|
|
36
|
+
border-inline-start: 1px solid var(--cb-divider-line-color);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&.connect-end .line-end {
|
|
40
|
+
width: 1rem;
|
|
41
|
+
margin-left: 1rem;
|
|
42
|
+
border-inline-start: 1px solid var(--cb-divider-line-color);
|
|
43
|
+
border-bottom: 1px solid var(--cb-divider-line-color);
|
|
44
|
+
border-radius: 0 0 0 var(--shape-corner-extra-small);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&:not(.connect-end) .line-end {
|
|
48
|
+
border-inline-start: 1px solid var(--cb-divider-line-color);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.content {
|
|
52
|
+
padding: var(--spacing-050) 0;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.divider.vertical {
|
|
57
|
+
width: 100%;
|
|
58
|
+
flex-direction: row;
|
|
59
|
+
align-items: center;
|
|
60
|
+
justify-content: center;
|
|
61
|
+
|
|
62
|
+
.line {
|
|
63
|
+
width: 100%;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&.connect-start .line-start {
|
|
67
|
+
height: 1rem;
|
|
68
|
+
margin-top: 1rem;
|
|
69
|
+
border-top: 1px solid var(--cb-divider-line-color);
|
|
70
|
+
border-left: 1px solid var(--cb-divider-line-color);
|
|
71
|
+
border-radius: var(--shape-corner-extra-small) 0 0 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&:not(.connect-start) .line-start {
|
|
75
|
+
border-top: 1px solid var(--cb-divider-line-color);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&.connect-end .line-end {
|
|
79
|
+
height: 1rem;
|
|
80
|
+
margin-top: 1rem;
|
|
81
|
+
border-top: 1px solid var(--cb-divider-line-color);
|
|
82
|
+
border-right: 1px solid var(--cb-divider-line-color);
|
|
83
|
+
border-radius: 0 var(--shape-corner-extra-small) 0 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&:not(.connect-end) .line-end {
|
|
87
|
+
border-top: 1px solid var(--cb-divider-line-color);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.content {
|
|
91
|
+
padding: 0 var(--spacing-050);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { html, LitElement } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
4
|
+
import IndividualComponent from '@/IndividualComponent.js';
|
|
5
|
+
import styles from './cb-divider.scss';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @label CB Divider
|
|
9
|
+
* @tag wc-cb-divider
|
|
10
|
+
* @rawTag cb-divider
|
|
11
|
+
* @summary A divider line used within a condition builder to visually connect expressions with operator tags.
|
|
12
|
+
* @tags condition-builder
|
|
13
|
+
* @parentRawTag compound-builder
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```html
|
|
17
|
+
* <wc-cb-divider>
|
|
18
|
+
* <wc-tag color="green">and</wc-tag>
|
|
19
|
+
* </wc-cb-divider>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
@IndividualComponent
|
|
23
|
+
export class CbDivider extends LitElement {
|
|
24
|
+
static styles = [styles];
|
|
25
|
+
|
|
26
|
+
/** Whether to render the divider vertically instead of horizontally. */
|
|
27
|
+
@property({ type: Boolean, reflect: true })
|
|
28
|
+
vertical = false;
|
|
29
|
+
|
|
30
|
+
/** Whether to render a connecting line at the start. */
|
|
31
|
+
@property({ type: Boolean, reflect: true, attribute: 'connect-start' })
|
|
32
|
+
connectStart = false;
|
|
33
|
+
|
|
34
|
+
/** Whether to render a connecting line at the end. */
|
|
35
|
+
@property({ type: Boolean, reflect: true, attribute: 'connect-end' })
|
|
36
|
+
connectEnd = false;
|
|
37
|
+
|
|
38
|
+
render() {
|
|
39
|
+
const classes = {
|
|
40
|
+
divider: true,
|
|
41
|
+
'connect-start': this.connectStart,
|
|
42
|
+
'connect-end': this.connectEnd,
|
|
43
|
+
vertical: this.vertical,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
return html`
|
|
47
|
+
<div class=${classMap(classes)}>
|
|
48
|
+
<div class="line line-start"></div>
|
|
49
|
+
<div class="content">
|
|
50
|
+
<slot></slot>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="line line-end"></div>
|
|
53
|
+
</div>
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { html, LitElement } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
|
+
import IndividualComponent from '@/IndividualComponent.js';
|
|
4
|
+
import styles from './cb-expression.scss';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @label CB Expression
|
|
8
|
+
* @tag wc-cb-expression
|
|
9
|
+
* @rawTag cb-expression
|
|
10
|
+
* @summary An expression row within a condition builder, containing an operator select and a slot for value inputs.
|
|
11
|
+
* @tags condition-builder
|
|
12
|
+
* @parentRawTag compound-builder
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```html
|
|
16
|
+
* <wc-cb-expression>
|
|
17
|
+
* <wc-input placeholder="Enter value"></wc-input>
|
|
18
|
+
* </wc-cb-expression>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
@IndividualComponent
|
|
22
|
+
export class CbExpression extends LitElement {
|
|
23
|
+
static styles = [styles];
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The list of operator options to display in the operator select.
|
|
27
|
+
* Each item should have at least `label` and `value` properties.
|
|
28
|
+
*/
|
|
29
|
+
@property({ type: Array })
|
|
30
|
+
operators: { label: string; value: string; icon?: string }[] = [];
|
|
31
|
+
|
|
32
|
+
/** The currently selected operator value. */
|
|
33
|
+
@property({ type: String, attribute: 'operator-value' })
|
|
34
|
+
operatorValue = '';
|
|
35
|
+
|
|
36
|
+
render() {
|
|
37
|
+
return html`
|
|
38
|
+
<div class="expression">
|
|
39
|
+
<wc-select
|
|
40
|
+
inline
|
|
41
|
+
.value=${this.operatorValue}
|
|
42
|
+
placeholder="Select Operator"
|
|
43
|
+
.options=${this.operators}
|
|
44
|
+
></wc-select>
|
|
45
|
+
<slot></slot>
|
|
46
|
+
</div>
|
|
47
|
+
`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
@use '../../scss/mixin';
|
|
2
|
+
|
|
3
|
+
@include mixin.base-styles;
|
|
4
|
+
|
|
5
|
+
:host {
|
|
6
|
+
display: block;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.predicate:not(.vertical) {
|
|
10
|
+
.predicate-body {
|
|
11
|
+
padding-top: var(--spacing-200);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.predicate-condition-operator {
|
|
15
|
+
padding: var(--spacing-200) var(--spacing-400) 0 var(--spacing-400);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.predicate.vertical {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: stretch;
|
|
22
|
+
|
|
23
|
+
.predicate-condition-operator {
|
|
24
|
+
padding: var(--spacing-400) 0 var(--spacing-200) 0;
|
|
25
|
+
padding-inline-end: var(--spacing-200);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.predicate-body {
|
|
29
|
+
flex: 1;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.slot-end {
|
|
34
|
+
display: block;
|
|
35
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { html, LitElement, nothing } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
4
|
+
import IndividualComponent from '@/IndividualComponent.js';
|
|
5
|
+
import styles from './cb-predicate.scss';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @label CB Predicate
|
|
9
|
+
* @tag wc-cb-predicate
|
|
10
|
+
* @rawTag cb-predicate
|
|
11
|
+
* @summary A predicate container in a condition builder that can display conditions in horizontal or vertical layout with an optional logical operator divider.
|
|
12
|
+
* @tags condition-builder
|
|
13
|
+
* @parentRawTag compound-expression
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```html
|
|
17
|
+
* <wc-cb-predicate condition-operator="and" vertical>
|
|
18
|
+
* <wc-cb-compound-expression field-label="Age">
|
|
19
|
+
* <wc-cb-expression></wc-cb-expression>
|
|
20
|
+
* </wc-cb-compound-expression>
|
|
21
|
+
* </wc-cb-predicate>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
@IndividualComponent
|
|
25
|
+
export class CbPredicate extends LitElement {
|
|
26
|
+
static styles = [styles];
|
|
27
|
+
|
|
28
|
+
/** The logical operator shown between predicates ('and' or 'or'). */
|
|
29
|
+
@property({ type: String, attribute: 'condition-operator', reflect: true })
|
|
30
|
+
conditionOperator?: 'and' | 'or';
|
|
31
|
+
|
|
32
|
+
/** Whether to render the predicate in vertical layout. */
|
|
33
|
+
@property({ type: Boolean, reflect: true })
|
|
34
|
+
vertical = false;
|
|
35
|
+
|
|
36
|
+
override updated() {
|
|
37
|
+
if (this.vertical) {
|
|
38
|
+
this.__adjustSlotEndPadding();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private __adjustSlotEndPadding() {
|
|
43
|
+
const slotEnd = this.renderRoot.querySelector<HTMLElement>('.slot-end');
|
|
44
|
+
const operatorElm = this.renderRoot.querySelector<HTMLElement>(
|
|
45
|
+
'.predicate-condition-operator',
|
|
46
|
+
);
|
|
47
|
+
if (slotEnd && operatorElm) {
|
|
48
|
+
slotEnd.style.paddingInlineStart =
|
|
49
|
+
operatorElm.getBoundingClientRect().width + 'px';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
private __renderHorizontalOperator() {
|
|
54
|
+
if (!this.conditionOperator) return nothing;
|
|
55
|
+
return html`
|
|
56
|
+
<wc-cb-divider vertical class="predicate-condition-operator">
|
|
57
|
+
<wc-tag color="yellow" size="sm">${this.conditionOperator}</wc-tag>
|
|
58
|
+
</wc-cb-divider>
|
|
59
|
+
`;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
private __renderVerticalOperator() {
|
|
63
|
+
if (!this.conditionOperator) return nothing;
|
|
64
|
+
return html`
|
|
65
|
+
<div class="predicate-condition-operator">
|
|
66
|
+
<wc-cb-divider connect-start connect-end>
|
|
67
|
+
<wc-tag color="green" size="sm">${this.conditionOperator}</wc-tag>
|
|
68
|
+
</wc-cb-divider>
|
|
69
|
+
</div>
|
|
70
|
+
`;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
render() {
|
|
74
|
+
const classes = {
|
|
75
|
+
predicate: true,
|
|
76
|
+
vertical: this.vertical,
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
if (this.vertical) {
|
|
80
|
+
return html`
|
|
81
|
+
<div class=${classMap(classes)}>
|
|
82
|
+
${this.__renderVerticalOperator()}
|
|
83
|
+
<div class="predicate-body">
|
|
84
|
+
<slot></slot>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="slot-end">
|
|
88
|
+
<slot name="end"></slot>
|
|
89
|
+
</div>
|
|
90
|
+
`;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return html`
|
|
94
|
+
<div class=${classMap(classes)}>
|
|
95
|
+
<div class="predicate-body">
|
|
96
|
+
<slot></slot>
|
|
97
|
+
</div>
|
|
98
|
+
${this.__renderHorizontalOperator()}
|
|
99
|
+
</div>
|
|
100
|
+
`;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { html, LitElement } from 'lit';
|
|
2
|
+
import IndividualComponent from '@/IndividualComponent.js';
|
|
3
|
+
import styles from './condition-builder.scss';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @label Condition Builder
|
|
7
|
+
* @tag wc-condition-builder
|
|
8
|
+
* @rawTag condition-builder
|
|
9
|
+
* @summary A condition builder component that allows users to construct complex filter conditions using a visual rule-based interface with predicates, compound expressions, and logical operators.
|
|
10
|
+
* @tags condition-builder
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <wc-condition-builder>
|
|
15
|
+
* <wc-cb-predicate condition-operator="or">
|
|
16
|
+
* <wc-cb-predicate vertical condition-operator="and">
|
|
17
|
+
* <wc-cb-compound-expression field-label="Age" condition-operator="or">
|
|
18
|
+
* <wc-cb-expression>
|
|
19
|
+
* <wc-input inline placeholder="Enter value"></wc-input>
|
|
20
|
+
* </wc-cb-expression>
|
|
21
|
+
* </wc-cb-compound-expression>
|
|
22
|
+
* </wc-cb-predicate>
|
|
23
|
+
* </wc-cb-predicate>
|
|
24
|
+
* </wc-condition-builder>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
@IndividualComponent
|
|
28
|
+
export class ConditionBuilder extends LitElement {
|
|
29
|
+
static styles = [styles];
|
|
30
|
+
|
|
31
|
+
render() {
|
|
32
|
+
return html`
|
|
33
|
+
<div class="condition-builder">
|
|
34
|
+
<slot></slot>
|
|
35
|
+
</div>
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { ConditionBuilder } from './condition-builder.js';
|
|
2
|
+
export { CbPredicate } from './cb-predicate.js';
|
|
3
|
+
export { CbCompoundExpression } from './cb-compound-expression.js';
|
|
4
|
+
export { CbExpression } from './cb-expression.js';
|
|
5
|
+
export { CbDivider } from './cb-divider.js';
|
|
@@ -168,7 +168,6 @@ export class DatePicker extends BaseInput {
|
|
|
168
168
|
slot="field-end"
|
|
169
169
|
color="secondary"
|
|
170
170
|
variant="text"
|
|
171
|
-
name="calendar_today"
|
|
172
171
|
?disabled=${this.disabled}
|
|
173
172
|
@click=${() => {
|
|
174
173
|
setTimeout(() => {
|
|
@@ -177,6 +176,7 @@ export class DatePicker extends BaseInput {
|
|
|
177
176
|
});
|
|
178
177
|
}}
|
|
179
178
|
>
|
|
179
|
+
<wc-icon name="calendar_today"></wc-icon>
|
|
180
180
|
</wc-icon-button>
|
|
181
181
|
</wc-field>
|
|
182
182
|
`;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang='en-GB'>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset='utf-8'>
|
|
5
|
+
<meta name='viewport' content='width=device-width, initial-scale=1.0, viewport-fit=cover' />
|
|
6
|
+
<link rel='stylesheet' href='/dist/assets/styles/tokens.css' />
|
|
7
|
+
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
|
8
|
+
|
|
9
|
+
<style>
|
|
10
|
+
body {
|
|
11
|
+
background: var(--color-surface);
|
|
12
|
+
padding: 2rem;
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-wrap: wrap;
|
|
15
|
+
gap: 1rem;
|
|
16
|
+
align-items: flex-start;
|
|
17
|
+
font-family: var(--font-family-sans);
|
|
18
|
+
}
|
|
19
|
+
</style>
|
|
20
|
+
</head>
|
|
21
|
+
<body>
|
|
22
|
+
|
|
23
|
+
<!-- Basic usage -->
|
|
24
|
+
<wc-dropdown-button>
|
|
25
|
+
Actions
|
|
26
|
+
<wc-menu-item slot="menu">Edit</wc-menu-item>
|
|
27
|
+
<wc-menu-item slot="menu">Duplicate</wc-menu-item>
|
|
28
|
+
<wc-menu-item slot="menu">Delete</wc-menu-item>
|
|
29
|
+
</wc-dropdown-button>
|
|
30
|
+
|
|
31
|
+
<!-- Variants -->
|
|
32
|
+
<wc-dropdown-button variant="filled">
|
|
33
|
+
Filled
|
|
34
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
35
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
36
|
+
</wc-dropdown-button>
|
|
37
|
+
<wc-dropdown-button variant="tonal">
|
|
38
|
+
Tonal
|
|
39
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
40
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
41
|
+
</wc-dropdown-button>
|
|
42
|
+
<wc-dropdown-button variant="outlined">
|
|
43
|
+
Outlined
|
|
44
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
45
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
46
|
+
</wc-dropdown-button>
|
|
47
|
+
<wc-dropdown-button variant="text">
|
|
48
|
+
Text
|
|
49
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
50
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
51
|
+
</wc-dropdown-button>
|
|
52
|
+
<wc-dropdown-button variant="elevated">
|
|
53
|
+
Elevated
|
|
54
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
55
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
56
|
+
</wc-dropdown-button>
|
|
57
|
+
|
|
58
|
+
<!-- Colors -->
|
|
59
|
+
<wc-dropdown-button color="primary">
|
|
60
|
+
Primary
|
|
61
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
62
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
63
|
+
</wc-dropdown-button>
|
|
64
|
+
<wc-dropdown-button color="success">
|
|
65
|
+
Success
|
|
66
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
67
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
68
|
+
</wc-dropdown-button>
|
|
69
|
+
<wc-dropdown-button color="danger">
|
|
70
|
+
Danger
|
|
71
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
72
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
73
|
+
</wc-dropdown-button>
|
|
74
|
+
|
|
75
|
+
<!-- Sizes -->
|
|
76
|
+
<wc-dropdown-button size="xs">
|
|
77
|
+
Extra small
|
|
78
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
79
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
80
|
+
</wc-dropdown-button>
|
|
81
|
+
<wc-dropdown-button size="sm">
|
|
82
|
+
Small
|
|
83
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
84
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
85
|
+
</wc-dropdown-button>
|
|
86
|
+
<wc-dropdown-button size="md">
|
|
87
|
+
Medium
|
|
88
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
89
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
90
|
+
</wc-dropdown-button>
|
|
91
|
+
|
|
92
|
+
<!-- Disabled -->
|
|
93
|
+
<wc-dropdown-button disabled>
|
|
94
|
+
Disabled
|
|
95
|
+
<wc-menu-item slot="menu">Option A</wc-menu-item>
|
|
96
|
+
<wc-menu-item slot="menu">Option B</wc-menu-item>
|
|
97
|
+
</wc-dropdown-button>
|
|
98
|
+
|
|
99
|
+
<!-- Placement -->
|
|
100
|
+
<wc-dropdown-button placement="bottom-end">
|
|
101
|
+
Bottom End
|
|
102
|
+
<wc-menu-item slot="menu">Option 1</wc-menu-item>
|
|
103
|
+
<wc-menu-item slot="menu">Option 2</wc-menu-item>
|
|
104
|
+
</wc-dropdown-button>
|
|
105
|
+
|
|
106
|
+
<script type='module'>
|
|
107
|
+
import '/dist/peacock-loader.js';
|
|
108
|
+
</script>
|
|
109
|
+
</body>
|
|
110
|
+
</html>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@use '../../scss/mixin';
|
|
2
|
+
|
|
3
|
+
@include mixin.base-styles;
|
|
4
|
+
|
|
5
|
+
:host {
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
position: relative;
|
|
8
|
+
|
|
9
|
+
--dropdown-button-container-shape: var(--shape-corner-medium);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.trigger-button {
|
|
13
|
+
--button-container-shape: var(--dropdown-button-container-shape);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.dropdown-icon {
|
|
17
|
+
transition: transform 200ms ease;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.trigger-button.active .dropdown-icon {
|
|
21
|
+
transform: rotate(180deg);
|
|
22
|
+
}
|