coveragebook_components 0.17.1 → 0.17.2
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/coco.css +4 -0
- data/app/assets/build/coco/coco.js +111 -67
- data/app/components/coco/buttons/button_group/button_group.css +6 -0
- data/app/components/coco/buttons/button_group/button_group.rb +1 -0
- data/app/components/coco/concerns/acts_as_button_group.rb +5 -0
- data/app/helpers/coco/components_helper.rb +52 -52
- data/lib/coco.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2af0604e33ee8ea690a93abf997f126ecaeb23528b3bf682fadc79eed353df2
|
4
|
+
data.tar.gz: 6d055a247adaa8f2a794d3a6864d38a23fd2059d0c01d08ea183e751c06c440c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb41e2bfb905a693fb9a9ac36019d09699001552fa9f6aa2ce0df0b7f8281ebcc159f15cf41a58c059e1f83fe6907c085265cddee43dc893d8d475e34b146092
|
7
|
+
data.tar.gz: 9c229a0bf2926994c7bf5699485365d74956e3fc23cb0df41842b11ca5e27df24f3603c9339a86771316acdf94b185e83250f9e2b5c651771f0fcb130c0f7f24
|
@@ -2241,6 +2241,10 @@ select{
|
|
2241
2241
|
border-color: rgb(209 213 219 / var(--tw-border-opacity))
|
2242
2242
|
}
|
2243
2243
|
|
2244
|
+
[data-coco][data-component="button-group"][data-reversed="true"] .button-group-buttons{
|
2245
|
+
flex-direction: row-reverse
|
2246
|
+
}
|
2247
|
+
|
2244
2248
|
[data-coco][data-component="button-group"][data-align="end"] .button-group-buttons{
|
2245
2249
|
margin-left: auto
|
2246
2250
|
}
|
@@ -7176,6 +7176,7 @@ var require_module_cjs = __commonJS({
|
|
7176
7176
|
});
|
7177
7177
|
var module_exports = {};
|
7178
7178
|
__export2(module_exports, {
|
7179
|
+
Alpine: () => src_default,
|
7179
7180
|
default: () => module_default
|
7180
7181
|
});
|
7181
7182
|
module.exports = __toCommonJS(module_exports);
|
@@ -7262,6 +7263,24 @@ var require_module_cjs = __commonJS({
|
|
7262
7263
|
cleanup();
|
7263
7264
|
}];
|
7264
7265
|
}
|
7266
|
+
function watch(getter, callback) {
|
7267
|
+
let firstTime = true;
|
7268
|
+
let oldValue;
|
7269
|
+
let effectReference = effect(() => {
|
7270
|
+
let value = getter();
|
7271
|
+
JSON.stringify(value);
|
7272
|
+
if (!firstTime) {
|
7273
|
+
queueMicrotask(() => {
|
7274
|
+
callback(value, oldValue);
|
7275
|
+
oldValue = value;
|
7276
|
+
});
|
7277
|
+
} else {
|
7278
|
+
oldValue = value;
|
7279
|
+
}
|
7280
|
+
firstTime = false;
|
7281
|
+
});
|
7282
|
+
return () => release(effectReference);
|
7283
|
+
}
|
7265
7284
|
function dispatch(el, name, detail = {}) {
|
7266
7285
|
el.dispatchEvent(
|
7267
7286
|
new CustomEvent(name, {
|
@@ -7421,21 +7440,17 @@ var require_module_cjs = __commonJS({
|
|
7421
7440
|
observer.disconnect();
|
7422
7441
|
currentlyObserving = false;
|
7423
7442
|
}
|
7424
|
-
var
|
7425
|
-
var willProcessRecordQueue = false;
|
7443
|
+
var queuedMutations = [];
|
7426
7444
|
function flushObserver() {
|
7427
|
-
|
7428
|
-
|
7429
|
-
|
7430
|
-
|
7431
|
-
|
7432
|
-
|
7433
|
-
|
7434
|
-
|
7435
|
-
|
7436
|
-
function processRecordQueue() {
|
7437
|
-
onMutate(recordQueue);
|
7438
|
-
recordQueue.length = 0;
|
7445
|
+
let records = observer.takeRecords();
|
7446
|
+
queuedMutations.push(() => records.length > 0 && onMutate(records));
|
7447
|
+
let queueLengthWhenTriggered = queuedMutations.length;
|
7448
|
+
queueMicrotask(() => {
|
7449
|
+
if (queuedMutations.length === queueLengthWhenTriggered) {
|
7450
|
+
while (queuedMutations.length > 0)
|
7451
|
+
queuedMutations.shift()();
|
7452
|
+
}
|
7453
|
+
});
|
7439
7454
|
}
|
7440
7455
|
function mutateDom(callback) {
|
7441
7456
|
if (!currentlyObserving)
|
@@ -7460,16 +7475,16 @@ var require_module_cjs = __commonJS({
|
|
7460
7475
|
deferredMutations = deferredMutations.concat(mutations);
|
7461
7476
|
return;
|
7462
7477
|
}
|
7463
|
-
let addedNodes =
|
7464
|
-
let removedNodes =
|
7478
|
+
let addedNodes = /* @__PURE__ */ new Set();
|
7479
|
+
let removedNodes = /* @__PURE__ */ new Set();
|
7465
7480
|
let addedAttributes = /* @__PURE__ */ new Map();
|
7466
7481
|
let removedAttributes = /* @__PURE__ */ new Map();
|
7467
7482
|
for (let i2 = 0; i2 < mutations.length; i2++) {
|
7468
7483
|
if (mutations[i2].target._x_ignoreMutationObserver)
|
7469
7484
|
continue;
|
7470
7485
|
if (mutations[i2].type === "childList") {
|
7471
|
-
mutations[i2].addedNodes.forEach((node) => node.nodeType === 1 && addedNodes.
|
7472
|
-
mutations[i2].removedNodes.forEach((node) => node.nodeType === 1 && removedNodes.
|
7486
|
+
mutations[i2].addedNodes.forEach((node) => node.nodeType === 1 && addedNodes.add(node));
|
7487
|
+
mutations[i2].removedNodes.forEach((node) => node.nodeType === 1 && removedNodes.add(node));
|
7473
7488
|
}
|
7474
7489
|
if (mutations[i2].type === "attributes") {
|
7475
7490
|
let el = mutations[i2].target;
|
@@ -7502,7 +7517,7 @@ var require_module_cjs = __commonJS({
|
|
7502
7517
|
onAttributeAddeds.forEach((i2) => i2(el, attrs));
|
7503
7518
|
});
|
7504
7519
|
for (let node of removedNodes) {
|
7505
|
-
if (addedNodes.
|
7520
|
+
if (addedNodes.has(node))
|
7506
7521
|
continue;
|
7507
7522
|
onElRemoveds.forEach((i2) => i2(node));
|
7508
7523
|
destroyTree(node);
|
@@ -7512,7 +7527,7 @@ var require_module_cjs = __commonJS({
|
|
7512
7527
|
node._x_ignore = true;
|
7513
7528
|
});
|
7514
7529
|
for (let node of addedNodes) {
|
7515
|
-
if (removedNodes.
|
7530
|
+
if (removedNodes.has(node))
|
7516
7531
|
continue;
|
7517
7532
|
if (!node.isConnected)
|
7518
7533
|
continue;
|
@@ -7690,7 +7705,10 @@ var require_module_cjs = __commonJS({
|
|
7690
7705
|
}
|
7691
7706
|
}
|
7692
7707
|
function handleError(error2, el, expression = void 0) {
|
7693
|
-
Object.assign(
|
7708
|
+
error2 = Object.assign(
|
7709
|
+
error2 != null ? error2 : { message: "No error message given." },
|
7710
|
+
{ el, expression }
|
7711
|
+
);
|
7694
7712
|
console.warn(`Alpine Expression Error: ${error2.message}
|
7695
7713
|
|
7696
7714
|
${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
@@ -7806,9 +7824,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
7806
7824
|
return {
|
7807
7825
|
before(directive2) {
|
7808
7826
|
if (!directiveHandlers[directive2]) {
|
7809
|
-
console.warn(
|
7810
|
-
"Cannot find directive `${directive}`. `${name}` will use the default order of execution"
|
7811
|
-
);
|
7827
|
+
console.warn(String.raw`Cannot find directive \`${directive2}\`. \`${name}\` will use the default order of execution`);
|
7812
7828
|
return;
|
7813
7829
|
}
|
7814
7830
|
const pos = directiveOrder.indexOf(directive2);
|
@@ -8602,25 +8618,25 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
8602
8618
|
function entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {
|
8603
8619
|
let firstRun = true;
|
8604
8620
|
let outerHash;
|
8621
|
+
let innerHash;
|
8605
8622
|
let reference = effect(() => {
|
8606
|
-
|
8607
|
-
|
8623
|
+
let outer = outerGet();
|
8624
|
+
let inner = innerGet();
|
8608
8625
|
if (firstRun) {
|
8609
8626
|
innerSet(cloneIfObject(outer));
|
8610
8627
|
firstRun = false;
|
8611
|
-
outerHash = JSON.stringify(outer);
|
8612
8628
|
} else {
|
8613
|
-
|
8629
|
+
let outerHashLatest = JSON.stringify(outer);
|
8630
|
+
let innerHashLatest = JSON.stringify(inner);
|
8614
8631
|
if (outerHashLatest !== outerHash) {
|
8615
8632
|
innerSet(cloneIfObject(outer));
|
8616
|
-
|
8617
|
-
} else {
|
8633
|
+
} else if (outerHashLatest !== innerHashLatest) {
|
8618
8634
|
outerSet(cloneIfObject(inner));
|
8619
|
-
|
8635
|
+
} else {
|
8620
8636
|
}
|
8621
8637
|
}
|
8622
|
-
JSON.stringify(
|
8623
|
-
JSON.stringify(
|
8638
|
+
outerHash = JSON.stringify(outerGet());
|
8639
|
+
innerHash = JSON.stringify(innerGet());
|
8624
8640
|
});
|
8625
8641
|
return () => {
|
8626
8642
|
release(reference);
|
@@ -8729,7 +8745,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
8729
8745
|
get raw() {
|
8730
8746
|
return raw;
|
8731
8747
|
},
|
8732
|
-
version: "3.13.
|
8748
|
+
version: "3.13.5",
|
8733
8749
|
flushAndStopDeferringMutations,
|
8734
8750
|
dontAutoEvaluateFunctions,
|
8735
8751
|
disableEffectScheduling,
|
@@ -8782,31 +8798,24 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
8782
8798
|
// INTERNAL
|
8783
8799
|
bound: getBinding,
|
8784
8800
|
$data: scope,
|
8801
|
+
watch,
|
8785
8802
|
walk,
|
8786
8803
|
data,
|
8787
8804
|
bind: bind2
|
8788
8805
|
};
|
8789
8806
|
var alpine_default2 = Alpine3;
|
8790
|
-
var
|
8807
|
+
var import_reactivity10 = __toESM2(require_reactivity());
|
8791
8808
|
magic("nextTick", () => nextTick);
|
8792
8809
|
magic("dispatch", (el) => dispatch.bind(dispatch, el));
|
8793
|
-
magic("watch", (el, { evaluateLater: evaluateLater2,
|
8810
|
+
magic("watch", (el, { evaluateLater: evaluateLater2, cleanup }) => (key, callback) => {
|
8794
8811
|
let evaluate2 = evaluateLater2(key);
|
8795
|
-
let
|
8796
|
-
|
8797
|
-
|
8798
|
-
|
8799
|
-
|
8800
|
-
|
8801
|
-
|
8802
|
-
oldValue = value;
|
8803
|
-
});
|
8804
|
-
} else {
|
8805
|
-
oldValue = value;
|
8806
|
-
}
|
8807
|
-
firstTime = false;
|
8808
|
-
}));
|
8809
|
-
el._x_effects.delete(effectReference);
|
8812
|
+
let getter = () => {
|
8813
|
+
let value;
|
8814
|
+
evaluate2((i2) => value = i2);
|
8815
|
+
return value;
|
8816
|
+
};
|
8817
|
+
let unwatch = watch(getter, callback);
|
8818
|
+
cleanup(unwatch);
|
8810
8819
|
});
|
8811
8820
|
magic("store", getStores);
|
8812
8821
|
magic("data", (el) => scope(el));
|
@@ -8845,11 +8854,31 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
8845
8854
|
if (!el._x_ids[name])
|
8846
8855
|
el._x_ids[name] = findAndIncrementId(name);
|
8847
8856
|
}
|
8848
|
-
magic("id", (el) => (name, key = null) => {
|
8849
|
-
let
|
8850
|
-
|
8851
|
-
|
8857
|
+
magic("id", (el, { cleanup }) => (name, key = null) => {
|
8858
|
+
let cacheKey = `${name}${key ? `-${key}` : ""}`;
|
8859
|
+
return cacheIdByNameOnElement(el, cacheKey, cleanup, () => {
|
8860
|
+
let root = closestIdRoot(el, name);
|
8861
|
+
let id = root ? root._x_ids[name] : findAndIncrementId(name);
|
8862
|
+
return key ? `${name}-${id}-${key}` : `${name}-${id}`;
|
8863
|
+
});
|
8864
|
+
});
|
8865
|
+
interceptClone((from, to) => {
|
8866
|
+
if (from._x_id) {
|
8867
|
+
to._x_id = from._x_id;
|
8868
|
+
}
|
8852
8869
|
});
|
8870
|
+
function cacheIdByNameOnElement(el, cacheKey, cleanup, callback) {
|
8871
|
+
if (!el._x_id)
|
8872
|
+
el._x_id = {};
|
8873
|
+
if (el._x_id[cacheKey])
|
8874
|
+
return el._x_id[cacheKey];
|
8875
|
+
let output = callback();
|
8876
|
+
el._x_id[cacheKey] = output;
|
8877
|
+
cleanup(() => {
|
8878
|
+
delete el._x_id[cacheKey];
|
8879
|
+
});
|
8880
|
+
return output;
|
8881
|
+
}
|
8853
8882
|
magic("el", (el) => el);
|
8854
8883
|
warnMissingPluginMagic("Focus", "focus", "focus");
|
8855
8884
|
warnMissingPluginMagic("Persist", "persist", "persist");
|
@@ -9153,7 +9182,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
9153
9182
|
setValue(getInputValue(el, modifiers, e2, getValue()));
|
9154
9183
|
});
|
9155
9184
|
if (modifiers.includes("fill")) {
|
9156
|
-
if ([null, ""].includes(getValue()) || el.type === "checkbox" && Array.isArray(getValue())) {
|
9185
|
+
if ([void 0, null, ""].includes(getValue()) || el.type === "checkbox" && Array.isArray(getValue())) {
|
9157
9186
|
el.dispatchEvent(new Event(event, {}));
|
9158
9187
|
}
|
9159
9188
|
}
|
@@ -9618,6 +9647,11 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
9618
9647
|
let names = evaluate2(expression);
|
9619
9648
|
names.forEach((name) => setIdRoot(el, name));
|
9620
9649
|
});
|
9650
|
+
interceptClone((from, to) => {
|
9651
|
+
if (from._x_ids) {
|
9652
|
+
to._x_ids = from._x_ids;
|
9653
|
+
}
|
9654
|
+
});
|
9621
9655
|
mapAttributes(startingWith("@", into(prefix("on:"))));
|
9622
9656
|
directive("on", skipDuringClone((el, { value, modifiers, expression }, { cleanup }) => {
|
9623
9657
|
let evaluate2 = expression ? evaluateLater(el, expression) : () => {
|
@@ -9642,7 +9676,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
|
|
9642
9676
|
directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the "${name}" plugin here: https://alpinejs.dev/plugins/${slug}`, el));
|
9643
9677
|
}
|
9644
9678
|
alpine_default2.setEvaluator(normalEvaluator);
|
9645
|
-
alpine_default2.setReactivityEngine({ reactive:
|
9679
|
+
alpine_default2.setReactivityEngine({ reactive: import_reactivity10.reactive, effect: import_reactivity10.effect, release: import_reactivity10.stop, raw: import_reactivity10.toRaw });
|
9646
9680
|
var src_default = alpine_default2;
|
9647
9681
|
var module_default = src_default;
|
9648
9682
|
}
|
@@ -9671,7 +9705,7 @@ var require_module_cjs2 = __commonJS({
|
|
9671
9705
|
var module_exports = {};
|
9672
9706
|
__export2(module_exports, {
|
9673
9707
|
default: () => module_default,
|
9674
|
-
morph: () =>
|
9708
|
+
morph: () => src_default
|
9675
9709
|
});
|
9676
9710
|
module.exports = __toCommonJS(module_exports);
|
9677
9711
|
function morph2(from, toHtml, options) {
|
@@ -10034,11 +10068,12 @@ var require_module_cjs3 = __commonJS({
|
|
10034
10068
|
var module_exports = {};
|
10035
10069
|
__export2(module_exports, {
|
10036
10070
|
default: () => module_default,
|
10071
|
+
mask: () => src_default,
|
10037
10072
|
stripDown: () => stripDown
|
10038
10073
|
});
|
10039
10074
|
module.exports = __toCommonJS(module_exports);
|
10040
10075
|
function src_default(Alpine3) {
|
10041
|
-
Alpine3.directive("mask", (el, { value, expression }, { effect, evaluateLater }) => {
|
10076
|
+
Alpine3.directive("mask", (el, { value, expression }, { effect, evaluateLater, cleanup }) => {
|
10042
10077
|
let templateFn = () => expression;
|
10043
10078
|
let lastInputValue = "";
|
10044
10079
|
queueMicrotask(() => {
|
@@ -10066,8 +10101,17 @@ var require_module_cjs3 = __commonJS({
|
|
10066
10101
|
if (el._x_model)
|
10067
10102
|
el._x_model.set(el.value);
|
10068
10103
|
});
|
10069
|
-
|
10070
|
-
|
10104
|
+
const controller = new AbortController();
|
10105
|
+
cleanup(() => {
|
10106
|
+
controller.abort();
|
10107
|
+
});
|
10108
|
+
el.addEventListener("input", () => processInputValue(el), {
|
10109
|
+
signal: controller.signal,
|
10110
|
+
// Setting this as a capture phase listener to ensure it runs
|
10111
|
+
// before wire:model or x-model added as a latent binding...
|
10112
|
+
capture: true
|
10113
|
+
});
|
10114
|
+
el.addEventListener("blur", () => processInputValue(el, false), { signal: controller.signal });
|
10071
10115
|
function processInputValue(el2, shouldRestoreCursor = true) {
|
10072
10116
|
let input = el2.value;
|
10073
10117
|
let template = templateFn(input);
|
@@ -15371,7 +15415,7 @@ var alpine_default = import_alpinejs.default;
|
|
15371
15415
|
// ../../../package.json
|
15372
15416
|
var package_default = {
|
15373
15417
|
name: "coveragebook-components",
|
15374
|
-
version: "0.17.
|
15418
|
+
version: "0.17.2",
|
15375
15419
|
repository: "git@github.com:coveragebook/coco.git",
|
15376
15420
|
license: "NO LICENSE",
|
15377
15421
|
author: "Mark Perkins <mark@coveragebook.com>",
|
@@ -15413,14 +15457,14 @@ var package_default = {
|
|
15413
15457
|
},
|
15414
15458
|
dependencies: {
|
15415
15459
|
"@alpinejs/focus": "^3.13.2",
|
15416
|
-
"@alpinejs/mask": "^3.13.
|
15417
|
-
"@alpinejs/morph": "^3.13.
|
15460
|
+
"@alpinejs/mask": "^3.13.5",
|
15461
|
+
"@alpinejs/morph": "^3.13.5",
|
15418
15462
|
"@jaames/iro": "^5.5.2",
|
15419
15463
|
"@percy/cli": "^1.27.3",
|
15420
15464
|
"@tailwindcss/container-queries": "^0.1.0",
|
15421
15465
|
"@tailwindcss/forms": "^0.5.6",
|
15422
15466
|
"alias-hq": "^6.2.2",
|
15423
|
-
alpinejs: "^3.13.
|
15467
|
+
alpinejs: "^3.13.5",
|
15424
15468
|
autoprefixer: "^10.4.16",
|
15425
15469
|
"container-query-polyfill": "^1.0.2",
|
15426
15470
|
del: "^7.1.0",
|
@@ -15430,14 +15474,14 @@ var package_default = {
|
|
15430
15474
|
"fast-sort": "^3.2.1",
|
15431
15475
|
husky: "^8.0.3",
|
15432
15476
|
"js-cookie": "^3.0.5",
|
15433
|
-
"lint-staged": "^15.2.
|
15477
|
+
"lint-staged": "^15.2.2",
|
15434
15478
|
"lodash.camelcase": "^4.3.0",
|
15435
15479
|
"lodash.kebabcase": "^4.1.1",
|
15436
15480
|
"lodash.keyby": "^4.6.0",
|
15437
15481
|
"lodash.mapvalues": "^4.6.0",
|
15438
15482
|
"lucide-static": "^0.303.0",
|
15439
15483
|
postcss: "^8.4.31",
|
15440
|
-
"postcss-cli": "^
|
15484
|
+
"postcss-cli": "^11.0.0",
|
15441
15485
|
"postcss-value-parser": "^4.2.0",
|
15442
15486
|
prettier: "^3.1.1",
|
15443
15487
|
"release-it": "^17.0.1",
|
@@ -5,6 +5,7 @@ module Coco
|
|
5
5
|
|
6
6
|
accepts_option :size, default: :default, private: true
|
7
7
|
accepts_option :theme, default: :primary, private: true
|
8
|
+
accepts_option :reversed, from: [true, false], default: false
|
8
9
|
accepts_option :segmented, from: [true, false], default: false
|
9
10
|
accepts_option :floating, from: [true, false], default: false
|
10
11
|
accepts_option :collapsible, from: [true, false, nil]
|
@@ -14,6 +14,7 @@ module Coco
|
|
14
14
|
renders_many :items, types: {
|
15
15
|
noop: -> {},
|
16
16
|
divider: ->(**kwargs) { tag.div(class: "divider") },
|
17
|
+
html: ->(&block) { block.call },
|
17
18
|
button: ->(*args, **kwargs, &block) { coco_button(*args, **button_kwargs(kwargs, :button), &block) },
|
18
19
|
menu_button: ->(*args, **kwargs, &block) { instantiate_button(:menu, *args, **kwargs, &block) },
|
19
20
|
color_picker_button: ->(*args, **kwargs, &block) { instantiate_button(:color_picker, *args, **kwargs, &block) },
|
@@ -45,6 +46,10 @@ module Coco
|
|
45
46
|
with_item_button(...)
|
46
47
|
end
|
47
48
|
|
49
|
+
def with_button_html(...)
|
50
|
+
with_item_html(...)
|
51
|
+
end
|
52
|
+
|
48
53
|
def with_menu_button(...)
|
49
54
|
with_item_menu_button(...)
|
50
55
|
end
|
@@ -23,40 +23,40 @@ module Coco
|
|
23
23
|
render(component, &block)
|
24
24
|
end
|
25
25
|
|
26
|
-
def coco_button_group(**, &
|
27
|
-
render
|
26
|
+
def coco_button_group(**, &)
|
27
|
+
render(Coco::ButtonGroup.new(**), &)
|
28
28
|
end
|
29
29
|
|
30
|
-
def coco_menu_button(**, &
|
31
|
-
render
|
30
|
+
def coco_menu_button(**, &)
|
31
|
+
render(Coco::MenuButton.new(**), &)
|
32
32
|
end
|
33
33
|
|
34
|
-
def coco_menu_item(type, **, &
|
35
|
-
render
|
34
|
+
def coco_menu_item(type, **, &)
|
35
|
+
render(coco_component("menu_items/#{type}", **), &)
|
36
36
|
end
|
37
37
|
|
38
|
-
def coco_confirm_button(href = nil, **, &
|
39
|
-
render
|
38
|
+
def coco_confirm_button(href = nil, **, &)
|
39
|
+
render(Coco::ConfirmButton.new(href: href, **), &)
|
40
40
|
end
|
41
41
|
|
42
|
-
def coco_color_picker_button(**, &
|
43
|
-
render
|
42
|
+
def coco_color_picker_button(**, &)
|
43
|
+
render(Coco::ColorPickerButton.new(**), &)
|
44
44
|
end
|
45
45
|
|
46
|
-
def coco_image_picker_button(**, &
|
47
|
-
render
|
46
|
+
def coco_image_picker_button(**, &)
|
47
|
+
render(Coco::ImagePickerButton.new(**), &)
|
48
48
|
end
|
49
49
|
|
50
|
-
def coco_layout_picker_button(**, &
|
51
|
-
render
|
50
|
+
def coco_layout_picker_button(**, &)
|
51
|
+
render(Coco::LayoutPickerButton.new(**), &)
|
52
52
|
end
|
53
53
|
|
54
|
-
def coco_toolbar(**, &
|
55
|
-
render
|
54
|
+
def coco_toolbar(**, &)
|
55
|
+
render(Coco::Toolbar.new(**), &)
|
56
56
|
end
|
57
57
|
|
58
|
-
def coco_option_bar(**, &
|
59
|
-
render
|
58
|
+
def coco_option_bar(**, &)
|
59
|
+
render(Coco::OptionBar.new(**), &)
|
60
60
|
end
|
61
61
|
|
62
62
|
# Embeds
|
@@ -72,16 +72,16 @@ module Coco
|
|
72
72
|
|
73
73
|
# Forms (WIP)
|
74
74
|
|
75
|
-
def coco_form_with(**, &
|
76
|
-
form_with(**, builder: Coco::AppFormBuilder, &
|
75
|
+
def coco_form_with(**, &)
|
76
|
+
form_with(**, builder: Coco::AppFormBuilder, &)
|
77
77
|
end
|
78
78
|
|
79
|
-
def coco_form_for(*, **, &
|
80
|
-
form_for(*, **, builder: Coco::AppFormBuilder, &
|
79
|
+
def coco_form_for(*, **, &)
|
80
|
+
form_for(*, **, builder: Coco::AppFormBuilder, &)
|
81
81
|
end
|
82
82
|
|
83
|
-
def coco_fields(**, &
|
84
|
-
fields(**, builder: Coco::AppFormBuilder, &
|
83
|
+
def coco_fields(**, &)
|
84
|
+
fields(**, builder: Coco::AppFormBuilder, &)
|
85
85
|
end
|
86
86
|
|
87
87
|
# Images
|
@@ -98,8 +98,8 @@ module Coco
|
|
98
98
|
render Coco::Avatar.new(src: src, name: name, **)
|
99
99
|
end
|
100
100
|
|
101
|
-
def coco_icon(icon_name = nil, **, &
|
102
|
-
render
|
101
|
+
def coco_icon(icon_name = nil, **, &)
|
102
|
+
render(Coco::Icon.new(name: icon_name, **), &)
|
103
103
|
end
|
104
104
|
|
105
105
|
# Indicators
|
@@ -132,40 +132,40 @@ module Coco
|
|
132
132
|
end
|
133
133
|
alias_method :space, :coco_spacer
|
134
134
|
|
135
|
-
def coco_stack(spacing: Coco::Spacer::DEFAULT, **, &
|
136
|
-
render
|
135
|
+
def coco_stack(spacing: Coco::Spacer::DEFAULT, **, &)
|
136
|
+
render(Coco::Stack.new(spacing:, **), &)
|
137
137
|
end
|
138
138
|
|
139
|
-
def coco_panel(**, &
|
140
|
-
render
|
139
|
+
def coco_panel(**, &)
|
140
|
+
render(Coco::Panel.new(**), &)
|
141
141
|
end
|
142
142
|
|
143
|
-
def coco_page(id, **, &
|
144
|
-
render
|
143
|
+
def coco_page(id, **, &)
|
144
|
+
render(Coco::Page.new(id: id, **), &)
|
145
145
|
end
|
146
146
|
|
147
147
|
# Messaging
|
148
148
|
|
149
|
-
def coco_notice(**, &
|
150
|
-
render
|
149
|
+
def coco_notice(**, &)
|
150
|
+
render(Coco::Notice.new(**), &)
|
151
151
|
end
|
152
152
|
|
153
|
-
def coco_snackbar(**, &
|
154
|
-
render
|
153
|
+
def coco_snackbar(**, &)
|
154
|
+
render(Coco::Snackbar.new(**), &)
|
155
155
|
end
|
156
156
|
|
157
|
-
def coco_toast(**, &
|
158
|
-
render
|
157
|
+
def coco_toast(**, &)
|
158
|
+
render(Coco::Toast.new(**), &)
|
159
159
|
end
|
160
160
|
|
161
|
-
def coco_system_banner(**, &
|
162
|
-
render
|
161
|
+
def coco_system_banner(**, &)
|
162
|
+
render(Coco::SystemBanner.new(**), &)
|
163
163
|
end
|
164
164
|
|
165
165
|
# Modals
|
166
166
|
|
167
|
-
def coco_modal(name = "default", **, &
|
168
|
-
render(Coco::Modal.new(name: name, **), &
|
167
|
+
def coco_modal(name = "default", **, &)
|
168
|
+
render(Coco::Modal.new(name: name, **), &)
|
169
169
|
end
|
170
170
|
|
171
171
|
def coco_modal_dialog(name = "default", **, &block)
|
@@ -220,30 +220,30 @@ module Coco
|
|
220
220
|
render(button, &block)
|
221
221
|
end
|
222
222
|
|
223
|
-
def coco_pager_button(direction, **, &
|
224
|
-
render
|
223
|
+
def coco_pager_button(direction, **, &)
|
224
|
+
render(Coco::PagerButton.new(direction:, **), &)
|
225
225
|
end
|
226
226
|
|
227
227
|
# Typography
|
228
228
|
|
229
|
-
def coco_prose(**, &
|
230
|
-
render
|
229
|
+
def coco_prose(**, &)
|
230
|
+
render(Coco::Prose.new(**), &)
|
231
231
|
end
|
232
232
|
|
233
|
-
def coco_seamless_textarea(**, &
|
234
|
-
render
|
233
|
+
def coco_seamless_textarea(**, &)
|
234
|
+
render(Coco::SeamlessTextarea.new(**), &)
|
235
235
|
end
|
236
236
|
|
237
237
|
# Utilties (internal)
|
238
238
|
|
239
|
-
def coco_placeholder(text_content = nil, **, &
|
240
|
-
render
|
239
|
+
def coco_placeholder(text_content = nil, **, &)
|
240
|
+
render(Coco::Placeholder.new(text_content:, **), &)
|
241
241
|
end
|
242
242
|
|
243
243
|
# General
|
244
244
|
|
245
|
-
def coco_tag(*, **, &
|
246
|
-
render
|
245
|
+
def coco_tag(*, **, &)
|
246
|
+
render(Coco::Tag.new(*, **), &)
|
247
247
|
end
|
248
248
|
|
249
249
|
def coco_component(name, *, **)
|
data/lib/coco.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coveragebook_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.17.
|
4
|
+
version: 0.17.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Perkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|