diff --git a/content/_index.md b/content/_index.md
index 9aa1cc3..b78d3ca 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -1,42 +1,17 @@
---
title: "Binary Builders"
-description: "Binary Builders is pioneering innovation in crypto and beyond. Join us in shaping the future with expertise, passion, and collaboration."
+description: "Building at the frontier of crypto."
layout: "home"
hero:
subtitle: "Binary Builders is pioneering innovation in crypto and beyond. Join us in shaping the future with expertise, passion, and collaboration."
- dynamic_texts:
+ dynamic_texts:
- "Networks"
- "Protocols"
- - "Validators"
- "Solutions"
primary_cta:
- url: "https://onur.chat"
- text: "Talk to Us"
+ url: "/thesis"
+ text: "Our Thesis"
secondary_cta:
- url: "#solutions"
- text: "What We Offer"
-features:
- title: "How We Support Teams"
- items:
- - title: "Development"
- description: "Leading development of Cosmos SDK and Rollkit to advance the future of decentralized applications."
- link: "/services/technical-development"
- class: "feature-card--sdk"
- - title: "Staking"
- description: "Professional validator services and data solutions through Numia, empowering blockchain applications."
- link: "/services/staking"
- class: "feature-card--data"
- - title: "Venture"
- description: "Strategic investments and collaborations supporting the best teams in the space."
- link: "/services/venture"
- class: "feature-card--builders"
- - title: "Consulting"
- description: "Expert guidance and technical solutions for blockchain projects and Web3 initiatives."
- link: "/services/consulting"
- class: "feature-card--sdk-copy"
-cta:
- title: "Get in Touch"
- description: "Have questions or want to collaborate? We'd love to hear from you."
- button:
- url: "/contact"
+ url: "/work"
+ text: "Our Work"
---
diff --git a/content/thesis.md b/content/thesis.md
new file mode 100644
index 0000000..253f523
--- /dev/null
+++ b/content/thesis.md
@@ -0,0 +1,38 @@
+---
+title: "Thesis"
+description: "Why we build. What we believe. Where we're going."
+layout: "thesis"
+values:
+ - title: "Security & Privacy"
+ description: "We believe that security and privacy are fundamental human rights in the digital age. Our commitment goes beyond implementing rigorous protocols -- we're building a future where users have true ownership and control over their data. Every line of code we write is crafted with the highest security standards, continuous monitoring, and privacy-preserving techniques to ensure that the systems we build protect both assets and identities. We're creating infrastructure that empowers rather than exploits."
+ - title: "Collaboration & Community"
+ description: "We don't build in isolation -- we create with and for our community. By fostering strong partnerships within the blockchain ecosystem and engaging directly with users, we ensure our solutions address real needs. We believe in the power of collective innovation, shared knowledge, and diverse perspectives. Our development process is transparent and inclusive, inviting contributions from developers, users, and stakeholders alike. Together, we're not just building technology; we're cultivating an ecosystem where everyone has a voice in shaping our shared digital future."
+ - title: "Technical Excellence"
+ description: "We pursue technical excellence through rigorous research, thoughtful design, and meticulous implementation. Our team doesn't chase trends -- we focus on creating robust, scalable, and elegant solutions that stand the test of time. We embrace complexity but strive for simplicity in our designs, building systems that are both powerful and accessible. By maintaining high standards in our code quality, documentation, and testing, we ensure that our contributions to the blockchain ecosystem provide lasting value and inspire others to build upon our work."
+ - title: "Passion & Care"
+ description: "We approach our work with genuine passion and meticulous care, taking the time needed to get things right rather than rushing to meet arbitrary deadlines. Every project we undertake receives our full dedication and attention to detail -- from the architecture of our systems to the user experience of our applications. We believe that the best results come from a deep commitment to craftsmanship, where patience and persistence lead to excellence. This deliberate approach allows us to create solutions that not only work but delight, reflecting our unwavering commitment to quality in everything we build."
+cta_title: "Join Our Journey"
+cta_description: "Whether you're a developer, builder, or potential partner, we invite you to join us in building the future of crypto."
+primary_cta:
+ url: "/contact"
+ text: "Get in Touch"
+---
+
+
+
Who We Are
+
Binary Builders is a crypto-native company building at the frontier of decentralized technology. Founded by a team of experienced developers and builders, we combine deep technical expertise with a passion for innovation to create products and infrastructure that push the industry forward.
+
+
+
+
+
+
What We Believe
+
We believe in growing the pie -- creating opportunities that enhance value for all participants. Through building, investing, and advising, we aim to foster an ecosystem where new teams can emerge and established players can continue to innovate.
+
+
+
+
+
+
Where We're Going
+
We're focused on what matters: building great products, backing exceptional teams, and contributing to an open, accessible, and efficient crypto ecosystem. Our global team brings together diverse perspectives and expertise, united by a shared conviction that this technology will reshape how the world works.
+
diff --git a/content/work.md b/content/work.md
new file mode 100644
index 0000000..3a3f340
--- /dev/null
+++ b/content/work.md
@@ -0,0 +1,55 @@
+---
+title: "Work"
+description: "What we've built, backed, and contributed to."
+layout: "work"
+capabilities:
+ - title: "System Architecture"
+ description: "Robust distributed systems with a focus on security, scalability, and performance across multiple blockchain architectures."
+ - title: "Protocol Engineering"
+ description: "Secure and efficient protocols that power decentralized applications. We specialize in modular, interoperable solutions."
+ - title: "Scalability Solutions"
+ description: "High-performance scaling solutions including layer-2 solutions, rollups, and innovative consensus mechanisms."
+ - title: "Security & Auditing"
+ description: "Rigorous security practices and thorough audits to ensure the integrity of blockchain systems."
+sections:
+ - title: "Work"
+ description: "Products and infrastructure we've built."
+ items:
+ - name: "Cosmos SDK"
+ description: "Core maintainers of the Cosmos SDK for 3+ years. We were the team behind its development for the last six years, building out critical infrastructure and owning the roadmap."
+ url: "https://github.com/cosmos/cosmos-sdk"
+ - name: "IBC"
+ description: "Helped develop the Inter-Blockchain Communication protocol for 2+ years. Our team includes previous IBC leads with deep experience in cross-chain communication."
+ url: "https://github.com/cosmos/ibc-go"
+ - name: "Evolve"
+ description: "Current core maintainers of Evolve (EV.xyz), a rollup framework on Celestia that supports different execution environments including Reth, Cosmos SDK, and a custom Rust execution environment."
+ url: "https://ev.xyz"
+ - name: "Numia"
+ description: "A blockchain data analytics provider that we built from the ground up and spun out as an independent company."
+ url: "https://numia.xyz"
+ - title: "Teams We've Worked With"
+ description: "Protocol engineering, architecture, and technical advisory for leading teams."
+ items:
+ - name: "dYdX"
+ description: "Helped build and ship the dYdX v4 chain, migrating from Ethereum to a sovereign Cosmos SDK appchain."
+ url: "https://dydx.exchange"
+ - name: "Celestia"
+ description: "Core contributions to Celestia's modular blockchain architecture and ecosystem growth."
+ url: "https://celestia.org"
+ logo: "/images/logos/celestia-text.svg"
+ - name: "Nillion"
+ description: "Technical advisory and infrastructure support for Nillion's blind computation network."
+ url: "https://nillion.com"
+ logo: "/images/logos/nillion-text.svg"
+ - name: "Interchain Foundation"
+ description: "Long-standing partnership maintaining and evolving core Cosmos infrastructure."
+ url: "https://interchain.io"
+ - name: "Collect"
+ description: "Technical development for Collect's NFT marketplace for Disney collectibles."
+testimonials: true
+cta_title: "Work With Us"
+cta_description: "Have a project or idea? We'd love to hear about it."
+primary_cta:
+ url: "/contact"
+ text: "Get in Touch"
+---
diff --git a/content/writing/_index.md b/content/writing/_index.md
new file mode 100644
index 0000000..641c83c
--- /dev/null
+++ b/content/writing/_index.md
@@ -0,0 +1,5 @@
+---
+title: "Writing"
+description: "Thoughts on crypto, technology, and building."
+layout: "list"
+---
diff --git a/content/writing/a-new-direction.md b/content/writing/a-new-direction.md
new file mode 100644
index 0000000..be0f7b9
--- /dev/null
+++ b/content/writing/a-new-direction.md
@@ -0,0 +1,35 @@
+---
+title: "A New Direction"
+date: 2025-01-03
+lastmod: 2025-01-03
+layout: "post"
+categories: ["Ecosystem", "Celestia"]
+tags: ["Updates", "Announcement", "Rollups"]
+highlighted: true
+draft: false
+image: "/images/blog/2025/a-new-direction.jpg"
+description: "After working in the epicenter of the Cosmos ecosystem for 6 years, we are taking a new direction with Binary Builders."
+author: "Marko Baricevic"
+---
+
+After working in the epicenter of the Cosmos ecosystem for 6 years, I have decided not to continue down the path the ICF is taking. After being at the center of it all for so long I wanted a change of scenery and pace. Cosmos has slowed down and innovation, while still present, is not in the areas I see the future of blockchain going.
+
+I joined for the early vision of Cosmos, one where applications limited in throughput and computation (due to a VM) could build their own chain and define their own constraints. Application developers then began building sovereign chains because there was a premium when raising money for building L1s. This has led to a proliferation of chains launching without market validation. There were countless chains launched with high inflation that ended up robbing the token holders of value since the product was not yet figured out.
+
+Over the past year I took a step back to think about the future of blockchain as a whole. I began to look at the Cosmos vision differently. AppChains are the correct vision, but how Cosmos does it creates silos. Think of cities with walls and IBC is a tunnel through the wall. Are cities with walls and small tunnels the final destination for Blockchain?
+
+The Cosmos Appchain vision was a step in the right direction. It ushered in a new era of blockchains, allowing developers to build complex applications without sharing compute with other applications. Cosmos's most powerful feature is sovereignty. Sovereignty allows users to build their own application and scale it how they want. However, there are two parts to sovereignty, execution and security. All anyone adopting the appchain thesis wants is sovereign execution, but only a few want sovereign security. Cosmos groups sovereignty into an omnibus, while sovereignty can be broken down based on user needs.
+
+The rollup world has adopted sovereign execution as the main selling point. Security is adopted through different means, verification and block production. The rollup world adopted the fragmentation and isolation of chains from Cosmos. While the ecosystems can be unified, the fragmentation of liquidity and users is harder.
+
+This has led me to the question, can sovereign execution be standalone and created in a way that offers users synchronous composability? Thus, recreating the same UX as a L1?
+
+There are a few designs working towards this direction, specifically those around Based Rollups, Jam from Polkadot and finally Lazy Bridging from Celestia. While the designs of these three areas are overlapping, but not exactly the same, they combine interesting components that usher in a new era of blockchain applications.
+
+As for myself and Binary, we will be moving closer to Celestia. The Celestia team is pushing forward in the direction that we believe will enable the next generation of applications. We are excited to also accelerate the roadmap of Celestia and the vision that Mustafa, Ismail and John have set out. This transition marks an important step in our journey as builders. While we're stepping back from core maintenance of the Cosmos SDK, which has been a significant part of our work, we see tremendous opportunity in contributing to the next era of blockchain.
+
+Celestia is just the first step in our new direction. We have several exciting projects planned that will leverage our experience in blockchain development, system design and product development. We'll be announcing these projects as they materialize, each focusing on pushing the boundaries of how users interact with blockchains.
+
+If you are interested in working with Binary Builders, reach out, marko@binary.builders or onur@binary.builders. We are happy to help you and your team in using the Cosmos SDK and its libraries to build your application and more.
+
+Stay tuned for future product announcements by following [https://x.com/binary_builders](https://x.com/binary_builders).
\ No newline at end of file
diff --git a/content/writing/a-new-fresh-look.md b/content/writing/a-new-fresh-look.md
new file mode 100644
index 0000000..faf4458
--- /dev/null
+++ b/content/writing/a-new-fresh-look.md
@@ -0,0 +1,24 @@
+---
+title: "A new fresh look"
+date: 2025-03-11
+lastmod: 2025-03-11
+layout: "post"
+categories: ["Company", "Website"]
+tags: ["Design", "Updates", "Website"]
+highlighted: true
+draft: false
+image: "/images/blog/2025/a-new-fresh-look.png"
+description: "We've given our website a fresh new look - simple, clean, and straight to the point."
+author: "Onur Akpolat"
+---
+We just launched our redesigned website, and wanted to share a quick update about it.
+
+We felt it was time to refresh our online presence. Our new site strips away the unnecessary and focuses on what really matters - showing you who we are and what we do in the blockchain space.
+
+We went back to basics with a clean, straightforward approach that makes it easier to find information about our services, team, and projects.
+
+The site is now more intuitive to navigate with clear, jargon-free content. We believe in keeping things simple and direct.
+
+This refresh is simply about making things better for you - our visitors, partners, and community. No grand claims about revolutionizing the industry, just a clean, functional site that does its job well.
+
+Check it out and let us know what you think. And if you want to stay updated with what we're building, follow us on [X](https://x.com/binary_builders).
\ No newline at end of file
diff --git a/content/writing/clob-wars-competition-landscape.md b/content/writing/clob-wars-competition-landscape.md
new file mode 100644
index 0000000..3cc18d2
--- /dev/null
+++ b/content/writing/clob-wars-competition-landscape.md
@@ -0,0 +1,217 @@
+---
+title: "Competition and Environment in the CLOB Space"
+date: 2025-07-25
+lastmod: 2025-07-25
+layout: "post"
+categories: ["Analysis", "DeFi"]
+tags: ["CLOB", "DEX", "Trading", "DeFi", "Infrastructure"]
+highlighted: true
+draft: false
+image: "/images/blog/2025/CLOB.png"
+description: "The CLOB wars are heating up with Hyperliquid's dominance being challenged by innovative projects like Bullet, GTE, and Hibachi. Explore the competitive landscape, opportunities for builders, and why CLOBs represent a return to blockchain's fundamental value propositions."
+author: "Binary Research"
+---
+
+*TLDR: The CLOB wars are far from over. The competitive landscape is heating up, and several projects aim to offer unique value propositions regarding privacy, token lifecycles, and DeFi and collateral integrations. There is ample opportunity to build infrastructure on top and around CLOB DEXs and expand CLOB products to the existing distribution networks of TradFi and FinTech firms. Overall, the growing CLOB sector significantly contributes to the trends of using zk proofs and blockchains as backend infra instead of "crypto-first" products.*
+
+## What are CLOBs?
+
+Central Limit Order Books (CLOBs) are a trading mechanism that gathers buy orders (bids) and sell orders (asks). Contrary to AMMs, which span liquidity evenly across a given price range, CLOBs enable traders to express concrete price preferences. Consequently, it is easier to provide deep liquidity around the current asset price with better capital efficiency.
+
+
+
+Basic mechanism of a Central Limit Order Book (CLOB) ([https://www.researchgate.net/figure/Graphical-representation-of-the-Limit-Order-Book_fig3_284900784](https://www.researchgate.net/figure/Graphical-representation-of-the-Limit-Order-Book_fig3_284900784)).
+
+
+
+Basic mechanism of an Automated Market Making (AMM) DEX ([https://collectiveshift.io/defi/amm-guide/](https://collectiveshift.io/defi/amm-guide/))
+
+However, the slow block times and inability to adjust orders on widespread L1s in the 2020 DeFi Summer led to a pivot to AMMs. AMMs worked great to democratize liquidity provision (LPing) for popular pools and to bootstrap liquidity for long-tail assets. Yet, they came at the cost of capital inefficiency and LPers and traders being subject to arbitrageurs and MEV extraction.
+
+While perp DEXs like dydx revived CLOBs on chain, they did not have a breakthrough until the [rise of Hyperliquid in 2024](https://defillama.com/protocol/perps/hyperliquid).
+
+## Hyperliquid.
+
+Hyperliquid was the first on-chain CLOB that allowed you to sign your order tx faster than $HYPE maxis can sign their Tweets with "Hyperliquid."
+
+Hyperliquid currently supports up to [200,000 orders/second](https://hyperliquid.gitbook.io/hyperliquid-docs/hypercore/overview) and has a median block time of >200 milliseconds. These capabilities make it competitive with the user experience of any CEX.
+
+Besides its speed, Hyperliquid offers a more compelling UI than any of its previous competitors, provides a broad selection of assets to trade, and makes "market making" accessible to the average user through its [$HLP vault](https://app.hyperliquid.xyz/vaults/0xdfc24b077bc1425ad1dea75bcb6f8158e10df303).
+
+Among its breakthrough innovations are:
+
+- The first fully on-chain perp CLOB orderbook
+- Gas-free trading
+- Fast order submission and cancellations
+
+Over the last months, Hyperliquid has consistently captured most of the [perp DEX trading volume](https://defillama.com/perps).
+
+## hyperCompetition
+
+We currently identify four key projects in the CLOB competitive landscape that either dominate through usage or work on unique value propositions:
+
+- Hyperliquid
+- Bullet on their Solana L2
+- GTE on MegaETH
+- Hibachi on Celestia
+
+
+
+### Bullet
+
+Bullet is built on top of Solana and the L1´s first network extension. In simple terms, Bullet is building a trading-optimized execution layer-2 with 2ms latency, but it uses Solana for settlement, consensus, and data availability. Zk proofs are used to ensure fairness and verifiability when ordering transactions.
+
+A distinctive feature of Bullet is users´ ability to use major Solana ecosystem assets as cross-collateral. While Hyperliquid offers cross-margin between open positions, a broad variety of cross-collateralization of major liquid assets is yet to be seen. Given the memecoin-heavy portfolio allocation of the average Solana degen, the ability to use them as collateral for perps trading could be a major value proposition from Bullet.
+
+Similar to Hyperliquid, Bullet offers one-click trading. Besides that, Bullet plans to offer natively integrated lending and vaults. These DeFi integrations into the exchange can be interpreted as a competition attempt to HyperEVM, betting on a smoother UX, less friction, and more than two orders of magnitude faster speed.
+
+Finally, Bullet wants to offer direct fiat on-ramps to the app. A successful integration of credit cards or similar vehicles may offer another unique selling point (USP), assuming that the average Solana perps user has more wealth off-chain compared to DeFi OGs in the larger EVM eco.
+
+The $BULLET token (formerly $ZEX) is used for gas fees and staking.
+
+Bullet is currently in testnet: [https://www.bullet.xyz/](https://www.bullet.xyz/).
+
+Having played around with the Bullet testnet a bit, it shows a competitive UX and trading experience. Its resilience is yet to be proven once mainnet is live, but Bullet is a CLOB project worth keeping an eye on.
+
+### GTE
+
+GTE is a DEX built on MegaETH that unifies an AMM, spot CLOB, and perps. Its core USP is the vertical integration from TGEing on GTE to migrating to their AMM and being traded on the CLOB once there is sufficient liquidity. Imagine the flow from a token being created on Solana´s Pump.fun, then having a liquidity pool on Raydium, and being traded on Jupiter, but all-in-one.
+
+The main challenge for traction is to recreate the appetite to launch tokens that we have seen on Solana over the past 12 months. If nobody is willing to provide liquidity for these newly launched assets, the vertical integration from TGE to CLOB remains a cool innovation but will unlikely become the hub for traders and market makers.
+
+GTE aims to offer a latency of only 1ms - the fastest horse in the CLOB race we have seen so far.
+
+### Hibachi
+
+Hibachi is the first CLOB DEX to put privacy features at the core of its value proposition. Since the late May/early June James Wynn saga on Hyperliquid, all positions being publicly visible has become a growing concern for large traders and institutions.
+
+Zk proofs allow Hibachi and validators to verify correct exchange logic without revealing individual user data. Orders are matched off-chain, resulting in post-trade privacy. The state updates are then posted to Celestia DA (data availability). This flow aims to find the best trade-off between preserving privacy without sacrificing latency and cost (which would be the case for full encryption during order matching).
+
+When diving into Hibachi, it makes sense to go on a brief "CLOBs on Blobs" detour. The narrative has recently gained traction among the modular and Celestia communities. It essentially describes a path to scale frequently updated and data-intensive CLOBs by storing data off-chain but verifying it on-chain.
+
+We can understand Blobs as large data buckets, e.g., for the large data chunks coming from a CLOB with hundreds of submitted orders and trades per second. Their integrity is subsequently verified with zk proofs, and the proof is posted on-chain.
+
+### Honorable Mentions
+
+Besides Bullet, GTE, and Hibachi, the CLOB landscape includes some honorable mentions - from newly built apps to OG projects.
+
+- **Rise Chain**
+ - Rise Chain is an EVM L2 aiming to compete with GTE's 1ms latency by using "shreds" instead of discrete blocks. It is focused on institutional trading applications and is currently in testnet.
+- **Ostium**
+ - Ostium is an RWA-focused DEX on Arbitrum that offers perp-like exposure on commodities, fx, and equities. In contrast to the other projects mentioned, it does not operate on a CLOB but on a shared liquidity layer via a unified market making vault. Still, Ostium is worth observing to follow the evolution of CLOBs vs. shared liquidity with tokenized equities becoming available on-chain.
+- **Jupiter**
+ - Like Ostium, Jupiter utilizes liquidity not from a CLOB but from a liquidity vault, $JLP. Jupiter currently dominates Drift in volume and generated fees. It remains to be seen if Bullet can establish CLOB dominance on Solana.
+- **Drift**
+ - Drift is Jupiter's CLOB perp DEX competitor in the Solana ecosystem. While it has less liquidity and volume than Jupiter, Drift offers a much broader variety of assets.
+- **Aevo**
+ - Aevo is an unfortunate example of how CLOB DEXs get farmed for their airdrop and are abandoned right after. Its [daily volume](https://defillama.com/protocol/perps/aevo) has dropped from >$1bn in April 2024 to single-digit millions in summer 2025.
+- **Dydx**
+ - Finally, we have dydx, the OG CLOB perp DEX. While being the first project to bring CLOB perps on-chain at scale, dydx has had challenges to match the product innovation and UI improvements that Hyperliquid brought to the table. [Daily trading volumes](https://defillama.com/protocol/perps/dydx) of >$1bn in late 2021 have decreased to low nine digits in 2025.
+
+## How Sustainable Are CLOB DEXs' Revenue Models?
+
+In the past, it has been prudent to bet against the sustainability of CLOB DEX volume and generated fees. The rise of dydx was sparked by the $DYDX airdrop, and Aevo's hype was fueled by its imminent airdrop campaign. So far, Hyperliquid is the only CLOB DEX that has kept users loyal for longer than a few weeks.
+
+### Hyperliquid's Dominance
+
+Analyzing the current competitive landscape, Hyperliquid seems hard to dethrone. The project was the first to reach a level of UI, liquidity, and scale that offered a product suite compelling enough to stay even after receiving a six-digit $HYPE airdrop. While on-ramping friction has not been eliminated, permissionless participation in perps trading is a straightforward value proposition (particularly for US users).
+
+Hyperliquid clearly dominates fee generation with $700mm annualized, leaving a large gap to the likes of Jupiter with $50mm, and Drift and dydx with $13mm each.
+
+### Quo Vadis Trading Fees?
+
+CLOB DEX fees are generated from trading fees. Historically, trading fees are a race to the bottom with friction and infrastructure costs decreasing. The meta-countertrend is that we are living in a hyper-financialized world with speculation and trading activities on a steady uptrend.
+
+FinTech brokers like Robinhood do not charge direct commissions for trades but receive payment for orderflow from market makers that execute their customers' orders.
+
+For DEXs, trading fees have been incentivized through token emissions in the past. However, none of these "zero-fee" models are sustainable. With on-chain trading growing and low fees that barely impact small- and medium-sized positions, it is reasonable to expect that CLOB DEXs will not struggle to generate revenue shortly.
+
+Hyperliquid has managed to accrue revenue through token listing fees (HIP-1). While lucrative in the short term, it is hard to uphold the demand for token launches in the long run with much cheaper token launchpads available.
+
+The strongest bear case for CLOB DEX trading fees is a lasting crypto bear market, and participants simply losing interest in the assets available to trade, resulting in lower volumes.
+
+Additionally, a complete absence of token incentives or anticipated airdrops can make it difficult to bootstrap user growth.
+
+### A Brief Outlook On On-chain Trading
+
+The potential improvements offered by upcoming projects in terms of latency and liquidity are incremental and hardly relevant for the average retail or protail user. However, tapping into the capital of other chain ecosystems and offering privacy features can take meaningful CLOB DEX market share away from Hyperliquid over time.
+
+Given continuous improvements and developments of on-chain capital markets, e.g., xStocks ([https://x.com/xStocksFi](https://x.com/xStocksFi)) going live on Solana, or Robinhood announcing tokenized stocks, it is reasonable to assume that the CLOB DEX vs. CEX market share will continue to grow.
+
+This trend does not necessarily mean that more revenue and fees will accrue to decentralized projects and their token holders, but rather that more and more trading will happen on blockchain rails.
+
+## Opportunities To Build
+
+In a world where everything gets financialized, there is an opportunity anywhere where we can enable easier access to degeneracy and leverage.
+
+This is not a call to build the 11th CLOB DEX that has emerged over the last months. Building a robust trading engine, a practical UI, and attracting deep liquidity are incredibly difficult. Additionally, Hyperliquid's success has made the CLOB DEX landscape (hyper)competitive.
+
+Instead, we can identify more opportunities in tooling, unlocking new distribution channels, and new asset classes for CLOB DEXs.
+
+### 1. Bringing new asset classes on-chain
+
+[Robinhood´s ETH CC announcement](https://newsroom.aboutrobinhood.com/robinhood-launches-stock-tokens-reveals-layer-2-blockchain-and-expands-crypto-suite-in-eu-and-us-with-perpetual-futures-and-staking/) to offer stock tokens and crypto perps is the latest confirmation of the thesis that finance will increasingly move on-chain. If you are a technical builder, consider how you can build puzzle pieces in the stack that provide TradFi players and FinTechs value.
+
+TradFi has existing distribution channels, and crypto-native shops have unique technical competencies. The TAM for autistic DeFi Degens is not 8bn people - the TAM for equities, savings accounts, and other existing financial products to use crypto as underlying infra, however, gets much closer to that.
+
+Crypto-native CLOBs should also attempt to unlock additional asset classes. However, they will face an uphill battle for distribution, and regulators are certainly not aligned with total permissionlessness and the absence of KYC.
+
+### 2. Data and Analytics Platforms
+
+CLOB DEXs posting publicly available data on-chain offer new opportunities to build better analytics and data products than TradFi markets. Financial markets are becoming increasingly reflexive and driven by social metrics. Offering on-chain insights is the best way to capitalize on these developments, both from an institutional and retail perspective.
+
+### 3. Mobile UX and Gamification
+
+A key factor to Robinhood's and other neobrokers' success is their ability to simplify and gamify investing. Building mobile-centric UIs for CLOB DEXs can significantly increase casual retail adoption and combat crypto's distribution problem.
+
+### 4. Speculation Infrastructure and Integrations
+
+You are receiving 2% cashback on a $200 grocery shopping bill? Why not use that to fund a 100x $BTC long? Just claimed $5 in staking rewards on your 10 $SOL staked? Time to stock the margin of your 50x $FARTCOIN position.
+
+An increasingly short-term-minded society that is desperately looking for (the illusion of) asymmetric upside will devour frictionless access to GambleFi. Integrating existing on-chain or TradFi financial products into CLOB DEX leverage trading is another opportunity to grow retail adoption and benefit from a rather fee-insensitive customer group.
+
+### 5. "Serious" Money Legos
+
+Finally, CLOB valuations can benefit from ecosystem premia. The $HYPE runup is a prime example of ascribing value to a great application magnified by optimistic expectations around the Hyperliquid ecosystem growth.
+
+Native integrations of DeFi primitives like lending, pre-launch token markets, and yield trading can increase capital efficiency and lower the entry barriers for existing on-chain participants to use CLOB DEXs. Imagine being able to use your lent out $ETH on Morpho or your Uniswap LP position as collateral to get additional exposure to your latest favorite alt.
+
+Another vertical could be building a managed vault with social trading features. Users can tap into prediction and yield trading markets to bet on individual vaults' returns or lock in perpetual futures' funding rates.
+
+### Where to Build
+
+CLOB DEXs require fast execution and produce large data sets. Consequently, DA solutions like Celestia or EigenLayer seem primed to capture the growth of the CLOB sector, unless new projects decide to build their own L1 or L1 extension (like Hyperliquid or Bullet).
+
+The CLOB wars may have created another round of the 2024 heatedly discussed monolithic vs. modular approaches to chains and applications. Tapping into modular ecosystems can significantly scale performance and decrease development costs. However, cross-chain abstraction is not yet at a stage where liquidity can seamlessly transition over to modular ecosystems. Offering blobs as a tool to scale data storage can additionally attract CLOB projects.
+
+## Do CLOBs Offer Upside for Retail?
+
+CLOB DEXs are not reserved for whales, HFT funds, or institutions. There are significant UX improvements and upside for retail and protail traders.
+
+The $DYDX and $HYPE airdrops are among the largest one-time wealth creation events in the industry. Hyperliquid has set aside another double-digit percentage of the $HYPE token supply for upcoming airdrops. Given the competitive fight for users and distribution, it is reasonable to assume that upcoming CLOB DEXs will offer attractive upside for early users. Assuming that the CLOB Wars will remain at the center of attention for a few more months, retail users can expect a positive payout from early participation.
+
+Of the CLOB projects covered in this report, Bullet has an upcoming testnet trading cup: [https://docs.bullet.xyz/campaigns/testnet-trading-cup](https://docs.bullet.xyz/campaigns/testnet-trading-cup), and Ostium has an ongoing points program: [https://ostium.app/points](https://ostium.app/points).
+
+## Have CLOBs Solved Actual Industry Challenges?
+
+Over the past months, our industry has experienced a meaning crisis over the actual utility and seemingly stagnating innovation in crypto. However, CLOBs are a major return to the fundamental value propositions of blockchains: permissionlessness, verifiability, and immutability.
+
+Only Bitcoin as a system hedge and stablecoins as permissionless access to the USD have achieved more PMF than CLOBs. Before CLOBs emerging as an individual sector, we have abstractly described them as "speculation infra." By now, we can identify a clear distinction between innovative and robust products and short-lived metas.
+
+Ultimately, the utility and PMF of financial primitives are judged by their capital inflows and ability to sustainably generate revenues. They do not have to solve any "real-world problem" in the physical sense to be considered useful. A major reason why the Nasdaq 100 is considered a store of value and more fundamentally valuable than crypto memecoins is because the average Nasdaq investor has a much higher time horizon and constitutes more loyal capital.
+
+That being said, the mid- to long-term success of on-chain CLOB projects is highly influenced by the assets available to trade. If CLOBs offer the best access vehicle to assets with a compelling story around technological innovation and investors' hopes of asymmetric financial upside, they will flourish. If users lose interest in crypto assets and CLOBs fail to onboard TradFi assets and equities, they will be remembered as another short-term hyped narrative.
+
+## Further Reads
+
+- Gelato on the coming DEX CLOB Wars: [https://www.gelato.cloud/blog/the-coming-dex-clob-wars-the-history-and-future-of-onchain-clo-bs](https://www.gelato.cloud/blog/the-coming-dex-clob-wars-the-history-and-future-of-onchain-clo-bs)
+- Ben Fisch (Espresso) on Cross-chain CLOBs: [https://x.com/benafisch/status/1935045344943075670](https://x.com/benafisch/status/1935045344943075670)
+- Jae Haery (Succinct) deep dive into CLOBs on Blobs: [https://x.com/0xjaehaerys/status/1935720081318654288?s=61](https://x.com/0xjaehaerys/status/1935720081318654288?s=61)
+- Alyssa on CLOBs on Blobs: [https://x.com/alyssaonchain/status/1937200223853609412](https://x.com/alyssaonchain/status/1937200223853609412)
+- Validatus on the CLOBs on Blobs thesis: [https://x.com/stakeingermany/status/1936008646439190949](https://x.com/stakeingermany/status/1936008646439190949)
+- Bedlam Research on Builder-Deployed Perps on Hyperliquid: [https://www.bedlamresear.ch/posts/builder-deployed-perps/](https://www.bedlamresear.ch/posts/builder-deployed-perps/)
+- The Rollup on CLOBs on Blobs: [https://therollup.co/research/the-clobs-on-blobs-opportunity](https://therollup.co/research/the-clobs-on-blobs-opportunity)
+
+---
+
+*Join Binary Builders as we explore the infrastructure shaping the future of decentralized finance. Follow our journey on [X](https://x.com/binarybuilders_) and dive deeper into blockchain innovation.*
\ No newline at end of file
diff --git a/content/writing/odyssey-charting-new-course.md b/content/writing/odyssey-charting-new-course.md
new file mode 100644
index 0000000..158d7c4
--- /dev/null
+++ b/content/writing/odyssey-charting-new-course.md
@@ -0,0 +1,98 @@
+---
+title: "Odyssey - A New Course in Building apps"
+date: 2025-04-07
+highlighted: true
+draft: false
+description: "Introducing Odyssey - our new initiative focused on rapid product development and innovation in the tech space."
+categories: ["announcements", "odyssey"]
+tags: ["innovation", "product development", "tech", "odyssey"]
+image: "/images/blog/2025/odyssey-launch.png"
+thumbnail: "/images/blog/2025/odyssey-launch.png"
+author: "Onur Akpolat"
+---
+
+*The opportunity to build has never been greater.*
+
+Today, we embark on a new journey - Odyssey. This initiative represents our commitment to pushing the boundaries of what's possible in technology, focusing on rapid innovation and product development. In this post, we'll share our vision, theses, and approach to building in this dynamic landscape.
+
+
+
+## What is Odyssey?
+
+Odyssey is our framework for building at the intersection of AI & crypto. We're creating products in public, using AI tools to accelerate our process, and sharing insights as we go. This manifests in three key outputs:
+
+1. products shipped rapidly
+2. a podcast documenting our journey and key learnings
+3. a community of like-minded builders.
+
+Odyssey represents both our methodology and the journey itself—a practical approach to building better and faster in today's landscape.
+
+What are our underlying theses on which sectors to build in, and what is our framework and approach to shipping products faster and better than larger and heavily funded teams?
+
+
+
+## Our Theses and Their Implications
+
+1. **The bull market is not over.**
+
+We consider it more likely than not that the true mania and excitement are yet to come. May prices peak in Q4 ´25 or Q1 ´26, we strongly believe that it is still worthwhile building consumer-focused applications and tooling. We have not seen the retail influx fueled by enthusiasm and speculation that will ultimately accompany us to the next wave of adoption and temporary peak.
+
+The current market conditions present a unique opportunity for builders. While institutional adoption has grown significantly, the true retail wave - characterized by widespread enthusiasm and speculative interest - remains on the horizon. This creates a perfect environment for building products that will serve both current needs and future demand.
+
+2. **The era of L1 premia is over.**
+
+For the longest time, market participants have focused on chains and gas currencies. Due to progress in transaction throughput and UX, underlying chains have become commoditized and apps had to differentiate themselves to capture value. Therefore, community excitement, loyalty, and monetization will increasingly shift up to the application layer.
+
+This shift represents a fundamental change in how value is created and captured in the ecosystem. As infrastructure becomes more robust and standardized, the focus moves to creating compelling user experiences and solving real-world problems. The winners of this cycle will be those who can build applications that resonate with users and create sustainable value.
+
+3. **AI enables us to research theses and build MVPs faster than ever before.**
+
+Small and agile teams building apps have an advantage over well-funded, large, but slower-moving teams. Tools like Cursor, Claude, Grok, and ChatGPT allow us to skip wasted resources on overhead and lever engineers´ code output by an order of magnitude. Consequently, we can have simple prototypes ready within days of validating a thesis.
+
+The rapid advancement of AI tools has fundamentally changed the development landscape. What previously required large teams and months of development can now be accomplished by small, focused groups in weeks. This democratization of development capabilities allows us to iterate quickly, test hypotheses, and pivot when necessary - all while maintaining high standards of quality and security.
+
+4. **The only three established use cases of crypto are (I) Bitcoin as a system hedge, (II) stablecoins for permissionless fiat transfer across geographies, and (III) speculation infrastructure for open and unfiltered markets.**
+
+The largest national economy on planet Earth has officially recognized Bitcoin. Large TradFi institutions, multi-billion-$ FinTechs, and major VCs are unison bullish stablecoins. Speculation infrastructure is more dependent on economic cyclicality and liquidity, yet it will prevail and grow in the mid-to-long term. The stablecoin sector is likely to dominate this cycle in absolute ecosystem growth.
+
+These established use cases provide a solid foundation for innovation. While we remain open to exploring new applications, we focus our efforts on areas where we can build upon these proven foundations, creating products that enhance and extend their capabilities.
+
+5. **Builders have to be more iterative and agile than before due to faster trend dynamics and sentiment shifts.**
+
+Unless you are building in an established sector, it has become very challenging to simply build a product and push it to market without being hyper-aware of changes in user demands. The lifespan of mini-cycles has decreased and mostly focused on only one or two sub-sectors.
+
+This reality requires a new approach to product development - one that emphasizes rapid iteration, continuous feedback, and the ability to pivot quickly when market conditions change. Success in this environment depends on our ability to stay attuned to market signals and user needs while maintaining the flexibility to adapt our strategies accordingly.
+
+## The Odyssey Philosophy
+
+Our approach to building centers around the following core principles:
+
+1. **Quick time-to-value.**
+
+We rather ship an imperfect MVP than tweak product details for months while not even having demand validation. This philosophy stems from our belief that real user feedback is more valuable than theoretical perfection. By getting products into users' hands quickly, we can learn, iterate, and improve based on actual usage patterns and feedback.
+
+2. **Be hyper-aware of industry trends and time preferences.**
+
+If a product does not get our expected traction, we will move on and adapt to changing user demands. Similarly, we double down on a project once we see the potential for sustained growth and long-term viability for the project´s sector.
+
+This approach requires constant market awareness and the ability to make difficult decisions quickly. We maintain a portfolio mindset, recognizing that not every project will succeed, but each provides valuable lessons that inform our future efforts.
+
+3. **AI-Enabled**
+
+We strongly believe in the technical advancements enabled by cutting-edge AI models and their utilization in business and building processes. Our team actively explores and integrates AI tools across our development pipeline, from research and ideation to implementation and testing.
+
+4. **Build in public.**
+
+Contemporary products need to quickly adapt to changing trends and demands. There is no better way to stay on top of developments than by proactively interacting with community members and publicly sharing our building process.
+
+We believe in transparency and open communication. By documenting our journey, we not only create a valuable resource for others but also hold ourselves accountable to our principles and goals.
+
+## Become Part of the Journey
+
+- Follow Binary on [X](https://twitter.com/binary_builders)
+- Follow Odyssey on [X](https://x.com/OdysseyBIS)
+- Listen to us on [Spotify](https://open.spotify.com/show/4SKLuK9iE3wVITs50xAGPu)
+- Listen to us on [Apple](https://podcasts.apple.com/de/podcast/odyssey/id1807255112)
+- Join our Community on [Telegram](https://t.me/OdysseyBiS)
+
+*Always keep building*
\ No newline at end of file
diff --git a/content/writing/olympus-rises-new-era.md b/content/writing/olympus-rises-new-era.md
new file mode 100644
index 0000000..1d8c6aa
--- /dev/null
+++ b/content/writing/olympus-rises-new-era.md
@@ -0,0 +1,60 @@
+---
+title: "Olympus Rises: A New Era for the Cosmos SDK"
+date: 2024-09-18
+lastmod: 2024-09-18
+layout: "post"
+categories: ["Cosmos-SDK"]
+tags: ["SDK", "Updates"]
+highlighted: false
+draft: false
+image: "/images/blog/2024/olympus.webp"
+description: "Binary Builders, led by Onur Akpolat and Marko since 2022, is a technology company that focuses on building, growing, and operating blockchains."
+author: "Marko Baricevic"
+---
+
+
+We are thrilled to announce the latest release of the Cosmos SDK, **Olympus (v0.52)**. This release marks a significant evolution in the SDK, bringing a host of new features, improvements, and performance enhancements.
+
+## The Journey So Far
+
+The Cosmos SDK was conceived as a modular framework for building application-specific blockchains, with the vision of enabling seamless connections between chains via IBC. From the early days of development, starting in 2018, the rapidly evolving blockchain space made it challenging to predict its direction. During this period, the team focused on building a robust foundation for the SDK, anticipating current needs and ensuring flexibility to accommodate future trends.
+
+By 2022, it became clear that the industry was moving toward a modular development approach. This realization led the team to comprehensively evaluate and refine the Cosmos SDK to more than just a collection of modules into a versatile middleware capable of supporting a wide range of use cases.
+
+## Olympus: A New Era
+
+The latest release of Cosmos SDK, Olympus, represents the culmination of these efforts, bringing several key improvements and new features:
+
+### Separation of Core Components
+
+One of the major advancements in Olympus is the separation of the SDK into distinct components. This allows developers to utilize the core of the Cosmos SDK independently from the predefined modules like staking, governance, and distribution. This flexibility is crucial for developers looking to build highly customized solutions tailored to their specific needs.
+
+### Protocol Pool
+
+A notable addition in Olympus is the Protocol Pool module, which allows for developer and community funding to be managed natively within the SDK, without the need for vesting accounts. This simplifies the funding process and enhances the governance capabilities of blockchain projects using the Cosmos SDK. Learn more about `x/protocolpool` [here](https://docs.cosmos.network/main/build/modules/protocolpool).
+
+### Governance Overhaul
+
+Governance has been significantly revamped, introducing new proposal types. These changes are designed to enhance the decision-making process within communities, ensuring more robust and transparent governance. Learn more about `x/gov` [here](https://docs.cosmos.network/main/build/modules/gov).
+
+### Accounts Module
+
+The Accounts Module was designed around extending accounts and creating unique experiences for users. We have spent a great deal of time working on this module with a large group of individuals from the ecosystem. By default, the Accounts Module ships with a set of lockup accounts, previously known as vesting accounts, on-chain multisig, and a baseaccount. The Accounts Module will replace the existing x/auth module in the future and allow teams to migrate existing users. Learn more about `x/accounts` [here](https://docs.cosmos.network/main/build/modules/accounts).
+
+### Consensus Key Rotation
+
+The Staking Module went through a redesign to allow consensus key rotation. This allows validators to swap their consensus key without having to spin up a new validator and ask their users to redelegate. Learn more about `x/staking` [here](https://docs.cosmos.network/main/build/modules/staking).
+
+## V2
+
+By adopting Olympus and its new features, developers will be able to migrate to the new version of the Cosmos SDK, v2. By adopting v2 and the various cleanups that were made available, modules can become simpler and depend on less parts of the Cosmos SDK and, potentially, CometBFT. Stay tuned for a detailed blog post on what this enables and what we hope to see from the ecosystem.
+
+## Long Term Support (LTS)
+
+Olympus is the first release of the Cosmos SDK to receive Long Term Support (LTS). This commitment ensures that developers can rely on a stable software environment over the coming years. To know more about the plan for LTS and what it means for users, read the full announcement [here](/blog/announcing-long-term-support-lts).
+
+## Looking Ahead
+
+The Olympus (v0.52) release marks a significant step forward for the SDK. But the journey is far from over. This release lays the groundwork for v2, a new era for the SDK which brings even greater modularity, flexibility, and performance. We remain committed to continuous improvement and innovation, with exciting plans for the future.
+
+Stay tuned for more updates and developments on [X](https://x.com/cosmos_sdk).
\ No newline at end of file
diff --git a/content/writing/picojeet-bitcoin-cycle-prediction.md b/content/writing/picojeet-bitcoin-cycle-prediction.md
new file mode 100644
index 0000000..2f2b226
--- /dev/null
+++ b/content/writing/picojeet-bitcoin-cycle-prediction.md
@@ -0,0 +1,122 @@
+---
+title: "Picojeet: Sell the Pico Top - Advanced Bitcoin Cycle Prediction"
+date: 2025-05-30
+lastmod: 2025-05-30
+layout: "post"
+categories: ["Odyssey", "Product Launch"]
+tags: ["Bitcoin", "AI", "Trading", "Prediction", "Odyssey"]
+highlighted: true
+draft: false
+image: "/images/blog/2025/picojeet-sell-the-pico-top.png"
+description: "Introducing Picojeet, our first Odyssey project - a sophisticated Bitcoin cycle prediction platform that delivers actionable trading signals through advanced analytics and real-time market intelligence."
+author: "Onur Akpolat"
+---
+
+Today marks a significant milestone in our Odyssey journey. We're excited to announce the launch of [Picojeet](https://picojeet.com), our first live project under the Odyssey initiative - a sophisticated Bitcoin cycle prediction platform designed to help traders time their positions with precision.
+
+## The Genesis of Picojeet
+
+As builders deeply embedded in the crypto ecosystem, we've witnessed multiple Bitcoin cycles unfold. Each cycle presents unique patterns, yet underlying mathematical structures remain remarkably consistent. The challenge has always been creating a system that can identify these patterns in real-time and translate them into actionable trading signals.
+
+Picojeet emerged from our thesis that small, agile teams can leverage AI tools to build products faster than large, well-funded organizations. True to our Odyssey philosophy, we went from concept to deployment in weeks, not months.
+
+## What Makes Picojeet Different
+
+### Advanced Cycle Prediction Engine
+
+At the heart of Picojeet lies our proprietary algorithm that analyzes 12+ years of Bitcoin price data, combining multiple analytical approaches:
+
+- **Historical Pattern Analysis**: Studies monthly high values from April 2013 to present
+- **Mathematical Modeling**: Uses exponential growth curves with volatility dampening
+- **Cycle Timing**: Analyzes historical cycle lengths and peak patterns
+- **Market Psychology**: Incorporates retail sentiment via app store rankings
+
+Our current prediction model forecasts a Bitcoin cycle top at **$176,000 within 3-6 months**, based on sophisticated mathematical modeling that accounts for cycle progression, volatility, and historical patterns.
+
+### The Prediction Formula
+
+```
+Predicted Peak = Current Price × Dynamic Growth Factor × Cycle Multiplier × Volatility Dampener
+
+Where:
+- Current Price = $108,700 (real-time)
+- Dynamic Growth Factor = 1.63 (enhanced 63% mid-bull cycle expectation)
+- Cycle Multiplier = f(months_to_peak, phase_progression, historical_patterns)
+- Volatility Dampener = sin(cycle_position) × volatility_constant
+
+Result: $176K predicted cycle top (170-180K target range)
+```
+
+### Comprehensive Analytics Dashboard
+
+Picojeet goes beyond simple price predictions. The platform features:
+
+- **Enhanced Bitcoin Chart**: Real-time visualization with 18-month future predictions
+- **Pi Cycle Top Indicator**: Mathematical convergence analysis
+- **Rainbow Chart Analysis**: Logarithmic price bands with position tracking
+- **NUPL Cycle Timing**: Net Unrealized Profit/Loss analysis
+- **SOPR Analysis**: Spent Output Profit Ratio with forecasting
+- **MVRV Z-Score**: Market Value to Realized Value deviation tracking
+- **Bitcoin Dominance**: Multi-timeframe analysis with ALT season implications
+
+### Innovative App Store Intelligence
+
+One of Picojeet's unique features is its correlation study between crypto app rankings and market psychology. We track real-time positioning of apps like Coinbase, Phantom, and Trust Wallet as retail sentiment indicators. Historical data shows strong correlations between app store positioning and market cycle phases.
+
+## Technical Implementation
+
+Built using our modern tech stack approach:
+
+- **Next.js 15** with App Router for optimal performance
+- **TypeScript 5.0+** for complete type safety
+- **React Query** for intelligent data fetching with caching
+- **Recharts 2.8+** for advanced market data visualization
+- **Multiple API integrations** including CoinGecko, Coinpaprika, and proprietary data sources
+
+The entire platform was developed using AI-assisted coding tools, demonstrating our thesis that small teams can compete with larger organizations through strategic technology adoption.
+
+## AI-Powered Development Process
+
+Picojeet represents a perfect case study in AI-enabled rapid product development. Using tools like Cursor and Claude, we:
+
+- **Accelerated Research**: AI helped analyze historical patterns and validate hypotheses
+- **Streamlined Development**: Code generation and optimization reduced development time by 10x
+- **Enhanced Testing**: Automated testing strategies and edge case identification
+- **Rapid Iteration**: Quick prototyping allowed us to test multiple prediction models
+
+This approach allowed us to ship a production-ready platform in weeks while maintaining high standards of quality and security.
+
+## Current Market Analysis
+
+As of today, Picojeet's analysis indicates:
+
+- **Current Price**: $108,700 (live data)
+- **Predicted Peak**: $176,000
+- **Time to Peak**: 3-6 months (Mid Bull phase analysis)
+- **Confidence Level**: High (based on enhanced cycle progression models)
+- **Current Signal**: ACCUMULATE/HOLD
+- **Cycle Stage**: Mid Bull phase, approaching Late Bull acceleration
+
+The platform provides four distinct trading signals: ACCUMULATE (deep value), HOLD (fair value), DISTRIBUTE (late cycle warning), and SELL (euphoria zones).
+
+## Building in Public
+
+True to our Odyssey principles, we've built Picojeet completely in public. The development process, challenges, and learnings have been documented and shared with our community. This transparency not only creates accountability but also provides valuable insights for other builders exploring similar approaches.
+
+The platform demonstrates our core thesis: that focused teams using modern AI tools can build sophisticated products that compete with well-funded alternatives. Every aspect of Picojeet - from the prediction algorithms to the user interface - was developed with this philosophy in mind.
+
+## What's Next
+
+Picojeet represents just the beginning of our Odyssey journey. As we continue to validate our building methodology and gather user feedback, we're already exploring additional features and complementary products.
+
+The platform will continue evolving based on real user feedback and market conditions. We're particularly interested in expanding the correlation studies between traditional market indicators and on-chain metrics.
+
+## Try Picojeet Today
+
+Visit [picojeet.com](https://picojeet.com) to experience our Bitcoin cycle prediction platform. Whether you're a seasoned trader or new to crypto markets, Picojeet provides the analytical tools and insights to help you navigate Bitcoin's volatile cycles with confidence.
+
+As always, remember that all trading involves risk, and past performance does not guarantee future results. Picojeet is designed to be a powerful tool in your analytical toolkit, but proper risk management remains essential.
+
+---
+
+*Join our journey as we continue building innovative products at the intersection of AI and crypto. Follow our progress on [X](https://x.com/OdysseyBiS) and subscribe to our [podcast](https://open.spotify.com/show/4SKLuK9iE3wVITs50xAGPu) for behind-the-scenes insights from our building process.*
\ No newline at end of file
diff --git a/content/writing/unburdened-by-what-has-been.md b/content/writing/unburdened-by-what-has-been.md
new file mode 100644
index 0000000..73cb40d
--- /dev/null
+++ b/content/writing/unburdened-by-what-has-been.md
@@ -0,0 +1,62 @@
+---
+title: "Unburdened By What Has Been"
+date: 2024-10-10
+lastmod: 2024-10-10
+layout: "post"
+categories: ["Cosmos-SDK"]
+tags: ["SDK", "Updates"]
+highlighted: false
+draft: false
+image: "/images/blog/2024/v2.webp"
+description: "The Cosmos SDK is getting a major overhaul with v2, unburdening developers from the constraints of its monolithic architecture. By splitting the system into a flexible server component and a streamlined state transition function, while revamping storage to work directly with databases, the new design gives developers unprecedented freedom to customize their blockchain applications. This architectural evolution moves away from the rigid ABCI-only approach, allowing integration with various consensus engines and marking a significant step toward a more modular, efficient, and developer-friendly blockchain development ecosystem."
+author: "Marko Baricevic"
+---
+*This Blogpost has originally been published on [Medium](https://medium.com/the-interchain-foundation/unburdened-by-what-has-been-a90cd3febefb)*
+
+The Interchain Stack is one of the most widely used stacks for building sovereign decentralized applications. We’ve already seen hundreds of chains launch, with many more teams preparing to launch in the coming quarters.
+
+In 2023, the Cosmos SDK team took a step back and asked ourselves, “How can we level up the software to provide more freedom for application developers?” This led us down two development avenues: v2 and CrossLang. This article focuses on v2 — stay tuned for more on CrossLang.
+
+## What is v2?
+
+First, let’s understand the current state of the Cosmos SDK. Today, the Cosmos SDK is a semi-modular monolith which is difficult to customize or modify. We have seen many users who want to modify the software ending up in a fork which they then have to maintain over time. Seldom are we able to upstream changes from these forks, as doing so would significantly increase our maintenance burden.
+
+BaseApp is a package that handles all the logic for message passing, state management, communication to CometBFT through ABCI, and transaction execution. However, those who have explored BaseApp may have encountered complexities and questioned why certain elements exist within the code. As user demands for new features continue to grow, BaseApp has become increasingly difficult to maintain. Moreover, the current design does not provide a safe and straightforward way to take advantage of designs evolving from the blockchain space.
+
+Taking into account the limitations of BaseApp and the current Cosmos SDK, we have made the decision to not continue to maintain BaseApp and its surrounding packages past a certain point. Our goal is to foster a more enjoyable development experience and deliver the best and most innovative features to our users. This is where v2 comes into play. v2 is designed with a focus on simplification and maximum customization.
+
+We opted to break BaseApp into two separate components: State Transition Function and Server. The consensus server is the component that drives the application.
+
+
+
+## Server
+Server is the brains of the operation. It houses the client based infrastructure, GRPC & REST, and the connection to the underlying consensus engine. In the past if a user would like to swap consensus engines they were limited to ABCI, in v2 our goal was developer freedom, we removed this limitation. Applications can implement custom consensus engines that directly interact with a state transition function. We are discussing v2 with teams that are working on consensus engines or have them already. These teams are excited about what new offerings they can bring to the ecosystem without needing to work around ABCI. To name a few: Rollkit, Meter.io (recent blog post on ABCI integration), Avalanche (Hyper-SDK), Nethermind (Monomer).
+
+Within the server users have the freedom to customize anything. Users can define custom transaction types and how to decode them, work with any API technology they would like or follow any spec (ETH RPC specification) and custom mempool designs to name a few. As the application above the server does not care for what is going on in the server the freedom for developers is more than what it once was.
+
+## State Transition Function (STF)
+The State Transition Function is where all the execution is handled. It is stateless and does not care about the execution model of the application nor how transactions are encoded. Stf has four methods, DeliverBlock, Query, Validate Transaction and Simulate. Within the state transition function there is gas handling and a cache store for writes and reads that is populated via the required information for the transaction.
+
+The state transition function houses gas metering and a cache store for execution. These implementations are meant to be modified and freely customized to handle custom features.
+
+### DeliverBlock
+DeliverBlock handles the execution of a block. It is given the decoded transaction in block request struct, this struct contains metadata about the block and a database reader. The State Transition Function has no writing capabilities to the underlying storage layer. It will always return a set of changesets that will be handled by the consensus server. The deliver block phase handles: preblock, beginblock, executing the transaction and endblock.
+
+### Query, ValidateTX, and Simulate
+The three methods Query, ValidateTX and Simulate are stateless and light as well. They will execute the requests and return the data to the server allowing for clients to receive responses.
+
+
+
+## Storage
+As part of our v2 endeavor, we also redesigned how storage works. At the start of this process, we sat down to understand the shortcomings of the existing storage system and identified the separation between storage and commitment as a key issue.
+
+In the blockchain space, commitment structures — such as Merkle trees, vector commitments, and accumulators — are used in order to verify execution, make light clients efficient, and in some cases, facilitate communication with external parties like other blockchains.
+
+When thinking about what the state machine cares about, we identified that the state machine can work directly with the underlying database instead of going to a Merkle tree and traversing the tree to get the information. This allows the state machine to take advantage of well designed databases without needing to work off of complex data structures.
+
+Within the v2 design the system is designed with concurrency in mind. By making this a focus we design the system to be multireader and single write controlled by the consensus server. In the purview of storage it only cares about writing once and allowing the state machine to read from the disk as fast as possible.
+
+
+
+## Conclusion
+v2 is designed to simplify and accelerate the state machine, allowing users new levels of freedom that were previously restricted. We are currently in the Testnet phase of this work. If you would like to participate or stress test the new system we invite you to reach out.
\ No newline at end of file
diff --git a/content/writing/we-are-binary-builders.md b/content/writing/we-are-binary-builders.md
new file mode 100644
index 0000000..63af230
--- /dev/null
+++ b/content/writing/we-are-binary-builders.md
@@ -0,0 +1,53 @@
+---
+title: "We are Binary Builders"
+date: 2024-12-23
+lastmod: 2024-12-23
+layout: "post"
+categories: ["Introduction"]
+tags: ["Introduction", "Updates"]
+highlighted: true
+draft: false
+image: "/images/blog/2025/binary-builders.jpg"
+description: "Binary Builders, led by Onur Akpolat and Marko since 2022, is a technology company that focuses on building, growing, and operating blockchains."
+author: "Onur Akpolat"
+---
+
+Today, we introduce ourselves to the world. At our core, we are builders, that bridge between vision and reality. We push the boundaries of technology with a blend of expertise and enthusiasm. Our mission is to create products that bring the industry forward. As leaders, we are dedicated to excellence, driven by passion and enthusiasm to shape the future of crypto and beyond.
+
+We help teams build, grow, and operate. Executed with love and care.
+
+## Build. Grow. Operate.
+
+## Build
+This is where ideas meets relentless execution. As the core developers of the Cosmos SDK, we ensure that hundreds of crypto applications operate securely and efficiently. Our team focuses on continuous improvement and innovation, driving the entire ecosystem forward. We support a diverse range of solutions, adapting beyond any single framework to meet the evolving needs of the industry.
+
+##Grow
+We nurture the best founders and teams. With mentorship from seasoned builders, lectures by industry experts, and access to a strong founder network, we offer comprehensive support. This includes software development, business strategy, marketing, go-to-market strategies, and governance, enabling our partners to succeed on all fronts. Whether it’s access to our builders program or individual consultations, we offer a wide range of services.
+
+We’re not a VC, yet we invest in builders. We supports innovative projects that align with our mission. Its more than just financial backing; its an alliance on eye level to grow together.
+
+## Operate
+We run the software we build and are the backbone of many networks and protocols. Our infrastructure services include validators, nodes, RPC, data indexers and more. These services are crucial for building reliable, secure, and high-performing networks, ensuring robust support for projects of any scale.
+
+## The Team
+Our team fueled by research and engineering, turns complex problems into stable infrastructure and enjoyable user experiences. We value exploration, impact, and reliable systems. We love learning, clear communication, being thorough, and having fun. Operating fully remotely, our team spans Europe and beyond, forming a vibrant mix of cultures, perspectives, and expertise.
+
+Onur and Marko set this journey in motion in 2022. Together we foster a culture that is both technology-driven and people-focused, ensuring our solutions are not only pioneering but also universally enjoyable and accessible.
+
+For a deeper dive into our team’s dynamic backgrounds and individual contributions, we invite you to visit our team page here.
+
+## Grow the pie
+We are believers in “growing the pie.” By having a collaborative environment, we unlock new possibilities and increase the overall value within the ecosystem. This approach not only helps develop cutting-edge solutions but also creates a more equitable industry landscape.
+
+Through initiatives that promote technological advancement and community engagement, we contribute to a thriving crypto environment where new teams can emerge, and established entities can innovate. This ensures that the benefits of crypto are accessible to all.
+
+As technology becomes increasingly essential to the digital economy, we anticipate a future rich with opportunities. This evolution will spawn new projects and level the playing field, fostering a thriving ecosystem that benefits all stakeholders — users, developers, enterprises, networks, and protocols alike.
+
+## Moving forward
+We’re excited for what lies ahead — many opportunities in an expansive and inclusive landscape. Here’s to forging ahead with more groundbreaking projects and shaping a future where the limits are defined only by our collective imagination.
+
+Join us on this exciting journey, as we build the next generation of products with passion, excellence, and fun.
+
+Interested in shaping the future with Binary Builders? Learn more by visiting our website, subscribing to our blog, and following us on X for the latest updates and insights.
+
+If you would like to support our contributions to the Interchain ecosystem, please consider delegating to our validators on Cosmos Hub, Osmosis and Celestia.
\ No newline at end of file
diff --git a/hugo.yaml b/hugo.yaml
index c40c0d3..c6db343 100644
--- a/hugo.yaml
+++ b/hugo.yaml
@@ -45,28 +45,25 @@ markup:
unsafe: true
params:
- description: "Binary Builders - Building the Future of Blockchain Infrastructure"
- author: "Özgür Celebi"
+ description: "Binary Builders - Building at the frontier of crypto."
+ author: "Binary Builders"
images: ["images/og-default.jpg"]
contact:
email: "contact@binary.builders"
- notion:
- databaseId: "YOUR_NOTION_DATABASE_ID"
- apiKey: "YOUR_NOTION_API_KEY"
-
+
# Social Media
social:
- twitter: "binarybuilders"
- github: "binarybuilders"
+ twitter: "binary_builders"
+ github: "01builders"
linkedin: "company/binary-builders"
# SEO
- defaultKeywords: ["blockchain", "infrastructure", "binary builders", "web3"]
-
+ defaultKeywords: ["crypto", "blockchain", "binary builders", "web3", "building"]
+
# Analytics
- googleAnalytics: "" # Add your GA ID
-
+ googleAnalytics: ""
+
# Features
features:
search: true
- newsletter: true
\ No newline at end of file
+ newsletter: true
diff --git a/package-lock.json b/package-lock.json
index 443146c..c0ac778 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,55 +14,65 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.28.5",
"js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
+ "picocolors": "^1.1.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/generator": {
- "version": "7.26.10",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz",
- "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==",
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.26.10",
- "@babel/types": "^7.26.10",
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25",
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
"jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-module-imports": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
- "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -70,9 +80,9 @@
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -80,13 +90,13 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.26.10",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
- "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
+ "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.26.10"
+ "@babel/types": "^7.29.0"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -96,61 +106,58 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.26.10",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
- "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz",
+ "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": {
- "version": "7.26.9",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
- "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/parser": "^7.26.9",
- "@babel/types": "^7.26.9"
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.26.10",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.10.tgz",
- "integrity": "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.26.2",
- "@babel/generator": "^7.26.10",
- "@babel/parser": "^7.26.10",
- "@babel/template": "^7.26.9",
- "@babel/types": "^7.26.10",
- "debug": "^4.3.1",
- "globals": "^11.1.0"
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/types": {
- "version": "7.26.10",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
- "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@@ -167,13 +174,13 @@
}
},
"node_modules/@dabh/diagnostics": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
- "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz",
+ "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "colorspace": "1.1.x",
+ "@so-ric/colorspace": "^1.1.6",
"enabled": "2.0.x",
"kuler": "^2.0.0"
}
@@ -204,6 +211,7 @@
"integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@dnd-kit/accessibility": "^3.1.1",
"@dnd-kit/utilities": "^3.2.2",
@@ -327,9 +335,9 @@
"license": "MIT"
},
"node_modules/@emotion/is-prop-valid": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz",
- "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz",
+ "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -349,6 +357,7 @@
"integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@@ -390,11 +399,12 @@
"license": "MIT"
},
"node_modules/@emotion/styled": {
- "version": "11.14.0",
- "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz",
- "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==",
+ "version": "11.14.1",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz",
+ "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5",
@@ -444,6 +454,34 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
+ "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.11"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.7.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
+ "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.7.5",
+ "@floating-ui/utils": "^0.2.11"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
+ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@hapi/address": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz",
@@ -520,18 +558,14 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
- "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/sourcemap-codec": "^1.5.0",
"@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
}
},
"node_modules/@jridgewell/resolve-uri": {
@@ -544,27 +578,17 @@
"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,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"dev": true,
"license": "MIT"
},
"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==",
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -643,9 +667,9 @@
"license": "BSD-2-Clause"
},
"node_modules/@petamoriken/float16": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz",
- "integrity": "sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==",
+ "version": "3.9.3",
+ "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.3.tgz",
+ "integrity": "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==",
"dev": true,
"license": "MIT"
},
@@ -695,6 +719,17 @@
}
}
},
+ "node_modules/@so-ric/colorspace": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz",
+ "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color": "^5.0.2",
+ "text-hex": "1.0.x"
+ }
+ },
"node_modules/@types/escape-html": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@types/escape-html/-/escape-html-1.0.4.tgz",
@@ -713,30 +748,19 @@
}
},
"node_modules/@types/hoist-non-react-statics": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz",
- "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.7.tgz",
+ "integrity": "sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "@types/react": "*",
"hoist-non-react-statics": "^3.3.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*"
}
},
- "node_modules/@types/is-hotkey": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/@types/is-hotkey/-/is-hotkey-0.1.10.tgz",
- "integrity": "sha512-RvC8KMw5BCac1NvRRyaHgMMEtBaZ6wh0pyPTBu7izn4Sj/AX9Y4aXU5c7rX8PnM/knsuUpC1IeoBkANtxBypsQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/lodash": {
- "version": "4.17.16",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz",
- "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/mdast": {
"version": "3.0.15",
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz",
@@ -748,13 +772,13 @@
}
},
"node_modules/@types/node": {
- "version": "22.13.10",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz",
- "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==",
+ "version": "25.3.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz",
+ "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~6.20.0"
+ "undici-types": "~7.18.0"
}
},
"node_modules/@types/parse-json": {
@@ -765,13 +789,14 @@
"license": "MIT"
},
"node_modules/@types/react": {
- "version": "19.0.10",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz",
- "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==",
+ "version": "19.2.14",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
+ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "csstype": "^3.0.2"
+ "csstype": "^3.2.2"
}
},
"node_modules/@types/react-redux": {
@@ -787,6 +812,16 @@
"redux": "^4.0.0"
}
},
+ "node_modules/@types/react-transition-group": {
+ "version": "4.4.12",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz",
+ "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/triple-beam": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz",
@@ -794,6 +829,14 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
"node_modules/@types/unist": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
@@ -851,16 +894,17 @@
}
},
"node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
+ "require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
@@ -1090,7 +1134,6 @@
"integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
"dev": true,
"license": "MIT",
- "peer": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -1103,6 +1146,27 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "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"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/basic-auth": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
@@ -1124,24 +1188,24 @@
"license": "MIT"
},
"node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "version": "1.20.4",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
+ "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
+ "bytes": "~3.1.2",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
+ "destroy": "~1.2.0",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "on-finished": "~2.4.1",
+ "qs": "~6.14.0",
+ "raw-body": "~2.5.3",
"type-is": "~1.6.18",
- "unpipe": "1.0.0"
+ "unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8",
@@ -1165,31 +1229,39 @@
"dev": true,
"license": "MIT"
},
- "node_modules/body-parser/node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "license": "BSD-3-Clause",
+ "license": "MIT",
"dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"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"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
}
},
"node_modules/bytes": {
@@ -1324,35 +1396,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
- "node_modules/clean-stack": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz",
- "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "5.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/clean-stack/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/clsx": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
@@ -1364,11 +1407,12 @@
}
},
"node_modules/codemirror": {
- "version": "5.65.18",
- "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.18.tgz",
- "integrity": "sha512-Gaz4gHnkbHMGgahNt3CA5HBk5lLQBqmD/pBgeB4kQU6OedZmqMBjlRF0LSrp2tJ4wlLNPm2FfaUd1pDy0mdlpA==",
+ "version": "5.65.21",
+ "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.21.tgz",
+ "integrity": "sha512-6teYk0bA0nR3QP0ihGMoxuKzpl5W80FpnHpBJpgy66NK3cZv5b/d/HY8PnRvfSsCG1MTfr92u2WUl+wT0E40mQ==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/collapse-white-space": {
"version": "1.0.6",
@@ -1382,53 +1426,53 @@
}
},
"node_modules/color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz",
+ "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
+ "color-convert": "^3.1.3",
+ "color-string": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz",
+ "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "color-name": "1.1.3"
+ "color-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.6"
}
},
"node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz",
+ "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
+ "engines": {
+ "node": ">=12.20"
}
},
- "node_modules/colorspace": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
- "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
+ "node_modules/color-string": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz",
+ "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "color": "^3.1.3",
- "text-hex": "1.0.x"
+ "color-name": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/comma-separated-tokens": {
@@ -1453,16 +1497,9 @@
}
},
"node_modules/compute-scroll-into-view": {
- "version": "1.0.20",
- "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
- "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz",
+ "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==",
"dev": true,
"license": "MIT"
},
@@ -1504,9 +1541,9 @@
"license": "MIT"
},
"node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1514,16 +1551,16 @@
}
},
"node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
"dev": true,
"license": "MIT"
},
"node_modules/copy-text-to-clipboard": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz",
- "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz",
+ "integrity": "sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1534,9 +1571,9 @@
}
},
"node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "version": "2.8.6",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
+ "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1545,6 +1582,10 @@
},
"engines": {
"node": ">= 0.10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/cosmiconfig": {
@@ -1583,23 +1624,23 @@
"license": "MIT"
},
"node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
"dev": true,
"license": "MIT"
},
"node_modules/dayjs": {
- "version": "1.11.13",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
- "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
+ "version": "1.11.19",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
+ "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
"dev": true,
"license": "MIT"
},
"node_modules/debug": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
- "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1615,47 +1656,51 @@
}
},
"node_modules/decap-cms-app": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/decap-cms-app/-/decap-cms-app-3.6.2.tgz",
- "integrity": "sha512-VuOXhU2zpwVy7ZZJSjagEElmZUnKT0BGHXk4dC+wEgIGT7Mvf0P4r9kQ0nus/3AAWDfRPfJ9EHZdNZlTBspjOw==",
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-app/-/decap-cms-app-3.10.1.tgz",
+ "integrity": "sha512-i8y49qkgc8Yy3CcCBnlEtvkH0cZRssO7ck0xzLN1LKo1V4+/vXI+82ZcatTfFRuJOqCxD8ZYezsGFuZNJ8Ktiw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
+ "ajv": "^8.17.1",
+ "ajv-errors": "^3.0.0",
+ "ajv-keywords": "^5.1.0",
"codemirror": "^5.46.0",
"dayjs": "^1.11.10",
- "decap-cms-backend-aws-cognito-github-proxy": "^3.2.2",
- "decap-cms-backend-azure": "^3.1.3",
- "decap-cms-backend-bitbucket": "^3.1.4",
- "decap-cms-backend-git-gateway": "^3.2.2",
- "decap-cms-backend-gitea": "^3.1.5",
- "decap-cms-backend-github": "^3.2.2",
- "decap-cms-backend-gitlab": "^3.2.2",
- "decap-cms-backend-proxy": "^3.1.4",
- "decap-cms-backend-test": "^3.1.3",
- "decap-cms-core": "^3.6.1",
- "decap-cms-editor-component-image": "^3.1.3",
- "decap-cms-lib-auth": "^3.0.5",
- "decap-cms-lib-util": "^3.2.0",
- "decap-cms-lib-widgets": "^3.1.0",
- "decap-cms-locales": "^3.3.0",
- "decap-cms-ui-default": "^3.1.4",
- "decap-cms-widget-boolean": "^3.1.3",
- "decap-cms-widget-code": "^3.1.4",
- "decap-cms-widget-colorstring": "^3.1.3",
- "decap-cms-widget-datetime": "^3.2.3",
- "decap-cms-widget-file": "^3.1.3",
- "decap-cms-widget-image": "^3.1.3",
- "decap-cms-widget-list": "^3.3.0",
- "decap-cms-widget-map": "^3.1.4",
- "decap-cms-widget-markdown": "^3.3.0",
- "decap-cms-widget-number": "^3.1.3",
- "decap-cms-widget-object": "^3.3.1",
- "decap-cms-widget-relation": "^3.3.2",
- "decap-cms-widget-select": "^3.2.2",
- "decap-cms-widget-string": "^3.1.3",
- "decap-cms-widget-text": "^3.1.3",
+ "decap-cms-backend-aws-cognito-github-proxy": "^3.5.0",
+ "decap-cms-backend-azure": "^3.4.0",
+ "decap-cms-backend-bitbucket": "^3.3.1",
+ "decap-cms-backend-git-gateway": "^3.5.1",
+ "decap-cms-backend-gitea": "^3.3.0",
+ "decap-cms-backend-github": "^3.5.0",
+ "decap-cms-backend-gitlab": "^3.4.0",
+ "decap-cms-backend-proxy": "^3.3.0",
+ "decap-cms-backend-test": "^3.2.1",
+ "decap-cms-core": "^3.10.1",
+ "decap-cms-editor-component-image": "^3.2.1",
+ "decap-cms-lib-auth": "^3.0.6",
+ "decap-cms-lib-util": "^3.4.0",
+ "decap-cms-lib-widgets": "^3.3.0",
+ "decap-cms-locales": "^3.5.1",
+ "decap-cms-ui-auth": "^3.3.0",
+ "decap-cms-ui-default": "^3.5.1",
+ "decap-cms-widget-boolean": "^3.2.0",
+ "decap-cms-widget-code": "^3.4.0",
+ "decap-cms-widget-colorstring": "^3.2.0",
+ "decap-cms-widget-datetime": "^3.4.1",
+ "decap-cms-widget-file": "^3.2.0",
+ "decap-cms-widget-image": "^3.2.1",
+ "decap-cms-widget-list": "^3.5.0",
+ "decap-cms-widget-map": "^3.2.0",
+ "decap-cms-widget-markdown": "^3.6.1",
+ "decap-cms-widget-number": "^3.2.0",
+ "decap-cms-widget-object": "^3.4.0",
+ "decap-cms-widget-relation": "^3.5.2",
+ "decap-cms-widget-select": "^3.3.0",
+ "decap-cms-widget-string": "^3.2.0",
+ "decap-cms-widget-text": "^3.2.0",
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
@@ -1663,14 +1708,14 @@
"uuid": "^8.3.2"
},
"peerDependencies": {
- "react": "^18.2.0",
- "react-dom": "^18.2.0"
+ "react": "^19.1.0",
+ "react-dom": "^19.1.0"
}
},
"node_modules/decap-cms-backend-aws-cognito-github-proxy": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-aws-cognito-github-proxy/-/decap-cms-backend-aws-cognito-github-proxy-3.2.2.tgz",
- "integrity": "sha512-4CajbaWOSd1fL2NUq/1LcFvlfQLjIPsI6mgc/05APGhJKR2Net9BQvW5G5hVc4aZRF/zLmsFwKhOstEsx4uPzw==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-aws-cognito-github-proxy/-/decap-cms-backend-aws-cognito-github-proxy-3.5.0.tgz",
+ "integrity": "sha512-DOfltCwgXqNrBcHpMlEgq7dMTrS34vZTu/Ud8p7dAzC/ne3Mer6c78w5uCXwU5fwr9kB2T7pk7/NaT+we/T7vQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1690,20 +1735,22 @@
"decap-cms-backend-github": "^3.0.0",
"decap-cms-lib-auth": "^3.0.0",
"decap-cms-lib-util": "^3.0.0",
+ "decap-cms-ui-auth": "^3.0.0",
"decap-cms-ui-default": "^3.0.0",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-backend-azure": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-azure/-/decap-cms-backend-azure-3.1.3.tgz",
- "integrity": "sha512-aakOVHEzpzAbGq6JegA6roEoV0PI9TTjRIxS6oHjZ9dxmhyedFI4UEfmmWli3EPOj5fM0ZkoskggSzlzSXWP8g==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-azure/-/decap-cms-backend-azure-3.4.0.tgz",
+ "integrity": "sha512-+CPPTDnp9n85OF6CoKje3ei4V0krzgnN6wRxmCqYJRACFLZXtE5YIQDQdRsS+9RdLZK9UPIDF6yx83AnO+gsaw==",
"dev": true,
"license": "MIT",
"dependencies": {
"js-base64": "^3.0.0",
+ "path-browserify": "^1.0.1",
"semaphore": "^1.1.0"
},
"peerDependencies": {
@@ -1715,18 +1762,21 @@
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-backend-bitbucket": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-bitbucket/-/decap-cms-backend-bitbucket-3.1.4.tgz",
- "integrity": "sha512-OCV2bdRGVCaSjMr6jOaaZCz4mrfdSPnGo4ETlJ0ey1cPJGPu7norvHjQ6ZQAgSDJMxPJbQe9iOZ3tc4hVgLTBQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-bitbucket/-/decap-cms-backend-bitbucket-3.3.1.tgz",
+ "integrity": "sha512-t9KKzqgPGFpGKAh8AzXi4R5wjmZyeDNea+wCbAA7ul6HQhu/0mnIPqfhuL+C+NYtBpEY8THy8N4sjnx24SMqfQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"common-tags": "^1.8.0",
"js-base64": "^3.0.0",
+ "minimatch": "^7.0.0",
+ "path-browserify": "^1.0.1",
"semaphore": "^1.1.0",
"what-the-diff": "^0.6.0"
},
@@ -1739,20 +1789,20 @@
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-backend-git-gateway": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-git-gateway/-/decap-cms-backend-git-gateway-3.2.2.tgz",
- "integrity": "sha512-oEtRJSI9i+8fSoVquLsthdPEVjnJFrw8vMxcZUqf8JjGv8oKetNLH3N0CbUUGP7EVUMqo7xTG2j2je9KqCZatA==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-git-gateway/-/decap-cms-backend-git-gateway-3.5.1.tgz",
+ "integrity": "sha512-h1vlvKcB+J6WpqFfSrFJ2Q2D6pXFjd/wbH5fxHAkjNgqjyhTan4nkzblbQMWYJgFgtp1WOqSUvIMdOO1qKgICQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"gotrue-js": "^0.9.24",
"ini": "^2.0.0",
"jwt-decode": "^3.0.0",
- "minimatch": "^3.0.4"
+ "minimatch": "^7.0.0"
},
"peerDependencies": {
"@emotion/react": "^11.11.1",
@@ -1762,16 +1812,17 @@
"decap-cms-backend-gitlab": "^3.0.0",
"decap-cms-lib-auth": "^3.0.0",
"decap-cms-lib-util": "^3.0.0",
+ "decap-cms-ui-auth": "^3.0.0",
"decap-cms-ui-default": "^3.0.0",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-backend-gitea": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-gitea/-/decap-cms-backend-gitea-3.1.5.tgz",
- "integrity": "sha512-kmmNFex2YjNyHMgRKdBa3DDLgODH016IKR6wP2dKqSg/m9Xos8nE5KyJPw8E8zrZUa1+j1V2YpPNx/1b1dJ42w==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-gitea/-/decap-cms-backend-gitea-3.3.0.tgz",
+ "integrity": "sha512-AABTNA8fKznYwchfCvnh+n0yTVDSzz5Z+d2HgY+BFSITjg1fo61iq75/qCuTZTEDz2Y1jrWDx6GFst1YbYO9PA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1787,15 +1838,16 @@
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-backend-github": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-github/-/decap-cms-backend-github-3.2.2.tgz",
- "integrity": "sha512-8cPmjy54zPxqzc4NaXyHPk68P/eajCV+RNeYcR0QjBVMQv5DLjbYBHnW9s0z42W/T5nPqrFLC5thRqMsmuq2Lg==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-github/-/decap-cms-backend-github-3.5.0.tgz",
+ "integrity": "sha512-phRMaz8jQhQsbTyhnKd9E60EHHc1YL6l/nvwIxJn2rST9oZPN1o2nE7ZZTESgGTpsBYxxC8wQy2TY3xKMH+NRg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"apollo-cache-inmemory": "^1.6.2",
"apollo-client": "^2.6.3",
@@ -1805,6 +1857,7 @@
"graphql": "^15.0.0",
"graphql-tag": "^2.10.1",
"js-base64": "^3.0.0",
+ "path-browserify": "^1.0.1",
"semaphore": "^1.1.0"
},
"peerDependencies": {
@@ -1815,21 +1868,23 @@
"decap-cms-ui-default": "^3.0.0",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-backend-gitlab": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-gitlab/-/decap-cms-backend-gitlab-3.2.2.tgz",
- "integrity": "sha512-VcTHoDlXMsPL5jaPaxYk8dkXiXjle9CbL92BKny4xRxkJhC3VYo6lZfVh09WpbUyAtwZfBIpX4p5dkZNKqVQ6A==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-gitlab/-/decap-cms-backend-gitlab-3.4.0.tgz",
+ "integrity": "sha512-N4Vhl//tNcvznnEi4PaDUu6M56eI2vQFReqjek5XiUZk/7MAJHWDA5eFovI+B5yYedSTmnCzoWg9jyH5RgXMuA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"apollo-cache-inmemory": "^1.6.2",
"apollo-client": "^2.6.3",
"apollo-link-context": "^1.0.18",
"apollo-link-http": "^1.5.15",
"js-base64": "^3.0.0",
+ "path-browserify": "^1.0.1",
"semaphore": "^1.1.0"
},
"peerDependencies": {
@@ -1841,13 +1896,13 @@
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-backend-proxy": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-proxy/-/decap-cms-backend-proxy-3.1.4.tgz",
- "integrity": "sha512-5gowbsVSZdKbw3GoufYxdSe/WnL5zOUR2t0oo4wpx9ogYPMSKXo6DPbKacBGUYceCAh/15Ya32J8G9fpwGgPrg==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-proxy/-/decap-cms-backend-proxy-3.3.0.tgz",
+ "integrity": "sha512-Tq+thq5JdjLEHr3mprI7tAmVIy+nIftL2Zqt+ndNo/QQX7LvBrottqXRZ6pg2HNQLl5tUQ8qozBTNpeLYkxGlQ==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -1856,15 +1911,18 @@
"decap-cms-lib-util": "^3.0.0",
"decap-cms-ui-default": "^3.0.0",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-backend-test": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-backend-test/-/decap-cms-backend-test-3.1.3.tgz",
- "integrity": "sha512-SsUzvljOnQYFqbFKshajKSPlzY8O8xzE0nWI4GqUAugXx5mxD1lNov0WgtO/5UPXr2zNEtxyQzF+gz6A4XhHrA==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-backend-test/-/decap-cms-backend-test-3.2.1.tgz",
+ "integrity": "sha512-ZsUnZ1wB0NNIFRDcU9GJiR3hvx40xHZVp978HVasEXlzleG9VgBfWODgagWnX5NFyl9m4NUCQ2Yx/QaP+fBo0A==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "path-browserify": "^1.0.1"
+ },
"peerDependencies": {
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
@@ -1872,24 +1930,21 @@
"decap-cms-ui-default": "^3.0.0",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
+ "react": "^19.1.0",
"uuid": "^8.3.2"
}
},
"node_modules/decap-cms-core": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/decap-cms-core/-/decap-cms-core-3.6.1.tgz",
- "integrity": "sha512-qIvkdHfDR2VTOpIEOxdtY43Ac2MqfgMSkHpRYq+x+LQ/HBS9p5j24S075FROKGJj9j/BfCJ2/Nd7ETmMmnvVRw==",
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-core/-/decap-cms-core-3.10.1.tgz",
+ "integrity": "sha512-X2HzWJ6naFYdi2s2DJwSx2DIX9FRAz8ihqLyrb2fmCMicAHqV6CK87WKGg0AyrKVIbulC8rEqmIPox+lJ2ihUg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@iarna/toml": "2.2.5",
"@reduxjs/toolkit": "^1.9.1",
"@vercel/stega": "^0.1.2",
- "ajv": "8.12.0",
- "ajv-errors": "^3.0.0",
- "ajv-keywords": "^5.0.0",
- "clean-stack": "^4.1.0",
+ "buffer": "^6.0.3",
"copy-text-to-clipboard": "^3.0.0",
"dayjs": "^1.11.10",
"deepmerge": "^4.2.2",
@@ -1902,11 +1957,12 @@
"js-base64": "^3.0.0",
"jwt-decode": "^3.0.0",
"node-polyglot": "^2.3.0",
+ "path-browserify": "^1.0.1",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
+ "react": "^19.1.0",
"react-dnd": "^14.0.0",
"react-dnd-html5-backend": "^14.0.0",
- "react-dom": "^18.2.0",
+ "react-dom": "^19.1.0",
"react-frame-component": "^5.2.1",
"react-immutable-proptypes": "^2.1.0",
"react-is": "16.13.1",
@@ -1915,7 +1971,7 @@
"react-polyglot": "^0.7.0",
"react-redux": "^7.2.0",
"react-router-dom": "^5.2.0",
- "react-scroll-sync": "^0.9.0",
+ "react-scroll-sync": "^0.11.2",
"react-split-pane": "^0.1.85",
"react-toastify": "^9.1.1",
"react-topbar-progress-indicator": "^4.0.0",
@@ -1946,27 +2002,29 @@
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "react": "^19.1.0",
+ "react-dom": "^19.1.0",
"react-immutable-proptypes": "^2.1.0"
}
},
"node_modules/decap-cms-editor-component-image": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-editor-component-image/-/decap-cms-editor-component-image-3.1.3.tgz",
- "integrity": "sha512-XOLY+VkV42/SmpUimvYIMRY337cGFUaVA9aSvK//plBpxZSmIPhs4NzgaCHojb6GI9nPyAS0WtmA8/Jx0teVng==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-editor-component-image/-/decap-cms-editor-component-image-3.2.1.tgz",
+ "integrity": "sha512-uFnPqLRaqL7FmRupKvMtL9oaE6d6gTuutcIJvuRkNmmToP/PeuFrpEIOBThyPxzjgX4AJm5OkdApiCeC1d0bzQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"peerDependencies": {
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-lib-auth": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/decap-cms-lib-auth/-/decap-cms-lib-auth-3.0.5.tgz",
- "integrity": "sha512-NG+dI1Pg0UBoxRQfuI0zeRLZAtPU23R3qUOA1mDUJ4OpKmX6/lsznmvu0l+e3TzGUhCkOXyz2fl/9HctsMjTXw==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/decap-cms-lib-auth/-/decap-cms-lib-auth-3.0.6.tgz",
+ "integrity": "sha512-AhssFTm/DOZFHpoFv5eoXTF4P2NvFeQDQ0aFsVxOwz3hGnx/uZ/PtAqJkkz1zdRp4bMB8BM6Eh+lkVB2RQhSww==",
"dev": true,
"license": "MIT",
+ "peer": true,
"peerDependencies": {
"immutable": "^3.7.6",
"lodash": "^4.17.11",
@@ -1974,11 +2032,12 @@
}
},
"node_modules/decap-cms-lib-util": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/decap-cms-lib-util/-/decap-cms-lib-util-3.2.0.tgz",
- "integrity": "sha512-kNsR6hkbVVdcKy08IlHsm2h4TGac2mepLVysPCuqP/F7nAyNjZenqHUuXSgiUaq2Nph0Xa+8PfXCHMK4Ti+91A==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-lib-util/-/decap-cms-lib-util-3.4.0.tgz",
+ "integrity": "sha512-dzqhNkafRCweJNRDe6A1n6cnkqfyXmmkYJIHjuIqf8IFQ+MVkLY909aBMsSkCn5DQiWKYwnAi83fcQfFa1BG4Q==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"js-sha256": "^0.9.0",
"localforage": "^1.7.3",
@@ -1990,13 +2049,15 @@
}
},
"node_modules/decap-cms-lib-widgets": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/decap-cms-lib-widgets/-/decap-cms-lib-widgets-3.1.0.tgz",
- "integrity": "sha512-y74KBQLWmdEGA+G9hj6pdSws7MlQUOkV+c2jJJop7SQmD1PXsCazb2RnVyJDlav9Mfxr2qaaKSFR+sqTvXcaRA==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-lib-widgets/-/decap-cms-lib-widgets-3.3.0.tgz",
+ "integrity": "sha512-ua4JCcbF7HY+zJS2kWewq2/nnQnermTdehdFOYTDZEqcEtwN/6ONa36POeS5Bnu7rBw1M3K+YtY8v3BlXt5qWw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "dayjs": "^1.11.10"
+ "dayjs": "^1.11.10",
+ "path-browserify": "^1.0.1"
},
"peerDependencies": {
"immutable": "^3.7.6",
@@ -2004,18 +2065,39 @@
}
},
"node_modules/decap-cms-locales": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decap-cms-locales/-/decap-cms-locales-3.3.0.tgz",
- "integrity": "sha512-4DOB2zGoCkKZsS/VpfvgoZDUA+D0tBI6AOS7WMaUvndBBJ47+5V/4YAeGpMKMLZ1oa6JnKa8OiakgM/QelVFPg==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-locales/-/decap-cms-locales-3.5.1.tgz",
+ "integrity": "sha512-vrLM7iLaFO/hQtQt18VLuRd3fLyKbphehz0QlhikVNkISLRWX9brlmsgPfLPfZ6dkzwTTkfeWqIBxaVWXJWGdQ==",
"dev": true,
"license": "MIT"
},
+ "node_modules/decap-cms-ui-auth": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-ui-auth/-/decap-cms-ui-auth-3.3.0.tgz",
+ "integrity": "sha512-fepJ1wMxbYAD8awyAN1n4yWbeb5oWe5nd2DOAyt9zQI5m89p3Wsp4oXVwD2pLGFceU8F9PycHJ62AQ827sFqtw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "jwt-decode": "^3.0.0"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.11.1",
+ "@emotion/styled": "^11.11.0",
+ "decap-cms-lib-auth": "^3.0.0",
+ "decap-cms-ui-default": "^3.0.0",
+ "lodash": "^4.17.11",
+ "prop-types": "^15.7.2",
+ "react": "^19.1.0"
+ }
+ },
"node_modules/decap-cms-ui-default": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/decap-cms-ui-default/-/decap-cms-ui-default-3.1.4.tgz",
- "integrity": "sha512-C034TIwUU8X+JNR6SmFhyWxHYzCArMONVMXoTaU6Y4SQr3appR+bwNesb9s0Q3SMmehTRyTMrIZ2lAd4ppymqw==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-ui-default/-/decap-cms-ui-default-3.5.1.tgz",
+ "integrity": "sha512-pyQnb+FPDL3Cr8GQrXEfksJ9qJ++8IJ1vlS8dz2mGPdGRq0DcZCaN9IsGwYTWdcVnoqTeziAiMgwAhX823uwDw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"react-aria-menubutton": "^7.0.0",
"react-transition-group": "^4.4.5"
@@ -2025,13 +2107,13 @@
"@emotion/styled": "^11.11.0",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-widget-boolean": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-boolean/-/decap-cms-widget-boolean-3.1.3.tgz",
- "integrity": "sha512-lQuIahHiPpGr3J0YRhqFpdUQqB8ljmE7a19+Kq2m7cgZC3biKR2BQRGkoSeAsYIjPM42n1pBCQezsaIUd32eiw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-boolean/-/decap-cms-widget-boolean-3.2.0.tgz",
+ "integrity": "sha512-T4dId4WPmmWids+GOK5xK3CA7IzSfH1bLNCGE7OGOG/r9EIuDaHW5rIsVkAhLGz2Spg39xyPNk3dfHfBd3b4Dw==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -2039,93 +2121,32 @@
"decap-cms-ui-default": "^3.0.0",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
+ "react": "^19.1.0",
"react-immutable-proptypes": "^2.1.0"
}
},
"node_modules/decap-cms-widget-code": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-code/-/decap-cms-widget-code-3.1.4.tgz",
- "integrity": "sha512-AUQL3+B3pQT9/86wMKAOpPrTkwtuUqHRDLkQjh/vIn10ZE829PpQVGe3HSDhgOQch4b/RoPoR8k0vjJK+Dubsg==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-code/-/decap-cms-widget-code-3.4.0.tgz",
+ "integrity": "sha512-/lddVH/1+pb7D4lJQ2TZPIL4+WIJOWnasjLhTSc7fK+HW58ATKNg1MmIGDrxahyPSSZyxKfjqflYSGOGJihbfg==",
"dev": true,
"license": "MIT",
"dependencies": {
"react-codemirror2": "^7.0.0",
- "react-select": "^4.0.0"
+ "react-select": "^5.10.0"
},
"peerDependencies": {
"@emotion/react": "^11.11.1",
"codemirror": "^5.46.0",
"decap-cms-ui-default": "^3.0.0",
"lodash": "^4.17.11",
- "react": "^18.2.0"
- }
- },
- "node_modules/decap-cms-widget-code/node_modules/react-dom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
- },
- "peerDependencies": {
- "react": "17.0.2"
- }
- },
- "node_modules/decap-cms-widget-code/node_modules/react-select": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-select/-/react-select-4.3.1.tgz",
- "integrity": "sha512-HBBd0dYwkF5aZk1zP81Wx5UsLIIT2lSvAY2JiJo199LjoLHoivjn9//KsmvQMEFGNhe58xyuOITjfxKCcGc62Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.0",
- "@emotion/cache": "^11.4.0",
- "@emotion/react": "^11.1.1",
- "memoize-one": "^5.0.0",
- "prop-types": "^15.6.0",
- "react-input-autosize": "^3.0.0",
- "react-transition-group": "^4.3.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
- }
- },
- "node_modules/decap-cms-widget-code/node_modules/react-select/node_modules/react-input-autosize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz",
- "integrity": "sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prop-types": "^15.5.8"
- },
- "peerDependencies": {
- "react": "^16.3.0 || ^17.0.0"
- }
- },
- "node_modules/decap-cms-widget-code/node_modules/scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-widget-colorstring": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-colorstring/-/decap-cms-widget-colorstring-3.1.3.tgz",
- "integrity": "sha512-Wk1poRQ0+OoLBmt4/4DaIr4Ap9jZRD+tnFyDgNVbOsH8YiilPKZAyhbTPdjUy72wgq3vbdr3hYUiF5Tfzskw7Q==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-colorstring/-/decap-cms-widget-colorstring-3.2.0.tgz",
+ "integrity": "sha512-dz1z5XxrQ9JZ/QTXOyk9Wcsx54BlTsgqxYgAQYZcjOpPTj4drXj0JJNmn0KzGxvWKhj0jzMWPhT1VC4Uvgw99Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2137,13 +2158,13 @@
"@emotion/styled": "^11.11.0",
"decap-cms-ui-default": "^3.0.0",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-widget-datetime": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-datetime/-/decap-cms-widget-datetime-3.2.3.tgz",
- "integrity": "sha512-O687eBWfw9VH1fooP059Ew7/pgYpGpFvNP8NwNCvDwLFz2Ig5EAy36yh9O8TQSaJeZmqdaeplzzbn2ULt1TUaQ==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-datetime/-/decap-cms-widget-datetime-3.4.1.tgz",
+ "integrity": "sha512-Mh5vgtVb77IE++W2laA10IHJolNEJx/uYtoQ4iubtAhCnwjVxpBsxkFqtXL96MX3cSxC8OKJ6UvVgGrTxtxu1Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2151,15 +2172,16 @@
},
"peerDependencies": {
"@emotion/react": "^11.11.1",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-widget-file": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-file/-/decap-cms-widget-file-3.1.3.tgz",
- "integrity": "sha512-ldyJA3rCreYtVaakdtULCDZXxHGXtDpEls2fvWKwUAtfb29hnoYR3pOUfK6e09aPREcY2KMdrGz4ewNHL7U1Cg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-file/-/decap-cms-widget-file-3.2.0.tgz",
+ "integrity": "sha512-QlId1KLaY+7kOK1ESqlevqSU3CCOIY0MlpUw6JPO3josRj39En7InraFWOewzdr9f+raKI6M0pf2RFTRYg7zPg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@dnd-kit/core": "^6.0.8",
"@dnd-kit/modifiers": "^6.0.1",
@@ -2173,15 +2195,15 @@
"decap-cms-ui-default": "^3.0.0",
"immutable": "^3.7.6",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
+ "react": "^19.1.0",
"react-immutable-proptypes": "^2.1.0",
"uuid": "^8.3.2"
}
},
"node_modules/decap-cms-widget-image": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-image/-/decap-cms-widget-image-3.1.3.tgz",
- "integrity": "sha512-5wIIWP7OwbuWRljVV4XDcl3hx19Lp6KyQDZ1frlXfZXxgwu2xeOOw/D/ri2Nb5zIGZjG9DUp7bgBYBF92dXy5A==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-image/-/decap-cms-widget-image-3.2.1.tgz",
+ "integrity": "sha512-LCzIqUVNm+tWiLa56e1xe1w2Rfrjwie6gNhnchbX2o8XZoobNPbrg6kytp2+DiAuZGeEXKcv9E+HvPIeyzT1AA==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -2191,13 +2213,13 @@
"decap-cms-widget-file": "^3.0.0",
"immutable": "^3.7.6",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-widget-list": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-list/-/decap-cms-widget-list-3.3.0.tgz",
- "integrity": "sha512-Lno4B/XqQuexIrJWwn9qOCTpqWcvcQCNE61sGejVlWmMwYpnR18A9dUq/c4TnP5gyPNObhK8dfJvxcuCdHqBQQ==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-list/-/decap-cms-widget-list-3.5.0.tgz",
+ "integrity": "sha512-qkEvymI6CrXnhannRguaYhV7rhCQGyRE9zqqeihXU3+FtxWisS8xAJD237Amyxf1e4EvghIXUJ2ALdBW/ENLNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2214,14 +2236,14 @@
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
+ "react": "^19.1.0",
"react-immutable-proptypes": "^2.1.0"
}
},
"node_modules/decap-cms-widget-map": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-map/-/decap-cms-widget-map-3.1.4.tgz",
- "integrity": "sha512-fJAc0L6KSXWfO91DZ3bXuUkSgRIvszg2fyJG45Ub6L3i1BnT28dOSnyHXeUAtRj1Qm3nqyiwneFnFwV91wMhhg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-map/-/decap-cms-widget-map-3.2.0.tgz",
+ "integrity": "sha512-vCLkVFUO3pU5pDAxJziHMOwXvryBqqHLBMkzbHn07kByAvWx9TbqssbBS5/V/iXOW6e18vb+aw0ZJSvclD+Mwg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2232,18 +2254,19 @@
"decap-cms-ui-default": "^3.0.0",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
+ "react": "^19.1.0",
"react-immutable-proptypes": "^2.1.0"
}
},
"node_modules/decap-cms-widget-markdown": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-markdown/-/decap-cms-widget-markdown-3.3.0.tgz",
- "integrity": "sha512-ea/lMzOv66hiQMmruj7nWY0kJer4rrUEOxnVk1tIYzI7IYVXRqtPjS1wipLQJnk3PeGZXviPHUUPR0pmRumMXQ==",
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-markdown/-/decap-cms-widget-markdown-3.6.1.tgz",
+ "integrity": "sha512-d3Hw+FM8KQVbtz1wuLyq+9LW8ncXKtgNHgI4z0kcu7kbB+FgFs/COGHdgARXtOdcY4XbM+DwR6MUzTKAPhiwaQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "dompurify": "^2.2.6",
+ "detab": "^2.0.4",
+ "dompurify": "^3.2.6",
"is-hotkey": "^0.2.0",
"is-url": "^1.2.4",
"mdast-util-definitions": "^1.2.3",
@@ -2256,15 +2279,18 @@
"remark-slate": "^1.8.6",
"remark-slate-transformer": "^0.7.4",
"remark-stringify": "^6.0.4",
- "slate": "^0.91.1",
+ "slate": "^0.118.1",
"slate-base64-serializer": "^0.2.107",
- "slate-history": "^0.93.0",
- "slate-plain-serializer": "^0.7.1",
- "slate-react": "^0.91.2",
+ "slate-dom": "^0.118.1",
+ "slate-history": "^0.113.1",
+ "slate-hyperscript": "^0.100.0",
+ "slate-plain-serializer": "^0.7.3",
+ "slate-react": "^0.117.4",
"slate-soft-break": "^0.9.0",
"unified": "^9.2.0",
"unist-builder": "^1.0.3",
- "unist-util-visit-parents": "^2.0.1"
+ "unist-util-visit-parents": "^2.0.1",
+ "vfile-location": "^2.0.6"
},
"peerDependencies": {
"@emotion/react": "^11.11.1",
@@ -2273,8 +2299,8 @@
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
+ "react": "^19.1.0",
+ "react-dom": "^19.1.0",
"react-immutable-proptypes": "^2.1.0"
}
},
@@ -2330,23 +2356,24 @@
}
},
"node_modules/decap-cms-widget-number": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-number/-/decap-cms-widget-number-3.1.3.tgz",
- "integrity": "sha512-fcncjNvAjfIYDg/jnUVQSre3jwb9JTaylPRiTMZa41zhwQVvH2XL98lzkPyPQU6nXGPnlN7p/hV8wNqbklm/wg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-number/-/decap-cms-widget-number-3.2.0.tgz",
+ "integrity": "sha512-+H57DZSPZduk/Z0hGNNGoCcd89/zPUgiPDn8lXmTzALqusK1GOReOvhfwwEK69/UYQ8NxJl8m+ipjKKLY2P7Aw==",
"dev": true,
"license": "MIT",
"peerDependencies": {
"decap-cms-ui-default": "^3.0.0",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-widget-object": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-object/-/decap-cms-widget-object-3.3.1.tgz",
- "integrity": "sha512-xqfXYf4ktcqBkKyzzCFkE8knjybvygVm3QwIxfRICHllDNhznFL1PnXhbysEiyKHtIUswyicNW8fVljuR/Fm0g==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-object/-/decap-cms-widget-object-3.4.0.tgz",
+ "integrity": "sha512-Q/p5IHmANLs7J0SXv/fcdyXChtT/7YuhVHMvztDZQTjnEdV40F4EZzmQybYu1JvKL1LllFudRCeXbjULl7ql2A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"peerDependencies": {
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
@@ -2354,191 +2381,69 @@
"immutable": "^3.7.6",
"lodash": "^4.17.11",
"prop-types": "^15.7.2",
- "react": "^18.2.0",
+ "react": "^19.1.0",
"react-immutable-proptypes": "^2.1.0"
}
},
"node_modules/decap-cms-widget-relation": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-relation/-/decap-cms-widget-relation-3.3.2.tgz",
- "integrity": "sha512-NrOhkfSuXOt7dhhTSsjnttmYidHgqGMpjB7bQ8Cs2iT+n8Rd5aXCvVn6/8Fv9G5Obu3XZ06sjqSlNBoS0itDLQ==",
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-relation/-/decap-cms-widget-relation-3.5.2.tgz",
+ "integrity": "sha512-ceeOvY3J11xZXD6ijk6spvC0HrK5GwDYTGVkaDYo3ex5HGnIgxDDh9Z302lYp+WIWC85Q6j+SN6Qc+Vk4BOulQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@dnd-kit/core": "^6.0.8",
"@dnd-kit/modifiers": "^6.0.1",
"@dnd-kit/sortable": "^7.0.2",
- "react-select": "^4.0.0",
+ "react-select": "^5.10.0",
"react-window": "^1.8.5"
},
"peerDependencies": {
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"decap-cms-lib-widgets": "^3.0.0",
- "decap-cms-ui-default": "^3.0.0",
- "immutable": "^3.7.6",
- "lodash": "^4.17.11",
- "prop-types": "^15.7.2",
- "react": "^18.2.0",
- "uuid": "^8.3.2"
- }
- },
- "node_modules/decap-cms-widget-relation/node_modules/react-dom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
- },
- "peerDependencies": {
- "react": "17.0.2"
- }
- },
- "node_modules/decap-cms-widget-relation/node_modules/react-select": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-select/-/react-select-4.3.1.tgz",
- "integrity": "sha512-HBBd0dYwkF5aZk1zP81Wx5UsLIIT2lSvAY2JiJo199LjoLHoivjn9//KsmvQMEFGNhe58xyuOITjfxKCcGc62Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.0",
- "@emotion/cache": "^11.4.0",
- "@emotion/react": "^11.1.1",
- "memoize-one": "^5.0.0",
- "prop-types": "^15.6.0",
- "react-input-autosize": "^3.0.0",
- "react-transition-group": "^4.3.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
- }
- },
- "node_modules/decap-cms-widget-relation/node_modules/react-select/node_modules/react-input-autosize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz",
- "integrity": "sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prop-types": "^15.5.8"
- },
- "peerDependencies": {
- "react": "^16.3.0 || ^17.0.0"
- }
- },
- "node_modules/decap-cms-widget-relation/node_modules/scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- },
- "node_modules/decap-cms-widget-select": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-select/-/decap-cms-widget-select-3.2.2.tgz",
- "integrity": "sha512-D06doa3G6NUDwH4Bx7rrx8bwYxa0ZrE4QQalh7AhCBQpup5mvxu95KrlYhij1q28Fg7WqlqteEKofPzGRIQh4Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "react-select": "^4.0.0"
- },
- "peerDependencies": {
- "decap-cms-lib-widgets": "^3.0.0",
- "decap-cms-ui-default": "^3.0.0",
- "immutable": "^3.7.6",
- "prop-types": "^15.7.2",
- "react": "^18.2.0",
- "react-immutable-proptypes": "^2.1.0"
- }
- },
- "node_modules/decap-cms-widget-select/node_modules/react-dom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
- },
- "peerDependencies": {
- "react": "17.0.2"
- }
- },
- "node_modules/decap-cms-widget-select/node_modules/react-select": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-select/-/react-select-4.3.1.tgz",
- "integrity": "sha512-HBBd0dYwkF5aZk1zP81Wx5UsLIIT2lSvAY2JiJo199LjoLHoivjn9//KsmvQMEFGNhe58xyuOITjfxKCcGc62Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.0",
- "@emotion/cache": "^11.4.0",
- "@emotion/react": "^11.1.1",
- "memoize-one": "^5.0.0",
- "prop-types": "^15.6.0",
- "react-input-autosize": "^3.0.0",
- "react-transition-group": "^4.3.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
- }
- },
- "node_modules/decap-cms-widget-select/node_modules/react-select/node_modules/react-input-autosize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz",
- "integrity": "sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "prop-types": "^15.5.8"
- },
- "peerDependencies": {
- "react": "^16.3.0 || ^17.0.0"
+ "decap-cms-ui-default": "^3.0.0",
+ "immutable": "^3.7.6",
+ "lodash": "^4.17.11",
+ "prop-types": "^15.7.2",
+ "react": "^19.1.0",
+ "uuid": "^8.3.2"
}
},
- "node_modules/decap-cms-widget-select/node_modules/scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "node_modules/decap-cms-widget-select": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-select/-/decap-cms-widget-select-3.3.0.tgz",
+ "integrity": "sha512-5xeOhlImDDZYhXMzMYn2lzwsMDeBtK9IGJK2V5rq6jEi5wBZK0MVwSyDwAttUcp/WCJDEtNiZowjElC/f9bgsw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "react-select": "^5.10.0"
+ },
+ "peerDependencies": {
+ "decap-cms-lib-widgets": "^3.0.0",
+ "decap-cms-ui-default": "^3.0.0",
+ "immutable": "^3.7.6",
+ "prop-types": "^15.7.2",
+ "react": "^19.1.0",
+ "react-immutable-proptypes": "^2.1.0"
}
},
"node_modules/decap-cms-widget-string": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-string/-/decap-cms-widget-string-3.1.3.tgz",
- "integrity": "sha512-Kx+s4smxk7pHvFecAnDN9MTFLDyIZUuY1c9yKkxzo/NdGRO1cedlUXSWoICP5N2I8cbBYwTV/6aIg+StIRjntg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-string/-/decap-cms-widget-string-3.2.0.tgz",
+ "integrity": "sha512-RcdSQEhvyIPDNlKm0GZcPWIlCDO+SpxewxK424RKazodimSwJGjmBfUWhDkVbbzS8TNQkgXVOqycYNGkWGKW9g==",
"dev": true,
"license": "MIT",
"peerDependencies": {
"decap-cms-ui-default": "^3.0.0",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decap-cms-widget-text": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/decap-cms-widget-text/-/decap-cms-widget-text-3.1.3.tgz",
- "integrity": "sha512-1qbKEn1oNu09CriZDirmMO3hVSHMoeYqURZvz9ynJZkgFMTsUrakkobAEMp88aqSxBu3chMCjnPJKocObWRIfA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/decap-cms-widget-text/-/decap-cms-widget-text-3.2.0.tgz",
+ "integrity": "sha512-dUZzNW1YQwbrylGMLu+bDSfvLOsMlpCMb1AoOEeHgTyNvKS5/x+7t0vVh8Insz78i+z2eSv4uM9j31z4VzZfPg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2547,13 +2452,13 @@
"peerDependencies": {
"decap-cms-ui-default": "^3.0.0",
"prop-types": "^15.7.2",
- "react": "^18.2.0"
+ "react": "^19.1.0"
}
},
"node_modules/decode-named-character-reference": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz",
- "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz",
+ "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2637,7 +2542,6 @@
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=6"
}
@@ -2673,7 +2577,6 @@
"integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"dequal": "^2.0.0"
},
@@ -2727,11 +2630,17 @@
}
},
"node_modules/dompurify": {
- "version": "2.5.8",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.8.tgz",
- "integrity": "sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.2.tgz",
+ "integrity": "sha512-6obghkliLdmKa56xdbLOpUZ43pAR6xFy1uOrxBaIDjT+yaRuuybLjGS9eVBoSR/UPU5fq3OXClEHLJNGvbxKpQ==",
"dev": true,
- "license": "(MPL-2.0 OR Apache-2.0)"
+ "license": "(MPL-2.0 OR Apache-2.0)",
+ "engines": {
+ "node": ">=20"
+ },
+ "optionalDependencies": {
+ "@types/trusted-types": "^2.0.7"
+ }
},
"node_modules/dotenv": {
"version": "10.0.0",
@@ -2783,9 +2692,9 @@
}
},
"node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2877,40 +2786,40 @@
"license": "BSD-3-Clause"
},
"node_modules/express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
+ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
"dev": true,
"license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
+ "body-parser": "~1.20.3",
+ "content-disposition": "~0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
+ "cookie": "~0.7.1",
+ "cookie-signature": "~1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "finalhandler": "~1.3.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.0",
"merge-descriptors": "1.0.3",
"methods": "~1.1.2",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
+ "path-to-regexp": "~0.1.12",
"proxy-addr": "~2.0.7",
- "qs": "6.13.0",
+ "qs": "~6.14.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
+ "send": "~0.19.0",
+ "serve-static": "~1.16.2",
"setprototypeof": "1.2.0",
- "statuses": "2.0.1",
+ "statuses": "~2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
@@ -2940,29 +2849,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/express/node_modules/path-to-regexp": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/express/node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -2997,6 +2883,23 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/fast-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
+ "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
"node_modules/fecha": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
@@ -3005,18 +2908,18 @@
"license": "MIT"
},
"node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "statuses": "2.0.1",
+ "statuses": "~2.0.2",
"unpipe": "~1.0.0"
},
"engines": {
@@ -3159,16 +3062,6 @@
"node": ">= 0.4"
}
},
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
@@ -3198,6 +3091,7 @@
"integrity": "sha512-BL/Xd/T9baO6NFzoMpiMD7YUZ62R6viR5tp/MULVEnbYJXZA//kRNW7J0j1w/wXArgL0sCxhDfK5dczSKn3+cg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">= 10.x"
}
@@ -3505,20 +3399,24 @@
}
},
"node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
},
"engines": {
"node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/iconv-lite": {
@@ -3579,6 +3477,7 @@
"integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -3772,7 +3671,6 @@
"integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=12"
},
@@ -3847,9 +3745,9 @@
"license": "MIT"
},
"node_modules/js-base64": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz",
- "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==",
+ "version": "3.7.8",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz",
+ "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==",
"dev": true,
"license": "BSD-3-Clause"
},
@@ -3868,9 +3766,9 @@
"license": "MIT"
},
"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==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3974,16 +3872,17 @@
}
},
"node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
+ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz",
+ "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==",
"dev": true,
"license": "MIT"
},
@@ -4482,9 +4381,9 @@
}
},
"node_modules/memoize-one": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
- "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==",
"dev": true,
"license": "MIT"
},
@@ -4757,16 +4656,19 @@
}
},
"node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "7.4.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.9.tgz",
+ "integrity": "sha512-Brg/fp/iAVDOQoHxkuN5bEYhyQlZhxddI78yWsCbeEwTHXQjlNLtiJDUsp1GIptVqMI7/gkJMz4vVAc01mpoBw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "^2.0.2"
},
"engines": {
- "node": "*"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/minimist": {
@@ -4780,9 +4682,9 @@
}
},
"node_modules/morgan": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
- "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz",
+ "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4790,7 +4692,7 @@
"debug": "2.6.9",
"depd": "~2.0.0",
"on-finished": "~2.3.0",
- "on-headers": "~1.0.2"
+ "on-headers": "~1.1.0"
},
"engines": {
"node": ">= 0.8.0"
@@ -4873,6 +4775,7 @@
"integrity": "sha512-ZZFkaYzIfGfBvSM6QhA9dM8EEaUJOVewzGSRcXWbJELXDj0lajAtKaENCYxvF5yE+TgHg6NQb0CmgYMsMdcNJQ==",
"dev": true,
"license": "BSD-2-Clause",
+ "peer": true,
"dependencies": {
"hasown": "^2.0.2",
"object.entries": "^1.1.8",
@@ -4916,15 +4819,16 @@
}
},
"node_modules/object.entries": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
- "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
+ "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0"
+ "es-object-atoms": "^1.1.1"
},
"engines": {
"node": ">= 0.4"
@@ -4972,9 +4876,9 @@
}
},
"node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+ "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5041,9 +4945,9 @@
}
},
"node_modules/parse-headers": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
- "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz",
+ "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==",
"dev": true,
"license": "MIT"
},
@@ -5083,6 +4987,13 @@
"node": ">= 0.8"
}
},
+ "node_modules/path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -5091,14 +5002,11 @@
"license": "MIT"
},
"node_modules/path-to-regexp": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
- "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "isarray": "0.0.1"
- }
+ "license": "MIT"
},
"node_modules/path-type": {
"version": "4.0.0",
@@ -5137,6 +5045,7 @@
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -5179,19 +5088,16 @@
}
},
"node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
+ "license": "MIT"
},
"node_modules/qs": {
- "version": "6.14.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
- "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
+ "version": "6.14.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
+ "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -5222,16 +5128,16 @@
}
},
"node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
+ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
@@ -5248,14 +5154,12 @@
}
},
"node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "version": "19.2.4",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
+ "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -5347,17 +5251,17 @@
}
},
"node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "version": "19.2.4",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
+ "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
+ "scheduler": "^0.27.0"
},
"peerDependencies": {
- "react": "^18.3.1"
+ "react": "^19.2.4"
}
},
"node_modules/react-frame-component": {
@@ -5378,6 +5282,7 @@
"integrity": "sha512-Vf4gBsePlwdGvSZoLSBfd4HAP93HDauMY4fDjXhreg/vg6F3Fj/MXDNyTbltPC/xZKmZc+cjLu3598DdYK6sgQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"invariant": "^2.2.2"
},
@@ -5630,6 +5535,7 @@
"integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.15.4",
"@types/react-redux": "^7.1.20",
@@ -5697,18 +5603,50 @@
"react": ">=15"
}
},
+ "node_modules/react-router/node_modules/path-to-regexp": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
+ "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isarray": "0.0.1"
+ }
+ },
"node_modules/react-scroll-sync": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/react-scroll-sync/-/react-scroll-sync-0.9.0.tgz",
- "integrity": "sha512-IaMUSTbarj9mhjVtBl9I45Er8gQqV8rdb9A0eK77JJ8MvnLcFIlnoiXVx1NS9ACy9QELq7xCTxdIVEdhDV9R0Q==",
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/react-scroll-sync/-/react-scroll-sync-0.11.3.tgz",
+ "integrity": "sha512-jKu5mqOaTSfryXbGn14+Rw1+tyc7gNTCHtkCUPBkwSvIp8IQ8AwYrts1BpZszyGVXj4LyBdz8GgPxqVv+uV+CA==",
"dev": true,
"license": "MIT",
"dependencies": {
"prop-types": "^15.5.7"
},
"peerDependencies": {
- "react": "0.14.x || 15.x || 16.x || 17.x",
- "react-dom": "0.14.x || 15.x || 16.x || 17.x"
+ "react": "16.x || 17.x || 18.x",
+ "react-dom": "16.x || 17.x || 18.x"
+ }
+ },
+ "node_modules/react-select": {
+ "version": "5.10.2",
+ "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.10.2.tgz",
+ "integrity": "sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.0",
+ "@emotion/cache": "^11.4.0",
+ "@emotion/react": "^11.8.1",
+ "@floating-ui/dom": "^1.0.1",
+ "@types/react-transition-group": "^4.4.0",
+ "memoize-one": "^6.0.0",
+ "prop-types": "^15.6.0",
+ "react-transition-group": "^4.3.0",
+ "use-isomorphic-layout-effect": "^1.2.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/react-split-pane": {
@@ -5738,9 +5676,9 @@
}
},
"node_modules/react-textarea-autosize": {
- "version": "8.5.7",
- "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.7.tgz",
- "integrity": "sha512-2MqJ3p0Jh69yt9ktFIaZmORHXw4c4bxSIhCeWiFwmJ9EYKgLmuNII3e9c9b2UO+ijl4StnpZdqpxNIhTdHvqtQ==",
+ "version": "8.5.9",
+ "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.9.tgz",
+ "integrity": "sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5800,9 +5738,9 @@
}
},
"node_modules/react-virtualized-auto-sizer": {
- "version": "1.0.25",
- "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.25.tgz",
- "integrity": "sha512-YHsksEGDfsHbHuaBVDYwJmcktblcHGafz4ZVuYPQYuSHMUGjpwmUCrAOcvMSGMwwk1eFWj1M/1GwYpNPuyhaBg==",
+ "version": "1.0.26",
+ "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.26.tgz",
+ "integrity": "sha512-CblNyiNVw2o+hsa5/49NH2ogGxZ+t+3aweRvNSq7TVjDIlwk7ir4lencEg5HxHeSzwNarSkNkiu0qJSOXtxm5A==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -5851,6 +5789,13 @@
"react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
+ "node_modules/react-window/node_modules/memoize-one": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
+ "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/reactcss": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz",
@@ -5882,6 +5827,7 @@
"integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.9.2"
}
@@ -5995,13 +5941,6 @@
"redux": "^4"
}
},
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/rehype-minify-whitespace": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-4.0.5.tgz",
@@ -6250,13 +6189,13 @@
"license": "MIT"
},
"node_modules/resolve": {
- "version": "1.22.10",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
- "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "is-core-module": "^2.16.0",
+ "is-core-module": "^2.16.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -6353,23 +6292,20 @@
}
},
"node_modules/scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
+ "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
+ "license": "MIT"
},
"node_modules/scroll-into-view-if-needed": {
- "version": "2.2.31",
- "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz",
- "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
+ "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "compute-scroll-into-view": "^1.0.20"
+ "compute-scroll-into-view": "^3.0.2"
}
},
"node_modules/section-matter": {
@@ -6396,25 +6332,25 @@
}
},
"node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.1",
"mime": "1.6.0",
"ms": "2.1.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"range-parser": "~1.2.1",
- "statuses": "2.0.1"
+ "statuses": "~2.0.2"
},
"engines": {
"node": ">= 0.8.0"
@@ -6437,27 +6373,17 @@
"dev": true,
"license": "MIT"
},
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
"dev": true,
"license": "MIT",
"dependencies": {
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.19.0"
+ "send": "~0.19.1"
},
"engines": {
"node": ">= 0.8.0"
@@ -6565,47 +6491,30 @@
}
},
"node_modules/simple-git": {
- "version": "3.27.0",
- "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.27.0.tgz",
- "integrity": "sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==",
+ "version": "3.32.3",
+ "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.32.3.tgz",
+ "integrity": "sha512-56a5oxFdWlsGygOXHWrG+xjj5w9ZIt2uQbzqiIGdR/6i5iococ7WQ/bNPzWxCJdEUGUCmyMH0t9zMpRJTaKxmw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@kwsites/file-exists": "^1.1.1",
"@kwsites/promise-deferred": "^1.1.1",
- "debug": "^4.3.5"
+ "debug": "^4.4.0"
},
"funding": {
"type": "github",
"url": "https://github.com/steveukx/git-js?sponsor=1"
}
},
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/simple-swizzle/node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/slate": {
- "version": "0.91.4",
- "resolved": "https://registry.npmjs.org/slate/-/slate-0.91.4.tgz",
- "integrity": "sha512-aUJ3rpjrdi5SbJ5G1Qjr3arytfRkEStTmHjBfWq2A2Q8MybacIzkScSvGJjQkdTk3djCK9C9SEOt39sSeZFwTw==",
+ "version": "0.118.1",
+ "resolved": "https://registry.npmjs.org/slate/-/slate-0.118.1.tgz",
+ "integrity": "sha512-6H1DNgnSwAFhq/pIgf+tLvjNzH912M5XrKKhP9Frmbds2zFXdSJ6L/uFNyVKxQIkPzGWPD0m+wdDfmEuGFH5Tg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "immer": "^9.0.6",
- "is-plain-object": "^5.0.0",
+ "immer": "^10.0.3",
"tiny-warning": "^1.0.3"
}
},
@@ -6622,10 +6531,49 @@
"slate": ">=0.32.0 <0.50.0"
}
},
+ "node_modules/slate-dom": {
+ "version": "0.118.1",
+ "resolved": "https://registry.npmjs.org/slate-dom/-/slate-dom-0.118.1.tgz",
+ "integrity": "sha512-D6J0DF9qdJrXnRDVhYZfHzzpVxzqKRKFfS0Wcin2q0UC+OnQZ0lbCGJobatVbisOlbSe7dYFHBp9OZ6v1lEcbQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@juggle/resize-observer": "^3.4.0",
+ "direction": "^1.0.4",
+ "is-hotkey": "^0.2.0",
+ "is-plain-object": "^5.0.0",
+ "lodash": "^4.17.21",
+ "scroll-into-view-if-needed": "^3.1.0",
+ "tiny-invariant": "1.3.1"
+ },
+ "peerDependencies": {
+ "slate": ">=0.99.0"
+ }
+ },
+ "node_modules/slate-dom/node_modules/tiny-invariant": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
+ "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/slate-history": {
- "version": "0.93.0",
- "resolved": "https://registry.npmjs.org/slate-history/-/slate-history-0.93.0.tgz",
- "integrity": "sha512-Gr1GMGPipRuxIz41jD2/rbvzPj8eyar56TVMyJBvBeIpQSSjNISssvGNDYfJlSWM8eaRqf6DAcxMKzsLCYeX6g==",
+ "version": "0.113.1",
+ "resolved": "https://registry.npmjs.org/slate-history/-/slate-history-0.113.1.tgz",
+ "integrity": "sha512-J9NSJ+UG2GxoW0lw5mloaKcN0JI0x2IA5M5FxyGiInpn+QEutxT1WK7S/JneZCMFJBoHs1uu7S7e6pxQjubHmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^5.0.0"
+ },
+ "peerDependencies": {
+ "slate": ">=0.65.3"
+ }
+ },
+ "node_modules/slate-hyperscript": {
+ "version": "0.100.0",
+ "resolved": "https://registry.npmjs.org/slate-hyperscript/-/slate-hyperscript-0.100.0.tgz",
+ "integrity": "sha512-fb2KdAYg6RkrQGlqaIi4wdqz3oa0S4zKNBJlbnJbNOwa23+9FLD6oPVx9zUGqCSIpy+HIpOeqXrg0Kzwh/Ii4A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6647,39 +6595,30 @@
}
},
"node_modules/slate-react": {
- "version": "0.91.11",
- "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.91.11.tgz",
- "integrity": "sha512-2nS29rc2kuTTJrEUOXGyTkFATmTEw/R9KuUXadUYiz+UVwuFOUMnBKuwJWyuIBOsFipS+06SkIayEf5CKdARRQ==",
+ "version": "0.117.4",
+ "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.117.4.tgz",
+ "integrity": "sha512-9ckilyUzQS1VHJnstIpgInhcWnTDgv2Cd7m1HOQVl3zasChoapPSMftzT/wl/48grZaZYZIi4xVuzGTcFRUWFg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@juggle/resize-observer": "^3.4.0",
- "@types/is-hotkey": "^0.1.1",
- "@types/lodash": "^4.14.149",
- "direction": "^1.0.3",
- "is-hotkey": "^0.1.6",
- "is-plain-object": "^5.0.0",
- "lodash": "^4.17.4",
- "scroll-into-view-if-needed": "^2.2.20",
- "tiny-invariant": "1.0.6"
+ "direction": "^1.0.4",
+ "is-hotkey": "^0.2.0",
+ "lodash": "^4.17.21",
+ "scroll-into-view-if-needed": "^3.1.0",
+ "tiny-invariant": "1.3.1"
},
"peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0",
- "slate": ">=0.65.3"
+ "react": ">=18.2.0",
+ "react-dom": ">=18.2.0",
+ "slate": ">=0.114.0",
+ "slate-dom": ">=0.116.0"
}
},
- "node_modules/slate-react/node_modules/is-hotkey": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.1.8.tgz",
- "integrity": "sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/slate-react/node_modules/tiny-invariant": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz",
- "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
+ "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==",
"dev": true,
"license": "MIT"
},
@@ -6694,6 +6633,17 @@
"slate-react": ">=0.19.3"
}
},
+ "node_modules/slate/node_modules/immer": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz",
+ "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
"node_modules/sort-asc": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz",
@@ -6775,9 +6725,9 @@
}
},
"node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6964,7 +6914,6 @@
"integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
"dev": true,
"license": "MIT",
- "peer": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -7012,9 +6961,9 @@
}
},
"node_modules/undici-types": {
- "version": "6.20.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
- "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"dev": true,
"license": "MIT"
},
@@ -7039,7 +6988,6 @@
"integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/unist": "^3.0.0",
"bail": "^2.0.0",
@@ -7059,8 +7007,7 @@
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
"integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
"dev": true,
- "license": "MIT",
- "peer": true
+ "license": "MIT"
},
"node_modules/unified/node_modules/unist-util-stringify-position": {
"version": "4.0.0",
@@ -7068,7 +7015,6 @@
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/unist": "^3.0.0"
},
@@ -7083,7 +7029,6 @@
"integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/unist": "^3.0.0",
"vfile-message": "^4.0.0"
@@ -7094,12 +7039,11 @@
}
},
"node_modules/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==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
"dev": true,
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/unist": "^3.0.0",
"unist-util-stringify-position": "^4.0.0"
@@ -7231,16 +7175,6 @@
"node": ">= 0.8"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
"node_modules/url": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz",
@@ -7262,13 +7196,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/url/node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/use-composed-ref": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.4.0.tgz",
@@ -7285,9 +7212,9 @@
}
},
"node_modules/use-isomorphic-layout-effect": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz",
- "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz",
+ "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -7347,6 +7274,7 @@
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"uuid": "dist/bin/uuid"
}
@@ -7454,14 +7382,14 @@
"license": "MIT"
},
"node_modules/winston": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz",
- "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==",
+ "version": "3.19.0",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz",
+ "integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@colors/colors": "^1.6.0",
- "@dabh/diagnostics": "^2.0.2",
+ "@dabh/diagnostics": "^2.0.8",
"async": "^3.2.3",
"is-stream": "^2.0.0",
"logform": "^2.7.0",
@@ -7492,9 +7420,9 @@
}
},
"node_modules/xml-utils": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.1.tgz",
- "integrity": "sha512-Dn6vJ1Z9v1tepSjvnCpwk5QqwIPcEFKdgnjqfYOABv1ngSofuAhtlugcUC3ehS1OHdgDWSG6C5mvj+Qm15udTQ==",
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz",
+ "integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==",
"dev": true,
"license": "CC0-1.0"
},
diff --git a/themes/BinaryBuilders/assets/scss/_variables.scss b/themes/BinaryBuilders/assets/scss/_variables.scss
index 50eb7eb..e564945 100644
--- a/themes/BinaryBuilders/assets/scss/_variables.scss
+++ b/themes/BinaryBuilders/assets/scss/_variables.scss
@@ -2,23 +2,24 @@
:root {
// Layout
--header-height: 80px;
-
+
// Base Colors
--color-black: #0A041D;
--color-white: #ffffff;
-
+
// Brand Colors
--color-primary: #7B4DFF;
--color-primary-dark: #5435B4;
+ --color-primary-light: #8B6BBF;
--color-secondary: #E464FF;
--color-accent: #E464FF;
-
+
// Feature Colors
--color-turquoise: #4ECDC4;
--color-coral: #FF6B6B;
--color-lime: #96C93D;
--color-purple: #7A76FF;
-
+
// Text Colors
--color-text: var(--color-white);
--color-text-muted: rgba(255, 255, 255, 0.6);
@@ -26,7 +27,7 @@
--color-text-lighter: rgba(255, 255, 255, 0.95);
--color-text-secondary: var(--color-text-muted);
--color-text-blog: rgba(255, 255, 255, 0.9);
-
+
// Background Colors
--color-background: var(--color-black);
--color-background-hover: #150C33;
@@ -34,17 +35,17 @@
--color-background-transparent: rgba(10, 4, 29, 0.85);
--color-background-transparent-dark: rgba(10, 4, 29, 0.95);
--color-code-bg: rgba(255, 255, 255, 0.1);
-
+
// Surface Colors
--color-surface: rgba(255, 255, 255, 0.07);
--color-surface-1: rgba(255, 255, 255, 0.05);
-
+
// Border Colors
--color-border: #2A1B54;
--color-border-light: rgba(255, 255, 255, 0.12);
--color-border-hover: rgba(255, 255, 255, 0.25);
--color-blockquote-border: var(--color-text-muted);
-
+
// Gradient Colors
--gradient-purple: linear-gradient(135deg, #9D9BFF 0%, #5856D6 100%);
--gradient-turquoise: linear-gradient(135deg, #65E5DD 0%, #4ECDC4 100%);
@@ -59,35 +60,34 @@
--font-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--font-mono: 'SF Mono', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
-
+
// Font Weights
--font-weight-normal: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
-
+
// Line Heights
--line-height-tight: 1.2;
--line-height-normal: 1.5;
--line-height-relaxed: 1.75;
--line-height-loose: 2;
-
+
// Letter Spacing
--letter-spacing-tight: -0.015em;
--letter-spacing-normal: 0;
--letter-spacing-wide: 0.05em;
-
+
// Container Widths
--container-post: 680px;
--container-post-wide: 1200px;
--container-page: 1000px;
-
+
// Animation
--ease-out: cubic-bezier(0.5, 1, 0.89, 1);
--transition-standard: all 0.3s ease;
}
-// Ensure background color is applied to root elements
:root {
background-color: var(--color-background);
}
@@ -99,10 +99,3 @@ html {
body {
background-color: var(--color-background);
}
-
-// Dark theme overrides can be added here if needed
-// @media (prefers-color-scheme: dark) {
-// :root {
-// // Dark theme specific variables
-// }
-// }
\ No newline at end of file
diff --git a/themes/BinaryBuilders/assets/scss/components/_about.scss b/themes/BinaryBuilders/assets/scss/components/_about.scss
index 0070e06..a41c4ac 100644
--- a/themes/BinaryBuilders/assets/scss/components/_about.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_about.scss
@@ -176,7 +176,7 @@
background: var(--color-background);
padding: 2.5rem;
border-radius: 0;
- border: 1px solid rgba(255, 255, 255, 0.1);
+ border: 1px solid var(--color-border-light);
position: relative;
overflow: hidden;
transition: all 0.3s ease;
@@ -201,7 +201,7 @@
h4 {
font-size: 1.25rem;
- color: var(--color-white);
+ color: var(--color-text);
margin-bottom: 1rem;
font-weight: var(--font-weight-semibold);
}
@@ -259,7 +259,7 @@
h4 {
font-size: 1.25rem;
- color: var(--color-white);
+ color: var(--color-text);
margin-bottom: 1rem;
font-weight: var(--font-weight-semibold);
}
@@ -334,12 +334,12 @@
&:hover {
background: var(--color-surface);
- color: var(--color-white);
+ color: var(--color-text);
}
&.active {
background: var(--color-surface);
- color: var(--color-white);
+ color: var(--color-text);
border-left: 3px solid var(--color-primary);
}
@@ -378,7 +378,7 @@
h3 {
font-size: 2rem;
- color: var(--color-white);
+ color: var(--color-text);
margin-bottom: 1.5rem;
font-weight: var(--font-weight-semibold);
line-height: 1.2;
@@ -448,7 +448,7 @@
h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
- color: var(--color-white);
+ color: var(--color-text);
font-weight: var(--font-weight-semibold);
}
@@ -520,7 +520,7 @@
&--secondary {
background: var(--color-surface);
- color: var(--color-white);
+ color: var(--color-text);
border: 1px solid var(--color-border-light);
&:hover {
@@ -551,7 +551,7 @@
font-size: 2.5rem;
font-weight: var(--font-weight-bold);
margin-bottom: 2rem;
- color: var(--color-white);
+ color: var(--color-text);
line-height: 1.2;
background: var(--gradient-text);
-webkit-background-clip: text;
@@ -590,14 +590,14 @@
font-size: 3.5rem;
text-align: center;
margin-bottom: 1.5rem;
- color: var(--color-white);
-
+ color: var(--color-text);
+
@media (max-width: 768px) {
font-size: 2.75rem;
margin-bottom: 1rem;
}
}
-
+
.expertise-description {
font-size: 1.75rem;
text-align: center;
@@ -624,7 +624,7 @@
text-align: center;
margin-bottom: 1.5rem;
margin-top: 0;
- color: var(--color-white);
+ color: var(--color-text);
@media (max-width: 768px) {
font-size: 2.75rem;
@@ -643,7 +643,7 @@
.expertise-divider {
height: 1px;
- background: rgba(255, 255, 255, 0.1);
+ background: var(--color-border-light);
margin: 3.5rem 0;
position: relative;
width: 100vw;
@@ -673,7 +673,7 @@
h3 {
font-size: 2.5rem;
- color: var(--color-white);
+ color: var(--color-text);
font-weight: 700;
margin: 0;
diff --git a/themes/BinaryBuilders/assets/scss/components/_blog.scss b/themes/BinaryBuilders/assets/scss/components/_blog.scss
index 81972da..bc0e8ed 100644
--- a/themes/BinaryBuilders/assets/scss/components/_blog.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_blog.scss
@@ -23,14 +23,14 @@
}
.post-card {
- background: rgba(255, 255, 255, 0.05);
+ background: var(--color-surface);
border-radius: 0.5rem;
padding: 1.25rem;
text-decoration: none;
color: inherit;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
backdrop-filter: blur(10px);
- border: 1px solid rgba(255, 255, 255, 0.1);
+ border: 1px solid var(--color-border-light);
height: 280px;
display: flex;
@@ -190,13 +190,13 @@
.category {
padding: 0.25rem 0.75rem;
border-radius: 0;
- background: rgba(0, 122, 255, 0.1);
- color: #007AFF;
+ background: rgba(107, 63, 160, 0.1);
+ color: var(--color-primary);
text-decoration: none;
transition: all 0.2s ease;
&:hover {
- background: rgba(0, 122, 255, 0.2);
+ background: rgba(107, 63, 160, 0.15);
}
}
}
@@ -266,7 +266,7 @@
margin: 2rem -1.5rem;
padding: 1.5rem;
border-radius: 0.5rem;
- background: #1a1a1a;
+ background: var(--color-code-bg);
overflow-x: auto;
font-size: 0.9rem;
@@ -283,7 +283,7 @@
}
code {
- background: rgba(255, 255, 255, 0.1);
+ background: var(--color-code-bg);
padding: 0.2em 0.4em;
border-radius: 0.25rem;
font-size: 0.9em;
@@ -293,8 +293,8 @@
blockquote {
margin: 2rem 0;
padding: 1rem 1.5rem;
- border-left: 4px solid #007AFF;
- background: rgba(0, 122, 255, 0.1);
+ border-left: 4px solid var(--color-blockquote-border);
+ background: rgba(107, 63, 160, 0.08);
border-radius: 0 0.5rem 0.5rem 0;
font-style: italic;
@@ -317,7 +317,7 @@
.post-footer {
margin-top: 4rem;
padding-top: 2rem;
- border-top: 1px solid rgba(255, 255, 255, 0.1);
+ border-top: 1px solid var(--color-border-light);
.post-tags {
display: flex;
@@ -328,7 +328,7 @@
.tag {
padding: 0.25rem 0.75rem;
border-radius: 0;
- background: rgba(255, 255, 255, 0.1);
+ background: var(--color-surface);
color: var(--color-text-light);
text-decoration: none;
transition: all 0.2s ease;
@@ -355,12 +355,12 @@
a {
padding: 1rem;
border-radius: 0.5rem;
- background: rgba(255, 255, 255, 0.05);
+ background: var(--color-surface-1);
text-decoration: none;
transition: all 0.2s ease;
&:hover {
- background: rgba(255, 255, 255, 0.1);
+ background: var(--color-surface);
}
&.prev {
diff --git a/themes/BinaryBuilders/assets/scss/components/_contact.scss b/themes/BinaryBuilders/assets/scss/components/_contact.scss
index ce43941..a67d14c 100644
--- a/themes/BinaryBuilders/assets/scss/components/_contact.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_contact.scss
@@ -89,7 +89,7 @@
padding-top: 80px;
position: relative;
overflow: hidden;
- background-color: #0A041D;
+ background-color: var(--color-background);
color: var(--color-text);
&::before {
@@ -125,10 +125,10 @@
.contact-circle {
position: absolute;
pointer-events: none;
- background: rgba(10, 4, 29, 0.95);
+ background: rgba(247, 246, 243, 0.95);
backdrop-filter: blur(10px);
border-radius: 50%;
- box-shadow:
+ box-shadow:
inset 0 0 50px rgba(255, 255, 255, 0.1),
0 0 30px rgba(88, 86, 214, 0.2);
z-index: 1;
@@ -140,10 +140,10 @@
border-radius: inherit;
background: linear-gradient(
135deg,
- rgba(255, 107, 107, 0.7) 0%,
- rgba(78, 205, 196, 0.7) 25%,
- rgba(150, 201, 61, 0.7) 50%,
- rgba(255, 107, 107, 0.7) 75%
+ rgba(107, 63, 160, 0.7) 0%,
+ rgba(155, 111, 212, 0.7) 25%,
+ rgba(139, 107, 191, 0.7) 50%,
+ rgba(107, 63, 160, 0.7) 75%
);
background-size: 300% 300%;
mask: linear-gradient(#fff 0 0) content-box,
@@ -242,7 +242,7 @@
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 1.25rem;
- color: var(--color-white);
+ color: var(--color-text);
line-height: 1.2;
position: relative;
z-index: 10;
@@ -292,7 +292,7 @@
left: 0;
width: 100%;
height: 100%;
- background: linear-gradient(0deg, rgba(10, 4, 29, 0.7) 0%, rgba(10, 4, 29, 0.3) 100%);
+ background: linear-gradient(0deg, rgba(247, 246, 243, 0.7) 0%, rgba(247, 246, 243, 0.3) 100%);
}
@media (max-width: 768px) {
@@ -304,7 +304,7 @@
.contact-form {
position: relative;
padding: 2.5rem;
- background-color: rgba(10, 4, 29, 0.8);
+ background-color: var(--color-surface);
border: none;
margin-top: 2.5rem;
@@ -320,7 +320,7 @@
width: 100%;
padding: 1.25rem;
background-color: rgba(255, 255, 255, 0.05);
- border: 1px solid rgba(255, 255, 255, 0.1);
+ border: 1px solid var(--color-border-light);
color: var(--color-text);
font-size: 1.125rem;
transition: border-color 0.3s ease, background-color 0.3s ease;
@@ -347,7 +347,7 @@
position: absolute;
left: 1.25rem;
top: 1.25rem;
- color: rgba(255, 255, 255, 0.6);
+ color: var(--color-text-muted);
pointer-events: none;
transition: transform 0.3s ease, color 0.3s ease;
transform-origin: left top;
@@ -396,7 +396,7 @@
align-items: center;
gap: 0.5rem;
padding: 1rem 2rem;
- background: rgba(123, 63, 228, 0.15);
+ background: var(--color-primary);
color: var(--color-white);
text-decoration: none;
border-radius: 0;
@@ -418,7 +418,7 @@
height: 100%;
background: linear-gradient(45deg,
transparent,
- rgba(255, 255, 255, 0.2),
+ rgba(107, 63, 160, 0.15),
transparent
);
transform: translateX(-100%);
diff --git a/themes/BinaryBuilders/assets/scss/components/_footer.scss b/themes/BinaryBuilders/assets/scss/components/_footer.scss
index b09c3fc..737a638 100644
--- a/themes/BinaryBuilders/assets/scss/components/_footer.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_footer.scss
@@ -8,22 +8,15 @@
&__container {
max-width: 1200px;
margin: 0 auto;
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 1.5rem;
-
- @media (min-width: 768px) {
- grid-template-columns: repeat(5, 1fr);
- gap: 2rem;
- }
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ gap: 3rem 5rem;
+ text-align: center;
}
&__column {
- margin-bottom: 1.5rem;
-
- @media (min-width: 768px) {
- margin-bottom: 0;
- }
+ margin-bottom: 0;
}
&__heading {
@@ -100,14 +93,6 @@
align-items: center;
text-align: center;
gap: 1rem;
-
- @media (min-width: 768px) {
- flex-direction: row;
- justify-content: space-between;
- text-align: left;
- align-items: flex-start;
- gap: 1.5rem;
- }
}
&__address {
diff --git a/themes/BinaryBuilders/assets/scss/components/_get-in-touch.scss b/themes/BinaryBuilders/assets/scss/components/_get-in-touch.scss
index 8bb65e3..d585054 100644
--- a/themes/BinaryBuilders/assets/scss/components/_get-in-touch.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_get-in-touch.scss
@@ -69,10 +69,10 @@
left: 0;
width: 100%;
height: 100%;
- background: linear-gradient(0deg,
- rgba(10, 4, 29, 1) 0%,
- rgba(10, 4, 29, 0.8) 50%,
- rgba(10, 4, 29, 0.4) 100%
+ background: linear-gradient(0deg,
+ rgba(247, 246, 243, 1) 0%,
+ rgba(247, 246, 243, 0.8) 50%,
+ rgba(247, 246, 243, 0.4) 100%
);
}
@@ -111,13 +111,13 @@
align-items: center;
padding: 0.75rem 1.5rem;
background: rgba(255, 255, 255, 0.05);
- color: var(--color-white);
+ color: var(--color-text);
text-decoration: none;
border-radius: 0;
font-weight: 500;
font-size: 0.875rem;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
- border: 1px solid rgba(255, 255, 255, 0.1);
+ border: 1px solid var(--color-border-light);
position: relative;
overflow: hidden;
@@ -130,7 +130,7 @@
height: 100%;
background: linear-gradient(45deg,
transparent,
- rgba(255, 255, 255, 0.2),
+ rgba(107, 63, 160, 0.15),
transparent
);
transform: translateX(-100%);
diff --git a/themes/BinaryBuilders/assets/scss/components/_header.scss b/themes/BinaryBuilders/assets/scss/components/_header.scss
index 0964730..e5da542 100644
--- a/themes/BinaryBuilders/assets/scss/components/_header.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_header.scss
@@ -36,7 +36,7 @@ html {
&__logo {
a {
text-decoration: none;
- color: var(--color-white);
+ color: var(--color-text);
}
.binary-title {
@@ -44,7 +44,7 @@ html {
font-size: 1.5rem;
font-weight: 700;
letter-spacing: 0.05em;
- color: var(--color-white);
+ color: var(--color-text);
margin: 0;
display: flex;
align-items: center;
@@ -115,7 +115,7 @@ html {
}
&-button {
- color: var(--color-white);
+ color: var(--color-text);
font-size: 1rem;
padding: 0.75rem 1rem;
cursor: pointer;
@@ -135,7 +135,7 @@ html {
&:hover {
background: var(--color-background-alt);
- color: var(--color-white);
+ color: var(--color-text);
.ph {
opacity: 1;
@@ -191,7 +191,7 @@ html {
width: 240px;
height: 100%;
padding: 0.75rem;
- background: #0d0624;
+ background: var(--color-background-alt);
border: 1px solid var(--color-border-light);
border-radius: 0;
}
@@ -208,7 +208,7 @@ html {
align-items: center;
gap: 0.75rem;
padding: 0.75rem;
- color: var(--color-white);
+ color: var(--color-text);
text-decoration: none;
border-radius: 0;
transition: background-color 0.2s ease;
@@ -226,7 +226,7 @@ html {
img {
width: 18px;
height: 18px;
- filter: invert(1);
+ filter: none;
}
}
@@ -258,7 +258,7 @@ html {
display: flex;
align-items: center;
padding: 0.75rem;
- color: var(--color-white);
+ color: var(--color-text);
text-decoration: none;
border-radius: 0;
font-size: 0.95rem;
@@ -361,7 +361,7 @@ html {
svg {
path {
&[fill="#FFFFFF"] {
- fill: var(--color-white);
+ fill: var(--color-text);
}
&[fill="#D2E5F1"],
&[fill="#B5CFE4"] {
@@ -414,7 +414,7 @@ html {
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1.5rem;
- background: rgba(123, 63, 228, 0.15);
+ background: var(--color-primary);
color: var(--color-white);
text-decoration: none;
border-radius: 0;
@@ -488,7 +488,7 @@ html {
display: block;
width: 24px;
height: 2px;
- background-color: var(--color-white);
+ background-color: var(--color-text);
transition: transform 0.3s ease, opacity 0.3s ease;
& + .hamburger-line {
@@ -620,12 +620,12 @@ html {
display: flex;
align-items: center;
text-decoration: none;
- color: var(--color-white);
+ color: var(--color-text);
position: relative;
&.has-submenu {
cursor: pointer;
-
+
&:after {
content: '+';
font-size: 1.2rem;
@@ -663,7 +663,7 @@ html {
&-item {
padding: 0.75rem 1rem;
justify-content: flex-end;
- color: var(--color-white);
+ color: var(--color-text);
text-decoration: none;
display: flex;
font-size: 0.95rem;
@@ -672,7 +672,7 @@ html {
&:hover {
opacity: 1;
- background: rgba(255, 255, 255, 0.05);
+ background: rgba(0, 0, 0, 0.2);
border-radius: 0;
}
}
@@ -721,7 +721,7 @@ html {
.item-icon {
.ph {
font-size: 1.25rem;
- color: var(--color-white);
+ color: var(--color-text);
opacity: 0.9;
transition: opacity 0.2s ease;
}
diff --git a/themes/BinaryBuilders/assets/scss/components/_hero.scss b/themes/BinaryBuilders/assets/scss/components/_hero.scss
index b086aa2..046ec4c 100644
--- a/themes/BinaryBuilders/assets/scss/components/_hero.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_hero.scss
@@ -83,7 +83,7 @@
align-items: center;
justify-content: center;
padding: 5rem 2rem 3rem;
- background-color: #0A041D;
+ background-color: var(--color-background);
color: var(--color-text);
position: relative;
overflow: hidden;
@@ -95,7 +95,7 @@
&__circle {
position: absolute;
pointer-events: none;
- background: rgba(10, 4, 29, 0.95);
+ background: rgba(247, 246, 243, 0.95);
backdrop-filter: blur(10px);
border-radius: 50%;
box-shadow:
@@ -110,10 +110,10 @@
border-radius: inherit;
background: linear-gradient(
135deg,
- rgba(255, 107, 107, 0.7) 0%,
- rgba(78, 205, 196, 0.7) 25%,
- rgba(150, 201, 61, 0.7) 50%,
- rgba(255, 107, 107, 0.7) 75%
+ rgba(107, 63, 160, 0.7) 0%,
+ rgba(155, 111, 212, 0.7) 25%,
+ rgba(139, 107, 191, 0.7) 50%,
+ rgba(107, 63, 160, 0.7) 75%
);
background-size: 300% 300%;
mask: linear-gradient(#fff 0 0) content-box,
@@ -150,7 +150,7 @@
&__number {
position: absolute;
pointer-events: none;
- background: rgba(10, 4, 29, 0.95);
+ background: rgba(247, 246, 243, 0.95);
backdrop-filter: blur(10px);
box-shadow:
inset 0 0 50px rgba(255, 255, 255, 0.1),
@@ -163,10 +163,10 @@
inset: -2px;
background: linear-gradient(
135deg,
- rgba(255, 107, 107, 0.7) 0%,
- rgba(78, 205, 196, 0.7) 25%,
- rgba(150, 201, 61, 0.7) 50%,
- rgba(255, 107, 107, 0.7) 75%
+ rgba(107, 63, 160, 0.7) 0%,
+ rgba(155, 111, 212, 0.7) 25%,
+ rgba(139, 107, 191, 0.7) 50%,
+ rgba(107, 63, 160, 0.7) 75%
);
background-size: 300% 300%;
mask: linear-gradient(#fff 0 0) content-box,
@@ -346,13 +346,13 @@
justify-content: flex-start;
background: linear-gradient(
135deg,
- #FF6B6B 0%,
- #FF758C 15%,
- #4ECDC4 30%,
- #6EE7B7 45%,
- #96C93D 60%,
- #A7D129 75%,
- #FF6B6B 90%
+ #6B3FA0 0%,
+ #8B6BBF 15%,
+ #9B6FD4 30%,
+ #7B4DFF 45%,
+ #6B3FA0 60%,
+ #4E2D73 75%,
+ #6B3FA0 90%
);
background-size: 200% 200%;
animation: gradient-shift 15s ease-in-out infinite;
@@ -384,12 +384,12 @@
&:hover .button--primary {
background-color: transparent;
- color: #FFFFFF;
+ color: var(--color-text);
}
&:hover .button--primary:hover {
- background-color: #FFFFFF;
- color: #000000;
+ background-color: var(--color-primary);
+ color: var(--color-white);
}
@media (max-width: 768px) {
@@ -434,17 +434,17 @@
}
&--primary {
- background-color: #FFFFFF;
- color: #000000;
+ background-color: var(--color-primary);
+ color: var(--color-white);
}
&--secondary {
background-color: transparent;
- color: #FFFFFF;
+ color: var(--color-text);
&:hover {
- background-color: #FFFFFF;
- color: #000000;
+ background-color: var(--color-primary);
+ color: var(--color-white);
}
}
}
diff --git a/themes/BinaryBuilders/assets/scss/components/_home-hero.scss b/themes/BinaryBuilders/assets/scss/components/_home-hero.scss
new file mode 100644
index 0000000..c8e30ec
--- /dev/null
+++ b/themes/BinaryBuilders/assets/scss/components/_home-hero.scss
@@ -0,0 +1,324 @@
+@keyframes home-float-1 {
+ 0% { transform: translate(0, 0) rotate(0deg); }
+ 25% { transform: translate(-30px, 25px) rotate(5deg); }
+ 50% { transform: translate(-15px, -15px) rotate(-3deg); }
+ 75% { transform: translate(25px, -25px) rotate(4deg); }
+ 100% { transform: translate(0, 0) rotate(0deg); }
+}
+
+@keyframes home-float-2 {
+ 0% { transform: translate(0, 0) rotate(0deg); }
+ 25% { transform: translate(25px, -30px) rotate(-4deg); }
+ 50% { transform: translate(-20px, -35px) rotate(6deg); }
+ 75% { transform: translate(-25px, 15px) rotate(-2deg); }
+ 100% { transform: translate(0, 0) rotate(0deg); }
+}
+
+@keyframes home-float-3 {
+ 0% { transform: translate(0, 0) rotate(0deg); }
+ 33% { transform: translate(20px, 20px) rotate(8deg); }
+ 66% { transform: translate(-25px, -10px) rotate(-5deg); }
+ 100% { transform: translate(0, 0) rotate(0deg); }
+}
+
+@keyframes home-drift {
+ 0%, 100% { transform: translateY(0); }
+ 50% { transform: translateY(-15px); }
+}
+
+@keyframes home-pulse {
+ 0%, 100% { opacity: 0.12; transform: scale(1); }
+ 50% { opacity: 0.25; transform: scale(1.05); }
+}
+
+.home-hero {
+ min-height: 100vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: calc(var(--header-height) + 2rem) 2rem 4rem;
+ background-color: var(--color-background);
+ color: var(--color-text);
+ position: relative;
+ overflow: hidden;
+
+ &__bg {
+ position: absolute;
+ inset: 0;
+ pointer-events: none;
+
+ &::before {
+ content: '';
+ position: absolute;
+ inset: 0;
+ background-image: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.15) 1.5px, transparent 1.5px);
+ background-size: 20px 20px;
+ opacity: 0.25;
+ z-index: 0;
+ }
+
+ &::after {
+ content: '';
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ height: 150px;
+ background: linear-gradient(to bottom, transparent, var(--color-background) 95%);
+ z-index: 2;
+ }
+ }
+
+ &__shape {
+ position: absolute;
+ border-radius: 50%;
+ background: rgba(255, 255, 255, 0.05);
+ backdrop-filter: blur(10px);
+ z-index: 1;
+
+ &::before {
+ content: '';
+ position: absolute;
+ inset: -2px;
+ border-radius: inherit;
+ background: linear-gradient(
+ 135deg,
+ rgba(107, 63, 160, 0.7) 0%,
+ rgba(155, 111, 212, 0.7) 25%,
+ rgba(139, 107, 191, 0.7) 50%,
+ rgba(107, 63, 160, 0.7) 75%
+ );
+ background-size: 300% 300%;
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
+ mask-composite: xor;
+ -webkit-mask-composite: xor;
+ padding: 2px;
+ animation: gradient-shift 10s linear infinite;
+ }
+
+ // Large circle, top right
+ &--1 {
+ width: 280px;
+ height: 280px;
+ top: -80px;
+ right: -60px;
+ animation: home-float-1 22s ease-in-out infinite;
+ }
+
+ // Medium circle, bottom left
+ &--2 {
+ width: 200px;
+ height: 200px;
+ bottom: -60px;
+ left: -40px;
+ animation: home-float-2 26s ease-in-out infinite;
+ }
+
+ // Small rectangle, left side
+ &--3 {
+ width: 60px;
+ height: 220px;
+ border-radius: 4px;
+ bottom: 10%;
+ left: 8%;
+ transform: rotate(12deg);
+ animation: home-float-3 20s ease-in-out infinite;
+
+ &::before {
+ border-radius: 16px;
+ }
+ }
+
+ // Small circle, top left
+ &--4 {
+ width: 120px;
+ height: 120px;
+ top: 15%;
+ left: 12%;
+ animation: home-float-2 18s ease-in-out infinite;
+ opacity: 0.7;
+ }
+
+ // Medium pill, right side
+ &--5 {
+ width: 50px;
+ height: 160px;
+ border-radius: 4px;
+ top: 20%;
+ right: 10%;
+ transform: rotate(-8deg);
+ animation: home-float-1 24s ease-in-out infinite;
+
+ &::before {
+ border-radius: 16px;
+ }
+ }
+ }
+
+ .particle {
+ position: absolute;
+ border-radius: 50%;
+ background: currentColor;
+ pointer-events: none;
+ z-index: 1;
+
+ &:nth-child(6) {
+ width: 8px;
+ height: 8px;
+ top: 20%;
+ right: 25%;
+ animation: home-drift 8s ease-in-out infinite, home-pulse 6s ease-in-out infinite;
+ }
+
+ &:nth-child(7) {
+ width: 12px;
+ height: 12px;
+ top: 55%;
+ right: 35%;
+ animation: home-drift 11s ease-in-out infinite, home-pulse 9s ease-in-out infinite;
+ }
+
+ &:nth-child(8) {
+ width: 6px;
+ height: 6px;
+ top: 70%;
+ left: 30%;
+ animation: home-drift 14s ease-in-out infinite, home-pulse 7s ease-in-out infinite;
+ }
+
+ &:nth-child(9) {
+ width: 10px;
+ height: 10px;
+ top: 30%;
+ left: 22%;
+ animation: home-drift 10s ease-in-out infinite, home-pulse 8s ease-in-out infinite;
+ }
+
+ &:nth-child(10) {
+ width: 14px;
+ height: 14px;
+ bottom: 25%;
+ right: 20%;
+ animation: home-drift 13s ease-in-out infinite, home-pulse 10s ease-in-out infinite;
+ }
+ }
+
+ &__container {
+ max-width: 800px;
+ margin: 0 auto;
+ text-align: center;
+ position: relative;
+ z-index: 3;
+ }
+
+ &__title {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ gap: 0.05em;
+ width: 100%;
+ max-width: 100%;
+ font-size: 4.5rem;
+ font-weight: 700;
+ margin: 0 auto 1.5rem;
+ line-height: 0.98;
+ text-align: center;
+ background: var(--gradient-text);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+
+ &__title-static {
+ display: block;
+ }
+
+ &__dynamic-slot {
+ display: block;
+ min-height: 1em;
+ text-align: center;
+ }
+
+ &__dynamic-text {
+ display: inline-block;
+ transition: opacity 0.3s ease, transform 0.3s ease;
+ white-space: nowrap;
+ background: linear-gradient(
+ 135deg,
+ #6B3FA0 0%,
+ #8B6BBF 15%,
+ #9B6FD4 30%,
+ #7B4DFF 45%,
+ #6B3FA0 60%,
+ #4E2D73 75%,
+ #6B3FA0 90%
+ );
+ background-size: 200% 200%;
+ animation: gradient-shift 15s ease-in-out infinite;
+ -webkit-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ filter: brightness(1.2) contrast(1.1);
+ }
+
+ &__subtitle {
+ font-size: 1.5rem;
+ max-width: 600px;
+ margin: 0 auto 3rem;
+ opacity: 0.9;
+ line-height: 1.6;
+ color: var(--color-text-light);
+ }
+
+ &__cta {
+ display: flex;
+ gap: 1rem;
+ justify-content: center;
+
+ &:hover .button--primary {
+ background-color: transparent;
+ color: var(--color-text);
+ }
+
+ &:hover .button--primary:hover {
+ background-color: var(--color-primary);
+ color: var(--color-white);
+ }
+ }
+
+ @media (max-width: 768px) {
+ min-height: 80vh;
+ padding: 4rem 1.5rem;
+
+ &__title {
+ font-size: 2.75rem;
+ line-height: 1;
+ }
+
+
+ &__subtitle {
+ font-size: 1.15rem;
+ margin-bottom: 2.5rem;
+ }
+
+ &__cta {
+ flex-direction: column;
+ width: 100%;
+ padding: 0 1rem;
+
+ .button {
+ width: 100%;
+ justify-content: center;
+ }
+ }
+
+ &__shape {
+ &--1 { width: 180px; height: 180px; }
+ &--2 { width: 140px; height: 140px; }
+ &--3 { width: 40px; height: 150px; }
+ &--4 { width: 80px; height: 80px; }
+ &--5 { width: 35px; height: 110px; }
+ }
+ }
+}
diff --git a/themes/BinaryBuilders/assets/scss/components/_latest-insights.scss b/themes/BinaryBuilders/assets/scss/components/_latest-insights.scss
index 83c0a3d..2c185d7 100644
--- a/themes/BinaryBuilders/assets/scss/components/_latest-insights.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_latest-insights.scss
@@ -139,14 +139,14 @@
}
.highlighted-post {
- background: rgba(255, 255, 255, 0.03);
+ background: var(--color-surface-1);
backdrop-filter: blur(10px);
border-radius: 0;
overflow: hidden;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
- border: 1px solid rgba(255, 255, 255, 0.1);
-
+ border: 1px solid var(--color-border-light);
+
.insight-image {
aspect-ratio: 16/9;
overflow: hidden;
@@ -178,7 +178,7 @@
&:hover {
transform: translateY(-8px) scale(1.02);
- border-color: rgba(255, 255, 255, 0.2);
+ border-color: var(--color-border-hover);
.insight-image img {
transform: scale(1.1) rotate(2deg);
@@ -207,7 +207,7 @@
justify-content: space-between;
align-items: center;
font-size: 0.875rem;
- color: rgba(255, 255, 255, 0.6);
+ color: var(--color-text-muted);
margin-bottom: 1rem;
@media (max-width: 768px) {
@@ -227,11 +227,11 @@
font-weight: 600;
margin-bottom: 1rem;
line-height: 1.4;
- color: var(--color-white);
+ color: var(--color-text);
}
.insight-excerpt {
- color: rgba(255, 255, 255, 0.8);
+ color: var(--color-text-light);
margin-bottom: 1.5rem;
line-height: 1.6;
flex-grow: 1;
@@ -281,13 +281,13 @@
gap: 0.5rem;
padding: 0.75rem 1.5rem;
background: rgba(255, 255, 255, 0.05);
- color: var(--color-white);
+ color: var(--color-text);
text-decoration: none;
border-radius: 0;
font-weight: 500;
font-size: 0.875rem;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
- border: 1px solid rgba(255, 255, 255, 0.1);
+ border: 1px solid var(--color-border-light);
position: relative;
overflow: hidden;
diff --git a/themes/BinaryBuilders/assets/scss/components/_legal.scss b/themes/BinaryBuilders/assets/scss/components/_legal.scss
index 11f8f9f..c747c94 100644
--- a/themes/BinaryBuilders/assets/scss/components/_legal.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_legal.scss
@@ -12,7 +12,7 @@
background: var(--color-background);
padding: 2.5rem;
border-radius: 0;
- border: 1px solid rgba(255, 255, 255, 0.1);
+ border: 1px solid var(--color-border-light);
position: relative;
overflow: hidden;
@@ -34,7 +34,7 @@
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 2rem;
- color: var(--color-white);
+ color: var(--color-text);
position: relative;
z-index: 1;
}
@@ -43,7 +43,7 @@
font-size: 1.75rem;
font-weight: 600;
margin: 2.5rem 0 1rem;
- color: var(--color-white);
+ color: var(--color-text);
position: relative;
z-index: 1;
}
@@ -52,7 +52,7 @@
font-size: 1.5rem;
font-weight: 600;
margin: 2rem 0 1rem;
- color: var(--color-white);
+ color: var(--color-text);
position: relative;
z-index: 1;
}
@@ -83,8 +83,8 @@
position: relative;
z-index: 1;
padding: 1.5rem;
- border: 1px solid rgba(255, 255, 255, 0.1);
- background: rgba(255, 255, 255, 0.03);
+ border: 1px solid var(--color-border-light);
+ background: var(--color-surface-1);
br {
content: "";
diff --git a/themes/BinaryBuilders/assets/scss/components/_post.scss b/themes/BinaryBuilders/assets/scss/components/_post.scss
index 3b8b95d..1dbd55e 100644
--- a/themes/BinaryBuilders/assets/scss/components/_post.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_post.scss
@@ -134,7 +134,7 @@
display: inline-flex;
align-items: center;
padding: 0.25rem 0.75rem;
- background: rgba(255, 255, 255, 0.1);
+ background: var(--color-surface);
border-radius: 0;
color: var(--color-text-secondary);
text-decoration: none;
diff --git a/themes/BinaryBuilders/assets/scss/components/_team.scss b/themes/BinaryBuilders/assets/scss/components/_team.scss
index cd7cad2..9f0f911 100644
--- a/themes/BinaryBuilders/assets/scss/components/_team.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_team.scss
@@ -12,7 +12,7 @@
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
- color: rgba(255, 255, 255, 0.6);
+ color: var(--color-text-muted);
margin-bottom: 0.75rem;
}
@@ -21,13 +21,13 @@
line-height: 1.1;
font-weight: 600;
margin: 0 0 1rem;
- color: #fff;
+ color: var(--color-text);
}
.section-description {
font-size: 1.25rem;
line-height: 1.5;
- color: rgba(255, 255, 255, 0.8);
+ color: var(--color-text-light);
max-width: 800px;
}
diff --git a/themes/BinaryBuilders/assets/scss/components/_testimonials.scss b/themes/BinaryBuilders/assets/scss/components/_testimonials.scss
index 5605809..b62a891 100644
--- a/themes/BinaryBuilders/assets/scss/components/_testimonials.scss
+++ b/themes/BinaryBuilders/assets/scss/components/_testimonials.scss
@@ -89,7 +89,7 @@
.testimonial-card {
position: relative;
- background: rgba(255, 255, 255, 0.05);
+ background: var(--color-surface);
backdrop-filter: blur(10px);
border-radius: 0;
padding: 2rem;
diff --git a/themes/BinaryBuilders/assets/scss/components/_thesis.scss b/themes/BinaryBuilders/assets/scss/components/_thesis.scss
new file mode 100644
index 0000000..e4fe797
--- /dev/null
+++ b/themes/BinaryBuilders/assets/scss/components/_thesis.scss
@@ -0,0 +1,243 @@
+.thesis-page {
+ padding-top: 0;
+ background: var(--color-background);
+ color: var(--color-text);
+ min-height: 100vh;
+
+ .thesis-header {
+ padding: 8rem 0 4rem;
+ text-align: center;
+ position: relative;
+
+ &::before {
+ content: '';
+ position: absolute;
+ width: 150%;
+ height: 100%;
+ background: var(--gradient-primary);
+ opacity: 0.08;
+ filter: blur(120px);
+ transform: translateY(-40%) rotate(-5deg);
+ pointer-events: none;
+ }
+
+ .container {
+ position: relative;
+ z-index: 1;
+ }
+
+ .thesis-title {
+ font-size: 3.75rem;
+ font-weight: var(--font-weight-bold);
+ margin-bottom: 1.5rem;
+ line-height: 1.1;
+
+ .gradient-text {
+ background: var(--gradient-text);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+ }
+
+ .thesis-description {
+ font-size: 1.25rem;
+ color: var(--color-text-light);
+ max-width: 650px;
+ margin: 0 auto;
+ line-height: 1.6;
+ }
+ }
+
+ .thesis-content {
+ padding: 4rem 0;
+
+ &__inner {
+ max-width: 1200px;
+ margin: 0 auto;
+
+ .expertise-divider {
+ height: 1px;
+ background: var(--color-border-light);
+ margin: 3.5rem 0;
+ position: relative;
+ width: 100vw;
+ left: 50%;
+ right: 50%;
+ margin-left: -50vw;
+ margin-right: -50vw;
+ }
+
+ .expertise-item {
+ display: grid;
+ grid-template-columns: 1fr 2fr;
+ align-items: flex-start;
+ gap: 3rem;
+ padding: 2rem 0;
+
+ h3 {
+ font-size: 2.5rem;
+ color: var(--color-text);
+ font-weight: 700;
+ margin: 0;
+ }
+
+ p {
+ font-size: 1.5rem;
+ line-height: 1.5;
+ color: var(--color-text-light);
+ margin: 0;
+ }
+ }
+ }
+ }
+
+ // Reuse about page values section styles
+ .values-section {
+ position: relative;
+ padding: 4rem 0;
+
+ h2 {
+ font-size: 2.5rem;
+ font-weight: var(--font-weight-bold);
+ margin-bottom: 2.5rem;
+ text-align: left;
+ background: var(--gradient-text);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+
+ .values-list {
+ display: grid;
+ grid-template-columns: 300px 1fr;
+ gap: 4rem;
+ margin-top: 2rem;
+ align-items: start;
+
+ .values-nav {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+
+ .value-item {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ padding: 1.25rem;
+ background: transparent;
+ border: none;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ width: 100%;
+ text-align: left;
+ color: var(--color-text-light);
+ outline: none;
+
+ &:hover {
+ background: var(--color-surface);
+ color: var(--color-text);
+ }
+
+ &.active {
+ background: var(--color-surface);
+ color: var(--color-text);
+ border-left: 3px solid var(--color-primary);
+ }
+
+ h3 {
+ font-size: 1.125rem;
+ font-weight: var(--font-weight-semibold);
+ margin: 0;
+ line-height: 1.3;
+ }
+ }
+ }
+
+ .values-content {
+ position: relative;
+ min-height: 400px;
+
+ .value-content {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ display: none;
+ opacity: 0;
+ transition: opacity 0.5s ease;
+
+ &.active {
+ display: block;
+ opacity: 1;
+ position: relative;
+ animation: fadeIn 0.5s ease-in-out;
+ }
+
+ h3 {
+ font-size: 2rem;
+ color: var(--color-text);
+ margin-bottom: 1.5rem;
+ font-weight: var(--font-weight-semibold);
+ }
+
+ p {
+ font-size: 1.25rem;
+ color: var(--color-text-light);
+ line-height: 1.7;
+ }
+ }
+ }
+ }
+ }
+
+ @keyframes fadeIn {
+ from { opacity: 0; transform: translateY(10px); }
+ to { opacity: 1; transform: translateY(0); }
+ }
+
+ @media (max-width: 768px) {
+ .thesis-header {
+ padding: 6rem 0 3rem;
+
+ .thesis-title {
+ font-size: 2.5rem;
+ }
+
+ .thesis-description {
+ font-size: 1.125rem;
+ padding: 0 1rem;
+ }
+ }
+
+ .thesis-content__inner {
+ .expertise-item {
+ grid-template-columns: 1fr;
+ gap: 1rem;
+ padding: 1.5rem 0;
+
+ h3 { font-size: 2rem; }
+ p { font-size: 1.25rem; margin-top: 1rem; }
+ }
+
+ .expertise-divider {
+ margin: 2.5rem 0;
+ }
+ }
+
+ .values-section {
+ h2 {
+ font-size: 2rem;
+ padding: 0 1rem;
+ }
+
+ .values-list {
+ grid-template-columns: 1fr;
+ gap: 2rem;
+ padding: 0 1rem;
+
+ .values-content {
+ min-height: 450px;
+ }
+ }
+ }
+ }
+}
diff --git a/themes/BinaryBuilders/assets/scss/components/_work.scss b/themes/BinaryBuilders/assets/scss/components/_work.scss
new file mode 100644
index 0000000..a88897b
--- /dev/null
+++ b/themes/BinaryBuilders/assets/scss/components/_work.scss
@@ -0,0 +1,284 @@
+.work-page {
+ padding-top: 0;
+ background: var(--color-background);
+ color: var(--color-text);
+ min-height: 100vh;
+
+ .work-header {
+ padding: 8rem 0 4rem;
+ text-align: center;
+ position: relative;
+
+ &::before {
+ content: '';
+ position: absolute;
+ width: 150%;
+ height: 100%;
+ background: var(--gradient-primary);
+ opacity: 0.08;
+ filter: blur(120px);
+ transform: translateY(-40%) rotate(-5deg);
+ pointer-events: none;
+ }
+
+ .container {
+ position: relative;
+ z-index: 1;
+ }
+
+ .work-title {
+ font-size: 3.75rem;
+ font-weight: var(--font-weight-bold);
+ margin-bottom: 1.5rem;
+ line-height: 1.1;
+
+ .gradient-text {
+ background: var(--gradient-text);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+ }
+
+ .work-description {
+ font-size: 1.25rem;
+ color: var(--color-text-light);
+ max-width: 650px;
+ margin: 0 auto;
+ line-height: 1.6;
+ }
+ }
+
+ .work-capabilities {
+ padding: 0 0 3rem;
+
+ &__grid {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 1rem;
+ }
+
+ &__item {
+ padding: 1.25rem;
+ border: 1px solid var(--color-border-light);
+ transition: var(--transition-standard);
+
+ &:hover {
+ border-color: var(--color-primary);
+ }
+
+ h3 {
+ font-size: 0.95rem;
+ font-weight: var(--font-weight-semibold);
+ margin-bottom: 0.5rem;
+ color: var(--color-text);
+ }
+
+ p {
+ font-size: 0.8rem;
+ color: var(--color-text-muted);
+ line-height: 1.5;
+ margin: 0;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ &__grid {
+ grid-template-columns: repeat(2, 1fr);
+ }
+ }
+
+ @media (max-width: 480px) {
+ &__grid {
+ grid-template-columns: 1fr;
+ }
+ }
+ }
+
+ .work-section {
+ padding: 4rem 0;
+ border-top: 1px solid var(--color-border-light);
+
+ &:first-of-type {
+ border-top: none;
+ }
+
+ &__header {
+ margin-bottom: 3rem;
+
+ h2 {
+ font-size: 2.5rem;
+ font-weight: var(--font-weight-bold);
+ margin-bottom: 1rem;
+ background: var(--gradient-text);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+
+ p {
+ font-size: 1.15rem;
+ color: var(--color-text-muted);
+ max-width: 600px;
+ }
+ }
+ }
+
+ .work-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
+ gap: 1.5rem;
+ }
+
+ .work-card {
+ background: var(--color-surface);
+ border: 1px solid var(--color-border-light);
+ padding: 2rem;
+ transition: var(--transition-standard);
+
+ &:hover {
+ border-color: var(--color-border-hover);
+ transform: translateY(-2px);
+ }
+
+ &__logo {
+ height: 32px;
+ margin-bottom: 1rem;
+
+ img {
+ height: 100%;
+ width: auto;
+ filter: brightness(0);
+ opacity: 0.8;
+ }
+ }
+
+ &__name {
+ font-size: 1.25rem;
+ font-weight: var(--font-weight-semibold);
+ margin-bottom: 0.75rem;
+
+ a {
+ color: var(--color-text);
+ text-decoration: none;
+
+ &:hover {
+ color: var(--color-primary);
+ }
+ }
+ }
+
+ &__description {
+ font-size: 0.95rem;
+ color: var(--color-text-muted);
+ line-height: 1.6;
+ margin-bottom: 1rem;
+ }
+
+ &__status {
+ display: inline-block;
+ font-size: 0.75rem;
+ font-weight: var(--font-weight-semibold);
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ padding: 0.25rem 0.75rem;
+
+ &--live {
+ color: #4ECDC4;
+ border: 1px solid rgba(78, 205, 196, 0.3);
+ }
+
+ &--coming_soon {
+ color: var(--color-text-muted);
+ border: 1px solid var(--color-border-light);
+ }
+ }
+
+ &__subitems {
+ margin-top: 1.5rem;
+ padding-top: 1.5rem;
+ border-top: 1px solid var(--color-border-light);
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ }
+ }
+
+ .work-list {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.75rem;
+
+ &__item {
+ padding: 0.5rem 1.25rem;
+ border: 1px solid var(--color-border-light);
+ transition: var(--transition-standard);
+ font-size: 0.95rem;
+ font-weight: var(--font-weight-medium);
+ color: var(--color-text-light);
+
+ &:hover {
+ border-color: var(--color-border-hover);
+ color: var(--color-text);
+ }
+ }
+
+ &__name a {
+ color: inherit;
+ text-decoration: none;
+ }
+ }
+
+ .work-subitem {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ flex-wrap: wrap;
+
+ &__name {
+ font-weight: var(--font-weight-semibold);
+ font-size: 0.9rem;
+
+ a {
+ color: var(--color-text);
+ text-decoration: none;
+
+ &:hover {
+ color: var(--color-primary);
+ }
+ }
+ }
+
+ &__description {
+ font-size: 0.85rem;
+ color: var(--color-text-muted);
+ }
+
+ .work-card__status {
+ font-size: 0.65rem;
+ padding: 0.15rem 0.5rem;
+ }
+ }
+
+ @media (max-width: 768px) {
+ .work-header {
+ padding: 6rem 1rem 3rem;
+
+ .work-title {
+ font-size: 2.5rem;
+ }
+
+ .work-description {
+ font-size: 1.125rem;
+ }
+ }
+
+ .work-section__header {
+ h2 {
+ font-size: 2rem;
+ }
+ }
+
+ .work-grid {
+ grid-template-columns: 1fr;
+ }
+ }
+}
diff --git a/themes/BinaryBuilders/assets/scss/main.scss b/themes/BinaryBuilders/assets/scss/main.scss
index 9386518..25055e7 100644
--- a/themes/BinaryBuilders/assets/scss/main.scss
+++ b/themes/BinaryBuilders/assets/scss/main.scss
@@ -46,6 +46,7 @@ body {
// Components
@import "components/header";
@import "components/hero";
+@import "components/home-hero";
@import "components/get-in-touch";
@import "components/supported-networks";
@import "components/metrics";
@@ -63,6 +64,8 @@ body {
@import "components/hover-card";
@import "components/events";
@import "components/about";
+@import "components/thesis";
+@import "components/work";
@import "components/service";
@import "components/legal";
diff --git a/themes/BinaryBuilders/layouts/_default/home.html b/themes/BinaryBuilders/layouts/_default/home.html
index e723826..ac73a6c 100644
--- a/themes/BinaryBuilders/layouts/_default/home.html
+++ b/themes/BinaryBuilders/layouts/_default/home.html
@@ -1,9 +1,58 @@
{{ define "main" }}
- {{ partial "hero.html" . }}
- {{ partial "supported-networks.html" . }}
- {{ partial "metrics.html" . }}
- {{ partial "features.html" . }}
- {{ partial "testimonials.html" . }}
- {{ partial "latest-insights.html" . }}
- {{ partial "get-in-touch.html" . }}
+{{ $dynamicTexts := .Params.hero.dynamic_texts | default (slice "Networks" "Protocols" "Validators" "Solutions") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Building
+
+ {{ index $dynamicTexts 0 }}
+
+
+
{{ .Params.hero.subtitle }}
+
+ {{ with .Params.hero.primary_cta }}
+ {{ .text }} →
+ {{ end }}
+ {{ with .Params.hero.secondary_cta }}
+ {{ .text }} →
+ {{ end }}
+
+
+
+
+
{{ end }}
diff --git a/themes/BinaryBuilders/layouts/_default/thesis.html b/themes/BinaryBuilders/layouts/_default/thesis.html
new file mode 100644
index 0000000..8a75884
--- /dev/null
+++ b/themes/BinaryBuilders/layouts/_default/thesis.html
@@ -0,0 +1,58 @@
+{{ define "main" }}
+
+
+
+
{{ .Title }}
+
{{ .Description }}
+
+
+
+
+
+
+ {{ .Content }}
+
+
+
+
+
+
+
What We Stand For
+
+
+ {{ range $index, $value := .Params.values }}
+
+ {{ end }}
+