@optionfactory/ful 0.72.0 → 0.74.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 CHANGED
@@ -1,2 +1,2 @@
1
- ful-errors{--ful-errors-color:var(--bs-danger-text-emphasis);--ful-errors-bg:var(--bs-danger-bg-subtle);--ful-errors-border-color:var(--bs-danger-border-subtle);--ful-errors-border-radius:0.375rem;background-color:var(--ful-errors-bg);border:1px solid var(--ful-errors-border-color);border-radius:var(--ful-errors-border-radius);color:var(--ful-errors-color);display:block;margin-bottom:1rem;padding:1rem}ful-field-error{display:none}[ful-validated-field]:has(.is-invalid) ful-field-error{color:var(--bs-form-invalid-color);display:block;font-size:.875em;margin-top:.25rem}ful-input:not(:defined){visibility:hidden}ful-input{display:block}ful-input:has(.is-invalid) ful-field-error{display:block}ful-select:not(:defined){visibility:hidden}ful-select{display:block}ful-select .ts-control{border-radius:inherit!important}ful-select:has(.is-invalid) .invalid-feedback{display:block}ful-select:has(.is-invalid) .form-control,ful-select:has(.is-invalid) .form-select{border-color:var(--bs-form-invalid-border-color)!important}ful-select:has(.is-invalid) .focus .ts-control{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}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;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) ful-field-error{display:block}ful-spinner:not(:defined){visibility:hidden}ful-spinner{--ful-spinner-icon-width:1rem;--ful-spinner-icon-height:1rem;--ful-spinner-icon-border-width:0.2em;--ful-spinner-icon-vertical-align:-0.125em;--ful-spinner-icon-animation-speed:0.75s;--ful-spinner-icon-animation-name:spinner-border;--ful-spinner-icon-color:currentcolor}ful-spinner.centered{align-items:center;display:flex;justify-content:center}ful-spinner.big{--ful-spinner-icon-width:2rem;--ful-spinner-icon-height:2rem;--ful-spinner-icon-border-width:0.25em}ful-spinner.backdrop,ful-spinner.bigger{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5em}ful-spinner.backdrop{align-items:center;background-color:hsla(0,0%,65%,.8);display:flex;height:100vh;justify-content:center;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100vw;z-index:2000}ful-spinner>.ful-spinner-wrapper{display:inline}ful-spinner.backdrop>.ful-spinner-wrapper{background-color:#fff;border-radius:1rem;padding:2rem}ful-spinner>.ful-spinner-wrapper>.ful-spinner-icon{animation:var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name);border:var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);border-radius:50%;border-right-color:transparent;display:inline-block;height:var(--ful-spinner-icon-height);vertical-align:var(--ful-spinner-icon-vertical-align);width:var(--ful-spinner-icon-width)}body:has(ful-spinner.backdrop:not([hidden])){overflow: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{--ful-errors-color:var(--bs-danger-text-emphasis);--ful-errors-bg:var(--bs-danger-bg-subtle);--ful-errors-border-color:var(--bs-danger-border-subtle);--ful-errors-border-radius:0.375rem;background-color:var(--ful-errors-bg);border:1px solid var(--ful-errors-border-color);border-radius:var(--ful-errors-border-radius);color:var(--ful-errors-color);display:block;margin-bottom:1rem;padding:1rem}ful-field-error{display:none}[ful-validated-field]:has(.is-invalid) ful-field-error{color:var(--bs-form-invalid-color);display:block;font-size:.875em;margin-top:.25rem}ful-input:not(:defined){visibility:hidden}ful-input{display:block}ful-input:has(.is-invalid) ful-field-error{display:block}ful-select:not(:defined){visibility:hidden}ful-select{display:block}ful-select .ts-control{border-radius:inherit!important}ful-select:has(.is-invalid) .invalid-feedback{display:block}ful-select:has(.is-invalid) .form-control,ful-select:has(.is-invalid) .form-select{border-color:var(--bs-form-invalid-border-color)!important}ful-select:has(.is-invalid) .focus .ts-control{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}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;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) ful-field-error{display:block}ful-spinner:not(:defined){visibility:hidden}ful-spinner{--ful-spinner-icon-width:1rem;--ful-spinner-icon-height:1rem;--ful-spinner-icon-border-width:0.2em;--ful-spinner-icon-vertical-align:-0.125em;--ful-spinner-icon-animation-speed:0.75s;--ful-spinner-icon-animation-name:spinner-border;--ful-spinner-icon-color:currentcolor}ful-spinner.centered{align-items:center;display:flex;justify-content:center}ful-spinner.big{--ful-spinner-icon-width:2rem;--ful-spinner-icon-height:2rem;--ful-spinner-icon-border-width:0.25em}ful-spinner.backdrop,ful-spinner.bigger{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5em}ful-spinner.backdrop{align-items:center;background-color:hsla(0,0%,65%,.8);display:flex;height:100vh;justify-content:center;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100vw;z-index:2000}ful-spinner>.ful-spinner-wrapper{display:inline}ful-spinner.backdrop>.ful-spinner-wrapper{background-color:#fff;border-radius:1rem;padding:2rem}ful-spinner>.ful-spinner-wrapper>.ful-spinner-icon{animation:var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name);border:var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);border-radius:50%;border-right-color:transparent;display:inline-block;height:var(--ful-spinner-icon-height);vertical-align:var(--ful-spinner-icon-vertical-align);width:var(--ful-spinner-icon-width)}body:has(ful-spinner.backdrop:not([hidden])){overflow:hidden}
2
2
  /*# sourceMappingURL=ful.css.map */
package/dist/ful.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["errors.scss","input.scss","select.scss","radio.scss","spinner.scss","wizard.scss"],"names":[],"mappings":"AAAA,WACE,iDAAkD,CAClD,0CAA2C,CAC3C,wDAAyD,CACzD,mCAAoC,CAKpC,qCAAsC,CACtC,+CAAgD,CAChD,6CAA8C,CAH9C,6BAA8B,CAH9B,aAAc,CAEd,kBAAmB,CADnB,YAMF,CAEA,gBACE,YACF,CAEA,uDAIE,kCAAmC,CAHnC,aAAc,CAEd,gBAAkB,CADlB,iBAGF,CCvBA,wBACE,iBACF,CAEA,UACE,aACF,CAEA,2CACE,aACF,CCVA,yBACE,iBACF,CAEA,WACE,aACF,CAEA,uBAEE,+BACF,CAEA,8CACE,aACF,CAEA,mFAEE,0DACF,CAEA,+CACE,sDACF,CCxBA,8BACE,iBACF,CAEA,UACE,YACF,CAEA,gBAEE,2DAA4D,CAC5D,oDAAqD,CACrD,gDAAiD,CACjD,wDAAyD,CAJzD,aAKF,CAEA,gCACE,cAAe,CACf,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,iDACE,aACF,CC3DA,0BACE,iBACF,CAEA,YACE,6BAA8B,CAC9B,8BAA+B,CAC/B,qCAAsC,CACtC,0CAA2C,CAC3C,wCAAyC,CACzC,gDAAiD,CACjD,qCACF,CAEA,qBAEE,kBAAmB,CADnB,YAAa,CAEb,sBACF,CAEA,gBACE,6BAA8B,CAC9B,8BAA+B,CAC/B,sCACF,CAQA,wCALE,6BAA8B,CAC9B,8BAA+B,CAC/B,qCAoBF,CAjBA,qBAeE,kBAAmB,CAFnB,kCAA0C,CAC1C,YAAa,CALb,YAAa,CAOb,sBAAuB,CATvB,MAAO,CAKP,SAAU,CAFV,iBAAkB,CAClB,eAAgB,CANhB,cAAe,CACf,KAAM,CAEN,WAAY,CAJZ,YAaF,CAEA,iCACE,cACF,CAEA,0CAEE,qBAAuB,CACvB,kBAAmB,CAFnB,YAGF,CAEA,mDAQE,wGAAyG,CAFzG,+EAAgF,CADhF,iBAAkB,CAElB,8BAA+B,CAN/B,oBAAqB,CAErB,qCAAsC,CACtC,qDAAsD,CAFtD,mCAOF,CAEA,6CACE,eACF,CC1EA,yBACE,iBACF,CAMA,mCACE,aACF,CAMA,oCACE,YACF,CAEA,2BACE,aACF","file":"ful.css","sourcesContent":["ful-errors {\n --ful-errors-color: var(--bs-danger-text-emphasis);\n --ful-errors-bg: var(--bs-danger-bg-subtle);\n --ful-errors-border-color: var(--bs-danger-border-subtle);\n --ful-errors-border-radius: 0.375rem;\n display: block;\n padding: 1rem;\n margin-bottom: 1rem;\n color: var(--ful-errors-color);\n background-color: var(--ful-errors-bg);\n border: 1px solid var(--ful-errors-border-color);\n border-radius: var(--ful-errors-border-radius);\n}\n\nful-field-error {\n display: none;\n}\n\n[ful-validated-field]:has(.is-invalid) ful-field-error {\n display: block;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-invalid-color);\n}","ful-input:not(:defined) {\n visibility: hidden;\n}\n\nful-input {\n display: block;\n}\n\nful-input:has(.is-invalid) ful-field-error {\n display: block;\n}","ful-select:not(:defined) {\n visibility: hidden;\n}\n\nful-select {\n display: block;\n}\n\nful-select .ts-control {\n /*fixes border radius on box-shadow*/\n border-radius: inherit !important;\n}\n\nful-select:has(.is-invalid) .invalid-feedback {\n display: block;\n}\n\nful-select:has(.is-invalid) .form-select,\nful-select:has(.is-invalid) .form-control {\n border-color: var(--bs-form-invalid-border-color) !important;\n}\n\nful-select:has(.is-invalid) .focus .ts-control {\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\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 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) ful-field-error {\n display: block;\n}","ful-spinner:not(:defined) {\n visibility: hidden;\n}\n\nful-spinner {\n --ful-spinner-icon-width: 1rem;\n --ful-spinner-icon-height: 1rem;\n --ful-spinner-icon-border-width: 0.2em;\n --ful-spinner-icon-vertical-align: -0.125em;\n --ful-spinner-icon-animation-speed: 0.75s;\n --ful-spinner-icon-animation-name: spinner-border;\n --ful-spinner-icon-color: currentcolor;\n}\n\nful-spinner.centered {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\nful-spinner.big {\n --ful-spinner-icon-width: 2rem;\n --ful-spinner-icon-height: 2rem;\n --ful-spinner-icon-border-width: 0.25em;\n}\n\nful-spinner.bigger {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n}\n\nful-spinner.backdrop {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n z-index: 2000;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n background-color: rgba(167, 167, 167, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\nful-spinner > .ful-spinner-wrapper {\n display: inline;\n}\n\nful-spinner.backdrop > .ful-spinner-wrapper {\n padding: 2rem;\n background-color: white;\n border-radius: 1rem;\n}\n\nful-spinner > .ful-spinner-wrapper > .ful-spinner-icon {\n display: inline-block;\n width: var(--ful-spinner-icon-width);\n height: var(--ful-spinner-icon-height);\n vertical-align: var(--ful-spinner-icon-vertical-align);\n border-radius: 50%;\n border: var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);\n border-right-color: transparent;\n animation: var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name);\n}\n\nbody:has(ful-spinner.backdrop:not([hidden])) {\n overflow: 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"],"names":[],"mappings":"AAAA,WACE,iDAAkD,CAClD,0CAA2C,CAC3C,wDAAyD,CACzD,mCAAoC,CAKpC,qCAAsC,CACtC,+CAAgD,CAChD,6CAA8C,CAH9C,6BAA8B,CAH9B,aAAc,CAEd,kBAAmB,CADnB,YAMF,CAEA,gBACE,YACF,CAEA,uDAIE,kCAAmC,CAHnC,aAAc,CAEd,gBAAkB,CADlB,iBAGF,CCvBA,wBACE,iBACF,CAEA,UACE,aACF,CAEA,2CACE,aACF,CCVA,yBACE,iBACF,CAEA,WACE,aACF,CAEA,uBAEE,+BACF,CAEA,8CACE,aACF,CAEA,mFAEE,0DACF,CAEA,+CACE,sDACF,CCxBA,8BACE,iBACF,CAEA,UACE,YACF,CAEA,gBAEE,2DAA4D,CAC5D,oDAAqD,CACrD,gDAAiD,CACjD,wDAAyD,CAJzD,aAKF,CAEA,gCACE,cAAe,CACf,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,iDACE,aACF,CC3DA,0BACE,iBACF,CAEA,YACE,6BAA8B,CAC9B,8BAA+B,CAC/B,qCAAsC,CACtC,0CAA2C,CAC3C,wCAAyC,CACzC,gDAAiD,CACjD,qCACF,CAEA,qBAEE,kBAAmB,CADnB,YAAa,CAEb,sBACF,CAEA,gBACE,6BAA8B,CAC9B,8BAA+B,CAC/B,sCACF,CAQA,wCALE,6BAA8B,CAC9B,8BAA+B,CAC/B,qCAoBF,CAjBA,qBAeE,kBAAmB,CAFnB,kCAA0C,CAC1C,YAAa,CALb,YAAa,CAOb,sBAAuB,CATvB,MAAO,CAKP,SAAU,CAFV,iBAAkB,CAClB,eAAgB,CANhB,cAAe,CACf,KAAM,CAEN,WAAY,CAJZ,YAaF,CAEA,iCACE,cACF,CAEA,0CAEE,qBAAuB,CACvB,kBAAmB,CAFnB,YAGF,CAEA,mDAQE,wGAAyG,CAFzG,+EAAgF,CADhF,iBAAkB,CAElB,8BAA+B,CAN/B,oBAAqB,CAErB,qCAAsC,CACtC,qDAAsD,CAFtD,mCAOF,CAEA,6CACE,eACF","file":"ful.css","sourcesContent":["ful-errors {\n --ful-errors-color: var(--bs-danger-text-emphasis);\n --ful-errors-bg: var(--bs-danger-bg-subtle);\n --ful-errors-border-color: var(--bs-danger-border-subtle);\n --ful-errors-border-radius: 0.375rem;\n display: block;\n padding: 1rem;\n margin-bottom: 1rem;\n color: var(--ful-errors-color);\n background-color: var(--ful-errors-bg);\n border: 1px solid var(--ful-errors-border-color);\n border-radius: var(--ful-errors-border-radius);\n}\n\nful-field-error {\n display: none;\n}\n\n[ful-validated-field]:has(.is-invalid) ful-field-error {\n display: block;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-invalid-color);\n}","ful-input:not(:defined) {\n visibility: hidden;\n}\n\nful-input {\n display: block;\n}\n\nful-input:has(.is-invalid) ful-field-error {\n display: block;\n}","ful-select:not(:defined) {\n visibility: hidden;\n}\n\nful-select {\n display: block;\n}\n\nful-select .ts-control {\n /*fixes border radius on box-shadow*/\n border-radius: inherit !important;\n}\n\nful-select:has(.is-invalid) .invalid-feedback {\n display: block;\n}\n\nful-select:has(.is-invalid) .form-select,\nful-select:has(.is-invalid) .form-control {\n border-color: var(--bs-form-invalid-border-color) !important;\n}\n\nful-select:has(.is-invalid) .focus .ts-control {\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\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 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) ful-field-error {\n display: block;\n}","ful-spinner:not(:defined) {\n visibility: hidden;\n}\n\nful-spinner {\n --ful-spinner-icon-width: 1rem;\n --ful-spinner-icon-height: 1rem;\n --ful-spinner-icon-border-width: 0.2em;\n --ful-spinner-icon-vertical-align: -0.125em;\n --ful-spinner-icon-animation-speed: 0.75s;\n --ful-spinner-icon-animation-name: spinner-border;\n --ful-spinner-icon-color: currentcolor;\n}\n\nful-spinner.centered {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\nful-spinner.big {\n --ful-spinner-icon-width: 2rem;\n --ful-spinner-icon-height: 2rem;\n --ful-spinner-icon-border-width: 0.25em;\n}\n\nful-spinner.bigger {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n}\n\nful-spinner.backdrop {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n z-index: 2000;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n background-color: rgba(167, 167, 167, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\nful-spinner > .ful-spinner-wrapper {\n display: inline;\n}\n\nful-spinner.backdrop > .ful-spinner-wrapper {\n padding: 2rem;\n background-color: white;\n border-radius: 1rem;\n}\n\nful-spinner > .ful-spinner-wrapper > .ful-spinner-icon {\n display: inline-block;\n width: var(--ful-spinner-icon-width);\n height: var(--ful-spinner-icon-height);\n vertical-align: var(--ful-spinner-icon-vertical-align);\n border-radius: 50%;\n border: var(--ful-spinner-icon-border-width) solid var(--ful-spinner-icon-color);\n border-right-color: transparent;\n animation: var(--ful-spinner-icon-animation-speed) linear infinite var(--ful-spinner-icon-animation-name);\n}\n\nbody:has(ful-spinner.backdrop:not([hidden])) {\n overflow: hidden;\n}"]}
package/dist/ful.iife.js CHANGED
@@ -569,40 +569,6 @@ var ful = (function (exports) {
569
569
  }
570
570
  }
