@optionfactory/ful 0.26.0 → 0.28.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/ful.css +1 -1
- package/dist/ful.css.map +1 -1
- package/dist/ful.iife.js +68 -13
- package/dist/ful.iife.js.map +1 -1
- package/dist/ful.iife.min.js +1 -1
- package/dist/ful.iife.min.js.map +1 -1
- package/dist/ful.min.mjs +1 -1
- package/dist/ful.min.mjs.map +1 -1
- package/dist/ful.mjs +68 -14
- package/dist/ful.mjs.map +1 -1
- package/package.json +1 -1
package/dist/ful.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
ful-errors:not(:defined),ful-field-error:not(:defined){visibility:hidden}ful-errors,ful-field-error{display:block}ful-input:not(:defined){visibility:hidden}ful-input{display:block}ful-select:not(:defined){visibility:hidden}ful-select{display:block}.form-floating>.ts-wrapper{height:calc(3.5rem + var(--bs-border-width)*2);line-height:1.25;min-height:calc(3.5rem + var(--bs-border-width)*2)}.form-floating>.ts-wrapper>.ts-control{line-height:20px;padding-bottom:.625rem!important;padding-top:1.625rem!important}.form-floating>.ts-wrapper~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.ts-wrapper.multi .ts-control>div{margin:0 3px 0 0;padding:0 5px}ful-spinner:not(:defined){visibility:hidden}ful-wizard:not(:defined){visibility:hidden}ful-wizard,ful-wizard>ol>li.active{display:block}ful-wizard>ol>li,ful-wizard>section{display:none}ful-wizard>section.current{display:block}
|
|
1
|
+
ful-errors:not(:defined),ful-field-error:not(:defined){visibility:hidden}ful-errors,ful-field-error{display:block}ful-input:not(:defined){visibility:hidden}ful-input{display:block}ful-select:not(:defined){visibility:hidden}ful-select{display:block}.form-floating>.ts-wrapper{height:calc(3.5rem + var(--bs-border-width)*2);line-height:1.25;min-height:calc(3.5rem + var(--bs-border-width)*2)}.form-floating>.ts-wrapper>.ts-control{line-height:20px;padding-bottom:.625rem!important;padding-top:1.625rem!important}.form-floating>.ts-wrapper~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.ts-wrapper.multi .ts-control>div{margin:0 3px 0 0;padding:0 5px}ful-radio-group:not(:defined){visibility:hidden}ful-radio{display:none}ful-radio-group{--ful-radio-group-label-border-color:var(--bs-border-color);--ful-radio-group-label-border-color-checked:#46ce95;--ful-radio-group-label-background-color:inherit;--ful-radio-group-label-background-color-checked:#f5fffc;display:block}ful-radio-group>fieldset legend{font-size:16px;line-height:22px;margin:0}ful-radio-group>fieldset>section{display:grid;gap:10px;grid-template-columns:1fr}ful-radio-group.horizontal>fieldset>section{gap:16px;grid-template-columns:1fr 1fr}ful-radio-group>fieldset input[type=radio]{height:16px;margin-left:8px;margin-right:12px;vertical-align:text-bottom;width:16px}ful-radio-group>fieldset label:has(input[type=radio]){background-color:var(--ful-radio-group-label-background-color);border:1px solid var(--ful-radio-group-label-border-color);border-radius:4px;display:block;padding:6px 10px}ful-radio-group>fieldset label:has(input[type=radio].is-invalid){border-color:var(--bs-form-invalid-border-color)}ful-radio-group>fieldset label:has(input[type=radio]:checked){background-color:var(--ful-radio-group-label-background-color-checked);border-color:var(--ful-radio-group-label-border-color-checked)}ful-radio-group:has(.is-invalid) .invalid-feedback{display:block}ful-spinner:not(:defined){visibility:hidden}ful-wizard:not(:defined){visibility:hidden}ful-wizard,ful-wizard>ol>li.active{display:block}ful-wizard>ol>li,ful-wizard>section{display:none}ful-wizard>section.current{display:block}
|
|
2
2
|
/*# sourceMappingURL=ful.css.map */
|
package/dist/ful.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["errors.scss","input.scss","select.scss","spinner.scss","wizard.scss"],"names":[],"mappings":"AAAA,uDAEE,iBACF,CAEA,2BAEE,aACF,CCRA,wBACE,iBACF,CAEA,UACE,aACF,CCNA,yBACE,iBACF,CAEA,WACE,aACF,CAEA,2BACE,8CAAiD,CAEjD,gBAAiB,CADjB,kDAEF,CAEA,uCAGE,gBAAiB,CADjB,gCAAmC,CADnC,8BAGF,CAEA,iCACE,wCAA2C,CAC3C,0DACF,CAEA,iDACE,gBAAiB,CACjB,aACF,CC5BA,0BACE,iBACF,CCFA,yBACE,iBACF,CAMA,mCACE,aACF,CAMA,oCACE,YACF,CAEA,2BACE,aACF","file":"ful.css","sourcesContent":["ful-errors:not(:defined),\nful-field-error:not(:defined) {\n visibility: hidden;\n}\n\nful-errors,\nful-field-error {\n display: block;\n}","ful-input:not(:defined) {\n visibility: hidden;\n}\n\nful-input {\n display: block;\n}","ful-select:not(:defined) {\n visibility: hidden;\n}\n\nful-select {\n display: block;\n}\n\n.form-floating > .ts-wrapper {\n height: calc(3.5rem + var(--bs-border-width) * 2);\n min-height: calc(3.5rem + var(--bs-border-width) * 2);\n line-height: 1.25;\n}\n\n.form-floating > .ts-wrapper > .ts-control {\n padding-top: 1.625rem !important;\n padding-bottom: 0.625rem !important;\n line-height: 20px;\n}\n\n.form-floating > .ts-wrapper ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n\n.form-floating > .ts-wrapper.multi .ts-control > div {\n margin: 0 3px 0 0;\n padding: 0px 5px;\n}","ful-spinner:not(:defined) {\n visibility: hidden;\n}","ful-wizard:not(:defined) {\n visibility: hidden;\n}\n\nful-wizard {\n display: block;\n}\n\nful-wizard > ol > li.active {\n display: block;\n}\n\nful-wizard > ol > li {\n display: none;\n}\n\nful-wizard > section {\n display: none;\n}\n\nful-wizard > section.current {\n display: block;\n}"]}
|
|
1
|
+
{"version":3,"sources":["errors.scss","input.scss","select.scss","radio.scss","spinner.scss","wizard.scss"],"names":[],"mappings":"AAAA,uDAEE,iBACF,CAEA,2BAEE,aACF,CCRA,wBACE,iBACF,CAEA,UACE,aACF,CCNA,yBACE,iBACF,CAEA,WACE,aACF,CAEA,2BACE,8CAAiD,CAEjD,gBAAiB,CADjB,kDAEF,CAEA,uCAGE,gBAAiB,CADjB,gCAAmC,CADnC,8BAGF,CAEA,iCACE,wCAA2C,CAC3C,0DACF,CAEA,iDACE,gBAAiB,CACjB,aACF,CC5BA,8BACE,iBACF,CAEA,UACE,YACF,CAEA,gBAEE,2DAA4D,CAC5D,oDAAqD,CACrD,gDAAiD,CACjD,wDAAyD,CAJzD,aAKF,CAEA,gCAEE,cAAe,CADf,gBAAiB,CAEjB,QACF,CAEA,iCACE,YAAa,CACb,QAAS,CACT,yBACF,CAEA,4CACE,QAAS,CACT,6BACF,CAEA,2CAGE,WAAY,CAFZ,eAAgB,CAChB,iBAAkB,CAGlB,0BAA2B,CAD3B,UAEF,CAEA,sDAGE,8DAA+D,CAD/D,0DAA2D,CAE3D,iBAAkB,CAHlB,aAAc,CAId,gBACF,CAEA,iEACE,gDACF,CAEA,8DACE,sEAAuE,CACvE,8DACF,CAEA,mDACE,aACF,CC5DA,0BACE,iBACF,CCFA,yBACE,iBACF,CAMA,mCACE,aACF,CAMA,oCACE,YACF,CAEA,2BACE,aACF","file":"ful.css","sourcesContent":["ful-errors:not(:defined),\nful-field-error:not(:defined) {\n visibility: hidden;\n}\n\nful-errors,\nful-field-error {\n display: block;\n}","ful-input:not(:defined) {\n visibility: hidden;\n}\n\nful-input {\n display: block;\n}","ful-select:not(:defined) {\n visibility: hidden;\n}\n\nful-select {\n display: block;\n}\n\n.form-floating > .ts-wrapper {\n height: calc(3.5rem + var(--bs-border-width) * 2);\n min-height: calc(3.5rem + var(--bs-border-width) * 2);\n line-height: 1.25;\n}\n\n.form-floating > .ts-wrapper > .ts-control {\n padding-top: 1.625rem !important;\n padding-bottom: 0.625rem !important;\n line-height: 20px;\n}\n\n.form-floating > .ts-wrapper ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n\n.form-floating > .ts-wrapper.multi .ts-control > div {\n margin: 0 3px 0 0;\n padding: 0px 5px;\n}","ful-radio-group:not(:defined) {\n visibility: hidden;\n}\n\nful-radio {\n display: none;\n}\n\nful-radio-group {\n display: block;\n --ful-radio-group-label-border-color: var(--bs-border-color);\n --ful-radio-group-label-border-color-checked: #46ce95;\n --ful-radio-group-label-background-color: inherit;\n --ful-radio-group-label-background-color-checked: #f5fffc;\n}\n\nful-radio-group > fieldset legend {\n line-height: 22px;\n font-size: 16px;\n margin: 0;\n}\n\nful-radio-group > fieldset > section {\n display: grid;\n gap: 10px;\n grid-template-columns: 1fr;\n}\n\nful-radio-group.horizontal > fieldset > section {\n gap: 16px;\n grid-template-columns: 1fr 1fr;\n}\n\nful-radio-group > fieldset input[type=radio] {\n margin-left: 8px;\n margin-right: 12px;\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n}\n\nful-radio-group > fieldset label:has(input[type=radio]) {\n display: block;\n border: 1px solid var(--ful-radio-group-label-border-color);\n background-color: var(--ful-radio-group-label-background-color);\n border-radius: 4px;\n padding: 6px 10px;\n}\n\nful-radio-group > fieldset label:has(input[type=radio].is-invalid) {\n border-color: var(--bs-form-invalid-border-color);\n}\n\nful-radio-group > fieldset label:has(input[type=radio]:checked) {\n background-color: var(--ful-radio-group-label-background-color-checked);\n border-color: var(--ful-radio-group-label-border-color-checked);\n}\n\nful-radio-group:has(.is-invalid) .invalid-feedback {\n display: block;\n}","ful-spinner:not(:defined) {\n visibility: hidden;\n}","ful-wizard:not(:defined) {\n visibility: hidden;\n}\n\nful-wizard {\n display: block;\n}\n\nful-wizard > ol > li.active {\n display: block;\n}\n\nful-wizard > ol > li {\n display: none;\n}\n\nful-wizard > section {\n display: none;\n}\n\nful-wizard > section.current {\n display: block;\n}"]}
|
package/dist/ful.iife.js
CHANGED
|
@@ -654,17 +654,19 @@ var ful = (function (exports) {
|
|
|
654
654
|
|
|
655
655
|
class Slots {
|
|
656
656
|
static from(el) {
|
|
657
|
-
const
|
|
658
|
-
el.
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
657
|
+
const namedSlots = Array.from(el.childNodes)
|
|
658
|
+
.filter(el => el.matches('[slot]'))
|
|
659
|
+
.map(el => {
|
|
660
|
+
el.remove();
|
|
661
|
+
const slot = el.getAttribute("slot");
|
|
662
|
+
el.removeAttribute("slot");
|
|
663
|
+
return [slot, el];
|
|
664
|
+
});
|
|
665
|
+
const slotted = Object.fromEntries(namedSlots);
|
|
663
666
|
slotted.default = new DocumentFragment();
|
|
664
667
|
slotted.default.append(...el.childNodes);
|
|
665
668
|
return slotted;
|
|
666
669
|
}
|
|
667
|
-
|
|
668
670
|
}
|
|
669
671
|
|
|
670
672
|
const Templated = (SuperClass, template) => {
|
|
@@ -702,6 +704,7 @@ var ful = (function (exports) {
|
|
|
702
704
|
return this.hasAttribute(flag);
|
|
703
705
|
},
|
|
704
706
|
set(value) {
|
|
707
|
+
//see https://developer.mozilla.org/en-US/docs/Web/API/CustomStateSet#using_double_dash_prefixed_idents
|
|
705
708
|
if (Attributes.asBoolean(value)) {
|
|
706
709
|
this.internals_.states.add(`--${flag}`);
|
|
707
710
|
this.setAttribute(flag, '');
|
|
@@ -925,9 +928,11 @@ var ful = (function (exports) {
|
|
|
925
928
|
}
|
|
926
929
|
}
|
|
927
930
|
|
|
928
|
-
const ful_input_ec = globalThis.ec || ftl.EvaluationContext.configure({
|
|
931
|
+
const ful_input_ec = globalThis.ec || ftl.EvaluationContext.configure({
|
|
932
|
+
|
|
933
|
+
});
|
|
929
934
|
|
|
930
|
-
const
|
|
935
|
+
const ful_input_template_ = globalThis.ful_input_template || ftl.Template.fromHtml(`
|
|
931
936
|
<div data-tpl-if="floating" class="input-group has-validation">
|
|
932
937
|
<span data-tpl-if="slotted.ibefore" class="input-group-text">{{{{ slotted.ibefore }}}}</span>
|
|
933
938
|
<div data-tpl-if="slotted.before" data-tpl-remove="tag">{{{{ slotted.before }}}}</div>
|
|
@@ -954,7 +959,7 @@ var ful = (function (exports) {
|
|
|
954
959
|
|
|
955
960
|
|
|
956
961
|
|
|
957
|
-
class Input extends Templated(HTMLElement,
|
|
962
|
+
class Input extends Templated(HTMLElement, ful_input_template_) {
|
|
958
963
|
render(slotted, template) {
|
|
959
964
|
const floating = this.hasAttribute('floating');
|
|
960
965
|
const input = slotted.input = slotted.input || (() => {
|
|
@@ -979,9 +984,11 @@ var ful = (function (exports) {
|
|
|
979
984
|
* <script src="tom-select.complete.js"></script>
|
|
980
985
|
* <link href="tom-select.bootstrap5.css" rel="stylesheet" />
|
|
981
986
|
*/
|
|
982
|
-
const ful_select_ec = globalThis.ec || ftl.EvaluationContext.configure({
|
|
987
|
+
const ful_select_ec = globalThis.ec || ftl.EvaluationContext.configure({
|
|
983
988
|
|
|
984
|
-
|
|
989
|
+
});
|
|
990
|
+
|
|
991
|
+
const ful_select_template_ = globalThis.ful_select_template || ftl.Template.fromHtml(`
|
|
985
992
|
<div data-tpl-if="floating" class="input-group has-validation">
|
|
986
993
|
<span data-tpl-if="slotted.ibefore" class="input-group-text">{{{{ slotted.ibefore }}}}</span>
|
|
987
994
|
<div data-tpl-if="slotted.before" data-tpl-remove="tag">{{{{ slotted.before }}}}</div>
|
|
@@ -1007,7 +1014,7 @@ var ful = (function (exports) {
|
|
|
1007
1014
|
`, ful_select_ec);
|
|
1008
1015
|
|
|
1009
1016
|
|
|
1010
|
-
class Select extends Templated(Observable(HTMLElement),
|
|
1017
|
+
class Select extends Templated(Observable(HTMLElement), ful_select_template_) {
|
|
1011
1018
|
constructor(tsConfig) {
|
|
1012
1019
|
super();
|
|
1013
1020
|
this.tsConfig = tsConfig;
|
|
@@ -1069,6 +1076,53 @@ var ful = (function (exports) {
|
|
|
1069
1076
|
|
|
1070
1077
|
}
|
|
1071
1078
|
|
|
1079
|
+
const ful_radiogroup_ec = globalThis.ec || ftl.EvaluationContext.configure({
|
|
1080
|
+
|
|
1081
|
+
});
|
|
1082
|
+
|
|
1083
|
+
const ful_radiougroup_template_ = globalThis.ful_radiogroup_template || ftl.Template.fromHtml(`
|
|
1084
|
+
<fieldset>
|
|
1085
|
+
<legend class="form-label">
|
|
1086
|
+
{{{{ slotted.default }}}}
|
|
1087
|
+
</legend>
|
|
1088
|
+
<section>
|
|
1089
|
+
<label data-tpl-each="inputsAndLabels" data-tpl-var="ial">
|
|
1090
|
+
{{{{ ial[0] }}}}
|
|
1091
|
+
{{{{ ial[1] }}}}
|
|
1092
|
+
</label>
|
|
1093
|
+
</section>
|
|
1094
|
+
<ful-field-error data-tpl-if="name" data-tpl-field="name"></ful-field-error>
|
|
1095
|
+
</fieldset>
|
|
1096
|
+
`, ful_radiogroup_ec);
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
class RadioGroup extends Stateful(Templated(HTMLElement, ful_radiougroup_template_), ['readonly']) {
|
|
1100
|
+
render(slotted, template) {
|
|
1101
|
+
const name = this.getAttribute('input-name') || Attributes.uid('ful-radiogroup');
|
|
1102
|
+
const radioEls = Array.from(slotted.default.querySelectorAll('ful-radio'));
|
|
1103
|
+
const inputsAndLabels = radioEls.map(el => {
|
|
1104
|
+
const input = document.createElement('input');
|
|
1105
|
+
input.setAttribute('type', 'radio');
|
|
1106
|
+
Attributes.forward('input-', this, input);
|
|
1107
|
+
Attributes.forward('', el, input);
|
|
1108
|
+
Attributes.defaultValue(input, 'name', name);
|
|
1109
|
+
const label = Fragments.fromChildNodes(el);
|
|
1110
|
+
return [input, label];
|
|
1111
|
+
});
|
|
1112
|
+
radioEls.forEach(el => el.remove());
|
|
1113
|
+
|
|
1114
|
+
const fragment = template.render({
|
|
1115
|
+
name: name,
|
|
1116
|
+
slotted: slotted,
|
|
1117
|
+
inputsAndLabels: inputsAndLabels
|
|
1118
|
+
});
|
|
1119
|
+
return fragment;
|
|
1120
|
+
}
|
|
1121
|
+
static configure() {
|
|
1122
|
+
customElements.define('ful-radio-group', RadioGroup);
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1072
1126
|
class Spinner extends Templated(HTMLElement) {
|
|
1073
1127
|
render(slotted, template) {
|
|
1074
1128
|
return Fragments.fromHtml(`
|
|
@@ -1201,6 +1255,7 @@ var ful = (function (exports) {
|
|
|
1201
1255
|
exports.Input = Input;
|
|
1202
1256
|
exports.LocalStorage = LocalStorage;
|
|
1203
1257
|
exports.Observable = Observable;
|
|
1258
|
+
exports.RadioGroup = RadioGroup;
|
|
1204
1259
|
exports.Select = Select;
|
|
1205
1260
|
exports.SessionStorage = SessionStorage;
|
|
1206
1261
|
exports.Slots = Slots;
|