diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/CodeResources b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/CodeResources deleted file mode 100644 index af57e75c..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/CodeResources and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Info.plist b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Info.plist deleted file mode 100644 index 626a2853..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Info.plist +++ /dev/null @@ -1,56 +0,0 @@ - - - - - BuildMachineOSBuild - 23G93 - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ElevenLabs Mac Helper - CFBundleExecutable - ElevenLabsTTS - CFBundleIconFile - AppIcon - CFBundleIconName - AppIcon - CFBundleIdentifier - io.elevenlabs.ElevenLabsTTS - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ElevenLabsTTS - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSupportedPlatforms - - MacOSX - - CFBundleVersion - 1 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - - DTPlatformName - macosx - DTPlatformVersion - 14.5 - DTSDKBuild - 23F73 - DTSDKName - macosx14.5 - DTXcode - 1540 - DTXcodeBuild - 15F31d - LSApplicationCategoryType - public.app-category.entertainment - LSMinimumSystemVersion - 14.0 - LSUIElement - - - diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/MacOS/ElevenLabsTTS b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/MacOS/ElevenLabsTTS deleted file mode 100755 index 0a1837b5..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/MacOS/ElevenLabsTTS and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/PkgInfo b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/PkgInfo deleted file mode 100644 index bd04210f..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -APPL???? \ No newline at end of file diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/AppIcon.icns b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/AppIcon.icns deleted file mode 100644 index 338c43cb..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/AppIcon.icns and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/Assets.car b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/Assets.car deleted file mode 100644 index c2989712..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/Assets.car and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/sample.mp3 b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/sample.mp3 deleted file mode 100644 index 23d6a58f..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/Resources/sample.mp3 and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/_CodeSignature/CodeResources b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/_CodeSignature/CodeResources deleted file mode 100644 index 56157b86..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.app/Contents/_CodeSignature/CodeResources +++ /dev/null @@ -1,150 +0,0 @@ - - - - - files - - Resources/AppIcon.icns - - HX/w27XBXVdZOtUoR7ODXlKRrxE= - - Resources/Assets.car - - ER3qGzzVtruCt21qXWIt/GnpT2Y= - - Resources/sample.mp3 - - OAgEmwF/l3a4StvFfFhOuQRFHH8= - - - files2 - - Resources/AppIcon.icns - - hash2 - - AyllS45eBeFNnRMz1qTJiarj07Cto0LGUBCVNUVGOoA= - - - Resources/Assets.car - - hash2 - - lykeZDpHvi4uTWLeOjzUTqXsieu22G8HAuuw4M759dA= - - - Resources/sample.mp3 - - hash2 - - mEztmP/5tFfYXtuQielBmw1fTPQ8Rh2k2UlyZgIwZZ8= - - - - rules - - ^Resources/ - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Resources/Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ - - nested - - weight - 10 - - ^.* - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^Resources/ - - weight - 20 - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Resources/Base\.lproj/ - - weight - 1010 - - ^[^/]+$ - - nested - - weight - 10 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.pbxproj b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.pbxproj deleted file mode 100644 index bc511ad4..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.pbxproj +++ /dev/null @@ -1,610 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 56; - objects = { - -/* Begin PBXBuildFile section */ - 933988FF2C7BCB8A006A986F /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 933988FE2C7BCB8A006A986F /* SettingsView.swift */; }; - 93B729EB2C7A486D002B3183 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B729EA2C7A486D002B3183 /* ContentView.swift */; }; - 93B729ED2C7A486E002B3183 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 93B729EC2C7A486E002B3183 /* Assets.xcassets */; }; - 93B729F02C7A486E002B3183 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 93B729EF2C7A486E002B3183 /* Preview Assets.xcassets */; }; - 93B729FB2C7A486E002B3183 /* ElevenLabsTTSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B729FA2C7A486E002B3183 /* ElevenLabsTTSTests.swift */; }; - 93B72A052C7A486E002B3183 /* ElevenLabsTTSUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B72A042C7A486E002B3183 /* ElevenLabsTTSUITests.swift */; }; - 93B72A072C7A486E002B3183 /* ElevenLabsTTSUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B72A062C7A486E002B3183 /* ElevenLabsTTSUITestsLaunchTests.swift */; }; - 93B72A142C7A493D002B3183 /* MenuBarApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B72A132C7A493D002B3183 /* MenuBarApp.swift */; }; - 93B72A162C7A4E1D002B3183 /* sample.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 93B72A152C7A4E1D002B3183 /* sample.mp3 */; }; - 93B72A182C7A4F49002B3183 /* ElevenLabsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B72A172C7A4F49002B3183 /* ElevenLabsAPI.swift */; }; - 93B72A1E2C7A6077002B3183 /* elevenlogo.png in Resources */ = {isa = PBXBuildFile; fileRef = 93B72A1D2C7A6077002B3183 /* elevenlogo.png */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 93B729F72C7A486E002B3183 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 93B729DD2C7A486D002B3183 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 93B729E42C7A486D002B3183; - remoteInfo = ElevenLabsTTS; - }; - 93B72A012C7A486E002B3183 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 93B729DD2C7A486D002B3183 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 93B729E42C7A486D002B3183; - remoteInfo = ElevenLabsTTS; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 933988FE2C7BCB8A006A986F /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - 93B729E52C7A486D002B3183 /* ElevenLabsTTS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ElevenLabsTTS.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 93B729EA2C7A486D002B3183 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - 93B729EC2C7A486E002B3183 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 93B729EF2C7A486E002B3183 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - 93B729F12C7A486E002B3183 /* ElevenLabsTTS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ElevenLabsTTS.entitlements; sourceTree = ""; }; - 93B729F62C7A486E002B3183 /* ElevenLabsTTSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ElevenLabsTTSTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 93B729FA2C7A486E002B3183 /* ElevenLabsTTSTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElevenLabsTTSTests.swift; sourceTree = ""; }; - 93B72A002C7A486E002B3183 /* ElevenLabsTTSUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ElevenLabsTTSUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 93B72A042C7A486E002B3183 /* ElevenLabsTTSUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElevenLabsTTSUITests.swift; sourceTree = ""; }; - 93B72A062C7A486E002B3183 /* ElevenLabsTTSUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElevenLabsTTSUITestsLaunchTests.swift; sourceTree = ""; }; - 93B72A132C7A493D002B3183 /* MenuBarApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuBarApp.swift; sourceTree = ""; }; - 93B72A152C7A4E1D002B3183 /* sample.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = sample.mp3; sourceTree = ""; }; - 93B72A172C7A4F49002B3183 /* ElevenLabsAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElevenLabsAPI.swift; sourceTree = ""; }; - 93B72A1D2C7A6077002B3183 /* elevenlogo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = elevenlogo.png; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 93B729E22C7A486D002B3183 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 93B729F32C7A486E002B3183 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 93B729FD2C7A486E002B3183 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 93B729DC2C7A486D002B3183 = { - isa = PBXGroup; - children = ( - 93B729E72C7A486D002B3183 /* ElevenLabsTTS */, - 93B729F92C7A486E002B3183 /* ElevenLabsTTSTests */, - 93B72A032C7A486E002B3183 /* ElevenLabsTTSUITests */, - 93B729E62C7A486D002B3183 /* Products */, - ); - sourceTree = ""; - }; - 93B729E62C7A486D002B3183 /* Products */ = { - isa = PBXGroup; - children = ( - 93B729E52C7A486D002B3183 /* ElevenLabsTTS.app */, - 93B729F62C7A486E002B3183 /* ElevenLabsTTSTests.xctest */, - 93B72A002C7A486E002B3183 /* ElevenLabsTTSUITests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 93B729E72C7A486D002B3183 /* ElevenLabsTTS */ = { - isa = PBXGroup; - children = ( - 933988FE2C7BCB8A006A986F /* SettingsView.swift */, - 93B72A1D2C7A6077002B3183 /* elevenlogo.png */, - 93B729EE2C7A486E002B3183 /* Preview Content */, - 93B72A172C7A4F49002B3183 /* ElevenLabsAPI.swift */, - 93B729EA2C7A486D002B3183 /* ContentView.swift */, - 93B72A132C7A493D002B3183 /* MenuBarApp.swift */, - 93B72A152C7A4E1D002B3183 /* sample.mp3 */, - 93B729EC2C7A486E002B3183 /* Assets.xcassets */, - 93B729F12C7A486E002B3183 /* ElevenLabsTTS.entitlements */, - ); - path = ElevenLabsTTS; - sourceTree = ""; - }; - 93B729EE2C7A486E002B3183 /* Preview Content */ = { - isa = PBXGroup; - children = ( - 93B729EF2C7A486E002B3183 /* Preview Assets.xcassets */, - ); - path = "Preview Content"; - sourceTree = ""; - }; - 93B729F92C7A486E002B3183 /* ElevenLabsTTSTests */ = { - isa = PBXGroup; - children = ( - 93B729FA2C7A486E002B3183 /* ElevenLabsTTSTests.swift */, - ); - path = ElevenLabsTTSTests; - sourceTree = ""; - }; - 93B72A032C7A486E002B3183 /* ElevenLabsTTSUITests */ = { - isa = PBXGroup; - children = ( - 93B72A042C7A486E002B3183 /* ElevenLabsTTSUITests.swift */, - 93B72A062C7A486E002B3183 /* ElevenLabsTTSUITestsLaunchTests.swift */, - ); - path = ElevenLabsTTSUITests; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 93B729E42C7A486D002B3183 /* ElevenLabsTTS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 93B72A0A2C7A486E002B3183 /* Build configuration list for PBXNativeTarget "ElevenLabsTTS" */; - buildPhases = ( - 93B729E12C7A486D002B3183 /* Sources */, - 93B729E22C7A486D002B3183 /* Frameworks */, - 93B729E32C7A486D002B3183 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ElevenLabsTTS; - productName = ElevenLabsTTS; - productReference = 93B729E52C7A486D002B3183 /* ElevenLabsTTS.app */; - productType = "com.apple.product-type.application"; - }; - 93B729F52C7A486E002B3183 /* ElevenLabsTTSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 93B72A0D2C7A486E002B3183 /* Build configuration list for PBXNativeTarget "ElevenLabsTTSTests" */; - buildPhases = ( - 93B729F22C7A486E002B3183 /* Sources */, - 93B729F32C7A486E002B3183 /* Frameworks */, - 93B729F42C7A486E002B3183 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 93B729F82C7A486E002B3183 /* PBXTargetDependency */, - ); - name = ElevenLabsTTSTests; - productName = ElevenLabsTTSTests; - productReference = 93B729F62C7A486E002B3183 /* ElevenLabsTTSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 93B729FF2C7A486E002B3183 /* ElevenLabsTTSUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 93B72A102C7A486E002B3183 /* Build configuration list for PBXNativeTarget "ElevenLabsTTSUITests" */; - buildPhases = ( - 93B729FC2C7A486E002B3183 /* Sources */, - 93B729FD2C7A486E002B3183 /* Frameworks */, - 93B729FE2C7A486E002B3183 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 93B72A022C7A486E002B3183 /* PBXTargetDependency */, - ); - name = ElevenLabsTTSUITests; - productName = ElevenLabsTTSUITests; - productReference = 93B72A002C7A486E002B3183 /* ElevenLabsTTSUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 93B729DD2C7A486D002B3183 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1540; - LastUpgradeCheck = 1540; - TargetAttributes = { - 93B729E42C7A486D002B3183 = { - CreatedOnToolsVersion = 15.4; - }; - 93B729F52C7A486E002B3183 = { - CreatedOnToolsVersion = 15.4; - TestTargetID = 93B729E42C7A486D002B3183; - }; - 93B729FF2C7A486E002B3183 = { - CreatedOnToolsVersion = 15.4; - TestTargetID = 93B729E42C7A486D002B3183; - }; - }; - }; - buildConfigurationList = 93B729E02C7A486D002B3183 /* Build configuration list for PBXProject "ElevenLabsTTS" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 93B729DC2C7A486D002B3183; - productRefGroup = 93B729E62C7A486D002B3183 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 93B729E42C7A486D002B3183 /* ElevenLabsTTS */, - 93B729F52C7A486E002B3183 /* ElevenLabsTTSTests */, - 93B729FF2C7A486E002B3183 /* ElevenLabsTTSUITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 93B729E32C7A486D002B3183 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 93B729F02C7A486E002B3183 /* Preview Assets.xcassets in Resources */, - 93B72A1E2C7A6077002B3183 /* elevenlogo.png in Resources */, - 93B729ED2C7A486E002B3183 /* Assets.xcassets in Resources */, - 93B72A162C7A4E1D002B3183 /* sample.mp3 in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 93B729F42C7A486E002B3183 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 93B729FE2C7A486E002B3183 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 93B729E12C7A486D002B3183 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 93B729EB2C7A486D002B3183 /* ContentView.swift in Sources */, - 933988FF2C7BCB8A006A986F /* SettingsView.swift in Sources */, - 93B72A142C7A493D002B3183 /* MenuBarApp.swift in Sources */, - 93B72A182C7A4F49002B3183 /* ElevenLabsAPI.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 93B729F22C7A486E002B3183 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 93B729FB2C7A486E002B3183 /* ElevenLabsTTSTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 93B729FC2C7A486E002B3183 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 93B72A052C7A486E002B3183 /* ElevenLabsTTSUITests.swift in Sources */, - 93B72A072C7A486E002B3183 /* ElevenLabsTTSUITestsLaunchTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 93B729F82C7A486E002B3183 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 93B729E42C7A486D002B3183 /* ElevenLabsTTS */; - targetProxy = 93B729F72C7A486E002B3183 /* PBXContainerItemProxy */; - }; - 93B72A022C7A486E002B3183 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 93B729E42C7A486D002B3183 /* ElevenLabsTTS */; - targetProxy = 93B72A012C7A486E002B3183 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 93B72A082C7A486E002B3183 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 14.5; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 93B72A092C7A486E002B3183 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 14.5; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - }; - name = Release; - }; - 93B72A0B2C7A486E002B3183 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; - CODE_SIGN_ENTITLEMENTS = ElevenLabsTTS/ElevenLabsTTS.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_ASSET_PATHS = "ElevenLabsTTS/elevenlogo.png ElevenLabsTTS/Preview\\ Content"; - DEVELOPMENT_TEAM = UKQH7F8SBR; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_CFBundleDisplayName = "ElevenLabs Mac Helper"; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.entertainment"; - INFOPLIST_KEY_LSUIElement = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = io.elevenlabs.ElevenLabsTTS; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 93B72A0C2C7A486E002B3183 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; - CODE_SIGN_ENTITLEMENTS = ElevenLabsTTS/ElevenLabsTTS.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_ASSET_PATHS = "ElevenLabsTTS/elevenlogo.png ElevenLabsTTS/Preview\\ Content"; - DEVELOPMENT_TEAM = UKQH7F8SBR; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_CFBundleDisplayName = "ElevenLabs Mac Helper"; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.entertainment"; - INFOPLIST_KEY_LSUIElement = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = io.elevenlabs.ElevenLabsTTS; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 93B72A0E2C7A486E002B3183 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MACOSX_DEPLOYMENT_TARGET = 14.5; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = io.elevenlabs.ElevenLabsTTSTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ElevenLabsTTS.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ElevenLabsTTS"; - }; - name = Debug; - }; - 93B72A0F2C7A486E002B3183 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MACOSX_DEPLOYMENT_TARGET = 14.5; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = io.elevenlabs.ElevenLabsTTSTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ElevenLabsTTS.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ElevenLabsTTS"; - }; - name = Release; - }; - 93B72A112C7A486E002B3183 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = io.elevenlabs.ElevenLabsTTSUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TEST_TARGET_NAME = ElevenLabsTTS; - }; - name = Debug; - }; - 93B72A122C7A486E002B3183 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = io.elevenlabs.ElevenLabsTTSUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TEST_TARGET_NAME = ElevenLabsTTS; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 93B729E02C7A486D002B3183 /* Build configuration list for PBXProject "ElevenLabsTTS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 93B72A082C7A486E002B3183 /* Debug */, - 93B72A092C7A486E002B3183 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 93B72A0A2C7A486E002B3183 /* Build configuration list for PBXNativeTarget "ElevenLabsTTS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 93B72A0B2C7A486E002B3183 /* Debug */, - 93B72A0C2C7A486E002B3183 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 93B72A0D2C7A486E002B3183 /* Build configuration list for PBXNativeTarget "ElevenLabsTTSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 93B72A0E2C7A486E002B3183 /* Debug */, - 93B72A0F2C7A486E002B3183 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 93B72A102C7A486E002B3183 /* Build configuration list for PBXNativeTarget "ElevenLabsTTSUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 93B72A112C7A486E002B3183 /* Debug */, - 93B72A122C7A486E002B3183 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 93B729DD2C7A486D002B3183 /* Project object */; -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/xcuserdata/ammaar.xcuserdatad/UserInterfaceState.xcuserstate b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/xcuserdata/ammaar.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 445b8258..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/project.xcworkspace/xcuserdata/ammaar.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/xcuserdata/ammaar.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/xcuserdata/ammaar.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 4ef55eab..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/xcuserdata/ammaar.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/xcuserdata/ammaar.xcuserdatad/xcschemes/xcschememanagement.plist b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/xcuserdata/ammaar.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 0875913f..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS.xcodeproj/xcuserdata/ammaar.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - ElevenLabsTTS.xcscheme_^#shared#^_ - - orderHint - 0 - - - - diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index 0afb3cf0..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors": [ - { - "idiom": "universal" - } - ], - "info": { - "author": "xcode", - "version": 1 - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 91990e24..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images": [ - { - "filename": "elevenlogo-4.png", - "idiom": "mac", - "scale": "1x", - "size": "16x16" - }, - { - "filename": "elevenlogo16@2x.png", - "idiom": "mac", - "scale": "2x", - "size": "16x16" - }, - { - "filename": "elevenlogo-3.png", - "idiom": "mac", - "scale": "1x", - "size": "32x32" - }, - { - "filename": "elevenlogo32@2x.png", - "idiom": "mac", - "scale": "2x", - "size": "32x32" - }, - { - "filename": "elevenlogo.png", - "idiom": "mac", - "scale": "1x", - "size": "128x128" - }, - { - "filename": "elevenlogo128@2x.png", - "idiom": "mac", - "scale": "2x", - "size": "128x128" - }, - { - "filename": "elevenlogo-1.png", - "idiom": "mac", - "scale": "1x", - "size": "256x256" - }, - { - "filename": "elevenlogo256@2x.png", - "idiom": "mac", - "scale": "2x", - "size": "256x256" - }, - { - "filename": "elevenlogo-2.png", - "idiom": "mac", - "scale": "1x", - "size": "512x512" - }, - { - "filename": "elevenlogo512@2x.png", - "idiom": "mac", - "scale": "2x", - "size": "512x512" - } - ], - "info": { - "author": "xcode", - "version": 1 - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-1.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-1.png deleted file mode 100644 index 23f831e5..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-1.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-2.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-2.png deleted file mode 100644 index 602ee6c8..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-2.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-3.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-3.png deleted file mode 100644 index cc280286..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-3.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-4.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-4.png deleted file mode 100644 index 1b70039f..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo-4.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo.png deleted file mode 100644 index 5f380647..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo128@2x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo128@2x.png deleted file mode 100644 index 5a8c01b0..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo128@2x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo16@2x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo16@2x.png deleted file mode 100644 index 8597c113..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo16@2x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo256@2x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo256@2x.png deleted file mode 100644 index 96047fe8..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo256@2x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo32@2x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo32@2x.png deleted file mode 100644 index a8e5396a..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo32@2x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo512@2x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo512@2x.png deleted file mode 100644 index b35a51c5..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/AppIcon.appiconset/elevenlogo512@2x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/Contents.json b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/Contents.json deleted file mode 100644 index 74d6a722..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info": { - "author": "xcode", - "version": 1 - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/Contents.json b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/Contents.json deleted file mode 100644 index f0fb7a5b..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images": [ - { - "filename": "downloadbutton.png", - "idiom": "universal", - "scale": "1x" - }, - { - "filename": "downloadbutton@2x.png", - "idiom": "universal", - "scale": "2x" - }, - { - "filename": "downloadbutton@3x.png", - "idiom": "universal", - "scale": "3x" - } - ], - "info": { - "author": "xcode", - "version": 1 - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton.png deleted file mode 100644 index ff73026e..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton@2x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton@2x.png deleted file mode 100644 index d86e9aa0..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton@2x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton@3x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton@3x.png deleted file mode 100644 index 8c89e5ae..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/downloadbutton.imageset/downloadbutton@3x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/Contents.json b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/Contents.json deleted file mode 100644 index c8a4776c..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images": [ - { - "filename": "elevenlabslogo.png", - "idiom": "universal", - "scale": "1x" - }, - { - "filename": "elevenlabslogo@2x.png", - "idiom": "universal", - "scale": "2x" - }, - { - "filename": "elevenlabslogo@3x.png", - "idiom": "universal", - "scale": "3x" - } - ], - "info": { - "author": "xcode", - "version": 1 - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo.png deleted file mode 100644 index cda01b3e..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo@2x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo@2x.png deleted file mode 100644 index 8f647778..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo@2x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo@3x.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo@3x.png deleted file mode 100644 index 8f647778..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlabslogo.imageset/elevenlabslogo@3x.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/Contents.json b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/Contents.json deleted file mode 100644 index 03d18583..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images": [ - { - "filename": "elevenlogo.png", - "idiom": "universal", - "scale": "1x" - }, - { - "filename": "elevenlogo 1.png", - "idiom": "universal", - "scale": "2x" - }, - { - "filename": "elevenlogo 2.png", - "idiom": "universal", - "scale": "3x" - } - ], - "info": { - "author": "xcode", - "version": 1 - }, - "properties": { - "template-rendering-intent": "template" - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo 1.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo 1.png deleted file mode 100644 index 10478f0b..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo 1.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo 2.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo 2.png deleted file mode 100644 index 10478f0b..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo 2.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo.png deleted file mode 100644 index 10478f0b..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Assets.xcassets/elevenlogo.imageset/elevenlogo.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ContentView.swift b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ContentView.swift deleted file mode 100644 index fe020a9c..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ContentView.swift +++ /dev/null @@ -1,522 +0,0 @@ -import SwiftUI -import AVFoundation -import UniformTypeIdentifiers -import AppKit // Added for opening URLs - -struct GeneratedSpeechItem: Identifiable { - let id = UUID() - let audioURL: URL - let text: String - let voiceName: String - let createdAt: Date - let fileName: String -} - -class AudioPlayerViewModel: NSObject, ObservableObject, AVAudioPlayerDelegate { - @Published var isPlaying = false - private var audioPlayer: AVAudioPlayer? - - override init() { - super.init() - } - - func togglePlayPause(for url: URL) { - if let player = audioPlayer, player.isPlaying { - player.pause() - isPlaying = false - } else { - do { - audioPlayer = try AVAudioPlayer(contentsOf: url) - audioPlayer?.delegate = self - audioPlayer?.play() - isPlaying = true - } catch { - print("Error setting up audio player: \(error.localizedDescription)") - } - } - } - - func stop() { - audioPlayer?.stop() - audioPlayer = nil - isPlaying = false - } - - func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { - DispatchQueue.main.async { - self.isPlaying = false - } - } -} - -struct Model: Codable, Identifiable, Hashable { - let modelId: String - let name: String - - var id: String { modelId } - - enum CodingKeys: String, CodingKey { - case modelId = "model_id" - case name - } -} - -struct ContentView: View { - @EnvironmentObject var appDelegate: AppDelegate - @State private var inputText = "" - @State private var selectedVoice: Voice? - @State private var models: [Model] = [] - @State private var selectedModel: Model? - @State private var generatedItems: [GeneratedSpeechItem] = [] - @State private var isGenerating = false - @State private var voices: [Voice] = [] - @State private var errorMessage: String? - @State private var contentHeight: CGFloat = 0 - @State private var showingSettings = false - @State private var apiKey: String = UserDefaults.standard.string(forKey: "ElevenLabsAPIKey") ?? "" - @State private var isFirstLaunch = UserDefaults.standard.string(forKey: "ElevenLabsAPIKey") == nil - - var body: some View { - VStack(spacing: 0) { - // Main content (stays fixed) - VStack(alignment: .leading, spacing: 16) { - HStack { - // ElevenLabs logo - Image("elevenlabslogo") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: 71, height: 9) - .onTapGesture { - openElevenLabsWebsite() - } - - Spacer() - - // Settings icon - Button(action: { showingSettings = true }) { - Image(systemName: "gear") - .foregroundColor(.black) - } - .buttonStyle(PlainButtonStyle()) - } - .padding(.top, 12) - .padding(.horizontal, 4) - .padding(.bottom, 16) - - TextEditor(text: $inputText) - .frame(height: 100) - .font(.system(size: 14)) - .background(Color(NSColor.textBackgroundColor)) - .cornerRadius(8) - - HStack(spacing: 12) { - CustomPicker(selection: $selectedVoice, options: voices, placeholder: "Adam", iconType: .voiceIcon) { voice in - Text(voice.name.prefix(20)) - } - - CustomPicker(selection: $selectedModel, options: models, placeholder: "Select Model", iconType: .modelIcon) { model in - Text(model.name) - } - } - - Button(action: generateSpeech) { - HStack { - Image(systemName: "waveform") - Text("Generate speech") - } - .frame(maxWidth: .infinity) - .padding(.vertical, 8) - .background(Color.black) - .foregroundColor(.white) - .cornerRadius(8) - } - .buttonStyle(PlainButtonStyle()) - .disabled(inputText.isEmpty || isGenerating || selectedVoice == nil) - .padding(.bottom, 16) - } - .padding(.top, 8) - .padding(.horizontal, 16) - .background(Color.white) - - // Expandable content - VStack(spacing: 8) { - if isGenerating { - ProgressView() - .frame(height: 60) - .frame(maxWidth: .infinity) - .background(Color.white) - } - - ForEach(generatedItems.prefix(5)) { item in - AudioPlayerView(item: item) - } - - if let error = errorMessage { - Text(error) - .foregroundColor(.red) - .font(.caption) - .multilineTextAlignment(.center) - .padding() - .background(Color.white) - } - } - .padding(.horizontal, 8) // Add 8px padding to both edges - .padding(.bottom, 16) // Keep the bottom padding - .background(GeometryReader { geometry in - Color.clear.preference(key: ViewHeightKey.self, value: geometry.size.height) - }) - } - .frame(width: 360) - .background(Color.white) - .onPreferenceChange(ViewHeightKey.self) { height in - let newHeight = height + (isGenerating ? 60 : 0) - if newHeight != contentHeight { - withAnimation(.easeInOut(duration: 0.3)) { - contentHeight = newHeight - appDelegate.updatePopoverHeight(height: newHeight) - } - } - } - .onChange(of: isGenerating) { _, _ in updateContentHeight() } - .onChange(of: generatedItems.count) { _, _ in updateContentHeight() } - .onChange(of: errorMessage) { _, _ in updateContentHeight() } - .onAppear { - if !isFirstLaunch { - fetchVoices() - fetchModels() - } - } - .sheet(isPresented: Binding( - get: { showingSettings || isFirstLaunch }, - set: { newValue in - showingSettings = newValue - isFirstLaunch = newValue && isFirstLaunch - } - )) { - SettingsView(apiKey: $apiKey, isPresented: $showingSettings, isFirstLaunch: $isFirstLaunch) - } - .onChange(of: apiKey) { _, newValue in - UserDefaults.standard.set(newValue, forKey: "ElevenLabsAPIKey") - ElevenLabsAPI.shared.updateAPIKey(newValue) - fetchVoices() - fetchModels() - } - } - - private func updateContentHeight() { - contentHeight += 0.1 - } - - func fetchVoices() { - ElevenLabsAPI.shared.fetchVoices { fetchedVoices in - if fetchedVoices.isEmpty { - self.errorMessage = "Failed to fetch voices. Please check your API key and internet connection." - } else { - self.voices = fetchedVoices - self.selectedVoice = fetchedVoices.first - self.errorMessage = nil - } - } - } - - func fetchModels() { - ElevenLabsAPI.shared.fetchModels { fetchedModels in - if fetchedModels.isEmpty { - self.errorMessage = "Failed to fetch models. Please check your API key and internet connection." - } else { - self.models = fetchedModels - if let defaultModel = fetchedModels.first(where: { $0.modelId == "eleven_turbo_v2_5" }) { - self.selectedModel = defaultModel - } else { - self.selectedModel = fetchedModels.first - } - } - } - } - - func generateSpeech() { - guard let voice = selectedVoice, let model = selectedModel else { return } - - isGenerating = true - let currentText = inputText - let fileName = "speech_\(Date().timeIntervalSince1970).mp3" - - ElevenLabsAPI.shared.generateSpeech(text: currentText, voiceID: voice.voice_id, modelID: model.modelId) { tempURL in - DispatchQueue.main.async { - self.isGenerating = false - if let tempURL = tempURL { - // Save the file to the Documents directory - if let permanentURL = self.saveAudioFilePermanently(tempURL: tempURL, fileName: fileName) { - let newItem = GeneratedSpeechItem(audioURL: permanentURL, text: currentText, voiceName: voice.name, createdAt: Date(), fileName: fileName) - self.generatedItems.insert(newItem, at: 0) - if self.generatedItems.count > 5 { - self.generatedItems = Array(self.generatedItems.prefix(5)) - } - } else { - self.errorMessage = "Failed to save generated speech. Please try again." - } - } else { - self.errorMessage = "Failed to generate speech. Please try again." - } - } - } - } - - private func saveAudioFilePermanently(tempURL: URL, fileName: String) -> URL? { - let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! - let permanentURL = documentsDirectory.appendingPathComponent(fileName) - - do { - if FileManager.default.fileExists(atPath: permanentURL.path) { - try FileManager.default.removeItem(at: permanentURL) - } - try FileManager.default.copyItem(at: tempURL, to: permanentURL) - return permanentURL - } catch { - print("Error saving audio file permanently: \(error)") - return nil - } - } - - private func openElevenLabsWebsite() { - if let url = URL(string: "https://elevenlabs.io") { - NSWorkspace.shared.open(url) - } - } -} - -struct AudioPlayerView: View { - let item: GeneratedSpeechItem - @StateObject private var viewModel = AudioPlayerViewModel() - @State private var isRowHovering = false - @State private var isButtonHovering = false - - var body: some View { - ZStack { - HStack(spacing: 12) { - Button(action: { viewModel.togglePlayPause(for: item.audioURL) }) { - Image(systemName: viewModel.isPlaying ? "pause.fill" : "play.fill") - .frame(width: 24, height: 24) - .foregroundColor(.black) - } - .buttonStyle(PlainButtonStyle()) - - VStack(alignment: .leading, spacing: 2) { - Text(item.text) - .lineLimit(1) - .font(.system(size: 13, weight: .medium)) - Text("Time created: \(formattedTime(item.createdAt)) | \(item.voiceName)") - .font(.system(size: 11)) - .foregroundColor(.gray) - } - - Spacer() - } - .padding(.vertical, 8) - .padding(.horizontal, 12) - .background(Color.white) - .overlay( - RoundedRectangle(cornerRadius: 8) - .fill(Color.gray.opacity(0.1)) - .opacity(isRowHovering ? 1 : 0) - ) - .onHover { hovering in - withAnimation(.easeInOut(duration: 0.2)) { - isRowHovering = hovering - } - } - .contentShape(Rectangle()) - .onTapGesture { - viewModel.togglePlayPause(for: item.audioURL) - } - - HStack { - Spacer() - Button(action: { downloadAudio(url: item.audioURL, fileName: item.fileName) }) { - HStack(alignment: .center, spacing: 4) { - Image("downloadbutton") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: 16, height: 16) - } - .padding(.horizontal, 12) - .padding(.vertical, 8) - .frame(height: 40, alignment: .center) - .background(.white) - .cornerRadius(8) - .shadow(color: Color(red: 0.06, green: 0.09, blue: 0.16).opacity(0.05), radius: 1, x: 0, y: 1) - .overlay( - RoundedRectangle(cornerRadius: 8) - .inset(by: 0.5) - .stroke(Color(red: 0.9, green: 0.91, blue: 0.92), lineWidth: 1) - ) - } - .buttonStyle(PlainButtonStyle()) - .onHover { hovering in - isButtonHovering = hovering - } - } - .padding(.trailing, 12) - } - .frame(height: 60) - .onDrag { - let provider = NSItemProvider(object: item.audioURL as NSURL) - provider.suggestedName = item.fileName - return provider - } preview: { - DragPreview(text: item.text) - } - .onDisappear { - viewModel.stop() - } - } - - private func downloadAudio(url: URL, fileName: String) { - let savePanel = NSSavePanel() - savePanel.allowedContentTypes = [UTType.mp3] - savePanel.nameFieldStringValue = fileName - - if let screen = NSScreen.main { - let screenFrame = screen.visibleFrame - let panelSize = NSSize(width: 540, height: 360) // Adjust these values as needed - - // Calculate the position to center the panel - let xPos = screenFrame.midX - (panelSize.width / 2) - let yPos = screenFrame.midY - (panelSize.height / 2) - - savePanel.setFrameOrigin(NSPoint(x: xPos, y: yPos)) - savePanel.setContentSize(panelSize) - - let response = savePanel.runModal() - - if response == .OK, let saveURL = savePanel.url { - do { - try FileManager.default.copyItem(at: url, to: saveURL) - } catch { - print("Error saving file: \(error.localizedDescription)") - let alert = NSAlert() - alert.messageText = "Error Saving File" - alert.informativeText = error.localizedDescription - alert.alertStyle = .warning - alert.addButton(withTitle: "OK") - alert.runModal() - } - } - } else { - // Fallback if we can't get the main screen - let response = savePanel.runModal() - - if response == .OK, let saveURL = savePanel.url { - do { - try FileManager.default.copyItem(at: url, to: saveURL) - } catch { - print("Error saving file: \(error.localizedDescription)") - } - } - } - } - - private func formattedTime(_ date: Date) -> String { - let formatter = DateFormatter() - formatter.dateFormat = "h:mm a" - return formatter.string(from: date) - } -} - -struct CustomPicker: View { - @EnvironmentObject var appDelegate: AppDelegate - @Binding var selection: T? - let options: [T] - let placeholder: String - let iconType: IconType - let content: (T) -> Content - - enum IconType { - case voiceIcon - case modelIcon - } - - var body: some View { - Menu { - ForEach(options, id: \.self) { option in - Button(action: { - selection = option - DispatchQueue.main.async { - appDelegate.isMenuOpen = false - } - }) { - content(option) - .lineLimit(1) - .truncationMode(.tail) - } - } - } label: { - HStack { - if let selection = selection { - content(selection) - .lineLimit(1) - .truncationMode(.tail) - } else { - Text(placeholder) - } - Spacer() - iconView - } - .frame(maxWidth: 150) - .padding(.horizontal, 12) - .padding(.vertical, 8) - .background(Color(NSColor.controlBackgroundColor)) - .cornerRadius(8) - .overlay( - RoundedRectangle(cornerRadius: 8) - .stroke(Color.gray.opacity(0.5), lineWidth: 1) - ) - } - .menuStyle(BorderlessButtonMenuStyle()) - .frame(maxWidth: .infinity) - .onHover { isHovering in - if isHovering { - appDelegate.isMenuOpen = true - } - } - } - - @ViewBuilder - private var iconView: some View { - switch iconType { - case .voiceIcon: - Circle() - .fill(AngularGradient(gradient: Gradient(colors: [.blue, .purple, .red, .orange]), center: .center)) - .frame(width: 24, height: 24) - case .modelIcon: - Image(systemName: "cpu") - .foregroundColor(.gray) - .frame(width: 24, height: 24) - } - } -} - -struct ViewHeightKey: PreferenceKey { - static var defaultValue: CGFloat { 0 } - static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) { - value = nextValue() - } -} - -struct DragPreview: View { - let text: String - - var body: some View { - VStack { - Image(systemName: "waveform") - .font(.largeTitle) - Text(text) - .font(.caption) - .lineLimit(1) - } - .padding() - .background(Color.white) - .cornerRadius(8) - .shadow(radius: 3) - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ElevenLabsAPI.swift b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ElevenLabsAPI.swift deleted file mode 100644 index dbd1fcc9..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ElevenLabsAPI.swift +++ /dev/null @@ -1,143 +0,0 @@ -import Foundation - -class ElevenLabsAPI { - static let shared = ElevenLabsAPI() - private var apiKey: String = UserDefaults.standard.string(forKey: "ElevenLabsAPIKey") ?? "" - - private init() {} - - func updateAPIKey(_ newKey: String) { - apiKey = newKey - } - - func fetchVoices(completion: @escaping ([Voice]) -> Void) { - guard let url = URL(string: "https://api.elevenlabs.io/v1/voices") else { - completion([]) - return - } - - var request = URLRequest(url: url) - request.addValue(apiKey, forHTTPHeaderField: "xi-api-key") - - URLSession.shared.dataTask(with: request) { data, response, error in - guard let data = data else { - print("Error fetching voices: \(error?.localizedDescription ?? "Unknown error")") - DispatchQueue.main.async { - completion([]) - } - return - } - - do { - let voicesResponse = try JSONDecoder().decode(VoicesResponse.self, from: data) - DispatchQueue.main.async { - completion(voicesResponse.voices) - } - } catch { - print("Error decoding voices: \(error.localizedDescription)") - if let jsonString = String(data: data, encoding: .utf8) { - print("Received JSON: \(jsonString)") - } - DispatchQueue.main.async { - completion([]) - } - } - }.resume() - } - - func generateSpeech(text: String, voiceID: String, modelID: String, completion: @escaping (URL?) -> Void) { - guard let url = URL(string: "https://api.elevenlabs.io/v1/text-to-speech/\(voiceID)") else { - completion(nil) - return - } - - var request = URLRequest(url: url) - request.httpMethod = "POST" - request.addValue("audio/mpeg", forHTTPHeaderField: "Accept") - request.addValue("application/json", forHTTPHeaderField: "Content-Type") - request.addValue(apiKey, forHTTPHeaderField: "xi-api-key") - - let body: [String: Any] = [ - "text": text, - "model_id": modelID, - "voice_settings": [ - "stability": 0.5, - "similarity_boost": 0.5 - ] - ] - - request.httpBody = try? JSONSerialization.data(withJSONObject: body) - - URLSession.shared.dataTask(with: request) { data, response, error in - guard let data = data else { - print("Error generating speech: \(error?.localizedDescription ?? "Unknown error")") - DispatchQueue.main.async { - completion(nil) - } - return - } - - let tempURL = FileManager.default.temporaryDirectory.appendingPathComponent("generated_speech.mp3") - do { - try data.write(to: tempURL) - DispatchQueue.main.async { - completion(tempURL) - } - } catch { - print("Error saving audio file: \(error.localizedDescription)") - DispatchQueue.main.async { - completion(nil) - } - } - }.resume() - } - - func fetchModels(completion: @escaping ([Model]) -> Void) { - guard let url = URL(string: "https://api.elevenlabs.io/v1/models") else { - completion([]) - return - } - - var request = URLRequest(url: url) - request.addValue(apiKey, forHTTPHeaderField: "xi-api-key") - - URLSession.shared.dataTask(with: request) { data, response, error in - DispatchQueue.main.async { - if let data = data { - do { - let models = try JSONDecoder().decode([Model].self, from: data) - completion(models) - } catch { - print("Error decoding models: \(error)") - completion([]) - } - } else { - print("Error fetching models: \(error?.localizedDescription ?? "Unknown error")") - completion([]) - } - } - }.resume() - } -} - -struct VoicesResponse: Codable { - let voices: [Voice] -} - -struct Voice: Codable, Identifiable, Hashable { - let voice_id: String - let name: String - let preview_url: String? - let category: String? - let labels: [String: String]? - - var id: String { voice_id } - - func hash(into hasher: inout Hasher) { - hasher.combine(voice_id) - } - - static func == (lhs: Voice, rhs: Voice) -> Bool { - return lhs.voice_id == rhs.voice_id - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ElevenLabsTTS.entitlements b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ElevenLabsTTS.entitlements deleted file mode 100644 index 69ea0d90..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/ElevenLabsTTS.entitlements +++ /dev/null @@ -1,22 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.assets.movies.read-write - - com.apple.security.assets.music.read-write - - com.apple.security.assets.pictures.read-write - - com.apple.security.files.downloads.read-write - - com.apple.security.files.user-selected.read-write - - com.apple.security.network.client - - com.apple.security.network.server - - - diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/MenuBarApp.swift b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/MenuBarApp.swift deleted file mode 100644 index 823f64d5..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/MenuBarApp.swift +++ /dev/null @@ -1,106 +0,0 @@ -import SwiftUI -import AppKit -import QuartzCore - -@main -struct MenuBarApp: App { - @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate - - var body: some Scene { - Settings { - EmptyView() - } - } -} - -class AppDelegate: NSObject, NSApplicationDelegate, ObservableObject { - var statusItem: NSStatusItem? - var popover: NSPopover? - @Published var isMenuOpen = false - private var eventMonitor: Any? - - func applicationDidFinishLaunching(_ notification: Notification) { - statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength) - - if let button = statusItem?.button { - button.image = NSImage(named: "elevenlogo")? - .resized(to: CGSize(width: 18, height: 18)) - .withSymbolConfiguration(.init(pointSize: 18, weight: .regular)) - button.image?.isTemplate = true - button.action = #selector(togglePopover) - } - - let contentView = ContentView() - .environmentObject(self) - let popover = NSPopover() - popover.contentSize = NSSize(width: 360, height: 300) // Initial size - popover.behavior = .transient - popover.animates = true - popover.contentViewController = NSHostingController(rootView: contentView) - popover.appearance = NSAppearance(named: .aqua) - self.popover = popover - - setupEventMonitor() - } - - private func setupEventMonitor() { - eventMonitor = NSEvent.addGlobalMonitorForEvents(matching: [.leftMouseDown, .rightMouseDown]) { [weak self] event in - guard let self = self, let popover = self.popover else { return } - - if popover.isShown && !self.isMenuOpen { - let mouseLocation = NSEvent.mouseLocation - let popoverRect = popover.contentViewController?.view.window?.convertToScreen(popover.contentViewController?.view.frame ?? .zero) - - if let popoverRect = popoverRect, !popoverRect.contains(mouseLocation) { - self.closePopover() - } - } - } - } - - deinit { - if let eventMonitor = eventMonitor { - NSEvent.removeMonitor(eventMonitor) - } - } - - @objc func togglePopover() { - if let button = statusItem?.button { - if popover?.isShown == true { - closePopover() - } else { - popover?.show(relativeTo: button.bounds, of: button, preferredEdge: NSRectEdge.minY) - } - } - } - - func closePopover() { - popover?.performClose(nil) - } - - func updatePopoverHeight(height: CGFloat) { - DispatchQueue.main.async { - NSAnimationContext.runAnimationGroup { context in - context.duration = 0.3 - context.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut) - self.popover?.contentViewController?.view.animator().frame.size.height = height - self.popover?.contentSize = NSSize(width: 360, height: height) - } completionHandler: { - self.popover?.contentViewController?.view.needsDisplay = true - } - } - } -} - -extension NSImage { - func resized(to newSize: CGSize) -> NSImage { - let newImage = NSImage(size: newSize) - newImage.lockFocus() - self.draw(in: NSRect(origin: .zero, size: newSize), - from: NSRect(origin: .zero, size: size), - operation: .copy, - fraction: 1.0) - newImage.unlockFocus() - return newImage - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Preview Content/Preview Assets.xcassets/Contents.json b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Preview Content/Preview Assets.xcassets/Contents.json deleted file mode 100644 index 74d6a722..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/Preview Content/Preview Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info": { - "author": "xcode", - "version": 1 - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/SettingsView.swift b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/SettingsView.swift deleted file mode 100644 index 55ebc9c1..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/SettingsView.swift +++ /dev/null @@ -1,76 +0,0 @@ -import SwiftUI - -struct SettingsView: View { - @Binding var apiKey: String - @Binding var isPresented: Bool - @Binding var isFirstLaunch: Bool - @State private var tempAPIKey: String = "" - @State private var showAlert = false - @State private var alertMessage = "" - - var body: some View { - VStack(spacing: 20) { - Text(isFirstLaunch ? "Welcome to ElevenLabs" : "Settings") - .font(.headline) - - Text("Please enter your API key to get started, you can grab this from the Profile+API key section on the ElevenLabs.io website") - .font(.subheadline) - .foregroundColor(.secondary) - .multilineTextAlignment(.center) - .fixedSize(horizontal: false, vertical: true) - .padding(.horizontal) - - TextField("Enter API Key", text: $tempAPIKey) - .textFieldStyle(RoundedBorderTextFieldStyle()) - .padding(.horizontal) - - HStack { - if !isFirstLaunch { - Button("Cancel") { - isPresented = false - } - .keyboardShortcut(.cancelAction) - } - - Button("Save") { - saveAPIKey() - } - .keyboardShortcut(.defaultAction) - .disabled(tempAPIKey.isEmpty) - } - - Link("Get API Key", destination: URL(string: "https://elevenlabs.io/docs/api-reference/text-to-speech#authentication")!) - .font(.footnote) - } - .padding() - .frame(width: 300, height: 300) - .onAppear { - tempAPIKey = apiKey - } - .alert(isPresented: $showAlert) { - Alert(title: Text("API Key"), message: Text(alertMessage), dismissButton: .default(Text("OK"))) - } - } - - private func saveAPIKey() { - apiKey = tempAPIKey - UserDefaults.standard.set(tempAPIKey, forKey: "ElevenLabsAPIKey") - ElevenLabsAPI.shared.updateAPIKey(tempAPIKey) - - alertMessage = "API Key saved successfully!" - showAlert = true - - isFirstLaunch = false - - // Close the settings view after a short delay - DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) { - isPresented = false - } - } -} - -struct SettingsView_Previews: PreviewProvider { - static var previews: some View { - SettingsView(apiKey: .constant(""), isPresented: .constant(true), isFirstLaunch: .constant(true)) - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/elevenlogo.png b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/elevenlogo.png deleted file mode 100644 index b35a51c5..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/elevenlogo.png and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/sample.mp3 b/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/sample.mp3 deleted file mode 100644 index 23d6a58f..00000000 Binary files a/examples/ElevenLabs Mac Helper app/ElevenLabsTTS/sample.mp3 and /dev/null differ diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTSTests/ElevenLabsTTSTests.swift b/examples/ElevenLabs Mac Helper app/ElevenLabsTTSTests/ElevenLabsTTSTests.swift deleted file mode 100644 index 7656c492..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTSTests/ElevenLabsTTSTests.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// ElevenLabsTTSTests.swift -// ElevenLabsTTSTests -// -// Created by Ammaar Reshi on 8/24/24. -// - -import XCTest -@testable import ElevenLabsTTS - -final class ElevenLabsTTSTests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. - // Any test you write for XCTest can be annotated as throws and async. - // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. - // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. - } - - func testPerformanceExample() throws { - // This is an example of a performance test case. - self.measure { - // Put the code you want to measure the time of here. - } - } - -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTSUITests/ElevenLabsTTSUITests.swift b/examples/ElevenLabs Mac Helper app/ElevenLabsTTSUITests/ElevenLabsTTSUITests.swift deleted file mode 100644 index c2cc2832..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTSUITests/ElevenLabsTTSUITests.swift +++ /dev/null @@ -1,41 +0,0 @@ -// -// ElevenLabsTTSUITests.swift -// ElevenLabsTTSUITests -// -// Created by Ammaar Reshi on 8/24/24. -// - -import XCTest - -final class ElevenLabsTTSUITests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // UI tests must launch the application that they test. - let app = XCUIApplication() - app.launch() - - // Use XCTAssert and related functions to verify your tests produce the correct results. - } - - func testLaunchPerformance() throws { - if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { - // This measures how long it takes to launch your application. - measure(metrics: [XCTApplicationLaunchMetric()]) { - XCUIApplication().launch() - } - } - } -} diff --git a/examples/ElevenLabs Mac Helper app/ElevenLabsTTSUITests/ElevenLabsTTSUITestsLaunchTests.swift b/examples/ElevenLabs Mac Helper app/ElevenLabsTTSUITests/ElevenLabsTTSUITestsLaunchTests.swift deleted file mode 100644 index 01cd81eb..00000000 --- a/examples/ElevenLabs Mac Helper app/ElevenLabsTTSUITests/ElevenLabsTTSUITestsLaunchTests.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// ElevenLabsTTSUITestsLaunchTests.swift -// ElevenLabsTTSUITests -// -// Created by Ammaar Reshi on 8/24/24. -// - -import XCTest - -final class ElevenLabsTTSUITestsLaunchTests: XCTestCase { - - override class var runsForEachTargetApplicationUIConfiguration: Bool { - true - } - - override func setUpWithError() throws { - continueAfterFailure = false - } - - func testLaunch() throws { - let app = XCUIApplication() - app.launch() - - // Insert steps here to perform after app launch but before taking a screenshot, - // such as logging into a test account or navigating somewhere in the app - - let attachment = XCTAttachment(screenshot: app.screenshot()) - attachment.name = "Launch Screen" - attachment.lifetime = .keepAlways - add(attachment) - } -} diff --git a/examples/ElevenLabs Mac Helper app/README.md b/examples/ElevenLabs Mac Helper app/README.md deleted file mode 100644 index 63b7a3e5..00000000 --- a/examples/ElevenLabs Mac Helper app/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# ElevenLabs Mac App - -## 🤖 AI-Generated Code Project - -**Important Note:** This entire Mac application was generated using AI tools, specifically Cursor Composer and Claude 3.5 Sonnet. AI wrote all of the code for this project and therefore we don't endorse this code for its quality but rather as a proof of concept of what AI can do. - -## 🚀 About the Project - -The ElevenLabs Mac App is an open-source native application that brings the power of ElevenLabs' AI voice technology directly to your Mac desktop. This project serves as a demonstration of both ElevenLabs' capabilities and the potential of AI-assisted software development. - -## 🛠 Features - -- Fetches ElevenLabs voices and allows you to select one -- Allows you to select a voice and generate text to speech -- Allows you to save the generated audio to your computer -- Allows you to drag your generated audio file into video editors and apps on your computer - -## 🚀 Getting Started - -### Prerequisites - -- macOS 14.0+ - -### Installation - -1. Run the app in Xcode to build it or download the binary - -## 🙏 Acknowledgements - -- [Cursor Composer](https://cursor.sh/) - AI-powered code generation tool -- [Claude 3.5 Sonnet](https://www.anthropic.com) - AI language model for assistance and planning -- [ElevenLabs](https://elevenlabs.io) - AI voice technology diff --git a/examples/audio-native/nextjs-sticky-player/.gitignore b/examples/audio-native/nextjs-sticky-player/.gitignore deleted file mode 100644 index 00bba9bb..00000000 --- a/examples/audio-native/nextjs-sticky-player/.gitignore +++ /dev/null @@ -1,37 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local -.env - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/audio-native/nextjs-sticky-player/README.md b/examples/audio-native/nextjs-sticky-player/README.md deleted file mode 100644 index 3cf670c3..00000000 --- a/examples/audio-native/nextjs-sticky-player/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Add a sticky Audio Native Player to a Next.js Blog - -This is example adds a sticky wrapper container to the Audio Native Player, allowing it to persist in the window as the user scrolls. - -## Quickstart - -1. Navigate to `/examples/audio-native/nextjs-sticky-player` and run `npm install` -2. Create a `.env` file at the root of this directory and add `NEXT_PUBLIC_PUBLIC_USER_ID` -3. In the [ElevenLabs dashboard](https://elevenlabs.io/app/audionative/settings), navigate to the Audio Native Embed Code and extract the `publicUserId` -4. Add this as a value to the environment variable you just created: `NEXT_PUBLIC_PUBLIC_USER_ID=[publicUserId]` -5. Use `npm run dev` to start the application -6. Start ngrok `ngrok http 3000` -7. Add the ngrok url to the "URL allowlist" in your ElevenLabs Audio Native settings. -8. Navigate to the ngrok url and click on one of the posts and you will see the audio player that sticks to the top of the page as you scroll. diff --git a/examples/audio-native/nextjs-sticky-player/_posts/elevenlabs-at-mit.md b/examples/audio-native/nextjs-sticky-player/_posts/elevenlabs-at-mit.md deleted file mode 100644 index 5a6b240c..00000000 --- a/examples/audio-native/nextjs-sticky-player/_posts/elevenlabs-at-mit.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "In focus: ElevenLabs at MIT EmTech Digital" -excerpt: "Enhancing AI safety through a focus on content provenance, traceability, and moderation" -coverImage: "/assets/blog/dynamic-routing/cover.jpg" -date: "2020-03-16T05:35:07.322Z" -author: - name: ElevenLabs Team - picture: "/assets/blog/authors/team.png" -ogImage: - url: "/assets/blog/dynamic-routing/cover.jpg" ---- - -Last week at the MIT EmTech Digital conference in London, I participated in a panel focused on how business, government, and academia can collaborate to maximize opportunities and manage challenges associated with advanced AI products. Alongside ElevenLabs, the panel included leaders from the Alan Turing Institute, the Ada Lovelace Institute, and BT, with MIT Technology Review’s Melissa Heikkilä moderating the discussion. - -Three-pronged approach to AI safety -At ElevenLabs, we develop audio AI technology conscious of its impact. In my role overseeing AI Safety, I’m focused on empowering creators, businesses and users, while preventing misuse and deterring bad actors. During the panel, I outlined the steps we’ve taken to make ElevenLabs a safer, more innovative space, and I advocated for the adoption of strategies that prioritize addressing AI safety challenges. These strategies include: - -Provenance: involves distinguishing AI-generated content from real content by understanding its origins. Upstream AI detection tools, such as classifiers, are probabilistic models trained to recognize AI-generated outputs. At ElevenLabs, we’ve developed the AI Speech Classifier that lets anyone upload samples to check if they originate from our platform. We’re also collaborating with Loccus to enhance AI content classification capabilities. Classifiers, however, are not a panacea solution for provenance; they have their limitations. To address them, downstream AI detection methods have emerged, including metadata, watermarks, and fingerprinting solutions. We endorse industry-wide efforts such as cryptographically signed metadata standard C2PA, which present the benefit of being open and interoperable and could enable labeling of AI-generated content across main distribution channels like Instagram or Facebook. - -Traceability: ensures that AI-generated content can be traced back to an individual user. At ElevenLabs, our systems let us link content generated on our platform to the originating account, and our voice cloning tools are accessible only to users who have verified their accounts with banking information. Focus on traceability ensures that anyone using AI platforms can be accountable for their actions, and identified by legal authorities when necessary. - -Moderation: which involves defining clear policies on acceptable content and use, and preventing users from generating content that does not comply with such policies. At ElevenLabs, we use automated systems to scan, flag, and block inappropriate content. Human moderators review flagged content to ensure consistent policy enforcement. We are continually advancing our moderation technology to prevent the generation of content that could harm public trust or safety. Open source moderation endpoints, such as the one provided by OpenAI, enable easy integration of prompt moderation into any AI applications. diff --git a/examples/audio-native/nextjs-sticky-player/_posts/harper-collins.md b/examples/audio-native/nextjs-sticky-player/_posts/harper-collins.md deleted file mode 100644 index 7b9362c7..00000000 --- a/examples/audio-native/nextjs-sticky-player/_posts/harper-collins.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "HarperCollins Publishers and ElevenLabs to Bring More Stories to Life Through Audio" -excerpt: "Together we're creating audio versions of select deep backlist series books that would not otherwise have been created" -coverImage: "/assets/blog/dynamic-routing/cover.jpg" -date: "2020-03-16T05:35:07.322Z" -author: - name: ElevenLabs Team - picture: "/assets/blog/authors/team.png" -ogImage: - url: "/assets/blog/dynamic-routing/cover.jpg" ---- - -We're working with HarperCollins Publishers to create audiobooks for HarperCollins’s foreign language business using our text to speech technology. The agreement will lead to the production of audio versions of select deep backlist series books that would not otherwise have been created. - -Mati Staniszewski, CEO of ElevenLabs, comments: -“We’re thrilled to collaborate with HarperCollins and delighted that our technology is making it possible for more books in their incredible catalogue of works to become an audiobook. Without AI, there simply wouldn’t be the time or resources to make this happen. Now, every author can see their work come to life in audio, readers can be offered more choice, and the linguistic barriers of content can be dissolved.” - -Our Projects tool, designed for publishers and independent authors will be utilized. The tool allows for an audiobook to be created in as little as one hour via its intuitive Projects interface. Creators can select or design the voices they want to use, easily assign specific text fragments to particular speakers, and adjust pause lengths between text segments, all while maintaining contextual cohesion. - -This technology represents a seismic leap forward in the quality of audio that AI-assisted tools can create. It also significantly reduces the costs and operational challenges associated with full-scale audiobook production. - -HarperCollins will continue to devote time and resources to voice actor-led productions which are intrinsic to its current audiobook creation strategy. Text to speech will be leveraged as a complementary tool to enable a broader number of audiobooks for backlist series books in non-English markets, leading to a more diverse selection of titles in the format and driving growth in the audiobook markets. diff --git a/examples/audio-native/nextjs-sticky-player/_posts/hello-world.md b/examples/audio-native/nextjs-sticky-player/_posts/hello-world.md deleted file mode 100644 index 905c8712..00000000 --- a/examples/audio-native/nextjs-sticky-player/_posts/hello-world.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Audacy and ElevenLabs Strike Partnership" -excerpt: "ElevenLabs’ Synthetic Voice Capabilities to Augment Audacy Programming and Production Workflows" -coverImage: "/assets/blog/dynamic-routing/cover.jpg" -date: "2020-03-16T05:35:07.322Z" -author: - name: ElevenLabs Team - picture: "/assets/blog/authors/team.png" -ogImage: - url: "/assets/blog/dynamic-routing/cover.jpg" ---- - -## ElevenLabs’ Synthetic Voice Capabilities to Augment Audacy Programming and Production Workflows - -Audacy is partnering with voice AI research and deployment company ElevenLabs to augment its existing programming and production workflows. - -Through ElevenLabs’ market-leading synthetic voice capabilities, this partnership will create a robust library of voices for Audacy to deliver custom experiences for listeners and advertising clients. Audacy will infuse creator-led ideas and concepts with ElevenLabs’ technology to further bolster its programmers' and talents’ unique ability to engage deeply with audiences at scale. - -“By experimenting with ElevenLabs’ synthetic voice capabilities, we're transforming how we connect with our listeners and create value for our advertising partners,” said Jeff Sottolano, Executive Vice President and Head of Programming, Audacy. “By streamlining workflows, this collaboration will empower creators with more bandwidth to focus on the exceptional content and listening experiences our audiences love and expect from Audacy.” - -“Through our work with Audacy, we’re bringing new voices to life, making radio more diverse and accessible for everyone,” says Carles Reina, Vice President of Revenue, ElevenLabs. “This technology also means we can produce more creator-led content faster, keeping up with the speed of today’s world.” - -## About Audacy - -Audacy, Inc. is a leading multi-platform audio content and entertainment company that connects with 200 million consumers. Powered by its exclusive, premium audio content that includes unrivaled leadership positions in news and sports radio, Audacy operates one of the country’s two scaled radio broadcasting groups, a rapidly growing direct-to-consumer digital audio platform, multiple audio networks, a major event business and a leading, award-winning podcast studio. Learn more at www.audacyinc.com, Facebook, X, LinkedIn and Instagram. diff --git a/examples/audio-native/nextjs-sticky-player/_posts/voice-actor.md b/examples/audio-native/nextjs-sticky-player/_posts/voice-actor.md deleted file mode 100644 index 4ce8cfb5..00000000 --- a/examples/audio-native/nextjs-sticky-player/_posts/voice-actor.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Top strategies to market yourself as a voice actor" -excerpt: "ElevenLabs’ Synthetic Voice Capabilities to Augment Audacy Programming and Production Workflows" -coverImage: "/assets/blog/dynamic-routing/cover.jpg" -date: "2020-03-16T05:35:07.322Z" -author: - name: ElevenLabs Team - picture: "/assets/blog/authors/team.png" -ogImage: - url: "/assets/blog/dynamic-routing/cover.jpg" ---- - -## The importance of marketing for voice acting - -When it comes to the sphere of voice acting, "marketing efforts" may not be the first term that comes to mind. Vocal coaching? Yes. High-quality demo reels? Absolutely. A home studio? Essential. But marketing? Definitely not the first, second, or even third step to boosting your voice acting career. - -Or so it seems. - -Truth be told, foundational marketing practices are essential for any profession in 2024, especially if you want to build an online presence. And given that the internet is the quickest and most efficient way to reach your target audience, there's a bigger incentive to get your name out there on the web. - -However, when it comes to voice acting, marketing isn't simply a good addition to your existing efforts - it's crucial! - -Thankfully, there's no need to worry. Even if the only thing you know about marketing is the word itself, you'll be a voice talent marketing wizz once you're done with this comprehensive how-to guide. - -But first, let's examine some of the most common marketing challenges voice actors face today. diff --git a/examples/audio-native/nextjs-sticky-player/package-lock.json b/examples/audio-native/nextjs-sticky-player/package-lock.json deleted file mode 100644 index 897b0924..00000000 --- a/examples/audio-native/nextjs-sticky-player/package-lock.json +++ /dev/null @@ -1,3167 +0,0 @@ -{ - "name": "nextjs-sticky-player", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "classnames": "^2.5.1", - "date-fns": "^3.3.1", - "gray-matter": "^4.0.3", - "next": "14.2.35", - "react": "^18", - "react-dom": "^18", - "remark": "^15.0.1", - "remark-html": "^16.0.1" - }, - "devDependencies": { - "@types/node": "^20", - "@types/react": "^18", - "@types/react-dom": "^18", - "autoprefixer": "^10.0.1", - "postcss": "^8", - "tailwindcss": "^3.3.0", - "typescript": "^5" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@next/env": { - "version": "14.2.35", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.35.tgz", - "integrity": "sha512-DuhvCtj4t9Gwrx80dmz2F4t/zKQ4ktN8WrMwOuVzkJfBilwAwGr6v16M5eI8yCuZ63H9TTuEU09Iu2HqkzFPVQ==", - "license": "MIT" - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.33.tgz", - "integrity": "sha512-HqYnb6pxlsshoSTubdXKu15g3iivcbsMXg4bYpjL2iS/V6aQot+iyF4BUc2qA/J/n55YtvE4PHMKWBKGCF/+wA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.33.tgz", - "integrity": "sha512-8HGBeAE5rX3jzKvF593XTTFg3gxeU4f+UWnswa6JPhzaR6+zblO5+fjltJWIZc4aUalqTclvN2QtTC37LxvZAA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.33.tgz", - "integrity": "sha512-JXMBka6lNNmqbkvcTtaX8Gu5by9547bukHQvPoLe9VRBx1gHwzf5tdt4AaezW85HAB3pikcvyqBToRTDA4DeLw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.33.tgz", - "integrity": "sha512-Bm+QulsAItD/x6Ih8wGIMfRJy4G73tu1HJsrccPW6AfqdZd0Sfm5Imhgkgq2+kly065rYMnCOxTBvmvFY1BKfg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.33.tgz", - "integrity": "sha512-FnFn+ZBgsVMbGDsTqo8zsnRzydvsGV8vfiWwUo1LD8FTmPTdV+otGSWKc4LJec0oSexFnCYVO4hX8P8qQKaSlg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.33.tgz", - "integrity": "sha512-345tsIWMzoXaQndUTDv1qypDRiebFxGYx9pYkhwY4hBRaOLt8UGfiWKr9FSSHs25dFIf8ZqIFaPdy5MljdoawA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.33.tgz", - "integrity": "sha512-nscpt0G6UCTkrT2ppnJnFsYbPDQwmum4GNXYTeoTIdsmMydSKFz9Iny2jpaRupTb+Wl298+Rh82WKzt9LCcqSQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.33.tgz", - "integrity": "sha512-pc9LpGNKhJ0dXQhZ5QMmYxtARwwmWLpeocFmVG5Z0DzWq5Uf0izcI8tLc+qOpqxO1PWqZ5A7J1blrUIKrIFc7Q==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.33.tgz", - "integrity": "sha512-nOjfZMy8B94MdisuzZo9/57xuFVLHJaDj5e/xrduJp9CV2/HrfxTRH2fbyLe+K9QT41WBLUd4iXX3R7jBp0EUg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", - "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "tslib": "^2.4.0" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" - }, - "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "dev": true - }, - "node_modules/@types/react": { - "version": "18.2.79", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", - "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.2.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", - "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" - }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001612", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz", - "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true - }, - "node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.748", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.748.tgz", - "integrity": "sha512-VWqjOlPZn70UZ8FTKUOkUvBLeTQ0xpty66qV0yJcAGY2/CthI4xyW9aEozRVtuwv3Kpf5xTesmJUcPwuJmgP4A==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^8.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz", - "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-from-parse5": "^8.0.0", - "hast-util-to-parse5": "^8.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "parse5": "^7.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-sanitize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.1.tgz", - "integrity": "sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ==", - "dependencies": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.2.0", - "unist-util-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.1.tgz", - "integrity": "sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-raw": "^9.0.0", - "hast-util-whitespace": "^3.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", - "zwitch": "^2.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", - "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", - "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", - "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", - "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/next": { - "version": "14.2.35", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.35.tgz", - "integrity": "sha512-KhYd2Hjt/O1/1aZVX3dCwGXM1QmOV4eNM2UTacK5gipDdPN/oHHK/4oVGy7X8GMfPMsUTUEmGlsy0EY1YGAkig==", - "license": "MIT", - "dependencies": { - "@next/env": "14.2.35", - "@swc/helpers": "0.5.5", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", - "postcss": "8.4.31", - "styled-jsx": "5.1.1" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=18.17.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.33", - "@next/swc-darwin-x64": "14.2.33", - "@next/swc-linux-arm64-gnu": "14.2.33", - "@next/swc-linux-arm64-musl": "14.2.33", - "@next/swc-linux-x64-gnu": "14.2.33", - "@next/swc-linux-x64-musl": "14.2.33", - "@next/swc-win32-arm64-msvc": "14.2.33", - "@next/swc-win32-ia32-msvc": "14.2.33", - "@next/swc-win32-x64-msvc": "14.2.33" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/remark": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", - "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", - "dependencies": { - "@types/mdast": "^4.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-html": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-16.0.1.tgz", - "integrity": "sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==", - "dependencies": { - "@types/mdast": "^4.0.0", - "hast-util-sanitize": "^5.0.0", - "hast-util-to-html": "^9.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", - "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", - "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/examples/audio-native/nextjs-sticky-player/package.json b/examples/audio-native/nextjs-sticky-player/package.json deleted file mode 100644 index d5a715d4..00000000 --- a/examples/audio-native/nextjs-sticky-player/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "classnames": "^2.5.1", - "date-fns": "^3.3.1", - "gray-matter": "^4.0.3", - "next": "14.2.35", - "react": "^18", - "react-dom": "^18", - "remark": "^15.0.1", - "remark-html": "^16.0.1" - }, - "devDependencies": { - "@types/node": "^20", - "@types/react": "^18", - "@types/react-dom": "^18", - "autoprefixer": "^10.0.1", - "postcss": "^8", - "tailwindcss": "^3.3.0", - "typescript": "^5" - } -} diff --git a/examples/audio-native/nextjs-sticky-player/postcss.config.js b/examples/audio-native/nextjs-sticky-player/postcss.config.js deleted file mode 100644 index 12a703d9..00000000 --- a/examples/audio-native/nextjs-sticky-player/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/examples/audio-native/nextjs-sticky-player/public/assets/blog/authors/team.png b/examples/audio-native/nextjs-sticky-player/public/assets/blog/authors/team.png deleted file mode 100644 index a5bb257e..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/assets/blog/authors/team.png and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/assets/blog/dynamic-routing/cover.jpg b/examples/audio-native/nextjs-sticky-player/public/assets/blog/dynamic-routing/cover.jpg deleted file mode 100644 index c660c926..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/assets/blog/dynamic-routing/cover.jpg and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/assets/blog/hello-world/cover.jpg b/examples/audio-native/nextjs-sticky-player/public/assets/blog/hello-world/cover.jpg deleted file mode 100644 index 33b7dc4b..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/assets/blog/hello-world/cover.jpg and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/assets/blog/preview/cover.jpg b/examples/audio-native/nextjs-sticky-player/public/assets/blog/preview/cover.jpg deleted file mode 100644 index 6a975fb3..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/assets/blog/preview/cover.jpg and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/android-chrome-192x192.png b/examples/audio-native/nextjs-sticky-player/public/favicon/android-chrome-192x192.png deleted file mode 100644 index 2f07282a..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/favicon/android-chrome-192x192.png and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/android-chrome-512x512.png b/examples/audio-native/nextjs-sticky-player/public/favicon/android-chrome-512x512.png deleted file mode 100644 index dbb0faea..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/favicon/android-chrome-512x512.png and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/apple-touch-icon.png b/examples/audio-native/nextjs-sticky-player/public/favicon/apple-touch-icon.png deleted file mode 100644 index 8f4033b2..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/favicon/apple-touch-icon.png and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/browserconfig.xml b/examples/audio-native/nextjs-sticky-player/public/favicon/browserconfig.xml deleted file mode 100644 index 9824d87b..00000000 --- a/examples/audio-native/nextjs-sticky-player/public/favicon/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #000000 - - - diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/favicon-16x16.png b/examples/audio-native/nextjs-sticky-player/public/favicon/favicon-16x16.png deleted file mode 100644 index 29deaf67..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/favicon/favicon-16x16.png and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/favicon-32x32.png b/examples/audio-native/nextjs-sticky-player/public/favicon/favicon-32x32.png deleted file mode 100644 index e3b4277b..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/favicon/favicon-32x32.png and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/favicon.ico b/examples/audio-native/nextjs-sticky-player/public/favicon/favicon.ico deleted file mode 100644 index ea2f437d..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/favicon/favicon.ico and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/mstile-150x150.png b/examples/audio-native/nextjs-sticky-player/public/favicon/mstile-150x150.png deleted file mode 100644 index f2dfd904..00000000 Binary files a/examples/audio-native/nextjs-sticky-player/public/favicon/mstile-150x150.png and /dev/null differ diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/safari-pinned-tab.svg b/examples/audio-native/nextjs-sticky-player/public/favicon/safari-pinned-tab.svg deleted file mode 100644 index 72ab6e05..00000000 --- a/examples/audio-native/nextjs-sticky-player/public/favicon/safari-pinned-tab.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - - - - - - diff --git a/examples/audio-native/nextjs-sticky-player/public/favicon/site.webmanifest b/examples/audio-native/nextjs-sticky-player/public/favicon/site.webmanifest deleted file mode 100644 index a672d9a2..00000000 --- a/examples/audio-native/nextjs-sticky-player/public/favicon/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Next.js", - "short_name": "Next.js", - "icons": [ - { - "src": "/favicons/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/favicons/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#000000", - "background_color": "#000000", - "display": "standalone" -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/alert.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/alert.tsx deleted file mode 100644 index c800a9ff..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/alert.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import Container from "@/app/_components/container"; -import { EXAMPLE_PATH } from "@/lib/constants"; -import cn from "classnames"; - -type Props = { - preview?: boolean; -}; - -const Alert = ({ preview }: Props) => { - return ( -
- -
- {preview ? ( - <> - This page is a preview.{" "} - - Click here - {" "} - to exit preview mode. - - ) : ( - <> - The source code for this blog is{" "} - - available on GitHub - - . - - )} -
-
-
- ); -}; - -export default Alert; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/avatar.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/avatar.tsx deleted file mode 100644 index 0041d7a4..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/avatar.tsx +++ /dev/null @@ -1,19 +0,0 @@ -type Props = { - name: string; - picture: string; -}; - -const Avatar = ({ name, picture }: Props) => { - return ( -
- {name} -
{name}
-
- ); -}; - -export default Avatar; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/container.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/container.tsx deleted file mode 100644 index 17458eb8..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/container.tsx +++ /dev/null @@ -1,9 +0,0 @@ -type Props = { - children?: React.ReactNode; -}; - -const Container = ({ children }: Props) => { - return
{children}
; -}; - -export default Container; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/cover-image.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/cover-image.tsx deleted file mode 100644 index abff0bba..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/cover-image.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import cn from "classnames"; -import Link from "next/link"; -import Image from "next/image"; - -type Props = { - title: string; - src: string; - slug?: string; -}; - -const CoverImage = ({ title, src, slug }: Props) => { - const image = ( - {`Cover - ); - return ( -
- {slug ? ( - - {image} - - ) : ( - image - )} -
- ); -}; - -export default CoverImage; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/date-formatter.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/date-formatter.tsx deleted file mode 100644 index b092f5ec..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/date-formatter.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { parseISO, format } from "date-fns"; - -type Props = { - dateString: string; -}; - -const DateFormatter = ({ dateString }: Props) => { - const date = parseISO(dateString); - return ; -}; - -export default DateFormatter; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/elevenlabs-audio-native.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/elevenlabs-audio-native.tsx deleted file mode 100644 index ed05f90a..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/elevenlabs-audio-native.tsx +++ /dev/null @@ -1,51 +0,0 @@ -"use client"; -import { useEffect } from "react"; - -export type ElevenLabsProps = { - publicUserId: string; - textColorRgba?: string; - backgroundColorRgba?: string; - size?: "small" | "large"; - children?: React.ReactNode; -}; - -export const ElevenLabsAudioNative = ({ - publicUserId, - size, - textColorRgba, - backgroundColorRgba, - children, -}: ElevenLabsProps) => { - useEffect(() => { - const script = document.createElement("script"); - - script.src = "https://elevenlabs.io/player/audioNativeHelper.js"; - script.async = true; - document.body.appendChild(script); - - return () => { - document.body.removeChild(script); - }; - }, []); - - return ( -
-
- {children ? children : "Elevenlabs AudioNative Player"} -
-
- ); -}; - -export default ElevenLabsAudioNative; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/footer.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/footer.tsx deleted file mode 100644 index e50657b3..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/footer.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import Container from "@/app/_components/container"; -import { EXAMPLE_PATH } from "@/lib/constants"; - -export function Footer() { - return ( - - ); -} - -export default Footer; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/header.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/header.tsx deleted file mode 100644 index 0848e1f5..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/header.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import Link from "next/link"; - -const Header = () => { - return ( -

- - Blog - - . -

- ); -}; - -export default Header; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/hero-post.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/hero-post.tsx deleted file mode 100644 index 91a24b36..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/hero-post.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import Avatar from "@/app/_components/avatar"; -import CoverImage from "@/app/_components/cover-image"; -import { type Author } from "@/interfaces/author"; -import Link from "next/link"; -import DateFormatter from "./date-formatter"; - -type Props = { - title: string; - coverImage: string; - date: string; - excerpt: string; - author: Author; - slug: string; -}; - -export function HeroPost({ - title, - coverImage, - date, - excerpt, - author, - slug, -}: Props) { - return ( -
-
- -
-
-
-

- - {title} - -

-
- -
-
-
-

{excerpt}

- -
-
-
- ); -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/intro.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/intro.tsx deleted file mode 100644 index 5605a08a..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/intro.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { CMS_NAME } from "@/lib/constants"; - -export function Intro() { - return ( -
-

- Blog. -

-

- A statically generated blog example using Next.js, ElevenLabs, and{" "} - {CMS_NAME}. -

-
- ); -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/markdown-styles.module.css b/examples/audio-native/nextjs-sticky-player/src/app/_components/markdown-styles.module.css deleted file mode 100644 index 95d4f8b0..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/markdown-styles.module.css +++ /dev/null @@ -1,18 +0,0 @@ -.markdown { - @apply text-lg leading-relaxed; -} - -.markdown p, -.markdown ul, -.markdown ol, -.markdown blockquote { - @apply my-6; -} - -.markdown h2 { - @apply text-3xl mt-12 mb-4 leading-snug; -} - -.markdown h3 { - @apply text-2xl mt-8 mb-4 leading-snug; -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/more-stories.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/more-stories.tsx deleted file mode 100644 index 65255ff3..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/more-stories.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { Post } from "@/interfaces/post"; -import { PostPreview } from "./post-preview"; - -type Props = { - posts: Post[]; -}; - -export function MoreStories({ posts }: Props) { - return ( -
-

- More Stories -

-
- {posts.map(post => ( - - ))} -
-
- ); -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/post-body.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/post-body.tsx deleted file mode 100644 index 065883c7..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/post-body.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import markdownStyles from "./markdown-styles.module.css"; - -type Props = { - content: string; -}; - -export function PostBody({ content }: Props) { - return ( -
-
-
- ); -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/post-header.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/post-header.tsx deleted file mode 100644 index f377766d..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/post-header.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import Avatar from "./avatar"; -import CoverImage from "./cover-image"; -import DateFormatter from "./date-formatter"; -import { PostTitle } from "@/app/_components/post-title"; -import { type Author } from "@/interfaces/author"; - -type Props = { - title: string; - coverImage: string; - date: string; - author: Author; -}; - -export function PostHeader({ title, coverImage, date, author }: Props) { - return ( - <> - {title} -
- -
-
- -
-
-
- -
-
- -
-
- - ); -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/post-preview.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/post-preview.tsx deleted file mode 100644 index 00738f26..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/post-preview.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { type Author } from "@/interfaces/author"; -import Link from "next/link"; -import Avatar from "./avatar"; -import CoverImage from "./cover-image"; -import DateFormatter from "./date-formatter"; - -type Props = { - title: string; - coverImage: string; - date: string; - excerpt: string; - author: Author; - slug: string; -}; - -export function PostPreview({ - title, - coverImage, - date, - excerpt, - author, - slug, -}: Props) { - return ( -
-
- -
-

- - {title} - -

-
- -
-

{excerpt}

- -
- ); -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/post-title.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/post-title.tsx deleted file mode 100644 index 5d2dc0bc..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/post-title.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { ReactNode } from "react"; - -type Props = { - children?: ReactNode; -}; - -export function PostTitle({ children }: Props) { - return ( -

- {children} -

- ); -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/_components/section-separator.tsx b/examples/audio-native/nextjs-sticky-player/src/app/_components/section-separator.tsx deleted file mode 100644 index 62412c0a..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/_components/section-separator.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export function SectionSeparator() { - return
; -} diff --git a/examples/audio-native/nextjs-sticky-player/src/app/globals.css b/examples/audio-native/nextjs-sticky-player/src/app/globals.css deleted file mode 100644 index b5c61c95..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/globals.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/examples/audio-native/nextjs-sticky-player/src/app/layout.tsx b/examples/audio-native/nextjs-sticky-player/src/app/layout.tsx deleted file mode 100644 index 5e2a4b7a..00000000 --- a/examples/audio-native/nextjs-sticky-player/src/app/layout.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import Footer from "@/app/_components/footer"; -import { HOME_OG_IMAGE_URL } from "@/lib/constants"; -import type { Metadata } from "next"; -import { Inter } from "next/font/google"; - -import "./globals.css"; - -const inter = Inter({ subsets: ["latin"] }); - -export const metadata: Metadata = { - title: `Sticky Audio Native Player`, - description: `A statically generated blog example using Next.js and ElevenLabs.`, - openGraph: { - images: [HOME_OG_IMAGE_URL], - }, -}; - -export default function RootLayout({ - children, -}: Readonly<{ - children: React.ReactNode; -}>) { - return ( - - - - - - - - - - - - - - -
{children}
-