anchor_view_components 0.33.0 → 0.34.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/app/assets/builds/anchor-view-components.css +1 -1
- data/app/assets/stylesheets/anchor-view-components.tailwind.css +1 -0
- data/app/assets/stylesheets/components/choices-overrides.css +20 -17
- data/app/assets/stylesheets/components/input-checked.css +5 -0
- data/app/components/anchor/check_box_collection_component.html.erb +1 -0
- data/app/components/anchor/check_box_collection_component.rb +35 -0
- data/app/components/anchor/check_box_component.html.erb +11 -0
- data/app/components/anchor/check_box_component.rb +53 -0
- data/app/components/anchor/describable_input.rb +55 -0
- data/app/components/anchor/page/body_component.html.erb +7 -0
- data/app/components/anchor/page/body_component.rb +6 -0
- data/app/components/anchor/page/footer_component.en.yml +5 -0
- data/app/components/anchor/page/footer_component.html.erb +12 -0
- data/app/components/anchor/page/footer_component.rb +41 -0
- data/app/components/anchor/page/header_component.html.erb +31 -0
- data/app/components/anchor/page/header_component.rb +48 -0
- data/app/components/anchor/page_component.html.erb +5 -0
- data/app/components/anchor/page_component.rb +9 -0
- data/app/components/anchor/radio_button_component.rb +5 -40
- data/app/helpers/anchor/form_builder.rb +38 -1
- data/app/helpers/anchor/model_validators.rb +3 -1
- data/app/helpers/anchor/view_helper.rb +1 -0
- data/lib/anchor/view_components/version.rb +1 -1
- data/previews/anchor/forms_preview.rb +9 -0
- data/previews/anchor/page_component_preview/default.html.erb +33 -0
- data/previews/anchor/page_component_preview/with_cancel_and_save_buttons.html.erb +22 -0
- data/previews/anchor/page_component_preview/with_custom_page_header.html.erb +28 -0
- data/previews/anchor/page_component_preview/with_done_button.html.erb +28 -0
- data/previews/anchor/page_component_preview.rb +13 -0
- data/previews/forms/check_box_collection.html.erb +61 -0
- data/previews/forms/default.html.erb +6 -0
- data/previews/forms/radio_button_collection.html.erb +4 -8
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dac91e813baa14c60b910413a95f818dca0b6f0cc6222d478de451f0f64c8a1f
|
4
|
+
data.tar.gz: 95a62ccc7f3adbf94ca690ef069065398a84b926cd8c979146b59a8b880b1cc8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 905ae7cf939abfc10a1013e7c251a9987db73bdf4c4872a2d288ee4ae922b641a30ac109cae464c99fb50a2e8cc2a0e1ce77bd2499d28955d7fd6e7f09a9bc4c
|
7
|
+
data.tar.gz: 8ebc34f8806f4c6cab7c8606b8d8a3d5c0d6963ba9619db5b12beccc1992bb2c7102be95979a2be0f4f05836307a72ae6b290bed75854f2af6c7fc14d031d885
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.34.0
|
4
|
+
|
5
|
+
### Minor Changes
|
6
|
+
|
7
|
+
- f3726f1: Add CheckBox and CheckBoxCollection Components
|
8
|
+
- 5b1fc5a: Add Page components
|
9
|
+
|
10
|
+
### Patch Changes
|
11
|
+
|
12
|
+
- 24fee42: The styles for the Typeahead Select component now use values from Anchor’s theme, improving consistency with other components.
|
13
|
+
- 87ef4d3: Consider acceptance validator when checking if field is optional. This means that any checkbox for a field with an `acceptance: true` validator will **not** render the `(Optional)` suffix.
|
14
|
+
|
3
15
|
## 0.33.0
|
4
16
|
|
5
17
|
### Minor Changes
|
@@ -1 +1 @@
|
|
1
|
-
/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}[popover]{position:fixed;z-index:2147483647;inset:0;padding:.25em;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;border:initial solid;border-color:initial;-o-border-image:initial;border-image:initial;background-color:canvas;color:initial;overflow:auto;margin:auto}[popover]:not(.\:popover-open){display:none}[popover]:is(dialog[open]){display:revert}@supports not (background-color:canvas){[popover]{background-color:#fff;color:#000}}@supports (width:-moz-fit-content){[popover]{width:-moz-fit-content;height:-moz-fit-content}}@supports not (inset:0){[popover]{top:0;left:0;right:0;bottom:0}}.choices{position:relative;overflow:hidden;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-open{overflow:visible}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices [hidden]{display:none!important}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIyMSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=");padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.25}.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border:5px solid #0000;border-top-color:#333;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:#0000 #0000 #333;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIyMSI+PGcgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=");background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown,.choices__list[aria-expanded]{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{visibility:visible}.is-open .choices__list--dropdown,.is-open .choices__list[aria-expanded]{border-color:#b7b7b7}.is-flipped .choices__list--dropdown,.is-flipped .choices__list[aria-expanded]{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item,.choices__list[aria-expanded] .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item,[dir=rtl] .choices__list[aria-expanded] .choices__item{text-align:right}@media (min-width:640px){.choices__list--dropdown .choices__item--selectable,.choices__list[aria-expanded] .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after,.choices__list[aria-expanded] .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:initial;background-repeat:no-repeat;background-position:50%;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:initial;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;width:0;height:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.form-input,.form-multiselect,.form-select,.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}.form-input:focus,.form-multiselect:focus,.form-select:focus,.form-textarea:focus{outline:2px solid #0000;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:#6b7280;opacity:1}.form-input::placeholder,.form-textarea::placeholder{color:#6b7280;opacity:1}.form-input::-webkit-datetime-edit-fields-wrapper{padding:0}.form-input::-webkit-date-and-time-value{min-height:1.5em}.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-meridiem-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}.prose{color:#030712;max-width:65ch}.prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose] *)){background-color:initial;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:initial}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.action-menu-item>*{display:block;width:100%;padding:.25rem .75rem;text-align:left}.btn{display:inline-flex;height:2.5rem;align-items:center;gap:.5rem;white-space:nowrap;border-radius:.25rem;border-width:1px;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding-left:1.25rem;padding-right:1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:600;text-decoration-line:none}.btn:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.btn:disabled{pointer-events:none;--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.btn-primary{border-color:rgb(37 99 235/var(--tw-border-opacity));background-color:rgb(37 99 235/var(--tw-bg-opacity))}.btn-primary,.btn-primary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-primary:hover{border-color:rgb(30 64 175/var(--tw-border-opacity));background-color:rgb(30 64 175/var(--tw-bg-opacity))}.btn-primary:disabled{pointer-events:none;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.btn-critical{border-color:rgb(185 28 28/var(--tw-border-opacity));background-color:rgb(185 28 28/var(--tw-bg-opacity))}.btn-critical,.btn-critical:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-critical:hover{border-color:rgb(127 29 29/var(--tw-border-opacity));background-color:rgb(127 29 29/var(--tw-bg-opacity))}.btn-critical:disabled{pointer-events:none;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.btn-text{color:rgb(37 99 235/var(--tw-text-opacity))}.btn-text,.btn-text:hover{border-color:#0000;background-color:initial;--tw-text-opacity:1}.btn-text:hover{color:rgb(30 64 175/var(--tw-text-opacity))}.btn-text:disabled{pointer-events:none;border-color:#0000;--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.btn-small{height:1.75rem;padding-right:.75rem}.btn-small,.btn-with-starting-icon{padding-left:.75rem}.btn-with-ending-icon{padding-right:.75rem}.btn-full-width{width:100%;justify-content:center}.choices__inner{min-height:40px;padding-bottom:0;font-size:16px}.choices[data-type*=select-one] .choices__inner{padding-top:4px;padding-bottom:4px}.choices[data-type*=select-multiple] .choices__inner{padding-top:3px}.choices__inner,.choices__input.choices__input--cloned{background:#0000}.choices__inner,.is-open .choices__inner{border-radius:4px;border:1px solid #6b7280}.is-open .choices__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.choices__input{font-size:16px;color:inherit}.choices__list--multiple .choices__item,.choices__list--multiple .choices__item.is-highlighted{font-size:16px;background:#f5f6f7;color:#101112;border-radius:4px;border:1px solid #6b7280;margin-bottom:2px}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=select-one] .choices__button{border:none;filter:invert(1)}.choices[data-type*=select-multiple]:after{content:"";height:0;width:0;border:5px solid #0000;border-top-color:#333;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-multiple].is-open:after{border-color:#0000 #0000 #333;margin-top:-7.5px}.choices[data-type*=select-multiple][dir=rtl]:after{left:11.5px;right:auto}.choices{margin-bottom:0}.choices__list--dropdown .choices__item--selectable,.choices__list[aria-expanded] .choices__item--selectable{padding-right:inherit;word-break:break-word}.toast{align-items:center}.toast>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.toast{border-radius:.25rem;padding:1rem;--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.toast.\:popover-open{position:fixed;top:auto;bottom:2.5rem;margin-left:auto;margin-right:auto;display:flex;overflow:visible;border-width:0}.toast:popover-open{position:fixed;top:auto;bottom:2.5rem;margin-left:auto;margin-right:auto;display:flex;overflow:visible;border-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.-left-full{left:-100%}.-top-full{top:-100%}.bottom-0{bottom:0}.left-4{left:1rem}.right-0{right:0}.right-4{right:1rem}.top-1\/2{top:50%}.z-10{z-index:10}.m-0{margin:0}.m-\[3px\]{margin:3px}.mx-2{margin-left:.5rem;margin-right:.5rem}.\!ml-10{margin-left:2.5rem!important}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[500\/341\]{aspect-ratio:500/341}.aspect-\[500\/81\]{aspect-ratio:500/81}.aspect-\[72\/58\]{aspect-ratio:72/58}.aspect-square{aspect-ratio:1/1}.h-4{height:1rem}.h-5{height:1.25rem}.h-\[100dvh\]{height:100dvh}.h-\[120px\]{height:120px}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-\[100dvh\]{max-height:100dvh}.max-h-\[200px\]{max-height:200px}.max-h-full{max-height:100%}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[40px\]{min-height:40px}.w-12{width:3rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-\[15rem\]{width:15rem}.w-\[18px\]{width:18px}.w-\[198px\]{width:198px}.w-\[36rem\]{width:36rem}.w-\[50vw\]{width:50vw}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-full{max-width:100%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\[1fr_1fr\]{grid-template-columns:1fr 1fr}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-white\/10>:not([hidden])~:not([hidden]){border-color:#ffffff1a}.self-end{align-self:flex-end}.self-center{align-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-default{--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity))}.border-gray-300,.border-subdued{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.bg-accent-subdued{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.bg-brand-sea{--tw-bg-opacity:1;background-color:rgb(28 73 87/var(--tw-bg-opacity))}.bg-critical{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.bg-critical-subdued{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-neutral{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity))}.bg-success-subdued{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-warning-subdued{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/\[\.05\]{background-color:#ffffff0d}.bg-\[length\:16px_16px\]{background-size:16px 16px}.bg-\[8px_center\]{background-position:8px}.bg-no-repeat{background-repeat:no-repeat}.stroke-2{stroke-width:2}.p-0{padding:0}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pl-11{padding-left:2.75rem}.pl-8{padding-left:2rem}.pr-11{padding-right:2.75rem}.pr-2{padding-right:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-10{line-height:2.5rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.text-accent{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.text-brand-coral{--tw-text-opacity:1;color:rgb(242 170 106/var(--tw-text-opacity))}.text-brand-sea{--tw-text-opacity:1;color:rgb(28 73 87/var(--tw-text-opacity))}.text-critical{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-white\/60{color:#fff9}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\[inset_0_-1px\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_-1px\]{--tw-shadow:inset 0 -1px;--tw-shadow-colored:inset 0 -1px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-gray-300{--tw-shadow-color:#d1d5db;--tw-shadow:var(--tw-shadow-colored)}.outline{outline-style:solid}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[padding\]{transition-property:padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-500{transition-duration:.5s}.backdrop\:bg-gray-950\/50::backdrop{background-color:#03071280}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);left:0;right:0}.after\:-bottom-1:after{content:var(--tw-content);bottom:-.25rem}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:bg-accent:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.open\:flex[open]{display:flex}.checked\:border-accent:checked{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity))}.checked\:bg-gradient-radial:checked{background-image:radial-gradient(var(--tw-gradient-stops))}.checked\:from-blue-600:checked{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.checked\:from-\[50\%\]:checked{--tw-gradient-from-position:50%}.checked\:to-transparent:checked{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.checked\:to-\[54\%\]:checked{--tw-gradient-to-position:54%}.focus-within\:bg-neutral:focus-within{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-gray-600:hover{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.hover\:bg-gray-100:hover,.hover\:bg-neutral:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-white\/\[\.05\]:hover{background-color:#ffffff0d}.hover\:text-accent-hover:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:text-primary:hover{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.checked\:hover\:border-accent-hover:hover:checked{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity))}.checked\:hover\:from-blue-800:hover:checked{--tw-gradient-from:#1e40af var(--tw-gradient-from-position);--tw-gradient-to:#1e40af00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.checked\:hover\:from-\[50\%\]:hover:checked{--tw-gradient-from-position:50%}.checked\:hover\:to-transparent:hover:checked{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.checked\:hover\:to-\[54\%\]:hover:checked{--tw-gradient-to-position:54%}.focus\:no-underline:focus{text-decoration-line:none}.disabled\:border-subdued:disabled,.disabled\:checked\:border-subdued:checked:disabled{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.disabled\:checked\:from-\[50\%\]:checked:disabled{--tw-gradient-from-position:50%}.disabled\:checked\:to-transparent:checked:disabled{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.disabled\:checked\:to-\[54\%\]:checked:disabled{--tw-gradient-to-position:54%}.group[aria-expanded][data-empty=true][data-loading=false] .group-aria-\[expanded\]\[data-empty\=\'true\'\]\[data-loading\=\'false\'\]\:block,.group[aria-expanded][data-loading=true] .group-aria-\[expanded\]\[data-loading\=\'true\'\]\:block{display:block}.group[data-empty=true] .group-data-\[empty\=\'true\'\]\:hidden,.group[data-loading=true] .group-data-\[loading\=\'true\'\]\:hidden{display:none}.popover-open\:block:popover-open{display:block}.\[\&\>\[aria-selected\=\'true\'\]\]\:bg-accent-subdued>[aria-selected=true]{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.\[\&\>li\]\:cursor-pointer>li{cursor:pointer}.\[\&\>li\]\:px-3>li{padding-left:.75rem;padding-right:.75rem}.\[\&\>li\]\:py-2>li{padding-top:.5rem;padding-bottom:.5rem}.side-nav-open .\[\.side-nav-open_\&\]\:w-\[3\.5rem\]{width:3.5rem}.side-nav-open .\[\.side-nav-open_\&\]\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.side-nav-open .\[\.side-nav-open_\&\]\:px-4{padding-left:1rem;padding-right:1rem}.side-nav-open .\[\.side-nav-open_\&\]\:opacity-0{opacity:0}
|
1
|
+
/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}[popover]{position:fixed;z-index:2147483647;inset:0;padding:.25em;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;border:initial solid;border-color:initial;-o-border-image:initial;border-image:initial;background-color:canvas;color:initial;overflow:auto;margin:auto}[popover]:not(.\:popover-open){display:none}[popover]:is(dialog[open]){display:revert}@supports not (background-color:canvas){[popover]{background-color:#fff;color:#000}}@supports (width:-moz-fit-content){[popover]{width:-moz-fit-content;height:-moz-fit-content}}@supports not (inset:0){[popover]{top:0;left:0;right:0;bottom:0}}.choices{position:relative;overflow:hidden;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-open{overflow:visible}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices [hidden]{display:none!important}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIyMSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=");padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.25}.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #00bcd4}.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border:5px solid #0000;border-top-color:#333;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:#0000 #0000 #333;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIyMSI+PGcgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=");background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown,.choices__list[aria-expanded]{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{visibility:visible}.is-open .choices__list--dropdown,.is-open .choices__list[aria-expanded]{border-color:#b7b7b7}.is-flipped .choices__list--dropdown,.is-flipped .choices__list[aria-expanded]{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item,.choices__list[aria-expanded] .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item,[dir=rtl] .choices__list[aria-expanded] .choices__item{text-align:right}@media (min-width:640px){.choices__list--dropdown .choices__item--selectable,.choices__list[aria-expanded] .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after,.choices__list[aria-expanded] .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:initial;background-repeat:no-repeat;background-position:50%;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:initial;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;width:0;height:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.form-input,.form-multiselect,.form-select,.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}.form-input:focus,.form-multiselect:focus,.form-select:focus,.form-textarea:focus{outline:2px solid #0000;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:#6b7280;opacity:1}.form-input::placeholder,.form-textarea::placeholder{color:#6b7280;opacity:1}.form-input::-webkit-datetime-edit-fields-wrapper{padding:0}.form-input::-webkit-date-and-time-value{min-height:1.5em}.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-meridiem-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}.form-checkbox,.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}.form-checkbox{border-radius:0}.form-checkbox:focus,.form-radio:focus{outline:2px solid #0000;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.form-checkbox:checked,.form-radio:checked{border-color:#0000;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}.form-checkbox:checked:focus,.form-checkbox:checked:hover,.form-checkbox:indeterminate,.form-radio:checked:focus,.form-radio:checked:hover{border-color:#0000;background-color:currentColor}.form-checkbox:indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-size:100% 100%;background-position:50%;background-repeat:no-repeat}.form-checkbox:indeterminate:focus,.form-checkbox:indeterminate:hover{border-color:#0000;background-color:currentColor}.prose{color:#030712;max-width:65ch}.prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose] *)){background-color:initial;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:initial}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.action-menu-item>*{display:block;width:100%;padding:.25rem .75rem;text-align:left}.btn{display:inline-flex;height:2.5rem;align-items:center;gap:.5rem;white-space:nowrap;border-radius:.25rem;border-width:1px;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));padding-left:1.25rem;padding-right:1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:600;text-decoration-line:none}.btn:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.btn:disabled{pointer-events:none;--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.btn-primary{border-color:rgb(37 99 235/var(--tw-border-opacity));background-color:rgb(37 99 235/var(--tw-bg-opacity))}.btn-primary,.btn-primary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-primary:hover{border-color:rgb(30 64 175/var(--tw-border-opacity));background-color:rgb(30 64 175/var(--tw-bg-opacity))}.btn-primary:disabled{pointer-events:none;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.btn-critical{border-color:rgb(185 28 28/var(--tw-border-opacity));background-color:rgb(185 28 28/var(--tw-bg-opacity))}.btn-critical,.btn-critical:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-critical:hover{border-color:rgb(127 29 29/var(--tw-border-opacity));background-color:rgb(127 29 29/var(--tw-bg-opacity))}.btn-critical:disabled{pointer-events:none;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.btn-text{color:rgb(37 99 235/var(--tw-text-opacity))}.btn-text,.btn-text:hover{border-color:#0000;background-color:initial;--tw-text-opacity:1}.btn-text:hover{color:rgb(30 64 175/var(--tw-text-opacity))}.btn-text:disabled{pointer-events:none;border-color:#0000;--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.btn-small{height:1.75rem;padding-right:.75rem}.btn-small,.btn-with-starting-icon{padding-left:.75rem}.btn-with-ending-icon{padding-right:.75rem}.btn-full-width{width:100%;justify-content:center}.choices__inner{font-size:1rem;min-height:40px;padding-bottom:0}.choices[data-type*=select-one] .choices__inner{padding-bottom:4px;padding-top:4px}.choices[data-type*=select-multiple] .choices__inner{padding-top:3px}.choices__inner,.choices__input.choices__input--cloned{background:#0000}.choices__inner,.is-open .choices__inner{border:1px solid #6b7280;border-radius:.25rem}.is-open .choices__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.choices__input{color:inherit;font-size:1rem}.choices__list--multiple .choices__item,.choices__list--multiple .choices__item.is-highlighted{background:#f3f4f6;border:1px solid #6b7280;border-radius:.25rem;color:#030712;font-size:1rem;margin-bottom:2px}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=select-one] .choices__button{border:none;filter:invert(1)}.choices[data-type*=select-multiple]:after{border:5px solid #0000;border-top-color:#030712;content:"";height:0;margin-top:-2.5px;pointer-events:none;position:absolute;right:11.5px;top:50%;width:0}.choices[data-type*=select-multiple].is-open:after{border-color:#0000 #0000 #030712;margin-top:-7.5px}.choices[data-type*=select-multiple][dir=rtl]:after{left:11.5px;right:auto}.choices{margin-bottom:0}.choices__list--dropdown .choices__item--selectable,.choices__list[aria-expanded] .choices__item--selectable{padding-right:inherit;word-break:break-word}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M11.668.297c.417.421.445 1.135.063 1.595L5.29 9.634A.986.986 0 0 1 4.56 10a.977.977 0 0 1-.747-.33L.3 5.797c-.4-.44-.4-1.155 0-1.596a.959.959 0 0 1 1.449 0l2.755 3.037L10.22.366a.96.96 0 0 1 1.448-.07Z'/%3E%3C/svg%3E");background-size:80% 80%;background-position:3.5px 4.5px}.toast{align-items:center}.toast>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.toast{border-radius:.25rem;padding:1rem;--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.toast.\:popover-open{position:fixed;top:auto;bottom:2.5rem;margin-left:auto;margin-right:auto;display:flex;overflow:visible;border-width:0}.toast:popover-open{position:fixed;top:auto;bottom:2.5rem;margin-left:auto;margin-right:auto;display:flex;overflow:visible;border-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.-left-full{left:-100%}.-top-full{top:-100%}.bottom-0{bottom:0}.left-4{left:1rem}.right-0{right:0}.right-4{right:1rem}.top-1\/2{top:50%}.z-10{z-index:10}.col-start-2{grid-column-start:2}.m-0{margin:0}.m-\[3px\]{margin:3px}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.\!ml-10{margin-left:2.5rem!important}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-8{margin-bottom:2rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[500\/341\]{aspect-ratio:500/341}.aspect-\[500\/81\]{aspect-ratio:500/81}.aspect-\[72\/58\]{aspect-ratio:72/58}.aspect-square{aspect-ratio:1/1}.\!h-4{height:1rem!important}.\!h-4\.5{height:1.125rem!important}.h-4{height:1rem}.h-5{height:1.25rem}.h-\[100dvh\]{height:100dvh}.h-\[120px\]{height:120px}.h-\[150px\]{height:150px}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-\[100dvh\]{max-height:100dvh}.max-h-\[200px\]{max-height:200px}.max-h-full{max-height:100%}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[40px\]{min-height:40px}.min-h-screen{min-height:100vh}.\!w-4{width:1rem!important}.\!w-4\.5{width:1.125rem!important}.w-12{width:3rem}.w-4{width:1rem}.w-4\.5{width:1.125rem}.w-5{width:1.25rem}.w-\[100px\]{width:100px}.w-\[15rem\]{width:15rem}.w-\[198px\]{width:198px}.w-\[36rem\]{width:36rem}.w-\[50vw\]{width:50vw}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-\[300px\]{max-width:300px}.max-w-\[516px\]{max-width:516px}.max-w-full{max-width:100%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\[1fr_1fr\]{grid-template-columns:1fr 1fr}.grid-cols-\[max-content_auto\]{grid-template-columns:max-content auto}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-white\/10>:not([hidden])~:not([hidden]){border-color:#ffffff1a}.self-end{align-self:flex-end}.self-center{align-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-default{--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity))}.border-gray-300,.border-subdued{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.bg-accent-subdued{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.bg-brand-sea{--tw-bg-opacity:1;background-color:rgb(28 73 87/var(--tw-bg-opacity))}.bg-critical{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.bg-critical-subdued{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-neutral{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity))}.bg-success-subdued{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-warning-subdued{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/\[\.05\]{background-color:#ffffff0d}.bg-\[length\:16px_16px\]{background-size:16px 16px}.bg-\[8px_center\]{background-position:8px}.bg-no-repeat{background-repeat:no-repeat}.stroke-2{stroke-width:2}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pl-11{padding-left:2.75rem}.pl-8{padding-left:2rem}.pr-11{padding-right:2.75rem}.pr-2{padding-right:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-10{line-height:2.5rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.text-accent{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.text-brand-coral{--tw-text-opacity:1;color:rgb(242 170 106/var(--tw-text-opacity))}.text-brand-sea{--tw-text-opacity:1;color:rgb(28 73 87/var(--tw-text-opacity))}.text-critical{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-white\/60{color:#fff9}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\[inset_0_-1px\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_-1px\]{--tw-shadow:inset 0 -1px;--tw-shadow-colored:inset 0 -1px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-gray-300{--tw-shadow-color:#d1d5db;--tw-shadow:var(--tw-shadow-colored)}.outline{outline-style:solid}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[padding\]{transition-property:padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-500{transition-duration:.5s}.backdrop\:bg-gray-950\/50::backdrop{background-color:#03071280}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);left:0;right:0}.after\:-bottom-1:after{content:var(--tw-content);bottom:-.25rem}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:bg-accent:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.open\:flex[open]{display:flex}.checked\:border-accent:checked{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity))}.checked\:bg-accent:checked{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.checked\:bg-gradient-radial:checked{background-image:radial-gradient(var(--tw-gradient-stops))}.checked\:from-blue-600:checked{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.checked\:from-\[50\%\]:checked{--tw-gradient-from-position:50%}.checked\:to-transparent:checked{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.checked\:to-\[54\%\]:checked{--tw-gradient-to-position:54%}.focus-within\:bg-neutral:focus-within{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-gray-600:hover{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.hover\:bg-gray-100:hover,.hover\:bg-neutral:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-white\/\[\.05\]:hover{background-color:#ffffff0d}.hover\:text-accent-hover:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.hover\:text-critical-hover:hover{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:text-primary:hover{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.checked\:hover\:border-accent-hover:hover:checked{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity))}.checked\:hover\:bg-accent-hover:hover:checked{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity))}.checked\:hover\:from-blue-800:hover:checked{--tw-gradient-from:#1e40af var(--tw-gradient-from-position);--tw-gradient-to:#1e40af00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.checked\:hover\:from-\[50\%\]:hover:checked{--tw-gradient-from-position:50%}.checked\:hover\:to-transparent:hover:checked{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.checked\:hover\:to-\[54\%\]:hover:checked{--tw-gradient-to-position:54%}.focus\:no-underline:focus{text-decoration-line:none}.disabled\:border-subdued:disabled,.disabled\:checked\:border-subdued:checked:disabled{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.disabled\:checked\:from-\[50\%\]:checked:disabled{--tw-gradient-from-position:50%}.disabled\:checked\:to-transparent:checked:disabled{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.disabled\:checked\:to-\[54\%\]:checked:disabled{--tw-gradient-to-position:54%}.disabled\:checked\:hover\:border-subdued:hover:checked:disabled{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.group[aria-expanded][data-empty=true][data-loading=false] .group-aria-\[expanded\]\[data-empty\=\'true\'\]\[data-loading\=\'false\'\]\:block,.group[aria-expanded][data-loading=true] .group-aria-\[expanded\]\[data-loading\=\'true\'\]\:block{display:block}.group[data-empty=true] .group-data-\[empty\=\'true\'\]\:hidden,.group[data-loading=true] .group-data-\[loading\=\'true\'\]\:hidden{display:none}.popover-open\:block:popover-open{display:block}.\[\&\>\[aria-selected\=\'true\'\]\]\:bg-accent-subdued>[aria-selected=true]{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.\[\&\>li\]\:cursor-pointer>li{cursor:pointer}.\[\&\>li\]\:px-3>li{padding-left:.75rem;padding-right:.75rem}.\[\&\>li\]\:py-2>li{padding-top:.5rem;padding-bottom:.5rem}.side-nav-open .\[\.side-nav-open_\&\]\:w-\[3\.5rem\]{width:3.5rem}.side-nav-open .\[\.side-nav-open_\&\]\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.side-nav-open .\[\.side-nav-open_\&\]\:px-4{padding-left:1rem;padding-right:1rem}.side-nav-open .\[\.side-nav-open_\&\]\:opacity-0{opacity:0}
|
@@ -1,11 +1,12 @@
|
|
1
1
|
.choices__inner {
|
2
|
+
font-size: theme(fontSize.base);
|
2
3
|
min-height: 40px;
|
3
4
|
padding-bottom: 0;
|
4
|
-
font-size: 16px;
|
5
5
|
}
|
6
|
+
|
6
7
|
.choices[data-type*=select-one] .choices__inner {
|
7
|
-
padding-top: 4px;
|
8
8
|
padding-bottom: 4px;
|
9
|
+
padding-top: 4px;
|
9
10
|
}
|
10
11
|
|
11
12
|
.choices[data-type*=select-multiple] .choices__inner {
|
@@ -19,8 +20,8 @@
|
|
19
20
|
|
20
21
|
.is-open .choices__inner,
|
21
22
|
.choices__inner {
|
22
|
-
border
|
23
|
-
border:
|
23
|
+
border: 1px solid theme(borderColor.default);
|
24
|
+
border-radius: theme(borderRadius.DEFAULT);
|
24
25
|
}
|
25
26
|
|
26
27
|
.is-open .choices__inner {
|
@@ -29,17 +30,17 @@
|
|
29
30
|
}
|
30
31
|
|
31
32
|
.choices__input {
|
32
|
-
font-size: 16px;
|
33
33
|
color: inherit;
|
34
|
+
font-size: theme(fontSize.base);
|
34
35
|
}
|
35
36
|
|
36
37
|
.choices__list--multiple .choices__item.is-highlighted,
|
37
38
|
.choices__list--multiple .choices__item {
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
background: theme(backgroundColor.neutral);
|
40
|
+
border: 1px solid theme(borderColor.default);
|
41
|
+
border-radius: theme(borderRadius.DEFAULT);
|
42
|
+
color: theme(textColor.primary);
|
43
|
+
font-size: theme(fontSize.base);
|
43
44
|
margin-bottom: 2px;
|
44
45
|
}
|
45
46
|
|
@@ -51,22 +52,24 @@
|
|
51
52
|
|
52
53
|
/* Add arrow to select-multiple */
|
53
54
|
.choices[data-type*=select-multiple]::after {
|
54
|
-
|
55
|
-
height: 0;
|
56
|
-
width: 0;
|
55
|
+
border-color: theme(textColor.primary) transparent transparent transparent;
|
57
56
|
border-style: solid;
|
58
|
-
border-color: #333 transparent transparent transparent;
|
59
57
|
border-width: 5px;
|
58
|
+
content: "";
|
59
|
+
height: 0;
|
60
|
+
margin-top: -2.5px;
|
61
|
+
pointer-events: none;
|
60
62
|
position: absolute;
|
61
63
|
right: 11.5px;
|
62
64
|
top: 50%;
|
63
|
-
|
64
|
-
pointer-events: none;
|
65
|
+
width: 0;
|
65
66
|
}
|
67
|
+
|
66
68
|
.choices[data-type*=select-multiple].is-open::after {
|
67
|
-
border-color: transparent transparent
|
69
|
+
border-color: transparent transparent theme(textColor.primary) transparent;
|
68
70
|
margin-top: -7.5px;
|
69
71
|
}
|
72
|
+
|
70
73
|
.choices[data-type*=select-multiple][dir=rtl]::after {
|
71
74
|
left: 11.5px;
|
72
75
|
right: auto;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
.form-checkbox:checked {
|
2
|
+
background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M11.6678 0.296768C12.0849 0.718114 12.113 1.4323 11.7307 1.89195L5.29172 9.63388C5.10292 9.86089 4.83818 9.99304 4.55884 9.99973C4.2795 10.0064 4.0098 9.88706 3.81223 9.66931L0.300037 5.79835C-0.100012 5.35743 -0.100012 4.64257 0.300037 4.20166C0.700086 3.76074 1.34869 3.76074 1.74874 4.20166L4.50441 7.23881L10.2205 0.366124C10.6028 -0.0935264 11.2508 -0.124578 11.6678 0.296768Z'/%3e%3c/svg%3e");
|
3
|
+
background-size: 80% 80%;
|
4
|
+
background-position: 3.5px 4.5px;
|
5
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= tag.div content, class: "flex flex-col space-y-2 text-base" %>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Anchor
|
2
|
+
class CheckBoxCollectionComponent < Component
|
3
|
+
attr_reader :attribute, :descriptions, :form_builder
|
4
|
+
|
5
|
+
def initialize(
|
6
|
+
form_builder:,
|
7
|
+
attribute:,
|
8
|
+
collection:,
|
9
|
+
value_method:,
|
10
|
+
text_method:,
|
11
|
+
descriptions: nil,
|
12
|
+
**options
|
13
|
+
)
|
14
|
+
@form_builder = form_builder
|
15
|
+
@attribute = attribute
|
16
|
+
@collection = collection
|
17
|
+
@value_method = value_method
|
18
|
+
@text_method = text_method
|
19
|
+
@descriptions = descriptions
|
20
|
+
@options = options
|
21
|
+
|
22
|
+
super()
|
23
|
+
end
|
24
|
+
|
25
|
+
def options
|
26
|
+
@options.merge(
|
27
|
+
class: Array(@options.delete(:class)) + CheckBoxComponent::INPUT_CLASSES
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
def check_box(check_box:)
|
32
|
+
CheckBoxComponent.new(check_box:, attribute:, form_builder:)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%= tag.div **merge_options(wrapper_options,
|
2
|
+
class: "grid grid-cols-[max-content_auto] gap-x-2 items-center",
|
3
|
+
) do %>
|
4
|
+
<%= check_box.check_box(check_box_options) %>
|
5
|
+
<% if description.present? %>
|
6
|
+
<%= check_box.label class: "col-start-2" %>
|
7
|
+
<%= description_span %>
|
8
|
+
<% else %>
|
9
|
+
<%= tag.div check_box.label, class: "col-start-2" %>
|
10
|
+
<% end %>
|
11
|
+
<% end %>
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Anchor
|
2
|
+
class CheckBoxComponent < Anchor::Component
|
3
|
+
include DescribableInput
|
4
|
+
|
5
|
+
INPUT_CLASSES = %w(
|
6
|
+
form-checkbox
|
7
|
+
rounded
|
8
|
+
border-2
|
9
|
+
checked:bg-accent
|
10
|
+
flex-shrink-0
|
11
|
+
m-[3px]
|
12
|
+
!h-4.5
|
13
|
+
!w-4.5
|
14
|
+
hover:border-gray-600
|
15
|
+
checked:hover:border-accent-hover
|
16
|
+
checked:hover:bg-accent-hover
|
17
|
+
disabled:border-subdued
|
18
|
+
disabled:checked:bg-subdued
|
19
|
+
disabled:checked:hover:border-subdued
|
20
|
+
).freeze
|
21
|
+
|
22
|
+
DESCRIPTION_CLASSES = %w(
|
23
|
+
text-secondary
|
24
|
+
text-sm
|
25
|
+
col-start-2
|
26
|
+
).freeze
|
27
|
+
|
28
|
+
def initialize(check_box:, attribute:, form_builder:, **kwargs)
|
29
|
+
@check_box = check_box
|
30
|
+
@attribute = attribute
|
31
|
+
@form_builder = form_builder
|
32
|
+
|
33
|
+
super(**kwargs)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
attr_reader :check_box, :attribute, :form_builder
|
39
|
+
|
40
|
+
delegate :value, :object, to: :check_box
|
41
|
+
|
42
|
+
def description_span
|
43
|
+
tag.span description, id: description_id, class: DESCRIPTION_CLASSES
|
44
|
+
end
|
45
|
+
|
46
|
+
def check_box_options
|
47
|
+
{
|
48
|
+
aria: description.present? && aria_description,
|
49
|
+
data: { testid: "checkbox-#{attribute}-#{check_box.value}".dasherize },
|
50
|
+
}
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Anchor
|
2
|
+
module DescribableInput
|
3
|
+
def aria_description
|
4
|
+
{ describedby: description_id }
|
5
|
+
end
|
6
|
+
|
7
|
+
def description
|
8
|
+
if object.is_a?(Hash)
|
9
|
+
object[:description]
|
10
|
+
elsif object.respond_to?(:description)
|
11
|
+
object.description
|
12
|
+
elsif I18n.exists?(description_translation_html_scope)
|
13
|
+
human_attribute_html_description
|
14
|
+
elsif I18n.exists?(description_translation_scope)
|
15
|
+
human_attribute_description
|
16
|
+
else
|
17
|
+
false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def description_id
|
22
|
+
"#{attribute}-#{value}-description"
|
23
|
+
end
|
24
|
+
|
25
|
+
def description_text
|
26
|
+
human_attribute_description
|
27
|
+
end
|
28
|
+
|
29
|
+
def description_translation_html_scope
|
30
|
+
[
|
31
|
+
"activerecord.values",
|
32
|
+
i18n_model_key,
|
33
|
+
"#{description_id.gsub('-', '.')}_html",
|
34
|
+
]
|
35
|
+
end
|
36
|
+
|
37
|
+
def description_translation_scope
|
38
|
+
["activerecord.values", i18n_model_key, description_id.gsub("-", ".")]
|
39
|
+
end
|
40
|
+
|
41
|
+
def human_attribute_html_description
|
42
|
+
I18n.t(description_translation_html_scope.join(".")).html_safe
|
43
|
+
end
|
44
|
+
|
45
|
+
def human_attribute_description
|
46
|
+
I18n.t description_translation_scope.join(".")
|
47
|
+
end
|
48
|
+
|
49
|
+
def i18n_model_key
|
50
|
+
if (form_object = form_builder.object)
|
51
|
+
form_object.class.model_name.i18n_key
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= tag.footer(**merge_options(wrapper_options,
|
2
|
+
class: class_names(
|
3
|
+
Anchor::PageComponent::HORIZONTAL_PADDING_CLASS,
|
4
|
+
"py-5 flex justify-end gap-4 border-t bg-white border-subdued sticky bottom-0",
|
5
|
+
),
|
6
|
+
data: { testid: "page-footer" }),
|
7
|
+
) do %>
|
8
|
+
<%= delete_button unless done_button? %>
|
9
|
+
<%= cancel_button unless done_button? %>
|
10
|
+
<%= save_button unless done_button? %>
|
11
|
+
<%= done_button %>
|
12
|
+
<% end %>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Anchor
|
2
|
+
module Page
|
3
|
+
class FooterComponent < Anchor::Component
|
4
|
+
renders_one :cancel_button, lambda { |**kwargs|
|
5
|
+
anchor_button(
|
6
|
+
t(".cancel"),
|
7
|
+
tag: :a,
|
8
|
+
**kwargs
|
9
|
+
)
|
10
|
+
}
|
11
|
+
|
12
|
+
renders_one :save_button, lambda { |form:, **kwargs|
|
13
|
+
anchor_button(
|
14
|
+
t(".save"),
|
15
|
+
form:,
|
16
|
+
type: :submit,
|
17
|
+
variant: :primary,
|
18
|
+
**kwargs
|
19
|
+
)
|
20
|
+
}
|
21
|
+
|
22
|
+
renders_one :delete_button, lambda { |**kwargs|
|
23
|
+
anchor_button(
|
24
|
+
t(".delete"),
|
25
|
+
variant: :text,
|
26
|
+
class: "mr-auto text-critical hover:text-critical-hover",
|
27
|
+
**kwargs
|
28
|
+
)
|
29
|
+
}
|
30
|
+
|
31
|
+
renders_one :done_button, lambda { |**kwargs|
|
32
|
+
anchor_button(
|
33
|
+
t(".done"),
|
34
|
+
tag: :a,
|
35
|
+
variant: :primary,
|
36
|
+
**kwargs
|
37
|
+
)
|
38
|
+
}
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<%= tag.header(**merge_options(wrapper_options, { class: "pt-6" })) do %>
|
2
|
+
<% if breadcrumbs? %>
|
3
|
+
<%= tag.div breadcrumbs, class: Anchor::PageComponent::HORIZONTAL_PADDING_CLASS %>
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<% if render_title_and_action_row? %>
|
7
|
+
<%= tag.div class: [Anchor::PageComponent::HORIZONTAL_PADDING_CLASS, "flex justify-between items-center mb-8"] do %>
|
8
|
+
<%= tag.div class: ["flex items-center justify-center gap-2"] do %>
|
9
|
+
<%= title %>
|
10
|
+
<%= badge %>
|
11
|
+
<% end %>
|
12
|
+
<%= tag.div class: ["flex items-center justify-center gap-2"] do %>
|
13
|
+
<%= action_menu %>
|
14
|
+
<%= action %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% if content? %>
|
20
|
+
<%= tag.div content, class: Anchor::PageComponent::HORIZONTAL_PADDING_CLASS %>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<%= tab_bar %>
|
24
|
+
|
25
|
+
<% if search? %>
|
26
|
+
<%= tag.search(
|
27
|
+
search,
|
28
|
+
class: [Anchor::PageComponent::HORIZONTAL_PADDING_CLASS, "bg-neutral py-6"]
|
29
|
+
) %>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Anchor
|
2
|
+
module Page
|
3
|
+
class HeaderComponent < Anchor::Component
|
4
|
+
renders_one :breadcrumbs, lambda { |**kwargs|
|
5
|
+
Anchor::BreadcrumbsComponent.new(class: "mb-8", **kwargs)
|
6
|
+
}
|
7
|
+
|
8
|
+
renders_one :search
|
9
|
+
|
10
|
+
renders_one :tab_bar, lambda { |**kwargs|
|
11
|
+
Anchor::TabBarComponent.new(
|
12
|
+
class: PageComponent::HORIZONTAL_PADDING_CLASS,
|
13
|
+
**kwargs
|
14
|
+
)
|
15
|
+
}
|
16
|
+
|
17
|
+
renders_one :title, lambda { |title, **kwargs|
|
18
|
+
anchor_text(
|
19
|
+
title,
|
20
|
+
tag: :h1,
|
21
|
+
variant: :heading_2xl,
|
22
|
+
**kwargs
|
23
|
+
)
|
24
|
+
}
|
25
|
+
|
26
|
+
renders_one :badge, lambda { |*args, **kwargs|
|
27
|
+
anchor_badge(*args, **kwargs)
|
28
|
+
}
|
29
|
+
|
30
|
+
renders_one :action, lambda { |text, **kwargs|
|
31
|
+
anchor_button(
|
32
|
+
text,
|
33
|
+
tag: :a,
|
34
|
+
variant: :primary,
|
35
|
+
**kwargs
|
36
|
+
)
|
37
|
+
}
|
38
|
+
|
39
|
+
renders_one :action_menu, lambda { |**kwargs, &block|
|
40
|
+
anchor_action_menu(**kwargs, &block)
|
41
|
+
}
|
42
|
+
|
43
|
+
def render_title_and_action_row?
|
44
|
+
title? || action? || action_menu? || badge?
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -1,9 +1,12 @@
|
|
1
1
|
module Anchor
|
2
2
|
class RadioButtonComponent < Anchor::Component
|
3
|
+
include DescribableInput
|
4
|
+
|
3
5
|
INPUT_CLASSES = %w(
|
4
6
|
appearance-none
|
5
|
-
w-
|
7
|
+
w-4.5
|
6
8
|
m-[3px]
|
9
|
+
flex-shrink-0
|
7
10
|
aspect-square
|
8
11
|
rounded-full
|
9
12
|
border-2
|
@@ -46,50 +49,12 @@ module Anchor
|
|
46
49
|
|
47
50
|
attr_reader :radio, :attribute, :form_builder
|
48
51
|
|
49
|
-
delegate :value, to: :radio
|
50
|
-
|
51
|
-
def aria_description
|
52
|
-
{ describedby: description_id }
|
53
|
-
end
|
54
|
-
|
55
|
-
def description
|
56
|
-
if radio.object.is_a?(Hash)
|
57
|
-
radio.object[:description]
|
58
|
-
elsif radio.object.respond_to?(:description)
|
59
|
-
radio.object.description
|
60
|
-
elsif I18n.exists?(description_translation_scope)
|
61
|
-
human_attribute_description
|
62
|
-
else
|
63
|
-
false
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def description_id
|
68
|
-
"#{attribute}-#{value}-description"
|
69
|
-
end
|
52
|
+
delegate :value, :object, to: :radio
|
70
53
|
|
71
54
|
def description_span
|
72
55
|
tag.span description, id: description_id, class: DESCRIPTION_CLASSES
|
73
56
|
end
|
74
57
|
|
75
|
-
def description_text
|
76
|
-
human_attribute_description
|
77
|
-
end
|
78
|
-
|
79
|
-
def description_translation_scope
|
80
|
-
["activerecord.values", i18n_model_key, description_id.gsub("-", ".")]
|
81
|
-
end
|
82
|
-
|
83
|
-
def human_attribute_description
|
84
|
-
I18n.t description_translation_scope.join(".")
|
85
|
-
end
|
86
|
-
|
87
|
-
def i18n_model_key
|
88
|
-
if (form_object = form_builder.object)
|
89
|
-
form_object.class.model_name.i18n_key
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
58
|
def radio_options
|
94
59
|
{
|
95
60
|
aria: description.present? && aria_description,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Anchor
|
2
2
|
class FormBuilder < ActionView::Helpers::FormBuilder
|
3
|
-
delegate :concat, :capture, :content_tag, :render, to: :@template
|
3
|
+
delegate :concat, :capture, :content_tag, :render, :tag, to: :@template
|
4
4
|
|
5
5
|
def initialize(object_name, object, template, options, &)
|
6
6
|
super(
|
@@ -52,6 +52,36 @@ module Anchor
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
+
def collection_check_boxes(
|
56
|
+
attribute,
|
57
|
+
collection,
|
58
|
+
value_method,
|
59
|
+
text_method,
|
60
|
+
options = {},
|
61
|
+
html_options = {}
|
62
|
+
)
|
63
|
+
render CheckBoxCollectionComponent.new(
|
64
|
+
form_builder: self,
|
65
|
+
attribute:,
|
66
|
+
collection:,
|
67
|
+
value_method:,
|
68
|
+
text_method:,
|
69
|
+
**options,
|
70
|
+
**html_options
|
71
|
+
) do |component|
|
72
|
+
super(
|
73
|
+
attribute,
|
74
|
+
collection,
|
75
|
+
value_method,
|
76
|
+
text_method,
|
77
|
+
options,
|
78
|
+
component.options.merge(html_options),
|
79
|
+
) do |check_box|
|
80
|
+
render component.check_box(check_box:)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
55
85
|
def error_message_for(attribute, options = {})
|
56
86
|
render ErrorMessageComponent.new(
|
57
87
|
form_builder: self,
|
@@ -161,6 +191,13 @@ module Anchor
|
|
161
191
|
end
|
162
192
|
end
|
163
193
|
|
194
|
+
def fieldset(attribute, options = {}, &block)
|
195
|
+
output = tag(:fieldset, options, true)
|
196
|
+
output.safe_concat(legend(attribute))
|
197
|
+
output.concat(capture(&block)) if block_given?
|
198
|
+
output.safe_concat("</fieldset>")
|
199
|
+
end
|
200
|
+
|
164
201
|
def legend(attribute, _options = {})
|
165
202
|
content_tag :legend, class: %w(font-semibold text-base text-primary) do
|
166
203
|
i18n_label attribute
|
@@ -24,7 +24,9 @@ module Anchor
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def attribute_required_by_validators?(attribute)
|
27
|
-
validators_for(attribute).any? {
|
27
|
+
validators_for(attribute).any? { |validator|
|
28
|
+
validator.kind == :presence || validator.kind == :acceptance
|
29
|
+
}
|
28
30
|
end
|
29
31
|
|
30
32
|
def validators_for(attribute)
|
@@ -28,6 +28,15 @@ module Anchor
|
|
28
28
|
)
|
29
29
|
end
|
30
30
|
|
31
|
+
def check_box_collection
|
32
|
+
model = FakeUser.new
|
33
|
+
|
34
|
+
render_with_template(
|
35
|
+
template: "forms/check_box_collection",
|
36
|
+
locals: { model:, object_options:, hash_options: }
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
31
40
|
private
|
32
41
|
|
33
42
|
def object_options
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<%= anchor_page do |page| %>
|
2
|
+
<% page.with_header do |header| %>
|
3
|
+
<% header.with_breadcrumbs do |breadcrumbs| %>
|
4
|
+
<% breadcrumbs.with_item(href: "#").with_content("Breadcrumb 1") %>
|
5
|
+
<% breadcrumbs.with_item(href: "#").with_content("Breadcrumb 2") %>
|
6
|
+
<% breadcrumbs.with_item(href: "").with_content("Breadcrumb 3") %>
|
7
|
+
<% end %>
|
8
|
+
<% header.with_title("Page title") %>
|
9
|
+
<% header.with_badge("A Badge", variant: :success) %>
|
10
|
+
<% header.with_tab_bar(label: "Tabs") do |tab_bar| %>
|
11
|
+
<% tab_bar.with_tab(href: "#", active: true).with_content("Tab 1") %>
|
12
|
+
<% tab_bar.with_tab(href: "#").with_content("Tab 2") %>
|
13
|
+
<% end %>
|
14
|
+
<% header.with_search do %>
|
15
|
+
Here you can put the filters, search, etc.
|
16
|
+
<% end %>
|
17
|
+
<% header.with_action_menu do |menu| %>
|
18
|
+
<% menu.with_show_button do |button| %>
|
19
|
+
<% button.with_ending_icon(icon: "nav-arrow-down") %>
|
20
|
+
Actions
|
21
|
+
<% end %>
|
22
|
+
<% menu.with_item do %>
|
23
|
+
<% link_to("Add center", "#") %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
<% header.with_action("Page action", href: "#")%>
|
27
|
+
<% end %>
|
28
|
+
<% page.with_body_content("Page content goes here.") %>
|
29
|
+
<% page.with_footer do |footer| %>
|
30
|
+
<% footer.with_delete_button %>
|
31
|
+
<% footer.with_cancel_button(href: "#") %>
|
32
|
+
<% end %>
|
33
|
+
<% end %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%= anchor_page do |page| %>
|
2
|
+
<% page.with_header do |header| %>
|
3
|
+
<% header.with_breadcrumbs do |breadcrumbs| %>
|
4
|
+
<% breadcrumbs.with_item(href: "#").with_content("Breadcrumb 1") %>
|
5
|
+
<% breadcrumbs.with_item(href: "").with_content("Breadcrumb 2") %>
|
6
|
+
<% end %>
|
7
|
+
<% end %>
|
8
|
+
<% page.with_body do |body| %>
|
9
|
+
<%= anchor_form_with(url: false, id: "form") do |form| %>
|
10
|
+
<%= tag.div class: "max-w-[300px]" do %>
|
11
|
+
<%= form.label :name, "Name" %>
|
12
|
+
<%= form.text_field(
|
13
|
+
:name,
|
14
|
+
) %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
<% page.with_footer do |footer| %>
|
19
|
+
<% footer.with_cancel_button(href: "#") %>
|
20
|
+
<% footer.with_save_button(form: "form") %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<%= anchor_page do |page| %>
|
2
|
+
<% page.with_header do |header| %>
|
3
|
+
<% header.with_breadcrumbs do |breadcrumbs| %>
|
4
|
+
<% breadcrumbs.with_item(href: "#").with_content("Breadcrumb 1") %>
|
5
|
+
<% breadcrumbs.with_item(href: "#").with_content("Breadcrumb 2") %>
|
6
|
+
<% breadcrumbs.with_item(href: "").with_content("Breadcrumb 3") %>
|
7
|
+
<% end %>
|
8
|
+
<% header.with_tab_bar(label: "Donor tabs") do |tab_bar| %>
|
9
|
+
<% 5.times.each_with_index do |i| %>
|
10
|
+
<% tab_bar.with_tab(href: "#", active: i == 2).with_content("Tab #{i + 1}") %>
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
13
|
+
<% header.with_search do %>
|
14
|
+
Here you can put the filters, search, etc.
|
15
|
+
<% end %>
|
16
|
+
<div class="flex gap-6 mb-8">
|
17
|
+
<img class="w-[100px] aspect-square object-cover rounded-full" src="https://plus.unsplash.com/premium_photo-1664453547090-0e8a92a6ed4c?auto=format&fit=crop&q=80&w=2716&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" />
|
18
|
+
<div>
|
19
|
+
<%= anchor_badge("Qualified", variant: :success, class: "mb-1") %>
|
20
|
+
<%= anchor_text("Aaron Grosbard", variant: :heading_2xl, class: "mb-2") %>
|
21
|
+
<p>Buoy ID: 1234</p>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
<% page.with_body do %>
|
26
|
+
Page content
|
27
|
+
<% end %>
|
28
|
+
<% end %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<%= anchor_page do |page| %>
|
2
|
+
<% page.with_header do |header| %>
|
3
|
+
<% header.with_breadcrumbs do |breadcrumbs| %>
|
4
|
+
<% breadcrumbs.with_item(href: "#").with_content("Breadcrumb 1") %>
|
5
|
+
<% breadcrumbs.with_item(href: "").with_content("Breadcrumb 2") %>
|
6
|
+
<% end %>
|
7
|
+
<% end %>
|
8
|
+
<% page.with_body do %>
|
9
|
+
<div class="max-w-[516px] mx-auto mt-10">
|
10
|
+
<%= anchor_panel(title: "Unit status", active: true) do |panel| %>
|
11
|
+
<% panel.with_header_content("Step") %>
|
12
|
+
<%= panel.with_body do %>
|
13
|
+
<div class="h-[150px]">
|
14
|
+
<%= anchor_form_with(url: false, id: "form") do |form| %>
|
15
|
+
The form
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
<% end %>
|
19
|
+
<%= panel.with_footer do |footer| %>
|
20
|
+
<%= footer.with_primary_action(label: "Save", form: "form") %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
<% page.with_footer do |footer| %>
|
26
|
+
<% footer.with_done_button(href: "#") %>
|
27
|
+
<% end %>
|
28
|
+
<% end %>
|
@@ -0,0 +1,61 @@
|
|
1
|
+
<div class="space-y-5">
|
2
|
+
<%= anchor_form_with url: false do |form| %>
|
3
|
+
<%= form.fieldset("Object options") do %>
|
4
|
+
<%= form.collection_check_boxes(
|
5
|
+
:language,
|
6
|
+
object_options,
|
7
|
+
:value,
|
8
|
+
:text,
|
9
|
+
{ checked: FakeUser::LANGUAGES.sample }
|
10
|
+
) %>
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<%= anchor_form_with url: false do |form| %>
|
15
|
+
<%= form.fieldset("Hash options") do %>
|
16
|
+
<%= form.collection_check_boxes(
|
17
|
+
:language,
|
18
|
+
hash_options,
|
19
|
+
->(option) { option[:value] },
|
20
|
+
->(option) { option[:text] },
|
21
|
+
{ checked: FakeUser::LANGUAGES.sample }
|
22
|
+
) %>
|
23
|
+
<% end %>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
<%= anchor_form_with model:, url: false do |form| %>
|
27
|
+
<%= form.fieldset("Translated descriptions") do %>
|
28
|
+
<%= form.collection_check_boxes(
|
29
|
+
:language,
|
30
|
+
FakeUser::LANGUAGES,
|
31
|
+
:to_s,
|
32
|
+
:titleize,
|
33
|
+
) %>
|
34
|
+
<% end %>
|
35
|
+
<% end %>
|
36
|
+
|
37
|
+
<%= anchor_form_with model: FakeCar.new, url: false do |form| %>
|
38
|
+
<%= form.fieldset("No descriptions") do %>
|
39
|
+
<%= form.collection_check_boxes(
|
40
|
+
:color,
|
41
|
+
FakeCar::COLORS,
|
42
|
+
:to_s,
|
43
|
+
:titleize,
|
44
|
+
checked: FakeCar::COLORS.sample,
|
45
|
+
) %>
|
46
|
+
<% end %>
|
47
|
+
<% end %>
|
48
|
+
|
49
|
+
<%= anchor_form_with model: FakeCar.new, url: false do |form| %>
|
50
|
+
<%= form.fieldset("Disabled") do %>
|
51
|
+
<%= form.collection_check_boxes(
|
52
|
+
:color,
|
53
|
+
FakeCar::COLORS,
|
54
|
+
:to_s,
|
55
|
+
:titleize,
|
56
|
+
disabled: true,
|
57
|
+
checked: FakeCar::COLORS.sample,
|
58
|
+
) %>
|
59
|
+
<% end %>
|
60
|
+
<% end %>
|
61
|
+
</div>
|
@@ -20,6 +20,12 @@
|
|
20
20
|
<%= form.error_message_for :birthday %>
|
21
21
|
<% end %>
|
22
22
|
|
23
|
+
<%= tag.div do %>
|
24
|
+
<%= form.check_box :allows_email_marketing %>
|
25
|
+
<%= form.label :allows_email_marketing %>
|
26
|
+
<%= form.error_message_for :allows_email_marketing %>
|
27
|
+
<% end %>
|
28
|
+
|
23
29
|
<%= tag.div do %>
|
24
30
|
<%= form.label :choices %>
|
25
31
|
<%= form.select(
|
@@ -1,7 +1,6 @@
|
|
1
1
|
<div class="space-y-5">
|
2
2
|
<%= anchor_form_with url: false do |form| %>
|
3
|
-
<%=
|
4
|
-
<%= form.legend "Object options" %>
|
3
|
+
<%= form.fieldset("Object options") do %>
|
5
4
|
<%= form.collection_radio_buttons(
|
6
5
|
:language,
|
7
6
|
object_options,
|
@@ -13,8 +12,7 @@
|
|
13
12
|
<% end %>
|
14
13
|
|
15
14
|
<%= anchor_form_with url: false do |form| %>
|
16
|
-
<%=
|
17
|
-
<%= form.legend "Hash options" %>
|
15
|
+
<%= form.fieldset("Hash options") do %>
|
18
16
|
<%= form.collection_radio_buttons(
|
19
17
|
:language,
|
20
18
|
hash_options,
|
@@ -26,8 +24,7 @@
|
|
26
24
|
<% end %>
|
27
25
|
|
28
26
|
<%= anchor_form_with model:, url: false do |form| %>
|
29
|
-
<%=
|
30
|
-
<%= form.legend "Translated descriptions" %>
|
27
|
+
<%= form.fieldset("Translated descriptions") do %>
|
31
28
|
<%= form.collection_radio_buttons(
|
32
29
|
:language,
|
33
30
|
FakeUser::LANGUAGES,
|
@@ -38,8 +35,7 @@
|
|
38
35
|
<% end %>
|
39
36
|
|
40
37
|
<%= anchor_form_with model: FakeCar.new, url: false do |form| %>
|
41
|
-
<%=
|
42
|
-
<%= form.legend "No descriptions" %>
|
38
|
+
<%= form.fieldset("No descriptions") do %>
|
43
39
|
<%= form.collection_radio_buttons(
|
44
40
|
:color,
|
45
41
|
FakeCar::COLORS,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anchor_view_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.34.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Buoy Software
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -73,6 +73,7 @@ files:
|
|
73
73
|
- app/assets/stylesheets/components/action-menu.css
|
74
74
|
- app/assets/stylesheets/components/button.css
|
75
75
|
- app/assets/stylesheets/components/choices-overrides.css
|
76
|
+
- app/assets/stylesheets/components/input-checked.css
|
76
77
|
- app/assets/stylesheets/components/toast.css
|
77
78
|
- app/components/anchor/action_menu_component.html.erb
|
78
79
|
- app/components/anchor/action_menu_component.rb
|
@@ -93,11 +94,16 @@ files:
|
|
93
94
|
- app/components/anchor/breadcrumbs_component.rb
|
94
95
|
- app/components/anchor/button_component.html.erb
|
95
96
|
- app/components/anchor/button_component.rb
|
97
|
+
- app/components/anchor/check_box_collection_component.html.erb
|
98
|
+
- app/components/anchor/check_box_collection_component.rb
|
99
|
+
- app/components/anchor/check_box_component.html.erb
|
100
|
+
- app/components/anchor/check_box_component.rb
|
96
101
|
- app/components/anchor/component.rb
|
97
102
|
- app/components/anchor/copy_to_clipboard_component.en.yml
|
98
103
|
- app/components/anchor/copy_to_clipboard_component.html.erb
|
99
104
|
- app/components/anchor/copy_to_clipboard_component.rb
|
100
105
|
- app/components/anchor/copy_to_clipboard_controller.ts
|
106
|
+
- app/components/anchor/describable_input.rb
|
101
107
|
- app/components/anchor/dialog_component.html.erb
|
102
108
|
- app/components/anchor/dialog_component.rb
|
103
109
|
- app/components/anchor/dialog_controller.ts
|
@@ -120,6 +126,15 @@ files:
|
|
120
126
|
- app/components/anchor/loading_indicator_component.rb
|
121
127
|
- app/components/anchor/logo_component.html.erb
|
122
128
|
- app/components/anchor/logo_component.rb
|
129
|
+
- app/components/anchor/page/body_component.html.erb
|
130
|
+
- app/components/anchor/page/body_component.rb
|
131
|
+
- app/components/anchor/page/footer_component.en.yml
|
132
|
+
- app/components/anchor/page/footer_component.html.erb
|
133
|
+
- app/components/anchor/page/footer_component.rb
|
134
|
+
- app/components/anchor/page/header_component.html.erb
|
135
|
+
- app/components/anchor/page/header_component.rb
|
136
|
+
- app/components/anchor/page_component.html.erb
|
137
|
+
- app/components/anchor/page_component.rb
|
123
138
|
- app/components/anchor/panel/body_component.html.erb
|
124
139
|
- app/components/anchor/panel/body_component.rb
|
125
140
|
- app/components/anchor/panel/footer_component.html.erb
|
@@ -186,6 +201,11 @@ files:
|
|
186
201
|
- previews/anchor/link_component_preview.rb
|
187
202
|
- previews/anchor/loading_indicator_component_preview.rb
|
188
203
|
- previews/anchor/logo_component_preview.rb
|
204
|
+
- previews/anchor/page_component_preview.rb
|
205
|
+
- previews/anchor/page_component_preview/default.html.erb
|
206
|
+
- previews/anchor/page_component_preview/with_cancel_and_save_buttons.html.erb
|
207
|
+
- previews/anchor/page_component_preview/with_custom_page_header.html.erb
|
208
|
+
- previews/anchor/page_component_preview/with_done_button.html.erb
|
189
209
|
- previews/anchor/panel_component_preview.rb
|
190
210
|
- previews/anchor/panel_component_preview/with_banner.html.erb
|
191
211
|
- previews/anchor/preview.rb
|
@@ -197,6 +217,7 @@ files:
|
|
197
217
|
- previews/anchor/table_component_preview.rb
|
198
218
|
- previews/anchor/text_component_preview.rb
|
199
219
|
- previews/anchor/toast_component_preview.rb
|
220
|
+
- previews/forms/check_box_collection.html.erb
|
200
221
|
- previews/forms/default.html.erb
|
201
222
|
- previews/forms/radio_button_collection.html.erb
|
202
223
|
- previews/forms/with_icons.html.erb
|