coveragebook_components 0.17.1 → 0.17.2
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.
- 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
|