coveragebook_components 0.8.9 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/build/coco/app.css +255 -242
- data/app/assets/build/coco/app.js +71 -39
- data/app/assets/build/coco/book.css +23 -16
- data/app/assets/build/coco/book.js +50 -21
- data/app/assets/js/libs/alpine/directives/dropdown.js +5 -2
- data/app/components/coco/app/elements/alert/alert.css +1 -1
- data/app/components/coco/app/elements/button/button.css +38 -58
- data/app/components/coco/app/elements/button/button.rb +2 -3
- data/app/components/coco/app/elements/button_group/button_group.css +10 -2
- data/app/components/coco/app/elements/button_group/button_group.html.erb +2 -1
- data/app/components/coco/app/elements/button_group/button_group.js +35 -19
- data/app/components/coco/app/elements/button_to/button_to.css +4 -8
- data/app/components/coco/app/elements/color_picker_button/color_picker_button.css +1 -2
- data/app/components/coco/app/elements/image_picker_button/image_picker_button.css +1 -2
- data/app/components/coco/app/elements/layout_picker_button/layout_picker_button.css +1 -2
- data/app/components/coco/app/elements/menu/menu.css +7 -5
- data/app/components/coco/app/elements/menu_button/menu_button.css +1 -2
- data/app/components/coco/app/elements/snackbar/snackbar.css +3 -3
- data/app/components/coco/base/button/button.css +9 -9
- data/app/components/coco/base/button/button.html.erb +16 -18
- data/app/components/coco/base/button/button.js +6 -18
- data/app/components/coco/base/button/button.rb +38 -58
- data/app/components/coco/base/button/button_dropdown.js +27 -0
- data/lib/coco.rb +1 -1
- metadata +3 -6
- data/app/assets/build/coco/app.dev.css +0 -5535
- data/app/assets/build/coco/app.dev.js +0 -27473
- data/app/assets/build/coco/book.dev.css +0 -2009
- data/app/assets/build/coco/book.dev.js +0 -15801
@@ -14044,7 +14044,7 @@
|
|
14044
14044
|
var package_default = {
|
14045
14045
|
name: "coveragebook-components",
|
14046
14046
|
type: "module",
|
14047
|
-
version: "0.
|
14047
|
+
version: "0.9.1",
|
14048
14048
|
main: "index.js",
|
14049
14049
|
repository: "git@github.com:coveragebook/coco.git",
|
14050
14050
|
author: "Mark Perkins <mark@coveragebook.com>",
|
@@ -23835,10 +23835,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
23835
23835
|
const settings = tippyModifiers(modifiers);
|
23836
23836
|
const result = expression ? evaluate2(expression) : {};
|
23837
23837
|
const directiveConfig = isObject2(result) ? result : {};
|
23838
|
-
let _a = directiveConfig, { triggerTarget, contentTarget } = _a, config = __objRest(_a, ["triggerTarget", "contentTarget"]);
|
23838
|
+
let _a = directiveConfig, { triggerTarget, contentTarget, anchorTarget } = _a, config = __objRest(_a, ["triggerTarget", "contentTarget", "anchorTarget"]);
|
23839
23839
|
contentTarget = contentTarget || el.querySelector("[x-dropdown\\:content]");
|
23840
23840
|
content = isNode(contentTarget) ? contentTarget.firstElementChild : contentTarget;
|
23841
23841
|
triggerTarget = triggerTarget || el.querySelector("[x-dropdown\\:trigger]") || el;
|
23842
|
+
anchorTarget = anchorTarget || el.querySelector("[x-dropdown\\:anchor]") || el;
|
23842
23843
|
if (!el.__x_dropdown) {
|
23843
23844
|
const mixin = Alpine3.reactive({
|
23844
23845
|
dropdown: {
|
@@ -23854,7 +23855,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
23854
23855
|
}
|
23855
23856
|
});
|
23856
23857
|
setData(el, mixin);
|
23857
|
-
const dropdown = el.__x_dropdown = tippy_default(
|
23858
|
+
const dropdown = el.__x_dropdown = tippy_default(anchorTarget, __spreadValues(__spreadValues({
|
23858
23859
|
theme: "coco-app-dropdown",
|
23859
23860
|
placement: "bottom-start",
|
23860
23861
|
offset: [0, 0],
|
@@ -24074,11 +24075,13 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
24074
24075
|
confirmed: true,
|
24075
24076
|
lastState: null,
|
24076
24077
|
stateTooltips: data2.tooltips || {},
|
24077
|
-
tooltipText: null
|
24078
|
-
dropdown: null
|
24078
|
+
tooltipText: null
|
24079
24079
|
}, data2.props || {}), {
|
24080
24080
|
init() {
|
24081
24081
|
this.lastState = this.state;
|
24082
|
+
this.checkConfirmation = this.checkConfirmation.bind(this);
|
24083
|
+
this.approveAndRun = this.approveAndRun.bind(this);
|
24084
|
+
this.shouldShowTooltip = this.shouldShowTooltip.bind(this);
|
24082
24085
|
this.$nextTick(() => {
|
24083
24086
|
if (this.$options.confirm) {
|
24084
24087
|
this.confirmed = false;
|
@@ -24106,7 +24109,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
24106
24109
|
this.tooltipText = tooltipForState || defaultContent;
|
24107
24110
|
}
|
24108
24111
|
},
|
24109
|
-
|
24112
|
+
shouldShowTooltip() {
|
24110
24113
|
return !!this.tooltipText;
|
24111
24114
|
},
|
24112
24115
|
get disabled() {
|
@@ -24115,16 +24118,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
24115
24118
|
set disabled(value) {
|
24116
24119
|
this.$options.disabled = value;
|
24117
24120
|
},
|
24118
|
-
|
24119
|
-
|
24120
|
-
if (this.dropdown) {
|
24121
|
-
this.dropdown.hide();
|
24122
|
-
}
|
24123
|
-
},
|
24124
|
-
showDropdown() {
|
24125
|
-
if (this.dropdown) {
|
24126
|
-
this.dropdown.show();
|
24127
|
-
}
|
24121
|
+
get tippyInstance() {
|
24122
|
+
return this.$root.__x_tippy;
|
24128
24123
|
},
|
24129
24124
|
/* confirmation */
|
24130
24125
|
checkConfirmation(event) {
|
@@ -24204,15 +24199,38 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
24204
24199
|
root: {
|
24205
24200
|
"x-options": "options",
|
24206
24201
|
"x-tooltip": "tooltipText",
|
24207
|
-
"x-effect": "setTooltipText"
|
24208
|
-
"@confirmation:confirm": "approveAndRun",
|
24209
|
-
"@confirmation:cancel": "cancelConfirmation",
|
24210
|
-
"@dropdown:show": "setState('active')",
|
24211
|
-
"@dropdown:hide": "resetState()"
|
24202
|
+
"x-effect": "setTooltipText"
|
24212
24203
|
}
|
24213
24204
|
});
|
24214
24205
|
});
|
24215
24206
|
|
24207
|
+
// ../../components/coco/base/button/button_dropdown.js
|
24208
|
+
var button_dropdown_exports = {};
|
24209
|
+
__export(button_dropdown_exports, {
|
24210
|
+
default: () => button_dropdown_default
|
24211
|
+
});
|
24212
|
+
var button_dropdown_default = CocoComponent("buttonDropdown", (data2 = {}) => {
|
24213
|
+
return {
|
24214
|
+
dropdown: null,
|
24215
|
+
button: null,
|
24216
|
+
init() {
|
24217
|
+
this.$nextTick(() => {
|
24218
|
+
this.button = getComponent(this.$el.querySelector(".coco-button"));
|
24219
|
+
});
|
24220
|
+
},
|
24221
|
+
hideDropdown() {
|
24222
|
+
if (this.dropdown) {
|
24223
|
+
this.dropdown.hide();
|
24224
|
+
}
|
24225
|
+
},
|
24226
|
+
showDropdown() {
|
24227
|
+
if (this.dropdown) {
|
24228
|
+
this.dropdown.show();
|
24229
|
+
}
|
24230
|
+
}
|
24231
|
+
};
|
24232
|
+
});
|
24233
|
+
|
24216
24234
|
// ../../components/coco/base/dropdown/dropdown.js
|
24217
24235
|
var dropdown_exports = {};
|
24218
24236
|
__export(dropdown_exports, {
|
@@ -24544,7 +24562,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
24544
24562
|
}
|
24545
24563
|
|
24546
24564
|
// import-glob:/Users/mark/Code/coveragebook/coco/app/assets/js/base|@baseComponents/**/*.js
|
24547
|
-
var modules = [button_exports, dropdown_exports, icon_exports, image_uploader_exports, modal_exports, modal_dialog_exports, modal_lightbox_exports, poll_controller_exports];
|
24565
|
+
var modules = [button_exports, button_dropdown_exports, dropdown_exports, icon_exports, image_uploader_exports, modal_exports, modal_dialog_exports, modal_lightbox_exports, poll_controller_exports];
|
24548
24566
|
var __default = modules;
|
24549
24567
|
|
24550
24568
|
// base/components.js
|
@@ -25072,10 +25090,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
25072
25090
|
var button_group_default = CocoComponent("appButtonGroup", () => {
|
25073
25091
|
return {
|
25074
25092
|
options: ["collapsible"],
|
25093
|
+
ready: false,
|
25075
25094
|
containerWidth: 0,
|
25076
25095
|
contentWidth: 0,
|
25077
25096
|
collapsed: false,
|
25078
|
-
|
25097
|
+
singletonTooltip: null,
|
25098
|
+
tooltipInstances: [],
|
25079
25099
|
get collapsible() {
|
25080
25100
|
return this.$options.collapsible !== false;
|
25081
25101
|
},
|
@@ -25083,33 +25103,45 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
25083
25103
|
const buttonElements = this.$el.querySelectorAll(
|
25084
25104
|
"[data-component='app-button']"
|
25085
25105
|
);
|
25086
|
-
return Array.from(buttonElements).map((el) =>
|
25106
|
+
return Array.from(buttonElements).map((el) => getComponent(el));
|
25087
25107
|
},
|
25088
25108
|
get parent() {
|
25089
25109
|
return this.$root.parentElement;
|
25090
25110
|
},
|
25091
25111
|
init() {
|
25092
|
-
this
|
25093
|
-
|
25094
|
-
|
25095
|
-
|
25096
|
-
|
25097
|
-
|
25112
|
+
if (this.collapsible) {
|
25113
|
+
this.$nextTick(() => {
|
25114
|
+
this.onResize();
|
25115
|
+
this.createSingletonTooltip();
|
25116
|
+
this.ready = true;
|
25117
|
+
});
|
25118
|
+
} else {
|
25119
|
+
this.ready = true;
|
25120
|
+
}
|
25098
25121
|
this.$watch("collapsed", (value) => {
|
25099
25122
|
this.buttons.forEach((button) => {
|
25100
25123
|
button.isCollapsed = value;
|
25101
25124
|
});
|
25125
|
+
this.$nextTick(() => this.createSingletonTooltip());
|
25102
25126
|
});
|
25103
25127
|
},
|
25104
|
-
|
25105
|
-
|
25106
|
-
|
25107
|
-
|
25108
|
-
this.tooltip = createSingleton(tippys, {
|
25128
|
+
createSingletonTooltip() {
|
25129
|
+
this.destroySingletonTooltip();
|
25130
|
+
this.tooltipInstances = this.buttons.map((button) => button.shouldShowTooltip() && button.tippyInstance).filter((t3) => t3);
|
25131
|
+
this.singletonTooltip = createSingleton(this.tooltipInstances, {
|
25109
25132
|
theme: "coco-tooltip",
|
25110
|
-
|
25133
|
+
delay: 100,
|
25134
|
+
moveTransition: "transform 0.1s ease-out"
|
25111
25135
|
});
|
25112
25136
|
},
|
25137
|
+
destroySingletonTooltip() {
|
25138
|
+
if (this.singletonTooltip && this.singletonTooltip.destroy) {
|
25139
|
+
this.singletonTooltip.destroy();
|
25140
|
+
this.singletonTooltip = null;
|
25141
|
+
this.tooltipInstances.forEach((tooltip) => tooltip.destroy());
|
25142
|
+
this.tooltipInstances = [];
|
25143
|
+
}
|
25144
|
+
},
|
25113
25145
|
onResize() {
|
25114
25146
|
if (!this.collapsible)
|
25115
25147
|
return;
|
@@ -25128,9 +25160,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
25128
25160
|
}
|
25129
25161
|
},
|
25130
25162
|
destroy() {
|
25131
|
-
if (this.
|
25132
|
-
this.
|
25133
|
-
this.
|
25163
|
+
if (this.singletonTooltip) {
|
25164
|
+
this.singletonTooltip.destroy();
|
25165
|
+
this.singletonTooltip = null;
|
25134
25166
|
}
|
25135
25167
|
}
|
25136
25168
|
};
|
@@ -777,6 +777,9 @@ select {
|
|
777
777
|
height: 2rem;
|
778
778
|
width: 2rem;
|
779
779
|
}
|
780
|
+
.coco-button-wrapper {
|
781
|
+
display: contents !important;
|
782
|
+
}
|
780
783
|
[data-coco].coco-button {
|
781
784
|
display: flex;
|
782
785
|
width: auto;
|
@@ -788,22 +791,20 @@ select {
|
|
788
791
|
border-color: transparent;
|
789
792
|
background-color: transparent;
|
790
793
|
color: currentColor;
|
791
|
-
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
|
792
|
-
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
793
|
-
transition-duration: 150ms;
|
794
|
-
width: -moz-min-content;
|
795
|
-
width: min-content;
|
796
|
-
}
|
797
|
-
[data-coco].coco-button .button-element {
|
798
|
-
display: inline-flex;
|
799
|
-
width: 100%;
|
800
794
|
text-decoration-line: none;
|
801
795
|
outline: 2px solid transparent;
|
802
796
|
outline-offset: 2px;
|
797
|
+
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
|
798
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
799
|
+
transition-duration: 150ms;
|
803
800
|
}
|
804
|
-
[data-coco].coco-button
|
801
|
+
[data-coco].coco-button:focus-visible {
|
805
802
|
outline-width: 0px;
|
806
803
|
}
|
804
|
+
[data-coco].coco-button {
|
805
|
+
width: -moz-min-content;
|
806
|
+
width: min-content;
|
807
|
+
}
|
807
808
|
[data-coco].coco-button .button-inner {
|
808
809
|
margin-left: auto;
|
809
810
|
margin-right: auto;
|
@@ -838,7 +839,7 @@ select {
|
|
838
839
|
order: 3;
|
839
840
|
}
|
840
841
|
/* disabled */
|
841
|
-
[data-coco].coco-button[data-disabled="true"]
|
842
|
+
[data-coco].coco-button[data-disabled="true"] {
|
842
843
|
pointer-events: none;
|
843
844
|
cursor: not-allowed;
|
844
845
|
}
|
@@ -849,7 +850,7 @@ select {
|
|
849
850
|
transform: rotate(360deg);
|
850
851
|
}
|
851
852
|
}
|
852
|
-
[data-coco].coco-button[data-state="loading"]
|
853
|
+
[data-coco].coco-button[data-state="loading"] .button-icon {
|
853
854
|
animation: spin 1.5s linear infinite;
|
854
855
|
}
|
855
856
|
/* Fit */
|
@@ -857,16 +858,16 @@ select {
|
|
857
858
|
width: 100%;
|
858
859
|
}
|
859
860
|
/* Icons */
|
860
|
-
[data-coco].coco-button[data-icon-position="end"]
|
861
|
+
[data-coco].coco-button[data-icon-position="end"] .button-content {
|
861
862
|
order: 1;
|
862
863
|
}
|
863
|
-
[data-coco].coco-button[data-icon-position="end"]
|
864
|
+
[data-coco].coco-button[data-icon-position="end"] .button-icon {
|
864
865
|
order: 2;
|
865
866
|
}
|
866
|
-
[data-coco].coco-button[data-icon-position="end"]
|
867
|
+
[data-coco].coco-button[data-icon-position="end"] .button-toggle {
|
867
868
|
order: 3;
|
868
869
|
}
|
869
|
-
[data-coco].coco-button.with-icon[data-collapsed="true"]
|
870
|
+
[data-coco].coco-button.with-icon[data-collapsed="true"] .button-content {
|
870
871
|
display: none;
|
871
872
|
}
|
872
873
|
[data-coco][data-component="dropdown"] {
|
@@ -1938,6 +1939,9 @@ select {
|
|
1938
1939
|
.hidden {
|
1939
1940
|
display: none;
|
1940
1941
|
}
|
1942
|
+
.transform {
|
1943
|
+
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
1944
|
+
}
|
1941
1945
|
.resize {
|
1942
1946
|
resize: both;
|
1943
1947
|
}
|
@@ -1966,6 +1970,9 @@ select {
|
|
1966
1970
|
.filter {
|
1967
1971
|
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
1968
1972
|
}
|
1973
|
+
.ease-out {
|
1974
|
+
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
|
1975
|
+
}
|
1969
1976
|
/* Transparent gray blend-mode background utilities */
|
1970
1977
|
.\!icon {
|
1971
1978
|
}
|
@@ -11815,6 +11815,17 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
11815
11815
|
});
|
11816
11816
|
return components;
|
11817
11817
|
}
|
11818
|
+
function getComponent(el, throwOnError = false) {
|
11819
|
+
try {
|
11820
|
+
return Alpine.$data(el);
|
11821
|
+
} catch (error2) {
|
11822
|
+
if (throwOnError) {
|
11823
|
+
throw error2;
|
11824
|
+
} else {
|
11825
|
+
return null;
|
11826
|
+
}
|
11827
|
+
}
|
11828
|
+
}
|
11818
11829
|
function getData(el) {
|
11819
11830
|
const root = Alpine.closestRoot(el);
|
11820
11831
|
return root ? Alpine.$data(root) : null;
|
@@ -15061,10 +15072,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
15061
15072
|
const settings = tippyModifiers(modifiers);
|
15062
15073
|
const result = expression ? evaluate2(expression) : {};
|
15063
15074
|
const directiveConfig = isObject2(result) ? result : {};
|
15064
|
-
let _a = directiveConfig, { triggerTarget, contentTarget } = _a, config = __objRest(_a, ["triggerTarget", "contentTarget"]);
|
15075
|
+
let _a = directiveConfig, { triggerTarget, contentTarget, anchorTarget } = _a, config = __objRest(_a, ["triggerTarget", "contentTarget", "anchorTarget"]);
|
15065
15076
|
contentTarget = contentTarget || el.querySelector("[x-dropdown\\:content]");
|
15066
15077
|
content = isNode(contentTarget) ? contentTarget.firstElementChild : contentTarget;
|
15067
15078
|
triggerTarget = triggerTarget || el.querySelector("[x-dropdown\\:trigger]") || el;
|
15079
|
+
anchorTarget = anchorTarget || el.querySelector("[x-dropdown\\:anchor]") || el;
|
15068
15080
|
if (!el.__x_dropdown) {
|
15069
15081
|
const mixin = Alpine3.reactive({
|
15070
15082
|
dropdown: {
|
@@ -15080,7 +15092,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
15080
15092
|
}
|
15081
15093
|
});
|
15082
15094
|
setData(el, mixin);
|
15083
|
-
const dropdown = el.__x_dropdown = tippy_default(
|
15095
|
+
const dropdown = el.__x_dropdown = tippy_default(anchorTarget, __spreadValues(__spreadValues({
|
15084
15096
|
theme: "coco-app-dropdown",
|
15085
15097
|
placement: "bottom-start",
|
15086
15098
|
offset: [0, 0],
|
@@ -15272,11 +15284,13 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
15272
15284
|
confirmed: true,
|
15273
15285
|
lastState: null,
|
15274
15286
|
stateTooltips: data2.tooltips || {},
|
15275
|
-
tooltipText: null
|
15276
|
-
dropdown: null
|
15287
|
+
tooltipText: null
|
15277
15288
|
}, data2.props || {}), {
|
15278
15289
|
init() {
|
15279
15290
|
this.lastState = this.state;
|
15291
|
+
this.checkConfirmation = this.checkConfirmation.bind(this);
|
15292
|
+
this.approveAndRun = this.approveAndRun.bind(this);
|
15293
|
+
this.shouldShowTooltip = this.shouldShowTooltip.bind(this);
|
15280
15294
|
this.$nextTick(() => {
|
15281
15295
|
if (this.$options.confirm) {
|
15282
15296
|
this.confirmed = false;
|
@@ -15304,7 +15318,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
15304
15318
|
this.tooltipText = tooltipForState || defaultContent;
|
15305
15319
|
}
|
15306
15320
|
},
|
15307
|
-
|
15321
|
+
shouldShowTooltip() {
|
15308
15322
|
return !!this.tooltipText;
|
15309
15323
|
},
|
15310
15324
|
get disabled() {
|
@@ -15313,16 +15327,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
15313
15327
|
set disabled(value) {
|
15314
15328
|
this.$options.disabled = value;
|
15315
15329
|
},
|
15316
|
-
|
15317
|
-
|
15318
|
-
if (this.dropdown) {
|
15319
|
-
this.dropdown.hide();
|
15320
|
-
}
|
15321
|
-
},
|
15322
|
-
showDropdown() {
|
15323
|
-
if (this.dropdown) {
|
15324
|
-
this.dropdown.show();
|
15325
|
-
}
|
15330
|
+
get tippyInstance() {
|
15331
|
+
return this.$root.__x_tippy;
|
15326
15332
|
},
|
15327
15333
|
/* confirmation */
|
15328
15334
|
checkConfirmation(event) {
|
@@ -15402,15 +15408,38 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
15402
15408
|
root: {
|
15403
15409
|
"x-options": "options",
|
15404
15410
|
"x-tooltip": "tooltipText",
|
15405
|
-
"x-effect": "setTooltipText"
|
15406
|
-
"@confirmation:confirm": "approveAndRun",
|
15407
|
-
"@confirmation:cancel": "cancelConfirmation",
|
15408
|
-
"@dropdown:show": "setState('active')",
|
15409
|
-
"@dropdown:hide": "resetState()"
|
15411
|
+
"x-effect": "setTooltipText"
|
15410
15412
|
}
|
15411
15413
|
});
|
15412
15414
|
});
|
15413
15415
|
|
15416
|
+
// ../../components/coco/base/button/button_dropdown.js
|
15417
|
+
var button_dropdown_exports = {};
|
15418
|
+
__export(button_dropdown_exports, {
|
15419
|
+
default: () => button_dropdown_default
|
15420
|
+
});
|
15421
|
+
var button_dropdown_default = CocoComponent("buttonDropdown", (data2 = {}) => {
|
15422
|
+
return {
|
15423
|
+
dropdown: null,
|
15424
|
+
button: null,
|
15425
|
+
init() {
|
15426
|
+
this.$nextTick(() => {
|
15427
|
+
this.button = getComponent(this.$el.querySelector(".coco-button"));
|
15428
|
+
});
|
15429
|
+
},
|
15430
|
+
hideDropdown() {
|
15431
|
+
if (this.dropdown) {
|
15432
|
+
this.dropdown.hide();
|
15433
|
+
}
|
15434
|
+
},
|
15435
|
+
showDropdown() {
|
15436
|
+
if (this.dropdown) {
|
15437
|
+
this.dropdown.show();
|
15438
|
+
}
|
15439
|
+
}
|
15440
|
+
};
|
15441
|
+
});
|
15442
|
+
|
15414
15443
|
// ../../components/coco/base/dropdown/dropdown.js
|
15415
15444
|
var dropdown_exports = {};
|
15416
15445
|
__export(dropdown_exports, {
|
@@ -15755,7 +15784,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
15755
15784
|
}
|
15756
15785
|
|
15757
15786
|
// import-glob:/Users/mark/Code/coveragebook/coco/app/assets/js/base|@baseComponents/**/*.js
|
15758
|
-
var modules = [button_exports, dropdown_exports, icon_exports, image_uploader_exports, modal_exports, modal_dialog_exports, modal_lightbox_exports, poll_controller_exports];
|
15787
|
+
var modules = [button_exports, button_dropdown_exports, dropdown_exports, icon_exports, image_uploader_exports, modal_exports, modal_dialog_exports, modal_lightbox_exports, poll_controller_exports];
|
15759
15788
|
var __default = modules;
|
15760
15789
|
|
15761
15790
|
// base/components.js
|
@@ -16,7 +16,8 @@ export default function (Alpine) {
|
|
16
16
|
const settings = buildConfig(modifiers);
|
17
17
|
const result = expression ? evaluate(expression) : {};
|
18
18
|
const directiveConfig = isObject(result) ? result : {};
|
19
|
-
let { triggerTarget, contentTarget, ...config } =
|
19
|
+
let { triggerTarget, contentTarget, anchorTarget, ...config } =
|
20
|
+
directiveConfig;
|
20
21
|
|
21
22
|
contentTarget =
|
22
23
|
contentTarget || el.querySelector("[x-dropdown\\:content]");
|
@@ -25,6 +26,8 @@ export default function (Alpine) {
|
|
25
26
|
: contentTarget;
|
26
27
|
triggerTarget =
|
27
28
|
triggerTarget || el.querySelector("[x-dropdown\\:trigger]") || el;
|
29
|
+
anchorTarget =
|
30
|
+
anchorTarget || el.querySelector("[x-dropdown\\:anchor]") || el;
|
28
31
|
|
29
32
|
// Initialize the dropdown
|
30
33
|
|
@@ -50,7 +53,7 @@ export default function (Alpine) {
|
|
50
53
|
|
51
54
|
setData(el, mixin);
|
52
55
|
|
53
|
-
const dropdown = (el.__x_dropdown = tippy(
|
56
|
+
const dropdown = (el.__x_dropdown = tippy(anchorTarget, {
|
54
57
|
theme: "coco-app-dropdown",
|
55
58
|
placement: "bottom-start",
|
56
59
|
offset: [0, 0],
|