-
-
-
404 - Not Found
-
- Try again on your homepage
-
-
-
+
+
+
404 - Not Found
+
+ Try again on the homepage
+
-
);
}
diff --git a/app/frontend/types/company.ts b/app/frontend/types/company.ts
index 15f2847..27e3c12 100644
--- a/app/frontend/types/company.ts
+++ b/app/frontend/types/company.ts
@@ -1,4 +1,4 @@
-import { GeoFragment } from "./geo_fragment";
+import { GeoFragment } from "./fragments/geo";
import { Technology } from "./technology";
export interface Company {
diff --git a/app/frontend/types/company_filter.ts b/app/frontend/types/company_filter.ts
new file mode 100644
index 0000000..ee0f463
--- /dev/null
+++ b/app/frontend/types/company_filter.ts
@@ -0,0 +1,7 @@
+export interface CompanyFilter {
+ name?: string;
+ continent?: string;
+ country?: string;
+ region?: string;
+ city?: string;
+}
diff --git a/app/frontend/types/geo_fragment.ts b/app/frontend/types/fragments/geo.ts
similarity index 100%
rename from app/frontend/types/geo_fragment.ts
rename to app/frontend/types/fragments/geo.ts
diff --git a/app/frontend/types/fragments/option.ts b/app/frontend/types/fragments/option.ts
new file mode 100644
index 0000000..d92ad48
--- /dev/null
+++ b/app/frontend/types/fragments/option.ts
@@ -0,0 +1,4 @@
+export interface Option {
+ label: string;
+ value: string;
+}
diff --git a/app/models/company.rb b/app/models/company.rb
index 7652c29..d302937 100644
--- a/app/models/company.rb
+++ b/app/models/company.rb
@@ -19,6 +19,10 @@ class Company < ApplicationRecord
validates :careers_page, url: { no_local: true, public_suffix: true }, allow_blank: true
validates :slug, presence: true
+ scope :with_technologies, -> { includes(:technologies) }
+ scope :with_locations, -> { includes(:continent, country: :continent, region: :country, city: :region) }
+ scope :with_all_associations, -> { with_technologies.with_locations }
+
private
def slug_candidates
diff --git a/app/serializers/company_options_serializer.rb b/app/serializers/company_options_serializer.rb
new file mode 100644
index 0000000..6984d16
--- /dev/null
+++ b/app/serializers/company_options_serializer.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+class CompanyOptionsSerializer < Oj::Serializer
+ object_as :filter_params
+
+ has_many :continents, serializer: Fragment::OptionSerializer do
+ Continent.all
+ end
+
+ has_many :countries, serializer: Fragment::OptionSerializer do
+ if filter_params[:continent]
+ Country.includes(:continent).where(continent: { slug: filter_params[:continent] })
+ else
+ []
+ end
+ end
+
+ has_many :regions, serializer: Fragment::OptionSerializer do
+ if filter_params[:continent] && filter_params[:country]
+ Region.includes(:country).where(country: { slug: filter_params[:country] })
+ else
+ []
+ end
+ end
+
+ has_many :cities, serializer: Fragment::OptionSerializer do
+ if filter_params[:continent] && filter_params[:country] && filter_params[:region]
+ City.includes(:region).where(region: { slug: filter_params[:region] })
+ else
+ []
+ end
+ end
+end
diff --git a/app/serializers/company_serializer.rb b/app/serializers/company_serializer.rb
index d23dd41..51a3936 100644
--- a/app/serializers/company_serializer.rb
+++ b/app/serializers/company_serializer.rb
@@ -19,10 +19,10 @@ class CompanySerializer < ApplicationSerializer
end
has_many :technologies, serializer: TechnologySerializer
- has_one :continent, serializer: GeoFragmentSerializer
- has_one :country, serializer: GeoFragmentSerializer
- has_one :region, serializer: GeoFragmentSerializer
- has_one :city, serializer: GeoFragmentSerializer
+ has_one :continent, serializer: Fragment::GeoSerializer
+ has_one :country, serializer: Fragment::GeoSerializer
+ has_one :region, serializer: Fragment::GeoSerializer
+ has_one :city, serializer: Fragment::GeoSerializer
private
diff --git a/app/serializers/fragment/geo_serializer.rb b/app/serializers/fragment/geo_serializer.rb
new file mode 100644
index 0000000..a5dcf9c
--- /dev/null
+++ b/app/serializers/fragment/geo_serializer.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module Fragment
+ class GeoSerializer < ApplicationSerializer
+ attributes(
+ :id,
+ :slug,
+ :name,
+ )
+ end
+end
diff --git a/app/serializers/fragment/option_serializer.rb b/app/serializers/fragment/option_serializer.rb
new file mode 100644
index 0000000..cf52fff
--- /dev/null
+++ b/app/serializers/fragment/option_serializer.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+module Fragment
+ class OptionSerializer < ApplicationSerializer
+ attributes(
+ name: :label,
+ slug: :value,
+ )
+ end
+end
diff --git a/app/serializers/geo_fragment_serializer.rb b/app/serializers/geo_fragment_serializer.rb
deleted file mode 100644
index 6093d3e..0000000
--- a/app/serializers/geo_fragment_serializer.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class GeoFragmentSerializer < ApplicationSerializer
- attributes(
- :id,
- :slug,
- :name,
- )
-end
diff --git a/db/seeds.rb b/db/seeds.rb
index 2aa06fc..968fe7e 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -7,18 +7,11 @@
class Seeder
class << self
def perform
- destroy_data!
seed_geo_data
seed_technologies
seed_companies
end
- def destroy_data!
- CompanyTechnology.destroy_all
- Technology.destroy_all
- Company.destroy_all
- end
-
def seed_geo_data
africa = Continent.create!(name: "Africa")
asia = Continent.create!(name: "Asia")
@@ -62,12 +55,40 @@ def seed_geo_data
sao_paulo = Region.create!(name: "Sao Paulo", country: brazil)
sao_paulo_city = City.create!(name: "Sao Paulo City", region: sao_paulo)
- @sample_cities = [nairobi, tokyo, london, new_york_city, sydney, sao_paulo_city]
+ @sample_cities = [
+ nairobi,
+ tokyo,
+ london,
+ new_york_city,
+ sydney,
+ sao_paulo_city,
+ ]
end
def seed_technologies
@ruby = Technology.create!(name: "Ruby", background_color: "#cc0000", text_color: "#ffffff")
@rails = Technology.create!(name: "Ruby on Rails", background_color: "#cc0000", text_color: "#ffffff")
+
+ # create 8 more technologies related to Ruby and Ruby on Rails
+ rspec = Technology.create!(name: "RSpec", background_color: "#cc0000", text_color: "#ffffff")
+ sidekiq = Technology.create!(name: "Sidekiq", background_color: "#cc0000", text_color: "#ffffff")
+ postgres = Technology.create!(name: "PostgreSQL", background_color: "#336791", text_color: "#ffffff")
+ redis = Technology.create!(name: "Redis", background_color: "#dc382d", text_color: "#ffffff")
+ react = Technology.create!(name: "React", background_color: "#61dafb", text_color: "#000000")
+ vuejs = Technology.create!(name: "Vue.js", background_color: "#4fc08d", text_color: "#ffffff")
+ graphql = Technology.create!(name: "GraphQL", background_color: "#e535ab", text_color: "#ffffff")
+ elasticsearch = Technology.create!(name: "Elasticsearch", background_color: "#005571", text_color: "#ffffff")
+
+ @sample_technologies = [
+ rspec,
+ sidekiq,
+ postgres,
+ redis,
+ react,
+ vuejs,
+ graphql,
+ elasticsearch,
+ ]
end
def seed_companies
@@ -87,24 +108,18 @@ def seed_companies
technologies: [@ruby, @rails],
)
- create_records(Company, 48) do |i|
- {
+ 48.times do |i|
+ Company.create!(
name: "Company #{i}",
slug: "company-#{i}",
- website: "about:blank",
- careers_page: "about:blank",
+ website: "https://ruby-companies.org",
+ careers_page: "https://ruby-companies.org",
description: "Welcome to the page of Company #{i}. We are a company that does things.",
- city_id: @sample_cities.sample.id,
- }
+ city: @sample_cities.sample,
+ technologies: [@ruby, @rails] + @sample_technologies.sample(2),
+ )
end
end
-
- private
-
- def create_records(model, count, &block)
- record_data = Array.new(count, &block)
- model.insert_all!(record_data)
- end
end
end
diff --git a/package.json b/package.json
index 5ed9ca3..7cf75f9 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,14 @@
},
"dependencies": {
"@inertiajs/react": "^1.2.0",
+ "@radix-ui/react-dialog": "^1.1.1",
+ "@radix-ui/react-popover": "^1.1.1",
"@radix-ui/react-separator": "^1.1.0",
"@radix-ui/react-slot": "^1.1.0",
"@tanstack/react-table": "^8.19.3",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
+ "cmdk": "1.0.0",
"lucide-react": "^0.412.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
diff --git a/spec/controllers/companies_controller_spec.rb b/spec/controllers/companies_controller_spec.rb
index abb82eb..64c7cc9 100644
--- a/spec/controllers/companies_controller_spec.rb
+++ b/spec/controllers/companies_controller_spec.rb
@@ -15,6 +15,56 @@
expect_inertia.to(render_component("companies/index"))
expect(inertia.props[:companies]).to(be_serialized_many(companies))
end
+
+ it "has a valid filter declaration" do
+ expect(described_class.declarations_validator).to(be_valid)
+ end
+
+ it "applies filters" do
+ create(:company, name: "Ruby Corp")
+ create(:company, name: "Python Inc")
+
+ get "/companies", params: { filter: { name: "Ruby" } }
+
+ expect(inertia.props[:companies].length).to(eq(1))
+ expect(inertia.props[:companies].first[:name]).to(eq("Ruby Corp"))
+ end
+
+ it "sorts companies by name in ascending order by default" do
+ create(:company, name: "Zebra Tech")
+ create(:company, name: "Aardvark Solutions")
+
+ get "/companies"
+
+ expect(inertia.props[:companies].first[:name]).to(eq("Aardvark Solutions"))
+ expect(inertia.props[:companies].last[:name]).to(eq("Zebra Tech"))
+ end
+
+ it "includes pagination in the response" do
+ create_list(:company, 5)
+
+ get "/companies"
+
+ expect(inertia.props[:pagination]).to(be_present)
+ end
+
+ it "includes company options in the response" do
+ get "/companies"
+
+ expect(inertia.props[:options]).to(be_present)
+ expect(inertia.props[:options]).to(have_key(:continents))
+ expect(inertia.props[:options]).to(have_key(:countries))
+ expect(inertia.props[:options]).to(have_key(:regions))
+ expect(inertia.props[:options]).to(have_key(:cities))
+ end
+
+ it "assigns compact filters" do
+ get "/companies", params: { filter: { name: "Ruby", continent: "", country: "USA", region: nil, city: " " } }
+
+ expect(inertia.props[:filters].keys.count).to(eq(2))
+ expect(inertia.props[:filters][:name]).to(eq("Ruby"))
+ expect(inertia.props[:filters][:country]).to(eq("USA"))
+ end
end
describe "#show", inertia: true do
@@ -26,5 +76,11 @@
expect_inertia.to(render_component("companies/show"))
expect(inertia.props[:company]).to(be_serialized_one(company))
end
+
+ it "returns a 404 for non-existent company" do
+ get "/companies/non-existent-slug"
+
+ expect(response).to(have_http_status(:not_found))
+ end
end
end
diff --git a/spec/support/inertia.rb b/spec/support/inertia.rb
index 8ec6885..029afb9 100644
--- a/spec/support/inertia.rb
+++ b/spec/support/inertia.rb
@@ -13,7 +13,7 @@
@actual_ids = actual&.map { |item| item[:id] }
@expected_ids = expected_scope&.map(&:id)
- expect(@actual_ids).to(eq(@expected_ids))
+ expect(@actual_ids).to(contain_exactly(*@expected_ids))
end
failure_message do
diff --git a/yarn.lock b/yarn.lock
index aecb5c8..ac325ad 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -376,6 +376,15 @@ __metadata:
languageName: node
linkType: hard
+"@babel/runtime@npm:^7.13.10":
+ version: 7.25.6
+ resolution: "@babel/runtime@npm:7.25.6"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 10c0/d6143adf5aa1ce79ed374e33fdfd74fa975055a80bc6e479672ab1eadc4e4bfd7484444e17dd063a1d180e051f3ec62b357c7a2b817e7657687b47313158c3d2
+ languageName: node
+ linkType: hard
+
"@babel/template@npm:^7.22.15":
version: 7.24.0
resolution: "@babel/template@npm:7.24.0"
@@ -669,6 +678,44 @@ __metadata:
languageName: node
linkType: hard
+"@floating-ui/core@npm:^1.6.0":
+ version: 1.6.8
+ resolution: "@floating-ui/core@npm:1.6.8"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.8"
+ checksum: 10c0/d6985462aeccae7b55a2d3f40571551c8c42bf820ae0a477fc40ef462e33edc4f3f5b7f11b100de77c9b58ecb581670c5c3f46d0af82b5e30aa185c735257eb9
+ languageName: node
+ linkType: hard
+
+"@floating-ui/dom@npm:^1.0.0":
+ version: 1.6.11
+ resolution: "@floating-ui/dom@npm:1.6.11"
+ dependencies:
+ "@floating-ui/core": "npm:^1.6.0"
+ "@floating-ui/utils": "npm:^0.2.8"
+ checksum: 10c0/02ef34a75a515543c772880338eea7b66724997bd5ec7cd58d26b50325709d46d480a306b84e7d5509d734434411a4bcf23af5680c2e461e6e6a8bf45d751df8
+ languageName: node
+ linkType: hard
+
+"@floating-ui/react-dom@npm:^2.0.0":
+ version: 2.1.2
+ resolution: "@floating-ui/react-dom@npm:2.1.2"
+ dependencies:
+ "@floating-ui/dom": "npm:^1.0.0"
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+ checksum: 10c0/e855131c74e68cab505f7f44f92cd4e2efab1c125796db3116c54c0859323adae4bf697bf292ee83ac77b9335a41ad67852193d7aeace90aa2e1c4a640cafa60
+ languageName: node
+ linkType: hard
+
+"@floating-ui/utils@npm:^0.2.8":
+ version: 0.2.8
+ resolution: "@floating-ui/utils@npm:0.2.8"
+ checksum: 10c0/a8cee5f17406c900e1c3ef63e3ca89b35e7a2ed645418459a73627b93b7377477fc888081011c6cd177cac45ec2b92a6cab018c14ea140519465498dddd2d3f9
+ languageName: node
+ linkType: hard
+
"@humanwhocodes/config-array@npm:^0.11.14":
version: 0.11.14
resolution: "@humanwhocodes/config-array@npm:0.11.14"
@@ -764,151 +811,776 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
- version: 0.3.25
- resolution: "@jridgewell/trace-mapping@npm:0.3.25"
+"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
+ version: 0.3.25
+ resolution: "@jridgewell/trace-mapping@npm:0.3.25"
+ dependencies:
+ "@jridgewell/resolve-uri": "npm:^3.1.0"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.14"
+ checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4
+ languageName: node
+ linkType: hard
+
+"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1":
+ version: 5.1.1-v1
+ resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1"
+ dependencies:
+ eslint-scope: "npm:5.1.1"
+ checksum: 10c0/75dda3e623b8ad7369ca22552d6beee337a814b2d0e8a32d23edd13fcb65c8082b32c5d86e436f3860dd7ade30d91d5db55d4ef9a08fb5a976c718ecc0d88a74
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.5":
+ version: 2.1.5
+ resolution: "@nodelib/fs.scandir@npm:2.1.5"
+ dependencies:
+ "@nodelib/fs.stat": "npm:2.0.5"
+ run-parallel: "npm:^1.1.9"
+ checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
+ version: 2.0.5
+ resolution: "@nodelib/fs.stat@npm:2.0.5"
+ checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": "npm:2.1.5"
+ fastq: "npm:^1.6.0"
+ checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
+ languageName: node
+ linkType: hard
+
+"@npmcli/agent@npm:^2.0.0":
+ version: 2.2.2
+ resolution: "@npmcli/agent@npm:2.2.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ http-proxy-agent: "npm:^7.0.0"
+ https-proxy-agent: "npm:^7.0.1"
+ lru-cache: "npm:^10.0.1"
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@npmcli/fs@npm:3.1.0"
+ dependencies:
+ semver: "npm:^7.3.5"
+ checksum: 10c0/162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e
+ languageName: node
+ linkType: hard
+
+"@pkgjs/parseargs@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "@pkgjs/parseargs@npm:0.11.0"
+ checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
+ languageName: node
+ linkType: hard
+
+"@pkgr/core@npm:^0.1.0":
+ version: 0.1.1
+ resolution: "@pkgr/core@npm:0.1.1"
+ checksum: 10c0/3f7536bc7f57320ab2cf96f8973664bef624710c403357429fbf680a5c3b4843c1dbd389bb43daa6b1f6f1f007bb082f5abcb76bb2b5dc9f421647743b71d3d8
+ languageName: node
+ linkType: hard
+
+"@radix-ui/primitive@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/primitive@npm:1.0.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ checksum: 10c0/912216455537db3ca77f3e7f70174fb2b454fbd4a37a0acb7cfadad9ab6131abdfb787472242574460a3c301edf45738340cc84f6717982710082840fde7d916
+ languageName: node
+ linkType: hard
+
+"@radix-ui/primitive@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/primitive@npm:1.1.0"
+ checksum: 10c0/1dcc8b5401799416ff8bdb15c7189b4536c193220ad8fd348a48b88f804ee38cec7bd03e2b9641f7da24610e2f61f23a306911ce883af92c4e8c1abac634cb61
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-arrow@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-arrow@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/cbe059dfa5a9c1677478d363bb5fd75b0c7a08221d0ac7f8e7b9aec9dbae9754f6a3518218cf63e4ed53df6c36d193c8d2618d03433a37aa0cb7ee77a60a591f
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-compose-refs@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/react-compose-refs@npm:1.0.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/be06f8dab35b5a1bffa7a5982fb26218ddade1acb751288333e3b89d7b4a7dfb5a6371be83876dac0ec2ebe0866d295e8618b778608e1965342986ea448040ec
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-compose-refs@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-compose-refs@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/7e18706084397d9458ca3473d8565b10691da06f6499a78edbcc4bd72cde08f62e91120658d17d58c19fc39d6b1dffe0133cc4535c8f5fce470abd478f6107e5
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-context@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/react-context@npm:1.0.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/3de5761b32cc70cd61715527f29d8c699c01ab28c195ced972ccbc7025763a373a68f18c9f948c7a7b922e469fd2df7fee5f7536e3f7bad44ffc06d959359333
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-context@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-context@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/c843980f568cc61b512708863ec84c42a02e0f88359b22ad1c0e290cea3e6d7618eccbd2cd37bd974fadaa7636cbed5bda27553722e61197eb53852eaa34f1bb
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-dialog@npm:1.0.5":
+ version: 1.0.5
+ resolution: "@radix-ui/react-dialog@npm:1.0.5"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/primitive": "npm:1.0.1"
+ "@radix-ui/react-compose-refs": "npm:1.0.1"
+ "@radix-ui/react-context": "npm:1.0.1"
+ "@radix-ui/react-dismissable-layer": "npm:1.0.5"
+ "@radix-ui/react-focus-guards": "npm:1.0.1"
+ "@radix-ui/react-focus-scope": "npm:1.0.4"
+ "@radix-ui/react-id": "npm:1.0.1"
+ "@radix-ui/react-portal": "npm:1.0.4"
+ "@radix-ui/react-presence": "npm:1.0.1"
+ "@radix-ui/react-primitive": "npm:1.0.3"
+ "@radix-ui/react-slot": "npm:1.0.2"
+ "@radix-ui/react-use-controllable-state": "npm:1.0.1"
+ aria-hidden: "npm:^1.1.1"
+ react-remove-scroll: "npm:2.5.5"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/c5b3069397379e79857a3203f3ead4d12d87736b59899f02a63e620a07dd1e6704e15523926cdf8e39afe1c945a7ff0f2533c5ea5be1e17c3114820300a51133
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-dialog@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-dialog@npm:1.1.1"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-context": "npm:1.1.0"
+ "@radix-ui/react-dismissable-layer": "npm:1.1.0"
+ "@radix-ui/react-focus-guards": "npm:1.1.0"
+ "@radix-ui/react-focus-scope": "npm:1.1.0"
+ "@radix-ui/react-id": "npm:1.1.0"
+ "@radix-ui/react-portal": "npm:1.1.1"
+ "@radix-ui/react-presence": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-slot": "npm:1.1.0"
+ "@radix-ui/react-use-controllable-state": "npm:1.1.0"
+ aria-hidden: "npm:^1.1.1"
+ react-remove-scroll: "npm:2.5.7"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/a21e318e8d45bed22067880f66beb4ea91118a6c0d43aa20de495c0373b53c12dfe28f58196d5b33300573a5e24e064ec53648a576f02366fb5a297d887b0860
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-dismissable-layer@npm:1.0.5":
+ version: 1.0.5
+ resolution: "@radix-ui/react-dismissable-layer@npm:1.0.5"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/primitive": "npm:1.0.1"
+ "@radix-ui/react-compose-refs": "npm:1.0.1"
+ "@radix-ui/react-primitive": "npm:1.0.3"
+ "@radix-ui/react-use-callback-ref": "npm:1.0.1"
+ "@radix-ui/react-use-escape-keydown": "npm:1.0.3"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/7e4308867aecfb07b506330c1964d94a52247ab9453725613cd326762aa13e483423c250f107219c131b0449600eb8d1576ce3159c2b96e8c978f75e46062cb2
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-dismissable-layer@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-dismissable-layer@npm:1.1.0"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ "@radix-ui/react-use-escape-keydown": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/72967068ab02127b668ecfd0a1863149e2a42d9fd12d3247f51422a41f3d5faa82a147a5b0a8a6ec609eff8fe6baede6fb7d6111f76896656d13567e3ec29ba8
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-focus-guards@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/react-focus-guards@npm:1.0.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/d5fd4e5aa9d9a87c8ad490b3b4992d6f1d9eddf18e56df2a2bcf8744c4332b275d73377fd193df3e6ba0ad9608dc497709beca5c64de2b834d5f5350b3c9a272
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-focus-guards@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-focus-guards@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/23af9ff17244568db9b2e99ae6e5718747a4b656bf12b1b15b0d3adca407988641a930612eca35a61b7e15d1ce312b3db13ea95999fa31ae641aaaac1e325df8
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-focus-scope@npm:1.0.4":
+ version: 1.0.4
+ resolution: "@radix-ui/react-focus-scope@npm:1.0.4"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/react-compose-refs": "npm:1.0.1"
+ "@radix-ui/react-primitive": "npm:1.0.3"
+ "@radix-ui/react-use-callback-ref": "npm:1.0.1"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/2fce0bafcab4e16cf4ed7560bda40654223f3d0add6b231e1c607433030c14e6249818b444b7b58ee7a6ff6bbf8e192c9c81d22c3a5c88c2daade9d1f881b5be
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-focus-scope@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-focus-scope@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/2593d4bbd4a3525624675ec1d5a591a44f015f43f449b99a5a33228159b83f445e8f1c6bc6f9f2011387abaeadd3df406623c08d4e795b7ae509795652a1d069
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-id@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/react-id@npm:1.0.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/react-use-layout-effect": "npm:1.0.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/e2859ca58bea171c956098ace7ecf615cf9432f58a118b779a14720746b3adcf0351c36c75de131548672d3cd290ca238198acbd33b88dc4706f98312e9317ad
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-id@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-id@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/acf13e29e51ee96336837fc0cfecc306328b20b0e0070f6f0f7aa7a621ded4a1ee5537cfad58456f64bae76caa7f8769231e88dc7dc106197347ee433c275a79
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-popover@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-popover@npm:1.1.1"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-context": "npm:1.1.0"
+ "@radix-ui/react-dismissable-layer": "npm:1.1.0"
+ "@radix-ui/react-focus-guards": "npm:1.1.0"
+ "@radix-ui/react-focus-scope": "npm:1.1.0"
+ "@radix-ui/react-id": "npm:1.1.0"
+ "@radix-ui/react-popper": "npm:1.2.0"
+ "@radix-ui/react-portal": "npm:1.1.1"
+ "@radix-ui/react-presence": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-slot": "npm:1.1.0"
+ "@radix-ui/react-use-controllable-state": "npm:1.1.0"
+ aria-hidden: "npm:^1.1.1"
+ react-remove-scroll: "npm:2.5.7"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/4539082143c6c006727cf4a6300479f3dd912e85291d5ed7f084d8a7730acc3b5f6589925ab70eca025d3c78026f52f99c0155e11a35de37fe26b8078e6802b3
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-popper@npm:1.2.0":
+ version: 1.2.0
+ resolution: "@radix-ui/react-popper@npm:1.2.0"
+ dependencies:
+ "@floating-ui/react-dom": "npm:^2.0.0"
+ "@radix-ui/react-arrow": "npm:1.1.0"
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-context": "npm:1.1.0"
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.0"
+ "@radix-ui/react-use-rect": "npm:1.1.0"
+ "@radix-ui/react-use-size": "npm:1.1.0"
+ "@radix-ui/rect": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/a78ea534b9822d07153fff0895b6cdf742e7213782b140b3ab94a76df0ca70e6001925aea946e99ca680fc63a7fcca49c1d62e8dc5a2f651692fba3541e180c0
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-portal@npm:1.0.4":
+ version: 1.0.4
+ resolution: "@radix-ui/react-portal@npm:1.0.4"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/react-primitive": "npm:1.0.3"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/fed32f8148b833fe852fb5e2f859979ffdf2fb9a9ef46583b9b52915d764ad36ba5c958a64e61d23395628ccc09d678229ee94cd112941e8fe2575021f820c29
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-portal@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-portal@npm:1.1.1"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/7e7130fcb0d99197322cd97987e1d7279b6c264fb6be3d883cbfcd49267740d83ca17b431e0d98848afd6067a13ee823ca396a8b63ae68f18a728cf70398c830
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-presence@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/react-presence@npm:1.0.1"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/react-compose-refs": "npm:1.0.1"
+ "@radix-ui/react-use-layout-effect": "npm:1.0.1"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/90780618b265fe794a8f1ddaa5bfd3c71a1127fa79330a14d32722e6265b44452a9dd36efe4e769129d33e57f979f6b8713e2cbf2e2755326aa3b0f337185b6e
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-presence@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-presence@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/58acb658b15b72991ad7a234ea90995902c470b3a182aa90ad03145cbbeaa40f211700c444bfa14cf47537cbb6b732e1359bc5396182de839bd680843c11bf31
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-primitive@npm:1.0.3":
+ version: 1.0.3
+ resolution: "@radix-ui/react-primitive@npm:1.0.3"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/react-slot": "npm:1.0.2"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/67a66ff8898a5e7739eda228ab6f5ce808858da1dce967014138d87e72b6bbfc93dc1467c706d98d1a2b93bf0b6e09233d1a24d31c78227b078444c1a69c42be
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-primitive@npm:2.0.0":
+ version: 2.0.0
+ resolution: "@radix-ui/react-primitive@npm:2.0.0"
dependencies:
- "@jridgewell/resolve-uri": "npm:^3.1.0"
- "@jridgewell/sourcemap-codec": "npm:^1.4.14"
- checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4
+ "@radix-ui/react-slot": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/00cb6ca499252ca848c299212ba6976171cea7608b10b3f9a9639d6732dea2df1197ba0d97c001a4fdb29313c3e7fc2a490f6245dd3579617a0ffd85ae964fdd
languageName: node
linkType: hard
-"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1":
- version: 5.1.1-v1
- resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1"
+"@radix-ui/react-separator@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-separator@npm:1.1.0"
dependencies:
- eslint-scope: "npm:5.1.1"
- checksum: 10c0/75dda3e623b8ad7369ca22552d6beee337a814b2d0e8a32d23edd13fcb65c8082b32c5d86e436f3860dd7ade30d91d5db55d4ef9a08fb5a976c718ecc0d88a74
+ "@radix-ui/react-primitive": "npm:2.0.0"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/0ca9e25db27b6b001f3c0c50b2df9d6cf070b949f183043e263115d694a25b7268fecd670572469a512e556deca25ebb08b3aec4a870f0309eed728eef19ab8a
languageName: node
linkType: hard
-"@nodelib/fs.scandir@npm:2.1.5":
- version: 2.1.5
- resolution: "@nodelib/fs.scandir@npm:2.1.5"
+"@radix-ui/react-slot@npm:1.0.2":
+ version: 1.0.2
+ resolution: "@radix-ui/react-slot@npm:1.0.2"
dependencies:
- "@nodelib/fs.stat": "npm:2.0.5"
- run-parallel: "npm:^1.1.9"
- checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/react-compose-refs": "npm:1.0.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/3af6ea4891e6fa8091e666802adffe7718b3cd390a10fa9229a5f40f8efded9f3918ea01b046103d93923d41cc32119505ebb6bde76cad07a87b6cf4f2119347
languageName: node
linkType: hard
-"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
- version: 2.0.5
- resolution: "@nodelib/fs.stat@npm:2.0.5"
- checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
+"@radix-ui/react-slot@npm:1.1.0, @radix-ui/react-slot@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-slot@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/a2e8bfb70c440506dd84a1a274f9a8bc433cca37ceae275e53552c9122612e3837744d7fc6f113d6ef1a11491aa914f4add71d76de41cb6d4db72547a8e261ae
languageName: node
linkType: hard
-"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
- version: 1.2.8
- resolution: "@nodelib/fs.walk@npm:1.2.8"
+"@radix-ui/react-use-callback-ref@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/react-use-callback-ref@npm:1.0.1"
dependencies:
- "@nodelib/fs.scandir": "npm:2.1.5"
- fastq: "npm:^1.6.0"
- checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
+ "@babel/runtime": "npm:^7.13.10"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/331b432be1edc960ca148637ae6087220873ee828ceb13bd155926ef8f49e862812de5b379129f6aaefcd11be53715f3237e6caa9a33d9c0abfff43f3ba58938
languageName: node
linkType: hard
-"@npmcli/agent@npm:^2.0.0":
- version: 2.2.2
- resolution: "@npmcli/agent@npm:2.2.2"
- dependencies:
- agent-base: "npm:^7.1.0"
- http-proxy-agent: "npm:^7.0.0"
- https-proxy-agent: "npm:^7.0.1"
- lru-cache: "npm:^10.0.1"
- socks-proxy-agent: "npm:^8.0.3"
- checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
+"@radix-ui/react-use-callback-ref@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-callback-ref@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/e954863f3baa151faf89ac052a5468b42650efca924417470efd1bd254b411a94c69c30de2fdbb90187b38cb984795978e12e30423dc41e4309d93d53b66d819
languageName: node
linkType: hard
-"@npmcli/fs@npm:^3.1.0":
- version: 3.1.0
- resolution: "@npmcli/fs@npm:3.1.0"
+"@radix-ui/react-use-controllable-state@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/react-use-controllable-state@npm:1.0.1"
dependencies:
- semver: "npm:^7.3.5"
- checksum: 10c0/162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/react-use-callback-ref": "npm:1.0.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/29b069dbf09e48bca321af6272574ad0fc7283174e7d092731a10663fe00c0e6b4bde5e1b5ea67725fe48dcbe8026e7ff0d69d42891c62cbb9ca408498171fbe
languageName: node
linkType: hard
-"@pkgjs/parseargs@npm:^0.11.0":
- version: 0.11.0
- resolution: "@pkgjs/parseargs@npm:0.11.0"
- checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
+"@radix-ui/react-use-controllable-state@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-controllable-state@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/2af883b5b25822ac226e60a6bfde647c0123a76345052a90219026059b3f7225844b2c13a9a16fba859c1cda5fb3d057f2a04503f71780e607516492db4eb3a1
languageName: node
linkType: hard
-"@pkgr/core@npm:^0.1.0":
- version: 0.1.1
- resolution: "@pkgr/core@npm:0.1.1"
- checksum: 10c0/3f7536bc7f57320ab2cf96f8973664bef624710c403357429fbf680a5c3b4843c1dbd389bb43daa6b1f6f1f007bb082f5abcb76bb2b5dc9f421647743b71d3d8
+"@radix-ui/react-use-escape-keydown@npm:1.0.3":
+ version: 1.0.3
+ resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.3"
+ dependencies:
+ "@babel/runtime": "npm:^7.13.10"
+ "@radix-ui/react-use-callback-ref": "npm:1.0.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/3c94c78902dcb40b60083ee2184614f45c95a189178f52d89323b467bd04bcf5fdb1bc4d43debecd7f0b572c3843c7e04edbcb56f40a4b4b43936fb2770fb8ad
languageName: node
linkType: hard
-"@radix-ui/react-compose-refs@npm:1.1.0":
+"@radix-ui/react-use-escape-keydown@npm:1.1.0":
version: 1.1.0
- resolution: "@radix-ui/react-compose-refs@npm:1.1.0"
+ resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.0"
+ dependencies:
+ "@radix-ui/react-use-callback-ref": "npm:1.1.0"
peerDependencies:
"@types/react": "*"
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: 10c0/7e18706084397d9458ca3473d8565b10691da06f6499a78edbcc4bd72cde08f62e91120658d17d58c19fc39d6b1dffe0133cc4535c8f5fce470abd478f6107e5
+ checksum: 10c0/910fd696e5a0994b0e06b9cb68def8a865f47951a013ec240c77db2a9e1e726105602700ef5e5f01af49f2f18fe0e73164f9a9651021f28538ef8a30d91f3fbb
languageName: node
linkType: hard
-"@radix-ui/react-primitive@npm:2.0.0":
- version: 2.0.0
- resolution: "@radix-ui/react-primitive@npm:2.0.0"
+"@radix-ui/react-use-layout-effect@npm:1.0.1":
+ version: 1.0.1
+ resolution: "@radix-ui/react-use-layout-effect@npm:1.0.1"
dependencies:
- "@radix-ui/react-slot": "npm:1.1.0"
+ "@babel/runtime": "npm:^7.13.10"
peerDependencies:
"@types/react": "*"
- "@types/react-dom": "*"
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react: ^16.8 || ^17.0 || ^18.0
peerDependenciesMeta:
"@types/react":
optional: true
- "@types/react-dom":
+ checksum: 10c0/13cd0c38395c5838bc9a18238020d3bcf67fb340039e6d1cbf438be1b91d64cf6900b78121f3dc9219faeb40dcc7b523ce0f17e4a41631655690e5a30a40886a
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-layout-effect@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/react-use-layout-effect@npm:1.1.0"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
optional: true
- checksum: 10c0/00cb6ca499252ca848c299212ba6976171cea7608b10b3f9a9639d6732dea2df1197ba0d97c001a4fdb29313c3e7fc2a490f6245dd3579617a0ffd85ae964fdd
+ checksum: 10c0/9bf87ece1845c038ed95863cfccf9d75f557c2400d606343bab0ab3192b9806b9840e6aa0a0333fdf3e83cf9982632852192f3e68d7d8367bc8c788dfdf8e62b
languageName: node
linkType: hard
-"@radix-ui/react-separator@npm:^1.1.0":
+"@radix-ui/react-use-rect@npm:1.1.0":
version: 1.1.0
- resolution: "@radix-ui/react-separator@npm:1.1.0"
+ resolution: "@radix-ui/react-use-rect@npm:1.1.0"
dependencies:
- "@radix-ui/react-primitive": "npm:2.0.0"
+ "@radix-ui/rect": "npm:1.1.0"
peerDependencies:
"@types/react": "*"
- "@types/react-dom": "*"
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
"@types/react":
optional: true
- "@types/react-dom":
- optional: true
- checksum: 10c0/0ca9e25db27b6b001f3c0c50b2df9d6cf070b949f183043e263115d694a25b7268fecd670572469a512e556deca25ebb08b3aec4a870f0309eed728eef19ab8a
+ checksum: 10c0/c2e30150ab49e2cec238cda306fd748c3d47fb96dcff69a3b08e1d19108d80bac239d48f1747a25dadca614e3e967267d43b91e60ea59db2befbc7bea913ff84
languageName: node
linkType: hard
-"@radix-ui/react-slot@npm:1.1.0, @radix-ui/react-slot@npm:^1.1.0":
+"@radix-ui/react-use-size@npm:1.1.0":
version: 1.1.0
- resolution: "@radix-ui/react-slot@npm:1.1.0"
+ resolution: "@radix-ui/react-use-size@npm:1.1.0"
dependencies:
- "@radix-ui/react-compose-refs": "npm:1.1.0"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.0"
peerDependencies:
"@types/react": "*"
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: 10c0/a2e8bfb70c440506dd84a1a274f9a8bc433cca37ceae275e53552c9122612e3837744d7fc6f113d6ef1a11491aa914f4add71d76de41cb6d4db72547a8e261ae
+ checksum: 10c0/4c8b89037597fdc1824d009e0c941b510c7c6c30f83024cc02c934edd748886786e7d9f36f57323b02ad29833e7fa7e8974d81969b4ab33d8f41661afa4f30a6
+ languageName: node
+ linkType: hard
+
+"@radix-ui/rect@npm:1.1.0":
+ version: 1.1.0
+ resolution: "@radix-ui/rect@npm:1.1.0"
+ checksum: 10c0/a26ff7f8708fb5f2f7949baad70a6b2a597d761ee4dd4aadaf1c1a33ea82ea23dfef6ce6366a08310c5d008cdd60b2e626e4ee03fa342bd5f246ddd9d427f6be
languageName: node
linkType: hard
@@ -1530,6 +2202,15 @@ __metadata:
languageName: node
linkType: hard
+"aria-hidden@npm:^1.1.1":
+ version: 1.2.4
+ resolution: "aria-hidden@npm:1.2.4"
+ dependencies:
+ tslib: "npm:^2.0.0"
+ checksum: 10c0/8abcab2e1432efc4db415e97cb3959649ddf52c8fc815d7384f43f3d3abf56f1c12852575d00df9a8927f421d7e0712652dd5f8db244ea57634344e29ecfc74a
+ languageName: node
+ linkType: hard
+
"aria-query@npm:~5.1.3":
version: 5.1.3
resolution: "aria-query@npm:5.1.3"
@@ -1966,6 +2647,19 @@ __metadata:
languageName: node
linkType: hard
+"cmdk@npm:1.0.0":
+ version: 1.0.0
+ resolution: "cmdk@npm:1.0.0"
+ dependencies:
+ "@radix-ui/react-dialog": "npm:1.0.5"
+ "@radix-ui/react-primitive": "npm:1.0.3"
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+ checksum: 10c0/bf1c9cfce46f2f507ab95735fa08c9aa27e76ecdff87720cc51ae89dbf4814b7559668458f66ff4c3932a88a6b9d8817be05c3cc4ff98bc40c3645acf4a97376
+ languageName: node
+ linkType: hard
+
"color-convert@npm:^1.9.0":
version: 1.9.3
resolution: "color-convert@npm:1.9.3"
@@ -2203,6 +2897,13 @@ __metadata:
languageName: node
linkType: hard
+"detect-node-es@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "detect-node-es@npm:1.1.0"
+ checksum: 10c0/e562f00de23f10c27d7119e1af0e7388407eb4b06596a25f6d79a360094a109ff285de317f02b090faae093d314cf6e73ac3214f8a5bb3a0def5bece94557fbe
+ languageName: node
+ linkType: hard
+
"didyoumean@npm:^1.2.2":
version: 1.2.2
resolution: "didyoumean@npm:1.2.2"
@@ -3187,6 +3888,13 @@ __metadata:
languageName: node
linkType: hard
+"get-nonce@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "get-nonce@npm:1.0.1"
+ checksum: 10c0/2d7df55279060bf0568549e1ffc9b84bc32a32b7541675ca092dce56317cdd1a59a98dcc4072c9f6a980779440139a3221d7486f52c488e69dc0fd27b1efb162
+ languageName: node
+ linkType: hard
+
"get-symbol-description@npm:^1.0.2":
version: 1.0.2
resolution: "get-symbol-description@npm:1.0.2"
@@ -3481,6 +4189,15 @@ __metadata:
languageName: node
linkType: hard
+"invariant@npm:^2.2.4":
+ version: 2.2.4
+ resolution: "invariant@npm:2.2.4"
+ dependencies:
+ loose-envify: "npm:^1.0.0"
+ checksum: 10c0/5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc
+ languageName: node
+ linkType: hard
+
"ip-address@npm:^9.0.5":
version: 9.0.5
resolution: "ip-address@npm:9.0.5"
@@ -3991,7 +4708,7 @@ __metadata:
languageName: node
linkType: hard
-"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
+"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
version: 1.4.0
resolution: "loose-envify@npm:1.4.0"
dependencies:
@@ -4834,6 +5551,77 @@ __metadata:
languageName: node
linkType: hard
+"react-remove-scroll-bar@npm:^2.3.3, react-remove-scroll-bar@npm:^2.3.4":
+ version: 2.3.6
+ resolution: "react-remove-scroll-bar@npm:2.3.6"
+ dependencies:
+ react-style-singleton: "npm:^2.2.1"
+ tslib: "npm:^2.0.0"
+ peerDependencies:
+ "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/4e32ee04bf655a8bd3b4aacf6ffc596ae9eb1b9ba27eef83f7002632ee75371f61516ae62250634a9eae4b2c8fc6f6982d9b182de260f6c11841841e6e2e7515
+ languageName: node
+ linkType: hard
+
+"react-remove-scroll@npm:2.5.5":
+ version: 2.5.5
+ resolution: "react-remove-scroll@npm:2.5.5"
+ dependencies:
+ react-remove-scroll-bar: "npm:^2.3.3"
+ react-style-singleton: "npm:^2.2.1"
+ tslib: "npm:^2.1.0"
+ use-callback-ref: "npm:^1.3.0"
+ use-sidecar: "npm:^1.1.2"
+ peerDependencies:
+ "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/4952657e6a7b9d661d4ad4dfcef81b9c7fa493e35164abff99c35c0b27b3d172ef7ad70c09416dc44dd14ff2e6b38a5ec7da27e27e90a15cbad36b8fd2fd8054
+ languageName: node
+ linkType: hard
+
+"react-remove-scroll@npm:2.5.7":
+ version: 2.5.7
+ resolution: "react-remove-scroll@npm:2.5.7"
+ dependencies:
+ react-remove-scroll-bar: "npm:^2.3.4"
+ react-style-singleton: "npm:^2.2.1"
+ tslib: "npm:^2.1.0"
+ use-callback-ref: "npm:^1.3.0"
+ use-sidecar: "npm:^1.1.2"
+ peerDependencies:
+ "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/dcd523ada602bd0a839c2032cadf0b3e4af55ee85acefee3760976a9cceaa4606927801b093bbb8bf3c2989c71e048f5428c2c6eb9e6681762e86356833d039b
+ languageName: node
+ linkType: hard
+
+"react-style-singleton@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "react-style-singleton@npm:2.2.1"
+ dependencies:
+ get-nonce: "npm:^1.0.0"
+ invariant: "npm:^2.2.4"
+ tslib: "npm:^2.0.0"
+ peerDependencies:
+ "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/6d66f3bdb65e1ec79089f80314da97c9a005087a04ee034255a5de129a4c0d9fd0bf99fa7bf642781ac2dc745ca687aae3de082bd8afdd0d117bc953241e15ad
+ languageName: node
+ linkType: hard
+
"react@npm:^18.3.1":
version: 18.3.1
resolution: "react@npm:18.3.1"
@@ -4876,6 +5664,13 @@ __metadata:
languageName: node
linkType: hard
+"regenerator-runtime@npm:^0.14.0":
+ version: 0.14.1
+ resolution: "regenerator-runtime@npm:0.14.1"
+ checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4
+ languageName: node
+ linkType: hard
+
"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2":
version: 1.5.2
resolution: "regexp.prototype.flags@npm:1.5.2"
@@ -5047,6 +5842,8 @@ __metadata:
resolution: "root-workspace-0b6124@workspace:."
dependencies:
"@inertiajs/react": "npm:^1.2.0"
+ "@radix-ui/react-dialog": "npm:^1.1.1"
+ "@radix-ui/react-popover": "npm:^1.1.1"
"@radix-ui/react-separator": "npm:^1.1.0"
"@radix-ui/react-slot": "npm:^1.1.0"
"@shopify/eslint-plugin": "npm:^46.0.0"
@@ -5059,6 +5856,7 @@ __metadata:
autoprefixer: "npm:^10.4.20"
class-variance-authority: "npm:^0.7.0"
clsx: "npm:^2.1.1"
+ cmdk: "npm:1.0.0"
eslint: "npm:8.57.0"
lucide-react: "npm:^0.412.0"
postcss: "npm:^8.4.45"
@@ -5612,6 +6410,13 @@ __metadata:
languageName: node
linkType: hard
+"tslib@npm:^2.0.0, tslib@npm:^2.1.0":
+ version: 2.7.0
+ resolution: "tslib@npm:2.7.0"
+ checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6
+ languageName: node
+ linkType: hard
+
"tslib@npm:^2.0.3, tslib@npm:^2.6.2":
version: 2.6.2
resolution: "tslib@npm:2.6.2"
@@ -5801,6 +6606,37 @@ __metadata:
languageName: node
linkType: hard
+"use-callback-ref@npm:^1.3.0":
+ version: 1.3.2
+ resolution: "use-callback-ref@npm:1.3.2"
+ dependencies:
+ tslib: "npm:^2.0.0"
+ peerDependencies:
+ "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/d232c37160fe3970c99255da19b5fb5299fb5926a5d6141d928a87feb47732c323d29be2f8137d3b1e5499c70d284cd1d9cfad703cc58179db8be24d7dd8f1f2
+ languageName: node
+ linkType: hard
+
+"use-sidecar@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "use-sidecar@npm:1.1.2"
+ dependencies:
+ detect-node-es: "npm:^1.1.0"
+ tslib: "npm:^2.0.0"
+ peerDependencies:
+ "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/89f0018fd9aee1fc17c85ac18c4bf8944d460d453d0d0e04ddbc8eaddf3fa591e9c74a1f8a438a1bff368a7a2417fab380bdb3df899d2194c4375b0982736de0
+ languageName: node
+ linkType: hard
+
"util-deprecate@npm:^1.0.2":
version: 1.0.2
resolution: "util-deprecate@npm:1.0.2"