@godxjp/ui 23.4.11 → 24.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brand/godx-artwork.generated.d.ts +10 -0
- package/dist/brand/godx-artwork.generated.js +24 -0
- package/dist/brand/godx-mark.d.ts +39 -0
- package/dist/brand/godx-mark.js +12 -0
- package/dist/components/general/logo.d.ts +1 -1
- package/dist/components/general/logo.js +25 -15
- package/dist/components/navigation/dropdown-menu.d.ts +14 -2
- package/dist/components/navigation/dropdown-menu.js +29 -17
- package/dist/contracts/measurement.json +1 -1
- package/dist/email/brand-mark.d.ts +2 -1
- package/dist/email/brand-mark.js +5 -5
- package/dist/email/tokens.generated.d.ts +16 -6
- package/dist/email/tokens.generated.js +14 -7
- package/dist/styles/logo-layout.css +48 -1
- package/dist/tokens/components/logo.css +10 -1
- package/dist/tokens/foundation.css +8 -8
- package/package.json +3 -3
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const GODX_ARTWORK_ID_TOKEN = "__GXID__";
|
|
2
|
+
export interface BrandArtwork {
|
|
3
|
+
readonly viewBox: string;
|
|
4
|
+
/** Inner SVG markup — package-owned static artwork, never user input. */
|
|
5
|
+
readonly markup: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const GODX_LOCKUP_LIGHT: BrandArtwork;
|
|
8
|
+
export declare const GODX_LOCKUP_DARK: BrandArtwork;
|
|
9
|
+
export declare const GODX_MARK_LIGHT: BrandArtwork;
|
|
10
|
+
export declare const GODX_MARK_DARK: BrandArtwork;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const GODX_ARTWORK_ID_TOKEN = "__GXID__";
|
|
2
|
+
const GODX_LOCKUP_LIGHT = Object.freeze({
|
|
3
|
+
viewBox: "30 30 871.285714 182.000000",
|
|
4
|
+
markup: '<defs>\n <radialGradient id="__GXID__-gx-lockup-l-iconBodyGradient" gradientUnits="userSpaceOnUse" cx="58" cy="39" r="183">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.46" stop-color="#3700A6"/><stop offset="1" stop-color="#0B0F3B"/>\n </radialGradient>\n <linearGradient id="__GXID__-gx-lockup-l-arrowTopGradient" gradientUnits="userSpaceOnUse" x1="138" y1="100" x2="245" y2="148">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="1" stop-color="#980BFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-l-arrowFoldGradient" gradientUnits="userSpaceOnUse" x1="230" y1="125" x2="165" y2="214">\n <stop offset="0" stop-color="#6500E5"/><stop offset="0.40" stop-color="#A611FF"/><stop offset="1" stop-color="#FF3DFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-l-xMainGradient" gradientUnits="userSpaceOnUse" x1="861" y1="48" x2="739" y2="202">\n <stop offset="0" stop-color="#0B0F3B"/><stop offset="0.28" stop-color="#310077"/><stop offset="0.62" stop-color="#990DFF"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-l-xUpperGradient" gradientUnits="userSpaceOnUse" x1="747" y1="52" x2="795" y2="119">\n <stop offset="0" stop-color="#0B0F3B"/><stop offset="0.70" stop-color="#21005D"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-l-xLowerGradient" gradientUnits="userSpaceOnUse" x1="810" y1="125" x2="863" y2="188">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.55" stop-color="#21005D"/><stop offset="1" stop-color="#0B0F3B"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-l-reverseIconGradient" gradientUnits="userSpaceOnUse" x1="52" y1="40" x2="182" y2="211">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.6" stop-color="#9A45FF"/><stop offset="1" stop-color="#D8BCFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-l-reverseXMainGradient" gradientUnits="userSpaceOnUse" x1="861" y1="48" x2="739" y2="202">\n <stop offset="0" stop-color="#E8DAFF"/><stop offset="0.46" stop-color="#B264FF"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <clipPath id="__GXID__-gx-lockup-l-arrowClip"><path d="M131 97 H244 Q247 97 249 100 L264 117 Q268 122 264 127 L194 201 Q190 205 185 205 H139 Q133 205 137 201 L176 160 Q179 157 176 154 L129 104 Q123 97 131 97 Z"/></clipPath>\n</defs>\n\n<g id="__GXID__-gx-lockup-l-godx-logo" transform="translate(5 7)">\n<path id="__GXID__-gx-lockup-l-icon-body" fill="url(#__GXID__-gx-lockup-l-iconBodyGradient)" fill-rule="evenodd" d="M118 23 H183 C186 23 187 24 189 26 L222 64 Q226 69 220 69 H122 C96 69 75 91 75 117 C75 142 97 161 122 161 H151 Q157 161 153 166 L120 203 Q118 205 115 205 C90 205 69 194 50 174 C32 155 25 138 25 117 C25 92 36 75 56 54 C77 32 95 23 118 23 Z"/>\n<path id="__GXID__-gx-lockup-l-icon-arrow" fill="url(#__GXID__-gx-lockup-l-arrowTopGradient)" fill-rule="evenodd" d="M131 97 H244 Q247 97 249 100 L264 117 Q268 122 264 127 L194 201 Q190 205 185 205 H139 Q133 205 137 201 L176 160 Q179 157 176 154 L129 104 Q123 97 131 97 Z"/>\n<path id="__GXID__-gx-lockup-l-arrow-fold" clip-path="url(#__GXID__-gx-lockup-l-arrowClip)" fill="url(#__GXID__-gx-lockup-l-arrowFoldGradient)" d="M177.5,157 C205,133 238,109 267,120 L285,230 L110,230 Z"/>\n<path id="__GXID__-gx-lockup-l-letter-g" fill="#0B0F3B" fill-rule="evenodd" d="M428 76 L399 98 C391 86 378 79 365 79 C342 79 325 98 325 121 C325 144 343 163 365 163 C382 163 395 153 402 137 H362 V107 H442 V121 C442 165 409 198 365 198 C322 198 287 164 287 121 C287 78 322 44 365 44 C390 44 413 57 428 76 Z"/>\n<path id="__GXID__-gx-lockup-l-letter-o" fill="#0B0F3B" fill-rule="evenodd" d="M566 142.5 C566 173.704 539.585 199 507 199 C474.415 199 448 173.704 448 142.5 C448 111.296 474.415 86 507 86 C539.585 86 566 111.296 566 142.5 Z M533.5 142.5 C533.5 156.583 521.636 168 507 168 C492.364 168 480.5 156.583 480.5 142.5 C480.5 128.417 492.364 117 507 117 C521.636 117 533.5 128.417 533.5 142.5 Z"/>\n<path id="__GXID__-gx-lockup-l-letter-d" fill="#0B0F3B" fill-rule="evenodd" d="M574 44 H650 C698 44 732 75 732 121 C732 162 698 198 650 198 H574 Z M616.5 78 H649 C673 78 690 96 690 121 C690 146 673 164 649 164 H616.5 Z"/>\n<path id="__GXID__-gx-lockup-l-x-upper" fill="url(#__GXID__-gx-lockup-l-xUpperGradient)" fill-rule="evenodd" d="M715 44 H762 Q764 44 765 46 L801 86 L774 117 L713 47 Q711 44 715 44 Z"/>\n<path id="__GXID__-gx-lockup-l-x-diagonal" fill="url(#__GXID__-gx-lockup-l-xMainGradient)" fill-rule="evenodd" d="M844 42 H895 Q897 42 895 44 L761 196 Q759 198 757 198 H711 Q708 198 710 196 L841 44 Q843 42 844 42 Z"/>\n<path id="__GXID__-gx-lockup-l-x-lower" fill="url(#__GXID__-gx-lockup-l-xLowerGradient)" fill-rule="evenodd" d="M831 121 L895 196 Q898 199 894 199 H847 Q844 199 842 197 L805 153 Q803 151 805 149 Z"/>\n</g>'
|
|
5
|
+
});
|
|
6
|
+
const GODX_LOCKUP_DARK = Object.freeze({
|
|
7
|
+
viewBox: "30 30 871.285714 182.000000",
|
|
8
|
+
markup: '<defs>\n <radialGradient id="__GXID__-gx-lockup-d-iconBodyGradient" gradientUnits="userSpaceOnUse" cx="58" cy="39" r="183">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.46" stop-color="#3700A6"/><stop offset="1" stop-color="#0B0F3B"/>\n </radialGradient>\n <linearGradient id="__GXID__-gx-lockup-d-arrowTopGradient" gradientUnits="userSpaceOnUse" x1="138" y1="100" x2="245" y2="148">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="1" stop-color="#980BFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-d-arrowFoldGradient" gradientUnits="userSpaceOnUse" x1="230" y1="125" x2="165" y2="214">\n <stop offset="0" stop-color="#6500E5"/><stop offset="0.40" stop-color="#A611FF"/><stop offset="1" stop-color="#FF3DFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-d-xMainGradient" gradientUnits="userSpaceOnUse" x1="861" y1="48" x2="739" y2="202">\n <stop offset="0" stop-color="#0B0F3B"/><stop offset="0.28" stop-color="#310077"/><stop offset="0.62" stop-color="#990DFF"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-d-xUpperGradient" gradientUnits="userSpaceOnUse" x1="747" y1="52" x2="795" y2="119">\n <stop offset="0" stop-color="#0B0F3B"/><stop offset="0.70" stop-color="#21005D"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-d-xLowerGradient" gradientUnits="userSpaceOnUse" x1="810" y1="125" x2="863" y2="188">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.55" stop-color="#21005D"/><stop offset="1" stop-color="#0B0F3B"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-d-reverseIconGradient" gradientUnits="userSpaceOnUse" x1="52" y1="40" x2="182" y2="211">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.6" stop-color="#9A45FF"/><stop offset="1" stop-color="#D8BCFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-lockup-d-reverseXMainGradient" gradientUnits="userSpaceOnUse" x1="861" y1="48" x2="739" y2="202">\n <stop offset="0" stop-color="#E8DAFF"/><stop offset="0.46" stop-color="#B264FF"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <clipPath id="__GXID__-gx-lockup-d-arrowClip"><path d="M131 97 H244 Q247 97 249 100 L264 117 Q268 122 264 127 L194 201 Q190 205 185 205 H139 Q133 205 137 201 L176 160 Q179 157 176 154 L129 104 Q123 97 131 97 Z"/></clipPath>\n</defs>\n\n<g id="__GXID__-gx-lockup-d-godx-logo" transform="translate(5 7)">\n<path id="__GXID__-gx-lockup-d-icon-body" fill="url(#__GXID__-gx-lockup-d-reverseIconGradient)" fill-rule="evenodd" d="M118 23 H183 C186 23 187 24 189 26 L222 64 Q226 69 220 69 H122 C96 69 75 91 75 117 C75 142 97 161 122 161 H151 Q157 161 153 166 L120 203 Q118 205 115 205 C90 205 69 194 50 174 C32 155 25 138 25 117 C25 92 36 75 56 54 C77 32 95 23 118 23 Z"/>\n<path id="__GXID__-gx-lockup-d-icon-arrow" fill="url(#__GXID__-gx-lockup-d-arrowTopGradient)" fill-rule="evenodd" d="M131 97 H244 Q247 97 249 100 L264 117 Q268 122 264 127 L194 201 Q190 205 185 205 H139 Q133 205 137 201 L176 160 Q179 157 176 154 L129 104 Q123 97 131 97 Z"/>\n<path id="__GXID__-gx-lockup-d-arrow-fold" clip-path="url(#__GXID__-gx-lockup-d-arrowClip)" fill="url(#__GXID__-gx-lockup-d-arrowFoldGradient)" d="M177.5,157 C205,133 238,109 267,120 L285,230 L110,230 Z"/>\n<path id="__GXID__-gx-lockup-d-letter-g" fill="#FFFFFF" fill-rule="evenodd" d="M428 76 L399 98 C391 86 378 79 365 79 C342 79 325 98 325 121 C325 144 343 163 365 163 C382 163 395 153 402 137 H362 V107 H442 V121 C442 165 409 198 365 198 C322 198 287 164 287 121 C287 78 322 44 365 44 C390 44 413 57 428 76 Z"/>\n<path id="__GXID__-gx-lockup-d-letter-o" fill="#FFFFFF" fill-rule="evenodd" d="M566 142.5 C566 173.704 539.585 199 507 199 C474.415 199 448 173.704 448 142.5 C448 111.296 474.415 86 507 86 C539.585 86 566 111.296 566 142.5 Z M533.5 142.5 C533.5 156.583 521.636 168 507 168 C492.364 168 480.5 156.583 480.5 142.5 C480.5 128.417 492.364 117 507 117 C521.636 117 533.5 128.417 533.5 142.5 Z"/>\n<path id="__GXID__-gx-lockup-d-letter-d" fill="#FFFFFF" fill-rule="evenodd" d="M574 44 H650 C698 44 732 75 732 121 C732 162 698 198 650 198 H574 Z M616.5 78 H649 C673 78 690 96 690 121 C690 146 673 164 649 164 H616.5 Z"/>\n<path id="__GXID__-gx-lockup-d-x-upper" fill="#FFFFFF" fill-rule="evenodd" d="M715 44 H762 Q764 44 765 46 L801 86 L774 117 L713 47 Q711 44 715 44 Z"/>\n<path id="__GXID__-gx-lockup-d-x-diagonal" fill="url(#__GXID__-gx-lockup-d-reverseXMainGradient)" fill-rule="evenodd" d="M844 42 H895 Q897 42 895 44 L761 196 Q759 198 757 198 H711 Q708 198 710 196 L841 44 Q843 42 844 42 Z"/>\n<path id="__GXID__-gx-lockup-d-x-lower" fill="#FFFFFF" fill-rule="evenodd" d="M831 121 L895 196 Q898 199 894 199 H847 Q844 199 842 197 L805 153 Q803 151 805 149 Z"/>\n</g>'
|
|
9
|
+
});
|
|
10
|
+
const GODX_MARK_LIGHT = Object.freeze({
|
|
11
|
+
viewBox: "30 30 241.000000 182.000000",
|
|
12
|
+
markup: '<defs>\n <radialGradient id="__GXID__-gx-mark-l-iconBodyGradient" gradientUnits="userSpaceOnUse" cx="58" cy="39" r="183">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.46" stop-color="#3700A6"/><stop offset="1" stop-color="#0B0F3B"/>\n </radialGradient>\n <linearGradient id="__GXID__-gx-mark-l-arrowTopGradient" gradientUnits="userSpaceOnUse" x1="138" y1="100" x2="245" y2="148">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="1" stop-color="#980BFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-l-arrowFoldGradient" gradientUnits="userSpaceOnUse" x1="230" y1="125" x2="165" y2="214">\n <stop offset="0" stop-color="#6500E5"/><stop offset="0.40" stop-color="#A611FF"/><stop offset="1" stop-color="#FF3DFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-l-xMainGradient" gradientUnits="userSpaceOnUse" x1="861" y1="48" x2="739" y2="202">\n <stop offset="0" stop-color="#0B0F3B"/><stop offset="0.28" stop-color="#310077"/><stop offset="0.62" stop-color="#990DFF"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-l-xUpperGradient" gradientUnits="userSpaceOnUse" x1="747" y1="52" x2="795" y2="119">\n <stop offset="0" stop-color="#0B0F3B"/><stop offset="0.70" stop-color="#21005D"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-l-xLowerGradient" gradientUnits="userSpaceOnUse" x1="810" y1="125" x2="863" y2="188">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.55" stop-color="#21005D"/><stop offset="1" stop-color="#0B0F3B"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-l-reverseIconGradient" gradientUnits="userSpaceOnUse" x1="52" y1="40" x2="182" y2="211">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.6" stop-color="#9A45FF"/><stop offset="1" stop-color="#D8BCFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-l-reverseXMainGradient" gradientUnits="userSpaceOnUse" x1="861" y1="48" x2="739" y2="202">\n <stop offset="0" stop-color="#E8DAFF"/><stop offset="0.46" stop-color="#B264FF"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <clipPath id="__GXID__-gx-mark-l-arrowClip"><path d="M131 97 H244 Q247 97 249 100 L264 117 Q268 122 264 127 L194 201 Q190 205 185 205 H139 Q133 205 137 201 L176 160 Q179 157 176 154 L129 104 Q123 97 131 97 Z"/></clipPath>\n</defs>\n\n<g id="__GXID__-gx-mark-l-godx-icon" transform="translate(5 7)">\n<path id="__GXID__-gx-mark-l-icon-body" fill="url(#__GXID__-gx-mark-l-iconBodyGradient)" fill-rule="evenodd" d="M118 23 H183 C186 23 187 24 189 26 L222 64 Q226 69 220 69 H122 C96 69 75 91 75 117 C75 142 97 161 122 161 H151 Q157 161 153 166 L120 203 Q118 205 115 205 C90 205 69 194 50 174 C32 155 25 138 25 117 C25 92 36 75 56 54 C77 32 95 23 118 23 Z"/>\n<path id="__GXID__-gx-mark-l-icon-arrow" fill="url(#__GXID__-gx-mark-l-arrowTopGradient)" fill-rule="evenodd" d="M131 97 H244 Q247 97 249 100 L264 117 Q268 122 264 127 L194 201 Q190 205 185 205 H139 Q133 205 137 201 L176 160 Q179 157 176 154 L129 104 Q123 97 131 97 Z"/>\n<path id="__GXID__-gx-mark-l-arrow-fold" clip-path="url(#__GXID__-gx-mark-l-arrowClip)" fill="url(#__GXID__-gx-mark-l-arrowFoldGradient)" d="M177.5,157 C205,133 238,109 267,120 L285,230 L110,230 Z"/>\n</g>'
|
|
13
|
+
});
|
|
14
|
+
const GODX_MARK_DARK = Object.freeze({
|
|
15
|
+
viewBox: "30 30 241.000000 182.000000",
|
|
16
|
+
markup: '<defs>\n <radialGradient id="__GXID__-gx-mark-d-iconBodyGradient" gradientUnits="userSpaceOnUse" cx="58" cy="39" r="183">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.46" stop-color="#3700A6"/><stop offset="1" stop-color="#0B0F3B"/>\n </radialGradient>\n <linearGradient id="__GXID__-gx-mark-d-arrowTopGradient" gradientUnits="userSpaceOnUse" x1="138" y1="100" x2="245" y2="148">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="1" stop-color="#980BFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-d-arrowFoldGradient" gradientUnits="userSpaceOnUse" x1="230" y1="125" x2="165" y2="214">\n <stop offset="0" stop-color="#6500E5"/><stop offset="0.40" stop-color="#A611FF"/><stop offset="1" stop-color="#FF3DFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-d-xMainGradient" gradientUnits="userSpaceOnUse" x1="861" y1="48" x2="739" y2="202">\n <stop offset="0" stop-color="#0B0F3B"/><stop offset="0.28" stop-color="#310077"/><stop offset="0.62" stop-color="#990DFF"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-d-xUpperGradient" gradientUnits="userSpaceOnUse" x1="747" y1="52" x2="795" y2="119">\n <stop offset="0" stop-color="#0B0F3B"/><stop offset="0.70" stop-color="#21005D"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-d-xLowerGradient" gradientUnits="userSpaceOnUse" x1="810" y1="125" x2="863" y2="188">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.55" stop-color="#21005D"/><stop offset="1" stop-color="#0B0F3B"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-d-reverseIconGradient" gradientUnits="userSpaceOnUse" x1="52" y1="40" x2="182" y2="211">\n <stop offset="0" stop-color="#7A00FF"/><stop offset="0.6" stop-color="#9A45FF"/><stop offset="1" stop-color="#D8BCFF"/>\n </linearGradient>\n <linearGradient id="__GXID__-gx-mark-d-reverseXMainGradient" gradientUnits="userSpaceOnUse" x1="861" y1="48" x2="739" y2="202">\n <stop offset="0" stop-color="#E8DAFF"/><stop offset="0.46" stop-color="#B264FF"/><stop offset="1" stop-color="#7A00FF"/>\n </linearGradient>\n <clipPath id="__GXID__-gx-mark-d-arrowClip"><path d="M131 97 H244 Q247 97 249 100 L264 117 Q268 122 264 127 L194 201 Q190 205 185 205 H139 Q133 205 137 201 L176 160 Q179 157 176 154 L129 104 Q123 97 131 97 Z"/></clipPath>\n</defs>\n\n<g id="__GXID__-gx-mark-d-godx-icon" transform="translate(5 7)">\n<path id="__GXID__-gx-mark-d-icon-body" fill="url(#__GXID__-gx-mark-d-reverseIconGradient)" fill-rule="evenodd" d="M118 23 H183 C186 23 187 24 189 26 L222 64 Q226 69 220 69 H122 C96 69 75 91 75 117 C75 142 97 161 122 161 H151 Q157 161 153 166 L120 203 Q118 205 115 205 C90 205 69 194 50 174 C32 155 25 138 25 117 C25 92 36 75 56 54 C77 32 95 23 118 23 Z"/>\n<path id="__GXID__-gx-mark-d-icon-arrow" fill="url(#__GXID__-gx-mark-d-arrowTopGradient)" fill-rule="evenodd" d="M131 97 H244 Q247 97 249 100 L264 117 Q268 122 264 127 L194 201 Q190 205 185 205 H139 Q133 205 137 201 L176 160 Q179 157 176 154 L129 104 Q123 97 131 97 Z"/>\n<path id="__GXID__-gx-mark-d-arrow-fold" clip-path="url(#__GXID__-gx-mark-d-arrowClip)" fill="url(#__GXID__-gx-mark-d-arrowFoldGradient)" d="M177.5,157 C205,133 238,109 267,120 L285,230 L110,230 Z"/>\n</g>'
|
|
17
|
+
});
|
|
18
|
+
export {
|
|
19
|
+
GODX_ARTWORK_ID_TOKEN,
|
|
20
|
+
GODX_LOCKUP_DARK,
|
|
21
|
+
GODX_LOCKUP_LIGHT,
|
|
22
|
+
GODX_MARK_DARK,
|
|
23
|
+
GODX_MARK_LIGHT
|
|
24
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE FLAT GoDX MARK — the cut EMAIL paints. The web uses the master instead.
|
|
3
|
+
*
|
|
4
|
+
* Brand identity v2.3 requires the master SVG with its gradients and a light/dark variant
|
|
5
|
+
* (`brand/godx-artwork.generated.ts`), and forbids re-tinting it. An email cannot honour that:
|
|
6
|
+
* Outlook's Word renderer drops SVG gradients, `prefers-color-scheme` reaches only some clients,
|
|
7
|
+
* and a delivered message cannot swap a variant. So email paints the kit's own FLAT cut — a
|
|
8
|
+
* different brand ASSET, which is why the kit ships one — in a colour the template supplies.
|
|
9
|
+
*
|
|
10
|
+
* Brand identity v2.3. The coordinates are the kit's own normalised construction data
|
|
11
|
+
* (`02_Construction/GoDX/GoDX-geometry-v2_2.json`, origin already at 0,0), not a redraw and not a
|
|
12
|
+
* trace: a future artwork revision is a copy-paste of two `d` strings into this file.
|
|
13
|
+
*
|
|
14
|
+
* WHY IT IS STILL SHARED. `src/email` may only import its own siblings, so it receives a generated
|
|
15
|
+
* copy of these paths (`gen-email-tokens.mjs`). This file is the declaration both that generator
|
|
16
|
+
* and its `--check` guard compare against, so the email mark cannot drift from the package's own
|
|
17
|
+
* flat artwork — the drift that was caught once already.
|
|
18
|
+
*
|
|
19
|
+
* MONOCHROME. The kit also ships a gradient cut (#7A00FF → #3700A6 → #0B0F3B). It is deliberately
|
|
20
|
+
* not used: this mark is painted by a token (`--logo-godx-color` on the web, a colour argument in
|
|
21
|
+
* email) so it re-tints per theme and knocks out on dark surfaces. A baked gradient can do neither,
|
|
22
|
+
* and email clients are worse at gradients than they are at paths.
|
|
23
|
+
*/
|
|
24
|
+
/** The artwork's own coordinate space, before fitting. */
|
|
25
|
+
export declare const GODX_MARK_SOURCE: Readonly<{
|
|
26
|
+
width: 241;
|
|
27
|
+
height: 182;
|
|
28
|
+
}>;
|
|
29
|
+
/** The square box every renderer draws into. */
|
|
30
|
+
export declare const GODX_MARK_VIEW_BOX = "0 0 32 32";
|
|
31
|
+
/**
|
|
32
|
+
* Fits 241×182 into the square box, centred vertically.
|
|
33
|
+
* scale = 32 / 241 = 0.132780; y = (32 − 182 × scale) / 2 = 3.917.
|
|
34
|
+
*/
|
|
35
|
+
export declare const GODX_MARK_TRANSFORM = "translate(0 3.917) scale(0.132780)";
|
|
36
|
+
/** The "G" body. */
|
|
37
|
+
export declare const GODX_MARK_BODY_PATH = "M93.0 0.0H158.0C161.0 0.0 162.0 1.0 164.0 3.0L197.0 41.0Q201.0 46.0 195.0 46.0H97.0C71.0 46.0 50.0 68.0 50.0 94.0C50.0 119.0 72.0 138.0 97.0 138.0H126.0Q132.0 138.0 128.0 143.0L95.0 180.0Q93.0 182.0 90.0 182.0C65.0 182.0 44.0 171.0 25.0 151.0C7.0 132.0 0.0 115.0 0.0 94.0C0.0 69.0 11.0 52.0 31.0 31.0C52.0 9.0 70.0 0.0 93.0 0.0Z";
|
|
38
|
+
/** The arrow that crosses it. */
|
|
39
|
+
export declare const GODX_MARK_ARROW_PATH = "M106.0 74.0H219.0Q222.0 74.0 224.0 77.0L239.0 94.0Q243.0 99.0 239.0 104.0L169.0 178.0Q165.0 182.0 160.0 182.0H114.0Q108.0 182.0 112.0 178.0L151.0 137.0Q154.0 134.0 151.0 131.0L104.0 81.0Q98.0 74.0 106.0 74.0Z";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const GODX_MARK_SOURCE = Object.freeze({ width: 241, height: 182 });
|
|
2
|
+
const GODX_MARK_VIEW_BOX = "0 0 32 32";
|
|
3
|
+
const GODX_MARK_TRANSFORM = "translate(0 3.917) scale(0.132780)";
|
|
4
|
+
const GODX_MARK_BODY_PATH = "M93.0 0.0H158.0C161.0 0.0 162.0 1.0 164.0 3.0L197.0 41.0Q201.0 46.0 195.0 46.0H97.0C71.0 46.0 50.0 68.0 50.0 94.0C50.0 119.0 72.0 138.0 97.0 138.0H126.0Q132.0 138.0 128.0 143.0L95.0 180.0Q93.0 182.0 90.0 182.0C65.0 182.0 44.0 171.0 25.0 151.0C7.0 132.0 0.0 115.0 0.0 94.0C0.0 69.0 11.0 52.0 31.0 31.0C52.0 9.0 70.0 0.0 93.0 0.0Z";
|
|
5
|
+
const GODX_MARK_ARROW_PATH = "M106.0 74.0H219.0Q222.0 74.0 224.0 77.0L239.0 94.0Q243.0 99.0 239.0 104.0L169.0 178.0Q165.0 182.0 160.0 182.0H114.0Q108.0 182.0 112.0 178.0L151.0 137.0Q154.0 134.0 151.0 131.0L104.0 81.0Q98.0 74.0 106.0 74.0Z";
|
|
6
|
+
export {
|
|
7
|
+
GODX_MARK_ARROW_PATH,
|
|
8
|
+
GODX_MARK_BODY_PATH,
|
|
9
|
+
GODX_MARK_SOURCE,
|
|
10
|
+
GODX_MARK_TRANSFORM,
|
|
11
|
+
GODX_MARK_VIEW_BOX
|
|
12
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
export type LogoSize = "xs" | "sm" | "md" | "lg";
|
|
3
3
|
export type LogoTone = "primary" | "success";
|
|
4
|
-
export type LogoMark = "glyph" | "godx";
|
|
4
|
+
export type LogoMark = "glyph" | "godx" | "godx-lockup";
|
|
5
5
|
export interface LogoProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
6
6
|
/**
|
|
7
7
|
* The brand glyph — a short mark (a letter/initials, default `"g"`) or a custom node such as an
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
3
|
import * as React from "react";
|
|
4
|
+
import {
|
|
5
|
+
GODX_ARTWORK_ID_TOKEN,
|
|
6
|
+
GODX_LOCKUP_DARK,
|
|
7
|
+
GODX_LOCKUP_LIGHT,
|
|
8
|
+
GODX_MARK_DARK,
|
|
9
|
+
GODX_MARK_LIGHT
|
|
10
|
+
} from "../../brand/godx-artwork.generated.js";
|
|
3
11
|
import { Slot } from "../../lib/slot.js";
|
|
4
12
|
import { cn } from "../../lib/utils.js";
|
|
5
13
|
const X_HEIGHT_TOP = /^[acegmnopqrsuvwxyz]+$/;
|
|
@@ -38,7 +46,13 @@ function logoGlyphAdvance(glyph) {
|
|
|
38
46
|
return counts;
|
|
39
47
|
}
|
|
40
48
|
function MarkArtwork({ mark, glyph }) {
|
|
41
|
-
|
|
49
|
+
const instanceId = React.useId().replace(/[^a-zA-Z0-9_-]/g, "");
|
|
50
|
+
const artwork = mark === "godx-lockup" ? [GODX_LOCKUP_LIGHT, GODX_LOCKUP_DARK] : [GODX_MARK_LIGHT, GODX_MARK_DARK];
|
|
51
|
+
const html = React.useMemo(
|
|
52
|
+
() => artwork.map((a) => a.markup.replaceAll(GODX_ARTWORK_ID_TOKEN, instanceId)),
|
|
53
|
+
[artwork, instanceId]
|
|
54
|
+
);
|
|
55
|
+
if (mark === "glyph") {
|
|
42
56
|
const advance = logoGlyphAdvance(glyph);
|
|
43
57
|
return /* @__PURE__ */ jsx(
|
|
44
58
|
"span",
|
|
@@ -56,25 +70,21 @@ function MarkArtwork({ mark, glyph }) {
|
|
|
56
70
|
}
|
|
57
71
|
);
|
|
58
72
|
}
|
|
59
|
-
return /* @__PURE__ */ jsx(
|
|
73
|
+
return /* @__PURE__ */ jsx(Fragment, { children: ["light", "dark"].map((scheme, index) => /* @__PURE__ */ jsx(
|
|
60
74
|
"svg",
|
|
61
75
|
{
|
|
62
76
|
"data-slot": "logo-artwork",
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
77
|
+
"data-artwork": mark,
|
|
78
|
+
"data-scheme": scheme,
|
|
79
|
+
viewBox: artwork[index].viewBox,
|
|
66
80
|
focusable: "false",
|
|
67
81
|
"aria-hidden": "true",
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
);
|
|
82
|
+
dangerouslySetInnerHTML: {
|
|
83
|
+
__html: html[index]
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
scheme
|
|
87
|
+
)) });
|
|
78
88
|
}
|
|
79
89
|
const Logo = React.forwardRef(
|
|
80
90
|
({
|
|
@@ -155,9 +155,21 @@ interface DropdownMenuItemPropsOwn {
|
|
|
155
155
|
textValue?: string;
|
|
156
156
|
/** Mượn thẻ của con thay vì dựng `<div>` riêng — chỗ để nhét một `<Link>` vào một mục menu. */
|
|
157
157
|
asChild?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* `id` và mọi `data-*` ĐI XUỐNG phần tử gốc của item (gh#631).
|
|
160
|
+
*
|
|
161
|
+
* Trigger của chính cụm này đã nhận cách xử lý ấy ở 20.0.0, với đúng lý do CHANGELOG ghi:
|
|
162
|
+
* "trước đó bị nuốt, nên selector e2e của consumer rời ra trong im lặng". Phần item thì chưa,
|
|
163
|
+
* nên hai nửa của cùng một component hành xử ngược nhau.
|
|
164
|
+
*
|
|
165
|
+
* TypeScript không bắt được: JSX luôn cho qua mọi thuộc tính có gạch nối, nên `data-testid`
|
|
166
|
+
* biên dịch sạch và chỉ hỏng lúc chạy. Với `id` còn tệ hơn — nó là thứ `aria-activedescendant`
|
|
167
|
+
* trỏ vào, và nó biến mất không một lời.
|
|
168
|
+
*/
|
|
169
|
+
id?: string;
|
|
158
170
|
}
|
|
159
|
-
type DropdownMenuItemProps = React.PropsWithChildren<DropdownMenuItemPropsOwn>;
|
|
160
|
-
export declare function DropdownMenuItem({ children, className, inset, variant, disabled, onSelect, textValue, asChild, }: DropdownMenuItemProps): React.JSX.Element;
|
|
171
|
+
type DropdownMenuItemProps = React.PropsWithChildren<DropdownMenuItemPropsOwn> & Record<`data-${string}`, unknown>;
|
|
172
|
+
export declare function DropdownMenuItem({ children, className, inset, variant, disabled, onSelect, textValue, asChild, ...forwarded }: DropdownMenuItemProps): React.JSX.Element;
|
|
161
173
|
interface DropdownMenuLabelPropsOwn {
|
|
162
174
|
className?: string;
|
|
163
175
|
inset?: boolean;
|
|
@@ -267,22 +267,30 @@ function DropdownMenuRadioGroup({
|
|
|
267
267
|
value,
|
|
268
268
|
onValueChange
|
|
269
269
|
}) {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
if (keys === "all") return;
|
|
280
|
-
const [first] = [...keys];
|
|
281
|
-
if (first != null) onValueChange?.(String(first));
|
|
282
|
-
},
|
|
283
|
-
children
|
|
270
|
+
const selection = {
|
|
271
|
+
className,
|
|
272
|
+
selectionMode: "single",
|
|
273
|
+
disallowEmptySelection: true,
|
|
274
|
+
selectedKeys: value == null ? [] : [value],
|
|
275
|
+
onSelectionChange: (keys) => {
|
|
276
|
+
if (keys === "all") return;
|
|
277
|
+
const [first] = [...keys];
|
|
278
|
+
if (first != null) onValueChange?.(String(first));
|
|
284
279
|
}
|
|
285
|
-
|
|
280
|
+
};
|
|
281
|
+
const runs = [{ label: null, items: [] }];
|
|
282
|
+
for (const child of React.Children.toArray(children)) {
|
|
283
|
+
if (React.isValidElement(child) && child.type === DropdownMenuLabel) {
|
|
284
|
+
runs.push({ label: child, items: [] });
|
|
285
|
+
} else {
|
|
286
|
+
runs[runs.length - 1].items.push(child);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
const sections = runs.filter((run) => run.label != null || run.items.length > 0);
|
|
290
|
+
return /* @__PURE__ */ jsx(Fragment, { children: sections.map((run, index) => /* @__PURE__ */ jsxs(MenuSection, { "data-slot": "dropdown-menu-radio-group", ...selection, children: [
|
|
291
|
+
run.label,
|
|
292
|
+
run.items
|
|
293
|
+
] }, index)) });
|
|
286
294
|
}
|
|
287
295
|
function DropdownMenuSub({ children }) {
|
|
288
296
|
const parts = React.Children.toArray(children).filter(React.isValidElement);
|
|
@@ -372,7 +380,8 @@ function DropdownMenuItem({
|
|
|
372
380
|
disabled,
|
|
373
381
|
onSelect,
|
|
374
382
|
textValue,
|
|
375
|
-
asChild
|
|
383
|
+
asChild,
|
|
384
|
+
...forwarded
|
|
376
385
|
}) {
|
|
377
386
|
const tag = borrowedTag(children, asChild);
|
|
378
387
|
return /* @__PURE__ */ jsx(
|
|
@@ -394,7 +403,10 @@ function DropdownMenuItem({
|
|
|
394
403
|
"data-slot": "dropdown-menu-item",
|
|
395
404
|
"data-inset": inset,
|
|
396
405
|
"data-variant": variant,
|
|
397
|
-
...radixItemState(state)
|
|
406
|
+
...radixItemState(state),
|
|
407
|
+
// LAST, so a consumer's own `id`/`data-*` wins over ours rather than being
|
|
408
|
+
// overwritten by the slot bookkeeping above (gh#631).
|
|
409
|
+
...forwarded
|
|
398
410
|
},
|
|
399
411
|
content
|
|
400
412
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "AUTO-GENERATED by scripts/gen-measurement-contract.mjs — do not edit. Read this instead of guessing: docs/MEASUREMENT-CONTRACT.md.",
|
|
3
|
-
"version": "23.4.
|
|
3
|
+
"version": "23.4.12",
|
|
4
4
|
"targetSize": {
|
|
5
5
|
"standard": "WCAG 2.2 SC 2.5.8 Target Size (Minimum), level AA — 24×24 CSS px",
|
|
6
6
|
"min": 24,
|
|
@@ -14,7 +14,8 @@ export interface EmailBrandMarkRect {
|
|
|
14
14
|
readonly radius: number;
|
|
15
15
|
}
|
|
16
16
|
/** Intrinsic coordinate space of the mark artwork. */
|
|
17
|
-
|
|
17
|
+
/** The component's box, read from the shared artwork so the two cannot drift. */
|
|
18
|
+
export declare const EMAIL_BRAND_MARK_VIEWBOX: "0 0 32 32";
|
|
18
19
|
/** The emerald capsule. */
|
|
19
20
|
export declare const EMAIL_BRAND_MARK_CAPSULE: EmailBrandMarkRect;
|
|
20
21
|
/** The internal light glyph bar inside the capsule. */
|
package/dist/email/brand-mark.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EMAIL_COLORS } from "./color.js";
|
|
2
|
-
import { EMAIL_GEOMETRY_SOURCE } from "./tokens.generated.js";
|
|
3
|
-
const EMAIL_BRAND_MARK_VIEWBOX =
|
|
2
|
+
import { EMAIL_GEOMETRY_SOURCE, EMAIL_MARK_SOURCE } from "./tokens.generated.js";
|
|
3
|
+
const EMAIL_BRAND_MARK_VIEWBOX = EMAIL_MARK_SOURCE.viewBox;
|
|
4
4
|
const EMAIL_BRAND_MARK_CAPSULE = Object.freeze({
|
|
5
5
|
x: 1,
|
|
6
6
|
y: 7,
|
|
@@ -22,8 +22,8 @@ function roundedRectPath({ x, y, width, height, radius }) {
|
|
|
22
22
|
const v = height - 2 * radius;
|
|
23
23
|
return `M${x + radius} ${y}h${h}${arc(radius, radius, radius)}v${v}${arc(radius, -radius, radius)}H${x + radius}${arc(radius, -radius, -radius)}v-${v}${arc(radius, radius, -radius)}Z`;
|
|
24
24
|
}
|
|
25
|
-
const CAPSULE_PATH =
|
|
26
|
-
const GLYPH_PATH =
|
|
25
|
+
const CAPSULE_PATH = EMAIL_MARK_SOURCE.bodyPath;
|
|
26
|
+
const GLYPH_PATH = EMAIL_MARK_SOURCE.arrowPath;
|
|
27
27
|
const DEFAULT_WIDTH = Number.parseFloat(EMAIL_GEOMETRY_SOURCE["--email-mark-width"]);
|
|
28
28
|
const DEFAULT_HEIGHT = Number.parseFloat(EMAIL_GEOMETRY_SOURCE["--email-mark-height"]);
|
|
29
29
|
function options(o = {}) {
|
|
@@ -39,7 +39,7 @@ const attr = (value) => value.replace(/&/g, "&").replace(/</g, "<").repla
|
|
|
39
39
|
function emailBrandMarkSvg(o = {}) {
|
|
40
40
|
const { width, height, color, glyphColor, label } = options(o);
|
|
41
41
|
const a11y = label ? ` role="img" aria-label="${attr(label)}"` : ` role="presentation" aria-hidden="true"`;
|
|
42
|
-
return `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" viewBox="${EMAIL_BRAND_MARK_VIEWBOX}" focusable="false"${a11y} style="display:block;border:0;outline:none;text-decoration:none"><path fill="${color}" d="${CAPSULE_PATH}"/><path fill="${glyphColor}" d="${GLYPH_PATH}"/></svg>`;
|
|
42
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" viewBox="${EMAIL_BRAND_MARK_VIEWBOX}" focusable="false"${a11y} style="display:block;border:0;outline:none;text-decoration:none"><g transform="${EMAIL_MARK_SOURCE.transform}" fill-rule="evenodd"><path fill="${color}" d="${CAPSULE_PATH}"/><path fill="${glyphColor}" d="${GLYPH_PATH}"/></g></svg>`;
|
|
43
43
|
}
|
|
44
44
|
function emailBrandMarkDataUri(o = {}) {
|
|
45
45
|
return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(emailBrandMarkSvg(o))}`;
|
|
@@ -37,7 +37,7 @@ export declare const EMAIL_COLOR_SOURCE: {
|
|
|
37
37
|
};
|
|
38
38
|
readonly primary: {
|
|
39
39
|
readonly cssVar: "--primary";
|
|
40
|
-
readonly hsl: "
|
|
40
|
+
readonly hsl: "268.7 100% 50%";
|
|
41
41
|
};
|
|
42
42
|
readonly primaryForeground: {
|
|
43
43
|
readonly cssVar: "--primary-foreground";
|
|
@@ -45,11 +45,11 @@ export declare const EMAIL_COLOR_SOURCE: {
|
|
|
45
45
|
};
|
|
46
46
|
readonly focus: {
|
|
47
47
|
readonly cssVar: "--primary";
|
|
48
|
-
readonly hsl: "
|
|
48
|
+
readonly hsl: "268.7 100% 50%";
|
|
49
49
|
};
|
|
50
50
|
readonly brand: {
|
|
51
51
|
readonly cssVar: "--brand";
|
|
52
|
-
readonly hsl: "
|
|
52
|
+
readonly hsl: "268.7 100% 50%";
|
|
53
53
|
};
|
|
54
54
|
readonly brandForeground: {
|
|
55
55
|
readonly cssVar: "--brand-foreground";
|
|
@@ -96,7 +96,7 @@ export declare const EMAIL_COLOR_SOURCE_DARK: {
|
|
|
96
96
|
};
|
|
97
97
|
readonly primary: {
|
|
98
98
|
readonly cssVar: "--primary";
|
|
99
|
-
readonly hsl: "
|
|
99
|
+
readonly hsl: "268.7 100% 86.9%";
|
|
100
100
|
};
|
|
101
101
|
readonly primaryForeground: {
|
|
102
102
|
readonly cssVar: "--primary-foreground";
|
|
@@ -104,11 +104,11 @@ export declare const EMAIL_COLOR_SOURCE_DARK: {
|
|
|
104
104
|
};
|
|
105
105
|
readonly focus: {
|
|
106
106
|
readonly cssVar: "--primary";
|
|
107
|
-
readonly hsl: "
|
|
107
|
+
readonly hsl: "268.7 100% 86.9%";
|
|
108
108
|
};
|
|
109
109
|
readonly brand: {
|
|
110
110
|
readonly cssVar: "--brand";
|
|
111
|
-
readonly hsl: "
|
|
111
|
+
readonly hsl: "268.7 100% 86.9%";
|
|
112
112
|
};
|
|
113
113
|
readonly brandForeground: {
|
|
114
114
|
readonly cssVar: "--brand-foreground";
|
|
@@ -165,3 +165,13 @@ export declare const EMAIL_GEOMETRY_SOURCE: {
|
|
|
165
165
|
readonly "--email-mobile-heading-font-size": "16px";
|
|
166
166
|
readonly "--email-mobile-cta-width": "100%";
|
|
167
167
|
};
|
|
168
|
+
/**
|
|
169
|
+
* The GoDX identity artwork — the same two paths `<Logo mark="godx" />` paints, from
|
|
170
|
+
* `src/brand/godx-mark.ts`. Regenerate with the rest of this file; `--check` fails on drift.
|
|
171
|
+
*/
|
|
172
|
+
export declare const EMAIL_MARK_SOURCE: {
|
|
173
|
+
readonly viewBox: "0 0 32 32";
|
|
174
|
+
readonly transform: "translate(0 3.917) scale(0.132780)";
|
|
175
|
+
readonly bodyPath: "M93.0 0.0H158.0C161.0 0.0 162.0 1.0 164.0 3.0L197.0 41.0Q201.0 46.0 195.0 46.0H97.0C71.0 46.0 50.0 68.0 50.0 94.0C50.0 119.0 72.0 138.0 97.0 138.0H126.0Q132.0 138.0 128.0 143.0L95.0 180.0Q93.0 182.0 90.0 182.0C65.0 182.0 44.0 171.0 25.0 151.0C7.0 132.0 0.0 115.0 0.0 94.0C0.0 69.0 11.0 52.0 31.0 31.0C52.0 9.0 70.0 0.0 93.0 0.0Z";
|
|
176
|
+
readonly arrowPath: "M106.0 74.0H219.0Q222.0 74.0 224.0 77.0L239.0 94.0Q243.0 99.0 239.0 104.0L169.0 178.0Q165.0 182.0 160.0 182.0H114.0Q108.0 182.0 112.0 178.0L151.0 137.0Q154.0 134.0 151.0 131.0L104.0 81.0Q98.0 74.0 106.0 74.0Z";
|
|
177
|
+
};
|
|
@@ -29,7 +29,7 @@ const EMAIL_COLOR_SOURCE = {
|
|
|
29
29
|
},
|
|
30
30
|
"primary": {
|
|
31
31
|
"cssVar": "--primary",
|
|
32
|
-
"hsl": "
|
|
32
|
+
"hsl": "268.7 100% 50%"
|
|
33
33
|
},
|
|
34
34
|
"primaryForeground": {
|
|
35
35
|
"cssVar": "--primary-foreground",
|
|
@@ -37,11 +37,11 @@ const EMAIL_COLOR_SOURCE = {
|
|
|
37
37
|
},
|
|
38
38
|
"focus": {
|
|
39
39
|
"cssVar": "--primary",
|
|
40
|
-
"hsl": "
|
|
40
|
+
"hsl": "268.7 100% 50%"
|
|
41
41
|
},
|
|
42
42
|
"brand": {
|
|
43
43
|
"cssVar": "--brand",
|
|
44
|
-
"hsl": "
|
|
44
|
+
"hsl": "268.7 100% 50%"
|
|
45
45
|
},
|
|
46
46
|
"brandForeground": {
|
|
47
47
|
"cssVar": "--brand-foreground",
|
|
@@ -87,7 +87,7 @@ const EMAIL_COLOR_SOURCE_DARK = {
|
|
|
87
87
|
},
|
|
88
88
|
"primary": {
|
|
89
89
|
"cssVar": "--primary",
|
|
90
|
-
"hsl": "
|
|
90
|
+
"hsl": "268.7 100% 86.9%"
|
|
91
91
|
},
|
|
92
92
|
"primaryForeground": {
|
|
93
93
|
"cssVar": "--primary-foreground",
|
|
@@ -95,11 +95,11 @@ const EMAIL_COLOR_SOURCE_DARK = {
|
|
|
95
95
|
},
|
|
96
96
|
"focus": {
|
|
97
97
|
"cssVar": "--primary",
|
|
98
|
-
"hsl": "
|
|
98
|
+
"hsl": "268.7 100% 86.9%"
|
|
99
99
|
},
|
|
100
100
|
"brand": {
|
|
101
101
|
"cssVar": "--brand",
|
|
102
|
-
"hsl": "
|
|
102
|
+
"hsl": "268.7 100% 86.9%"
|
|
103
103
|
},
|
|
104
104
|
"brandForeground": {
|
|
105
105
|
"cssVar": "--brand-foreground",
|
|
@@ -155,8 +155,15 @@ const EMAIL_GEOMETRY_SOURCE = {
|
|
|
155
155
|
"--email-mobile-heading-font-size": "16px",
|
|
156
156
|
"--email-mobile-cta-width": "100%"
|
|
157
157
|
};
|
|
158
|
+
const EMAIL_MARK_SOURCE = {
|
|
159
|
+
"viewBox": "0 0 32 32",
|
|
160
|
+
"transform": "translate(0 3.917) scale(0.132780)",
|
|
161
|
+
"bodyPath": "M93.0 0.0H158.0C161.0 0.0 162.0 1.0 164.0 3.0L197.0 41.0Q201.0 46.0 195.0 46.0H97.0C71.0 46.0 50.0 68.0 50.0 94.0C50.0 119.0 72.0 138.0 97.0 138.0H126.0Q132.0 138.0 128.0 143.0L95.0 180.0Q93.0 182.0 90.0 182.0C65.0 182.0 44.0 171.0 25.0 151.0C7.0 132.0 0.0 115.0 0.0 94.0C0.0 69.0 11.0 52.0 31.0 31.0C52.0 9.0 70.0 0.0 93.0 0.0Z",
|
|
162
|
+
"arrowPath": "M106.0 74.0H219.0Q222.0 74.0 224.0 77.0L239.0 94.0Q243.0 99.0 239.0 104.0L169.0 178.0Q165.0 182.0 160.0 182.0H114.0Q108.0 182.0 112.0 178.0L151.0 137.0Q154.0 134.0 151.0 131.0L104.0 81.0Q98.0 74.0 106.0 74.0Z"
|
|
163
|
+
};
|
|
158
164
|
export {
|
|
159
165
|
EMAIL_COLOR_SOURCE,
|
|
160
166
|
EMAIL_COLOR_SOURCE_DARK,
|
|
161
|
-
EMAIL_GEOMETRY_SOURCE
|
|
167
|
+
EMAIL_GEOMETRY_SOURCE,
|
|
168
|
+
EMAIL_MARK_SOURCE
|
|
162
169
|
};
|
|
@@ -99,7 +99,6 @@
|
|
|
99
99
|
height: var(--logo-godx-size, var(--logo-godx-size-md));
|
|
100
100
|
border-radius: 0;
|
|
101
101
|
background: transparent;
|
|
102
|
-
color: hsl(var(--logo-godx-color, var(--brand)));
|
|
103
102
|
}
|
|
104
103
|
|
|
105
104
|
.ui-logo[data-mark="godx"][data-size="xs"] {
|
|
@@ -117,6 +116,31 @@
|
|
|
117
116
|
height: var(--logo-godx-size, var(--logo-godx-size-lg));
|
|
118
117
|
}
|
|
119
118
|
|
|
119
|
+
.ui-logo[data-mark="godx-lockup"] {
|
|
120
|
+
width: auto;
|
|
121
|
+
height: var(--logo-godx-size, var(--logo-godx-size-md));
|
|
122
|
+
border-radius: 0;
|
|
123
|
+
background: transparent;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.ui-logo[data-mark="godx-lockup"][data-size="xs"] {
|
|
127
|
+
height: var(--logo-godx-size, var(--logo-godx-size-xs));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.ui-logo[data-mark="godx-lockup"][data-size="sm"] {
|
|
131
|
+
height: var(--logo-godx-size, var(--logo-godx-size-sm));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.ui-logo[data-mark="godx-lockup"][data-size="lg"] {
|
|
135
|
+
height: var(--logo-godx-size, var(--logo-godx-size-lg));
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.ui-logo[data-mark="godx-lockup"] [data-slot="logo-artwork"] {
|
|
139
|
+
display: block;
|
|
140
|
+
height: 100%;
|
|
141
|
+
width: auto;
|
|
142
|
+
}
|
|
143
|
+
|
|
120
144
|
.ui-logo[data-mark="godx"] [data-slot="logo-artwork"] {
|
|
121
145
|
display: block;
|
|
122
146
|
width: 100%;
|
|
@@ -156,3 +180,26 @@
|
|
|
156
180
|
color: hsl(var(--logo-wordmark-color, var(--logo-godx-color, var(--brand))));
|
|
157
181
|
}
|
|
158
182
|
}
|
|
183
|
+
|
|
184
|
+
[data-slot="logo-artwork"][data-scheme="dark"] {
|
|
185
|
+
display: none;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
@media (prefers-color-scheme: dark) {
|
|
189
|
+
:root:not([data-theme="light"]) [data-slot="logo-artwork"][data-scheme="light"] {
|
|
190
|
+
display: none;
|
|
191
|
+
}
|
|
192
|
+
:root:not([data-theme="light"]) [data-slot="logo-artwork"][data-scheme="dark"] {
|
|
193
|
+
display: block;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.dark [data-slot="logo-artwork"][data-scheme="light"],
|
|
198
|
+
:root[data-theme="dark"] [data-slot="logo-artwork"][data-scheme="light"] {
|
|
199
|
+
display: none;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.dark [data-slot="logo-artwork"][data-scheme="dark"],
|
|
203
|
+
:root[data-theme="dark"] [data-slot="logo-artwork"][data-scheme="dark"] {
|
|
204
|
+
display: block;
|
|
205
|
+
}
|
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
--logo-success-foreground: initial;
|
|
15
15
|
--logo-godx-color: initial;
|
|
16
16
|
|
|
17
|
-
--logo-identity-foreground:
|
|
17
|
+
--logo-identity-foreground: 60 33% 99%;
|
|
18
|
+
|
|
19
|
+
--logo-godx-ink-color: 235 68.6% 13.7%;
|
|
18
20
|
|
|
19
21
|
--logo-glyph-cap-baseline-optical-offset: -0.01em;
|
|
20
22
|
--logo-glyph-cap-descender-optical-offset: -0.09em;
|
|
@@ -45,3 +47,10 @@
|
|
|
45
47
|
--logo-wordmark-font-family: initial;
|
|
46
48
|
--logo-wordmark-color: initial;
|
|
47
49
|
}
|
|
50
|
+
|
|
51
|
+
.dark,
|
|
52
|
+
:root[data-theme="dark"] {
|
|
53
|
+
--logo-identity-foreground: 48 9% 9%;
|
|
54
|
+
|
|
55
|
+
--logo-godx-ink-color: 140 23.1% 97.5%;
|
|
56
|
+
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
--popover: 60 33% 99%;
|
|
10
10
|
--popover-foreground: 48 8% 13%;
|
|
11
11
|
|
|
12
|
-
--primary:
|
|
12
|
+
--primary: 268.7 100% 50%;
|
|
13
13
|
--primary-foreground: 60 33% 99%;
|
|
14
14
|
--secondary: 45 15% 95%;
|
|
15
15
|
--secondary-foreground: 48 8% 13%;
|
|
@@ -34,15 +34,15 @@
|
|
|
34
34
|
--attention: 25 99% 46%;
|
|
35
35
|
--attention-foreground: 60 33% 99%;
|
|
36
36
|
|
|
37
|
-
--brand:
|
|
37
|
+
--brand: 268.7 100% 50%;
|
|
38
38
|
--brand-foreground: 60 33% 99%;
|
|
39
39
|
|
|
40
40
|
--text-tertiary: 44 5% 55%;
|
|
41
41
|
--text-disabled: 40 6% 68%;
|
|
42
42
|
--text-link: 204 100% 39%;
|
|
43
|
-
--text-brand:
|
|
43
|
+
--text-brand: 268.3 100% 41.6%;
|
|
44
44
|
|
|
45
|
-
--text-primary:
|
|
45
|
+
--text-primary: 268 100% 34.5%;
|
|
46
46
|
--text-success: 152 84% 22%;
|
|
47
47
|
--text-warning: 36 100% 28%;
|
|
48
48
|
--text-info: 221 70% 38%;
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
--card-foreground: 60 20% 96%;
|
|
322
322
|
--popover: 48 8% 12%;
|
|
323
323
|
--popover-foreground: 60 20% 96%;
|
|
324
|
-
--primary:
|
|
324
|
+
--primary: 268.7 100% 86.9%;
|
|
325
325
|
--primary-foreground: 48 9% 9%;
|
|
326
326
|
--secondary: 45 6% 18%;
|
|
327
327
|
--secondary-foreground: 60 20% 96%;
|
|
@@ -346,15 +346,15 @@
|
|
|
346
346
|
--attention: 25 95% 56%;
|
|
347
347
|
--attention-foreground: 48 9% 9%;
|
|
348
348
|
|
|
349
|
-
--brand:
|
|
349
|
+
--brand: 268.7 100% 86.9%;
|
|
350
350
|
--brand-foreground: 48 9% 9%;
|
|
351
351
|
|
|
352
352
|
--text-tertiary: 44 6% 56%;
|
|
353
353
|
--text-disabled: 45 6% 40%;
|
|
354
354
|
--text-link: 204 90% 66%;
|
|
355
|
-
--text-brand:
|
|
355
|
+
--text-brand: 268.7 100% 86.9%;
|
|
356
356
|
|
|
357
|
-
--text-primary:
|
|
357
|
+
--text-primary: 262.7 100% 92.7%;
|
|
358
358
|
--text-success: 146 55% 64%;
|
|
359
359
|
--text-warning: 44 95% 62%;
|
|
360
360
|
--text-info: 221 70% 72%;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@godxjp/ui",
|
|
3
|
-
"version": "
|
|
4
|
-
"godxUiMcp": "
|
|
3
|
+
"version": "24.0.0",
|
|
4
|
+
"godxUiMcp": "24.0.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"./styles/*": "./dist/styles/*.css",
|
|
53
53
|
"./theme/*": "./dist/theme/*",
|
|
54
54
|
"./tokens": "./dist/tokens/base.css",
|
|
55
|
-
|
|
55
|
+
"./contracts/measurement.json": "./dist/contracts/measurement.json",
|
|
56
56
|
"./admin": {
|
|
57
57
|
"types": "./dist/components/admin/index.d.ts",
|
|
58
58
|
"import": "./dist/components/admin/index.js"
|