diff --git a/__integration__/README.md b/__integration__/README.md new file mode 100644 index 000000000..f8d9415dd --- /dev/null +++ b/__integration__/README.md @@ -0,0 +1,12 @@ +# Style Dictionary Integration Tests + +Style Dictionary is a tool to generate valid source code for multiple platforms and languages to consume. Because of this, unit testing can only get us so far. Simply unit testing or even basic snapshot testing of outputs doesn't give the whole picture. + +The integration tests here are meant to show complete end-to-end examples of Style Dictionary being used in order to validate the files it is generating. + +The integration tests still use Jest and snapshots, but rather than singling out format code, each test group builds a complete Style Dictionary and then tests the content of the output files with snapshots and validating syntax where possible. + +## To do + +* Jest snapshots are a good built-in way to test if content has changed, but storing the contents of a source code file like a CSS variables file doesn't get proper syntax highlighting and validation in IDEs. It would be better if we could store the raw output file and test against the new contents, but snapshot testing does not allow for that. +* Add more syntax validations \ No newline at end of file diff --git a/__integration__/__snapshots__/android.test.js.snap b/__integration__/__snapshots__/android.test.js.snap new file mode 100644 index 000000000..d2eed60a1 --- /dev/null +++ b/__integration__/__snapshots__/android.test.js.snap @@ -0,0 +1,514 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`integration android android/resources should match snapshot 1`] = ` +" + + + #ffffffff + #fff3f4f4 + #ffdee1e1 + #ffffeae9 + #ffffede3 + #ffebf9eb + #ffe9f8ff + #ffdee1e1 + #ffc8cccc + #ff0b8599 + #ff6f5ed3 + #ffebf9eb + #ffd7f4d7 + #ffc2f2bd + #ff98e58e + #ff75dd66 + #ff59cb59 + #ff2bb656 + #ff0ca750 + #ff008b46 + #ff006b40 + #ff08422f + #ff002b20 + #ffe5f9f5 + #ffcdf7ef + #ffb3f2e6 + #ff7dead5 + #ff24e0c5 + #ff08c4b2 + #ff00a99c + #ff0b968f + #ff067c7c + #ff026661 + #ff083f3f + #ff002528 + #ffd9fcfb + #ffc5f9f9 + #ffa5f2f2 + #ff76e5e2 + #ff33d6e2 + #ff17b8ce + #ff0797ae + #ff0b8599 + #ff0f6e84 + #ff035e73 + #ff083d4f + #ff002838 + #ffe9f8ff + #ffdcf2ff + #ffc7e4f9 + #ffa1d2f8 + #ff56adf5 + #ff3896e3 + #ff2b87d3 + #ff2079c3 + #ff116daa + #ff0c5689 + #ff0a3960 + #ff002138 + #fff2f2f9 + #ffeaeaf9 + #ffd8d7f9 + #ffc1c1f7 + #ffa193f2 + #ff9180f4 + #ff816fea + #ff6f5ed3 + #ff5e4eba + #ff483a9c + #ff2d246b + #ff1d1d38 + #fffef0ff + #fff9e3fc + #fff4c4f7 + #ffedadf2 + #fff282f5 + #ffdb61db + #ffc44eb9 + #ffac44a8 + #ff8f3896 + #ff6c2277 + #ff451551 + #ff29192d + #ffffe9f3 + #fffcdbeb + #ffffb5d5 + #ffff95c1 + #ffff76ae + #ffef588b + #ffe0447c + #ffce3665 + #ffb22f5b + #ff931847 + #ff561231 + #ff2b1721 + #ffffeae9 + #ffffd5d2 + #ffffb8b1 + #ffff9c8f + #ffff7f6e + #fff76054 + #ffed4c42 + #ffdb3e3e + #ffc63434 + #ff992222 + #ff6d1313 + #ff2b1111 + #ffffede3 + #fffcdccc + #ffffc6a4 + #ffffb180 + #ffff9c5d + #fffc8943 + #fff57d33 + #ffed7024 + #ffce5511 + #ff962c0b + #ff601700 + #ff2d130e + #ffffffff + #fff3f4f4 + #ffdee1e1 + #ffc8cccc + #ffb0b6b7 + #ff929a9b + #ff6e797a + #ff515e5f + #ff364141 + #ff273333 + #ff162020 + #ff040404 + #fffff8e2 + #fffdefcd + #ffffe99a + #ffffe16e + #ffffd943 + #ffffcd1c + #ffffbc00 + #ffdd9903 + #ffba7506 + #ff944c0c + #ff542a00 + #ff2d1a05 + #ff040404 + #ff273333 + #ff364141 + #ff0b8599 + #ff0b8599 + #ff6f5ed3 + #ff364141 + #ff6d1313 + #ff601700 + #ff08422f + 480.00dp + 12.00sp + 16.00sp + 24.00sp + 36.00sp + 8.00dp + 16.00dp + 16.00dp + 16.00dp + + +" +`; + +exports[`integration android android/resources with filter should match snapshot 1`] = ` +" + + + #ffffffff + #fff3f4f4 + #ffdee1e1 + #ffffeae9 + #ffffede3 + #ffebf9eb + #ffe9f8ff + #ffdee1e1 + #ffc8cccc + #ff0b8599 + #ff6f5ed3 + #ffebf9eb + #ffd7f4d7 + #ffc2f2bd + #ff98e58e + #ff75dd66 + #ff59cb59 + #ff2bb656 + #ff0ca750 + #ff008b46 + #ff006b40 + #ff08422f + #ff002b20 + #ffe5f9f5 + #ffcdf7ef + #ffb3f2e6 + #ff7dead5 + #ff24e0c5 + #ff08c4b2 + #ff00a99c + #ff0b968f + #ff067c7c + #ff026661 + #ff083f3f + #ff002528 + #ffd9fcfb + #ffc5f9f9 + #ffa5f2f2 + #ff76e5e2 + #ff33d6e2 + #ff17b8ce + #ff0797ae + #ff0b8599 + #ff0f6e84 + #ff035e73 + #ff083d4f + #ff002838 + #ffe9f8ff + #ffdcf2ff + #ffc7e4f9 + #ffa1d2f8 + #ff56adf5 + #ff3896e3 + #ff2b87d3 + #ff2079c3 + #ff116daa + #ff0c5689 + #ff0a3960 + #ff002138 + #fff2f2f9 + #ffeaeaf9 + #ffd8d7f9 + #ffc1c1f7 + #ffa193f2 + #ff9180f4 + #ff816fea + #ff6f5ed3 + #ff5e4eba + #ff483a9c + #ff2d246b + #ff1d1d38 + #fffef0ff + #fff9e3fc + #fff4c4f7 + #ffedadf2 + #fff282f5 + #ffdb61db + #ffc44eb9 + #ffac44a8 + #ff8f3896 + #ff6c2277 + #ff451551 + #ff29192d + #ffffe9f3 + #fffcdbeb + #ffffb5d5 + #ffff95c1 + #ffff76ae + #ffef588b + #ffe0447c + #ffce3665 + #ffb22f5b + #ff931847 + #ff561231 + #ff2b1721 + #ffffeae9 + #ffffd5d2 + #ffffb8b1 + #ffff9c8f + #ffff7f6e + #fff76054 + #ffed4c42 + #ffdb3e3e + #ffc63434 + #ff992222 + #ff6d1313 + #ff2b1111 + #ffffede3 + #fffcdccc + #ffffc6a4 + #ffffb180 + #ffff9c5d + #fffc8943 + #fff57d33 + #ffed7024 + #ffce5511 + #ff962c0b + #ff601700 + #ff2d130e + #ffffffff + #fff3f4f4 + #ffdee1e1 + #ffc8cccc + #ffb0b6b7 + #ff929a9b + #ff6e797a + #ff515e5f + #ff364141 + #ff273333 + #ff162020 + #ff040404 + #fffff8e2 + #fffdefcd + #ffffe99a + #ffffe16e + #ffffd943 + #ffffcd1c + #ffffbc00 + #ffdd9903 + #ffba7506 + #ff944c0c + #ff542a00 + #ff2d1a05 + #ff040404 + #ff273333 + #ff364141 + #ff0b8599 + #ff0b8599 + #ff6f5ed3 + #ff364141 + #ff6d1313 + #ff601700 + #ff08422f + + +" +`; + +exports[`integration android android/resources with references should match snapshot 1`] = ` +" + + + @color/color_core_neutral_0 + @color/color_core_neutral_100 + @color/color_core_neutral_200 + @color/color_core_red_0 + @color/color_core_orange_0 + @color/color_core_green_0 + @color/color_core_blue_0 + @color/color_background_tertiary + @color/color_core_neutral_300 + @color/color_core_aqua_700 + @color/color_core_purple_700 + #ffebf9eb + #ffd7f4d7 + #ffc2f2bd + #ff98e58e + #ff75dd66 + #ff59cb59 + #ff2bb656 + #ff0ca750 + #ff008b46 + #ff006b40 + #ff08422f + #ff002b20 + #ffe5f9f5 + #ffcdf7ef + #ffb3f2e6 + #ff7dead5 + #ff24e0c5 + #ff08c4b2 + #ff00a99c + #ff0b968f + #ff067c7c + #ff026661 + #ff083f3f + #ff002528 + #ffd9fcfb + #ffc5f9f9 + #ffa5f2f2 + #ff76e5e2 + #ff33d6e2 + #ff17b8ce + #ff0797ae + #ff0b8599 + #ff0f6e84 + #ff035e73 + #ff083d4f + #ff002838 + #ffe9f8ff + #ffdcf2ff + #ffc7e4f9 + #ffa1d2f8 + #ff56adf5 + #ff3896e3 + #ff2b87d3 + #ff2079c3 + #ff116daa + #ff0c5689 + #ff0a3960 + #ff002138 + #fff2f2f9 + #ffeaeaf9 + #ffd8d7f9 + #ffc1c1f7 + #ffa193f2 + #ff9180f4 + #ff816fea + #ff6f5ed3 + #ff5e4eba + #ff483a9c + #ff2d246b + #ff1d1d38 + #fffef0ff + #fff9e3fc + #fff4c4f7 + #ffedadf2 + #fff282f5 + #ffdb61db + #ffc44eb9 + #ffac44a8 + #ff8f3896 + #ff6c2277 + #ff451551 + #ff29192d + #ffffe9f3 + #fffcdbeb + #ffffb5d5 + #ffff95c1 + #ffff76ae + #ffef588b + #ffe0447c + #ffce3665 + #ffb22f5b + #ff931847 + #ff561231 + #ff2b1721 + #ffffeae9 + #ffffd5d2 + #ffffb8b1 + #ffff9c8f + #ffff7f6e + #fff76054 + #ffed4c42 + #ffdb3e3e + #ffc63434 + #ff992222 + #ff6d1313 + #ff2b1111 + #ffffede3 + #fffcdccc + #ffffc6a4 + #ffffb180 + #ffff9c5d + #fffc8943 + #fff57d33 + #ffed7024 + #ffce5511 + #ff962c0b + #ff601700 + #ff2d130e + #ffffffff + #fff3f4f4 + #ffdee1e1 + #ffc8cccc + #ffb0b6b7 + #ff929a9b + #ff6e797a + #ff515e5f + #ff364141 + #ff273333 + #ff162020 + #ff040404 + #fffff8e2 + #fffdefcd + #ffffe99a + #ffffe16e + #ffffd943 + #ffffcd1c + #ffffbc00 + #ffdd9903 + #ffba7506 + #ff944c0c + #ff542a00 + #ff2d1a05 + @color/color_core_neutral_1100 + @color/color_core_neutral_900 + @color/color_core_neutral_800 + @color/color_brand_primary + @color/color_brand_primary + @color/color_brand_secondary + @color/color_font_tertiary + @color/color_core_red_1000 + @color/color_core_orange_1000 + @color/color_core_green_1000 + 480.00dp + 12.00sp + 16.00sp + 24.00sp + 36.00sp + 8.00dp + 16.00dp + 16.00dp + 16.00dp + + +" +`; diff --git a/__integration__/__snapshots__/css.test.js.snap b/__integration__/__snapshots__/css.test.js.snap new file mode 100644 index 000000000..0d6f5ae13 --- /dev/null +++ b/__integration__/__snapshots__/css.test.js.snap @@ -0,0 +1,347 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`integration css css/variables should match snapshot 1`] = ` +"/** + * Do not edit directly + * Generated on Sat, 01 Jan 2000 00:00:00 GMT + */ + +:root { + --color-background-primary: #ffffff; + --color-background-secondary: #f3f4f4; + --color-background-tertiary: #dee1e1; + --color-background-danger: #ffeae9; + --color-background-warning: #ffede3; + --color-background-success: #ebf9eb; + --color-background-info: #e9f8ff; + --color-background-disabled: #dee1e1; + --color-border-primary: #c8cccc; + --color-brand-primary: #0b8599; + --color-brand-secondary: #6f5ed3; + --color-core-green-0: #ebf9eb; + --color-core-green-100: #d7f4d7; + --color-core-green-200: #c2f2bd; + --color-core-green-300: #98e58e; + --color-core-green-400: #75dd66; + --color-core-green-500: #59cb59; + --color-core-green-600: #2bb656; + --color-core-green-700: #0ca750; + --color-core-green-800: #008b46; + --color-core-green-900: #006b40; + --color-core-green-1000: #08422f; + --color-core-green-1100: #002b20; + --color-core-teal-0: #e5f9f5; + --color-core-teal-100: #cdf7ef; + --color-core-teal-200: #b3f2e6; + --color-core-teal-300: #7dead5; + --color-core-teal-400: #24e0c5; + --color-core-teal-500: #08c4b2; + --color-core-teal-600: #00a99c; + --color-core-teal-700: #0b968f; + --color-core-teal-800: #067c7c; + --color-core-teal-900: #026661; + --color-core-teal-1000: #083f3f; + --color-core-teal-1100: #002528; + --color-core-aqua-0: #d9fcfb; + --color-core-aqua-100: #c5f9f9; + --color-core-aqua-200: #a5f2f2; + --color-core-aqua-300: #76e5e2; + --color-core-aqua-400: #33d6e2; + --color-core-aqua-500: #17b8ce; + --color-core-aqua-600: #0797ae; + --color-core-aqua-700: #0b8599; + --color-core-aqua-800: #0f6e84; + --color-core-aqua-900: #035e73; + --color-core-aqua-1000: #083d4f; + --color-core-aqua-1100: #002838; + --color-core-blue-0: #e9f8ff; + --color-core-blue-100: #dcf2ff; + --color-core-blue-200: #c7e4f9; + --color-core-blue-300: #a1d2f8; + --color-core-blue-400: #56adf5; + --color-core-blue-500: #3896e3; + --color-core-blue-600: #2b87d3; + --color-core-blue-700: #2079c3; + --color-core-blue-800: #116daa; + --color-core-blue-900: #0c5689; + --color-core-blue-1000: #0a3960; + --color-core-blue-1100: #002138; + --color-core-purple-0: #f2f2f9; + --color-core-purple-100: #eaeaf9; + --color-core-purple-200: #d8d7f9; + --color-core-purple-300: #c1c1f7; + --color-core-purple-400: #a193f2; + --color-core-purple-500: #9180f4; + --color-core-purple-600: #816fea; + --color-core-purple-700: #6f5ed3; + --color-core-purple-800: #5e4eba; + --color-core-purple-900: #483a9c; + --color-core-purple-1000: #2d246b; + --color-core-purple-1100: #1d1d38; + --color-core-magenta-0: #fef0ff; + --color-core-magenta-100: #f9e3fc; + --color-core-magenta-200: #f4c4f7; + --color-core-magenta-300: #edadf2; + --color-core-magenta-400: #f282f5; + --color-core-magenta-500: #db61db; + --color-core-magenta-600: #c44eb9; + --color-core-magenta-700: #ac44a8; + --color-core-magenta-800: #8f3896; + --color-core-magenta-900: #6c2277; + --color-core-magenta-1000: #451551; + --color-core-magenta-1100: #29192d; + --color-core-pink-0: #ffe9f3; + --color-core-pink-100: #fcdbeb; + --color-core-pink-200: #ffb5d5; + --color-core-pink-300: #ff95c1; + --color-core-pink-400: #ff76ae; + --color-core-pink-500: #ef588b; + --color-core-pink-600: #e0447c; + --color-core-pink-700: #ce3665; + --color-core-pink-800: #b22f5b; + --color-core-pink-900: #931847; + --color-core-pink-1000: #561231; + --color-core-pink-1100: #2b1721; + --color-core-red-0: #ffeae9; + --color-core-red-100: #ffd5d2; + --color-core-red-200: #ffb8b1; + --color-core-red-300: #ff9c8f; + --color-core-red-400: #ff7f6e; + --color-core-red-500: #f76054; + --color-core-red-600: #ed4c42; + --color-core-red-700: #db3e3e; + --color-core-red-800: #c63434; + --color-core-red-900: #992222; + --color-core-red-1000: #6d1313; + --color-core-red-1100: #2b1111; + --color-core-orange-0: #ffede3; + --color-core-orange-100: #fcdccc; + --color-core-orange-200: #ffc6a4; + --color-core-orange-300: #ffb180; + --color-core-orange-400: #ff9c5d; + --color-core-orange-500: #fc8943; + --color-core-orange-600: #f57d33; + --color-core-orange-700: #ed7024; + --color-core-orange-800: #ce5511; + --color-core-orange-900: #962c0b; + --color-core-orange-1000: #601700; + --color-core-orange-1100: #2d130e; + --color-core-neutral-0: #ffffff; + --color-core-neutral-100: #f3f4f4; + --color-core-neutral-200: #dee1e1; + --color-core-neutral-300: #c8cccc; + --color-core-neutral-400: #b0b6b7; + --color-core-neutral-500: #929a9b; + --color-core-neutral-600: #6e797a; + --color-core-neutral-700: #515e5f; + --color-core-neutral-800: #364141; + --color-core-neutral-900: #273333; + --color-core-neutral-1000: #162020; + --color-core-neutral-1100: #040404; + --color-core-yellow-0: #fff8e2; + --color-core-yellow-100: #fdefcd; + --color-core-yellow-200: #ffe99a; + --color-core-yellow-300: #ffe16e; + --color-core-yellow-400: #ffd943; + --color-core-yellow-500: #ffcd1c; + --color-core-yellow-600: #ffbc00; + --color-core-yellow-700: #dd9903; + --color-core-yellow-800: #ba7506; + --color-core-yellow-900: #944c0c; + --color-core-yellow-1000: #542a00; + --color-core-yellow-1100: #2d1a05; + --color-font-primary: #040404; + --color-font-secondary: #273333; + --color-font-tertiary: #364141; + --color-font-interactive: #0b8599; + --color-font-interactive-hover: #0b8599; + --color-font-interactive-active: #6f5ed3; + --color-font-interactive-disabled: #364141; + --color-font-danger: #6d1313; + --color-font-warning: #601700; + --color-font-success: #08422f; + --size-border-radius-large: 30rem; + --size-font-small: 0.75rem; + --size-font-medium: 1rem; + --size-font-large: 1.5rem; + --size-font-xl: 2.25rem; + --size-padding-small: 0.5rem; + --size-padding-medium: 1rem; + --size-padding-large: 1rem; + --size-padding-xl: 1rem; +} +" +`; + +exports[`integration css css/variables with references should match snapshot 1`] = ` +"/** + * Do not edit directly + * Generated on Sat, 01 Jan 2000 00:00:00 GMT + */ + +:root { + --size-padding-xl: 1rem; + --size-padding-large: 1rem; + --size-padding-medium: 1rem; + --size-padding-small: 0.5rem; + --size-font-xl: 2.25rem; + --size-font-large: 1.5rem; + --size-font-medium: 1rem; + --size-font-small: 0.75rem; + --size-border-radius-large: 30rem; + --color-core-yellow-1100: #2d1a05; + --color-core-yellow-1000: #542a00; + --color-core-yellow-900: #944c0c; + --color-core-yellow-800: #ba7506; + --color-core-yellow-700: #dd9903; + --color-core-yellow-600: #ffbc00; + --color-core-yellow-500: #ffcd1c; + --color-core-yellow-400: #ffd943; + --color-core-yellow-300: #ffe16e; + --color-core-yellow-200: #ffe99a; + --color-core-yellow-100: #fdefcd; + --color-core-yellow-0: #fff8e2; + --color-core-neutral-1100: #040404; + --color-core-neutral-1000: #162020; + --color-core-neutral-900: #273333; + --color-core-neutral-800: #364141; + --color-core-neutral-700: #515e5f; + --color-core-neutral-600: #6e797a; + --color-core-neutral-500: #929a9b; + --color-core-neutral-400: #b0b6b7; + --color-core-neutral-300: #c8cccc; + --color-core-neutral-200: #dee1e1; + --color-core-neutral-100: #f3f4f4; + --color-core-neutral-0: #ffffff; + --color-core-orange-1100: #2d130e; + --color-core-orange-1000: #601700; + --color-core-orange-900: #962c0b; + --color-core-orange-800: #ce5511; + --color-core-orange-700: #ed7024; + --color-core-orange-600: #f57d33; + --color-core-orange-500: #fc8943; + --color-core-orange-400: #ff9c5d; + --color-core-orange-300: #ffb180; + --color-core-orange-200: #ffc6a4; + --color-core-orange-100: #fcdccc; + --color-core-orange-0: #ffede3; + --color-core-red-1100: #2b1111; + --color-core-red-1000: #6d1313; + --color-core-red-900: #992222; + --color-core-red-800: #c63434; + --color-core-red-700: #db3e3e; + --color-core-red-600: #ed4c42; + --color-core-red-500: #f76054; + --color-core-red-400: #ff7f6e; + --color-core-red-300: #ff9c8f; + --color-core-red-200: #ffb8b1; + --color-core-red-100: #ffd5d2; + --color-core-red-0: #ffeae9; + --color-core-pink-1100: #2b1721; + --color-core-pink-1000: #561231; + --color-core-pink-900: #931847; + --color-core-pink-800: #b22f5b; + --color-core-pink-700: #ce3665; + --color-core-pink-600: #e0447c; + --color-core-pink-500: #ef588b; + --color-core-pink-400: #ff76ae; + --color-core-pink-300: #ff95c1; + --color-core-pink-200: #ffb5d5; + --color-core-pink-100: #fcdbeb; + --color-core-pink-0: #ffe9f3; + --color-core-magenta-1100: #29192d; + --color-core-magenta-1000: #451551; + --color-core-magenta-900: #6c2277; + --color-core-magenta-800: #8f3896; + --color-core-magenta-700: #ac44a8; + --color-core-magenta-600: #c44eb9; + --color-core-magenta-500: #db61db; + --color-core-magenta-400: #f282f5; + --color-core-magenta-300: #edadf2; + --color-core-magenta-200: #f4c4f7; + --color-core-magenta-100: #f9e3fc; + --color-core-magenta-0: #fef0ff; + --color-core-purple-1100: #1d1d38; + --color-core-purple-1000: #2d246b; + --color-core-purple-900: #483a9c; + --color-core-purple-800: #5e4eba; + --color-core-purple-700: #6f5ed3; + --color-core-purple-600: #816fea; + --color-core-purple-500: #9180f4; + --color-core-purple-400: #a193f2; + --color-core-purple-300: #c1c1f7; + --color-core-purple-200: #d8d7f9; + --color-core-purple-100: #eaeaf9; + --color-core-purple-0: #f2f2f9; + --color-core-blue-1100: #002138; + --color-core-blue-1000: #0a3960; + --color-core-blue-900: #0c5689; + --color-core-blue-800: #116daa; + --color-core-blue-700: #2079c3; + --color-core-blue-600: #2b87d3; + --color-core-blue-500: #3896e3; + --color-core-blue-400: #56adf5; + --color-core-blue-300: #a1d2f8; + --color-core-blue-200: #c7e4f9; + --color-core-blue-100: #dcf2ff; + --color-core-blue-0: #e9f8ff; + --color-core-aqua-1100: #002838; + --color-core-aqua-1000: #083d4f; + --color-core-aqua-900: #035e73; + --color-core-aqua-800: #0f6e84; + --color-core-aqua-700: #0b8599; + --color-core-aqua-600: #0797ae; + --color-core-aqua-500: #17b8ce; + --color-core-aqua-400: #33d6e2; + --color-core-aqua-300: #76e5e2; + --color-core-aqua-200: #a5f2f2; + --color-core-aqua-100: #c5f9f9; + --color-core-aqua-0: #d9fcfb; + --color-core-teal-1100: #002528; + --color-core-teal-1000: #083f3f; + --color-core-teal-900: #026661; + --color-core-teal-800: #067c7c; + --color-core-teal-700: #0b968f; + --color-core-teal-600: #00a99c; + --color-core-teal-500: #08c4b2; + --color-core-teal-400: #24e0c5; + --color-core-teal-300: #7dead5; + --color-core-teal-200: #b3f2e6; + --color-core-teal-100: #cdf7ef; + --color-core-teal-0: #e5f9f5; + --color-core-green-1100: #002b20; + --color-core-green-1000: #08422f; + --color-core-green-900: #006b40; + --color-core-green-800: #008b46; + --color-core-green-700: #0ca750; + --color-core-green-600: #2bb656; + --color-core-green-500: #59cb59; + --color-core-green-400: #75dd66; + --color-core-green-300: #98e58e; + --color-core-green-200: #c2f2bd; + --color-core-green-100: #d7f4d7; + --color-core-green-0: #ebf9eb; + --color-background-primary: var(--color-core-neutral-0); + --color-background-secondary: var(--color-core-neutral-100); + --color-background-tertiary: var(--color-core-neutral-200); + --color-background-danger: var(--color-core-red-0); + --color-background-warning: var(--color-core-orange-0); + --color-background-success: var(--color-core-green-0); + --color-background-info: var(--color-core-blue-0); + --color-background-disabled: var(--color-background-tertiary); + --color-border-primary: var(--color-core-neutral-300); + --color-brand-primary: var(--color-core-aqua-700); + --color-brand-secondary: var(--color-core-purple-700); + --color-font-primary: var(--color-core-neutral-1100); + --color-font-secondary: var(--color-core-neutral-900); + --color-font-tertiary: var(--color-core-neutral-800); + --color-font-interactive: var(--color-brand-primary); + --color-font-interactive-hover: var(--color-brand-primary); + --color-font-interactive-active: var(--color-brand-secondary); + --color-font-interactive-disabled: var(--color-font-tertiary); + --color-font-danger: var(--color-core-red-1000); + --color-font-warning: var(--color-core-orange-1000); + --color-font-success: var(--color-core-green-1000); +} +" +`; diff --git a/__integration__/__snapshots__/flutter.test.js.snap b/__integration__/__snapshots__/flutter.test.js.snap new file mode 100644 index 000000000..f0ec455e6 --- /dev/null +++ b/__integration__/__snapshots__/flutter.test.js.snap @@ -0,0 +1,8445 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`integration flutter flutter/class.dart separate should match snapshot 1`] = ` +Object { + "data": Array [ + 10, + 47, + 47, + 10, + 47, + 47, + 32, + 115, + 116, + 121, + 108, + 101, + 95, + 100, + 105, + 99, + 116, + 105, + 111, + 110, + 97, + 114, + 121, + 95, + 99, + 111, + 108, + 111, + 114, + 46, + 100, + 97, + 114, + 116, + 10, + 47, + 47, + 10, + 47, + 47, + 32, + 68, + 111, + 32, + 110, + 111, + 116, + 32, + 101, + 100, + 105, + 116, + 32, + 100, + 105, + 114, + 101, + 99, + 116, + 108, + 121, + 10, + 47, + 47, + 32, + 71, + 101, + 110, + 101, + 114, + 97, + 116, + 101, + 100, + 32, + 111, + 110, + 32, + 83, + 97, + 116, + 44, + 32, + 48, + 49, + 32, + 74, + 97, + 110, + 32, + 50, + 48, + 48, + 48, + 32, + 48, + 48, + 58, + 48, + 48, + 58, + 48, + 48, + 32, + 71, + 77, + 84, + 10, + 47, + 47, + 10, + 10, + 10, + 105, + 109, + 112, + 111, + 114, + 116, + 32, + 39, + 100, + 97, + 114, + 116, + 58, + 117, + 105, + 39, + 59, + 10, + 10, + 99, + 108, + 97, + 115, + 115, + 32, + 83, + 116, + 121, + 108, + 101, + 68, + 105, + 99, + 116, + 105, + 111, + 110, + 97, + 114, + 121, + 67, + 111, + 108, + 111, + 114, + 32, + 123, + 10, + 32, + 32, + 83, + 116, + 121, + 108, + 101, + 68, + 105, + 99, + 116, + 105, + 111, + 110, + 97, + 114, + 121, + 67, + 111, + 108, + 111, + 114, + 46, + 95, + 40, + 41, + 59, + 10, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 97, + 99, + 107, + 103, + 114, + 111, + 117, + 110, + 100, + 68, + 97, + 110, + 103, + 101, + 114, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 69, + 65, + 69, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 97, + 99, + 107, + 103, + 114, + 111, + 117, + 110, + 100, + 68, + 105, + 115, + 97, + 98, + 108, + 101, + 100, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 69, + 69, + 49, + 69, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 97, + 99, + 107, + 103, + 114, + 111, + 117, + 110, + 100, + 73, + 110, + 102, + 111, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 57, + 70, + 56, + 70, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 97, + 99, + 107, + 103, + 114, + 111, + 117, + 110, + 100, + 80, + 114, + 105, + 109, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 70, + 70, + 70, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 97, + 99, + 107, + 103, + 114, + 111, + 117, + 110, + 100, + 83, + 101, + 99, + 111, + 110, + 100, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 51, + 70, + 52, + 70, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 97, + 99, + 107, + 103, + 114, + 111, + 117, + 110, + 100, + 83, + 117, + 99, + 99, + 101, + 115, + 115, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 66, + 70, + 57, + 69, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 97, + 99, + 107, + 103, + 114, + 111, + 117, + 110, + 100, + 84, + 101, + 114, + 116, + 105, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 69, + 69, + 49, + 69, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 97, + 99, + 107, + 103, + 114, + 111, + 117, + 110, + 100, + 87, + 97, + 114, + 110, + 105, + 110, + 103, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 69, + 68, + 69, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 111, + 114, + 100, + 101, + 114, + 80, + 114, + 105, + 109, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 56, + 67, + 67, + 67, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 114, + 97, + 110, + 100, + 80, + 114, + 105, + 109, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 66, + 56, + 53, + 57, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 98, + 114, + 97, + 110, + 100, + 83, + 101, + 99, + 111, + 110, + 100, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 70, + 53, + 69, + 68, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 57, + 70, + 67, + 70, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 53, + 70, + 57, + 70, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 56, + 51, + 68, + 52, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 48, + 50, + 56, + 51, + 56, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 65, + 53, + 70, + 50, + 70, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 55, + 54, + 69, + 53, + 69, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 51, + 51, + 68, + 54, + 69, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 49, + 55, + 66, + 56, + 67, + 69, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 55, + 57, + 55, + 65, + 69, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 66, + 56, + 53, + 57, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 70, + 54, + 69, + 56, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 65, + 113, + 117, + 97, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 51, + 53, + 69, + 55, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 57, + 70, + 56, + 70, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 67, + 70, + 50, + 70, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 65, + 51, + 57, + 54, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 48, + 50, + 49, + 51, + 56, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 55, + 69, + 52, + 70, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 65, + 49, + 68, + 50, + 70, + 56, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 53, + 54, + 65, + 68, + 70, + 53, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 51, + 56, + 57, + 54, + 69, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 66, + 56, + 55, + 68, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 48, + 55, + 57, + 67, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 49, + 49, + 54, + 68, + 65, + 65, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 66, + 108, + 117, + 101, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 67, + 53, + 54, + 56, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 66, + 70, + 57, + 69, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 55, + 70, + 52, + 68, + 55, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 56, + 52, + 50, + 50, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 48, + 50, + 66, + 50, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 50, + 70, + 50, + 66, + 68, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 57, + 56, + 69, + 53, + 56, + 69, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 55, + 53, + 68, + 68, + 54, + 54, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 53, + 57, + 67, + 66, + 53, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 66, + 66, + 54, + 53, + 54, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 67, + 65, + 55, + 53, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 48, + 56, + 66, + 52, + 54, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 71, + 114, + 101, + 101, + 110, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 48, + 54, + 66, + 52, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 69, + 70, + 48, + 70, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 57, + 69, + 51, + 70, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 52, + 53, + 49, + 53, + 53, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 57, + 49, + 57, + 50, + 68, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 52, + 67, + 52, + 70, + 55, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 68, + 65, + 68, + 70, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 50, + 56, + 50, + 70, + 53, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 66, + 54, + 49, + 68, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 52, + 52, + 69, + 66, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 65, + 67, + 52, + 52, + 65, + 56, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 56, + 70, + 51, + 56, + 57, + 54, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 77, + 97, + 103, + 101, + 110, + 116, + 97, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 67, + 50, + 50, + 55, + 55, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 70, + 70, + 70, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 51, + 70, + 52, + 70, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 49, + 54, + 50, + 48, + 50, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 52, + 48, + 52, + 48, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 69, + 69, + 49, + 69, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 56, + 67, + 67, + 67, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 66, + 48, + 66, + 54, + 66, + 55, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 57, + 50, + 57, + 65, + 57, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 69, + 55, + 57, + 55, + 65, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 53, + 49, + 53, + 69, + 53, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 51, + 54, + 52, + 49, + 52, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 78, + 101, + 117, + 116, + 114, + 97, + 108, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 55, + 51, + 51, + 51, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 69, + 68, + 69, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 67, + 68, + 67, + 67, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 48, + 49, + 55, + 48, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 68, + 49, + 51, + 48, + 69, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 67, + 54, + 65, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 66, + 49, + 56, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 57, + 67, + 53, + 68, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 67, + 56, + 57, + 52, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 53, + 55, + 68, + 51, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 68, + 55, + 48, + 50, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 69, + 53, + 53, + 49, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 79, + 114, + 97, + 110, + 103, + 101, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 57, + 54, + 50, + 67, + 48, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 69, + 57, + 70, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 67, + 68, + 66, + 69, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 53, + 54, + 49, + 50, + 51, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 66, + 49, + 55, + 50, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 66, + 53, + 68, + 53, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 57, + 53, + 67, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 55, + 54, + 65, + 69, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 70, + 53, + 56, + 56, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 48, + 52, + 52, + 55, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 69, + 51, + 54, + 54, + 53, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 66, + 50, + 50, + 70, + 53, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 105, + 110, + 107, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 57, + 51, + 49, + 56, + 52, + 55, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 50, + 70, + 50, + 70, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 65, + 69, + 65, + 70, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 68, + 50, + 52, + 54, + 66, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 49, + 68, + 49, + 68, + 51, + 56, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 56, + 68, + 55, + 70, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 49, + 67, + 49, + 70, + 55, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 65, + 49, + 57, + 51, + 70, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 57, + 49, + 56, + 48, + 70, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 56, + 49, + 54, + 70, + 69, + 65, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 70, + 53, + 69, + 68, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 53, + 69, + 52, + 69, + 66, + 65, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 80, + 117, + 114, + 112, + 108, + 101, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 52, + 56, + 51, + 65, + 57, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 69, + 65, + 69, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 68, + 53, + 68, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 68, + 49, + 51, + 49, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 66, + 49, + 49, + 49, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 66, + 56, + 66, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 57, + 67, + 56, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 55, + 70, + 54, + 69, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 55, + 54, + 48, + 53, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 68, + 52, + 67, + 52, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 66, + 51, + 69, + 51, + 69, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 54, + 51, + 52, + 51, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 82, + 101, + 100, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 57, + 57, + 50, + 50, + 50, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 69, + 53, + 70, + 57, + 70, + 53, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 67, + 68, + 70, + 55, + 69, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 56, + 51, + 70, + 51, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 48, + 50, + 53, + 50, + 56, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 66, + 51, + 70, + 50, + 69, + 54, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 55, + 68, + 69, + 65, + 68, + 53, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 52, + 69, + 48, + 67, + 53, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 56, + 67, + 52, + 66, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 48, + 65, + 57, + 57, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 66, + 57, + 54, + 56, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 54, + 55, + 67, + 55, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 84, + 101, + 97, + 108, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 50, + 54, + 54, + 54, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 70, + 56, + 69, + 50, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 68, + 69, + 70, + 67, + 68, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 49, + 48, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 53, + 52, + 50, + 65, + 48, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 49, + 49, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 68, + 49, + 65, + 48, + 53, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 50, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 69, + 57, + 57, + 65, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 51, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 69, + 49, + 54, + 69, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 52, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 68, + 57, + 52, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 53, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 67, + 68, + 49, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 54, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 70, + 70, + 66, + 67, + 48, + 48, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 55, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 68, + 68, + 57, + 57, + 48, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 56, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 66, + 65, + 55, + 53, + 48, + 54, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 99, + 111, + 114, + 101, + 89, + 101, + 108, + 108, + 111, + 119, + 57, + 48, + 48, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 57, + 52, + 52, + 67, + 48, + 67, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 68, + 97, + 110, + 103, + 101, + 114, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 68, + 49, + 51, + 49, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 73, + 110, + 116, + 101, + 114, + 97, + 99, + 116, + 105, + 118, + 101, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 66, + 56, + 53, + 57, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 73, + 110, + 116, + 101, + 114, + 97, + 99, + 116, + 105, + 118, + 101, + 65, + 99, + 116, + 105, + 118, + 101, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 70, + 53, + 69, + 68, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 73, + 110, + 116, + 101, + 114, + 97, + 99, + 116, + 105, + 118, + 101, + 68, + 105, + 115, + 97, + 98, + 108, + 101, + 100, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 51, + 54, + 52, + 49, + 52, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 73, + 110, + 116, + 101, + 114, + 97, + 99, + 116, + 105, + 118, + 101, + 72, + 111, + 118, + 101, + 114, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 66, + 56, + 53, + 57, + 57, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 80, + 114, + 105, + 109, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 52, + 48, + 52, + 48, + 52, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 83, + 101, + 99, + 111, + 110, + 100, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 50, + 55, + 51, + 51, + 51, + 51, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 83, + 117, + 99, + 99, + 101, + 115, + 115, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 48, + 56, + 52, + 50, + 50, + 70, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 84, + 101, + 114, + 116, + 105, + 97, + 114, + 121, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 51, + 54, + 52, + 49, + 52, + 49, + 41, + 59, + 10, + 32, + 32, + 32, + 32, + 115, + 116, + 97, + 116, + 105, + 99, + 32, + 99, + 111, + 110, + 115, + 116, + 32, + 102, + 111, + 110, + 116, + 87, + 97, + 114, + 110, + 105, + 110, + 103, + 32, + 61, + 32, + 67, + 111, + 108, + 111, + 114, + 40, + 48, + 120, + 70, + 70, + 54, + 48, + 49, + 55, + 48, + 48, + 41, + 59, + 10, + 125, + ], + "type": "Buffer", +} +`; + +exports[`integration flutter flutter/class.dart should match snapshot 1`] = ` +" +// +// style_dictionary.dart +// +// Do not edit directly +// Generated on Sat, 01 Jan 2000 00:00:00 GMT +// + + +import 'dart:ui'; + +class StyleDictionary { + StyleDictionary._(); + + static const colorBackgroundDanger = Color(0xFFFFEAE9); + static const colorBackgroundDisabled = Color(0xFFDEE1E1); + static const colorBackgroundInfo = Color(0xFFE9F8FF); + static const colorBackgroundPrimary = Color(0xFFFFFFFF); + static const colorBackgroundSecondary = Color(0xFFF3F4F4); + static const colorBackgroundSuccess = Color(0xFFEBF9EB); + static const colorBackgroundTertiary = Color(0xFFDEE1E1); + static const colorBackgroundWarning = Color(0xFFFFEDE3); + static const colorBorderPrimary = Color(0xFFC8CCCC); + static const colorBrandPrimary = Color(0xFF0B8599); + static const colorBrandSecondary = Color(0xFF6F5ED3); + static const colorCoreAqua0 = Color(0xFFD9FCFB); + static const colorCoreAqua100 = Color(0xFFC5F9F9); + static const colorCoreAqua1000 = Color(0xFF083D4F); + static const colorCoreAqua1100 = Color(0xFF002838); + static const colorCoreAqua200 = Color(0xFFA5F2F2); + static const colorCoreAqua300 = Color(0xFF76E5E2); + static const colorCoreAqua400 = Color(0xFF33D6E2); + static const colorCoreAqua500 = Color(0xFF17B8CE); + static const colorCoreAqua600 = Color(0xFF0797AE); + static const colorCoreAqua700 = Color(0xFF0B8599); + static const colorCoreAqua800 = Color(0xFF0F6E84); + static const colorCoreAqua900 = Color(0xFF035E73); + static const colorCoreBlue0 = Color(0xFFE9F8FF); + static const colorCoreBlue100 = Color(0xFFDCF2FF); + static const colorCoreBlue1000 = Color(0xFF0A3960); + static const colorCoreBlue1100 = Color(0xFF002138); + static const colorCoreBlue200 = Color(0xFFC7E4F9); + static const colorCoreBlue300 = Color(0xFFA1D2F8); + static const colorCoreBlue400 = Color(0xFF56ADF5); + static const colorCoreBlue500 = Color(0xFF3896E3); + static const colorCoreBlue600 = Color(0xFF2B87D3); + static const colorCoreBlue700 = Color(0xFF2079C3); + static const colorCoreBlue800 = Color(0xFF116DAA); + static const colorCoreBlue900 = Color(0xFF0C5689); + static const colorCoreGreen0 = Color(0xFFEBF9EB); + static const colorCoreGreen100 = Color(0xFFD7F4D7); + static const colorCoreGreen1000 = Color(0xFF08422F); + static const colorCoreGreen1100 = Color(0xFF002B20); + static const colorCoreGreen200 = Color(0xFFC2F2BD); + static const colorCoreGreen300 = Color(0xFF98E58E); + static const colorCoreGreen400 = Color(0xFF75DD66); + static const colorCoreGreen500 = Color(0xFF59CB59); + static const colorCoreGreen600 = Color(0xFF2BB656); + static const colorCoreGreen700 = Color(0xFF0CA750); + static const colorCoreGreen800 = Color(0xFF008B46); + static const colorCoreGreen900 = Color(0xFF006B40); + static const colorCoreMagenta0 = Color(0xFFFEF0FF); + static const colorCoreMagenta100 = Color(0xFFF9E3FC); + static const colorCoreMagenta1000 = Color(0xFF451551); + static const colorCoreMagenta1100 = Color(0xFF29192D); + static const colorCoreMagenta200 = Color(0xFFF4C4F7); + static const colorCoreMagenta300 = Color(0xFFEDADF2); + static const colorCoreMagenta400 = Color(0xFFF282F5); + static const colorCoreMagenta500 = Color(0xFFDB61DB); + static const colorCoreMagenta600 = Color(0xFFC44EB9); + static const colorCoreMagenta700 = Color(0xFFAC44A8); + static const colorCoreMagenta800 = Color(0xFF8F3896); + static const colorCoreMagenta900 = Color(0xFF6C2277); + static const colorCoreNeutral0 = Color(0xFFFFFFFF); + static const colorCoreNeutral100 = Color(0xFFF3F4F4); + static const colorCoreNeutral1000 = Color(0xFF162020); + static const colorCoreNeutral1100 = Color(0xFF040404); + static const colorCoreNeutral200 = Color(0xFFDEE1E1); + static const colorCoreNeutral300 = Color(0xFFC8CCCC); + static const colorCoreNeutral400 = Color(0xFFB0B6B7); + static const colorCoreNeutral500 = Color(0xFF929A9B); + static const colorCoreNeutral600 = Color(0xFF6E797A); + static const colorCoreNeutral700 = Color(0xFF515E5F); + static const colorCoreNeutral800 = Color(0xFF364141); + static const colorCoreNeutral900 = Color(0xFF273333); + static const colorCoreOrange0 = Color(0xFFFFEDE3); + static const colorCoreOrange100 = Color(0xFFFCDCCC); + static const colorCoreOrange1000 = Color(0xFF601700); + static const colorCoreOrange1100 = Color(0xFF2D130E); + static const colorCoreOrange200 = Color(0xFFFFC6A4); + static const colorCoreOrange300 = Color(0xFFFFB180); + static const colorCoreOrange400 = Color(0xFFFF9C5D); + static const colorCoreOrange500 = Color(0xFFFC8943); + static const colorCoreOrange600 = Color(0xFFF57D33); + static const colorCoreOrange700 = Color(0xFFED7024); + static const colorCoreOrange800 = Color(0xFFCE5511); + static const colorCoreOrange900 = Color(0xFF962C0B); + static const colorCorePink0 = Color(0xFFFFE9F3); + static const colorCorePink100 = Color(0xFFFCDBEB); + static const colorCorePink1000 = Color(0xFF561231); + static const colorCorePink1100 = Color(0xFF2B1721); + static const colorCorePink200 = Color(0xFFFFB5D5); + static const colorCorePink300 = Color(0xFFFF95C1); + static const colorCorePink400 = Color(0xFFFF76AE); + static const colorCorePink500 = Color(0xFFEF588B); + static const colorCorePink600 = Color(0xFFE0447C); + static const colorCorePink700 = Color(0xFFCE3665); + static const colorCorePink800 = Color(0xFFB22F5B); + static const colorCorePink900 = Color(0xFF931847); + static const colorCorePurple0 = Color(0xFFF2F2F9); + static const colorCorePurple100 = Color(0xFFEAEAF9); + static const colorCorePurple1000 = Color(0xFF2D246B); + static const colorCorePurple1100 = Color(0xFF1D1D38); + static const colorCorePurple200 = Color(0xFFD8D7F9); + static const colorCorePurple300 = Color(0xFFC1C1F7); + static const colorCorePurple400 = Color(0xFFA193F2); + static const colorCorePurple500 = Color(0xFF9180F4); + static const colorCorePurple600 = Color(0xFF816FEA); + static const colorCorePurple700 = Color(0xFF6F5ED3); + static const colorCorePurple800 = Color(0xFF5E4EBA); + static const colorCorePurple900 = Color(0xFF483A9C); + static const colorCoreRed0 = Color(0xFFFFEAE9); + static const colorCoreRed100 = Color(0xFFFFD5D2); + static const colorCoreRed1000 = Color(0xFF6D1313); + static const colorCoreRed1100 = Color(0xFF2B1111); + static const colorCoreRed200 = Color(0xFFFFB8B1); + static const colorCoreRed300 = Color(0xFFFF9C8F); + static const colorCoreRed400 = Color(0xFFFF7F6E); + static const colorCoreRed500 = Color(0xFFF76054); + static const colorCoreRed600 = Color(0xFFED4C42); + static const colorCoreRed700 = Color(0xFFDB3E3E); + static const colorCoreRed800 = Color(0xFFC63434); + static const colorCoreRed900 = Color(0xFF992222); + static const colorCoreTeal0 = Color(0xFFE5F9F5); + static const colorCoreTeal100 = Color(0xFFCDF7EF); + static const colorCoreTeal1000 = Color(0xFF083F3F); + static const colorCoreTeal1100 = Color(0xFF002528); + static const colorCoreTeal200 = Color(0xFFB3F2E6); + static const colorCoreTeal300 = Color(0xFF7DEAD5); + static const colorCoreTeal400 = Color(0xFF24E0C5); + static const colorCoreTeal500 = Color(0xFF08C4B2); + static const colorCoreTeal600 = Color(0xFF00A99C); + static const colorCoreTeal700 = Color(0xFF0B968F); + static const colorCoreTeal800 = Color(0xFF067C7C); + static const colorCoreTeal900 = Color(0xFF026661); + static const colorCoreYellow0 = Color(0xFFFFF8E2); + static const colorCoreYellow100 = Color(0xFFFDEFCD); + static const colorCoreYellow1000 = Color(0xFF542A00); + static const colorCoreYellow1100 = Color(0xFF2D1A05); + static const colorCoreYellow200 = Color(0xFFFFE99A); + static const colorCoreYellow300 = Color(0xFFFFE16E); + static const colorCoreYellow400 = Color(0xFFFFD943); + static const colorCoreYellow500 = Color(0xFFFFCD1C); + static const colorCoreYellow600 = Color(0xFFFFBC00); + static const colorCoreYellow700 = Color(0xFFDD9903); + static const colorCoreYellow800 = Color(0xFFBA7506); + static const colorCoreYellow900 = Color(0xFF944C0C); + static const colorFontDanger = Color(0xFF6D1313); + static const colorFontInteractive = Color(0xFF0B8599); + static const colorFontInteractiveActive = Color(0xFF6F5ED3); + static const colorFontInteractiveDisabled = Color(0xFF364141); + static const colorFontInteractiveHover = Color(0xFF0B8599); + static const colorFontPrimary = Color(0xFF040404); + static const colorFontSecondary = Color(0xFF273333); + static const colorFontSuccess = Color(0xFF08422F); + static const colorFontTertiary = Color(0xFF364141); + static const colorFontWarning = Color(0xFF601700); + static const sizeBorderRadiusLarge = 480.00; + static const sizeFontLarge = 24.00; + static const sizeFontMedium = 16.00; + static const sizeFontSmall = 12.00; + static const sizeFontXl = 36.00; + static const sizePaddingLarge = 16.00; + static const sizePaddingMedium = 16.00; + static const sizePaddingSmall = 8.00; + static const sizePaddingXl = 16.00; +}" +`; + +exports[`integration flutter flutter/class.dart with references should match snapshot 1`] = ` +" +// +// style_dictionary_with_references.dart +// +// Do not edit directly +// Generated on Sat, 01 Jan 2000 00:00:00 GMT +// + + +import 'dart:ui'; + +class StyleDictionary { + StyleDictionary._(); + + static const colorBackgroundDanger = colorCoreRed0; + static const colorBackgroundDisabled = colorBackgroundTertiary; + static const colorBackgroundInfo = colorCoreBlue0; + static const colorBackgroundPrimary = colorCoreNeutral0; + static const colorBackgroundSecondary = colorCoreNeutral100; + static const colorBackgroundSuccess = colorCoreGreen0; + static const colorBackgroundTertiary = colorCoreNeutral200; + static const colorBackgroundWarning = colorCoreOrange0; + static const colorBorderPrimary = colorCoreNeutral300; + static const colorBrandPrimary = colorCoreAqua700; + static const colorBrandSecondary = colorCorePurple700; + static const colorCoreAqua0 = Color(0xFFD9FCFB); + static const colorCoreAqua100 = Color(0xFFC5F9F9); + static const colorCoreAqua1000 = Color(0xFF083D4F); + static const colorCoreAqua1100 = Color(0xFF002838); + static const colorCoreAqua200 = Color(0xFFA5F2F2); + static const colorCoreAqua300 = Color(0xFF76E5E2); + static const colorCoreAqua400 = Color(0xFF33D6E2); + static const colorCoreAqua500 = Color(0xFF17B8CE); + static const colorCoreAqua600 = Color(0xFF0797AE); + static const colorCoreAqua700 = Color(0xFF0B8599); + static const colorCoreAqua800 = Color(0xFF0F6E84); + static const colorCoreAqua900 = Color(0xFF035E73); + static const colorCoreBlue0 = Color(0xFFE9F8FF); + static const colorCoreBlue100 = Color(0xFFDCF2FF); + static const colorCoreBlue1000 = Color(0xFF0A3960); + static const colorCoreBlue1100 = Color(0xFF002138); + static const colorCoreBlue200 = Color(0xFFC7E4F9); + static const colorCoreBlue300 = Color(0xFFA1D2F8); + static const colorCoreBlue400 = Color(0xFF56ADF5); + static const colorCoreBlue500 = Color(0xFF3896E3); + static const colorCoreBlue600 = Color(0xFF2B87D3); + static const colorCoreBlue700 = Color(0xFF2079C3); + static const colorCoreBlue800 = Color(0xFF116DAA); + static const colorCoreBlue900 = Color(0xFF0C5689); + static const colorCoreGreen0 = Color(0xFFEBF9EB); + static const colorCoreGreen100 = Color(0xFFD7F4D7); + static const colorCoreGreen1000 = Color(0xFF08422F); + static const colorCoreGreen1100 = Color(0xFF002B20); + static const colorCoreGreen200 = Color(0xFFC2F2BD); + static const colorCoreGreen300 = Color(0xFF98E58E); + static const colorCoreGreen400 = Color(0xFF75DD66); + static const colorCoreGreen500 = Color(0xFF59CB59); + static const colorCoreGreen600 = Color(0xFF2BB656); + static const colorCoreGreen700 = Color(0xFF0CA750); + static const colorCoreGreen800 = Color(0xFF008B46); + static const colorCoreGreen900 = Color(0xFF006B40); + static const colorCoreMagenta0 = Color(0xFFFEF0FF); + static const colorCoreMagenta100 = Color(0xFFF9E3FC); + static const colorCoreMagenta1000 = Color(0xFF451551); + static const colorCoreMagenta1100 = Color(0xFF29192D); + static const colorCoreMagenta200 = Color(0xFFF4C4F7); + static const colorCoreMagenta300 = Color(0xFFEDADF2); + static const colorCoreMagenta400 = Color(0xFFF282F5); + static const colorCoreMagenta500 = Color(0xFFDB61DB); + static const colorCoreMagenta600 = Color(0xFFC44EB9); + static const colorCoreMagenta700 = Color(0xFFAC44A8); + static const colorCoreMagenta800 = Color(0xFF8F3896); + static const colorCoreMagenta900 = Color(0xFF6C2277); + static const colorCoreNeutral0 = Color(0xFFFFFFFF); + static const colorCoreNeutral100 = Color(0xFFF3F4F4); + static const colorCoreNeutral1000 = Color(0xFF162020); + static const colorCoreNeutral1100 = Color(0xFF040404); + static const colorCoreNeutral200 = Color(0xFFDEE1E1); + static const colorCoreNeutral300 = Color(0xFFC8CCCC); + static const colorCoreNeutral400 = Color(0xFFB0B6B7); + static const colorCoreNeutral500 = Color(0xFF929A9B); + static const colorCoreNeutral600 = Color(0xFF6E797A); + static const colorCoreNeutral700 = Color(0xFF515E5F); + static const colorCoreNeutral800 = Color(0xFF364141); + static const colorCoreNeutral900 = Color(0xFF273333); + static const colorCoreOrange0 = Color(0xFFFFEDE3); + static const colorCoreOrange100 = Color(0xFFFCDCCC); + static const colorCoreOrange1000 = Color(0xFF601700); + static const colorCoreOrange1100 = Color(0xFF2D130E); + static const colorCoreOrange200 = Color(0xFFFFC6A4); + static const colorCoreOrange300 = Color(0xFFFFB180); + static const colorCoreOrange400 = Color(0xFFFF9C5D); + static const colorCoreOrange500 = Color(0xFFFC8943); + static const colorCoreOrange600 = Color(0xFFF57D33); + static const colorCoreOrange700 = Color(0xFFED7024); + static const colorCoreOrange800 = Color(0xFFCE5511); + static const colorCoreOrange900 = Color(0xFF962C0B); + static const colorCorePink0 = Color(0xFFFFE9F3); + static const colorCorePink100 = Color(0xFFFCDBEB); + static const colorCorePink1000 = Color(0xFF561231); + static const colorCorePink1100 = Color(0xFF2B1721); + static const colorCorePink200 = Color(0xFFFFB5D5); + static const colorCorePink300 = Color(0xFFFF95C1); + static const colorCorePink400 = Color(0xFFFF76AE); + static const colorCorePink500 = Color(0xFFEF588B); + static const colorCorePink600 = Color(0xFFE0447C); + static const colorCorePink700 = Color(0xFFCE3665); + static const colorCorePink800 = Color(0xFFB22F5B); + static const colorCorePink900 = Color(0xFF931847); + static const colorCorePurple0 = Color(0xFFF2F2F9); + static const colorCorePurple100 = Color(0xFFEAEAF9); + static const colorCorePurple1000 = Color(0xFF2D246B); + static const colorCorePurple1100 = Color(0xFF1D1D38); + static const colorCorePurple200 = Color(0xFFD8D7F9); + static const colorCorePurple300 = Color(0xFFC1C1F7); + static const colorCorePurple400 = Color(0xFFA193F2); + static const colorCorePurple500 = Color(0xFF9180F4); + static const colorCorePurple600 = Color(0xFF816FEA); + static const colorCorePurple700 = Color(0xFF6F5ED3); + static const colorCorePurple800 = Color(0xFF5E4EBA); + static const colorCorePurple900 = Color(0xFF483A9C); + static const colorCoreRed0 = Color(0xFFFFEAE9); + static const colorCoreRed100 = Color(0xFFFFD5D2); + static const colorCoreRed1000 = Color(0xFF6D1313); + static const colorCoreRed1100 = Color(0xFF2B1111); + static const colorCoreRed200 = Color(0xFFFFB8B1); + static const colorCoreRed300 = Color(0xFFFF9C8F); + static const colorCoreRed400 = Color(0xFFFF7F6E); + static const colorCoreRed500 = Color(0xFFF76054); + static const colorCoreRed600 = Color(0xFFED4C42); + static const colorCoreRed700 = Color(0xFFDB3E3E); + static const colorCoreRed800 = Color(0xFFC63434); + static const colorCoreRed900 = Color(0xFF992222); + static const colorCoreTeal0 = Color(0xFFE5F9F5); + static const colorCoreTeal100 = Color(0xFFCDF7EF); + static const colorCoreTeal1000 = Color(0xFF083F3F); + static const colorCoreTeal1100 = Color(0xFF002528); + static const colorCoreTeal200 = Color(0xFFB3F2E6); + static const colorCoreTeal300 = Color(0xFF7DEAD5); + static const colorCoreTeal400 = Color(0xFF24E0C5); + static const colorCoreTeal500 = Color(0xFF08C4B2); + static const colorCoreTeal600 = Color(0xFF00A99C); + static const colorCoreTeal700 = Color(0xFF0B968F); + static const colorCoreTeal800 = Color(0xFF067C7C); + static const colorCoreTeal900 = Color(0xFF026661); + static const colorCoreYellow0 = Color(0xFFFFF8E2); + static const colorCoreYellow100 = Color(0xFFFDEFCD); + static const colorCoreYellow1000 = Color(0xFF542A00); + static const colorCoreYellow1100 = Color(0xFF2D1A05); + static const colorCoreYellow200 = Color(0xFFFFE99A); + static const colorCoreYellow300 = Color(0xFFFFE16E); + static const colorCoreYellow400 = Color(0xFFFFD943); + static const colorCoreYellow500 = Color(0xFFFFCD1C); + static const colorCoreYellow600 = Color(0xFFFFBC00); + static const colorCoreYellow700 = Color(0xFFDD9903); + static const colorCoreYellow800 = Color(0xFFBA7506); + static const colorCoreYellow900 = Color(0xFF944C0C); + static const colorFontDanger = colorCoreRed1000; + static const colorFontInteractive = colorBrandPrimary; + static const colorFontInteractiveActive = colorBrandSecondary; + static const colorFontInteractiveDisabled = colorFontTertiary; + static const colorFontInteractiveHover = colorBrandPrimary; + static const colorFontPrimary = colorCoreNeutral1100; + static const colorFontSecondary = colorCoreNeutral900; + static const colorFontSuccess = colorCoreGreen1000; + static const colorFontTertiary = colorCoreNeutral800; + static const colorFontWarning = colorCoreOrange1000; + static const sizeBorderRadiusLarge = 480.00; + static const sizeFontLarge = 24.00; + static const sizeFontMedium = 16.00; + static const sizeFontSmall = 12.00; + static const sizeFontXl = 36.00; + static const sizePaddingLarge = 16.00; + static const sizePaddingMedium = 16.00; + static const sizePaddingSmall = 8.00; + static const sizePaddingXl = 16.00; +}" +`; diff --git a/__integration__/__snapshots__/scss.test.js.snap b/__integration__/__snapshots__/scss.test.js.snap new file mode 100644 index 000000000..9c3cc88b1 --- /dev/null +++ b/__integration__/__snapshots__/scss.test.js.snap @@ -0,0 +1,902 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`integration scss scss/map-deep should match snapshot 1`] = ` +" +/* + Do not edit directly + Generated on Sat, 01 Jan 2000 00:00:00 GMT +*/ + +$size-padding-xl: 1rem !default; +$size-padding-large: 1rem !default; +$size-padding-medium: 1rem !default; +$size-padding-small: 0.5rem !default; +$size-font-xl: 2.25rem !default; +$size-font-large: 1.5rem !default; +$size-font-medium: 1rem !default; +$size-font-small: 0.75rem !default; +$size-border-radius-large: 30rem !default; +$color-core-yellow-1100: #2d1a05 !default; +$color-core-yellow-1000: #542a00 !default; +$color-core-yellow-900: #944c0c !default; +$color-core-yellow-800: #ba7506 !default; +$color-core-yellow-700: #dd9903 !default; +$color-core-yellow-600: #ffbc00 !default; +$color-core-yellow-500: #ffcd1c !default; +$color-core-yellow-400: #ffd943 !default; +$color-core-yellow-300: #ffe16e !default; +$color-core-yellow-200: #ffe99a !default; +$color-core-yellow-100: #fdefcd !default; +$color-core-yellow-0: #fff8e2 !default; +$color-core-neutral-1100: #040404 !default; +$color-core-neutral-1000: #162020 !default; +$color-core-neutral-900: #273333 !default; +$color-core-neutral-800: #364141 !default; +$color-core-neutral-700: #515e5f !default; +$color-core-neutral-600: #6e797a !default; +$color-core-neutral-500: #929a9b !default; +$color-core-neutral-400: #b0b6b7 !default; +$color-core-neutral-300: #c8cccc !default; +$color-core-neutral-200: #dee1e1 !default; +$color-core-neutral-100: #f3f4f4 !default; +$color-core-neutral-0: #ffffff !default; +$color-core-orange-1100: #2d130e !default; +$color-core-orange-1000: #601700 !default; +$color-core-orange-900: #962c0b !default; +$color-core-orange-800: #ce5511 !default; +$color-core-orange-700: #ed7024 !default; +$color-core-orange-600: #f57d33 !default; +$color-core-orange-500: #fc8943 !default; +$color-core-orange-400: #ff9c5d !default; +$color-core-orange-300: #ffb180 !default; +$color-core-orange-200: #ffc6a4 !default; +$color-core-orange-100: #fcdccc !default; +$color-core-orange-0: #ffede3 !default; +$color-core-red-1100: #2b1111 !default; +$color-core-red-1000: #6d1313 !default; +$color-core-red-900: #992222 !default; +$color-core-red-800: #c63434 !default; +$color-core-red-700: #db3e3e !default; +$color-core-red-600: #ed4c42 !default; +$color-core-red-500: #f76054 !default; +$color-core-red-400: #ff7f6e !default; +$color-core-red-300: #ff9c8f !default; +$color-core-red-200: #ffb8b1 !default; +$color-core-red-100: #ffd5d2 !default; +$color-core-red-0: #ffeae9 !default; +$color-core-pink-1100: #2b1721 !default; +$color-core-pink-1000: #561231 !default; +$color-core-pink-900: #931847 !default; +$color-core-pink-800: #b22f5b !default; +$color-core-pink-700: #ce3665 !default; +$color-core-pink-600: #e0447c !default; +$color-core-pink-500: #ef588b !default; +$color-core-pink-400: #ff76ae !default; +$color-core-pink-300: #ff95c1 !default; +$color-core-pink-200: #ffb5d5 !default; +$color-core-pink-100: #fcdbeb !default; +$color-core-pink-0: #ffe9f3 !default; +$color-core-magenta-1100: #29192d !default; +$color-core-magenta-1000: #451551 !default; +$color-core-magenta-900: #6c2277 !default; +$color-core-magenta-800: #8f3896 !default; +$color-core-magenta-700: #ac44a8 !default; +$color-core-magenta-600: #c44eb9 !default; +$color-core-magenta-500: #db61db !default; +$color-core-magenta-400: #f282f5 !default; +$color-core-magenta-300: #edadf2 !default; +$color-core-magenta-200: #f4c4f7 !default; +$color-core-magenta-100: #f9e3fc !default; +$color-core-magenta-0: #fef0ff !default; +$color-core-purple-1100: #1d1d38 !default; +$color-core-purple-1000: #2d246b !default; +$color-core-purple-900: #483a9c !default; +$color-core-purple-800: #5e4eba !default; +$color-core-purple-700: #6f5ed3 !default; +$color-core-purple-600: #816fea !default; +$color-core-purple-500: #9180f4 !default; +$color-core-purple-400: #a193f2 !default; +$color-core-purple-300: #c1c1f7 !default; +$color-core-purple-200: #d8d7f9 !default; +$color-core-purple-100: #eaeaf9 !default; +$color-core-purple-0: #f2f2f9 !default; +$color-core-blue-1100: #002138 !default; +$color-core-blue-1000: #0a3960 !default; +$color-core-blue-900: #0c5689 !default; +$color-core-blue-800: #116daa !default; +$color-core-blue-700: #2079c3 !default; +$color-core-blue-600: #2b87d3 !default; +$color-core-blue-500: #3896e3 !default; +$color-core-blue-400: #56adf5 !default; +$color-core-blue-300: #a1d2f8 !default; +$color-core-blue-200: #c7e4f9 !default; +$color-core-blue-100: #dcf2ff !default; +$color-core-blue-0: #e9f8ff !default; +$color-core-aqua-1100: #002838 !default; +$color-core-aqua-1000: #083d4f !default; +$color-core-aqua-900: #035e73 !default; +$color-core-aqua-800: #0f6e84 !default; +$color-core-aqua-700: #0b8599 !default; +$color-core-aqua-600: #0797ae !default; +$color-core-aqua-500: #17b8ce !default; +$color-core-aqua-400: #33d6e2 !default; +$color-core-aqua-300: #76e5e2 !default; +$color-core-aqua-200: #a5f2f2 !default; +$color-core-aqua-100: #c5f9f9 !default; +$color-core-aqua-0: #d9fcfb !default; +$color-core-teal-1100: #002528 !default; +$color-core-teal-1000: #083f3f !default; +$color-core-teal-900: #026661 !default; +$color-core-teal-800: #067c7c !default; +$color-core-teal-700: #0b968f !default; +$color-core-teal-600: #00a99c !default; +$color-core-teal-500: #08c4b2 !default; +$color-core-teal-400: #24e0c5 !default; +$color-core-teal-300: #7dead5 !default; +$color-core-teal-200: #b3f2e6 !default; +$color-core-teal-100: #cdf7ef !default; +$color-core-teal-0: #e5f9f5 !default; +$color-core-green-1100: #002b20 !default; +$color-core-green-1000: #08422f !default; +$color-core-green-900: #006b40 !default; +$color-core-green-800: #008b46 !default; +$color-core-green-700: #0ca750 !default; +$color-core-green-600: #2bb656 !default; +$color-core-green-500: #59cb59 !default; +$color-core-green-400: #75dd66 !default; +$color-core-green-300: #98e58e !default; +$color-core-green-200: #c2f2bd !default; +$color-core-green-100: #d7f4d7 !default; +$color-core-green-0: #ebf9eb !default; +$color-background-primary: #ffffff !default; +$color-background-secondary: #f3f4f4 !default; +$color-background-tertiary: #dee1e1 !default; +$color-background-danger: #ffeae9 !default; +$color-background-warning: #ffede3 !default; +$color-background-success: #ebf9eb !default; +$color-background-info: #e9f8ff !default; +$color-background-disabled: #dee1e1 !default; +$color-border-primary: #c8cccc !default; +$color-brand-primary: #0b8599 !default; +$color-brand-secondary: #6f5ed3 !default; +$color-font-primary: #040404 !default; +$color-font-secondary: #273333 !default; +$color-font-tertiary: #364141 !default; +$color-font-interactive: #0b8599 !default; +$color-font-interactive-hover: #0b8599 !default; +$color-font-interactive-active: #6f5ed3 !default; +$color-font-interactive-disabled: #364141 !default; +$color-font-danger: #6d1313 !default; +$color-font-warning: #601700 !default; +$color-font-success: #08422f !default; + +$tokens: ( + 'color': ( + 'background': ( + 'primary': $color-background-primary, + 'secondary': $color-background-secondary, + 'tertiary': $color-background-tertiary, + 'danger': $color-background-danger, + 'warning': $color-background-warning, + 'success': $color-background-success, + 'info': $color-background-info, + 'disabled': $color-background-disabled + ), + 'border': ( + 'primary': $color-border-primary, + 'secondary': ( + + ), + 'tertiary': ( + + ) + ), + 'brand': ( + 'primary': $color-brand-primary, + 'secondary': $color-brand-secondary + ), + 'core': ( + 'green': ( + '0': $color-core-green-0, + '100': $color-core-green-100, + '200': $color-core-green-200, + '300': $color-core-green-300, + '400': $color-core-green-400, + '500': $color-core-green-500, + '600': $color-core-green-600, + '700': $color-core-green-700, + '800': $color-core-green-800, + '900': $color-core-green-900, + '1000': $color-core-green-1000, + '1100': $color-core-green-1100 + ), + 'teal': ( + '0': $color-core-teal-0, + '100': $color-core-teal-100, + '200': $color-core-teal-200, + '300': $color-core-teal-300, + '400': $color-core-teal-400, + '500': $color-core-teal-500, + '600': $color-core-teal-600, + '700': $color-core-teal-700, + '800': $color-core-teal-800, + '900': $color-core-teal-900, + '1000': $color-core-teal-1000, + '1100': $color-core-teal-1100 + ), + 'aqua': ( + '0': $color-core-aqua-0, + '100': $color-core-aqua-100, + '200': $color-core-aqua-200, + '300': $color-core-aqua-300, + '400': $color-core-aqua-400, + '500': $color-core-aqua-500, + '600': $color-core-aqua-600, + '700': $color-core-aqua-700, + '800': $color-core-aqua-800, + '900': $color-core-aqua-900, + '1000': $color-core-aqua-1000, + '1100': $color-core-aqua-1100 + ), + 'blue': ( + '0': $color-core-blue-0, + '100': $color-core-blue-100, + '200': $color-core-blue-200, + '300': $color-core-blue-300, + '400': $color-core-blue-400, + '500': $color-core-blue-500, + '600': $color-core-blue-600, + '700': $color-core-blue-700, + '800': $color-core-blue-800, + '900': $color-core-blue-900, + '1000': $color-core-blue-1000, + '1100': $color-core-blue-1100 + ), + 'purple': ( + '0': $color-core-purple-0, + '100': $color-core-purple-100, + '200': $color-core-purple-200, + '300': $color-core-purple-300, + '400': $color-core-purple-400, + '500': $color-core-purple-500, + '600': $color-core-purple-600, + '700': $color-core-purple-700, + '800': $color-core-purple-800, + '900': $color-core-purple-900, + '1000': $color-core-purple-1000, + '1100': $color-core-purple-1100 + ), + 'magenta': ( + '0': $color-core-magenta-0, + '100': $color-core-magenta-100, + '200': $color-core-magenta-200, + '300': $color-core-magenta-300, + '400': $color-core-magenta-400, + '500': $color-core-magenta-500, + '600': $color-core-magenta-600, + '700': $color-core-magenta-700, + '800': $color-core-magenta-800, + '900': $color-core-magenta-900, + '1000': $color-core-magenta-1000, + '1100': $color-core-magenta-1100 + ), + 'pink': ( + '0': $color-core-pink-0, + '100': $color-core-pink-100, + '200': $color-core-pink-200, + '300': $color-core-pink-300, + '400': $color-core-pink-400, + '500': $color-core-pink-500, + '600': $color-core-pink-600, + '700': $color-core-pink-700, + '800': $color-core-pink-800, + '900': $color-core-pink-900, + '1000': $color-core-pink-1000, + '1100': $color-core-pink-1100 + ), + 'red': ( + '0': $color-core-red-0, + '100': $color-core-red-100, + '200': $color-core-red-200, + '300': $color-core-red-300, + '400': $color-core-red-400, + '500': $color-core-red-500, + '600': $color-core-red-600, + '700': $color-core-red-700, + '800': $color-core-red-800, + '900': $color-core-red-900, + '1000': $color-core-red-1000, + '1100': $color-core-red-1100 + ), + 'orange': ( + '0': $color-core-orange-0, + '100': $color-core-orange-100, + '200': $color-core-orange-200, + '300': $color-core-orange-300, + '400': $color-core-orange-400, + '500': $color-core-orange-500, + '600': $color-core-orange-600, + '700': $color-core-orange-700, + '800': $color-core-orange-800, + '900': $color-core-orange-900, + '1000': $color-core-orange-1000, + '1100': $color-core-orange-1100 + ), + 'neutral': ( + '0': $color-core-neutral-0, + '100': $color-core-neutral-100, + '200': $color-core-neutral-200, + '300': $color-core-neutral-300, + '400': $color-core-neutral-400, + '500': $color-core-neutral-500, + '600': $color-core-neutral-600, + '700': $color-core-neutral-700, + '800': $color-core-neutral-800, + '900': $color-core-neutral-900, + '1000': $color-core-neutral-1000, + '1100': $color-core-neutral-1100 + ), + 'yellow': ( + '0': $color-core-yellow-0, + '100': $color-core-yellow-100, + '200': $color-core-yellow-200, + '300': $color-core-yellow-300, + '400': $color-core-yellow-400, + '500': $color-core-yellow-500, + '600': $color-core-yellow-600, + '700': $color-core-yellow-700, + '800': $color-core-yellow-800, + '900': $color-core-yellow-900, + '1000': $color-core-yellow-1000, + '1100': $color-core-yellow-1100 + ) + ), + 'font': ( + 'primary': $color-font-primary, + 'secondary': $color-font-secondary, + 'tertiary': $color-font-tertiary, + 'interactive': ( + '_': $color-font-interactive, + 'hover': $color-font-interactive-hover, + 'active': $color-font-interactive-active, + 'disabled': $color-font-interactive-disabled + ), + 'danger': $color-font-danger, + 'warning': $color-font-warning, + 'success': $color-font-success + ) + ), + 'size': ( + 'border': ( + 'radius': ( + 'large': $size-border-radius-large + ) + ), + 'font': ( + 'small': $size-font-small, + 'medium': $size-font-medium, + 'large': $size-font-large, + 'xl': $size-font-xl + ), + 'padding': ( + 'small': $size-padding-small, + 'medium': $size-padding-medium, + 'large': $size-padding-large, + 'xl': $size-padding-xl + ) + ) +); +" +`; + +exports[`integration scss scss/map-flat should match snapshot 1`] = ` +" +/* + Do not edit directly + Generated on Sat, 01 Jan 2000 00:00:00 GMT +*/ + +$tokens: ( + 'size-padding-xl': 1rem, + 'size-padding-large': 1rem, + 'size-padding-medium': 1rem, + 'size-padding-small': 0.5rem, + 'size-font-xl': 2.25rem, + 'size-font-large': 1.5rem, + 'size-font-medium': 1rem, + 'size-font-small': 0.75rem, + 'size-border-radius-large': 30rem, + 'color-core-yellow-1100': #2d1a05, + 'color-core-yellow-1000': #542a00, + 'color-core-yellow-900': #944c0c, + 'color-core-yellow-800': #ba7506, + 'color-core-yellow-700': #dd9903, + 'color-core-yellow-600': #ffbc00, + 'color-core-yellow-500': #ffcd1c, + 'color-core-yellow-400': #ffd943, + 'color-core-yellow-300': #ffe16e, + 'color-core-yellow-200': #ffe99a, + 'color-core-yellow-100': #fdefcd, + 'color-core-yellow-0': #fff8e2, + 'color-core-neutral-1100': #040404, + 'color-core-neutral-1000': #162020, + 'color-core-neutral-900': #273333, + 'color-core-neutral-800': #364141, + 'color-core-neutral-700': #515e5f, + 'color-core-neutral-600': #6e797a, + 'color-core-neutral-500': #929a9b, + 'color-core-neutral-400': #b0b6b7, + 'color-core-neutral-300': #c8cccc, + 'color-core-neutral-200': #dee1e1, + 'color-core-neutral-100': #f3f4f4, + 'color-core-neutral-0': #ffffff, + 'color-core-orange-1100': #2d130e, + 'color-core-orange-1000': #601700, + 'color-core-orange-900': #962c0b, + 'color-core-orange-800': #ce5511, + 'color-core-orange-700': #ed7024, + 'color-core-orange-600': #f57d33, + 'color-core-orange-500': #fc8943, + 'color-core-orange-400': #ff9c5d, + 'color-core-orange-300': #ffb180, + 'color-core-orange-200': #ffc6a4, + 'color-core-orange-100': #fcdccc, + 'color-core-orange-0': #ffede3, + 'color-core-red-1100': #2b1111, + 'color-core-red-1000': #6d1313, + 'color-core-red-900': #992222, + 'color-core-red-800': #c63434, + 'color-core-red-700': #db3e3e, + 'color-core-red-600': #ed4c42, + 'color-core-red-500': #f76054, + 'color-core-red-400': #ff7f6e, + 'color-core-red-300': #ff9c8f, + 'color-core-red-200': #ffb8b1, + 'color-core-red-100': #ffd5d2, + 'color-core-red-0': #ffeae9, + 'color-core-pink-1100': #2b1721, + 'color-core-pink-1000': #561231, + 'color-core-pink-900': #931847, + 'color-core-pink-800': #b22f5b, + 'color-core-pink-700': #ce3665, + 'color-core-pink-600': #e0447c, + 'color-core-pink-500': #ef588b, + 'color-core-pink-400': #ff76ae, + 'color-core-pink-300': #ff95c1, + 'color-core-pink-200': #ffb5d5, + 'color-core-pink-100': #fcdbeb, + 'color-core-pink-0': #ffe9f3, + 'color-core-magenta-1100': #29192d, + 'color-core-magenta-1000': #451551, + 'color-core-magenta-900': #6c2277, + 'color-core-magenta-800': #8f3896, + 'color-core-magenta-700': #ac44a8, + 'color-core-magenta-600': #c44eb9, + 'color-core-magenta-500': #db61db, + 'color-core-magenta-400': #f282f5, + 'color-core-magenta-300': #edadf2, + 'color-core-magenta-200': #f4c4f7, + 'color-core-magenta-100': #f9e3fc, + 'color-core-magenta-0': #fef0ff, + 'color-core-purple-1100': #1d1d38, + 'color-core-purple-1000': #2d246b, + 'color-core-purple-900': #483a9c, + 'color-core-purple-800': #5e4eba, + 'color-core-purple-700': #6f5ed3, + 'color-core-purple-600': #816fea, + 'color-core-purple-500': #9180f4, + 'color-core-purple-400': #a193f2, + 'color-core-purple-300': #c1c1f7, + 'color-core-purple-200': #d8d7f9, + 'color-core-purple-100': #eaeaf9, + 'color-core-purple-0': #f2f2f9, + 'color-core-blue-1100': #002138, + 'color-core-blue-1000': #0a3960, + 'color-core-blue-900': #0c5689, + 'color-core-blue-800': #116daa, + 'color-core-blue-700': #2079c3, + 'color-core-blue-600': #2b87d3, + 'color-core-blue-500': #3896e3, + 'color-core-blue-400': #56adf5, + 'color-core-blue-300': #a1d2f8, + 'color-core-blue-200': #c7e4f9, + 'color-core-blue-100': #dcf2ff, + 'color-core-blue-0': #e9f8ff, + 'color-core-aqua-1100': #002838, + 'color-core-aqua-1000': #083d4f, + 'color-core-aqua-900': #035e73, + 'color-core-aqua-800': #0f6e84, + 'color-core-aqua-700': #0b8599, + 'color-core-aqua-600': #0797ae, + 'color-core-aqua-500': #17b8ce, + 'color-core-aqua-400': #33d6e2, + 'color-core-aqua-300': #76e5e2, + 'color-core-aqua-200': #a5f2f2, + 'color-core-aqua-100': #c5f9f9, + 'color-core-aqua-0': #d9fcfb, + 'color-core-teal-1100': #002528, + 'color-core-teal-1000': #083f3f, + 'color-core-teal-900': #026661, + 'color-core-teal-800': #067c7c, + 'color-core-teal-700': #0b968f, + 'color-core-teal-600': #00a99c, + 'color-core-teal-500': #08c4b2, + 'color-core-teal-400': #24e0c5, + 'color-core-teal-300': #7dead5, + 'color-core-teal-200': #b3f2e6, + 'color-core-teal-100': #cdf7ef, + 'color-core-teal-0': #e5f9f5, + 'color-core-green-1100': #002b20, + 'color-core-green-1000': #08422f, + 'color-core-green-900': #006b40, + 'color-core-green-800': #008b46, + 'color-core-green-700': #0ca750, + 'color-core-green-600': #2bb656, + 'color-core-green-500': #59cb59, + 'color-core-green-400': #75dd66, + 'color-core-green-300': #98e58e, + 'color-core-green-200': #c2f2bd, + 'color-core-green-100': #d7f4d7, + 'color-core-green-0': #ebf9eb, + 'color-background-primary': #ffffff, + 'color-background-secondary': #f3f4f4, + 'color-background-tertiary': #dee1e1, + 'color-background-danger': #ffeae9, + 'color-background-warning': #ffede3, + 'color-background-success': #ebf9eb, + 'color-background-info': #e9f8ff, + 'color-background-disabled': #dee1e1, + 'color-border-primary': #c8cccc, + 'color-brand-primary': #0b8599, + 'color-brand-secondary': #6f5ed3, + 'color-font-primary': #040404, + 'color-font-secondary': #273333, + 'color-font-tertiary': #364141, + 'color-font-interactive': #0b8599, + 'color-font-interactive-hover': #0b8599, + 'color-font-interactive-active': #6f5ed3, + 'color-font-interactive-disabled': #364141, + 'color-font-danger': #6d1313, + 'color-font-warning': #601700, + 'color-font-success': #08422f +); +" +`; + +exports[`integration scss scss/variables should match snapshot 1`] = ` +" +// Do not edit directly +// Generated on Sat, 01 Jan 2000 00:00:00 GMT + +$color-background-primary: #ffffff !default; +$color-background-secondary: #f3f4f4; +$color-background-tertiary: #dee1e1; +$color-background-danger: #ffeae9; +$color-background-warning: #ffede3; +$color-background-success: #ebf9eb; +$color-background-info: #e9f8ff; +$color-background-disabled: #dee1e1; +$color-border-primary: #c8cccc; +$color-brand-primary: #0b8599; +$color-brand-secondary: #6f5ed3; +$color-core-green-0: #ebf9eb; +$color-core-green-100: #d7f4d7; +$color-core-green-200: #c2f2bd; +$color-core-green-300: #98e58e; +$color-core-green-400: #75dd66; +$color-core-green-500: #59cb59; +$color-core-green-600: #2bb656; +$color-core-green-700: #0ca750; +$color-core-green-800: #008b46; +$color-core-green-900: #006b40; +$color-core-green-1000: #08422f; +$color-core-green-1100: #002b20; +$color-core-teal-0: #e5f9f5; +$color-core-teal-100: #cdf7ef; +$color-core-teal-200: #b3f2e6; +$color-core-teal-300: #7dead5; +$color-core-teal-400: #24e0c5; +$color-core-teal-500: #08c4b2; +$color-core-teal-600: #00a99c; +$color-core-teal-700: #0b968f; +$color-core-teal-800: #067c7c; +$color-core-teal-900: #026661; +$color-core-teal-1000: #083f3f; +$color-core-teal-1100: #002528; +$color-core-aqua-0: #d9fcfb; +$color-core-aqua-100: #c5f9f9; +$color-core-aqua-200: #a5f2f2; +$color-core-aqua-300: #76e5e2; +$color-core-aqua-400: #33d6e2; +$color-core-aqua-500: #17b8ce; +$color-core-aqua-600: #0797ae; +$color-core-aqua-700: #0b8599; +$color-core-aqua-800: #0f6e84; +$color-core-aqua-900: #035e73; +$color-core-aqua-1000: #083d4f; +$color-core-aqua-1100: #002838; +$color-core-blue-0: #e9f8ff; +$color-core-blue-100: #dcf2ff; +$color-core-blue-200: #c7e4f9; +$color-core-blue-300: #a1d2f8; +$color-core-blue-400: #56adf5; +$color-core-blue-500: #3896e3; +$color-core-blue-600: #2b87d3; +$color-core-blue-700: #2079c3; +$color-core-blue-800: #116daa; +$color-core-blue-900: #0c5689; +$color-core-blue-1000: #0a3960; +$color-core-blue-1100: #002138; +$color-core-purple-0: #f2f2f9; +$color-core-purple-100: #eaeaf9; +$color-core-purple-200: #d8d7f9; +$color-core-purple-300: #c1c1f7; +$color-core-purple-400: #a193f2; +$color-core-purple-500: #9180f4; +$color-core-purple-600: #816fea; +$color-core-purple-700: #6f5ed3; +$color-core-purple-800: #5e4eba; +$color-core-purple-900: #483a9c; +$color-core-purple-1000: #2d246b; +$color-core-purple-1100: #1d1d38; +$color-core-magenta-0: #fef0ff; +$color-core-magenta-100: #f9e3fc; +$color-core-magenta-200: #f4c4f7; +$color-core-magenta-300: #edadf2; +$color-core-magenta-400: #f282f5; +$color-core-magenta-500: #db61db; +$color-core-magenta-600: #c44eb9; +$color-core-magenta-700: #ac44a8; +$color-core-magenta-800: #8f3896; +$color-core-magenta-900: #6c2277; +$color-core-magenta-1000: #451551; +$color-core-magenta-1100: #29192d; +$color-core-pink-0: #ffe9f3; +$color-core-pink-100: #fcdbeb; +$color-core-pink-200: #ffb5d5; +$color-core-pink-300: #ff95c1; +$color-core-pink-400: #ff76ae; +$color-core-pink-500: #ef588b; +$color-core-pink-600: #e0447c; +$color-core-pink-700: #ce3665; +$color-core-pink-800: #b22f5b; +$color-core-pink-900: #931847; +$color-core-pink-1000: #561231; +$color-core-pink-1100: #2b1721; +$color-core-red-0: #ffeae9; +$color-core-red-100: #ffd5d2; +$color-core-red-200: #ffb8b1; +$color-core-red-300: #ff9c8f; +$color-core-red-400: #ff7f6e; +$color-core-red-500: #f76054; +$color-core-red-600: #ed4c42; +$color-core-red-700: #db3e3e; +$color-core-red-800: #c63434; +$color-core-red-900: #992222; +$color-core-red-1000: #6d1313; +$color-core-red-1100: #2b1111; +$color-core-orange-0: #ffede3; +$color-core-orange-100: #fcdccc; +$color-core-orange-200: #ffc6a4; +$color-core-orange-300: #ffb180; +$color-core-orange-400: #ff9c5d; +$color-core-orange-500: #fc8943; +$color-core-orange-600: #f57d33; +$color-core-orange-700: #ed7024; +$color-core-orange-800: #ce5511; +$color-core-orange-900: #962c0b; +$color-core-orange-1000: #601700; +$color-core-orange-1100: #2d130e; +$color-core-neutral-0: #ffffff; +$color-core-neutral-100: #f3f4f4; +$color-core-neutral-200: #dee1e1; +$color-core-neutral-300: #c8cccc; +$color-core-neutral-400: #b0b6b7; +$color-core-neutral-500: #929a9b; +$color-core-neutral-600: #6e797a; +$color-core-neutral-700: #515e5f; +$color-core-neutral-800: #364141; +$color-core-neutral-900: #273333; +$color-core-neutral-1000: #162020; +$color-core-neutral-1100: #040404; +$color-core-yellow-0: #fff8e2; +$color-core-yellow-100: #fdefcd; +$color-core-yellow-200: #ffe99a; +$color-core-yellow-300: #ffe16e; +$color-core-yellow-400: #ffd943; +$color-core-yellow-500: #ffcd1c; +$color-core-yellow-600: #ffbc00; +$color-core-yellow-700: #dd9903; +$color-core-yellow-800: #ba7506; +$color-core-yellow-900: #944c0c; +$color-core-yellow-1000: #542a00; +$color-core-yellow-1100: #2d1a05; +$color-font-primary: #040404; +$color-font-secondary: #273333; +$color-font-tertiary: #364141; +$color-font-interactive: #0b8599; +$color-font-interactive-hover: #0b8599; +$color-font-interactive-active: #6f5ed3; +$color-font-interactive-disabled: #364141; +$color-font-danger: #6d1313; +$color-font-warning: #601700; +$color-font-success: #08422f; +$size-border-radius-large: 30rem; +$size-font-small: 0.75rem; +$size-font-medium: 1rem; +$size-font-large: 1.5rem; +$size-font-xl: 2.25rem; +$size-padding-small: 0.5rem; +$size-padding-medium: 1rem; +$size-padding-large: 1rem; +$size-padding-xl: 1rem;" +`; + +exports[`integration scss scss/variables with outputReferences should match snapshot 1`] = ` +" +// Do not edit directly +// Generated on Sat, 01 Jan 2000 00:00:00 GMT + +$size-padding-xl: 1rem; +$size-padding-large: 1rem; +$size-padding-medium: 1rem; +$size-padding-small: 0.5rem; +$size-font-xl: 2.25rem; +$size-font-large: 1.5rem; +$size-font-medium: 1rem; +$size-font-small: 0.75rem; +$size-border-radius-large: 30rem; +$color-core-yellow-1100: #2d1a05; +$color-core-yellow-1000: #542a00; +$color-core-yellow-900: #944c0c; +$color-core-yellow-800: #ba7506; +$color-core-yellow-700: #dd9903; +$color-core-yellow-600: #ffbc00; +$color-core-yellow-500: #ffcd1c; +$color-core-yellow-400: #ffd943; +$color-core-yellow-300: #ffe16e; +$color-core-yellow-200: #ffe99a; +$color-core-yellow-100: #fdefcd; +$color-core-yellow-0: #fff8e2; +$color-core-neutral-1100: #040404; +$color-core-neutral-1000: #162020; +$color-core-neutral-900: #273333; +$color-core-neutral-800: #364141; +$color-core-neutral-700: #515e5f; +$color-core-neutral-600: #6e797a; +$color-core-neutral-500: #929a9b; +$color-core-neutral-400: #b0b6b7; +$color-core-neutral-300: #c8cccc; +$color-core-neutral-200: #dee1e1; +$color-core-neutral-100: #f3f4f4; +$color-core-neutral-0: #ffffff; +$color-core-orange-1100: #2d130e; +$color-core-orange-1000: #601700; +$color-core-orange-900: #962c0b; +$color-core-orange-800: #ce5511; +$color-core-orange-700: #ed7024; +$color-core-orange-600: #f57d33; +$color-core-orange-500: #fc8943; +$color-core-orange-400: #ff9c5d; +$color-core-orange-300: #ffb180; +$color-core-orange-200: #ffc6a4; +$color-core-orange-100: #fcdccc; +$color-core-orange-0: #ffede3; +$color-core-red-1100: #2b1111; +$color-core-red-1000: #6d1313; +$color-core-red-900: #992222; +$color-core-red-800: #c63434; +$color-core-red-700: #db3e3e; +$color-core-red-600: #ed4c42; +$color-core-red-500: #f76054; +$color-core-red-400: #ff7f6e; +$color-core-red-300: #ff9c8f; +$color-core-red-200: #ffb8b1; +$color-core-red-100: #ffd5d2; +$color-core-red-0: #ffeae9; +$color-core-pink-1100: #2b1721; +$color-core-pink-1000: #561231; +$color-core-pink-900: #931847; +$color-core-pink-800: #b22f5b; +$color-core-pink-700: #ce3665; +$color-core-pink-600: #e0447c; +$color-core-pink-500: #ef588b; +$color-core-pink-400: #ff76ae; +$color-core-pink-300: #ff95c1; +$color-core-pink-200: #ffb5d5; +$color-core-pink-100: #fcdbeb; +$color-core-pink-0: #ffe9f3; +$color-core-magenta-1100: #29192d; +$color-core-magenta-1000: #451551; +$color-core-magenta-900: #6c2277; +$color-core-magenta-800: #8f3896; +$color-core-magenta-700: #ac44a8; +$color-core-magenta-600: #c44eb9; +$color-core-magenta-500: #db61db; +$color-core-magenta-400: #f282f5; +$color-core-magenta-300: #edadf2; +$color-core-magenta-200: #f4c4f7; +$color-core-magenta-100: #f9e3fc; +$color-core-magenta-0: #fef0ff; +$color-core-purple-1100: #1d1d38; +$color-core-purple-1000: #2d246b; +$color-core-purple-900: #483a9c; +$color-core-purple-800: #5e4eba; +$color-core-purple-700: #6f5ed3; +$color-core-purple-600: #816fea; +$color-core-purple-500: #9180f4; +$color-core-purple-400: #a193f2; +$color-core-purple-300: #c1c1f7; +$color-core-purple-200: #d8d7f9; +$color-core-purple-100: #eaeaf9; +$color-core-purple-0: #f2f2f9; +$color-core-blue-1100: #002138; +$color-core-blue-1000: #0a3960; +$color-core-blue-900: #0c5689; +$color-core-blue-800: #116daa; +$color-core-blue-700: #2079c3; +$color-core-blue-600: #2b87d3; +$color-core-blue-500: #3896e3; +$color-core-blue-400: #56adf5; +$color-core-blue-300: #a1d2f8; +$color-core-blue-200: #c7e4f9; +$color-core-blue-100: #dcf2ff; +$color-core-blue-0: #e9f8ff; +$color-core-aqua-1100: #002838; +$color-core-aqua-1000: #083d4f; +$color-core-aqua-900: #035e73; +$color-core-aqua-800: #0f6e84; +$color-core-aqua-700: #0b8599; +$color-core-aqua-600: #0797ae; +$color-core-aqua-500: #17b8ce; +$color-core-aqua-400: #33d6e2; +$color-core-aqua-300: #76e5e2; +$color-core-aqua-200: #a5f2f2; +$color-core-aqua-100: #c5f9f9; +$color-core-aqua-0: #d9fcfb; +$color-core-teal-1100: #002528; +$color-core-teal-1000: #083f3f; +$color-core-teal-900: #026661; +$color-core-teal-800: #067c7c; +$color-core-teal-700: #0b968f; +$color-core-teal-600: #00a99c; +$color-core-teal-500: #08c4b2; +$color-core-teal-400: #24e0c5; +$color-core-teal-300: #7dead5; +$color-core-teal-200: #b3f2e6; +$color-core-teal-100: #cdf7ef; +$color-core-teal-0: #e5f9f5; +$color-core-green-1100: #002b20; +$color-core-green-1000: #08422f; +$color-core-green-900: #006b40; +$color-core-green-800: #008b46; +$color-core-green-700: #0ca750; +$color-core-green-600: #2bb656; +$color-core-green-500: #59cb59; +$color-core-green-400: #75dd66; +$color-core-green-300: #98e58e; +$color-core-green-200: #c2f2bd; +$color-core-green-100: #d7f4d7; +$color-core-green-0: #ebf9eb; +$color-background-primary: $color-core-neutral-0 !default; +$color-background-secondary: $color-core-neutral-100; +$color-background-tertiary: $color-core-neutral-200; +$color-background-danger: $color-core-red-0; +$color-background-warning: $color-core-orange-0; +$color-background-success: $color-core-green-0; +$color-background-info: $color-core-blue-0; +$color-background-disabled: $color-background-tertiary; +$color-border-primary: $color-core-neutral-300; +$color-brand-primary: $color-core-aqua-700; +$color-brand-secondary: $color-core-purple-700; +$color-font-primary: $color-core-neutral-1100; +$color-font-secondary: $color-core-neutral-900; +$color-font-tertiary: $color-core-neutral-800; +$color-font-interactive: $color-brand-primary; +$color-font-interactive-hover: $color-brand-primary; +$color-font-interactive-active: $color-brand-secondary; +$color-font-interactive-disabled: $color-font-tertiary; +$color-font-danger: $color-core-red-1000; +$color-font-warning: $color-core-orange-1000; +$color-font-success: $color-core-green-1000;" +`; diff --git a/__integration__/__snapshots__/showFileHeader.test.js.snap b/__integration__/__snapshots__/showFileHeader.test.js.snap new file mode 100644 index 000000000..9a1173c45 --- /dev/null +++ b/__integration__/__snapshots__/showFileHeader.test.js.snap @@ -0,0 +1,51 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`integration showFileHeader with platform options set to false should not show file header if no file options set 1`] = ` +":root { + --size-padding-small: 0.5rem; + --size-padding-medium: 1rem; + --size-padding-large: 1rem; + --size-padding-xl: 1rem; +} +" +`; + +exports[`integration showFileHeader with platform options set to false should show file header if file options set to true 1`] = ` +"/** + * Do not edit directly + * Generated on Sat, 01 Jan 2000 00:00:00 GMT + */ + +:root { + --size-padding-small: 0.5rem; + --size-padding-medium: 1rem; + --size-padding-large: 1rem; + --size-padding-xl: 1rem; +} +" +`; + +exports[`integration showFileHeader without platform options should not show file header if file options set to false 1`] = ` +":root { + --size-padding-small: 0.5rem; + --size-padding-medium: 1rem; + --size-padding-large: 1rem; + --size-padding-xl: 1rem; +} +" +`; + +exports[`integration showFileHeader without platform options should show file header if no file options set 1`] = ` +"/** + * Do not edit directly + * Generated on Sat, 01 Jan 2000 00:00:00 GMT + */ + +:root { + --size-padding-small: 0.5rem; + --size-padding-medium: 1rem; + --size-padding-large: 1rem; + --size-padding-xl: 1rem; +} +" +`; diff --git a/__integration__/__snapshots__/swift.test.js.snap b/__integration__/__snapshots__/swift.test.js.snap new file mode 100644 index 000000000..85e11127a --- /dev/null +++ b/__integration__/__snapshots__/swift.test.js.snap @@ -0,0 +1,359 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`integration swift ios-swift/class.swift should match snapshot 1`] = ` +" +// +// style_dictionary.swift +// +// Do not edit directly +// Generated on Sat, 01 Jan 2000 00:00:00 GMT +// + + +import UIKit + +public class StyleDictionary { + public static let colorBackgroundDanger = UIColor(red: 1.000, green: 0.918, blue: 0.914, alpha:1) + public static let colorBackgroundDisabled = UIColor(red: 0.871, green: 0.882, blue: 0.882, alpha:1) + public static let colorBackgroundInfo = UIColor(red: 0.914, green: 0.973, blue: 1.000, alpha:1) + public static let colorBackgroundPrimary = UIColor(red: 1.000, green: 1.000, blue: 1.000, alpha:1) + public static let colorBackgroundSecondary = UIColor(red: 0.953, green: 0.957, blue: 0.957, alpha:1) + public static let colorBackgroundSuccess = UIColor(red: 0.922, green: 0.976, blue: 0.922, alpha:1) + public static let colorBackgroundTertiary = UIColor(red: 0.871, green: 0.882, blue: 0.882, alpha:1) + public static let colorBackgroundWarning = UIColor(red: 1.000, green: 0.929, blue: 0.890, alpha:1) + public static let colorBorderPrimary = UIColor(red: 0.784, green: 0.800, blue: 0.800, alpha:1) + public static let colorBrandPrimary = UIColor(red: 0.043, green: 0.522, blue: 0.600, alpha:1) + public static let colorBrandSecondary = UIColor(red: 0.435, green: 0.369, blue: 0.827, alpha:1) + public static let colorCoreAqua0 = UIColor(red: 0.851, green: 0.988, blue: 0.984, alpha:1) + public static let colorCoreAqua100 = UIColor(red: 0.773, green: 0.976, blue: 0.976, alpha:1) + public static let colorCoreAqua1000 = UIColor(red: 0.031, green: 0.239, blue: 0.310, alpha:1) + public static let colorCoreAqua1100 = UIColor(red: 0.000, green: 0.157, blue: 0.220, alpha:1) + public static let colorCoreAqua200 = UIColor(red: 0.647, green: 0.949, blue: 0.949, alpha:1) + public static let colorCoreAqua300 = UIColor(red: 0.463, green: 0.898, blue: 0.886, alpha:1) + public static let colorCoreAqua400 = UIColor(red: 0.200, green: 0.839, blue: 0.886, alpha:1) + public static let colorCoreAqua500 = UIColor(red: 0.090, green: 0.722, blue: 0.808, alpha:1) + public static let colorCoreAqua600 = UIColor(red: 0.027, green: 0.592, blue: 0.682, alpha:1) + public static let colorCoreAqua700 = UIColor(red: 0.043, green: 0.522, blue: 0.600, alpha:1) + public static let colorCoreAqua800 = UIColor(red: 0.059, green: 0.431, blue: 0.518, alpha:1) + public static let colorCoreAqua900 = UIColor(red: 0.012, green: 0.369, blue: 0.451, alpha:1) + public static let colorCoreBlue0 = UIColor(red: 0.914, green: 0.973, blue: 1.000, alpha:1) + public static let colorCoreBlue100 = UIColor(red: 0.863, green: 0.949, blue: 1.000, alpha:1) + public static let colorCoreBlue1000 = UIColor(red: 0.039, green: 0.224, blue: 0.376, alpha:1) + public static let colorCoreBlue1100 = UIColor(red: 0.000, green: 0.129, blue: 0.220, alpha:1) + public static let colorCoreBlue200 = UIColor(red: 0.780, green: 0.894, blue: 0.976, alpha:1) + public static let colorCoreBlue300 = UIColor(red: 0.631, green: 0.824, blue: 0.973, alpha:1) + public static let colorCoreBlue400 = UIColor(red: 0.337, green: 0.678, blue: 0.961, alpha:1) + public static let colorCoreBlue500 = UIColor(red: 0.220, green: 0.588, blue: 0.890, alpha:1) + public static let colorCoreBlue600 = UIColor(red: 0.169, green: 0.529, blue: 0.827, alpha:1) + public static let colorCoreBlue700 = UIColor(red: 0.125, green: 0.475, blue: 0.765, alpha:1) + public static let colorCoreBlue800 = UIColor(red: 0.067, green: 0.427, blue: 0.667, alpha:1) + public static let colorCoreBlue900 = UIColor(red: 0.047, green: 0.337, blue: 0.537, alpha:1) + public static let colorCoreGreen0 = UIColor(red: 0.922, green: 0.976, blue: 0.922, alpha:1) + public static let colorCoreGreen100 = UIColor(red: 0.843, green: 0.957, blue: 0.843, alpha:1) + public static let colorCoreGreen1000 = UIColor(red: 0.031, green: 0.259, blue: 0.184, alpha:1) + public static let colorCoreGreen1100 = UIColor(red: 0.000, green: 0.169, blue: 0.125, alpha:1) + public static let colorCoreGreen200 = UIColor(red: 0.761, green: 0.949, blue: 0.741, alpha:1) + public static let colorCoreGreen300 = UIColor(red: 0.596, green: 0.898, blue: 0.557, alpha:1) + public static let colorCoreGreen400 = UIColor(red: 0.459, green: 0.867, blue: 0.400, alpha:1) + public static let colorCoreGreen500 = UIColor(red: 0.349, green: 0.796, blue: 0.349, alpha:1) + public static let colorCoreGreen600 = UIColor(red: 0.169, green: 0.714, blue: 0.337, alpha:1) + public static let colorCoreGreen700 = UIColor(red: 0.047, green: 0.655, blue: 0.314, alpha:1) + public static let colorCoreGreen800 = UIColor(red: 0.000, green: 0.545, blue: 0.275, alpha:1) + public static let colorCoreGreen900 = UIColor(red: 0.000, green: 0.420, blue: 0.251, alpha:1) + public static let colorCoreMagenta0 = UIColor(red: 0.996, green: 0.941, blue: 1.000, alpha:1) + public static let colorCoreMagenta100 = UIColor(red: 0.976, green: 0.890, blue: 0.988, alpha:1) + public static let colorCoreMagenta1000 = UIColor(red: 0.271, green: 0.082, blue: 0.318, alpha:1) + public static let colorCoreMagenta1100 = UIColor(red: 0.161, green: 0.098, blue: 0.176, alpha:1) + public static let colorCoreMagenta200 = UIColor(red: 0.957, green: 0.769, blue: 0.969, alpha:1) + public static let colorCoreMagenta300 = UIColor(red: 0.929, green: 0.678, blue: 0.949, alpha:1) + public static let colorCoreMagenta400 = UIColor(red: 0.949, green: 0.510, blue: 0.961, alpha:1) + public static let colorCoreMagenta500 = UIColor(red: 0.859, green: 0.380, blue: 0.859, alpha:1) + public static let colorCoreMagenta600 = UIColor(red: 0.769, green: 0.306, blue: 0.725, alpha:1) + public static let colorCoreMagenta700 = UIColor(red: 0.675, green: 0.267, blue: 0.659, alpha:1) + public static let colorCoreMagenta800 = UIColor(red: 0.561, green: 0.220, blue: 0.588, alpha:1) + public static let colorCoreMagenta900 = UIColor(red: 0.424, green: 0.133, blue: 0.467, alpha:1) + public static let colorCoreNeutral0 = UIColor(red: 1.000, green: 1.000, blue: 1.000, alpha:1) + public static let colorCoreNeutral100 = UIColor(red: 0.953, green: 0.957, blue: 0.957, alpha:1) + public static let colorCoreNeutral1000 = UIColor(red: 0.086, green: 0.125, blue: 0.125, alpha:1) + public static let colorCoreNeutral1100 = UIColor(red: 0.016, green: 0.016, blue: 0.016, alpha:1) + public static let colorCoreNeutral200 = UIColor(red: 0.871, green: 0.882, blue: 0.882, alpha:1) + public static let colorCoreNeutral300 = UIColor(red: 0.784, green: 0.800, blue: 0.800, alpha:1) + public static let colorCoreNeutral400 = UIColor(red: 0.690, green: 0.714, blue: 0.718, alpha:1) + public static let colorCoreNeutral500 = UIColor(red: 0.573, green: 0.604, blue: 0.608, alpha:1) + public static let colorCoreNeutral600 = UIColor(red: 0.431, green: 0.475, blue: 0.478, alpha:1) + public static let colorCoreNeutral700 = UIColor(red: 0.318, green: 0.369, blue: 0.373, alpha:1) + public static let colorCoreNeutral800 = UIColor(red: 0.212, green: 0.255, blue: 0.255, alpha:1) + public static let colorCoreNeutral900 = UIColor(red: 0.153, green: 0.200, blue: 0.200, alpha:1) + public static let colorCoreOrange0 = UIColor(red: 1.000, green: 0.929, blue: 0.890, alpha:1) + public static let colorCoreOrange100 = UIColor(red: 0.988, green: 0.863, blue: 0.800, alpha:1) + public static let colorCoreOrange1000 = UIColor(red: 0.376, green: 0.090, blue: 0.000, alpha:1) + public static let colorCoreOrange1100 = UIColor(red: 0.176, green: 0.075, blue: 0.055, alpha:1) + public static let colorCoreOrange200 = UIColor(red: 1.000, green: 0.776, blue: 0.643, alpha:1) + public static let colorCoreOrange300 = UIColor(red: 1.000, green: 0.694, blue: 0.502, alpha:1) + public static let colorCoreOrange400 = UIColor(red: 1.000, green: 0.612, blue: 0.365, alpha:1) + public static let colorCoreOrange500 = UIColor(red: 0.988, green: 0.537, blue: 0.263, alpha:1) + public static let colorCoreOrange600 = UIColor(red: 0.961, green: 0.490, blue: 0.200, alpha:1) + public static let colorCoreOrange700 = UIColor(red: 0.929, green: 0.439, blue: 0.141, alpha:1) + public static let colorCoreOrange800 = UIColor(red: 0.808, green: 0.333, blue: 0.067, alpha:1) + public static let colorCoreOrange900 = UIColor(red: 0.588, green: 0.173, blue: 0.043, alpha:1) + public static let colorCorePink0 = UIColor(red: 1.000, green: 0.914, blue: 0.953, alpha:1) + public static let colorCorePink100 = UIColor(red: 0.988, green: 0.859, blue: 0.922, alpha:1) + public static let colorCorePink1000 = UIColor(red: 0.337, green: 0.071, blue: 0.192, alpha:1) + public static let colorCorePink1100 = UIColor(red: 0.169, green: 0.090, blue: 0.129, alpha:1) + public static let colorCorePink200 = UIColor(red: 1.000, green: 0.710, blue: 0.835, alpha:1) + public static let colorCorePink300 = UIColor(red: 1.000, green: 0.584, blue: 0.757, alpha:1) + public static let colorCorePink400 = UIColor(red: 1.000, green: 0.463, blue: 0.682, alpha:1) + public static let colorCorePink500 = UIColor(red: 0.937, green: 0.345, blue: 0.545, alpha:1) + public static let colorCorePink600 = UIColor(red: 0.878, green: 0.267, blue: 0.486, alpha:1) + public static let colorCorePink700 = UIColor(red: 0.808, green: 0.212, blue: 0.396, alpha:1) + public static let colorCorePink800 = UIColor(red: 0.698, green: 0.184, blue: 0.357, alpha:1) + public static let colorCorePink900 = UIColor(red: 0.576, green: 0.094, blue: 0.278, alpha:1) + public static let colorCorePurple0 = UIColor(red: 0.949, green: 0.949, blue: 0.976, alpha:1) + public static let colorCorePurple100 = UIColor(red: 0.918, green: 0.918, blue: 0.976, alpha:1) + public static let colorCorePurple1000 = UIColor(red: 0.176, green: 0.141, blue: 0.420, alpha:1) + public static let colorCorePurple1100 = UIColor(red: 0.114, green: 0.114, blue: 0.220, alpha:1) + public static let colorCorePurple200 = UIColor(red: 0.847, green: 0.843, blue: 0.976, alpha:1) + public static let colorCorePurple300 = UIColor(red: 0.757, green: 0.757, blue: 0.969, alpha:1) + public static let colorCorePurple400 = UIColor(red: 0.631, green: 0.576, blue: 0.949, alpha:1) + public static let colorCorePurple500 = UIColor(red: 0.569, green: 0.502, blue: 0.957, alpha:1) + public static let colorCorePurple600 = UIColor(red: 0.506, green: 0.435, blue: 0.918, alpha:1) + public static let colorCorePurple700 = UIColor(red: 0.435, green: 0.369, blue: 0.827, alpha:1) + public static let colorCorePurple800 = UIColor(red: 0.369, green: 0.306, blue: 0.729, alpha:1) + public static let colorCorePurple900 = UIColor(red: 0.282, green: 0.227, blue: 0.612, alpha:1) + public static let colorCoreRed0 = UIColor(red: 1.000, green: 0.918, blue: 0.914, alpha:1) + public static let colorCoreRed100 = UIColor(red: 1.000, green: 0.835, blue: 0.824, alpha:1) + public static let colorCoreRed1000 = UIColor(red: 0.427, green: 0.075, blue: 0.075, alpha:1) + public static let colorCoreRed1100 = UIColor(red: 0.169, green: 0.067, blue: 0.067, alpha:1) + public static let colorCoreRed200 = UIColor(red: 1.000, green: 0.722, blue: 0.694, alpha:1) + public static let colorCoreRed300 = UIColor(red: 1.000, green: 0.612, blue: 0.561, alpha:1) + public static let colorCoreRed400 = UIColor(red: 1.000, green: 0.498, blue: 0.431, alpha:1) + public static let colorCoreRed500 = UIColor(red: 0.969, green: 0.376, blue: 0.329, alpha:1) + public static let colorCoreRed600 = UIColor(red: 0.929, green: 0.298, blue: 0.259, alpha:1) + public static let colorCoreRed700 = UIColor(red: 0.859, green: 0.243, blue: 0.243, alpha:1) + public static let colorCoreRed800 = UIColor(red: 0.776, green: 0.204, blue: 0.204, alpha:1) + public static let colorCoreRed900 = UIColor(red: 0.600, green: 0.133, blue: 0.133, alpha:1) + public static let colorCoreTeal0 = UIColor(red: 0.898, green: 0.976, blue: 0.961, alpha:1) + public static let colorCoreTeal100 = UIColor(red: 0.804, green: 0.969, blue: 0.937, alpha:1) + public static let colorCoreTeal1000 = UIColor(red: 0.031, green: 0.247, blue: 0.247, alpha:1) + public static let colorCoreTeal1100 = UIColor(red: 0.000, green: 0.145, blue: 0.157, alpha:1) + public static let colorCoreTeal200 = UIColor(red: 0.702, green: 0.949, blue: 0.902, alpha:1) + public static let colorCoreTeal300 = UIColor(red: 0.490, green: 0.918, blue: 0.835, alpha:1) + public static let colorCoreTeal400 = UIColor(red: 0.141, green: 0.878, blue: 0.773, alpha:1) + public static let colorCoreTeal500 = UIColor(red: 0.031, green: 0.769, blue: 0.698, alpha:1) + public static let colorCoreTeal600 = UIColor(red: 0.000, green: 0.663, blue: 0.612, alpha:1) + public static let colorCoreTeal700 = UIColor(red: 0.043, green: 0.588, blue: 0.561, alpha:1) + public static let colorCoreTeal800 = UIColor(red: 0.024, green: 0.486, blue: 0.486, alpha:1) + public static let colorCoreTeal900 = UIColor(red: 0.008, green: 0.400, blue: 0.380, alpha:1) + public static let colorCoreYellow0 = UIColor(red: 1.000, green: 0.973, blue: 0.886, alpha:1) + public static let colorCoreYellow100 = UIColor(red: 0.992, green: 0.937, blue: 0.804, alpha:1) + public static let colorCoreYellow1000 = UIColor(red: 0.329, green: 0.165, blue: 0.000, alpha:1) + public static let colorCoreYellow1100 = UIColor(red: 0.176, green: 0.102, blue: 0.020, alpha:1) + public static let colorCoreYellow200 = UIColor(red: 1.000, green: 0.914, blue: 0.604, alpha:1) + public static let colorCoreYellow300 = UIColor(red: 1.000, green: 0.882, blue: 0.431, alpha:1) + public static let colorCoreYellow400 = UIColor(red: 1.000, green: 0.851, blue: 0.263, alpha:1) + public static let colorCoreYellow500 = UIColor(red: 1.000, green: 0.804, blue: 0.110, alpha:1) + public static let colorCoreYellow600 = UIColor(red: 1.000, green: 0.737, blue: 0.000, alpha:1) + public static let colorCoreYellow700 = UIColor(red: 0.867, green: 0.600, blue: 0.012, alpha:1) + public static let colorCoreYellow800 = UIColor(red: 0.729, green: 0.459, blue: 0.024, alpha:1) + public static let colorCoreYellow900 = UIColor(red: 0.580, green: 0.298, blue: 0.047, alpha:1) + public static let colorFontDanger = UIColor(red: 0.427, green: 0.075, blue: 0.075, alpha:1) + public static let colorFontInteractive = UIColor(red: 0.043, green: 0.522, blue: 0.600, alpha:1) + public static let colorFontInteractiveActive = UIColor(red: 0.435, green: 0.369, blue: 0.827, alpha:1) + public static let colorFontInteractiveDisabled = UIColor(red: 0.212, green: 0.255, blue: 0.255, alpha:1) + public static let colorFontInteractiveHover = UIColor(red: 0.043, green: 0.522, blue: 0.600, alpha:1) + public static let colorFontPrimary = UIColor(red: 0.016, green: 0.016, blue: 0.016, alpha:1) + public static let colorFontSecondary = UIColor(red: 0.153, green: 0.200, blue: 0.200, alpha:1) + public static let colorFontSuccess = UIColor(red: 0.031, green: 0.259, blue: 0.184, alpha:1) + public static let colorFontTertiary = UIColor(red: 0.212, green: 0.255, blue: 0.255, alpha:1) + public static let colorFontWarning = UIColor(red: 0.376, green: 0.090, blue: 0.000, alpha:1) + public static let sizeBorderRadiusLarge = CGFloat(480.00) + public static let sizeFontLarge = CGFloat(24.00) + public static let sizeFontMedium = CGFloat(16.00) + public static let sizeFontSmall = CGFloat(12.00) + public static let sizeFontXl = CGFloat(36.00) + public static let sizePaddingLarge = CGFloat(16.00) + public static let sizePaddingMedium = CGFloat(16.00) + public static let sizePaddingSmall = CGFloat(8.00) + public static let sizePaddingXl = CGFloat(16.00) +} +" +`; + +exports[`integration swift ios-swift/class.swift with references should match snapshot 1`] = ` +" +// +// style_dictionary_with_references.swift +// +// Do not edit directly +// Generated on Sat, 01 Jan 2000 00:00:00 GMT +// + + +import UIKit + +public class StyleDictionary { + public static let colorBackgroundDanger = colorCoreRed0 + public static let colorBackgroundDisabled = colorBackgroundTertiary + public static let colorBackgroundInfo = colorCoreBlue0 + public static let colorBackgroundPrimary = colorCoreNeutral0 + public static let colorBackgroundSecondary = colorCoreNeutral100 + public static let colorBackgroundSuccess = colorCoreGreen0 + public static let colorBackgroundTertiary = colorCoreNeutral200 + public static let colorBackgroundWarning = colorCoreOrange0 + public static let colorBorderPrimary = colorCoreNeutral300 + public static let colorBrandPrimary = colorCoreAqua700 + public static let colorBrandSecondary = colorCorePurple700 + public static let colorCoreAqua0 = UIColor(red: 0.851, green: 0.988, blue: 0.984, alpha:1) + public static let colorCoreAqua100 = UIColor(red: 0.773, green: 0.976, blue: 0.976, alpha:1) + public static let colorCoreAqua1000 = UIColor(red: 0.031, green: 0.239, blue: 0.310, alpha:1) + public static let colorCoreAqua1100 = UIColor(red: 0.000, green: 0.157, blue: 0.220, alpha:1) + public static let colorCoreAqua200 = UIColor(red: 0.647, green: 0.949, blue: 0.949, alpha:1) + public static let colorCoreAqua300 = UIColor(red: 0.463, green: 0.898, blue: 0.886, alpha:1) + public static let colorCoreAqua400 = UIColor(red: 0.200, green: 0.839, blue: 0.886, alpha:1) + public static let colorCoreAqua500 = UIColor(red: 0.090, green: 0.722, blue: 0.808, alpha:1) + public static let colorCoreAqua600 = UIColor(red: 0.027, green: 0.592, blue: 0.682, alpha:1) + public static let colorCoreAqua700 = UIColor(red: 0.043, green: 0.522, blue: 0.600, alpha:1) + public static let colorCoreAqua800 = UIColor(red: 0.059, green: 0.431, blue: 0.518, alpha:1) + public static let colorCoreAqua900 = UIColor(red: 0.012, green: 0.369, blue: 0.451, alpha:1) + public static let colorCoreBlue0 = UIColor(red: 0.914, green: 0.973, blue: 1.000, alpha:1) + public static let colorCoreBlue100 = UIColor(red: 0.863, green: 0.949, blue: 1.000, alpha:1) + public static let colorCoreBlue1000 = UIColor(red: 0.039, green: 0.224, blue: 0.376, alpha:1) + public static let colorCoreBlue1100 = UIColor(red: 0.000, green: 0.129, blue: 0.220, alpha:1) + public static let colorCoreBlue200 = UIColor(red: 0.780, green: 0.894, blue: 0.976, alpha:1) + public static let colorCoreBlue300 = UIColor(red: 0.631, green: 0.824, blue: 0.973, alpha:1) + public static let colorCoreBlue400 = UIColor(red: 0.337, green: 0.678, blue: 0.961, alpha:1) + public static let colorCoreBlue500 = UIColor(red: 0.220, green: 0.588, blue: 0.890, alpha:1) + public static let colorCoreBlue600 = UIColor(red: 0.169, green: 0.529, blue: 0.827, alpha:1) + public static let colorCoreBlue700 = UIColor(red: 0.125, green: 0.475, blue: 0.765, alpha:1) + public static let colorCoreBlue800 = UIColor(red: 0.067, green: 0.427, blue: 0.667, alpha:1) + public static let colorCoreBlue900 = UIColor(red: 0.047, green: 0.337, blue: 0.537, alpha:1) + public static let colorCoreGreen0 = UIColor(red: 0.922, green: 0.976, blue: 0.922, alpha:1) + public static let colorCoreGreen100 = UIColor(red: 0.843, green: 0.957, blue: 0.843, alpha:1) + public static let colorCoreGreen1000 = UIColor(red: 0.031, green: 0.259, blue: 0.184, alpha:1) + public static let colorCoreGreen1100 = UIColor(red: 0.000, green: 0.169, blue: 0.125, alpha:1) + public static let colorCoreGreen200 = UIColor(red: 0.761, green: 0.949, blue: 0.741, alpha:1) + public static let colorCoreGreen300 = UIColor(red: 0.596, green: 0.898, blue: 0.557, alpha:1) + public static let colorCoreGreen400 = UIColor(red: 0.459, green: 0.867, blue: 0.400, alpha:1) + public static let colorCoreGreen500 = UIColor(red: 0.349, green: 0.796, blue: 0.349, alpha:1) + public static let colorCoreGreen600 = UIColor(red: 0.169, green: 0.714, blue: 0.337, alpha:1) + public static let colorCoreGreen700 = UIColor(red: 0.047, green: 0.655, blue: 0.314, alpha:1) + public static let colorCoreGreen800 = UIColor(red: 0.000, green: 0.545, blue: 0.275, alpha:1) + public static let colorCoreGreen900 = UIColor(red: 0.000, green: 0.420, blue: 0.251, alpha:1) + public static let colorCoreMagenta0 = UIColor(red: 0.996, green: 0.941, blue: 1.000, alpha:1) + public static let colorCoreMagenta100 = UIColor(red: 0.976, green: 0.890, blue: 0.988, alpha:1) + public static let colorCoreMagenta1000 = UIColor(red: 0.271, green: 0.082, blue: 0.318, alpha:1) + public static let colorCoreMagenta1100 = UIColor(red: 0.161, green: 0.098, blue: 0.176, alpha:1) + public static let colorCoreMagenta200 = UIColor(red: 0.957, green: 0.769, blue: 0.969, alpha:1) + public static let colorCoreMagenta300 = UIColor(red: 0.929, green: 0.678, blue: 0.949, alpha:1) + public static let colorCoreMagenta400 = UIColor(red: 0.949, green: 0.510, blue: 0.961, alpha:1) + public static let colorCoreMagenta500 = UIColor(red: 0.859, green: 0.380, blue: 0.859, alpha:1) + public static let colorCoreMagenta600 = UIColor(red: 0.769, green: 0.306, blue: 0.725, alpha:1) + public static let colorCoreMagenta700 = UIColor(red: 0.675, green: 0.267, blue: 0.659, alpha:1) + public static let colorCoreMagenta800 = UIColor(red: 0.561, green: 0.220, blue: 0.588, alpha:1) + public static let colorCoreMagenta900 = UIColor(red: 0.424, green: 0.133, blue: 0.467, alpha:1) + public static let colorCoreNeutral0 = UIColor(red: 1.000, green: 1.000, blue: 1.000, alpha:1) + public static let colorCoreNeutral100 = UIColor(red: 0.953, green: 0.957, blue: 0.957, alpha:1) + public static let colorCoreNeutral1000 = UIColor(red: 0.086, green: 0.125, blue: 0.125, alpha:1) + public static let colorCoreNeutral1100 = UIColor(red: 0.016, green: 0.016, blue: 0.016, alpha:1) + public static let colorCoreNeutral200 = UIColor(red: 0.871, green: 0.882, blue: 0.882, alpha:1) + public static let colorCoreNeutral300 = UIColor(red: 0.784, green: 0.800, blue: 0.800, alpha:1) + public static let colorCoreNeutral400 = UIColor(red: 0.690, green: 0.714, blue: 0.718, alpha:1) + public static let colorCoreNeutral500 = UIColor(red: 0.573, green: 0.604, blue: 0.608, alpha:1) + public static let colorCoreNeutral600 = UIColor(red: 0.431, green: 0.475, blue: 0.478, alpha:1) + public static let colorCoreNeutral700 = UIColor(red: 0.318, green: 0.369, blue: 0.373, alpha:1) + public static let colorCoreNeutral800 = UIColor(red: 0.212, green: 0.255, blue: 0.255, alpha:1) + public static let colorCoreNeutral900 = UIColor(red: 0.153, green: 0.200, blue: 0.200, alpha:1) + public static let colorCoreOrange0 = UIColor(red: 1.000, green: 0.929, blue: 0.890, alpha:1) + public static let colorCoreOrange100 = UIColor(red: 0.988, green: 0.863, blue: 0.800, alpha:1) + public static let colorCoreOrange1000 = UIColor(red: 0.376, green: 0.090, blue: 0.000, alpha:1) + public static let colorCoreOrange1100 = UIColor(red: 0.176, green: 0.075, blue: 0.055, alpha:1) + public static let colorCoreOrange200 = UIColor(red: 1.000, green: 0.776, blue: 0.643, alpha:1) + public static let colorCoreOrange300 = UIColor(red: 1.000, green: 0.694, blue: 0.502, alpha:1) + public static let colorCoreOrange400 = UIColor(red: 1.000, green: 0.612, blue: 0.365, alpha:1) + public static let colorCoreOrange500 = UIColor(red: 0.988, green: 0.537, blue: 0.263, alpha:1) + public static let colorCoreOrange600 = UIColor(red: 0.961, green: 0.490, blue: 0.200, alpha:1) + public static let colorCoreOrange700 = UIColor(red: 0.929, green: 0.439, blue: 0.141, alpha:1) + public static let colorCoreOrange800 = UIColor(red: 0.808, green: 0.333, blue: 0.067, alpha:1) + public static let colorCoreOrange900 = UIColor(red: 0.588, green: 0.173, blue: 0.043, alpha:1) + public static let colorCorePink0 = UIColor(red: 1.000, green: 0.914, blue: 0.953, alpha:1) + public static let colorCorePink100 = UIColor(red: 0.988, green: 0.859, blue: 0.922, alpha:1) + public static let colorCorePink1000 = UIColor(red: 0.337, green: 0.071, blue: 0.192, alpha:1) + public static let colorCorePink1100 = UIColor(red: 0.169, green: 0.090, blue: 0.129, alpha:1) + public static let colorCorePink200 = UIColor(red: 1.000, green: 0.710, blue: 0.835, alpha:1) + public static let colorCorePink300 = UIColor(red: 1.000, green: 0.584, blue: 0.757, alpha:1) + public static let colorCorePink400 = UIColor(red: 1.000, green: 0.463, blue: 0.682, alpha:1) + public static let colorCorePink500 = UIColor(red: 0.937, green: 0.345, blue: 0.545, alpha:1) + public static let colorCorePink600 = UIColor(red: 0.878, green: 0.267, blue: 0.486, alpha:1) + public static let colorCorePink700 = UIColor(red: 0.808, green: 0.212, blue: 0.396, alpha:1) + public static let colorCorePink800 = UIColor(red: 0.698, green: 0.184, blue: 0.357, alpha:1) + public static let colorCorePink900 = UIColor(red: 0.576, green: 0.094, blue: 0.278, alpha:1) + public static let colorCorePurple0 = UIColor(red: 0.949, green: 0.949, blue: 0.976, alpha:1) + public static let colorCorePurple100 = UIColor(red: 0.918, green: 0.918, blue: 0.976, alpha:1) + public static let colorCorePurple1000 = UIColor(red: 0.176, green: 0.141, blue: 0.420, alpha:1) + public static let colorCorePurple1100 = UIColor(red: 0.114, green: 0.114, blue: 0.220, alpha:1) + public static let colorCorePurple200 = UIColor(red: 0.847, green: 0.843, blue: 0.976, alpha:1) + public static let colorCorePurple300 = UIColor(red: 0.757, green: 0.757, blue: 0.969, alpha:1) + public static let colorCorePurple400 = UIColor(red: 0.631, green: 0.576, blue: 0.949, alpha:1) + public static let colorCorePurple500 = UIColor(red: 0.569, green: 0.502, blue: 0.957, alpha:1) + public static let colorCorePurple600 = UIColor(red: 0.506, green: 0.435, blue: 0.918, alpha:1) + public static let colorCorePurple700 = UIColor(red: 0.435, green: 0.369, blue: 0.827, alpha:1) + public static let colorCorePurple800 = UIColor(red: 0.369, green: 0.306, blue: 0.729, alpha:1) + public static let colorCorePurple900 = UIColor(red: 0.282, green: 0.227, blue: 0.612, alpha:1) + public static let colorCoreRed0 = UIColor(red: 1.000, green: 0.918, blue: 0.914, alpha:1) + public static let colorCoreRed100 = UIColor(red: 1.000, green: 0.835, blue: 0.824, alpha:1) + public static let colorCoreRed1000 = UIColor(red: 0.427, green: 0.075, blue: 0.075, alpha:1) + public static let colorCoreRed1100 = UIColor(red: 0.169, green: 0.067, blue: 0.067, alpha:1) + public static let colorCoreRed200 = UIColor(red: 1.000, green: 0.722, blue: 0.694, alpha:1) + public static let colorCoreRed300 = UIColor(red: 1.000, green: 0.612, blue: 0.561, alpha:1) + public static let colorCoreRed400 = UIColor(red: 1.000, green: 0.498, blue: 0.431, alpha:1) + public static let colorCoreRed500 = UIColor(red: 0.969, green: 0.376, blue: 0.329, alpha:1) + public static let colorCoreRed600 = UIColor(red: 0.929, green: 0.298, blue: 0.259, alpha:1) + public static let colorCoreRed700 = UIColor(red: 0.859, green: 0.243, blue: 0.243, alpha:1) + public static let colorCoreRed800 = UIColor(red: 0.776, green: 0.204, blue: 0.204, alpha:1) + public static let colorCoreRed900 = UIColor(red: 0.600, green: 0.133, blue: 0.133, alpha:1) + public static let colorCoreTeal0 = UIColor(red: 0.898, green: 0.976, blue: 0.961, alpha:1) + public static let colorCoreTeal100 = UIColor(red: 0.804, green: 0.969, blue: 0.937, alpha:1) + public static let colorCoreTeal1000 = UIColor(red: 0.031, green: 0.247, blue: 0.247, alpha:1) + public static let colorCoreTeal1100 = UIColor(red: 0.000, green: 0.145, blue: 0.157, alpha:1) + public static let colorCoreTeal200 = UIColor(red: 0.702, green: 0.949, blue: 0.902, alpha:1) + public static let colorCoreTeal300 = UIColor(red: 0.490, green: 0.918, blue: 0.835, alpha:1) + public static let colorCoreTeal400 = UIColor(red: 0.141, green: 0.878, blue: 0.773, alpha:1) + public static let colorCoreTeal500 = UIColor(red: 0.031, green: 0.769, blue: 0.698, alpha:1) + public static let colorCoreTeal600 = UIColor(red: 0.000, green: 0.663, blue: 0.612, alpha:1) + public static let colorCoreTeal700 = UIColor(red: 0.043, green: 0.588, blue: 0.561, alpha:1) + public static let colorCoreTeal800 = UIColor(red: 0.024, green: 0.486, blue: 0.486, alpha:1) + public static let colorCoreTeal900 = UIColor(red: 0.008, green: 0.400, blue: 0.380, alpha:1) + public static let colorCoreYellow0 = UIColor(red: 1.000, green: 0.973, blue: 0.886, alpha:1) + public static let colorCoreYellow100 = UIColor(red: 0.992, green: 0.937, blue: 0.804, alpha:1) + public static let colorCoreYellow1000 = UIColor(red: 0.329, green: 0.165, blue: 0.000, alpha:1) + public static let colorCoreYellow1100 = UIColor(red: 0.176, green: 0.102, blue: 0.020, alpha:1) + public static let colorCoreYellow200 = UIColor(red: 1.000, green: 0.914, blue: 0.604, alpha:1) + public static let colorCoreYellow300 = UIColor(red: 1.000, green: 0.882, blue: 0.431, alpha:1) + public static let colorCoreYellow400 = UIColor(red: 1.000, green: 0.851, blue: 0.263, alpha:1) + public static let colorCoreYellow500 = UIColor(red: 1.000, green: 0.804, blue: 0.110, alpha:1) + public static let colorCoreYellow600 = UIColor(red: 1.000, green: 0.737, blue: 0.000, alpha:1) + public static let colorCoreYellow700 = UIColor(red: 0.867, green: 0.600, blue: 0.012, alpha:1) + public static let colorCoreYellow800 = UIColor(red: 0.729, green: 0.459, blue: 0.024, alpha:1) + public static let colorCoreYellow900 = UIColor(red: 0.580, green: 0.298, blue: 0.047, alpha:1) + public static let colorFontDanger = colorCoreRed1000 + public static let colorFontInteractive = colorBrandPrimary + public static let colorFontInteractiveActive = colorBrandSecondary + public static let colorFontInteractiveDisabled = colorFontTertiary + public static let colorFontInteractiveHover = colorBrandPrimary + public static let colorFontPrimary = colorCoreNeutral1100 + public static let colorFontSecondary = colorCoreNeutral900 + public static let colorFontSuccess = colorCoreGreen1000 + public static let colorFontTertiary = colorCoreNeutral800 + public static let colorFontWarning = colorCoreOrange1000 + public static let sizeBorderRadiusLarge = CGFloat(480.00) + public static let sizeFontLarge = CGFloat(24.00) + public static let sizeFontMedium = CGFloat(16.00) + public static let sizeFontSmall = CGFloat(12.00) + public static let sizeFontXl = CGFloat(36.00) + public static let sizePaddingLarge = CGFloat(16.00) + public static let sizePaddingMedium = CGFloat(16.00) + public static let sizePaddingSmall = CGFloat(8.00) + public static let sizePaddingXl = CGFloat(16.00) +} +" +`; diff --git a/__integration__/_constants.js b/__integration__/_constants.js new file mode 100644 index 000000000..d58c41068 --- /dev/null +++ b/__integration__/_constants.js @@ -0,0 +1,3 @@ +module.exports = { + buildPath: `__integration__/build/` +} \ No newline at end of file diff --git a/__integration__/android.test.js b/__integration__/android.test.js new file mode 100644 index 000000000..83f0d2c8b --- /dev/null +++ b/__integration__/android.test.js @@ -0,0 +1,75 @@ +/* + * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with + * the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const fs = require('fs-extra'); +const StyleDictionary = require('../index'); +const {buildPath} = require('./_constants'); + +describe('integration', () => { + describe('android', () => { + StyleDictionary.extend({ + source: [`__integration__/tokens/**/*.json`], + platforms: { + android: { + transformGroup: `android`, + buildPath, + files: [{ + destination: `resources.xml`, + format: `android/resources` + },{ + destination: `resourcesWithReferences.xml`, + format: `android/resources`, + options: { + outputReferences: true + } + },{ + destination: `colors.xml`, + format: `android/resources`, + filter: { + attributes: { category: `color` } + } + }] + } + } + }).buildAllPlatforms(); + + describe(`android/resources`, () => { + const output = fs.readFileSync(`${buildPath}resources.xml`, {encoding:'UTF-8'}); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + + describe(`with references`, () => { + const output = fs.readFileSync(`${buildPath}resourcesWithReferences.xml`, {encoding:'UTF-8'}); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + + }); + + describe(`with filter`, () => { + const output = fs.readFileSync(`${buildPath}colors.xml`, {encoding:'UTF-8'}); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + }); + }); + }); +}); + +afterAll(() => { + fs.emptyDirSync(buildPath); +}); \ No newline at end of file diff --git a/__integration__/css.test.js b/__integration__/css.test.js new file mode 100644 index 000000000..04b91192e --- /dev/null +++ b/__integration__/css.test.js @@ -0,0 +1,60 @@ +/* + * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with + * the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const fs = require('fs-extra'); +const StyleDictionary = require('../index'); +const {buildPath} = require('./_constants'); + +describe('integration', () => { + describe('css', () => { + StyleDictionary.extend({ + source: [`__integration__/tokens/**/*.json`], + platforms: { + css: { + transformGroup: 'css', + buildPath, + files: [{ + destination: 'variables.css', + format: 'css/variables' + },{ + destination: 'variablesWithReferences.css', + format: 'css/variables', + options: { + outputReferences: true + } + }] + } + } + }).buildAllPlatforms(); + + describe('css/variables', () => { + const output = fs.readFileSync(`${buildPath}variables.css`, {encoding:'UTF-8'}); + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + + describe(`with references`, () => { + const output = fs.readFileSync(`${buildPath}variablesWithReferences.css`, {encoding:'UTF-8'}); + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + }); + + // TODO: add css validator + }); + }); +}); + +afterAll(() => { + fs.emptyDirSync(buildPath); +}); \ No newline at end of file diff --git a/__integration__/flutter.test.js b/__integration__/flutter.test.js new file mode 100644 index 000000000..118d321e0 --- /dev/null +++ b/__integration__/flutter.test.js @@ -0,0 +1,95 @@ +/* + * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with + * the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const fs = require('fs-extra'); +const StyleDictionary = require('../index'); +const {buildPath} = require('./_constants'); + +describe('integration', () => { + describe('flutter', () => { + StyleDictionary.extend({ + source: [`__integration__/tokens/**/*.json`], + platforms: { + flutter: { + transformGroup: `flutter`, + buildPath, + files: [{ + destination: "style_dictionary.dart", + format: "flutter/class.dart", + className: "StyleDictionary" + },{ + destination: "style_dictionary_with_references.dart", + format: "flutter/class.dart", + className: "StyleDictionary", + options: { + outputReferences: true + } + }] + }, + flutter_separate: { + transformGroup: `flutter-separate`, + buildPath, + files: [{ + destination: "style_dictionary_color.dart", + format: "flutter/class.dart", + className: "StyleDictionaryColor", + type: "color", + filter: { + attributes: { + category: "color" + } + } + },{ + destination: "style_dictionary_sizes.dart", + format: "flutter/class.dart", + className: "StyleDictionarySize", + type: "float", + filter: { + attributes: { + category: "size" + } + } + }] + } + } + }).buildAllPlatforms(); + + describe(`flutter/class.dart`, () => { + const output = fs.readFileSync(`${buildPath}style_dictionary.dart`, {encoding:`UTF-8`}); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + + describe(`with references`, () => { + const output = fs.readFileSync(`${buildPath}style_dictionary_with_references.dart`, {encoding:`UTF-8`}); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + + }); + + describe(`separate`, () => { + const output = fs.readFileSync(`${buildPath}style_dictionary_color.dart`); + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + }) + }); + }); +}); + +afterAll(() => { + fs.emptyDirSync(buildPath); +}); \ No newline at end of file diff --git a/__integration__/scss.test.js b/__integration__/scss.test.js new file mode 100644 index 000000000..580e81299 --- /dev/null +++ b/__integration__/scss.test.js @@ -0,0 +1,110 @@ +/* + * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with + * the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const fs = require('fs-extra'); +const scss = require('node-sass'); +const StyleDictionary = require('../index'); +const {buildPath} = require('./_constants'); + +describe(`integration`, () => { + describe(`scss`, () => { + StyleDictionary.extend({ + source: [`__integration__/tokens/**/*.json`], + platforms: { + css: { + transformGroup: `scss`, + buildPath, + files: [{ + destination: `variables.scss`, + format: `scss/variables` + },{ + destination: `variablesWithReferences.scss`, + format: `scss/variables`, + options: { + outputReferences: true + } + },{ + destination: `map-flat.scss`, + format: `scss/map-flat` + },{ + destination: `map-deep.scss`, + format: `scss/map-deep` + }] + } + } + }).buildAllPlatforms(); + + describe(`scss/variables`, () => { + const output = fs.readFileSync(`${buildPath}variables.scss`, {encoding:'UTF-8'}); + + it(`should have a valid scss syntax`, () => { + const result = scss.renderSync({ + data: output, + }); + expect(result.css).toBeDefined(); + }); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + + describe(`with outputReferences`, () => { + const output = fs.readFileSync(`${buildPath}variablesWithReferences.scss`, {encoding:'UTF-8'}); + it(`should have a valid scss syntax`, () => { + const result = scss.renderSync({ + data: output, + }); + expect(result.css).toBeDefined(); + }); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + }); + }); + + describe(`scss/map-flat`, () => { + const output = fs.readFileSync(`${buildPath}map-flat.scss`, {encoding:'UTF-8'}); + + it(`should have a valid scss syntax`, () => { + const result = scss.renderSync({ + data: output, + }); + expect(result.css).toBeDefined(); + }); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + }); + + describe(`scss/map-deep`, () => { + const output = fs.readFileSync(`${buildPath}map-deep.scss`, {encoding:'UTF-8'}); + + it(`should have a valid scss syntax`, () => { + const result = scss.renderSync({ + data: output, + }); + expect(result.css).toBeDefined(); + }); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + }); + }); +}); + +afterAll(() => { + fs.emptyDirSync(buildPath); +}); \ No newline at end of file diff --git a/__integration__/showFileHeader.test.js b/__integration__/showFileHeader.test.js new file mode 100644 index 000000000..8459bef30 --- /dev/null +++ b/__integration__/showFileHeader.test.js @@ -0,0 +1,87 @@ +/* + * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with + * the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const fs = require('fs-extra'); +const StyleDictionary = require('../index'); +const {buildPath} = require('./_constants'); + +describe('integration', () => { + describe('showFileHeader', () => { + StyleDictionary.extend({ + // we are only testing showFileHeader options so we don't need + // the full source. + source: [`__integration__/tokens/size/padding.json`], + platforms: { + css: { + transformGroup: 'css', + buildPath, + files: [{ + destination: 'platform-none-file-none.css', + format: 'css/variables' + },{ + destination: 'platform-none-file-false.css', + format: 'css/variables', + options: { + showFileHeader: false + } + }] + }, + fileHeader: { + transformGroup: 'css', + buildPath, + options: { + showFileHeader: false + }, + files: [{ + destination: 'platform-false-file-none.css', + format: 'css/variables' + },{ + destination: 'platform-false-file-true.css', + format: 'css/variables', + options: { + showFileHeader: true + } + }] + } + } + }).buildAllPlatforms(); + + describe(`without platform options`, () => { + it(`should show file header if no file options set`, () => { + const output = fs.readFileSync(`${buildPath}platform-none-file-none.css`, {encoding:'UTF-8'}); + expect(output).toMatchSnapshot(); + }); + + it(`should not show file header if file options set to false`, () => { + const output = fs.readFileSync(`${buildPath}platform-none-file-false.css`, {encoding:'UTF-8'}); + expect(output).toMatchSnapshot(); + }); + }); + + describe(`with platform options set to false`, () => { + it(`should not show file header if no file options set`, () => { + const output = fs.readFileSync(`${buildPath}platform-false-file-none.css`, {encoding:'UTF-8'}); + expect(output).toMatchSnapshot(); + }); + + it(`should show file header if file options set to true`, () => { + const output = fs.readFileSync(`${buildPath}platform-false-file-true.css`, {encoding:'UTF-8'}); + expect(output).toMatchSnapshot(); + }); + }); + }); +}); + +afterAll(() => { + fs.emptyDirSync(buildPath); +}); \ No newline at end of file diff --git a/__integration__/swift.test.js b/__integration__/swift.test.js new file mode 100644 index 000000000..44bd170fd --- /dev/null +++ b/__integration__/swift.test.js @@ -0,0 +1,70 @@ +/* + * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with + * the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const fs = require('fs-extra'); +const StyleDictionary = require('../index'); +const {buildPath} = require('./_constants'); + +describe('integration', () => { + describe('swift', () => { + StyleDictionary.extend({ + source: [`__integration__/tokens/**/*.json`], + platforms: { + flutter: { + transformGroup: `ios-swift`, + buildPath, + files: [{ + destination: "style_dictionary.swift", + format: "ios-swift/class.swift", + className: "StyleDictionary" + },{ + destination: "style_dictionary_with_references.swift", + format: "ios-swift/class.swift", + className: "StyleDictionary", + options: { + outputReferences: true + } + }] + }, + } + }).buildAllPlatforms(); + + describe(`ios-swift/class.swift`, () => { + const output = fs.readFileSync(`${buildPath}style_dictionary.swift`, {encoding:`UTF-8`}); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + + describe(`with references`, () => { + const output = fs.readFileSync(`${buildPath}style_dictionary_with_references.swift`, {encoding:`UTF-8`}); + + it(`should match snapshot`, () => { + expect(output).toMatchSnapshot(); + }); + + }); + + // describe(`separate`, () => { + // const output = fs.readFileSync(`${buildPath}style_dictionary_color.dart`); + // it(`should match snapshot`, () => { + // expect(output).toMatchSnapshot(); + // }); + // }); + }); + }); +}); + +afterAll(() => { + fs.emptyDirSync(buildPath); +}); \ No newline at end of file diff --git a/__integration__/tokens/color/background.json b/__integration__/tokens/color/background.json new file mode 100644 index 000000000..066b22fbb --- /dev/null +++ b/__integration__/tokens/color/background.json @@ -0,0 +1,14 @@ +{ + "color": { + "background": { + "primary": { "value": "{color.core.neutral.0.value}", "themeable": true }, + "secondary": { "value": "{color.core.neutral.100.value}" }, + "tertiary": { "value": "{color.core.neutral.200.value}" }, + "danger": { "value": "{color.core.red.0.value}" }, + "warning": { "value": "{color.core.orange.0.value}" }, + "success": { "value": "{color.core.green.0.value}" }, + "info": { "value": "{color.core.blue.0.value}" }, + "disabled": { "value": "{color.background.tertiary.value}" } + } + } +} \ No newline at end of file diff --git a/__integration__/tokens/color/border.json b/__integration__/tokens/color/border.json new file mode 100644 index 000000000..c344aae51 --- /dev/null +++ b/__integration__/tokens/color/border.json @@ -0,0 +1,9 @@ +{ + "color": { + "border": { + "primary": { "value": "{color.core.neutral.300.value}" }, + "secondary": {}, + "tertiary": {} + } + } +} \ No newline at end of file diff --git a/__integration__/tokens/color/brand.json b/__integration__/tokens/color/brand.json new file mode 100644 index 000000000..66cde45ce --- /dev/null +++ b/__integration__/tokens/color/brand.json @@ -0,0 +1,13 @@ +{ + "color": { + "brand": { + "primary": { + "value": "{color.core.aqua.700.value}" + }, + + "secondary": { + "value": "{color.core.purple.700.value}" + } + } + } +} \ No newline at end of file diff --git a/__integration__/tokens/color/core.json b/__integration__/tokens/color/core.json new file mode 100644 index 000000000..e3294792a --- /dev/null +++ b/__integration__/tokens/color/core.json @@ -0,0 +1,170 @@ +{ + "color": { + "core": { + "green": { + "0": { "value": "#ebf9eb" }, + "100" : { "value": "#d7f4d7" }, + "200" : { "value": "#c2f2bd" }, + "300" : { "value": "#98e58e" }, + "400" : { "value": "#75dd66" }, + "500" : { "value": "#59cb59" }, + "600" : { "value": "#2bb656" }, + "700" : { "value": "#0ca750" }, + "800" : { "value": "#008b46" }, + "900" : { "value": "#006b40" }, + "1000" : { "value": "#08422f" }, + "1100" : { "value": "#002b20" } + }, + + "teal": { + "0": { "value": "#e5f9f5" }, + "100" : { "value": "#cdf7ef" }, + "200" : { "value": "#b3f2e6" }, + "300" : { "value": "#7dead5" }, + "400" : { "value": "#24e0c5" }, + "500" : { "value": "#08c4b2" }, + "600" : { "value": "#00a99c" }, + "700" : { "value": "#0b968f" }, + "800" : { "value": "#067c7c" }, + "900" : { "value": "#026661" }, + "1000" : { "value": "#083f3f" }, + "1100" : { "value": "#002528" } + }, + + "aqua": { + "0": { "value": "#d9fcfb" }, + "100" : { "value": "#c5f9f9" }, + "200" : { "value": "#a5f2f2" }, + "300" : { "value": "#76e5e2" }, + "400" : { "value": "#33d6e2" }, + "500" : { "value": "#17b8ce" }, + "600" : { "value": "#0797ae" }, + "700" : { "value": "#0b8599" }, + "800" : { "value": "#0f6e84" }, + "900" : { "value": "#035e73" }, + "1000" : { "value": "#083d4f" }, + "1100" : { "value": "#002838" } + }, + + "blue": { + "0": { "value": "#e9f8ff" }, + "100" : { "value": "#dcf2ff" }, + "200" : { "value": "#c7e4f9" }, + "300" : { "value": "#a1d2f8" }, + "400" : { "value": "#56adf5" }, + "500" : { "value": "#3896e3" }, + "600" : { "value": "#2b87d3" }, + "700" : { "value": "#2079c3" }, + "800" : { "value": "#116daa" }, + "900" : { "value": "#0c5689" }, + "1000" : { "value": "#0a3960" }, + "1100" : { "value": "#002138" } + }, + + "purple": { + "0": { "value": "#f2f2f9" }, + "100" : { "value": "#eaeaf9" }, + "200" : { "value": "#d8d7f9" }, + "300" : { "value": "#c1c1f7" }, + "400" : { "value": "#a193f2" }, + "500" : { "value": "#9180f4" }, + "600" : { "value": "#816fea" }, + "700" : { "value": "#6f5ed3" }, + "800" : { "value": "#5e4eba" }, + "900" : { "value": "#483a9c" }, + "1000" : { "value": "#2d246b" }, + "1100" : { "value": "#1d1d38" } + }, + + "magenta": { + "0": { "value": "#fef0ff" }, + "100" : { "value": "#f9e3fc" }, + "200" : { "value": "#f4c4f7" }, + "300" : { "value": "#edadf2" }, + "400" : { "value": "#f282f5" }, + "500" : { "value": "#db61db" }, + "600" : { "value": "#c44eb9" }, + "700" : { "value": "#ac44a8" }, + "800" : { "value": "#8f3896" }, + "900" : { "value": "#6c2277" }, + "1000" : { "value": "#451551" }, + "1100" : { "value": "#29192d" } + }, + + "pink": { + "0": { "value": "#ffe9f3" }, + "100" : { "value": "#fcdbeb" }, + "200" : { "value": "#ffb5d5" }, + "300" : { "value": "#ff95c1" }, + "400" : { "value": "#ff76ae" }, + "500" : { "value": "#ef588b" }, + "600" : { "value": "#e0447c" }, + "700" : { "value": "#ce3665" }, + "800" : { "value": "#b22f5b" }, + "900" : { "value": "#931847" }, + "1000" : { "value": "#561231" }, + "1100" : { "value": "#2b1721" } + }, + + "red": { + "0": { "value": "#ffeae9" }, + "100" : { "value": "#ffd5d2" }, + "200" : { "value": "#ffb8b1" }, + "300" : { "value": "#ff9c8f" }, + "400" : { "value": "#ff7f6e" }, + "500" : { "value": "#f76054" }, + "600" : { "value": "#ed4c42" }, + "700" : { "value": "#db3e3e" }, + "800" : { "value": "#c63434" }, + "900" : { "value": "#992222" }, + "1000" : { "value": "#6d1313" }, + "1100" : { "value": "#2b1111" } + }, + + "orange": { + "0": { "value": "#ffede3" }, + "100" : { "value": "#fcdccc" }, + "200" : { "value": "#ffc6a4" }, + "300" : { "value": "#ffb180" }, + "400" : { "value": "#ff9c5d" }, + "500" : { "value": "#fc8943" }, + "600" : { "value": "#f57d33" }, + "700" : { "value": "#ed7024" }, + "800" : { "value": "#ce5511" }, + "900" : { "value": "#962c0b" }, + "1000" : { "value": "#601700" }, + "1100" : { "value": "#2d130e" } + }, + + "neutral": { + "0" : { "value": "#FFFFFF" }, + "100" : { "value": "#f3f4f4" }, + "200" : { "value": "#dee1e1" }, + "300" : { "value": "#c8cccc" }, + "400" : { "value": "#b0b6b7" }, + "500" : { "value": "#929a9b" }, + "600" : { "value": "#6e797a" }, + "700" : { "value": "#515e5f" }, + "800" : { "value": "#364141" }, + "900" : { "value": "#273333" }, + "1000" : { "value": "#162020" }, + "1100" : { "value": "#040404" } + }, + + "yellow": { + "0": { "value": "#fff8e2" }, + "100" : { "value": "#fdefcd" }, + "200" : { "value": "#ffe99a" }, + "300" : { "value": "#ffe16e" }, + "400" : { "value": "#ffd943" }, + "500" : { "value": "#ffcd1c" }, + "600" : { "value": "#ffbc00" }, + "700" : { "value": "#dd9903" }, + "800" : { "value": "#ba7506" }, + "900" : { "value": "#944c0c" }, + "1000" : { "value": "#542a00" }, + "1100" : { "value": "#2d1a05" } + } + } + } +} \ No newline at end of file diff --git a/__integration__/tokens/color/font.json b/__integration__/tokens/color/font.json new file mode 100644 index 000000000..d15b7cc29 --- /dev/null +++ b/__integration__/tokens/color/font.json @@ -0,0 +1,20 @@ +{ + "color": { + "font": { + "primary": { "value": "{color.core.neutral.1100.value}" }, + "secondary": { "value": "{color.core.neutral.900.value}" }, + "tertiary": { "value": "{color.core.neutral.800.value}" }, + + "interactive": { + "_": { "value": "{color.brand.primary.value}" }, + "hover": { "value": "{color.brand.primary.value}" }, + "active": { "value": "{color.brand.secondary.value}" }, + "disabled": { "value": "{color.font.tertiary.value}" } + }, + + "danger": { "value": "{color.core.red.1000.value}" }, + "warning": { "value": "{color.core.orange.1000.value}" }, + "success": { "value": "{color.core.green.1000.value}" } + } + } +} \ No newline at end of file diff --git a/__integration__/tokens/size/border.json b/__integration__/tokens/size/border.json new file mode 100644 index 000000000..d70a7cd0c --- /dev/null +++ b/__integration__/tokens/size/border.json @@ -0,0 +1,9 @@ +{ + "size": { + "border": { + "radius": { + "large": { "value": 30 } + } + } + } +} \ No newline at end of file diff --git a/__integration__/tokens/size/font.json b/__integration__/tokens/size/font.json new file mode 100644 index 000000000..3056392aa --- /dev/null +++ b/__integration__/tokens/size/font.json @@ -0,0 +1,10 @@ +{ + "size": { + "font": { + "small": { "value": 0.75 }, + "medium": { "value": 1 }, + "large": { "value": 1.5 }, + "xl": { "value": 2.25 } + } + } +} \ No newline at end of file diff --git a/__integration__/tokens/size/padding.json b/__integration__/tokens/size/padding.json new file mode 100644 index 000000000..6d2358d71 --- /dev/null +++ b/__integration__/tokens/size/padding.json @@ -0,0 +1,10 @@ +{ + "size": { + "padding": { + "small": { "value": 0.5 }, + "medium": { "value": 1 }, + "large": { "value": 1 }, + "xl": { "value": 1 } + } + } +} \ No newline at end of file diff --git a/__tests__/__setup.js b/__tests__/__setup.js new file mode 100644 index 000000000..0d5db7dc2 --- /dev/null +++ b/__tests__/__setup.js @@ -0,0 +1,3 @@ +const constantDate = new Date('2000-01-01'); +global.Date = function() { return constantDate }; +global.Date.now = function() { return constantDate }; \ No newline at end of file diff --git a/__tests__/buildFile.test.js b/__tests__/buildFile.test.js index 449e11a46..12e7fc54a 100644 --- a/__tests__/buildFile.test.js +++ b/__tests__/buildFile.test.js @@ -87,7 +87,7 @@ describe('buildFile', () => { let destEmptyProperties = './__tests__/__output/test.emptyProperties'; it('should warn when a file is not created because of empty properties', () => { - let properties = { + let dictionary = { allProperties: [{ name: 'someName', attributes: { category: 'category1' }, @@ -100,7 +100,11 @@ describe('buildFile', () => { return prop.attributes.category === 'category2'; } - buildFile(destEmptyProperties, format, {}, properties, filter); + buildFile({ + destination: destEmptyProperties, + format, + filter + }, {}, dictionary); expect(helpers.fileExists('./__tests__/__output/test.emptyProperties')).toBeFalsy(); }); diff --git a/__tests__/formats/__snapshots__/all.test.js.snap b/__tests__/formats/__snapshots__/all.test.js.snap index e8b3de42f..9f3ce0495 100644 --- a/__tests__/formats/__snapshots__/all.test.js.snap +++ b/__tests__/formats/__snapshots__/all.test.js.snap @@ -55,7 +55,6 @@ exports[`formats all should match android/integers snapshot 1`] = ` exports[`formats all should match android/resources snapshot 1`] = ` " - <% } %> + <% dictionary.allProperties.forEach(function(prop) { + %><<%= propToType(prop) %> name="<%= prop.name %>"><%= propToValue(prop) %>><% if (prop.comment) { %><% } %> <% }); %> diff --git a/lib/common/templates/flutter/class.dart.template b/lib/common/templates/flutter/class.dart.template index b4fa6009d..e7f638b3e 100644 --- a/lib/common/templates/flutter/class.dart.template +++ b/lib/common/templates/flutter/class.dart.template @@ -11,28 +11,36 @@ // permissions and limitations under the License. %> // -// <%= this.destination %> +// <%= file.destination %> // <% // for backward compatibility we need to have the user explicitly hide it - var showFileHeader = (this.options && this.options.hasOwnProperty('showFileHeader')) ? this.options.showFileHeader : true; + var showFileHeader = (file.options && file.options.hasOwnProperty('showFileHeader')) ? file.options.showFileHeader : true; if(showFileHeader) { print("// Do not edit directly\n"); print("// Generated on " + new Date().toUTCString()); } + + function propToValue(prop) { + if (file.options && file.options.outputReferences && dictionary.usesReference(prop.original.value)) { + return dictionary.getReference(prop.original.value).name; + } else { + return prop.value; + } + } %> // <% // Filter to only those props wanted based on the filter, then sort // them by category so we keep like props together, then by name // so they are easier to find alphabetically. - var props = _.sortBy(allProperties, item => item.attributes.category + item.name); + var props = _.sortBy(dictionary.allProperties, item => item.attributes.category + item.name); %> import 'dart:ui'; -class <%= this.className %> { - <%= this.className %>._(); - - <%= _.map(props, function(prop) { return 'static const ' + prop.name + ' = ' + prop.value + ";" }).join('\n ') %> +class <%= file.className %> { + <%= file.className %>._(); + + <%= _.map(props, function(prop) { return 'static const ' + prop.name + ' = ' + propToValue(prop) + ";" }).join('\n ') %> } \ No newline at end of file diff --git a/lib/common/templates/ios-swift/class.swift.template b/lib/common/templates/ios-swift/class.swift.template index 6436a4b68..fc8104a5c 100644 --- a/lib/common/templates/ios-swift/class.swift.template +++ b/lib/common/templates/ios-swift/class.swift.template @@ -14,26 +14,34 @@ // permissions and limitations under the License. %> // -// <%= this.destination %> +// <%= file.destination %> // <% // for backward compatibility we need to have the user explicitly hide it - var showFileHeader = (this.options && this.options.hasOwnProperty('showFileHeader')) ? this.options.showFileHeader : true; + var showFileHeader = (file.options && file.options.hasOwnProperty('showFileHeader')) ? file.options.showFileHeader : true; if(showFileHeader) { print("// Do not edit directly\n"); print("// Generated on " + new Date().toUTCString()); } + + function propToValue(prop) { + if (file.options && file.options.outputReferences && dictionary.usesReference(prop.original.value)) { + return dictionary.getReference(prop.original.value).name; + } else { + return prop.value; + } + } %> // <% // Filter to only those props wanted based on the filter, then sort // them by category to keep like props together, then by name // to make them easier to find alphabetically. - var props = _.sortBy(allProperties, item => item.attributes.category + item.name); + var props = _.sortBy(dictionary.allProperties, item => item.attributes.category + item.name); %> import UIKit -public class <%= this.className %> { - <%= props.map(function(prop) { return 'public static let ' + prop.name + ' = ' + prop.value; }).join('\n ') %> +public class <%= file.className %> { + <%= props.map(function(prop) { return 'public static let ' + prop.name + ' = ' + propToValue(prop); }).join('\n ') %> } diff --git a/lib/utils/references/getReference.js b/lib/utils/references/getReference.js new file mode 100644 index 000000000..377036c4b --- /dev/null +++ b/lib/utils/references/getReference.js @@ -0,0 +1,49 @@ +/* + * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with + * the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +const getPath = require('./getPathFromName'); +const createReferenceRegex = require('./createReferenceRegex'); +const resolveReference = require('./resolveReference'); + +/** + * This is a helper function that is added to the dictionary object that + * is passed to formats and actions. It will resolve a reference giving + * you access to the token (not just the value) that a value references. + * This allows formats to have variable references in the output. For example: + * + * ```css + * --color-background-base: var(--color-core-white); + * ``` + * + * @param {string} value the value that contains a reference + * @returns {any} + */ +function getReference(value) { + // `this` is the dictionary object passed to formats and actions + const self = this; + const regex = createReferenceRegex({}); + let ref; + + value.replace(regex, function(match, variable) { + // remove 'value' to access the whole token object + variable = variable.trim().replace('.value',''); + + // Find what the value is referencing + const pathName = getPath(variable); + ref = resolveReference(pathName, self.properties); + }); + + return ref; +} + +module.exports = getReference; diff --git a/lib/utils/references/resolveReference.js b/lib/utils/references/resolveReference.js new file mode 100644 index 000000000..cc1c581b8 --- /dev/null +++ b/lib/utils/references/resolveReference.js @@ -0,0 +1,36 @@ +/* + * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with + * the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +function resolveReference(path, obj) { + let i, + ref = obj; + + if (!Array.isArray(path)) { + return; + } + + for (i = 0; i < path.length; i++) { + // Check for undefined as 0 is a valid, truthy value + if (typeof ref[path[i]] !== 'undefined') { + ref = ref[path[i]]; + } else { + // set the reference as undefined if we don't find anything + ref = undefined; + break; + } + } + + return ref; +} + +module.exports = resolveReference; diff --git a/lib/utils/resolveObject.js b/lib/utils/resolveObject.js index 17d65157a..8e5a1cd20 100644 --- a/lib/utils/resolveObject.js +++ b/lib/utils/resolveObject.js @@ -13,10 +13,11 @@ const _ = require('lodash'), GroupMessages = require('./groupMessages'), - usesReference = require('./../utils/references/usesReference'), - getName = require('./../utils/references/getName'), - getPath = require('./../utils/references/getPathFromName'), - createReferenceRegex = require('./../utils/references/createReferenceRegex'); + usesReference = require('./references/usesReference'), + getName = require('./references/getName'), + getPath = require('./references/getPathFromName'), + createReferenceRegex = require('./references/createReferenceRegex'), + resolveReference = require('./references/resolveReference'); const PROPERTY_REFERENCE_WARNINGS = GroupMessages.GROUP.PropertyReferenceWarnings; @@ -91,7 +92,9 @@ function compile_value(value, stack) { stack.push(variable); // Find what the value is referencing - ref = selfRef(variable, updated_object); + const pathName = getPath(variable, options); + const context = getName(current_context, options); + ref = resolveReference(pathName, updated_object); if (typeof ref !== 'undefined') { if (typeof ref === 'string') { @@ -136,6 +139,10 @@ function compile_value(value, stack) { to_ret = ref; } } else { + GroupMessages.add( + PROPERTY_REFERENCE_WARNINGS, + "Reference doesn't exist: " + context + " tries to reference " + variable + ", which is not defined" + ); // Leave the circular reference unchanged to_ret = value; } @@ -147,33 +154,4 @@ function compile_value(value, stack) { return to_ret; } - -function selfRef(pathName, obj) { - let i, - ref = obj, - path = getPath(pathName, options), - context = getName(current_context, options); - - for (i = 0; i < path.length; i++) { - // Check for undefined as 0 is a valid, truthy value - if (typeof ref[path[i]] !== 'undefined') { - ref = ref[path[i]]; - } else { - // set the reference as undefined if we don't find anything - ref = undefined; - break; - } - } - - if (typeof ref === 'undefined') { - GroupMessages.add( - PROPERTY_REFERENCE_WARNINGS, - "Reference doesn't exist: " + context + " tries to reference " + pathName + ", which is not defined" - ); - } - - return ref; -} - - module.exports = resolveObject; diff --git a/package.json b/package.json index e732fd129..514b94a2a 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ ], "scripts": { "lint": "eslint --fix index.js lib/**/*.js __tests__/**/*.js", - "test": "npm run test-types && npm run lint && jest --runInBand", + "test": "npm run test-types && npm run lint && jest --runInBand --silent", "test-types": "tsd", "test-watch": "npm run test-types && npm run lint && jest --runInBand --watch", "generate-docs": "node ./scripts/generateDocs.js", @@ -54,9 +54,12 @@ "jest": { "verbose": false, "roots": [ - "__tests__" + "__tests__", + "__integration__" ], + "setupFilesAfterEnv": ["/__tests__/__setup.js"], "testPathIgnorePatterns": [ + "/__tests__/__setup.js", "/__tests__/__helpers.js", "/__tests__/__assets/", "/__tests__/__configs/", diff --git a/scripts/handlebars/templates/formats.hbs b/scripts/handlebars/templates/formats.hbs index 73239fc09..0ce58050f 100644 --- a/scripts/handlebars/templates/formats.hbs +++ b/scripts/handlebars/templates/formats.hbs @@ -69,6 +69,74 @@ A special file configuration is `filter`, which will filter the tokens before th The token/property that is passed to the filter function has already been [transformed](transforms.md) and has [default metadata](properties.md?id=default-property-metadata) added by Style Dictionary. +### References in output files + +Starting with version 3.0, some formats can keep the references in the output. This is a bit hard to explain, so let's look at an example. Say you have this very basic set of design tokens: + +```json5 +// tokens.json +{ + "color": { + "red": { "value": "#ff0000" }, + "danger": { "value": "{color.red.value}" }, + "error": { "value": "{color.danger.value}" } + } +} +``` + +With this configuration: + +```json5 +// config.json +{ + "source": ["tokens.json"] + "platforms": { + "css": { + "transformGroup": "css", + "files": [{ + "destination": "variables.css", + "format": "css/variables", + "options": { + // Look here 👇 + "outputReferences": true + } + }] + } + } +} +``` + +This would be the output: + +```css +:root { + --color-red: #ff0000; + --color-danger: var(--color-red); + --color-error: var(--color-danger); +} +``` + +The css variables file now keeps the references you have in your Style Dictionary! This is useful for outputting themeable and dynamic code. + +Without `outputReferences: true` Style Dictionary would resolve all references and the output would be: + +```css +:root { + --color-red: #ff0000; + --color-danger: #ff0000; + --color-error: #ff0000; +} +``` + +Not all formats use the `outputReferences` option because that file format might not support it (like JSON for example). The current list of formats that handle `outputReferences`: + +* [css/variables](#cssvariables) +* [scss/variables](#scssvariables) +* [less/variables](#lessvariables) +* [android/resources](#androidresources) +* [ios-swift/class.swift](#ios-swiftclassswift) +* [flutter/class.dart](#flutterclassdart) + ### Creating formats You can create custom formats using the [`registerFormat`](api.md#registerformat) function. If you want to add configuration to your custom format, `this` is bound to the file object. Using this, you can access attributes on the file object with `this.myCustomAttribute` if the file object looks like: