diff --git a/knip.config.ts b/knip.config.ts index 294c3207a1..95934217b7 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -27,7 +27,7 @@ const config = async (): Promise => { const baseProject = knip.project ?? ['src/**/*']; const project = knip.extraProject ? [...baseProject, ...knip.extraProject] : baseProject; - const ignoreDependencies: string[] = []; + const ignoreDependencies: string[] = knip.ignoreDependencies ?? []; return [ relativePath, diff --git a/lage.config.mjs b/lage.config.mjs index b3927c7949..ddb6b590e7 100644 --- a/lage.config.mjs +++ b/lage.config.mjs @@ -20,7 +20,7 @@ const config = { // which doesn't exist, so lage silently drops the edge. Point at the // specific root target with the packageName#task syntax so every // package's tests wait for the whole-repo build to finish. - dependsOn: ['@fluentui-react-native/root#build'], + dependsOn: ['@fluentui-react-native/root#root-build'], inputs: [], outputs: [], }, @@ -44,10 +44,25 @@ const config = { 'lint-repo': { cache: false, }, + prebuild: { + /** + * Prebuild is a pre-build step that can either modify the source code or generate additional files in the project. + */ + dependsOn: ['^prebuild'], + inputs: ['**/*', '!node_modules/**/*', '!dist/**/*', '!lib/**/*', '!lib-commonjs/**/*'], + outputs: ['lib/**/*', 'src/**/*'], + }, + 'root-prebuild': { + cache: false, + }, + 'root-build': { + dependsOn: ['@fluentui-react-native/root#root-prebuild'], + cache: false, + }, // ── Pipeline aliases ─────────────────────────────────────────────────── 'repo-checks': ['lint-repo', 'check-publishing'], - buildci: ['lint-repo', 'check-publishing', 'build', 'test', 'lint'], + buildci: ['lint-repo', 'check-publishing', '@fluentui-react-native/root#root-build', 'test', 'lint'], // ── Worker tasks ─────────────────────────────────────────────────────── 'test-links': { diff --git a/package.json b/package.json index 559363c467..f3a961c99d 100644 --- a/package.json +++ b/package.json @@ -15,16 +15,18 @@ "scripts" ], "scripts": { - "build": "tsgo -b", - "clean-all": "node ./scripts/src/preinstall/clean-all.ts", + "build": "lage root-build", "docs": "yarn workspace fluent-rn-website start", "bundle:repo": "lage bundle", - "clean": "lage clean", + "clean": "tsgo -b --clean && lage clean", + "clean-all": "node ./scripts/src/preinstall/clean-all.ts", "change": "node .github/scripts/change.mts", "changeset:version": "node .github/scripts/changeset-version-with-postbump.mts", "change:check": "node .github/scripts/change.mts --check", "check-publishing": "node ./scripts/src/cli.ts check-publishing", "lint-fix": "cross-env FURN_FIX_MODE=true lage lint", + "root-build": "tsgo -b", + "root-prebuild": "lage prebuild", "preinstall": "node ./scripts/src/preinstall/use-yarn-please.ts", "format": "oxfmt", "format:check": "oxfmt --check", diff --git a/packages/agentic-components/jest.config.cjs b/packages/agentic-components/jest.config.cjs new file mode 100644 index 0000000000..b391f5b662 --- /dev/null +++ b/packages/agentic-components/jest.config.cjs @@ -0,0 +1 @@ +module.exports = require('@fluentui-react-native/scripts/jest-config'); diff --git a/packages/agentic-components/package.json b/packages/agentic-components/package.json new file mode 100644 index 0000000000..d249d873b8 --- /dev/null +++ b/packages/agentic-components/package.json @@ -0,0 +1,77 @@ +{ + "name": "@fluentui-react-native/agentic-components", + "version": "0.1.0", + "private": true, + "description": "A library of agent-generated FluentUI React Native components", + "license": "MIT", + "author": "", + "repository": { + "type": "git", + "url": "https://github.com/microsoft/fluentui-react-native.git", + "directory": "packages/agentic-components" + }, + "type": "module", + "main": "lib/index.js", + "module": "lib/index.js", + "types": "lib/index.d.ts", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "react-native": "./src/index.ts", + "import": "./lib/index.js", + "default": "./src/index.ts" + } + }, + "scripts": { + "build": "tsgo -b", + "clean": "fluentui-scripts clean", + "depcheck": "fluentui-scripts depcheck", + "format": "fluentui-scripts format", + "lint": "fluentui-scripts lint", + "test": "fluentui-scripts jest", + "update-snapshots": "fluentui-scripts jest -u" + }, + "devDependencies": { + "@babel/core": "catalog:", + "@fluentui-react-native/scripts": "workspace:*", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.4", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.4", + "react-native": "^0.81.6", + "react-native-macos": "^0.81.0", + "react-test-renderer": "19.1.4" + }, + "peerDependencies": { + "@types/react": "~18.2.0 || ~19.0.0 || ~19.1.4", + "react": "18.2.0 || 19.0.0 || 19.1.4", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.6", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react-native-macos": { + "optional": true + } + }, + "furn": { + "jestPlatform": "macos" + }, + "rnx-kit": { + "kitType": "library", + "alignDeps": { + "capabilities": [ + "core", + "core-macos", + "react-test-renderer" + ] + }, + "extends": "@fluentui-react-native/scripts/kit-config" + } +} diff --git a/packages/agentic-components/src/components/button/__snapshots__/button.test.ts.snap b/packages/agentic-components/src/components/button/__snapshots__/button.test.ts.snap new file mode 100644 index 0000000000..d737f8c55e --- /dev/null +++ b/packages/agentic-components/src/components/button/__snapshots__/button.test.ts.snap @@ -0,0 +1,169 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Button component tests renders in a disabled state 1`] = ` + + + Disabled + + +`; + +exports[`Button component tests renders with a title 1`] = ` + + + Click me + + +`; diff --git a/packages/agentic-components/src/components/button/button.stories.ts b/packages/agentic-components/src/components/button/button.stories.ts new file mode 100644 index 0000000000..e23ea400fe --- /dev/null +++ b/packages/agentic-components/src/components/button/button.stories.ts @@ -0,0 +1,28 @@ +import type { Meta, StoryObj } from '@storybook/react-native'; +import { Button } from './button'; + +/** + * Storybook stories for the {@link Button} component. These are loaded by the storybook app in + * `packages/agentic-components/storybook` via its `.storybook/main` stories glob. + */ +const meta: Meta = { + title: 'Components/Button', + component: Button, + args: { + title: 'Button', + disabled: false, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = {}; + +export const Disabled: Story = { + args: { + title: 'Disabled', + disabled: true, + }, +}; diff --git a/packages/agentic-components/src/components/button/button.test.ts b/packages/agentic-components/src/components/button/button.test.ts new file mode 100644 index 0000000000..84f5ea6f8f --- /dev/null +++ b/packages/agentic-components/src/components/button/button.test.ts @@ -0,0 +1,34 @@ +import * as React from 'react'; +import * as renderer from 'react-test-renderer'; +import { Button } from './button'; + +describe('Button component tests', () => { + it('renders with a title', () => { + let component: renderer.ReactTestRenderer; + renderer.act(() => { + component = renderer.create(React.createElement(Button, { title: 'Click me' })); + }); + expect(component!.toJSON()).toMatchSnapshot(); + }); + + it('renders in a disabled state', () => { + let component: renderer.ReactTestRenderer; + renderer.act(() => { + component = renderer.create(React.createElement(Button, { title: 'Disabled', disabled: true })); + }); + expect(component!.toJSON()).toMatchSnapshot(); + }); + + it('fires onPress when pressed', () => { + const onPress = jest.fn(); + let component: renderer.ReactTestRenderer; + renderer.act(() => { + component = renderer.create(React.createElement(Button, { title: 'Press', onPress })); + }); + const pressable = component!.root.findByProps({ accessibilityRole: 'button' }); + renderer.act(() => { + pressable.props.onPress({}); + }); + expect(onPress).toHaveBeenCalledTimes(1); + }); +}); diff --git a/packages/agentic-components/src/components/button/button.tsx b/packages/agentic-components/src/components/button/button.tsx new file mode 100644 index 0000000000..f2d4e108be --- /dev/null +++ b/packages/agentic-components/src/components/button/button.tsx @@ -0,0 +1,66 @@ +import * as React from 'react'; +import { Pressable, StyleSheet, Text } from 'react-native'; +import type { GestureResponderEvent, StyleProp, ViewStyle } from 'react-native'; + +/** + * Props for the simple {@link Button} component. + * + * This is an intentionally minimal, plain react-native implementation used to scaffold the + * agentic-components library, its tests, and storybook integration. + */ +export type ButtonProps = { + /** Text label rendered inside the button. */ + title: string; + /** Called when the button is pressed. */ + onPress?: (event: GestureResponderEvent) => void; + /** When true, the button is non-interactive and rendered in a dimmed state. */ + disabled?: boolean; + /** Optional style override applied to the pressable root. */ + style?: StyleProp; +}; + +const styles = StyleSheet.create({ + root: { + alignItems: 'center', + justifyContent: 'center', + paddingVertical: 8, + paddingHorizontal: 16, + borderRadius: 4, + backgroundColor: '#0078d4', + }, + pressed: { + backgroundColor: '#005a9e', + }, + disabled: { + backgroundColor: '#c8c8c8', + }, + label: { + color: '#ffffff', + fontSize: 14, + fontWeight: '600', + }, + labelDisabled: { + color: '#888888', + }, +}); + +/** + * A simple cross-platform button built directly on react-native primitives. + */ +export function Button(props: ButtonProps): React.JSX.Element { + const { title, onPress, disabled, style } = props; + return ( + [styles.root, pressed && styles.pressed, disabled && styles.disabled, style]} + > + {title} + + ); +} +Button.displayName = 'Button'; + +export default Button; diff --git a/packages/agentic-components/src/index.ts b/packages/agentic-components/src/index.ts new file mode 100644 index 0000000000..0a23b8ce6b --- /dev/null +++ b/packages/agentic-components/src/index.ts @@ -0,0 +1,2 @@ +export { Button } from './components/button/button'; +export type { ButtonProps } from './components/button/button'; diff --git a/packages/agentic-components/storybook/.gitignore b/packages/agentic-components/storybook/.gitignore new file mode 100644 index 0000000000..2b970837cc --- /dev/null +++ b/packages/agentic-components/storybook/.gitignore @@ -0,0 +1,19 @@ +# Generated by the withStorybook metro wrapper / storybook-generate script +src/storybook.requires.ts +src/storybook.requires.js + +# Metro bundle output +*.jsbundle + +# Generated native project + build output (react-native-test-app regenerates these). +# The hand-written macos/Podfile is kept under version control. +macos/Pods/ +macos/build/ +macos/DerivedData/ +macos/Podfile.lock +macos/.xcode.env +macos/*.xcodeproj/ +macos/*.xcworkspace/ +dist/ + + diff --git a/packages/agentic-components/storybook/README.md b/packages/agentic-components/storybook/README.md new file mode 100644 index 0000000000..d86e077d84 --- /dev/null +++ b/packages/agentic-components/storybook/README.md @@ -0,0 +1,115 @@ +# Agentic Components Storybook (react-native-macos) + +On-device [Storybook](https://storybook.js.org/) app (Storybook for React Native v10) for +`@fluentui-react-native/agentic-components`. It loads every `*.stories.(ts|tsx)` file from the +library source (`../src`) so new component stories appear automatically. + +It runs in Storybook **liteMode**, which mocks out the heavy default on-device UI +(`@storybook/react-native-ui`). This avoids the `react-native-reanimated` / +`react-native-gesture-handler` / `@gorhom/bottom-sheet` / `react-native-svg` native dependency +chain, which does not bundle cleanly with this repo's Metro + Babel + pnpm-linker toolchain +(Reanimated's Babel plugin crashes when Metro bundles Reanimated from source). + +## Layout + +``` +storybook/ + .rnstorybook/ Storybook config (main.ts, preview.tsx, index.tsx) + StorybookApp.tsx Root component -> renders the Storybook UI + index.js AppRegistry entry + app.json react-native-test-app manifest + metro.config.js rnx-kit metro config wrapped with withStorybook (liteMode) + babel.config.js @react-native/babel-preset + react-native.config.js +``` + +> `StorybookApp.tsx` is intentionally not named `App.tsx`: on a case-insensitive macOS +> filesystem `App` collides with `app.json` during Metro resolution. + +The `.rnstorybook/storybook.requires.ts` file is **generated** (git-ignored) from the +`main.ts` stories glob by the `withStorybook` metro wrapper when Metro starts, or on demand via: + +```sh +yarn workspace @fluentui-react-native/agentic-components-storybook storybook-generate +``` + +## Running on macOS + +This app uses [`react-native-test-app`](https://github.com/microsoft/react-native-test-app), +matching the other test apps in this repo. Only the hand-written `macos/Podfile` is checked in; +`pod install` generates the Xcode project/workspace (and they are git-ignored). + +```sh +# from this directory +# 1. Generate the Xcode project/workspace + install pods +pod install --project-directory=macos + +# 2. Start Metro (also generates storybook.requires) +yarn start + +# 3. In another terminal, build & launch the macOS app +yarn macos +``` + +Requires Xcode + CocoaPods. + +> Xcode 26 / Apple Clang 21 note: React Native 0.81 pins `fmt` 11.0.2, which fails to compile +> under the stricter `consteval` checks. `macos/Podfile` includes a `post_install` patch that +> disables fmt's compile-time format-string checking (ABI-safe), re-applied on every `pod install`. + +> `react-native-safe-area-context` note: Storybook's UI imports it, but its native module is +> iOS-only (UIKit) and uses a Yoga API that doesn't compile for react-native-macos 0.81. It is +> therefore not installed; `metro.config.js` aliases the import to a JS-only stub in +> `.storybook-mocks/`, so no native module is needed. + +## Bundling (no native toolchain required) + +You can produce the JS bundle without Xcode. This also generates `storybook.requires` first: + +```sh +yarn bundle:macos # -> writes index.macos.jsbundle +``` + +## Agent interaction (WebSocket channel + MCP) + +The running app can be driven by external agents through a standalone Storybook channel server +(`storybook-server.cjs`, default `127.0.0.1:7007`): + +```sh +yarn storybook-server # WebSocket: ws://127.0.0.1:7007/ MCP: http://127.0.0.1:7007/mcp +``` + +Run it alongside `yarn start` + `yarn macos`. The on-device app connects to it automatically +(`.rnstorybook/index.tsx` calls `getStorybookUI({ enableWebsockets: true, host, port })`). + +- **WebSocket channel** (`ws://127.0.0.1:7007/`): agents connect and emit Storybook channel events + to drive the app — e.g. `setCurrentStory` (`{ storyId }`) to switch story, and arg-update events + to change controls — and receive state/events back. Host/port can be overridden with + `STORYBOOK_WS_HOST` / `STORYBOOK_WS_PORT`. +- **MCP server** (`http://127.0.0.1:7007/mcp`): an MCP endpoint for AI agents, exposing tools like + `list-all-documentation` and `get-documentation` to query component/story metadata, prop types, + and usage snippets. Register it with an MCP client, e.g.: + + ```sh + npx mcp-add --type http --url "http://localhost:7007/mcp" --scope project + ``` + +> We run the channel server standalone (via `@storybook/react-native/node`'s `createChannelServer`) +> rather than through `withStorybook`, because the bundler-agnostic `withStorybook` only starts it in +> entry-point-swapping mode (`STORYBOOK_ENABLED=true`), which conflicts with this app's in-app +> integration. + +## Writing stories + +Add a `*.stories.ts(x)` file next to a component in `../src/components//`. See +`../src/components/button/button.stories.ts` for the CSF format: + +```ts +import type { Meta, StoryObj } from '@storybook/react-native'; +import { Button } from './button'; + +const meta: Meta = { title: 'Components/Button', component: Button }; +export default meta; + +export const Default: StoryObj = {}; +``` diff --git a/packages/agentic-components/storybook/app.json b/packages/agentic-components/storybook/app.json new file mode 100644 index 0000000000..80e55f2dcc --- /dev/null +++ b/packages/agentic-components/storybook/app.json @@ -0,0 +1,13 @@ +{ + "name": "AgenticStorybook", + "displayName": "Agentic Components Storybook", + "components": [ + { + "appKey": "AgenticStorybook", + "displayName": "Agentic Components Storybook" + } + ], + "resources": { + "macos": ["dist/assets", "dist/index.macos.jsbundle"] + } +} diff --git a/packages/agentic-components/storybook/babel.config.js b/packages/agentic-components/storybook/babel.config.js new file mode 100644 index 0000000000..f7b3da3b33 --- /dev/null +++ b/packages/agentic-components/storybook/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:@react-native/babel-preset'], +}; diff --git a/packages/agentic-components/storybook/index.js b/packages/agentic-components/storybook/index.js new file mode 100644 index 0000000000..3003e18cb2 --- /dev/null +++ b/packages/agentic-components/storybook/index.js @@ -0,0 +1,5 @@ +import { AppRegistry } from 'react-native'; +import StorybookApp from './src/StorybookApp'; +import { name as appName } from './app.json'; + +AppRegistry.registerComponent(appName, () => StorybookApp); diff --git a/packages/agentic-components/storybook/macos/Podfile b/packages/agentic-components/storybook/macos/Podfile new file mode 100644 index 0000000000..a9a36f565d --- /dev/null +++ b/packages/agentic-components/storybook/macos/Podfile @@ -0,0 +1,37 @@ +# Switching between node-modules mode and pnpm mode requires changing how relative paths are handled. + +# (pnpm mode) allow modules to resolve correctly in upstream podfiles +ENV['REACT_NATIVE_NODE_MODULES_DIR'] = File.join(__dir__, '../node_modules') + +# (pnpm mode) +require_relative '../node_modules/react-native-test-app/macos/test_app' + +workspace 'AgenticStorybook.xcworkspace' + +# (pnpm mode) +react_native_path = "#{__dir__}/../node_modules/react-native" + +# fmt 11.0.2 (pinned by React Native 0.81) fails to compile with Xcode 26 / Apple Clang 21, which is +# stricter about `consteval` (fixed upstream in fmt 11.1). Force fmt's compile-time consteval +# format-string checking off so the bundled fmt builds. This is ABI-safe and avoids a version bump +# (multiple pods pin fmt = 11.0.2). Re-applied on every `pod install`. +def patch_fmt_consteval(installer) + fmt_base = File.join(installer.sandbox.root.to_s, 'fmt', 'include', 'fmt', 'base.h') + return unless File.exist?(fmt_base) + + contents = File.read(fmt_base) + patched = contents.gsub('# define FMT_USE_CONSTEVAL 1', '# define FMT_USE_CONSTEVAL 0') + return if patched == contents + + # CocoaPods marks pod sources read-only; make the file writable before patching. + File.chmod(0o644, fmt_base) + File.write(fmt_base, patched) + Pod::UI.puts '[AgenticStorybook] Patched fmt base.h to disable consteval (Xcode 26 / Clang 21 workaround)' +end + +use_test_app!(:fabric_enabled => true, :bridgeless_enabled => false, :post_install => ->(installer) { patch_fmt_consteval(installer) }) do |target| + target.app do + platform :osx, '14' + end +end + diff --git a/packages/agentic-components/storybook/metro.config.js b/packages/agentic-components/storybook/metro.config.js new file mode 100644 index 0000000000..d09c9ed94f --- /dev/null +++ b/packages/agentic-components/storybook/metro.config.js @@ -0,0 +1,54 @@ +const path = require('node:path'); +const { makeMetroConfig } = require('@rnx-kit/metro-config'); +const MetroSymlinksResolver = require('@rnx-kit/metro-resolver-symlinks'); +const { withStorybook } = require('@storybook/react-native/withStorybook'); + +// The library source (which contains the *.stories.* files) lives one level up from this +// app, so Metro needs to watch the whole package directory in addition to the repo root. +const packageRoot = path.resolve(__dirname, '..'); +const repoRoot = path.resolve(__dirname, '../../..'); + +const symlinkResolver = MetroSymlinksResolver({ + resolver: 'oxc-resolver', +}); + +// JS-only replacement for react-native-safe-area-context (its native module does not build for +// react-native-macos 0.81 — see the stub file for details). +const safeAreaStub = path.resolve(__dirname, './src/storybook-mocks/react-native-safe-area-context.js'); + +const config = makeMetroConfig({ + projectRoot: __dirname, + watchFolders: [packageRoot, repoRoot], + resolver: { + resolveRequest: (context, moduleName, platform) => { + // Storybook liteMode mocks out the heavy default UI (`@storybook/react-native-ui`, which + // pulls reanimated/gesture-handler/bottom-sheet/svg). withStorybook does this by checking + // the resolved file path for "@storybook/react-native-ui", but under the Yarn pnpm linker + // resolved paths use ".store/@storybook-react-native-ui-virtual-*" (dashes), so that check + // never matches. Mock it here by import specifier instead. The trailing `/` / exact-match + // guard avoids also mocking `-ui-lite` and `-ui-common`. + if (moduleName === '@storybook/react-native-ui' || moduleName.startsWith('@storybook/react-native-ui/')) { + return { type: 'empty' }; + } + // Redirect react-native-safe-area-context to a JS-only stub (no incompatible native module). + if (moduleName === 'react-native-safe-area-context') { + return { type: 'sourceFile', filePath: safeAreaStub }; + } + return symlinkResolver(context, moduleName, platform); + }, + unstable_enablePackageExports: true, + unstable_conditionNames: ['react-native', 'import', 'require'], + disableHierarchicalLookup: true, + enableSymlinks: true, + }, + transformer: { + unstable_allowRequireContext: true, + }, +}); + +module.exports = withStorybook(config, { + configPath: path.resolve(__dirname, '.rnstorybook'), + // Lite mode mocks out the heavy default Storybook UI so we don't need react-native-reanimated, + // react-native-gesture-handler, @gorhom/bottom-sheet or react-native-svg. + liteMode: true, +}); diff --git a/packages/agentic-components/storybook/package.json b/packages/agentic-components/storybook/package.json new file mode 100644 index 0000000000..385a1b9fb5 --- /dev/null +++ b/packages/agentic-components/storybook/package.json @@ -0,0 +1,108 @@ +{ + "name": "@fluentui-react-native/agentic-components-storybook", + "version": "0.1.0", + "private": true, + "description": "On-device Storybook (react-native-macos) app for @fluentui-react-native/agentic-components", + "license": "MIT", + "author": "", + "repository": { + "type": "git", + "url": "https://github.com/microsoft/fluentui-react-native.git", + "directory": "packages/agentic-components/storybook" + }, + "scripts": { + "start": "rnx-cli start", + "macos": "rnx-cli run --platform macos", + "bundle:macos": "yarn prebuild && rnx-cli bundle --dev false --platform macos", + "prebuild": "sb-rn-get-stories --config-path src", + "storybook-server": "node storybook-server.cjs", + "lint": "fluentui-scripts lint", + "format": "fluentui-scripts format" + }, + "dependencies": { + "@fluentui-react-native/agentic-components": "workspace:*", + "@types/react": "~19.1.4", + "react": "19.1.4", + "react-native": "^0.81.6", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" + }, + "devDependencies": { + "@babel/core": "catalog:", + "@fluentui-react-native/scripts": "workspace:*", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native-community/datetimepicker": "^9.1.0", + "@react-native-community/slider": "^5.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-babel-transformer": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@rnx-kit/cli": "catalog:", + "@rnx-kit/metro-config": "catalog:", + "@rnx-kit/metro-resolver-symlinks": "catalog:", + "@storybook/addon-ondevice-actions": "^10.4.7", + "@storybook/addon-ondevice-controls": "^10.4.7", + "@storybook/mcp": "^0.7.0", + "@storybook/react": "^10.4.6", + "@storybook/react-native": "^10.4.7", + "@storybook/react-native-ui-lite": "^10.4.7", + "@tmcp/adapter-valibot": "^0.1.6", + "@tmcp/transport-http": "^0.8.6", + "metro": "^0.83.1", + "oxc-resolver": "catalog:", + "react-native-test-app": "catalog:", + "storybook": "^10.4.0", + "tmcp": "^1.19.4", + "valibot": "^1.4.1" + }, + "furn": { + "knip": { + "ignoreDependencies": [ + "@fluentui-react-native/agentic-components" + ] + } + }, + "rnx-kit": { + "kitType": "app", + "bundle": [ + { + "id": "main", + "entryFile": "index.js", + "assetsDest": "dist", + "targets": [ + "macos", + "windows" + ], + "platforms": { + "macos": { + "bundleOutput": "dist/index.macos.jsbundle", + "sourcemapOutput": "dist/index.macos.jsbundle.map" + }, + "windows": { + "bundleOutput": "dist/index.windows.bundle", + "sourcemapOutput": "dist/index.windows.bundle.map" + } + } + } + ], + "alignDeps": { + "requirements": { + "production": [ + "react-native@0.81" + ] + }, + "capabilities": [ + "babel-preset-react-native", + "community/cli", + "core", + "core-macos", + "core-windows", + "core/metro-config", + "metro-react-native-babel-transformer", + "metro" + ] + }, + "extends": "@fluentui-react-native/scripts/kit-config" + } +} diff --git a/packages/agentic-components/storybook/react-native.config.js b/packages/agentic-components/storybook/react-native.config.js new file mode 100644 index 0000000000..9c5355d0e5 --- /dev/null +++ b/packages/agentic-components/storybook/react-native.config.js @@ -0,0 +1,16 @@ +const project = (() => { + try { + const { configureProjects } = require('react-native-test-app'); + return configureProjects({ + macos: { + sourceDir: 'macos', + }, + }); + } catch (_) { + return undefined; + } +})(); + +module.exports = { + ...(project ? { project } : undefined), +}; diff --git a/packages/agentic-components/storybook/src/StorybookApp.tsx b/packages/agentic-components/storybook/src/StorybookApp.tsx new file mode 100644 index 0000000000..9110bc5ab2 --- /dev/null +++ b/packages/agentic-components/storybook/src/StorybookApp.tsx @@ -0,0 +1,34 @@ +// `storybook.requires` is generated by the `withStorybook` metro wrapper (or the +// `storybook-generate` script) from the `main.ts` stories glob. It is git-ignored. +import { view } from './storybook.requires'; +import { LiteUI } from '@storybook/react-native-ui-lite'; + +// We run Storybook in lite mode: the heavy default on-device UI (`@storybook/react-native-ui`, +// which needs reanimated/gesture-handler/etc.) is not bundled. `getStorybookUI` would otherwise +// try to render its `FullUI` (which is mocked out and therefore `undefined`, causing an +// "Element type is invalid" crash), so we provide the lightweight `LiteUI` as the UI component. + +// Simple in-memory storage so Storybook doesn't warn about a missing `storage` (we intentionally +// avoid @react-native-async-storage/async-storage, which is another native module). The selected +// story just won't persist across full reloads. +const memoryStore: Record = {}; +const storage = { + getItem: async (key: string) => (key in memoryStore ? memoryStore[key] : null), + setItem: async (key: string, value: string) => { + memoryStore[key] = value; + }, +}; + +// `enableWebsockets` + `host`/`port` connect the app to the standalone Storybook channel server +// (`yarn storybook-server`, default ws://127.0.0.1:7007). This lets external agents drive the app — +// select stories, read/update control args — and powers the MCP endpoint. If the server isn't +// running the transport just logs a connection error; the app still works standalone. +const StorybookApp = view.getStorybookUI({ + enableWebsockets: true, + host: '127.0.0.1', + port: 7007, + CustomUIComponent: LiteUI, + storage, +}); + +export default StorybookApp; diff --git a/packages/agentic-components/storybook/src/main.ts b/packages/agentic-components/storybook/src/main.ts new file mode 100644 index 0000000000..35862c234e --- /dev/null +++ b/packages/agentic-components/storybook/src/main.ts @@ -0,0 +1,15 @@ +import type { StorybookConfig } from '@storybook/react-native'; + +/** + * Storybook configuration for the agentic-components on-device app. + * + * Stories are loaded directly from the sibling library source (`../../src`) so any + * `*.stories.(ts|tsx)` added to a component automatically shows up here. + */ +const main: StorybookConfig = { + stories: ['../../src/**/*.stories.?(ts|tsx)'], + addons: [], + deviceAddons: ['@storybook/addon-ondevice-controls', '@storybook/addon-ondevice-actions'], +}; + +export default main; diff --git a/packages/agentic-components/storybook/src/preview.tsx b/packages/agentic-components/storybook/src/preview.tsx new file mode 100644 index 0000000000..a6aef0a6ca --- /dev/null +++ b/packages/agentic-components/storybook/src/preview.tsx @@ -0,0 +1,15 @@ +import { View } from 'react-native'; +import type { Preview } from '@storybook/react-native'; + +const preview: Preview = { + decorators: [ + (Story) => ( + + + + ), + ], + parameters: {}, +}; + +export default preview; diff --git a/packages/agentic-components/storybook/src/storybook-mocks/react-native-safe-area-context.js b/packages/agentic-components/storybook/src/storybook-mocks/react-native-safe-area-context.js new file mode 100644 index 0000000000..552bdd0db3 --- /dev/null +++ b/packages/agentic-components/storybook/src/storybook-mocks/react-native-safe-area-context.js @@ -0,0 +1,35 @@ +// Lightweight JS-only stub for `react-native-safe-area-context`. +// +// Storybook's on-device UI imports SafeAreaProvider / SafeAreaView / useSafeAreaInsets at module +// load time. The real package ships a Fabric native module that is iOS-only (UIKit) and uses a Yoga +// API that is incompatible with react-native-macos 0.81, so it fails to compile for macOS. Since +// safe-area insets are irrelevant for this on-device Storybook host, we alias the package to this +// stub via metro.config.js and disable its native autolinking in react-native.config.js. +const React = require('react'); +const { View } = require('react-native'); + +const insets = { top: 0, right: 0, bottom: 0, left: 0 }; +const frame = { x: 0, y: 0, width: 0, height: 0 }; + +const SafeAreaInsetsContext = React.createContext(insets); +const SafeAreaFrameContext = React.createContext(frame); + +const SafeAreaProvider = ({ children }) => React.createElement(View, { style: { flex: 1 } }, children); + +const SafeAreaView = React.forwardRef((props, ref) => React.createElement(View, { ref, ...props })); + +const useSafeAreaInsets = () => insets; +const useSafeAreaFrame = () => frame; + +const initialWindowMetrics = { insets, frame }; + +module.exports = { + SafeAreaProvider, + SafeAreaConsumer: SafeAreaInsetsContext.Consumer, + SafeAreaInsetsContext, + SafeAreaFrameContext, + SafeAreaView, + useSafeAreaInsets, + useSafeAreaFrame, + initialWindowMetrics, +}; diff --git a/packages/agentic-components/storybook/storybook-server.cjs b/packages/agentic-components/storybook/storybook-server.cjs new file mode 100644 index 0000000000..54363bf0ca --- /dev/null +++ b/packages/agentic-components/storybook/storybook-server.cjs @@ -0,0 +1,33 @@ +// Standalone Storybook channel server for the agentic-components Storybook app. +// +// This lets external agents drive the running on-device Storybook app: +// - WebSocket channel (ws://:/): select the current story, read/update control +// args, and receive Storybook channel events. The on-device app connects to this server +// (configured via getStorybookUI({ enableWebsockets: true, host, port }) in .rnstorybook/index.tsx). +// - MCP endpoint (http://:/mcp): an MCP server for AI agents to query story / +// component documentation and metadata (enabled via experimental_mcp). +// +// We run this standalone (instead of via withStorybook) because the bundler-agnostic +// `withStorybook` only starts the channel server in entry-point-swapping mode +// (STORYBOOK_ENABLED=true), which is incompatible with this app's in-app integration. +// +// Usage: `yarn storybook-server` (run alongside `yarn start` + `yarn macos`). +const path = require('node:path'); +const { createChannelServer } = require('@storybook/react-native/node'); + +const host = process.env.STORYBOOK_WS_HOST || '127.0.0.1'; +const port = Number(process.env.STORYBOOK_WS_PORT) || 7007; + +createChannelServer({ + host, + port, + configPath: path.resolve(__dirname, '.rnstorybook'), + websockets: true, + experimental_mcp: true, + keepNodeProcessAlive: true, +}); + +// eslint-disable-next-line no-console +console.log(`Storybook channel server listening: + WebSocket : ws://${host}:${port}/ + MCP : http://${host}:${port}/mcp`); diff --git a/packages/agentic-components/storybook/tsconfig.json b/packages/agentic-components/storybook/tsconfig.json new file mode 100644 index 0000000000..e40173a10a --- /dev/null +++ b/packages/agentic-components/storybook/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "@fluentui-react-native/scripts/tsconfig", + "compilerOptions": { + "noEmit": true, + "jsx": "react-jsx", + "module": "esnext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "resolveJsonModule": true, + "composite": true, + "tsBuildInfoFile": ".cache/tsconfig.tsbuildinfo" + }, + "include": ["index.js", "src", "app.json"], + "exclude": ["node_modules", "dist", ".cache"], + "references": [ + { + "path": "../tsconfig.json" + }, + { + "path": "../../../scripts/tsconfig.json" + } + ] +} diff --git a/packages/agentic-components/tsconfig.json b/packages/agentic-components/tsconfig.json new file mode 100644 index 0000000000..6f47dcbb7d --- /dev/null +++ b/packages/agentic-components/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@fluentui-react-native/scripts/tsconfig", + "compilerOptions": { + "outDir": "lib", + "rootDir": "src", + "composite": true, + "tsBuildInfoFile": ".cache/tsconfig.tsbuildinfo" + }, + "include": ["src"], + "exclude": ["**/*.stories.ts", "**/*.stories.tsx"], + "references": [ + { + "path": "../../scripts/tsconfig.json" + } + ] +} diff --git a/scripts/src/pkgContext.ts b/scripts/src/pkgContext.ts index d820018886..bf93448194 100644 --- a/scripts/src/pkgContext.ts +++ b/scripts/src/pkgContext.ts @@ -21,6 +21,7 @@ export type FurnConfig = { extraEntries?: string[]; project?: string[]; extraProject?: string[]; + ignoreDependencies?: string[]; }; }; diff --git a/tsconfig.json b/tsconfig.json index 82e7dc8b85..383b900573 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,6 +13,12 @@ { "path": "apps/win32/tsconfig.json" }, + { + "path": "packages/agentic-components/tsconfig.json" + }, + { + "path": "packages/agentic-components/storybook/tsconfig.json" + }, { "path": "packages/codemods/tsconfig.json" }, diff --git a/yarn.lock b/yarn.lock index b4719b5bd1..88dfb7850e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 8 cacheKey: 10c0 +"@adobe/css-tools@npm:^4.4.0": + version: 4.5.0 + resolution: "@adobe/css-tools@npm:4.5.0" + checksum: 10c0/fc969e1117098eb4cccdb73beb2508daa0e52760af1183d6288bafea59204943490ab3ede28593032ffb8929c0cee270b2a53254fe61139ab00604ea8fc33cea + languageName: node + linkType: hard + "@appium/base-driver@npm:^10.0.0-rc.1, @appium/base-driver@npm:^10.0.0-rc.2, @appium/base-driver@npm:^10.2.0": version: 10.2.0 resolution: "@appium/base-driver@npm:10.2.0" @@ -165,7 +172,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.27.1, @babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.27.1, @babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0, @babel/code-frame@npm:^7.29.7": version: 7.29.7 resolution: "@babel/code-frame@npm:7.29.7" dependencies: @@ -183,6 +190,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/compat-data@npm:7.29.7" + checksum: 10c0/47913f05e08a45a1c9df38c02b4b49e391005085b489432647a1abe112e5d9c75e3be8ea5972b7f6da4ec5d1339922ceb9ea02b8a25d4ed1cb8636e5261f344e + languageName: node + linkType: hard + "@babel/core@npm:^7.0.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.20.0, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.7, @babel/core@npm:^7.25.2": version: 7.29.0 resolution: "@babel/core@npm:7.29.0" @@ -206,7 +220,30 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.29.0, @babel/generator@npm:^7.29.1, @babel/generator@npm:^7.7.2": +"@babel/core@npm:^7.28.0": + version: 7.29.7 + resolution: "@babel/core@npm:7.29.7" + dependencies: + "@babel/code-frame": "npm:^7.29.7" + "@babel/generator": "npm:^7.29.7" + "@babel/helper-compilation-targets": "npm:^7.29.7" + "@babel/helper-module-transforms": "npm:^7.29.7" + "@babel/helpers": "npm:^7.29.7" + "@babel/parser": "npm:^7.29.7" + "@babel/template": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + "@jridgewell/remapping": "npm:^2.3.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/112fb09c24de7a1de64d1de2c31fe65c4e6af4cb2fb6e6d99ea5373e6fc51e75b88581c0efae4c4c68f119a02a988c7106e95011a41530a2fb8ed793c7eaa07b + languageName: node + linkType: hard + +"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.29.0, @babel/generator@npm:^7.29.1, @babel/generator@npm:^7.29.7, @babel/generator@npm:^7.7.2": version: 7.29.7 resolution: "@babel/generator@npm:7.29.7" dependencies: @@ -241,6 +278,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-compilation-targets@npm:7.29.7" + dependencies: + "@babel/compat-data": "npm:^7.29.7" + "@babel/helper-validator-option": "npm:^7.29.7" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/4c15fd4c69a0a7047799a28a88460c19cede0a0ee8af994ea169114986f4af48b92c7393a4a3fee0456c11a656eece3448a6ed06354453d6c27cccf17195453b + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-create-class-features-plugin@npm:7.28.6" @@ -302,6 +352,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-globals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-globals@npm:7.29.7" + checksum: 10c0/f38417c40b1129a1b2b519ca961b9040c8827d1444fd74068702286b91b77089431dc76b6b9d5c1496e5da2a4f3ad329c6946e688ba3fa0d1d0b3d2b4f34f36a + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-member-expression-to-functions@npm:7.28.5" @@ -322,6 +379,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-module-imports@npm:7.29.7" + dependencies: + "@babel/traverse": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/6adf60d97356027413342a092f818d9678c4f5caff716a33e3284b5ae14e47a9e88059d421dde4ee4894691260039a12602c0e7becadc175602194b40dfa345d + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-module-transforms@npm:7.28.6" @@ -335,6 +402,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-module-transforms@npm:7.29.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.29.7" + "@babel/helper-validator-identifier": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ee5a2172c24a42be696836f4b0d947489c9729d8adf5821885cf77d1ad5333e3c447368e9a71f67df1099570490553dccf9f888ef0a92a48aa63cb086bd8c7e1 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" @@ -408,6 +488,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-validator-option@npm:7.29.7" + checksum: 10c0/d2a06c6d0ac40ba4a2f219fc2cab249c7a94bacdb2686273b7f9598571c908809b48468ff588915a346e6cc7296f60b581023d1d498b747fed06f779d335c2cc + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-wrap-function@npm:7.27.1" @@ -429,6 +516,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helpers@npm:7.29.7" + dependencies: + "@babel/template": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/218e8d10953647c9f44775f5a022b227a182674853b5ea8631889deb7e1a3e4bc870388aaecf59bb8bd92a87f9a96220ed3f70a35bffec6bcf9169ecb67891ac + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0, @babel/parser@npm:^7.29.7": version: 7.29.7 resolution: "@babel/parser@npm:7.29.7" @@ -1741,6 +1838,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.17.8": + version: 7.29.7 + resolution: "@babel/runtime@npm:7.29.7" + checksum: 10c0/ca11572f7146b21e0bde6a9ed4bb6a89eafbee5f0944c7eb54d0d8a2dac962c33638a1d611e14faa71dfbb92b4b5f9236232208568a6b7d5c6f3f39ddb91771e + languageName: node + linkType: hard + "@babel/template@npm:^7.0.0, @babel/template@npm:^7.25.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.28.6, @babel/template@npm:^7.3.3": version: 7.28.6 resolution: "@babel/template@npm:7.28.6" @@ -1752,6 +1856,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/template@npm:7.29.7" + dependencies: + "@babel/code-frame": "npm:^7.29.7" + "@babel/parser": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/8bb7f900dcab0e9e1c5ffbc33ca10e0d26b7b2e2ca804becb73ee771b9c4ed6e2908a4ae4a14c08560febb45d2b6b9a173955e42ad404d05f8b04840a14d9c58 + languageName: node + linkType: hard + "@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0": version: 7.29.0 resolution: "@babel/traverse@npm:7.29.0" @@ -1767,7 +1882,22 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0, @babel/types@npm:^7.29.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": +"@babel/traverse@npm:^7.28.0, @babel/traverse@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/traverse@npm:7.29.7" + dependencies: + "@babel/code-frame": "npm:^7.29.7" + "@babel/generator": "npm:^7.29.7" + "@babel/helper-globals": "npm:^7.29.7" + "@babel/parser": "npm:^7.29.7" + "@babel/template": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + debug: "npm:^4.3.1" + checksum: 10c0/e256a1fbdb956555b76f3c285b1e453f6bedec8b3afb61751d99d933efd11c7d79caf5ddf2493570058a9f7deaa1b48324380d7c1aa1443fd9508becbf56331a + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0, @babel/types@npm:^7.29.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.29.7 resolution: "@babel/types@npm:7.29.7" dependencies: @@ -2075,6 +2205,16 @@ __metadata: languageName: node linkType: hard +"@emnapi/core@npm:1.9.2": + version: 1.9.2 + resolution: "@emnapi/core@npm:1.9.2" + dependencies: + "@emnapi/wasi-threads": "npm:1.2.1" + tslib: "npm:^2.4.0" + checksum: 10c0/5500393f953951bad0768fafaa9191f2d938956b20c6d6a79e5ab696a613a25ce6ad23422bc18e86e6ce8deb147619d8d0d7d413a69f84adc01a6633cc353cd9 + languageName: node + linkType: hard + "@emnapi/runtime@npm:1.10.0, @emnapi/runtime@npm:^1.7.0": version: 1.10.0 resolution: "@emnapi/runtime@npm:1.10.0" @@ -2084,6 +2224,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/runtime@npm:1.9.2": + version: 1.9.2 + resolution: "@emnapi/runtime@npm:1.9.2" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/61c3a59e0c36784558b8d58eb02bd04815aa5fb0dbfbaf84d1b3050a78aa0cc63ea129ae806bd1e48062bfeb7fc36eb0e5431740d62f64ea51bdf426404b8caa + languageName: node + linkType: hard + "@emnapi/wasi-threads@npm:1.2.1": version: 1.2.1 resolution: "@emnapi/wasi-threads@npm:1.2.1" @@ -2114,6 +2263,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/aix-ppc64@npm:0.28.1" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-arm64@npm:0.25.5" @@ -2128,6 +2284,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/android-arm64@npm:0.28.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-arm@npm:0.25.5" @@ -2142,6 +2305,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/android-arm@npm:0.28.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-x64@npm:0.25.5" @@ -2156,6 +2326,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/android-x64@npm:0.28.1" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/darwin-arm64@npm:0.25.5" @@ -2170,6 +2347,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/darwin-arm64@npm:0.28.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/darwin-x64@npm:0.25.5" @@ -2184,6 +2368,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/darwin-x64@npm:0.28.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/freebsd-arm64@npm:0.25.5" @@ -2198,6 +2389,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/freebsd-arm64@npm:0.28.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/freebsd-x64@npm:0.25.5" @@ -2212,6 +2410,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/freebsd-x64@npm:0.28.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-arm64@npm:0.25.5" @@ -2226,6 +2431,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-arm64@npm:0.28.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-arm@npm:0.25.5" @@ -2240,6 +2452,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-arm@npm:0.28.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-ia32@npm:0.25.5" @@ -2254,6 +2473,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-ia32@npm:0.28.1" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-loong64@npm:0.25.5" @@ -2268,6 +2494,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-loong64@npm:0.28.1" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-mips64el@npm:0.25.5" @@ -2282,6 +2515,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-mips64el@npm:0.28.1" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-ppc64@npm:0.25.5" @@ -2296,6 +2536,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-ppc64@npm:0.28.1" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-riscv64@npm:0.25.5" @@ -2310,6 +2557,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-riscv64@npm:0.28.1" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-s390x@npm:0.25.5" @@ -2324,6 +2578,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-s390x@npm:0.28.1" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-x64@npm:0.25.5" @@ -2338,6 +2599,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/linux-x64@npm:0.28.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/netbsd-arm64@npm:0.25.5" @@ -2352,6 +2620,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/netbsd-arm64@npm:0.28.1" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/netbsd-x64@npm:0.25.5" @@ -2366,6 +2641,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/netbsd-x64@npm:0.28.1" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/openbsd-arm64@npm:0.25.5" @@ -2380,6 +2662,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/openbsd-arm64@npm:0.28.1" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/openbsd-x64@npm:0.25.5" @@ -2394,6 +2683,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/openbsd-x64@npm:0.28.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openharmony-arm64@npm:0.28.0": version: 0.28.0 resolution: "@esbuild/openharmony-arm64@npm:0.28.0" @@ -2401,6 +2697,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openharmony-arm64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/openharmony-arm64@npm:0.28.1" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/sunos-x64@npm:0.25.5" @@ -2415,6 +2718,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/sunos-x64@npm:0.28.1" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-arm64@npm:0.25.5" @@ -2429,6 +2739,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/win32-arm64@npm:0.28.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-ia32@npm:0.25.5" @@ -2443,6 +2760,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/win32-ia32@npm:0.28.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-x64@npm:0.25.5" @@ -2457,6 +2781,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.28.1": + version: 0.28.1 + resolution: "@esbuild/win32-x64@npm:0.28.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.9.1": version: 4.9.1 resolution: "@eslint-community/eslint-utils@npm:4.9.1" @@ -2510,6 +2841,76 @@ __metadata: languageName: unknown linkType: soft +"@fluentui-react-native/agentic-components-storybook@workspace:packages/agentic-components/storybook": + version: 0.0.0-use.local + resolution: "@fluentui-react-native/agentic-components-storybook@workspace:packages/agentic-components/storybook" + dependencies: + "@babel/core": "catalog:" + "@fluentui-react-native/agentic-components": "workspace:*" + "@fluentui-react-native/scripts": "workspace:*" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native-community/datetimepicker": "npm:^9.1.0" + "@react-native-community/slider": "npm:^5.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-babel-transformer": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@rnx-kit/cli": "catalog:" + "@rnx-kit/metro-config": "catalog:" + "@rnx-kit/metro-resolver-symlinks": "catalog:" + "@storybook/addon-ondevice-actions": "npm:^10.4.7" + "@storybook/addon-ondevice-controls": "npm:^10.4.7" + "@storybook/mcp": "npm:^0.7.0" + "@storybook/react": "npm:^10.4.6" + "@storybook/react-native": "npm:^10.4.7" + "@storybook/react-native-ui-lite": "npm:^10.4.7" + "@tmcp/adapter-valibot": "npm:^0.1.6" + "@tmcp/transport-http": "npm:^0.8.6" + "@types/react": "npm:~19.1.4" + metro: "npm:^0.83.1" + oxc-resolver: "catalog:" + react: "npm:19.1.4" + react-native: "npm:^0.81.6" + react-native-macos: "npm:^0.81.0" + react-native-test-app: "catalog:" + react-native-windows: "npm:^0.81.0" + storybook: "npm:^10.4.0" + tmcp: "npm:^1.19.4" + valibot: "npm:^1.4.1" + languageName: unknown + linkType: soft + +"@fluentui-react-native/agentic-components@workspace:*, @fluentui-react-native/agentic-components@workspace:packages/agentic-components": + version: 0.0.0-use.local + resolution: "@fluentui-react-native/agentic-components@workspace:packages/agentic-components" + dependencies: + "@babel/core": "catalog:" + "@fluentui-react-native/scripts": "workspace:*" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.4" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.4" + react-native: "npm:^0.81.6" + react-native-macos: "npm:^0.81.0" + react-test-renderer: "npm:19.1.4" + peerDependencies: + "@types/react": ~18.2.0 || ~19.0.0 || ~19.1.4 + react: 18.2.0 || 19.0.0 || 19.1.4 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.6 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + peerDependenciesMeta: + "@types/react": + optional: true + react-native-macos: + optional: true + languageName: unknown + linkType: soft + "@fluentui-react-native/android-theme@workspace:*, @fluentui-react-native/android-theme@workspace:packages/theming/android-theme": version: 0.0.0-use.local resolution: "@fluentui-react-native/android-theme@workspace:packages/theming/android-theme" @@ -5803,6 +6204,18 @@ __metadata: languageName: node linkType: hard +"@gorhom/portal@npm:^1.0.14": + version: 1.0.14 + resolution: "@gorhom/portal@npm:1.0.14" + dependencies: + nanoid: "npm:^3.3.1" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10c0/86f33afc2ac2656a86a6f3fd1e41565419839576ede2c38333434a93a0a2fe4fb6fc18ab3360579427f2a1fc3b4564b933cc5ae1793a7e2825c93860a00b215f + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" @@ -6723,12 +7136,28 @@ __metadata: languageName: node linkType: hard -"@manypkg/find-root@npm:^1.1.0": - version: 1.1.0 - resolution: "@manypkg/find-root@npm:1.1.0" +"@legendapp/list@npm:^3.0.6": + version: 3.2.0 + resolution: "@legendapp/list@npm:3.2.0" dependencies: - "@babel/runtime": "npm:^7.5.5" - "@types/node": "npm:^12.7.1" + use-sync-external-store: "npm:^1.5.0" + peerDependencies: + react: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 10c0/858aedf9b92f0fa674a3ca308bf07b8ce9551148d02109405df684b52a7cd6e1bbfcfff60fcfe0a3a7c1da0639d026bf3af87c1556d86b526d55a58c574cbc96 + languageName: node + linkType: hard + +"@manypkg/find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "@manypkg/find-root@npm:1.1.0" + dependencies: + "@babel/runtime": "npm:^7.5.5" + "@types/node": "npm:^12.7.1" find-up: "npm:^4.1.0" fs-extra: "npm:^8.1.0" checksum: 10c0/0ee907698e6c73d6f1821ff630f3fec6dcf38260817c8752fec8991ac38b95ba431ab11c2773ddf9beb33d0e057f1122b00e8ffc9b8411b3fd24151413626fa6 @@ -6882,6 +7311,13 @@ __metadata: languageName: node linkType: hard +"@nozbe/microfuzz@npm:^1.0.0": + version: 1.0.0 + resolution: "@nozbe/microfuzz@npm:1.0.0" + checksum: 10c0/16ce1b36b521f3990b83b08d2a6d1f6eb43fe240d0ebfb600e8f469187a1303c6aa576925b6c0bebee8a8df2f8e8e768e12b1c67d4ac50133468b7a02c46efa9 + languageName: node + linkType: hard + "@npmcli/agent@npm:^4.0.0": version: 4.0.0 resolution: "@npmcli/agent@npm:4.0.0" @@ -7009,6 +7445,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-android-arm-eabi@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-android-arm-eabi@npm:0.127.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@oxc-parser/binding-android-arm-eabi@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-android-arm-eabi@npm:0.128.0" @@ -7016,6 +7459,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-android-arm64@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-android-arm64@npm:0.127.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@oxc-parser/binding-android-arm64@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-android-arm64@npm:0.128.0" @@ -7023,6 +7473,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-darwin-arm64@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-darwin-arm64@npm:0.127.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@oxc-parser/binding-darwin-arm64@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-darwin-arm64@npm:0.128.0" @@ -7030,6 +7487,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-darwin-x64@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-darwin-x64@npm:0.127.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@oxc-parser/binding-darwin-x64@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-darwin-x64@npm:0.128.0" @@ -7037,6 +7501,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-freebsd-x64@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-freebsd-x64@npm:0.127.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@oxc-parser/binding-freebsd-x64@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-freebsd-x64@npm:0.128.0" @@ -7044,6 +7515,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-arm-gnueabihf@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-arm-gnueabihf@npm:0.127.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@oxc-parser/binding-linux-arm-gnueabihf@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-arm-gnueabihf@npm:0.128.0" @@ -7051,6 +7529,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-arm-musleabihf@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-arm-musleabihf@npm:0.127.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@oxc-parser/binding-linux-arm-musleabihf@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-arm-musleabihf@npm:0.128.0" @@ -7058,6 +7543,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-arm64-gnu@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-arm64-gnu@npm:0.127.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@oxc-parser/binding-linux-arm64-gnu@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-arm64-gnu@npm:0.128.0" @@ -7065,6 +7557,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-arm64-musl@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-arm64-musl@npm:0.127.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@oxc-parser/binding-linux-arm64-musl@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-arm64-musl@npm:0.128.0" @@ -7072,6 +7571,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-ppc64-gnu@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-ppc64-gnu@npm:0.127.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@oxc-parser/binding-linux-ppc64-gnu@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-ppc64-gnu@npm:0.128.0" @@ -7079,6 +7585,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-riscv64-gnu@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-riscv64-gnu@npm:0.127.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@oxc-parser/binding-linux-riscv64-gnu@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-riscv64-gnu@npm:0.128.0" @@ -7086,6 +7599,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-riscv64-musl@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-riscv64-musl@npm:0.127.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + "@oxc-parser/binding-linux-riscv64-musl@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-riscv64-musl@npm:0.128.0" @@ -7093,6 +7613,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-s390x-gnu@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-s390x-gnu@npm:0.127.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@oxc-parser/binding-linux-s390x-gnu@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-s390x-gnu@npm:0.128.0" @@ -7100,6 +7627,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-x64-gnu@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-x64-gnu@npm:0.127.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@oxc-parser/binding-linux-x64-gnu@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-x64-gnu@npm:0.128.0" @@ -7107,6 +7641,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-linux-x64-musl@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-linux-x64-musl@npm:0.127.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@oxc-parser/binding-linux-x64-musl@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-linux-x64-musl@npm:0.128.0" @@ -7114,6 +7655,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-openharmony-arm64@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-openharmony-arm64@npm:0.127.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@oxc-parser/binding-openharmony-arm64@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-openharmony-arm64@npm:0.128.0" @@ -7121,6 +7669,17 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-wasm32-wasi@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-wasm32-wasi@npm:0.127.0" + dependencies: + "@emnapi/core": "npm:1.9.2" + "@emnapi/runtime": "npm:1.9.2" + "@napi-rs/wasm-runtime": "npm:^1.1.4" + conditions: cpu=wasm32 + languageName: node + linkType: hard + "@oxc-parser/binding-wasm32-wasi@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-wasm32-wasi@npm:0.128.0" @@ -7132,6 +7691,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-win32-arm64-msvc@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-win32-arm64-msvc@npm:0.127.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@oxc-parser/binding-win32-arm64-msvc@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-win32-arm64-msvc@npm:0.128.0" @@ -7139,6 +7705,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-win32-ia32-msvc@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-win32-ia32-msvc@npm:0.127.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@oxc-parser/binding-win32-ia32-msvc@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-win32-ia32-msvc@npm:0.128.0" @@ -7146,6 +7719,13 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-win32-x64-msvc@npm:0.127.0": + version: 0.127.0 + resolution: "@oxc-parser/binding-win32-x64-msvc@npm:0.127.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@oxc-parser/binding-win32-x64-msvc@npm:0.128.0": version: 0.128.0 resolution: "@oxc-parser/binding-win32-x64-msvc@npm:0.128.0" @@ -7153,6 +7733,13 @@ __metadata: languageName: node linkType: hard +"@oxc-project/types@npm:^0.127.0": + version: 0.127.0 + resolution: "@oxc-project/types@npm:0.127.0" + checksum: 10c0/52c0947ac64a9ca119fe971f947e784a35ecd14a072fa3f542a58a5f6c42010b53f2bf92731e39b9899b83c990a9517bbd29d1e5a5b7b489e52616685c6a9278 + languageName: node + linkType: hard + "@oxc-project/types@npm:^0.128.0": version: 0.128.0 resolution: "@oxc-project/types@npm:0.128.0" @@ -8000,6 +8587,25 @@ __metadata: languageName: node linkType: hard +"@react-native-community/datetimepicker@npm:^9.1.0": + version: 9.1.0 + resolution: "@react-native-community/datetimepicker@npm:9.1.0" + dependencies: + invariant: "npm:^2.2.4" + peerDependencies: + expo: ">=52.0.0" + react: "*" + react-native: "*" + react-native-windows: "*" + peerDependenciesMeta: + expo: + optional: true + react-native-windows: + optional: true + checksum: 10c0/3f31baec58c1245204a9b4057809027019aa1abb4b8caea4cb4d44ab70f5a97dfe5114a8aa315299aa47ad31971059181c355aa056d9c3a14b7892582da9f4cb + languageName: node + linkType: hard + "@react-native-community/slider@npm:^4.5.7": version: 4.5.7 resolution: "@react-native-community/slider@npm:4.5.7" @@ -8007,6 +8613,13 @@ __metadata: languageName: node linkType: hard +"@react-native-community/slider@npm:^5.0.0": + version: 5.2.0 + resolution: "@react-native-community/slider@npm:5.2.0" + checksum: 10c0/58ec6a47b5aafefd98a61c79aeae05f1ab8371782eb497d9af665bf2f62a1c372da8fed6dead30e1d6c9e01bfb12bfdbafcde7890736f4f5d55502dabf2e01ad + languageName: node + linkType: hard + "@react-native-macos/virtualized-lists@npm:0.81.2": version: 0.81.2 resolution: "@react-native-macos/virtualized-lists@npm:0.81.2" @@ -9181,6 +9794,238 @@ __metadata: languageName: node linkType: hard +"@standard-schema/spec@npm:^1.0.0": + version: 1.1.0 + resolution: "@standard-schema/spec@npm:1.1.0" + checksum: 10c0/d90f55acde4b2deb983529c87e8025fa693de1a5e8b49ecc6eb84d1fd96328add0e03d7d551442156c7432fd78165b2c26ff561b970a9a881f046abb78d6a526 + languageName: node + linkType: hard + +"@storybook/addon-ondevice-actions@npm:^10.4.7": + version: 10.4.7 + resolution: "@storybook/addon-ondevice-actions@npm:10.4.7" + dependencies: + "@storybook/react-native-theming": "npm:^10.4.7" + fast-deep-equal: "npm:^3.1.3" + peerDependencies: + react: "*" + react-native: "*" + storybook: ">=10 || ^10" + checksum: 10c0/e6d2d2b6d3de40accdc05e25583c3c0b1d89de7c51eecfca13f52795c618a7072333b495a3512f42b7c4c22439adc34f8b180df386396dc87a2c325195c2a023 + languageName: node + linkType: hard + +"@storybook/addon-ondevice-controls@npm:^10.4.7": + version: 10.4.7 + resolution: "@storybook/addon-ondevice-controls@npm:10.4.7" + dependencies: + "@gorhom/portal": "npm:^1.0.14" + "@storybook/react-native-theming": "npm:^10.4.7" + "@storybook/react-native-ui-common": "npm:^10.4.7" + polished: "npm:^4.3.1" + react-native-modal-datetime-picker: "npm:^18.0.0" + tinycolor2: "npm:^1.6.0" + peerDependencies: + "@gorhom/bottom-sheet": ">=4" + "@react-native-community/datetimepicker": "*" + "@react-native-community/slider": "*" + react: "*" + react-native: "*" + storybook: ">=10 || ^10" + peerDependenciesMeta: + "@gorhom/bottom-sheet": + optional: true + checksum: 10c0/b87b8b510052e01e4a7f962ed085a14ed34a386b583b4d78a24c17ed89025f89650edf38a0158d7f23539902b476494da61d9eaee5cf0982b33ba4406a405bf8 + languageName: node + linkType: hard + +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: 10c0/8f1b61dcdd3a89584540896e659af2ecc700bc740c16909a7be24ac19127ea213324de144a141f7caf8affaed017d064fea0618d453afbe027cf60f54b4a6d0b + languageName: node + linkType: hard + +"@storybook/icons@npm:^2.0.2": + version: 2.1.0 + resolution: "@storybook/icons@npm:2.1.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/73614dbb3e9c4756a6838525a6c78f85b24a5a09782512a39f24fe5a435992d6af92591ce18ac7a9a08c14aec10c08b158f68126aa29125058e01169c827bed6 + languageName: node + linkType: hard + +"@storybook/mcp@npm:^0.7.0": + version: 0.7.0 + resolution: "@storybook/mcp@npm:0.7.0" + dependencies: + "@tmcp/adapter-valibot": "npm:^0.1.5" + "@tmcp/transport-http": "npm:^0.8.5" + tmcp: "npm:^1.19.3" + valibot: "npm:1.2.0" + checksum: 10c0/56c90e597684e55e40451da47fc41e581d21365f405990c3cfbaaf8a19b71da17ede83399ed1524c6a1726050b0e0ba55474de5344cdeefe0cf9045faccb92b8 + languageName: node + linkType: hard + +"@storybook/react-dom-shim@npm:10.4.6": + version: 10.4.6 + resolution: "@storybook/react-dom-shim@npm:10.4.6" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + "@types/react-dom": ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.4.6 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/d7b2f86be48714cbe217628207a9c6de43839cf74c684501f107049983e6444d0de6b7d84d006a0fb5b63e42ab789ea3abc40e2450a3dee6b38ceba482cc7176 + languageName: node + linkType: hard + +"@storybook/react-native-theming@npm:^10.4.7": + version: 10.4.7 + resolution: "@storybook/react-native-theming@npm:10.4.7" + dependencies: + polished: "npm:^4.3.1" + peerDependencies: + react: "*" + react-native: ">=0.57.0" + checksum: 10c0/4e3549db0990f142074c70aaeb17c7efb44cc7ed6ee8cbd61a0d690b844b6a58b44dac8b51947cdc54d175cd91e4633ab3aa862e73c34083f5e3d245dbe68acb + languageName: node + linkType: hard + +"@storybook/react-native-ui-common@npm:^10.4.7": + version: 10.4.7 + resolution: "@storybook/react-native-ui-common@npm:10.4.7" + dependencies: + "@nozbe/microfuzz": "npm:^1.0.0" + "@storybook/react": "npm:^10.4.6" + "@storybook/react-native-theming": "npm:^10.4.7" + es-toolkit: "npm:^1.47.1" + memoizerific: "npm:^1.11.3" + ts-dedent: "npm:^2.3.0" + peerDependencies: + react: "*" + react-native: ">=0.57.0" + storybook: ">=10 || ^10" + checksum: 10c0/ad0a2c5ffea739df38e9f2376b78de46a14fe22d806bfa99504987f7622c19651ec94b29aa3e68e75825f3b41db61ba7f0a2536155dcdf96235a303e12f6ac6f + languageName: node + linkType: hard + +"@storybook/react-native-ui-lite@npm:^10.4.7": + version: 10.4.7 + resolution: "@storybook/react-native-ui-lite@npm:10.4.7" + dependencies: + "@gorhom/portal": "npm:^1.0.14" + "@legendapp/list": "npm:^3.0.6" + "@nozbe/microfuzz": "npm:^1.0.0" + "@storybook/react": "npm:^10.4.6" + "@storybook/react-native-theming": "npm:^10.4.7" + "@storybook/react-native-ui-common": "npm:^10.4.7" + polished: "npm:^4.3.1" + peerDependencies: + react: "*" + react-native: ">=0.57.0" + react-native-safe-area-context: "*" + storybook: ">=10 || ^10" + checksum: 10c0/830e73616bfbc73f232e4927dcdb72b6b59d795423a18e634af38ace5055384749baaff4f1a600f895243f128bedca26a3f6c00efaceadee57972d28f1565531 + languageName: node + linkType: hard + +"@storybook/react-native-ui@npm:^10.4.7": + version: 10.4.7 + resolution: "@storybook/react-native-ui@npm:10.4.7" + dependencies: + "@gorhom/portal": "npm:^1.0.14" + "@nozbe/microfuzz": "npm:^1.0.0" + "@storybook/react": "npm:^10.4.6" + "@storybook/react-native-theming": "npm:^10.4.7" + "@storybook/react-native-ui-common": "npm:^10.4.7" + polished: "npm:^4.3.1" + peerDependencies: + "@gorhom/bottom-sheet": ">=4" + react: "*" + react-native: ">=0.57.0" + react-native-gesture-handler: ">=2" + react-native-reanimated: ">=3" + react-native-safe-area-context: "*" + react-native-svg: ">=14" + storybook: ">=10 || ^10" + checksum: 10c0/dc6fd0055a64fb248815bde61435aedbf861f14a003458aaeea71248f70bb9af781015550181cb154ced2a569ec1fcdd8e9a2f0a782a5e6c73764ed61e20ed28 + languageName: node + linkType: hard + +"@storybook/react-native@npm:^10.4.7": + version: 10.4.7 + resolution: "@storybook/react-native@npm:10.4.7" + dependencies: + "@storybook/mcp": "npm:^0.7.0" + "@storybook/react": "npm:^10.4.6" + "@storybook/react-native-theming": "npm:^10.4.7" + "@storybook/react-native-ui": "npm:^10.4.7" + "@storybook/react-native-ui-common": "npm:^10.4.7" + "@tmcp/adapter-valibot": "npm:^0.1.6" + "@tmcp/transport-http": "npm:^0.8.6" + commander: "npm:^14.0.2" + dedent: "npm:^1.7.2" + deepmerge: "npm:^4.3.1" + esbuild-register: "npm:^3.6.0" + glob: "npm:^13.0.0" + react-native-url-polyfill: "npm:^3.0.0" + setimmediate: "npm:^1.0.5" + tmcp: "npm:^1.19.4" + valibot: "npm:^1.4.1" + ws: "npm:^8.21.0" + peerDependencies: + "@gorhom/bottom-sheet": ">=4" + react: "*" + react-native: ">=0.72.0" + react-native-gesture-handler: ">=2" + react-native-reanimated: ">=2" + react-native-safe-area-context: "*" + storybook: ">=10 || ^10" + peerDependenciesMeta: + "@gorhom/bottom-sheet": + optional: true + react-native-gesture-handler: + optional: true + react-native-reanimated: + optional: true + bin: + sb-rn-get-stories: ./bin/get-stories.js + checksum: 10c0/6bd4fa8a09f1229006bee09d5ce071bff03204992d6c636188b8cd91a4dbd8edc0dc3fe31ff46e4f17756870c950c0715a3f0c2708daf4ecc90ffa469c02cb91 + languageName: node + linkType: hard + +"@storybook/react@npm:^10.4.6": + version: 10.4.6 + resolution: "@storybook/react@npm:10.4.6" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@storybook/react-dom-shim": "npm:10.4.6" + react-docgen: "npm:^8.0.2" + react-docgen-typescript: "npm:^2.2.2" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + "@types/react-dom": ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.4.6 + typescript: ">= 4.9.x" + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + typescript: + optional: true + checksum: 10c0/8785d8665c47db86591964fdbde3601fa08f177cd81b85b99b01e2c89b3a0ef5635d71114836afc73944c1009a3fcb6157fe5fb6ef3a6b806eaaed601bb05ee0 + languageName: node + linkType: hard + "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0" @@ -9321,6 +10166,68 @@ __metadata: languageName: node linkType: hard +"@testing-library/jest-dom@npm:^6.9.1": + version: 6.9.1 + resolution: "@testing-library/jest-dom@npm:6.9.1" + dependencies: + "@adobe/css-tools": "npm:^4.4.0" + aria-query: "npm:^5.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + picocolors: "npm:^1.1.1" + redent: "npm:^3.0.0" + checksum: 10c0/4291ebd2f0f38d14cefac142c56c337941775a5807e2a3d6f1a14c2fbd6be76a18e498ed189e95bedc97d9e8cf1738049bc76c85b5bc5e23fae7c9e10f7b3a12 + languageName: node + linkType: hard + +"@testing-library/user-event@npm:^14.6.1": + version: 14.6.1 + resolution: "@testing-library/user-event@npm:14.6.1" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 10c0/75fea130a52bf320d35d46ed54f3eec77e71a56911b8b69a3fe29497b0b9947b2dc80d30f04054ad4ce7f577856ae3e5397ea7dff0ef14944d3909784c7a93fe + languageName: node + linkType: hard + +"@tmcp/adapter-valibot@npm:^0.1.5, @tmcp/adapter-valibot@npm:^0.1.6": + version: 0.1.6 + resolution: "@tmcp/adapter-valibot@npm:0.1.6" + dependencies: + "@standard-schema/spec": "npm:^1.0.0" + "@valibot/to-json-schema": "npm:^1.3.0" + valibot: "npm:^1.1.0" + peerDependencies: + tmcp: ^1.17.0 + valibot: ^1.1.0 + checksum: 10c0/4261efa7318f335eb7a8787f16a4db285a3e38288c31bc3b21fe61808c7e0c2057e09675d7b86d14cbe3ba2babad2ffe1891c4498001b27f74cb22fa135eef02 + languageName: node + linkType: hard + +"@tmcp/session-manager@npm:^0.2.2": + version: 0.2.2 + resolution: "@tmcp/session-manager@npm:0.2.2" + peerDependencies: + tmcp: ^1.16.3 + checksum: 10c0/a29507e7e36568f4eb5f0e7525c651adf4ec16d11273499f538f2e5cc4071920294c08cc4771b11cb52bc9f999e3a1a32466bb6521f605fc482cc932139b5d25 + languageName: node + linkType: hard + +"@tmcp/transport-http@npm:^0.8.5, @tmcp/transport-http@npm:^0.8.6": + version: 0.8.6 + resolution: "@tmcp/transport-http@npm:0.8.6" + dependencies: + "@tmcp/session-manager": "npm:^0.2.2" + esm-env: "npm:^1.2.2" + peerDependencies: + "@tmcp/auth": ^0.3.3 || ^0.4.0 + tmcp: ^1.18.0 + peerDependenciesMeta: + "@tmcp/auth": + optional: true + checksum: 10c0/da9a734cf15bcc84527194b2848ebcb33815fb9c26d579a90b2f0052eb193d764c1857f4c172f87167a51339f78cf7e17eba2b15f8a90459158b54a519291527 + languageName: node + linkType: hard + "@tootallnate/quickjs-emscripten@npm:^0.23.0": version: 0.23.0 resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" @@ -9372,7 +10279,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.1.14": +"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" dependencies: @@ -9413,6 +10320,15 @@ __metadata: languageName: node linkType: hard +"@types/babel__traverse@npm:^7.20.7": + version: 7.28.0 + resolution: "@types/babel__traverse@npm:7.28.0" + dependencies: + "@babel/types": "npm:^7.28.2" + checksum: 10c0/b52d7d4e8fc6a9018fe7361c4062c1c190f5778cf2466817cb9ed19d69fbbb54f9a85ffedeb748ed8062d2cf7d4cc088ee739848f47c57740de1c48cbf0d0994 + languageName: node + linkType: hard + "@types/braces@npm:*": version: 3.0.5 resolution: "@types/braces@npm:3.0.5" @@ -9420,6 +10336,30 @@ __metadata: languageName: node linkType: hard +"@types/chai@npm:^5.2.2": + version: 5.2.3 + resolution: "@types/chai@npm:5.2.3" + dependencies: + "@types/deep-eql": "npm:*" + assertion-error: "npm:^2.0.1" + checksum: 10c0/e0ef1de3b6f8045a5e473e867c8565788c444271409d155588504840ad1a53611011f85072188c2833941189400228c1745d78323dac13fcede9c2b28bacfb2f + languageName: node + linkType: hard + +"@types/deep-eql@npm:*": + version: 4.0.2 + resolution: "@types/deep-eql@npm:4.0.2" + checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844 + languageName: node + linkType: hard + +"@types/doctrine@npm:^0.0.9": + version: 0.0.9 + resolution: "@types/doctrine@npm:0.0.9" + checksum: 10c0/cdaca493f13c321cf0cacd1973efc0ae74569633145d9e6fc1128f32217a6968c33bea1f858275239fe90c98f3be57ec8f452b416a9ff48b8e8c1098b20fa51c + languageName: node + linkType: hard + "@types/graceful-fs@npm:^4.1.3": version: 4.1.6 resolution: "@types/graceful-fs@npm:4.1.6" @@ -9583,6 +10523,13 @@ __metadata: languageName: node linkType: hard +"@types/resolve@npm:^1.20.2": + version: 1.20.6 + resolution: "@types/resolve@npm:1.20.6" + checksum: 10c0/a9b0549d816ff2c353077365d865a33655a141d066d0f5a3ba6fd4b28bc2f4188a510079f7c1f715b3e7af505a27374adce2a5140a3ece2a059aab3d6e1a4244 + languageName: node + linkType: hard + "@types/sinonjs__fake-timers@npm:^8.1.5": version: 8.1.5 resolution: "@types/sinonjs__fake-timers@npm:8.1.5" @@ -10104,6 +11051,28 @@ __metadata: languageName: unknown linkType: soft +"@valibot/to-json-schema@npm:^1.3.0": + version: 1.7.1 + resolution: "@valibot/to-json-schema@npm:1.7.1" + peerDependencies: + valibot: ^1.4.0 + checksum: 10c0/15ef472fae3229ab0dc6860325e5c6d21e724e4edbb1794ec603bc3881925bcaf5db44b30536925141758abea155b33b640129dcbb0ddfb47414cb967a6eeae1 + languageName: node + linkType: hard + +"@vitest/expect@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/expect@npm:3.2.4" + dependencies: + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" + chai: "npm:^5.2.0" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/7586104e3fd31dbe1e6ecaafb9a70131e4197dce2940f727b6a84131eee3decac7b10f9c7c72fa5edbdb68b6f854353bd4c0fa84779e274207fb7379563b10db + languageName: node + linkType: hard + "@vitest/pretty-format@npm:2.1.9": version: 2.1.9 resolution: "@vitest/pretty-format@npm:2.1.9" @@ -10113,6 +11082,15 @@ __metadata: languageName: node linkType: hard +"@vitest/pretty-format@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/pretty-format@npm:3.2.4" + dependencies: + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/5ad7d4278e067390d7d633e307fee8103958806a419ca380aec0e33fae71b44a64415f7a9b4bc11635d3c13d4a9186111c581d3cef9c65cc317e68f077456887 + languageName: node + linkType: hard + "@vitest/pretty-format@npm:4.0.16": version: 4.0.16 resolution: "@vitest/pretty-format@npm:4.0.16" @@ -10144,6 +11122,26 @@ __metadata: languageName: node linkType: hard +"@vitest/spy@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/spy@npm:3.2.4" + dependencies: + tinyspy: "npm:^4.0.3" + checksum: 10c0/6ebf0b4697dc238476d6b6a60c76ba9eb1dd8167a307e30f08f64149612fd50227682b876420e4c2e09a76334e73f72e3ebf0e350714dc22474258292e202024 + languageName: node + linkType: hard + +"@vitest/utils@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/utils@npm:3.2.4" + dependencies: + "@vitest/pretty-format": "npm:3.2.4" + loupe: "npm:^3.1.4" + tinyrainbow: "npm:^2.0.0" + checksum: 10c0/024a9b8c8bcc12cf40183c246c244b52ecff861c6deb3477cbf487ac8781ad44c68a9c5fd69f8c1361878e55b97c10d99d511f2597f1f7244b5e5101d028ba64 + languageName: node + linkType: hard + "@vscode/sudo-prompt@npm:^9.0.0": version: 9.3.2 resolution: "@vscode/sudo-prompt@npm:9.3.2" @@ -10509,6 +11507,13 @@ __metadata: languageName: node linkType: hard +"@webcontainer/env@npm:^1.1.1": + version: 1.1.1 + resolution: "@webcontainer/env@npm:1.1.1" + checksum: 10c0/bc64114ffa7ee92f4985cc2bdd5e27f6f31d892b9aa5cde68eaf93df02d13ee6edf13faeebdd701464183b6f8f9c47c14975958cdd6fc20e7356ad32f6ee39e7 + languageName: node + linkType: hard + "@xmldom/xmldom@npm:^0.7.7": version: 0.7.9 resolution: "@xmldom/xmldom@npm:0.7.9" @@ -11174,7 +12179,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.3.0": +"aria-query@npm:^5.0.0, aria-query@npm:^5.3.0": version: 5.3.2 resolution: "aria-query@npm:5.3.2" checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e @@ -11335,6 +12340,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 + languageName: node + linkType: hard + "ast-types@npm:0.14.2, ast-types@npm:^0.14.1": version: 0.14.2 resolution: "ast-types@npm:0.14.2" @@ -11921,7 +12933,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.5.0": +"buffer@npm:^5.4.3, buffer@npm:^5.5.0": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -11931,6 +12943,15 @@ __metadata: languageName: node linkType: hard +"bundle-name@npm:^4.1.0": + version: 4.1.0 + resolution: "bundle-name@npm:4.1.0" + dependencies: + run-applescript: "npm:^7.0.0" + checksum: 10c0/8e575981e79c2bcf14d8b1c027a3775c095d362d1382312f444a7c861b0e21513c0bd8db5bd2b16e50ba0709fa622d4eab6b53192d222120305e68359daece29 + languageName: node + linkType: hard + "bytes@npm:3.1.2, bytes@npm:^3.1.2, bytes@npm:~3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -12049,6 +13070,19 @@ __metadata: languageName: node linkType: hard +"chai@npm:^5.2.0": + version: 5.3.3 + resolution: "chai@npm:5.3.3" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/b360fd4d38861622e5010c2f709736988b05c7f31042305fa3f4e9911f6adb80ccfb4e302068bf8ed10e835c2e2520cba0f5edc13d878b886987e5aa62483f53 + languageName: node + linkType: hard + "chalk@npm:^2.0.1, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -12098,6 +13132,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.3 + resolution: "check-error@npm:2.1.3" + checksum: 10c0/878e99038fb6476316b74668cd6a498c7e66df3efe48158fa40db80a06ba4258742ac3ee2229c4a2a98c5e73f5dff84eb3e50ceb6b65bbd8f831eafc8338607d + languageName: node + linkType: hard + "cheerio-select@npm:^2.1.0": version: 2.1.0 resolution: "cheerio-select@npm:2.1.0" @@ -12853,6 +13894,13 @@ __metadata: languageName: node linkType: hard +"css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: 10c0/5e09035e5bf6c2c422b40c6df2eb1529657a17df37fda5d0433d722609527ab98090baf25b13970ca754079a0f3161dd3dfc0e743563ded8cfa0749d861c1525 + languageName: node + linkType: hard + "csso@npm:^5.0.5": version: 5.0.5 resolution: "csso@npm:5.0.5" @@ -12988,7 +14036,19 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^5.0.2": +"dedent@npm:^1.7.2": + version: 1.7.2 + resolution: "dedent@npm:1.7.2" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 10c0/acaff07cac355b93f17b1b17ebbb84d3cc55af6ab4b7814c3f505e061903e168bc6bf9ddce331552d64dee1525f0b4c549c9ade46aebfac6f69caaed74e90751 + languageName: node + linkType: hard + +"deep-eql@npm:^5.0.1, deep-eql@npm:^5.0.2": version: 5.0.2 resolution: "deep-eql@npm:5.0.2" checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 @@ -13016,6 +14076,23 @@ __metadata: languageName: node linkType: hard +"default-browser-id@npm:^5.0.0": + version: 5.0.1 + resolution: "default-browser-id@npm:5.0.1" + checksum: 10c0/5288b3094c740ef3a86df9b999b04ff5ba4dee6b64e7b355c0fff5217752c8c86908d67f32f6cba9bb4f9b7b61a1b640c0a4f9e34c57e0ff3493559a625245ee + languageName: node + linkType: hard + +"default-browser@npm:^5.2.1": + version: 5.5.0 + resolution: "default-browser@npm:5.5.0" + dependencies: + bundle-name: "npm:^4.1.0" + default-browser-id: "npm:^5.0.0" + checksum: 10c0/576593b617b17a7223014b4571bfe1c06a2581a4eb8b130985d90d253afa3f40999caec70eb0e5776e80d4af6a41cce91018cd3f86e57ad578bf59e46fb19abe + languageName: node + linkType: hard + "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -13036,6 +14113,13 @@ __metadata: languageName: node linkType: hard +"define-lazy-prop@npm:^3.0.0": + version: 3.0.0 + resolution: "define-lazy-prop@npm:3.0.0" + checksum: 10c0/5ab0b2bf3fa58b3a443140bbd4cd3db1f91b985cc8a246d330b9ac3fc0b6a325a6d82bddc0b055123d745b3f9931afeea74a5ec545439a1630b9c8512b0eeb49 + languageName: node + linkType: hard + "define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" @@ -13216,6 +14300,22 @@ __metadata: languageName: node linkType: hard +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: 10c0/10bee5aa514b2a9a37c87cd81268db607a2e933a050074abc2f6fa3da9080ebed206a320cbc123567f2c3087d22292853bdfdceaffdd4334ffe2af9510b29360 + languageName: node + linkType: hard + "dom-serializer@npm:^2.0.0": version: 2.0.0 resolution: "dom-serializer@npm:2.0.0" @@ -13663,6 +14763,20 @@ __metadata: languageName: node linkType: hard +"es-toolkit@npm:^1.47.1": + version: 1.49.0 + resolution: "es-toolkit@npm:1.49.0" + dependenciesMeta: + "@trivago/prettier-plugin-sort-imports@4.3.0": + unplugged: true + prettier-plugin-sort-re-exports@0.0.1: + unplugged: true + vitepress-plugin-sandpack@1.1.4: + unplugged: true + checksum: 10c0/ab0864bb0c5c494ed09043d53a74b58a0ab9df1b89b9b54bce72a63de2869152d7d65e489dc89ab671f0fea243728922c8a8f8c873f1b2a53350a23360b3e2df + languageName: node + linkType: hard + "esbuild-plugin-lodash@npm:^1.2.0": version: 1.2.0 resolution: "esbuild-plugin-lodash@npm:1.2.0" @@ -13670,6 +14784,106 @@ __metadata: languageName: node linkType: hard +"esbuild-register@npm:^3.6.0": + version: 3.6.0 + resolution: "esbuild-register@npm:3.6.0" + dependencies: + debug: "npm:^4.3.4" + peerDependencies: + esbuild: ">=0.12 <1" + checksum: 10c0/77193b7ca32ba9f81b35ddf3d3d0138efb0b1429d71b39480cfee932e1189dd2e492bd32bf04a4d0bc3adfbc7ec7381ceb5ffd06efe35f3e70904f1f686566d5 + languageName: node + linkType: hard + +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0 || ^0.28.0": + version: 0.28.1 + resolution: "esbuild@npm:0.28.1" + dependencies: + "@esbuild/aix-ppc64": "npm:0.28.1" + "@esbuild/android-arm": "npm:0.28.1" + "@esbuild/android-arm64": "npm:0.28.1" + "@esbuild/android-x64": "npm:0.28.1" + "@esbuild/darwin-arm64": "npm:0.28.1" + "@esbuild/darwin-x64": "npm:0.28.1" + "@esbuild/freebsd-arm64": "npm:0.28.1" + "@esbuild/freebsd-x64": "npm:0.28.1" + "@esbuild/linux-arm": "npm:0.28.1" + "@esbuild/linux-arm64": "npm:0.28.1" + "@esbuild/linux-ia32": "npm:0.28.1" + "@esbuild/linux-loong64": "npm:0.28.1" + "@esbuild/linux-mips64el": "npm:0.28.1" + "@esbuild/linux-ppc64": "npm:0.28.1" + "@esbuild/linux-riscv64": "npm:0.28.1" + "@esbuild/linux-s390x": "npm:0.28.1" + "@esbuild/linux-x64": "npm:0.28.1" + "@esbuild/netbsd-arm64": "npm:0.28.1" + "@esbuild/netbsd-x64": "npm:0.28.1" + "@esbuild/openbsd-arm64": "npm:0.28.1" + "@esbuild/openbsd-x64": "npm:0.28.1" + "@esbuild/openharmony-arm64": "npm:0.28.1" + "@esbuild/sunos-x64": "npm:0.28.1" + "@esbuild/win32-arm64": "npm:0.28.1" + "@esbuild/win32-ia32": "npm:0.28.1" + "@esbuild/win32-x64": "npm:0.28.1" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/29cd456a79ce35ac2c7e05fe871330416b2c395c045d849653f843e51378d6e0d6e774d6dcd01b35f4e83238a29bf8decd04fcd34b3780c589a250b21e5f92bb + languageName: node + linkType: hard + "esbuild@npm:^0.28.0": version: 0.28.0 resolution: "esbuild@npm:0.28.0" @@ -14028,6 +15242,13 @@ __metadata: languageName: node linkType: hard +"esm-env@npm:^1.2.2": + version: 1.2.2 + resolution: "esm-env@npm:1.2.2" + checksum: 10c0/3d25c973f2fd69c25ffff29c964399cea573fe10795ecc1d26f6f957ce0483d3254e1cceddb34bf3296a0d7b0f1d53a28992f064ba509dfe6366751e752c4166 + languageName: node + linkType: hard + "esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -15246,6 +16467,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.3": + version: 2.0.4 + resolution: "hasown@npm:2.0.4" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/2d8de939e270b70618f8cebb69746620db10617dbb495bc66ddad326955ea24d3ca4af133aff3eb7c1853e0218f867bc2b050ec26fe02e3aea58f880ffc5e506 + languageName: node + linkType: hard + "hermes-estree@npm:0.19.1": version: 0.19.1 resolution: "hermes-estree@npm:0.19.1" @@ -15603,6 +16833,13 @@ __metadata: languageName: node linkType: hard +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + "index-to-position@npm:^1.1.0": version: 1.2.0 resolution: "index-to-position@npm:1.2.0" @@ -15794,8 +17031,17 @@ __metadata: version: 2.16.1 resolution: "is-core-module@npm:2.16.1" dependencies: - hasown: "npm:^2.0.2" - checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd + hasown: "npm:^2.0.2" + checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd + languageName: node + linkType: hard + +"is-core-module@npm:^2.16.1": + version: 2.16.2 + resolution: "is-core-module@npm:2.16.2" + dependencies: + hasown: "npm:^2.0.3" + checksum: 10c0/14b4258390283709c15476d023ec173e27458d5d014ccdb8ed39d576e551c3fa45498b7c9fe178f1529c4cb2648ddd58852a6a62107a019f6e349529f277518a languageName: node linkType: hard @@ -15836,6 +17082,15 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: 10c0/d2c4f8e6d3e34df75a5defd44991b6068afad4835bb783b902fa12d13ebdb8f41b2a199dcb0b5ed2cb78bfee9e4c0bbdb69c2d9646f4106464674d3e697a5856 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -15894,6 +17149,17 @@ __metadata: languageName: node linkType: hard +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: "npm:^3.0.0" + bin: + is-inside-container: cli.js + checksum: 10c0/a8efb0e84f6197e6ff5c64c52890fa9acb49b7b74fed4da7c95383965da6f0fa592b4dbd5e38a79f87fc108196937acdbcd758fcefc9b140e479b39ce1fcd1cd + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -16133,6 +17399,15 @@ __metadata: languageName: node linkType: hard +"is-wsl@npm:^3.1.0": + version: 3.1.1 + resolution: "is-wsl@npm:3.1.1" + dependencies: + is-inside-container: "npm:^1.0.0" + checksum: 10c0/7e5023522bfb8f27de4de960b0d82c4a8146c0bddb186529a3616d78b5bbbfc19ef0c5fc60d0b3a3cc0bf95a415fbdedc18454310ea3049587c879b07ace5107 + languageName: node + linkType: hard + "isarray@npm:0.0.1": version: 0.0.1 resolution: "isarray@npm:0.0.1" @@ -17014,6 +18289,13 @@ __metadata: languageName: node linkType: hard +"json-rpc-2.0@npm:^1.7.1": + version: 1.7.1 + resolution: "json-rpc-2.0@npm:1.7.1" + checksum: 10c0/260f573fd2f38c04bce63076b9293ed0c222c10bff12dd14fed8b926555af6d390c4bcc888b01dd42f28a8759056b8e4420b9f65f09e64d12d042a541fd88695 + languageName: node + linkType: hard + "json-schema-traverse@npm:^1.0.0": version: 1.0.0 resolution: "json-schema-traverse@npm:1.0.0" @@ -17496,6 +18778,13 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.4": + version: 3.2.1 + resolution: "loupe@npm:3.2.1" + checksum: 10c0/910c872cba291309664c2d094368d31a68907b6f5913e989d301b5c25f30e97d76d77f23ab3bf3b46d0f601ff0b6af8810c10c31b91d2c6b2f132809ca2cc705 + languageName: node + linkType: hard + "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -17614,6 +18903,13 @@ __metadata: languageName: node linkType: hard +"map-or-similar@npm:^1.5.0": + version: 1.5.0 + resolution: "map-or-similar@npm:1.5.0" + checksum: 10c0/33c6ccfdc272992e33e4e99a69541a3e7faed9de3ac5bc732feb2500a9ee71d3f9d098980a70b7746e7eeb7f859ff7dfb8aa9b5ecc4e34170a32ab78cfb18def + languageName: node + linkType: hard + "markdown-link-check@npm:^3.8.7": version: 3.14.2 resolution: "markdown-link-check@npm:3.14.2" @@ -17730,6 +19026,15 @@ __metadata: languageName: node linkType: hard +"memoizerific@npm:^1.11.3": + version: 1.11.3 + resolution: "memoizerific@npm:1.11.3" + dependencies: + map-or-similar: "npm:^1.5.0" + checksum: 10c0/661bf69b7afbfad57f0208f0c63324f4c96087b480708115b78ee3f0237d86c7f91347f6db31528740b2776c2e34c709bcb034e1e910edee2270c9603a0a469e + languageName: node + linkType: hard + "memorystream@npm:^0.3.1": version: 0.3.1 resolution: "memorystream@npm:0.3.1" @@ -18532,6 +19837,13 @@ __metadata: languageName: node linkType: hard +"min-indent@npm:^1.0.0": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: 10c0/7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c + languageName: node + linkType: hard + "minimalistic-assert@npm:^1.0.0": version: 1.0.1 resolution: "minimalistic-assert@npm:1.0.1" @@ -18787,6 +20099,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^3.3.1": + version: 3.3.15 + resolution: "nanoid@npm:3.3.15" + bin: + nanoid: bin/nanoid.cjs + checksum: 10c0/e0b12e3a1d361f74150fa4b25631d0ae29f7162dab01a12f0f1be1f53b7a2a219f9b729504e474d4821207d0fe349bd3c97569ab5cf7ec2fff6aa94711956c93 + languageName: node + linkType: hard + "nanoid@npm:^3.3.11": version: 3.3.11 resolution: "nanoid@npm:3.3.11" @@ -19291,6 +20612,18 @@ __metadata: languageName: node linkType: hard +"open@npm:^10.2.0": + version: 10.2.0 + resolution: "open@npm:10.2.0" + dependencies: + default-browser: "npm:^5.2.1" + define-lazy-prop: "npm:^3.0.0" + is-inside-container: "npm:^1.0.0" + wsl-utils: "npm:^0.1.0" + checksum: 10c0/5a36d0c1fd2f74ce553beb427ca8b8494b623fc22c6132d0c1688f246a375e24584ea0b44c67133d9ab774fa69be8e12fbe1ff12504b1142bd960fb09671948f + languageName: node + linkType: hard + "open@npm:^6.2.0": version: 6.4.0 resolution: "open@npm:6.4.0" @@ -19370,6 +20703,76 @@ __metadata: languageName: node linkType: hard +"oxc-parser@npm:^0.127.0": + version: 0.127.0 + resolution: "oxc-parser@npm:0.127.0" + dependencies: + "@oxc-parser/binding-android-arm-eabi": "npm:0.127.0" + "@oxc-parser/binding-android-arm64": "npm:0.127.0" + "@oxc-parser/binding-darwin-arm64": "npm:0.127.0" + "@oxc-parser/binding-darwin-x64": "npm:0.127.0" + "@oxc-parser/binding-freebsd-x64": "npm:0.127.0" + "@oxc-parser/binding-linux-arm-gnueabihf": "npm:0.127.0" + "@oxc-parser/binding-linux-arm-musleabihf": "npm:0.127.0" + "@oxc-parser/binding-linux-arm64-gnu": "npm:0.127.0" + "@oxc-parser/binding-linux-arm64-musl": "npm:0.127.0" + "@oxc-parser/binding-linux-ppc64-gnu": "npm:0.127.0" + "@oxc-parser/binding-linux-riscv64-gnu": "npm:0.127.0" + "@oxc-parser/binding-linux-riscv64-musl": "npm:0.127.0" + "@oxc-parser/binding-linux-s390x-gnu": "npm:0.127.0" + "@oxc-parser/binding-linux-x64-gnu": "npm:0.127.0" + "@oxc-parser/binding-linux-x64-musl": "npm:0.127.0" + "@oxc-parser/binding-openharmony-arm64": "npm:0.127.0" + "@oxc-parser/binding-wasm32-wasi": "npm:0.127.0" + "@oxc-parser/binding-win32-arm64-msvc": "npm:0.127.0" + "@oxc-parser/binding-win32-ia32-msvc": "npm:0.127.0" + "@oxc-parser/binding-win32-x64-msvc": "npm:0.127.0" + "@oxc-project/types": "npm:^0.127.0" + dependenciesMeta: + "@oxc-parser/binding-android-arm-eabi": + optional: true + "@oxc-parser/binding-android-arm64": + optional: true + "@oxc-parser/binding-darwin-arm64": + optional: true + "@oxc-parser/binding-darwin-x64": + optional: true + "@oxc-parser/binding-freebsd-x64": + optional: true + "@oxc-parser/binding-linux-arm-gnueabihf": + optional: true + "@oxc-parser/binding-linux-arm-musleabihf": + optional: true + "@oxc-parser/binding-linux-arm64-gnu": + optional: true + "@oxc-parser/binding-linux-arm64-musl": + optional: true + "@oxc-parser/binding-linux-ppc64-gnu": + optional: true + "@oxc-parser/binding-linux-riscv64-gnu": + optional: true + "@oxc-parser/binding-linux-riscv64-musl": + optional: true + "@oxc-parser/binding-linux-s390x-gnu": + optional: true + "@oxc-parser/binding-linux-x64-gnu": + optional: true + "@oxc-parser/binding-linux-x64-musl": + optional: true + "@oxc-parser/binding-openharmony-arm64": + optional: true + "@oxc-parser/binding-wasm32-wasi": + optional: true + "@oxc-parser/binding-win32-arm64-msvc": + optional: true + "@oxc-parser/binding-win32-ia32-msvc": + optional: true + "@oxc-parser/binding-win32-x64-msvc": + optional: true + checksum: 10c0/9d109fb3a79c0862a36434cc01c8c0e8f6cf5f1efe9369e02d2183fd518479b10262cf092da2e7f8328befae446afa05ccf742ce12f8346d81429c8f2cdf1651 + languageName: node + linkType: hard + "oxc-parser@npm:^0.128.0": version: 0.128.0 resolution: "oxc-parser@npm:0.128.0" @@ -20128,6 +21531,13 @@ __metadata: languageName: node linkType: hard +"pathval@npm:^2.0.0": + version: 2.0.1 + resolution: "pathval@npm:2.0.1" + checksum: 10c0/460f4709479fbf2c45903a65655fc8f0a5f6d808f989173aeef5fdea4ff4f303dc13f7870303999add60ec49d4c14733895c0a869392e9866f1091fa64fd7581 + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -20238,6 +21648,15 @@ __metadata: languageName: node linkType: hard +"polished@npm:^4.3.1": + version: 4.3.1 + resolution: "polished@npm:4.3.1" + dependencies: + "@babel/runtime": "npm:^7.17.8" + checksum: 10c0/45480d4c7281a134281cef092f6ecc202a868475ff66a390fee6e9261386e16f3047b4de46a2f2e1cf7fb7aa8f52d30b4ed631a1e3bcd6f303ca31161d4f07fe + languageName: node + linkType: hard + "portscanner@npm:2.2.0, portscanner@npm:^2.2.0": version: 2.2.0 resolution: "portscanner@npm:2.2.0" @@ -20426,6 +21845,13 @@ __metadata: languageName: node linkType: hard +"punycode@npm:^2.1.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + "pure-rand@npm:^6.0.0": version: 6.1.0 resolution: "pure-rand@npm:6.1.0" @@ -20543,6 +21969,33 @@ __metadata: languageName: node linkType: hard +"react-docgen-typescript@npm:^2.2.2": + version: 2.4.0 + resolution: "react-docgen-typescript@npm:2.4.0" + peerDependencies: + typescript: ">= 4.3.x" + checksum: 10c0/18e3e1c80d28abcdd72e62261d2f70b0904d9b088f9c2ebe485ffee5e46f5735208bc174a20ed2772112b3ca6432b5f3d5f0ac345872fe76e541f84543e49e50 + languageName: node + linkType: hard + +"react-docgen@npm:^8.0.2": + version: 8.0.3 + resolution: "react-docgen@npm:8.0.3" + dependencies: + "@babel/core": "npm:^7.28.0" + "@babel/traverse": "npm:^7.28.0" + "@babel/types": "npm:^7.28.2" + "@types/babel__core": "npm:^7.20.5" + "@types/babel__traverse": "npm:^7.20.7" + "@types/doctrine": "npm:^0.0.9" + "@types/resolve": "npm:^1.20.2" + doctrine: "npm:^3.0.0" + resolve: "npm:^1.22.1" + strip-indent: "npm:^4.0.0" + checksum: 10c0/0231fb9177bc7c633f3d1f228eebb0ee90a2f0feac50b1869ef70b0a3683b400d7875547a2d5168f2619b63d4cc29d7c45ae33d3f621fc67a7fa6790ac2049f6 + languageName: node + linkType: hard + "react-is@npm:^16.13.1": version: 16.13.1 resolution: "react-is@npm:16.13.1" @@ -20675,6 +22128,18 @@ __metadata: languageName: node linkType: hard +"react-native-modal-datetime-picker@npm:^18.0.0": + version: 18.0.0 + resolution: "react-native-modal-datetime-picker@npm:18.0.0" + dependencies: + prop-types: "npm:^15.7.2" + peerDependencies: + "@react-native-community/datetimepicker": ">=6.7.0" + react-native: ">=0.65.0" + checksum: 10c0/2217780609af89f1863971dafcdb9deca33663d863ffd65ef43a4b91357a5b623f91ed4f7730231d29e85ac6e5e9d84c11d4c024a791eea70b2df2c423f30610 + languageName: node + linkType: hard + "react-native-svg-transformer@npm:^1.0.0": version: 1.5.3 resolution: "react-native-svg-transformer@npm:1.5.3" @@ -20754,6 +22219,17 @@ __metadata: languageName: node linkType: hard +"react-native-url-polyfill@npm:^3.0.0": + version: 3.0.0 + resolution: "react-native-url-polyfill@npm:3.0.0" + dependencies: + whatwg-url-without-unicode: "npm:8.0.0-3" + peerDependencies: + react-native: "*" + checksum: 10c0/a1e539c2a28dc48125ada8bf29f3536ee2c149e4a5e3d205858755783afafe7f871ce1de8b66cb1c4cc05e15e212c74c49e93ddde856cda63fcf660cf943522a + languageName: node + linkType: hard + "react-native-windows@npm:^0.81.0": version: 0.81.25 resolution: "react-native-windows@npm:0.81.25" @@ -21068,6 +22544,19 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.23.5": + version: 0.23.12 + resolution: "recast@npm:0.23.12" + dependencies: + ast-types: "npm:^0.16.1" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tiny-invariant: "npm:^1.3.3" + tslib: "npm:^2.0.1" + checksum: 10c0/6abedaca3ce696b1f3d4e0a9c458319d5e24a8dc2666e91ae9729882f523c144558f4d415b40d398eed6a3956500656299df44ca8c4dba8e35a75bb454a067fc + languageName: node + linkType: hard + "rechoir@npm:^0.6.2": version: 0.6.2 resolution: "rechoir@npm:0.6.2" @@ -21086,6 +22575,16 @@ __metadata: languageName: node linkType: hard +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: "npm:^4.0.0" + strip-indent: "npm:^3.0.0" + checksum: 10c0/d64a6b5c0b50eb3ddce3ab770f866658a2b9998c678f797919ceb1b586bab9259b311407280bd80b804e2a7c7539b19238ae6a2a20c843f1a7fcff21d48c2eae + languageName: node + linkType: hard + "reduce-flatten@npm:^1.0.1": version: 1.0.1 resolution: "reduce-flatten@npm:1.0.1" @@ -21273,6 +22772,20 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.22.1": + version: 1.22.12 + resolution: "resolve@npm:1.22.12" + dependencies: + es-errors: "npm:^1.3.0" + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/b16dc9b537c02e8c3388f7d3dcff9741d3071625f9a97ac1c885f2b0ca51e78df22328fb6d6ef214dd9101fb7cfc19aa2836fe3410402a94f3f7b8639c7149bf + languageName: node + linkType: hard + "resolve@npm:^2.0.0-next.5": version: 2.0.0-next.5 resolution: "resolve@npm:2.0.0-next.5" @@ -21299,6 +22812,20 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": + version: 1.22.12 + resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=c3c19d" + dependencies: + es-errors: "npm:^1.3.0" + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/fc6519984ae1f894d877c0060ba8b1f5ba3bc0e85a02f74e141929c118c23d74d9735619a9cc2965397387e514884245c65d72a40731dcb6cfc84c7bcdc8321e + languageName: node + linkType: hard + "resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin": version: 2.0.0-next.5 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" @@ -21423,6 +22950,13 @@ __metadata: languageName: node linkType: hard +"run-applescript@npm:^7.0.0": + version: 7.1.0 + resolution: "run-applescript@npm:7.1.0" + checksum: 10c0/ab826c57c20f244b2ee807704b1ef4ba7f566aa766481ae5922aac785e2570809e297c69afcccc3593095b538a8a77d26f2b2e9a1d9dffee24e0e039502d1a03 + languageName: node + linkType: hard + "run-async@npm:^4.0.6": version: 4.0.6 resolution: "run-async@npm:4.0.6" @@ -22200,6 +23734,13 @@ __metadata: languageName: node linkType: hard +"sqids@npm:^0.3.0": + version: 0.3.0 + resolution: "sqids@npm:0.3.0" + checksum: 10c0/2ce528b83f2780166b2e8025ece1e8262ee217ed51ab5656959cb6e1a885eee5b6ea86627ce6b0321d7b0eeb34a2ed455476c01c44e6e55e18cee52b3e1b9eb3 + languageName: node + linkType: hard + "ssri@npm:^13.0.0": version: 13.0.1 resolution: "ssri@npm:13.0.1" @@ -22265,6 +23806,42 @@ __metadata: languageName: node linkType: hard +"storybook@npm:^10.4.0": + version: 10.4.6 + resolution: "storybook@npm:10.4.6" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@storybook/icons": "npm:^2.0.2" + "@testing-library/jest-dom": "npm:^6.9.1" + "@testing-library/user-event": "npm:^14.6.1" + "@vitest/expect": "npm:3.2.4" + "@vitest/spy": "npm:3.2.4" + "@webcontainer/env": "npm:^1.1.1" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0 || ^0.28.0" + open: "npm:^10.2.0" + oxc-parser: "npm:^0.127.0" + oxc-resolver: "npm:^11.19.1" + recast: "npm:^0.23.5" + semver: "npm:^7.7.3" + use-sync-external-store: "npm:^1.5.0" + ws: "npm:^8.18.0" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + prettier: ^2 || ^3 + vite-plus: ^0.1.15 + peerDependenciesMeta: + "@types/react": + optional: true + prettier: + optional: true + vite-plus: + optional: true + bin: + storybook: ./dist/bin/dispatcher.js + checksum: 10c0/d7083bee31a1e43aa88e198f5d833d249c14ac9ea01bb767f4dce8cb3264ea8bb970ca5428728f67fefba0daf1223b90a0edf790e8b028c4989e15f2df979159 + languageName: node + linkType: hard + "stream-buffers@npm:2.2.x": version: 2.2.0 resolution: "stream-buffers@npm:2.2.0" @@ -22509,6 +24086,22 @@ __metadata: languageName: node linkType: hard +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: "npm:^1.0.0" + checksum: 10c0/ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679 + languageName: node + linkType: hard + +"strip-indent@npm:^4.0.0": + version: 4.1.1 + resolution: "strip-indent@npm:4.1.1" + checksum: 10c0/5b23dd5934be0ef6b6fe1b802887f83e56ad9dcd9f6c3896a637da2c6c3a6da3fdf3e51354a98e6cccb6f1c41863e7b9b9deaa348639dfd35f71f3549edb4dff + languageName: node + linkType: hard + "strip-json-comments@npm:5.0.3": version: 5.0.3 resolution: "strip-json-comments@npm:5.0.3" @@ -22768,6 +24361,13 @@ __metadata: languageName: node linkType: hard +"tinycolor2@npm:^1.6.0": + version: 1.6.0 + resolution: "tinycolor2@npm:1.6.0" + checksum: 10c0/9aa79a36ba2c2a87cb221453465cabacd04b9e35f9694373e846fdc78b1c768110f81e581ea41440106c0f24d9a023891d0887e8075885e790ac40eb0e74a5c1 + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.16": version: 0.2.16 resolution: "tinyglobby@npm:0.2.16" @@ -22792,6 +24392,13 @@ __metadata: languageName: node linkType: hard +"tinyrainbow@npm:^2.0.0": + version: 2.0.0 + resolution: "tinyrainbow@npm:2.0.0" + checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f + languageName: node + linkType: hard + "tinyrainbow@npm:^3.0.3": version: 3.0.3 resolution: "tinyrainbow@npm:3.0.3" @@ -22799,6 +24406,26 @@ __metadata: languageName: node linkType: hard +"tinyspy@npm:^4.0.3": + version: 4.0.4 + resolution: "tinyspy@npm:4.0.4" + checksum: 10c0/a8020fc17799251e06a8398dcc352601d2770aa91c556b9531ecd7a12581161fd1c14e81cbdaff0c1306c93bfdde8ff6d1c1a3f9bbe6d91604f0fd4e01e2f1eb + languageName: node + linkType: hard + +"tmcp@npm:^1.19.3, tmcp@npm:^1.19.4": + version: 1.19.4 + resolution: "tmcp@npm:1.19.4" + dependencies: + "@standard-schema/spec": "npm:^1.0.0" + json-rpc-2.0: "npm:^1.7.1" + sqids: "npm:^0.3.0" + uri-template-matcher: "npm:^1.1.1" + valibot: "npm:^1.1.0" + checksum: 10c0/fcb275c74fe4dd80da3eb4702d7631423e73f2dd9ec537228457b997a9206ece899295035a492a9238184e28a46017034f63c6a4aa82d1fe0ee486fb7b33449a + languageName: node + linkType: hard + "tmp@npm:^0.2.3": version: 0.2.5 resolution: "tmp@npm:0.2.5" @@ -22870,6 +24497,13 @@ __metadata: languageName: node linkType: hard +"ts-dedent@npm:^2.3.0": + version: 2.3.0 + resolution: "ts-dedent@npm:2.3.0" + checksum: 10c0/bfc3331e0740191c0134fb526e7f01e16657e50955c9395de14703c6ef17119c91651fa044cf558dc9c1dbb0fe1b2a74e303aeebcbd5e3b31acd14f72f545a54 + languageName: node + linkType: hard + "ts-node@npm:^10.7.0": version: 10.9.2 resolution: "ts-node@npm:10.9.2" @@ -23273,6 +24907,13 @@ __metadata: languageName: node linkType: hard +"uri-template-matcher@npm:^1.1.1": + version: 1.1.2 + resolution: "uri-template-matcher@npm:1.1.2" + checksum: 10c0/27bf1880a9110b85aff4d09157869b3b37c4355f1c8212e17f698394116fc79da1896c2f03f795eb5bee0007434b448c4f3002ade257e604a1176c14b8157d12 + languageName: node + linkType: hard + "urlpattern-polyfill@npm:^10.0.0": version: 10.1.0 resolution: "urlpattern-polyfill@npm:10.1.0" @@ -23365,6 +25006,30 @@ __metadata: languageName: node linkType: hard +"valibot@npm:1.2.0": + version: 1.2.0 + resolution: "valibot@npm:1.2.0" + peerDependencies: + typescript: ">=5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/e6897ed2008fc900380a6ce39b62bc5fca45fd5e070f70571c6380ede3ba026d0b7016230215d87f7f3d672a28dbde5a0522d39830b493fdc3dccd1a59ef4ee6 + languageName: node + linkType: hard + +"valibot@npm:^1.1.0, valibot@npm:^1.4.1": + version: 1.4.2 + resolution: "valibot@npm:1.4.2" + peerDependencies: + typescript: ">=5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/71b861de928fd5533b03fc4d84c619c07602f176d2bc6b12c5c80b2a6e889574c4126c843dd0771ce450bbb29566ca6df13d5b538ce5e4c39c2fccfb7623cf4e + languageName: node + linkType: hard + "validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -23514,6 +25179,13 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^5.0.0": + version: 5.0.0 + resolution: "webidl-conversions@npm:5.0.0" + checksum: 10c0/bf31df332ed11e1114bfcae7712d9ab2c37e7faa60ba32d8fdbee785937c0b012eee235c19d2b5d84f5072db84a160e8d08dd382da7f850feec26a4f46add8ff + languageName: node + linkType: hard + "whatwg-encoding@npm:^3.1.1": version: 3.1.1 resolution: "whatwg-encoding@npm:3.1.1" @@ -23537,6 +25209,17 @@ __metadata: languageName: node linkType: hard +"whatwg-url-without-unicode@npm:8.0.0-3": + version: 8.0.0-3 + resolution: "whatwg-url-without-unicode@npm:8.0.0-3" + dependencies: + buffer: "npm:^5.4.3" + punycode: "npm:^2.1.1" + webidl-conversions: "npm:^5.0.0" + checksum: 10c0/c27a637ab7d01981b2e2f576fde2113b9c42247500e093d2f5ba94b515d5c86dbcf70e5cad4b21b8813185f21fa1b4846f53c79fa87995293457e28c889cc0fd + languageName: node + linkType: hard + "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0" @@ -23835,6 +25518,30 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.18.0, ws@npm:^8.21.0": + version: 8.21.0 + resolution: "ws@npm:8.21.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/ef4a243476283fc49bc7550966c4af4aa0eef56273837211e700de3b664e08604a760cdddcb5ba43c049140e74ccfec5b0ee0bb439e08c2adf9138902fdde5f9 + languageName: node + linkType: hard + +"wsl-utils@npm:^0.1.0": + version: 0.1.0 + resolution: "wsl-utils@npm:0.1.0" + dependencies: + is-wsl: "npm:^3.1.0" + checksum: 10c0/44318f3585eb97be994fc21a20ddab2649feaf1fbe893f1f866d936eea3d5f8c743bec6dc02e49fbdd3c0e69e9b36f449d90a0b165a4f47dd089747af4cf2377 + languageName: node + linkType: hard + "xml-formatter@npm:^2.4.0": version: 2.6.1 resolution: "xml-formatter@npm:2.6.1"