aboutsummaryrefslogtreecommitdiffstats
path: root/resources/lib/codex/modules
diff options
context:
space:
mode:
authorEric Gardner <gardner.ec@gmail.com>2024-09-04 11:10:27 -0700
committerEric Gardner <gardner.ec@gmail.com>2024-09-04 11:11:34 -0700
commite429c4ac2d8a4ee3ed21b0c8f7fa045db0c1fc62 (patch)
treec7c3b4e9a73eaf9e84f45e3dcbe7530ba3e38dfd /resources/lib/codex/modules
parenta1dc207daac9314e81e894922e30dc430c66b91d (diff)
downloadmediawikicore-e429c4ac2d8a4ee3ed21b0c8f7fa045db0c1fc62.tar.gz
mediawikicore-e429c4ac2d8a4ee3ed21b0c8f7fa045db0c1fc62.zip
Update Codex from v1.11.1 to v1.12.0
Bug: T362651 Bug: T363515 Bug: T364441 Bug: T366831 Bug: T367032 Bug: T368022 Bug: T370504 Bug: T370997 Bug: T372419 Bug: T372420 Bug: T372614 Bug: T372811 Change-Id: I76a81086e4451383d3df839f8640f09744c8172c
Diffstat (limited to 'resources/lib/codex/modules')
-rw-r--r--resources/lib/codex/modules/CdxAccordion-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxButton-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxButtonGroup-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxCard-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxCheckbox-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxChipInput-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxChipInput-rtl.css2
-rw-r--r--resources/lib/codex/modules/CdxChipInput.cjs2
-rw-r--r--resources/lib/codex/modules/CdxChipInput.css2
-rw-r--r--resources/lib/codex/modules/CdxCombobox-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxCombobox.cjs2
-rw-r--r--resources/lib/codex/modules/CdxDialog-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxField-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxInfoChip-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxLabel-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxLookup-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxLookup.cjs2
-rw-r--r--resources/lib/codex/modules/CdxMenu-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxMenuButton-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxMenuItem-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxMenuItem-rtl.css2
-rw-r--r--resources/lib/codex/modules/CdxMenuItem.css2
-rw-r--r--resources/lib/codex/modules/CdxMessage-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxMessage-rtl.css2
-rw-r--r--resources/lib/codex/modules/CdxMessage.css2
-rw-r--r--resources/lib/codex/modules/CdxProgressBar-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxRadio-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxSearchInput-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxSearchResultTitle-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxSelect-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxTab-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxTable-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxTable-rtl.css2
-rw-r--r--resources/lib/codex/modules/CdxTable.cjs2
-rw-r--r--resources/lib/codex/modules/CdxTable.css2
-rw-r--r--resources/lib/codex/modules/CdxTabs-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxTabs.cjs2
-rw-r--r--resources/lib/codex/modules/CdxTextArea-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxTextInput-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxThumbnail-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxToggleButton-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxToggleButtonGroup-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxToggleSwitch-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxTooltip-bidi.css1
-rw-r--r--resources/lib/codex/modules/CdxTypeaheadSearch-bidi.css1
-rw-r--r--resources/lib/codex/modules/Icon-bidi.css1
-rw-r--r--resources/lib/codex/modules/manifest-bidi.json700
-rw-r--r--resources/lib/codex/modules/manifest-rtl.json10
-rw-r--r--resources/lib/codex/modules/manifest.json10
-rw-r--r--resources/lib/codex/modules/useOptionalModelWrapper.js1
50 files changed, 763 insertions, 17 deletions
diff --git a/resources/lib/codex/modules/CdxAccordion-bidi.css b/resources/lib/codex/modules/CdxAccordion-bidi.css
new file mode 100644
index 000000000000..cfdc2bafd632
--- /dev/null
+++ b/resources/lib/codex/modules/CdxAccordion-bidi.css
@@ -0,0 +1 @@
+.cdx-accordion{position:relative}[dir] .cdx-accordion{border-bottom:1px solid var(--border-color-subtle, #c8ccd1)}.cdx-accordion>summary{list-style:none;display:flex;gap:8px;word-break:break-word;white-space:normal}[dir] .cdx-accordion>summary{background-color:var(--background-color-transparent, transparent);border-width:1px;border-style:solid;border-color:var(--border-color-transparent, transparent);border-radius:0;padding:12px;transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s;transition-timing-function:ease}[dir] .cdx-accordion>summary:hover{background-color:var(--background-color-interactive-subtle, #f8f9fa);cursor:pointer}[dir] .cdx-accordion>summary:active{background-color:var(--background-color-interactive, #eaecf0)}.cdx-accordion>summary:focus-visible{outline:1px solid transparent}[dir] .cdx-accordion>summary:focus-visible{box-shadow:inset 0 0 0 2px var(--border-color-progressive, #36c)}[dir] .cdx-accordion>summary:focus:not(:active){border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-accordion>summary::-webkit-details-marker{display:none}.cdx-accordion .cdx-accordion__header{position:relative;font-size:1rem}[dir] .cdx-accordion .cdx-accordion__header{margin-top:0;margin-bottom:0;border-top:0;padding-top:0;padding-bottom:0}.cdx-accordion .cdx-accordion__header__title{display:flex;gap:8px;line-height:1.375}.cdx-accordion .cdx-accordion__header__description{color:var(--color-subtle, #54595d);display:flex;font-weight:400;line-height:1.375;pointer-events:none}.cdx-accordion__action.cdx-button{display:flex;align-items:center;position:absolute;top:0;height:calc(1.375em + 26px);font-size:1rem}[dir] .cdx-accordion__action.cdx-button{padding-right:12px;padding-left:12px}[dir=ltr] .cdx-accordion__action.cdx-button{right:0}[dir=rtl] .cdx-accordion__action.cdx-button{left:0}[dir] .cdx-accordion__action.cdx-button:hover{background-color:unset}.cdx-accordion__content{font-size:1rem}[dir] .cdx-accordion__content{padding:8px 12px 12px}.cdx-accordion>summary:before{content:"";min-width:16px;min-height:16px;width:1rem;height:1rem;display:inline-block;vertical-align:text-bottom;height:1.375em}[dir] .cdx-accordion>summary:before{transition-property:background-color,border-color,transform;transition-duration:.25s;transition-timing-function:ease}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-accordion>summary:before{background-position:center;background-repeat:no-repeat;background-size:max(1rem,16px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-accordion>summary:before{-webkit-mask-size:max(1rem,16px);mask-size:max(1rem,16px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-accordion>summary:before{filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}[dir] .cdx-accordion>summary:before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="m17.5 4.75-7.5 7.5-7.5-7.5L1 6.25l9 9 9-9z"/></svg>')}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-accordion>summary:before,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-accordion>summary:before,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-accordion>summary:before{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-accordion>summary:before{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="m17.5 4.75-7.5 7.5-7.5-7.5L1 6.25l9 9 9-9z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="m17.5 4.75-7.5 7.5-7.5-7.5L1 6.25l9 9 9-9z"/></svg>')}[dir] .cdx-accordion>summary:before{background-color:var(--color-base, #202122)}}[dir=ltr] .cdx-accordion[open]>summary:before{transform:rotate(-180deg)}[dir=rtl] .cdx-accordion[open]>summary:before{transform:rotate(180deg)}
diff --git a/resources/lib/codex/modules/CdxButton-bidi.css b/resources/lib/codex/modules/CdxButton-bidi.css
new file mode 100644
index 000000000000..4a27df02a1e6
--- /dev/null
+++ b/resources/lib/codex/modules/CdxButton-bidi.css
@@ -0,0 +1 @@
+.cdx-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;min-height:32px;max-width:28rem;font-family:inherit;font-size:inherit;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none}[dir] .cdx-button{margin:0;border-width:1px;border-style:solid;border-radius:2px;padding-right:11px;padding-left:11px;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-button--size-large{min-height:44px}[dir] .cdx-button--size-large{padding-right:15px;padding-left:15px}.cdx-button--icon-only{min-width:32px}[dir] .cdx-button--icon-only{padding-right:5px;padding-left:5px}.cdx-button--icon-only.cdx-button--size-large{min-width:44px}[dir] .cdx-button--icon-only.cdx-button--size-large{padding-right:11px;padding-left:11px}[dir] .cdx-button::-moz-focus-inner{border:0;padding:0}.cdx-button .cdx-button__icon,.cdx-button .cdx-icon{vertical-align:middle}.cdx-button .cdx-icon{color:inherit}.cdx-button--fake-button,.cdx-button--fake-button:hover,.cdx-button--fake-button:focus{text-decoration:none}.cdx-button:enabled,.cdx-button.cdx-button--fake-button--enabled{color:var(--color-base, #202122)}[dir] .cdx-button:enabled,[dir] .cdx-button.cdx-button--fake-button--enabled{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled .cdx-button__icon{background-color:var(--color-base, #202122)}}.cdx-button:enabled:hover,.cdx-button.cdx-button--fake-button--enabled:hover{color:var(--color-base--hover, #404244)}[dir] .cdx-button:enabled:hover,[dir] .cdx-button.cdx-button--fake-button--enabled:hover{background-color:var(--background-color-base, #fff);cursor:pointer}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled:hover .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled:hover .cdx-button__icon{background-color:var(--color-base--hover, #404244)}}.cdx-button:enabled:active,.cdx-button.cdx-button--fake-button--enabled:active,.cdx-button:enabled.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--is-active{color:var(--color-emphasized, #000)}[dir] .cdx-button:enabled:active,[dir] .cdx-button.cdx-button--fake-button--enabled:active,[dir] .cdx-button:enabled.cdx-button--is-active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--is-active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-interactive, #72777d)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled:active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled:active .cdx-button__icon,[dir] .cdx-button:enabled.cdx-button--is-active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--is-active .cdx-button__icon{background-color:var(--color-emphasized, #000)}}.cdx-button:enabled:focus,.cdx-button.cdx-button--fake-button--enabled:focus{outline:1px solid transparent}[dir] .cdx-button:enabled:focus:not(:active):not(.cdx-button--is-active),[dir] .cdx-button.cdx-button--fake-button--enabled:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-button:enabled.cdx-button--action-progressive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive{color:var(--color-progressive, #36c)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--action-progressive .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive .cdx-button__icon{background-color:var(--color-progressive, #36c)}}.cdx-button:enabled.cdx-button--action-progressive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:hover{color:var(--color-progressive--hover, #447ff5)}[dir] .cdx-button:enabled.cdx-button--action-progressive:hover,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:hover{border-color:var(--border-color-progressive--hover, #447ff5)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--action-progressive:hover .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:hover .cdx-button__icon{background-color:var(--color-progressive--hover, #447ff5)}}.cdx-button:enabled.cdx-button--action-progressive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:active,.cdx-button:enabled.cdx-button--action-progressive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive.cdx-button--is-active{color:var(--color-progressive--active, #2a4b8d)}[dir] .cdx-button:enabled.cdx-button--action-progressive:active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:active,[dir] .cdx-button:enabled.cdx-button--action-progressive.cdx-button--is-active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive.cdx-button--is-active{background-color:var(--background-color-progressive-subtle, #eaf3ff);border-color:var(--border-color-progressive--active, #2a4b8d)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--action-progressive:active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:active .cdx-button__icon,[dir] .cdx-button:enabled.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-progressive--active, #2a4b8d)}}.cdx-button:enabled.cdx-button--action-destructive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive{color:var(--color-destructive, #d73333)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--action-destructive .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive .cdx-button__icon{background-color:var(--color-destructive, #d73333)}}.cdx-button:enabled.cdx-button--action-destructive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:hover{color:var(--color-destructive--hover, #ff4242)}[dir] .cdx-button:enabled.cdx-button--action-destructive:hover,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:hover{border-color:var(--border-color-destructive--hover, #ff4242)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--action-destructive:hover .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:hover .cdx-button__icon{background-color:var(--color-destructive--hover, #ff4242)}}.cdx-button:enabled.cdx-button--action-destructive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:active,.cdx-button:enabled.cdx-button--action-destructive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive.cdx-button--is-active{color:var(--color-destructive--active, #b32424)}[dir] .cdx-button:enabled.cdx-button--action-destructive:active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:active,[dir] .cdx-button:enabled.cdx-button--action-destructive.cdx-button--is-active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive.cdx-button--is-active{background-color:var(--background-color-destructive-subtle, #fee7e6);border-color:var(--border-color-destructive--active, #b32424)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--action-destructive:active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:active .cdx-button__icon,[dir] .cdx-button:enabled.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-destructive--active, #b32424)}}[dir] .cdx-button:enabled.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active),[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-destructive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-destructive--focus, #36c)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive{color:var(--color-inverted-fixed, #fff)}[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive{background-color:var(--background-color-progressive, #36c);border-color:var(--border-color-progressive, #36c)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive .cdx-button__icon{background-color:var(--color-inverted-fixed, #fff)}}[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive:hover,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive:hover{background-color:var(--background-color-progressive--hover, #447ff5);border-color:var(--border-color-progressive--hover, #447ff5)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive:hover .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive:hover .cdx-button__icon{background-color:var(--color-inverted-fixed, #fff)}}[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive:active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive:active,[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive.cdx-button--is-active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive.cdx-button--is-active{background-color:var(--background-color-progressive--active, #2a4b8d);border-color:var(--border-color-progressive--active, #2a4b8d)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive:active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive:active .cdx-button__icon,[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-inverted-fixed, #fff)}}[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive:focus:not(:active):not(.cdx-button--is-active),[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c),inset 0 0 0 2px var(--box-shadow-color-inverted, #fff)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive{color:var(--color-inverted-fixed, #fff)}[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive{background-color:var(--background-color-destructive, #d73333);border-color:var(--border-color-destructive, #d73333)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive .cdx-button__icon{background-color:var(--color-inverted-fixed, #fff)}}[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive:hover,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive:hover{background-color:var(--background-color-destructive--hover, #ff4242);border-color:var(--border-color-destructive--hover, #ff4242)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive:hover .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive:hover .cdx-button__icon{background-color:var(--color-inverted-fixed, #fff)}}[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive:active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive:active,[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive.cdx-button--is-active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive.cdx-button--is-active{background-color:var(--background-color-destructive--active, #b32424);border-color:var(--border-color-destructive--active, #b32424)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive:active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive:active .cdx-button__icon,[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-inverted-fixed, #fff)}}[dir] .cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active),[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-destructive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-destructive--focus, #36c),inset 0 0 0 2px var(--box-shadow-color-inverted, #fff)}[dir] .cdx-button:enabled.cdx-button--weight-quiet,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet{background-color:var(--background-color-transparent, transparent);border-color:var(--border-color-transparent, transparent)}[dir] .cdx-button:enabled.cdx-button--weight-quiet:hover,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet:hover{background-color:var(--background-color-button-quiet--hover, rgba(0, 24, 73, .027))}.cdx-button:enabled.cdx-button--weight-quiet:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet:active,.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--is-active{color:var(--color-emphasized, #000)}[dir] .cdx-button:enabled.cdx-button--weight-quiet:active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet:active,[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--is-active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--is-active{background-color:var(--background-color-button-quiet--active, rgba(0, 24, 73, .082));border-color:var(--border-color-interactive, #72777d)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-quiet:active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet:active .cdx-button__icon,[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--is-active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--is-active .cdx-button__icon{background-color:var(--color-emphasized, #000)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive{color:var(--color-progressive, #36c)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive .cdx-button__icon{background-color:var(--color-progressive, #36c)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover{color:var(--color-progressive--hover, #447ff5)}[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover{background-color:var(--background-color-progressive-subtle, #eaf3ff)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover .cdx-button__icon{background-color:var(--color-progressive--hover, #447ff5)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active,.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active{color:var(--color-inverted-fixed, #fff)}[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active,[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active{background-color:var(--background-color-progressive--active, #2a4b8d);border-color:var(--border-color-progressive--active, #2a4b8d)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active .cdx-button__icon,[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-inverted, #fff)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive{color:var(--color-destructive, #d73333)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive .cdx-button__icon{background-color:var(--color-destructive, #d73333)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover{color:var(--color-destructive--hover, #ff4242)}[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover{background-color:var(--background-color-destructive-subtle, #fee7e6)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover .cdx-button__icon{background-color:var(--color-destructive--hover, #ff4242)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active,.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active{color:var(--color-inverted-fixed, #fff)}[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active,[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active{background-color:var(--background-color-destructive--active, #b32424);border-color:var(--border-color-destructive--active, #b32424)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active .cdx-button__icon,[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-inverted, #fff)}}[dir] .cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active),[dir] .cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-destructive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-destructive--focus, #36c)}.cdx-button:disabled,.cdx-button.cdx-button--fake-button--disabled{color:var(--color-inverted, #fff)}[dir] .cdx-button:disabled,[dir] .cdx-button.cdx-button--fake-button--disabled{background-color:var(--background-color-disabled, #c8ccd1);border-color:var(--border-color-transparent, transparent)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:disabled .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--disabled .cdx-button__icon{background-color:var(--color-inverted, #fff)}}.cdx-button:disabled.cdx-button--weight-quiet,.cdx-button.cdx-button--fake-button--disabled.cdx-button--weight-quiet{color:var(--color-disabled, #72777d)}[dir] .cdx-button:disabled.cdx-button--weight-quiet,[dir] .cdx-button.cdx-button--fake-button--disabled.cdx-button--weight-quiet{background-color:var(--background-color-transparent, transparent)}@supports ((-webkit-mask-image: none) or (mask-image: none)){[dir] .cdx-button:disabled.cdx-button--weight-quiet .cdx-button__icon,[dir] .cdx-button.cdx-button--fake-button--disabled.cdx-button--weight-quiet .cdx-button__icon{background-color:var(--color-disabled, #72777d)}}
diff --git a/resources/lib/codex/modules/CdxButtonGroup-bidi.css b/resources/lib/codex/modules/CdxButtonGroup-bidi.css
new file mode 100644
index 000000000000..3143491b9600
--- /dev/null
+++ b/resources/lib/codex/modules/CdxButtonGroup-bidi.css
@@ -0,0 +1 @@
+.cdx-button-group{position:relative;z-index:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;overflow:hidden}[dir] .cdx-button-group{border-radius:2px;padding-top:1px}[dir=ltr] .cdx-button-group{padding-left:1px}[dir=rtl] .cdx-button-group{padding-right:1px}.cdx-button-group .cdx-button{position:relative;z-index:1}[dir] .cdx-button-group .cdx-button{margin-top:-1px;border-radius:0}[dir=ltr] .cdx-button-group .cdx-button{margin-left:-1px}[dir=rtl] .cdx-button-group .cdx-button{margin-right:-1px}.cdx-button-group .cdx-button:enabled:active,.cdx-button-group .cdx-button:enabled:focus{z-index:3}.cdx-button-group .cdx-button:disabled{z-index:0}[dir=ltr] .cdx-button-group .cdx-button:disabled{box-shadow:0 -1px 0 0 var(--box-shadow-color-inverted, #fff),-1px 0 0 0 var(--box-shadow-color-inverted, #fff)}[dir=rtl] .cdx-button-group .cdx-button:disabled{box-shadow:0 -1px 0 0 var(--box-shadow-color-inverted, #fff),1px 0 0 0 var(--box-shadow-color-inverted, #fff)}
diff --git a/resources/lib/codex/modules/CdxCard-bidi.css b/resources/lib/codex/modules/CdxCard-bidi.css
new file mode 100644
index 000000000000..5f781da5cc59
--- /dev/null
+++ b/resources/lib/codex/modules/CdxCard-bidi.css
@@ -0,0 +1 @@
+.cdx-card{display:flex;align-items:flex-start;position:relative}[dir] .cdx-card{background-color:var(--background-color-base, #fff);border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px;padding:12px}[dir] .cdx-card--is-link{transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-card--is-link,.cdx-card--is-link:hover,.cdx-card--is-link:focus{text-decoration:none}[dir] .cdx-card--is-link:hover{border-color:var(--border-color-interactive, #72777d)}.cdx-card--is-link:focus{outline:1px solid transparent}[dir] .cdx-card--is-link:focus{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c),inset 0 0 0 2px var(--box-shadow-color-inverted, #fff)}.cdx-card--title-only{align-items:center}.cdx-card__text{display:flex;flex-direction:column;line-height:1.5714285;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-card__text__title{color:var(--color-base, #202122);font-weight:700;line-height:1.4285714}.cdx-card__text__description,.cdx-card__text__supporting-text,.cdx-card__text__description .cdx-icon,.cdx-card__text__supporting-text .cdx-icon{color:var(--color-subtle, #54595d)}[dir] .cdx-card__text__description{margin-top:4px}.cdx-card__text__supporting-text{font-size:.875rem}[dir] .cdx-card__text__supporting-text{margin-top:8px}[dir=ltr] .cdx-card__thumbnail.cdx-thumbnail{margin-right:12px}[dir=rtl] .cdx-card__thumbnail.cdx-thumbnail{margin-left:12px}.cdx-card__thumbnail.cdx-thumbnail .cdx-thumbnail__placeholder,.cdx-card__thumbnail.cdx-thumbnail .cdx-thumbnail__image{width:3rem;height:3rem}.cdx-card .cdx-card__icon{color:inherit}[dir=ltr] .cdx-card .cdx-card__icon{margin-right:12px}[dir=rtl] .cdx-card .cdx-card__icon{margin-left:12px}
diff --git a/resources/lib/codex/modules/CdxCheckbox-bidi.css b/resources/lib/codex/modules/CdxCheckbox-bidi.css
new file mode 100644
index 000000000000..4880f4cbf9eb
--- /dev/null
+++ b/resources/lib/codex/modules/CdxCheckbox-bidi.css
@@ -0,0 +1 @@
+.cdx-checkbox{position:relative;min-width:20px;min-height:20px}.cdx-checkbox__wrapper{display:flex}.cdx-checkbox:not(.cdx-checkbox--inline){display:flex;flex-direction:column}[dir] .cdx-checkbox:not(.cdx-checkbox--inline){margin-bottom:12px}[dir] .cdx-checkbox:not(.cdx-checkbox--inline):last-child{margin-bottom:0}.cdx-checkbox--inline{display:inline-flex;white-space:nowrap}[dir=ltr] .cdx-checkbox--inline{margin-right:16px}[dir=rtl] .cdx-checkbox--inline{margin-left:16px}[dir=ltr] .cdx-checkbox--inline:last-child{margin-right:0}[dir=rtl] .cdx-checkbox--inline:last-child{margin-left:0}.cdx-checkbox__label,.cdx-checkbox__label.cdx-label{display:inline-flex;position:relative;z-index:0;line-height:1.4285714}[dir=ltr] .cdx-checkbox__label,[dir=ltr] .cdx-checkbox__label.cdx-label{padding-left:calc(1.25rem + 8px)}[dir=rtl] .cdx-checkbox__label,[dir=rtl] .cdx-checkbox__label.cdx-label{padding-right:calc(1.25rem + 8px)}[dir] .cdx-checkbox__label.cdx-label{padding-bottom:0}.cdx-checkbox__label.cdx-label .cdx-label__label__text{font-weight:400}.cdx-checkbox--inline .cdx-checkbox__label{display:inline}.cdx-checkbox__icon{position:absolute;box-sizing:border-box;min-width:20px;min-height:20px;width:1.25rem;height:1.25rem}[dir] .cdx-checkbox__icon{background-color:var(--background-color-base-fixed, #fff);border-width:1px;border-style:solid;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}[dir=ltr] .cdx-checkbox__icon{left:0}[dir=rtl] .cdx-checkbox__icon{right:0}.cdx-checkbox__input{opacity:0;position:absolute;z-index:1;min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;font-size:inherit}[dir] .cdx-checkbox__input{margin:0;cursor:inherit}[dir=ltr] .cdx-checkbox__input{left:0}[dir=rtl] .cdx-checkbox__input{right:0}[dir] .cdx-checkbox:hover>.cdx-checkbox__input:enabled,[dir] .cdx-checkbox:hover>.cdx-checkbox__input:enabled~.cdx-label .cdx-label__label,[dir] .cdx-checkbox:hover>.cdx-checkbox__input:enabled~.cdx-checkbox__label:not(.cdx-label){cursor:pointer}[dir] .cdx-checkbox__custom-input:not(.cdx-checkbox__custom-input--inline){padding-top:6px}[dir=ltr] .cdx-checkbox__custom-input:not(.cdx-checkbox__custom-input--inline){padding-left:calc(1.25rem + 8px)}[dir=rtl] .cdx-checkbox__custom-input:not(.cdx-checkbox__custom-input--inline){padding-right:calc(1.25rem + 8px)}[dir] .cdx-checkbox__icon{background-size:0 0;border-radius:2px}.cdx-checkbox__input:indeterminate+.cdx-checkbox__icon:before{content:" ";position:absolute;top:calc(50% - .5px);height:2px}[dir] .cdx-checkbox__input:indeterminate+.cdx-checkbox__icon:before{background-color:var(--background-color-base-fixed, #fff);right:3px;left:3px}.cdx-checkbox__input:checked:not(:indeterminate)+.cdx-checkbox__icon:before{content:" ";position:absolute;width:100%;height:100%}[dir] .cdx-checkbox__input:checked:not(:indeterminate)+.cdx-checkbox__icon:before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><path fill="%23fff" d="M7 14.17L2.83 10l-1.41 1.41L7 17 19 5l-1.41-1.42z"/></svg>');background-position:center;background-repeat:no-repeat;background-size:1rem 1rem}[dir] .cdx-checkbox__input:enabled+.cdx-checkbox__icon{border-color:var(--border-color-interactive, #72777d)}[dir] .cdx-checkbox__input:enabled:hover+.cdx-checkbox__icon{border-color:var(--border-color-progressive--hover, #447ff5)}[dir] .cdx-checkbox__input:enabled:active+.cdx-checkbox__icon{background-color:var(--background-color-progressive--active, #2a4b8d);border-color:var(--border-color-progressive--active, #2a4b8d)}.cdx-checkbox__input:enabled:focus:not(:active)+.cdx-checkbox__icon{outline:1px solid transparent}[dir] .cdx-checkbox__input:enabled:focus:not(:active)+.cdx-checkbox__icon{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}[dir] .cdx-checkbox__input:enabled:checked+.cdx-checkbox__icon,[dir] .cdx-checkbox__input:enabled:indeterminate+.cdx-checkbox__icon{background-color:var(--background-color-input-binary--checked, #36c);border-color:var(--border-color-progressive, #36c)}[dir] .cdx-checkbox__input:enabled:checked:hover+.cdx-checkbox__icon,[dir] .cdx-checkbox__input:enabled:indeterminate:hover+.cdx-checkbox__icon{background-color:var(--background-color-progressive--hover, #447ff5);border-color:var(--border-color-progressive--hover, #447ff5)}[dir] .cdx-checkbox__input:enabled:checked:active+.cdx-checkbox__icon,[dir] .cdx-checkbox__input:enabled:indeterminate:active+.cdx-checkbox__icon{background-color:var(--background-color-progressive--active, #2a4b8d);border-color:var(--border-color-progressive--active, #2a4b8d)}[dir] .cdx-checkbox__input:enabled:checked:focus:not(:active):not(:hover)+.cdx-checkbox__icon,[dir] .cdx-checkbox__input:enabled:indeterminate:focus:not(:active):not(:hover)+.cdx-checkbox__icon{background-color:var(--background-color-input-binary--checked, #36c);border-color:var(--border-color-progressive, #36c)}[dir] .cdx-checkbox__input:enabled:checked:focus:not(:active)+.cdx-checkbox__icon,[dir] .cdx-checkbox__input:enabled:indeterminate:focus:not(:active)+.cdx-checkbox__icon{box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c),inset 0 0 0 2px var(--box-shadow-color-inverted, #fff)}[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled+.cdx-checkbox__icon{border-color:var(--border-color-error, #b32424)}[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:hover+.cdx-checkbox__icon{border-color:var(--border-color-error--hover, #ff4242)}[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:active+.cdx-checkbox__icon{background-color:var(--background-color-error--active, #b32424);border-color:var(--border-color-transparent, transparent)}[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:focus+.cdx-checkbox__icon{border-color:var(--border-color-progressive--focus, #36c)}[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:checked+.cdx-checkbox__icon,[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:indeterminate+.cdx-checkbox__icon{background-color:var(--background-color-error, #d73333);border-color:var(--border-color-transparent, transparent)}[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:checked:hover+.cdx-checkbox__icon,[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:indeterminate:hover+.cdx-checkbox__icon{background-color:var(--background-color-error--hover, #ff4242);border-color:var(--border-color-error--hover, #ff4242)}[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:checked:active+.cdx-checkbox__icon,[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:indeterminate:active+.cdx-checkbox__icon{background-color:var(--background-color-error--active, #b32424);border-color:var(--border-color-transparent, transparent)}[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:checked:focus:not(:active)+.cdx-checkbox__icon,[dir] .cdx-checkbox--status-error .cdx-checkbox__input:enabled:indeterminate:focus:not(:active)+.cdx-checkbox__icon{background-color:var(--background-color-error, #d73333);border-color:var(--border-color-progressive--focus, #36c)}[dir] .cdx-checkbox__input:disabled+.cdx-checkbox__icon{background-color:var(--background-color-disabled, #c8ccd1);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-checkbox__input:disabled~.cdx-checkbox__label,.cdx-checkbox__input:disabled~.cdx-checkbox__label.cdx-label{color:var(--color-disabled, #72777d)}
diff --git a/resources/lib/codex/modules/CdxChipInput-bidi.css b/resources/lib/codex/modules/CdxChipInput-bidi.css
new file mode 100644
index 000000000000..a523c8cae0a2
--- /dev/null
+++ b/resources/lib/codex/modules/CdxChipInput-bidi.css
@@ -0,0 +1 @@
+.cdx-input-chip{color:var(--color-base, #202122);display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:32rem;font-size:.875rem;line-height:1.5714285}[dir] .cdx-input-chip{background-color:var(--background-color-interactive-subtle, #f8f9fa);border:1px solid var(--border-color-subtle, #c8ccd1);border-radius:9999px}[dir=ltr] .cdx-input-chip{padding:0 0 0 8px}[dir=rtl] .cdx-input-chip{padding:0 8px 0 0}[dir] .cdx-input-chip:not(.cdx-input-chip--disabled){transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}[dir] .cdx-input-chip:not(.cdx-input-chip--disabled):hover{background-color:var(--background-color-base, #fff);cursor:pointer}.cdx-input-chip:not(.cdx-input-chip--disabled):focus{outline:1px solid transparent}[dir] .cdx-input-chip:not(.cdx-input-chip--disabled):active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-interactive, #72777d)}[dir] .cdx-input-chip:not(.cdx-input-chip--disabled):focus:not(:active){border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-input-chip--disabled{color:var(--color-inverted, #fff)}[dir] .cdx-input-chip--disabled{background-color:var(--background-color-disabled, #c8ccd1);border-color:var(--border-color-transparent, transparent)}.cdx-input-chip--disabled .cdx-icon{color:var(--color-inverted, #fff)}.cdx-input-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-input-chip__button.cdx-button{min-width:20px;min-height:20px;font-size:.75rem}[dir] .cdx-input-chip__button.cdx-button{border-radius:9999px;padding-right:2px;padding-left:2px}[dir=ltr] .cdx-input-chip__button.cdx-button{margin-right:1px}[dir=rtl] .cdx-input-chip__button.cdx-button{margin-left:1px}.cdx-chip-input__chips,.cdx-chip-input__separate-input{box-sizing:border-box;min-width:256px;min-height:32px;line-height:1.4285714}[dir] .cdx-chip-input__chips,[dir] .cdx-chip-input__separate-input{border-width:1px;border-style:solid;border-radius:2px;padding:3px 8px}.cdx-chip-input__chips{display:flex;flex:1 auto;flex-flow:wrap;gap:8px}.cdx-chip-input__input{color:var(--color-base, #202122);flex-grow:inherit;font-family:inherit;font-size:inherit;line-height:1}[dir] .cdx-chip-input__input{border:0}.cdx-chip-input__input:focus{outline:1px solid transparent}.cdx-chip-input__input::placeholder{color:var(--color-placeholder, #72777d);opacity:1}[dir] .cdx-chip-input--has-separate-input .cdx-chip-input__chips{margin-bottom:-1px;border-bottom-left-radius:0;border-bottom-right-radius:0}[dir] .cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-top-left-radius:0;border-top-right-radius:0}.cdx-chip-input__aria-status{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;overflow:hidden}[dir] .cdx-chip-input__aria-status{margin:-1px;border:0;padding:0}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips,[dir] .cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{border-color:var(--border-color-base, #a2a9b1);box-shadow:inset 0 0 0 1px var(--box-shadow-color-transparent, transparent);transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips .cdx-chip-input__input,[dir] .cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input .cdx-chip-input__input{background-color:var(--background-color-base, #fff)}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{background-color:var(--background-color-base, #fff)}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips{background-color:var(--background-color-base, #fff)}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__chips{background-color:var(--background-color-interactive-subtle, #f8f9fa)}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,[dir] .cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-interactive, #72777d)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{outline:1px solid transparent}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,[dir] .cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{color:var(--color-error, #d73333)}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,[dir] .cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-color:var(--border-color-error, #b32424)}[dir] .cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,[dir] .cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-error--hover, #ff4242)}[dir] .cdx-chip-input--disabled .cdx-chip-input__chips,[dir] .cdx-chip-input--disabled .cdx-chip-input__separate-input{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-chip-input--disabled .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input--disabled .cdx-chip-input__separate-input .cdx-chip-input__input{color:var(--color-disabled, #72777d);-webkit-text-fill-color:var(--color-disabled, #72777d)}
diff --git a/resources/lib/codex/modules/CdxChipInput-rtl.css b/resources/lib/codex/modules/CdxChipInput-rtl.css
index d2ee6ade3425..ff3bd1ac30d9 100644
--- a/resources/lib/codex/modules/CdxChipInput-rtl.css
+++ b/resources/lib/codex/modules/CdxChipInput-rtl.css
@@ -1 +1 @@
-.cdx-input-chip{background-color:var(--background-color-interactive-subtle, #f8f9fa);color:var(--color-base, #202122);display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:32rem;border:1px solid var(--border-color-subtle, #c8ccd1);border-radius:9999px;padding:0 8px 0 0;font-size:.875rem;line-height:1.5714285}.cdx-input-chip:not(.cdx-input-chip--disabled){transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-input-chip:not(.cdx-input-chip--disabled):hover{background-color:var(--background-color-base, #fff);cursor:pointer}.cdx-input-chip:not(.cdx-input-chip--disabled):focus{outline:1px solid transparent}.cdx-input-chip:not(.cdx-input-chip--disabled):active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-interactive, #72777d)}.cdx-input-chip:not(.cdx-input-chip--disabled):focus:not(:active){border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-input-chip--disabled{background-color:var(--background-color-disabled, #c8ccd1);color:var(--color-inverted, #fff);border-color:var(--border-color-transparent, transparent)}.cdx-input-chip--disabled .cdx-icon{color:var(--color-inverted, #fff)}.cdx-input-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-input-chip__button.cdx-button{min-width:20px;min-height:20px;margin-left:1px;border-radius:9999px;padding-left:2px;padding-right:2px;font-size:.75rem}.cdx-chip-input__chips,.cdx-chip-input__separate-input{box-sizing:border-box;min-width:256px;min-height:32px;border-width:1px;border-style:solid;border-radius:2px;padding:3px 8px;line-height:1.4285714}.cdx-chip-input__chips{display:flex;flex:1 auto;flex-flow:wrap;gap:8px}.cdx-chip-input__input{color:var(--color-base, #202122);flex-grow:inherit;border:0;font-family:inherit;font-size:inherit;line-height:1}.cdx-chip-input__input:focus{outline:1px solid transparent}.cdx-chip-input__input::placeholder{color:var(--color-placeholder, #72777d);opacity:1}.cdx-chip-input--has-separate-input .cdx-chip-input__chips{margin-bottom:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0}.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-top-right-radius:0;border-top-left-radius:0}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{border-color:var(--border-color-base, #a2a9b1);box-shadow:inset 0 0 0 1px var(--box-shadow-color-transparent, transparent);transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input .cdx-chip-input__input{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__chips{background-color:var(--background-color-interactive-subtle, #f8f9fa)}.cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-interactive, #72777d)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c);outline:1px solid transparent}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{color:var(--color-error, #d73333);border-color:var(--border-color-error, #b32424)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-error--hover, #ff4242)}.cdx-chip-input--disabled .cdx-chip-input__chips,.cdx-chip-input--disabled .cdx-chip-input__separate-input{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-chip-input--disabled .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input--disabled .cdx-chip-input__separate-input .cdx-chip-input__input{color:var(--color-disabled, #72777d);-webkit-text-fill-color:var(--color-disabled, #72777d)}
+.cdx-input-chip{background-color:var(--background-color-interactive-subtle, #f8f9fa);color:var(--color-base, #202122);display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:32rem;border:1px solid var(--border-color-subtle, #c8ccd1);border-radius:9999px;padding:0 8px 0 0;font-size:.875rem;line-height:1.5714285}.cdx-input-chip:not(.cdx-input-chip--disabled){transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-input-chip:not(.cdx-input-chip--disabled):hover{background-color:var(--background-color-base, #fff);cursor:pointer}.cdx-input-chip:not(.cdx-input-chip--disabled):focus{outline:1px solid transparent}.cdx-input-chip:not(.cdx-input-chip--disabled):active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-interactive, #72777d)}.cdx-input-chip:not(.cdx-input-chip--disabled):focus:not(:active){border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-input-chip--disabled{background-color:var(--background-color-disabled, #c8ccd1);color:var(--color-inverted, #fff);border-color:var(--border-color-transparent, transparent)}.cdx-input-chip--disabled .cdx-icon{color:var(--color-inverted, #fff)}.cdx-input-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-input-chip__button.cdx-button{min-width:20px;min-height:20px;margin-left:1px;border-radius:9999px;padding-left:2px;padding-right:2px;font-size:.75rem}.cdx-chip-input__chips,.cdx-chip-input__separate-input{box-sizing:border-box;min-width:256px;min-height:32px;border-width:1px;border-style:solid;border-radius:2px;padding:3px 8px;line-height:1.4285714}.cdx-chip-input__chips{display:flex;flex:1 auto;flex-flow:wrap;gap:8px}.cdx-chip-input__input{color:var(--color-base, #202122);flex-grow:inherit;border:0;font-family:inherit;font-size:inherit;line-height:1}.cdx-chip-input__input:focus{outline:1px solid transparent}.cdx-chip-input__input::placeholder{color:var(--color-placeholder, #72777d);opacity:1}.cdx-chip-input--has-separate-input .cdx-chip-input__chips{margin-bottom:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0}.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-top-right-radius:0;border-top-left-radius:0}.cdx-chip-input__aria-status{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{border-color:var(--border-color-base, #a2a9b1);box-shadow:inset 0 0 0 1px var(--box-shadow-color-transparent, transparent);transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input .cdx-chip-input__input{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__chips{background-color:var(--background-color-interactive-subtle, #f8f9fa)}.cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-interactive, #72777d)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c);outline:1px solid transparent}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{color:var(--color-error, #d73333);border-color:var(--border-color-error, #b32424)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-error--hover, #ff4242)}.cdx-chip-input--disabled .cdx-chip-input__chips,.cdx-chip-input--disabled .cdx-chip-input__separate-input{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-chip-input--disabled .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input--disabled .cdx-chip-input__separate-input .cdx-chip-input__input{color:var(--color-disabled, #72777d);-webkit-text-fill-color:var(--color-disabled, #72777d)}
diff --git a/resources/lib/codex/modules/CdxChipInput.cjs b/resources/lib/codex/modules/CdxChipInput.cjs
index bcb362f73e6a..a4f3527fb057 100644
--- a/resources/lib/codex/modules/CdxChipInput.cjs
+++ b/resources/lib/codex/modules/CdxChipInput.cjs
@@ -1 +1 @@
-"use strict";var w=(e,o,p)=>new Promise((v,d)=>{var c=u=>{try{n(p.next(u))}catch(a){d(a)}},i=u=>{try{n(p.throw(u))}catch(a){d(a)}},n=u=>u.done?v(u.value):Promise.resolve(u.value).then(c,i);n((p=p.apply(e,o)).next())});const t=require("vue"),T=require("./CdxButton.cjs"),g=require("./Icon.js"),z=require("./useI18n.cjs"),I=require("./_plugin-vue_export-helper.js"),y=require("./constants.js"),L=require("./useSplitAttributes.cjs"),O=require("./useFieldData.cjs"),M=require("./useComputedDirection.cjs"),U=t.defineComponent({name:"CdxInputChip",components:{CdxButton:T,CdxIcon:g.CdxIcon},props:{icon:{type:[String,Object],default:null},disabled:{type:Boolean,default:!1}},expose:["focus"],emits:["remove-chip","click-chip","arrow-left","arrow-right"],setup(e,{emit:o}){const p=t.ref(),v=t.computed(()=>({"cdx-input-chip--disabled":e.disabled})),d=z("cdx-input-chip-aria-description","Press Enter to edit or Delete to remove");function c(i){var n;switch(i.key){case"Enter":o("click-chip"),i.preventDefault(),i.stopPropagation();break;case"Escape":(n=p.value)==null||n.blur(),i.preventDefault(),i.stopPropagation();break;case"Backspace":case"Delete":o("remove-chip",i.key),i.preventDefault(),i.stopPropagation();break;case"ArrowLeft":o("arrow-left"),i.preventDefault(),i.stopPropagation();break;case"ArrowRight":o("arrow-right"),i.preventDefault(),i.stopPropagation();break}}return{rootElement:p,rootClasses:v,ariaDescription:d,onKeydown:c,cdxIconClose:g.X3}},methods:{focus(){this.$refs.rootElement.focus()}}}),j=["aria-description"],H={class:"cdx-input-chip__text"};function X(e,o,p,v,d,c){const i=t.resolveComponent("cdx-icon"),n=t.resolveComponent("cdx-button");return t.openBlock(),t.createElementBlock("div",{ref:"rootElement",class:t.normalizeClass(["cdx-input-chip",e.rootClasses]),tabindex:"0",role:"option","aria-description":e.ariaDescription,onKeydown:o[1]||(o[1]=(...u)=>e.onKeydown&&e.onKeydown(...u)),onClick:o[2]||(o[2]=u=>e.$emit("click-chip"))},[e.icon?(t.openBlock(),t.createBlock(i,{key:0,icon:e.icon,size:"small"},null,8,["icon"])):t.createCommentVNode("v-if",!0),t.createElementVNode("span",H,[t.renderSlot(e.$slots,"default")]),t.createVNode(n,{class:"cdx-input-chip__button",weight:"quiet",tabindex:"-1","aria-hidden":"true",disabled:e.disabled,onClick:o[0]||(o[0]=t.withModifiers(u=>e.$emit("remove-chip","button"),["stop"]))},{default:t.withCtx(()=>[t.createVNode(i,{icon:e.cdxIconClose,size:"x-small"},null,8,["icon"])]),_:1},8,["disabled"])],42,j)}const G=I._export_sfc(U,[["render",X]]),J=y.makeStringTypeValidator(y.ValidationStatusTypes),Q=t.defineComponent({name:"CdxChipInput",components:{CdxInputChip:G},inheritAttrs:!1,props:{inputChips:{type:Array,required:!0},separateInput:{type:Boolean,default:!1},status:{type:String,default:"default",validator:J},disabled:{type:Boolean,default:!1}},emits:["update:input-chips"],setup(e,{emit:o,attrs:p}){const v=t.ref(),d=M(v),c=t.ref(),i=t.ref(""),n=t.ref("default"),u=t.computed(()=>n.value==="error"||e.status==="error"?"error":"default"),{computedDisabled:a,computedStatus:B}=O(t.toRef(e,"disabled"),u),C=t.ref(!1),D=t.computed(()=>({"cdx-chip-input--has-separate-input":e.separateInput,["cdx-chip-input--status-".concat(B.value)]:!0,"cdx-chip-input--focused":C.value,"cdx-chip-input--disabled":a.value})),{rootClasses:$,rootStyle:V,otherAttrs:E}=L(p,D),m=[];function F(s,r){s!==null&&(m[r]=s)}const h=()=>{c.value.focus()};function k(){e.inputChips.find(s=>s.value===i.value)?n.value="error":i.value.length>0&&(o("update:input-chips",e.inputChips.concat({value:i.value})),i.value="")}function b(s){o("update:input-chips",e.inputChips.filter(r=>r.value!==s.value))}function A(s,r){const f=d.value==="ltr"&&s==="left"||d.value==="rtl"&&s==="right"?-1:1,l=r+f;if(!(l<0)){if(l>=e.inputChips.length){h();return}m[l].focus()}}function S(s){return w(this,null,function*(){k(),yield t.nextTick(),b(s),i.value=s.value,h()})}function R(s,r,f){if(f==="button")h();else if(f==="Backspace"){const l=r===0?1:r-1;l<e.inputChips.length?m[l].focus():h()}else if(f==="Delete"){const l=r+1;l<e.inputChips.length?m[l].focus():h()}b(s)}function q(s){var f,l;const r=d.value==="rtl"?"ArrowRight":"ArrowLeft";switch(s.key){case"Enter":if(i.value.length>0){k(),s.preventDefault(),s.stopPropagation();return}break;case"Escape":(f=c.value)==null||f.blur(),s.preventDefault(),s.stopPropagation();return;case"Backspace":case r:if(((l=c.value)==null?void 0:l.selectionStart)===0&&c.value.selectionEnd===0&&e.inputChips.length>0){m[e.inputChips.length-1].focus(),s.preventDefault(),s.stopPropagation();return}break}}function K(){C.value=!0}function P(){C.value=!1}function N(s){var r;(r=v.value)!=null&&r.contains(s.relatedTarget)||k()}return t.watch(t.toRef(e,"inputChips"),s=>{const r=s.find(f=>f.value===i.value);n.value=r?"error":"default"}),t.watch(i,()=>{n.value==="error"&&(n.value="default")}),{rootElement:v,input:c,inputValue:i,rootClasses:$,rootStyle:V,otherAttrs:E,assignChipTemplateRef:F,handleChipClick:S,handleChipRemove:R,moveChipFocus:A,onInputKeydown:q,focusInput:h,onInputFocus:K,onInputBlur:P,onFocusOut:N,computedDisabled:a}}}),W={class:"cdx-chip-input__chips",role:"listbox","aria-orientation":"horizontal"},Y=["disabled"],Z={key:0,class:"cdx-chip-input__separate-input"},x=["disabled"];function _(e,o,p,v,d,c){const i=t.resolveComponent("cdx-input-chip");return t.openBlock(),t.createElementBlock("div",{ref:"rootElement",class:t.normalizeClass(["cdx-chip-input",e.rootClasses]),style:t.normalizeStyle(e.rootStyle),onClick:o[8]||(o[8]=(...n)=>e.focusInput&&e.focusInput(...n)),onFocusout:o[9]||(o[9]=(...n)=>e.onFocusOut&&e.onFocusOut(...n))},[t.createElementVNode("div",W,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.inputChips,(n,u)=>(t.openBlock(),t.createBlock(i,{key:n.value,ref_for:!0,ref:a=>e.assignChipTemplateRef(a,u),class:"cdx-chip-input__item",icon:n.icon,disabled:e.computedDisabled,onClickChip:a=>e.handleChipClick(n),onRemoveChip:a=>e.handleChipRemove(n,u,a),onArrowLeft:a=>e.moveChipFocus("left",u),onArrowRight:a=>e.moveChipFocus("right",u)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(n.value),1)]),_:2},1032,["icon","disabled","onClickChip","onRemoveChip","onArrowLeft","onArrowRight"]))),128)),e.separateInput?t.createCommentVNode("v-if",!0):t.withDirectives((t.openBlock(),t.createElementBlock("input",t.mergeProps({key:0,ref:"input","onUpdate:modelValue":o[0]||(o[0]=n=>e.inputValue=n),class:"cdx-chip-input__input",disabled:e.computedDisabled},e.otherAttrs,{onBlur:o[1]||(o[1]=(...n)=>e.onInputBlur&&e.onInputBlur(...n)),onFocus:o[2]||(o[2]=(...n)=>e.onInputFocus&&e.onInputFocus(...n)),onKeydown:o[3]||(o[3]=(...n)=>e.onInputKeydown&&e.onInputKeydown(...n))}),null,16,Y)),[[t.vModelDynamic,e.inputValue]])]),e.separateInput?(t.openBlock(),t.createElementBlock("div",Z,[t.withDirectives(t.createElementVNode("input",t.mergeProps({ref:"input","onUpdate:modelValue":o[4]||(o[4]=n=>e.inputValue=n),class:"cdx-chip-input__input",disabled:e.computedDisabled},e.otherAttrs,{onBlur:o[5]||(o[5]=(...n)=>e.onInputBlur&&e.onInputBlur(...n)),onFocus:o[6]||(o[6]=(...n)=>e.onInputFocus&&e.onInputFocus(...n)),onKeydown:o[7]||(o[7]=(...n)=>e.onInputKeydown&&e.onInputKeydown(...n))}),null,16,x),[[t.vModelDynamic,e.inputValue]])])):t.createCommentVNode("v-if",!0)],38)}const ee=I._export_sfc(Q,[["render",_]]);module.exports=ee;
+"use strict";var y=(e,n,p)=>new Promise((f,c)=>{var v=u=>{try{o(p.next(u))}catch(a){c(a)}},s=u=>{try{o(p.throw(u))}catch(a){c(a)}},o=u=>u.done?f(u.value):Promise.resolve(u.value).then(v,s);o((p=p.apply(e,n)).next())});const t=require("vue"),j=require("./CdxButton.cjs"),B=require("./Icon.js"),I=require("./useI18n.cjs"),V=require("./_plugin-vue_export-helper.js"),D=require("./constants.js"),H=require("./useSplitAttributes.cjs"),X=require("./useFieldData.cjs"),x=require("./useComputedDirection.cjs"),G=require("./useOptionalModelWrapper.js"),J=t.defineComponent({name:"CdxInputChip",components:{CdxButton:j,CdxIcon:B.CdxIcon},props:{icon:{type:[String,Object],default:null},disabled:{type:Boolean,default:!1}},expose:["focus"],emits:["remove-chip","click-chip","arrow-left","arrow-right"],setup(e,{emit:n}){const p=t.ref(),f=t.computed(()=>({"cdx-input-chip--disabled":e.disabled})),c=I("cdx-input-chip-aria-description","Press Enter to edit or Delete to remove");function v(s){var o;switch(s.key){case"Enter":n("click-chip"),s.preventDefault(),s.stopPropagation();break;case"Escape":(o=p.value)==null||o.blur(),s.preventDefault(),s.stopPropagation();break;case"Backspace":case"Delete":n("remove-chip",s.key),s.preventDefault(),s.stopPropagation();break;case"ArrowLeft":n("arrow-left"),s.preventDefault(),s.stopPropagation();break;case"ArrowRight":n("arrow-right"),s.preventDefault(),s.stopPropagation();break}}return{rootElement:p,rootClasses:f,ariaDescription:c,onKeydown:v,cdxIconClose:B.X3}},methods:{focus(){this.$refs.rootElement.focus()}}}),Q=["aria-description"],Y={class:"cdx-input-chip__text"};function Z(e,n,p,f,c,v){const s=t.resolveComponent("cdx-icon"),o=t.resolveComponent("cdx-button");return t.openBlock(),t.createElementBlock("div",{ref:"rootElement",class:t.normalizeClass(["cdx-input-chip",e.rootClasses]),tabindex:"0",role:"option","aria-description":e.ariaDescription,onKeydown:n[1]||(n[1]=(...u)=>e.onKeydown&&e.onKeydown(...u)),onClick:n[2]||(n[2]=u=>e.$emit("click-chip"))},[e.icon?(t.openBlock(),t.createBlock(s,{key:0,icon:e.icon,size:"small"},null,8,["icon"])):t.createCommentVNode("v-if",!0),t.createElementVNode("span",Y,[t.renderSlot(e.$slots,"default")]),t.createVNode(o,{class:"cdx-input-chip__button",weight:"quiet",tabindex:"-1","aria-hidden":"true",disabled:e.disabled,onClick:n[0]||(n[0]=t.withModifiers(u=>e.$emit("remove-chip","button"),["stop"]))},{default:t.withCtx(()=>[t.createVNode(s,{icon:e.cdxIconClose,size:"x-small"},null,8,["icon"])]),_:1},8,["disabled"])],42,Q)}const _=V._export_sfc(J,[["render",Z]]),ee=D.makeStringTypeValidator(D.ValidationStatusTypes),te=t.defineComponent({name:"CdxChipInput",components:{CdxInputChip:_},inheritAttrs:!1,props:{inputChips:{type:Array,required:!0},inputValue:{type:String,default:null},separateInput:{type:Boolean,default:!1},status:{type:String,default:"default",validator:ee},chipValidator:{type:Function,default:e=>!0},disabled:{type:Boolean,default:!1}},emits:["update:input-chips","update:input-value"],setup(e,{emit:n,attrs:p}){const f=t.ref(),c=t.ref(""),v=x(f),s=t.ref(),o=t.ref(""),u=G.useOptionalModelWrapper(o,t.toRef(e,"inputValue"),n,"update:input-value"),a=t.ref("default"),$=t.computed(()=>a.value==="error"||e.status==="error"?"error":"default"),{computedDisabled:w,computedStatus:E}=X(t.toRef(e,"disabled"),$),C=t.ref(!1),F=t.computed(()=>({"cdx-chip-input--has-separate-input":e.separateInput,["cdx-chip-input--status-".concat(E.value)]:!0,"cdx-chip-input--focused":C.value,"cdx-chip-input--disabled":w.value})),{rootClasses:A,rootStyle:R,otherAttrs:S}=H(p,F),m=[],g=t.ref(null),q=t.computed(()=>g.value?g.value.value:""),K=I("cdx-chip-input-chip-added",i=>"Chip ".concat(i," was added."),[u]),P=I("cdx-chip-input-chip-removed",i=>"Chip ".concat(i," was removed."),[q]);function N(i,r){i!==null&&(m[r]=i)}const h=()=>{s.value.focus()};function k(){e.inputChips.find(i=>i.value===u.value)||!e.chipValidator(u.value)?a.value="error":u.value.length>0&&(c.value=K.value,n("update:input-chips",e.inputChips.concat({value:u.value})),u.value="")}function b(i){n("update:input-chips",e.inputChips.filter(r=>r.value!==i.value))}function M(i,r){const d=v.value==="ltr"&&i==="left"||v.value==="rtl"&&i==="right"?-1:1,l=r+d;if(!(l<0)){if(l>=e.inputChips.length){h();return}m[l].focus()}}function T(i){return y(this,null,function*(){k(),yield t.nextTick(),b(i),u.value=i.value,h()})}function z(i,r,d){if(g.value=i,c.value=P.value,d==="button")h();else if(d==="Backspace"){const l=r===0?1:r-1;l<e.inputChips.length?m[l].focus():h()}else if(d==="Delete"){const l=r+1;l<e.inputChips.length?m[l].focus():h()}b(i)}function O(i){var d,l;const r=v.value==="rtl"?"ArrowRight":"ArrowLeft";switch(i.key){case"Enter":if(u.value.length>0){k(),i.preventDefault(),i.stopPropagation();return}break;case"Escape":(d=s.value)==null||d.blur(),i.preventDefault(),i.stopPropagation();return;case"Backspace":case r:if(((l=s.value)==null?void 0:l.selectionStart)===0&&s.value.selectionEnd===0&&e.inputChips.length>0){m[e.inputChips.length-1].focus(),i.preventDefault(),i.stopPropagation();return}break}}function L(){C.value=!0}function U(){C.value=!1}function W(i){var r;(r=f.value)!=null&&r.contains(i.relatedTarget)||k()}return t.watch(t.toRef(e,"inputChips"),i=>{const r=i.find(d=>d.value===u.value);a.value=r?"error":"default"}),t.watch(u,()=>{a.value==="error"&&(a.value="default")}),{rootElement:f,input:s,computedInputValue:u,rootClasses:A,rootStyle:R,otherAttrs:S,assignChipTemplateRef:N,handleChipClick:T,handleChipRemove:z,moveChipFocus:M,onInputKeydown:O,focusInput:h,onInputFocus:L,onInputBlur:U,onFocusOut:W,computedDisabled:w,statusMessageContent:c}}}),ne={class:"cdx-chip-input__chips",role:"listbox","aria-orientation":"horizontal"},oe=["disabled"],ie={key:0,class:"cdx-chip-input__separate-input"},ue=["disabled"],se={class:"cdx-chip-input__aria-status",role:"status","aria-live":"polite"};function ae(e,n,p,f,c,v){const s=t.resolveComponent("cdx-input-chip");return t.openBlock(),t.createElementBlock("div",{ref:"rootElement",class:t.normalizeClass(["cdx-chip-input",e.rootClasses]),style:t.normalizeStyle(e.rootStyle),onClick:n[8]||(n[8]=(...o)=>e.focusInput&&e.focusInput(...o)),onFocusout:n[9]||(n[9]=(...o)=>e.onFocusOut&&e.onFocusOut(...o))},[t.createElementVNode("div",ne,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.inputChips,(o,u)=>(t.openBlock(),t.createBlock(s,{key:o.value,ref_for:!0,ref:a=>e.assignChipTemplateRef(a,u),class:"cdx-chip-input__item",icon:o.icon,disabled:e.computedDisabled,onClickChip:a=>e.handleChipClick(o),onRemoveChip:a=>e.handleChipRemove(o,u,a),onArrowLeft:a=>e.moveChipFocus("left",u),onArrowRight:a=>e.moveChipFocus("right",u)},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(o.value),1)]),_:2},1032,["icon","disabled","onClickChip","onRemoveChip","onArrowLeft","onArrowRight"]))),128)),e.separateInput?t.createCommentVNode("v-if",!0):t.withDirectives((t.openBlock(),t.createElementBlock("input",t.mergeProps({key:0,ref:"input","onUpdate:modelValue":n[0]||(n[0]=o=>e.computedInputValue=o),class:"cdx-chip-input__input",disabled:e.computedDisabled},e.otherAttrs,{onBlur:n[1]||(n[1]=(...o)=>e.onInputBlur&&e.onInputBlur(...o)),onFocus:n[2]||(n[2]=(...o)=>e.onInputFocus&&e.onInputFocus(...o)),onKeydown:n[3]||(n[3]=(...o)=>e.onInputKeydown&&e.onInputKeydown(...o))}),null,16,oe)),[[t.vModelDynamic,e.computedInputValue]])]),e.separateInput?(t.openBlock(),t.createElementBlock("div",ie,[t.withDirectives(t.createElementVNode("input",t.mergeProps({ref:"input","onUpdate:modelValue":n[4]||(n[4]=o=>e.computedInputValue=o),class:"cdx-chip-input__input",disabled:e.computedDisabled},e.otherAttrs,{onBlur:n[5]||(n[5]=(...o)=>e.onInputBlur&&e.onInputBlur(...o)),onFocus:n[6]||(n[6]=(...o)=>e.onInputFocus&&e.onInputFocus(...o)),onKeydown:n[7]||(n[7]=(...o)=>e.onInputKeydown&&e.onInputKeydown(...o))}),null,16,ue),[[t.vModelDynamic,e.computedInputValue]])])):t.createCommentVNode("v-if",!0),t.createElementVNode("div",se,t.toDisplayString(e.statusMessageContent),1)],38)}const re=V._export_sfc(te,[["render",ae]]);module.exports=re;
diff --git a/resources/lib/codex/modules/CdxChipInput.css b/resources/lib/codex/modules/CdxChipInput.css
index 8ded6aa0ee55..2ea10e21d4e1 100644
--- a/resources/lib/codex/modules/CdxChipInput.css
+++ b/resources/lib/codex/modules/CdxChipInput.css
@@ -1 +1 @@
-.cdx-input-chip{background-color:var(--background-color-interactive-subtle, #f8f9fa);color:var(--color-base, #202122);display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:32rem;border:1px solid var(--border-color-subtle, #c8ccd1);border-radius:9999px;padding:0 0 0 8px;font-size:.875rem;line-height:1.5714285}.cdx-input-chip:not(.cdx-input-chip--disabled){transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-input-chip:not(.cdx-input-chip--disabled):hover{background-color:var(--background-color-base, #fff);cursor:pointer}.cdx-input-chip:not(.cdx-input-chip--disabled):focus{outline:1px solid transparent}.cdx-input-chip:not(.cdx-input-chip--disabled):active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-interactive, #72777d)}.cdx-input-chip:not(.cdx-input-chip--disabled):focus:not(:active){border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-input-chip--disabled{background-color:var(--background-color-disabled, #c8ccd1);color:var(--color-inverted, #fff);border-color:var(--border-color-transparent, transparent)}.cdx-input-chip--disabled .cdx-icon{color:var(--color-inverted, #fff)}.cdx-input-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-input-chip__button.cdx-button{min-width:20px;min-height:20px;margin-right:1px;border-radius:9999px;padding-right:2px;padding-left:2px;font-size:.75rem}.cdx-chip-input__chips,.cdx-chip-input__separate-input{box-sizing:border-box;min-width:256px;min-height:32px;border-width:1px;border-style:solid;border-radius:2px;padding:3px 8px;line-height:1.4285714}.cdx-chip-input__chips{display:flex;flex:1 auto;flex-flow:wrap;gap:8px}.cdx-chip-input__input{color:var(--color-base, #202122);flex-grow:inherit;border:0;font-family:inherit;font-size:inherit;line-height:1}.cdx-chip-input__input:focus{outline:1px solid transparent}.cdx-chip-input__input::placeholder{color:var(--color-placeholder, #72777d);opacity:1}.cdx-chip-input--has-separate-input .cdx-chip-input__chips{margin-bottom:-1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-top-left-radius:0;border-top-right-radius:0}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{border-color:var(--border-color-base, #a2a9b1);box-shadow:inset 0 0 0 1px var(--box-shadow-color-transparent, transparent);transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input .cdx-chip-input__input{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__chips{background-color:var(--background-color-interactive-subtle, #f8f9fa)}.cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-interactive, #72777d)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c);outline:1px solid transparent}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{color:var(--color-error, #d73333);border-color:var(--border-color-error, #b32424)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-error--hover, #ff4242)}.cdx-chip-input--disabled .cdx-chip-input__chips,.cdx-chip-input--disabled .cdx-chip-input__separate-input{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-chip-input--disabled .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input--disabled .cdx-chip-input__separate-input .cdx-chip-input__input{color:var(--color-disabled, #72777d);-webkit-text-fill-color:var(--color-disabled, #72777d)}
+.cdx-input-chip{background-color:var(--background-color-interactive-subtle, #f8f9fa);color:var(--color-base, #202122);display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:32rem;border:1px solid var(--border-color-subtle, #c8ccd1);border-radius:9999px;padding:0 0 0 8px;font-size:.875rem;line-height:1.5714285}.cdx-input-chip:not(.cdx-input-chip--disabled){transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-input-chip:not(.cdx-input-chip--disabled):hover{background-color:var(--background-color-base, #fff);cursor:pointer}.cdx-input-chip:not(.cdx-input-chip--disabled):focus{outline:1px solid transparent}.cdx-input-chip:not(.cdx-input-chip--disabled):active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-interactive, #72777d)}.cdx-input-chip:not(.cdx-input-chip--disabled):focus:not(:active){border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-input-chip--disabled{background-color:var(--background-color-disabled, #c8ccd1);color:var(--color-inverted, #fff);border-color:var(--border-color-transparent, transparent)}.cdx-input-chip--disabled .cdx-icon{color:var(--color-inverted, #fff)}.cdx-input-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-input-chip__button.cdx-button{min-width:20px;min-height:20px;margin-right:1px;border-radius:9999px;padding-right:2px;padding-left:2px;font-size:.75rem}.cdx-chip-input__chips,.cdx-chip-input__separate-input{box-sizing:border-box;min-width:256px;min-height:32px;border-width:1px;border-style:solid;border-radius:2px;padding:3px 8px;line-height:1.4285714}.cdx-chip-input__chips{display:flex;flex:1 auto;flex-flow:wrap;gap:8px}.cdx-chip-input__input{color:var(--color-base, #202122);flex-grow:inherit;border:0;font-family:inherit;font-size:inherit;line-height:1}.cdx-chip-input__input:focus{outline:1px solid transparent}.cdx-chip-input__input::placeholder{color:var(--color-placeholder, #72777d);opacity:1}.cdx-chip-input--has-separate-input .cdx-chip-input__chips{margin-bottom:-1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-top-left-radius:0;border-top-right-radius:0}.cdx-chip-input__aria-status{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{border-color:var(--border-color-base, #a2a9b1);box-shadow:inset 0 0 0 1px var(--box-shadow-color-transparent, transparent);transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input .cdx-chip-input__input{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled) .cdx-chip-input__separate-input{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips{background-color:var(--background-color-base, #fff)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__chips{background-color:var(--background-color-interactive-subtle, #f8f9fa)}.cdx-chip-input:not(.cdx-chip-input--disabled):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-interactive, #72777d)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused:not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--focused.cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c);outline:1px solid transparent}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input{color:var(--color-error, #d73333);border-color:var(--border-color-error, #b32424)}.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused):not(.cdx-chip-input--has-separate-input) .cdx-chip-input__chips:hover,.cdx-chip-input:not(.cdx-chip-input--disabled).cdx-chip-input--status-error:not(.cdx-chip-input--focused).cdx-chip-input--has-separate-input .cdx-chip-input__separate-input:hover{border-color:var(--border-color-error--hover, #ff4242)}.cdx-chip-input--disabled .cdx-chip-input__chips,.cdx-chip-input--disabled .cdx-chip-input__separate-input{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-chip-input--disabled .cdx-chip-input__chips .cdx-chip-input__input,.cdx-chip-input--disabled .cdx-chip-input__separate-input .cdx-chip-input__input{color:var(--color-disabled, #72777d);-webkit-text-fill-color:var(--color-disabled, #72777d)}
diff --git a/resources/lib/codex/modules/CdxCombobox-bidi.css b/resources/lib/codex/modules/CdxCombobox-bidi.css
new file mode 100644
index 000000000000..c74af587f6cb
--- /dev/null
+++ b/resources/lib/codex/modules/CdxCombobox-bidi.css
@@ -0,0 +1 @@
+.cdx-combobox{display:inline-block;position:relative}.cdx-combobox__input-wrapper{display:flex}.cdx-combobox__input.cdx-text-input{flex:1 1 auto;min-width:224px}[dir=ltr] .cdx-combobox__input.cdx-text-input{border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .cdx-combobox__input.cdx-text-input{border-top-left-radius:0;border-bottom-left-radius:0}[dir=ltr] .cdx-combobox__input.cdx-text-input .cdx-text-input__input{border-right-width:0}[dir=rtl] .cdx-combobox__input.cdx-text-input .cdx-text-input__input{border-left-width:0}.cdx-combobox__expand-button.cdx-button{position:relative}[dir=ltr] .cdx-combobox__expand-button.cdx-button{border-top-left-radius:0;border-bottom-left-radius:0}[dir=rtl] .cdx-combobox__expand-button.cdx-button{border-top-right-radius:0;border-bottom-right-radius:0}.cdx-combobox__expand-icon.cdx-icon{position:absolute;top:50%;min-width:12px;min-height:12px;width:.75rem;height:.75rem}[dir] .cdx-combobox__expand-icon.cdx-icon{transition-property:color;transition-duration:.1s}[dir=ltr] .cdx-combobox__expand-icon.cdx-icon{left:50%;transform:translate(-50%,-50%)}[dir=rtl] .cdx-combobox__expand-icon.cdx-icon{right:50%;transform:translate(50%,-50%)}[dir=ltr] .cdx-combobox--expanded .cdx-combobox__expand-button.cdx-button{border-bottom-right-radius:0}[dir=rtl] .cdx-combobox--expanded .cdx-combobox__expand-button.cdx-button{border-bottom-left-radius:0}.cdx-dialog .cdx-combobox{position:static}
diff --git a/resources/lib/codex/modules/CdxCombobox.cjs b/resources/lib/codex/modules/CdxCombobox.cjs
index 79747173e7b4..68268a41155a 100644
--- a/resources/lib/codex/modules/CdxCombobox.cjs
+++ b/resources/lib/codex/modules/CdxCombobox.cjs
@@ -1 +1 @@
-"use strict";const o=require("vue"),x=require("./Icon.js"),$=require("./CdxButton.cjs"),k=require("./CdxMenu.cjs"),M=require("./CdxTextInput.cjs"),W=require("./useModelWrapper.cjs"),N=require("./useGeneratedId.cjs"),F=require("./useSplitAttributes.cjs"),A=require("./useFieldData.cjs"),K=require("./useFloatingMenu.cjs"),v=require("./constants.js"),D=require("./_plugin-vue_export-helper.js"),E=v.makeStringTypeValidator(v.ValidationStatusTypes),P=o.defineComponent({name:"CdxCombobox",components:{CdxButton:$,CdxIcon:x.CdxIcon,CdxMenu:k,CdxTextInput:M},inheritAttrs:!1,props:{menuItems:{type:Array,required:!0},selected:{type:[String,Number],required:!0},disabled:{type:Boolean,default:!1},menuConfig:{type:Object,default:()=>({})},status:{type:String,default:"default",validator:E}},emits:["update:selected","load-more","input","change","focus","blur"],setup(e,{emit:t,attrs:c,slots:m}){const r=o.ref(),f=o.ref(),u=o.ref(),l=N("combobox"),i=o.toRef(e,"selected"),p=W(i,t,"update:selected"),n=o.ref(!1),a=o.ref(!1),C=o.computed(()=>{var d,b;return(b=(d=u.value)==null?void 0:d.getHighlightedMenuItem())==null?void 0:b.id}),{computedDisabled:s}=A(o.toRef(e,"disabled")),g=o.computed(()=>({"cdx-combobox--expanded":n.value,"cdx-combobox--disabled":s.value})),{rootClasses:I,rootStyle:y,otherAttrs:q}=F(c,g);function w(d){a.value&&n.value?n.value=!1:(e.menuItems.length>0||m["no-results"])&&(n.value=!0),t("focus",d)}function B(d){n.value=a.value&&n.value,t("blur",d)}function V(){s.value||(a.value=!0)}function h(){var d;s.value||(d=r.value)==null||d.focus()}function S(d){!u.value||s.value||e.menuItems.length===0||d.key===" "||u.value.delegateKeyNavigation(d)}return K(r,u),o.watch(n,()=>{a.value=!1}),{input:r,inputWrapper:f,menu:u,menuId:l,modelWrapper:p,expanded:n,highlightedId:C,computedDisabled:s,onInputFocus:w,onInputBlur:B,onKeydown:S,onButtonClick:h,onButtonMousedown:V,cdxIconExpand:x.m4,rootClasses:I,rootStyle:y,otherAttrs:q}}}),T={ref:"inputWrapper",class:"cdx-combobox__input-wrapper"};function U(e,t,c,m,r,f){const u=o.resolveComponent("cdx-text-input"),l=o.resolveComponent("cdx-icon"),i=o.resolveComponent("cdx-button"),p=o.resolveComponent("cdx-menu");return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["cdx-combobox",e.rootClasses]),style:o.normalizeStyle(e.rootStyle)},[o.createElementVNode("div",T,[o.createVNode(u,o.mergeProps({ref:"input",modelValue:e.modelWrapper,"onUpdate:modelValue":t[0]||(t[0]=n=>e.modelWrapper=n)},e.otherAttrs,{class:"cdx-combobox__input","aria-activedescendant":e.highlightedId,"aria-expanded":e.expanded,"aria-controls":e.menuId,disabled:e.computedDisabled,status:e.status,autocomplete:"off",role:"combobox",onKeydown:e.onKeydown,onInput:t[1]||(t[1]=n=>e.$emit("input",n)),onChange:t[2]||(t[2]=n=>e.$emit("change",n)),onFocus:e.onInputFocus,onBlur:e.onInputBlur}),null,16,["modelValue","aria-activedescendant","aria-expanded","aria-controls","disabled","status","onKeydown","onFocus","onBlur"]),o.createVNode(i,{class:"cdx-combobox__expand-button","aria-hidden":"true",disabled:e.computedDisabled,tabindex:"-1",type:"button",onMousedown:e.onButtonMousedown,onClick:e.onButtonClick},{default:o.withCtx(()=>[o.createVNode(l,{class:"cdx-combobox__expand-icon",icon:e.cdxIconExpand},null,8,["icon"])]),_:1},8,["disabled","onMousedown","onClick"])],512),o.createVNode(p,o.mergeProps({id:e.menuId,ref:"menu",selected:e.modelWrapper,"onUpdate:selected":t[3]||(t[3]=n=>e.modelWrapper=n),expanded:e.expanded,"onUpdate:expanded":t[4]||(t[4]=n=>e.expanded=n),"menu-items":e.menuItems},e.menuConfig,{onLoadMore:t[5]||(t[5]=n=>e.$emit("load-more"))}),{default:o.withCtx(({menuItem:n})=>[o.renderSlot(e.$slots,"menu-item",{menuItem:n})]),"no-results":o.withCtx(()=>[o.renderSlot(e.$slots,"no-results")]),_:3},16,["id","selected","expanded","menu-items"])],6)}const z=D._export_sfc(P,[["render",U]]);module.exports=z;
+"use strict";const o=require("vue"),x=require("./Icon.js"),k=require("./CdxButton.cjs"),M=require("./CdxMenu.cjs"),W=require("./CdxTextInput.cjs"),N=require("./useModelWrapper.cjs"),F=require("./useGeneratedId.cjs"),A=require("./useSplitAttributes.cjs"),K=require("./useFieldData.cjs"),D=require("./useFloatingMenu.cjs"),v=require("./constants.js"),E=require("./_plugin-vue_export-helper.js"),P=v.makeStringTypeValidator(v.ValidationStatusTypes),R=o.defineComponent({name:"CdxCombobox",components:{CdxButton:k,CdxIcon:x.CdxIcon,CdxMenu:M,CdxTextInput:W},inheritAttrs:!1,props:{menuItems:{type:Array,required:!0},selected:{type:[String,Number],required:!0},disabled:{type:Boolean,default:!1},menuConfig:{type:Object,default:()=>({})},status:{type:String,default:"default",validator:P}},emits:["update:selected","load-more","input","change","focus","blur"],setup(e,{emit:t,attrs:c,slots:m}){const r=o.ref(),f=o.ref(),d=o.ref(),l=F("combobox"),i=o.toRef(e,"selected"),p=N(i,t,"update:selected"),n=o.ref(!1),a=o.ref(!1),C=o.computed(()=>{var u,b;return(b=(u=d.value)==null?void 0:u.getHighlightedMenuItem())==null?void 0:b.id}),{computedDisabled:s,computedStatus:g}=K(o.toRef(e,"disabled"),o.toRef(e,"status")),I=o.computed(()=>({"cdx-combobox--expanded":n.value,"cdx-combobox--disabled":s.value})),{rootClasses:y,rootStyle:q,otherAttrs:w}=A(c,I);function B(u){a.value&&n.value?n.value=!1:(e.menuItems.length>0||m["no-results"])&&(n.value=!0),t("focus",u)}function S(u){n.value=a.value&&n.value,t("blur",u)}function V(){s.value||(a.value=!0)}function h(){var u;s.value||(u=r.value)==null||u.focus()}function $(u){!d.value||s.value||e.menuItems.length===0||u.key===" "||d.value.delegateKeyNavigation(u)}return D(r,d),o.watch(n,()=>{a.value=!1}),{input:r,inputWrapper:f,menu:d,menuId:l,modelWrapper:p,expanded:n,highlightedId:C,computedDisabled:s,computedStatus:g,onInputFocus:B,onInputBlur:S,onKeydown:$,onButtonClick:h,onButtonMousedown:V,cdxIconExpand:x.m4,rootClasses:y,rootStyle:q,otherAttrs:w}}}),T={ref:"inputWrapper",class:"cdx-combobox__input-wrapper"};function U(e,t,c,m,r,f){const d=o.resolveComponent("cdx-text-input"),l=o.resolveComponent("cdx-icon"),i=o.resolveComponent("cdx-button"),p=o.resolveComponent("cdx-menu");return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["cdx-combobox",e.rootClasses]),style:o.normalizeStyle(e.rootStyle)},[o.createElementVNode("div",T,[o.createVNode(d,o.mergeProps({ref:"input",modelValue:e.modelWrapper,"onUpdate:modelValue":t[0]||(t[0]=n=>e.modelWrapper=n)},e.otherAttrs,{class:"cdx-combobox__input","aria-activedescendant":e.highlightedId,"aria-expanded":e.expanded,"aria-controls":e.menuId,disabled:e.computedDisabled,status:e.computedStatus,autocomplete:"off",role:"combobox",onKeydown:e.onKeydown,onInput:t[1]||(t[1]=n=>e.$emit("input",n)),onChange:t[2]||(t[2]=n=>e.$emit("change",n)),onFocus:e.onInputFocus,onBlur:e.onInputBlur}),null,16,["modelValue","aria-activedescendant","aria-expanded","aria-controls","disabled","status","onKeydown","onFocus","onBlur"]),o.createVNode(i,{class:"cdx-combobox__expand-button","aria-hidden":"true",disabled:e.computedDisabled,tabindex:"-1",type:"button",onMousedown:e.onButtonMousedown,onClick:e.onButtonClick},{default:o.withCtx(()=>[o.createVNode(l,{class:"cdx-combobox__expand-icon",icon:e.cdxIconExpand},null,8,["icon"])]),_:1},8,["disabled","onMousedown","onClick"])],512),o.createVNode(p,o.mergeProps({id:e.menuId,ref:"menu",selected:e.modelWrapper,"onUpdate:selected":t[3]||(t[3]=n=>e.modelWrapper=n),expanded:e.expanded,"onUpdate:expanded":t[4]||(t[4]=n=>e.expanded=n),"menu-items":e.menuItems},e.menuConfig,{onLoadMore:t[5]||(t[5]=n=>e.$emit("load-more"))}),{default:o.withCtx(({menuItem:n})=>[o.renderSlot(e.$slots,"menu-item",{menuItem:n})]),"no-results":o.withCtx(()=>[o.renderSlot(e.$slots,"no-results")]),_:3},16,["id","selected","expanded","menu-items"])],6)}const z=E._export_sfc(R,[["render",U]]);module.exports=z;
diff --git a/resources/lib/codex/modules/CdxDialog-bidi.css b/resources/lib/codex/modules/CdxDialog-bidi.css
new file mode 100644
index 000000000000..c3ff086a4b82
--- /dev/null
+++ b/resources/lib/codex/modules/CdxDialog-bidi.css
@@ -0,0 +1 @@
+.cdx-dialog-backdrop{display:flex;align-items:center;justify-content:center;position:fixed;top:0;z-index:400;min-height:100%;width:100vw;height:100vh;height:-webkit-fill-available}[dir] .cdx-dialog-backdrop{background-color:var(--background-color-backdrop-light, rgba(255, 255, 255, .65))}[dir=ltr] .cdx-dialog-backdrop{left:0}[dir=rtl] .cdx-dialog-backdrop{right:0}.cdx-dialog{display:flex;flex-direction:column;box-sizing:border-box;width:calc(100% - 2rem);max-width:32rem;max-height:calc(100vh - 2.5rem)}[dir] .cdx-dialog{background-color:var(--background-color-base, #fff);border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px;box-shadow:0 2px 2px rgba(0,0,0,.2)}[dir] .cdx-dialog__header{padding:16px 24px}.cdx-dialog__header--default{display:flex;align-items:baseline;justify-content:flex-end;box-sizing:border-box;width:100%}.cdx-dialog__header__title-group{display:flex;flex-grow:1;flex-direction:column;gap:6px}.cdx-dialog__header .cdx-dialog__header__title{font-family:inherit;font-size:1.125rem;font-weight:700;line-height:1.25}[dir] .cdx-dialog__header .cdx-dialog__header__title{margin:0;border:0;padding:0}.cdx-dialog__header .cdx-dialog__header__subtitle{color:var(--color-subtle, #54595d);font-size:1rem;line-height:1.375}[dir] .cdx-dialog__header .cdx-dialog__header__subtitle{margin:0;padding:0}[dir=ltr] .cdx-dialog__header__close-button.cdx-button{margin-right:-8px}[dir=rtl] .cdx-dialog__header__close-button.cdx-button{margin-left:-8px}[dir] .cdx-dialog--dividers .cdx-dialog__header{border-bottom:1px solid var(--border-color-subtle, #c8ccd1)}.cdx-dialog__body{flex-grow:1;overflow-y:auto}[dir] .cdx-dialog__body{padding:16px 24px}[dir] .cdx-dialog__body--no-header{padding-top:24px}[dir] .cdx-dialog__body--no-footer{padding-bottom:24px}[dir] .cdx-dialog__body>*:first-child{margin-top:0;padding-top:0}[dir] .cdx-dialog__body>*:last-child{margin-bottom:0;padding-bottom:0}[dir] .cdx-dialog__footer{padding:16px 24px 24px}.cdx-dialog__footer--default{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:12px}.cdx-dialog__footer .cdx-dialog__footer__text{color:var(--color-subtle, #54595d);flex:1 0 auto;width:100%;font-size:.875rem;line-height:1.5714285}[dir] .cdx-dialog__footer .cdx-dialog__footer__text{margin:0}.cdx-dialog__footer__actions{display:flex;flex-grow:1;gap:12px}[dir] .cdx-dialog--dividers .cdx-dialog__footer{border-top:1px solid var(--border-color-subtle, #c8ccd1)}.cdx-dialog--horizontal-actions .cdx-dialog__footer__actions{flex-direction:row-reverse}.cdx-dialog--vertical-actions .cdx-dialog__footer__actions{flex-direction:column;width:100%}.cdx-dialog--vertical-actions .cdx-dialog__footer .cdx-dialog__footer__primary-action.cdx-button,.cdx-dialog--vertical-actions .cdx-dialog__footer .cdx-dialog__footer__default-action.cdx-button{max-width:none}.cdx-dialog-focus-trap{position:absolute}.cdx-dialog-focus-trap:focus{outline:0}[dir] .cdx-dialog-fade-enter-active,[dir] .cdx-dialog-fade-leave-active{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease}.cdx-dialog-fade-enter-from,.cdx-dialog-fade-leave-to{opacity:0}body.cdx-dialog-open{overflow:hidden}
diff --git a/resources/lib/codex/modules/CdxField-bidi.css b/resources/lib/codex/modules/CdxField-bidi.css
new file mode 100644
index 000000000000..1110718ad1ea
--- /dev/null
+++ b/resources/lib/codex/modules/CdxField-bidi.css
@@ -0,0 +1 @@
+[dir] .cdx-field{margin:16px 0 0;border:0;padding:0}[dir] .cdx-field:first-child{margin-top:0}.cdx-field__help-text{line-height:1.375}[dir] .cdx-field__help-text,[dir] .cdx-field__validation-message{margin-top:8px}@media screen and (min-width: 640px){[dir] .cdx-field__help-text,[dir] .cdx-field__validation-message{margin-top:4px}}.cdx-field:not(.cdx-field--disabled) .cdx-field__help-text{color:var(--color-subtle, #54595d)}.cdx-field--disabled .cdx-field__help-text{color:var(--color-disabled, #72777d)}
diff --git a/resources/lib/codex/modules/CdxInfoChip-bidi.css b/resources/lib/codex/modules/CdxInfoChip-bidi.css
new file mode 100644
index 000000000000..f13217060774
--- /dev/null
+++ b/resources/lib/codex/modules/CdxInfoChip-bidi.css
@@ -0,0 +1 @@
+.cdx-info-chip{display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:32rem;line-height:1.5714285}[dir] .cdx-info-chip{background-color:var(--background-color-transparent, transparent);border:1px solid var(--border-color-subtle, #c8ccd1);border-radius:9999px;padding:0 8px}.cdx-info-chip--text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-subtle, #54595d);font-size:.875rem}.cdx-info-chip__icon--notice.cdx-icon{color:var(--color-notice, #202122)}.cdx-info-chip__icon--error.cdx-icon{color:var(--color-error, #d73333)}.cdx-info-chip__icon--warning.cdx-icon{color:var(--color-warning, #edab00)}.cdx-info-chip__icon--success.cdx-icon{color:var(--color-success, #14866d)}.cdx-info-chip .cdx-icon{min-width:16px;min-height:16px;width:1rem;height:1rem}
diff --git a/resources/lib/codex/modules/CdxLabel-bidi.css b/resources/lib/codex/modules/CdxLabel-bidi.css
new file mode 100644
index 000000000000..72b1c72dc6e7
--- /dev/null
+++ b/resources/lib/codex/modules/CdxLabel-bidi.css
@@ -0,0 +1 @@
+.cdx-label{display:flex;flex-direction:column;line-height:1.375}[dir=ltr] .cdx-label__label__icon.cdx-icon{margin-right:4px}[dir=rtl] .cdx-label__label__icon.cdx-icon{margin-left:4px}.cdx-label__label__text{font-weight:700}[dir] legend.cdx-label{padding:0}fieldset label.cdx-label__label .cdx-label__label__text{font-weight:400}.cdx-label:not(.cdx-label--disabled) .cdx-label__label__optional-flag,.cdx-label:not(.cdx-label--disabled) .cdx-label__description{color:var(--color-subtle, #54595d)}.cdx-label--disabled,.cdx-label--disabled .cdx-label__label__icon{color:var(--color-disabled, #72777d)}.cdx-label--visually-hidden{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;overflow:hidden}[dir] .cdx-label--visually-hidden{margin:-1px;border:0;padding:0}[dir] .cdx-label:not(.cdx-label--visually-hidden){padding-bottom:8px}@media screen and (min-width: 640px){[dir] .cdx-label:not(.cdx-label--visually-hidden){padding-bottom:4px}}
diff --git a/resources/lib/codex/modules/CdxLookup-bidi.css b/resources/lib/codex/modules/CdxLookup-bidi.css
new file mode 100644
index 000000000000..fde085bbc071
--- /dev/null
+++ b/resources/lib/codex/modules/CdxLookup-bidi.css
@@ -0,0 +1 @@
+.cdx-lookup{position:relative;box-sizing:border-box;vertical-align:middle}[dir] .cdx-lookup--pending .cdx-text-input .cdx-text-input__input{background-color:var(--background-color-interactive, #eaecf0);background-size:1.25rem 1.25rem;animation-duration:.65s;animation-timing-function:linear;animation-iteration-count:infinite}[dir=ltr] .cdx-lookup--pending .cdx-text-input .cdx-text-input__input{background-image:linear-gradient(135deg,var(--background-color-base, #fff) 25%,var(--background-color-transparent, transparent) 25%,var(--background-color-transparent, transparent) 50%,var(--background-color-base, #fff) 50%,var(--background-color-base, #fff) 75%,var(--background-color-transparent, transparent) 75%,var(--background-color-transparent, transparent));animation-name:cdx-animation-pending-stripes-ltr}[dir=rtl] .cdx-lookup--pending .cdx-text-input .cdx-text-input__input{background-image:linear-gradient(-135deg,var(--background-color-base, #fff) 25%,var(--background-color-transparent, transparent) 25%,var(--background-color-transparent, transparent) 50%,var(--background-color-base, #fff) 50%,var(--background-color-base, #fff) 75%,var(--background-color-transparent, transparent) 75%,var(--background-color-transparent, transparent));animation-name:cdx-animation-pending-stripes-rtl}@keyframes cdx-animation-pending-stripes-ltr{0%{background-position:-1.25rem 0}to{background-position:0 0}}@keyframes cdx-animation-pending-stripes-rtl{0%{background-position:right -1.25rem top 0}to{background-position:100% 0}}.cdx-dialog .cdx-lookup{position:static}
diff --git a/resources/lib/codex/modules/CdxLookup.cjs b/resources/lib/codex/modules/CdxLookup.cjs
index 45cbf11bd4e7..de073c336521 100644
--- a/resources/lib/codex/modules/CdxLookup.cjs
+++ b/resources/lib/codex/modules/CdxLookup.cjs
@@ -1 +1 @@
-"use strict";const t=require("vue"),A=require("./CdxMenu.cjs"),F=require("./CdxTextInput.cjs"),K=require("./useGeneratedId.cjs"),N=require("./useModelWrapper.cjs"),w=require("./useSplitAttributes.cjs"),W=require("./useFieldData.cjs"),D=require("./useFloatingMenu.cjs"),C=require("./constants.js"),E=require("./_plugin-vue_export-helper.js"),L=C.makeStringTypeValidator(C.ValidationStatusTypes),P=t.defineComponent({name:"CdxLookup",components:{CdxMenu:A,CdxTextInput:F},inheritAttrs:!1,props:{selected:{type:[String,Number,null],required:!0},menuItems:{type:Array,required:!0},initialInputValue:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},menuConfig:{type:Object,default:()=>({})},status:{type:String,default:"default",validator:L}},emits:["update:selected","load-more","input","change","focus","blur"],setup:(e,{emit:u,attrs:g,slots:i})=>{const I=t.ref(),p=t.ref(),l=t.ref(),m=K("lookup-menu"),o=t.ref(!1),s=t.ref(!1),c=t.ref(!1),y=t.ref(e.menuItems),{computedDisabled:f}=W(t.toRef(e,"disabled")),h=t.toRef(e,"selected"),b=N(h,u,"update:selected"),r=t.computed(()=>e.menuItems.find(n=>n.value===e.selected)),V=t.computed(()=>{var n,a;return(a=(n=l.value)==null?void 0:n.getHighlightedMenuItem())==null?void 0:a.id}),d=t.ref(e.initialInputValue),q=t.computed(()=>({"cdx-lookup--disabled":f.value,"cdx-lookup--pending":o.value})),{rootClasses:k,rootStyle:S,otherAttrs:M}=w(g,q);function $(n){r.value&&r.value.label!==n&&r.value.value!==n&&(b.value=null),n===""&&y.value.length===0?(s.value=!1,o.value=!1):o.value=!0,u("input",n)}function x(n){c.value=!0;const a=d.value!==null&&d.value!=="";!!(e.menuItems.length>0||i["no-results"])&&(a||y.value.length>0)&&(s.value=!0),u("focus",n)}function B(n){c.value=!1,s.value=!1,u("blur",n)}function U(n){!l.value||f.value||e.menuItems.length===0&&!i["no-results"]||n.key===" "||l.value.delegateKeyNavigation(n)}return D(p,l),t.watch(h,n=>{var a;if(n!==null){const v=r.value?(a=r.value.label)!=null?a:r.value.value:"";d.value!==v&&(d.value=v,u("input",d.value))}}),t.watch(t.toRef(e,"menuItems"),n=>{c.value&&o.value&&(n.length>0||i["no-results"])&&(s.value=!0),n.length===0&&!i["no-results"]&&(s.value=!1),o.value=!1}),{rootElement:I,textInput:p,menu:l,menuId:m,highlightedId:V,inputValue:d,modelWrapper:b,expanded:s,computedDisabled:f,onInputBlur:B,rootClasses:k,rootStyle:S,otherAttrs:M,onUpdateInput:$,onInputFocus:x,onKeydown:U}}});function R(e,u,g,i,I,p){const l=t.resolveComponent("cdx-text-input"),m=t.resolveComponent("cdx-menu");return t.openBlock(),t.createElementBlock("div",{ref:"rootElement",class:t.normalizeClass(["cdx-lookup",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createVNode(l,t.mergeProps({ref:"textInput",modelValue:e.inputValue,"onUpdate:modelValue":u[0]||(u[0]=o=>e.inputValue=o)},e.otherAttrs,{class:"cdx-lookup__input",role:"combobox",autocomplete:"off","aria-autocomplete":"list","aria-controls":e.menuId,"aria-expanded":e.expanded,"aria-activedescendant":e.highlightedId,disabled:e.computedDisabled,status:e.status,"onUpdate:modelValue":e.onUpdateInput,onChange:u[1]||(u[1]=o=>e.$emit("change",o)),onFocus:e.onInputFocus,onBlur:e.onInputBlur,onKeydown:e.onKeydown}),null,16,["modelValue","aria-controls","aria-expanded","aria-activedescendant","disabled","status","onUpdate:modelValue","onFocus","onBlur","onKeydown"]),t.createVNode(m,t.mergeProps({id:e.menuId,ref:"menu",selected:e.modelWrapper,"onUpdate:selected":u[2]||(u[2]=o=>e.modelWrapper=o),expanded:e.expanded,"onUpdate:expanded":u[3]||(u[3]=o=>e.expanded=o),"menu-items":e.menuItems},e.menuConfig,{onLoadMore:u[4]||(u[4]=o=>e.$emit("load-more"))}),{default:t.withCtx(({menuItem:o})=>[t.renderSlot(e.$slots,"menu-item",{menuItem:o})]),"no-results":t.withCtx(()=>[t.renderSlot(e.$slots,"no-results")]),_:3},16,["id","selected","expanded","menu-items"])],6)}const T=E._export_sfc(P,[["render",R]]);module.exports=T;
+"use strict";const t=require("vue"),N=require("./CdxMenu.cjs"),W=require("./CdxTextInput.cjs"),K=require("./useGeneratedId.cjs"),R=require("./useModelWrapper.cjs"),w=require("./useOptionalModelWrapper.js"),L=require("./useSplitAttributes.cjs"),D=require("./useFieldData.cjs"),E=require("./useFloatingMenu.cjs"),V=require("./constants.js"),O=require("./_plugin-vue_export-helper.js"),P=V.makeStringTypeValidator(V.ValidationStatusTypes),T=t.defineComponent({name:"CdxLookup",components:{CdxMenu:N,CdxTextInput:W},inheritAttrs:!1,props:{selected:{type:[String,Number,null],required:!0},menuItems:{type:Array,required:!0},inputValue:{type:[String,Number],default:null},initialInputValue:{type:[String,Number],default:"",validator:e=>(e&&console.warn("CdxLookup: prop initialInputValue is deprecated. Use inputValue instead."),!0)},disabled:{type:Boolean,default:!1},menuConfig:{type:Object,default:()=>({})},status:{type:String,default:"default",validator:P}},emits:["update:selected","update:input-value","load-more","input","change","focus","blur"],setup:(e,{emit:u,attrs:g,slots:i})=>{const y=t.ref(),p=t.ref(),o=t.ref(),m=K("lookup-menu"),l=t.ref(!1),s=t.ref(!1),c=t.ref(!1),b=t.ref(e.menuItems),{computedDisabled:f,computedStatus:C}=D(t.toRef(e,"disabled"),t.toRef(e,"status")),h=t.toRef(e,"selected"),v=R(h,u,"update:selected"),r=t.computed(()=>e.menuItems.find(n=>n.value===e.selected)),S=t.computed(()=>{var n,a;return(a=(n=o.value)==null?void 0:n.getHighlightedMenuItem())==null?void 0:a.id}),q=t.ref(e.initialInputValue),d=w.useOptionalModelWrapper(q,t.toRef(e,"inputValue"),u,"update:input-value"),k=t.computed(()=>({"cdx-lookup--disabled":f.value,"cdx-lookup--pending":l.value})),{rootClasses:M,rootStyle:$,otherAttrs:x}=L(g,k);function U(n){r.value?r.value.label!==n&&r.value.value!==n&&(v.value=null):e.selected!==n&&(v.value=null),n===""&&b.value.length===0?(s.value=!1,l.value=!1):l.value=!0,u("input",n)}function B(n){c.value=!0;const a=d.value!==null&&d.value!=="";!!(e.menuItems.length>0||i["no-results"])&&(a||b.value.length>0)&&(s.value=!0),u("focus",n)}function A(n){c.value=!1,s.value=!1,u("blur",n)}function F(n){!o.value||f.value||e.menuItems.length===0&&!i["no-results"]||n.key===" "||o.value.delegateKeyNavigation(n)}return E(p,o),t.watch(h,n=>{var a;if(n!==null){const I=r.value?(a=r.value.label)!=null?a:r.value.value:"";d.value!==I&&(d.value=I,u("input",d.value))}}),t.watch(t.toRef(e,"menuItems"),n=>{c.value&&l.value&&(n.length>0||i["no-results"])&&(s.value=!0),n.length===0&&!i["no-results"]&&(s.value=!1),l.value=!1}),{rootElement:y,textInput:p,menu:o,menuId:m,highlightedId:S,computedInputValue:d,modelWrapper:v,expanded:s,computedDisabled:f,computedStatus:C,onInputBlur:A,rootClasses:M,rootStyle:$,otherAttrs:x,onUpdateInput:U,onInputFocus:B,onKeydown:F}}});function z(e,u,g,i,y,p){const o=t.resolveComponent("cdx-text-input"),m=t.resolveComponent("cdx-menu");return t.openBlock(),t.createElementBlock("div",{ref:"rootElement",class:t.normalizeClass(["cdx-lookup",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createVNode(o,t.mergeProps({ref:"textInput",modelValue:e.computedInputValue,"onUpdate:modelValue":u[0]||(u[0]=l=>e.computedInputValue=l)},e.otherAttrs,{class:"cdx-lookup__input",role:"combobox",autocomplete:"off","aria-autocomplete":"list","aria-controls":e.menuId,"aria-expanded":e.expanded,"aria-activedescendant":e.highlightedId,disabled:e.computedDisabled,status:e.computedStatus,"onUpdate:modelValue":e.onUpdateInput,onChange:u[1]||(u[1]=l=>e.$emit("change",l)),onFocus:e.onInputFocus,onBlur:e.onInputBlur,onKeydown:e.onKeydown}),null,16,["modelValue","aria-controls","aria-expanded","aria-activedescendant","disabled","status","onUpdate:modelValue","onFocus","onBlur","onKeydown"]),t.createVNode(m,t.mergeProps({id:e.menuId,ref:"menu",selected:e.modelWrapper,"onUpdate:selected":u[2]||(u[2]=l=>e.modelWrapper=l),expanded:e.expanded,"onUpdate:expanded":u[3]||(u[3]=l=>e.expanded=l),"menu-items":e.menuItems},e.menuConfig,{onLoadMore:u[4]||(u[4]=l=>e.$emit("load-more"))}),{default:t.withCtx(({menuItem:l})=>[t.renderSlot(e.$slots,"menu-item",{menuItem:l})]),"no-results":t.withCtx(()=>[t.renderSlot(e.$slots,"no-results")]),_:3},16,["id","selected","expanded","menu-items"])],6)}const H=O._export_sfc(T,[["render",z]]);module.exports=H;
diff --git a/resources/lib/codex/modules/CdxMenu-bidi.css b/resources/lib/codex/modules/CdxMenu-bidi.css
new file mode 100644
index 000000000000..eea76f5ab97a
--- /dev/null
+++ b/resources/lib/codex/modules/CdxMenu-bidi.css
@@ -0,0 +1 @@
+.cdx-menu{display:flex;flex-direction:column;position:absolute;z-index:50;box-sizing:border-box;width:100%}[dir] .cdx-menu{background-color:var(--background-color-base, #fff);border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px;box-shadow:0 2px 2px rgba(0,0,0,.2)}[dir=ltr] .cdx-menu{left:0}[dir=rtl] .cdx-menu{right:0}.cdx-menu__progress-bar.cdx-progress-bar{position:absolute;top:0}.cdx-menu__listbox{overflow-y:auto}[dir] .cdx-menu__listbox{margin:0;padding:0}.cdx-menu--has-footer .cdx-menu-item:last-of-type{position:absolute;bottom:0;box-sizing:border-box;width:100%}[dir] .cdx-menu--has-footer .cdx-menu-item:last-of-type:not(:first-of-type){border-top:1px solid var(--border-color-subtle, #c8ccd1)}
diff --git a/resources/lib/codex/modules/CdxMenuButton-bidi.css b/resources/lib/codex/modules/CdxMenuButton-bidi.css
new file mode 100644
index 000000000000..77ed4c6db001
--- /dev/null
+++ b/resources/lib/codex/modules/CdxMenuButton-bidi.css
@@ -0,0 +1 @@
+.cdx-menu-button__menu-wrapper{position:relative}.cdx-menu-button .cdx-menu{min-width:8rem;max-width:16rem}.cdx-dialog .cdx-menu-button{position:static}
diff --git a/resources/lib/codex/modules/CdxMenuItem-bidi.css b/resources/lib/codex/modules/CdxMenuItem-bidi.css
new file mode 100644
index 000000000000..e59df73335ee
--- /dev/null
+++ b/resources/lib/codex/modules/CdxMenuItem-bidi.css
@@ -0,0 +1 @@
+.cdx-menu-item{list-style:none;position:relative;line-height:1.6}[dir] .cdx-menu-item{padding:8px 12px;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-menu-item__content{display:flex;align-items:center;line-height:1.4285714;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-menu-item__content,.cdx-menu-item__content:hover{text-decoration:none}.cdx-menu-item--has-description .cdx-menu-item__content{align-items:flex-start}.cdx-menu-item__text{max-width:100%}.cdx-menu-item__text__description{display:block}[dir=ltr] .cdx-menu-item__thumbnail.cdx-thumbnail{margin-right:8px}[dir=rtl] .cdx-menu-item__thumbnail.cdx-thumbnail{margin-left:8px}[dir=ltr] .cdx-menu-item__icon{margin-right:8px}[dir=rtl] .cdx-menu-item__icon{margin-left:8px}[dir=ltr] .cdx-menu-item__selected-icon{margin-left:auto}[dir=rtl] .cdx-menu-item__selected-icon{margin-right:auto}.cdx-menu-item__icon.cdx-icon,.cdx-menu-item__selected-icon.cdx-icon{color:inherit}.cdx-menu-item--bold-label .cdx-menu-item__text__label{font-weight:700}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text{overflow:hidden}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-menu-item--enabled,.cdx-menu-item--enabled .cdx-menu-item__content{color:var(--color-base, #202122)}.cdx-menu-item--enabled .cdx-menu-item__text__supporting-text,.cdx-menu-item--enabled .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--enabled.cdx-menu-item--highlighted{color:var(--color-base--hover, #404244)}[dir] .cdx-menu-item--enabled.cdx-menu-item--highlighted{background-color:var(--background-color-interactive-subtle, #f8f9fa);cursor:pointer}.cdx-menu-item--enabled.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-base--hover, #404244)}.cdx-menu-item--enabled.cdx-menu-item--active{color:var(--color-emphasized, #000)}[dir] .cdx-menu-item--enabled.cdx-menu-item--active{background-color:var(--background-color-interactive, #eaecf0)}.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-emphasized, #000)}[dir] .cdx-menu-item--enabled.cdx-menu-item--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-menu-item--enabled.cdx-menu-item--selected .cdx-menu-item__content{color:var(--color-progressive, #36c)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content{color:var(--color-progressive--hover, #447ff5)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--active .cdx-menu-item__content{color:var(--color-progressive--active, #2a4b8d)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--disabled{color:var(--color-disabled, #72777d)}[dir] .cdx-menu-item--disabled{cursor:default}.cdx-menu-item--disabled .cdx-menu-item__text__description{color:var(--color-disabled, #72777d)}.cdx-menu-item--destructive .cdx-menu-item__content{color:var(--color-destructive, #d73333)}.cdx-menu-item--destructive.cdx-menu-item--highlighted .cdx-menu-item__content{color:var(--color-destructive--hover, #ff4242)}.cdx-menu-item--destructive.cdx-menu-item--active .cdx-menu-item__content{color:var(--color-destructive--active, #b32424)}.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-destructive--hover, #ff4242)}
diff --git a/resources/lib/codex/modules/CdxMenuItem-rtl.css b/resources/lib/codex/modules/CdxMenuItem-rtl.css
index b2a050d5bcc1..567efd8eeb93 100644
--- a/resources/lib/codex/modules/CdxMenuItem-rtl.css
+++ b/resources/lib/codex/modules/CdxMenuItem-rtl.css
@@ -1 +1 @@
-.cdx-menu-item{list-style:none;position:relative;padding:8px 12px;line-height:1.6;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-menu-item__content{display:flex;align-items:center;line-height:1.4285714;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-menu-item__content,.cdx-menu-item__content:hover{text-decoration:none}.cdx-menu-item--has-description .cdx-menu-item__content{align-items:flex-start}.cdx-menu-item__text{max-width:100%}.cdx-menu-item__text__description{display:block}.cdx-menu-item__thumbnail.cdx-thumbnail,.cdx-menu-item__icon{margin-left:8px}.cdx-menu-item__selected-icon{margin-right:auto}.cdx-menu-item__icon.cdx-icon,.cdx-menu-item__selected-icon.cdx-icon{color:inherit}.cdx-menu-item--bold-label .cdx-menu-item__text__label{font-weight:700}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text{overflow:hidden}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-menu-item--enabled,.cdx-menu-item--enabled .cdx-menu-item__content{color:var(--color-base, #202122)}.cdx-menu-item--enabled .cdx-menu-item__text__supporting-text,.cdx-menu-item--enabled .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--enabled.cdx-menu-item--highlighted{background-color:var(--background-color-interactive, #eaecf0);cursor:pointer}.cdx-menu-item--enabled.cdx-menu-item--active{background-color:var(--background-color-progressive-subtle, #eaf3ff);color:var(--color-progressive, #36c)}.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-progressive, #36c)}.cdx-menu-item--enabled.cdx-menu-item--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted,.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-progressive, #36c)}.cdx-menu-item--disabled{color:var(--color-disabled, #72777d);cursor:default}.cdx-menu-item--disabled .cdx-menu-item__text__description{color:var(--color-disabled, #72777d)}.cdx-menu-item--destructive,.cdx-menu-item--destructive .cdx-menu-item__content{color:var(--color-destructive, #d73333)}.cdx-menu-item--destructive.cdx-menu-item--highlighted{color:var(--color-destructive--hover, #ff4242)}.cdx-menu-item--destructive.cdx-menu-item--active,.cdx-menu-item--destructive.cdx-menu-item--active .cdx-menu-item__content,.cdx-menu-item--destructive.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-destructive--active, #b32424)}.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted,.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-destructive--hover, #ff4242)}
+.cdx-menu-item{list-style:none;position:relative;padding:8px 12px;line-height:1.6;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-menu-item__content{display:flex;align-items:center;line-height:1.4285714;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-menu-item__content,.cdx-menu-item__content:hover{text-decoration:none}.cdx-menu-item--has-description .cdx-menu-item__content{align-items:flex-start}.cdx-menu-item__text{max-width:100%}.cdx-menu-item__text__description{display:block}.cdx-menu-item__thumbnail.cdx-thumbnail,.cdx-menu-item__icon{margin-left:8px}.cdx-menu-item__selected-icon{margin-right:auto}.cdx-menu-item__icon.cdx-icon,.cdx-menu-item__selected-icon.cdx-icon{color:inherit}.cdx-menu-item--bold-label .cdx-menu-item__text__label{font-weight:700}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text{overflow:hidden}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-menu-item--enabled,.cdx-menu-item--enabled .cdx-menu-item__content{color:var(--color-base, #202122)}.cdx-menu-item--enabled .cdx-menu-item__text__supporting-text,.cdx-menu-item--enabled .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--enabled.cdx-menu-item--highlighted{background-color:var(--background-color-interactive-subtle, #f8f9fa);color:var(--color-base--hover, #404244);cursor:pointer}.cdx-menu-item--enabled.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-base--hover, #404244)}.cdx-menu-item--enabled.cdx-menu-item--active{background-color:var(--background-color-interactive, #eaecf0);color:var(--color-emphasized, #000)}.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-emphasized, #000)}.cdx-menu-item--enabled.cdx-menu-item--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-menu-item--enabled.cdx-menu-item--selected .cdx-menu-item__content{color:var(--color-progressive, #36c)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content{color:var(--color-progressive--hover, #447ff5)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--active .cdx-menu-item__content{color:var(--color-progressive--active, #2a4b8d)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--disabled{color:var(--color-disabled, #72777d);cursor:default}.cdx-menu-item--disabled .cdx-menu-item__text__description{color:var(--color-disabled, #72777d)}.cdx-menu-item--destructive .cdx-menu-item__content{color:var(--color-destructive, #d73333)}.cdx-menu-item--destructive.cdx-menu-item--highlighted .cdx-menu-item__content{color:var(--color-destructive--hover, #ff4242)}.cdx-menu-item--destructive.cdx-menu-item--active .cdx-menu-item__content{color:var(--color-destructive--active, #b32424)}.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-destructive--hover, #ff4242)}
diff --git a/resources/lib/codex/modules/CdxMenuItem.css b/resources/lib/codex/modules/CdxMenuItem.css
index 52553e6fab3d..6f5a7bdb963b 100644
--- a/resources/lib/codex/modules/CdxMenuItem.css
+++ b/resources/lib/codex/modules/CdxMenuItem.css
@@ -1 +1 @@
-.cdx-menu-item{list-style:none;position:relative;padding:8px 12px;line-height:1.6;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-menu-item__content{display:flex;align-items:center;line-height:1.4285714;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-menu-item__content,.cdx-menu-item__content:hover{text-decoration:none}.cdx-menu-item--has-description .cdx-menu-item__content{align-items:flex-start}.cdx-menu-item__text{max-width:100%}.cdx-menu-item__text__description{display:block}.cdx-menu-item__thumbnail.cdx-thumbnail,.cdx-menu-item__icon{margin-right:8px}.cdx-menu-item__selected-icon{margin-left:auto}.cdx-menu-item__icon.cdx-icon,.cdx-menu-item__selected-icon.cdx-icon{color:inherit}.cdx-menu-item--bold-label .cdx-menu-item__text__label{font-weight:700}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text{overflow:hidden}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-menu-item--enabled,.cdx-menu-item--enabled .cdx-menu-item__content{color:var(--color-base, #202122)}.cdx-menu-item--enabled .cdx-menu-item__text__supporting-text,.cdx-menu-item--enabled .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--enabled.cdx-menu-item--highlighted{background-color:var(--background-color-interactive, #eaecf0);cursor:pointer}.cdx-menu-item--enabled.cdx-menu-item--active{background-color:var(--background-color-progressive-subtle, #eaf3ff);color:var(--color-progressive, #36c)}.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-progressive, #36c)}.cdx-menu-item--enabled.cdx-menu-item--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted,.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-progressive, #36c)}.cdx-menu-item--disabled{color:var(--color-disabled, #72777d);cursor:default}.cdx-menu-item--disabled .cdx-menu-item__text__description{color:var(--color-disabled, #72777d)}.cdx-menu-item--destructive,.cdx-menu-item--destructive .cdx-menu-item__content{color:var(--color-destructive, #d73333)}.cdx-menu-item--destructive.cdx-menu-item--highlighted{color:var(--color-destructive--hover, #ff4242)}.cdx-menu-item--destructive.cdx-menu-item--active,.cdx-menu-item--destructive.cdx-menu-item--active .cdx-menu-item__content,.cdx-menu-item--destructive.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-destructive--active, #b32424)}.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted,.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-destructive--hover, #ff4242)}
+.cdx-menu-item{list-style:none;position:relative;padding:8px 12px;line-height:1.6;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-menu-item__content{display:flex;align-items:center;line-height:1.4285714;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-menu-item__content,.cdx-menu-item__content:hover{text-decoration:none}.cdx-menu-item--has-description .cdx-menu-item__content{align-items:flex-start}.cdx-menu-item__text{max-width:100%}.cdx-menu-item__text__description{display:block}.cdx-menu-item__thumbnail.cdx-thumbnail,.cdx-menu-item__icon{margin-right:8px}.cdx-menu-item__selected-icon{margin-left:auto}.cdx-menu-item__icon.cdx-icon,.cdx-menu-item__selected-icon.cdx-icon{color:inherit}.cdx-menu-item--bold-label .cdx-menu-item__text__label{font-weight:700}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text{overflow:hidden}.cdx-menu-item--hide-description-overflow .cdx-menu-item__text__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdx-menu-item--enabled,.cdx-menu-item--enabled .cdx-menu-item__content{color:var(--color-base, #202122)}.cdx-menu-item--enabled .cdx-menu-item__text__supporting-text,.cdx-menu-item--enabled .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--enabled.cdx-menu-item--highlighted{background-color:var(--background-color-interactive-subtle, #f8f9fa);color:var(--color-base--hover, #404244);cursor:pointer}.cdx-menu-item--enabled.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-base--hover, #404244)}.cdx-menu-item--enabled.cdx-menu-item--active{background-color:var(--background-color-interactive, #eaecf0);color:var(--color-emphasized, #000)}.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__content,.cdx-menu-item--enabled.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-emphasized, #000)}.cdx-menu-item--enabled.cdx-menu-item--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-menu-item--enabled.cdx-menu-item--selected .cdx-menu-item__content{color:var(--color-progressive, #36c)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content{color:var(--color-progressive--hover, #447ff5)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--active .cdx-menu-item__content{color:var(--color-progressive--active, #2a4b8d)}.cdx-menu-item--enabled.cdx-menu-item--selected.cdx-menu-item--active .cdx-menu-item__text__description{color:var(--color-subtle, #54595d)}.cdx-menu-item--disabled{color:var(--color-disabled, #72777d);cursor:default}.cdx-menu-item--disabled .cdx-menu-item__text__description{color:var(--color-disabled, #72777d)}.cdx-menu-item--destructive .cdx-menu-item__content{color:var(--color-destructive, #d73333)}.cdx-menu-item--destructive.cdx-menu-item--highlighted .cdx-menu-item__content{color:var(--color-destructive--hover, #ff4242)}.cdx-menu-item--destructive.cdx-menu-item--active .cdx-menu-item__content{color:var(--color-destructive--active, #b32424)}.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__content,.cdx-menu-item--destructive.cdx-menu-item--selected.cdx-menu-item--highlighted .cdx-menu-item__text__description{color:var(--color-destructive--hover, #ff4242)}
diff --git a/resources/lib/codex/modules/CdxMessage-bidi.css b/resources/lib/codex/modules/CdxMessage-bidi.css
new file mode 100644
index 000000000000..2bdc3e8babc6
--- /dev/null
+++ b/resources/lib/codex/modules/CdxMessage-bidi.css
@@ -0,0 +1 @@
+.cdx-message{color:var(--color-notice, #202122);display:flex;align-items:flex-start;position:relative}[dir] .cdx-message{background-color:var(--background-color-notice-subtle, #eaecf0);border:1px solid var(--border-color-notice, #54595d);padding:16px}@media screen and (min-width: 640px){[dir] .cdx-message{padding-right:24px;padding-left:24px}}.cdx-message .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-message .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}[dir] .cdx-message .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>')}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>')}[dir] .cdx-message .cdx-message__icon{background-color:var(--color-base, #202122)}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon:lang(ar){filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}[dir] .cdx-message .cdx-message__icon:lang(ar){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>')}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon:lang(ar){filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon:lang(ar){-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>')}[dir] .cdx-message .cdx-message__icon:lang(ar){background-color:var(--color-base, #202122)}}[dir] .cdx-message--warning{background-color:var(--background-color-warning-subtle, #fef6e7);border-color:var(--border-color-warning, #a66200)}.cdx-message--warning .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-message--warning .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}[dir] .cdx-message--warning .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>')}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--warning .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>')}[dir] .cdx-message--warning .cdx-message__icon{background-color:var(--color-warning, #edab00)}}.cdx-message--warning .cdx-message__icon--vue{color:var(--color-warning, #edab00)}[dir] .cdx-message--error{background-color:var(--background-color-error-subtle, #fee7e6);border-color:var(--border-color-error, #b32424)}.cdx-message--error .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-message--error .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}[dir] .cdx-message--error .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>')}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--error .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>')}[dir] .cdx-message--error .cdx-message__icon{background-color:var(--color-error, #d73333)}}.cdx-message--error .cdx-message__icon--vue{color:var(--color-error, #d73333)}[dir] .cdx-message--success{background-color:var(--background-color-success-subtle, #d5fdf4);border-color:var(--border-color-success, #096450)}.cdx-message--success .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-message--success .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}[dir] .cdx-message--success .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>')}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--success .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>')}[dir] .cdx-message--success .cdx-message__icon{background-color:var(--color-success, #14866d)}}.cdx-message--success .cdx-message__icon--vue{color:var(--color-success, #14866d)}[dir=ltr] .cdx-message--user-dismissable{padding-right:48px}[dir=rtl] .cdx-message--user-dismissable{padding-left:48px}@media screen and (min-width: 640px){[dir=ltr] .cdx-message--user-dismissable{padding-right:56px}[dir=rtl] .cdx-message--user-dismissable{padding-left:56px}}.cdx-message--inline{font-weight:700}[dir] .cdx-message--inline{background-color:var(--background-color-transparent, transparent);border:0;padding:0}.cdx-message--inline.cdx-message--error{color:var(--color-error, #d73333)}.cdx-message--inline.cdx-message--success{color:var(--color-success, #14866d)}.cdx-message .cdx-message__icon,.cdx-message .cdx-message__icon--vue{height:1.6em}.cdx-message__content{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;align-self:center;flex-grow:1}[dir=ltr] .cdx-message__content{margin-left:8px}[dir=rtl] .cdx-message__content{margin-right:8px}.cdx-message__content,.cdx-message__content>*{line-height:1.6}[dir] .cdx-message__content>*:first-child{margin-top:0;padding-top:0}[dir] .cdx-message__content>*:last-child{margin-bottom:0;padding-bottom:0}.cdx-message__dismiss-button.cdx-button{position:absolute;top:12px;line-height:0}[dir] .cdx-message__dismiss-button.cdx-button{padding:5px}[dir=ltr] .cdx-message__dismiss-button.cdx-button{right:16px}[dir=rtl] .cdx-message__dismiss-button.cdx-button{left:16px}@media screen and (min-width: 640px){[dir=ltr] .cdx-message__dismiss-button.cdx-button{right:8px}[dir=rtl] .cdx-message__dismiss-button.cdx-button{left:8px}}[dir] .cdx-message+.cdx-message{margin-top:8px}[dir] .cdx-message-enter-active,[dir] .cdx-message-leave-active-system{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease}[dir] .cdx-message-leave-active-user{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-out}.cdx-message-enter-from,.cdx-message-leave-to{opacity:0}
diff --git a/resources/lib/codex/modules/CdxMessage-rtl.css b/resources/lib/codex/modules/CdxMessage-rtl.css
index 634f8b27954d..513f88212d10 100644
--- a/resources/lib/codex/modules/CdxMessage-rtl.css
+++ b/resources/lib/codex/modules/CdxMessage-rtl.css
@@ -1 +1 @@
-.cdx-message{background-color:var(--background-color-notice-subtle, #eaecf0);color:var(--color-notice, #202122);display:flex;align-items:flex-start;position:relative;border:1px solid var(--border-color-notice, #54595d);padding:16px}@media screen and (min-width: 640px){.cdx-message{padding-left:24px;padding-right:24px}}.cdx-message .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');background-color:var(--color-base, #202122)}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon:lang(ar){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon:lang(ar){filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon:lang(ar){-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');background-color:var(--color-base, #202122)}}.cdx-message--warning{background-color:var(--background-color-warning-subtle, #fef6e7);border-color:var(--border-color-warning, #a66200)}.cdx-message--warning .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--warning .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');background-color:var(--color-warning, #edab00)}}.cdx-message--warning .cdx-message__icon--vue{color:var(--color-warning, #edab00)}.cdx-message--error{background-color:var(--background-color-error-subtle, #fee7e6);border-color:var(--border-color-error, #b32424)}.cdx-message--error .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--error .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');background-color:var(--color-error, #d73333)}}.cdx-message--error .cdx-message__icon--vue{color:var(--color-error, #d73333)}.cdx-message--success{background-color:var(--background-color-success-subtle, #d5fdf4);border-color:var(--border-color-success, #096450)}.cdx-message--success .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--success .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');background-color:var(--color-success, #14866d)}}.cdx-message--success .cdx-message__icon--vue{color:var(--color-success, #14866d)}.cdx-message--user-dismissable{padding-left:48px}@media screen and (min-width: 640px){.cdx-message--user-dismissable{padding-left:56px}}.cdx-message--inline{background-color:var(--background-color-transparent, transparent);border:0;padding:0;font-weight:700}.cdx-message--inline.cdx-message--error{color:var(--color-error, #d73333)}.cdx-message--inline.cdx-message--success{color:var(--color-success, #14866d)}.cdx-message .cdx-message__icon,.cdx-message .cdx-message__icon--vue{height:1.5rem}.cdx-message__content{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;align-self:center;flex-grow:1;margin-right:8px}.cdx-message__content,.cdx-message__content>*{line-height:1.6}.cdx-message__content>*:first-child{margin-top:0;padding-top:0}.cdx-message__content>*:last-child{margin-bottom:0;padding-bottom:0}.cdx-message__dismiss-button.cdx-button{position:absolute;top:12px;left:16px;padding:5px;line-height:0}@media screen and (min-width: 640px){.cdx-message__dismiss-button.cdx-button{left:8px}}.cdx-message+.cdx-message{margin-top:8px}.cdx-message-enter-active,.cdx-message-leave-active-system{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease}.cdx-message-leave-active-user{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-out}.cdx-message-enter-from,.cdx-message-leave-to{opacity:0}
+.cdx-message{background-color:var(--background-color-notice-subtle, #eaecf0);color:var(--color-notice, #202122);display:flex;align-items:flex-start;position:relative;border:1px solid var(--border-color-notice, #54595d);padding:16px}@media screen and (min-width: 640px){.cdx-message{padding-left:24px;padding-right:24px}}.cdx-message .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');background-color:var(--color-base, #202122)}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon:lang(ar){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon:lang(ar){filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon:lang(ar){-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');background-color:var(--color-base, #202122)}}.cdx-message--warning{background-color:var(--background-color-warning-subtle, #fef6e7);border-color:var(--border-color-warning, #a66200)}.cdx-message--warning .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--warning .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');background-color:var(--color-warning, #edab00)}}.cdx-message--warning .cdx-message__icon--vue{color:var(--color-warning, #edab00)}.cdx-message--error{background-color:var(--background-color-error-subtle, #fee7e6);border-color:var(--border-color-error, #b32424)}.cdx-message--error .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--error .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');background-color:var(--color-error, #d73333)}}.cdx-message--error .cdx-message__icon--vue{color:var(--color-error, #d73333)}.cdx-message--success{background-color:var(--background-color-success-subtle, #d5fdf4);border-color:var(--border-color-success, #096450)}.cdx-message--success .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--success .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');background-color:var(--color-success, #14866d)}}.cdx-message--success .cdx-message__icon--vue{color:var(--color-success, #14866d)}.cdx-message--user-dismissable{padding-left:48px}@media screen and (min-width: 640px){.cdx-message--user-dismissable{padding-left:56px}}.cdx-message--inline{background-color:var(--background-color-transparent, transparent);border:0;padding:0;font-weight:700}.cdx-message--inline.cdx-message--error{color:var(--color-error, #d73333)}.cdx-message--inline.cdx-message--success{color:var(--color-success, #14866d)}.cdx-message .cdx-message__icon,.cdx-message .cdx-message__icon--vue{height:1.6em}.cdx-message__content{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;align-self:center;flex-grow:1;margin-right:8px}.cdx-message__content,.cdx-message__content>*{line-height:1.6}.cdx-message__content>*:first-child{margin-top:0;padding-top:0}.cdx-message__content>*:last-child{margin-bottom:0;padding-bottom:0}.cdx-message__dismiss-button.cdx-button{position:absolute;top:12px;left:16px;padding:5px;line-height:0}@media screen and (min-width: 640px){.cdx-message__dismiss-button.cdx-button{left:8px}}.cdx-message+.cdx-message{margin-top:8px}.cdx-message-enter-active,.cdx-message-leave-active-system{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease}.cdx-message-leave-active-user{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-out}.cdx-message-enter-from,.cdx-message-leave-to{opacity:0}
diff --git a/resources/lib/codex/modules/CdxMessage.css b/resources/lib/codex/modules/CdxMessage.css
index bd8a9b98a426..e9e7b67a6c03 100644
--- a/resources/lib/codex/modules/CdxMessage.css
+++ b/resources/lib/codex/modules/CdxMessage.css
@@ -1 +1 @@
-.cdx-message{background-color:var(--background-color-notice-subtle, #eaecf0);color:var(--color-notice, #202122);display:flex;align-items:flex-start;position:relative;border:1px solid var(--border-color-notice, #54595d);padding:16px}@media screen and (min-width: 640px){.cdx-message{padding-right:24px;padding-left:24px}}.cdx-message .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');background-color:var(--color-base, #202122)}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon:lang(ar){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon:lang(ar){filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon:lang(ar){-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');background-color:var(--color-base, #202122)}}.cdx-message--warning{background-color:var(--background-color-warning-subtle, #fef6e7);border-color:var(--border-color-warning, #a66200)}.cdx-message--warning .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--warning .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');background-color:var(--color-warning, #edab00)}}.cdx-message--warning .cdx-message__icon--vue{color:var(--color-warning, #edab00)}.cdx-message--error{background-color:var(--background-color-error-subtle, #fee7e6);border-color:var(--border-color-error, #b32424)}.cdx-message--error .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--error .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');background-color:var(--color-error, #d73333)}}.cdx-message--error .cdx-message__icon--vue{color:var(--color-error, #d73333)}.cdx-message--success{background-color:var(--background-color-success-subtle, #d5fdf4);border-color:var(--border-color-success, #096450)}.cdx-message--success .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--success .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');background-color:var(--color-success, #14866d)}}.cdx-message--success .cdx-message__icon--vue{color:var(--color-success, #14866d)}.cdx-message--user-dismissable{padding-right:48px}@media screen and (min-width: 640px){.cdx-message--user-dismissable{padding-right:56px}}.cdx-message--inline{background-color:var(--background-color-transparent, transparent);border:0;padding:0;font-weight:700}.cdx-message--inline.cdx-message--error{color:var(--color-error, #d73333)}.cdx-message--inline.cdx-message--success{color:var(--color-success, #14866d)}.cdx-message .cdx-message__icon,.cdx-message .cdx-message__icon--vue{height:1.5rem}.cdx-message__content{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;align-self:center;flex-grow:1;margin-left:8px}.cdx-message__content,.cdx-message__content>*{line-height:1.6}.cdx-message__content>*:first-child{margin-top:0;padding-top:0}.cdx-message__content>*:last-child{margin-bottom:0;padding-bottom:0}.cdx-message__dismiss-button.cdx-button{position:absolute;top:12px;right:16px;padding:5px;line-height:0}@media screen and (min-width: 640px){.cdx-message__dismiss-button.cdx-button{right:8px}}.cdx-message+.cdx-message{margin-top:8px}.cdx-message-enter-active,.cdx-message-leave-active-system{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease}.cdx-message-leave-active-user{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-out}.cdx-message-enter-from,.cdx-message-leave-to{opacity:0}
+.cdx-message{background-color:var(--background-color-notice-subtle, #eaecf0);color:var(--color-notice, #202122);display:flex;align-items:flex-start;position:relative;border:1px solid var(--border-color-notice, #54595d);padding:16px}@media screen and (min-width: 640px){.cdx-message{padding-right:24px;padding-left:24px}}.cdx-message .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0M9 5h2v2H9zm0 4h2v6H9z"/></svg>');background-color:var(--color-base, #202122)}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message .cdx-message__icon:lang(ar){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message .cdx-message__icon:lang(ar),.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message .cdx-message__icon:lang(ar){filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message .cdx-message__icon:lang(ar){-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7"/></svg>');background-color:var(--color-base, #202122)}}.cdx-message--warning{background-color:var(--background-color-warning-subtle, #fef6e7);border-color:var(--border-color-warning, #a66200)}.cdx-message--warning .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--warning .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--warning .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--warning .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M11.53 2.3A1.85 1.85 0 0010 1.21 1.85 1.85 0 008.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"/></svg>');background-color:var(--color-warning, #edab00)}}.cdx-message--warning .cdx-message__icon--vue{color:var(--color-warning, #edab00)}.cdx-message--error{background-color:var(--background-color-error-subtle, #fee7e6);border-color:var(--border-color-error, #b32424)}.cdx-message--error .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--error .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--error .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--error .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--error .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M13.728 1H6.272L1 6.272v7.456L6.272 19h7.456L19 13.728V6.272zM11 15H9v-2h2zm0-4H9V5h2z"/></svg>');background-color:var(--color-error, #d73333)}}.cdx-message--error .cdx-message__icon--vue{color:var(--color-error, #d73333)}.cdx-message--success{background-color:var(--background-color-success-subtle, #d5fdf4);border-color:var(--border-color-success, #096450)}.cdx-message--success .cdx-message__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-message--success .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-message--success .cdx-message__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-message--success .cdx-message__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-message--success .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M10 20a10 10 0 010-20 10 10 0 110 20m-2-5 9-8.5L15.5 5 8 12 4.5 8.5 3 10z"/></svg>');background-color:var(--color-success, #14866d)}}.cdx-message--success .cdx-message__icon--vue{color:var(--color-success, #14866d)}.cdx-message--user-dismissable{padding-right:48px}@media screen and (min-width: 640px){.cdx-message--user-dismissable{padding-right:56px}}.cdx-message--inline{background-color:var(--background-color-transparent, transparent);border:0;padding:0;font-weight:700}.cdx-message--inline.cdx-message--error{color:var(--color-error, #d73333)}.cdx-message--inline.cdx-message--success{color:var(--color-success, #14866d)}.cdx-message .cdx-message__icon,.cdx-message .cdx-message__icon--vue{height:1.6em}.cdx-message__content{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;align-self:center;flex-grow:1;margin-left:8px}.cdx-message__content,.cdx-message__content>*{line-height:1.6}.cdx-message__content>*:first-child{margin-top:0;padding-top:0}.cdx-message__content>*:last-child{margin-bottom:0;padding-bottom:0}.cdx-message__dismiss-button.cdx-button{position:absolute;top:12px;right:16px;padding:5px;line-height:0}@media screen and (min-width: 640px){.cdx-message__dismiss-button.cdx-button{right:8px}}.cdx-message+.cdx-message{margin-top:8px}.cdx-message-enter-active,.cdx-message-leave-active-system{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease}.cdx-message-leave-active-user{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-out}.cdx-message-enter-from,.cdx-message-leave-to{opacity:0}
diff --git a/resources/lib/codex/modules/CdxProgressBar-bidi.css b/resources/lib/codex/modules/CdxProgressBar-bidi.css
new file mode 100644
index 000000000000..23068104ed6b
--- /dev/null
+++ b/resources/lib/codex/modules/CdxProgressBar-bidi.css
@@ -0,0 +1 @@
+.cdx-progress-bar{box-sizing:border-box;overflow-x:hidden}.cdx-progress-bar__bar{width:33.33%;height:100%}.cdx-progress-bar:not(.cdx-progress-bar--inline){position:relative;z-index:1;height:1rem;max-width:none}[dir] .cdx-progress-bar:not(.cdx-progress-bar--inline){border:1px solid var(--border-color-base, #a2a9b1);border-radius:9999px;box-shadow:0 2px 2px rgba(0,0,0,.2)}.cdx-progress-bar--inline{width:100%;height:.25rem}[dir] .cdx-progress-bar:not(.cdx-progress-bar--disabled) .cdx-progress-bar__bar{background-color:var(--background-color-progressive, #36c);animation-duration:1.6s;animation-timing-function:linear;animation-iteration-count:infinite}[dir=ltr] .cdx-progress-bar:not(.cdx-progress-bar--disabled) .cdx-progress-bar__bar{animation-name:cdx-animation-progress-bar__bar-ltr}[dir=rtl] .cdx-progress-bar:not(.cdx-progress-bar--disabled) .cdx-progress-bar__bar{animation-name:cdx-animation-progress-bar__bar-rtl}[dir] .cdx-progress-bar:not(.cdx-progress-bar--disabled).cdx-progress-bar--block{background-color:var(--background-color-base, #fff)}[dir] .cdx-progress-bar--disabled .cdx-progress-bar__bar{background-color:var(--background-color-disabled, #c8ccd1)}[dir] .cdx-progress-bar--disabled:not(.cdx-progress-bar--inline){background-color:var(--background-color-disabled-subtle, #eaecf0)}@keyframes cdx-animation-progress-bar__bar-ltr{0%{transform:translate(-100%)}to{transform:translate(300%)}}@keyframes cdx-animation-progress-bar__bar-rtl{0%{transform:translate(100%)}to{transform:translate(-300%)}}
diff --git a/resources/lib/codex/modules/CdxRadio-bidi.css b/resources/lib/codex/modules/CdxRadio-bidi.css
new file mode 100644
index 000000000000..625b9f375eda
--- /dev/null
+++ b/resources/lib/codex/modules/CdxRadio-bidi.css
@@ -0,0 +1 @@
+.cdx-radio{position:relative;min-width:20px;min-height:20px}.cdx-radio__wrapper{display:flex}.cdx-radio:not(.cdx-radio--inline){display:flex;flex-direction:column}[dir] .cdx-radio:not(.cdx-radio--inline){margin-bottom:12px}[dir] .cdx-radio:not(.cdx-radio--inline):last-child{margin-bottom:0}.cdx-radio--inline{display:inline-flex;white-space:nowrap}[dir=ltr] .cdx-radio--inline{margin-right:16px}[dir=rtl] .cdx-radio--inline{margin-left:16px}[dir=ltr] .cdx-radio--inline:last-child{margin-right:0}[dir=rtl] .cdx-radio--inline:last-child{margin-left:0}.cdx-radio__label,.cdx-radio__label.cdx-label{display:inline-flex;position:relative;z-index:0;line-height:1.4285714}[dir=ltr] .cdx-radio__label,[dir=ltr] .cdx-radio__label.cdx-label{padding-left:calc(1.25rem + 8px)}[dir=rtl] .cdx-radio__label,[dir=rtl] .cdx-radio__label.cdx-label{padding-right:calc(1.25rem + 8px)}[dir] .cdx-radio__label.cdx-label{padding-bottom:0}.cdx-radio__label.cdx-label .cdx-label__label__text{font-weight:400}.cdx-radio--inline .cdx-radio__label{display:inline}.cdx-radio__icon{position:absolute;box-sizing:border-box;min-width:20px;min-height:20px;width:1.25rem;height:1.25rem}[dir] .cdx-radio__icon{background-color:var(--background-color-base-fixed, #fff);border-width:1px;border-style:solid;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}[dir=ltr] .cdx-radio__icon{left:0}[dir=rtl] .cdx-radio__icon{right:0}.cdx-radio__input{opacity:0;position:absolute;z-index:1;min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;font-size:inherit}[dir] .cdx-radio__input{margin:0;cursor:inherit}[dir=ltr] .cdx-radio__input{left:0}[dir=rtl] .cdx-radio__input{right:0}[dir] .cdx-radio:hover>.cdx-radio__input:enabled,[dir] .cdx-radio:hover>.cdx-radio__input:enabled~.cdx-label .cdx-label__label,[dir] .cdx-radio:hover>.cdx-radio__input:enabled~.cdx-radio__label:not(.cdx-label){cursor:pointer}[dir] .cdx-radio__custom-input:not(.cdx-radio__custom-input--inline){padding-top:6px}[dir=ltr] .cdx-radio__custom-input:not(.cdx-radio__custom-input--inline){padding-left:calc(1.25rem + 8px)}[dir=rtl] .cdx-radio__custom-input:not(.cdx-radio__custom-input--inline){padding-right:calc(1.25rem + 8px)}[dir] .cdx-radio__icon{border-radius:50%}.cdx-radio__icon:before{content:" ";position:absolute;top:-.25rem;bottom:-.25rem}[dir] .cdx-radio__icon:before{right:-.25rem;left:-.25rem;border:1px solid var(--border-color-transparent, transparent);border-radius:50%}[dir] .cdx-radio__input:enabled+.cdx-radio__icon{border-color:var(--border-color-interactive, #72777d)}[dir] .cdx-radio__input:enabled:hover+.cdx-radio__icon{border-color:var(--border-color-progressive--hover, #447ff5)}[dir] .cdx-radio__input:enabled:active+.cdx-radio__icon{background-color:var(--background-color-progressive--active, #2a4b8d);border-color:var(--border-color-progressive--active, #2a4b8d)}[dir] .cdx-radio__input:enabled:focus+.cdx-radio__icon{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}[dir] .cdx-radio__input:enabled:checked+.cdx-radio__icon{border-width:6px;border-color:var(--border-color-progressive, #36c)}[dir] .cdx-radio__input:enabled:checked:hover+.cdx-radio__icon{border-color:var(--border-color-progressive--hover, #447ff5)}[dir] .cdx-radio__input:enabled:checked:focus+.cdx-radio__icon:before{border-color:var(--border-color-inverted, #fff)}[dir] .cdx-radio__input:enabled:checked:active+.cdx-radio__icon{background-color:var(--background-color-base-fixed, #fff);border-color:var(--border-color-progressive--active, #2a4b8d)}[dir] .cdx-radio__input:enabled:checked:active+.cdx-radio__icon:before{border-color:var(--border-color-progressive--active, #2a4b8d)}.cdx-radio__input:disabled~.cdx-radio__label,.cdx-radio__input:disabled~.cdx-radio__label.cdx-label{color:var(--color-disabled, #72777d)}[dir] .cdx-radio__input:disabled+.cdx-radio__icon{background-color:var(--background-color-disabled, #c8ccd1);border-color:var(--border-color-disabled, #c8ccd1)}[dir] .cdx-radio__input:disabled:checked+.cdx-radio__icon{background-color:var(--background-color-base-fixed, #fff);border-width:6px;border-color:var(--border-color-disabled, #c8ccd1)}
diff --git a/resources/lib/codex/modules/CdxSearchInput-bidi.css b/resources/lib/codex/modules/CdxSearchInput-bidi.css
new file mode 100644
index 000000000000..ad405a172e31
--- /dev/null
+++ b/resources/lib/codex/modules/CdxSearchInput-bidi.css
@@ -0,0 +1 @@
+.cdx-search-input--has-end-button{display:flex}[dir] .cdx-search-input--has-end-button{background-color:var(--background-color-base, #fff);border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px}.cdx-search-input--has-end-button .cdx-search-input__input-wrapper{flex-grow:1}[dir] .cdx-search-input--has-end-button .cdx-search-input__input-wrapper{margin:-1px}[dir=ltr] .cdx-search-input--has-end-button .cdx-search-input__input-wrapper .cdx-text-input{border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .cdx-search-input--has-end-button .cdx-search-input__input-wrapper .cdx-text-input{border-top-left-radius:0;border-bottom-left-radius:0}.cdx-search-input__end-button.cdx-button{flex-shrink:0}[dir=ltr] .cdx-search-input__end-button.cdx-button{margin:-1px -1px -1px 0;border-top-left-radius:0;border-bottom-left-radius:0}[dir=rtl] .cdx-search-input__end-button.cdx-button{margin:-1px 0 -1px -1px;border-top-right-radius:0;border-bottom-right-radius:0}.cdx-search-input__end-button.cdx-button:hover,.cdx-search-input__end-button.cdx-button:focus{z-index:1}.cdx-search-input__input-wrapper{position:relative}.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}[dir] .cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M12.2 13.6a7 7 0 111.4-1.4l5.4 5.4-1.4 1.4zM3 8a5 5 0 1010 0A5 5 0 003 8"/></svg>')}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M12.2 13.6a7 7 0 111.4-1.4l5.4 5.4-1.4 1.4zM3 8a5 5 0 1010 0A5 5 0 003 8"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M12.2 13.6a7 7 0 111.4-1.4l5.4 5.4-1.4 1.4zM3 8a5 5 0 1010 0A5 5 0 003 8"/></svg>')}[dir] .cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{background-color:var(--color-base, #202122)}}
diff --git a/resources/lib/codex/modules/CdxSearchResultTitle-bidi.css b/resources/lib/codex/modules/CdxSearchResultTitle-bidi.css
new file mode 100644
index 000000000000..f255d35f2a95
--- /dev/null
+++ b/resources/lib/codex/modules/CdxSearchResultTitle-bidi.css
@@ -0,0 +1 @@
+.cdx-search-result-title{display:inline-block;max-width:100%;font-weight:700}.cdx-search-result-title__match{font-weight:400}
diff --git a/resources/lib/codex/modules/CdxSelect-bidi.css b/resources/lib/codex/modules/CdxSelect-bidi.css
new file mode 100644
index 000000000000..0907c9cdca5f
--- /dev/null
+++ b/resources/lib/codex/modules/CdxSelect-bidi.css
@@ -0,0 +1 @@
+.cdx-select{box-sizing:border-box;min-width:256px;min-height:32px;font-size:inherit;line-height:1.375;-webkit-appearance:none;appearance:none}[dir] .cdx-select{border-width:1px;border-style:solid;border-radius:2px;padding-top:4px;padding-bottom:4px;background-repeat:no-repeat;background-size:max(.75rem,12px)}[dir=ltr] .cdx-select{padding-left:12px;padding-right:calc(16px + 1.25rem);background-position:center right 12px}[dir=rtl] .cdx-select{padding-right:12px;padding-left:calc(16px + 1.25rem);background-position:center left 12px}.cdx-select:disabled{color:var(--color-disabled, #72777d);opacity:1}[dir] .cdx-select:disabled{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1);background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%2372777d"><path d="m17.5 4.75-7.5 7.5-7.5-7.5L1 6.25l9 9 9-9z"/></svg>')}.cdx-select:enabled{color:var(--color-base, #202122)}[dir] .cdx-select:enabled{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1);transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23202122"><path d="m17.5 4.75-7.5 7.5-7.5-7.5L1 6.25l9 9 9-9z"/></svg>')}.cdx-select:enabled:hover{color:var(--color-base--hover, #404244)}[dir] .cdx-select:enabled:hover{background-color:var(--background-color-base, #fff);border-color:var(--border-color-base, #a2a9b1);cursor:pointer}.cdx-select:enabled:focus{outline:1px solid transparent}[dir] .cdx-select:enabled:focus{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-select:enabled:active{color:var(--color-emphasized, #000)}[dir] .cdx-select:enabled:active{border-color:var(--border-color-interactive, #72777d)}.cdx-select-vue{display:inline-block;position:relative}.cdx-select-vue__handle{box-sizing:border-box;min-width:256px;min-height:32px;font-size:inherit;line-height:1.375;position:relative;width:100%}[dir] .cdx-select-vue__handle{border-width:1px;border-style:solid;border-radius:2px;padding-top:4px;padding-bottom:4px}[dir=ltr] .cdx-select-vue__handle{padding-left:12px;padding-right:calc(16px + 1.25rem)}[dir=rtl] .cdx-select-vue__handle{padding-right:12px;padding-left:calc(16px + 1.25rem)}[dir=ltr] .cdx-select-vue--has-start-icon .cdx-select-vue__handle{padding-left:calc(20px + 1.25rem)}[dir=rtl] .cdx-select-vue--has-start-icon .cdx-select-vue__handle{padding-right:calc(20px + 1.25rem)}.cdx-select-vue__start-icon.cdx-icon{position:absolute;top:50%;min-width:20px;min-height:20px;width:1.25rem;height:1.25rem}[dir] .cdx-select-vue__start-icon.cdx-icon{transition-property:color;transition-duration:.1s;transform:translateY(-50%)}[dir=ltr] .cdx-select-vue__start-icon.cdx-icon{left:12px}[dir=rtl] .cdx-select-vue__start-icon.cdx-icon{right:12px}.cdx-select-vue__indicator.cdx-icon{color:var(--color-base, #202122);position:absolute;top:50%;min-width:12px;min-height:12px;width:.75rem;height:.75rem}[dir] .cdx-select-vue__indicator.cdx-icon{transition-property:color;transition-duration:.1s;transform:translateY(-50%)}[dir=ltr] .cdx-select-vue__indicator.cdx-icon{right:12px}[dir=rtl] .cdx-select-vue__indicator.cdx-icon{left:12px}.cdx-select-vue--enabled .cdx-select-vue__handle{color:var(--color-base, #202122)}[dir] .cdx-select-vue--enabled .cdx-select-vue__handle{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1);transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-select-vue--enabled .cdx-select-vue__handle:hover{color:var(--color-base--hover, #404244)}[dir] .cdx-select-vue--enabled .cdx-select-vue__handle:hover{background-color:var(--background-color-base, #fff);border-color:var(--border-color-base, #a2a9b1);cursor:pointer}.cdx-select-vue--enabled .cdx-select-vue__handle:focus{outline:1px solid transparent}[dir] .cdx-select-vue--enabled .cdx-select-vue__handle:focus{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-select-vue--enabled .cdx-select-vue__handle:active{color:var(--color-emphasized, #000)}[dir] .cdx-select-vue--enabled .cdx-select-vue__handle:active{border-color:var(--border-color-interactive, #72777d)}.cdx-select-vue--enabled .cdx-select-vue__handle:hover .cdx-select-vue__indicator{color:var(--color-base--hover, #404244)}[dir] .cdx-select-vue--enabled.cdx-select-vue--expanded .cdx-select-vue__handle{background-color:var(--background-color-base, #fff)}.cdx-select-vue--enabled.cdx-select-vue--expanded .cdx-select-vue__handle .cdx-select-vue__indicator{color:var(--color-base, #202122)}.cdx-select-vue--disabled .cdx-select-vue__handle{color:var(--color-disabled, #72777d)}[dir] .cdx-select-vue--disabled .cdx-select-vue__handle{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1);cursor:default}.cdx-select-vue--disabled .cdx-select-vue__indicator,.cdx-select-vue--disabled .cdx-select-vue__start-icon{color:var(--color-disabled, #72777d)}[dir] .cdx-select-vue--status-error.cdx-select-vue--enabled .cdx-select-vue__handle{border-color:var(--border-color-error, #b32424)}[dir] .cdx-select-vue--status-error.cdx-select-vue--enabled .cdx-select-vue__handle:hover{border-color:var(--border-color-error--hover, #ff4242)}[dir] .cdx-select-vue--status-error.cdx-select-vue--enabled .cdx-select-vue__handle:focus{border-color:var(--border-color-progressive--focus, #36c)}.cdx-dialog .cdx-select-vue{position:static}
diff --git a/resources/lib/codex/modules/CdxTab-bidi.css b/resources/lib/codex/modules/CdxTab-bidi.css
new file mode 100644
index 000000000000..be5980105c92
--- /dev/null
+++ b/resources/lib/codex/modules/CdxTab-bidi.css
@@ -0,0 +1 @@
+.cdx-tab[aria-hidden=true]{display:none}.cdx-tab:focus{outline:1px solid transparent}
diff --git a/resources/lib/codex/modules/CdxTable-bidi.css b/resources/lib/codex/modules/CdxTable-bidi.css
new file mode 100644
index 000000000000..eb100a7606e4
--- /dev/null
+++ b/resources/lib/codex/modules/CdxTable-bidi.css
@@ -0,0 +1 @@
+.cdx-table-pager{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:12px}[dir] .cdx-table-pager{padding:12px}@media screen and (min-width: 640px){.cdx-table-pager{flex-wrap:nowrap}}.cdx-table-pager__start .cdx-select,.cdx-table-pager__start .cdx-select-vue__handle{min-width:8rem}.cdx-table-pager__center{color:var(--color-subtle, #54595d);flex:1 1 40%;font-size:1rem}[dir] .cdx-table-pager__center{text-align:center}@media screen and (min-width: 640px){.cdx-table-pager__center{flex:0 1 auto}}.cdx-table-pager__end{display:flex;flex:1 0 100%;justify-content:space-between;gap:4px}@media screen and (min-width: 640px){.cdx-table-pager__end{flex:0 1 auto}}.cdx-table{color:var(--color-base, #202122);word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}[dir] .cdx-table{border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px}.cdx-table__header{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:16px;box-sizing:border-box;min-height:64px}[dir] .cdx-table__header{padding:16px 12px}.cdx-table__header__caption{color:var(--color-emphasized, #000);font-size:1.125rem;font-weight:700;line-height:1.25}[dir] .cdx-table__pagination--bottom{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__pagination-status--short{display:block}[dir=ltr] .cdx-table__pagination-status--short{text-align:right}[dir=rtl] .cdx-table__pagination-status--short{text-align:left}@media screen and (min-width: 640px){.cdx-table__pagination-status--short{display:none}}.cdx-table__pagination-status--long{display:none}@media screen and (min-width: 640px){.cdx-table__pagination-status--long{display:block}[dir] .cdx-table__pagination-status--long{text-align:center}}.cdx-table__pending-indicator{position:absolute}.cdx-table__table-wrapper{position:relative;overflow-x:auto}.cdx-table__table{min-width:100%;line-height:1.375;border-collapse:collapse}.cdx-table__table caption{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;overflow:hidden}[dir] .cdx-table__table caption{margin:-1px;border:0;padding:0}[dir] .cdx-table__table th,[dir] .cdx-table__table td{padding:12px}.cdx-table__table th{color:var(--color-emphasized, #000)}[dir=ltr] .cdx-table__table th{text-align:left}[dir=rtl] .cdx-table__table th{text-align:right}.cdx-table__table thead th{vertical-align:bottom}[dir] .cdx-table__table thead th{border-bottom:1px solid var(--border-color-base, #a2a9b1)}[dir] .cdx-table__table tfoot td,[dir] .cdx-table__table tfoot th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table tbody td,.cdx-table__table tbody th{vertical-align:top}[dir] .cdx-table__table tbody td,[dir] .cdx-table__table tbody th{border-top:1px solid var(--border-color-subtle, #c8ccd1)}[dir] .cdx-table__table tbody tr:first-child td,[dir] .cdx-table__table tbody tr:first-child th{border-top:0}.cdx-table__table__sort-button{display:flex;align-items:flex-end;gap:8px;width:100%;font-family:inherit;font-size:inherit;font-weight:700;line-height:1.4285714;text-decoration:none}[dir] .cdx-table__table__sort-button{background-color:var(--background-color-transparent, transparent);border:0;padding:12px;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}[dir=ltr] .cdx-table__table__sort-button{text-align:left}[dir=rtl] .cdx-table__table__sort-button{text-align:right}[dir] .cdx-table__table__sort-button:hover{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1);cursor:pointer}.cdx-table__table__sort-button:focus{outline:1px solid transparent}[dir] .cdx-table__table__sort-button:active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-base, #a2a9b1)}[dir] .cdx-table__table__sort-button:focus:not(:active){background-color:var(--background-color-base, #fff);box-shadow:inset 0 0 0 2px var(--box-shadow-color-progressive--focus, #36c)}.cdx-table__table__sort-icon{color:var(--color-subtle, #54595d);flex-shrink:0;height:1.4285714em}[dir] .cdx-table__table .cdx-table__table__cell--align-center{text-align:center}[dir=ltr] .cdx-table__table .cdx-table__table__cell--align-end{text-align:right}[dir=rtl] .cdx-table__table .cdx-table__table__cell--align-end{text-align:left}.cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-button{flex-direction:row-reverse}[dir=ltr] .cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-button{text-align:right}[dir=rtl] .cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-button{text-align:left}[dir] .cdx-table__table .cdx-table__table__cell--align-number,.cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-button{text-align:right}[dir=ltr] .cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-button{flex-direction:row-reverse}[dir=rtl] .cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-button{flex-direction:row}[dir] .cdx-table__table .cdx-table__table__cell--has-sort{padding:0}.cdx-table__table__select-rows{width:1px}[dir] .cdx-table__table__row--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-table__table--layout-fixed{table-layout:fixed}[dir=ltr] .cdx-table__table--borders-vertical th,[dir=ltr] .cdx-table__table--borders-vertical td{border-right:1px solid var(--border-color-subtle, #c8ccd1)}[dir=rtl] .cdx-table__table--borders-vertical th,[dir=rtl] .cdx-table__table--borders-vertical td{border-left:1px solid var(--border-color-subtle, #c8ccd1)}[dir=ltr] .cdx-table__table--borders-vertical th:last-child,[dir=ltr] .cdx-table__table--borders-vertical td:last-child{border-right:0}[dir=rtl] .cdx-table__table--borders-vertical th:last-child,[dir=rtl] .cdx-table__table--borders-vertical td:last-child{border-left:0}[dir] .cdx-table__table--borders-vertical thead tr:not(:first-child) th{border-top:1px solid var(--border-color-base, #a2a9b1)}[dir] .cdx-table__header+.cdx-table__table-wrapper .cdx-table__table--borders-vertical thead th{border-top:1px solid var(--border-color-base, #a2a9b1)}[dir] .cdx-table__table__empty-state{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state-content{color:var(--color-subtle, #54595d);display:flex;align-items:center;justify-content:center;min-height:40px}.cdx-table__footer{display:flex;align-items:center;gap:16px;box-sizing:border-box;min-height:64px}[dir] .cdx-table__footer{border-top:1px solid var(--border-color-base, #a2a9b1);padding:12px}
diff --git a/resources/lib/codex/modules/CdxTable-rtl.css b/resources/lib/codex/modules/CdxTable-rtl.css
index 996e2605feea..b72553ed9596 100644
--- a/resources/lib/codex/modules/CdxTable-rtl.css
+++ b/resources/lib/codex/modules/CdxTable-rtl.css
@@ -1 +1 @@
-.cdx-table-pager{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px}@media screen and (min-width: 640px){.cdx-table-pager{flex-wrap:nowrap}}.cdx-table-pager__start .cdx-select,.cdx-table-pager__start .cdx-select-vue__handle{min-width:8rem}.cdx-table-pager__center{color:var(--color-subtle, #54595d);flex:1 1 40%;font-size:1rem;text-align:center}@media screen and (min-width: 640px){.cdx-table-pager__center{flex:0 1 auto}}.cdx-table-pager__end{display:flex;flex:1 0 100%;justify-content:space-between;gap:4px}@media screen and (min-width: 640px){.cdx-table-pager__end{flex:0 1 auto}}.cdx-table{color:var(--color-base, #202122);border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-table__header{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:16px;box-sizing:border-box;min-height:64px;padding:16px 12px}.cdx-table__header__caption{color:var(--color-emphasized, #000);font-size:1.125rem;font-weight:700;line-height:1.25}.cdx-table__pagination--bottom{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__pagination-status--short{display:block;text-align:left}@media screen and (min-width: 640px){.cdx-table__pagination-status--short{display:none}}.cdx-table__pagination-status--long{display:none}@media screen and (min-width: 640px){.cdx-table__pagination-status--long{display:block;text-align:center}}.cdx-table__pending-indicator{position:absolute}.cdx-table__table-wrapper{position:relative;overflow-x:auto}.cdx-table__table{min-width:100%;line-height:1.375;border-collapse:collapse}.cdx-table__table caption{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}.cdx-table__table th,.cdx-table__table td{padding:12px}.cdx-table__table th{color:var(--color-emphasized, #000);text-align:right}.cdx-table__table thead th{border-bottom:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table tfoot td,.cdx-table__table tfoot th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table tbody td,.cdx-table__table tbody th{border-top:1px solid var(--border-color-subtle, #c8ccd1);vertical-align:top}.cdx-table__table tbody tr:first-child td,.cdx-table__table tbody tr:first-child th{border-top:0}.cdx-table__table__sort-button{background-color:var(--background-color-transparent, transparent);display:flex;align-items:center;justify-content:space-between;width:100%;max-width:16rem;border:0;padding:12px;font-family:inherit;font-size:inherit;font-weight:700;line-height:1.4285714;text-align:right;text-decoration:none;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-table__table__sort-button:hover{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1);cursor:pointer}.cdx-table__table__sort-button:focus{outline:1px solid transparent}.cdx-table__table__sort-button:active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-base, #a2a9b1)}.cdx-table__table__sort-button:focus:not(:active){background-color:var(--background-color-base, #fff);box-shadow:inset 0 0 0 2px var(--box-shadow-color-progressive--focus, #36c)}.cdx-table__table__sort-icon{color:var(--color-subtle, #54595d);margin-right:8px}.cdx-table__table .cdx-table__table__cell--align-center{text-align:center}.cdx-table__table .cdx-table__table__cell--align-end{text-align:left}.cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-button{flex-direction:row-reverse;text-align:left}.cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-icon{margin-left:8px;margin-right:0}.cdx-table__table .cdx-table__table__cell--align-number{text-align:right}.cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-button{flex-direction:row;text-align:right}.cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-icon{margin-right:8px;margin-left:0}.cdx-table__table .cdx-table__table__cell--has-sort{padding:0}.cdx-table__table__select-rows{width:1px}.cdx-table__table__row--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-table__table--layout-fixed{table-layout:fixed}.cdx-table__table--borders-vertical th,.cdx-table__table--borders-vertical td{border-left:1px solid var(--border-color-subtle, #c8ccd1)}.cdx-table__table--borders-vertical th:last-child,.cdx-table__table--borders-vertical td:last-child{border-left:0}.cdx-table__table--borders-vertical thead tr:not(:first-child) th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__header+.cdx-table__table-wrapper .cdx-table__table--borders-vertical thead th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state-content{color:var(--color-subtle, #54595d);display:flex;align-items:center;justify-content:center;min-height:40px}.cdx-table__footer{display:flex;align-items:center;gap:16px;box-sizing:border-box;min-height:64px;border-top:1px solid var(--border-color-base, #a2a9b1);padding:12px}
+.cdx-table-pager{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px}@media screen and (min-width: 640px){.cdx-table-pager{flex-wrap:nowrap}}.cdx-table-pager__start .cdx-select,.cdx-table-pager__start .cdx-select-vue__handle{min-width:8rem}.cdx-table-pager__center{color:var(--color-subtle, #54595d);flex:1 1 40%;font-size:1rem;text-align:center}@media screen and (min-width: 640px){.cdx-table-pager__center{flex:0 1 auto}}.cdx-table-pager__end{display:flex;flex:1 0 100%;justify-content:space-between;gap:4px}@media screen and (min-width: 640px){.cdx-table-pager__end{flex:0 1 auto}}.cdx-table{color:var(--color-base, #202122);border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-table__header{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:16px;box-sizing:border-box;min-height:64px;padding:16px 12px}.cdx-table__header__caption{color:var(--color-emphasized, #000);font-size:1.125rem;font-weight:700;line-height:1.25}.cdx-table__pagination--bottom{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__pagination-status--short{display:block;text-align:left}@media screen and (min-width: 640px){.cdx-table__pagination-status--short{display:none}}.cdx-table__pagination-status--long{display:none}@media screen and (min-width: 640px){.cdx-table__pagination-status--long{display:block;text-align:center}}.cdx-table__pending-indicator{position:absolute}.cdx-table__table-wrapper{position:relative;overflow-x:auto}.cdx-table__table{min-width:100%;line-height:1.375;border-collapse:collapse}.cdx-table__table caption{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}.cdx-table__table th,.cdx-table__table td{padding:12px}.cdx-table__table th{color:var(--color-emphasized, #000);text-align:right}.cdx-table__table thead th{border-bottom:1px solid var(--border-color-base, #a2a9b1);vertical-align:bottom}.cdx-table__table tfoot td,.cdx-table__table tfoot th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table tbody td,.cdx-table__table tbody th{border-top:1px solid var(--border-color-subtle, #c8ccd1);vertical-align:top}.cdx-table__table tbody tr:first-child td,.cdx-table__table tbody tr:first-child th{border-top:0}.cdx-table__table__sort-button{background-color:var(--background-color-transparent, transparent);display:flex;align-items:flex-end;gap:8px;width:100%;border:0;padding:12px;font-family:inherit;font-size:inherit;font-weight:700;line-height:1.4285714;text-align:right;text-decoration:none;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-table__table__sort-button:hover{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1);cursor:pointer}.cdx-table__table__sort-button:focus{outline:1px solid transparent}.cdx-table__table__sort-button:active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-base, #a2a9b1)}.cdx-table__table__sort-button:focus:not(:active){background-color:var(--background-color-base, #fff);box-shadow:inset 0 0 0 2px var(--box-shadow-color-progressive--focus, #36c)}.cdx-table__table__sort-icon{color:var(--color-subtle, #54595d);flex-shrink:0;height:1.4285714em}.cdx-table__table .cdx-table__table__cell--align-center{text-align:center}.cdx-table__table .cdx-table__table__cell--align-end{text-align:left}.cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-button{flex-direction:row-reverse;text-align:left}.cdx-table__table .cdx-table__table__cell--align-number{text-align:right}.cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-button{flex-direction:row;text-align:right}.cdx-table__table .cdx-table__table__cell--has-sort{padding:0}.cdx-table__table__select-rows{width:1px}.cdx-table__table__row--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-table__table--layout-fixed{table-layout:fixed}.cdx-table__table--borders-vertical th,.cdx-table__table--borders-vertical td{border-left:1px solid var(--border-color-subtle, #c8ccd1)}.cdx-table__table--borders-vertical th:last-child,.cdx-table__table--borders-vertical td:last-child{border-left:0}.cdx-table__table--borders-vertical thead tr:not(:first-child) th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__header+.cdx-table__table-wrapper .cdx-table__table--borders-vertical thead th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state-content{color:var(--color-subtle, #54595d);display:flex;align-items:center;justify-content:center;min-height:40px}.cdx-table__footer{display:flex;align-items:center;gap:16px;box-sizing:border-box;min-height:64px;border-top:1px solid var(--border-color-base, #a2a9b1);padding:12px}
diff --git a/resources/lib/codex/modules/CdxTable.cjs b/resources/lib/codex/modules/CdxTable.cjs
index 3ccf285e29d6..e7c796c4e849 100644
--- a/resources/lib/codex/modules/CdxTable.cjs
+++ b/resources/lib/codex/modules/CdxTable.cjs
@@ -1 +1 @@
-"use strict";const e=require("vue"),te=require("./CdxCheckbox.cjs"),f=require("./Icon.js"),ae=require("./CdxButton.cjs"),ne=require("./CdxSelect.cjs"),$=require("./useModelWrapper.cjs"),c=require("./useI18n.cjs"),_=require("./_plugin-vue_export-helper.js"),oe=require("./CdxProgressBar.cjs"),y=require("./constants.js"),le=e.defineComponent({name:"CdxTablePager",components:{CdxButton:ae,CdxIcon:f.CdxIcon,CdxSelect:ne},props:{paginationSizeOptions:{type:Array,required:!0},itemsPerPage:{type:Number,required:!0},nextDisabled:{type:Boolean,default:!1},prevDisabled:{type:Boolean,default:!1},lastDisabled:{type:Boolean,default:!1}},emits:["update:itemsPerPage","first","last","next","prev"],setup(t,{emit:n}){const s=$(e.toRef(t,"itemsPerPage"),n,"update:itemsPerPage"),i=c("cdx-table-pager-items-per-page-default","Results per page"),v=c("cdx-table-pager-items-per-page-current",d=>"".concat(d," rows"),[s]),u=c("cdx-table-pager-button-first-page","First page"),p=c("cdx-table-pager-button-next-page","Next page"),g=c("cdx-table-pager-button-prev-page","Previous page"),m=c("cdx-table-pager-button-last-page","Last page");return{defaultItemsPerPageLabel:i,currentItemsPerPageLabel:v,btnLabelFirst:u,btnLabelNext:p,btnLabelPrev:g,btnLabelLast:m,wrappedItemsPerPage:s,cdxIconPrevious:f.d7,cdxIconNext:f.j6,cdxIconMoveFirst:f.P6,cdxIconMoveLast:f.N6}}}),se={class:"cdx-table-pager"},ie={class:"cdx-table-pager__start"},re={key:0},de={key:1},ce={class:"cdx-table-pager__center"},ue={class:"cdx-table-pager__end"};function pe(t,n,s,i,v,u){const p=e.resolveComponent("cdx-select"),g=e.resolveComponent("cdx-icon"),m=e.resolveComponent("cdx-button");return e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",ie,[e.createVNode(p,{selected:t.wrappedItemsPerPage,"onUpdate:selected":n[0]||(n[0]=d=>t.wrappedItemsPerPage=d),"default-label":t.defaultItemsPerPageLabel,"menu-items":t.paginationSizeOptions},{label:e.withCtx(({selectedMenuItem:d,defaultLabel:l})=>[d?(e.openBlock(),e.createElementBlock("span",re,[e.createElementVNode("span",null,e.toDisplayString(t.currentItemsPerPageLabel),1)])):(e.openBlock(),e.createElementBlock("span",de,e.toDisplayString(l),1))]),_:1},8,["selected","default-label","menu-items"])]),e.createElementVNode("div",ce,[e.renderSlot(t.$slots,"default")]),e.createElementVNode("div",ue,[e.createVNode(m,{disabled:t.prevDisabled,class:"cdx-table-pager__button-first",weight:"quiet","aria-label":t.btnLabelFirst,onClick:n[1]||(n[1]=d=>t.$emit("first"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconMoveFirst},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.prevDisabled,class:"cdx-table-pager__button-prev",weight:"quiet","aria-label":t.btnLabelPrev,onClick:n[2]||(n[2]=d=>t.$emit("prev"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconPrevious},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.nextDisabled,class:"cdx-table-pager__button-next",weight:"quiet","aria-label":t.btnLabelNext,onClick:n[3]||(n[3]=d=>t.$emit("next"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconNext},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.nextDisabled||t.lastDisabled,class:"cdx-table-pager__button-last",weight:"quiet","aria-label":t.btnLabelLast,onClick:n[4]||(n[4]=d=>t.$emit("last"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconMoveLast},null,8,["icon"])]),_:1},8,["disabled","aria-label"])])])}const ge=_._export_sfc(le,[["render",pe]]),me=y.makeStringTypeValidator(y.TableTextAlignments),be=y.makeStringTypeValidator(y.TablePaginationPositions),ve={none:f.T7,asc:f.x8,desc:f.l4},fe={none:"none",asc:"ascending",desc:"descending"},he=e.defineComponent({name:"CdxTable",components:{CdxCheckbox:te,CdxIcon:f.CdxIcon,CdxTablePager:ge,CdxProgressBar:oe},props:{caption:{type:String,required:!0},hideCaption:{type:Boolean,default:!1},columns:{type:Array,default:()=>[],validator:t=>{const n=t.map(i=>i.id);return new Set(n).size===n.length?!0:(console.warn('Each column in the "columns" prop of CdxTable must have a unique "id".'),!1)}},data:{type:Array,default:()=>[],validator:(t,n)=>{if(!Array.isArray(n.columns)||n.columns.length===0||t.length===0)return!0;const s=n.columns.some(v=>"allowSort"in v),i=t.every(v=>y.TableRowIdentifier in v);return s&&n.useRowSelection&&!i?(console.warn('For CdxTables with sorting and row selection, each row in the "data" prop must have a "TableRowIdentifier".'),!1):!0}},useRowHeaders:{type:Boolean,default:!1},showVerticalBorders:{type:Boolean,default:!1},useRowSelection:{type:Boolean,default:!1},selectedRows:{type:Array,default:()=>[]},sort:{type:Object,default:()=>({})},pending:{type:Boolean,default:!1},paginate:{type:Boolean,default:!1},serverPagination:{type:Boolean,default:!1},totalRows:{type:Number,default:NaN},paginationPosition:{type:String,default:"bottom",validator:be},paginationSizeOptions:{type:Array,default:()=>[{value:10},{value:20},{value:50}],validator:t=>{const n=s=>typeof s.value=="number";return t.every(n)?!0:(console.warn('"value" property of all menu items in PaginationOptions must be a number.'),!1)}},paginationSizeDefault:{type:Number,default:t=>t.paginate&&t.serverPagination?t.data.length:t.paginationSizeOptions[0].value}},emits:["update:selectedRows","update:sort","load-more","last"],setup(t,{emit:n}){const s=e.ref(0),i=e.ref(t.paginationSizeDefault),v=e.computed(()=>t.serverPagination&&t.paginate?t.data:t.paginate?t.data.slice(s.value,i.value+s.value):t.data),u=e.computed(()=>{var a;return t.serverPagination?(a=t.totalRows)!=null?a:NaN:t.data.length}),p=e.computed(()=>isNaN(u.value)),g=e.computed(()=>v.value.length),m=e.computed(()=>s.value+1),d=e.computed(()=>s.value+g.value),l=e.computed(()=>p.value),h=e.computed(()=>s.value<=0),b=e.computed(()=>p.value?g.value<i.value:s.value+i.value>=u.value),x=c("cdx-table-pagination-status-message-determinate-short",(a,o,r)=>"".concat(a,"–").concat(o," of ").concat(r),[m,d,u]),D=c("cdx-table-pagination-status-message-determinate-long",(a,o,r)=>"Showing results ".concat(a,"–").concat(o," of ").concat(r),[m,d,u]),E=c("cdx-table-pagination-status-message-indeterminate-short",(a,o)=>"".concat(a,"–").concat(o," of many"),[m,d]),L=c("cdx-table-pagination-status-message-indeterminate-long",(a,o)=>"Showing results ".concat(a,"–").concat(o," of many"),[m,d]),B=c("cdx-table-pagination-status-message-indeterminate-final",a=>"Showing the last ".concat(a," results"),[g]),V=c("cdx-table-pagination-status-message-pending","Loading results..."),R=e.computed(()=>t.pending?V.value:p.value&&b.value?B.value:p.value?E.value:x.value),I=e.computed(()=>t.pending?V.value:p.value&&b.value?B.value:p.value?L.value:D.value);function F(){s.value+=i.value,t.serverPagination&&n("load-more",s.value,i.value)}function T(){s.value-i.value<1?P():(s.value-=i.value,t.serverPagination&&n("load-more",s.value,i.value))}function P(){s.value=0,t.serverPagination&&n("load-more",s.value,i.value)}function z(){u.value%i.value===0?(s.value=u.value-i.value,n("load-more",s.value,i.value)):(s.value=Math.floor(u.value/i.value)*i.value,n("load-more",s.value,i.value))}e.watch(i,a=>{t.serverPagination&&n("load-more",s.value,a)});const C=$(e.toRef(t,"selectedRows"),n,"update:selectedRows"),w=e.ref(u.value===C.value.length),k=e.ref(!1),A=e.computed(()=>Object.keys(t.sort)[0]),q=e.computed(()=>t.columns.some(a=>a.allowSort)),M=e.computed(()=>{var o;return{"cdx-table__table--layout-fixed":(o=t.columns)==null?void 0:o.some(r=>"width"in r||"minWidth"in r),"cdx-table__table--borders-vertical":t.showVerticalBorders}}),O=c("cdx-table-sort-caption",a=>"".concat(a,", column headers with buttons are sortable."),[e.toRef(t,"caption")]),U=(a,o)=>c("cdx-table-select-row-label",(r,S)=>"Select row ".concat(r," of ").concat(S),[()=>a,()=>o]).value,H=c("cdx-table-select-all-label","Select all rows");function N(a,o){return y.TableRowIdentifier in a?a[y.TableRowIdentifier]:o}function W(a,o){const r=N(a,o);return{"cdx-table__row--selected":C.value.indexOf(r)!==-1}}function K(a){const o=t.columns[0].id;if(t.useRowHeaders===!0&&a===o)return"row"}function j(a){const o=t.columns[0].id;return t.useRowHeaders&&a===o?"th":"td"}function G(a,o=!1){if("textAlign"in a&&!me(a.textAlign)){console.warn("Invalid value for TableColumn textAlign property.");return}return{["cdx-table__table__cell--align-".concat(a.textAlign)]:"textAlign"in a&&a.textAlign!=="start","cdx-table__table__cell--has-sort":o}}function J(a){const o={};return"width"in a&&(o.width=a.width),"minWidth"in a&&(o.minWidth=a.minWidth),o}function Q(a){if(u.value===a.length){w.value=!0,k.value=!1;return}w.value=!1,u.value>a.length&&(k.value=!0),a.length===0&&(k.value=!1)}function X(a){k.value=!1,a?C.value=t.data.map((o,r)=>N(o,r)):C.value=[]}function Y(a){var S;const o=(S=t.sort[a])!=null?S:"none";let r="asc";o==="asc"&&(r="desc"),o==="desc"&&(r="none"),n("update:sort",{[a]:r})}function Z(a){var r;const o=(r=t.sort[a])!=null?r:"none";return ve[o]}function ee(a,o=!1){var r;if(o){const S=(r=t.sort[a])!=null?r:"none";return S==="none"?void 0:fe[S]}}return{dataForDisplay:v,pageSize:i,onNext:F,onPrev:T,onFirst:P,onLast:z,nextDisabled:b,prevDisabled:h,lastDisabled:l,paginationStatusMessageShort:R,paginationStatusMessageLong:I,wrappedSelectedRows:C,selectAll:w,selectAllIndeterminate:k,activeSortColumn:A,hasSortableColumns:q,tableClasses:M,getRowKey:N,getRowClass:W,getRowHeaderScope:K,getCellElement:j,getCellClass:G,getCellStyle:J,handleRowSelection:Q,handleSelectAll:X,handleSort:Y,getSortIcon:Z,getSortOrder:ee,translatedSortCaption:O,translatedSelectRowLabel:U,translatedSelectAllLabel:H}}}),Se={class:"cdx-table",tabindex:"0"},ye={key:0,class:"cdx-table__header"},Ce=["aria-hidden"],ke={class:"cdx-table__header__content"},we={class:"cdx-table__pagination-status--long"},Ne={class:"cdx-table__pagination-status--short"},Be={class:"cdx-table__table-wrapper"},Ve={key:0},Pe={key:0,class:"cdx-table__table__select-rows"},$e=["aria-sort"],_e=["aria-selected","onClick"],xe={key:0},De={key:0},Ee={key:1},Le={class:"cdx-table__table__empty-state"},Re={class:"cdx-table__table__empty-state-content"},Ie={class:"cdx-table__pagination-status--long"},Fe={class:"cdx-table__pagination-status--short"},Te={key:3,class:"cdx-table__footer"};function ze(t,n,s,i,v,u){const p=e.resolveComponent("cdx-table-pager"),g=e.resolveComponent("cdx-checkbox"),m=e.resolveComponent("cdx-icon"),d=e.resolveComponent("cdx-progress-bar");return e.openBlock(),e.createElementBlock("div",Se,[!t.hideCaption||t.$slots.header&&t.$slots.header().length>0?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("div",{class:"cdx-table__header__caption","aria-hidden":t.$slots.header&&t.$slots.header().length>0?void 0:!0},[t.hideCaption?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.caption),1)],64))],8,Ce),e.createElementVNode("div",ke,[e.renderSlot(t.$slots,"header")])])):e.createCommentVNode("v-if",!0),t.paginate&&(t.paginationPosition==="top"||t.paginationPosition==="both")?(e.openBlock(),e.createBlock(p,{key:1,"items-per-page":t.pageSize,"onUpdate:itemsPerPage":n[0]||(n[0]=l=>t.pageSize=l),class:"cdx-table__pagination--top","pagination-size-options":t.paginationSizeOptions,"prev-disabled":t.prevDisabled,"next-disabled":t.nextDisabled,"last-disabled":t.lastDisabled,onNext:t.onNext,onPrev:t.onPrev,onFirst:t.onFirst,onLast:t.onLast},{default:e.withCtx(()=>[e.createElementVNode("span",we,e.toDisplayString(t.paginationStatusMessageLong),1),e.createElementVNode("span",Ne,e.toDisplayString(t.paginationStatusMessageShort),1)]),_:1},8,["items-per-page","pagination-size-options","prev-disabled","next-disabled","last-disabled","onNext","onPrev","onFirst","onLast"])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Be,[e.createElementVNode("table",{class:e.normalizeClass(["cdx-table__table",t.tableClasses])},[e.createElementVNode("caption",null,[t.hasSortableColumns?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.translatedSortCaption),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.caption),1)],64))]),e.renderSlot(t.$slots,"thead",{},()=>[t.columns.length>0?(e.openBlock(),e.createElementBlock("thead",Ve,[e.createElementVNode("tr",null,[t.useRowSelection?(e.openBlock(),e.createElementBlock("th",Pe,[e.createVNode(g,{modelValue:t.selectAll,"onUpdate:modelValue":[n[1]||(n[1]=l=>t.selectAll=l),t.handleSelectAll],"hide-label":!0,indeterminate:t.selectAllIndeterminate},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.translatedSelectAllLabel),1)]),_:1},8,["modelValue","indeterminate","onUpdate:modelValue"])])):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,l=>(e.openBlock(),e.createElementBlock("th",{key:l.id,scope:"col",class:e.normalizeClass(t.getCellClass(l,l.allowSort)),"aria-sort":t.getSortOrder(l.id,l.allowSort),style:e.normalizeStyle(t.getCellStyle(l))},[l.allowSort?(e.openBlock(),e.createElementBlock("button",{key:0,"aria-selected":l.id===t.activeSortColumn,class:"cdx-table__table__sort-button",onClick:h=>t.handleSort(l.id)},[e.createTextVNode(e.toDisplayString(l.label)+" ",1),e.createVNode(m,{icon:t.getSortIcon(l.id),size:"small",class:"cdx-table__table__sort-icon","aria-hidden":"true"},null,8,["icon"])],8,_e)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.label),1)],64))],14,$e))),128))])])):e.createCommentVNode("v-if",!0)]),t.pending?(e.openBlock(),e.createBlock(d,{key:0,inline:!0,class:"cdx-table__pending-indicator"})):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"tbody",{},()=>[t.dataForDisplay.length>0?(e.openBlock(),e.createElementBlock("tbody",xe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.dataForDisplay,(l,h)=>(e.openBlock(),e.createElementBlock("tr",{key:t.getRowKey(l,h),class:e.normalizeClass(t.getRowClass(l,h))},[t.useRowSelection?(e.openBlock(),e.createElementBlock("td",De,[e.createVNode(g,{modelValue:t.wrappedSelectedRows,"onUpdate:modelValue":[n[2]||(n[2]=b=>t.wrappedSelectedRows=b),t.handleRowSelection],"input-value":t.getRowKey(l,h),"hide-label":!0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.translatedSelectRowLabel(h+1,t.dataForDisplay.length)),1)]),_:2},1032,["modelValue","input-value","onUpdate:modelValue"])])):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,b=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.getCellElement(b.id)),{key:b.id,scope:t.getRowHeaderScope(b.id),class:e.normalizeClass(t.getCellClass(b))},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"item-"+b.id,{item:l[b.id],row:l},()=>[e.createTextVNode(e.toDisplayString(l[b.id]),1)])]),_:2},1032,["scope","class"]))),128))],2))),128))])):t.$slots["empty-state"]&&t.$slots["empty-state"]().length>0?(e.openBlock(),e.createElementBlock("tbody",Ee,[e.createElementVNode("tr",Le,[e.createElementVNode("td",Re,[e.renderSlot(t.$slots,"empty-state")])])])):e.createCommentVNode("v-if",!0)]),e.renderSlot(t.$slots,"tfoot")],2)]),t.paginate&&(t.paginationPosition==="bottom"||t.paginationPosition==="both")?(e.openBlock(),e.createBlock(p,{key:2,"items-per-page":t.pageSize,"onUpdate:itemsPerPage":n[3]||(n[3]=l=>t.pageSize=l),class:"cdx-table__pagination--bottom","pagination-size-options":t.paginationSizeOptions,"prev-disabled":t.prevDisabled,"next-disabled":t.nextDisabled,"last-disabled":t.lastDisabled,onNext:t.onNext,onPrev:t.onPrev,onFirst:t.onFirst,onLast:t.onLast},{default:e.withCtx(()=>[e.createElementVNode("span",Ie,e.toDisplayString(t.paginationStatusMessageLong),1),e.createElementVNode("span",Fe,e.toDisplayString(t.paginationStatusMessageShort),1)]),_:1},8,["items-per-page","pagination-size-options","prev-disabled","next-disabled","last-disabled","onNext","onPrev","onFirst","onLast"])):e.createCommentVNode("v-if",!0),t.$slots.footer&&t.$slots.footer().length>0?(e.openBlock(),e.createElementBlock("div",Te,[e.renderSlot(t.$slots,"footer")])):e.createCommentVNode("v-if",!0)])}const Ae=_._export_sfc(he,[["render",ze]]);module.exports=Ae;
+"use strict";const e=require("vue"),te=require("./CdxCheckbox.cjs"),f=require("./Icon.js"),ae=require("./CdxButton.cjs"),ne=require("./CdxSelect.cjs"),P=require("./useModelWrapper.cjs"),c=require("./useI18n.cjs"),$=require("./_plugin-vue_export-helper.js"),oe=require("./CdxProgressBar.cjs"),y=require("./constants.js"),le=e.defineComponent({name:"CdxTablePager",components:{CdxButton:ae,CdxIcon:f.CdxIcon,CdxSelect:ne},props:{paginationSizeOptions:{type:Array,required:!0},itemsPerPage:{type:Number,required:!0},nextDisabled:{type:Boolean,default:!1},prevDisabled:{type:Boolean,default:!1},lastDisabled:{type:Boolean,default:!1}},emits:["update:itemsPerPage","first","last","next","prev"],setup(t,{emit:n}){const s=P(e.toRef(t,"itemsPerPage"),n,"update:itemsPerPage"),i=c("cdx-table-pager-items-per-page-default","Results per page"),v=c("cdx-table-pager-items-per-page-current",d=>"".concat(d," rows"),[s]),u=c("cdx-table-pager-button-first-page","First page"),p=c("cdx-table-pager-button-next-page","Next page"),g=c("cdx-table-pager-button-prev-page","Previous page"),m=c("cdx-table-pager-button-last-page","Last page");return{defaultItemsPerPageLabel:i,currentItemsPerPageLabel:v,btnLabelFirst:u,btnLabelNext:p,btnLabelPrev:g,btnLabelLast:m,wrappedItemsPerPage:s,cdxIconPrevious:f.d7,cdxIconNext:f.j6,cdxIconMoveFirst:f.P6,cdxIconMoveLast:f.N6}}}),se={class:"cdx-table-pager"},ie={class:"cdx-table-pager__start"},re={key:0},de={key:1},ce={class:"cdx-table-pager__center"},ue={class:"cdx-table-pager__end"};function pe(t,n,s,i,v,u){const p=e.resolveComponent("cdx-select"),g=e.resolveComponent("cdx-icon"),m=e.resolveComponent("cdx-button");return e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",ie,[e.createVNode(p,{selected:t.wrappedItemsPerPage,"onUpdate:selected":n[0]||(n[0]=d=>t.wrappedItemsPerPage=d),"default-label":t.defaultItemsPerPageLabel,"menu-items":t.paginationSizeOptions},{label:e.withCtx(({selectedMenuItem:d,defaultLabel:l})=>[d?(e.openBlock(),e.createElementBlock("span",re,[e.createElementVNode("span",null,e.toDisplayString(t.currentItemsPerPageLabel),1)])):(e.openBlock(),e.createElementBlock("span",de,e.toDisplayString(l),1))]),_:1},8,["selected","default-label","menu-items"])]),e.createElementVNode("div",ce,[e.renderSlot(t.$slots,"default")]),e.createElementVNode("div",ue,[e.createVNode(m,{disabled:t.prevDisabled,class:"cdx-table-pager__button-first",weight:"quiet","aria-label":t.btnLabelFirst,onClick:n[1]||(n[1]=d=>t.$emit("first"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconMoveFirst},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.prevDisabled,class:"cdx-table-pager__button-prev",weight:"quiet","aria-label":t.btnLabelPrev,onClick:n[2]||(n[2]=d=>t.$emit("prev"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconPrevious},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.nextDisabled,class:"cdx-table-pager__button-next",weight:"quiet","aria-label":t.btnLabelNext,onClick:n[3]||(n[3]=d=>t.$emit("next"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconNext},null,8,["icon"])]),_:1},8,["disabled","aria-label"]),e.createVNode(m,{disabled:t.nextDisabled||t.lastDisabled,class:"cdx-table-pager__button-last",weight:"quiet","aria-label":t.btnLabelLast,onClick:n[4]||(n[4]=d=>t.$emit("last"))},{default:e.withCtx(()=>[e.createVNode(g,{icon:t.cdxIconMoveLast},null,8,["icon"])]),_:1},8,["disabled","aria-label"])])])}const ge=$._export_sfc(le,[["render",pe]]),me=y.makeStringTypeValidator(y.TableTextAlignments),be=y.makeStringTypeValidator(y.TablePaginationPositions),ve={none:f.T7,asc:f.x8,desc:f.l4},fe={none:"none",asc:"ascending",desc:"descending"},he=e.defineComponent({name:"CdxTable",components:{CdxCheckbox:te,CdxIcon:f.CdxIcon,CdxTablePager:ge,CdxProgressBar:oe},props:{caption:{type:String,required:!0},hideCaption:{type:Boolean,default:!1},columns:{type:Array,default:()=>[],validator:t=>{const n=t.map(i=>i.id);return new Set(n).size===n.length?!0:(console.warn('Each column in the "columns" prop of CdxTable must have a unique "id".'),!1)}},data:{type:Array,default:()=>[],validator:(t,n)=>{if(!Array.isArray(n.columns)||n.columns.length===0||t.length===0)return!0;const s=n.columns.some(v=>"allowSort"in v),i=t.every(v=>y.TableRowIdentifier in v);return s&&n.useRowSelection&&!i?(console.warn('For CdxTables with sorting and row selection, each row in the "data" prop must have a "TableRowIdentifier".'),!1):!0}},useRowHeaders:{type:Boolean,default:!1},showVerticalBorders:{type:Boolean,default:!1},useRowSelection:{type:Boolean,default:!1},selectedRows:{type:Array,default:()=>[]},sort:{type:Object,default:()=>({})},pending:{type:Boolean,default:!1},paginate:{type:Boolean,default:!1},serverPagination:{type:Boolean,default:!1},totalRows:{type:Number,default:NaN},paginationPosition:{type:String,default:"bottom",validator:be},paginationSizeOptions:{type:Array,default:()=>[{value:10},{value:20},{value:50}],validator:t=>{const n=s=>typeof s.value=="number";return t.every(n)?!0:(console.warn('"value" property of all menu items in PaginationOptions must be a number.'),!1)}},paginationSizeDefault:{type:Number,default:t=>t.paginate&&t.serverPagination?t.data.length:t.paginationSizeOptions[0].value}},emits:["update:selectedRows","update:sort","load-more","last"],setup(t,{emit:n}){const s=e.ref(0),i=e.ref(t.paginationSizeDefault),v=e.computed(()=>t.serverPagination&&t.paginate?t.data:t.paginate?t.data.slice(s.value,i.value+s.value):t.data),u=e.computed(()=>{var a;return t.serverPagination?(a=t.totalRows)!=null?a:NaN:t.data.length}),p=e.computed(()=>isNaN(u.value)),g=e.computed(()=>v.value.length),m=e.computed(()=>s.value+1),d=e.computed(()=>s.value+g.value),l=e.computed(()=>p.value),h=e.computed(()=>s.value<=0),b=e.computed(()=>p.value?g.value<i.value:s.value+i.value>=u.value),x=c("cdx-table-pagination-status-message-determinate-short",(a,o,r)=>"".concat(a,"–").concat(o," of ").concat(r),[m,d,u]),D=c("cdx-table-pagination-status-message-determinate-long",(a,o,r)=>"Showing results ".concat(a,"–").concat(o," of ").concat(r),[m,d,u]),E=c("cdx-table-pagination-status-message-indeterminate-short",(a,o)=>"".concat(a,"–").concat(o," of many"),[m,d]),L=c("cdx-table-pagination-status-message-indeterminate-long",(a,o)=>"Showing results ".concat(a,"–").concat(o," of many"),[m,d]),B=c("cdx-table-pagination-status-message-indeterminate-final",a=>"Showing the last ".concat(a," results"),[g]),V=c("cdx-table-pagination-status-message-pending","Loading results..."),R=e.computed(()=>t.pending?V.value:p.value&&b.value?B.value:p.value?E.value:x.value),I=e.computed(()=>t.pending?V.value:p.value&&b.value?B.value:p.value?L.value:D.value);function F(){s.value+=i.value,t.serverPagination&&n("load-more",s.value,i.value)}function T(){s.value-i.value<1?_():(s.value-=i.value,t.serverPagination&&n("load-more",s.value,i.value))}function _(){s.value=0,t.serverPagination&&n("load-more",s.value,i.value)}function z(){u.value%i.value===0?(s.value=u.value-i.value,n("load-more",s.value,i.value)):(s.value=Math.floor(u.value/i.value)*i.value,n("load-more",s.value,i.value))}e.watch(i,a=>{t.serverPagination&&n("load-more",s.value,a)});const C=P(e.toRef(t,"selectedRows"),n,"update:selectedRows"),w=e.ref(u.value===C.value.length),k=e.ref(!1),A=e.computed(()=>Object.keys(t.sort)[0]),q=e.computed(()=>t.columns.some(a=>a.allowSort)),M=e.computed(()=>{var o;return{"cdx-table__table--layout-fixed":(o=t.columns)==null?void 0:o.some(r=>"width"in r||"minWidth"in r),"cdx-table__table--borders-vertical":t.showVerticalBorders}}),O=c("cdx-table-sort-caption",a=>"".concat(a,", column headers with buttons are sortable."),[e.toRef(t,"caption")]),U=(a,o)=>c("cdx-table-select-row-label",(r,S)=>"Select row ".concat(r," of ").concat(S),[()=>a,()=>o]).value,H=c("cdx-table-select-all-label","Select all rows");function N(a,o){return y.TableRowIdentifier in a?a[y.TableRowIdentifier]:o}function W(a,o){const r=N(a,o);return{"cdx-table__row--selected":C.value.indexOf(r)!==-1}}function K(a){const o=t.columns[0].id;if(t.useRowHeaders===!0&&a===o)return"row"}function j(a){const o=t.columns[0].id;return t.useRowHeaders&&a===o?"th":"td"}function G(a,o=!1){if("textAlign"in a&&!me(a.textAlign)){console.warn("Invalid value for TableColumn textAlign property.");return}return{["cdx-table__table__cell--align-".concat(a.textAlign)]:"textAlign"in a&&a.textAlign!=="start","cdx-table__table__cell--has-sort":o}}function J(a){const o={};return"width"in a&&(o.width=a.width),"minWidth"in a&&(o.minWidth=a.minWidth),o}function Q(a){if(u.value===a.length){w.value=!0,k.value=!1;return}w.value=!1,u.value>a.length&&(k.value=!0),a.length===0&&(k.value=!1)}function X(a){k.value=!1,a?C.value=t.data.map((o,r)=>N(o,r)):C.value=[]}function Y(a){var S;const o=(S=t.sort[a])!=null?S:"none";let r="asc";o==="asc"&&(r="desc"),o==="desc"&&(r="none"),n("update:sort",{[a]:r})}function Z(a){var r;const o=(r=t.sort[a])!=null?r:"none";return ve[o]}function ee(a,o=!1){var r;if(o){const S=(r=t.sort[a])!=null?r:"none";return S==="none"?void 0:fe[S]}}return{dataForDisplay:v,pageSize:i,onNext:F,onPrev:T,onFirst:_,onLast:z,nextDisabled:b,prevDisabled:h,lastDisabled:l,paginationStatusMessageShort:R,paginationStatusMessageLong:I,wrappedSelectedRows:C,selectAll:w,selectAllIndeterminate:k,activeSortColumn:A,hasSortableColumns:q,tableClasses:M,getRowKey:N,getRowClass:W,getRowHeaderScope:K,getCellElement:j,getCellClass:G,getCellStyle:J,handleRowSelection:Q,handleSelectAll:X,handleSort:Y,getSortIcon:Z,getSortOrder:ee,translatedSortCaption:O,translatedSelectRowLabel:U,translatedSelectAllLabel:H}}}),Se={class:"cdx-table",tabindex:"0"},ye={key:0,class:"cdx-table__header"},Ce=["aria-hidden"],ke={class:"cdx-table__header__content"},we={class:"cdx-table__pagination-status--long"},Ne={class:"cdx-table__pagination-status--short"},Be={class:"cdx-table__table-wrapper"},Ve={key:0},_e={key:0,class:"cdx-table__table__select-rows"},Pe=["aria-sort"],$e=["aria-selected","onClick"],xe={class:"cdx-table__table__sort-label"},De={key:0},Ee={key:0},Le={key:1},Re={class:"cdx-table__table__empty-state"},Ie={class:"cdx-table__table__empty-state-content"},Fe={class:"cdx-table__pagination-status--long"},Te={class:"cdx-table__pagination-status--short"},ze={key:3,class:"cdx-table__footer"};function Ae(t,n,s,i,v,u){const p=e.resolveComponent("cdx-table-pager"),g=e.resolveComponent("cdx-checkbox"),m=e.resolveComponent("cdx-icon"),d=e.resolveComponent("cdx-progress-bar");return e.openBlock(),e.createElementBlock("div",Se,[!t.hideCaption||t.$slots.header&&t.$slots.header().length>0?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("div",{class:"cdx-table__header__caption","aria-hidden":t.$slots.header&&t.$slots.header().length>0?void 0:!0},[t.hideCaption?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.caption),1)],64))],8,Ce),e.createElementVNode("div",ke,[e.renderSlot(t.$slots,"header")])])):e.createCommentVNode("v-if",!0),t.paginate&&(t.paginationPosition==="top"||t.paginationPosition==="both")?(e.openBlock(),e.createBlock(p,{key:1,"items-per-page":t.pageSize,"onUpdate:itemsPerPage":n[0]||(n[0]=l=>t.pageSize=l),class:"cdx-table__pagination--top","pagination-size-options":t.paginationSizeOptions,"prev-disabled":t.prevDisabled,"next-disabled":t.nextDisabled,"last-disabled":t.lastDisabled,onNext:t.onNext,onPrev:t.onPrev,onFirst:t.onFirst,onLast:t.onLast},{default:e.withCtx(()=>[e.createElementVNode("span",we,e.toDisplayString(t.paginationStatusMessageLong),1),e.createElementVNode("span",Ne,e.toDisplayString(t.paginationStatusMessageShort),1)]),_:1},8,["items-per-page","pagination-size-options","prev-disabled","next-disabled","last-disabled","onNext","onPrev","onFirst","onLast"])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Be,[e.createElementVNode("table",{class:e.normalizeClass(["cdx-table__table",t.tableClasses])},[e.createElementVNode("caption",null,[t.hasSortableColumns?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.translatedSortCaption),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.caption),1)],64))]),e.renderSlot(t.$slots,"thead",{},()=>[t.columns.length>0?(e.openBlock(),e.createElementBlock("thead",Ve,[e.createElementVNode("tr",null,[t.useRowSelection?(e.openBlock(),e.createElementBlock("th",_e,[e.createVNode(g,{modelValue:t.selectAll,"onUpdate:modelValue":[n[1]||(n[1]=l=>t.selectAll=l),t.handleSelectAll],"hide-label":!0,indeterminate:t.selectAllIndeterminate},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.translatedSelectAllLabel),1)]),_:1},8,["modelValue","indeterminate","onUpdate:modelValue"])])):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,l=>(e.openBlock(),e.createElementBlock("th",{key:l.id,scope:"col",class:e.normalizeClass(t.getCellClass(l,l.allowSort)),"aria-sort":t.getSortOrder(l.id,l.allowSort),style:e.normalizeStyle(t.getCellStyle(l))},[l.allowSort?(e.openBlock(),e.createElementBlock("button",{key:0,"aria-selected":l.id===t.activeSortColumn,class:"cdx-table__table__sort-button",onClick:h=>t.handleSort(l.id)},[e.createElementVNode("span",xe,e.toDisplayString(l.label),1),e.createVNode(m,{icon:t.getSortIcon(l.id),size:"small",class:"cdx-table__table__sort-icon","aria-hidden":"true"},null,8,["icon"])],8,$e)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.label),1)],64))],14,Pe))),128))])])):e.createCommentVNode("v-if",!0)]),t.pending?(e.openBlock(),e.createBlock(d,{key:0,inline:!0,class:"cdx-table__pending-indicator"})):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"tbody",{},()=>[t.dataForDisplay.length>0?(e.openBlock(),e.createElementBlock("tbody",De,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.dataForDisplay,(l,h)=>(e.openBlock(),e.createElementBlock("tr",{key:t.getRowKey(l,h),class:e.normalizeClass(t.getRowClass(l,h))},[t.useRowSelection?(e.openBlock(),e.createElementBlock("td",Ee,[e.createVNode(g,{modelValue:t.wrappedSelectedRows,"onUpdate:modelValue":[n[2]||(n[2]=b=>t.wrappedSelectedRows=b),t.handleRowSelection],"input-value":t.getRowKey(l,h),"hide-label":!0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.translatedSelectRowLabel(h+1,t.dataForDisplay.length)),1)]),_:2},1032,["modelValue","input-value","onUpdate:modelValue"])])):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,b=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.getCellElement(b.id)),{key:b.id,scope:t.getRowHeaderScope(b.id),class:e.normalizeClass(t.getCellClass(b))},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"item-"+b.id,{item:l[b.id],row:l},()=>[e.createTextVNode(e.toDisplayString(l[b.id]),1)])]),_:2},1032,["scope","class"]))),128))],2))),128))])):t.$slots["empty-state"]&&t.$slots["empty-state"]().length>0?(e.openBlock(),e.createElementBlock("tbody",Le,[e.createElementVNode("tr",Re,[e.createElementVNode("td",Ie,[e.renderSlot(t.$slots,"empty-state")])])])):e.createCommentVNode("v-if",!0)]),e.renderSlot(t.$slots,"tfoot")],2)]),t.paginate&&(t.paginationPosition==="bottom"||t.paginationPosition==="both")?(e.openBlock(),e.createBlock(p,{key:2,"items-per-page":t.pageSize,"onUpdate:itemsPerPage":n[3]||(n[3]=l=>t.pageSize=l),class:"cdx-table__pagination--bottom","pagination-size-options":t.paginationSizeOptions,"prev-disabled":t.prevDisabled,"next-disabled":t.nextDisabled,"last-disabled":t.lastDisabled,onNext:t.onNext,onPrev:t.onPrev,onFirst:t.onFirst,onLast:t.onLast},{default:e.withCtx(()=>[e.createElementVNode("span",Fe,e.toDisplayString(t.paginationStatusMessageLong),1),e.createElementVNode("span",Te,e.toDisplayString(t.paginationStatusMessageShort),1)]),_:1},8,["items-per-page","pagination-size-options","prev-disabled","next-disabled","last-disabled","onNext","onPrev","onFirst","onLast"])):e.createCommentVNode("v-if",!0),t.$slots.footer&&t.$slots.footer().length>0?(e.openBlock(),e.createElementBlock("div",ze,[e.renderSlot(t.$slots,"footer")])):e.createCommentVNode("v-if",!0)])}const qe=$._export_sfc(he,[["render",Ae]]);module.exports=qe;
diff --git a/resources/lib/codex/modules/CdxTable.css b/resources/lib/codex/modules/CdxTable.css
index c09e26dbe0bd..89e3164fd160 100644
--- a/resources/lib/codex/modules/CdxTable.css
+++ b/resources/lib/codex/modules/CdxTable.css
@@ -1 +1 @@
-.cdx-table-pager{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px}@media screen and (min-width: 640px){.cdx-table-pager{flex-wrap:nowrap}}.cdx-table-pager__start .cdx-select,.cdx-table-pager__start .cdx-select-vue__handle{min-width:8rem}.cdx-table-pager__center{color:var(--color-subtle, #54595d);flex:1 1 40%;font-size:1rem;text-align:center}@media screen and (min-width: 640px){.cdx-table-pager__center{flex:0 1 auto}}.cdx-table-pager__end{display:flex;flex:1 0 100%;justify-content:space-between;gap:4px}@media screen and (min-width: 640px){.cdx-table-pager__end{flex:0 1 auto}}.cdx-table{color:var(--color-base, #202122);border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-table__header{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:16px;box-sizing:border-box;min-height:64px;padding:16px 12px}.cdx-table__header__caption{color:var(--color-emphasized, #000);font-size:1.125rem;font-weight:700;line-height:1.25}.cdx-table__pagination--bottom{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__pagination-status--short{display:block;text-align:right}@media screen and (min-width: 640px){.cdx-table__pagination-status--short{display:none}}.cdx-table__pagination-status--long{display:none}@media screen and (min-width: 640px){.cdx-table__pagination-status--long{display:block;text-align:center}}.cdx-table__pending-indicator{position:absolute}.cdx-table__table-wrapper{position:relative;overflow-x:auto}.cdx-table__table{min-width:100%;line-height:1.375;border-collapse:collapse}.cdx-table__table caption{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}.cdx-table__table th,.cdx-table__table td{padding:12px}.cdx-table__table th{color:var(--color-emphasized, #000);text-align:left}.cdx-table__table thead th{border-bottom:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table tfoot td,.cdx-table__table tfoot th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table tbody td,.cdx-table__table tbody th{border-top:1px solid var(--border-color-subtle, #c8ccd1);vertical-align:top}.cdx-table__table tbody tr:first-child td,.cdx-table__table tbody tr:first-child th{border-top:0}.cdx-table__table__sort-button{background-color:var(--background-color-transparent, transparent);display:flex;align-items:center;justify-content:space-between;width:100%;max-width:16rem;border:0;padding:12px;font-family:inherit;font-size:inherit;font-weight:700;line-height:1.4285714;text-align:left;text-decoration:none;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-table__table__sort-button:hover{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1);cursor:pointer}.cdx-table__table__sort-button:focus{outline:1px solid transparent}.cdx-table__table__sort-button:active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-base, #a2a9b1)}.cdx-table__table__sort-button:focus:not(:active){background-color:var(--background-color-base, #fff);box-shadow:inset 0 0 0 2px var(--box-shadow-color-progressive--focus, #36c)}.cdx-table__table__sort-icon{color:var(--color-subtle, #54595d);margin-left:8px}.cdx-table__table .cdx-table__table__cell--align-center{text-align:center}.cdx-table__table .cdx-table__table__cell--align-end{text-align:right}.cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-button{flex-direction:row-reverse;text-align:right}.cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-icon{margin-right:8px;margin-left:0}.cdx-table__table .cdx-table__table__cell--align-number{text-align:right}.cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-button{flex-direction:row-reverse;text-align:right}.cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-icon{margin-right:8px;margin-left:0}.cdx-table__table .cdx-table__table__cell--has-sort{padding:0}.cdx-table__table__select-rows{width:1px}.cdx-table__table__row--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-table__table--layout-fixed{table-layout:fixed}.cdx-table__table--borders-vertical th,.cdx-table__table--borders-vertical td{border-right:1px solid var(--border-color-subtle, #c8ccd1)}.cdx-table__table--borders-vertical th:last-child,.cdx-table__table--borders-vertical td:last-child{border-right:0}.cdx-table__table--borders-vertical thead tr:not(:first-child) th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__header+.cdx-table__table-wrapper .cdx-table__table--borders-vertical thead th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state-content{color:var(--color-subtle, #54595d);display:flex;align-items:center;justify-content:center;min-height:40px}.cdx-table__footer{display:flex;align-items:center;gap:16px;box-sizing:border-box;min-height:64px;border-top:1px solid var(--border-color-base, #a2a9b1);padding:12px}
+.cdx-table-pager{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px}@media screen and (min-width: 640px){.cdx-table-pager{flex-wrap:nowrap}}.cdx-table-pager__start .cdx-select,.cdx-table-pager__start .cdx-select-vue__handle{min-width:8rem}.cdx-table-pager__center{color:var(--color-subtle, #54595d);flex:1 1 40%;font-size:1rem;text-align:center}@media screen and (min-width: 640px){.cdx-table-pager__center{flex:0 1 auto}}.cdx-table-pager__end{display:flex;flex:1 0 100%;justify-content:space-between;gap:4px}@media screen and (min-width: 640px){.cdx-table-pager__end{flex:0 1 auto}}.cdx-table{color:var(--color-base, #202122);border:1px solid var(--border-color-base, #a2a9b1);border-radius:2px;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.cdx-table__header{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:16px;box-sizing:border-box;min-height:64px;padding:16px 12px}.cdx-table__header__caption{color:var(--color-emphasized, #000);font-size:1.125rem;font-weight:700;line-height:1.25}.cdx-table__pagination--bottom{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__pagination-status--short{display:block;text-align:right}@media screen and (min-width: 640px){.cdx-table__pagination-status--short{display:none}}.cdx-table__pagination-status--long{display:none}@media screen and (min-width: 640px){.cdx-table__pagination-status--long{display:block;text-align:center}}.cdx-table__pending-indicator{position:absolute}.cdx-table__table-wrapper{position:relative;overflow-x:auto}.cdx-table__table{min-width:100%;line-height:1.375;border-collapse:collapse}.cdx-table__table caption{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}.cdx-table__table th,.cdx-table__table td{padding:12px}.cdx-table__table th{color:var(--color-emphasized, #000);text-align:left}.cdx-table__table thead th{border-bottom:1px solid var(--border-color-base, #a2a9b1);vertical-align:bottom}.cdx-table__table tfoot td,.cdx-table__table tfoot th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table tbody td,.cdx-table__table tbody th{border-top:1px solid var(--border-color-subtle, #c8ccd1);vertical-align:top}.cdx-table__table tbody tr:first-child td,.cdx-table__table tbody tr:first-child th{border-top:0}.cdx-table__table__sort-button{background-color:var(--background-color-transparent, transparent);display:flex;align-items:flex-end;gap:8px;width:100%;border:0;padding:12px;font-family:inherit;font-size:inherit;font-weight:700;line-height:1.4285714;text-align:left;text-decoration:none;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-table__table__sort-button:hover{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1);cursor:pointer}.cdx-table__table__sort-button:focus{outline:1px solid transparent}.cdx-table__table__sort-button:active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-base, #a2a9b1)}.cdx-table__table__sort-button:focus:not(:active){background-color:var(--background-color-base, #fff);box-shadow:inset 0 0 0 2px var(--box-shadow-color-progressive--focus, #36c)}.cdx-table__table__sort-icon{color:var(--color-subtle, #54595d);flex-shrink:0;height:1.4285714em}.cdx-table__table .cdx-table__table__cell--align-center{text-align:center}.cdx-table__table .cdx-table__table__cell--align-end{text-align:right}.cdx-table__table .cdx-table__table__cell--align-end .cdx-table__table__sort-button{flex-direction:row-reverse;text-align:right}.cdx-table__table .cdx-table__table__cell--align-number{text-align:right}.cdx-table__table .cdx-table__table__cell--align-number .cdx-table__table__sort-button{flex-direction:row-reverse;text-align:right}.cdx-table__table .cdx-table__table__cell--has-sort{padding:0}.cdx-table__table__select-rows{width:1px}.cdx-table__table__row--selected{background-color:var(--background-color-progressive-subtle, #eaf3ff)}.cdx-table__table--layout-fixed{table-layout:fixed}.cdx-table__table--borders-vertical th,.cdx-table__table--borders-vertical td{border-right:1px solid var(--border-color-subtle, #c8ccd1)}.cdx-table__table--borders-vertical th:last-child,.cdx-table__table--borders-vertical td:last-child{border-right:0}.cdx-table__table--borders-vertical thead tr:not(:first-child) th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__header+.cdx-table__table-wrapper .cdx-table__table--borders-vertical thead th{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state{border-top:1px solid var(--border-color-base, #a2a9b1)}.cdx-table__table__empty-state-content{color:var(--color-subtle, #54595d);display:flex;align-items:center;justify-content:center;min-height:40px}.cdx-table__footer{display:flex;align-items:center;gap:16px;box-sizing:border-box;min-height:64px;border-top:1px solid var(--border-color-base, #a2a9b1);padding:12px}
diff --git a/resources/lib/codex/modules/CdxTabs-bidi.css b/resources/lib/codex/modules/CdxTabs-bidi.css
new file mode 100644
index 000000000000..8743ca4f4ead
--- /dev/null
+++ b/resources/lib/codex/modules/CdxTabs-bidi.css
@@ -0,0 +1 @@
+.cdx-tabs__header{display:flex;align-items:flex-end;position:relative}.cdx-tabs__prev-scroller,.cdx-tabs__next-scroller{position:absolute;top:0;bottom:0}[dir] .cdx-tabs__prev-scroller,[dir] .cdx-tabs__next-scroller{background-color:inherit}[dir=ltr] .cdx-tabs__prev-scroller{left:0}[dir=rtl] .cdx-tabs__prev-scroller,[dir=ltr] .cdx-tabs__next-scroller{right:0}[dir=rtl] .cdx-tabs__next-scroller{left:0}.cdx-tabs__prev-scroller:after,.cdx-tabs__next-scroller:before{content:"";position:absolute;top:0;z-index:1;width:1.5rem;height:100%;pointer-events:none}[dir=ltr] .cdx-tabs__prev-scroller:after{left:100%}[dir=rtl] .cdx-tabs__prev-scroller:after{right:100%}[dir=ltr] .cdx-tabs__next-scroller:before{right:100%}[dir=rtl] .cdx-tabs__next-scroller:before{left:100%}.cdx-tabs__scroll-button.cdx-button{height:100%}.cdx-tabs__list{display:flex;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.cdx-tabs__list::-webkit-scrollbar{-webkit-appearance:none;display:none}.cdx-tabs__list__item{display:block;flex:0 0 auto;max-width:16rem;font-size:1rem;font-weight:700;line-height:1.4285714;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[dir] .cdx-tabs__list__item{background-color:var(--background-color-transparent, transparent);border-width:0;border-top-left-radius:2px;border-top-right-radius:2px;padding:4px 12px;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}[dir] .cdx-tabs__list__item:hover{cursor:pointer}[dir] .cdx-tabs__list__item[aria-selected=true]{cursor:default}[dir=ltr] .cdx-tabs>.cdx-tabs__header .cdx-tabs__list__item+.cdx-tabs__list__item{margin-left:0}[dir=rtl] .cdx-tabs>.cdx-tabs__header .cdx-tabs__list__item+.cdx-tabs__list__item{margin-right:0}[dir] .cdx-tabs--framed>.cdx-tabs__header{background-color:var(--background-color-interactive, #eaecf0)}[dir=ltr] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__prev-scroller:after{background-image:linear-gradient(to right,var(--background-color-interactive, #eaecf0) 0,var(--background-color-transparent, transparent) 100%)}[dir=rtl] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__prev-scroller:after{background-image:linear-gradient(to left,var(--background-color-interactive, #eaecf0) 0,var(--background-color-transparent, transparent) 100%)}[dir=ltr] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__next-scroller:before{background-image:linear-gradient(to left,var(--background-color-interactive, #eaecf0) 0,var(--background-color-transparent, transparent) 100%)}[dir=rtl] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__next-scroller:before{background-image:linear-gradient(to right,var(--background-color-interactive, #eaecf0) 0,var(--background-color-transparent, transparent) 100%)}.cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item{color:var(--color-base, #202122)}[dir=ltr] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item{margin:8px 4px 0 8px}[dir=rtl] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item{margin:8px 8px 0 4px}.cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:enabled{overflow:hidden}.cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:enabled:hover{color:var(--color-base, #202122)}[dir] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:enabled:hover{background-color:var(--background-color-tab-list-item-framed--hover, rgba(255, 255, 255, .3))}.cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:enabled:active{color:var(--color-base, #202122)}[dir] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:enabled:active{background-color:var(--background-color-tab-list-item-framed--active, rgba(255, 255, 255, .65))}.cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item[aria-selected=true],.cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item[aria-selected=true]:hover{color:var(--color-base, #202122)}[dir] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item[aria-selected=true],[dir] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item[aria-selected=true]:hover{background-color:var(--background-color-base, #fff)}.cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:disabled{color:var(--color-disabled, #72777d)}[dir] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:disabled{background-color:var(--background-color-interactive, #eaecf0);cursor:default}[dir=ltr] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:last-child{margin-right:8px}[dir=rtl] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:last-child{margin-left:8px}[dir] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header{background-color:var(--background-color-base, #fff);margin:0 4px;border-bottom:1px solid var(--border-color-base, #a2a9b1)}[dir=ltr] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__prev-scroller:after{background-image:linear-gradient(to right,var(--background-color-base, #fff) 0,var(--background-color-transparent, transparent) 100%)}[dir=rtl] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__prev-scroller:after{background-image:linear-gradient(to left,var(--background-color-base, #fff) 0,var(--background-color-transparent, transparent) 100%)}[dir=ltr] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__next-scroller:before{background-image:linear-gradient(to left,var(--background-color-base, #fff) 0,var(--background-color-transparent, transparent) 100%)}[dir=rtl] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__next-scroller:before{background-image:linear-gradient(to right,var(--background-color-base, #fff) 0,var(--background-color-transparent, transparent) 100%)}[dir] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item{margin:0 2px}.cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:enabled{color:var(--color-base, #202122)}.cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:enabled:hover:not([aria-selected="true"]){color:var(--color-progressive--hover, #447ff5)}[dir] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:enabled:hover:not([aria-selected="true"]){box-shadow:inset 0 -2px 0 0 var(--box-shadow-color-progressive-selected--hover, #447ff5)}.cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:enabled:active:not([aria-selected="true"]){color:var(--color-progressive--active, #2a4b8d)}[dir] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:enabled:active:not([aria-selected="true"]){box-shadow:inset 0 -2px 0 0 var(--box-shadow-color-progressive-selected--active, #2a4b8d)}.cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item[aria-selected=true]{color:var(--color-progressive, #36c)}[dir] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item[aria-selected=true]{box-shadow:inset 0 -2px 0 0 var(--box-shadow-color-progressive-selected, #36c)}.cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item[aria-selected=true]:hover{color:var(--color-progressive, #36c)}.cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:disabled{color:var(--color-disabled, #72777d)}[dir] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:disabled{cursor:default}[dir=ltr] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:first-child{margin-left:0}[dir=rtl] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:first-child{margin-right:0}[dir=ltr] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:last-child{margin-right:0}[dir=rtl] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:last-child{margin-left:0}.cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:focus-visible,.cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:focus-visible{outline:1px solid transparent;overflow:hidden}[dir] .cdx-tabs--framed>.cdx-tabs__header .cdx-tabs__list__item:focus-visible,[dir] .cdx-tabs:not(.cdx-tabs--framed)>.cdx-tabs__header .cdx-tabs__list__item:focus-visible{box-shadow:inset 0 0 0 2px var(--border-color-progressive, #36c)}
diff --git a/resources/lib/codex/modules/CdxTabs.cjs b/resources/lib/codex/modules/CdxTabs.cjs
index 5c7d2420fdd4..69be790bdfd7 100644
--- a/resources/lib/codex/modules/CdxTabs.cjs
+++ b/resources/lib/codex/modules/CdxTabs.cjs
@@ -1 +1 @@
-"use strict";const e=require("vue"),x=require("./Icon.js"),A=require("./CdxButton.cjs"),M=require("./CdxTab.cjs"),$=require("./useGeneratedId.cjs"),R=require("./useComputedDirection.cjs"),W=require("./useModelWrapper.cjs"),K=require("./useIntersectionObserver.cjs"),S=require("./useSlotContents.js"),I=require("./constants.js"),j=require("./_plugin-vue_export-helper.js"),F=e.defineComponent({name:"CdxTabs",components:{CdxButton:A,CdxIcon:x.CdxIcon},props:{active:{type:String,required:!0},framed:{type:Boolean,default:!1}},emits:["update:active"],expose:["select","next","prev"],setup(t,{slots:o,emit:c}){const b=e.ref(),i=e.ref(),f=e.ref(),d=e.ref(),v=R(b),a=e.computed(()=>{const s=S.useSlotContents(o.default);if(!s.every(n=>typeof n=="object"&&S.isComponentVNode(n,M.name)))throw new Error("Slot content may only contain CdxTab components");if(s.length===0)throw new Error("Slot content cannot be empty");return s}),p=e.computed(()=>a.value.reduce((s,n)=>{var l;if((l=n.props)!=null&&l.name&&typeof n.props.name=="string"){if(s.get(n.props.name))throw new Error("Tab names must be unique");s.set(n.props.name,{name:n.props.name,id:$(n.props.name),label:n.props.label||n.props.name,disabled:n.props.disabled})}return s},new Map)),r=W(e.toRef(t,"active"),c,"update:active"),m=e.computed(()=>Array.from(p.value.keys())),T=e.computed(()=>m.value.indexOf(r.value)),w=e.computed(()=>{var s;return(s=p.value.get(r.value))==null?void 0:s.id});e.provide(I.ActiveTabKey,r),e.provide(I.TabsKey,p);const g=e.ref(new Map),C=e.ref(),E=e.ref(),q=K(C,{threshold:.95}),V=K(E,{threshold:.95});function B(s,n){const l=s;l&&(g.value.set(n,l),n===0?C.value=l:n===m.value.length-1&&(E.value=l))}const _=e.computed(()=>({"cdx-tabs--framed":t.framed,"cdx-tabs--quiet":!t.framed}));function L(){var s;(s=g.value.get(T.value))==null||s.focus()}function y(s){if(!i.value||!f.value||!d.value)return 0;const n=v.value==="rtl"?d.value:f.value,l=v.value==="rtl"?f.value:d.value,u=s.offsetLeft,h=u+s.clientWidth,N=i.value.scrollLeft+n.clientWidth,D=i.value.scrollLeft+i.value.clientWidth-l.clientWidth;return u<N?u-N:h>D?h-D:0}function k(s){if(!i.value||!f.value||!d.value)return;const n=s==="next"&&v.value==="ltr"||s==="prev"&&v.value==="rtl"?1:-1;let l=0,u=s==="next"?i.value.firstElementChild:i.value.lastElementChild;for(;u;){const h=s==="next"?u.nextElementSibling:u.previousElementSibling;if(l=y(u),Math.sign(l)===n){h&&Math.abs(l)<.25*i.value.clientWidth&&(l=y(h));break}u=h}i.value.scrollBy({left:l,behavior:"smooth"}),L()}return e.watch(r,()=>{if(w.value===void 0||!i.value||!f.value||!d.value)return;const s=document.getElementById("".concat(w.value,"-label"));s&&i.value.scrollBy({left:y(s),behavior:"smooth"})}),{activeTab:r,activeTabIndex:T,activeTabId:w,currentDirection:v,rootElement:b,tabListElement:i,prevScroller:f,nextScroller:d,rootClasses:_,tabNames:m,tabsData:p,firstLabelVisible:q,lastLabelVisible:V,assignTemplateRefForTabButton:B,scrollTabs:k,focusActiveTab:L,cdxIconPrevious:x.d7,cdxIconNext:x.j6}},methods:{select(t,o){const c=this.tabsData.get(t);c&&!(c!=null&&c.disabled)&&(this.activeTab=t,o&&e.nextTick(()=>{this.focusActiveTab()}))},selectNonDisabled(t,o,c){const b=this.tabsData.get(this.tabNames[t+o]);b&&(b.disabled?this.selectNonDisabled(t+o,o,c):this.select(b.name,c))},next(t){this.selectNonDisabled(this.activeTabIndex,1,t)},prev(t){this.selectNonDisabled(this.activeTabIndex,-1,t)},onLeftArrowKeypress(){this.currentDirection==="rtl"?this.next(!0):this.prev(!0)},onRightArrowKeypress(){this.currentDirection==="rtl"?this.prev(!0):this.next(!0)},onDownArrowKeypress(){var t;this.activeTabId&&((t=document.getElementById(this.activeTabId))==null||t.focus())}}}),O={class:"cdx-tabs__header"},P={ref:"prevScroller",class:"cdx-tabs__prev-scroller"},z={ref:"tabListElement",class:"cdx-tabs__list",role:"tablist"},G=["id","disabled","aria-controls","aria-selected","tabindex","onClick","onKeyup"],H={ref:"nextScroller",class:"cdx-tabs__next-scroller"},J={class:"cdx-tabs__content"};function Q(t,o,c,b,i,f){const d=e.resolveComponent("cdx-icon"),v=e.resolveComponent("cdx-button");return e.openBlock(),e.createElementBlock("div",{ref:"rootElement",class:e.normalizeClass(["cdx-tabs",t.rootClasses])},[e.createElementVNode("div",O,[e.withDirectives(e.createElementVNode("div",P,[e.createVNode(v,{class:"cdx-tabs__scroll-button",weight:"quiet",type:"button",tabindex:"-1","aria-hidden":!0,onMousedown:o[0]||(o[0]=e.withModifiers(()=>{},["prevent"])),onClick:o[1]||(o[1]=a=>t.scrollTabs("prev"))},{default:e.withCtx(()=>[e.createVNode(d,{icon:t.cdxIconPrevious},null,8,["icon"])]),_:1})],512),[[e.vShow,!t.firstLabelVisible]]),e.createElementVNode("div",z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabsData.values(),(a,p)=>(e.openBlock(),e.createElementBlock("button",{id:"".concat(a.id,"-label"),key:p,ref_for:!0,ref:r=>t.assignTemplateRefForTabButton(r,p),disabled:a.disabled?!0:void 0,"aria-controls":a.id,"aria-selected":a.name===t.activeTab,tabindex:a.name===t.activeTab?void 0:-1,class:"cdx-tabs__list__item",role:"tab",onClick:e.withModifiers(r=>t.select(a.name),["prevent"]),onKeyup:e.withKeys(r=>t.select(a.name),["enter"]),onKeydown:[o[2]||(o[2]=e.withKeys(e.withModifiers((...r)=>t.onRightArrowKeypress&&t.onRightArrowKeypress(...r),["prevent"]),["right"])),o[3]||(o[3]=e.withKeys(e.withModifiers((...r)=>t.onDownArrowKeypress&&t.onDownArrowKeypress(...r),["prevent"]),["down"])),o[4]||(o[4]=e.withKeys(e.withModifiers((...r)=>t.onLeftArrowKeypress&&t.onLeftArrowKeypress(...r),["prevent"]),["left"]))]},[e.createElementVNode("span",null,e.toDisplayString(a.label),1)],40,G))),128))],512),e.withDirectives(e.createElementVNode("div",H,[e.createVNode(v,{class:"cdx-tabs__scroll-button",weight:"quiet",type:"button",tabindex:"-1","aria-hidden":!0,onMousedown:o[5]||(o[5]=e.withModifiers(()=>{},["prevent"])),onClick:o[6]||(o[6]=a=>t.scrollTabs("next"))},{default:e.withCtx(()=>[e.createVNode(d,{icon:t.cdxIconNext},null,8,["icon"])]),_:1})],512),[[e.vShow,!t.lastLabelVisible]])]),e.createElementVNode("div",J,[e.renderSlot(t.$slots,"default")])],2)}const U=j._export_sfc(F,[["render",Q]]);module.exports=U;
+"use strict";const e=require("vue"),T=require("./Icon.js"),M=require("./CdxButton.cjs"),$=require("./CdxTab.cjs"),R=require("./useGeneratedId.cjs"),W=require("./useComputedDirection.cjs"),O=require("./useOptionalModelWrapper.js"),S=require("./useIntersectionObserver.cjs"),I=require("./useSlotContents.js"),V=require("./constants.js"),F=require("./_plugin-vue_export-helper.js"),j=e.defineComponent({name:"CdxTabs",components:{CdxButton:M,CdxIcon:T.CdxIcon},props:{active:{type:String,default:null},framed:{type:Boolean,default:!1}},emits:["update:active"],expose:["select","next","prev"],setup(t,{slots:s,emit:c}){const f=e.ref(),l=e.ref(),p=e.ref(),d=e.ref(),v=W(f),i=e.computed(()=>{const o=I.useSlotContents(s.default);if(!o.every(n=>typeof n=="object"&&I.isComponentVNode(n,$.name)))throw new Error("Slot content may only contain CdxTab components");if(o.length===0)throw new Error("Slot content cannot be empty");return o}),b=e.computed(()=>i.value.reduce((o,n)=>{var r;if((r=n.props)!=null&&r.name&&typeof n.props.name=="string"){if(o.get(n.props.name))throw new Error("Tab names must be unique");o.set(n.props.name,{name:n.props.name,id:R(n.props.name),label:n.props.label||n.props.name,disabled:n.props.disabled})}return o},new Map)),a=e.ref(Array.from(b.value.keys())[0]),m=O.useOptionalModelWrapper(a,e.toRef(t,"active"),c,"update:active"),w=e.computed(()=>Array.from(b.value.keys())),g=e.computed(()=>w.value.indexOf(m.value)),y=e.computed(()=>{var o;return(o=b.value.get(m.value))==null?void 0:o.id});e.provide(V.ActiveTabKey,m),e.provide(V.TabsKey,b);const C=e.ref(new Map),E=e.ref(),L=e.ref(),k=S(E,{threshold:.95}),q=S(L,{threshold:.95});function A(o,n){const r=o;r&&(C.value.set(n,r),n===0?E.value=r:n===w.value.length-1&&(L.value=r))}const B=e.computed(()=>({"cdx-tabs--framed":t.framed,"cdx-tabs--quiet":!t.framed}));function N(){var o;(o=C.value.get(g.value))==null||o.focus()}function x(o){if(!l.value||!p.value||!d.value)return 0;const n=v.value==="rtl"?d.value:p.value,r=v.value==="rtl"?p.value:d.value,u=o.offsetLeft,h=u+o.clientWidth,D=l.value.scrollLeft+n.clientWidth,K=l.value.scrollLeft+l.value.clientWidth-r.clientWidth;return u<D?u-D:h>K?h-K:0}function _(o){if(!l.value||!p.value||!d.value)return;const n=o==="next"&&v.value==="ltr"||o==="prev"&&v.value==="rtl"?1:-1;let r=0,u=o==="next"?l.value.firstElementChild:l.value.lastElementChild;for(;u;){const h=o==="next"?u.nextElementSibling:u.previousElementSibling;if(r=x(u),Math.sign(r)===n){h&&Math.abs(r)<.25*l.value.clientWidth&&(r=x(h));break}u=h}l.value.scrollBy({left:r,behavior:"smooth"}),N()}return e.watch(m,()=>{if(y.value===void 0||!l.value||!p.value||!d.value)return;const o=document.getElementById("".concat(y.value,"-label"));o&&l.value.scrollBy({left:x(o),behavior:"smooth"})}),{activeTab:m,activeTabIndex:g,activeTabId:y,currentDirection:v,rootElement:f,tabListElement:l,prevScroller:p,nextScroller:d,rootClasses:B,tabNames:w,tabsData:b,firstLabelVisible:k,lastLabelVisible:q,assignTemplateRefForTabButton:A,scrollTabs:_,focusActiveTab:N,cdxIconPrevious:T.d7,cdxIconNext:T.j6}},methods:{select(t,s){const c=this.tabsData.get(t);c&&!(c!=null&&c.disabled)&&(this.activeTab=t,s&&e.nextTick(()=>{this.focusActiveTab()}))},selectNonDisabled(t,s,c){const f=this.tabsData.get(this.tabNames[t+s]);f&&(f.disabled?this.selectNonDisabled(t+s,s,c):this.select(f.name,c))},next(t){this.selectNonDisabled(this.activeTabIndex,1,t)},prev(t){this.selectNonDisabled(this.activeTabIndex,-1,t)},onLeftArrowKeypress(){this.currentDirection==="rtl"?this.next(!0):this.prev(!0)},onRightArrowKeypress(){this.currentDirection==="rtl"?this.prev(!0):this.next(!0)},onDownArrowKeypress(){var t;this.activeTabId&&((t=document.getElementById(this.activeTabId))==null||t.focus())}}}),P={class:"cdx-tabs__header"},z={ref:"prevScroller",class:"cdx-tabs__prev-scroller"},G={ref:"tabListElement",class:"cdx-tabs__list",role:"tablist"},H=["id","disabled","aria-controls","aria-selected","tabindex","onClick","onKeyup"],J={ref:"nextScroller",class:"cdx-tabs__next-scroller"},Q={class:"cdx-tabs__content"};function U(t,s,c,f,l,p){const d=e.resolveComponent("cdx-icon"),v=e.resolveComponent("cdx-button");return e.openBlock(),e.createElementBlock("div",{ref:"rootElement",class:e.normalizeClass(["cdx-tabs",t.rootClasses])},[e.createElementVNode("div",P,[e.withDirectives(e.createElementVNode("div",z,[e.createVNode(v,{class:"cdx-tabs__scroll-button",weight:"quiet",type:"button",tabindex:"-1","aria-hidden":!0,onMousedown:s[0]||(s[0]=e.withModifiers(()=>{},["prevent"])),onClick:s[1]||(s[1]=i=>t.scrollTabs("prev"))},{default:e.withCtx(()=>[e.createVNode(d,{icon:t.cdxIconPrevious},null,8,["icon"])]),_:1})],512),[[e.vShow,!t.firstLabelVisible]]),e.createElementVNode("div",G,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabsData.values(),(i,b)=>(e.openBlock(),e.createElementBlock("button",{id:"".concat(i.id,"-label"),key:b,ref_for:!0,ref:a=>t.assignTemplateRefForTabButton(a,b),disabled:i.disabled?!0:void 0,"aria-controls":i.id,"aria-selected":i.name===t.activeTab,tabindex:i.name===t.activeTab?void 0:-1,class:"cdx-tabs__list__item",role:"tab",onClick:e.withModifiers(a=>t.select(i.name),["prevent"]),onKeyup:e.withKeys(a=>t.select(i.name),["enter"]),onKeydown:[s[2]||(s[2]=e.withKeys(e.withModifiers((...a)=>t.onRightArrowKeypress&&t.onRightArrowKeypress(...a),["prevent"]),["right"])),s[3]||(s[3]=e.withKeys(e.withModifiers((...a)=>t.onDownArrowKeypress&&t.onDownArrowKeypress(...a),["prevent"]),["down"])),s[4]||(s[4]=e.withKeys(e.withModifiers((...a)=>t.onLeftArrowKeypress&&t.onLeftArrowKeypress(...a),["prevent"]),["left"]))]},[e.createElementVNode("span",null,e.toDisplayString(i.label),1)],40,H))),128))],512),e.withDirectives(e.createElementVNode("div",J,[e.createVNode(v,{class:"cdx-tabs__scroll-button",weight:"quiet",type:"button",tabindex:"-1","aria-hidden":!0,onMousedown:s[5]||(s[5]=e.withModifiers(()=>{},["prevent"])),onClick:s[6]||(s[6]=i=>t.scrollTabs("next"))},{default:e.withCtx(()=>[e.createVNode(d,{icon:t.cdxIconNext},null,8,["icon"])]),_:1})],512),[[e.vShow,!t.lastLabelVisible]])]),e.createElementVNode("div",Q,[e.renderSlot(t.$slots,"default")])],2)}const X=F._export_sfc(j,[["render",U]]);module.exports=X;
diff --git a/resources/lib/codex/modules/CdxTextArea-bidi.css b/resources/lib/codex/modules/CdxTextArea-bidi.css
new file mode 100644
index 000000000000..21532ffa28b6
--- /dev/null
+++ b/resources/lib/codex/modules/CdxTextArea-bidi.css
@@ -0,0 +1 @@
+.cdx-text-area{position:relative}.cdx-text-area .cdx-text-area__start-icon{position:absolute;top:4px;min-width:20px;min-height:20px;width:1.25rem;height:1.5rem}[dir] .cdx-text-area .cdx-text-area__start-icon{transition-property:color;transition-duration:.1s}[dir=ltr] .cdx-text-area .cdx-text-area__start-icon{left:9px}[dir=rtl] .cdx-text-area .cdx-text-area__start-icon{right:9px}.cdx-text-area .cdx-text-area__end-icon{position:absolute;top:4px;min-width:16px;min-height:16px;width:1rem;height:1.5rem}[dir] .cdx-text-area .cdx-text-area__end-icon{transition-property:color;transition-duration:.1s}[dir=ltr] .cdx-text-area .cdx-text-area__end-icon{right:9px}[dir=rtl] .cdx-text-area .cdx-text-area__end-icon{left:9px}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-text-area__icon.cdx-text-area__start-icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-text-area__icon.cdx-text-area__start-icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}.cdx-text-area__icon.cdx-text-area__end-icon{min-width:16px;min-height:16px;width:1rem;height:1rem;height:1.5rem}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-text-area__icon.cdx-text-area__end-icon{background-position:center;background-repeat:no-repeat;background-size:max(1rem,16px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-text-area__icon.cdx-text-area__end-icon{-webkit-mask-size:max(1rem,16px);mask-size:max(1rem,16px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}.cdx-text-area__textarea{display:block;box-sizing:border-box;min-height:64px;width:100%;overflow:auto;font-family:inherit;font-size:inherit;line-height:1.4285714;resize:vertical}[dir] .cdx-text-area__textarea{border-width:1px;border-style:solid;border-radius:2px;padding:4px 8px}.cdx-text-area__textarea--is-autosize{resize:none;overflow:hidden}.cdx-text-area__textarea--is-autosize::-webkit-resizer{display:none}.cdx-text-area__textarea:enabled{color:var(--color-base, #202122)}[dir] .cdx-text-area__textarea:enabled{background-color:var(--background-color-base, #fff);border-color:var(--border-color-base, #a2a9b1);box-shadow:inset 0 0 0 1px var(--box-shadow-color-transparent, transparent);transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-text-area__textarea:enabled~.cdx-text-area__icon-vue.cdx-icon{color:var(--color-placeholder, #72777d)}.cdx-text-area__textarea:enabled~.cdx-text-area__icon{opacity:var(--opacity-icon-placeholder, .51)}[dir] .cdx-text-area__textarea:enabled:hover{border-color:var(--border-color-interactive, #72777d)}.cdx-text-area__textarea:enabled:focus~.cdx-text-area__icon-vue.cdx-icon,.cdx-text-area__textarea:enabled.cdx-text-area__textarea--has-value~.cdx-text-area__icon-vue.cdx-icon{color:var(--color-base, #202122)}.cdx-text-area__textarea:enabled:focus~.cdx-text-area__icon,.cdx-text-area__textarea:enabled.cdx-text-area__textarea--has-value~.cdx-text-area__icon{opacity:1}.cdx-text-area__textarea:enabled:focus{outline:1px solid transparent}[dir] .cdx-text-area__textarea:enabled:focus{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}[dir] .cdx-text-area__textarea:enabled:read-only{background-color:var(--background-color-interactive-subtle, #f8f9fa)}.cdx-text-area__textarea:disabled{color:var(--color-disabled, #72777d)}[dir] .cdx-text-area__textarea:disabled{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-text-area__textarea:disabled~.cdx-text-area__icon-vue.cdx-icon{color:var(--color-disabled, #72777d)}.cdx-text-area__textarea:disabled~.cdx-text-area__icon{opacity:var(--opacity-icon-base--disabled, .51)}.cdx-text-area__textarea::placeholder{color:var(--color-placeholder, #72777d);opacity:1}[dir=ltr] .cdx-text-area--has-start-icon .cdx-text-area__textarea{padding-left:calc(16px + 1.25rem)}[dir=rtl] .cdx-text-area--has-start-icon .cdx-text-area__textarea{padding-right:calc(16px + 1.25rem)}[dir=ltr] .cdx-text-area--has-end-icon .cdx-text-area__textarea{padding-right:calc(16px + 1rem)}[dir=rtl] .cdx-text-area--has-end-icon .cdx-text-area__textarea{padding-left:calc(16px + 1rem)}[dir] .cdx-text-area--status-error .cdx-text-area__textarea:enabled:not(:read-only){border-color:var(--border-color-error, #b32424)}[dir] .cdx-text-area--status-error .cdx-text-area__textarea:enabled:not(:read-only):hover{border-color:var(--border-color-error--hover, #ff4242)}[dir] .cdx-text-area--status-error .cdx-text-area__textarea:enabled:not(:read-only):focus{border-color:var(--border-color-progressive--focus, #36c)}
diff --git a/resources/lib/codex/modules/CdxTextInput-bidi.css b/resources/lib/codex/modules/CdxTextInput-bidi.css
new file mode 100644
index 000000000000..c40a9656984e
--- /dev/null
+++ b/resources/lib/codex/modules/CdxTextInput-bidi.css
@@ -0,0 +1 @@
+.cdx-text-input{position:relative;box-sizing:border-box;min-width:256px;overflow:hidden}[dir] .cdx-text-input{border-radius:2px}.cdx-text-input .cdx-text-input__start-icon{position:absolute;top:50%;min-width:20px;min-height:20px;width:1.25rem;height:1.25rem}[dir] .cdx-text-input .cdx-text-input__start-icon{transition-property:color;transition-duration:.1s;transform:translateY(-50%)}[dir=ltr] .cdx-text-input .cdx-text-input__start-icon{left:9px}[dir=rtl] .cdx-text-input .cdx-text-input__start-icon{right:9px}.cdx-text-input__icon.cdx-text-input__end-icon{min-width:16px;min-height:16px;width:1rem;height:1rem}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-text-input__icon.cdx-text-input__end-icon{background-position:center;background-repeat:no-repeat;background-size:max(1rem,16px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-text-input__icon.cdx-text-input__end-icon{-webkit-mask-size:max(1rem,16px);mask-size:max(1rem,16px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}.cdx-text-input__clear-icon.cdx-icon,.cdx-text-input .cdx-text-input__end-icon{position:absolute;top:50%;min-width:16px;min-height:16px;width:1rem;height:1rem}[dir] .cdx-text-input__clear-icon.cdx-icon,[dir] .cdx-text-input .cdx-text-input__end-icon{transition-property:color;transition-duration:.1s;transform:translateY(-50%)}[dir=ltr] .cdx-text-input__clear-icon.cdx-icon,[dir=ltr] .cdx-text-input .cdx-text-input__end-icon{right:9px}[dir=rtl] .cdx-text-input__clear-icon.cdx-icon,[dir=rtl] .cdx-text-input .cdx-text-input__end-icon{left:9px}[dir] .cdx-text-input__clear-icon.cdx-icon:hover{cursor:pointer}[dir=ltr] .cdx-text-input__end-icon.cdx-icon+.cdx-text-input__clear-icon.cdx-icon{right:calc(17px + 1rem)}[dir=rtl] .cdx-text-input__end-icon.cdx-icon+.cdx-text-input__clear-icon.cdx-icon{left:calc(17px + 1rem)}.cdx-text-input__input{display:block;box-sizing:border-box;min-height:32px;width:100%;font-family:inherit;font-size:inherit;line-height:1.375}[dir] .cdx-text-input__input{margin:0;border-width:1px;border-style:solid;border-radius:0;padding:4px 8px}.cdx-text-input__input:enabled{color:var(--color-base, #202122)}[dir] .cdx-text-input__input:enabled{background-color:var(--background-color-base, #fff);border-color:var(--border-color-base, #a2a9b1);box-shadow:inset 0 0 0 1px var(--box-shadow-color-transparent, transparent);transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-text-input__input:enabled~.cdx-text-input__icon-vue{color:var(--color-placeholder, #72777d)}.cdx-text-input__input:enabled~.cdx-text-input__icon{opacity:var(--opacity-icon-placeholder, .51)}[dir] .cdx-text-input__input:enabled:hover{border-color:var(--border-color-interactive, #72777d)}.cdx-text-input__input:enabled:focus~.cdx-text-input__icon-vue,.cdx-text-input__input:enabled.cdx-text-input__input--has-value~.cdx-text-input__icon-vue{color:var(--color-base, #202122)}.cdx-text-input__input:enabled:focus~.cdx-text-input__icon,.cdx-text-input__input:enabled.cdx-text-input__input--has-value~.cdx-text-input__icon{opacity:1}.cdx-text-input__input:enabled:focus{outline:1px solid transparent}[dir] .cdx-text-input__input:enabled:focus{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}[dir] .cdx-text-input__input:enabled:read-only{background-color:var(--background-color-interactive-subtle, #f8f9fa)}.cdx-text-input__input:disabled{color:var(--color-disabled, #72777d);-webkit-text-fill-color:var(--color-disabled, #72777d)}[dir] .cdx-text-input__input:disabled{background-color:var(--background-color-disabled-subtle, #eaecf0);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-text-input__input:disabled~.cdx-text-input__icon-vue{color:var(--color-disabled, #72777d);pointer-events:none}.cdx-text-input__input:disabled~.cdx-text-input__icon{opacity:var(--opacity-icon-base--disabled, .51)}.cdx-text-input__input::placeholder{color:var(--color-placeholder, #72777d);opacity:1}.cdx-text-input__input::-ms-clear{display:none}.cdx-text-input__input[type=search]{-webkit-appearance:none;-moz-appearance:textfield}.cdx-text-input__input[type=search]::-webkit-search-decoration,.cdx-text-input__input[type=search]::-webkit-search-cancel-button{display:none}[dir=ltr] .cdx-text-input--has-start-icon .cdx-text-input__input{padding-left:calc(16px + 1.25rem)}[dir=rtl] .cdx-text-input--has-start-icon .cdx-text-input__input{padding-right:calc(16px + 1.25rem)}[dir=ltr] .cdx-text-input--has-end-icon .cdx-text-input__input,[dir=ltr] .cdx-text-input--clearable .cdx-text-input__input{padding-right:calc(16px + 1rem)}[dir=rtl] .cdx-text-input--has-end-icon .cdx-text-input__input,[dir=rtl] .cdx-text-input--clearable .cdx-text-input__input{padding-left:calc(16px + 1rem)}[dir=ltr] .cdx-text-input--has-end-icon.cdx-text-input--clearable .cdx-text-input__input{padding-right:calc(24px + 2rem)}[dir=rtl] .cdx-text-input--has-end-icon.cdx-text-input--clearable .cdx-text-input__input{padding-left:calc(24px + 2rem)}[dir] .cdx-text-input--status-error .cdx-text-input__input:enabled{border-color:var(--border-color-error, #b32424)}[dir] .cdx-text-input--status-error .cdx-text-input__input:enabled:hover{border-color:var(--border-color-error--hover, #ff4242)}[dir] .cdx-text-input--status-error .cdx-text-input__input:enabled:focus{border-color:var(--border-color-progressive--focus, #36c)}
diff --git a/resources/lib/codex/modules/CdxThumbnail-bidi.css b/resources/lib/codex/modules/CdxThumbnail-bidi.css
new file mode 100644
index 000000000000..11fcb3f8607a
--- /dev/null
+++ b/resources/lib/codex/modules/CdxThumbnail-bidi.css
@@ -0,0 +1 @@
+.cdx-thumbnail{display:inline-flex}.cdx-thumbnail__placeholder,.cdx-thumbnail__image{flex-shrink:0;box-sizing:border-box;min-width:40px;min-height:40px;width:2.5rem;height:2.5rem}[dir] .cdx-thumbnail__placeholder,[dir] .cdx-thumbnail__image{background-position:center;background-repeat:no-repeat;background-size:cover;border:1px solid var(--border-color-subtle, #c8ccd1);border-radius:2px}.cdx-thumbnail__image{display:inline-block}[dir] .cdx-thumbnail__image-enter-active{transition-property:opacity;transition-duration:.1s}.cdx-thumbnail__image-enter-from{opacity:0}.cdx-thumbnail__placeholder{display:inline-flex;align-items:center;justify-content:center}[dir] .cdx-thumbnail__placeholder{background-color:var(--background-color-interactive-subtle, #f8f9fa)}.cdx-thumbnail__placeholder__icon{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem;display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image: none) or (mask-image: none))){[dir] .cdx-thumbnail__placeholder__icon{background-position:center;background-repeat:no-repeat;background-size:max(1.25rem,20px)}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-thumbnail__placeholder__icon{-webkit-mask-size:max(1.25rem,20px);mask-size:max(1.25rem,20px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}}@supports not (((-webkit-mask-image: none) or (mask-image: none))){.cdx-thumbnail__placeholder__icon{filter:invert(var(--filter-invert-icon, 0));opacity:var(--opacity-icon-base, .87)}[dir] .cdx-thumbnail__placeholder__icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M19 3H1v14h18zM3 14l3.5-4.5 2.5 3L12.5 8l4.5 6z"/><path d="M19 5H1V3h18zm0 12H1v-2h18z"/></svg>')}.cdx-button:not(.cdx-button--weight-quiet):disabled .cdx-thumbnail__placeholder__icon,.cdx-button--weight-primary.cdx-button--action-progressive .cdx-thumbnail__placeholder__icon,.cdx-button--weight-primary.cdx-button--action-destructive .cdx-thumbnail__placeholder__icon{filter:invert(var(--filter-invert-primary-button-icon, 1))}}@supports ((-webkit-mask-image: none) or (mask-image: none)){.cdx-thumbnail__placeholder__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M19 3H1v14h18zM3 14l3.5-4.5 2.5 3L12.5 8l4.5 6z"/><path d="M19 5H1V3h18zm0 12H1v-2h18z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 20 20" fill="%23000000"><path d="M19 3H1v14h18zM3 14l3.5-4.5 2.5 3L12.5 8l4.5 6z"/><path d="M19 5H1V3h18zm0 12H1v-2h18z"/></svg>')}[dir] .cdx-thumbnail__placeholder__icon{background-color:var(--color-placeholder, #72777d)}}.cdx-thumbnail__placeholder__icon--vue.cdx-icon{color:var(--color-placeholder, #72777d)}
diff --git a/resources/lib/codex/modules/CdxToggleButton-bidi.css b/resources/lib/codex/modules/CdxToggleButton-bidi.css
new file mode 100644
index 000000000000..20e793bf679d
--- /dev/null
+++ b/resources/lib/codex/modules/CdxToggleButton-bidi.css
@@ -0,0 +1 @@
+.cdx-toggle-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;min-height:32px;max-width:28rem;font-family:inherit;font-size:inherit;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none}[dir] .cdx-toggle-button{margin:0;border-width:1px;border-style:solid;border-radius:2px;padding-right:11px;padding-left:11px;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-toggle-button--size-large{min-height:44px}[dir] .cdx-toggle-button--size-large{padding-right:15px;padding-left:15px}.cdx-toggle-button--icon-only{min-width:32px}[dir] .cdx-toggle-button--icon-only{padding-right:5px;padding-left:5px}.cdx-toggle-button--icon-only.cdx-toggle-button--size-large{min-width:44px}[dir] .cdx-toggle-button--icon-only.cdx-toggle-button--size-large{padding-right:11px;padding-left:11px}[dir] .cdx-toggle-button::-moz-focus-inner{border:0;padding:0}.cdx-toggle-button:enabled{color:var(--color-base, #202122)}[dir] .cdx-toggle-button:enabled:hover{cursor:pointer}.cdx-toggle-button:enabled:focus{outline:1px solid transparent}[dir] .cdx-toggle-button:enabled:focus{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}.cdx-toggle-button:enabled:active,.cdx-toggle-button:enabled.cdx-toggle-button--is-active{color:var(--color-emphasized, #000)}[dir] .cdx-toggle-button:enabled:active,[dir] .cdx-toggle-button:enabled.cdx-toggle-button--is-active{border-color:var(--border-color-interactive, #72777d);box-shadow:none}.cdx-toggle-button .cdx-icon{color:inherit;vertical-align:middle}[dir] .cdx-toggle-button--framed:enabled{background-color:var(--background-color-interactive-subtle, #f8f9fa);border-color:var(--border-color-base, #a2a9b1)}.cdx-toggle-button--framed:enabled:hover{color:var(--color-base--hover, #404244)}[dir] .cdx-toggle-button--framed:enabled:hover{background-color:var(--background-color-base, #fff)}[dir] .cdx-toggle-button--framed:enabled:active,[dir] .cdx-toggle-button--framed:enabled.cdx-toggle-button--is-active{background-color:var(--background-color-interactive, #eaecf0)}.cdx-toggle-button--framed:disabled{color:var(--color-inverted, #fff)}[dir] .cdx-toggle-button--framed:disabled{background-color:var(--background-color-disabled, #c8ccd1);border-color:var(--border-color-disabled, #c8ccd1)}.cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled{color:var(--color-inverted-fixed, #fff)}[dir] .cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled{background-color:var(--background-color-progressive--active, #2a4b8d);border-color:var(--border-color-progressive--active, #2a4b8d)}.cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled:hover{color:var(--color-inverted-fixed, #fff)}[dir] .cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled:hover{background-color:var(--background-color-progressive--hover, #447ff5);border-color:var(--border-color-progressive--hover, #447ff5)}[dir] .cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled:focus{border-color:var(--border-color-progressive--focus, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c),inset 0 0 0 2px var(--box-shadow-color-inverted, #fff)}.cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled:active,.cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled.cdx-toggle-button--is-active{color:var(--color-emphasized, #000)}[dir] .cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled:active,[dir] .cdx-toggle-button--framed.cdx-toggle-button--toggled-on:enabled.cdx-toggle-button--is-active{background-color:var(--background-color-interactive, #eaecf0);border-color:var(--border-color-interactive, #72777d);box-shadow:none}[dir] .cdx-toggle-button--quiet{background-color:var(--background-color-transparent, transparent);border-color:var(--border-color-transparent, transparent)}[dir] .cdx-toggle-button--quiet:enabled.cdx-toggle-button--toggled-on{background-color:var(--background-color-interactive, #eaecf0)}[dir] .cdx-toggle-button--quiet:enabled:hover{background-color:var(--background-color-interactive-subtle, #f8f9fa)}[dir] .cdx-toggle-button--quiet:enabled:focus{background-color:var(--background-color-interactive-subtle, #f8f9fa)}[dir] .cdx-toggle-button--quiet:enabled:active,[dir] .cdx-toggle-button--quiet:enabled.cdx-toggle-button--is-active{background-color:var(--background-color-interactive, #eaecf0)}.cdx-toggle-button--quiet:disabled{color:var(--color-disabled, #72777d)}
diff --git a/resources/lib/codex/modules/CdxToggleButtonGroup-bidi.css b/resources/lib/codex/modules/CdxToggleButtonGroup-bidi.css
new file mode 100644
index 000000000000..faf4bca85e44
--- /dev/null
+++ b/resources/lib/codex/modules/CdxToggleButtonGroup-bidi.css
@@ -0,0 +1 @@
+.cdx-toggle-button-group{position:relative;z-index:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;overflow:hidden}[dir] .cdx-toggle-button-group{border-radius:2px;padding-top:1px}[dir=ltr] .cdx-toggle-button-group{padding-left:1px}[dir=rtl] .cdx-toggle-button-group{padding-right:1px}.cdx-toggle-button-group .cdx-toggle-button{position:relative;z-index:1}[dir] .cdx-toggle-button-group .cdx-toggle-button{margin-top:-1px;border-radius:0}[dir=ltr] .cdx-toggle-button-group .cdx-toggle-button{margin-left:-1px}[dir=rtl] .cdx-toggle-button-group .cdx-toggle-button{margin-right:-1px}.cdx-toggle-button-group .cdx-toggle-button:enabled:active,.cdx-toggle-button-group .cdx-toggle-button:enabled:focus{z-index:3}.cdx-toggle-button-group .cdx-toggle-button:disabled{z-index:0}[dir=ltr] .cdx-toggle-button-group .cdx-toggle-button:disabled{box-shadow:0 -1px 0 0 var(--box-shadow-color-inverted, #fff),-1px 0 0 0 var(--box-shadow-color-inverted, #fff)}[dir=rtl] .cdx-toggle-button-group .cdx-toggle-button:disabled{box-shadow:0 -1px 0 0 var(--box-shadow-color-inverted, #fff),1px 0 0 0 var(--box-shadow-color-inverted, #fff)}.cdx-toggle-button-group .cdx-toggle-button--toggled-on:enabled{z-index:2}[dir=ltr] .cdx-toggle-button-group .cdx-toggle-button--toggled-on:enabled{box-shadow:0 -1px 0 0 var(--box-shadow-color-inverted, #fff),-1px 0 0 0 var(--box-shadow-color-inverted, #fff)}[dir=rtl] .cdx-toggle-button-group .cdx-toggle-button--toggled-on:enabled{box-shadow:0 -1px 0 0 var(--box-shadow-color-inverted, #fff),1px 0 0 0 var(--box-shadow-color-inverted, #fff)}[dir] .cdx-toggle-button-group .cdx-toggle-button--toggled-on:enabled:focus{box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c),inset 0 0 0 2px var(--box-shadow-color-inverted, #fff),0 0 0 1px var(--box-shadow-color-inverted, #fff)}
diff --git a/resources/lib/codex/modules/CdxToggleSwitch-bidi.css b/resources/lib/codex/modules/CdxToggleSwitch-bidi.css
new file mode 100644
index 000000000000..60c3552d3f86
--- /dev/null
+++ b/resources/lib/codex/modules/CdxToggleSwitch-bidi.css
@@ -0,0 +1 @@
+.cdx-toggle-switch{display:inline-flex;align-items:center;justify-content:flex-start;position:relative;z-index:0}[dir] .cdx-toggle-switch{margin-bottom:12px}.cdx-toggle-switch--align-switch{display:flex;justify-content:space-between}[dir] .cdx-toggle-switch:last-child{margin-bottom:0}.cdx-toggle-switch__label,.cdx-toggle-switch__label.cdx-label{order:-1}[dir=ltr] .cdx-toggle-switch__label:not(:empty),[dir=ltr] .cdx-toggle-switch__label.cdx-label:not(:empty){padding-right:6px}[dir=rtl] .cdx-toggle-switch__label:not(:empty),[dir=rtl] .cdx-toggle-switch__label.cdx-label:not(:empty){padding-left:6px}[dir] .cdx-toggle-switch .cdx-toggle-switch__label.cdx-label{padding-bottom:0}.cdx-toggle-switch .cdx-toggle-switch__label.cdx-label .cdx-label__label__text{font-weight:400}.cdx-toggle-switch__switch{display:inline-block;flex-shrink:0;position:relative;box-sizing:border-box;min-width:48px;min-height:32px;width:3rem;height:2rem;overflow:hidden}[dir] .cdx-toggle-switch__switch{transform:translateZ(0);background-color:var(--background-color-interactive-subtle, #f8f9fa);border-width:1px;border-style:solid;border-color:var(--border-color-interactive, #72777d);border-radius:9999px;transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-toggle-switch__switch:before{content:"";display:block;position:absolute;top:1px;bottom:1px;z-index:1}[dir] .cdx-toggle-switch__switch:before{right:1px;left:1px;border:1px solid var(--border-color-transparent, transparent);border-radius:9999px;transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-toggle-switch__switch__grip{position:absolute;top:50%;box-sizing:border-box;min-width:20px;min-height:20px;width:1.25rem;height:1.25rem}[dir] .cdx-toggle-switch__switch__grip{border:1px solid var(--border-color-interactive, #72777d);border-radius:50%;transition-property:background-color,border-color,transform;transition-duration:.25s,.1s,.1s}[dir=ltr] .cdx-toggle-switch__switch__grip{transform:translate(.3125rem) translateY(-50%)}[dir=rtl] .cdx-toggle-switch__switch__grip{transform:translate(-.3125rem) translateY(-50%)}.cdx-toggle-switch__input{opacity:0;position:absolute;z-index:2;min-width:48px;min-height:32px;width:3rem;height:2rem;font-size:inherit}[dir] .cdx-toggle-switch__input{margin:0}[dir=ltr] .cdx-toggle-switch__input{right:0}[dir=rtl] .cdx-toggle-switch__input{left:0}[dir] .cdx-toggle-switch__input:checked~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{background-color:var(--background-color-base, #fff);border-color:var(--border-color-inverted, #fff)}[dir=ltr] .cdx-toggle-switch__input:checked~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{transform:translate(calc(100% + .0625rem)) translateY(-50%)}[dir=rtl] .cdx-toggle-switch__input:checked~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{transform:translate(calc(-1*(100% + .0625rem))) translateY(-50%)}[dir] .cdx-toggle-switch__input:enabled:hover,[dir] .cdx-toggle-switch__input:enabled~.cdx-label .cdx-label__label:hover,[dir] .cdx-toggle-switch__input:enabled~.cdx-toggle-switch__label:not(.cdx-label):hover{cursor:pointer}[dir] .cdx-toggle-switch__input:enabled~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{background-color:var(--background-color-base-fixed, #fff)}[dir] .cdx-toggle-switch__input:enabled:hover~.cdx-toggle-switch__switch{background-color:var(--background-color-base, #fff);border-color:var(--border-color-progressive--hover, #447ff5)}[dir] .cdx-toggle-switch__input:enabled:hover~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{background-color:var(--background-color-base-fixed, #fff);border-color:var(--border-color-progressive--hover, #447ff5)}[dir] .cdx-toggle-switch__input:enabled:active~.cdx-toggle-switch__switch{background-color:var(--background-color-progressive--active, #2a4b8d);border-color:var(--border-color-progressive--active, #2a4b8d)}[dir] .cdx-toggle-switch__input:enabled:active~.cdx-toggle-switch__switch:before{border-color:var(--border-color-progressive--active, #2a4b8d)}[dir] .cdx-toggle-switch__input:enabled:active~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{border-color:var(--border-color-inverted, #fff)}.cdx-toggle-switch__input:enabled:focus:not(:active)~.cdx-toggle-switch__switch{outline:1px solid transparent}[dir] .cdx-toggle-switch__input:enabled:focus:not(:active)~.cdx-toggle-switch__switch{border-color:var(--border-color-progressive, #36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus, #36c)}[dir] .cdx-toggle-switch__input:enabled:focus:not(:active)~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{border-color:var(--border-color-progressive, #36c)}[dir] .cdx-toggle-switch__input:enabled:checked~.cdx-toggle-switch__switch{background-color:var(--background-color-input-binary--checked, #36c);border-color:var(--border-color-progressive, #36c)}[dir] .cdx-toggle-switch__input:enabled:checked~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{border-color:var(--background-color-base, #fff)}[dir] .cdx-toggle-switch__input:enabled:checked:hover~.cdx-toggle-switch__switch{background-color:var(--background-color-progressive--hover, #447ff5);border-color:var(--border-color-progressive--hover, #447ff5)}[dir] .cdx-toggle-switch__input:enabled:checked:active~.cdx-toggle-switch__switch{background-color:var(--background-color-progressive--active, #2a4b8d);border-color:var(--border-color-progressive--active, #2a4b8d);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--active, #2a4b8d)}[dir] .cdx-toggle-switch__input:enabled:checked:active~.cdx-toggle-switch__switch:before{border-color:var(--border-color-progressive--active, #2a4b8d)}[dir] .cdx-toggle-switch__input:enabled:checked:active~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{background-color:var(--background-color-base-fixed, #fff);border-color:var(--border-color-inverted, #fff)}[dir] .cdx-toggle-switch__input:enabled:checked:focus:not(:active)~.cdx-toggle-switch__switch{border-color:var(--border-color-progressive, #36c)}[dir] .cdx-toggle-switch__input:enabled:checked:focus:not(:active)~.cdx-toggle-switch__switch:before,[dir] .cdx-toggle-switch__input:enabled:checked:focus:not(:active)~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{border-color:var(--border-color-inverted, #fff)}[dir] .cdx-toggle-switch__input:disabled{cursor:default}[dir] .cdx-toggle-switch__input:disabled~.cdx-toggle-switch__switch{background-color:var(--background-color-disabled, #c8ccd1);border-color:var(--border-color-disabled, #c8ccd1)}[dir] .cdx-toggle-switch__input:disabled~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{border-color:var(--border-color-inverted, #fff);box-shadow:inset 0 0 0 1px var(--box-shadow-color-inverted, #fff)}[dir] .cdx-toggle-switch__input:disabled:checked~.cdx-toggle-switch__switch .cdx-toggle-switch__switch__grip{background-color:var(--background-color-base, #fff)}
diff --git a/resources/lib/codex/modules/CdxTooltip-bidi.css b/resources/lib/codex/modules/CdxTooltip-bidi.css
new file mode 100644
index 000000000000..421b8d675c3d
--- /dev/null
+++ b/resources/lib/codex/modules/CdxTooltip-bidi.css
@@ -0,0 +1 @@
+.cdx-tooltip{color:var(--color-inverted, #fff);display:none;position:absolute;z-index:800;width:-webkit-max-content;width:max-content;max-width:16rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;font-size:.75rem;font-weight:400;line-height:1.25rem}[dir] .cdx-tooltip{background-color:var(--background-color-inverted, #101418);border-radius:2px;padding:2px 6px;animation-name:cdx-animation-tooltip;animation-duration:.1s;animation-timing-function:linear;animation-delay:.25s;animation-fill-mode:both}@keyframes cdx-animation-tooltip{0%{opacity:0;transform:scale(75%)}to{opacity:1;transform:scale(1)}}
diff --git a/resources/lib/codex/modules/CdxTypeaheadSearch-bidi.css b/resources/lib/codex/modules/CdxTypeaheadSearch-bidi.css
new file mode 100644
index 000000000000..7560aa05218c
--- /dev/null
+++ b/resources/lib/codex/modules/CdxTypeaheadSearch-bidi.css
@@ -0,0 +1 @@
+[dir] .cdx-typeahead-search__menu.cdx-menu{border-top-left-radius:0;border-top-right-radius:0}[dir] .cdx-typeahead-search .cdx-menu-item{padding:0}[dir] .cdx-typeahead-search .cdx-menu-item__content{padding:8px 12px}.cdx-typeahead-search__search-footer.cdx-menu-item{box-sizing:border-box;min-height:56px}.cdx-typeahead-search__search-footer.cdx-menu-item:visited{color:var(--color-base, #202122)}.cdx-typeahead-search__search-footer.cdx-menu-item:hover{text-decoration:none}[dir] .cdx-typeahead-search__search-footer.cdx-menu-item:hover{cursor:pointer}.cdx-typeahead-search__search-footer__icon.cdx-icon{color:var(--color-subtle, #54595d)}.cdx-typeahead-search__search-footer__active.cdx-menu-item .cdx-typeahead-search__search-footer__icon.cdx-icon,.cdx-typeahead-search__search-footer__active.cdx-menu-item .cdx-typeahead-search__search-footer__text{color:var(--color-progressive, #36c)}[dir=ltr] .cdx-typeahead-search .cdx-typeahead-search__menu-message--has-thumbnail{padding-left:20px}[dir=rtl] .cdx-typeahead-search .cdx-typeahead-search__menu-message--has-thumbnail{padding-right:20px}[dir] .cdx-typeahead-search--expanded .cdx-typeahead-search__input.cdx-search-input .cdx-text-input{border-bottom-left-radius:0;border-bottom-right-radius:0}[dir=ltr] .cdx-typeahead-search .cdx-text-input--has-start-icon .cdx-text-input__input{padding-left:36px}[dir=rtl] .cdx-typeahead-search .cdx-text-input--has-start-icon .cdx-text-input__input{padding-right:36px}[dir=ltr] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){margin-left:24px}[dir=rtl] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){margin-right:24px}[dir=ltr] .cdx-typeahead-search--show-thumbnail:not(.cdx-typeahead-search--auto-expand-width),[dir=ltr] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width.cdx-typeahead-search--expanded{margin-left:0}[dir=rtl] .cdx-typeahead-search--show-thumbnail:not(.cdx-typeahead-search--auto-expand-width),[dir=rtl] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width.cdx-typeahead-search--expanded{margin-right:0}[dir=ltr] .cdx-typeahead-search--show-thumbnail:not(.cdx-typeahead-search--auto-expand-width) .cdx-text-input__input,[dir=ltr] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width.cdx-typeahead-search--expanded .cdx-text-input__input{padding-left:60px}[dir=rtl] .cdx-typeahead-search--show-thumbnail:not(.cdx-typeahead-search--auto-expand-width) .cdx-text-input__input,[dir=rtl] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width.cdx-typeahead-search--expanded .cdx-text-input__input{padding-right:60px}.cdx-typeahead-search--show-thumbnail:not(.cdx-typeahead-search--auto-expand-width) .cdx-text-input__start-icon,.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width.cdx-typeahead-search--expanded .cdx-text-input__start-icon{position:absolute;top:50%;min-width:20px;min-height:20px;width:1.25rem;height:1.25rem}[dir] .cdx-typeahead-search--show-thumbnail:not(.cdx-typeahead-search--auto-expand-width) .cdx-text-input__start-icon,[dir] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width.cdx-typeahead-search--expanded .cdx-text-input__start-icon{transition-property:color;transition-duration:.1s;transform:translateY(-50%)}[dir=ltr] .cdx-typeahead-search--show-thumbnail:not(.cdx-typeahead-search--auto-expand-width) .cdx-text-input__start-icon,[dir=ltr] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width.cdx-typeahead-search--expanded .cdx-text-input__start-icon{left:22px}[dir=rtl] .cdx-typeahead-search--show-thumbnail:not(.cdx-typeahead-search--auto-expand-width) .cdx-text-input__start-icon,[dir=rtl] .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width.cdx-typeahead-search--expanded .cdx-text-input__start-icon{right:22px}.cdx-typeahead-search--show-thumbnail .cdx-typeahead-search__search-footer__icon{flex-shrink:0;min-width:40px;width:2.5rem}[dir] .cdx-typeahead-search .cdx-menu-item:first-child .cdx-typeahead-search__search-footer{border-top:unset}
diff --git a/resources/lib/codex/modules/Icon-bidi.css b/resources/lib/codex/modules/Icon-bidi.css
new file mode 100644
index 000000000000..d3d9066f3886
--- /dev/null
+++ b/resources/lib/codex/modules/Icon-bidi.css
@@ -0,0 +1 @@
+.cdx-icon{color:var(--color-base, #202122);display:inline-flex;align-items:center;justify-content:center;vertical-align:text-bottom}.cdx-icon svg{fill:currentcolor;width:100%;height:100%}.cdx-icon--x-small{min-width:12px;min-height:12px;width:.75rem;height:.75rem}.cdx-icon--small{min-width:16px;min-height:16px;width:1rem;height:1rem}.cdx-icon--medium{min-width:20px;min-height:20px;width:1.25rem;height:1.25rem}[dir] .cdx-icon--flipped svg{transform:scaleX(-1)}
diff --git a/resources/lib/codex/modules/manifest-bidi.json b/resources/lib/codex/modules/manifest-bidi.json
new file mode 100644
index 000000000000..09f362912716
--- /dev/null
+++ b/resources/lib/codex/modules/manifest-bidi.json
@@ -0,0 +1,700 @@
+{
+ "_Icon.js": {
+ "file": "Icon.js",
+ "name": "Icon",
+ "imports": [
+ "src/composables/useComputedDirection.ts",
+ "src/composables/useComputedLanguage.ts",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "Icon-bidi.css"
+ ]
+ },
+ "__plugin-vue_export-helper.js": {
+ "file": "_plugin-vue_export-helper.js",
+ "name": "_plugin-vue_export-helper"
+ },
+ "_constants.js": {
+ "file": "constants.js",
+ "name": "constants"
+ },
+ "_floating-ui.dom.js": {
+ "file": "floating-ui.dom.js",
+ "name": "floating-ui.dom"
+ },
+ "_useButtonGroupKeyboardNav.js": {
+ "file": "useButtonGroupKeyboardNav.js",
+ "name": "useButtonGroupKeyboardNav",
+ "imports": [
+ "src/composables/useComputedDirection.ts"
+ ]
+ },
+ "_useI18nWithOverride.js": {
+ "file": "useI18nWithOverride.js",
+ "name": "useI18nWithOverride",
+ "imports": [
+ "src/composables/useI18n.ts"
+ ]
+ },
+ "_useIconOnlyButton.js": {
+ "file": "useIconOnlyButton.js",
+ "name": "useIconOnlyButton",
+ "imports": [
+ "_useSlotContents.js",
+ "src/composables/useWarnOnce.ts"
+ ]
+ },
+ "_useLabelChecker.js": {
+ "file": "useLabelChecker.js",
+ "name": "useLabelChecker",
+ "imports": [
+ "_useSlotContents.js",
+ "src/composables/useWarnOnce.ts"
+ ]
+ },
+ "_useOptionalModelWrapper.js": {
+ "file": "useOptionalModelWrapper.js",
+ "name": "useOptionalModelWrapper"
+ },
+ "_useSlotContents.js": {
+ "file": "useSlotContents.js",
+ "name": "useSlotContents"
+ },
+ "src/components/accordion/Accordion.vue": {
+ "file": "CdxAccordion.cjs",
+ "name": "CdxAccordion",
+ "src": "src/components/accordion/Accordion.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/button/Button.vue",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxAccordion-bidi.css"
+ ]
+ },
+ "src/components/button-group/ButtonGroup.vue": {
+ "file": "CdxButtonGroup.cjs",
+ "name": "CdxButtonGroup",
+ "src": "src/components/button-group/ButtonGroup.vue",
+ "isEntry": true,
+ "imports": [
+ "_useButtonGroupKeyboardNav.js",
+ "src/components/button/Button.vue",
+ "_Icon.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxButtonGroup-bidi.css"
+ ]
+ },
+ "src/components/button/Button.vue": {
+ "file": "CdxButton.cjs",
+ "name": "CdxButton",
+ "src": "src/components/button/Button.vue",
+ "isEntry": true,
+ "imports": [
+ "_constants.js",
+ "_useIconOnlyButton.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxButton-bidi.css"
+ ]
+ },
+ "src/components/card/Card.vue": {
+ "file": "CdxCard.cjs",
+ "name": "CdxCard",
+ "src": "src/components/card/Card.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/thumbnail/Thumbnail.vue",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxCard-bidi.css"
+ ]
+ },
+ "src/components/checkbox/Checkbox.vue": {
+ "file": "CdxCheckbox.cjs",
+ "name": "CdxCheckbox",
+ "src": "src/components/checkbox/Checkbox.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/label/Label.vue",
+ "_useLabelChecker.js",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useFieldData.ts",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxCheckbox-bidi.css"
+ ]
+ },
+ "src/components/chip-input/ChipInput.vue": {
+ "file": "CdxChipInput.cjs",
+ "name": "CdxChipInput",
+ "src": "src/components/chip-input/ChipInput.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/button/Button.vue",
+ "_Icon.js",
+ "src/composables/useI18n.ts",
+ "__plugin-vue_export-helper.js",
+ "_constants.js",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useFieldData.ts",
+ "src/composables/useComputedDirection.ts",
+ "_useOptionalModelWrapper.js"
+ ],
+ "css": [
+ "CdxChipInput-bidi.css"
+ ]
+ },
+ "src/components/combobox/Combobox.vue": {
+ "file": "CdxCombobox.cjs",
+ "name": "CdxCombobox",
+ "src": "src/components/combobox/Combobox.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/button/Button.vue",
+ "src/components/menu/Menu.vue",
+ "src/components/text-input/TextInput.vue",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useFieldData.ts",
+ "src/composables/useFloatingMenu.ts",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxCombobox-bidi.css"
+ ]
+ },
+ "src/components/dialog/Dialog.vue": {
+ "file": "CdxDialog.cjs",
+ "name": "CdxDialog",
+ "src": "src/components/dialog/Dialog.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/button/Button.vue",
+ "_Icon.js",
+ "src/composables/useGeneratedId.ts",
+ "_useI18nWithOverride.js",
+ "src/composables/useResizeObserver.ts",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxDialog-bidi.css"
+ ]
+ },
+ "src/components/field/Field.vue": {
+ "file": "CdxField.cjs",
+ "name": "CdxField",
+ "src": "src/components/field/Field.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/label/Label.vue",
+ "src/components/message/Message.vue",
+ "_constants.js",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useComputedDisabled.ts",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxField-bidi.css"
+ ]
+ },
+ "src/components/icon/Icon.vue": {
+ "file": "CdxIcon.cjs",
+ "name": "CdxIcon",
+ "src": "src/components/icon/Icon.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "__plugin-vue_export-helper.js"
+ ]
+ },
+ "src/components/info-chip/InfoChip.vue": {
+ "file": "CdxInfoChip.cjs",
+ "name": "CdxInfoChip",
+ "src": "src/components/info-chip/InfoChip.vue",
+ "isEntry": true,
+ "imports": [
+ "_constants.js",
+ "_Icon.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxInfoChip-bidi.css"
+ ]
+ },
+ "src/components/label/Label.vue": {
+ "file": "CdxLabel.cjs",
+ "name": "CdxLabel",
+ "src": "src/components/label/Label.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/composables/useFieldData.ts",
+ "src/composables/useSplitAttributes.ts",
+ "_useI18nWithOverride.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxLabel-bidi.css"
+ ]
+ },
+ "src/components/lookup/Lookup.vue": {
+ "file": "CdxLookup.cjs",
+ "name": "CdxLookup",
+ "src": "src/components/lookup/Lookup.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/menu/Menu.vue",
+ "src/components/text-input/TextInput.vue",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useModelWrapper.ts",
+ "_useOptionalModelWrapper.js",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useFieldData.ts",
+ "src/composables/useFloatingMenu.ts",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxLookup-bidi.css"
+ ]
+ },
+ "src/components/menu-button/MenuButton.vue": {
+ "file": "CdxMenuButton.cjs",
+ "name": "CdxMenuButton",
+ "src": "src/components/menu-button/MenuButton.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/toggle-button/ToggleButton.vue",
+ "src/components/menu/Menu.vue",
+ "src/composables/useFieldData.ts",
+ "src/composables/useFloatingMenu.ts",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useSplitAttributes.ts",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxMenuButton-bidi.css"
+ ]
+ },
+ "src/components/menu-item/MenuItem.vue": {
+ "file": "CdxMenuItem.cjs",
+ "name": "CdxMenuItem",
+ "src": "src/components/menu-item/MenuItem.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/thumbnail/Thumbnail.vue",
+ "src/components/search-result-title/SearchResultTitle.vue",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxMenuItem-bidi.css"
+ ]
+ },
+ "src/components/menu/Menu.vue": {
+ "file": "CdxMenu.cjs",
+ "name": "CdxMenu",
+ "src": "src/components/menu/Menu.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/menu-item/MenuItem.vue",
+ "src/components/progress-bar/ProgressBar.vue",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useIntersectionObserver.ts",
+ "src/composables/useSplitAttributes.ts",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxMenu-bidi.css"
+ ]
+ },
+ "src/components/message/Message.vue": {
+ "file": "CdxMessage.cjs",
+ "name": "CdxMessage",
+ "src": "src/components/message/Message.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/button/Button.vue",
+ "_constants.js",
+ "_useI18nWithOverride.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxMessage-bidi.css"
+ ]
+ },
+ "src/components/progress-bar/ProgressBar.vue": {
+ "file": "CdxProgressBar.cjs",
+ "name": "CdxProgressBar",
+ "src": "src/components/progress-bar/ProgressBar.vue",
+ "isEntry": true,
+ "imports": [
+ "src/composables/useWarnOnce.ts",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxProgressBar-bidi.css"
+ ]
+ },
+ "src/components/radio/Radio.vue": {
+ "file": "CdxRadio.cjs",
+ "name": "CdxRadio",
+ "src": "src/components/radio/Radio.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/label/Label.vue",
+ "_useLabelChecker.js",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useFieldData.ts",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxRadio-bidi.css"
+ ]
+ },
+ "src/components/search-input/SearchInput.vue": {
+ "file": "CdxSearchInput.cjs",
+ "name": "CdxSearchInput",
+ "src": "src/components/search-input/SearchInput.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/button/Button.vue",
+ "src/components/text-input/TextInput.vue",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useFieldData.ts",
+ "_useI18nWithOverride.js",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxSearchInput-bidi.css"
+ ]
+ },
+ "src/components/search-result-title/SearchResultTitle.vue": {
+ "file": "CdxSearchResultTitle.cjs",
+ "name": "CdxSearchResultTitle",
+ "src": "src/components/search-result-title/SearchResultTitle.vue",
+ "isEntry": true,
+ "imports": [
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxSearchResultTitle-bidi.css"
+ ]
+ },
+ "src/components/select/Select.vue": {
+ "file": "CdxSelect.cjs",
+ "name": "CdxSelect",
+ "src": "src/components/select/Select.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/menu/Menu.vue",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useFieldData.ts",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useFloatingMenu.ts",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxSelect-bidi.css"
+ ]
+ },
+ "src/components/tab/Tab.vue": {
+ "file": "CdxTab.cjs",
+ "name": "CdxTab",
+ "src": "src/components/tab/Tab.vue",
+ "isEntry": true,
+ "imports": [
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxTab-bidi.css"
+ ]
+ },
+ "src/components/table/Table.vue": {
+ "file": "CdxTable.cjs",
+ "name": "CdxTable",
+ "src": "src/components/table/Table.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/checkbox/Checkbox.vue",
+ "_Icon.js",
+ "src/components/button/Button.vue",
+ "src/components/select/Select.vue",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useI18n.ts",
+ "__plugin-vue_export-helper.js",
+ "src/components/progress-bar/ProgressBar.vue",
+ "_constants.js"
+ ],
+ "css": [
+ "CdxTable-bidi.css"
+ ]
+ },
+ "src/components/tabs/Tabs.vue": {
+ "file": "CdxTabs.cjs",
+ "name": "CdxTabs",
+ "src": "src/components/tabs/Tabs.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/button/Button.vue",
+ "src/components/tab/Tab.vue",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useComputedDirection.ts",
+ "_useOptionalModelWrapper.js",
+ "src/composables/useIntersectionObserver.ts",
+ "_useSlotContents.js",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxTabs-bidi.css"
+ ]
+ },
+ "src/components/text-area/TextArea.vue": {
+ "file": "CdxTextArea.cjs",
+ "name": "CdxTextArea",
+ "src": "src/components/text-area/TextArea.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useFieldData.ts",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxTextArea-bidi.css"
+ ]
+ },
+ "src/components/text-input/TextInput.vue": {
+ "file": "CdxTextInput.cjs",
+ "name": "CdxTextInput",
+ "src": "src/components/text-input/TextInput.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "_constants.js",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useFieldData.ts",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxTextInput-bidi.css"
+ ]
+ },
+ "src/components/thumbnail/Thumbnail.vue": {
+ "file": "CdxThumbnail.cjs",
+ "name": "CdxThumbnail",
+ "src": "src/components/thumbnail/Thumbnail.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxThumbnail-bidi.css"
+ ]
+ },
+ "src/components/toggle-button-group/ToggleButtonGroup.vue": {
+ "file": "CdxToggleButtonGroup.cjs",
+ "name": "CdxToggleButtonGroup",
+ "src": "src/components/toggle-button-group/ToggleButtonGroup.vue",
+ "isEntry": true,
+ "imports": [
+ "_useButtonGroupKeyboardNav.js",
+ "_Icon.js",
+ "src/components/toggle-button/ToggleButton.vue",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxToggleButtonGroup-bidi.css"
+ ]
+ },
+ "src/components/toggle-button/ToggleButton.vue": {
+ "file": "CdxToggleButton.cjs",
+ "name": "CdxToggleButton",
+ "src": "src/components/toggle-button/ToggleButton.vue",
+ "isEntry": true,
+ "imports": [
+ "_useIconOnlyButton.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxToggleButton-bidi.css"
+ ]
+ },
+ "src/components/toggle-switch/ToggleSwitch.vue": {
+ "file": "CdxToggleSwitch.cjs",
+ "name": "CdxToggleSwitch",
+ "src": "src/components/toggle-switch/ToggleSwitch.vue",
+ "isEntry": true,
+ "imports": [
+ "src/components/label/Label.vue",
+ "_useLabelChecker.js",
+ "src/composables/useModelWrapper.ts",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useFieldData.ts",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxToggleSwitch-bidi.css"
+ ]
+ },
+ "src/components/tooltip/Tooltip.ts": {
+ "file": "CdxTooltip.cjs",
+ "name": "CdxTooltip",
+ "src": "src/components/tooltip/Tooltip.ts",
+ "isEntry": true,
+ "imports": [
+ "src/composables/useGeneratedId.ts",
+ "_floating-ui.dom.js"
+ ],
+ "css": [
+ "CdxTooltip-bidi.css"
+ ]
+ },
+ "src/components/typeahead-search/TypeaheadSearch.vue": {
+ "file": "CdxTypeaheadSearch.cjs",
+ "name": "CdxTypeaheadSearch",
+ "src": "src/components/typeahead-search/TypeaheadSearch.vue",
+ "isEntry": true,
+ "imports": [
+ "_Icon.js",
+ "src/components/menu/Menu.vue",
+ "src/components/search-input/SearchInput.vue",
+ "src/composables/useGeneratedId.ts",
+ "src/composables/useSplitAttributes.ts",
+ "src/composables/useI18n.ts",
+ "_constants.js",
+ "__plugin-vue_export-helper.js"
+ ],
+ "css": [
+ "CdxTypeaheadSearch-bidi.css"
+ ]
+ },
+ "src/composables/useComputedDirection.ts": {
+ "file": "useComputedDirection.cjs",
+ "name": "useComputedDirection",
+ "src": "src/composables/useComputedDirection.ts",
+ "isEntry": true
+ },
+ "src/composables/useComputedDisabled.ts": {
+ "file": "useComputedDisabled.cjs",
+ "name": "useComputedDisabled",
+ "src": "src/composables/useComputedDisabled.ts",
+ "isEntry": true,
+ "imports": [
+ "_constants.js"
+ ]
+ },
+ "src/composables/useComputedLanguage.ts": {
+ "file": "useComputedLanguage.cjs",
+ "name": "useComputedLanguage",
+ "src": "src/composables/useComputedLanguage.ts",
+ "isEntry": true
+ },
+ "src/composables/useFieldData.ts": {
+ "file": "useFieldData.cjs",
+ "name": "useFieldData",
+ "src": "src/composables/useFieldData.ts",
+ "isEntry": true,
+ "imports": [
+ "src/composables/useComputedDisabled.ts",
+ "_constants.js"
+ ]
+ },
+ "src/composables/useFloatingMenu.ts": {
+ "file": "useFloatingMenu.cjs",
+ "name": "useFloatingMenu",
+ "src": "src/composables/useFloatingMenu.ts",
+ "isEntry": true,
+ "imports": [
+ "_floating-ui.dom.js"
+ ]
+ },
+ "src/composables/useGeneratedId.ts": {
+ "file": "useGeneratedId.cjs",
+ "name": "useGeneratedId",
+ "src": "src/composables/useGeneratedId.ts",
+ "isEntry": true,
+ "imports": [
+ "_constants.js"
+ ]
+ },
+ "src/composables/useI18n.ts": {
+ "file": "useI18n.cjs",
+ "name": "useI18n",
+ "src": "src/composables/useI18n.ts",
+ "isEntry": true
+ },
+ "src/composables/useIntersectionObserver.ts": {
+ "file": "useIntersectionObserver.cjs",
+ "name": "useIntersectionObserver",
+ "src": "src/composables/useIntersectionObserver.ts",
+ "isEntry": true
+ },
+ "src/composables/useModelWrapper.ts": {
+ "file": "useModelWrapper.cjs",
+ "name": "useModelWrapper",
+ "src": "src/composables/useModelWrapper.ts",
+ "isEntry": true
+ },
+ "src/composables/useResizeObserver.ts": {
+ "file": "useResizeObserver.cjs",
+ "name": "useResizeObserver",
+ "src": "src/composables/useResizeObserver.ts",
+ "isEntry": true
+ },
+ "src/composables/useSlotContents.ts": {
+ "file": "useSlotContents.cjs",
+ "name": "useSlotContents",
+ "src": "src/composables/useSlotContents.ts",
+ "isEntry": true,
+ "imports": [
+ "_useSlotContents.js"
+ ]
+ },
+ "src/composables/useSplitAttributes.ts": {
+ "file": "useSplitAttributes.cjs",
+ "name": "useSplitAttributes",
+ "src": "src/composables/useSplitAttributes.ts",
+ "isEntry": true
+ },
+ "src/composables/useWarnOnce.ts": {
+ "file": "useWarnOnce.cjs",
+ "name": "useWarnOnce",
+ "src": "src/composables/useWarnOnce.ts",
+ "isEntry": true
+ }
+} \ No newline at end of file
diff --git a/resources/lib/codex/modules/manifest-rtl.json b/resources/lib/codex/modules/manifest-rtl.json
index 75627a7fa280..9bac98465ff4 100644
--- a/resources/lib/codex/modules/manifest-rtl.json
+++ b/resources/lib/codex/modules/manifest-rtl.json
@@ -54,6 +54,10 @@
"src/composables/useWarnOnce.ts"
]
},
+ "_useOptionalModelWrapper.js": {
+ "file": "useOptionalModelWrapper.js",
+ "name": "useOptionalModelWrapper"
+ },
"_useSlotContents.js": {
"file": "useSlotContents.js",
"name": "useSlotContents"
@@ -146,7 +150,8 @@
"_constants.js",
"src/composables/useSplitAttributes.ts",
"src/composables/useFieldData.ts",
- "src/composables/useComputedDirection.ts"
+ "src/composables/useComputedDirection.ts",
+ "_useOptionalModelWrapper.js"
],
"css": [
"CdxChipInput-rtl.css"
@@ -258,6 +263,7 @@
"src/components/text-input/TextInput.vue",
"src/composables/useGeneratedId.ts",
"src/composables/useModelWrapper.ts",
+ "_useOptionalModelWrapper.js",
"src/composables/useSplitAttributes.ts",
"src/composables/useFieldData.ts",
"src/composables/useFloatingMenu.ts",
@@ -461,7 +467,7 @@
"src/components/tab/Tab.vue",
"src/composables/useGeneratedId.ts",
"src/composables/useComputedDirection.ts",
- "src/composables/useModelWrapper.ts",
+ "_useOptionalModelWrapper.js",
"src/composables/useIntersectionObserver.ts",
"_useSlotContents.js",
"_constants.js",
diff --git a/resources/lib/codex/modules/manifest.json b/resources/lib/codex/modules/manifest.json
index 69660a3652e5..2fc39c14c95a 100644
--- a/resources/lib/codex/modules/manifest.json
+++ b/resources/lib/codex/modules/manifest.json
@@ -54,6 +54,10 @@
"src/composables/useWarnOnce.ts"
]
},
+ "_useOptionalModelWrapper.js": {
+ "file": "useOptionalModelWrapper.js",
+ "name": "useOptionalModelWrapper"
+ },
"_useSlotContents.js": {
"file": "useSlotContents.js",
"name": "useSlotContents"
@@ -146,7 +150,8 @@
"_constants.js",
"src/composables/useSplitAttributes.ts",
"src/composables/useFieldData.ts",
- "src/composables/useComputedDirection.ts"
+ "src/composables/useComputedDirection.ts",
+ "_useOptionalModelWrapper.js"
],
"css": [
"CdxChipInput.css"
@@ -258,6 +263,7 @@
"src/components/text-input/TextInput.vue",
"src/composables/useGeneratedId.ts",
"src/composables/useModelWrapper.ts",
+ "_useOptionalModelWrapper.js",
"src/composables/useSplitAttributes.ts",
"src/composables/useFieldData.ts",
"src/composables/useFloatingMenu.ts",
@@ -461,7 +467,7 @@
"src/components/tab/Tab.vue",
"src/composables/useGeneratedId.ts",
"src/composables/useComputedDirection.ts",
- "src/composables/useModelWrapper.ts",
+ "_useOptionalModelWrapper.js",
"src/composables/useIntersectionObserver.ts",
"_useSlotContents.js",
"_constants.js",
diff --git a/resources/lib/codex/modules/useOptionalModelWrapper.js b/resources/lib/codex/modules/useOptionalModelWrapper.js
new file mode 100644
index 000000000000..dcf01425c4e5
--- /dev/null
+++ b/resources/lib/codex/modules/useOptionalModelWrapper.js
@@ -0,0 +1 @@
+"use strict";const r=require("vue");function o(u,t,l,p){return r.computed({get:()=>{var e;return(e=t.value)!=null?e:u.value},set:e=>{t.value!==null?l(p||"update:modelValue",e):u.value=e}})}exports.useOptionalModelWrapper=o;