anchor_view_components 0.33.0 → 0.34.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/app/assets/builds/anchor-view-components.css +1 -1
  4. data/app/assets/stylesheets/anchor-view-components.tailwind.css +1 -0
  5. data/app/assets/stylesheets/components/choices-overrides.css +20 -17
  6. data/app/assets/stylesheets/components/input-checked.css +5 -0
  7. data/app/components/anchor/check_box_collection_component.html.erb +1 -0
  8. data/app/components/anchor/check_box_collection_component.rb +35 -0
  9. data/app/components/anchor/check_box_component.html.erb +11 -0
  10. data/app/components/anchor/check_box_component.rb +53 -0
  11. data/app/components/anchor/describable_input.rb +55 -0
  12. data/app/components/anchor/page/body_component.html.erb +7 -0
  13. data/app/components/anchor/page/body_component.rb +6 -0
  14. data/app/components/anchor/page/footer_component.en.yml +5 -0
  15. data/app/components/anchor/page/footer_component.html.erb +12 -0
  16. data/app/components/anchor/page/footer_component.rb +41 -0
  17. data/app/components/anchor/page/header_component.html.erb +31 -0
  18. data/app/components/anchor/page/header_component.rb +48 -0
  19. data/app/components/anchor/page_component.html.erb +5 -0
  20. data/app/components/anchor/page_component.rb +9 -0
  21. data/app/components/anchor/radio_button_component.rb +5 -40
  22. data/app/components/anchor/typeahead_select_controller.ts +10 -1
  23. data/app/helpers/anchor/form_builder.rb +38 -1
  24. data/app/helpers/anchor/model_validators.rb +3 -1
  25. data/app/helpers/anchor/view_helper.rb +1 -0
  26. data/lib/anchor/view_components/version.rb +1 -1
  27. data/previews/anchor/forms_preview.rb +9 -0
  28. data/previews/anchor/page_component_preview/default.html.erb +33 -0
  29. data/previews/anchor/page_component_preview/with_cancel_and_save_buttons.html.erb +22 -0
  30. data/previews/anchor/page_component_preview/with_custom_page_header.html.erb +28 -0
  31. data/previews/anchor/page_component_preview/with_done_button.html.erb +28 -0
  32. data/previews/anchor/page_component_preview.rb +13 -0
  33. data/previews/forms/check_box_collection.html.erb +61 -0
  34. data/previews/forms/default.html.erb +6 -0
  35. data/previews/forms/radio_button_collection.html.erb +4 -8
  36. metadata +23 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d87613ed45f5679611e981a9a160a03a5a484c143caa491629ef9af20058ab7d
4
- data.tar.gz: 2d9948ac9852a1c4aa2895ab265b8e2a2c55678462d604de7e4d2c00f45c35af
3
+ metadata.gz: b9b25030c275ae49c959a38c97f01a402ec50187a959d47da7f56991460f1634
4
+ data.tar.gz: 5e6b00a0b509ac178df6e1a4cdfe9df858bd9449a07ee3a38c48a31d1ec85ac4
5
5
  SHA512:
6
- metadata.gz: da740f9cccc0b75e077d35b0a90c6d45916c40e243ee48fb01c41aacbeca7e1125706d00fd19d690ff8fe4588b628115a11f438d9d6251f8fdb5d1258781676a
7
- data.tar.gz: ebe1452e67e9dd742bd3ff5a393f6eaff13edbd8b582c7f0aec0c8f6a57ee76f692535f933927db1f5fe2568c1a19818bcfe46309679ee90111c0d1514f00263
6
+ metadata.gz: 263b68a6a485e0eed84164544b9529023c53f16c9aa45782a2993c97ecf99ada4c1343ce01474b812e0297349cc700f4bf5dd7c4b5e9f72677a56b97510c4f89
7
+ data.tar.gz: b1b87849037d8bc09452493e16a53bba369125d8793adbc23f1146aa5779c55a963fbe8da43f0a487da450579b1640987b88e3382fe75283bee47b0e01634e9e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.34.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 70e5b07: Handle form resets on typeahead select controller. Before this, the choices would get blank after a form reset.
8
+
9
+ ## 0.34.0
10
+
11
+ ### Minor Changes
12
+
13
+ - f3726f1: Add CheckBox and CheckBoxCollection Components
14
+ - 5b1fc5a: Add Page components
15
+
16
+ ### Patch Changes
17
+
18
+ - 24fee42: The styles for the Typeahead Select component now use values from Anchor’s theme, improving consistency with other components.
19
+ - 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.
20
+
3
21
  ## 0.33.0