571
571
 
572
- // SyncEvent.on($0, 'asd', async e => { await ful.timing.sleep(10_000); return 3; })
573
- // const success = await new SyncEvent("asd").dispatchTo($0);
574
- class SyncEvent extends CustomEvent {
575
- #promises;
576
- #results;
577
- constructor(type, options) {
578
- super(type, {...options, cancelable: true});
579
- this.#promises = [];
580
- this.#results = [];
581
- }
582
- get results(){
583
- return this.#results;
584
- }
585
-
586
- async dispatchTo(el) {
587
- // unlike "native" events, which are fired by the browser and invoke
588
- // event handlers asynchronously via the event loop, dispatchEvent()
589
- // invokes event handlers synchronously.
590
- // see: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent
591
- el.dispatchEvent(this);
592
- //we ignore the result of dispatchEvent and use defaultPrevented instead
593
- //because handlers can be async
594
- this.#results = await Promise.all(this.#promises);
595
- return !this.defaultPrevented;
596
- }
597
-
598
- static on(el, type, h, useCapture) {
599
- el.addEventListener(type, e => {
600
- //e *must* be an async event
601
- e.#promises.push(h(e));
602
- }, useCapture);
603
- }
604
- }
605
-
606
572
  class Fragments {
607
573
  /**
608
574
  *
@@ -858,7 +824,9 @@ var ful = (function (exports) {
858
824
  const mappers = {
859
825
  'string': attr => attr,
860
826
  'number': attr => attr === null ? null : Number(attr),
861
- 'bool': attr => attr !== null,
827
+ 'presence': attr => attr !== null,
828
+ 'state': attr => attr !== null,
829
+ 'bool': attr => attr === 'true',
862
830
  'json': attr => JSON.parse(attr)
863
831
  };
864
832
 
@@ -953,7 +921,7 @@ var ful = (function (exports) {
953
921
  }
954
922
  };
955
923
 
956
- for (const [attr, type] of attrsAndTypes.filter(([a, t]) => t === 'bool')) {
924
+ for (const [attr, type] of attrsAndTypes.filter(([a, t]) => t === 'state')) {
957
925
  Object.defineProperty(k.prototype, attr, {
958
926
  enumerable: true,
959
927
  configurable: true,
@@ -961,18 +929,8 @@ var ful = (function (exports) {
961
929
  return this.internals.states.has(`--${attr}`);
962
930
  },
963
931
  set(value) {
964
- const detail = { target: this, value };
965
- const before = new SyncEvent(`${attr}:${this.initialized ? 'change' : 'init'}`, { detail });
966
- const after = new SyncEvent(`${attr}:${this.initialized ? 'changed' : 'inited'}`, { detail });
967
- (async () => {
968
- if (!await before.dispatchTo(this)) {
969
- return;
970
- }
971
- //see https://developer.mozilla.org/en-US/docs/Web/API/CustomStateSet#using_double_dash_prefixed_idents
972
- this.internals.states[value ? 'add' : 'delete'](`--${attr}`);
973
- this.reflect(() => Attributes.toggle(this, attr, value));
974
- await after.dispatchTo(this);
975
- })();
932
+ this.internals.states[value ? 'add' : 'delete'](`--${attr}`);
933
+ this.reflect(() => Attributes.toggle(this, attr, value));
976
934
  }
977
935
  });
978
936
  }
@@ -1034,7 +992,7 @@ var ful = (function (exports) {
1034
992
  if (el.dataset['fulBindType'] === 'boolean') {
1035
993
  return !el.value ? null : el.value === 'true';
1036
994
  }
1037
- return el.value || null;
995
+ return el.value === '' || el.value === undefined ? null : el.value;
1038
996
  }
1039
997
 
1040
998
  function mutate(el, raw) {
@@ -1168,9 +1126,7 @@ var ful = (function (exports) {
1168
1126
  input.setAttribute('ful-validation-target', '');
1169
1127
  input.addEventListener('change', (evt) => {
1170
1128
  evt.stopPropagation();
1171
- if(!Events.dispatchChange(el, el.value)){
1172
- evt.preventDefault();
1173
- }
1129
+ Events.dispatchChange(el, el.value);
1174
1130
  });
1175
1131
  const id = input.getAttribute('id') || el.getAttribute('input-id') || Attributes.uid('ful-input');
1176
1132
  Attributes.forward('input-', el, slots.input);
@@ -1194,9 +1150,6 @@ var ful = (function (exports) {
1194
1150
  return this.input.value;
1195
1151
  }
1196
1152
  set value(value) {
1197
- if(!Events.dispatchChange(this, value)){
1198
- return;
1199
- }
1200
1153
  this.input.value = value;
1201
1154
  }
1202
1155
  }
@@ -1275,13 +1228,14 @@ var ful = (function (exports) {
1275
1228
  }
1276
1229
  callback(data);
1277
1230
  };
1278
-
1279
-
1280
1231
  this.ts = new TomSelect(input, Object.assign(remote ? {
1281
1232
  preload: 'focus',
1282
1233
  load: this._unwrappedRemoteLoad,
1283
1234
  shouldLoad: (query) => this.shouldLoad ? this.shouldLoad(query) : true
1284
1235
  } : {}, tsDefaultConfig, this.tsConfig));
1236
+ this.ts.on('change', value => {
1237
+ Events.dispatchChange(this, this.value);
1238
+ });
1285
1239
  //we remove the input to move it
1286
1240
  input.addEventListener('change', (evt) => {
1287
1241
  evt.stopPropagation();
@@ -1290,10 +1244,10 @@ var ful = (function (exports) {
1290
1244
  template.renderTo(this, { id, tsId, name, input, slots });
1291
1245
  }
1292
1246
  #loader;
1293
- set loader(l){
1247
+ set loader(l) {
1294
1248
  this.#loader = l;
1295
1249
  // loader can be configured later so we load now
1296
- if(this.hasAttribute('value')){
1250
+ if (this.hasAttribute('value')) {
1297
1251
  this.value = this.getAttribute("value");
1298
1252
  }
1299
1253
  }
@@ -1302,20 +1256,18 @@ var ful = (function (exports) {
1302
1256
  return v === '' ? null : v;
1303
1257
  }
1304
1258
  set value(value) {
1305
- if(!Events.dispatchChange(this, value)){
1306
- return;
1307
- }
1308
1259
  (async () => {
1309
1260
  if (this._remote) {
1310
1261
  await this._unwrappedRemoteLoad({ byId: value }, this.ts.loadCallback.bind(this.ts));
1311
1262
  }
1312
- this.ts.setValue(value);
1263
+ const silent = true;
1264
+ this.ts.setValue(value, silent);
1313
1265
  })();
1314
1266
  }
1315
1267
  }
1316
1268
 
1317
1269
  class RadioGroup extends ParsedElement({
1318
- observed: ['value', 'disabled:bool'],
1270
+ observed: ['value', 'disabled:state'],
1319
1271
  slots: true,
1320
1272
  template: `
1321
1273
  <fieldset ful-validated-field>
@@ -1351,12 +1303,11 @@ var ful = (function (exports) {
1351
1303
  input.setAttribute('name', `${name}-ignore`);
1352
1304
  input.setAttribute('ful-validation-target', '');
1353
1305
  input.dataset['fulBindInclude'] = 'never';
1354
- input.addEventListener('change', (evt) => evt.stopPropagation());
1355
- input.addEventListener('click', (evt) => {
1356
- if(!Events.dispatchChange(this, this.value)){
1357
- evt.preventDefault();
1358
- }
1359
- });
1306
+ input.addEventListener('change', evt => {
1307
+ evt.stopPropagation();
1308
+ //change is not cancelable
1309
+ Events.dispatchChange(el, this.value);
1310
+ });
1360
1311
  const label = Fragments.fromChildNodes(el);
1361
1312
  return [input, label];
1362
1313
  });
@@ -1390,78 +1341,6 @@ var ful = (function (exports) {
1390
1341
  }
1391
1342
  }
1392
1343
 
1393
- class Wizard extends HTMLElement {
1394
- constructor() {
1395
- super();
1396
- this.progress = [...this.children].filter(e => e.matches("header,ol,ul"));
1397
-
1398
- this.progress.forEach(p => {
1399
- const children = [...p.children];
1400
- const current = children.filter(e => e.matches(".active"))[0];
1401
- if (current === undefined && children.length > 0) {
1402
- children[0].classList.add('active');
1403
- }
1404
- });
1405
- if (this.querySelector('section.current') === null) {
1406
- const firstSection = this.querySelector('section:first-of-type');
1407
- if (firstSection !== null) {
1408
- firstSection.classList.add('current');
1409
- }
1410
- }
1411
- }
1412
- next() {
1413
- this.progress.forEach(p => {
1414
- const children = [...p.children];
1415
- const current = children.filter(e => e.matches(".active"))[0];
1416
- current?.classList.remove('active');
1417
- current?.nextElementSibling?.classList.add('active');
1418
- });
1419
- const currentSection = this.querySelector('section.current');
1420
- currentSection.classList.remove("current");
1421
- currentSection.nextElementSibling.classList.add('current');
1422
-
1423
- this.dispatchEvent(new CustomEvent('wizard:activate', {
1424
- bubbles: true,
1425
- cancelable: true
1426
- }));
1427
-
1428
- }
1429
- prev() {
1430
- this.progress.forEach(p => {
1431
- const children = [...p.children];
1432
- const current = children.filter(e => e.matches(".active"))[0];
1433
- current?.classList.remove('active');
1434
- current?.previousElementSibling?.classList.add('active');
1435
- });
1436
- const currentSection = this.querySelector('section.current');
1437
- currentSection.classList.remove("current");
1438
- currentSection.previousElementSibling.classList.add('current');
1439
- this.dispatchEvent(new CustomEvent('wizard:activate', {
1440
- bubbles: true,
1441
- cancelable: true
1442
- }));
1443
- }
1444
- moveTo(n) {
1445
- this.progress.forEach(p => {
1446
- const children = [...p.children];
1447
- const current = children.filter(e => e.matches(".active"))[0];
1448
- current?.classList.remove('active');
1449
- p.children[+n]?.classList.add('active');
1450
- });
1451
- const currentSection = this.querySelector('section.current');
1452
- currentSection?.classList.remove("current");
1453
- const nthSection = this.querySelector(`section:nth-child(${+n})`);
1454
- nthSection.classList.add('current');
1455
- this.dispatchEvent(new CustomEvent('wizard:activate', {
1456
- bubbles: true,
1457
- cancelable: true
1458
- }));
1459
- }
1460
- static configure() {
1461
- return Wizard.custom('ful-wizard');
1462
- }
1463
- }
1464
-
1465
1344
  exports.Attributes = Attributes;
1466
1345
  exports.AuthorizationCodeFlow = AuthorizationCodeFlow;
1467
1346
  exports.AuthorizationCodeFlowInterceptor = AuthorizationCodeFlowInterceptor;
@@ -1484,10 +1363,8 @@ var ful = (function (exports) {
1484
1363
  exports.Select = Select;
1485
1364
  exports.SessionStorage = SessionStorage;
1486
1365
  exports.Spinner = Spinner;
1487
- exports.SyncEvent = SyncEvent;
1488
1366
  exports.TemplatesRegistry = TemplatesRegistry;
1489
1367
  exports.VersionedStorage = VersionedStorage;
1490
- exports.Wizard = Wizard;
1491
1368
  exports.elements = elements;
1492
1369
  exports.jsonPatch = jsonPatch;
1493
1370
  exports.jsonPost = jsonPost;