diff --git a/.circleci/config.yml b/.circleci/config.yml index 9a3bba46a3..ac6e2e77cd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,7 @@ orbs: parameters: cache_version: type: string - default: v5 + default: v6 nodejs_base_image: type: string default: 'cimg/node:20.17.0' @@ -67,21 +67,15 @@ jobs: build: <<: *default executor: nodejs - resource_class: xlarge + resource_class: medium steps: - *checkout - *restore_node_modules - - run: yarn icons:build - run: yarn build - - run: yarn build:monorepo - persist_to_workspace: root: ~/welcome-ui paths: - - packages/**/dist - lib/dist - - packages/Themes/**/dist - - icons/dist - - packages/IconFont/fonts lint: <<: *default @@ -102,9 +96,9 @@ jobs: - *restore_node_modules - attach_workspace: at: ~/welcome-ui - - run: yarn jest --detectOpenHandles $(circleci tests glob "./packages/**/*.test.{ts,js,tsx}" | circleci tests split | xargs) + - run: yarn jest --detectOpenHandles $(circleci tests glob "./lib/**/*.test.{ts,js,tsx}" | circleci tests split | xargs) - build_and_release_icon_font: + release_icon_font: <<: *default executor: nodejs steps: @@ -112,25 +106,22 @@ jobs: - *restore_node_modules - attach_workspace: at: ~/welcome-ui - - run: yarn icons:collect --force - - run: yarn webfont:build - run: name: Prepare font hash command: | - echo "export ICON_FONT_HASH=$(sha1sum packages/IconFont/fonts/welcome-icon-font.woff2 | awk '{ print $1 }')" >> $BASH_ENV + echo "export ICON_FONT_HASH=$(sha1sum lib/src/components/IconFont/fonts/welcome-icon-font.woff2 | awk '{ print $1 }')" >> $BASH_ENV source $BASH_ENV - yarn build:core - aws-cli/setup: aws_access_key_id: AWS_ACCESS_KEY_ID aws_secret_access_key: AWS_SECRET_ACCESS_KEY region: ${AWS_REGION} - aws-s3/sync: - from: packages/IconFont/fonts + from: lib/src/components/IconFont/fonts to: s3://welcome-ui/public/fonts/icon-font/$ICON_FONT_HASH arguments: | --cache-control "public, max-age=31536000" --exclude "*" --include "welcome-icon-font.woff" --include "welcome-icon-font.woff2" --metadata GitCommit=$CIRCLE_SHA1 --delete - aws-s3/sync: - from: packages/IconFont/fonts + from: lib/src/components/IconFont/fonts to: s3://wttj-production/fonts/icon-font/$ICON_FONT_HASH arguments: | --cache-control "public, max-age=31536000" --exclude "*" --include "welcome-icon-font.woff" --include "welcome-icon-font.woff2" --metadata GitCommit=$CIRCLE_SHA1 --delete @@ -144,7 +135,7 @@ jobs: - *restore_node_modules - attach_workspace: at: ~/welcome-ui - - run: yarn website:build + - run: yarn build:website - persist_to_workspace: root: ~/welcome-ui paths: @@ -201,7 +192,7 @@ jobs: at: ~/welcome-ui - run: name: build w/ prefix - command: VERSION=$CIRCLE_BRANCH yarn website:build + command: VERSION=$CIRCLE_BRANCH yarn build:website - aws-cli/setup: aws_access_key_id: AWS_ACCESS_KEY_ID aws_secret_access_key: AWS_SECRET_ACCESS_KEY @@ -273,15 +264,14 @@ workflows: only: /.*/ requires: - build - - build_and_release_icon_font: + - release_icon_font: filters: tags: only: /.*/ context: - aws requires: - - lint - - test + - build - website_build: filters: tags: @@ -293,8 +283,10 @@ workflows: - aws - welcome-ui requires: + - lint + - test - website_build - - build_and_release_icon_font + - release_icon_font - website_deploy_prod: filters: branches: @@ -305,8 +297,10 @@ workflows: - aws - welcome-ui requires: + - lint + - test - website_build - - build_and_release_icon_font + - release_icon_font - previous_website_versions_build_deploy_prod: filters: # should add branches here to keep previous doc version of future majors @@ -316,14 +310,18 @@ workflows: - aws - welcome-ui requires: - - build - - build_and_release_icon_font + - lint + - test + - website_build + - release_icon_font - release: context: - welcome-ui requires: - - build - - build_and_release_icon_font + - lint + - test + - website_build + - release_icon_font filters: branches: ignore: /.*/ @@ -333,8 +331,10 @@ workflows: context: - welcome-ui requires: - - build - - build_and_release_icon_font + - lint + - test + - website_build + - release_icon_font filters: branches: ignore: /.*/ diff --git a/.gitignore b/.gitignore index 161ff53bc7..5a32f35d27 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -.env website/out website/.next node_modules/ @@ -10,7 +9,6 @@ yarn-error.log *.tgz # Fonts -fonts/ dist/ # vite diff --git a/.husky/pre-push b/.husky/pre-push index 576868c00d..4f3315afe1 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1 +1 @@ -yarn icons:collect && yarn lint && yarn test +yarn lint && yarn test diff --git a/babel.config.js b/babel.config.js index 09de302ba0..591e26f532 100644 --- a/babel.config.js +++ b/babel.config.js @@ -5,9 +5,16 @@ module.exports = { }, }, presets: [ - ['@babel/preset-env', { modules: false, loose: true }], - '@babel/preset-typescript', + ['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-react', + [ + 'babel-preset-vite', + { + env: true, + glob: false, + }, + ], + '@babel/preset-typescript', ], plugins: [ '@babel/plugin-proposal-optional-chaining', diff --git a/jest.config.js b/jest.config.js index 8d0d4c58be..1b28d1acf1 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,9 +3,9 @@ module.exports = { '\\.(css|less)$': '/mocks/styleMock.js', }, transform: { - '^.+\\.(ts|tsx|js|jsx)?$': '@swc/jest', + '^.+\\.(ts|tsx|js|jsx)?$': 'babel-jest', }, setupFilesAfterEnv: ['/mocks/setup.js'], modulePaths: ['/node_modules'], - testEnvironment: 'jsdom', + testEnvironment: 'jest-environment-jsdom', } diff --git a/lib/.env b/lib/.env new file mode 100644 index 0000000000..02ade6033f --- /dev/null +++ b/lib/.env @@ -0,0 +1 @@ +VITE_ICON_FONT_HASH=f19d0de47a5f6f7446d37111f075c0901835bf12 diff --git a/lib/package.json b/lib/package.json index 1ebc74fb8e..d446bed128 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,6 +1,6 @@ { "name": "welcome-ui", - "version": "1.0.0-beta.4", + "version": "1.0.0-beta.6", "description": "Customizable design system with react • styled-components • styled-system and ariakit.", "files": [ "dist" diff --git a/lib/src/components/Breadcrumb/docs/index.mdx b/lib/src/components/Breadcrumb/docs/index.mdx index a6d8afebd9..8ccdf00d89 100644 --- a/lib/src/components/Breadcrumb/docs/index.mdx +++ b/lib/src/components/Breadcrumb/docs/index.mdx @@ -3,6 +3,7 @@ category: navigation description: The Breadcrumb component provides a trail of links to help users understand their location within the application's hierarchy and navigate back to previous pages. It enhances user experience by improving navigation and context within complex interfaces. packageName: breadcrumb title: Breadcrumb +peerDependencies: '@juggle/resize-observer' --- ### Separator diff --git a/lib/src/components/Breadcrumb/docs/properties.json b/lib/src/components/Breadcrumb/docs/properties.json index 2812362525..bfabaaa3d9 100644 --- a/lib/src/components/Breadcrumb/docs/properties.json +++ b/lib/src/components/Breadcrumb/docs/properties.json @@ -87,15 +87,12 @@ }, { "value": "ReactElement>", - "description": "Represents a JSX element.\n\nWhere {@link ReactNode} represents everything that can be rendered, `ReactElement`\nonly represents JSX.", - "fullComment": "Represents a JSX element.\n\nWhere {@link ReactNode} represents everything that can be rendered, `ReactElement`\nonly represents JSX.\n@template P The type of the props object\n@template T The type of the component or tag\n@example ```tsx\nconst element: ReactElement =
;\n```", - "tags": { - "template": "P The type of the props object\nT The type of the component or tag", - "example": "```tsx\nconst element: ReactElement =
;\n```" - } + "description": "", + "fullComment": "", + "tags": {} }, { - "value": "Iterable", + "value": "ReactFragment", "description": "", "fullComment": "", "tags": {} diff --git a/lib/src/components/Checkbox/docs/properties.json b/lib/src/components/Checkbox/docs/properties.json index a14bc1eb75..f9de98acfb 100644 --- a/lib/src/components/Checkbox/docs/properties.json +++ b/lib/src/components/Checkbox/docs/properties.json @@ -20,7 +20,7 @@ "required": false, "type": { "name": "enum", - "raw": "ElementType", + "raw": "ElementType", "value": [ { "value": "\"symbol\"" @@ -82,9 +82,6 @@ { "value": "\"caption\"" }, - { - "value": "\"center\"" - }, { "value": "\"cite\"" }, @@ -289,9 +286,6 @@ { "value": "\"samp\"" }, - { - "value": "\"search\"" - }, { "value": "\"slot\"" }, @@ -532,9 +526,6 @@ { "value": "\"rect\"" }, - { - "value": "\"set\"" - }, { "value": "\"stop\"" }, @@ -558,21 +549,15 @@ }, { "value": "ComponentClass", - "description": "Represents a component class in React.", - "fullComment": "Represents a component class in React.\n@template P The props the component accepts.\n@template S The internal state of the component.", - "tags": { - "template": "P The props the component accepts.\nS The internal state of the component." - } + "description": "", + "fullComment": "", + "tags": {} }, { "value": "FunctionComponent", - "description": "Represents the type of a function component. Can optionally\nreceive a type argument that represents the props the component\naccepts.", - "fullComment": "Represents the type of a function component. Can optionally\nreceive a type argument that represents the props the component\naccepts.\n@template P The props the component accepts.\n@see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components React TypeScript Cheatsheet}\n@example ```tsx\n// With props:\ntype Props = { name: string }\n\nconst MyComponent: FunctionComponent = (props) => {\n return
{props.name}
\n}\n```\n@example ```tsx\n// Without props:\nconst MyComponentWithoutProps: FunctionComponent = () => {\n return
MyComponentWithoutProps
\n}\n```", - "tags": { - "template": "P The props the component accepts.", - "see": "{@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components React TypeScript Cheatsheet}", - "example": "```tsx\n// With props:\ntype Props = { name: string }\n\nconst MyComponent: FunctionComponent = (props) => {\n return
{props.name}
\n}\n```\n```tsx\n// Without props:\nconst MyComponentWithoutProps: FunctionComponent = () => {\n return
MyComponentWithoutProps
\n}\n```" - } + "description": "", + "fullComment": "", + "tags": {} } ] } diff --git a/lib/src/components/Drawer/docs/properties.json b/lib/src/components/Drawer/docs/properties.json index f391dee47e..94a8220b36 100644 --- a/lib/src/components/Drawer/docs/properties.json +++ b/lib/src/components/Drawer/docs/properties.json @@ -372,9 +372,6 @@ { "value": "\"caption\"" }, - { - "value": "\"center\"" - }, { "value": "\"cite\"" }, @@ -483,9 +480,6 @@ { "value": "\"samp\"" }, - { - "value": "\"search\"" - }, { "value": "\"section\"" }, @@ -1083,16 +1077,16 @@ "required": false, "type": { "name": "enum", - "raw": "RenderProp & { ref?: Ref; }> | ReactElement>", + "raw": "ReactElement> | RenderProp & { ref?: Ref; }>", "value": [ { - "value": "RenderProp & { ref?: Ref; }>", + "value": "ReactElement>", "description": "", "fullComment": "", "tags": {} }, { - "value": "ReactElement>", + "value": "RenderProp & { ref?: Ref; }>", "description": "", "fullComment": "", "tags": {} @@ -1499,9 +1493,6 @@ { "value": "\"caption\"" }, - { - "value": "\"center\"" - }, { "value": "\"cite\"" }, @@ -1610,9 +1601,6 @@ { "value": "\"samp\"" }, - { - "value": "\"search\"" - }, { "value": "\"section\"" }, @@ -2174,16 +2162,16 @@ "required": false, "type": { "name": "enum", - "raw": "RenderProp & { ref?: Ref; }> | ReactElement>", + "raw": "ReactElement> | RenderProp & { ref?: Ref; }>", "value": [ { - "value": "RenderProp & { ref?: Ref; }>", + "value": "ReactElement>", "description": "", "fullComment": "", "tags": {} }, { - "value": "ReactElement>", + "value": "RenderProp & { ref?: Ref; }>", "description": "", "fullComment": "", "tags": {} diff --git a/lib/src/components/DropdownMenu/docs/properties.json b/lib/src/components/DropdownMenu/docs/properties.json index 8750ccaf56..89a7bc2ecf 100644 --- a/lib/src/components/DropdownMenu/docs/properties.json +++ b/lib/src/components/DropdownMenu/docs/properties.json @@ -550,9 +550,6 @@ { "value": "\"caption\"" }, - { - "value": "\"center\"" - }, { "value": "\"cite\"" }, @@ -661,9 +658,6 @@ { "value": "\"samp\"" }, - { - "value": "\"search\"" - }, { "value": "\"section\"" }, @@ -1605,16 +1599,16 @@ "required": false, "type": { "name": "enum", - "raw": "RenderProp & { ref?: Ref; }> | ReactElement>", + "raw": "ReactElement> | RenderProp & { ref?: Ref; }>", "value": [ { - "value": "RenderProp & { ref?: Ref; }>", + "value": "ReactElement>", "description": "", "fullComment": "", "tags": {} }, { - "value": "ReactElement>", + "value": "RenderProp & { ref?: Ref; }>", "description": "", "fullComment": "", "tags": {} diff --git a/lib/src/components/FileDrop/docs/properties.json b/lib/src/components/FileDrop/docs/properties.json index 1920618a00..3b7ede7bc9 100644 --- a/lib/src/components/FileDrop/docs/properties.json +++ b/lib/src/components/FileDrop/docs/properties.json @@ -92,7 +92,7 @@ ], "required": false, "type": { - "name": "(event: DropEvent | ChangeEvent | CreateEvent) => void" + "name": "(event: DropEvent | CreateEvent) => void" } }, "handleRemoveFile": { @@ -111,7 +111,7 @@ ], "required": false, "type": { - "name": "(event: DropEvent | ChangeEvent | CreateEvent) => void" + "name": "(event: DropEvent | CreateEvent) => void" } }, "isClearable": { @@ -224,7 +224,7 @@ ], "required": false, "type": { - "name": "(event: DropEvent | ChangeEvent | CreateEvent) => void" + "name": "(event: DropEvent | CreateEvent) => void" } }, "onError": { diff --git a/lib/src/components/Flex/docs/properties.json b/lib/src/components/Flex/docs/properties.json index 788c079cbb..070cdd9768 100644 --- a/lib/src/components/Flex/docs/properties.json +++ b/lib/src/components/Flex/docs/properties.json @@ -20,9 +20,6 @@ "name": "enum", "raw": "SystemProp", "value": [ - { - "value": "\"center\"" - }, { "value": "\"-moz-initial\"" }, @@ -41,6 +38,9 @@ { "value": "\"unset\"" }, + { + "value": "\"center\"" + }, { "value": "\"end\"" }, @@ -246,9 +246,6 @@ "name": "enum", "raw": "SystemProp", "value": [ - { - "value": "\"center\"" - }, { "value": "\"right\"" }, @@ -273,6 +270,9 @@ { "value": "\"unset\"" }, + { + "value": "\"center\"" + }, { "value": "\"end\"" }, diff --git a/lib/src/components/IconFont/fonts/welcome-icon-font.css b/lib/src/components/IconFont/fonts/welcome-icon-font.css new file mode 100644 index 0000000000..7836eb0171 --- /dev/null +++ b/lib/src/components/IconFont/fonts/welcome-icon-font.css @@ -0,0 +1,915 @@ +@font-face { + font-family: "welcome-icon-font"; + font-display: block; + src: url("welcome-icon-font.woff2?a4ef92da9209c39a02364de1d84300e0") format("woff2"), +url("welcome-icon-font.woff?a4ef92da9209c39a02364de1d84300e0") format("woff"); +} + +i { + line-height: 1; +} + +i:before { + font-family: welcome-icon-font !important; + font-style: normal; + font-weight: normal !important; + vertical-align: top; +} + +.wui-icon-actions:before { + content: "\F101"; +} +.wui-icon-activity:before { + content: "\F102"; +} +.wui-icon-add:before { + content: "\F103"; +} +.wui-icon-address:before { + content: "\F104"; +} +.wui-icon-airplay:before { + content: "\F105"; +} +.wui-icon-alert:before { + content: "\F106"; +} +.wui-icon-alert_outline:before { + content: "\F107"; +} +.wui-icon-analytics:before { + content: "\F108"; +} +.wui-icon-anniversary:before { + content: "\F109"; +} +.wui-icon-archive:before { + content: "\F10A"; +} +.wui-icon-arrow_down:before { + content: "\F10B"; +} +.wui-icon-arrow_left:before { + content: "\F10C"; +} +.wui-icon-arrow_right:before { + content: "\F10D"; +} +.wui-icon-arrow_up:before { + content: "\F10E"; +} +.wui-icon-aspect_ratio_fill:before { + content: "\F10F"; +} +.wui-icon-aspect_ratio_fit:before { + content: "\F110"; +} +.wui-icon-attachment:before { + content: "\F111"; +} +.wui-icon-avatar:before { + content: "\F112"; +} +.wui-icon-avatar_accessory:before { + content: "\F113"; +} +.wui-icon-avatar_body:before { + content: "\F114"; +} +.wui-icon-avatar_bottom:before { + content: "\F115"; +} +.wui-icon-avatar_costume:before { + content: "\F116"; +} +.wui-icon-avatar_head:before { + content: "\F117"; +} +.wui-icon-avatar_top:before { + content: "\F118"; +} +.wui-icon-bar_chart:before { + content: "\F119"; +} +.wui-icon-basketball:before { + content: "\F11A"; +} +.wui-icon-behance:before { + content: "\F11B"; +} +.wui-icon-birthday:before { + content: "\F11C"; +} +.wui-icon-bold:before { + content: "\F11D"; +} +.wui-icon-book:before { + content: "\F11E"; +} +.wui-icon-book_2:before { + content: "\F11F"; +} +.wui-icon-bookmark:before { + content: "\F120"; +} +.wui-icon-bookmark_outline:before { + content: "\F121"; +} +.wui-icon-bulb:before { + content: "\F122"; +} +.wui-icon-bulk:before { + content: "\F123"; +} +.wui-icon-buoy:before { + content: "\F124"; +} +.wui-icon-burn:before { + content: "\F125"; +} +.wui-icon-caddy:before { + content: "\F126"; +} +.wui-icon-calcul:before { + content: "\F127"; +} +.wui-icon-camera:before { + content: "\F128"; +} +.wui-icon-camera_off:before { + content: "\F129"; +} +.wui-icon-camera_on:before { + content: "\F12A"; +} +.wui-icon-candidate_status:before { + content: "\F12B"; +} +.wui-icon-card_view:before { + content: "\F12C"; +} +.wui-icon-cast:before { + content: "\F12D"; +} +.wui-icon-cast_connected:before { + content: "\F12E"; +} +.wui-icon-cast_unavailable:before { + content: "\F12F"; +} +.wui-icon-celebrate:before { + content: "\F130"; +} +.wui-icon-check:before { + content: "\F131"; +} +.wui-icon-clipboard:before { + content: "\F132"; +} +.wui-icon-clock:before { + content: "\F133"; +} +.wui-icon-code:before { + content: "\F134"; +} +.wui-icon-code_block:before { + content: "\F135"; +} +.wui-icon-coffee:before { + content: "\F136"; +} +.wui-icon-collapse:before { + content: "\F137"; +} +.wui-icon-comment:before { + content: "\F138"; +} +.wui-icon-comment_outline:before { + content: "\F139"; +} +.wui-icon-common_area:before { + content: "\F13A"; +} +.wui-icon-compass:before { + content: "\F13B"; +} +.wui-icon-computer:before { + content: "\F13C"; +} +.wui-icon-contract:before { + content: "\F13D"; +} +.wui-icon-control_backward:before { + content: "\F13E"; +} +.wui-icon-control_forward:before { + content: "\F13F"; +} +.wui-icon-control_pause:before { + content: "\F140"; +} +.wui-icon-control_stop:before { + content: "\F141"; +} +.wui-icon-copy:before { + content: "\F142"; +} +.wui-icon-cover_letter:before { + content: "\F143"; +} +.wui-icon-create:before { + content: "\F144"; +} +.wui-icon-credit_card:before { + content: "\F145"; +} +.wui-icon-crescent_moon:before { + content: "\F146"; +} +.wui-icon-crescent_moon_outline:before { + content: "\F147"; +} +.wui-icon-cross:before { + content: "\F148"; +} +.wui-icon-cross_target:before { + content: "\F149"; +} +.wui-icon-crown:before { + content: "\F14A"; +} +.wui-icon-csv:before { + content: "\F14B"; +} +.wui-icon-date:before { + content: "\F14C"; +} +.wui-icon-department:before { + content: "\F14D"; +} +.wui-icon-details:before { + content: "\F14E"; +} +.wui-icon-diamond:before { + content: "\F14F"; +} +.wui-icon-dish:before { + content: "\F150"; +} +.wui-icon-doc:before { + content: "\F151"; +} +.wui-icon-docx:before { + content: "\F152"; +} +.wui-icon-down:before { + content: "\F153"; +} +.wui-icon-download:before { + content: "\F154"; +} +.wui-icon-drag_and_drop:before { + content: "\F155"; +} +.wui-icon-dribbble:before { + content: "\F156"; +} +.wui-icon-earth:before { + content: "\F157"; +} +.wui-icon-edit:before { + content: "\F158"; +} +.wui-icon-education_level:before { + content: "\F159"; +} +.wui-icon-email:before { + content: "\F15A"; +} +.wui-icon-email_outline:before { + content: "\F15B"; +} +.wui-icon-eot:before { + content: "\F15C"; +} +.wui-icon-equal:before { + content: "\F15D"; +} +.wui-icon-expand:before { + content: "\F15E"; +} +.wui-icon-expand_text:before { + content: "\F15F"; +} +.wui-icon-external_link:before { + content: "\F160"; +} +.wui-icon-facebook:before { + content: "\F161"; +} +.wui-icon-factory:before { + content: "\F162"; +} +.wui-icon-female:before { + content: "\F163"; +} +.wui-icon-filters:before { + content: "\F164"; +} +.wui-icon-fingerprint:before { + content: "\F165"; +} +.wui-icon-flag:before { + content: "\F166"; +} +.wui-icon-flag_outline:before { + content: "\F167"; +} +.wui-icon-flag_pointed:before { + content: "\F168"; +} +.wui-icon-folder:before { + content: "\F169"; +} +.wui-icon-fullscreen_off:before { + content: "\F16A"; +} +.wui-icon-fullscreen_on:before { + content: "\F16B"; +} +.wui-icon-gear:before { + content: "\F16C"; +} +.wui-icon-gif:before { + content: "\F16D"; +} +.wui-icon-github:before { + content: "\F16E"; +} +.wui-icon-google:before { + content: "\F16F"; +} +.wui-icon-handshake:before { + content: "\F170"; +} +.wui-icon-hard_hat:before { + content: "\F171"; +} +.wui-icon-hashtag:before { + content: "\F172"; +} +.wui-icon-heading:before { + content: "\F173"; +} +.wui-icon-heading_1:before { + content: "\F174"; +} +.wui-icon-heading_2:before { + content: "\F175"; +} +.wui-icon-heading_3:before { + content: "\F176"; +} +.wui-icon-heading_4:before { + content: "\F177"; +} +.wui-icon-heading_5:before { + content: "\F178"; +} +.wui-icon-heading_6:before { + content: "\F179"; +} +.wui-icon-headset:before { + content: "\F17A"; +} +.wui-icon-heart:before { + content: "\F17B"; +} +.wui-icon-heart_outline:before { + content: "\F17C"; +} +.wui-icon-heart_shiny:before { + content: "\F17D"; +} +.wui-icon-hide:before { + content: "\F17E"; +} +.wui-icon-home:before { + content: "\F17F"; +} +.wui-icon-house:before { + content: "\F180"; +} +.wui-icon-in_progress_candidate:before { + content: "\F181"; +} +.wui-icon-information:before { + content: "\F182"; +} +.wui-icon-information_outline:before { + content: "\F183"; +} +.wui-icon-instagram:before { + content: "\F184"; +} +.wui-icon-italic:before { + content: "\F185"; +} +.wui-icon-jpeg:before { + content: "\F186"; +} +.wui-icon-jpg:before { + content: "\F187"; +} +.wui-icon-justice_hammer:before { + content: "\F188"; +} +.wui-icon-kanban:before { + content: "\F189"; +} +.wui-icon-key:before { + content: "\F18A"; +} +.wui-icon-language:before { + content: "\F18B"; +} +.wui-icon-leaf:before { + content: "\F18C"; +} +.wui-icon-left:before { + content: "\F18D"; +} +.wui-icon-line_chart:before { + content: "\F18E"; +} +.wui-icon-link:before { + content: "\F18F"; +} +.wui-icon-linkedin:before { + content: "\F190"; +} +.wui-icon-location:before { + content: "\F191"; +} +.wui-icon-lock:before { + content: "\F192"; +} +.wui-icon-lock_rounded:before { + content: "\F193"; +} +.wui-icon-log_out:before { + content: "\F194"; +} +.wui-icon-male:before { + content: "\F195"; +} +.wui-icon-map:before { + content: "\F196"; +} +.wui-icon-masonry:before { + content: "\F197"; +} +.wui-icon-meeting_room:before { + content: "\F198"; +} +.wui-icon-megaphone:before { + content: "\F199"; +} +.wui-icon-mention:before { + content: "\F19A"; +} +.wui-icon-menu:before { + content: "\F19B"; +} +.wui-icon-mic:before { + content: "\F19C"; +} +.wui-icon-microphone_off:before { + content: "\F19D"; +} +.wui-icon-microphone_on:before { + content: "\F19E"; +} +.wui-icon-microship:before { + content: "\F19F"; +} +.wui-icon-money:before { + content: "\F1A0"; +} +.wui-icon-more:before { + content: "\F1A1"; +} +.wui-icon-more_android:before { + content: "\F1A2"; +} +.wui-icon-mountain:before { + content: "\F1A3"; +} +.wui-icon-music:before { + content: "\F1A4"; +} +.wui-icon-negative:before { + content: "\F1A5"; +} +.wui-icon-negative_outline:before { + content: "\F1A6"; +} +.wui-icon-negative_straight:before { + content: "\F1A7"; +} +.wui-icon-new_candidate:before { + content: "\F1A8"; +} +.wui-icon-notification:before { + content: "\F1A9"; +} +.wui-icon-npm:before { + content: "\F1AA"; +} +.wui-icon-offer_status:before { + content: "\F1AB"; +} +.wui-icon-office:before { + content: "\F1AC"; +} +.wui-icon-ordered_list:before { + content: "\F1AD"; +} +.wui-icon-origine:before { + content: "\F1AE"; +} +.wui-icon-paperplane:before { + content: "\F1AF"; +} +.wui-icon-pdf:before { + content: "\F1B0"; +} +.wui-icon-pencil:before { + content: "\F1B1"; +} +.wui-icon-phone:before { + content: "\F1B2"; +} +.wui-icon-phone_outline:before { + content: "\F1B3"; +} +.wui-icon-pictures:before { + content: "\F1B4"; +} +.wui-icon-piechart:before { + content: "\F1B5"; +} +.wui-icon-pin:before { + content: "\F1B6"; +} +.wui-icon-pinterest:before { + content: "\F1B7"; +} +.wui-icon-pizza:before { + content: "\F1B8"; +} +.wui-icon-play:before { + content: "\F1B9"; +} +.wui-icon-play_outline:before { + content: "\F1BA"; +} +.wui-icon-playlist:before { + content: "\F1BB"; +} +.wui-icon-png:before { + content: "\F1BC"; +} +.wui-icon-podcast:before { + content: "\F1BD"; +} +.wui-icon-positive:before { + content: "\F1BE"; +} +.wui-icon-positive_outline:before { + content: "\F1BF"; +} +.wui-icon-positive_straight:before { + content: "\F1C0"; +} +.wui-icon-ppt:before { + content: "\F1C1"; +} +.wui-icon-print:before { + content: "\F1C2"; +} +.wui-icon-promote:before { + content: "\F1C3"; +} +.wui-icon-puzzle:before { + content: "\F1C4"; +} +.wui-icon-puzzle_outline:before { + content: "\F1C5"; +} +.wui-icon-question:before { + content: "\F1C6"; +} +.wui-icon-questions:before { + content: "\F1C7"; +} +.wui-icon-quote:before { + content: "\F1C8"; +} +.wui-icon-refresh:before { + content: "\F1C9"; +} +.wui-icon-refuse_candidate:before { + content: "\F1CA"; +} +.wui-icon-remote:before { + content: "\F1CB"; +} +.wui-icon-remove:before { + content: "\F1CC"; +} +.wui-icon-reset:before { + content: "\F1CD"; +} +.wui-icon-resume:before { + content: "\F1CE"; +} +.wui-icon-review:before { + content: "\F1CF"; +} +.wui-icon-review_outline:before { + content: "\F1D0"; +} +.wui-icon-right:before { + content: "\F1D1"; +} +.wui-icon-salary:before { + content: "\F1D2"; +} +.wui-icon-save:before { + content: "\F1D3"; +} +.wui-icon-screenshare_off:before { + content: "\F1D4"; +} +.wui-icon-screenshare_on:before { + content: "\F1D5"; +} +.wui-icon-search:before { + content: "\F1D6"; +} +.wui-icon-search_people:before { + content: "\F1D7"; +} +.wui-icon-settings:before { + content: "\F1D8"; +} +.wui-icon-share1:before { + content: "\F1D9"; +} +.wui-icon-share2:before { + content: "\F1DA"; +} +.wui-icon-shield:before { + content: "\F1DB"; +} +.wui-icon-show:before { + content: "\F1DC"; +} +.wui-icon-slack:before { + content: "\F1DD"; +} +.wui-icon-sound_off:before { + content: "\F1DE"; +} +.wui-icon-sound_on:before { + content: "\F1DF"; +} +.wui-icon-source:before { + content: "\F1E0"; +} +.wui-icon-spanner:before { + content: "\F1E1"; +} +.wui-icon-square_alert:before { + content: "\F1E2"; +} +.wui-icon-stackoverflow:before { + content: "\F1E3"; +} +.wui-icon-stackserver:before { + content: "\F1E4"; +} +.wui-icon-star:before { + content: "\F1E5"; +} +.wui-icon-star_outline:before { + content: "\F1E6"; +} +.wui-icon-strikethrough:before { + content: "\F1E7"; +} +.wui-icon-subtitle:before { + content: "\F1E8"; +} +.wui-icon-success:before { + content: "\F1E9"; +} +.wui-icon-suitcase:before { + content: "\F1EA"; +} +.wui-icon-sun:before { + content: "\F1EB"; +} +.wui-icon-svg:before { + content: "\F1EC"; +} +.wui-icon-table:before { + content: "\F1ED"; +} +.wui-icon-table_column_add_after:before { + content: "\F1EE"; +} +.wui-icon-table_column_add_before:before { + content: "\F1EF"; +} +.wui-icon-table_column_remove:before { + content: "\F1F0"; +} +.wui-icon-table_delete:before { + content: "\F1F1"; +} +.wui-icon-table_divide:before { + content: "\F1F2"; +} +.wui-icon-table_merge_cells:before { + content: "\F1F3"; +} +.wui-icon-table_row_add_above:before { + content: "\F1F4"; +} +.wui-icon-table_row_add_below:before { + content: "\F1F5"; +} +.wui-icon-table_row_remove:before { + content: "\F1F6"; +} +.wui-icon-tag:before { + content: "\F1F7"; +} +.wui-icon-target:before { + content: "\F1F8"; +} +.wui-icon-teepee:before { + content: "\F1F9"; +} +.wui-icon-thumb_down:before { + content: "\F1FA"; +} +.wui-icon-thumb_up:before { + content: "\F1FB"; +} +.wui-icon-trash:before { + content: "\F1FC"; +} +.wui-icon-tree:before { + content: "\F1FD"; +} +.wui-icon-trophy:before { + content: "\F1FE"; +} +.wui-icon-ttf:before { + content: "\F1FF"; +} +.wui-icon-twitch:before { + content: "\F200"; +} +.wui-icon-twitter:before { + content: "\F201"; +} +.wui-icon-txt:before { + content: "\F202"; +} +.wui-icon-type:before { + content: "\F203"; +} +.wui-icon-unavailable:before { + content: "\F204"; +} +.wui-icon-underline:before { + content: "\F205"; +} +.wui-icon-unordered_list:before { + content: "\F206"; +} +.wui-icon-up:before { + content: "\F207"; +} +.wui-icon-update:before { + content: "\F208"; +} +.wui-icon-upload:before { + content: "\F209"; +} +.wui-icon-user:before { + content: "\F20A"; +} +.wui-icon-user_outline:before { + content: "\F20B"; +} +.wui-icon-video:before { + content: "\F20C"; +} +.wui-icon-video_camera:before { + content: "\F20D"; +} +.wui-icon-video_camera_2:before { + content: "\F20E"; +} +.wui-icon-watch_later:before { + content: "\F20F"; +} +.wui-icon-woff:before { + content: "\F210"; +} +.wui-icon-woff2:before { + content: "\F211"; +} +.wui-icon-write:before { + content: "\F212"; +} +.wui-icon-wttj:before { + content: "\F213"; +} +.wui-icon-xing:before { + content: "\F214"; +} +.wui-icon-xls:before { + content: "\F215"; +} +.wui-icon-xlsx:before { + content: "\F216"; +} +.wui-icon-youtube:before { + content: "\F217"; +} +.wui-icon-zapier:before { + content: "\F218"; +} +.wui-icon-zip:before { + content: "\F219"; +} +.wui-icon-move:before { + content: "\F21A"; +} +.wui-icon-tiktok:before { + content: "\F21B"; +} +.wui-icon-flag_us:before { + content: "\F21C"; +} +.wui-icon-euro_currency:before { + content: "\F21D"; +} +.wui-icon-x:before { + content: "\F21E"; +} +.wui-icon-sparkles:before { + content: "\F21F"; +} +.wui-icon-mobile:before { + content: "\F220"; +} +.wui-icon-tablet:before { + content: "\F221"; +} +.wui-icon-certified:before { + content: "\F222"; +} +.wui-icon-masonry_2:before { + content: "\F223"; +} +.wui-icon-connection:before { + content: "\F224"; +} +.wui-icon-arrow_line_left:before { + content: "\F226"; +} +.wui-icon-arrow_line_right:before { + content: "\F227"; +} +.wui-icon-arrow_line_down:before { + content: "\F228"; +} +.wui-icon-arrow_line_up:before { + content: "\F229"; +} +.wui-icon-symbol:before { + content: "\F22A"; +} +.wui-icon-thunderclock:before { + content: "\F22B"; +} +.wui-icon-extend:before { + content: "\F22C"; +} diff --git a/lib/src/components/IconFont/fonts/welcome-icon-font.svg b/lib/src/components/IconFont/fonts/welcome-icon-font.svg new file mode 100644 index 0000000000..4d61bcf537 --- /dev/null +++ b/lib/src/components/IconFont/fonts/welcome-icon-font.svg @@ -0,0 +1,1806 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/src/components/IconFont/fonts/welcome-icon-font.ttf b/lib/src/components/IconFont/fonts/welcome-icon-font.ttf new file mode 100644 index 0000000000..2d549341e6 Binary files /dev/null and b/lib/src/components/IconFont/fonts/welcome-icon-font.ttf differ diff --git a/lib/src/components/IconFont/fonts/welcome-icon-font.woff b/lib/src/components/IconFont/fonts/welcome-icon-font.woff new file mode 100644 index 0000000000..67e5cc9a89 Binary files /dev/null and b/lib/src/components/IconFont/fonts/welcome-icon-font.woff differ diff --git a/lib/src/components/IconFont/fonts/welcome-icon-font.woff2 b/lib/src/components/IconFont/fonts/welcome-icon-font.woff2 new file mode 100644 index 0000000000..6fdbabc189 Binary files /dev/null and b/lib/src/components/IconFont/fonts/welcome-icon-font.woff2 differ diff --git a/lib/src/components/Icons/index.d.ts b/lib/src/components/Icons/index.d.ts index 1d8b9279b6..b22c6faa0f 100644 --- a/lib/src/components/Icons/index.d.ts +++ b/lib/src/components/Icons/index.d.ts @@ -1,7 +1,6 @@ import React from 'react' import { IconProps } from '../Icon' - export declare const ActionsIcon: React.FC export declare const ActivityIcon: React.FC export declare const AddIcon: React.FC diff --git a/lib/src/components/Popover/docs/properties.json b/lib/src/components/Popover/docs/properties.json index d78f4616f8..03f495a137 100644 --- a/lib/src/components/Popover/docs/properties.json +++ b/lib/src/components/Popover/docs/properties.json @@ -234,9 +234,6 @@ { "value": "\"caption\"" }, - { - "value": "\"center\"" - }, { "value": "\"cite\"" }, @@ -345,9 +342,6 @@ { "value": "\"samp\"" }, - { - "value": "\"search\"" - }, { "value": "\"section\"" }, @@ -1093,16 +1087,16 @@ "required": false, "type": { "name": "enum", - "raw": "RenderProp & { ref?: Ref; }> | ReactElement>", + "raw": "ReactElement> | RenderProp & { ref?: Ref; }>", "value": [ { - "value": "RenderProp & { ref?: Ref; }>", + "value": "ReactElement>", "description": "", "fullComment": "", "tags": {} }, { - "value": "ReactElement>", + "value": "RenderProp & { ref?: Ref; }>", "description": "", "fullComment": "", "tags": {} @@ -1568,9 +1562,6 @@ { "value": "\"caption\"" }, - { - "value": "\"center\"" - }, { "value": "\"cite\"" }, @@ -1679,9 +1670,6 @@ { "value": "\"samp\"" }, - { - "value": "\"search\"" - }, { "value": "\"section\"" }, @@ -2499,16 +2487,16 @@ "required": false, "type": { "name": "enum", - "raw": "RenderProp & { ref?: Ref; }> | ReactElement>", + "raw": "ReactElement> | RenderProp & { ref?: Ref; }>", "value": [ { - "value": "RenderProp & { ref?: Ref; }>", + "value": "ReactElement>", "description": "", "fullComment": "", "tags": {} }, { - "value": "ReactElement>", + "value": "RenderProp & { ref?: Ref; }>", "description": "", "fullComment": "", "tags": {} diff --git a/lib/src/components/RadioGroup/docs/properties.json b/lib/src/components/RadioGroup/docs/properties.json index d261c54ca1..eddb848e85 100644 --- a/lib/src/components/RadioGroup/docs/properties.json +++ b/lib/src/components/RadioGroup/docs/properties.json @@ -96,7 +96,7 @@ "required": false, "type": { "name": "enum", - "raw": "ElementType", + "raw": "ElementType", "value": [ { "value": "\"symbol\"" @@ -158,9 +158,6 @@ { "value": "\"caption\"" }, - { - "value": "\"center\"" - }, { "value": "\"cite\"" }, @@ -365,9 +362,6 @@ { "value": "\"samp\"" }, - { - "value": "\"search\"" - }, { "value": "\"slot\"" }, @@ -608,9 +602,6 @@ { "value": "\"rect\"" }, - { - "value": "\"set\"" - }, { "value": "\"stop\"" }, @@ -634,21 +625,15 @@ }, { "value": "ComponentClass", - "description": "Represents a component class in React.", - "fullComment": "Represents a component class in React.\n@template P The props the component accepts.\n@template S The internal state of the component.", - "tags": { - "template": "P The props the component accepts.\nS The internal state of the component." - } + "description": "", + "fullComment": "", + "tags": {} }, { "value": "FunctionComponent", - "description": "Represents the type of a function component. Can optionally\nreceive a type argument that represents the props the component\naccepts.", - "fullComment": "Represents the type of a function component. Can optionally\nreceive a type argument that represents the props the component\naccepts.\n@template P The props the component accepts.\n@see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components React TypeScript Cheatsheet}\n@example ```tsx\n// With props:\ntype Props = { name: string }\n\nconst MyComponent: FunctionComponent = (props) => {\n return
{props.name}
\n}\n```\n@example ```tsx\n// Without props:\nconst MyComponentWithoutProps: FunctionComponent = () => {\n return
MyComponentWithoutProps
\n}\n```", - "tags": { - "template": "P The props the component accepts.", - "see": "{@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components React TypeScript Cheatsheet}", - "example": "```tsx\n// With props:\ntype Props = { name: string }\n\nconst MyComponent: FunctionComponent = (props) => {\n return
{props.name}
\n}\n```\n```tsx\n// Without props:\nconst MyComponentWithoutProps: FunctionComponent = () => {\n return
MyComponentWithoutProps
\n}\n```" - } + "description": "", + "fullComment": "", + "tags": {} } ] } diff --git a/lib/src/components/Select/docs/properties.json b/lib/src/components/Select/docs/properties.json index 2df8b96d39..f134853069 100644 --- a/lib/src/components/Select/docs/properties.json +++ b/lib/src/components/Select/docs/properties.json @@ -524,7 +524,7 @@ ], "required": false, "type": { - "name": "(item: unknown, isItemSelected?: boolean) => string | ReactElement>" + "name": "(item: SelectOption, isItemSelected?: boolean) => string | ReactElement>" } }, "renderMultiple": { diff --git a/lib/src/theme/fonts.ts b/lib/src/theme/fonts.ts index 2ba6d54309..4ba53b277f 100644 --- a/lib/src/theme/fonts.ts +++ b/lib/src/theme/fonts.ts @@ -49,7 +49,9 @@ export const fontFaces = (theme: ThemeValues): ThemeFontFaces => ({ ], 'welcome-icon-font': [ { - url: `${theme.fontsUrl}/icon-font/__ICON_FONT_HASH__/welcome-icon-font`, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + url: `${theme.fontsUrl}/icon-font/${import.meta.env.VITE_ICON_FONT_HASH}/welcome-icon-font`, display: 'block', }, ], diff --git a/lib/tsconfig.json b/lib/tsconfig.json index 2408fb0029..1143149650 100644 --- a/lib/tsconfig.json +++ b/lib/tsconfig.json @@ -1,8 +1,9 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "sourceMap": false, + "sourceMap": true, "declaration": true, "target": "ES6" - } + }, + "exclude": ["**/*.json"] } diff --git a/lib/vite-env.d.ts b/lib/vite-env.d.ts new file mode 100644 index 0000000000..9b05b50a31 --- /dev/null +++ b/lib/vite-env.d.ts @@ -0,0 +1,9 @@ +/// + +interface ImportMetaEnv { + readonly VITE_ICON_FONT_HASH: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/package.json b/package.json index 7c42a005e8..d75bc12095 100644 --- a/package.json +++ b/package.json @@ -2,14 +2,12 @@ "name": "main", "description": "Customizable design system with react • styled-components • styled-system and ariakit.", "scripts": { - "build:core": "./scripts/core.sh", "build:lib": "cd lib && yarn build", - "build": "yarn webfont:build && yarn build:core && yarn build:lib", + "build:website": "cd website && yarn && yarn build", + "build": "yarn webfont && yarn build:lib", "check:audit": "/bin/bash -c 'yarn audit --level critical; [[ $? -ge 16 ]] && exit 1 || exit 0'", - "website:build": "cd website && yarn && yarn build", - "icons:collect": "node -r esm scripts/icons-collect.js", - "icons:optimize": "node -r esm scripts/icons-optimize.js", - "icons": "yarn icons:optimize && yarn icons:collect && yarn webfont && yarn build && yarn", + "icons": "node -r esm scripts/icons-optimize.js && node -r esm scripts/icons-collect.js && yarn webfont", + "webfont": "node -r esm scripts/webfont-build.js --force", "lint:css": "stylelint '**/styles.ts'", "lint:js": "eslint scripts lib --max-warnings 0", "lint:mdx": "prettier --parser mdx --write '**/docs/index.mdx'", @@ -17,15 +15,11 @@ "lint:website": "cd website && yarn lint", "lint": "yarn lint:js && yarn lint:css && yarn lint:ts && yarn lint:mdx && yarn lint:website", "postinstall": "husky install", - "pre-build": "yarn icons:collect", - "release": "todo", "dev:prerelease": "todo", + "release": "todo", "start": "cd lib && yarn start", - "website": "cd website && yarn dev -p 3020", "test": "yarn jest", - "webfont:build": "node -r esm scripts/webfont-build.js --force && yarn build:lib", - "webfont:deploy": "./scripts/webfont-deploy.sh", - "webfont": "yarn webfont:build && yarn webfont:deploy" + "website": "cd website && yarn dev -p 3020" }, "private": true, "workspaces": [ @@ -62,8 +56,8 @@ "@babel/plugin-proposal-optional-chaining": "7.21.0", "@babel/plugin-transform-modules-commonjs": "7.25.9", "@babel/plugin-transform-runtime": "^7.25.4", - "@babel/preset-env": "7.26.0", - "@babel/preset-react": "7.25.9", + "@babel/preset-env": "^7.26.0", + "@babel/preset-react": "^7.26.3", "@babel/preset-typescript": "^7.22.11", "@commitlint/cli": "^17.7.1", "@commitlint/config-conventional": "^17.7.0", @@ -84,9 +78,10 @@ "@vusion/webfonts-generator": "^0.8.0", "@xstyled/styled-components": "^3.7.3", "aws-sdk": "^2.1691.0", - "babel-jest": "29.7.0", + "babel-jest": "^29.7.0", "babel-plugin-annotate-pure-calls": "^0.4.0", "babel-plugin-transform-async-to-promises": "^0.8.18", + "babel-preset-vite": "^1.1.3", "colors": "^1.4.0", "conventional-github-releaser": "^3.1.3", "eslint-plugin-typescript-sort-keys": "^3.3.0", @@ -94,7 +89,7 @@ "glob": "^11.0.0", "husky": "8.0.3", "jest": "29.7.0", - "jest-environment-jsdom": "29.7.0", + "jest-environment-jsdom": "^29.7.0", "jest-styled-components": "7.2.0", "lodash.difference": "^4.5.0", "minimist": "1.2.8", diff --git a/scripts/core.sh b/scripts/core.sh deleted file mode 100755 index 0902f19a6d..0000000000 --- a/scripts/core.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -FONTS_DIR=lib/src/components/IconFont/fonts -FONT_FILE="$FONTS_DIR/welcome-icon-font.woff2" - -if [[ -f "$FONT_FILE" ]]; then - ICON_FONT_HASH=$(sha1sum $FONT_FILE | awk '{ print $1 }') - - echo $ICON_FONT_HASH - # lerna run build --scope @welcome-ui/core -- ICON_FONT_HASH=$ICON_FONT_HASH -else - echo "Font doesn't exist. Please run 'yarn webfont:build'" - exit 1 -fi diff --git a/scripts/generate-icon-hash.sh b/scripts/generate-icon-hash.sh new file mode 100755 index 0000000000..c8007274ae --- /dev/null +++ b/scripts/generate-icon-hash.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Set paths +FONTS_DIR=lib/src/components/IconFont/fonts +FONT_FILE="$FONTS_DIR/welcome-icon-font.woff2" +ENV_FILE="lib/.env" + +# Check if font file exists +if [[ -f "$FONT_FILE" ]]; then + # Generate hash + ICON_FONT_HASH=$(sha1sum $FONT_FILE | awk '{ print $1 }') + + # Create or update .env file with the VITE_ prefixed variable + echo "VITE_ICON_FONT_HASH=$ICON_FONT_HASH" > $ENV_FILE + + echo "Environment file created with hash: $ICON_FONT_HASH" +else + echo "Error: Font file not found at $FONT_FILE" + exit 1 +fi diff --git a/scripts/webfont-deploy.sh b/scripts/webfont-deploy.sh deleted file mode 100755 index d890a17f53..0000000000 --- a/scripts/webfont-deploy.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -FONTS_DIR=packages/IconFont/fonts -FONT_FILE="$FONTS_DIR/welcome-icon-font.woff2" - -if [[ -f "$FONT_FILE" ]]; then - ICON_FONT_HASH=$(sha1sum $FONT_FILE | awk '{ print $1 }') - - echo "Copying fonts to s3://welcome-ui/public/fonts/icon-font/$ICON_FONT_HASH/" - - aws s3 sync $FONTS_DIR s3://welcome-ui/public/fonts/icon-font/$ICON_FONT_HASH/ --cache-control 'public, max-age=31536000' --exclude '*' --include 'welcome-icon-font.woff, welcome-icon-font.woff2' - - echo "Copying fonts to s3://wttj-production/fonts/icon-font/$ICON_FONT_HASH/" - - aws s3 sync $FONTS_DIR s3://wttj-production/fonts/icon-font/$ICON_FONT_HASH/ --cache-control 'public, max-age=31536000' --exclude '*' --include 'welcome-icon-font.woff, welcome-icon-font.woff2' -else - echo "Font doesn't exist. Please run 'yarn webfont:build'" - exit 1 -fi diff --git a/tsconfig.json b/tsconfig.json index 143c7a458c..d62392ce3e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,6 @@ { - "extends": "wttj-config/lib/tsconfig/tsconfig.json" + "extends": "wttj-config/lib/tsconfig/tsconfig.json", + "compilerOptions": { + "rootDir": "." + } } diff --git a/website/build-app/components/Installation/index.tsx b/website/build-app/components/Installation/index.tsx index d126803fdf..10a12e1976 100644 --- a/website/build-app/components/Installation/index.tsx +++ b/website/build-app/components/Installation/index.tsx @@ -5,11 +5,12 @@ import { H2 } from '../Mdx/Headings' import { Highlight } from '../Mdx/Highlight' type InstallationProps = { + deepDependencies?: string packageName?: string usage?: string } -export const Installation = ({ packageName, usage }: InstallationProps) => { +export const Installation = ({ deepDependencies = '', packageName, usage }: InstallationProps) => { if (!packageName || !usage) { return ( @@ -39,7 +40,7 @@ export const Installation = ({ packageName, usage }: InstallationProps) => { Run the following command: - yarn add welcome-ui + {`yarn add welcome-ui ${deepDependencies}`} diff --git a/website/build-app/components/VersionSelector/index.tsx b/website/build-app/components/VersionSelector/index.tsx index b427544b92..1e2bd75e32 100644 --- a/website/build-app/components/VersionSelector/index.tsx +++ b/website/build-app/components/VersionSelector/index.tsx @@ -1,10 +1,10 @@ import { Select } from 'welcome-ui' import React from 'react' -import lernaConfig from '../../../../lerna.json' +import lib from '../../../../lib/package.json' const versions = [ - { value: 'v6', label: `${lernaConfig.version}` }, + { value: 'v6', label: `${lib.version}` }, { value: 'v5', label: 'v5' }, { value: 'v4', label: 'v4' }, { value: 'v3', label: 'v3' }, diff --git a/yarn.lock b/yarn.lock index e4858d8be1..ff1cff9bcf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -557,6 +557,13 @@ dependencies: "@babel/types" "^7.25.8" +"@babel/parser@^7.20.7": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.5.tgz#6fec9aebddef25ca57a935c86dbb915ae2da3e1f" + integrity sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw== + dependencies: + "@babel/types" "^7.26.5" + "@babel/parser@^7.25.3", "@babel/parser@^7.26.3": version "7.26.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.3.tgz#8c51c5db6ddf08134af1ddbacf16aaab48bac234" @@ -1268,7 +1275,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" -"@babel/preset-env@7.26.0", "@babel/preset-env@^7.16.4": +"@babel/preset-env@^7.16.4", "@babel/preset-env@^7.26.0": version "7.26.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.0.tgz#30e5c6bc1bcc54865bff0c5a30f6d4ccdc7fa8b1" integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== @@ -1352,7 +1359,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@7.25.9", "@babel/preset-react@^7.16.0": +"@babel/preset-react@^7.16.0": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.25.9.tgz#5f473035dc2094bcfdbc7392d0766bd42dce173e" integrity sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw== @@ -1364,6 +1371,18 @@ "@babel/plugin-transform-react-jsx-development" "^7.25.9" "@babel/plugin-transform-react-pure-annotations" "^7.25.9" +"@babel/preset-react@^7.26.3": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.26.3.tgz#7c5e028d623b4683c1f83a0bd4713b9100560caa" + integrity sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-validator-option" "^7.25.9" + "@babel/plugin-transform-react-display-name" "^7.25.9" + "@babel/plugin-transform-react-jsx" "^7.25.9" + "@babel/plugin-transform-react-jsx-development" "^7.25.9" + "@babel/plugin-transform-react-pure-annotations" "^7.25.9" + "@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.22.11": version "7.26.0" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz#4a570f1b8d104a242d923957ffa1eaff142a106d" @@ -1387,6 +1406,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.13.9": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.25.0", "@babel/template@^7.3.3": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.7.tgz#27f69ce382855d915b14ab0fe5fb4cbf88fa0769" @@ -1427,6 +1453,14 @@ "@babel/helper-validator-identifier" "^7.25.7" to-fast-properties "^2.0.0" +"@babel/types@^7.20.7", "@babel/types@^7.26.5": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.5.tgz#7a1e1c01d28e26d1fe7f8ec9567b3b92b9d07747" + integrity sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/types@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.9.tgz#620f35ea1f4233df529ec9a2668d2db26574deee" @@ -2706,6 +2740,17 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== +"@types/babel__core@^7.1.12": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__core@^7.1.14": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" @@ -3928,7 +3973,7 @@ axobject-query@^4.1.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== -babel-jest@29.7.0, babel-jest@^29.7.0: +babel-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== @@ -4026,6 +4071,31 @@ babel-plugin-transform-react-remove-prop-types@^0.4.24: resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== +babel-plugin-transform-vite-meta-env@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-vite-meta-env/-/babel-plugin-transform-vite-meta-env-1.0.3.tgz#cbf81becc95b71dcc170ee4863cb7f6919ed99bb" + integrity sha512-eyfuDEXrMu667TQpmctHeTlJrZA6jXYHyEJFjcM0yEa60LS/LXlOg2PBbMb8DVS+V9CnTj/j9itdlDVMcY2zEg== + dependencies: + "@babel/runtime" "^7.13.9" + "@types/babel__core" "^7.1.12" + +babel-plugin-transform-vite-meta-glob@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-vite-meta-glob/-/babel-plugin-transform-vite-meta-glob-1.1.2.tgz#6bccd7b695f445d8c73a5dd47fa50c85ba5395f3" + integrity sha512-o984FUo++WYnfgUaC8ymzmNPng5Kda5A6j6PFC0uOqhFXlAsD6mNhEBhaNzbUGfq/aPcyeGo67fYXlg20rh9aA== + dependencies: + "@babel/runtime" "^7.13.9" + "@types/babel__core" "^7.1.12" + glob "^10.3.10" + +babel-plugin-transform-vite-meta-hot@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-vite-meta-hot/-/babel-plugin-transform-vite-meta-hot-1.0.0.tgz#d806de0b1f9826eb3fe0c4e82996973d818895df" + integrity sha512-qF7T46bDG5UPPOfy4MFgQJyd3mZvm1sGOR2gZ4lIHy6DEcxAVTIt39/adAn89il44CvwestshuEybKPMR+L/Tg== + dependencies: + "@babel/runtime" "^7.13.9" + "@types/babel__core" "^7.1.12" + babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -4074,6 +4144,17 @@ babel-preset-react-app@^10.0.1: babel-plugin-macros "^3.1.0" babel-plugin-transform-react-remove-prop-types "^0.4.24" +babel-preset-vite@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-vite/-/babel-preset-vite-1.1.3.tgz#9cbc685fe04d52cd3956d095e664ed1e1262364f" + integrity sha512-xSt/EiezzeMd4RI2hjMCNyn/FGzGeroKODPMAUTsgpeHC4dFf2qiCQfyNuiNzn1OwoF4n+NYSsORhUN5G/2KTA== + dependencies: + "@babel/runtime" "^7.13.9" + "@types/babel__core" "^7.1.12" + babel-plugin-transform-vite-meta-env "1.0.3" + babel-plugin-transform-vite-meta-glob "1.1.2" + babel-plugin-transform-vite-meta-hot "1.0.0" + bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -6690,6 +6771,18 @@ glob@10.3.10: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" +glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.0.tgz#6031df0d7b65eaa1ccb9b29b5ced16cea658e77e" @@ -7723,6 +7816,15 @@ jackspeak@^2.3.5: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jackspeak@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.0.2.tgz#11f9468a3730c6ff6f56823a820d7e3be9bef015" @@ -7838,7 +7940,7 @@ jest-each@^29.7.0: jest-util "^29.7.0" pretty-format "^29.7.0" -jest-environment-jsdom@29.7.0: +jest-environment-jsdom@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== @@ -9938,7 +10040,7 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1, path-scurry@^1.6.1: +path-scurry@^1.10.1, path-scurry@^1.11.1, path-scurry@^1.6.1: version "1.11.1" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== @@ -11245,16 +11347,7 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11399,14 +11492,7 @@ stringify-package@^1.0.1: resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -12514,16 +12600,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==