4
22
 
5
23
  ### 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}
@@ -8,4 +8,5 @@
8
8
  @import "components/action-menu" layer(components);
9
9
  @import "components/button" layer(components);
10
10
  @import "components/choices-overrides" layer(components);
11
+ @import "components/input-checked" layer(components);
11
12
  @import "components/toast" layer(components);
@@ -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-radius: 4px;
23
- border: 1px solid #6b7280;
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
- font-size: 16px;
39
- background: #F5F6F7;
40
- color: #101112;
41
- border-radius: 4px;
42
- border: 1px solid #6b7280;
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
- content: "";
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
- margin-top: -2.5px;
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 #333 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,7 @@
1
+ <%= tag.div(content, **merge_options(wrapper_options,
2
+ class: [
3
+ Anchor::PageComponent::HORIZONTAL_PADDING_CLASS,
4
+ "py-6 grow",
5
+ ],
6
+ )
7
+ ) %>
@@ -0,0 +1,6 @@
1
+ module Anchor
2
+ module Page
3
+ class BodyComponent < Component
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ en:
2
+ cancel: Cancel
3
+ delete: Delete
4
+ done: Done
5
+ save: Save
@@ -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
@@ -0,0 +1,5 @@
1
+ <%= tag.div class: "flex flex-col min-h-screen" do %>
2
+ <%= header %>
3
+ <%= body %>
4
+ <%= footer %>
5
+ <% end %>
@@ -0,0 +1,9 @@
1
+ module Anchor
2
+ class PageComponent < Component
3
+ HORIZONTAL_PADDING_CLASS = "px-10".freeze
4
+
5
+ renders_one :header, Page::HeaderComponent
6
+ renders_one :body, Page::BodyComponent
7
+ renders_one :footer, Page::FooterComponent
8
+ end
9
+ 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-[18px]
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,
@@ -3,10 +3,19 @@ import Choices from "choices.js";
3
3
 
4
4
  export default class extends Controller<HTMLSelectElement> {
5
5
  initialize(): void {
6
- new Choices(this.element, {
6
+ const choices = new Choices(this.element, {
7
7
  allowHTML: false,
8
8
  removeItemButton: this.element.multiple,
9
9
  itemSelectText: "",
10
10
  });
11
+
12
+ const form = this.element.closest("form");
13
+
14
+ // Choices.js has a bug where the options disappear when the form is reset.
15
+ // More info: https://github.com/Choices-js/Choices/issues/1053
16
+ form?.addEventListener("reset", () => {
17
+ choices.destroy();
18
+ choices.init();
19
+ });
11
20
  }
12
21
  }
@@ -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? { _1.kind == :presence }
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)
@@ -15,6 +15,7 @@ module Anchor
15
15
  loading_indicator
16
16
  logo
17
17
  panel
18
+ page
18
19
  popover
19
20
  prose
20
21
  side_nav
@@ -1,5 +1,5 @@
1
1
  module Anchor
2
2
  module ViewComponents
3
- VERSION = "0.33.0".freeze
3
+ VERSION = "0.34.1".freeze
4
4
  end
5
5
  end
@@ -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,13 @@
1
+ module Anchor
2
+ class PageComponentPreview < ViewComponent::Preview
3
+ layout "plain"
4
+
5
+ def default; end
6
+
7
+ def with_custom_page_header; end
8
+
9
+ def with_done_button; end
10
+
11
+ def with_cancel_and_save_buttons; end
12
+ end
13
+ 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
- <%= tag.div do %>
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
- <%= tag.div do %>
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
- <%= tag.div do %>
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
- <%= tag.div do %>
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.33.0
4
+ version: 0.34.1
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-16 00:00:00.000000000 Z
11
+ date: 2023-11-23 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