diff --git a/.changeset/gold-bees-call.md b/.changeset/gold-bees-call.md new file mode 100644 index 000000000..582fefb8a --- /dev/null +++ b/.changeset/gold-bees-call.md @@ -0,0 +1,5 @@ +--- +"@launchpad-ui/icons": patch +--- + +Add icons `binary`, `clock-x`, `flask-caution`, `flask-end`, `flask-pause`, `flask-play`, `flask-stop`, `flask-sync`, `flask-x`, `hash`, `sort-asc`, `sort-desc`, and `sparkles` diff --git a/.github/workflows/code-connect.yml b/.github/workflows/code-connect.yml new file mode 100644 index 000000000..aeaf858cb --- /dev/null +++ b/.github/workflows/code-connect.yml @@ -0,0 +1,51 @@ +name: Figma Code Connect Publish + +on: + push: + paths: + - 'packages/components/figma/**' + - 'packages/icons/figma/**' + branches: + - main + +jobs: + code-connect: + name: Code Connect + # Prevents action from publishing on forks + if: github.repository == 'launchdarkly/launchpad-ui' + timeout-minutes: 15 + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + steps: + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + audience: https://github.com/launchdarkly + role-to-assume: ${{ vars.AWS_ROLE_ARN }} + aws-region: us-east-1 + + - uses: dkershner6/aws-ssm-getparameters-action@v2 + with: + parameterPairs: | + /production/common/launchpad-ui/figma-access-token = FIGMA_ACCESS_TOKEN + withDecryption: 'true' + + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: pnpm/action-setup@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + + - name: Install dependencies + run: pnpm install + + - name: Connect publish + run: pnpm figma connect publish --exit-on-unreadable-files diff --git a/.storybook/manager.js b/.storybook/manager.ts similarity index 100% rename from .storybook/manager.js rename to .storybook/manager.ts diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 621c5deb1..a9f23efb2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -197,7 +197,8 @@ Simply run `pnpm generate component` and follow the prompts, and you'll be well - Add the SVG body content into a new symbol entry with id `lp-icon-{name}` in the `/src/image/sprite.svg` file in the `@launchpad/icons` package. - Add its `id` (minus prefix `lp-icon`) to the icons array in `/src/types.ts`. -- Run `pnpm storybook` and visit the "Icons" page to ensure your icon was generated properly. +- Run `pnpm storybook` and visit the `Components/Icons` page to ensure your icon was generated properly. +- Run `pnpm nx run @launchpad-ui/icons:connect` (https://github.com/figma/code-connect/blob/main/cli/scripts/README.md) to update the icons Figma Code Connect file. --- diff --git a/figma.config.json b/figma.config.json new file mode 100644 index 000000000..85f30cc5b --- /dev/null +++ b/figma.config.json @@ -0,0 +1,15 @@ +{ + "codeConnect": { + "include": [ + "packages/components/figma/**", + "packages/components/src/**", + "packages/icons/figma/**", + "packages/icons/src/**" + ], + "parser": "react", + "importPaths": { + "packages/components/src/*": "@launchpad-ui/components", + "packages/icons/src/*": "@launchpad-ui/icons" + } + } +} diff --git a/package.json b/package.json index 2a237d872..5a5894dc0 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@commitlint/cli": "^19.7.1", "@commitlint/config-conventional": "^19.7.1", "@commitlint/types": "^19.5.0", + "@figma/code-connect": "1.3.1", "@playwright/test": "^1.50.1", "@storybook/addon-a11y": "^8.5.8", "@storybook/addon-designs": "^8.2.0", @@ -49,6 +50,7 @@ "@storybook/addon-themes": "^8.5.8", "@storybook/blocks": "^8.5.8", "@storybook/components": "^8.5.8", + "@storybook/manager-api": "^8.5.8", "@storybook/react": "^8.5.8", "@storybook/react-vite": "^8.5.8", "@storybook/test": "^8.5.8", @@ -82,6 +84,7 @@ "rollup-plugin-pure": "^0.2.1", "storybook": "^8.5.8", "storybook-addon-pseudo-states": "^4.0.2", + "tsx": "^4.19.3", "typescript": "^5.7.2", "typescript-plugin-css-modules": "^5.1.0", "vite": "^6.1.0", diff --git a/packages/components/figma/Button.figma.tsx b/packages/components/figma/Button.figma.tsx new file mode 100644 index 000000000..bcf02245a --- /dev/null +++ b/packages/components/figma/Button.figma.tsx @@ -0,0 +1,51 @@ +import type { IconProps } from '@launchpad-ui/icons'; +import type { ButtonProps } from '../src'; + +import figma from '@figma/code-connect'; +import { Icon } from '@launchpad-ui/icons'; + +import { Button } from '../src'; + +figma.connect( + Button, + 'https://www.figma.com/design/98HKKXL2dTle29ikJ3tzk7/LaunchPad?node-id=1-27006', + { + props: { + hasIconLeft: figma.boolean('Has icon left', { + true: figma + .instance('Left icon') + .render(({ name }) => ), + false: undefined, + }), + hasIconRight: figma.boolean('Has icon right', { + true: figma + .instance('Right icon') + .render(({ name }) => ), + false: undefined, + }), + label: figma.string('Label'), + variant: figma.enum('Variant', { + Primary: 'primary', + Default: 'default', + Minimal: 'minimal', + Destructive: 'destructive', + }), + size: figma.enum('Size', { + Small: 'small', + Medium: 'medium', + Large: 'large', + }), + isDisabled: figma.enum('State', { Disabled: true }), + isFocusVisible: figma.enum('State', { ':focus-visible': true }), + isHovered: figma.enum('State', { ':hover': true }), + isPressed: figma.enum('State', { ':active': true }), + }, + example: ({ hasIconLeft, hasIconRight, label, variant, size, isDisabled }) => ( + + ), + }, +); diff --git a/packages/components/figma/IconButton.figma.tsx b/packages/components/figma/IconButton.figma.tsx new file mode 100644 index 000000000..bbc69ee7f --- /dev/null +++ b/packages/components/figma/IconButton.figma.tsx @@ -0,0 +1,38 @@ +import type { IconButtonProps } from '../src'; + +import figma from '@figma/code-connect'; + +import { IconButton } from '../src'; + +figma.connect( + IconButton, + 'https://www.figma.com/design/98HKKXL2dTle29ikJ3tzk7/LaunchPad?node-id=1-28835', + { + props: { + icon: figma.instance('Icon').getProps(), + variant: figma.enum('Type', { + Primary: 'primary', + Default: 'default', + Minimal: 'minimal', + Destructive: 'destructive', + }), + size: figma.enum('Size', { + Small: 'small', + Medium: 'medium', + }), + isDisabled: figma.enum('State', { Disabled: true }), + isFocusVisible: figma.enum('State', { 'Focus visible': true }), + isHovered: figma.enum('State', { Hover: true }), + isPressed: figma.enum('State', { Active: true }), + }, + example: ({ icon, variant, size, isDisabled }) => ( + + ), + }, +); diff --git a/packages/icons/figma/Icon.figma.tsx b/packages/icons/figma/Icon.figma.tsx new file mode 100644 index 000000000..5f6a5bab7 --- /dev/null +++ b/packages/icons/figma/Icon.figma.tsx @@ -0,0 +1,2035 @@ +// Do not edit directly, this file was auto-generated. + +import figma from '@figma/code-connect'; + +import { Icon } from '../src'; + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142083', { + props: { + name: 'warning-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142082', { + props: { + name: 'warning', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142081', { + props: { + name: 'visibility-scan', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142080', { + props: { + name: 'visibility-off', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142079', { + props: { + name: 'visibility', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=7676-7411', { + props: { + name: 'upload', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=7081-18', { + props: { + name: 'tokens', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142078', { + props: { + name: 'triangle-square-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142077', { + props: { + name: 'tools', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142076', { + props: { + name: 'toggle-stack', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142075', { + props: { + name: 'toggle-on', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142074', { + props: { + name: 'toggle-off', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142073', { + props: { + name: 'toggle-bolt', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142072', { + props: { + name: 'timeline-text', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=7081-6', { + props: { + name: 'thumb-up-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=7081-12', { + props: { + name: 'thumb-down-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142070', { + props: { + name: 'theme-light', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142069', { + props: { + name: 'theme-dark', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142068', { + props: { + name: 'text-box-search', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142067', { + props: { + name: 'terminal', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=7081-25', { + props: { + name: 'temperature', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142066', { + props: { + name: 'tag', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142029', { + props: { + name: 'sync', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142028', { + props: { + name: 'swap-vertical', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142027', { + props: { + name: 'swap-horiz', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142026', { + props: { + name: 'stop-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142025', { + props: { + name: 'stop-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142024', { + props: { + name: 'stop', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142023', { + props: { + name: 'status-new', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142022', { + props: { + name: 'status-launched', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142021', { + props: { + name: 'status-inactive', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142020', { + props: { + name: 'status-active', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142019', { + props: { + name: 'star-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142018', { + props: { + name: 'star-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142017', { + props: { + name: 'star', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142016', { + props: { + name: 'speedometer', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142015', { + props: { + name: 'sparkles', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142014', { + props: { + name: 'sparkle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=4661-21401', { + props: { + name: 'sort-desc', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=4661-21400', { + props: { + name: 'sort-asc', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142013', { + props: { + name: 'sort', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=2432-30091', { + props: { + name: 'sidebar-right-expand', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=2432-30092', { + props: { + name: 'sidebar-right-collapse', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142012', { + props: { + name: 'sidebar-left-expand', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142011', { + props: { + name: 'sidebar-left-collapse', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142010', { + props: { + name: 'ship-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142009', { + props: { + name: 'ship', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142008', { + props: { + name: 'shield-key-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142007', { + props: { + name: 'shield-key', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142006', { + props: { + name: 'shield-heart-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142005', { + props: { + name: 'shield-heart', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142004', { + props: { + name: 'shield-alert-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142003', { + props: { + name: 'shield-alert', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142002', { + props: { + name: 'shield-account-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142001', { + props: { + name: 'shield-account', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-142000', { + props: { + name: 'search', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141999', { + props: { + name: 'ruler-bolt', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141998', { + props: { + name: 'ruler', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141997', { + props: { + name: 'robot', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141996', { + props: { + name: 'quick-start', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141926', { + props: { + name: 'pulse', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141925', { + props: { + name: 'progress-check', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141924', { + props: { + name: 'progress', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141923', { + props: { + name: 'preview', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141922', { + props: { + name: 'plug-connect-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141921', { + props: { + name: 'plug-connect-gear', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141920', { + props: { + name: 'plug-connect', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141919', { + props: { + name: 'plug', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141918', { + props: { + name: 'play-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141917', { + props: { + name: 'play-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141916', { + props: { + name: 'play', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141915', { + props: { + name: 'person-remove', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141914', { + props: { + name: 'person-password', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141913', { + props: { + name: 'person-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141912', { + props: { + name: 'person-off', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141911', { + props: { + name: 'person-gear', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141910', { + props: { + name: 'person-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141909', { + props: { + name: 'person-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141908', { + props: { + name: 'person-check', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141907', { + props: { + name: 'person-add', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6817-42', { + props: { + name: 'percentage', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141906', { + props: { + name: 'person', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141905', { + props: { + name: 'pause', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141904', { + props: { + name: 'password', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141902', { + props: { + name: 'package-send', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141901', { + props: { + name: 'package-outline-bolt', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141900', { + props: { + name: 'package-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141899', { + props: { + name: 'package', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141898', { + props: { + name: 'notifications-tilt', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141897', { + props: { + name: 'notifications-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141896', { + props: { + name: 'notifications-gear', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141895', { + props: { + name: 'notifications-check', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141894', { + props: { + name: 'notifications-add', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=3849-75', { + props: { + name: 'notifications-off', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141893', { + props: { + name: 'notifications', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141892', { + props: { + name: 'network-cloud', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141821', { + props: { + name: 'more-vert', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141820', { + props: { + name: 'more-horiz', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141819', { + props: { + name: 'money', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141818', { + props: { + name: 'minus-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141817', { + props: { + name: 'minus-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141816', { + props: { + name: 'minus', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141815', { + props: { + name: 'metric-group', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141814', { + props: { + name: 'metric-funnel', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=2432-30056', { + props: { + name: 'menu', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=7084-12', { + props: { + name: 'markdown-off', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=7084-6', { + props: { + name: 'markdown-on', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141813', { + props: { + name: 'map-search', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141812', { + props: { + name: 'map-code', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141811', { + props: { + name: 'map', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141810', { + props: { + name: 'mail-question', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141809', { + props: { + name: 'magic-wand', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141808', { + props: { + name: 'lock', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141807', { + props: { + name: 'list', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141806', { + props: { + name: 'link-external', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141805', { + props: { + name: 'link', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141804', { + props: { + name: 'lightbulb', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141803', { + props: { + name: 'key', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141764', { + props: { + name: 'info-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141763', { + props: { + name: 'info-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141762', { + props: { + name: 'info', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141761', { + props: { + name: 'individual-target', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141760', { + props: { + name: 'inbox-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141759', { + props: { + name: 'inbox', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141758', { + props: { + name: 'id-card', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141757', { + props: { + name: 'id-badge', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141756', { + props: { + name: 'hub', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141755', { + props: { + name: 'holdout', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141754', { + props: { + name: 'help-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141753', { + props: { + name: 'help-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141752', { + props: { + name: 'help', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141751', { + props: { + name: 'hash', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141750', { + props: { + name: 'handshake', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141749', { + props: { + name: 'half-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141748', { + props: { + name: 'group-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141747', { + props: { + name: 'group', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141746', { + props: { + name: 'grip-vert', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141745', { + props: { + name: 'grip-horiz', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141744', { + props: { + name: 'graduation-cap-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141743', { + props: { + name: 'graduation-cap', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141742', { + props: { + name: 'globe-check', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141741', { + props: { + name: 'globe', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141740', { + props: { + name: 'gear-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141739', { + props: { + name: 'gear', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141686', { + props: { + name: 'forward', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141685', { + props: { + name: 'folders', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6572-114', { + props: { + name: 'flask-x', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6572-109', { + props: { + name: 'flask-sync', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6572-106', { + props: { + name: 'flask-stop', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6572-103', { + props: { + name: 'flask-play', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=5698-22', { + props: { + name: 'flask-pause', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6572-98', { + props: { + name: 'flask-end', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6572-95', { + props: { + name: 'flask-caution', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141684', { + props: { + name: 'flask-bolt', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=5698-41', { + props: { + name: 'flask-arrow', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141683', { + props: { + name: 'flask', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141682', { + props: { + name: 'flag-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=4166-38', { + props: { + name: 'flag-heart', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141681', { + props: { + name: 'flag-code', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141680', { + props: { + name: 'flag', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141679', { + props: { + name: 'fingerprint-bolt', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141678', { + props: { + name: 'fingerprint', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141677', { + props: { + name: 'filter-tune', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141676', { + props: { + name: 'filter-list', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141675', { + props: { + name: 'filter', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141674', { + props: { + name: 'extension', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141673', { + props: { + name: 'equal-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141672', { + props: { + name: 'edit-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141671', { + props: { + name: 'edit', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141638', { + props: { + name: 'download', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141637', { + props: { + name: 'door-exit', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141636', { + props: { + name: 'document-question', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141635', { + props: { + name: 'diamond-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141634', { + props: { + name: 'diamond', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141633', { + props: { + name: 'devices', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141632', { + props: { + name: 'device-server', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141631', { + props: { + name: 'device-mobile', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141630', { + props: { + name: 'device-desktop', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141629', { + props: { + name: 'dependency', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141628', { + props: { + name: 'delete', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141627', { + props: { + name: 'data-export', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141626', { + props: { + name: 'data', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141599', { + props: { + name: 'crown', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141598', { + props: { + name: 'crown-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141597', { + props: { + name: 'credit-card', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=3272-22', { + props: { + name: 'created', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141596', { + props: { + name: 'copy-content', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141595', { + props: { + name: 'copy-code', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141594', { + props: { + name: 'copy-clipboard', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141592', { + props: { + name: 'confetti', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141591', { + props: { + name: 'compass-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141590', { + props: { + name: 'compass', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141589', { + props: { + name: 'code-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141588', { + props: { + name: 'code-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141587', { + props: { + name: 'cloud-search', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141586', { + props: { + name: 'cloud-filter', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141585', { + props: { + name: 'cloud', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141584', { + props: { + name: 'clock-history', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=5698-12', { + props: { + name: 'clock-x', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141544', { + props: { + name: 'clock-alert', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141543', { + props: { + name: 'clock', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141542', { + props: { + name: 'clipboard-edit', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141541', { + props: { + name: 'click', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141540', { + props: { + name: 'circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141539', { + props: { + name: 'circle-dashed', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141538', { + props: { + name: 'circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141537', { + props: { + name: 'chevrons-right', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141536', { + props: { + name: 'chevrons-out', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141535', { + props: { + name: 'chevrons-left', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141534', { + props: { + name: 'chevrons-in', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141533', { + props: { + name: 'chevron-up', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141532', { + props: { + name: 'chevron-right', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141531', { + props: { + name: 'chevron-left', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141530', { + props: { + name: 'chevron-down', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141529', { + props: { + name: 'checklist', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141528', { + props: { + name: 'check-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141527', { + props: { + name: 'check-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141526', { + props: { + name: 'check', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141525', { + props: { + name: 'chat-bubble-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141524', { + props: { + name: 'chat-bubble', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141523', { + props: { + name: 'chart-venn-bolt', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141522', { + props: { + name: 'chart-venn', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141521', { + props: { + name: 'chart-pie', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=5495-508', { + props: { + name: 'chart-lines-crossed', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141520', { + props: { + name: 'chart-line', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141519', { + props: { + name: 'chart-infographic', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141518', { + props: { + name: 'chart-histogram', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141517', { + props: { + name: 'chart-dashboard', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=5495-917', { + props: { + name: 'chart-cube-root', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141516', { + props: { + name: 'chart-bar', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141515', { + props: { + name: 'chart-area', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141514', { + props: { + name: 'change-history', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141513', { + props: { + name: 'certificate', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141512', { + props: { + name: 'caret-up', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141511', { + props: { + name: 'caret-right', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141510', { + props: { + name: 'caret-left', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141509', { + props: { + name: 'caret-down', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141508', { + props: { + name: 'cancel-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141507', { + props: { + name: 'cancel-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141506', { + props: { + name: 'cancel', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141505', { + props: { + name: 'calendar-schedule', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141504', { + props: { + name: 'calendar-cancel', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141503', { + props: { + name: 'calendar', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=3496-26', { + props: { + name: 'calculator', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141418', { + props: { + name: 'bullseye-arrow', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141417', { + props: { + name: 'bullseye', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141416', { + props: { + name: 'bullhorn', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141415', { + props: { + name: 'building-gear', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141414', { + props: { + name: 'building-arrow-up-right', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141413', { + props: { + name: 'building', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=4122-28', { + props: { + name: 'bug', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=2274-19', { + props: { + name: 'broom', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141412', { + props: { + name: 'brain', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141411', { + props: { + name: 'border-all', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141410', { + props: { + name: 'book-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141409', { + props: { + name: 'book-code', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141408', { + props: { + name: 'book', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141407', { + props: { + name: 'bolt', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141406', { + props: { + name: 'binary', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141379', { + props: { + name: 'article', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141378', { + props: { + name: 'arrows-maximize', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141377', { + props: { + name: 'arrow-up-thin', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141376', { + props: { + name: 'arrow-up-right-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141375', { + props: { + name: 'arrow-up-right-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141374', { + props: { + name: 'arrow-undo', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141373', { + props: { + name: 'arrow-right-thin', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141372', { + props: { + name: 'arrow-left-thin', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141371', { + props: { + name: 'arrow-down-thin', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141370', { + props: { + name: 'arrow-connect-star-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141369', { + props: { + name: 'arrow-connect-star', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141368', { + props: { + name: 'arrow-connect', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141367', { + props: { + name: 'archive-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141366', { + props: { + name: 'archive', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141365', { + props: { + name: 'approvals', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141364', { + props: { + name: 'approval-pending', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141363', { + props: { + name: 'approval-denied', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141362', { + props: { + name: 'approval-approved', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141361', { + props: { + name: 'approval-applied', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141360', { + props: { + name: 'application-plus-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141359', { + props: { + name: 'application-plus', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141358', { + props: { + name: 'application', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141312', { + props: { + name: 'api', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=2143-69', { + props: { + name: 'animal-turtle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=2143-68', { + props: { + name: 'animal-cat', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141311', { + props: { + name: 'analyze', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141310', { + props: { + name: 'alert-rhombus', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141309', { + props: { + name: 'add-circle-outline', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141308', { + props: { + name: 'add-circle', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141307', { + props: { + name: 'add', + }, + example: () => , +}); + +figma.connect(Icon, 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7/?node-id=6-141306', { + props: { + name: 'a-to-b', + }, + example: () => , +}); diff --git a/packages/icons/package.json b/packages/icons/package.json index 7846a3682..91b887cbf 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -31,7 +31,8 @@ "scripts": { "build": "vite build -c ../../vite.config.mts && tsc --project tsconfig.build.json && cp src/img/sprite.svg dist", "clean": "rm -rf dist", - "test": "vitest run --coverage" + "test": "vitest run --coverage", + "connect": "tsx scripts/figma-connect.ts" }, "dependencies": { "@launchpad-ui/tokens": "workspace:~", diff --git a/packages/icons/scripts/figma-connect.ts b/packages/icons/scripts/figma-connect.ts new file mode 100644 index 000000000..c48502fca --- /dev/null +++ b/packages/icons/scripts/figma-connect.ts @@ -0,0 +1,32 @@ +import fs from 'fs'; +import { client } from '@figma/code-connect'; + +// https://github.com/figma/code-connect/blob/main/cli/scripts/README.md +const generateIcons = async () => { + const components = await client.getComponents( + 'https://figma.com/file/98HKKXL2dTle29ikJ3tzk7?node-id=1-1483', + ); + + fs.writeFileSync( + 'figma/Icon.figma.tsx', + `// Do not edit directly, this file was auto-generated. + +import figma from '@figma/code-connect'; + +import { Icon } from '../src'; + +${components + .map( + (c) => `figma.connect(Icon, '${c.figmaUrl}', { + props: { + name: '${c.name}', + }, + example: () => , +});`, + ) + .join('\n\n')} +`, + ); +}; + +generateIcons(); diff --git a/packages/icons/src/img/sprite.svg b/packages/icons/src/img/sprite.svg index c4a96db0d..12bbf48b9 100644 --- a/packages/icons/src/img/sprite.svg +++ b/packages/icons/src/img/sprite.svg @@ -240,6 +240,15 @@ clip-rule="evenodd" /> + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -1877,6 +1976,20 @@ clip-rule="evenodd" /> + + + + + + + + + + + + =14'} + + '@figma/code-connect@1.3.1': + resolution: {integrity: sha512-6SQf9qzWgOsQ+L2jaKoBlJhchJBh+/Eej6dEp7XFXEdBOuJh65tNyDGNMKUuDvKMkT8AeJXvn25wsEjiw5CYNQ==} + engines: {node: '>=18'} + hasBin: true + '@figma/rest-api-spec@0.23.0': resolution: {integrity: sha512-x7oWMfg8cYv1yGAxqEzq6m0Eg3mzqa96PvrXBLPWbm3xHiA3Zj9KvhfQau2hVi6BCVBW+ZcJYvllg25JXe6y+w==} @@ -3221,6 +3236,9 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@ts-morph/common@0.24.0': + resolution: {integrity: sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==} + '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -3435,6 +3453,9 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -3557,6 +3578,10 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + boxen@5.1.1: + resolution: {integrity: sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==} + engines: {node: '>=10'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -3596,6 +3621,10 @@ packages: camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + caniuse-lite@1.0.30001676: resolution: {integrity: sha512-Qz6zwGCiPghQXGJvgQAem79esjitvJ+CxSbSQkW9H/UX5hg8XM88d4lp2W+MEQ81j+Hip58Il+jGVdazk1z9cw==} @@ -3665,6 +3694,10 @@ packages: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} engines: {node: '>=12'} + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -3708,6 +3741,9 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + code-block-writer@13.0.3: + resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -3722,6 +3758,10 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + commander@13.1.0: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} @@ -3733,6 +3773,9 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + component-emitter@2.0.0: resolution: {integrity: sha512-4m5s3Me2xxlVKG9PkZpQqHQR7bgpnN7joDMJ4yvVkVXngjoITG76IaZmzmywSeRTeTpc6N6r3H3+KyUurV8OYw==} engines: {node: '>=18'} @@ -4117,6 +4160,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fuzzy@1.12.0: + resolution: {integrity: sha512-sXxGgHS+ubYpsdLnvOvJ9w5GYYZrtL9mkosG3nfuD446ahvoWEsSKBP7ieGmWIKVLnaxRDgUJkZMdxRgA2Ni+Q==} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -4346,6 +4392,9 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemesplit@2.6.0: + resolution: {integrity: sha512-rG9w2wAfkpg0DILa1pjnjNfucng3usON360shisqIMUBw/87pojcBSrHmeE4UwryAuBih7g8m1oilf5/u8EWdQ==} + handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -4744,6 +4793,9 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4759,6 +4811,15 @@ packages: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} + jsdom@24.1.3: + resolution: {integrity: sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + jsdom@26.0.0: resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} engines: {node: '>=18'} @@ -4814,6 +4875,10 @@ packages: klaw-sync@6.0.0: resolution: {integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + less@4.2.0: resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} engines: {node: '>=6'} @@ -5335,6 +5400,9 @@ packages: package-manager-detector@0.2.2: resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -5369,6 +5437,9 @@ packages: engines: {node: '>=14', npm: '>5'} hasBin: true + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-case@3.0.4: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} @@ -5540,12 +5611,19 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -5557,6 +5635,9 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -5673,6 +5754,9 @@ packages: require-like@0.1.2: resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + reserved-words@0.1.2: resolution: {integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==} @@ -5734,6 +5818,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} @@ -5832,6 +5919,9 @@ packages: resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} engines: {node: '>=18'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@2.0.0: resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} engines: {node: '>=6'} @@ -6033,6 +6123,9 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -6091,6 +6184,10 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + tough-cookie@5.0.0: resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} engines: {node: '>=16'} @@ -6112,6 +6209,9 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} + ts-morph@23.0.0: + resolution: {integrity: sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==} + tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -6127,6 +6227,10 @@ packages: turbo-stream@2.4.0: resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -6156,6 +6260,11 @@ packages: peerDependencies: typescript: '>=4.0.0' + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.7.2: resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} @@ -6179,6 +6288,13 @@ packages: undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici@5.28.5: + resolution: {integrity: sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==} + engines: {node: '>=14.0'} + + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} @@ -6187,6 +6303,10 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -6212,6 +6332,9 @@ packages: upper-case@2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + url@0.11.4: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} @@ -6391,6 +6514,10 @@ packages: engines: {node: '>=8'} hasBin: true + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -6473,6 +6600,15 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + zod-validation-error@3.4.0: + resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + + zod@3.24.2: + resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} + snapshots: '@adobe/css-tools@4.3.3': {} @@ -7120,6 +7256,38 @@ snapshots: '@esbuild/win32-x64@0.25.0': optional: true + '@fastify/busboy@2.1.1': {} + + '@figma/code-connect@1.3.1': + dependencies: + boxen: 5.1.1 + chalk: 4.1.2 + commander: 11.1.0 + compare-versions: 6.1.1 + cross-spawn: 7.0.6 + dotenv: 16.4.5 + fast-fuzzy: 1.12.0 + find-up: 5.0.0 + glob: 10.4.5 + jsdom: 24.1.3 + lodash: 4.17.21 + minimatch: 9.0.5 + ora: 5.4.1 + parse5: 7.2.1 + prettier: 2.8.8 + prompts: 2.4.2 + strip-ansi: 6.0.1 + ts-morph: 23.0.0 + typescript: 5.5.4 + undici: 5.28.5 + zod: 3.24.2 + zod-validation-error: 3.4.0(zod@3.24.2) + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + '@figma/rest-api-spec@0.23.0': {} '@figspec/components@1.0.3': @@ -8871,6 +9039,13 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 + '@ts-morph/common@0.24.0': + dependencies: + fast-glob: 3.3.2 + minimatch: 9.0.5 + mkdirp: 3.0.1 + path-browserify: 1.0.1 + '@tybys/wasm-util@0.9.0': dependencies: tslib: 2.8.1 @@ -9198,6 +9373,10 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + ansi-colors@4.1.3: {} ansi-escapes@4.3.2: @@ -9325,6 +9504,17 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + boxen@5.1.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.2 + cli-boxes: 2.2.1 + string-width: 4.2.3 + type-fest: 0.20.2 + widest-line: 3.1.0 + wrap-ansi: 7.0.0 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -9374,6 +9564,8 @@ snapshots: pascal-case: 3.1.2 tslib: 2.8.1 + camelcase@6.3.0: {} + caniuse-lite@1.0.30001676: {} capital-case@1.0.4: @@ -9443,6 +9635,8 @@ snapshots: dependencies: escape-string-regexp: 5.0.0 + cli-boxes@2.2.1: {} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -9476,6 +9670,8 @@ snapshots: clsx@2.1.1: {} + code-block-writer@13.0.3: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -9488,6 +9684,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + commander@11.1.0: {} + commander@13.1.0: {} commander@8.3.0: {} @@ -9497,6 +9695,8 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 + compare-versions@6.1.1: {} + component-emitter@2.0.0: {} concat-map@0.0.1: {} @@ -9945,6 +10145,10 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-fuzzy@1.12.0: + dependencies: + graphemesplit: 2.6.0 + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -10194,6 +10398,11 @@ snapshots: graceful-fs@4.2.11: {} + graphemesplit@2.6.0: + dependencies: + js-base64: 3.7.7 + unicode-trie: 2.0.0 + handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -10568,6 +10777,8 @@ snapshots: jiti@2.4.2: {} + js-base64@3.7.7: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -10581,6 +10792,34 @@ snapshots: jsdoc-type-pratt-parser@4.1.0: {} + jsdom@24.1.3: + dependencies: + cssstyle: 4.2.1 + data-urls: 5.0.0 + decimal.js: 10.4.3 + form-data: 4.0.1 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.16 + parse5: 7.2.1 + rrweb-cssom: 0.7.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.1.0 + ws: 8.18.0 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jsdom@26.0.0: dependencies: cssstyle: 4.2.1 @@ -10652,6 +10891,8 @@ snapshots: dependencies: graceful-fs: 4.2.11 + kleur@3.0.3: {} + less@4.2.0: dependencies: copy-anything: 2.0.6 @@ -11228,6 +11469,8 @@ snapshots: package-manager-detector@0.2.2: {} + pako@0.2.9: {} + param-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -11281,6 +11524,8 @@ snapshots: tmp: 0.0.33 yaml: 2.6.0 + path-browserify@1.0.1: {} + path-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -11425,11 +11670,20 @@ snapshots: process@0.11.10: {} + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + proxy-from-env@1.1.0: {} prr@1.0.1: optional: true + psl@1.15.0: + dependencies: + punycode: 2.3.1 + punycode@1.4.1: {} punycode@2.3.1: {} @@ -11438,6 +11692,8 @@ snapshots: dependencies: side-channel: 1.0.6 + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} rainbow-sprinkles@1.0.0(@vanilla-extract/css@1.17.1)(@vanilla-extract/dynamic@2.1.2): @@ -11655,6 +11911,8 @@ snapshots: require-like@0.1.2: {} + requires-port@1.0.0: {} + reserved-words@0.1.2: {} resolve-dir@1.0.1: @@ -11730,6 +11988,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.31.0 fsevents: 2.3.3 + rrweb-cssom@0.7.1: {} + rrweb-cssom@0.8.0: {} run-async@3.0.0: {} @@ -11833,6 +12093,8 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sisteransi@1.0.5: {} + slash@2.0.0: {} slash@3.0.0: {} @@ -12061,6 +12323,8 @@ snapshots: through@2.3.8: {} + tiny-inflate@1.0.3: {} + tiny-invariant@1.3.3: {} tinybench@2.9.0: {} @@ -12104,6 +12368,13 @@ snapshots: totalist@3.0.1: {} + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + tough-cookie@5.0.0: dependencies: tldts: 6.1.57 @@ -12120,6 +12391,11 @@ snapshots: ts-dedent@2.2.0: {} + ts-morph@23.0.0: + dependencies: + '@ts-morph/common': 0.24.0 + code-block-writer: 13.0.3 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -12137,6 +12413,8 @@ snapshots: turbo-stream@2.4.0: {} + type-fest@0.20.2: {} + type-fest@0.21.3: {} type-fest@2.19.0: {} @@ -12196,6 +12474,8 @@ snapshots: - supports-color - ts-node + typescript@5.5.4: {} + typescript@5.7.2: {} ufo@1.5.4: {} @@ -12214,10 +12494,21 @@ snapshots: undici-types@6.20.0: {} + undici@5.28.5: + dependencies: + '@fastify/busboy': 2.1.1 + + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + unicorn-magic@0.1.0: {} universalify@0.1.2: {} + universalify@0.2.0: {} + universalify@2.0.1: {} unplugin@1.15.0: @@ -12239,6 +12530,11 @@ snapshots: dependencies: tslib: 2.8.1 + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + url@0.11.4: dependencies: punycode: 1.4.1 @@ -12432,6 +12728,10 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + widest-line@3.1.0: + dependencies: + string-width: 4.2.3 + wordwrap@1.0.0: {} wrap-ansi@6.2.0: @@ -12493,3 +12793,9 @@ snapshots: yocto-queue@1.1.1: {} yoctocolors-cjs@2.1.2: {} + + zod-validation-error@3.4.0(zod@3.24.2): + dependencies: + zod: 3.24.2 + + zod@3.24.2: {}