diff --git a/tests/__snapshots__/demo.test.tsx.snap b/tests/__snapshots__/demo.test.tsx.snap
index 89051fe0..7a04124d 100644
--- a/tests/__snapshots__/demo.test.tsx.snap
+++ b/tests/__snapshots__/demo.test.tsx.snap
@@ -18212,6 +18212,1186 @@ exports[` > renders theme.tsx correctly 1`] = `
`;
+exports[` > renders wrapper.tsx correctly 1`] = `
+.emotion-0 {
+ background-color: hsla(221.29999999999995, 15.7%, 20%, 0.9);
+ border-radius: 6px;
+}
+
+.emotion-0 .studio-highlight-copy {
+ background-color: transparent;
+ position: inherit;
+ width: 30px;
+ padding-left: 6px;
+}
+
+.emotion-1 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: justify;
+ -webkit-justify-content: space-between;
+ justify-content: space-between;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ width: 100%;
+}
+
+.emotion-2 {
+ padding: 4px 8px;
+ background: rgba(0, 0, 0, 0.02);
+ width: auto!important;
+}
+
+.emotion-3 {
+ color: #dddddd;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-transition: color 600ms cubic-bezier(0.215, 0.61, 0.355, 1),scale 400ms cubic-bezier(0.215, 0.61, 0.355, 1),background-color 100ms cubic-bezier(0.215, 0.61, 0.355, 1);
+ transition: color 600ms cubic-bezier(0.215, 0.61, 0.355, 1),scale 400ms cubic-bezier(0.215, 0.61, 0.355, 1),background-color 100ms cubic-bezier(0.215, 0.61, 0.355, 1);
+ width: 24px!important;
+ height: 24px!important;
+}
+
+.emotion-3:hover .studio-btn-icon {
+ color: #dddddd!important;
+}
+
+.emotion-3:hover {
+ color: rgba(0, 0, 0, 0.88)!important;
+}
+
+.emotion-3:active {
+ scale: 0.8;
+ color: rgba(0, 0, 0, 0.88);
+}
+
+.emotion-4 {
+ min-width: 100px;
+}
+
+.emotion-4.studio-select-multiple:not(.emotion-4.studio-select-customize-input) .emotion-4.studio-select.studio-select-selector:hover {
+ color: rgba(0, 0, 0, 0.88);
+ background-color: rgba(0, 0, 0, 0.04);
+ border-color: transparent;
+}
+
+.emotion-4.studio-select-multiple:not(.emotion-4.studio-select-customize-input) .emotion-4.studio-select.studio-select-selector:focus {
+ color: rgba(0, 0, 0, 0.88)!important;
+ background-color: rgba(0, 0, 0, 0.02)!important;
+ border-color: #1677ff!important;
+ box-shadow: none;
+}
+
+.emotion-4.studio-select:not(.studio-select-disabled):not(.studio-select-customize-input):hover .studio-select-selector {
+ border-color: transparent;
+}
+
+.emotion-4.studio-select:not(.studio-select-disabled):not(.studio-select-customize-input):hover .studio-select-selector:hover {
+ color: rgba(0, 0, 0, 0.88);
+ background-color: rgba(0, 0, 0, 0.04);
+ border-color: transparent;
+}
+
+.emotion-4.studio-select:not(.studio-select-disabled):not(.studio-select-customize-input):hover .studio-select-selector:focus {
+ color: rgba(0, 0, 0, 0.88)!important;
+ background-color: rgba(0, 0, 0, 0.02)!important;
+ border-color: #1677ff!important;
+ box-shadow: none;
+}
+
+.emotion-4.studio-select-focused:not(.studio-select-disabled):not(.studio-select-customize-input):hover .studio-select-selector {
+ color: rgba(0, 0, 0, 0.88)!important;
+ background-color: rgba(0, 0, 0, 0.02)!important;
+ border-color: #1677ff!important;
+ box-shadow: none;
+}
+
+.emotion-4.studio-select-focused:not(.studio-select-disabled):not(.studio-select-customize-input) .studio-select-selector {
+ color: rgba(0, 0, 0, 0.88)!important;
+ background-color: rgba(0, 0, 0, 0.02)!important;
+ border-color: #1677ff!important;
+ box-shadow: none;
+}
+
+.emotion-4 .studio-select-arrow {
+ top: 13px;
+ right: 8px;
+ width: 10px;
+ height: 10px;
+ font-size: 10px;
+}
+
+.emotion-4 .studio-btn {
+ color: #dddddd;
+}
+
+.emotion-4 .studio-btn:hover {
+ color: #777777!important;
+}
+
+.emotion-4 .studio-select-selector {
+ -webkit-padding-end: 4px!important;
+ padding-inline-end: 4px!important;
+}
+
+.emotion-4 .studio-select-selection-overflow-item-suffix .studio-select-selection-search {
+ display: none;
+}
+
+.emotion-5 {
+ min-width: 100px;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+}
+
+.emotion-6 {
+ position: absolute;
+ top: 16px;
+ right: 16px;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ width: 16px;
+ height: 16px;
+ padding: 0;
+ overflow: hidden;
+ border: 0;
+ outline: none;
+ cursor: pointer;
+ opacity: 0.6;
+ -webkit-transition: opacity 0.2s;
+ transition: opacity 0.2s;
+ background-color: #2b303b;
+}
+
+.emotion-6:hover {
+ opacity: 0.8;
+}
+
+.emotion-7 {
+ width: 16px;
+ color: #dddddd;
+ height: 16px;
+ font-size: 16px;
+}
+
+.emotion-7.scoll {
+ -webkit-animation: copy-button-trans 2s;
+ animation: copy-button-trans 2s;
+ -webkit-animation-play-state: running;
+ animation-play-state: running;
+}
+
+.emotion-9 {
+ background-color: #2b303b;
+ border: 1px solid #2b303b;
+ position: relative;
+ overflow: auto;
+ margin: 0;
+ border-radius: 6px;
+ -webkit-transition: background-color 100ms cubic-bezier(0.215, 0.61, 0.355, 1);
+ transition: background-color 100ms cubic-bezier(0.215, 0.61, 0.355, 1);
+}
+
+.emotion-9 pre {
+ margin: 0!important;
+ padding: 16px 24px!important;
+ background: none!important;
+}
+
+.emotion-9 code {
+ background: transparent!important;
+}
+
+.emotion-10 {
+ display: block;
+ overflow-x: auto;
+ color: #dddddd;
+ background-color: #777777;
+}
+
+.emotion-10 .hljs-comment,
+.emotion-10 .hljs-quote {
+ color: #555555;
+}
+
+.emotion-10 .hljs-variable,
+.emotion-10 .hljs-attribute,
+.emotion-10 .hljs-template-variable,
+.emotion-10 .hljs-tag,
+.emotion-10 .hljs-name,
+.emotion-10 .hljs-selector-id,
+.emotion-10 .hljs-selector-class,
+.emotion-10 .hljs-regexp,
+.emotion-10 .hljs-title,
+.emotion-10 .hljs-deletion {
+ color: #f04f88;
+}
+
+.emotion-10 .hljs-builtin-name,
+.emotion-10 .hljs-literal,
+.emotion-10 .hljs-type,
+.emotion-10 .hljs-params,
+.emotion-10 .hljs-meta,
+.emotion-10 .hljs-link {
+ color: #ffcb47;
+}
+
+.emotion-10 .hljs-string,
+.emotion-10 .hljs-number,
+.emotion-10 .hljs-symbol,
+.emotion-10 .hljs-bullet,
+.emotion-10 .hljs-addition {
+ color: #c4f042;
+}
+
+.emotion-10 .hljs-keyword,
+.emotion-10 .hljs-doctag,
+.emotion-10 .hljs-built_in,
+.emotion-10 .hljs-selector-tag,
+.emotion-10 .hljs-section {
+ color: #8ae8ff;
+}
+
+.emotion-10 .hljs-emphasis {
+ font-style: italic;
+}
+
+.emotion-10 .hljs-strong {
+ font-weight: bold;
+}
+
+.emotion-11 {
+ width: 100%;
+}
+
+.emotion-16 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ gap: 8px;
+}
+
+.emotion-17 {
+ -webkit-backdrop-filter: saturate(180%) blur(10px);
+ backdrop-filter: saturate(180%) blur(10px);
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ height: 36px;
+ padding: 0 8px;
+ font-family: 'SFMono-Regular',Consolas,'Liberation Mono',Menlo,Courier,monospace;
+ color: #555555;
+ border-radius: 6;
+}
+
+.emotion-18 {
+ color: #555555;
+}
+
+.emotion-19 {
+ background-color: hsla(0, 0%, 98%, 0.9);
+ border-radius: 6px;
+}
+
+.emotion-19 .studio-highlight-copy {
+ background-color: transparent;
+ position: inherit;
+ width: 30px;
+ padding-left: 6px;
+}
+
+.emotion-22 {
+ color: #333333;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-transition: color 600ms cubic-bezier(0.215, 0.61, 0.355, 1),scale 400ms cubic-bezier(0.215, 0.61, 0.355, 1),background-color 100ms cubic-bezier(0.215, 0.61, 0.355, 1);
+ transition: color 600ms cubic-bezier(0.215, 0.61, 0.355, 1),scale 400ms cubic-bezier(0.215, 0.61, 0.355, 1),background-color 100ms cubic-bezier(0.215, 0.61, 0.355, 1);
+ width: 24px!important;
+ height: 24px!important;
+}
+
+.emotion-22:hover .studio-btn-icon {
+ color: #333333!important;
+}
+
+.emotion-22:hover {
+ color: rgba(0, 0, 0, 0.88)!important;
+}
+
+.emotion-22:active {
+ scale: 0.8;
+ color: rgba(0, 0, 0, 0.88);
+}
+
+.emotion-23 {
+ min-width: 100px;
+}
+
+.emotion-23.studio-select-multiple:not(.emotion-23.studio-select-customize-input) .emotion-23.studio-select.studio-select-selector:hover {
+ color: rgba(0, 0, 0, 0.88);
+ background-color: rgba(0, 0, 0, 0.04);
+ border-color: transparent;
+}
+
+.emotion-23.studio-select-multiple:not(.emotion-23.studio-select-customize-input) .emotion-23.studio-select.studio-select-selector:focus {
+ color: rgba(0, 0, 0, 0.88)!important;
+ background-color: rgba(0, 0, 0, 0.02)!important;
+ border-color: #1677ff!important;
+ box-shadow: none;
+}
+
+.emotion-23.studio-select:not(.studio-select-disabled):not(.studio-select-customize-input):hover .studio-select-selector {
+ border-color: transparent;
+}
+
+.emotion-23.studio-select:not(.studio-select-disabled):not(.studio-select-customize-input):hover .studio-select-selector:hover {
+ color: rgba(0, 0, 0, 0.88);
+ background-color: rgba(0, 0, 0, 0.04);
+ border-color: transparent;
+}
+
+.emotion-23.studio-select:not(.studio-select-disabled):not(.studio-select-customize-input):hover .studio-select-selector:focus {
+ color: rgba(0, 0, 0, 0.88)!important;
+ background-color: rgba(0, 0, 0, 0.02)!important;
+ border-color: #1677ff!important;
+ box-shadow: none;
+}
+
+.emotion-23.studio-select-focused:not(.studio-select-disabled):not(.studio-select-customize-input):hover .studio-select-selector {
+ color: rgba(0, 0, 0, 0.88)!important;
+ background-color: rgba(0, 0, 0, 0.02)!important;
+ border-color: #1677ff!important;
+ box-shadow: none;
+}
+
+.emotion-23.studio-select-focused:not(.studio-select-disabled):not(.studio-select-customize-input) .studio-select-selector {
+ color: rgba(0, 0, 0, 0.88)!important;
+ background-color: rgba(0, 0, 0, 0.02)!important;
+ border-color: #1677ff!important;
+ box-shadow: none;
+}
+
+.emotion-23 .studio-select-arrow {
+ top: 13px;
+ right: 8px;
+ width: 10px;
+ height: 10px;
+ font-size: 10px;
+}
+
+.emotion-23 .studio-btn {
+ color: #333333;
+}
+
+.emotion-23 .studio-btn:hover {
+ color: #666666!important;
+}
+
+.emotion-23 .studio-select-selector {
+ -webkit-padding-end: 4px!important;
+ padding-inline-end: 4px!important;
+}
+
+.emotion-23 .studio-select-selection-overflow-item-suffix .studio-select-selection-search {
+ display: none;
+}
+
+.emotion-25 {
+ position: absolute;
+ top: 16px;
+ right: 16px;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ width: 16px;
+ height: 16px;
+ padding: 0;
+ overflow: hidden;
+ border: 0;
+ outline: none;
+ cursor: pointer;
+ opacity: 0.6;
+ -webkit-transition: opacity 0.2s;
+ transition: opacity 0.2s;
+ background-color: #fafafa;
+}
+
+.emotion-25:hover {
+ opacity: 0.8;
+}
+
+.emotion-26 {
+ width: 16px;
+ color: #333333;
+ height: 16px;
+ font-size: 16px;
+}
+
+.emotion-26.scoll {
+ -webkit-animation: copy-button-trans 2s;
+ animation: copy-button-trans 2s;
+ -webkit-animation-play-state: running;
+ animation-play-state: running;
+}
+
+.emotion-28 {
+ background-color: #fafafa;
+ border: 1px solid #fafafa;
+ position: relative;
+ overflow: auto;
+ margin: 0;
+ border-radius: 6px;
+ -webkit-transition: background-color 100ms cubic-bezier(0.215, 0.61, 0.355, 1);
+ transition: background-color 100ms cubic-bezier(0.215, 0.61, 0.355, 1);
+}
+
+.emotion-28 pre {
+ margin: 0!important;
+ padding: 16px 24px!important;
+ background: none!important;
+}
+
+.emotion-28 code {
+ background: transparent!important;
+}
+
+.emotion-29 {
+ display: block;
+ overflow-x: auto;
+ color: #333333;
+ background-color: #666666;
+}
+
+.emotion-29 .hljs-comment,
+.emotion-29 .hljs-quote {
+ color: #aaaaaa;
+}
+
+.emotion-29 .hljs-variable,
+.emotion-29 .hljs-attribute,
+.emotion-29 .hljs-template-variable,
+.emotion-29 .hljs-tag,
+.emotion-29 .hljs-name,
+.emotion-29 .hljs-selector-id,
+.emotion-29 .hljs-selector-class,
+.emotion-29 .hljs-regexp,
+.emotion-29 .hljs-title,
+.emotion-29 .hljs-deletion {
+ color: #ec5e41;
+}
+
+.emotion-29 .hljs-builtin-name,
+.emotion-29 .hljs-literal,
+.emotion-29 .hljs-type,
+.emotion-29 .hljs-params,
+.emotion-29 .hljs-meta,
+.emotion-29 .hljs-link {
+ color: #ff802b;
+}
+
+.emotion-29 .hljs-string,
+.emotion-29 .hljs-number,
+.emotion-29 .hljs-symbol,
+.emotion-29 .hljs-bullet,
+.emotion-29 .hljs-addition {
+ color: #55b467;
+}
+
+.emotion-29 .hljs-keyword,
+.emotion-29 .hljs-doctag,
+.emotion-29 .hljs-built_in,
+.emotion-29 .hljs-selector-tag,
+.emotion-29 .hljs-section {
+ color: #369eff;
+}
+
+.emotion-29 .hljs-emphasis {
+ font-style: italic;
+}
+
+.emotion-29 .hljs-strong {
+ font-weight: bold;
+}
+
+.emotion-36 {
+ -webkit-backdrop-filter: saturate(180%) blur(10px);
+ backdrop-filter: saturate(180%) blur(10px);
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ height: 36px;
+ padding: 0 8px;
+ font-family: 'SFMono-Regular',Consolas,'Liberation Mono',Menlo,Courier,monospace;
+ color: #aaaaaa;
+ border-radius: 6;
+}
+
+.emotion-37 {
+ color: #aaaaaa;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public
+
+
+
+
+ class
+
+
+
+ HelloWorld
+
+
+
+ {
+ |
+
+
+
+
+
+
+ public
+
+
+
+ static
+
+
+
+ void
+
+
+
+ main
+
+
+ (String[] args)
+
+
+
+ {
+ |
+
+
+
+ System.out.println(
+
+ "Hello World!"
+
+ );
+ |
+
+
+
+ }
+ |
+
+
+
+ }
+ |
+
+
+
+
+
+
+
+
+ Highlighting...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public
+
+
+
+
+ class
+
+
+
+ HelloWorld
+
+
+
+ {
+ |
+
+
+
+
+
+
+ public
+
+
+
+ static
+
+
+
+ void
+
+
+
+ main
+
+
+ (String[] args)
+
+
+
+ {
+ |
+
+
+
+ System.out.println(
+
+ "Hello World!"
+
+ );
+ |
+
+
+
+ }
+ |
+
+
+
+ }
+ |
+
+
+
+
+
+
+
+
+ Highlighting...
+
+
+
+
+
+
+`;
+
exports[` > renders controlled.tsx correctly 1`] = `
.emotion-0 {
display: -webkit-box;