@optionfactory/ful 1.0.13 → 1.0.15

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,#58151c);--ful-errors-bg:var(--bs-danger-bg-subtle,#f8d7da);--ful-errors-border-color:var(--bs-danger-border-subtle,#f1aeb5);--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{--ful-field-error-color-invalid:var(--ful-invalid-color);display:none;:invalid &{color:var(--ful-field-error-color-invalid);display:block;margin-top:.25rem}}:root{--ful-invalid-border-color:var(--bs-form-invalid-border-color);--ful-invalid-box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25);--ful-invalid-color:var(--bs-form-invalid-color,#dc3545)}ful-input{display:block;&:not(:defined){visibility:hidden}&:invalid input,&:invalid textarea{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:var(--ful-invalid-border-color);padding-right:calc(1.5em + .75rem)}&:invalid input:focus,&:invalid textarea:focus{border-color:var(--ful-invalid-border-color);box-shadow:var(--ful-invalid-box-shadow)}}ful-select{cursor:pointer;display:block;position:relative;badges{display:flex;flex-wrap:nowrap;gap:3px;overflow:hidden;&:has(badge){min-width:2em}}badge{background-color:#0d6efd;border-radius:var(--bs-border-radius);color:#fff;line-height:16px;margin:5px 0;padding:5px 7px;text-align:center;vertical-align:baseline;white-space:nowrap}.ful-select-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);display:flex;flex:1 1 auto;overflow:hidden;padding-left:5px;padding-right:2.25rem;z-index:5;&:has(input:focus){border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}}&:invalid .ful-select-input{border-color:var(--ful-invalid-border-color)}input{border:0;flex:1 1 auto;line-height:1.5;margin:0;min-width:1em;outline:0;padding:.375rem 0 .375rem 7px;width:1em}}ful-dropdown{background-clip:padding-box;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color-translucent);border-radius:var(--bs-border-radius);display:block;margin-top:4px;padding:.5rem 0;position:absolute;width:100%;z-index:1000;menu{height:auto;margin:0;max-height:200px;overflow-y:auto;padding:0}li{border:0;cursor:pointer;display:block;padding:.25rem 1rem;white-space:nowrap}li,li:hover,li[selected]{color:var(--bs-body-color)}li:hover,li[selected]{background-color:var(--bs-tertiary-bg)}li:active{background-color:#0d6efd;color:#fff}}ful-radio-group{--ful-radio-group-label-border-color:var(--bs-border-color,#dee2e6);--ful-radio-group-label-border-color-checked:#007376;--ful-radio-group-label-border-color-disabled:var(--bs-border-color,#dee2e6);--ful-radio-group-label-background-color:inherit;--ful-radio-group-label-background-color-checked:#eefbfb;--ful-radio-group-label-background-color-disabled:var(--bs-secondary-bg,#e9ecef);display:block;&:not(:defined){visibility:hidden}&>fieldset{&>legend{font-size:16px;margin:0}&>section{display:grid;gap:10px;grid-template-columns:1fr;& label{align-items:center;background-color:var(--ful-radio-group-label-background-color);border:1px solid var(--ful-radio-group-label-border-color);border-radius:4px;cursor:pointer;display:flex;height:100%;padding:8px 10px;&>div{flex:1}}& 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)}& label:has(input[type=radio]:disabled){background-color:var(--ful-radio-group-label-background-color-disabled);border-color:var(--ful-radio-group-label-border-color-disabled)}& input[type=radio]{height:16px;margin-left:8px;margin-right:12px;vertical-align:text-bottom;width:16px}}}&.horizontal>fieldset>section{gap:16px;grid-template-columns:1fr 1fr}&:invalid>fieldset>section label{border-color:var(--ful-invalid-border-color)}}ful-radio{display:none}ful-checkbox{display:block;&:not(:defined){visibility:hidden}&:invalid>div>input[type=checkbox]{border-color:var(--ful-invalid-border-color);&:checked{background-color:var(--ful-invalid-color)}&:focus{box-shadow:var(--ful-invalid-box-shadow)}}}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;&:not(:defined){visibility:hidden}&.centered{align-items:center;display:flex;justify-content:center}&.big{--ful-spinner-icon-width:2rem;--ful-spinner-icon-height:2rem;--ful-spinner-icon-border-width:0.25em}&.backdrop,&.bigger{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5em}&.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-wrapper{background-color:#fff;border-radius:1rem;padding:2rem}}&>.ful-spinner-wrapper{display:inline;&>.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-pagination{display:block;margin-top:auto;&:not(:defined){visibility:hidden}}ful-table{display:block;&:not(:defined){visibility:hidden}& tbody:last-of-type{height:360px}}ful-sorter{display:inline;&:not(:defined){visibility:hidden}&:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f574";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-variant:normal;font-weight:400!important;line-height:1;text-transform:none;vertical-align:-.125em}&:not([order]){color:#ccc}&[order=asc]:before{content:"\f574"}&[order=desc]:before{content:"\f575"}}ful-filter-instant,ful-filter-local-date,ful-filter-text{display:block;&:not(:defined){visibility:hidden}}
1
+ ful-errors{--ful-errors-color:var(--bs-danger-text-emphasis,#58151c);--ful-errors-bg:var(--bs-danger-bg-subtle,#f8d7da);--ful-errors-border-color:var(--bs-danger-border-subtle,#f1aeb5);--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{--ful-field-error-color-invalid:var(--ful-invalid-color);display:none;:invalid &{color:var(--ful-field-error-color-invalid);display:block;margin-top:.25rem}}:root{--ful-invalid-border-color:var(--bs-form-invalid-border-color);--ful-invalid-box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25);--ful-invalid-color:var(--bs-form-invalid-color,#dc3545)}ful-input{display:block;&:not(:defined){visibility:hidden}&:invalid input,&:invalid textarea{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-position:right calc(.375em + .1875rem) center;background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);border-color:var(--ful-invalid-border-color);padding-right:calc(1.5em + .75rem)}&:invalid input:focus,&:invalid textarea:focus{border-color:var(--ful-invalid-border-color);box-shadow:var(--ful-invalid-box-shadow)}}ful-select{cursor:pointer;display:block;position:relative;badges{display:flex;flex-wrap:nowrap;gap:3px;overflow:hidden;&:has(badge){min-width:2em}}badge{background-color:#0d6efd;border-radius:var(--bs-border-radius);color:#fff;line-height:16px;margin:5px 0;padding:5px 7px;text-align:center;vertical-align:baseline;white-space:nowrap}.ful-select-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);display:flex;flex:1 1 auto;overflow:hidden;padding-left:5px;padding-right:2.25rem;z-index:5;&:has(input:focus){border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}}&:invalid .ful-select-input{border-color:var(--ful-invalid-border-color)}input{border:0;flex:1 1 auto;line-height:1.5;margin:0;min-width:1em;outline:0;padding:.375rem 0 .375rem 7px;width:1em}}ful-dropdown{background-clip:padding-box;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color-translucent);border-radius:var(--bs-border-radius);display:block;margin-top:4px;padding:.5rem 0;position:absolute;width:100%;z-index:1000;menu{height:auto;margin:0;max-height:200px;overflow-y:auto;padding:0}li{border:0;cursor:pointer;display:block;padding:.25rem 1rem;white-space:nowrap}li,li:hover,li[selected]{color:var(--bs-body-color)}li:hover,li[selected]{background-color:var(--bs-tertiary-bg)}li:active{background-color:#0d6efd;color:#fff}}ful-radio-group{--ful-radio-group-label-border-color:var(--bs-border-color,#dee2e6);--ful-radio-group-label-border-color-checked:#007376;--ful-radio-group-label-border-color-disabled:var(--bs-border-color,#dee2e6);--ful-radio-group-label-background-color:inherit;--ful-radio-group-label-background-color-checked:#eefbfb;--ful-radio-group-label-background-color-disabled:var(--bs-secondary-bg,#e9ecef);display:block;&:not(:defined){visibility:hidden}&>fieldset{&>legend{font-size:16px;margin:0}&>section{display:grid;gap:10px;grid-template-columns:1fr;& label{align-items:center;background-color:var(--ful-radio-group-label-background-color);border:1px solid var(--ful-radio-group-label-border-color);border-radius:4px;cursor:pointer;display:flex;height:100%;padding:8px 10px;&>div{flex:1}}& 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)}& label:has(input[type=radio]:disabled){background-color:var(--ful-radio-group-label-background-color-disabled);border-color:var(--ful-radio-group-label-border-color-disabled)}& input[type=radio]{height:16px;margin-left:8px;margin-right:12px;vertical-align:text-bottom;width:16px}}}&.horizontal>fieldset>section{gap:16px;grid-template-columns:1fr 1fr}&:invalid>fieldset>section label{border-color:var(--ful-invalid-border-color)}}ful-radio{display:none}ful-checkbox{display:block;&:not(:defined){visibility:hidden}&:invalid input[type=checkbox]{border-color:var(--ful-invalid-border-color);&:checked{background-color:var(--ful-invalid-color)}&:focus{box-shadow:var(--ful-invalid-box-shadow)}}}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;&:not(:defined){visibility:hidden}&.centered{align-items:center;display:flex;justify-content:center}&.big{--ful-spinner-icon-width:2rem;--ful-spinner-icon-height:2rem;--ful-spinner-icon-border-width:0.25em}&.backdrop,&.bigger{--ful-spinner-icon-width:4rem;--ful-spinner-icon-height:4rem;--ful-spinner-icon-border-width:0.5em}&.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-wrapper{background-color:#fff;border-radius:1rem;padding:2rem}}&>.ful-spinner-wrapper{display:inline;&>.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-pagination{display:block;margin-top:auto;&:not(:defined){visibility:hidden}}ful-table{display:block;&:not(:defined){visibility:hidden}& tbody:last-of-type{height:360px}}ful-sorter{display:inline;&:not(:defined){visibility:hidden}&:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f574";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-variant:normal;font-weight:400!important;line-height:1;text-transform:none;vertical-align:-.125em}&:not([order]){color:#ccc}&[order=asc]:before{content:"\f574"}&[order=desc]:before{content:"\f575"}}ful-filter-instant,ful-filter-local-date,ful-filter-text{display:block;&:not(:defined){visibility:hidden}}
2
2
  /*# sourceMappingURL=ful.css.map */
package/dist/ful.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["errors.css","form.css","input.css","select.css","radio.css","checkbox.css","spinner.css","table.css","filters.css"],"names":[],"mappings":"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","file":"ful.css","sourcesContent":["ful-errors {\n --ful-errors-color: var(--bs-danger-text-emphasis, #58151c);\n --ful-errors-bg: var(--bs-danger-bg-subtle, #f8d7da);\n --ful-errors-border-color: var(--bs-danger-border-subtle, #f1aeb5);\n --ful-errors-border-radius: 0.375rem;\n\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 --ful-field-error-color-invalid: var(--ful-invalid-color);\n display: none;\n\n :invalid & {\n display: block;\n margin-top: .25rem;\n color: var(--ful-field-error-color-invalid);\n } \n}",":root {\n --ful-invalid-border-color: var(--bs-form-invalid-border-color);\n --ful-invalid-box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25);\n --ful-invalid-color: var(--bs-form-invalid-color, #dc3545);\n}","ful-input {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n &:invalid textarea,\n &:invalid input {\n border-color: var(--ful-invalid-border-color);\n padding-right: calc(1.5em + .75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\"); \n background-repeat: no-repeat;\n background-position: right calc(.375em + .1875rem) center;\n background-size: calc(.75em + .375rem) calc(.75em + .375rem);\n }\n\n &:invalid textarea:focus,\n &:invalid input:focus {\n border-color: var(--ful-invalid-border-color);\n box-shadow: var(--ful-invalid-box-shadow);\n }\n\n}","ful-select {\n display: block;\n cursor: pointer;\n position: relative;\n\n badges {\n display: flex;\n flex-wrap: nowrap;\n gap: 3px;\n overflow: hidden;\n\n &:has(badge) {\n min-width: 2em;\n }\n }\n\n badge {\n line-height: 16px;\n padding: 5px 7px;\n margin: 5px 0;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: var(--bs-border-radius);\n background-color: #0d6efd;\n }\n\n\n\n .ful-select-input {\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n display: flex;\n flex: 1 1 auto;\n padding-left: 5px;\n padding-right: 2.25rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-position: right .75rem center;\n background-repeat: no-repeat;\n background-size: 16px 12px;\n overflow: hidden;\n z-index: 5;\n\n\n &:has(input:focus) {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);\n }\n }\n\n &:invalid .ful-select-input {\n border-color: var(--ful-invalid-border-color);\n }\n\n input {\n border: 0;\n margin: 0;\n outline: 0;\n padding: .375rem 0 .375rem 7px;\n line-height: 1.5;\n flex: 1 1 auto;\n min-width: 1em;\n width: 1em;\n }\n\n\n}\n\nful-dropdown {\n display: block;\n position: absolute;\n z-index: 1000;\n padding: 0.5rem 0;\n margin-top: 4px;\n background-color: var(--bs-body-bg);\n background-clip: padding-box;\n border: var(--bs-border-width) solid var(--bs-border-color-translucent);\n border-radius: var(--bs-border-radius);\n width: 100%;\n\n menu {\n height: auto;\n max-height: 200px;\n overflow-y: auto;\n padding: 0;\n margin: 0;\n }\n\n li {\n padding: 0.25rem 1rem;\n color: var(--bs-body-color);\n display: block;\n white-space: nowrap;\n border: 0;\n cursor: pointer;\n /*content-visibility: */\n }\n\n li:hover,\n li[selected] {\n color: var(--bs-body-color);\n background-color: var(--bs-tertiary-bg);\n }\n\n li:active {\n color: #fff;\n background-color: #0d6efd;\n }\n}","ful-radio-group {\n --ful-radio-group-label-border-color: var(--bs-border-color, #dee2e6);\n --ful-radio-group-label-border-color-checked: #007376;\n --ful-radio-group-label-border-color-disabled: var(--bs-border-color, #dee2e6);\n --ful-radio-group-label-background-color: inherit;\n --ful-radio-group-label-background-color-checked: #eefbfb;\n --ful-radio-group-label-background-color-disabled: var(--bs-secondary-bg, #e9ecef);\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &>fieldset {\n &>legend {\n font-size: 16px;\n margin: 0;\n }\n\n &>section {\n display: grid;\n gap: 10px;\n grid-template-columns: 1fr;\n\n & label {\n display: flex;\n align-items: center;\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: 8px 10px;\n height: 100%;\n cursor: pointer;\n & > div {\n flex: 1\n }\n }\n\n & 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 & label:has(input[type=radio]:disabled) {\n background-color: var(--ful-radio-group-label-background-color-disabled);\n border-color: var(--ful-radio-group-label-border-color-disabled);\n }\n & input[type=radio] {\n margin-left: 8px;\n margin-right: 12px;\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n }\n }\n }\n\n &.horizontal>fieldset>section {\n gap: 16px;\n grid-template-columns: 1fr 1fr;\n }\n\n &:invalid > fieldset > section label {\n border-color: var(--ful-invalid-border-color);\n }\n}\n\nful-radio {\n display: none;\n}","ful-checkbox {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n\n &:invalid > div > input[type=checkbox] {\n border-color: var(--ful-invalid-border-color);\n\n &:checked{\n background-color: var(--ful-invalid-color);\n }\n \n &:focus {\n box-shadow: var(--ful-invalid-box-shadow);\n } \n } \n\n \n}","ful-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 &:not(:defined) {\n visibility: hidden;\n }\n\n &.centered {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &.big {\n --ful-spinner-icon-width: 2rem;\n --ful-spinner-icon-height: 2rem;\n --ful-spinner-icon-border-width: 0.25em;\n }\n\n &.bigger {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n }\n\n &.backdrop {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n\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: rgb(167 167 167 / 80%);\n display: flex;\n align-items: center;\n justify-content: center;\n\n &>.ful-spinner-wrapper {\n padding: 2rem;\n background-color: white;\n border-radius: 1rem;\n }\n }\n\n &>.ful-spinner-wrapper {\n display: inline;\n\n &>.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 }\n\n}\n\nbody:has(ful-spinner.backdrop:not([hidden])) {\n overflow: hidden;\n}","ful-pagination {\n display: block;\n margin-top: auto;\n &:not(:defined) {\n visibility: hidden;\n }\n}\n\nful-table {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n & tbody:last-of-type {\n height: 360px;\n }\n\n}\n\n\nful-sorter {\n display: inline;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &::before {\n display: inline-block;\n font-family: bootstrap-icons !important;\n font-style: normal;\n font-weight: 400 !important;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n vertical-align: -.125em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f574\";\n }\n\n &:not([order]) {\n color: #cccccc;\n }\n\n &[order=asc]::before {\n content: \"\\f574\"\n }\n\n &[order=desc]::before {\n content: \"\\f575\";\n }\n}","ful-filter-text, ful-filter-instant, ful-filter-local-date {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n}"]}
1
+ {"version":3,"sources":["errors.css","form.css","input.css","select.css","radio.css","checkbox.css","spinner.css","table.css","filters.css"],"names":[],"mappings":"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","file":"ful.css","sourcesContent":["ful-errors {\n --ful-errors-color: var(--bs-danger-text-emphasis, #58151c);\n --ful-errors-bg: var(--bs-danger-bg-subtle, #f8d7da);\n --ful-errors-border-color: var(--bs-danger-border-subtle, #f1aeb5);\n --ful-errors-border-radius: 0.375rem;\n\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 --ful-field-error-color-invalid: var(--ful-invalid-color);\n display: none;\n\n :invalid & {\n display: block;\n margin-top: .25rem;\n color: var(--ful-field-error-color-invalid);\n } \n}",":root {\n --ful-invalid-border-color: var(--bs-form-invalid-border-color);\n --ful-invalid-box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25);\n --ful-invalid-color: var(--bs-form-invalid-color, #dc3545);\n}","ful-input {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n &:invalid textarea,\n &:invalid input {\n border-color: var(--ful-invalid-border-color);\n padding-right: calc(1.5em + .75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\"); \n background-repeat: no-repeat;\n background-position: right calc(.375em + .1875rem) center;\n background-size: calc(.75em + .375rem) calc(.75em + .375rem);\n }\n\n &:invalid textarea:focus,\n &:invalid input:focus {\n border-color: var(--ful-invalid-border-color);\n box-shadow: var(--ful-invalid-box-shadow);\n }\n\n}","ful-select {\n display: block;\n cursor: pointer;\n position: relative;\n\n badges {\n display: flex;\n flex-wrap: nowrap;\n gap: 3px;\n overflow: hidden;\n\n &:has(badge) {\n min-width: 2em;\n }\n }\n\n badge {\n line-height: 16px;\n padding: 5px 7px;\n margin: 5px 0;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: var(--bs-border-radius);\n background-color: #0d6efd;\n }\n\n\n\n .ful-select-input {\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n display: flex;\n flex: 1 1 auto;\n padding-left: 5px;\n padding-right: 2.25rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-position: right .75rem center;\n background-repeat: no-repeat;\n background-size: 16px 12px;\n overflow: hidden;\n z-index: 5;\n\n\n &:has(input:focus) {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);\n }\n }\n\n &:invalid .ful-select-input {\n border-color: var(--ful-invalid-border-color);\n }\n\n input {\n border: 0;\n margin: 0;\n outline: 0;\n padding: .375rem 0 .375rem 7px;\n line-height: 1.5;\n flex: 1 1 auto;\n min-width: 1em;\n width: 1em;\n }\n\n\n}\n\nful-dropdown {\n display: block;\n position: absolute;\n z-index: 1000;\n padding: 0.5rem 0;\n margin-top: 4px;\n background-color: var(--bs-body-bg);\n background-clip: padding-box;\n border: var(--bs-border-width) solid var(--bs-border-color-translucent);\n border-radius: var(--bs-border-radius);\n width: 100%;\n\n menu {\n height: auto;\n max-height: 200px;\n overflow-y: auto;\n padding: 0;\n margin: 0;\n }\n\n li {\n padding: 0.25rem 1rem;\n color: var(--bs-body-color);\n display: block;\n white-space: nowrap;\n border: 0;\n cursor: pointer;\n /*content-visibility: */\n }\n\n li:hover,\n li[selected] {\n color: var(--bs-body-color);\n background-color: var(--bs-tertiary-bg);\n }\n\n li:active {\n color: #fff;\n background-color: #0d6efd;\n }\n}","ful-radio-group {\n --ful-radio-group-label-border-color: var(--bs-border-color, #dee2e6);\n --ful-radio-group-label-border-color-checked: #007376;\n --ful-radio-group-label-border-color-disabled: var(--bs-border-color, #dee2e6);\n --ful-radio-group-label-background-color: inherit;\n --ful-radio-group-label-background-color-checked: #eefbfb;\n --ful-radio-group-label-background-color-disabled: var(--bs-secondary-bg, #e9ecef);\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &>fieldset {\n &>legend {\n font-size: 16px;\n margin: 0;\n }\n\n &>section {\n display: grid;\n gap: 10px;\n grid-template-columns: 1fr;\n\n & label {\n display: flex;\n align-items: center;\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: 8px 10px;\n height: 100%;\n cursor: pointer;\n\n &>div {\n flex: 1\n }\n }\n\n & 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\n & label:has(input[type=radio]:disabled) {\n background-color: var(--ful-radio-group-label-background-color-disabled);\n border-color: var(--ful-radio-group-label-border-color-disabled);\n }\n\n & input[type=radio] {\n margin-left: 8px;\n margin-right: 12px;\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n }\n }\n }\n\n &.horizontal>fieldset>section {\n gap: 16px;\n grid-template-columns: 1fr 1fr;\n }\n\n &:invalid>fieldset>section label {\n border-color: var(--ful-invalid-border-color);\n }\n}\n\nful-radio {\n display: none;\n}","ful-checkbox {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &:invalid input[type=checkbox] {\n border-color: var(--ful-invalid-border-color);\n\n &:checked {\n background-color: var(--ful-invalid-color);\n }\n\n &:focus {\n box-shadow: var(--ful-invalid-box-shadow);\n }\n }\n\n}","ful-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 &:not(:defined) {\n visibility: hidden;\n }\n\n &.centered {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &.big {\n --ful-spinner-icon-width: 2rem;\n --ful-spinner-icon-height: 2rem;\n --ful-spinner-icon-border-width: 0.25em;\n }\n\n &.bigger {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n }\n\n &.backdrop {\n --ful-spinner-icon-width: 4rem;\n --ful-spinner-icon-height: 4rem;\n --ful-spinner-icon-border-width: 0.5em;\n\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: rgb(167 167 167 / 80%);\n display: flex;\n align-items: center;\n justify-content: center;\n\n &>.ful-spinner-wrapper {\n padding: 2rem;\n background-color: white;\n border-radius: 1rem;\n }\n }\n\n &>.ful-spinner-wrapper {\n display: inline;\n\n &>.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 }\n\n}\n\nbody:has(ful-spinner.backdrop:not([hidden])) {\n overflow: hidden;\n}","ful-pagination {\n display: block;\n margin-top: auto;\n &:not(:defined) {\n visibility: hidden;\n }\n}\n\nful-table {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n & tbody:last-of-type {\n height: 360px;\n }\n\n}\n\n\nful-sorter {\n display: inline;\n\n &:not(:defined) {\n visibility: hidden;\n }\n\n &::before {\n display: inline-block;\n font-family: bootstrap-icons !important;\n font-style: normal;\n font-weight: 400 !important;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n vertical-align: -.125em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f574\";\n }\n\n &:not([order]) {\n color: #cccccc;\n }\n\n &[order=asc]::before {\n content: \"\\f574\"\n }\n\n &[order=desc]::before {\n content: \"\\f575\";\n }\n}","ful-filter-text, ful-filter-instant, ful-filter-local-date {\n display: block;\n\n &:not(:defined) {\n visibility: hidden;\n }\n}"]}
package/dist/ful.iife.js CHANGED
@@ -1268,7 +1268,12 @@ var ful = (function (exports, ftl) {
1268
1268
  });
1269
1269
  fieldErrors.forEach(e => {
1270
1270
  const name = e.context.replace("[", ".").replace("].", ".").replace("]", "");
1271
- form.querySelectorAll(`[name='${CSS.escape(name)}']`).forEach(input => input.setCustomValidity?.(e.reason));
1271
+ const parts = name.split(".");
1272
+ for (let i = parts.length; i != 0; --i) {
1273
+ const prefix = parts.slice(0, i).join(".");
1274
+ const suffix = parts.slice(i, parts.length).join(".");
1275
+ form.querySelectorAll(`[name='${CSS.escape(prefix)}']`).forEach(input => input.setCustomValidity?.(e.reason, suffix));
1276
+ }
1272
1277
  });
1273
1278
  form.querySelectorAll("ful-errors").forEach(el => {
1274
1279
  const hel = /** @type HTMLElement} */ (el);
@@ -1387,7 +1392,9 @@ var ful = (function (exports, ftl) {
1387
1392
  this.spinner(false);
1388
1393
  }
1389
1394
  }
1390
-
1395
+ reset(){
1396
+ this.form.reset();
1397
+ }
1391
1398
  spinner(spin) {
1392
1399
  this.querySelectorAll('ful-spinner').forEach(el => {
1393
1400
  const hel = /** @type HTMLElement */ (el);
@@ -1432,11 +1439,16 @@ var ful = (function (exports, ftl) {
1432
1439
  this.internals = this.attachInternals();
1433
1440
  this.internals.role = 'presentation';
1434
1441
  }
1435
- render({ slots }) {
1442
+ render({ slots, observed, disabled }) {
1436
1443
  const type = this.getAttribute("type") ?? 'text';
1437
1444
  const fragment = this.template().withOverlay({ type, slots }).render();
1438
1445
  this.#input = fragment.querySelector("input,textarea");
1446
+
1439
1447
  ftl.Attributes.forward('input-', this, this.#input);
1448
+ this.disabled = disabled;
1449
+ this.readonly = observed.readonly;
1450
+ this.value = observed.value;
1451
+
1440
1452
  this.#input.addEventListener('change', (evt) => {
1441
1453
  evt.stopPropagation();
1442
1454
  this.dispatchEvent(new CustomEvent('change', {
@@ -1466,6 +1478,12 @@ var ful = (function (exports, ftl) {
1466
1478
  set readonly(v) {
1467
1479
  this.#input.readOnly = v;
1468
1480
  }
1481
+ get disabled(){
1482
+ return this.#input.hasAttribute('disabled');
1483
+ }
1484
+ set disabled(d){
1485
+ ftl.Attributes.toggle(this.#input, 'disabled', d);
1486
+ }
1469
1487
  focus(options) {
1470
1488
  this.#input.focus(options);
1471
1489
  }
@@ -1478,6 +1496,9 @@ var ful = (function (exports, ftl) {
1478
1496
  this.internals.setValidity({ customError: true }, " ");
1479
1497
  this.#fieldError.innerText = error;
1480
1498
  }
1499
+ formResetCallback(){
1500
+ this.value = this.getAttribute("value");
1501
+ }
1481
1502
  }
1482
1503
 
1483
1504
  class CompleteSelectLoader {
@@ -1678,7 +1699,7 @@ var ful = (function (exports, ftl) {
1678
1699
  }
1679
1700
 
1680
1701
  class Select extends ftl.ParsedElement {
1681
- static observed = ['value:csvm']
1702
+ static observed = ['value:csvm', 'readonly:presence']
1682
1703
  static slots = true
1683
1704
  static template = `
1684
1705
  <label class="form-label">{{{{ slots.default }}}}</label>
@@ -1717,13 +1738,18 @@ var ful = (function (exports, ftl) {
1717
1738
  this.internals = this.attachInternals();
1718
1739
  this.internals.role = 'presentation';
1719
1740
  }
1720
- async render({ slots, observed }) {
1741
+ async render({ slots, observed, disabled }) {
1721
1742
  const name = this.getAttribute("name");
1722
1743
  this.#loader = Loaders.fromAttributes(this, 'loaders:select', { options: slots.options });
1723
1744
  await this.#loader.prefetch?.();
1724
1745
  const fragment = this.template().withOverlay({ slots, name }).render();
1725
1746
  this.#input = fragment.querySelector('input');
1726
1747
  this.#badges = fragment.querySelector('badges');
1748
+
1749
+ this.value = observed.value;
1750
+ this.disabled = disabled;
1751
+ this.readonly = observed.readonly;
1752
+
1727
1753
  this.#ddmenu = fragment.querySelector('ful-dropdown');
1728
1754
  this.#multiple = this.hasAttribute("multiple");
1729
1755
  const label = fragment.querySelector('label');
@@ -1732,7 +1758,6 @@ var ful = (function (exports, ftl) {
1732
1758
  this.#input.ariaDescribedByElements = [this.#fieldError];
1733
1759
  this.#input.ariaLabelledByElements = [label];
1734
1760
 
1735
-
1736
1761
  const self = this;
1737
1762
  const [dload, abortdload] = timing.debounce(400, () => self.#ddmenu.show(() => self.#loader.load(self.#input.value)));
1738
1763
  this.addEventListener('click', (/** @type any */e) => {
@@ -1825,6 +1850,11 @@ var ful = (function (exports, ftl) {
1825
1850
  this.#badges.append(...badges);
1826
1851
  }
1827
1852
  set value(value) {
1853
+ if(value === null){
1854
+ this.#values = new Map();
1855
+ this.#syncBadges();
1856
+ return;
1857
+ }
1828
1858
  (async () => {
1829
1859
  const entries = await (this.#multiple ? this.#loader.exact(...value) : this.#loader.exact(value));
1830
1860
  this.#values = new Map(entries);
@@ -1852,7 +1882,7 @@ var ful = (function (exports, ftl) {
1852
1882
  }
1853
1883
 
1854
1884
  class RadioGroup extends ftl.ParsedElement {
1855
- static observed = ['value'];
1885
+ static observed = ['value', 'readonly:presence'];
1856
1886
  static slots = true;
1857
1887
  static template = `
1858
1888
  <fieldset>
@@ -1877,6 +1907,7 @@ var ful = (function (exports, ftl) {
1877
1907
  </fieldset>
1878
1908
  `;
1879
1909
  static formAssociated = true;
1910
+ #fieldset;
1880
1911
  #fieldError;
1881
1912
  #firstRadio;
1882
1913
  #booleanType;
@@ -1885,7 +1916,7 @@ var ful = (function (exports, ftl) {
1885
1916
  this.internals = this.attachInternals();
1886
1917
  this.internals.role = 'radiogroup';
1887
1918
  }
1888
- render({ slots }) {
1919
+ render({ slots, observed, disabled }) {
1889
1920
  const name = this.getAttribute('name') ?? ftl.Attributes.uid('ful-radiogroup');
1890
1921
  const radioEls = Array.from(slots.default.querySelectorAll('ful-radio'));
1891
1922
  const inputsAndLabels = radioEls.map(el => {
@@ -1912,6 +1943,10 @@ var ful = (function (exports, ftl) {
1912
1943
 
1913
1944
  radioEls.forEach(el => el.remove());
1914
1945
  this.template().withOverlay({ name, slots, inputsAndLabels }).renderTo(this);
1946
+ this.#fieldset = this.firstElementChild;
1947
+ this.disabled = disabled;
1948
+ this.readonly = observed.readonly;
1949
+ this.value = observed.value;
1915
1950
  this.#fieldError = this.querySelector('ful-field-error');
1916
1951
  this.ariaDescribedByElements = [this.#fieldError];
1917
1952
  this.#firstRadio = this.querySelector('input[type=radio]');
@@ -1934,7 +1969,19 @@ var ful = (function (exports, ftl) {
1934
1969
  if (el) {
1935
1970
  el.checked = true;
1936
1971
  }
1972
+ }
1973
+ get readonly(){
1974
+ return this.#fieldset.inert;
1975
+ }
1976
+ set readonly(v) {
1977
+ this.#fieldset.inert = v;
1978
+ }
1979
+ get disabled(){
1980
+ return this.#fieldset.hasAttribute('disabled');
1937
1981
  }
1982
+ set disabled(d){
1983
+ ftl.Attributes.toggle(this.#fieldset, 'disabled', d);
1984
+ }
1938
1985
  focus(options) {
1939
1986
  this.#firstRadio.focus(options);
1940
1987
  }
@@ -1950,7 +1997,7 @@ var ful = (function (exports, ftl) {
1950
1997
  }
1951
1998
 
1952
1999
  class Checkbox extends ftl.ParsedElement {
1953
- static observed = ['value:bool'];
2000
+ static observed = ['value:bool', 'readonly:presence'];
1954
2001
  static slots = true;
1955
2002
  static template = `
1956
2003
  <div data-tpl-class="klass">
@@ -1961,6 +2008,7 @@ var ful = (function (exports, ftl) {
1961
2008
  </div>
1962
2009
  <ful-field-error></ful-field-error>
1963
2010
  `;
2011
+ #container;
1964
2012
  #input;
1965
2013
  #fieldError;
1966
2014
  static formAssociated = true;
@@ -1969,11 +2017,15 @@ var ful = (function (exports, ftl) {
1969
2017
  this.internals = this.attachInternals();
1970
2018
  this.internals.role = 'presentation';
1971
2019
  }
1972
- render({ slots }) {
2020
+ render({ slots, observed, disabled }) {
1973
2021
  const klass = this.getAttribute('type') == 'switch' ? "form-check form-switch" : "form-check";
1974
2022
  const fragment = this.template().withOverlay({ slots, klass }).render();
2023
+ this.#container = fragment.firstElementChild;
1975
2024
  this.#input = fragment.querySelector("input");
1976
2025
  ftl.Attributes.forward('input-', this, this.#input);
2026
+ this.disabled = disabled;
2027
+ this.readonly = observed.readonly;
2028
+ this.value = observed.value;
1977
2029
  this.#input.addEventListener('change', (evt) => {
1978
2030
  evt.stopPropagation();
1979
2031
  this.dispatchEvent(new CustomEvent('change', {
@@ -1985,7 +2037,13 @@ var ful = (function (exports, ftl) {
1985
2037
  }));
1986
2038
  });
1987
2039
  const label = fragment.querySelector('label');
1988
- label.addEventListener('click', () => { this.focus(); this.value = !this.value; });
2040
+ label.addEventListener('click', () => {
2041
+ this.focus();
2042
+ if (this.disabled || this.readonly) {
2043
+ return;
2044
+ }
2045
+ this.value = !this.value;
2046
+ });
1989
2047
  this.#fieldError = fragment.querySelector('ful-field-error');
1990
2048
  this.#input.ariaDescribedByElements = [this.#fieldError];
1991
2049
  this.#input.ariaLabelledByElements = [label];
@@ -1997,6 +2055,18 @@ var ful = (function (exports, ftl) {
1997
2055
  set value(value) {
1998
2056
  this.#input.checked = value;
1999
2057
  }
2058
+ get readonly(){
2059
+ return this.#container.inert;
2060
+ }
2061
+ set readonly(v) {
2062
+ this.#container.inert = v;
2063
+ }
2064
+ get disabled() {
2065
+ return this.#input.hasAttribute('disabled');
2066
+ }
2067
+ set disabled(d) {
2068
+ ftl.Attributes.toggle(this.#input, 'disabled', d);
2069
+ }
2000
2070
  focus(options) {
2001
2071
  this.#input.focus(options);
2002
2072
  }