From 903a07f9a6c1fc4fecba7f6c7c5ac7c1d7508ad1 Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Wed, 21 Jan 2026 09:19:18 +0530 Subject: [PATCH 01/10] Added reset password to the super user profile which when clicked devises reset info sent --- .env.sample | 22 -- app/controllers/users_controller.rb | 8 +- app/views/users/edit.html.erb | 4 + config/routes.rb | 1 + db/schema.rb | 223 ++++++++-------- package-lock.json | 393 ++++++++++++++++++---------- package.json | 2 +- 7 files changed, 386 insertions(+), 267 deletions(-) delete mode 100644 .env.sample diff --git a/.env.sample b/.env.sample deleted file mode 100644 index a6e0f97aa..000000000 --- a/.env.sample +++ /dev/null @@ -1,22 +0,0 @@ -# If using database in docker compose -DATABASE_URL=trilogy://root@$(docker compose port database 3306)/ -# DATABASE_URL=trilogy://root@localhost:3306/ - -# AWS - Used for S3 storage -AWS_ACCESS_KEY_ID=SOME_ID -AWS_SECRET_ACCESS_KEY=SOME_KEY -AWS_REGION=us-east-1 -AWS_S3_BUCKET=awbwassets_development - -# Email settings -SMTP_USERNAME=SOME_USERNAME -SMTP_PASSWORD=SOME_PASSWORD -SMTP_SERVER=SOME_HOST -SMTP_PORT=2525 - -# Other -RAILS_ENV=development -APP_HOST=localhost:3000 -RAILS_SERVE_STATIC_FILES=true -ORGANIZATION_NAME=A Window Between Worlds -REPLY_TO_EMAIL=umberto.user@example.com diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 78102f9c9..60477b4f6 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,5 +1,5 @@ class UsersController < ApplicationController - before_action :set_user, only: [ :show, :edit, :update, :destroy, :generate_facilitator ] + before_action :set_user, only: [ :show, :edit, :update, :destroy, :generate_facilitator, :send_reset_password_instructions ] def index return redirect_to authenticated_root_path unless current_user.super_user? @@ -97,6 +97,10 @@ def generate_facilitator end end + def send_reset_password_instructions + @user.send_reset_password_instructions + redirect_to users_path, notice: "Reset password instructions sent to #{@user.email}." + end private def set_user @@ -138,4 +142,4 @@ def user_params project_users_attributes: [ :id, :project_id, :position, :title, :inactive, :_destroy ] ) end -end +end \ No newline at end of file diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb index b02f60b2f..6677ed24c 100644 --- a/app/views/users/edit.html.erb +++ b/app/views/users/edit.html.erb @@ -4,6 +4,10 @@

Edit <%= @user.class.model_name.human %>

+ <%= button_to "Reset password", + send_reset_password_instructions_user_path(@user), + method: :post, + class: "btn btn-secondary-outline" %> <% if current_user == @user %> <%= link_to "Change password", change_password_path, diff --git a/config/routes.rb b/config/routes.rb index a888cd316..714163286 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -91,6 +91,7 @@ resources :users, only: [ :new, :index, :show, :edit, :update, :create, :destroy ] do member do get :generate_facilitator + post :send_reset_password_instructions end end resources :user_forms diff --git a/db/schema.rb b/db/schema.rb index 0d35a6043..6a624c59f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -50,7 +50,7 @@ t.datetime "created_at", precision: nil, null: false t.string "filename", null: false t.string "key", null: false - t.text "metadata", size: :medium + t.text "metadata" t.string "service_name", null: false t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true end @@ -184,7 +184,7 @@ end create_table "banners", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "content", size: :medium + t.text "content" t.datetime "created_at", precision: nil, null: false t.integer "created_by_id" t.boolean "show" @@ -195,7 +195,7 @@ end create_table "bookmark_annotations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "annotation", size: :long + t.text "annotation", size: :medium t.integer "bookmark_id" t.datetime "created_at", precision: nil, null: false t.datetime "updated_at", precision: nil, null: false @@ -252,7 +252,7 @@ create_table "community_news", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.integer "author_id", null: false - t.text "body", size: :medium + t.text "body" t.datetime "created_at", null: false t.integer "created_by_id", null: false t.boolean "featured" @@ -301,7 +301,7 @@ t.integer "cost_cents" t.datetime "created_at", null: false t.integer "created_by_id" - t.text "description", size: :medium + t.text "description" t.datetime "end_date", precision: nil t.boolean "featured", default: false, null: false t.boolean "publicly_visible", default: false, null: false @@ -314,7 +314,7 @@ create_table "facilitators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "best_time_to_call" - t.text "bio", size: :medium + t.text "bio" t.datetime "created_at", null: false t.integer "created_by_id" t.date "date_of_birth" @@ -356,7 +356,7 @@ end create_table "faqs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "answer", size: :long + t.text "answer", size: :medium t.datetime "created_at", precision: nil, null: false t.boolean "inactive" t.integer "position", null: false @@ -375,7 +375,7 @@ create_table "form_builders", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.datetime "created_at", precision: nil, null: false - t.text "description", size: :long + t.text "description", size: :medium t.string "name" t.integer "owner_type" t.datetime "updated_at", precision: nil, null: false @@ -459,14 +459,14 @@ create_table "monthly_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "best_call_time" t.boolean "call_requested" - t.text "comments", size: :long + t.text "comments", size: :medium t.datetime "created_at", precision: nil, null: false - t.text "goals", size: :long - t.text "goals_reached", size: :long + t.text "goals", size: :medium + t.text "goals_reached", size: :medium t.boolean "mail_evaluations" t.string "month" - t.text "most_challenging", size: :long - t.text "most_effective", size: :long + t.text "most_challenging", size: :medium + t.text "most_effective", size: :medium t.string "name" t.string "num_new_participants" t.string "num_ongoing_participants" @@ -558,7 +558,7 @@ t.string "agency_type" t.string "agency_type_other" t.datetime "created_at", precision: nil, null: false - t.text "description", size: :long + t.text "description", size: :medium t.date "end_date" t.string "filemaker_code" t.boolean "inactive", default: false @@ -568,7 +568,7 @@ t.integer "location_id" t.string "mission_vision_values" t.string "name" - t.text "notes", size: :long + t.text "notes", size: :medium t.integer "project_status_id" t.date "start_date" t.datetime "updated_at", precision: nil, null: false @@ -596,7 +596,7 @@ t.boolean "inactive", default: true t.boolean "legacy", default: false t.integer "legacy_id" - t.text "quote", size: :long + t.text "quote", size: :medium t.string "speaker_name" t.datetime "updated_at", precision: nil, null: false t.integer "workshop_id" @@ -604,7 +604,7 @@ end create_table "report_form_field_answers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "answer", size: :long + t.text "answer", size: :medium t.integer "answer_option_id" t.datetime "created_at", precision: nil t.integer "form_field_id" @@ -658,7 +658,7 @@ t.integer "legacy_id" t.boolean "male", default: false t.integer "position" - t.text "text", size: :long + t.text "text", size: :medium t.string "title" t.datetime "updated_at", precision: nil, null: false t.string "url" @@ -690,7 +690,7 @@ end create_table "stories", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :medium + t.text "body" t.datetime "created_at", null: false t.integer "created_by_id", null: false t.string "external_workshop_title" @@ -718,7 +718,7 @@ end create_table "story_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :medium + t.text "body" t.datetime "created_at", null: false t.integer "created_by_id", null: false t.string "external_workshop_title" @@ -755,7 +755,7 @@ create_table "user_form_form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.datetime "created_at", precision: nil, null: false t.integer "form_field_id" - t.text "text", size: :long + t.text "text", size: :medium t.datetime "updated_at", precision: nil, null: false t.integer "user_form_id" t.index ["form_field_id"], name: "index_user_form_form_fields_on_form_field_id" @@ -792,7 +792,7 @@ t.date "birthday" t.string "city" t.string "city2" - t.text "comment", size: :long + t.text "comment", size: :medium t.datetime "confirmation_sent_at" t.string "confirmation_token" t.boolean "confirmed", default: true @@ -813,7 +813,7 @@ t.boolean "legacy", default: false t.integer "legacy_id" t.datetime "locked_at" - t.text "notes", size: :long + t.text "notes", size: :medium t.string "phone" t.string "phone2" t.string "phone3" @@ -857,36 +857,36 @@ end create_table "workshop_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "age_range", size: :medium - t.text "age_range_spanish", size: :medium - t.text "closing", size: :medium - t.text "closing_spanish", size: :medium + t.text "age_range" + t.text "age_range_spanish" + t.text "closing" + t.text "closing_spanish" t.datetime "created_at", null: false t.integer "created_by_id", null: false - t.text "creation", size: :medium - t.text "creation_spanish", size: :medium - t.text "demonstration", size: :medium - t.text "demonstration_spanish", size: :medium - t.text "description", size: :medium - t.text "description_spanish", size: :medium - t.text "instructions", size: :medium - t.text "instructions_spanish", size: :medium - t.text "introduction", size: :medium - t.text "introduction_spanish", size: :medium - t.text "materials", size: :medium - t.text "materials_spanish", size: :medium - t.text "misc_instructions_spanish", size: :medium - t.text "notes", size: :medium - t.text "notes_spanish", size: :medium - t.text "objective", size: :medium - t.text "objective_spanish", size: :medium - t.text "opening_circle", size: :medium - t.text "opening_circle_spanish", size: :medium - t.text "optional_materials", size: :medium - t.text "optional_materials_spanish", size: :medium - t.text "setup", size: :medium - t.text "setup_spanish", size: :medium - t.text "staff_notes", size: :medium + t.text "creation" + t.text "creation_spanish" + t.text "demonstration" + t.text "demonstration_spanish" + t.text "description" + t.text "description_spanish" + t.text "instructions" + t.text "instructions_spanish" + t.text "introduction" + t.text "introduction_spanish" + t.text "materials" + t.text "materials_spanish" + t.text "misc_instructions_spanish" + t.text "notes" + t.text "notes_spanish" + t.text "objective" + t.text "objective_spanish" + t.text "opening_circle" + t.text "opening_circle_spanish" + t.text "optional_materials" + t.text "optional_materials_spanish" + t.text "setup" + t.text "setup_spanish" + t.text "staff_notes" t.integer "time_closing" t.integer "time_creation" t.integer "time_demonstration" @@ -896,17 +896,17 @@ t.integer "time_opening" t.integer "time_opening_circle" t.integer "time_warm_up" - t.text "timeframe", size: :medium - t.text "timeframe_spanish", size: :medium - t.text "tips", size: :medium - t.text "tips_spanish", size: :medium + t.text "timeframe" + t.text "timeframe_spanish" + t.text "tips" + t.text "tips_spanish" t.string "title" t.datetime "updated_at", null: false t.integer "updated_by_id", null: false - t.text "visualization", size: :medium - t.text "visualization_spanish", size: :medium - t.text "warm_up", size: :medium - t.text "warm_up_spanish", size: :medium + t.text "visualization" + t.text "visualization_spanish" + t.text "warm_up" + t.text "warm_up_spanish" t.integer "windows_type_id", null: false t.index ["created_by_id"], name: "index_workshop_ideas_on_created_by_id" t.index ["updated_by_id"], name: "index_workshop_ideas_on_updated_by_id" @@ -914,22 +914,22 @@ end create_table "workshop_logs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "challenges", size: :long - t.text "comments", size: :long + t.text "challenges", size: :medium + t.text "comments", size: :medium t.datetime "created_at", precision: nil, null: false t.date "date" - t.text "differences", size: :long + t.text "differences", size: :medium t.boolean "is_embodied_art_workshop", default: false t.boolean "lead_similar" t.integer "num_participants_first_time", default: 0 t.integer "num_participants_on_going", default: 0 t.integer "project_id" - t.text "questions", size: :long + t.text "questions", size: :medium t.integer "rating", default: 0 - t.text "reaction", size: :long - t.text "similarities", size: :long - t.text "successes", size: :long - t.text "suggestions", size: :long + t.text "reaction", size: :medium + t.text "similarities", size: :medium + t.text "successes", size: :medium + t.text "suggestions", size: :medium t.datetime "updated_at", precision: nil, null: false t.integer "user_id" t.integer "workshop_id" @@ -961,7 +961,7 @@ end create_table "workshop_variations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "code", size: :long + t.text "code", size: :medium t.datetime "created_at", precision: nil, null: false t.integer "created_by_id" t.boolean "inactive", default: true @@ -977,20 +977,20 @@ end create_table "workshops", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "age_range", size: :long - t.text "age_range_spanish", size: :long + t.text "age_range", size: :medium + t.text "age_range_spanish", size: :medium t.string "author_location" - t.text "closing", size: :long - t.text "closing_spanish", size: :long + t.text "closing", size: :medium + t.text "closing_spanish", size: :medium t.datetime "created_at", precision: nil, null: false - t.text "creation", size: :long - t.text "creation_spanish", size: :long - t.text "demonstration", size: :long - t.text "demonstration_spanish", size: :long - t.text "description", size: :long - t.text "description_spanish", size: :long - t.text "extra_field", size: :medium - t.text "extra_field_spanish", size: :medium + t.text "creation", size: :medium + t.text "creation_spanish", size: :medium + t.text "demonstration", size: :medium + t.text "demonstration_spanish", size: :medium + t.text "description", size: :medium + t.text "description_spanish", size: :medium + t.text "extra_field" + t.text "extra_field_spanish" t.boolean "featured", default: false t.string "filemaker_code" t.string "full_name" @@ -999,37 +999,37 @@ t.integer "header_file_size" t.datetime "header_updated_at", precision: nil t.boolean "inactive", default: true - t.text "instructions", size: :long - t.text "instructions_spanish", size: :long - t.text "introduction", size: :long - t.text "introduction_spanish", size: :long + t.text "instructions", size: :medium + t.text "instructions_spanish", size: :medium + t.text "introduction", size: :medium + t.text "introduction_spanish", size: :medium t.integer "led_count", default: 0 t.boolean "legacy", default: false t.integer "legacy_id" - t.text "materials", size: :long - t.text "materials_spanish", size: :long + t.text "materials", size: :medium + t.text "materials_spanish", size: :medium t.string "misc1" - t.text "misc1_spanish", size: :long + t.text "misc1_spanish", size: :medium t.string "misc2" - t.text "misc2_spanish", size: :long - t.text "misc_instructions", size: :long - t.text "misc_instructions_spanish", size: :long + t.text "misc2_spanish", size: :medium + t.text "misc_instructions", size: :medium + t.text "misc_instructions_spanish", size: :medium t.integer "month" - t.text "notes", size: :long - t.text "notes_spanish", size: :long - t.text "objective", size: :long - t.text "objective_spanish", size: :long - t.text "opening_circle", size: :long - t.text "opening_circle_spanish", size: :long - t.text "optional_materials", size: :long - t.text "optional_materials_spanish", size: :long + t.text "notes", size: :medium + t.text "notes_spanish", size: :medium + t.text "objective", size: :medium + t.text "objective_spanish", size: :medium + t.text "opening_circle", size: :medium + t.text "opening_circle_spanish", size: :medium + t.text "optional_materials", size: :medium + t.text "optional_materials_spanish", size: :medium t.string "photo_caption" - t.text "project", size: :long - t.text "project_spanish", size: :long + t.text "project", size: :medium + t.text "project_spanish", size: :medium t.string "pub_issue" t.boolean "searchable", default: false - t.text "setup", size: :long - t.text "setup_spanish", size: :long + t.text "setup", size: :medium + t.text "setup_spanish", size: :medium t.string "thumbnail_content_type" t.string "thumbnail_file_name" t.integer "thumbnail_file_size" @@ -1041,18 +1041,18 @@ t.integer "time_opening" t.integer "time_opening_circle" t.integer "time_warm_up" - t.text "timeframe", size: :long - t.text "timeframe_spanish", size: :long - t.text "timestamps", size: :long - t.text "tips", size: :long - t.text "tips_spanish", size: :long + t.text "timeframe", size: :medium + t.text "timeframe_spanish", size: :medium + t.text "timestamps", size: :medium + t.text "tips", size: :medium + t.text "tips_spanish", size: :medium t.string "title" t.datetime "updated_at", precision: nil, null: false t.integer "user_id" - t.text "visualization", size: :long - t.text "visualization_spanish", size: :long - t.text "warm_up", size: :long - t.text "warm_up_spanish", size: :long + t.text "visualization", size: :medium + t.text "visualization_spanish", size: :medium + t.text "warm_up", size: :medium + t.text "warm_up_spanish", size: :medium t.integer "windows_type_id" t.bigint "workshop_idea_id" t.integer "year" @@ -1069,6 +1069,7 @@ end add_foreign_key "action_text_mentions", "action_text_rich_texts" + add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" add_foreign_key "age_ranges", "windows_types" add_foreign_key "banners", "users", column: "created_by_id" diff --git a/package-lock.json b/package-lock.json index fe8b52101..f5c34193c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "awbw", + "name": "app", "lockfileVersion": 3, "requires": true, "packages": { @@ -31,14 +31,14 @@ }, "devDependencies": { "@tailwindcss/typography": "^0.5.19", - "vite": "^5.4.20", + "vite": "^6.4.1", "vite-plugin-ruby": "^5.1.1" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", "cpu": [ "ppc64" ], @@ -47,13 +47,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", "cpu": [ "arm" ], @@ -62,13 +62,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", "cpu": [ "arm64" ], @@ -77,13 +77,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", "cpu": [ "x64" ], @@ -92,13 +92,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", "cpu": [ "arm64" ], @@ -107,13 +107,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", "cpu": [ "x64" ], @@ -122,13 +122,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", "cpu": [ "arm64" ], @@ -137,13 +137,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", "cpu": [ "x64" ], @@ -152,13 +152,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", "cpu": [ "arm" ], @@ -167,13 +167,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", "cpu": [ "arm64" ], @@ -182,13 +182,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", "cpu": [ "ia32" ], @@ -197,13 +197,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", "cpu": [ "loong64" ], @@ -212,13 +212,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", "cpu": [ "mips64el" ], @@ -227,13 +227,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", "cpu": [ "ppc64" ], @@ -242,13 +242,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", "cpu": [ "riscv64" ], @@ -257,13 +257,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", "cpu": [ "s390x" ], @@ -272,13 +272,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", "cpu": [ "x64" ], @@ -287,13 +287,28 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", "cpu": [ "x64" ], @@ -302,13 +317,28 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", "cpu": [ "x64" ], @@ -317,13 +347,28 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", "cpu": [ "x64" ], @@ -332,13 +377,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", "cpu": [ "arm64" ], @@ -347,13 +392,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", "cpu": [ "ia32" ], @@ -362,13 +407,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", "cpu": [ "x64" ], @@ -377,7 +422,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@floating-ui/core": { @@ -1783,40 +1828,43 @@ } }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" } }, "node_modules/escape-string-regexp": { @@ -2824,6 +2872,48 @@ "node": ">=18" } }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -2873,20 +2963,22 @@ "license": "MIT" }, "node_modules/vite": { - "version": "5.4.20", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz", - "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==", - "license": "MIT", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -2895,19 +2987,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -2928,6 +3026,12 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, @@ -2991,6 +3095,33 @@ "stimulus-vite-helpers": "^3.0.0" } }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", diff --git a/package.json b/package.json index 3e17a5888..272d30a3a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "devDependencies": { "@tailwindcss/typography": "^0.5.19", - "vite": "^5.4.20", + "vite": "^6.4.1", "vite-plugin-ruby": "^5.1.1" }, "dependencies": { From 914fe7bfa59e942ac5ee5e422f8852e695d36c0a Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Wed, 21 Jan 2026 09:41:22 +0530 Subject: [PATCH 02/10] refactor: update package names and versions; add .env.example file --- .env.example | 22 +++ db/schema.rb | 229 ++++++++++++++------------- package-lock.json | 395 ++++++++++++++++------------------------------ package.json | 2 +- 4 files changed, 270 insertions(+), 378 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..a6e0f97aa --- /dev/null +++ b/.env.example @@ -0,0 +1,22 @@ +# If using database in docker compose +DATABASE_URL=trilogy://root@$(docker compose port database 3306)/ +# DATABASE_URL=trilogy://root@localhost:3306/ + +# AWS - Used for S3 storage +AWS_ACCESS_KEY_ID=SOME_ID +AWS_SECRET_ACCESS_KEY=SOME_KEY +AWS_REGION=us-east-1 +AWS_S3_BUCKET=awbwassets_development + +# Email settings +SMTP_USERNAME=SOME_USERNAME +SMTP_PASSWORD=SOME_PASSWORD +SMTP_SERVER=SOME_HOST +SMTP_PORT=2525 + +# Other +RAILS_ENV=development +APP_HOST=localhost:3000 +RAILS_SERVE_STATIC_FILES=true +ORGANIZATION_NAME=A Window Between Worlds +REPLY_TO_EMAIL=umberto.user@example.com diff --git a/db/schema.rb b/db/schema.rb index 6a624c59f..e6097db19 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.1].define(version: 2026_01_19_143438) do +ActiveRecord::Schema[8.1].define(version: 2026_01_19_163954) do create_table "action_text_mentions", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.bigint "action_text_rich_text_id", null: false t.datetime "created_at", null: false @@ -50,7 +50,7 @@ t.datetime "created_at", precision: nil, null: false t.string "filename", null: false t.string "key", null: false - t.text "metadata" + t.text "metadata", size: :medium t.string "service_name", null: false t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true end @@ -184,7 +184,7 @@ end create_table "banners", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "content" + t.text "content", size: :medium t.datetime "created_at", precision: nil, null: false t.integer "created_by_id" t.boolean "show" @@ -195,7 +195,7 @@ end create_table "bookmark_annotations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "annotation", size: :medium + t.text "annotation", size: :long t.integer "bookmark_id" t.datetime "created_at", precision: nil, null: false t.datetime "updated_at", precision: nil, null: false @@ -231,6 +231,7 @@ t.integer "legacy_id" t.datetime "updated_at", precision: nil, null: false t.index ["categorizable_type", "categorizable_id"], name: "idx_on_categorizable_type_categorizable_id_ccce65d80c" + t.index ["category_id", "categorizable_type", "categorizable_id"], name: "index_categorizable_items_uniqueness", unique: true t.index ["category_id"], name: "index_categorizable_items_on_category_id" end @@ -252,7 +253,7 @@ create_table "community_news", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.integer "author_id", null: false - t.text "body" + t.text "body", size: :medium t.datetime "created_at", null: false t.integer "created_by_id", null: false t.boolean "featured" @@ -301,7 +302,7 @@ t.integer "cost_cents" t.datetime "created_at", null: false t.integer "created_by_id" - t.text "description" + t.text "description", size: :medium t.datetime "end_date", precision: nil t.boolean "featured", default: false, null: false t.boolean "publicly_visible", default: false, null: false @@ -314,7 +315,7 @@ create_table "facilitators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "best_time_to_call" - t.text "bio" + t.text "bio", size: :medium t.datetime "created_at", null: false t.integer "created_by_id" t.date "date_of_birth" @@ -356,7 +357,7 @@ end create_table "faqs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "answer", size: :medium + t.text "answer", size: :long t.datetime "created_at", precision: nil, null: false t.boolean "inactive" t.integer "position", null: false @@ -375,7 +376,7 @@ create_table "form_builders", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.datetime "created_at", precision: nil, null: false - t.text "description", size: :medium + t.text "description", size: :long t.string "name" t.integer "owner_type" t.datetime "updated_at", precision: nil, null: false @@ -459,14 +460,14 @@ create_table "monthly_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "best_call_time" t.boolean "call_requested" - t.text "comments", size: :medium + t.text "comments", size: :long t.datetime "created_at", precision: nil, null: false - t.text "goals", size: :medium - t.text "goals_reached", size: :medium + t.text "goals", size: :long + t.text "goals_reached", size: :long t.boolean "mail_evaluations" t.string "month" - t.text "most_challenging", size: :medium - t.text "most_effective", size: :medium + t.text "most_challenging", size: :long + t.text "most_effective", size: :long t.string "name" t.string "num_new_participants" t.string "num_ongoing_participants" @@ -558,7 +559,7 @@ t.string "agency_type" t.string "agency_type_other" t.datetime "created_at", precision: nil, null: false - t.text "description", size: :medium + t.text "description", size: :long t.date "end_date" t.string "filemaker_code" t.boolean "inactive", default: false @@ -568,7 +569,7 @@ t.integer "location_id" t.string "mission_vision_values" t.string "name" - t.text "notes", size: :medium + t.text "notes", size: :long t.integer "project_status_id" t.date "start_date" t.datetime "updated_at", precision: nil, null: false @@ -596,7 +597,7 @@ t.boolean "inactive", default: true t.boolean "legacy", default: false t.integer "legacy_id" - t.text "quote", size: :medium + t.text "quote", size: :long t.string "speaker_name" t.datetime "updated_at", precision: nil, null: false t.integer "workshop_id" @@ -604,7 +605,7 @@ end create_table "report_form_field_answers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "answer", size: :medium + t.text "answer", size: :long t.integer "answer_option_id" t.datetime "created_at", precision: nil t.integer "form_field_id" @@ -658,7 +659,7 @@ t.integer "legacy_id" t.boolean "male", default: false t.integer "position" - t.text "text", size: :medium + t.text "text", size: :long t.string "title" t.datetime "updated_at", precision: nil, null: false t.string "url" @@ -678,6 +679,7 @@ t.integer "sectorable_id" t.string "sectorable_type" t.datetime "updated_at", precision: nil, null: false + t.index ["sector_id", "sectorable_type", "sectorable_id"], name: "index_sectorable_items_uniqueness", unique: true t.index ["sector_id"], name: "index_sectorable_items_on_sector_id" t.index ["sectorable_type", "sectorable_id"], name: "index_sectorable_items_on_sectorable_type_and_sectorable_id" end @@ -690,7 +692,7 @@ end create_table "stories", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body" + t.text "body", size: :medium t.datetime "created_at", null: false t.integer "created_by_id", null: false t.string "external_workshop_title" @@ -718,7 +720,7 @@ end create_table "story_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body" + t.text "body", size: :medium t.datetime "created_at", null: false t.integer "created_by_id", null: false t.string "external_workshop_title" @@ -755,7 +757,7 @@ create_table "user_form_form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.datetime "created_at", precision: nil, null: false t.integer "form_field_id" - t.text "text", size: :medium + t.text "text", size: :long t.datetime "updated_at", precision: nil, null: false t.integer "user_form_id" t.index ["form_field_id"], name: "index_user_form_form_fields_on_form_field_id" @@ -792,7 +794,7 @@ t.date "birthday" t.string "city" t.string "city2" - t.text "comment", size: :medium + t.text "comment", size: :long t.datetime "confirmation_sent_at" t.string "confirmation_token" t.boolean "confirmed", default: true @@ -813,7 +815,7 @@ t.boolean "legacy", default: false t.integer "legacy_id" t.datetime "locked_at" - t.text "notes", size: :medium + t.text "notes", size: :long t.string "phone" t.string "phone2" t.string "phone3" @@ -857,36 +859,36 @@ end create_table "workshop_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "age_range" - t.text "age_range_spanish" - t.text "closing" - t.text "closing_spanish" + t.text "age_range", size: :medium + t.text "age_range_spanish", size: :medium + t.text "closing", size: :medium + t.text "closing_spanish", size: :medium t.datetime "created_at", null: false t.integer "created_by_id", null: false - t.text "creation" - t.text "creation_spanish" - t.text "demonstration" - t.text "demonstration_spanish" - t.text "description" - t.text "description_spanish" - t.text "instructions" - t.text "instructions_spanish" - t.text "introduction" - t.text "introduction_spanish" - t.text "materials" - t.text "materials_spanish" - t.text "misc_instructions_spanish" - t.text "notes" - t.text "notes_spanish" - t.text "objective" - t.text "objective_spanish" - t.text "opening_circle" - t.text "opening_circle_spanish" - t.text "optional_materials" - t.text "optional_materials_spanish" - t.text "setup" - t.text "setup_spanish" - t.text "staff_notes" + t.text "creation", size: :medium + t.text "creation_spanish", size: :medium + t.text "demonstration", size: :medium + t.text "demonstration_spanish", size: :medium + t.text "description", size: :medium + t.text "description_spanish", size: :medium + t.text "instructions", size: :medium + t.text "instructions_spanish", size: :medium + t.text "introduction", size: :medium + t.text "introduction_spanish", size: :medium + t.text "materials", size: :medium + t.text "materials_spanish", size: :medium + t.text "misc_instructions_spanish", size: :medium + t.text "notes", size: :medium + t.text "notes_spanish", size: :medium + t.text "objective", size: :medium + t.text "objective_spanish", size: :medium + t.text "opening_circle", size: :medium + t.text "opening_circle_spanish", size: :medium + t.text "optional_materials", size: :medium + t.text "optional_materials_spanish", size: :medium + t.text "setup", size: :medium + t.text "setup_spanish", size: :medium + t.text "staff_notes", size: :medium t.integer "time_closing" t.integer "time_creation" t.integer "time_demonstration" @@ -896,17 +898,17 @@ t.integer "time_opening" t.integer "time_opening_circle" t.integer "time_warm_up" - t.text "timeframe" - t.text "timeframe_spanish" - t.text "tips" - t.text "tips_spanish" + t.text "timeframe", size: :medium + t.text "timeframe_spanish", size: :medium + t.text "tips", size: :medium + t.text "tips_spanish", size: :medium t.string "title" t.datetime "updated_at", null: false t.integer "updated_by_id", null: false - t.text "visualization" - t.text "visualization_spanish" - t.text "warm_up" - t.text "warm_up_spanish" + t.text "visualization", size: :medium + t.text "visualization_spanish", size: :medium + t.text "warm_up", size: :medium + t.text "warm_up_spanish", size: :medium t.integer "windows_type_id", null: false t.index ["created_by_id"], name: "index_workshop_ideas_on_created_by_id" t.index ["updated_by_id"], name: "index_workshop_ideas_on_updated_by_id" @@ -914,22 +916,22 @@ end create_table "workshop_logs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "challenges", size: :medium - t.text "comments", size: :medium + t.text "challenges", size: :long + t.text "comments", size: :long t.datetime "created_at", precision: nil, null: false t.date "date" - t.text "differences", size: :medium + t.text "differences", size: :long t.boolean "is_embodied_art_workshop", default: false t.boolean "lead_similar" t.integer "num_participants_first_time", default: 0 t.integer "num_participants_on_going", default: 0 t.integer "project_id" - t.text "questions", size: :medium + t.text "questions", size: :long t.integer "rating", default: 0 - t.text "reaction", size: :medium - t.text "similarities", size: :medium - t.text "successes", size: :medium - t.text "suggestions", size: :medium + t.text "reaction", size: :long + t.text "similarities", size: :long + t.text "successes", size: :long + t.text "suggestions", size: :long t.datetime "updated_at", precision: nil, null: false t.integer "user_id" t.integer "workshop_id" @@ -961,7 +963,7 @@ end create_table "workshop_variations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "code", size: :medium + t.text "code", size: :long t.datetime "created_at", precision: nil, null: false t.integer "created_by_id" t.boolean "inactive", default: true @@ -977,20 +979,20 @@ end create_table "workshops", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "age_range", size: :medium - t.text "age_range_spanish", size: :medium + t.text "age_range", size: :long + t.text "age_range_spanish", size: :long t.string "author_location" - t.text "closing", size: :medium - t.text "closing_spanish", size: :medium + t.text "closing", size: :long + t.text "closing_spanish", size: :long t.datetime "created_at", precision: nil, null: false - t.text "creation", size: :medium - t.text "creation_spanish", size: :medium - t.text "demonstration", size: :medium - t.text "demonstration_spanish", size: :medium - t.text "description", size: :medium - t.text "description_spanish", size: :medium - t.text "extra_field" - t.text "extra_field_spanish" + t.text "creation", size: :long + t.text "creation_spanish", size: :long + t.text "demonstration", size: :long + t.text "demonstration_spanish", size: :long + t.text "description", size: :long + t.text "description_spanish", size: :long + t.text "extra_field", size: :medium + t.text "extra_field_spanish", size: :medium t.boolean "featured", default: false t.string "filemaker_code" t.string "full_name" @@ -999,37 +1001,37 @@ t.integer "header_file_size" t.datetime "header_updated_at", precision: nil t.boolean "inactive", default: true - t.text "instructions", size: :medium - t.text "instructions_spanish", size: :medium - t.text "introduction", size: :medium - t.text "introduction_spanish", size: :medium + t.text "instructions", size: :long + t.text "instructions_spanish", size: :long + t.text "introduction", size: :long + t.text "introduction_spanish", size: :long t.integer "led_count", default: 0 t.boolean "legacy", default: false t.integer "legacy_id" - t.text "materials", size: :medium - t.text "materials_spanish", size: :medium + t.text "materials", size: :long + t.text "materials_spanish", size: :long t.string "misc1" - t.text "misc1_spanish", size: :medium + t.text "misc1_spanish", size: :long t.string "misc2" - t.text "misc2_spanish", size: :medium - t.text "misc_instructions", size: :medium - t.text "misc_instructions_spanish", size: :medium + t.text "misc2_spanish", size: :long + t.text "misc_instructions", size: :long + t.text "misc_instructions_spanish", size: :long t.integer "month" - t.text "notes", size: :medium - t.text "notes_spanish", size: :medium - t.text "objective", size: :medium - t.text "objective_spanish", size: :medium - t.text "opening_circle", size: :medium - t.text "opening_circle_spanish", size: :medium - t.text "optional_materials", size: :medium - t.text "optional_materials_spanish", size: :medium + t.text "notes", size: :long + t.text "notes_spanish", size: :long + t.text "objective", size: :long + t.text "objective_spanish", size: :long + t.text "opening_circle", size: :long + t.text "opening_circle_spanish", size: :long + t.text "optional_materials", size: :long + t.text "optional_materials_spanish", size: :long t.string "photo_caption" - t.text "project", size: :medium - t.text "project_spanish", size: :medium + t.text "project", size: :long + t.text "project_spanish", size: :long t.string "pub_issue" t.boolean "searchable", default: false - t.text "setup", size: :medium - t.text "setup_spanish", size: :medium + t.text "setup", size: :long + t.text "setup_spanish", size: :long t.string "thumbnail_content_type" t.string "thumbnail_file_name" t.integer "thumbnail_file_size" @@ -1041,18 +1043,18 @@ t.integer "time_opening" t.integer "time_opening_circle" t.integer "time_warm_up" - t.text "timeframe", size: :medium - t.text "timeframe_spanish", size: :medium - t.text "timestamps", size: :medium - t.text "tips", size: :medium - t.text "tips_spanish", size: :medium + t.text "timeframe", size: :long + t.text "timeframe_spanish", size: :long + t.text "timestamps", size: :long + t.text "tips", size: :long + t.text "tips_spanish", size: :long t.string "title" t.datetime "updated_at", precision: nil, null: false t.integer "user_id" - t.text "visualization", size: :medium - t.text "visualization_spanish", size: :medium - t.text "warm_up", size: :medium - t.text "warm_up_spanish", size: :medium + t.text "visualization", size: :long + t.text "visualization_spanish", size: :long + t.text "warm_up", size: :long + t.text "warm_up_spanish", size: :long t.integer "windows_type_id" t.bigint "workshop_idea_id" t.integer "year" @@ -1069,7 +1071,6 @@ end add_foreign_key "action_text_mentions", "action_text_rich_texts" - add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" add_foreign_key "age_ranges", "windows_types" add_foreign_key "banners", "users", column: "created_by_id" @@ -1150,4 +1151,4 @@ add_foreign_key "workshops", "users" add_foreign_key "workshops", "windows_types" add_foreign_key "workshops", "workshop_ideas" -end +end \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f5c34193c..4705f341f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "app", + "name": "awbw", "lockfileVersion": 3, "requires": true, "packages": { @@ -31,14 +31,14 @@ }, "devDependencies": { "@tailwindcss/typography": "^0.5.19", - "vite": "^6.4.1", + "vite": "^5.4.20", "vite-plugin-ruby": "^5.1.1" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -47,13 +47,13 @@ "aix" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -62,13 +62,13 @@ "android" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -77,13 +77,13 @@ "android" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -92,13 +92,13 @@ "android" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -107,13 +107,13 @@ "darwin" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -122,13 +122,13 @@ "darwin" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -137,13 +137,13 @@ "freebsd" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -152,13 +152,13 @@ "freebsd" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -167,13 +167,13 @@ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -182,13 +182,13 @@ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -197,13 +197,13 @@ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -212,13 +212,13 @@ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -227,13 +227,13 @@ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -242,13 +242,13 @@ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -257,13 +257,13 @@ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -272,13 +272,13 @@ "linux" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -287,28 +287,13 @@ "linux" ], "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -317,28 +302,13 @@ "netbsd" ], "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -347,28 +317,13 @@ "openbsd" ], "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -377,13 +332,13 @@ "sunos" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -392,13 +347,13 @@ "win32" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -407,13 +362,13 @@ "win32" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -422,7 +377,7 @@ "win32" ], "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/@floating-ui/core": { @@ -1828,43 +1783,40 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=18" + "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escape-string-regexp": { @@ -2872,48 +2824,6 @@ "node": ">=18" } }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -2963,22 +2873,20 @@ "license": "MIT" }, "node_modules/vite": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", - "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "version": "5.4.20", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz", + "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==", + "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -2987,25 +2895,19 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" + "terser": "^5.4.0" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, - "jiti": { - "optional": true - }, "less": { "optional": true }, @@ -3026,12 +2928,6 @@ }, "terser": { "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true } } }, @@ -3095,33 +2991,6 @@ "stimulus-vite-helpers": "^3.0.0" } }, - "node_modules/vite/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", @@ -3157,4 +3026,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 272d30a3a..3e17a5888 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "devDependencies": { "@tailwindcss/typography": "^0.5.19", - "vite": "^6.4.1", + "vite": "^5.4.20", "vite-plugin-ruby": "^5.1.1" }, "dependencies": { From 41f817277d1d04c21fc9a7c8fead77d1a6d811db Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Fri, 23 Jan 2026 19:45:07 +0530 Subject: [PATCH 03/10] removed extra files --- .env.example | 22 - db/schema.rb | 1154 ----------------- package-lock.json | 3029 --------------------------------------------- 3 files changed, 4205 deletions(-) delete mode 100644 .env.example delete mode 100644 db/schema.rb delete mode 100644 package-lock.json diff --git a/.env.example b/.env.example deleted file mode 100644 index a6e0f97aa..000000000 --- a/.env.example +++ /dev/null @@ -1,22 +0,0 @@ -# If using database in docker compose -DATABASE_URL=trilogy://root@$(docker compose port database 3306)/ -# DATABASE_URL=trilogy://root@localhost:3306/ - -# AWS - Used for S3 storage -AWS_ACCESS_KEY_ID=SOME_ID -AWS_SECRET_ACCESS_KEY=SOME_KEY -AWS_REGION=us-east-1 -AWS_S3_BUCKET=awbwassets_development - -# Email settings -SMTP_USERNAME=SOME_USERNAME -SMTP_PASSWORD=SOME_PASSWORD -SMTP_SERVER=SOME_HOST -SMTP_PORT=2525 - -# Other -RAILS_ENV=development -APP_HOST=localhost:3000 -RAILS_SERVE_STATIC_FILES=true -ORGANIZATION_NAME=A Window Between Worlds -REPLY_TO_EMAIL=umberto.user@example.com diff --git a/db/schema.rb b/db/schema.rb deleted file mode 100644 index e6097db19..000000000 --- a/db/schema.rb +++ /dev/null @@ -1,1154 +0,0 @@ -# This file is auto-generated from the current state of the database. Instead -# of editing this file, please use the migrations feature of Active Record to -# incrementally modify your database, and then regenerate this schema definition. -# -# This file is the source Rails uses to define your schema when running `bin/rails -# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to -# be faster and is potentially less error prone than running all of your -# migrations from scratch. Old migrations may fail to apply correctly if those -# migrations use external dependencies or application code. -# -# It's strongly recommended that you check this file into your version control system. - -ActiveRecord::Schema[8.1].define(version: 2026_01_19_163954) do - create_table "action_text_mentions", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.bigint "action_text_rich_text_id", null: false - t.datetime "created_at", null: false - t.bigint "mentionable_id", null: false - t.string "mentionable_type", null: false - t.datetime "updated_at", null: false - t.index ["action_text_rich_text_id", "mentionable_type", "mentionable_id"], name: "index_at_mentions_on_rich_text_and_mentionable", unique: true - t.index ["action_text_rich_text_id"], name: "index_action_text_mentions_on_action_text_rich_text_id" - t.index ["mentionable_type", "mentionable_id"], name: "index_action_text_mentions_on_mentionable" - end - - create_table "action_text_rich_texts", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :long - t.datetime "created_at", null: false - t.string "name", null: false - t.bigint "record_id", null: false - t.string "record_type", null: false - t.datetime "updated_at", null: false - t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true - end - - create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.bigint "blob_id", null: false - t.datetime "created_at", precision: nil, null: false - t.string "name", null: false - t.bigint "record_id", null: false - t.string "record_type", null: false - t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" - t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true - end - - create_table "active_storage_blobs", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "aws_key" - t.bigint "byte_size", null: false - t.string "checksum" - t.string "content_type" - t.datetime "created_at", precision: nil, null: false - t.string "filename", null: false - t.string "key", null: false - t.text "metadata", size: :medium - t.string "service_name", null: false - t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true - end - - create_table "active_storage_variant_records", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.bigint "blob_id", null: false - t.string "variation_digest", null: false - t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true - end - - create_table "addresses", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "address_type" - t.bigint "addressable_id" - t.string "addressable_type" - t.string "city", null: false - t.string "country" - t.string "county" - t.datetime "created_at", null: false - t.string "district" - t.boolean "inactive", default: false, null: false - t.integer "la_city_council_district" - t.integer "la_service_planning_area" - t.integer "la_supervisorial_district" - t.string "locality" - t.string "phone" - t.string "state", null: false - t.string "street_address", null: false - t.datetime "updated_at", null: false - t.string "zip_code", null: false - t.index ["addressable_type", "addressable_id"], name: "index_addresses_on_addressable" - end - - create_table "admins", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil - t.datetime "current_sign_in_at", precision: nil - t.string "current_sign_in_ip" - t.string "email", default: "", null: false - t.string "encrypted_password", default: "", null: false - t.string "first_name", default: "", null: false - t.string "last_name", default: "", null: false - t.datetime "last_sign_in_at", precision: nil - t.string "last_sign_in_ip" - t.datetime "remember_created_at", precision: nil - t.datetime "reset_password_sent_at", precision: nil - t.string "reset_password_token" - t.integer "sign_in_count", default: 0, null: false - t.datetime "updated_at", precision: nil - t.index ["email"], name: "index_admins_on_email", unique: true - t.index ["reset_password_token"], name: "index_admins_on_reset_password_token", unique: true - end - - create_table "age_ranges", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.datetime "updated_at", precision: nil, null: false - t.integer "windows_type_id" - t.index ["windows_type_id"], name: "index_age_ranges_on_windows_type_id" - end - - create_table "ahoy_events", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "name" - t.json "properties" - t.datetime "time" - t.bigint "user_id" - t.bigint "visit_id" - t.index ["name", "time"], name: "index_ahoy_events_on_name_and_time" - t.index ["user_id"], name: "index_ahoy_events_on_user_id" - t.index ["visit_id"], name: "index_ahoy_events_on_visit_id" - end - - create_table "ahoy_visits", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "app_version" - t.string "browser" - t.string "city" - t.string "country" - t.string "device_type" - t.string "ip" - t.text "landing_page" - t.float "latitude" - t.float "longitude" - t.string "os" - t.string "os_version" - t.string "platform" - t.text "referrer" - t.string "referring_domain" - t.string "region" - t.datetime "started_at" - t.text "user_agent" - t.bigint "user_id" - t.string "utm_campaign" - t.string "utm_content" - t.string "utm_medium" - t.string "utm_source" - t.string "utm_term" - t.string "visit_token" - t.string "visitor_token" - t.index ["user_id"], name: "index_ahoy_visits_on_user_id" - t.index ["visit_token"], name: "index_ahoy_visits_on_visit_token", unique: true - t.index ["visitor_token", "started_at"], name: "index_ahoy_visits_on_visitor_token_and_started_at" - end - - create_table "answer_options", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.integer "position" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", null: false - t.integer "owner_id" - t.string "owner_type" - t.integer "report_id" - t.string "title" - t.string "type", default: "PrimaryAsset", null: false - t.datetime "updated_at", null: false - t.index ["owner_id"], name: "index_assets_on_owner_id" - t.index ["owner_type"], name: "index_assets_on_owner_type" - t.index ["type"], name: "index_assets_on_type" - end - - create_table "attachments", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "file_content_type" - t.string "file_file_name" - t.integer "file_file_size" - t.datetime "file_updated_at", precision: nil - t.integer "owner_id" - t.string "owner_type" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "banners", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "content", size: :medium - t.datetime "created_at", precision: nil, null: false - t.integer "created_by_id" - t.boolean "show" - t.datetime "updated_at", precision: nil, null: false - t.integer "updated_by_id" - t.index ["created_by_id"], name: "index_banners_on_created_by_id" - t.index ["updated_by_id"], name: "index_banners_on_updated_by_id" - end - - create_table "bookmark_annotations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "annotation", size: :long - t.integer "bookmark_id" - t.datetime "created_at", precision: nil, null: false - t.datetime "updated_at", precision: nil, null: false - t.index ["bookmark_id"], name: "index_bookmark_annotations_on_bookmark_id" - end - - create_table "bookmarks", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "bookmarkable_id" - t.string "bookmarkable_type" - t.datetime "created_at", precision: nil, null: false - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.index ["user_id"], name: "index_bookmarks_on_user_id" - end - - create_table "categories", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "legacy_id" - t.integer "metadatum_id" - t.string "name" - t.integer "position", default: 10, null: false - t.boolean "published", default: false - t.datetime "updated_at", precision: nil, null: false - t.index ["metadatum_id"], name: "index_categories_on_metadatum_id" - end - - create_table "categorizable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "categorizable_id" - t.string "categorizable_type" - t.integer "category_id" - t.datetime "created_at", precision: nil, null: false - t.boolean "inactive", default: true - t.integer "legacy_id" - t.datetime "updated_at", precision: nil, null: false - t.index ["categorizable_type", "categorizable_id"], name: "idx_on_categorizable_type_categorizable_id_ccce65d80c" - t.index ["category_id", "categorizable_type", "categorizable_id"], name: "index_categorizable_items_uniqueness", unique: true - t.index ["category_id"], name: "index_categorizable_items_on_category_id" - end - - create_table "ckeditor_assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "actual_url" - t.integer "assetable_id" - t.string "assetable_type", limit: 30 - t.datetime "created_at", precision: nil, null: false - t.string "data_content_type" - t.string "data_file_name", null: false - t.integer "data_file_size" - t.integer "height" - t.string "type", limit: 30 - t.datetime "updated_at", precision: nil, null: false - t.integer "width" - t.index ["assetable_type", "assetable_id"], name: "idx_ckeditor_assetable" - t.index ["assetable_type", "type", "assetable_id"], name: "idx_ckeditor_assetable_type" - end - - create_table "community_news", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "author_id", null: false - t.text "body", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id", null: false - t.boolean "featured" - t.integer "project_id" - t.boolean "published" - t.string "reference_url" - t.string "title" - t.datetime "updated_at", null: false - t.integer "updated_by_id", null: false - t.integer "windows_type_id" - t.string "youtube_url" - t.index ["author_id"], name: "index_community_news_on_author_id" - t.index ["body"], name: "index_community_news_on_body", type: :fulltext - t.index ["created_by_id"], name: "index_community_news_on_created_by_id" - t.index ["project_id"], name: "index_community_news_on_project_id" - t.index ["updated_by_id"], name: "index_community_news_on_updated_by_id" - t.index ["windows_type_id"], name: "index_community_news_on_windows_type_id" - end - - create_table "contact_methods", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.bigint "address_id" - t.string "contact_type" - t.bigint "contactable_id", null: false - t.string "contactable_type", null: false - t.datetime "created_at", null: false - t.boolean "inactive", default: false, null: false - t.boolean "is_primary", default: false, null: false - t.string "kind", null: false - t.datetime "updated_at", null: false - t.string "value", null: false - t.index ["address_id"], name: "index_contact_methods_on_address_id" - t.index ["contactable_type", "contactable_id"], name: "index_contact_methods_on_contactable" - end - - create_table "event_registrations", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", null: false - t.bigint "event_id" - t.integer "registrant_id" - t.datetime "updated_at", null: false - t.index ["event_id"], name: "index_event_registrations_on_event_id" - t.index ["registrant_id", "event_id"], name: "index_event_registrations_on_registrant_id_and_event_id", unique: true - t.index ["registrant_id"], name: "index_event_registrations_on_registrant_id" - end - - create_table "events", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "cost_cents" - t.datetime "created_at", null: false - t.integer "created_by_id" - t.text "description", size: :medium - t.datetime "end_date", precision: nil - t.boolean "featured", default: false, null: false - t.boolean "publicly_visible", default: false, null: false - t.datetime "registration_close_date", precision: nil - t.datetime "start_date", precision: nil - t.string "title" - t.datetime "updated_at", null: false - t.index ["created_by_id"], name: "index_events_on_created_by_id" - end - - create_table "facilitators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "best_time_to_call" - t.text "bio", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id" - t.date "date_of_birth" - t.string "display_name_preference" - t.string "email" - t.string "email_2" - t.string "email_2_type", default: "personal", null: false - t.string "email_type" - t.string "facebook_url" - t.string "first_name", null: false - t.string "instagram_url" - t.string "last_name", null: false - t.string "linked_in_url" - t.date "member_since" - t.text "notes" - t.boolean "profile_is_searchable", default: true, null: false - t.boolean "profile_show_affiliations", default: true, null: false - t.boolean "profile_show_bio", default: true, null: false - t.boolean "profile_show_email", default: true, null: false - t.boolean "profile_show_events_registered", default: true, null: false - t.boolean "profile_show_member_since", default: true, null: false - t.boolean "profile_show_phone", default: true, null: false - t.boolean "profile_show_pronouns", default: true, null: false - t.boolean "profile_show_sectors", default: true, null: false - t.boolean "profile_show_social_media", default: true, null: false - t.boolean "profile_show_stories", default: true, null: false - t.boolean "profile_show_story_ideas", default: true, null: false - t.boolean "profile_show_workshop_ideas", default: true, null: false - t.boolean "profile_show_workshop_logs", default: true, null: false - t.boolean "profile_show_workshop_variations", default: true, null: false - t.boolean "profile_show_workshops", default: true, null: false - t.string "pronouns" - t.string "twitter_url" - t.datetime "updated_at", null: false - t.integer "updated_by_id" - t.string "youtube_url" - t.index ["created_by_id"], name: "index_facilitators_on_created_by_id" - t.index ["updated_by_id"], name: "index_facilitators_on_updated_by_id" - end - - create_table "faqs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "answer", size: :long - t.datetime "created_at", precision: nil, null: false - t.boolean "inactive" - t.integer "position", null: false - t.string "question" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "footers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "adult_program" - t.string "children_program" - t.datetime "created_at", precision: nil, null: false - t.string "general_questions" - t.string "phone" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "form_builders", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.text "description", size: :long - t.string "name" - t.integer "owner_type" - t.datetime "updated_at", precision: nil, null: false - t.integer "windows_type_id" - t.index ["windows_type_id"], name: "index_form_builders_on_windows_type_id" - end - - create_table "form_field_answer_options", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "answer_option_id" - t.datetime "created_at", precision: nil, null: false - t.integer "form_field_id" - t.datetime "updated_at", precision: nil, null: false - t.index ["answer_option_id"], name: "index_form_field_answer_options_on_answer_option_id" - t.index ["form_field_id"], name: "index_form_field_answer_options_on_form_field_id" - end - - create_table "form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "answer_datatype" - t.integer "answer_type" - t.datetime "created_at", precision: nil, null: false - t.integer "form_id" - t.string "instructional_hint" - t.boolean "is_required", default: true - t.integer "parent_id" - t.integer "position" - t.string "question" - t.integer "status", default: 1 - t.datetime "updated_at", precision: nil, null: false - t.index ["form_id"], name: "index_form_fields_on_form_id" - end - - create_table "forms", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "form_builder_id" - t.integer "owner_id" - t.string "owner_type" - t.datetime "updated_at", precision: nil, null: false - t.index ["form_builder_id"], name: "index_forms_on_form_builder_id" - end - - create_table "images", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "file_content_type" - t.string "file_file_name" - t.integer "file_file_size" - t.datetime "file_updated_at", precision: nil - t.integer "owner_id" - t.string "owner_type" - t.integer "report_id" - t.string "type", default: "Images::GalleryImage", null: false - t.datetime "updated_at", precision: nil, null: false - t.index ["owner_id"], name: "index_images_on_owner_id" - t.index ["type"], name: "index_images_on_type" - end - - create_table "locations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "city" - t.string "country" - t.datetime "created_at", precision: nil, null: false - t.string "state" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "media_files", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "file_content_type" - t.string "file_file_name" - t.integer "file_file_size" - t.datetime "file_updated_at", precision: nil - t.integer "report_id" - t.integer "workshop_log_id" - end - - create_table "metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "legacy_id" - t.string "name" - t.boolean "published", default: false - t.datetime "updated_at", precision: nil, null: false - end - - create_table "monthly_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "best_call_time" - t.boolean "call_requested" - t.text "comments", size: :long - t.datetime "created_at", precision: nil, null: false - t.text "goals", size: :long - t.text "goals_reached", size: :long - t.boolean "mail_evaluations" - t.string "month" - t.text "most_challenging", size: :long - t.text "most_effective", size: :long - t.string "name" - t.string "num_new_participants" - t.string "num_ongoing_participants" - t.string "phone" - t.string "position" - t.integer "project_id" - t.integer "project_user_id" - t.datetime "updated_at", precision: nil, null: false - t.index ["project_id"], name: "index_monthly_reports_on_project_id" - t.index ["project_user_id"], name: "index_monthly_reports_on_project_user_id" - end - - create_table "notifications", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.datetime "delivered_at" - t.text "email_body_html" - t.text "email_body_text" - t.text "email_subject" - t.string "kind", null: false - t.integer "noticeable_id" - t.string "noticeable_type" - t.integer "notification_type" - t.string "recipient_email", null: false - t.string "recipient_role", null: false - t.datetime "updated_at", precision: nil, null: false - t.index ["kind"], name: "index_notifications_on_kind" - t.index ["noticeable_type", "noticeable_id"], name: "index_notifications_on_noticeable_type_and_noticeable_id" - end - - create_table "payments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "amount_cents", null: false - t.datetime "created_at", null: false - t.string "currency", default: "usd", null: false - t.string "failure_code" - t.string "failure_message" - t.bigint "payable_id", null: false - t.string "payable_type", null: false - t.bigint "payer_id", null: false - t.string "payer_type", null: false - t.string "status", null: false - t.string "stripe_charge_id" - t.json "stripe_metadata" - t.string "stripe_payment_intent_id", null: false - t.datetime "updated_at", null: false - t.index ["payable_type", "payable_id", "status"], name: "index_payments_on_payable_type_and_payable_id_and_status" - t.index ["payable_type", "payable_id"], name: "index_payments_on_payable" - t.index ["payable_type", "payable_id"], name: "index_payments_on_payable_type_and_payable_id" - t.index ["payer_type", "payer_id"], name: "index_payments_on_payer" - t.index ["payer_type", "payer_id"], name: "index_payments_on_payer_type_and_payer_id" - t.index ["stripe_charge_id"], name: "index_payments_on_stripe_charge_id" - t.index ["stripe_payment_intent_id"], name: "index_payments_on_stripe_payment_intent_id", unique: true - end - - create_table "permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "legacy_id" - t.string "security_cat" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "project_obligations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "project_statuses", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "project_users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "agency_id" - t.datetime "created_at", precision: nil, null: false - t.string "filemaker_code" - t.boolean "inactive", default: false, null: false - t.integer "position" - t.integer "project_id" - t.string "title" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.index ["agency_id"], name: "index_project_users_on_agency_id" - t.index ["project_id"], name: "index_project_users_on_project_id" - t.index ["user_id"], name: "index_project_users_on_user_id" - end - - create_table "projects", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "agency_type" - t.string "agency_type_other" - t.datetime "created_at", precision: nil, null: false - t.text "description", size: :long - t.date "end_date" - t.string "filemaker_code" - t.boolean "inactive", default: false - t.string "internal_id" - t.boolean "legacy", default: false - t.integer "legacy_id" - t.integer "location_id" - t.string "mission_vision_values" - t.string "name" - t.text "notes", size: :long - t.integer "project_status_id" - t.date "start_date" - t.datetime "updated_at", precision: nil, null: false - t.string "website_url" - t.integer "windows_type_id" - t.index ["location_id"], name: "index_projects_on_location_id" - t.index ["project_status_id"], name: "index_projects_on_project_status_id" - t.index ["windows_type_id"], name: "index_projects_on_windows_type_id" - end - - create_table "quotable_item_quotes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "legacy_id" - t.integer "quotable_id" - t.string "quotable_type" - t.integer "quote_id" - t.datetime "updated_at", precision: nil, null: false - t.index ["quote_id"], name: "index_quotable_item_quotes_on_quote_id" - end - - create_table "quotes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "age" - t.datetime "created_at", precision: nil, null: false - t.string "gender", limit: 1 - t.boolean "inactive", default: true - t.boolean "legacy", default: false - t.integer "legacy_id" - t.text "quote", size: :long - t.string "speaker_name" - t.datetime "updated_at", precision: nil, null: false - t.integer "workshop_id" - t.index ["workshop_id"], name: "index_quotes_on_workshop_id" - end - - create_table "report_form_field_answers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "answer", size: :long - t.integer "answer_option_id" - t.datetime "created_at", precision: nil - t.integer "form_field_id" - t.integer "report_id" - t.datetime "updated_at", precision: nil - t.index ["answer_option_id"], name: "index_report_form_field_answers_on_answer_option_id" - t.index ["form_field_id"], name: "index_report_form_field_answers_on_form_field_id" - t.index ["report_id"], name: "index_report_form_field_answers_on_report_id" - end - - create_table "reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "adults_first_time", default: 0 - t.integer "adults_ongoing", default: 0 - t.integer "children_first_time", default: 0 - t.integer "children_ongoing", default: 0 - t.datetime "created_at", precision: nil, null: false - t.date "date" - t.string "form_file_content_type" - t.string "form_file_file_name" - t.integer "form_file_file_size" - t.datetime "form_file_updated_at", precision: nil - t.boolean "has_attachment", default: false - t.string "other_description" - t.integer "owner_id" - t.string "owner_type" - t.integer "project_id" - t.integer "rating", default: 0 - t.integer "teens_first_time", default: 0 - t.integer "teens_ongoing", default: 0 - t.string "type" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.integer "windows_type_id" - t.integer "workshop_id" - t.string "workshop_name" - t.index ["project_id"], name: "index_reports_on_project_id" - t.index ["user_id"], name: "index_reports_on_user_id" - t.index ["windows_type_id"], name: "index_reports_on_windows_type_id" - end - - create_table "resources", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "agency" - t.string "author" - t.datetime "created_at", precision: nil, null: false - t.boolean "featured", default: false - t.boolean "female", default: false - t.string "filemaker_code" - t.boolean "inactive", default: true - t.string "kind" - t.boolean "legacy" - t.integer "legacy_id" - t.boolean "male", default: false - t.integer "position" - t.text "text", size: :long - t.string "title" - t.datetime "updated_at", precision: nil, null: false - t.string "url" - t.integer "user_id" - t.integer "windows_type_id" - t.integer "workshop_id" - t.index ["user_id"], name: "index_resources_on_user_id" - t.index ["windows_type_id"], name: "index_resources_on_windows_type_id" - t.index ["workshop_id"], name: "index_resources_on_workshop_id" - end - - create_table "sectorable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.boolean "inactive", default: true - t.boolean "is_leader", default: false, null: false - t.integer "sector_id" - t.integer "sectorable_id" - t.string "sectorable_type" - t.datetime "updated_at", precision: nil, null: false - t.index ["sector_id", "sectorable_type", "sectorable_id"], name: "index_sectorable_items_uniqueness", unique: true - t.index ["sector_id"], name: "index_sectorable_items_on_sector_id" - t.index ["sectorable_type", "sectorable_id"], name: "index_sectorable_items_on_sectorable_type_and_sectorable_id" - end - - create_table "sectors", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.boolean "published", default: false - t.datetime "updated_at", precision: nil, null: false - end - - create_table "stories", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id", null: false - t.string "external_workshop_title" - t.boolean "featured", default: false, null: false - t.boolean "permission_given" - t.integer "project_id" - t.boolean "published", default: false, null: false - t.integer "spotlighted_facilitator_id" - t.bigint "story_idea_id" - t.string "title" - t.datetime "updated_at", null: false - t.integer "updated_by_id", null: false - t.string "website_url" - t.integer "windows_type_id", null: false - t.integer "workshop_id" - t.string "youtube_url" - t.index ["created_by_id"], name: "index_stories_on_created_by_id" - t.index ["project_id"], name: "index_stories_on_project_id" - t.index ["published"], name: "index_stories_on_published" - t.index ["spotlighted_facilitator_id"], name: "index_stories_on_spotlighted_facilitator_id" - t.index ["story_idea_id"], name: "index_stories_on_story_idea_id" - t.index ["updated_by_id"], name: "index_stories_on_updated_by_id" - t.index ["windows_type_id"], name: "index_stories_on_windows_type_id" - t.index ["workshop_id"], name: "index_stories_on_workshop_id" - end - - create_table "story_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id", null: false - t.string "external_workshop_title" - t.boolean "permission_given" - t.integer "project_id", null: false - t.string "publish_preferences" - t.string "title" - t.datetime "updated_at", null: false - t.integer "updated_by_id", null: false - t.integer "windows_type_id", null: false - t.integer "workshop_id" - t.string "youtube_url" - t.index ["created_by_id"], name: "index_story_ideas_on_created_by_id" - t.index ["project_id"], name: "index_story_ideas_on_project_id" - t.index ["updated_by_id"], name: "index_story_ideas_on_updated_by_id" - t.index ["windows_type_id"], name: "index_story_ideas_on_windows_type_id" - t.index ["workshop_id"], name: "index_story_ideas_on_workshop_id" - end - - create_table "tutorials", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body" - t.datetime "created_at", null: false - t.boolean "featured", default: false, null: false - t.integer "position", default: 10, null: false - t.boolean "published", default: false, null: false - t.string "title" - t.datetime "updated_at", null: false - t.string "youtube_url" - t.index ["featured"], name: "index_tutorials_on_featured" - t.index ["published"], name: "index_tutorials_on_published" - t.index ["title"], name: "index_tutorials_on_title" - end - - create_table "user_form_form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "form_field_id" - t.text "text", size: :long - t.datetime "updated_at", precision: nil, null: false - t.integer "user_form_id" - t.index ["form_field_id"], name: "index_user_form_form_fields_on_form_field_id" - t.index ["user_form_id"], name: "index_user_form_form_fields_on_user_form_id" - end - - create_table "user_forms", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "form_id" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.index ["form_id"], name: "index_user_forms_on_form_id" - t.index ["user_id"], name: "index_user_forms_on_user_id" - end - - create_table "user_permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "permission_id" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.index ["permission_id"], name: "index_user_permissions_on_permission_id" - t.index ["user_id"], name: "index_user_permissions_on_user_id" - end - - create_table "users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "address" - t.string "address2" - t.integer "agency_id" - t.string "avatar_content_type" - t.string "avatar_file_name" - t.integer "avatar_file_size" - t.datetime "avatar_updated_at", precision: nil - t.string "best_time_to_call" - t.date "birthday" - t.string "city" - t.string "city2" - t.text "comment", size: :long - t.datetime "confirmation_sent_at" - t.string "confirmation_token" - t.boolean "confirmed", default: true - t.datetime "confirmed_at" - t.datetime "created_at", precision: nil - t.datetime "current_sign_in_at", precision: nil - t.string "current_sign_in_ip" - t.string "email", default: "", null: false - t.string "email_type", default: "work", null: false - t.string "encrypted_password", default: "", null: false - t.integer "facilitator_id" - t.integer "failed_attempts", default: 0, null: false - t.string "first_name", default: "" - t.boolean "inactive", default: false - t.string "last_name", default: "" - t.datetime "last_sign_in_at", precision: nil - t.string "last_sign_in_ip" - t.boolean "legacy", default: false - t.integer "legacy_id" - t.datetime "locked_at" - t.text "notes", size: :long - t.string "phone" - t.string "phone2" - t.string "phone3" - t.integer "primary_address" - t.datetime "remember_created_at", precision: nil - t.datetime "reset_password_sent_at", precision: nil - t.string "reset_password_token" - t.integer "sign_in_count", default: 0, null: false - t.string "state" - t.string "state2" - t.string "subscribecode" - t.boolean "super_user", default: false - t.string "unconfirmed_email" - t.string "unlock_token" - t.datetime "updated_at", precision: nil - t.string "zip" - t.string "zip2" - t.index ["agency_id"], name: "index_users_on_agency_id" - t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true - t.index ["email"], name: "index_users_on_email", unique: true - t.index ["facilitator_id"], name: "index_users_on_facilitator_id" - t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true - t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true - end - - create_table "windows_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "legacy_id" - t.string "name" - t.string "short_name" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "workshop_age_ranges", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "age_range_id" - t.datetime "created_at", precision: nil, null: false - t.datetime "updated_at", precision: nil, null: false - t.integer "workshop_id" - t.index ["age_range_id"], name: "index_workshop_age_ranges_on_age_range_id" - t.index ["workshop_id"], name: "index_workshop_age_ranges_on_workshop_id" - end - - create_table "workshop_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "age_range", size: :medium - t.text "age_range_spanish", size: :medium - t.text "closing", size: :medium - t.text "closing_spanish", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id", null: false - t.text "creation", size: :medium - t.text "creation_spanish", size: :medium - t.text "demonstration", size: :medium - t.text "demonstration_spanish", size: :medium - t.text "description", size: :medium - t.text "description_spanish", size: :medium - t.text "instructions", size: :medium - t.text "instructions_spanish", size: :medium - t.text "introduction", size: :medium - t.text "introduction_spanish", size: :medium - t.text "materials", size: :medium - t.text "materials_spanish", size: :medium - t.text "misc_instructions_spanish", size: :medium - t.text "notes", size: :medium - t.text "notes_spanish", size: :medium - t.text "objective", size: :medium - t.text "objective_spanish", size: :medium - t.text "opening_circle", size: :medium - t.text "opening_circle_spanish", size: :medium - t.text "optional_materials", size: :medium - t.text "optional_materials_spanish", size: :medium - t.text "setup", size: :medium - t.text "setup_spanish", size: :medium - t.text "staff_notes", size: :medium - t.integer "time_closing" - t.integer "time_creation" - t.integer "time_demonstration" - t.integer "time_hours" - t.integer "time_intro" - t.integer "time_minutes" - t.integer "time_opening" - t.integer "time_opening_circle" - t.integer "time_warm_up" - t.text "timeframe", size: :medium - t.text "timeframe_spanish", size: :medium - t.text "tips", size: :medium - t.text "tips_spanish", size: :medium - t.string "title" - t.datetime "updated_at", null: false - t.integer "updated_by_id", null: false - t.text "visualization", size: :medium - t.text "visualization_spanish", size: :medium - t.text "warm_up", size: :medium - t.text "warm_up_spanish", size: :medium - t.integer "windows_type_id", null: false - t.index ["created_by_id"], name: "index_workshop_ideas_on_created_by_id" - t.index ["updated_by_id"], name: "index_workshop_ideas_on_updated_by_id" - t.index ["windows_type_id"], name: "index_workshop_ideas_on_windows_type_id" - end - - create_table "workshop_logs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "challenges", size: :long - t.text "comments", size: :long - t.datetime "created_at", precision: nil, null: false - t.date "date" - t.text "differences", size: :long - t.boolean "is_embodied_art_workshop", default: false - t.boolean "lead_similar" - t.integer "num_participants_first_time", default: 0 - t.integer "num_participants_on_going", default: 0 - t.integer "project_id" - t.text "questions", size: :long - t.integer "rating", default: 0 - t.text "reaction", size: :long - t.text "similarities", size: :long - t.text "successes", size: :long - t.text "suggestions", size: :long - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.integer "workshop_id" - t.index ["project_id"], name: "index_workshop_logs_on_project_id" - t.index ["user_id"], name: "index_workshop_logs_on_user_id" - t.index ["workshop_id"], name: "index_workshop_logs_on_workshop_id" - end - - create_table "workshop_resources", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "resource_id" - t.datetime "updated_at", precision: nil, null: false - t.integer "workshop_id" - t.index ["resource_id"], name: "index_workshop_resources_on_resource_id" - t.index ["workshop_id"], name: "index_workshop_resources_on_workshop_id" - end - - create_table "workshop_series_memberships", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", null: false - t.integer "position", default: 1, null: false - t.string "series_description" - t.string "series_description_spanish" - t.string "theme_name" - t.datetime "updated_at", null: false - t.integer "workshop_child_id", null: false - t.integer "workshop_parent_id", null: false - t.index ["workshop_child_id"], name: "fk_rails_c3357d1053" - t.index ["workshop_parent_id", "workshop_child_id"], name: "index_workshop_series_memberships_on_parent_and_child", unique: true - end - - create_table "workshop_variations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "code", size: :long - t.datetime "created_at", precision: nil, null: false - t.integer "created_by_id" - t.boolean "inactive", default: true - t.boolean "legacy", default: false - t.string "name" - t.integer "position" - t.datetime "updated_at", precision: nil, null: false - t.integer "variation_id" - t.integer "workshop_id" - t.string "youtube_url" - t.index ["created_by_id"], name: "index_workshop_variations_on_created_by_id" - t.index ["workshop_id"], name: "index_workshop_variations_on_workshop_id" - end - - create_table "workshops", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "age_range", size: :long - t.text "age_range_spanish", size: :long - t.string "author_location" - t.text "closing", size: :long - t.text "closing_spanish", size: :long - t.datetime "created_at", precision: nil, null: false - t.text "creation", size: :long - t.text "creation_spanish", size: :long - t.text "demonstration", size: :long - t.text "demonstration_spanish", size: :long - t.text "description", size: :long - t.text "description_spanish", size: :long - t.text "extra_field", size: :medium - t.text "extra_field_spanish", size: :medium - t.boolean "featured", default: false - t.string "filemaker_code" - t.string "full_name" - t.string "header_content_type" - t.string "header_file_name" - t.integer "header_file_size" - t.datetime "header_updated_at", precision: nil - t.boolean "inactive", default: true - t.text "instructions", size: :long - t.text "instructions_spanish", size: :long - t.text "introduction", size: :long - t.text "introduction_spanish", size: :long - t.integer "led_count", default: 0 - t.boolean "legacy", default: false - t.integer "legacy_id" - t.text "materials", size: :long - t.text "materials_spanish", size: :long - t.string "misc1" - t.text "misc1_spanish", size: :long - t.string "misc2" - t.text "misc2_spanish", size: :long - t.text "misc_instructions", size: :long - t.text "misc_instructions_spanish", size: :long - t.integer "month" - t.text "notes", size: :long - t.text "notes_spanish", size: :long - t.text "objective", size: :long - t.text "objective_spanish", size: :long - t.text "opening_circle", size: :long - t.text "opening_circle_spanish", size: :long - t.text "optional_materials", size: :long - t.text "optional_materials_spanish", size: :long - t.string "photo_caption" - t.text "project", size: :long - t.text "project_spanish", size: :long - t.string "pub_issue" - t.boolean "searchable", default: false - t.text "setup", size: :long - t.text "setup_spanish", size: :long - t.string "thumbnail_content_type" - t.string "thumbnail_file_name" - t.integer "thumbnail_file_size" - t.datetime "thumbnail_updated_at", precision: nil - t.integer "time_closing" - t.integer "time_creation" - t.integer "time_demonstration" - t.integer "time_intro" - t.integer "time_opening" - t.integer "time_opening_circle" - t.integer "time_warm_up" - t.text "timeframe", size: :long - t.text "timeframe_spanish", size: :long - t.text "timestamps", size: :long - t.text "tips", size: :long - t.text "tips_spanish", size: :long - t.string "title" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.text "visualization", size: :long - t.text "visualization_spanish", size: :long - t.text "warm_up", size: :long - t.text "warm_up_spanish", size: :long - t.integer "windows_type_id" - t.bigint "workshop_idea_id" - t.integer "year" - t.index ["created_at"], name: "index_workshops_on_created_at" - t.index ["inactive", "led_count", "title"], name: "index_workshops_on_inactive_and_led_count_and_title" - t.index ["led_count"], name: "index_workshops_on_led_count" - t.index ["title", "full_name", "objective", "materials", "introduction", "demonstration", "opening_circle", "warm_up", "creation", "closing", "notes", "tips", "misc1", "misc2"], name: "workshop_fullsearch", type: :fulltext - t.index ["title"], name: "index_workshops_on_title", type: :fulltext - t.index ["title"], name: "workshop_fullsearch_title", type: :fulltext - t.index ["user_id"], name: "index_workshops_on_user_id" - t.index ["windows_type_id"], name: "index_workshops_on_windows_type_id" - t.index ["workshop_idea_id"], name: "index_workshops_on_workshop_idea_id" - t.index ["year", "month"], name: "index_workshops_on_year_and_month" - end - - add_foreign_key "action_text_mentions", "action_text_rich_texts" - add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" - add_foreign_key "age_ranges", "windows_types" - add_foreign_key "banners", "users", column: "created_by_id" - add_foreign_key "banners", "users", column: "updated_by_id" - add_foreign_key "bookmark_annotations", "bookmarks" - add_foreign_key "bookmarks", "users" - add_foreign_key "categories", "metadata" - add_foreign_key "community_news", "projects" - add_foreign_key "community_news", "users", column: "author_id" - add_foreign_key "community_news", "users", column: "created_by_id" - add_foreign_key "community_news", "users", column: "updated_by_id" - add_foreign_key "community_news", "windows_types" - add_foreign_key "contact_methods", "addresses" - add_foreign_key "event_registrations", "events" - add_foreign_key "event_registrations", "users", column: "registrant_id" - add_foreign_key "events", "users", column: "created_by_id" - add_foreign_key "facilitators", "users", column: "created_by_id" - add_foreign_key "facilitators", "users", column: "updated_by_id" - add_foreign_key "form_builders", "windows_types" - add_foreign_key "form_field_answer_options", "answer_options" - add_foreign_key "form_field_answer_options", "form_fields" - add_foreign_key "form_fields", "forms" - add_foreign_key "forms", "form_builders" - add_foreign_key "monthly_reports", "project_users" - add_foreign_key "monthly_reports", "projects" - add_foreign_key "project_users", "projects" - add_foreign_key "project_users", "projects", column: "agency_id" - add_foreign_key "project_users", "users" - add_foreign_key "projects", "locations" - add_foreign_key "projects", "project_statuses" - add_foreign_key "projects", "windows_types" - add_foreign_key "quotable_item_quotes", "quotes" - add_foreign_key "quotes", "workshops" - add_foreign_key "report_form_field_answers", "answer_options" - add_foreign_key "report_form_field_answers", "form_fields" - add_foreign_key "report_form_field_answers", "reports" - add_foreign_key "reports", "projects" - add_foreign_key "reports", "users" - add_foreign_key "reports", "windows_types" - add_foreign_key "resources", "users" - add_foreign_key "resources", "windows_types" - add_foreign_key "resources", "workshops" - add_foreign_key "sectorable_items", "sectors" - add_foreign_key "stories", "facilitators", column: "spotlighted_facilitator_id" - add_foreign_key "stories", "projects" - add_foreign_key "stories", "story_ideas" - add_foreign_key "stories", "users", column: "created_by_id" - add_foreign_key "stories", "users", column: "updated_by_id" - add_foreign_key "stories", "windows_types" - add_foreign_key "stories", "workshops" - add_foreign_key "story_ideas", "projects" - add_foreign_key "story_ideas", "users", column: "created_by_id" - add_foreign_key "story_ideas", "users", column: "updated_by_id" - add_foreign_key "story_ideas", "windows_types" - add_foreign_key "story_ideas", "workshops" - add_foreign_key "user_form_form_fields", "form_fields" - add_foreign_key "user_form_form_fields", "user_forms" - add_foreign_key "user_forms", "forms" - add_foreign_key "user_forms", "users" - add_foreign_key "user_permissions", "permissions" - add_foreign_key "user_permissions", "users" - add_foreign_key "users", "facilitators" - add_foreign_key "users", "projects", column: "agency_id" - add_foreign_key "workshop_age_ranges", "age_ranges" - add_foreign_key "workshop_age_ranges", "workshops" - add_foreign_key "workshop_ideas", "users", column: "created_by_id" - add_foreign_key "workshop_ideas", "users", column: "updated_by_id" - add_foreign_key "workshop_ideas", "windows_types" - add_foreign_key "workshop_logs", "projects" - add_foreign_key "workshop_logs", "users" - add_foreign_key "workshop_logs", "workshops" - add_foreign_key "workshop_resources", "resources" - add_foreign_key "workshop_resources", "workshops" - add_foreign_key "workshop_series_memberships", "workshops", column: "workshop_child_id" - add_foreign_key "workshop_series_memberships", "workshops", column: "workshop_parent_id" - add_foreign_key "workshop_variations", "users", column: "created_by_id" - add_foreign_key "workshop_variations", "workshops" - add_foreign_key "workshops", "users" - add_foreign_key "workshops", "windows_types" - add_foreign_key "workshops", "workshop_ideas" -end \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 4705f341f..000000000 --- a/package-lock.json +++ /dev/null @@ -1,3029 +0,0 @@ -{ - "name": "awbw", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "@fortawesome/fontawesome-free": "^7.0.1", - "@hotwired/stimulus": "^3.2.2", - "@hotwired/turbo-rails": "^8.0.18", - "@rails/actiontext": "^8.1.100", - "@rails/request.js": "^0.0.12", - "@tailwindcss/vite": "^4.1.13", - "@tiptap/extension-horizontal-rule": "^3.14.0", - "@tiptap/extension-mention": "^3.15.3", - "@tiptap/extension-table": "^3.13.0", - "@tiptap/extension-table-cell": "^3.13.0", - "@tiptap/extension-table-header": "^3.13.0", - "@tiptap/extension-table-row": "^3.13.0", - "@tiptap/extension-text-align": "^3.13.0", - "@tiptap/extension-youtube": "^3.13.0", - "@tiptap/suggestion": "^3.15.3", - "from": "^0.1.7", - "rhino-editor": "^0.18.0", - "sortablejs": "^1.15.6", - "swiper": "^12.0.3", - "tailwindcss": "^4.1.13", - "tippy.js": "^6.3.7", - "trix": "^2.1.15", - "vite-plugin-rails": "^0.5.0" - }, - "devDependencies": { - "@tailwindcss/typography": "^0.5.19", - "vite": "^5.4.20", - "vite-plugin-ruby": "^5.1.1" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", - "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.10" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", - "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.7.3", - "@floating-ui/utils": "^0.2.10" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", - "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", - "license": "MIT" - }, - "node_modules/@fortawesome/fontawesome-free": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.0.1.tgz", - "integrity": "sha512-RLmb9U6H2rJDnGxEqXxzy7ANPrQz7WK2/eTjdZqyU9uRU5W+FkAec9uU5gTYzFBH7aoXIw2WTJSCJR4KPlReQw==", - "license": "(CC-BY-4.0 AND OFL-1.1 AND MIT)", - "engines": { - "node": ">=6" - } - }, - "node_modules/@hotwired/stimulus": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@hotwired/stimulus/-/stimulus-3.2.2.tgz", - "integrity": "sha512-eGeIqNOQpXoPAIP7tC1+1Yc1yl1xnwYqg+3mzqxyrbE5pg5YFBZcA6YoTiByJB6DKAEsiWtl6tjTJS4IYtbB7A==", - "license": "MIT" - }, - "node_modules/@hotwired/turbo": { - "version": "8.0.18", - "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-8.0.18.tgz", - "integrity": "sha512-dG0N7khQsP8sujclodQE3DYkI4Lq7uKA04fhT0DCC/DwMgn4T4WM3aji6EC6+iCfABQeJncY0SraXqVeOq0vvQ==", - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@hotwired/turbo-rails": { - "version": "8.0.18", - "resolved": "https://registry.npmjs.org/@hotwired/turbo-rails/-/turbo-rails-8.0.18.tgz", - "integrity": "sha512-iRxd922VSTVH0NzlLDx9T9S8Ep0NPnrLCKva31WIMLNApJgUZKa/a90EFiBa2G6Do+x4xuKZk53dlweiwTyXkQ==", - "license": "MIT", - "dependencies": { - "@hotwired/turbo": "^8.0.18", - "@rails/actioncable": ">=7.0" - } - }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "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==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", - "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==", - "license": "BSD-3-Clause" - }, - "node_modules/@lit/reactive-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", - "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.4.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@open-wc/dedupe-mixin": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", - "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==", - "license": "MIT" - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@rails/actioncable": { - "version": "8.0.300", - "resolved": "https://registry.npmjs.org/@rails/actioncable/-/actioncable-8.0.300.tgz", - "integrity": "sha512-X+jxLnyYciTciEeM9crFFsR6DCodCsnoQIzv4hEST6Lx1rEBEjNQbBopnyDT4gr7lBeHJNfb6fEcvZuWFxUSQg==", - "license": "MIT" - }, - "node_modules/@rails/actiontext": { - "version": "8.1.100", - "resolved": "https://registry.npmjs.org/@rails/actiontext/-/actiontext-8.1.100.tgz", - "integrity": "sha512-gnLK1HgGCmmVGY40hCiAJ4RwGALwRmiRzqyht6fiM/hrQnul278CqCg9jwV2IQOo7+jMbktGx2O9luGUzayQIA==", - "license": "MIT", - "dependencies": { - "@rails/activestorage": ">= 8.1.0-alpha" - }, - "peerDependencies": { - "trix": "^2.0.0" - } - }, - "node_modules/@rails/activestorage": { - "version": "8.1.100", - "resolved": "https://registry.npmjs.org/@rails/activestorage/-/activestorage-8.1.100.tgz", - "integrity": "sha512-rlZg23KYT7JFYXl1tj1WD9nm/yvtUvZT6pzNMVX+HaOjPyGq8xpEv1ADrrhawkbMktKxRj3xDVZ3d/qy0akHvw==", - "license": "MIT", - "dependencies": { - "spark-md5": "^3.0.1" - } - }, - "node_modules/@rails/request.js": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@rails/request.js/-/request.js-0.0.12.tgz", - "integrity": "sha512-g3//JBja1s04Zflj7IoMLQuXza9i4ZvtLmm0r0dMwh1QQUs6rL2iKUOGGyERfLsd81SnXC5ucfVV//rtsDlEEA==", - "license": "MIT" - }, - "node_modules/@remirror/core-constants": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", - "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.1.tgz", - "integrity": "sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.1.tgz", - "integrity": "sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.1.tgz", - "integrity": "sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.1.tgz", - "integrity": "sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.1.tgz", - "integrity": "sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.1.tgz", - "integrity": "sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.1.tgz", - "integrity": "sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.1.tgz", - "integrity": "sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.1.tgz", - "integrity": "sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.1.tgz", - "integrity": "sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.1.tgz", - "integrity": "sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.1.tgz", - "integrity": "sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.1.tgz", - "integrity": "sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.1.tgz", - "integrity": "sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.1.tgz", - "integrity": "sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.1.tgz", - "integrity": "sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.1.tgz", - "integrity": "sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.1.tgz", - "integrity": "sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.1.tgz", - "integrity": "sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.1.tgz", - "integrity": "sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz", - "integrity": "sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@tailwindcss/node": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.13.tgz", - "integrity": "sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==", - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.4", - "enhanced-resolve": "^5.18.3", - "jiti": "^2.5.1", - "lightningcss": "1.30.1", - "magic-string": "^0.30.18", - "source-map-js": "^1.2.1", - "tailwindcss": "4.1.13" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.13.tgz", - "integrity": "sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.4", - "tar": "^7.4.3" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.13", - "@tailwindcss/oxide-darwin-arm64": "4.1.13", - "@tailwindcss/oxide-darwin-x64": "4.1.13", - "@tailwindcss/oxide-freebsd-x64": "4.1.13", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.13", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.13", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.13", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.13", - "@tailwindcss/oxide-linux-x64-musl": "4.1.13", - "@tailwindcss/oxide-wasm32-wasi": "4.1.13", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.13", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.13" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.13.tgz", - "integrity": "sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.13.tgz", - "integrity": "sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.13.tgz", - "integrity": "sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.13.tgz", - "integrity": "sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.13.tgz", - "integrity": "sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.13.tgz", - "integrity": "sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.13.tgz", - "integrity": "sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.13.tgz", - "integrity": "sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.13.tgz", - "integrity": "sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.13.tgz", - "integrity": "sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==", - "bundleDependencies": [ - "@napi-rs/wasm-runtime", - "@emnapi/core", - "@emnapi/runtime", - "@tybys/wasm-util", - "@emnapi/wasi-threads", - "tslib" - ], - "cpu": [ - "wasm32" - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.4.5", - "@emnapi/runtime": "^1.4.5", - "@emnapi/wasi-threads": "^1.0.4", - "@napi-rs/wasm-runtime": "^0.2.12", - "@tybys/wasm-util": "^0.10.0", - "tslib": "^2.8.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.13.tgz", - "integrity": "sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.13.tgz", - "integrity": "sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz", - "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "6.0.10" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" - } - }, - "node_modules/@tailwindcss/vite": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.13.tgz", - "integrity": "sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==", - "license": "MIT", - "dependencies": { - "@tailwindcss/node": "4.1.13", - "@tailwindcss/oxide": "4.1.13", - "tailwindcss": "4.1.13" - }, - "peerDependencies": { - "vite": "^5.2.0 || ^6 || ^7" - } - }, - "node_modules/@tiptap/core": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.15.3.tgz", - "integrity": "sha512-bmXydIHfm2rEtGju39FiQNfzkFx9CDvJe+xem1dgEZ2P6Dj7nQX9LnA1ZscW7TuzbBRkL5p3dwuBIi3f62A66A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/pm": "^3.15.3" - } - }, - "node_modules/@tiptap/extension-blockquote": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.13.0.tgz", - "integrity": "sha512-K1z/PAIIwEmiWbzrP//4cC7iG1TZknDlF1yb42G7qkx2S2X4P0NiqX7sKOej3yqrPjKjGwPujLMSuDnCF87QkQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-bold": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.13.0.tgz", - "integrity": "sha512-VYiDN9EEwR6ShaDLclG8mphkb/wlIzqfk7hxaKboq1G+NSDj8PcaSI9hldKKtTCLeaSNu6UR5nkdu/YHdzYWTw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-bullet-list": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.13.0.tgz", - "integrity": "sha512-fFQmmEUoPzRGiQJ/KKutG35ZX21GE+1UCDo8Q6PoWH7Al9lex47nvyeU1BiDYOhcTKgIaJRtEH5lInsOsRJcSA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-list": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-code": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.13.0.tgz", - "integrity": "sha512-sF5raBni6iSVpXWvwJCAcOXw5/kZ+djDHx1YSGWhopm4+fsj0xW7GvVO+VTwiFjZGKSw+K5NeAxzcQTJZd3Vhw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-code-block": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.13.0.tgz", - "integrity": "sha512-kIwfQ4iqootsWg9e74iYJK54/YMIj6ahUxEltjZRML5z/h4gTDcQt2eTpnEC8yjDjHeUVOR94zH9auCySyk9CQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0", - "@tiptap/pm": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-document": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.13.0.tgz", - "integrity": "sha512-RjU7hTJwjKXIdY57o/Pc+Yr8swLkrwT7PBQ/m+LCX5oO/V2wYoWCjoBYnK5KSHrWlNy/aLzC33BvLeqZZ9nzlQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-dropcursor": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.13.0.tgz", - "integrity": "sha512-m7GPT3c/83ni+bbU8c+3dpNa8ug+aQ4phNB1Q52VQG3oTonDJnZS7WCtn3lB/Hi1LqoqMtEHwhepU2eD+JeXqQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extensions": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-focus": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-focus/-/extension-focus-3.13.0.tgz", - "integrity": "sha512-UXeJcreVqXRLz1f4MX/KmeKCicwOWilCAc1I81s0GVV6kgdqgUodnqRSvQZBpbSZ+vicG+gmYWXOa0S3CurEGg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extensions": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-gapcursor": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.13.0.tgz", - "integrity": "sha512-KVxjQKkd964nin+1IdM2Dvej/Jy4JTMcMgq5seusUhJ9T9P8F9s2D5Iefwgkps3OCzub/aF+eAsZe+1P5KSIgA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extensions": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-hard-break": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.13.0.tgz", - "integrity": "sha512-nH1OBaO+/pakhu+P1jF208mPgB70IKlrR/9d46RMYoYbqJTNf4KVLx5lHAOHytIhjcNg+MjyTfJWfkK+dyCCyg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-heading": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.13.0.tgz", - "integrity": "sha512-8VKWX8waYPtUWN97J89em9fOtxNteh6pvUEd0htcOAtoxjt2uZjbW5N4lKyWhNKifZBrVhH2Cc2NUPuftCVgxw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-horizontal-rule": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.14.0.tgz", - "integrity": "sha512-65O4T9vPKLUKO1fLowh5jqtfQlH5eaIL7qb/uj5sXMMg8O7TCvBIRkwNuYsFTkJmTk4vBy+fjZ0uwSY3DFkO1g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "node_modules/@tiptap/extension-image": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.13.0.tgz", - "integrity": "sha512-223uzLUkIa1rkK7aQK3AcIXe6LbCtmnpVb7sY5OEp+LpSaSPyXwyrZ4A0EO1o98qXG68/0B2OqMntFtA9c5Fbw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-italic": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.13.0.tgz", - "integrity": "sha512-XbVTgmzk1kgUMTirA6AGdLTcKHUvEJoh3R4qMdPtwwygEOe7sBuvKuLtF6AwUtpnOM+Y3tfWUTNEDWv9AcEdww==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-link": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.13.0.tgz", - "integrity": "sha512-LuFPJ5GoL12GHW4A+USsj60O90pLcwUPdvEUSWewl9USyG6gnLnY/j5ZOXPYH7LiwYW8+lhq7ABwrDF2PKyBbA==", - "license": "MIT", - "dependencies": { - "linkifyjs": "^4.3.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0", - "@tiptap/pm": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-list": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.13.0.tgz", - "integrity": "sha512-MMFH0jQ4LeCPkJJFyZ77kt6eM/vcKujvTbMzW1xSHCIEA6s4lEcx9QdZMPpfmnOvTzeoVKR4nsu2t2qT9ZXzAw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0", - "@tiptap/pm": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-list-item": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.13.0.tgz", - "integrity": "sha512-63NbcS/XeQP2jcdDEnEAE3rjJICDj8y1SN1h/MsJmSt1LusnEo8WQ2ub86QELO6XnD3M04V03cY6Knf6I5mTkw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-list": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-list-keymap": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.13.0.tgz", - "integrity": "sha512-P+HtIa1iwosb1feFc8B/9MN5EAwzS+/dZ0UH0CTF2E4wnp5Z9OMxKl1IYjfiCwHzZrU5Let+S/maOvJR/EmV0g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-list": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-mention": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-3.15.3.tgz", - "integrity": "sha512-4YpwiQyumKZrlfiw4ExDzrDRarC4kkaC7RjEl4kYhzutID1Zy1WLES1B0CoZN9wRds/mjrQjfCFE5HE+2g3D6w==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.15.3", - "@tiptap/pm": "^3.15.3", - "@tiptap/suggestion": "^3.15.3" - } - }, - "node_modules/@tiptap/extension-ordered-list": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.13.0.tgz", - "integrity": "sha512-QuDyLzuK/3vCvx9GeKhgvHWrGECBzmJyAx6gli2HY+Iil7XicbfltV4nvhIxgxzpx3LDHLKzJN9pBi+2MzX60g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-list": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-paragraph": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.13.0.tgz", - "integrity": "sha512-9csQde1i0yeZI5oQQ9e1GYNtGL2JcC2d8Fwtw9FsGC8yz2W0h+Fmk+3bc2kobbtO5LGqupSc1fKM8fAg5rSRDg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-placeholder": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-3.13.0.tgz", - "integrity": "sha512-Au4ktRBraQktX9gjSzGWyJV6kPof7+kOhzE8ej+rOMjIrHbx3DCHy1CJWftSO9BbqIyonjsFmm4nE+vjzZ3Z5Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extensions": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-strike": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.13.0.tgz", - "integrity": "sha512-VHhWNqTAMOfrC48m2FcPIZB0nhl6XHQviAV16SBc+EFznKNv9tQUsqQrnuQ2y6ZVfqq5UxvZ3hKF/JlN/Ff7xw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-table": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.13.0.tgz", - "integrity": "sha512-LcH9KE4QBUJ6IPwt1Uo5iU7zatFjUUvXbctIu2fKQ9nqJ7nNSFxRhkNyporVFkTWYH7/rb0qMoF1VxSUGefG5w==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0", - "@tiptap/pm": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-table-cell": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-3.13.0.tgz", - "integrity": "sha512-dBOPeLe2NqymZI8reS2yZRIcgfIYHudCq4lDWZBJ5NiMvoy0b/fVe1qYSP4EcfBQMpfgAP0E05bMB3C7p1kmkw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-table": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-table-header": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-3.13.0.tgz", - "integrity": "sha512-ZA5lhcek0VlKupqj3WFgE6bj5vNRmxcpDqjYc6RWaxuva4dYfEQSqdlG+3a53Sr53le0grfBpolM8zJFCVYrcw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-table": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-table-row": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-3.13.0.tgz", - "integrity": "sha512-FdsMTIBNleZtWJEhXE/PBxkB8L9YJtnKs7YZNesLKqLn6/sWZl+X5e5SAAN/N3DLOEAwNCa/m0C3A1DWGNz/tw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-table": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-text": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.13.0.tgz", - "integrity": "sha512-VcZIna93rixw7hRkHGCxDbL3kvJWi80vIT25a2pXg0WP1e7Pi3nBYvZIL4SQtkbBCji9EHrbZx3p8nNPzfazYw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-text-align": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.13.0.tgz", - "integrity": "sha512-hebIus9tdXWb+AmhO+LTeUxZLdb0tqwdeaL/0wYxJQR5DeCTlJe6huXacMD/BkmnlEpRhxzQH0FrmXAd0d4Wgg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-underline": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.13.0.tgz", - "integrity": "sha512-VDQi+UYw0tFnfghpthJTFmtJ3yx90kXeDwFvhmT8G+O+si5VmP05xYDBYBmYCix5jqKigJxEASiBL0gYOgMDEg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extension-youtube": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-youtube/-/extension-youtube-3.13.0.tgz", - "integrity": "sha512-KG6NtdpK9VheacN4imjhDJ8G1V2tJZd/LRr+QID8dYEMQe9vKbqIXgA0kO91t+f+iH8NwgNPmi3a/BQogvoqJg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0" - } - }, - "node_modules/@tiptap/extensions": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.13.0.tgz", - "integrity": "sha512-i7O0ptSibEtTy+2PIPsNKEvhTvMaFJg1W4Oxfnbuxvaigs7cJV9Q0lwDUcc7CPsNw2T1+44wcxg431CzTvdYoA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.13.0", - "@tiptap/pm": "^3.13.0" - } - }, - "node_modules/@tiptap/pm": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.15.3.tgz", - "integrity": "sha512-Zm1BaU1TwFi3CQiisxjgnzzIus+q40bBKWLqXf6WEaus8Z6+vo1MT2pU52dBCMIRaW9XNDq3E5cmGtMc1AlveA==", - "license": "MIT", - "dependencies": { - "prosemirror-changeset": "^2.3.0", - "prosemirror-collab": "^1.3.1", - "prosemirror-commands": "^1.6.2", - "prosemirror-dropcursor": "^1.8.1", - "prosemirror-gapcursor": "^1.3.2", - "prosemirror-history": "^1.4.1", - "prosemirror-inputrules": "^1.4.0", - "prosemirror-keymap": "^1.2.2", - "prosemirror-markdown": "^1.13.1", - "prosemirror-menu": "^1.2.4", - "prosemirror-model": "^1.24.1", - "prosemirror-schema-basic": "^1.2.3", - "prosemirror-schema-list": "^1.5.0", - "prosemirror-state": "^1.4.3", - "prosemirror-tables": "^1.6.4", - "prosemirror-trailing-node": "^3.0.0", - "prosemirror-transform": "^1.10.2", - "prosemirror-view": "^1.38.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - } - }, - "node_modules/@tiptap/starter-kit": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.13.0.tgz", - "integrity": "sha512-Ojn6sRub04CRuyQ+9wqN62JUOMv+rG1vXhc2s6DCBCpu28lkCMMW+vTe7kXJcEdbot82+5swPbERw9vohswFzg==", - "license": "MIT", - "dependencies": { - "@tiptap/core": "^3.13.0", - "@tiptap/extension-blockquote": "^3.13.0", - "@tiptap/extension-bold": "^3.13.0", - "@tiptap/extension-bullet-list": "^3.13.0", - "@tiptap/extension-code": "^3.13.0", - "@tiptap/extension-code-block": "^3.13.0", - "@tiptap/extension-document": "^3.13.0", - "@tiptap/extension-dropcursor": "^3.13.0", - "@tiptap/extension-gapcursor": "^3.13.0", - "@tiptap/extension-hard-break": "^3.13.0", - "@tiptap/extension-heading": "^3.13.0", - "@tiptap/extension-horizontal-rule": "^3.13.0", - "@tiptap/extension-italic": "^3.13.0", - "@tiptap/extension-link": "^3.13.0", - "@tiptap/extension-list": "^3.13.0", - "@tiptap/extension-list-item": "^3.13.0", - "@tiptap/extension-list-keymap": "^3.13.0", - "@tiptap/extension-ordered-list": "^3.13.0", - "@tiptap/extension-paragraph": "^3.13.0", - "@tiptap/extension-strike": "^3.13.0", - "@tiptap/extension-text": "^3.13.0", - "@tiptap/extension-underline": "^3.13.0", - "@tiptap/extensions": "^3.13.0", - "@tiptap/pm": "^3.13.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - } - }, - "node_modules/@tiptap/suggestion": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-3.15.3.tgz", - "integrity": "sha512-+CbaHhPfKUe+fNpUIQaOPhh6xI+xL5jbK1zw++U+CZIRrVAAmHRhO+D0O2HdiE1RK7596y8bRqMiB2CRHF7emA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.15.3", - "@tiptap/pm": "^3.15.3" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" - }, - "node_modules/@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", - "license": "MIT" - }, - "node_modules/@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", - "license": "MIT", - "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" - } - }, - "node_modules/@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", - "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==", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", - "license": "MIT" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/detect-libc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz", - "integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/dompurify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", - "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", - "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/form-associated-helpers": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/form-associated-helpers/-/form-associated-helpers-0.0.10.tgz", - "integrity": "sha512-ClR8Y8muq6EPsmUZsPf+iWUWvRpRzSRGm/ESb5pbhf1PsRSph5cWjpvBlHrNeaBwTGPC1R0kFjAb5kR96ZQe+Q==", - "license": "MIT" - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "license": "MIT" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jiti": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.0.tgz", - "integrity": "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==", - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/lightningcss": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", - "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.30.1", - "lightningcss-darwin-x64": "1.30.1", - "lightningcss-freebsd-x64": "1.30.1", - "lightningcss-linux-arm-gnueabihf": "1.30.1", - "lightningcss-linux-arm64-gnu": "1.30.1", - "lightningcss-linux-arm64-musl": "1.30.1", - "lightningcss-linux-x64-gnu": "1.30.1", - "lightningcss-linux-x64-musl": "1.30.1", - "lightningcss-win32-arm64-msvc": "1.30.1", - "lightningcss-win32-x64-msvc": "1.30.1" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", - "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", - "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", - "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", - "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", - "cpu": [ - "arm" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", - "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", - "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", - "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", - "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", - "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", - "cpu": [ - "arm64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", - "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/linkifyjs": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz", - "integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==", - "license": "MIT" - }, - "node_modules/lit": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.1.tgz", - "integrity": "sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^2.1.0", - "lit-element": "^4.2.0", - "lit-html": "^3.3.0" - } - }, - "node_modules/lit-element": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", - "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.4.0", - "@lit/reactive-element": "^2.1.0", - "lit-html": "^3.3.0" - } - }, - "node_modules/lit-html": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", - "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.19", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/orderedmap": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", - "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/prosemirror-changeset": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz", - "integrity": "sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==", - "license": "MIT", - "dependencies": { - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-codemark": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/prosemirror-codemark/-/prosemirror-codemark-0.4.2.tgz", - "integrity": "sha512-4n+PnGQToa/vTjn0OiivUvE8/moLtguUAfry8UA4Q8p47MhqT2Qpf2zBLustX5Upi4mSp3z1ZYBqLLovZC6abA==", - "license": "MIT", - "peerDependencies": { - "prosemirror-inputrules": "^1.2.0", - "prosemirror-model": "^1.18.1", - "prosemirror-state": "^1.4.1", - "prosemirror-view": "^1.26.2" - } - }, - "node_modules/prosemirror-collab": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", - "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0" - } - }, - "node_modules/prosemirror-commands": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", - "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.10.2" - } - }, - "node_modules/prosemirror-dropcursor": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", - "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0", - "prosemirror-view": "^1.1.0" - } - }, - "node_modules/prosemirror-gapcursor": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.0.tgz", - "integrity": "sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==", - "license": "MIT", - "dependencies": { - "prosemirror-keymap": "^1.0.0", - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-view": "^1.0.0" - } - }, - "node_modules/prosemirror-history": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", - "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.2.2", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.31.0", - "rope-sequence": "^1.3.0" - } - }, - "node_modules/prosemirror-inputrules": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", - "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-keymap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", - "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", - "license": "MIT", - "dependencies": { - "prosemirror-state": "^1.0.0", - "w3c-keyname": "^2.2.0" - } - }, - "node_modules/prosemirror-markdown": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz", - "integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==", - "license": "MIT", - "dependencies": { - "@types/markdown-it": "^14.0.0", - "markdown-it": "^14.0.0", - "prosemirror-model": "^1.25.0" - } - }, - "node_modules/prosemirror-menu": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", - "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==", - "license": "MIT", - "dependencies": { - "crelt": "^1.0.0", - "prosemirror-commands": "^1.0.0", - "prosemirror-history": "^1.0.0", - "prosemirror-state": "^1.0.0" - } - }, - "node_modules/prosemirror-model": { - "version": "1.25.4", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", - "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", - "license": "MIT", - "dependencies": { - "orderedmap": "^2.0.0" - } - }, - "node_modules/prosemirror-schema-basic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", - "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.25.0" - } - }, - "node_modules/prosemirror-schema-list": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", - "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.7.3" - } - }, - "node_modules/prosemirror-state": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", - "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.27.0" - } - }, - "node_modules/prosemirror-tables": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.3.tgz", - "integrity": "sha512-wbqCR/RlRPRe41a4LFtmhKElzBEfBTdtAYWNIGHM6X2e24NN/MTNUKyXjjphfAfdQce37Kh/5yf765mLPYDe7Q==", - "license": "MIT", - "dependencies": { - "prosemirror-keymap": "^1.2.3", - "prosemirror-model": "^1.25.4", - "prosemirror-state": "^1.4.4", - "prosemirror-transform": "^1.10.5", - "prosemirror-view": "^1.41.4" - } - }, - "node_modules/prosemirror-trailing-node": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz", - "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==", - "license": "MIT", - "dependencies": { - "@remirror/core-constants": "3.0.0", - "escape-string-regexp": "^4.0.0" - }, - "peerDependencies": { - "prosemirror-model": "^1.22.1", - "prosemirror-state": "^1.4.2", - "prosemirror-view": "^1.33.8" - } - }, - "node_modules/prosemirror-transform": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.5.tgz", - "integrity": "sha512-RPDQCxIDhIBb1o36xxwsaeAvivO8VLJcgBtzmOwQ64bMtsVFh5SSuJ6dWSxO1UsHTiTXPCgQm3PDJt7p6IOLbw==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.21.0" - } - }, - "node_modules/prosemirror-utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prosemirror-utils/-/prosemirror-utils-1.2.2.tgz", - "integrity": "sha512-7a2MPf99oCW8/587rQYI1/snX71Ban40+apr1hLkY8TmU9YXd7JeR6QsmktcTisJURO3WRjxIia4lTMsYgZVOw==", - "license": "Apache-2.0", - "peerDependencies": { - "prosemirror-model": "^1.19.2", - "prosemirror-state": "^1.4.3" - } - }, - "node_modules/prosemirror-view": { - "version": "1.41.4", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.4.tgz", - "integrity": "sha512-WkKgnyjNncri03Gjaz3IFWvCAE94XoiEgvtr0/r2Xw7R8/IjK3sKLSiDoCHWcsXSAinVaKlGRZDvMCsF1kbzjA==", - "license": "MIT", - "dependencies": { - "prosemirror-model": "^1.20.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0" - } - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rhino-editor": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/rhino-editor/-/rhino-editor-0.18.0.tgz", - "integrity": "sha512-5n9VHb7dfeSIDuc7aJUWc+7EmRNCMvha32yV/hvL89vjXliIDvENSy+C4808HsvRrHsbJpMBXs+36MTDL2fBTQ==", - "license": "MIT", - "dependencies": { - "@rails/activestorage": "^8.0.201", - "@tiptap/core": "^3.4.0", - "@tiptap/extension-code": "^3.4.0", - "@tiptap/extension-code-block": "^3.4.0", - "@tiptap/extension-focus": "^3.4.0", - "@tiptap/extension-image": "^3.4.0", - "@tiptap/extension-link": "^3.4.0", - "@tiptap/extension-placeholder": "^3.4.0", - "@tiptap/extension-strike": "^3.4.0", - "@tiptap/pm": "^3.4.0", - "@tiptap/starter-kit": "^3.4.0", - "linkifyjs": "^4.1.3", - "lit": "^3.3.1", - "prosemirror-codemark": "^0.4.2", - "prosemirror-utils": "^1.2.2", - "prosemirror-view": "^1.40.1", - "role-components": "^3.1.0", - "tslib": "^2.8.1" - } - }, - "node_modules/role-components": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/role-components/-/role-components-3.1.0.tgz", - "integrity": "sha512-d0vq9H4Hqe24fGzd79s+e/X/GzNz+OI5dsThsn1cNaix+VKfr/I+UbkErZ8G8lWEqWe+ULOTa25/t5oRng2xkQ==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.6.5", - "form-associated-helpers": "^0.0.10", - "lit": "^3", - "web-component-define": "^2.0.11" - } - }, - "node_modules/rollup": { - "version": "4.50.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.1.tgz", - "integrity": "sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.50.1", - "@rollup/rollup-android-arm64": "4.50.1", - "@rollup/rollup-darwin-arm64": "4.50.1", - "@rollup/rollup-darwin-x64": "4.50.1", - "@rollup/rollup-freebsd-arm64": "4.50.1", - "@rollup/rollup-freebsd-x64": "4.50.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.50.1", - "@rollup/rollup-linux-arm-musleabihf": "4.50.1", - "@rollup/rollup-linux-arm64-gnu": "4.50.1", - "@rollup/rollup-linux-arm64-musl": "4.50.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.50.1", - "@rollup/rollup-linux-ppc64-gnu": "4.50.1", - "@rollup/rollup-linux-riscv64-gnu": "4.50.1", - "@rollup/rollup-linux-riscv64-musl": "4.50.1", - "@rollup/rollup-linux-s390x-gnu": "4.50.1", - "@rollup/rollup-linux-x64-gnu": "4.50.1", - "@rollup/rollup-linux-x64-musl": "4.50.1", - "@rollup/rollup-openharmony-arm64": "4.50.1", - "@rollup/rollup-win32-arm64-msvc": "4.50.1", - "@rollup/rollup-win32-ia32-msvc": "4.50.1", - "@rollup/rollup-win32-x64-msvc": "4.50.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-gzip": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-gzip/-/rollup-plugin-gzip-3.1.2.tgz", - "integrity": "sha512-9xemMyvCjkklgNpu6jCYqQAbvCLJzA2nilkiOGzFuXTUX3cXEFMwIhsIBRF7kTKD/SnZ1tNPcxFm4m4zJ3VfNQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "rollup": ">=2.0.0" - } - }, - "node_modules/rope-sequence": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", - "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", - "license": "MIT" - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/sortablejs": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.6.tgz", - "integrity": "sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==", - "license": "MIT" - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spark-md5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", - "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", - "license": "(WTFPL OR MIT)" - }, - "node_modules/stimulus-vite-helpers": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/stimulus-vite-helpers/-/stimulus-vite-helpers-3.1.0.tgz", - "integrity": "sha512-qy9vnNnu6e/1PArEndp456BuSKLQkBgc+vX2pedOHT0N4GSLQY0l5fuQ4ft56xZ8xSWqrfuYSR+GXXIPtoESww==" - }, - "node_modules/swiper": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-12.0.3.tgz", - "integrity": "sha512-BHd6U1VPEIksrXlyXjMmRWO0onmdNPaTAFduzqR3pgjvi7KfmUCAm/0cj49u2D7B0zNjMw02TSeXfinC1hDCXg==", - "funding": [ - { - "type": "patreon", - "url": "https://www.patreon.com/swiperjs" - }, - { - "type": "open_collective", - "url": "http://opencollective.com/swiper" - } - ], - "license": "MIT", - "engines": { - "node": ">= 4.7.0" - } - }, - "node_modules/tailwindcss": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.13.tgz", - "integrity": "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==", - "license": "MIT" - }, - "node_modules/tapable": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", - "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/tar": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", - "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", - "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.1.0", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tippy.js": { - "version": "6.3.7", - "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", - "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", - "license": "MIT", - "dependencies": { - "@popperjs/core": "^2.9.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/trix": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/trix/-/trix-2.1.15.tgz", - "integrity": "sha512-LoaXWczdTUV8+3Box92B9b1iaDVbxD14dYemZRxi3PwY+AuDm97BUJV2aHLBUFPuDABhxp0wzcbf0CxHCVmXiw==", - "license": "MIT", - "dependencies": { - "dompurify": "^3.2.5" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "license": "MIT" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/vite": { - "version": "5.4.20", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz", - "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==", - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-environment": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vite-plugin-environment/-/vite-plugin-environment-1.1.3.tgz", - "integrity": "sha512-9LBhB0lx+2lXVBEWxFZC+WO7PKEyE/ykJ7EPWCq95NEcCpblxamTbs5Dm3DLBGzwODpJMEnzQywJU8fw6XGGGA==", - "peerDependencies": { - "vite": ">= 2.7" - } - }, - "node_modules/vite-plugin-full-reload": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", - "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", - "dependencies": { - "picocolors": "^1.0.0", - "picomatch": "^2.3.1" - } - }, - "node_modules/vite-plugin-manifest-sri": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/vite-plugin-manifest-sri/-/vite-plugin-manifest-sri-0.2.0.tgz", - "integrity": "sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==" - }, - "node_modules/vite-plugin-rails": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/vite-plugin-rails/-/vite-plugin-rails-0.5.0.tgz", - "integrity": "sha512-PR3zTHW96X8c7dRsuL2Mu1EAXXeO8fQjQ2KanwIC7EWgBST+D8AKjJyEUAr13IakrIYvd1cM3LcQUcrKmCMePg==", - "dependencies": { - "rollup-plugin-gzip": "^3.1.0", - "vite-plugin-environment": "^1.1.3", - "vite-plugin-full-reload": "^1.1.0", - "vite-plugin-manifest-sri": "^0.2.0", - "vite-plugin-ruby": "^5.0.0", - "vite-plugin-stimulus-hmr": "^3.0.0" - }, - "peerDependencies": { - "vite": ">=5.0.0" - } - }, - "node_modules/vite-plugin-ruby": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/vite-plugin-ruby/-/vite-plugin-ruby-5.1.1.tgz", - "integrity": "sha512-I1dXJq2ywdvTD2Cz5LYNcYLujqQ3eUxPoCjruRdfm2QBtHBY15NEeb6x5HuPM3T5S+y8S3p9fwRsieQQCjk0gg==", - "license": "MIT", - "dependencies": { - "debug": "^4.3.4", - "fast-glob": "^3.3.2" - }, - "peerDependencies": { - "vite": ">=5.0.0" - } - }, - "node_modules/vite-plugin-stimulus-hmr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vite-plugin-stimulus-hmr/-/vite-plugin-stimulus-hmr-3.0.0.tgz", - "integrity": "sha512-KElOiZOlaG4XilQQHrzK8M1u5UfK4EFfADJKQYbnmsUMifDOnPR6anVYgHAN95QyWJ67Q/rYWe5BB9M5OxocfQ==", - "dependencies": { - "debug": "^4.3", - "stimulus-vite-helpers": "^3.0.0" - } - }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", - "license": "MIT" - }, - "node_modules/web-component-define": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/web-component-define/-/web-component-define-2.0.11.tgz", - "integrity": "sha512-oMOngNGL5k55NyaQNnPz0UnV5QtPuESvSuxpBgmHHfNjb8sgVm4akAFq7HO4I5bhGHX8Of+0XnUZ3whBo0chgw==", - "license": "MIT", - "dependencies": { - "@lit/reactive-element": "^1.6.1", - "@open-wc/dedupe-mixin": "^1.3.1" - } - }, - "node_modules/web-component-define/node_modules/@lit/reactive-element": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", - "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" - } - }, - "node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - } - } -} \ No newline at end of file From efe653b5c4e83bd72743ccc554ab871ff37e9649 Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Sat, 24 Jan 2026 13:44:02 +0530 Subject: [PATCH 04/10] fixed schema.rb package and env.sample --- .env.sample | 22 + db/schema.rb | 1156 +++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 1156 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 2334 insertions(+) create mode 100644 .env.sample create mode 100644 db/schema.rb create mode 100644 package-lock.json diff --git a/.env.sample b/.env.sample new file mode 100644 index 000000000..ba8623456 --- /dev/null +++ b/.env.sample @@ -0,0 +1,22 @@ +# If using database in docker compose +DATABASE_URL=trilogy://root@$(docker compose port database 3306)/ +# DATABASE_URL=trilogy://root@localhost:3306/ + +# AWS - Used for S3 storage +AWS_ACCESS_KEY_ID=SOME_ID +AWS_SECRET_ACCESS_KEY=SOME_KEY +AWS_REGION=us-east-1 +AWS_S3_BUCKET=awbwassets_development + +# Email settings +SMTP_USERNAME=SOME_USERNAME +SMTP_PASSWORD=SOME_PASSWORD +SMTP_SERVER=SOME_HOST +SMTP_PORT=2525 + +# Other +RAILS_ENV=development +APP_HOST=localhost:3000 +RAILS_SERVE_STATIC_FILES=true +ORGANIZATION_NAME=A Window Between Worlds +REPLY_TO_EMAIL=umberto.user@example.com \ No newline at end of file diff --git a/db/schema.rb b/db/schema.rb new file mode 100644 index 000000000..6bad343a5 --- /dev/null +++ b/db/schema.rb @@ -0,0 +1,1156 @@ +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema[8.1].define(version: 2026_01_20_212705) do + create_table "action_text_mentions", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.bigint "action_text_rich_text_id", null: false + t.datetime "created_at", null: false + t.bigint "mentionable_id", null: false + t.string "mentionable_type", null: false + t.datetime "updated_at", null: false + t.index ["action_text_rich_text_id", "mentionable_type", "mentionable_id"], name: "index_at_mentions_on_rich_text_and_mentionable", unique: true + t.index ["action_text_rich_text_id"], name: "index_action_text_mentions_on_action_text_rich_text_id" + t.index ["mentionable_type", "mentionable_id"], name: "index_action_text_mentions_on_mentionable" + end + + create_table "action_text_rich_texts", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "body", size: :long + t.datetime "created_at", null: false + t.string "name", null: false + t.text "plain_text_body" + t.bigint "record_id", null: false + t.string "record_type", null: false + t.datetime "updated_at", null: false + t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true + end + + create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.bigint "blob_id", null: false + t.datetime "created_at", precision: nil, null: false + t.string "name", null: false + t.bigint "record_id", null: false + t.string "record_type", null: false + t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" + t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true + end + + create_table "active_storage_blobs", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "aws_key" + t.bigint "byte_size", null: false + t.string "checksum" + t.string "content_type" + t.datetime "created_at", precision: nil, null: false + t.string "filename", null: false + t.string "key", null: false + t.text "metadata", size: :medium + t.string "service_name", null: false + t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true + end + + create_table "active_storage_variant_records", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.bigint "blob_id", null: false + t.string "variation_digest", null: false + t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true + end + + create_table "addresses", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "address_type" + t.bigint "addressable_id" + t.string "addressable_type" + t.string "city", null: false + t.string "country" + t.string "county" + t.datetime "created_at", null: false + t.string "district" + t.boolean "inactive", default: false, null: false + t.integer "la_city_council_district" + t.integer "la_service_planning_area" + t.integer "la_supervisorial_district" + t.string "locality" + t.string "phone" + t.string "state", null: false + t.string "street_address", null: false + t.datetime "updated_at", null: false + t.string "zip_code", null: false + t.index ["addressable_type", "addressable_id"], name: "index_addresses_on_addressable" + end + + create_table "admins", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil + t.datetime "current_sign_in_at", precision: nil + t.string "current_sign_in_ip" + t.string "email", default: "", null: false + t.string "encrypted_password", default: "", null: false + t.string "first_name", default: "", null: false + t.string "last_name", default: "", null: false + t.datetime "last_sign_in_at", precision: nil + t.string "last_sign_in_ip" + t.datetime "remember_created_at", precision: nil + t.datetime "reset_password_sent_at", precision: nil + t.string "reset_password_token" + t.integer "sign_in_count", default: 0, null: false + t.datetime "updated_at", precision: nil + t.index ["email"], name: "index_admins_on_email", unique: true + t.index ["reset_password_token"], name: "index_admins_on_reset_password_token", unique: true + end + + create_table "age_ranges", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.datetime "updated_at", precision: nil, null: false + t.integer "windows_type_id" + t.index ["windows_type_id"], name: "index_age_ranges_on_windows_type_id" + end + + create_table "ahoy_events", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "name" + t.json "properties" + t.datetime "time" + t.bigint "user_id" + t.bigint "visit_id" + t.index ["name", "time"], name: "index_ahoy_events_on_name_and_time" + t.index ["user_id"], name: "index_ahoy_events_on_user_id" + t.index ["visit_id"], name: "index_ahoy_events_on_visit_id" + end + + create_table "ahoy_visits", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "app_version" + t.string "browser" + t.string "city" + t.string "country" + t.string "device_type" + t.string "ip" + t.text "landing_page", size: :medium + t.float "latitude" + t.float "longitude" + t.string "os" + t.string "os_version" + t.string "platform" + t.text "referrer", size: :medium + t.string "referring_domain" + t.string "region" + t.datetime "started_at" + t.text "user_agent", size: :medium + t.bigint "user_id" + t.string "utm_campaign" + t.string "utm_content" + t.string "utm_medium" + t.string "utm_source" + t.string "utm_term" + t.string "visit_token" + t.string "visitor_token" + t.index ["user_id"], name: "index_ahoy_visits_on_user_id" + t.index ["visit_token"], name: "index_ahoy_visits_on_visit_token", unique: true + t.index ["visitor_token", "started_at"], name: "index_ahoy_visits_on_visitor_token_and_started_at" + end + + create_table "answer_options", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.integer "position" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", null: false + t.integer "owner_id" + t.string "owner_type" + t.integer "report_id" + t.string "title" + t.string "type", default: "PrimaryAsset", null: false + t.datetime "updated_at", null: false + t.index ["owner_id"], name: "index_assets_on_owner_id" + t.index ["owner_type"], name: "index_assets_on_owner_type" + t.index ["type"], name: "index_assets_on_type" + end + + create_table "attachments", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "file_content_type" + t.string "file_file_name" + t.integer "file_file_size" + t.datetime "file_updated_at", precision: nil + t.integer "owner_id" + t.string "owner_type" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "banners", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "content", size: :medium + t.datetime "created_at", precision: nil, null: false + t.integer "created_by_id" + t.boolean "show" + t.datetime "updated_at", precision: nil, null: false + t.integer "updated_by_id" + t.index ["created_by_id"], name: "index_banners_on_created_by_id" + t.index ["updated_by_id"], name: "index_banners_on_updated_by_id" + end + + create_table "bookmark_annotations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "annotation", size: :long + t.integer "bookmark_id" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["bookmark_id"], name: "index_bookmark_annotations_on_bookmark_id" + end + + create_table "bookmarks", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "bookmarkable_id" + t.string "bookmarkable_type" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.index ["user_id"], name: "index_bookmarks_on_user_id" + end + + create_table "categories", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "legacy_id" + t.integer "metadatum_id" + t.string "name" + t.integer "position", default: 10, null: false + t.boolean "published", default: false + t.datetime "updated_at", precision: nil, null: false + t.index ["metadatum_id"], name: "index_categories_on_metadatum_id" + end + + create_table "categorizable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "categorizable_id" + t.string "categorizable_type" + t.integer "category_id" + t.datetime "created_at", precision: nil, null: false + t.boolean "inactive", default: true + t.integer "legacy_id" + t.datetime "updated_at", precision: nil, null: false + t.index ["categorizable_type", "categorizable_id"], name: "idx_on_categorizable_type_categorizable_id_ccce65d80c" + t.index ["category_id", "categorizable_type", "categorizable_id"], name: "index_categorizable_items_uniqueness", unique: true + t.index ["category_id"], name: "index_categorizable_items_on_category_id" + end + + create_table "ckeditor_assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "actual_url" + t.integer "assetable_id" + t.string "assetable_type", limit: 30 + t.datetime "created_at", precision: nil, null: false + t.string "data_content_type" + t.string "data_file_name", null: false + t.integer "data_file_size" + t.integer "height" + t.string "type", limit: 30 + t.datetime "updated_at", precision: nil, null: false + t.integer "width" + t.index ["assetable_type", "assetable_id"], name: "idx_ckeditor_assetable" + t.index ["assetable_type", "type", "assetable_id"], name: "idx_ckeditor_assetable_type" + end + + create_table "community_news", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "author_id", null: false + t.text "body", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id", null: false + t.boolean "featured" + t.integer "project_id" + t.boolean "published" + t.string "reference_url" + t.string "title" + t.datetime "updated_at", null: false + t.integer "updated_by_id", null: false + t.integer "windows_type_id" + t.string "youtube_url" + t.index ["author_id"], name: "index_community_news_on_author_id" + t.index ["body"], name: "index_community_news_on_body", type: :fulltext + t.index ["created_by_id"], name: "index_community_news_on_created_by_id" + t.index ["project_id"], name: "index_community_news_on_project_id" + t.index ["updated_by_id"], name: "index_community_news_on_updated_by_id" + t.index ["windows_type_id"], name: "index_community_news_on_windows_type_id" + end + + create_table "contact_methods", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.bigint "address_id" + t.string "contact_type" + t.bigint "contactable_id", null: false + t.string "contactable_type", null: false + t.datetime "created_at", null: false + t.boolean "inactive", default: false, null: false + t.boolean "is_primary", default: false, null: false + t.string "kind", null: false + t.datetime "updated_at", null: false + t.string "value", null: false + t.index ["address_id"], name: "index_contact_methods_on_address_id" + t.index ["contactable_type", "contactable_id"], name: "index_contact_methods_on_contactable" + end + + create_table "event_registrations", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", null: false + t.bigint "event_id" + t.integer "registrant_id" + t.datetime "updated_at", null: false + t.index ["event_id"], name: "index_event_registrations_on_event_id" + t.index ["registrant_id", "event_id"], name: "index_event_registrations_on_registrant_id_and_event_id", unique: true + t.index ["registrant_id"], name: "index_event_registrations_on_registrant_id" + end + + create_table "events", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "cost_cents" + t.datetime "created_at", null: false + t.integer "created_by_id" + t.text "description", size: :medium + t.datetime "end_date", precision: nil + t.boolean "featured", default: false, null: false + t.boolean "publicly_visible", default: false, null: false + t.datetime "registration_close_date", precision: nil + t.datetime "start_date", precision: nil + t.string "title" + t.datetime "updated_at", null: false + t.index ["created_by_id"], name: "index_events_on_created_by_id" + end + + create_table "facilitators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "best_time_to_call" + t.text "bio", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id" + t.date "date_of_birth" + t.string "display_name_preference" + t.string "email" + t.string "email_2" + t.string "email_2_type", default: "personal", null: false + t.string "email_type" + t.string "facebook_url" + t.string "first_name", null: false + t.string "instagram_url" + t.string "last_name", null: false + t.string "linked_in_url" + t.date "member_since" + t.text "notes", size: :medium + t.boolean "profile_is_searchable", default: true, null: false + t.boolean "profile_show_affiliations", default: true, null: false + t.boolean "profile_show_bio", default: true, null: false + t.boolean "profile_show_email", default: true, null: false + t.boolean "profile_show_events_registered", default: true, null: false + t.boolean "profile_show_member_since", default: true, null: false + t.boolean "profile_show_phone", default: true, null: false + t.boolean "profile_show_pronouns", default: true, null: false + t.boolean "profile_show_sectors", default: true, null: false + t.boolean "profile_show_social_media", default: true, null: false + t.boolean "profile_show_stories", default: true, null: false + t.boolean "profile_show_story_ideas", default: true, null: false + t.boolean "profile_show_workshop_ideas", default: true, null: false + t.boolean "profile_show_workshop_logs", default: true, null: false + t.boolean "profile_show_workshop_variations", default: true, null: false + t.boolean "profile_show_workshops", default: true, null: false + t.string "pronouns" + t.string "twitter_url" + t.datetime "updated_at", null: false + t.integer "updated_by_id" + t.string "youtube_url" + t.index ["created_by_id"], name: "index_facilitators_on_created_by_id" + t.index ["updated_by_id"], name: "index_facilitators_on_updated_by_id" + end + + create_table "faqs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "answer", size: :long + t.datetime "created_at", precision: nil, null: false + t.boolean "inactive" + t.integer "position", null: false + t.string "question" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "footers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "adult_program" + t.string "children_program" + t.datetime "created_at", precision: nil, null: false + t.string "general_questions" + t.string "phone" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "form_builders", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.text "description", size: :long + t.string "name" + t.integer "owner_type" + t.datetime "updated_at", precision: nil, null: false + t.integer "windows_type_id" + t.index ["windows_type_id"], name: "index_form_builders_on_windows_type_id" + end + + create_table "form_field_answer_options", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "answer_option_id" + t.datetime "created_at", precision: nil, null: false + t.integer "form_field_id" + t.datetime "updated_at", precision: nil, null: false + t.index ["answer_option_id"], name: "index_form_field_answer_options_on_answer_option_id" + t.index ["form_field_id"], name: "index_form_field_answer_options_on_form_field_id" + end + + create_table "form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "answer_datatype" + t.integer "answer_type" + t.datetime "created_at", precision: nil, null: false + t.integer "form_id" + t.string "instructional_hint" + t.boolean "is_required", default: true + t.integer "parent_id" + t.integer "position" + t.string "question" + t.integer "status", default: 1 + t.datetime "updated_at", precision: nil, null: false + t.index ["form_id"], name: "index_form_fields_on_form_id" + end + + create_table "forms", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "form_builder_id" + t.integer "owner_id" + t.string "owner_type" + t.datetime "updated_at", precision: nil, null: false + t.index ["form_builder_id"], name: "index_forms_on_form_builder_id" + end + + create_table "images", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "file_content_type" + t.string "file_file_name" + t.integer "file_file_size" + t.datetime "file_updated_at", precision: nil + t.integer "owner_id" + t.string "owner_type" + t.integer "report_id" + t.string "type", default: "Images::GalleryImage", null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["owner_id"], name: "index_images_on_owner_id" + t.index ["type"], name: "index_images_on_type" + end + + create_table "locations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "city" + t.string "country" + t.datetime "created_at", precision: nil, null: false + t.string "state" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "media_files", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "file_content_type" + t.string "file_file_name" + t.integer "file_file_size" + t.datetime "file_updated_at", precision: nil + t.integer "report_id" + t.integer "workshop_log_id" + end + + create_table "metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "legacy_id" + t.string "name" + t.boolean "published", default: false + t.datetime "updated_at", precision: nil, null: false + end + + create_table "monthly_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "best_call_time" + t.boolean "call_requested" + t.text "comments", size: :long + t.datetime "created_at", precision: nil, null: false + t.text "goals", size: :long + t.text "goals_reached", size: :long + t.boolean "mail_evaluations" + t.string "month" + t.text "most_challenging", size: :long + t.text "most_effective", size: :long + t.string "name" + t.string "num_new_participants" + t.string "num_ongoing_participants" + t.string "phone" + t.string "position" + t.integer "project_id" + t.integer "project_user_id" + t.datetime "updated_at", precision: nil, null: false + t.index ["project_id"], name: "index_monthly_reports_on_project_id" + t.index ["project_user_id"], name: "index_monthly_reports_on_project_user_id" + end + + create_table "notifications", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.datetime "delivered_at" + t.text "email_body_html", size: :medium + t.text "email_body_text", size: :medium + t.text "email_subject", size: :medium + t.string "kind", null: false + t.integer "noticeable_id" + t.string "noticeable_type" + t.integer "notification_type" + t.string "recipient_email", null: false + t.string "recipient_role", null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["kind"], name: "index_notifications_on_kind" + t.index ["noticeable_type", "noticeable_id"], name: "index_notifications_on_noticeable_type_and_noticeable_id" + end + + create_table "payments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "amount_cents", null: false + t.datetime "created_at", null: false + t.string "currency", default: "usd", null: false + t.string "failure_code" + t.string "failure_message" + t.bigint "payable_id", null: false + t.string "payable_type", null: false + t.bigint "payer_id", null: false + t.string "payer_type", null: false + t.string "status", null: false + t.string "stripe_charge_id" + t.json "stripe_metadata" + t.string "stripe_payment_intent_id", null: false + t.datetime "updated_at", null: false + t.index ["payable_type", "payable_id", "status"], name: "index_payments_on_payable_type_and_payable_id_and_status" + t.index ["payable_type", "payable_id"], name: "index_payments_on_payable" + t.index ["payable_type", "payable_id"], name: "index_payments_on_payable_type_and_payable_id" + t.index ["payer_type", "payer_id"], name: "index_payments_on_payer" + t.index ["payer_type", "payer_id"], name: "index_payments_on_payer_type_and_payer_id" + t.index ["stripe_charge_id"], name: "index_payments_on_stripe_charge_id" + t.index ["stripe_payment_intent_id"], name: "index_payments_on_stripe_payment_intent_id", unique: true + end + + create_table "permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "legacy_id" + t.string "security_cat" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "project_obligations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "project_statuses", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "project_users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "agency_id" + t.datetime "created_at", precision: nil, null: false + t.string "filemaker_code" + t.boolean "inactive", default: false, null: false + t.integer "position" + t.integer "project_id" + t.string "title" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.index ["agency_id"], name: "index_project_users_on_agency_id" + t.index ["project_id"], name: "index_project_users_on_project_id" + t.index ["user_id"], name: "index_project_users_on_user_id" + end + + create_table "projects", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "agency_type" + t.string "agency_type_other" + t.datetime "created_at", precision: nil, null: false + t.text "description", size: :long + t.date "end_date" + t.string "filemaker_code" + t.boolean "inactive", default: false + t.string "internal_id" + t.boolean "legacy", default: false + t.integer "legacy_id" + t.integer "location_id" + t.string "mission_vision_values" + t.string "name" + t.text "notes", size: :long + t.integer "project_status_id" + t.date "start_date" + t.datetime "updated_at", precision: nil, null: false + t.string "website_url" + t.integer "windows_type_id" + t.index ["location_id"], name: "index_projects_on_location_id" + t.index ["project_status_id"], name: "index_projects_on_project_status_id" + t.index ["windows_type_id"], name: "index_projects_on_windows_type_id" + end + + create_table "quotable_item_quotes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "legacy_id" + t.integer "quotable_id" + t.string "quotable_type" + t.integer "quote_id" + t.datetime "updated_at", precision: nil, null: false + t.index ["quote_id"], name: "index_quotable_item_quotes_on_quote_id" + end + + create_table "quotes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "age" + t.datetime "created_at", precision: nil, null: false + t.string "gender", limit: 1 + t.boolean "inactive", default: true + t.boolean "legacy", default: false + t.integer "legacy_id" + t.text "quote", size: :long + t.string "speaker_name" + t.datetime "updated_at", precision: nil, null: false + t.integer "workshop_id" + t.index ["workshop_id"], name: "index_quotes_on_workshop_id" + end + + create_table "report_form_field_answers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "answer", size: :long + t.integer "answer_option_id" + t.datetime "created_at", precision: nil + t.integer "form_field_id" + t.integer "report_id" + t.datetime "updated_at", precision: nil + t.index ["answer_option_id"], name: "index_report_form_field_answers_on_answer_option_id" + t.index ["form_field_id"], name: "index_report_form_field_answers_on_form_field_id" + t.index ["report_id"], name: "index_report_form_field_answers_on_report_id" + end + + create_table "reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "adults_first_time", default: 0 + t.integer "adults_ongoing", default: 0 + t.integer "children_first_time", default: 0 + t.integer "children_ongoing", default: 0 + t.datetime "created_at", precision: nil, null: false + t.date "date" + t.string "form_file_content_type" + t.string "form_file_file_name" + t.integer "form_file_file_size" + t.datetime "form_file_updated_at", precision: nil + t.boolean "has_attachment", default: false + t.string "other_description" + t.integer "owner_id" + t.string "owner_type" + t.integer "project_id" + t.integer "rating", default: 0 + t.integer "teens_first_time", default: 0 + t.integer "teens_ongoing", default: 0 + t.string "type" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.integer "windows_type_id" + t.integer "workshop_id" + t.string "workshop_name" + t.index ["project_id"], name: "index_reports_on_project_id" + t.index ["user_id"], name: "index_reports_on_user_id" + t.index ["windows_type_id"], name: "index_reports_on_windows_type_id" + end + + create_table "resources", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "agency" + t.string "author" + t.datetime "created_at", precision: nil, null: false + t.boolean "featured", default: false + t.boolean "female", default: false + t.string "filemaker_code" + t.boolean "inactive", default: true + t.string "kind" + t.boolean "legacy" + t.integer "legacy_id" + t.boolean "male", default: false + t.integer "position" + t.text "text", size: :long + t.string "title" + t.datetime "updated_at", precision: nil, null: false + t.string "url" + t.integer "user_id" + t.integer "windows_type_id" + t.integer "workshop_id" + t.index ["user_id"], name: "index_resources_on_user_id" + t.index ["windows_type_id"], name: "index_resources_on_windows_type_id" + t.index ["workshop_id"], name: "index_resources_on_workshop_id" + end + + create_table "sectorable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.boolean "inactive", default: true + t.boolean "is_leader", default: false, null: false + t.integer "sector_id" + t.integer "sectorable_id" + t.string "sectorable_type" + t.datetime "updated_at", precision: nil, null: false + t.index ["sector_id", "sectorable_type", "sectorable_id"], name: "index_sectorable_items_uniqueness", unique: true + t.index ["sector_id"], name: "index_sectorable_items_on_sector_id" + t.index ["sectorable_type", "sectorable_id"], name: "index_sectorable_items_on_sectorable_type_and_sectorable_id" + end + + create_table "sectors", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.boolean "published", default: false + t.datetime "updated_at", precision: nil, null: false + end + + create_table "stories", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "body", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id", null: false + t.string "external_workshop_title" + t.boolean "featured", default: false, null: false + t.boolean "permission_given" + t.integer "project_id" + t.boolean "published", default: false, null: false + t.integer "spotlighted_facilitator_id" + t.bigint "story_idea_id" + t.string "title" + t.datetime "updated_at", null: false + t.integer "updated_by_id", null: false + t.string "website_url" + t.integer "windows_type_id", null: false + t.integer "workshop_id" + t.string "youtube_url" + t.index ["created_by_id"], name: "index_stories_on_created_by_id" + t.index ["project_id"], name: "index_stories_on_project_id" + t.index ["published"], name: "index_stories_on_published" + t.index ["spotlighted_facilitator_id"], name: "index_stories_on_spotlighted_facilitator_id" + t.index ["story_idea_id"], name: "index_stories_on_story_idea_id" + t.index ["updated_by_id"], name: "index_stories_on_updated_by_id" + t.index ["windows_type_id"], name: "index_stories_on_windows_type_id" + t.index ["workshop_id"], name: "index_stories_on_workshop_id" + end + + create_table "story_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "body", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id", null: false + t.string "external_workshop_title" + t.boolean "permission_given" + t.integer "project_id", null: false + t.string "publish_preferences" + t.string "title" + t.datetime "updated_at", null: false + t.integer "updated_by_id", null: false + t.integer "windows_type_id", null: false + t.integer "workshop_id" + t.string "youtube_url" + t.index ["created_by_id"], name: "index_story_ideas_on_created_by_id" + t.index ["project_id"], name: "index_story_ideas_on_project_id" + t.index ["updated_by_id"], name: "index_story_ideas_on_updated_by_id" + t.index ["windows_type_id"], name: "index_story_ideas_on_windows_type_id" + t.index ["workshop_id"], name: "index_story_ideas_on_workshop_id" + end + + create_table "tutorials", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "body", size: :medium + t.datetime "created_at", null: false + t.boolean "featured", default: false, null: false + t.integer "position", default: 10, null: false + t.boolean "published", default: false, null: false + t.string "title" + t.datetime "updated_at", null: false + t.string "youtube_url" + t.index ["featured"], name: "index_tutorials_on_featured" + t.index ["published"], name: "index_tutorials_on_published" + t.index ["title"], name: "index_tutorials_on_title" + end + + create_table "user_form_form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "form_field_id" + t.text "text", size: :long + t.datetime "updated_at", precision: nil, null: false + t.integer "user_form_id" + t.index ["form_field_id"], name: "index_user_form_form_fields_on_form_field_id" + t.index ["user_form_id"], name: "index_user_form_form_fields_on_user_form_id" + end + + create_table "user_forms", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "form_id" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.index ["form_id"], name: "index_user_forms_on_form_id" + t.index ["user_id"], name: "index_user_forms_on_user_id" + end + + create_table "user_permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "permission_id" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.index ["permission_id"], name: "index_user_permissions_on_permission_id" + t.index ["user_id"], name: "index_user_permissions_on_user_id" + end + + create_table "users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "address" + t.string "address2" + t.integer "agency_id" + t.string "avatar_content_type" + t.string "avatar_file_name" + t.integer "avatar_file_size" + t.datetime "avatar_updated_at", precision: nil + t.string "best_time_to_call" + t.date "birthday" + t.string "city" + t.string "city2" + t.text "comment", size: :long + t.datetime "confirmation_sent_at" + t.string "confirmation_token" + t.boolean "confirmed", default: true + t.datetime "confirmed_at" + t.datetime "created_at", precision: nil + t.datetime "current_sign_in_at", precision: nil + t.string "current_sign_in_ip" + t.string "email", default: "", null: false + t.string "email_type", default: "work", null: false + t.string "encrypted_password", default: "", null: false + t.integer "facilitator_id" + t.integer "failed_attempts", default: 0, null: false + t.string "first_name", default: "" + t.boolean "inactive", default: false + t.string "last_name", default: "" + t.datetime "last_sign_in_at", precision: nil + t.string "last_sign_in_ip" + t.boolean "legacy", default: false + t.integer "legacy_id" + t.datetime "locked_at" + t.text "notes", size: :long + t.string "phone" + t.string "phone2" + t.string "phone3" + t.integer "primary_address" + t.datetime "remember_created_at", precision: nil + t.datetime "reset_password_sent_at", precision: nil + t.string "reset_password_token" + t.integer "sign_in_count", default: 0, null: false + t.string "state" + t.string "state2" + t.string "subscribecode" + t.boolean "super_user", default: false + t.string "unconfirmed_email" + t.string "unlock_token" + t.datetime "updated_at", precision: nil + t.string "zip" + t.string "zip2" + t.index ["agency_id"], name: "index_users_on_agency_id" + t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true + t.index ["email"], name: "index_users_on_email", unique: true + t.index ["facilitator_id"], name: "index_users_on_facilitator_id" + t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true + t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true + end + + create_table "windows_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "legacy_id" + t.string "name" + t.string "short_name" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "workshop_age_ranges", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "age_range_id" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.integer "workshop_id" + t.index ["age_range_id"], name: "index_workshop_age_ranges_on_age_range_id" + t.index ["workshop_id"], name: "index_workshop_age_ranges_on_workshop_id" + end + + create_table "workshop_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "age_range", size: :medium + t.text "age_range_spanish", size: :medium + t.text "closing", size: :medium + t.text "closing_spanish", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id", null: false + t.text "creation", size: :medium + t.text "creation_spanish", size: :medium + t.text "demonstration", size: :medium + t.text "demonstration_spanish", size: :medium + t.text "description", size: :medium + t.text "description_spanish", size: :medium + t.text "instructions", size: :medium + t.text "instructions_spanish", size: :medium + t.text "introduction", size: :medium + t.text "introduction_spanish", size: :medium + t.text "materials", size: :medium + t.text "materials_spanish", size: :medium + t.text "misc_instructions_spanish", size: :medium + t.text "notes", size: :medium + t.text "notes_spanish", size: :medium + t.text "objective", size: :medium + t.text "objective_spanish", size: :medium + t.text "opening_circle", size: :medium + t.text "opening_circle_spanish", size: :medium + t.text "optional_materials", size: :medium + t.text "optional_materials_spanish", size: :medium + t.text "setup", size: :medium + t.text "setup_spanish", size: :medium + t.text "staff_notes", size: :medium + t.integer "time_closing" + t.integer "time_creation" + t.integer "time_demonstration" + t.integer "time_hours" + t.integer "time_intro" + t.integer "time_minutes" + t.integer "time_opening" + t.integer "time_opening_circle" + t.integer "time_warm_up" + t.text "timeframe", size: :medium + t.text "timeframe_spanish", size: :medium + t.text "tips", size: :medium + t.text "tips_spanish", size: :medium + t.string "title" + t.datetime "updated_at", null: false + t.integer "updated_by_id", null: false + t.text "visualization", size: :medium + t.text "visualization_spanish", size: :medium + t.text "warm_up", size: :medium + t.text "warm_up_spanish", size: :medium + t.integer "windows_type_id", null: false + t.index ["created_by_id"], name: "index_workshop_ideas_on_created_by_id" + t.index ["updated_by_id"], name: "index_workshop_ideas_on_updated_by_id" + t.index ["windows_type_id"], name: "index_workshop_ideas_on_windows_type_id" + end + + create_table "workshop_logs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "challenges", size: :long + t.text "comments", size: :long + t.datetime "created_at", precision: nil, null: false + t.date "date" + t.text "differences", size: :long + t.boolean "is_embodied_art_workshop", default: false + t.boolean "lead_similar" + t.integer "num_participants_first_time", default: 0 + t.integer "num_participants_on_going", default: 0 + t.integer "project_id" + t.text "questions", size: :long + t.integer "rating", default: 0 + t.text "reaction", size: :long + t.text "similarities", size: :long + t.text "successes", size: :long + t.text "suggestions", size: :long + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.integer "workshop_id" + t.index ["project_id"], name: "index_workshop_logs_on_project_id" + t.index ["user_id"], name: "index_workshop_logs_on_user_id" + t.index ["workshop_id"], name: "index_workshop_logs_on_workshop_id" + end + + create_table "workshop_resources", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "resource_id" + t.datetime "updated_at", precision: nil, null: false + t.integer "workshop_id" + t.index ["resource_id"], name: "index_workshop_resources_on_resource_id" + t.index ["workshop_id"], name: "index_workshop_resources_on_workshop_id" + end + + create_table "workshop_series_memberships", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", null: false + t.integer "position", default: 1, null: false + t.string "series_description" + t.string "series_description_spanish" + t.string "theme_name" + t.datetime "updated_at", null: false + t.integer "workshop_child_id", null: false + t.integer "workshop_parent_id", null: false + t.index ["workshop_child_id"], name: "fk_rails_c3357d1053" + t.index ["workshop_parent_id", "workshop_child_id"], name: "index_workshop_series_memberships_on_parent_and_child", unique: true + end + + create_table "workshop_variations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "code", size: :long + t.datetime "created_at", precision: nil, null: false + t.integer "created_by_id" + t.boolean "inactive", default: true + t.boolean "legacy", default: false + t.string "name" + t.integer "position" + t.datetime "updated_at", precision: nil, null: false + t.integer "variation_id" + t.integer "workshop_id" + t.string "youtube_url" + t.index ["created_by_id"], name: "index_workshop_variations_on_created_by_id" + t.index ["workshop_id"], name: "index_workshop_variations_on_workshop_id" + end + + create_table "workshops", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "age_range", size: :long + t.text "age_range_spanish", size: :long + t.string "author_location" + t.text "closing", size: :long + t.text "closing_spanish", size: :long + t.datetime "created_at", precision: nil, null: false + t.text "creation", size: :long + t.text "creation_spanish", size: :long + t.text "demonstration", size: :long + t.text "demonstration_spanish", size: :long + t.text "description", size: :long + t.text "description_spanish", size: :long + t.text "extra_field", size: :medium + t.text "extra_field_spanish", size: :medium + t.boolean "featured", default: false + t.string "filemaker_code" + t.string "full_name" + t.string "header_content_type" + t.string "header_file_name" + t.integer "header_file_size" + t.datetime "header_updated_at", precision: nil + t.boolean "inactive", default: true + t.text "instructions", size: :long + t.text "instructions_spanish", size: :long + t.text "introduction", size: :long + t.text "introduction_spanish", size: :long + t.integer "led_count", default: 0 + t.boolean "legacy", default: false + t.integer "legacy_id" + t.text "materials", size: :long + t.text "materials_spanish", size: :long + t.string "misc1" + t.text "misc1_spanish", size: :long + t.string "misc2" + t.text "misc2_spanish", size: :long + t.text "misc_instructions", size: :long + t.text "misc_instructions_spanish", size: :long + t.integer "month" + t.text "notes", size: :long + t.text "notes_spanish", size: :long + t.text "objective", size: :long + t.text "objective_spanish", size: :long + t.text "opening_circle", size: :long + t.text "opening_circle_spanish", size: :long + t.text "optional_materials", size: :long + t.text "optional_materials_spanish", size: :long + t.string "photo_caption" + t.text "project", size: :long + t.text "project_spanish", size: :long + t.string "pub_issue" + t.boolean "searchable", default: false + t.text "setup", size: :long + t.text "setup_spanish", size: :long + t.string "thumbnail_content_type" + t.string "thumbnail_file_name" + t.integer "thumbnail_file_size" + t.datetime "thumbnail_updated_at", precision: nil + t.integer "time_closing" + t.integer "time_creation" + t.integer "time_demonstration" + t.integer "time_intro" + t.integer "time_opening" + t.integer "time_opening_circle" + t.integer "time_warm_up" + t.text "timeframe", size: :long + t.text "timeframe_spanish", size: :long + t.text "timestamps", size: :long + t.text "tips", size: :long + t.text "tips_spanish", size: :long + t.string "title" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.text "visualization", size: :long + t.text "visualization_spanish", size: :long + t.text "warm_up", size: :long + t.text "warm_up_spanish", size: :long + t.integer "windows_type_id" + t.bigint "workshop_idea_id" + t.integer "year" + t.index ["created_at"], name: "index_workshops_on_created_at" + t.index ["inactive", "led_count", "title"], name: "index_workshops_on_inactive_and_led_count_and_title" + t.index ["led_count"], name: "index_workshops_on_led_count" + t.index ["title", "full_name", "objective", "materials", "introduction", "demonstration", "opening_circle", "warm_up", "creation", "closing", "notes", "tips", "misc1", "misc2"], name: "workshop_fullsearch", type: :fulltext + t.index ["title"], name: "index_workshops_on_title", type: :fulltext + t.index ["title"], name: "workshop_fullsearch_title", type: :fulltext + t.index ["user_id"], name: "index_workshops_on_user_id" + t.index ["windows_type_id"], name: "index_workshops_on_windows_type_id" + t.index ["workshop_idea_id"], name: "index_workshops_on_workshop_idea_id" + t.index ["year", "month"], name: "index_workshops_on_year_and_month" + end + + add_foreign_key "action_text_mentions", "action_text_rich_texts" + add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" + add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" + add_foreign_key "age_ranges", "windows_types" + add_foreign_key "banners", "users", column: "created_by_id" + add_foreign_key "banners", "users", column: "updated_by_id" + add_foreign_key "bookmark_annotations", "bookmarks" + add_foreign_key "bookmarks", "users" + add_foreign_key "categories", "metadata" + add_foreign_key "community_news", "projects" + add_foreign_key "community_news", "users", column: "author_id" + add_foreign_key "community_news", "users", column: "created_by_id" + add_foreign_key "community_news", "users", column: "updated_by_id" + add_foreign_key "community_news", "windows_types" + add_foreign_key "contact_methods", "addresses" + add_foreign_key "event_registrations", "events" + add_foreign_key "event_registrations", "users", column: "registrant_id" + add_foreign_key "events", "users", column: "created_by_id" + add_foreign_key "facilitators", "users", column: "created_by_id" + add_foreign_key "facilitators", "users", column: "updated_by_id" + add_foreign_key "form_builders", "windows_types" + add_foreign_key "form_field_answer_options", "answer_options" + add_foreign_key "form_field_answer_options", "form_fields" + add_foreign_key "form_fields", "forms" + add_foreign_key "forms", "form_builders" + add_foreign_key "monthly_reports", "project_users" + add_foreign_key "monthly_reports", "projects" + add_foreign_key "project_users", "projects" + add_foreign_key "project_users", "projects", column: "agency_id" + add_foreign_key "project_users", "users" + add_foreign_key "projects", "locations" + add_foreign_key "projects", "project_statuses" + add_foreign_key "projects", "windows_types" + add_foreign_key "quotable_item_quotes", "quotes" + add_foreign_key "quotes", "workshops" + add_foreign_key "report_form_field_answers", "answer_options" + add_foreign_key "report_form_field_answers", "form_fields" + add_foreign_key "report_form_field_answers", "reports" + add_foreign_key "reports", "projects" + add_foreign_key "reports", "users" + add_foreign_key "reports", "windows_types" + add_foreign_key "resources", "users" + add_foreign_key "resources", "windows_types" + add_foreign_key "resources", "workshops" + add_foreign_key "sectorable_items", "sectors" + add_foreign_key "stories", "facilitators", column: "spotlighted_facilitator_id" + add_foreign_key "stories", "projects" + add_foreign_key "stories", "story_ideas" + add_foreign_key "stories", "users", column: "created_by_id" + add_foreign_key "stories", "users", column: "updated_by_id" + add_foreign_key "stories", "windows_types" + add_foreign_key "stories", "workshops" + add_foreign_key "story_ideas", "projects" + add_foreign_key "story_ideas", "users", column: "created_by_id" + add_foreign_key "story_ideas", "users", column: "updated_by_id" + add_foreign_key "story_ideas", "windows_types" + add_foreign_key "story_ideas", "workshops" + add_foreign_key "user_form_form_fields", "form_fields" + add_foreign_key "user_form_form_fields", "user_forms" + add_foreign_key "user_forms", "forms" + add_foreign_key "user_forms", "users" + add_foreign_key "user_permissions", "permissions" + add_foreign_key "user_permissions", "users" + add_foreign_key "users", "facilitators" + add_foreign_key "users", "projects", column: "agency_id" + add_foreign_key "workshop_age_ranges", "age_ranges" + add_foreign_key "workshop_age_ranges", "workshops" + add_foreign_key "workshop_ideas", "users", column: "created_by_id" + add_foreign_key "workshop_ideas", "users", column: "updated_by_id" + add_foreign_key "workshop_ideas", "windows_types" + add_foreign_key "workshop_logs", "projects" + add_foreign_key "workshop_logs", "users" + add_foreign_key "workshop_logs", "workshops" + add_foreign_key "workshop_resources", "resources" + add_foreign_key "workshop_resources", "workshops" + add_foreign_key "workshop_series_memberships", "workshops", column: "workshop_child_id" + add_foreign_key "workshop_series_memberships", "workshops", column: "workshop_parent_id" + add_foreign_key "workshop_variations", "users", column: "created_by_id" + add_foreign_key "workshop_variations", "workshops" + add_foreign_key "workshops", "users" + add_foreign_key "workshops", "windows_types" + add_foreign_key "workshops", "workshop_ideas" +end \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..6bad343a5 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1156 @@ +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema[8.1].define(version: 2026_01_20_212705) do + create_table "action_text_mentions", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.bigint "action_text_rich_text_id", null: false + t.datetime "created_at", null: false + t.bigint "mentionable_id", null: false + t.string "mentionable_type", null: false + t.datetime "updated_at", null: false + t.index ["action_text_rich_text_id", "mentionable_type", "mentionable_id"], name: "index_at_mentions_on_rich_text_and_mentionable", unique: true + t.index ["action_text_rich_text_id"], name: "index_action_text_mentions_on_action_text_rich_text_id" + t.index ["mentionable_type", "mentionable_id"], name: "index_action_text_mentions_on_mentionable" + end + + create_table "action_text_rich_texts", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "body", size: :long + t.datetime "created_at", null: false + t.string "name", null: false + t.text "plain_text_body" + t.bigint "record_id", null: false + t.string "record_type", null: false + t.datetime "updated_at", null: false + t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true + end + + create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.bigint "blob_id", null: false + t.datetime "created_at", precision: nil, null: false + t.string "name", null: false + t.bigint "record_id", null: false + t.string "record_type", null: false + t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" + t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true + end + + create_table "active_storage_blobs", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "aws_key" + t.bigint "byte_size", null: false + t.string "checksum" + t.string "content_type" + t.datetime "created_at", precision: nil, null: false + t.string "filename", null: false + t.string "key", null: false + t.text "metadata", size: :medium + t.string "service_name", null: false + t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true + end + + create_table "active_storage_variant_records", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.bigint "blob_id", null: false + t.string "variation_digest", null: false + t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true + end + + create_table "addresses", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "address_type" + t.bigint "addressable_id" + t.string "addressable_type" + t.string "city", null: false + t.string "country" + t.string "county" + t.datetime "created_at", null: false + t.string "district" + t.boolean "inactive", default: false, null: false + t.integer "la_city_council_district" + t.integer "la_service_planning_area" + t.integer "la_supervisorial_district" + t.string "locality" + t.string "phone" + t.string "state", null: false + t.string "street_address", null: false + t.datetime "updated_at", null: false + t.string "zip_code", null: false + t.index ["addressable_type", "addressable_id"], name: "index_addresses_on_addressable" + end + + create_table "admins", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil + t.datetime "current_sign_in_at", precision: nil + t.string "current_sign_in_ip" + t.string "email", default: "", null: false + t.string "encrypted_password", default: "", null: false + t.string "first_name", default: "", null: false + t.string "last_name", default: "", null: false + t.datetime "last_sign_in_at", precision: nil + t.string "last_sign_in_ip" + t.datetime "remember_created_at", precision: nil + t.datetime "reset_password_sent_at", precision: nil + t.string "reset_password_token" + t.integer "sign_in_count", default: 0, null: false + t.datetime "updated_at", precision: nil + t.index ["email"], name: "index_admins_on_email", unique: true + t.index ["reset_password_token"], name: "index_admins_on_reset_password_token", unique: true + end + + create_table "age_ranges", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.datetime "updated_at", precision: nil, null: false + t.integer "windows_type_id" + t.index ["windows_type_id"], name: "index_age_ranges_on_windows_type_id" + end + + create_table "ahoy_events", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "name" + t.json "properties" + t.datetime "time" + t.bigint "user_id" + t.bigint "visit_id" + t.index ["name", "time"], name: "index_ahoy_events_on_name_and_time" + t.index ["user_id"], name: "index_ahoy_events_on_user_id" + t.index ["visit_id"], name: "index_ahoy_events_on_visit_id" + end + + create_table "ahoy_visits", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "app_version" + t.string "browser" + t.string "city" + t.string "country" + t.string "device_type" + t.string "ip" + t.text "landing_page", size: :medium + t.float "latitude" + t.float "longitude" + t.string "os" + t.string "os_version" + t.string "platform" + t.text "referrer", size: :medium + t.string "referring_domain" + t.string "region" + t.datetime "started_at" + t.text "user_agent", size: :medium + t.bigint "user_id" + t.string "utm_campaign" + t.string "utm_content" + t.string "utm_medium" + t.string "utm_source" + t.string "utm_term" + t.string "visit_token" + t.string "visitor_token" + t.index ["user_id"], name: "index_ahoy_visits_on_user_id" + t.index ["visit_token"], name: "index_ahoy_visits_on_visit_token", unique: true + t.index ["visitor_token", "started_at"], name: "index_ahoy_visits_on_visitor_token_and_started_at" + end + + create_table "answer_options", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.integer "position" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", null: false + t.integer "owner_id" + t.string "owner_type" + t.integer "report_id" + t.string "title" + t.string "type", default: "PrimaryAsset", null: false + t.datetime "updated_at", null: false + t.index ["owner_id"], name: "index_assets_on_owner_id" + t.index ["owner_type"], name: "index_assets_on_owner_type" + t.index ["type"], name: "index_assets_on_type" + end + + create_table "attachments", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "file_content_type" + t.string "file_file_name" + t.integer "file_file_size" + t.datetime "file_updated_at", precision: nil + t.integer "owner_id" + t.string "owner_type" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "banners", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "content", size: :medium + t.datetime "created_at", precision: nil, null: false + t.integer "created_by_id" + t.boolean "show" + t.datetime "updated_at", precision: nil, null: false + t.integer "updated_by_id" + t.index ["created_by_id"], name: "index_banners_on_created_by_id" + t.index ["updated_by_id"], name: "index_banners_on_updated_by_id" + end + + create_table "bookmark_annotations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "annotation", size: :long + t.integer "bookmark_id" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["bookmark_id"], name: "index_bookmark_annotations_on_bookmark_id" + end + + create_table "bookmarks", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "bookmarkable_id" + t.string "bookmarkable_type" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.index ["user_id"], name: "index_bookmarks_on_user_id" + end + + create_table "categories", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "legacy_id" + t.integer "metadatum_id" + t.string "name" + t.integer "position", default: 10, null: false + t.boolean "published", default: false + t.datetime "updated_at", precision: nil, null: false + t.index ["metadatum_id"], name: "index_categories_on_metadatum_id" + end + + create_table "categorizable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "categorizable_id" + t.string "categorizable_type" + t.integer "category_id" + t.datetime "created_at", precision: nil, null: false + t.boolean "inactive", default: true + t.integer "legacy_id" + t.datetime "updated_at", precision: nil, null: false + t.index ["categorizable_type", "categorizable_id"], name: "idx_on_categorizable_type_categorizable_id_ccce65d80c" + t.index ["category_id", "categorizable_type", "categorizable_id"], name: "index_categorizable_items_uniqueness", unique: true + t.index ["category_id"], name: "index_categorizable_items_on_category_id" + end + + create_table "ckeditor_assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "actual_url" + t.integer "assetable_id" + t.string "assetable_type", limit: 30 + t.datetime "created_at", precision: nil, null: false + t.string "data_content_type" + t.string "data_file_name", null: false + t.integer "data_file_size" + t.integer "height" + t.string "type", limit: 30 + t.datetime "updated_at", precision: nil, null: false + t.integer "width" + t.index ["assetable_type", "assetable_id"], name: "idx_ckeditor_assetable" + t.index ["assetable_type", "type", "assetable_id"], name: "idx_ckeditor_assetable_type" + end + + create_table "community_news", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "author_id", null: false + t.text "body", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id", null: false + t.boolean "featured" + t.integer "project_id" + t.boolean "published" + t.string "reference_url" + t.string "title" + t.datetime "updated_at", null: false + t.integer "updated_by_id", null: false + t.integer "windows_type_id" + t.string "youtube_url" + t.index ["author_id"], name: "index_community_news_on_author_id" + t.index ["body"], name: "index_community_news_on_body", type: :fulltext + t.index ["created_by_id"], name: "index_community_news_on_created_by_id" + t.index ["project_id"], name: "index_community_news_on_project_id" + t.index ["updated_by_id"], name: "index_community_news_on_updated_by_id" + t.index ["windows_type_id"], name: "index_community_news_on_windows_type_id" + end + + create_table "contact_methods", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.bigint "address_id" + t.string "contact_type" + t.bigint "contactable_id", null: false + t.string "contactable_type", null: false + t.datetime "created_at", null: false + t.boolean "inactive", default: false, null: false + t.boolean "is_primary", default: false, null: false + t.string "kind", null: false + t.datetime "updated_at", null: false + t.string "value", null: false + t.index ["address_id"], name: "index_contact_methods_on_address_id" + t.index ["contactable_type", "contactable_id"], name: "index_contact_methods_on_contactable" + end + + create_table "event_registrations", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", null: false + t.bigint "event_id" + t.integer "registrant_id" + t.datetime "updated_at", null: false + t.index ["event_id"], name: "index_event_registrations_on_event_id" + t.index ["registrant_id", "event_id"], name: "index_event_registrations_on_registrant_id_and_event_id", unique: true + t.index ["registrant_id"], name: "index_event_registrations_on_registrant_id" + end + + create_table "events", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "cost_cents" + t.datetime "created_at", null: false + t.integer "created_by_id" + t.text "description", size: :medium + t.datetime "end_date", precision: nil + t.boolean "featured", default: false, null: false + t.boolean "publicly_visible", default: false, null: false + t.datetime "registration_close_date", precision: nil + t.datetime "start_date", precision: nil + t.string "title" + t.datetime "updated_at", null: false + t.index ["created_by_id"], name: "index_events_on_created_by_id" + end + + create_table "facilitators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "best_time_to_call" + t.text "bio", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id" + t.date "date_of_birth" + t.string "display_name_preference" + t.string "email" + t.string "email_2" + t.string "email_2_type", default: "personal", null: false + t.string "email_type" + t.string "facebook_url" + t.string "first_name", null: false + t.string "instagram_url" + t.string "last_name", null: false + t.string "linked_in_url" + t.date "member_since" + t.text "notes", size: :medium + t.boolean "profile_is_searchable", default: true, null: false + t.boolean "profile_show_affiliations", default: true, null: false + t.boolean "profile_show_bio", default: true, null: false + t.boolean "profile_show_email", default: true, null: false + t.boolean "profile_show_events_registered", default: true, null: false + t.boolean "profile_show_member_since", default: true, null: false + t.boolean "profile_show_phone", default: true, null: false + t.boolean "profile_show_pronouns", default: true, null: false + t.boolean "profile_show_sectors", default: true, null: false + t.boolean "profile_show_social_media", default: true, null: false + t.boolean "profile_show_stories", default: true, null: false + t.boolean "profile_show_story_ideas", default: true, null: false + t.boolean "profile_show_workshop_ideas", default: true, null: false + t.boolean "profile_show_workshop_logs", default: true, null: false + t.boolean "profile_show_workshop_variations", default: true, null: false + t.boolean "profile_show_workshops", default: true, null: false + t.string "pronouns" + t.string "twitter_url" + t.datetime "updated_at", null: false + t.integer "updated_by_id" + t.string "youtube_url" + t.index ["created_by_id"], name: "index_facilitators_on_created_by_id" + t.index ["updated_by_id"], name: "index_facilitators_on_updated_by_id" + end + + create_table "faqs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "answer", size: :long + t.datetime "created_at", precision: nil, null: false + t.boolean "inactive" + t.integer "position", null: false + t.string "question" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "footers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "adult_program" + t.string "children_program" + t.datetime "created_at", precision: nil, null: false + t.string "general_questions" + t.string "phone" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "form_builders", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.text "description", size: :long + t.string "name" + t.integer "owner_type" + t.datetime "updated_at", precision: nil, null: false + t.integer "windows_type_id" + t.index ["windows_type_id"], name: "index_form_builders_on_windows_type_id" + end + + create_table "form_field_answer_options", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "answer_option_id" + t.datetime "created_at", precision: nil, null: false + t.integer "form_field_id" + t.datetime "updated_at", precision: nil, null: false + t.index ["answer_option_id"], name: "index_form_field_answer_options_on_answer_option_id" + t.index ["form_field_id"], name: "index_form_field_answer_options_on_form_field_id" + end + + create_table "form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "answer_datatype" + t.integer "answer_type" + t.datetime "created_at", precision: nil, null: false + t.integer "form_id" + t.string "instructional_hint" + t.boolean "is_required", default: true + t.integer "parent_id" + t.integer "position" + t.string "question" + t.integer "status", default: 1 + t.datetime "updated_at", precision: nil, null: false + t.index ["form_id"], name: "index_form_fields_on_form_id" + end + + create_table "forms", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "form_builder_id" + t.integer "owner_id" + t.string "owner_type" + t.datetime "updated_at", precision: nil, null: false + t.index ["form_builder_id"], name: "index_forms_on_form_builder_id" + end + + create_table "images", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "file_content_type" + t.string "file_file_name" + t.integer "file_file_size" + t.datetime "file_updated_at", precision: nil + t.integer "owner_id" + t.string "owner_type" + t.integer "report_id" + t.string "type", default: "Images::GalleryImage", null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["owner_id"], name: "index_images_on_owner_id" + t.index ["type"], name: "index_images_on_type" + end + + create_table "locations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "city" + t.string "country" + t.datetime "created_at", precision: nil, null: false + t.string "state" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "media_files", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "file_content_type" + t.string "file_file_name" + t.integer "file_file_size" + t.datetime "file_updated_at", precision: nil + t.integer "report_id" + t.integer "workshop_log_id" + end + + create_table "metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "legacy_id" + t.string "name" + t.boolean "published", default: false + t.datetime "updated_at", precision: nil, null: false + end + + create_table "monthly_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "best_call_time" + t.boolean "call_requested" + t.text "comments", size: :long + t.datetime "created_at", precision: nil, null: false + t.text "goals", size: :long + t.text "goals_reached", size: :long + t.boolean "mail_evaluations" + t.string "month" + t.text "most_challenging", size: :long + t.text "most_effective", size: :long + t.string "name" + t.string "num_new_participants" + t.string "num_ongoing_participants" + t.string "phone" + t.string "position" + t.integer "project_id" + t.integer "project_user_id" + t.datetime "updated_at", precision: nil, null: false + t.index ["project_id"], name: "index_monthly_reports_on_project_id" + t.index ["project_user_id"], name: "index_monthly_reports_on_project_user_id" + end + + create_table "notifications", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.datetime "delivered_at" + t.text "email_body_html", size: :medium + t.text "email_body_text", size: :medium + t.text "email_subject", size: :medium + t.string "kind", null: false + t.integer "noticeable_id" + t.string "noticeable_type" + t.integer "notification_type" + t.string "recipient_email", null: false + t.string "recipient_role", null: false + t.datetime "updated_at", precision: nil, null: false + t.index ["kind"], name: "index_notifications_on_kind" + t.index ["noticeable_type", "noticeable_id"], name: "index_notifications_on_noticeable_type_and_noticeable_id" + end + + create_table "payments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "amount_cents", null: false + t.datetime "created_at", null: false + t.string "currency", default: "usd", null: false + t.string "failure_code" + t.string "failure_message" + t.bigint "payable_id", null: false + t.string "payable_type", null: false + t.bigint "payer_id", null: false + t.string "payer_type", null: false + t.string "status", null: false + t.string "stripe_charge_id" + t.json "stripe_metadata" + t.string "stripe_payment_intent_id", null: false + t.datetime "updated_at", null: false + t.index ["payable_type", "payable_id", "status"], name: "index_payments_on_payable_type_and_payable_id_and_status" + t.index ["payable_type", "payable_id"], name: "index_payments_on_payable" + t.index ["payable_type", "payable_id"], name: "index_payments_on_payable_type_and_payable_id" + t.index ["payer_type", "payer_id"], name: "index_payments_on_payer" + t.index ["payer_type", "payer_id"], name: "index_payments_on_payer_type_and_payer_id" + t.index ["stripe_charge_id"], name: "index_payments_on_stripe_charge_id" + t.index ["stripe_payment_intent_id"], name: "index_payments_on_stripe_payment_intent_id", unique: true + end + + create_table "permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "legacy_id" + t.string "security_cat" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "project_obligations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "project_statuses", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "project_users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "agency_id" + t.datetime "created_at", precision: nil, null: false + t.string "filemaker_code" + t.boolean "inactive", default: false, null: false + t.integer "position" + t.integer "project_id" + t.string "title" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.index ["agency_id"], name: "index_project_users_on_agency_id" + t.index ["project_id"], name: "index_project_users_on_project_id" + t.index ["user_id"], name: "index_project_users_on_user_id" + end + + create_table "projects", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "agency_type" + t.string "agency_type_other" + t.datetime "created_at", precision: nil, null: false + t.text "description", size: :long + t.date "end_date" + t.string "filemaker_code" + t.boolean "inactive", default: false + t.string "internal_id" + t.boolean "legacy", default: false + t.integer "legacy_id" + t.integer "location_id" + t.string "mission_vision_values" + t.string "name" + t.text "notes", size: :long + t.integer "project_status_id" + t.date "start_date" + t.datetime "updated_at", precision: nil, null: false + t.string "website_url" + t.integer "windows_type_id" + t.index ["location_id"], name: "index_projects_on_location_id" + t.index ["project_status_id"], name: "index_projects_on_project_status_id" + t.index ["windows_type_id"], name: "index_projects_on_windows_type_id" + end + + create_table "quotable_item_quotes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "legacy_id" + t.integer "quotable_id" + t.string "quotable_type" + t.integer "quote_id" + t.datetime "updated_at", precision: nil, null: false + t.index ["quote_id"], name: "index_quotable_item_quotes_on_quote_id" + end + + create_table "quotes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "age" + t.datetime "created_at", precision: nil, null: false + t.string "gender", limit: 1 + t.boolean "inactive", default: true + t.boolean "legacy", default: false + t.integer "legacy_id" + t.text "quote", size: :long + t.string "speaker_name" + t.datetime "updated_at", precision: nil, null: false + t.integer "workshop_id" + t.index ["workshop_id"], name: "index_quotes_on_workshop_id" + end + + create_table "report_form_field_answers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "answer", size: :long + t.integer "answer_option_id" + t.datetime "created_at", precision: nil + t.integer "form_field_id" + t.integer "report_id" + t.datetime "updated_at", precision: nil + t.index ["answer_option_id"], name: "index_report_form_field_answers_on_answer_option_id" + t.index ["form_field_id"], name: "index_report_form_field_answers_on_form_field_id" + t.index ["report_id"], name: "index_report_form_field_answers_on_report_id" + end + + create_table "reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "adults_first_time", default: 0 + t.integer "adults_ongoing", default: 0 + t.integer "children_first_time", default: 0 + t.integer "children_ongoing", default: 0 + t.datetime "created_at", precision: nil, null: false + t.date "date" + t.string "form_file_content_type" + t.string "form_file_file_name" + t.integer "form_file_file_size" + t.datetime "form_file_updated_at", precision: nil + t.boolean "has_attachment", default: false + t.string "other_description" + t.integer "owner_id" + t.string "owner_type" + t.integer "project_id" + t.integer "rating", default: 0 + t.integer "teens_first_time", default: 0 + t.integer "teens_ongoing", default: 0 + t.string "type" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.integer "windows_type_id" + t.integer "workshop_id" + t.string "workshop_name" + t.index ["project_id"], name: "index_reports_on_project_id" + t.index ["user_id"], name: "index_reports_on_user_id" + t.index ["windows_type_id"], name: "index_reports_on_windows_type_id" + end + + create_table "resources", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "agency" + t.string "author" + t.datetime "created_at", precision: nil, null: false + t.boolean "featured", default: false + t.boolean "female", default: false + t.string "filemaker_code" + t.boolean "inactive", default: true + t.string "kind" + t.boolean "legacy" + t.integer "legacy_id" + t.boolean "male", default: false + t.integer "position" + t.text "text", size: :long + t.string "title" + t.datetime "updated_at", precision: nil, null: false + t.string "url" + t.integer "user_id" + t.integer "windows_type_id" + t.integer "workshop_id" + t.index ["user_id"], name: "index_resources_on_user_id" + t.index ["windows_type_id"], name: "index_resources_on_windows_type_id" + t.index ["workshop_id"], name: "index_resources_on_workshop_id" + end + + create_table "sectorable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.boolean "inactive", default: true + t.boolean "is_leader", default: false, null: false + t.integer "sector_id" + t.integer "sectorable_id" + t.string "sectorable_type" + t.datetime "updated_at", precision: nil, null: false + t.index ["sector_id", "sectorable_type", "sectorable_id"], name: "index_sectorable_items_uniqueness", unique: true + t.index ["sector_id"], name: "index_sectorable_items_on_sector_id" + t.index ["sectorable_type", "sectorable_id"], name: "index_sectorable_items_on_sectorable_type_and_sectorable_id" + end + + create_table "sectors", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "name" + t.boolean "published", default: false + t.datetime "updated_at", precision: nil, null: false + end + + create_table "stories", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "body", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id", null: false + t.string "external_workshop_title" + t.boolean "featured", default: false, null: false + t.boolean "permission_given" + t.integer "project_id" + t.boolean "published", default: false, null: false + t.integer "spotlighted_facilitator_id" + t.bigint "story_idea_id" + t.string "title" + t.datetime "updated_at", null: false + t.integer "updated_by_id", null: false + t.string "website_url" + t.integer "windows_type_id", null: false + t.integer "workshop_id" + t.string "youtube_url" + t.index ["created_by_id"], name: "index_stories_on_created_by_id" + t.index ["project_id"], name: "index_stories_on_project_id" + t.index ["published"], name: "index_stories_on_published" + t.index ["spotlighted_facilitator_id"], name: "index_stories_on_spotlighted_facilitator_id" + t.index ["story_idea_id"], name: "index_stories_on_story_idea_id" + t.index ["updated_by_id"], name: "index_stories_on_updated_by_id" + t.index ["windows_type_id"], name: "index_stories_on_windows_type_id" + t.index ["workshop_id"], name: "index_stories_on_workshop_id" + end + + create_table "story_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "body", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id", null: false + t.string "external_workshop_title" + t.boolean "permission_given" + t.integer "project_id", null: false + t.string "publish_preferences" + t.string "title" + t.datetime "updated_at", null: false + t.integer "updated_by_id", null: false + t.integer "windows_type_id", null: false + t.integer "workshop_id" + t.string "youtube_url" + t.index ["created_by_id"], name: "index_story_ideas_on_created_by_id" + t.index ["project_id"], name: "index_story_ideas_on_project_id" + t.index ["updated_by_id"], name: "index_story_ideas_on_updated_by_id" + t.index ["windows_type_id"], name: "index_story_ideas_on_windows_type_id" + t.index ["workshop_id"], name: "index_story_ideas_on_workshop_id" + end + + create_table "tutorials", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "body", size: :medium + t.datetime "created_at", null: false + t.boolean "featured", default: false, null: false + t.integer "position", default: 10, null: false + t.boolean "published", default: false, null: false + t.string "title" + t.datetime "updated_at", null: false + t.string "youtube_url" + t.index ["featured"], name: "index_tutorials_on_featured" + t.index ["published"], name: "index_tutorials_on_published" + t.index ["title"], name: "index_tutorials_on_title" + end + + create_table "user_form_form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "form_field_id" + t.text "text", size: :long + t.datetime "updated_at", precision: nil, null: false + t.integer "user_form_id" + t.index ["form_field_id"], name: "index_user_form_form_fields_on_form_field_id" + t.index ["user_form_id"], name: "index_user_form_form_fields_on_user_form_id" + end + + create_table "user_forms", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "form_id" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.index ["form_id"], name: "index_user_forms_on_form_id" + t.index ["user_id"], name: "index_user_forms_on_user_id" + end + + create_table "user_permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "permission_id" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.index ["permission_id"], name: "index_user_permissions_on_permission_id" + t.index ["user_id"], name: "index_user_permissions_on_user_id" + end + + create_table "users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.string "address" + t.string "address2" + t.integer "agency_id" + t.string "avatar_content_type" + t.string "avatar_file_name" + t.integer "avatar_file_size" + t.datetime "avatar_updated_at", precision: nil + t.string "best_time_to_call" + t.date "birthday" + t.string "city" + t.string "city2" + t.text "comment", size: :long + t.datetime "confirmation_sent_at" + t.string "confirmation_token" + t.boolean "confirmed", default: true + t.datetime "confirmed_at" + t.datetime "created_at", precision: nil + t.datetime "current_sign_in_at", precision: nil + t.string "current_sign_in_ip" + t.string "email", default: "", null: false + t.string "email_type", default: "work", null: false + t.string "encrypted_password", default: "", null: false + t.integer "facilitator_id" + t.integer "failed_attempts", default: 0, null: false + t.string "first_name", default: "" + t.boolean "inactive", default: false + t.string "last_name", default: "" + t.datetime "last_sign_in_at", precision: nil + t.string "last_sign_in_ip" + t.boolean "legacy", default: false + t.integer "legacy_id" + t.datetime "locked_at" + t.text "notes", size: :long + t.string "phone" + t.string "phone2" + t.string "phone3" + t.integer "primary_address" + t.datetime "remember_created_at", precision: nil + t.datetime "reset_password_sent_at", precision: nil + t.string "reset_password_token" + t.integer "sign_in_count", default: 0, null: false + t.string "state" + t.string "state2" + t.string "subscribecode" + t.boolean "super_user", default: false + t.string "unconfirmed_email" + t.string "unlock_token" + t.datetime "updated_at", precision: nil + t.string "zip" + t.string "zip2" + t.index ["agency_id"], name: "index_users_on_agency_id" + t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true + t.index ["email"], name: "index_users_on_email", unique: true + t.index ["facilitator_id"], name: "index_users_on_facilitator_id" + t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true + t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true + end + + create_table "windows_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "legacy_id" + t.string "name" + t.string "short_name" + t.datetime "updated_at", precision: nil, null: false + end + + create_table "workshop_age_ranges", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "age_range_id" + t.datetime "created_at", precision: nil, null: false + t.datetime "updated_at", precision: nil, null: false + t.integer "workshop_id" + t.index ["age_range_id"], name: "index_workshop_age_ranges_on_age_range_id" + t.index ["workshop_id"], name: "index_workshop_age_ranges_on_workshop_id" + end + + create_table "workshop_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "age_range", size: :medium + t.text "age_range_spanish", size: :medium + t.text "closing", size: :medium + t.text "closing_spanish", size: :medium + t.datetime "created_at", null: false + t.integer "created_by_id", null: false + t.text "creation", size: :medium + t.text "creation_spanish", size: :medium + t.text "demonstration", size: :medium + t.text "demonstration_spanish", size: :medium + t.text "description", size: :medium + t.text "description_spanish", size: :medium + t.text "instructions", size: :medium + t.text "instructions_spanish", size: :medium + t.text "introduction", size: :medium + t.text "introduction_spanish", size: :medium + t.text "materials", size: :medium + t.text "materials_spanish", size: :medium + t.text "misc_instructions_spanish", size: :medium + t.text "notes", size: :medium + t.text "notes_spanish", size: :medium + t.text "objective", size: :medium + t.text "objective_spanish", size: :medium + t.text "opening_circle", size: :medium + t.text "opening_circle_spanish", size: :medium + t.text "optional_materials", size: :medium + t.text "optional_materials_spanish", size: :medium + t.text "setup", size: :medium + t.text "setup_spanish", size: :medium + t.text "staff_notes", size: :medium + t.integer "time_closing" + t.integer "time_creation" + t.integer "time_demonstration" + t.integer "time_hours" + t.integer "time_intro" + t.integer "time_minutes" + t.integer "time_opening" + t.integer "time_opening_circle" + t.integer "time_warm_up" + t.text "timeframe", size: :medium + t.text "timeframe_spanish", size: :medium + t.text "tips", size: :medium + t.text "tips_spanish", size: :medium + t.string "title" + t.datetime "updated_at", null: false + t.integer "updated_by_id", null: false + t.text "visualization", size: :medium + t.text "visualization_spanish", size: :medium + t.text "warm_up", size: :medium + t.text "warm_up_spanish", size: :medium + t.integer "windows_type_id", null: false + t.index ["created_by_id"], name: "index_workshop_ideas_on_created_by_id" + t.index ["updated_by_id"], name: "index_workshop_ideas_on_updated_by_id" + t.index ["windows_type_id"], name: "index_workshop_ideas_on_windows_type_id" + end + + create_table "workshop_logs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "challenges", size: :long + t.text "comments", size: :long + t.datetime "created_at", precision: nil, null: false + t.date "date" + t.text "differences", size: :long + t.boolean "is_embodied_art_workshop", default: false + t.boolean "lead_similar" + t.integer "num_participants_first_time", default: 0 + t.integer "num_participants_on_going", default: 0 + t.integer "project_id" + t.text "questions", size: :long + t.integer "rating", default: 0 + t.text "reaction", size: :long + t.text "similarities", size: :long + t.text "successes", size: :long + t.text "suggestions", size: :long + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.integer "workshop_id" + t.index ["project_id"], name: "index_workshop_logs_on_project_id" + t.index ["user_id"], name: "index_workshop_logs_on_user_id" + t.index ["workshop_id"], name: "index_workshop_logs_on_workshop_id" + end + + create_table "workshop_resources", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.integer "resource_id" + t.datetime "updated_at", precision: nil, null: false + t.integer "workshop_id" + t.index ["resource_id"], name: "index_workshop_resources_on_resource_id" + t.index ["workshop_id"], name: "index_workshop_resources_on_workshop_id" + end + + create_table "workshop_series_memberships", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", null: false + t.integer "position", default: 1, null: false + t.string "series_description" + t.string "series_description_spanish" + t.string "theme_name" + t.datetime "updated_at", null: false + t.integer "workshop_child_id", null: false + t.integer "workshop_parent_id", null: false + t.index ["workshop_child_id"], name: "fk_rails_c3357d1053" + t.index ["workshop_parent_id", "workshop_child_id"], name: "index_workshop_series_memberships_on_parent_and_child", unique: true + end + + create_table "workshop_variations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "code", size: :long + t.datetime "created_at", precision: nil, null: false + t.integer "created_by_id" + t.boolean "inactive", default: true + t.boolean "legacy", default: false + t.string "name" + t.integer "position" + t.datetime "updated_at", precision: nil, null: false + t.integer "variation_id" + t.integer "workshop_id" + t.string "youtube_url" + t.index ["created_by_id"], name: "index_workshop_variations_on_created_by_id" + t.index ["workshop_id"], name: "index_workshop_variations_on_workshop_id" + end + + create_table "workshops", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.text "age_range", size: :long + t.text "age_range_spanish", size: :long + t.string "author_location" + t.text "closing", size: :long + t.text "closing_spanish", size: :long + t.datetime "created_at", precision: nil, null: false + t.text "creation", size: :long + t.text "creation_spanish", size: :long + t.text "demonstration", size: :long + t.text "demonstration_spanish", size: :long + t.text "description", size: :long + t.text "description_spanish", size: :long + t.text "extra_field", size: :medium + t.text "extra_field_spanish", size: :medium + t.boolean "featured", default: false + t.string "filemaker_code" + t.string "full_name" + t.string "header_content_type" + t.string "header_file_name" + t.integer "header_file_size" + t.datetime "header_updated_at", precision: nil + t.boolean "inactive", default: true + t.text "instructions", size: :long + t.text "instructions_spanish", size: :long + t.text "introduction", size: :long + t.text "introduction_spanish", size: :long + t.integer "led_count", default: 0 + t.boolean "legacy", default: false + t.integer "legacy_id" + t.text "materials", size: :long + t.text "materials_spanish", size: :long + t.string "misc1" + t.text "misc1_spanish", size: :long + t.string "misc2" + t.text "misc2_spanish", size: :long + t.text "misc_instructions", size: :long + t.text "misc_instructions_spanish", size: :long + t.integer "month" + t.text "notes", size: :long + t.text "notes_spanish", size: :long + t.text "objective", size: :long + t.text "objective_spanish", size: :long + t.text "opening_circle", size: :long + t.text "opening_circle_spanish", size: :long + t.text "optional_materials", size: :long + t.text "optional_materials_spanish", size: :long + t.string "photo_caption" + t.text "project", size: :long + t.text "project_spanish", size: :long + t.string "pub_issue" + t.boolean "searchable", default: false + t.text "setup", size: :long + t.text "setup_spanish", size: :long + t.string "thumbnail_content_type" + t.string "thumbnail_file_name" + t.integer "thumbnail_file_size" + t.datetime "thumbnail_updated_at", precision: nil + t.integer "time_closing" + t.integer "time_creation" + t.integer "time_demonstration" + t.integer "time_intro" + t.integer "time_opening" + t.integer "time_opening_circle" + t.integer "time_warm_up" + t.text "timeframe", size: :long + t.text "timeframe_spanish", size: :long + t.text "timestamps", size: :long + t.text "tips", size: :long + t.text "tips_spanish", size: :long + t.string "title" + t.datetime "updated_at", precision: nil, null: false + t.integer "user_id" + t.text "visualization", size: :long + t.text "visualization_spanish", size: :long + t.text "warm_up", size: :long + t.text "warm_up_spanish", size: :long + t.integer "windows_type_id" + t.bigint "workshop_idea_id" + t.integer "year" + t.index ["created_at"], name: "index_workshops_on_created_at" + t.index ["inactive", "led_count", "title"], name: "index_workshops_on_inactive_and_led_count_and_title" + t.index ["led_count"], name: "index_workshops_on_led_count" + t.index ["title", "full_name", "objective", "materials", "introduction", "demonstration", "opening_circle", "warm_up", "creation", "closing", "notes", "tips", "misc1", "misc2"], name: "workshop_fullsearch", type: :fulltext + t.index ["title"], name: "index_workshops_on_title", type: :fulltext + t.index ["title"], name: "workshop_fullsearch_title", type: :fulltext + t.index ["user_id"], name: "index_workshops_on_user_id" + t.index ["windows_type_id"], name: "index_workshops_on_windows_type_id" + t.index ["workshop_idea_id"], name: "index_workshops_on_workshop_idea_id" + t.index ["year", "month"], name: "index_workshops_on_year_and_month" + end + + add_foreign_key "action_text_mentions", "action_text_rich_texts" + add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" + add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" + add_foreign_key "age_ranges", "windows_types" + add_foreign_key "banners", "users", column: "created_by_id" + add_foreign_key "banners", "users", column: "updated_by_id" + add_foreign_key "bookmark_annotations", "bookmarks" + add_foreign_key "bookmarks", "users" + add_foreign_key "categories", "metadata" + add_foreign_key "community_news", "projects" + add_foreign_key "community_news", "users", column: "author_id" + add_foreign_key "community_news", "users", column: "created_by_id" + add_foreign_key "community_news", "users", column: "updated_by_id" + add_foreign_key "community_news", "windows_types" + add_foreign_key "contact_methods", "addresses" + add_foreign_key "event_registrations", "events" + add_foreign_key "event_registrations", "users", column: "registrant_id" + add_foreign_key "events", "users", column: "created_by_id" + add_foreign_key "facilitators", "users", column: "created_by_id" + add_foreign_key "facilitators", "users", column: "updated_by_id" + add_foreign_key "form_builders", "windows_types" + add_foreign_key "form_field_answer_options", "answer_options" + add_foreign_key "form_field_answer_options", "form_fields" + add_foreign_key "form_fields", "forms" + add_foreign_key "forms", "form_builders" + add_foreign_key "monthly_reports", "project_users" + add_foreign_key "monthly_reports", "projects" + add_foreign_key "project_users", "projects" + add_foreign_key "project_users", "projects", column: "agency_id" + add_foreign_key "project_users", "users" + add_foreign_key "projects", "locations" + add_foreign_key "projects", "project_statuses" + add_foreign_key "projects", "windows_types" + add_foreign_key "quotable_item_quotes", "quotes" + add_foreign_key "quotes", "workshops" + add_foreign_key "report_form_field_answers", "answer_options" + add_foreign_key "report_form_field_answers", "form_fields" + add_foreign_key "report_form_field_answers", "reports" + add_foreign_key "reports", "projects" + add_foreign_key "reports", "users" + add_foreign_key "reports", "windows_types" + add_foreign_key "resources", "users" + add_foreign_key "resources", "windows_types" + add_foreign_key "resources", "workshops" + add_foreign_key "sectorable_items", "sectors" + add_foreign_key "stories", "facilitators", column: "spotlighted_facilitator_id" + add_foreign_key "stories", "projects" + add_foreign_key "stories", "story_ideas" + add_foreign_key "stories", "users", column: "created_by_id" + add_foreign_key "stories", "users", column: "updated_by_id" + add_foreign_key "stories", "windows_types" + add_foreign_key "stories", "workshops" + add_foreign_key "story_ideas", "projects" + add_foreign_key "story_ideas", "users", column: "created_by_id" + add_foreign_key "story_ideas", "users", column: "updated_by_id" + add_foreign_key "story_ideas", "windows_types" + add_foreign_key "story_ideas", "workshops" + add_foreign_key "user_form_form_fields", "form_fields" + add_foreign_key "user_form_form_fields", "user_forms" + add_foreign_key "user_forms", "forms" + add_foreign_key "user_forms", "users" + add_foreign_key "user_permissions", "permissions" + add_foreign_key "user_permissions", "users" + add_foreign_key "users", "facilitators" + add_foreign_key "users", "projects", column: "agency_id" + add_foreign_key "workshop_age_ranges", "age_ranges" + add_foreign_key "workshop_age_ranges", "workshops" + add_foreign_key "workshop_ideas", "users", column: "created_by_id" + add_foreign_key "workshop_ideas", "users", column: "updated_by_id" + add_foreign_key "workshop_ideas", "windows_types" + add_foreign_key "workshop_logs", "projects" + add_foreign_key "workshop_logs", "users" + add_foreign_key "workshop_logs", "workshops" + add_foreign_key "workshop_resources", "resources" + add_foreign_key "workshop_resources", "workshops" + add_foreign_key "workshop_series_memberships", "workshops", column: "workshop_child_id" + add_foreign_key "workshop_series_memberships", "workshops", column: "workshop_parent_id" + add_foreign_key "workshop_variations", "users", column: "created_by_id" + add_foreign_key "workshop_variations", "workshops" + add_foreign_key "workshops", "users" + add_foreign_key "workshops", "windows_types" + add_foreign_key "workshops", "workshop_ideas" +end \ No newline at end of file From 8862981ae389a8904dfa31f2f4447e83943bdda0 Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Wed, 28 Jan 2026 14:41:18 +0530 Subject: [PATCH 05/10] Revert schema, env sample, and lockfile from upstream main --- .env.sample | 2 +- db/schema.rb | 35 +- package-lock.json | 4185 ++++++++++++++++++++++++++++++++------------- 3 files changed, 3052 insertions(+), 1170 deletions(-) diff --git a/.env.sample b/.env.sample index ba8623456..a6e0f97aa 100644 --- a/.env.sample +++ b/.env.sample @@ -19,4 +19,4 @@ RAILS_ENV=development APP_HOST=localhost:3000 RAILS_SERVE_STATIC_FILES=true ORGANIZATION_NAME=A Window Between Worlds -REPLY_TO_EMAIL=umberto.user@example.com \ No newline at end of file +REPLY_TO_EMAIL=umberto.user@example.com diff --git a/db/schema.rb b/db/schema.rb index 238e36366..88e68b788 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,8 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.1].define(version: 2026_01_20_212705) do -ActiveRecord::Schema[8.1].define(version: 2026_01_25_175620) do +ActiveRecord::Schema[8.1].define(version: 2026_01_27_171722) do create_table "action_text_mentions", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.bigint "action_text_rich_text_id", null: false t.datetime "created_at", null: false @@ -214,15 +213,20 @@ end create_table "categories", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.integer "category_type_id" t.datetime "created_at", precision: nil, null: false t.integer "legacy_id" - t.integer "metadatum_id" t.string "name" t.integer "position", null: false t.boolean "published", default: false t.datetime "updated_at", precision: nil, null: false +<<<<<<< HEAD t.index ["metadatum_id", "position"], name: "index_categories_on_metadatum_id_and_position", unique: true t.index ["metadatum_id"], name: "index_categories_on_metadatum_id" +======= + t.index ["category_type_id", "position"], name: "index_categories_on_category_type_id_and_position", unique: true + t.index ["category_type_id"], name: "index_categories_on_category_type_id" +>>>>>>> 3a5b1077 (Revert schema, env sample, and lockfile from upstream main) end create_table "categorizable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| @@ -238,6 +242,14 @@ t.index ["category_id"], name: "index_categorizable_items_on_category_id" end + create_table "category_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| + t.datetime "created_at", precision: nil, null: false + t.string "legacy_id" + t.string "name" + t.boolean "published", default: false + t.datetime "updated_at", precision: nil, null: false + end + create_table "ckeditor_assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "actual_url" t.integer "assetable_id" @@ -266,6 +278,7 @@ t.string "title" t.datetime "updated_at", null: false t.integer "updated_by_id", null: false + t.boolean "visitor_featured", default: false, null: false t.integer "windows_type_id" t.string "youtube_url" t.index ["author_id"], name: "index_community_news_on_author_id" @@ -313,6 +326,7 @@ t.datetime "start_date", precision: nil t.string "title" t.datetime "updated_at", null: false + t.boolean "visitor_featured", default: false, null: false t.index ["created_by_id"], name: "index_events_on_created_by_id" end @@ -452,14 +466,6 @@ t.integer "workshop_log_id" end - create_table "metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "legacy_id" - t.string "name" - t.boolean "published", default: false - t.datetime "updated_at", precision: nil, null: false - end - create_table "monthly_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.string "best_call_time" t.boolean "call_requested" @@ -667,6 +673,7 @@ t.datetime "updated_at", precision: nil, null: false t.string "url" t.integer "user_id" + t.boolean "visitor_featured", default: false, null: false t.integer "windows_type_id" t.integer "workshop_id" t.index ["user_id"], name: "index_resources_on_user_id" @@ -708,6 +715,7 @@ t.string "title" t.datetime "updated_at", null: false t.integer "updated_by_id", null: false + t.boolean "visitor_featured", default: false, null: false t.string "website_url" t.integer "windows_type_id", null: false t.integer "workshop_id" @@ -1054,6 +1062,7 @@ t.string "title" t.datetime "updated_at", precision: nil, null: false t.integer "user_id" + t.boolean "visitor_featured", default: false, null: false t.text "visualization", size: :long t.text "visualization_spanish", size: :long t.text "warm_up", size: :long @@ -1081,7 +1090,7 @@ add_foreign_key "banners", "users", column: "updated_by_id" add_foreign_key "bookmark_annotations", "bookmarks" add_foreign_key "bookmarks", "users" - add_foreign_key "categories", "metadata" + add_foreign_key "categories", "category_types" add_foreign_key "community_news", "projects" add_foreign_key "community_news", "users", column: "author_id" add_foreign_key "community_news", "users", column: "created_by_id" @@ -1155,4 +1164,4 @@ add_foreign_key "workshops", "users" add_foreign_key "workshops", "windows_types" add_foreign_key "workshops", "workshop_ideas" -end \ No newline at end of file +end diff --git a/package-lock.json b/package-lock.json index 6bad343a5..fe8b52101 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,1156 +1,3029 @@ -# This file is auto-generated from the current state of the database. Instead -# of editing this file, please use the migrations feature of Active Record to -# incrementally modify your database, and then regenerate this schema definition. -# -# This file is the source Rails uses to define your schema when running `bin/rails -# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to -# be faster and is potentially less error prone than running all of your -# migrations from scratch. Old migrations may fail to apply correctly if those -# migrations use external dependencies or application code. -# -# It's strongly recommended that you check this file into your version control system. - -ActiveRecord::Schema[8.1].define(version: 2026_01_20_212705) do - create_table "action_text_mentions", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.bigint "action_text_rich_text_id", null: false - t.datetime "created_at", null: false - t.bigint "mentionable_id", null: false - t.string "mentionable_type", null: false - t.datetime "updated_at", null: false - t.index ["action_text_rich_text_id", "mentionable_type", "mentionable_id"], name: "index_at_mentions_on_rich_text_and_mentionable", unique: true - t.index ["action_text_rich_text_id"], name: "index_action_text_mentions_on_action_text_rich_text_id" - t.index ["mentionable_type", "mentionable_id"], name: "index_action_text_mentions_on_mentionable" - end - - create_table "action_text_rich_texts", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :long - t.datetime "created_at", null: false - t.string "name", null: false - t.text "plain_text_body" - t.bigint "record_id", null: false - t.string "record_type", null: false - t.datetime "updated_at", null: false - t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true - end - - create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.bigint "blob_id", null: false - t.datetime "created_at", precision: nil, null: false - t.string "name", null: false - t.bigint "record_id", null: false - t.string "record_type", null: false - t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" - t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true - end - - create_table "active_storage_blobs", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "aws_key" - t.bigint "byte_size", null: false - t.string "checksum" - t.string "content_type" - t.datetime "created_at", precision: nil, null: false - t.string "filename", null: false - t.string "key", null: false - t.text "metadata", size: :medium - t.string "service_name", null: false - t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true - end - - create_table "active_storage_variant_records", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.bigint "blob_id", null: false - t.string "variation_digest", null: false - t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true - end - - create_table "addresses", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "address_type" - t.bigint "addressable_id" - t.string "addressable_type" - t.string "city", null: false - t.string "country" - t.string "county" - t.datetime "created_at", null: false - t.string "district" - t.boolean "inactive", default: false, null: false - t.integer "la_city_council_district" - t.integer "la_service_planning_area" - t.integer "la_supervisorial_district" - t.string "locality" - t.string "phone" - t.string "state", null: false - t.string "street_address", null: false - t.datetime "updated_at", null: false - t.string "zip_code", null: false - t.index ["addressable_type", "addressable_id"], name: "index_addresses_on_addressable" - end - - create_table "admins", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil - t.datetime "current_sign_in_at", precision: nil - t.string "current_sign_in_ip" - t.string "email", default: "", null: false - t.string "encrypted_password", default: "", null: false - t.string "first_name", default: "", null: false - t.string "last_name", default: "", null: false - t.datetime "last_sign_in_at", precision: nil - t.string "last_sign_in_ip" - t.datetime "remember_created_at", precision: nil - t.datetime "reset_password_sent_at", precision: nil - t.string "reset_password_token" - t.integer "sign_in_count", default: 0, null: false - t.datetime "updated_at", precision: nil - t.index ["email"], name: "index_admins_on_email", unique: true - t.index ["reset_password_token"], name: "index_admins_on_reset_password_token", unique: true - end - - create_table "age_ranges", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.datetime "updated_at", precision: nil, null: false - t.integer "windows_type_id" - t.index ["windows_type_id"], name: "index_age_ranges_on_windows_type_id" - end - - create_table "ahoy_events", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "name" - t.json "properties" - t.datetime "time" - t.bigint "user_id" - t.bigint "visit_id" - t.index ["name", "time"], name: "index_ahoy_events_on_name_and_time" - t.index ["user_id"], name: "index_ahoy_events_on_user_id" - t.index ["visit_id"], name: "index_ahoy_events_on_visit_id" - end - - create_table "ahoy_visits", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "app_version" - t.string "browser" - t.string "city" - t.string "country" - t.string "device_type" - t.string "ip" - t.text "landing_page", size: :medium - t.float "latitude" - t.float "longitude" - t.string "os" - t.string "os_version" - t.string "platform" - t.text "referrer", size: :medium - t.string "referring_domain" - t.string "region" - t.datetime "started_at" - t.text "user_agent", size: :medium - t.bigint "user_id" - t.string "utm_campaign" - t.string "utm_content" - t.string "utm_medium" - t.string "utm_source" - t.string "utm_term" - t.string "visit_token" - t.string "visitor_token" - t.index ["user_id"], name: "index_ahoy_visits_on_user_id" - t.index ["visit_token"], name: "index_ahoy_visits_on_visit_token", unique: true - t.index ["visitor_token", "started_at"], name: "index_ahoy_visits_on_visitor_token_and_started_at" - end - - create_table "answer_options", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.integer "position" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", null: false - t.integer "owner_id" - t.string "owner_type" - t.integer "report_id" - t.string "title" - t.string "type", default: "PrimaryAsset", null: false - t.datetime "updated_at", null: false - t.index ["owner_id"], name: "index_assets_on_owner_id" - t.index ["owner_type"], name: "index_assets_on_owner_type" - t.index ["type"], name: "index_assets_on_type" - end - - create_table "attachments", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "file_content_type" - t.string "file_file_name" - t.integer "file_file_size" - t.datetime "file_updated_at", precision: nil - t.integer "owner_id" - t.string "owner_type" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "banners", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "content", size: :medium - t.datetime "created_at", precision: nil, null: false - t.integer "created_by_id" - t.boolean "show" - t.datetime "updated_at", precision: nil, null: false - t.integer "updated_by_id" - t.index ["created_by_id"], name: "index_banners_on_created_by_id" - t.index ["updated_by_id"], name: "index_banners_on_updated_by_id" - end - - create_table "bookmark_annotations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "annotation", size: :long - t.integer "bookmark_id" - t.datetime "created_at", precision: nil, null: false - t.datetime "updated_at", precision: nil, null: false - t.index ["bookmark_id"], name: "index_bookmark_annotations_on_bookmark_id" - end - - create_table "bookmarks", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "bookmarkable_id" - t.string "bookmarkable_type" - t.datetime "created_at", precision: nil, null: false - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.index ["user_id"], name: "index_bookmarks_on_user_id" - end - - create_table "categories", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "legacy_id" - t.integer "metadatum_id" - t.string "name" - t.integer "position", default: 10, null: false - t.boolean "published", default: false - t.datetime "updated_at", precision: nil, null: false - t.index ["metadatum_id"], name: "index_categories_on_metadatum_id" - end - - create_table "categorizable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "categorizable_id" - t.string "categorizable_type" - t.integer "category_id" - t.datetime "created_at", precision: nil, null: false - t.boolean "inactive", default: true - t.integer "legacy_id" - t.datetime "updated_at", precision: nil, null: false - t.index ["categorizable_type", "categorizable_id"], name: "idx_on_categorizable_type_categorizable_id_ccce65d80c" - t.index ["category_id", "categorizable_type", "categorizable_id"], name: "index_categorizable_items_uniqueness", unique: true - t.index ["category_id"], name: "index_categorizable_items_on_category_id" - end - - create_table "ckeditor_assets", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "actual_url" - t.integer "assetable_id" - t.string "assetable_type", limit: 30 - t.datetime "created_at", precision: nil, null: false - t.string "data_content_type" - t.string "data_file_name", null: false - t.integer "data_file_size" - t.integer "height" - t.string "type", limit: 30 - t.datetime "updated_at", precision: nil, null: false - t.integer "width" - t.index ["assetable_type", "assetable_id"], name: "idx_ckeditor_assetable" - t.index ["assetable_type", "type", "assetable_id"], name: "idx_ckeditor_assetable_type" - end - - create_table "community_news", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "author_id", null: false - t.text "body", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id", null: false - t.boolean "featured" - t.integer "project_id" - t.boolean "published" - t.string "reference_url" - t.string "title" - t.datetime "updated_at", null: false - t.integer "updated_by_id", null: false - t.integer "windows_type_id" - t.string "youtube_url" - t.index ["author_id"], name: "index_community_news_on_author_id" - t.index ["body"], name: "index_community_news_on_body", type: :fulltext - t.index ["created_by_id"], name: "index_community_news_on_created_by_id" - t.index ["project_id"], name: "index_community_news_on_project_id" - t.index ["updated_by_id"], name: "index_community_news_on_updated_by_id" - t.index ["windows_type_id"], name: "index_community_news_on_windows_type_id" - end - - create_table "contact_methods", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.bigint "address_id" - t.string "contact_type" - t.bigint "contactable_id", null: false - t.string "contactable_type", null: false - t.datetime "created_at", null: false - t.boolean "inactive", default: false, null: false - t.boolean "is_primary", default: false, null: false - t.string "kind", null: false - t.datetime "updated_at", null: false - t.string "value", null: false - t.index ["address_id"], name: "index_contact_methods_on_address_id" - t.index ["contactable_type", "contactable_id"], name: "index_contact_methods_on_contactable" - end - - create_table "event_registrations", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", null: false - t.bigint "event_id" - t.integer "registrant_id" - t.datetime "updated_at", null: false - t.index ["event_id"], name: "index_event_registrations_on_event_id" - t.index ["registrant_id", "event_id"], name: "index_event_registrations_on_registrant_id_and_event_id", unique: true - t.index ["registrant_id"], name: "index_event_registrations_on_registrant_id" - end - - create_table "events", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "cost_cents" - t.datetime "created_at", null: false - t.integer "created_by_id" - t.text "description", size: :medium - t.datetime "end_date", precision: nil - t.boolean "featured", default: false, null: false - t.boolean "publicly_visible", default: false, null: false - t.datetime "registration_close_date", precision: nil - t.datetime "start_date", precision: nil - t.string "title" - t.datetime "updated_at", null: false - t.index ["created_by_id"], name: "index_events_on_created_by_id" - end - - create_table "facilitators", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "best_time_to_call" - t.text "bio", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id" - t.date "date_of_birth" - t.string "display_name_preference" - t.string "email" - t.string "email_2" - t.string "email_2_type", default: "personal", null: false - t.string "email_type" - t.string "facebook_url" - t.string "first_name", null: false - t.string "instagram_url" - t.string "last_name", null: false - t.string "linked_in_url" - t.date "member_since" - t.text "notes", size: :medium - t.boolean "profile_is_searchable", default: true, null: false - t.boolean "profile_show_affiliations", default: true, null: false - t.boolean "profile_show_bio", default: true, null: false - t.boolean "profile_show_email", default: true, null: false - t.boolean "profile_show_events_registered", default: true, null: false - t.boolean "profile_show_member_since", default: true, null: false - t.boolean "profile_show_phone", default: true, null: false - t.boolean "profile_show_pronouns", default: true, null: false - t.boolean "profile_show_sectors", default: true, null: false - t.boolean "profile_show_social_media", default: true, null: false - t.boolean "profile_show_stories", default: true, null: false - t.boolean "profile_show_story_ideas", default: true, null: false - t.boolean "profile_show_workshop_ideas", default: true, null: false - t.boolean "profile_show_workshop_logs", default: true, null: false - t.boolean "profile_show_workshop_variations", default: true, null: false - t.boolean "profile_show_workshops", default: true, null: false - t.string "pronouns" - t.string "twitter_url" - t.datetime "updated_at", null: false - t.integer "updated_by_id" - t.string "youtube_url" - t.index ["created_by_id"], name: "index_facilitators_on_created_by_id" - t.index ["updated_by_id"], name: "index_facilitators_on_updated_by_id" - end - - create_table "faqs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "answer", size: :long - t.datetime "created_at", precision: nil, null: false - t.boolean "inactive" - t.integer "position", null: false - t.string "question" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "footers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "adult_program" - t.string "children_program" - t.datetime "created_at", precision: nil, null: false - t.string "general_questions" - t.string "phone" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "form_builders", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.text "description", size: :long - t.string "name" - t.integer "owner_type" - t.datetime "updated_at", precision: nil, null: false - t.integer "windows_type_id" - t.index ["windows_type_id"], name: "index_form_builders_on_windows_type_id" - end - - create_table "form_field_answer_options", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "answer_option_id" - t.datetime "created_at", precision: nil, null: false - t.integer "form_field_id" - t.datetime "updated_at", precision: nil, null: false - t.index ["answer_option_id"], name: "index_form_field_answer_options_on_answer_option_id" - t.index ["form_field_id"], name: "index_form_field_answer_options_on_form_field_id" - end - - create_table "form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "answer_datatype" - t.integer "answer_type" - t.datetime "created_at", precision: nil, null: false - t.integer "form_id" - t.string "instructional_hint" - t.boolean "is_required", default: true - t.integer "parent_id" - t.integer "position" - t.string "question" - t.integer "status", default: 1 - t.datetime "updated_at", precision: nil, null: false - t.index ["form_id"], name: "index_form_fields_on_form_id" - end - - create_table "forms", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "form_builder_id" - t.integer "owner_id" - t.string "owner_type" - t.datetime "updated_at", precision: nil, null: false - t.index ["form_builder_id"], name: "index_forms_on_form_builder_id" - end - - create_table "images", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "file_content_type" - t.string "file_file_name" - t.integer "file_file_size" - t.datetime "file_updated_at", precision: nil - t.integer "owner_id" - t.string "owner_type" - t.integer "report_id" - t.string "type", default: "Images::GalleryImage", null: false - t.datetime "updated_at", precision: nil, null: false - t.index ["owner_id"], name: "index_images_on_owner_id" - t.index ["type"], name: "index_images_on_type" - end - - create_table "locations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "city" - t.string "country" - t.datetime "created_at", precision: nil, null: false - t.string "state" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "media_files", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "file_content_type" - t.string "file_file_name" - t.integer "file_file_size" - t.datetime "file_updated_at", precision: nil - t.integer "report_id" - t.integer "workshop_log_id" - end - - create_table "metadata", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "legacy_id" - t.string "name" - t.boolean "published", default: false - t.datetime "updated_at", precision: nil, null: false - end - - create_table "monthly_reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "best_call_time" - t.boolean "call_requested" - t.text "comments", size: :long - t.datetime "created_at", precision: nil, null: false - t.text "goals", size: :long - t.text "goals_reached", size: :long - t.boolean "mail_evaluations" - t.string "month" - t.text "most_challenging", size: :long - t.text "most_effective", size: :long - t.string "name" - t.string "num_new_participants" - t.string "num_ongoing_participants" - t.string "phone" - t.string "position" - t.integer "project_id" - t.integer "project_user_id" - t.datetime "updated_at", precision: nil, null: false - t.index ["project_id"], name: "index_monthly_reports_on_project_id" - t.index ["project_user_id"], name: "index_monthly_reports_on_project_user_id" - end - - create_table "notifications", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.datetime "delivered_at" - t.text "email_body_html", size: :medium - t.text "email_body_text", size: :medium - t.text "email_subject", size: :medium - t.string "kind", null: false - t.integer "noticeable_id" - t.string "noticeable_type" - t.integer "notification_type" - t.string "recipient_email", null: false - t.string "recipient_role", null: false - t.datetime "updated_at", precision: nil, null: false - t.index ["kind"], name: "index_notifications_on_kind" - t.index ["noticeable_type", "noticeable_id"], name: "index_notifications_on_noticeable_type_and_noticeable_id" - end - - create_table "payments", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "amount_cents", null: false - t.datetime "created_at", null: false - t.string "currency", default: "usd", null: false - t.string "failure_code" - t.string "failure_message" - t.bigint "payable_id", null: false - t.string "payable_type", null: false - t.bigint "payer_id", null: false - t.string "payer_type", null: false - t.string "status", null: false - t.string "stripe_charge_id" - t.json "stripe_metadata" - t.string "stripe_payment_intent_id", null: false - t.datetime "updated_at", null: false - t.index ["payable_type", "payable_id", "status"], name: "index_payments_on_payable_type_and_payable_id_and_status" - t.index ["payable_type", "payable_id"], name: "index_payments_on_payable" - t.index ["payable_type", "payable_id"], name: "index_payments_on_payable_type_and_payable_id" - t.index ["payer_type", "payer_id"], name: "index_payments_on_payer" - t.index ["payer_type", "payer_id"], name: "index_payments_on_payer_type_and_payer_id" - t.index ["stripe_charge_id"], name: "index_payments_on_stripe_charge_id" - t.index ["stripe_payment_intent_id"], name: "index_payments_on_stripe_payment_intent_id", unique: true - end - - create_table "permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "legacy_id" - t.string "security_cat" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "project_obligations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "project_statuses", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "project_users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "agency_id" - t.datetime "created_at", precision: nil, null: false - t.string "filemaker_code" - t.boolean "inactive", default: false, null: false - t.integer "position" - t.integer "project_id" - t.string "title" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.index ["agency_id"], name: "index_project_users_on_agency_id" - t.index ["project_id"], name: "index_project_users_on_project_id" - t.index ["user_id"], name: "index_project_users_on_user_id" - end - - create_table "projects", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "agency_type" - t.string "agency_type_other" - t.datetime "created_at", precision: nil, null: false - t.text "description", size: :long - t.date "end_date" - t.string "filemaker_code" - t.boolean "inactive", default: false - t.string "internal_id" - t.boolean "legacy", default: false - t.integer "legacy_id" - t.integer "location_id" - t.string "mission_vision_values" - t.string "name" - t.text "notes", size: :long - t.integer "project_status_id" - t.date "start_date" - t.datetime "updated_at", precision: nil, null: false - t.string "website_url" - t.integer "windows_type_id" - t.index ["location_id"], name: "index_projects_on_location_id" - t.index ["project_status_id"], name: "index_projects_on_project_status_id" - t.index ["windows_type_id"], name: "index_projects_on_windows_type_id" - end - - create_table "quotable_item_quotes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "legacy_id" - t.integer "quotable_id" - t.string "quotable_type" - t.integer "quote_id" - t.datetime "updated_at", precision: nil, null: false - t.index ["quote_id"], name: "index_quotable_item_quotes_on_quote_id" - end - - create_table "quotes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "age" - t.datetime "created_at", precision: nil, null: false - t.string "gender", limit: 1 - t.boolean "inactive", default: true - t.boolean "legacy", default: false - t.integer "legacy_id" - t.text "quote", size: :long - t.string "speaker_name" - t.datetime "updated_at", precision: nil, null: false - t.integer "workshop_id" - t.index ["workshop_id"], name: "index_quotes_on_workshop_id" - end - - create_table "report_form_field_answers", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "answer", size: :long - t.integer "answer_option_id" - t.datetime "created_at", precision: nil - t.integer "form_field_id" - t.integer "report_id" - t.datetime "updated_at", precision: nil - t.index ["answer_option_id"], name: "index_report_form_field_answers_on_answer_option_id" - t.index ["form_field_id"], name: "index_report_form_field_answers_on_form_field_id" - t.index ["report_id"], name: "index_report_form_field_answers_on_report_id" - end - - create_table "reports", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "adults_first_time", default: 0 - t.integer "adults_ongoing", default: 0 - t.integer "children_first_time", default: 0 - t.integer "children_ongoing", default: 0 - t.datetime "created_at", precision: nil, null: false - t.date "date" - t.string "form_file_content_type" - t.string "form_file_file_name" - t.integer "form_file_file_size" - t.datetime "form_file_updated_at", precision: nil - t.boolean "has_attachment", default: false - t.string "other_description" - t.integer "owner_id" - t.string "owner_type" - t.integer "project_id" - t.integer "rating", default: 0 - t.integer "teens_first_time", default: 0 - t.integer "teens_ongoing", default: 0 - t.string "type" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.integer "windows_type_id" - t.integer "workshop_id" - t.string "workshop_name" - t.index ["project_id"], name: "index_reports_on_project_id" - t.index ["user_id"], name: "index_reports_on_user_id" - t.index ["windows_type_id"], name: "index_reports_on_windows_type_id" - end - - create_table "resources", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "agency" - t.string "author" - t.datetime "created_at", precision: nil, null: false - t.boolean "featured", default: false - t.boolean "female", default: false - t.string "filemaker_code" - t.boolean "inactive", default: true - t.string "kind" - t.boolean "legacy" - t.integer "legacy_id" - t.boolean "male", default: false - t.integer "position" - t.text "text", size: :long - t.string "title" - t.datetime "updated_at", precision: nil, null: false - t.string "url" - t.integer "user_id" - t.integer "windows_type_id" - t.integer "workshop_id" - t.index ["user_id"], name: "index_resources_on_user_id" - t.index ["windows_type_id"], name: "index_resources_on_windows_type_id" - t.index ["workshop_id"], name: "index_resources_on_workshop_id" - end - - create_table "sectorable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.boolean "inactive", default: true - t.boolean "is_leader", default: false, null: false - t.integer "sector_id" - t.integer "sectorable_id" - t.string "sectorable_type" - t.datetime "updated_at", precision: nil, null: false - t.index ["sector_id", "sectorable_type", "sectorable_id"], name: "index_sectorable_items_uniqueness", unique: true - t.index ["sector_id"], name: "index_sectorable_items_on_sector_id" - t.index ["sectorable_type", "sectorable_id"], name: "index_sectorable_items_on_sectorable_type_and_sectorable_id" - end - - create_table "sectors", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.string "name" - t.boolean "published", default: false - t.datetime "updated_at", precision: nil, null: false - end - - create_table "stories", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id", null: false - t.string "external_workshop_title" - t.boolean "featured", default: false, null: false - t.boolean "permission_given" - t.integer "project_id" - t.boolean "published", default: false, null: false - t.integer "spotlighted_facilitator_id" - t.bigint "story_idea_id" - t.string "title" - t.datetime "updated_at", null: false - t.integer "updated_by_id", null: false - t.string "website_url" - t.integer "windows_type_id", null: false - t.integer "workshop_id" - t.string "youtube_url" - t.index ["created_by_id"], name: "index_stories_on_created_by_id" - t.index ["project_id"], name: "index_stories_on_project_id" - t.index ["published"], name: "index_stories_on_published" - t.index ["spotlighted_facilitator_id"], name: "index_stories_on_spotlighted_facilitator_id" - t.index ["story_idea_id"], name: "index_stories_on_story_idea_id" - t.index ["updated_by_id"], name: "index_stories_on_updated_by_id" - t.index ["windows_type_id"], name: "index_stories_on_windows_type_id" - t.index ["workshop_id"], name: "index_stories_on_workshop_id" - end - - create_table "story_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id", null: false - t.string "external_workshop_title" - t.boolean "permission_given" - t.integer "project_id", null: false - t.string "publish_preferences" - t.string "title" - t.datetime "updated_at", null: false - t.integer "updated_by_id", null: false - t.integer "windows_type_id", null: false - t.integer "workshop_id" - t.string "youtube_url" - t.index ["created_by_id"], name: "index_story_ideas_on_created_by_id" - t.index ["project_id"], name: "index_story_ideas_on_project_id" - t.index ["updated_by_id"], name: "index_story_ideas_on_updated_by_id" - t.index ["windows_type_id"], name: "index_story_ideas_on_windows_type_id" - t.index ["workshop_id"], name: "index_story_ideas_on_workshop_id" - end - - create_table "tutorials", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "body", size: :medium - t.datetime "created_at", null: false - t.boolean "featured", default: false, null: false - t.integer "position", default: 10, null: false - t.boolean "published", default: false, null: false - t.string "title" - t.datetime "updated_at", null: false - t.string "youtube_url" - t.index ["featured"], name: "index_tutorials_on_featured" - t.index ["published"], name: "index_tutorials_on_published" - t.index ["title"], name: "index_tutorials_on_title" - end - - create_table "user_form_form_fields", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "form_field_id" - t.text "text", size: :long - t.datetime "updated_at", precision: nil, null: false - t.integer "user_form_id" - t.index ["form_field_id"], name: "index_user_form_form_fields_on_form_field_id" - t.index ["user_form_id"], name: "index_user_form_form_fields_on_user_form_id" - end - - create_table "user_forms", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "form_id" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.index ["form_id"], name: "index_user_forms_on_form_id" - t.index ["user_id"], name: "index_user_forms_on_user_id" - end - - create_table "user_permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "permission_id" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.index ["permission_id"], name: "index_user_permissions_on_permission_id" - t.index ["user_id"], name: "index_user_permissions_on_user_id" - end - - create_table "users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.string "address" - t.string "address2" - t.integer "agency_id" - t.string "avatar_content_type" - t.string "avatar_file_name" - t.integer "avatar_file_size" - t.datetime "avatar_updated_at", precision: nil - t.string "best_time_to_call" - t.date "birthday" - t.string "city" - t.string "city2" - t.text "comment", size: :long - t.datetime "confirmation_sent_at" - t.string "confirmation_token" - t.boolean "confirmed", default: true - t.datetime "confirmed_at" - t.datetime "created_at", precision: nil - t.datetime "current_sign_in_at", precision: nil - t.string "current_sign_in_ip" - t.string "email", default: "", null: false - t.string "email_type", default: "work", null: false - t.string "encrypted_password", default: "", null: false - t.integer "facilitator_id" - t.integer "failed_attempts", default: 0, null: false - t.string "first_name", default: "" - t.boolean "inactive", default: false - t.string "last_name", default: "" - t.datetime "last_sign_in_at", precision: nil - t.string "last_sign_in_ip" - t.boolean "legacy", default: false - t.integer "legacy_id" - t.datetime "locked_at" - t.text "notes", size: :long - t.string "phone" - t.string "phone2" - t.string "phone3" - t.integer "primary_address" - t.datetime "remember_created_at", precision: nil - t.datetime "reset_password_sent_at", precision: nil - t.string "reset_password_token" - t.integer "sign_in_count", default: 0, null: false - t.string "state" - t.string "state2" - t.string "subscribecode" - t.boolean "super_user", default: false - t.string "unconfirmed_email" - t.string "unlock_token" - t.datetime "updated_at", precision: nil - t.string "zip" - t.string "zip2" - t.index ["agency_id"], name: "index_users_on_agency_id" - t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true - t.index ["email"], name: "index_users_on_email", unique: true - t.index ["facilitator_id"], name: "index_users_on_facilitator_id" - t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true - t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true - end - - create_table "windows_types", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "legacy_id" - t.string "name" - t.string "short_name" - t.datetime "updated_at", precision: nil, null: false - end - - create_table "workshop_age_ranges", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.integer "age_range_id" - t.datetime "created_at", precision: nil, null: false - t.datetime "updated_at", precision: nil, null: false - t.integer "workshop_id" - t.index ["age_range_id"], name: "index_workshop_age_ranges_on_age_range_id" - t.index ["workshop_id"], name: "index_workshop_age_ranges_on_workshop_id" - end - - create_table "workshop_ideas", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "age_range", size: :medium - t.text "age_range_spanish", size: :medium - t.text "closing", size: :medium - t.text "closing_spanish", size: :medium - t.datetime "created_at", null: false - t.integer "created_by_id", null: false - t.text "creation", size: :medium - t.text "creation_spanish", size: :medium - t.text "demonstration", size: :medium - t.text "demonstration_spanish", size: :medium - t.text "description", size: :medium - t.text "description_spanish", size: :medium - t.text "instructions", size: :medium - t.text "instructions_spanish", size: :medium - t.text "introduction", size: :medium - t.text "introduction_spanish", size: :medium - t.text "materials", size: :medium - t.text "materials_spanish", size: :medium - t.text "misc_instructions_spanish", size: :medium - t.text "notes", size: :medium - t.text "notes_spanish", size: :medium - t.text "objective", size: :medium - t.text "objective_spanish", size: :medium - t.text "opening_circle", size: :medium - t.text "opening_circle_spanish", size: :medium - t.text "optional_materials", size: :medium - t.text "optional_materials_spanish", size: :medium - t.text "setup", size: :medium - t.text "setup_spanish", size: :medium - t.text "staff_notes", size: :medium - t.integer "time_closing" - t.integer "time_creation" - t.integer "time_demonstration" - t.integer "time_hours" - t.integer "time_intro" - t.integer "time_minutes" - t.integer "time_opening" - t.integer "time_opening_circle" - t.integer "time_warm_up" - t.text "timeframe", size: :medium - t.text "timeframe_spanish", size: :medium - t.text "tips", size: :medium - t.text "tips_spanish", size: :medium - t.string "title" - t.datetime "updated_at", null: false - t.integer "updated_by_id", null: false - t.text "visualization", size: :medium - t.text "visualization_spanish", size: :medium - t.text "warm_up", size: :medium - t.text "warm_up_spanish", size: :medium - t.integer "windows_type_id", null: false - t.index ["created_by_id"], name: "index_workshop_ideas_on_created_by_id" - t.index ["updated_by_id"], name: "index_workshop_ideas_on_updated_by_id" - t.index ["windows_type_id"], name: "index_workshop_ideas_on_windows_type_id" - end - - create_table "workshop_logs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "challenges", size: :long - t.text "comments", size: :long - t.datetime "created_at", precision: nil, null: false - t.date "date" - t.text "differences", size: :long - t.boolean "is_embodied_art_workshop", default: false - t.boolean "lead_similar" - t.integer "num_participants_first_time", default: 0 - t.integer "num_participants_on_going", default: 0 - t.integer "project_id" - t.text "questions", size: :long - t.integer "rating", default: 0 - t.text "reaction", size: :long - t.text "similarities", size: :long - t.text "successes", size: :long - t.text "suggestions", size: :long - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.integer "workshop_id" - t.index ["project_id"], name: "index_workshop_logs_on_project_id" - t.index ["user_id"], name: "index_workshop_logs_on_user_id" - t.index ["workshop_id"], name: "index_workshop_logs_on_workshop_id" - end - - create_table "workshop_resources", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", precision: nil, null: false - t.integer "resource_id" - t.datetime "updated_at", precision: nil, null: false - t.integer "workshop_id" - t.index ["resource_id"], name: "index_workshop_resources_on_resource_id" - t.index ["workshop_id"], name: "index_workshop_resources_on_workshop_id" - end - - create_table "workshop_series_memberships", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.datetime "created_at", null: false - t.integer "position", default: 1, null: false - t.string "series_description" - t.string "series_description_spanish" - t.string "theme_name" - t.datetime "updated_at", null: false - t.integer "workshop_child_id", null: false - t.integer "workshop_parent_id", null: false - t.index ["workshop_child_id"], name: "fk_rails_c3357d1053" - t.index ["workshop_parent_id", "workshop_child_id"], name: "index_workshop_series_memberships_on_parent_and_child", unique: true - end - - create_table "workshop_variations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "code", size: :long - t.datetime "created_at", precision: nil, null: false - t.integer "created_by_id" - t.boolean "inactive", default: true - t.boolean "legacy", default: false - t.string "name" - t.integer "position" - t.datetime "updated_at", precision: nil, null: false - t.integer "variation_id" - t.integer "workshop_id" - t.string "youtube_url" - t.index ["created_by_id"], name: "index_workshop_variations_on_created_by_id" - t.index ["workshop_id"], name: "index_workshop_variations_on_workshop_id" - end - - create_table "workshops", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| - t.text "age_range", size: :long - t.text "age_range_spanish", size: :long - t.string "author_location" - t.text "closing", size: :long - t.text "closing_spanish", size: :long - t.datetime "created_at", precision: nil, null: false - t.text "creation", size: :long - t.text "creation_spanish", size: :long - t.text "demonstration", size: :long - t.text "demonstration_spanish", size: :long - t.text "description", size: :long - t.text "description_spanish", size: :long - t.text "extra_field", size: :medium - t.text "extra_field_spanish", size: :medium - t.boolean "featured", default: false - t.string "filemaker_code" - t.string "full_name" - t.string "header_content_type" - t.string "header_file_name" - t.integer "header_file_size" - t.datetime "header_updated_at", precision: nil - t.boolean "inactive", default: true - t.text "instructions", size: :long - t.text "instructions_spanish", size: :long - t.text "introduction", size: :long - t.text "introduction_spanish", size: :long - t.integer "led_count", default: 0 - t.boolean "legacy", default: false - t.integer "legacy_id" - t.text "materials", size: :long - t.text "materials_spanish", size: :long - t.string "misc1" - t.text "misc1_spanish", size: :long - t.string "misc2" - t.text "misc2_spanish", size: :long - t.text "misc_instructions", size: :long - t.text "misc_instructions_spanish", size: :long - t.integer "month" - t.text "notes", size: :long - t.text "notes_spanish", size: :long - t.text "objective", size: :long - t.text "objective_spanish", size: :long - t.text "opening_circle", size: :long - t.text "opening_circle_spanish", size: :long - t.text "optional_materials", size: :long - t.text "optional_materials_spanish", size: :long - t.string "photo_caption" - t.text "project", size: :long - t.text "project_spanish", size: :long - t.string "pub_issue" - t.boolean "searchable", default: false - t.text "setup", size: :long - t.text "setup_spanish", size: :long - t.string "thumbnail_content_type" - t.string "thumbnail_file_name" - t.integer "thumbnail_file_size" - t.datetime "thumbnail_updated_at", precision: nil - t.integer "time_closing" - t.integer "time_creation" - t.integer "time_demonstration" - t.integer "time_intro" - t.integer "time_opening" - t.integer "time_opening_circle" - t.integer "time_warm_up" - t.text "timeframe", size: :long - t.text "timeframe_spanish", size: :long - t.text "timestamps", size: :long - t.text "tips", size: :long - t.text "tips_spanish", size: :long - t.string "title" - t.datetime "updated_at", precision: nil, null: false - t.integer "user_id" - t.text "visualization", size: :long - t.text "visualization_spanish", size: :long - t.text "warm_up", size: :long - t.text "warm_up_spanish", size: :long - t.integer "windows_type_id" - t.bigint "workshop_idea_id" - t.integer "year" - t.index ["created_at"], name: "index_workshops_on_created_at" - t.index ["inactive", "led_count", "title"], name: "index_workshops_on_inactive_and_led_count_and_title" - t.index ["led_count"], name: "index_workshops_on_led_count" - t.index ["title", "full_name", "objective", "materials", "introduction", "demonstration", "opening_circle", "warm_up", "creation", "closing", "notes", "tips", "misc1", "misc2"], name: "workshop_fullsearch", type: :fulltext - t.index ["title"], name: "index_workshops_on_title", type: :fulltext - t.index ["title"], name: "workshop_fullsearch_title", type: :fulltext - t.index ["user_id"], name: "index_workshops_on_user_id" - t.index ["windows_type_id"], name: "index_workshops_on_windows_type_id" - t.index ["workshop_idea_id"], name: "index_workshops_on_workshop_idea_id" - t.index ["year", "month"], name: "index_workshops_on_year_and_month" - end - - add_foreign_key "action_text_mentions", "action_text_rich_texts" - add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" - add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" - add_foreign_key "age_ranges", "windows_types" - add_foreign_key "banners", "users", column: "created_by_id" - add_foreign_key "banners", "users", column: "updated_by_id" - add_foreign_key "bookmark_annotations", "bookmarks" - add_foreign_key "bookmarks", "users" - add_foreign_key "categories", "metadata" - add_foreign_key "community_news", "projects" - add_foreign_key "community_news", "users", column: "author_id" - add_foreign_key "community_news", "users", column: "created_by_id" - add_foreign_key "community_news", "users", column: "updated_by_id" - add_foreign_key "community_news", "windows_types" - add_foreign_key "contact_methods", "addresses" - add_foreign_key "event_registrations", "events" - add_foreign_key "event_registrations", "users", column: "registrant_id" - add_foreign_key "events", "users", column: "created_by_id" - add_foreign_key "facilitators", "users", column: "created_by_id" - add_foreign_key "facilitators", "users", column: "updated_by_id" - add_foreign_key "form_builders", "windows_types" - add_foreign_key "form_field_answer_options", "answer_options" - add_foreign_key "form_field_answer_options", "form_fields" - add_foreign_key "form_fields", "forms" - add_foreign_key "forms", "form_builders" - add_foreign_key "monthly_reports", "project_users" - add_foreign_key "monthly_reports", "projects" - add_foreign_key "project_users", "projects" - add_foreign_key "project_users", "projects", column: "agency_id" - add_foreign_key "project_users", "users" - add_foreign_key "projects", "locations" - add_foreign_key "projects", "project_statuses" - add_foreign_key "projects", "windows_types" - add_foreign_key "quotable_item_quotes", "quotes" - add_foreign_key "quotes", "workshops" - add_foreign_key "report_form_field_answers", "answer_options" - add_foreign_key "report_form_field_answers", "form_fields" - add_foreign_key "report_form_field_answers", "reports" - add_foreign_key "reports", "projects" - add_foreign_key "reports", "users" - add_foreign_key "reports", "windows_types" - add_foreign_key "resources", "users" - add_foreign_key "resources", "windows_types" - add_foreign_key "resources", "workshops" - add_foreign_key "sectorable_items", "sectors" - add_foreign_key "stories", "facilitators", column: "spotlighted_facilitator_id" - add_foreign_key "stories", "projects" - add_foreign_key "stories", "story_ideas" - add_foreign_key "stories", "users", column: "created_by_id" - add_foreign_key "stories", "users", column: "updated_by_id" - add_foreign_key "stories", "windows_types" - add_foreign_key "stories", "workshops" - add_foreign_key "story_ideas", "projects" - add_foreign_key "story_ideas", "users", column: "created_by_id" - add_foreign_key "story_ideas", "users", column: "updated_by_id" - add_foreign_key "story_ideas", "windows_types" - add_foreign_key "story_ideas", "workshops" - add_foreign_key "user_form_form_fields", "form_fields" - add_foreign_key "user_form_form_fields", "user_forms" - add_foreign_key "user_forms", "forms" - add_foreign_key "user_forms", "users" - add_foreign_key "user_permissions", "permissions" - add_foreign_key "user_permissions", "users" - add_foreign_key "users", "facilitators" - add_foreign_key "users", "projects", column: "agency_id" - add_foreign_key "workshop_age_ranges", "age_ranges" - add_foreign_key "workshop_age_ranges", "workshops" - add_foreign_key "workshop_ideas", "users", column: "created_by_id" - add_foreign_key "workshop_ideas", "users", column: "updated_by_id" - add_foreign_key "workshop_ideas", "windows_types" - add_foreign_key "workshop_logs", "projects" - add_foreign_key "workshop_logs", "users" - add_foreign_key "workshop_logs", "workshops" - add_foreign_key "workshop_resources", "resources" - add_foreign_key "workshop_resources", "workshops" - add_foreign_key "workshop_series_memberships", "workshops", column: "workshop_child_id" - add_foreign_key "workshop_series_memberships", "workshops", column: "workshop_parent_id" - add_foreign_key "workshop_variations", "users", column: "created_by_id" - add_foreign_key "workshop_variations", "workshops" - add_foreign_key "workshops", "users" - add_foreign_key "workshops", "windows_types" - add_foreign_key "workshops", "workshop_ideas" -end \ No newline at end of file +{ + "name": "awbw", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@fortawesome/fontawesome-free": "^7.0.1", + "@hotwired/stimulus": "^3.2.2", + "@hotwired/turbo-rails": "^8.0.18", + "@rails/actiontext": "^8.1.100", + "@rails/request.js": "^0.0.12", + "@tailwindcss/vite": "^4.1.13", + "@tiptap/extension-horizontal-rule": "^3.14.0", + "@tiptap/extension-mention": "^3.15.3", + "@tiptap/extension-table": "^3.13.0", + "@tiptap/extension-table-cell": "^3.13.0", + "@tiptap/extension-table-header": "^3.13.0", + "@tiptap/extension-table-row": "^3.13.0", + "@tiptap/extension-text-align": "^3.13.0", + "@tiptap/extension-youtube": "^3.13.0", + "@tiptap/suggestion": "^3.15.3", + "from": "^0.1.7", + "rhino-editor": "^0.18.0", + "sortablejs": "^1.15.6", + "swiper": "^12.0.3", + "tailwindcss": "^4.1.13", + "tippy.js": "^6.3.7", + "trix": "^2.1.15", + "vite-plugin-rails": "^0.5.0" + }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.19", + "vite": "^5.4.20", + "vite-plugin-ruby": "^5.1.1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.0.1.tgz", + "integrity": "sha512-RLmb9U6H2rJDnGxEqXxzy7ANPrQz7WK2/eTjdZqyU9uRU5W+FkAec9uU5gTYzFBH7aoXIw2WTJSCJR4KPlReQw==", + "license": "(CC-BY-4.0 AND OFL-1.1 AND MIT)", + "engines": { + "node": ">=6" + } + }, + "node_modules/@hotwired/stimulus": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@hotwired/stimulus/-/stimulus-3.2.2.tgz", + "integrity": "sha512-eGeIqNOQpXoPAIP7tC1+1Yc1yl1xnwYqg+3mzqxyrbE5pg5YFBZcA6YoTiByJB6DKAEsiWtl6tjTJS4IYtbB7A==", + "license": "MIT" + }, + "node_modules/@hotwired/turbo": { + "version": "8.0.18", + "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-8.0.18.tgz", + "integrity": "sha512-dG0N7khQsP8sujclodQE3DYkI4Lq7uKA04fhT0DCC/DwMgn4T4WM3aji6EC6+iCfABQeJncY0SraXqVeOq0vvQ==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@hotwired/turbo-rails": { + "version": "8.0.18", + "resolved": "https://registry.npmjs.org/@hotwired/turbo-rails/-/turbo-rails-8.0.18.tgz", + "integrity": "sha512-iRxd922VSTVH0NzlLDx9T9S8Ep0NPnrLCKva31WIMLNApJgUZKa/a90EFiBa2G6Do+x4xuKZk53dlweiwTyXkQ==", + "license": "MIT", + "dependencies": { + "@hotwired/turbo": "^8.0.18", + "@rails/actioncable": ">=7.0" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", + "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==", + "license": "BSD-3-Clause" + }, + "node_modules/@lit/reactive-element": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", + "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@open-wc/dedupe-mixin": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", + "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==", + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rails/actioncable": { + "version": "8.0.300", + "resolved": "https://registry.npmjs.org/@rails/actioncable/-/actioncable-8.0.300.tgz", + "integrity": "sha512-X+jxLnyYciTciEeM9crFFsR6DCodCsnoQIzv4hEST6Lx1rEBEjNQbBopnyDT4gr7lBeHJNfb6fEcvZuWFxUSQg==", + "license": "MIT" + }, + "node_modules/@rails/actiontext": { + "version": "8.1.100", + "resolved": "https://registry.npmjs.org/@rails/actiontext/-/actiontext-8.1.100.tgz", + "integrity": "sha512-gnLK1HgGCmmVGY40hCiAJ4RwGALwRmiRzqyht6fiM/hrQnul278CqCg9jwV2IQOo7+jMbktGx2O9luGUzayQIA==", + "license": "MIT", + "dependencies": { + "@rails/activestorage": ">= 8.1.0-alpha" + }, + "peerDependencies": { + "trix": "^2.0.0" + } + }, + "node_modules/@rails/activestorage": { + "version": "8.1.100", + "resolved": "https://registry.npmjs.org/@rails/activestorage/-/activestorage-8.1.100.tgz", + "integrity": "sha512-rlZg23KYT7JFYXl1tj1WD9nm/yvtUvZT6pzNMVX+HaOjPyGq8xpEv1ADrrhawkbMktKxRj3xDVZ3d/qy0akHvw==", + "license": "MIT", + "dependencies": { + "spark-md5": "^3.0.1" + } + }, + "node_modules/@rails/request.js": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@rails/request.js/-/request.js-0.0.12.tgz", + "integrity": "sha512-g3//JBja1s04Zflj7IoMLQuXza9i4ZvtLmm0r0dMwh1QQUs6rL2iKUOGGyERfLsd81SnXC5ucfVV//rtsDlEEA==", + "license": "MIT" + }, + "node_modules/@remirror/core-constants": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", + "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.1.tgz", + "integrity": "sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.1.tgz", + "integrity": "sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.1.tgz", + "integrity": "sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.1.tgz", + "integrity": "sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.1.tgz", + "integrity": "sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.1.tgz", + "integrity": "sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.1.tgz", + "integrity": "sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.1.tgz", + "integrity": "sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.1.tgz", + "integrity": "sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.1.tgz", + "integrity": "sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.1.tgz", + "integrity": "sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.1.tgz", + "integrity": "sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.1.tgz", + "integrity": "sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.1.tgz", + "integrity": "sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.1.tgz", + "integrity": "sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.1.tgz", + "integrity": "sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.1.tgz", + "integrity": "sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.1.tgz", + "integrity": "sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.1.tgz", + "integrity": "sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.1.tgz", + "integrity": "sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz", + "integrity": "sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.13.tgz", + "integrity": "sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.5.1", + "lightningcss": "1.30.1", + "magic-string": "^0.30.18", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.13" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.13.tgz", + "integrity": "sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.13", + "@tailwindcss/oxide-darwin-arm64": "4.1.13", + "@tailwindcss/oxide-darwin-x64": "4.1.13", + "@tailwindcss/oxide-freebsd-x64": "4.1.13", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.13", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.13", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.13", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.13", + "@tailwindcss/oxide-linux-x64-musl": "4.1.13", + "@tailwindcss/oxide-wasm32-wasi": "4.1.13", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.13", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.13" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.13.tgz", + "integrity": "sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.13.tgz", + "integrity": "sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.13.tgz", + "integrity": "sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.13.tgz", + "integrity": "sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.13.tgz", + "integrity": "sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.13.tgz", + "integrity": "sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.13.tgz", + "integrity": "sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.13.tgz", + "integrity": "sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.13.tgz", + "integrity": "sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.13.tgz", + "integrity": "sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.5", + "@emnapi/runtime": "^1.4.5", + "@emnapi/wasi-threads": "^1.0.4", + "@napi-rs/wasm-runtime": "^0.2.12", + "@tybys/wasm-util": "^0.10.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.13.tgz", + "integrity": "sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.13.tgz", + "integrity": "sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz", + "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.13.tgz", + "integrity": "sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.13", + "@tailwindcss/oxide": "4.1.13", + "tailwindcss": "4.1.13" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" + } + }, + "node_modules/@tiptap/core": { + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.15.3.tgz", + "integrity": "sha512-bmXydIHfm2rEtGju39FiQNfzkFx9CDvJe+xem1dgEZ2P6Dj7nQX9LnA1ZscW7TuzbBRkL5p3dwuBIi3f62A66A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/pm": "^3.15.3" + } + }, + "node_modules/@tiptap/extension-blockquote": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.13.0.tgz", + "integrity": "sha512-K1z/PAIIwEmiWbzrP//4cC7iG1TZknDlF1yb42G7qkx2S2X4P0NiqX7sKOej3yqrPjKjGwPujLMSuDnCF87QkQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-bold": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.13.0.tgz", + "integrity": "sha512-VYiDN9EEwR6ShaDLclG8mphkb/wlIzqfk7hxaKboq1G+NSDj8PcaSI9hldKKtTCLeaSNu6UR5nkdu/YHdzYWTw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-bullet-list": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.13.0.tgz", + "integrity": "sha512-fFQmmEUoPzRGiQJ/KKutG35ZX21GE+1UCDo8Q6PoWH7Al9lex47nvyeU1BiDYOhcTKgIaJRtEH5lInsOsRJcSA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-code": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.13.0.tgz", + "integrity": "sha512-sF5raBni6iSVpXWvwJCAcOXw5/kZ+djDHx1YSGWhopm4+fsj0xW7GvVO+VTwiFjZGKSw+K5NeAxzcQTJZd3Vhw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-code-block": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.13.0.tgz", + "integrity": "sha512-kIwfQ4iqootsWg9e74iYJK54/YMIj6ahUxEltjZRML5z/h4gTDcQt2eTpnEC8yjDjHeUVOR94zH9auCySyk9CQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0", + "@tiptap/pm": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-document": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.13.0.tgz", + "integrity": "sha512-RjU7hTJwjKXIdY57o/Pc+Yr8swLkrwT7PBQ/m+LCX5oO/V2wYoWCjoBYnK5KSHrWlNy/aLzC33BvLeqZZ9nzlQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-dropcursor": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.13.0.tgz", + "integrity": "sha512-m7GPT3c/83ni+bbU8c+3dpNa8ug+aQ4phNB1Q52VQG3oTonDJnZS7WCtn3lB/Hi1LqoqMtEHwhepU2eD+JeXqQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-focus": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-focus/-/extension-focus-3.13.0.tgz", + "integrity": "sha512-UXeJcreVqXRLz1f4MX/KmeKCicwOWilCAc1I81s0GVV6kgdqgUodnqRSvQZBpbSZ+vicG+gmYWXOa0S3CurEGg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-gapcursor": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.13.0.tgz", + "integrity": "sha512-KVxjQKkd964nin+1IdM2Dvej/Jy4JTMcMgq5seusUhJ9T9P8F9s2D5Iefwgkps3OCzub/aF+eAsZe+1P5KSIgA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-hard-break": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.13.0.tgz", + "integrity": "sha512-nH1OBaO+/pakhu+P1jF208mPgB70IKlrR/9d46RMYoYbqJTNf4KVLx5lHAOHytIhjcNg+MjyTfJWfkK+dyCCyg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-heading": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.13.0.tgz", + "integrity": "sha512-8VKWX8waYPtUWN97J89em9fOtxNteh6pvUEd0htcOAtoxjt2uZjbW5N4lKyWhNKifZBrVhH2Cc2NUPuftCVgxw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.14.0.tgz", + "integrity": "sha512-65O4T9vPKLUKO1fLowh5jqtfQlH5eaIL7qb/uj5sXMMg8O7TCvBIRkwNuYsFTkJmTk4vBy+fjZ0uwSY3DFkO1g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.14.0", + "@tiptap/pm": "^3.14.0" + } + }, + "node_modules/@tiptap/extension-image": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-3.13.0.tgz", + "integrity": "sha512-223uzLUkIa1rkK7aQK3AcIXe6LbCtmnpVb7sY5OEp+LpSaSPyXwyrZ4A0EO1o98qXG68/0B2OqMntFtA9c5Fbw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-italic": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.13.0.tgz", + "integrity": "sha512-XbVTgmzk1kgUMTirA6AGdLTcKHUvEJoh3R4qMdPtwwygEOe7sBuvKuLtF6AwUtpnOM+Y3tfWUTNEDWv9AcEdww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-link": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.13.0.tgz", + "integrity": "sha512-LuFPJ5GoL12GHW4A+USsj60O90pLcwUPdvEUSWewl9USyG6gnLnY/j5ZOXPYH7LiwYW8+lhq7ABwrDF2PKyBbA==", + "license": "MIT", + "dependencies": { + "linkifyjs": "^4.3.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0", + "@tiptap/pm": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-list": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.13.0.tgz", + "integrity": "sha512-MMFH0jQ4LeCPkJJFyZ77kt6eM/vcKujvTbMzW1xSHCIEA6s4lEcx9QdZMPpfmnOvTzeoVKR4nsu2t2qT9ZXzAw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0", + "@tiptap/pm": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-list-item": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.13.0.tgz", + "integrity": "sha512-63NbcS/XeQP2jcdDEnEAE3rjJICDj8y1SN1h/MsJmSt1LusnEo8WQ2ub86QELO6XnD3M04V03cY6Knf6I5mTkw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-list-keymap": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.13.0.tgz", + "integrity": "sha512-P+HtIa1iwosb1feFc8B/9MN5EAwzS+/dZ0UH0CTF2E4wnp5Z9OMxKl1IYjfiCwHzZrU5Let+S/maOvJR/EmV0g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-mention": { + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-3.15.3.tgz", + "integrity": "sha512-4YpwiQyumKZrlfiw4ExDzrDRarC4kkaC7RjEl4kYhzutID1Zy1WLES1B0CoZN9wRds/mjrQjfCFE5HE+2g3D6w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.15.3", + "@tiptap/pm": "^3.15.3", + "@tiptap/suggestion": "^3.15.3" + } + }, + "node_modules/@tiptap/extension-ordered-list": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.13.0.tgz", + "integrity": "sha512-QuDyLzuK/3vCvx9GeKhgvHWrGECBzmJyAx6gli2HY+Iil7XicbfltV4nvhIxgxzpx3LDHLKzJN9pBi+2MzX60g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-list": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-paragraph": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.13.0.tgz", + "integrity": "sha512-9csQde1i0yeZI5oQQ9e1GYNtGL2JcC2d8Fwtw9FsGC8yz2W0h+Fmk+3bc2kobbtO5LGqupSc1fKM8fAg5rSRDg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-placeholder": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-3.13.0.tgz", + "integrity": "sha512-Au4ktRBraQktX9gjSzGWyJV6kPof7+kOhzE8ej+rOMjIrHbx3DCHy1CJWftSO9BbqIyonjsFmm4nE+vjzZ3Z5Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extensions": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-strike": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.13.0.tgz", + "integrity": "sha512-VHhWNqTAMOfrC48m2FcPIZB0nhl6XHQviAV16SBc+EFznKNv9tQUsqQrnuQ2y6ZVfqq5UxvZ3hKF/JlN/Ff7xw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-table": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.13.0.tgz", + "integrity": "sha512-LcH9KE4QBUJ6IPwt1Uo5iU7zatFjUUvXbctIu2fKQ9nqJ7nNSFxRhkNyporVFkTWYH7/rb0qMoF1VxSUGefG5w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0", + "@tiptap/pm": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-table-cell": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-3.13.0.tgz", + "integrity": "sha512-dBOPeLe2NqymZI8reS2yZRIcgfIYHudCq4lDWZBJ5NiMvoy0b/fVe1qYSP4EcfBQMpfgAP0E05bMB3C7p1kmkw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-table-header": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-3.13.0.tgz", + "integrity": "sha512-ZA5lhcek0VlKupqj3WFgE6bj5vNRmxcpDqjYc6RWaxuva4dYfEQSqdlG+3a53Sr53le0grfBpolM8zJFCVYrcw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-table-row": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-3.13.0.tgz", + "integrity": "sha512-FdsMTIBNleZtWJEhXE/PBxkB8L9YJtnKs7YZNesLKqLn6/sWZl+X5e5SAAN/N3DLOEAwNCa/m0C3A1DWGNz/tw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/extension-table": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-text": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.13.0.tgz", + "integrity": "sha512-VcZIna93rixw7hRkHGCxDbL3kvJWi80vIT25a2pXg0WP1e7Pi3nBYvZIL4SQtkbBCji9EHrbZx3p8nNPzfazYw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-text-align": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-3.13.0.tgz", + "integrity": "sha512-hebIus9tdXWb+AmhO+LTeUxZLdb0tqwdeaL/0wYxJQR5DeCTlJe6huXacMD/BkmnlEpRhxzQH0FrmXAd0d4Wgg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-underline": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.13.0.tgz", + "integrity": "sha512-VDQi+UYw0tFnfghpthJTFmtJ3yx90kXeDwFvhmT8G+O+si5VmP05xYDBYBmYCix5jqKigJxEASiBL0gYOgMDEg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extension-youtube": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-youtube/-/extension-youtube-3.13.0.tgz", + "integrity": "sha512-KG6NtdpK9VheacN4imjhDJ8G1V2tJZd/LRr+QID8dYEMQe9vKbqIXgA0kO91t+f+iH8NwgNPmi3a/BQogvoqJg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0" + } + }, + "node_modules/@tiptap/extensions": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.13.0.tgz", + "integrity": "sha512-i7O0ptSibEtTy+2PIPsNKEvhTvMaFJg1W4Oxfnbuxvaigs7cJV9Q0lwDUcc7CPsNw2T1+44wcxg431CzTvdYoA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.13.0", + "@tiptap/pm": "^3.13.0" + } + }, + "node_modules/@tiptap/pm": { + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.15.3.tgz", + "integrity": "sha512-Zm1BaU1TwFi3CQiisxjgnzzIus+q40bBKWLqXf6WEaus8Z6+vo1MT2pU52dBCMIRaW9XNDq3E5cmGtMc1AlveA==", + "license": "MIT", + "dependencies": { + "prosemirror-changeset": "^2.3.0", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.6.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.4.1", + "prosemirror-inputrules": "^1.4.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.13.1", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.24.1", + "prosemirror-schema-basic": "^1.2.3", + "prosemirror-schema-list": "^1.5.0", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.6.4", + "prosemirror-trailing-node": "^3.0.0", + "prosemirror-transform": "^1.10.2", + "prosemirror-view": "^1.38.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/starter-kit": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.13.0.tgz", + "integrity": "sha512-Ojn6sRub04CRuyQ+9wqN62JUOMv+rG1vXhc2s6DCBCpu28lkCMMW+vTe7kXJcEdbot82+5swPbERw9vohswFzg==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.13.0", + "@tiptap/extension-blockquote": "^3.13.0", + "@tiptap/extension-bold": "^3.13.0", + "@tiptap/extension-bullet-list": "^3.13.0", + "@tiptap/extension-code": "^3.13.0", + "@tiptap/extension-code-block": "^3.13.0", + "@tiptap/extension-document": "^3.13.0", + "@tiptap/extension-dropcursor": "^3.13.0", + "@tiptap/extension-gapcursor": "^3.13.0", + "@tiptap/extension-hard-break": "^3.13.0", + "@tiptap/extension-heading": "^3.13.0", + "@tiptap/extension-horizontal-rule": "^3.13.0", + "@tiptap/extension-italic": "^3.13.0", + "@tiptap/extension-link": "^3.13.0", + "@tiptap/extension-list": "^3.13.0", + "@tiptap/extension-list-item": "^3.13.0", + "@tiptap/extension-list-keymap": "^3.13.0", + "@tiptap/extension-ordered-list": "^3.13.0", + "@tiptap/extension-paragraph": "^3.13.0", + "@tiptap/extension-strike": "^3.13.0", + "@tiptap/extension-text": "^3.13.0", + "@tiptap/extension-underline": "^3.13.0", + "@tiptap/extensions": "^3.13.0", + "@tiptap/pm": "^3.13.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/suggestion": { + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-3.15.3.tgz", + "integrity": "sha512-+CbaHhPfKUe+fNpUIQaOPhh6xI+xL5jbK1zw++U+CZIRrVAAmHRhO+D0O2HdiE1RK7596y8bRqMiB2CRHF7emA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.15.3", + "@tiptap/pm": "^3.15.3" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "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==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/detect-libc": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz", + "integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dompurify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/form-associated-helpers": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/form-associated-helpers/-/form-associated-helpers-0.0.10.tgz", + "integrity": "sha512-ClR8Y8muq6EPsmUZsPf+iWUWvRpRzSRGm/ESb5pbhf1PsRSph5cWjpvBlHrNeaBwTGPC1R0kFjAb5kR96ZQe+Q==", + "license": "MIT" + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "license": "MIT" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.0.tgz", + "integrity": "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/linkifyjs": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz", + "integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==", + "license": "MIT" + }, + "node_modules/lit": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.1.tgz", + "integrity": "sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/lit-element": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", + "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.4.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/lit-html": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", + "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prosemirror-changeset": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz", + "integrity": "sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==", + "license": "MIT", + "dependencies": { + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-codemark": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/prosemirror-codemark/-/prosemirror-codemark-0.4.2.tgz", + "integrity": "sha512-4n+PnGQToa/vTjn0OiivUvE8/moLtguUAfry8UA4Q8p47MhqT2Qpf2zBLustX5Upi4mSp3z1ZYBqLLovZC6abA==", + "license": "MIT", + "peerDependencies": { + "prosemirror-inputrules": "^1.2.0", + "prosemirror-model": "^1.18.1", + "prosemirror-state": "^1.4.1", + "prosemirror-view": "^1.26.2" + } + }, + "node_modules/prosemirror-collab": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", + "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", + "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.10.2" + } + }, + "node_modules/prosemirror-dropcursor": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", + "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0", + "prosemirror-view": "^1.1.0" + } + }, + "node_modules/prosemirror-gapcursor": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.0.tgz", + "integrity": "sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.0.0", + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-view": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", + "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", + "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", + "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-markdown": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz", + "integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==", + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.0.0", + "prosemirror-model": "^1.25.0" + } + }, + "node_modules/prosemirror-menu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", + "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==", + "license": "MIT", + "dependencies": { + "crelt": "^1.0.0", + "prosemirror-commands": "^1.0.0", + "prosemirror-history": "^1.0.0", + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.25.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", + "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", + "license": "MIT", + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-schema-basic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", + "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.25.0" + } + }, + "node_modules/prosemirror-schema-list": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", + "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.7.3" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-tables": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.3.tgz", + "integrity": "sha512-wbqCR/RlRPRe41a4LFtmhKElzBEfBTdtAYWNIGHM6X2e24NN/MTNUKyXjjphfAfdQce37Kh/5yf765mLPYDe7Q==", + "license": "MIT", + "dependencies": { + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" + } + }, + "node_modules/prosemirror-trailing-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz", + "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==", + "license": "MIT", + "dependencies": { + "@remirror/core-constants": "3.0.0", + "escape-string-regexp": "^4.0.0" + }, + "peerDependencies": { + "prosemirror-model": "^1.22.1", + "prosemirror-state": "^1.4.2", + "prosemirror-view": "^1.33.8" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.5.tgz", + "integrity": "sha512-RPDQCxIDhIBb1o36xxwsaeAvivO8VLJcgBtzmOwQ64bMtsVFh5SSuJ6dWSxO1UsHTiTXPCgQm3PDJt7p6IOLbw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-utils": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-utils/-/prosemirror-utils-1.2.2.tgz", + "integrity": "sha512-7a2MPf99oCW8/587rQYI1/snX71Ban40+apr1hLkY8TmU9YXd7JeR6QsmktcTisJURO3WRjxIia4lTMsYgZVOw==", + "license": "Apache-2.0", + "peerDependencies": { + "prosemirror-model": "^1.19.2", + "prosemirror-state": "^1.4.3" + } + }, + "node_modules/prosemirror-view": { + "version": "1.41.4", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.4.tgz", + "integrity": "sha512-WkKgnyjNncri03Gjaz3IFWvCAE94XoiEgvtr0/r2Xw7R8/IjK3sKLSiDoCHWcsXSAinVaKlGRZDvMCsF1kbzjA==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.20.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rhino-editor": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/rhino-editor/-/rhino-editor-0.18.0.tgz", + "integrity": "sha512-5n9VHb7dfeSIDuc7aJUWc+7EmRNCMvha32yV/hvL89vjXliIDvENSy+C4808HsvRrHsbJpMBXs+36MTDL2fBTQ==", + "license": "MIT", + "dependencies": { + "@rails/activestorage": "^8.0.201", + "@tiptap/core": "^3.4.0", + "@tiptap/extension-code": "^3.4.0", + "@tiptap/extension-code-block": "^3.4.0", + "@tiptap/extension-focus": "^3.4.0", + "@tiptap/extension-image": "^3.4.0", + "@tiptap/extension-link": "^3.4.0", + "@tiptap/extension-placeholder": "^3.4.0", + "@tiptap/extension-strike": "^3.4.0", + "@tiptap/pm": "^3.4.0", + "@tiptap/starter-kit": "^3.4.0", + "linkifyjs": "^4.1.3", + "lit": "^3.3.1", + "prosemirror-codemark": "^0.4.2", + "prosemirror-utils": "^1.2.2", + "prosemirror-view": "^1.40.1", + "role-components": "^3.1.0", + "tslib": "^2.8.1" + } + }, + "node_modules/role-components": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/role-components/-/role-components-3.1.0.tgz", + "integrity": "sha512-d0vq9H4Hqe24fGzd79s+e/X/GzNz+OI5dsThsn1cNaix+VKfr/I+UbkErZ8G8lWEqWe+ULOTa25/t5oRng2xkQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.6.5", + "form-associated-helpers": "^0.0.10", + "lit": "^3", + "web-component-define": "^2.0.11" + } + }, + "node_modules/rollup": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.1.tgz", + "integrity": "sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.1", + "@rollup/rollup-android-arm64": "4.50.1", + "@rollup/rollup-darwin-arm64": "4.50.1", + "@rollup/rollup-darwin-x64": "4.50.1", + "@rollup/rollup-freebsd-arm64": "4.50.1", + "@rollup/rollup-freebsd-x64": "4.50.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.1", + "@rollup/rollup-linux-arm-musleabihf": "4.50.1", + "@rollup/rollup-linux-arm64-gnu": "4.50.1", + "@rollup/rollup-linux-arm64-musl": "4.50.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.1", + "@rollup/rollup-linux-ppc64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-musl": "4.50.1", + "@rollup/rollup-linux-s390x-gnu": "4.50.1", + "@rollup/rollup-linux-x64-gnu": "4.50.1", + "@rollup/rollup-linux-x64-musl": "4.50.1", + "@rollup/rollup-openharmony-arm64": "4.50.1", + "@rollup/rollup-win32-arm64-msvc": "4.50.1", + "@rollup/rollup-win32-ia32-msvc": "4.50.1", + "@rollup/rollup-win32-x64-msvc": "4.50.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-gzip": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-gzip/-/rollup-plugin-gzip-3.1.2.tgz", + "integrity": "sha512-9xemMyvCjkklgNpu6jCYqQAbvCLJzA2nilkiOGzFuXTUX3cXEFMwIhsIBRF7kTKD/SnZ1tNPcxFm4m4zJ3VfNQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "rollup": ">=2.0.0" + } + }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", + "license": "MIT" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sortablejs": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.6.tgz", + "integrity": "sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spark-md5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", + "license": "(WTFPL OR MIT)" + }, + "node_modules/stimulus-vite-helpers": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/stimulus-vite-helpers/-/stimulus-vite-helpers-3.1.0.tgz", + "integrity": "sha512-qy9vnNnu6e/1PArEndp456BuSKLQkBgc+vX2pedOHT0N4GSLQY0l5fuQ4ft56xZ8xSWqrfuYSR+GXXIPtoESww==" + }, + "node_modules/swiper": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-12.0.3.tgz", + "integrity": "sha512-BHd6U1VPEIksrXlyXjMmRWO0onmdNPaTAFduzqR3pgjvi7KfmUCAm/0cj49u2D7B0zNjMw02TSeXfinC1hDCXg==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "license": "MIT", + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.13.tgz", + "integrity": "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", + "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tippy.js": { + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", + "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trix": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/trix/-/trix-2.1.15.tgz", + "integrity": "sha512-LoaXWczdTUV8+3Box92B9b1iaDVbxD14dYemZRxi3PwY+AuDm97BUJV2aHLBUFPuDABhxp0wzcbf0CxHCVmXiw==", + "license": "MIT", + "dependencies": { + "dompurify": "^3.2.5" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.20", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz", + "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-environment": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vite-plugin-environment/-/vite-plugin-environment-1.1.3.tgz", + "integrity": "sha512-9LBhB0lx+2lXVBEWxFZC+WO7PKEyE/ykJ7EPWCq95NEcCpblxamTbs5Dm3DLBGzwODpJMEnzQywJU8fw6XGGGA==", + "peerDependencies": { + "vite": ">= 2.7" + } + }, + "node_modules/vite-plugin-full-reload": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + }, + "node_modules/vite-plugin-manifest-sri": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-manifest-sri/-/vite-plugin-manifest-sri-0.2.0.tgz", + "integrity": "sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==" + }, + "node_modules/vite-plugin-rails": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/vite-plugin-rails/-/vite-plugin-rails-0.5.0.tgz", + "integrity": "sha512-PR3zTHW96X8c7dRsuL2Mu1EAXXeO8fQjQ2KanwIC7EWgBST+D8AKjJyEUAr13IakrIYvd1cM3LcQUcrKmCMePg==", + "dependencies": { + "rollup-plugin-gzip": "^3.1.0", + "vite-plugin-environment": "^1.1.3", + "vite-plugin-full-reload": "^1.1.0", + "vite-plugin-manifest-sri": "^0.2.0", + "vite-plugin-ruby": "^5.0.0", + "vite-plugin-stimulus-hmr": "^3.0.0" + }, + "peerDependencies": { + "vite": ">=5.0.0" + } + }, + "node_modules/vite-plugin-ruby": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/vite-plugin-ruby/-/vite-plugin-ruby-5.1.1.tgz", + "integrity": "sha512-I1dXJq2ywdvTD2Cz5LYNcYLujqQ3eUxPoCjruRdfm2QBtHBY15NEeb6x5HuPM3T5S+y8S3p9fwRsieQQCjk0gg==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "fast-glob": "^3.3.2" + }, + "peerDependencies": { + "vite": ">=5.0.0" + } + }, + "node_modules/vite-plugin-stimulus-hmr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-stimulus-hmr/-/vite-plugin-stimulus-hmr-3.0.0.tgz", + "integrity": "sha512-KElOiZOlaG4XilQQHrzK8M1u5UfK4EFfADJKQYbnmsUMifDOnPR6anVYgHAN95QyWJ67Q/rYWe5BB9M5OxocfQ==", + "dependencies": { + "debug": "^4.3", + "stimulus-vite-helpers": "^3.0.0" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, + "node_modules/web-component-define": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/web-component-define/-/web-component-define-2.0.11.tgz", + "integrity": "sha512-oMOngNGL5k55NyaQNnPz0UnV5QtPuESvSuxpBgmHHfNjb8sgVm4akAFq7HO4I5bhGHX8Of+0XnUZ3whBo0chgw==", + "license": "MIT", + "dependencies": { + "@lit/reactive-element": "^1.6.1", + "@open-wc/dedupe-mixin": "^1.3.1" + } + }, + "node_modules/web-component-define/node_modules/@lit/reactive-element": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", + "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + } + } +} From 170df61c6e2040ed0368bb0d50d489548a8ce9f6 Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Wed, 28 Jan 2026 14:50:59 +0530 Subject: [PATCH 06/10] Revert schema, env sample, and lockfile from upstream main --- db/schema.rb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 88e68b788..9153e0909 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -220,13 +220,8 @@ t.integer "position", null: false t.boolean "published", default: false t.datetime "updated_at", precision: nil, null: false -<<<<<<< HEAD - t.index ["metadatum_id", "position"], name: "index_categories_on_metadatum_id_and_position", unique: true - t.index ["metadatum_id"], name: "index_categories_on_metadatum_id" -======= t.index ["category_type_id", "position"], name: "index_categories_on_category_type_id_and_position", unique: true t.index ["category_type_id"], name: "index_categories_on_category_type_id" ->>>>>>> 3a5b1077 (Revert schema, env sample, and lockfile from upstream main) end create_table "categorizable_items", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| From 254743f7776a3d37099c23532b0bb5b408bb42a8 Mon Sep 17 00:00:00 2001 From: Abhishek Hede <127148049+Abhiishekk31@users.noreply.github.com> Date: Wed, 28 Jan 2026 22:05:23 +0530 Subject: [PATCH 07/10] Update app/controllers/users_controller.rb Co-authored-by: Justin <16829344+jmilljr24@users.noreply.github.com> --- app/controllers/users_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 420b77a9c..5e7dba3b0 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,5 +1,4 @@ class UsersController < ApplicationController - before_action :set_user, only: [ :show, :edit, :update, :destroy, :generate_facilitator, :send_reset_password_instructions ] before_action :set_user, only: [ :show, :edit, :update, :destroy, :generate_facilitator, :toggle_lock_status ] def index From 8cb08be7609611c8856b8e7db4e854716a7c62f5 Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Wed, 28 Jan 2026 22:13:47 +0530 Subject: [PATCH 08/10] Add blank line between methods to fix code style --- app/controllers/users_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 5e7dba3b0..645247e70 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -101,6 +101,7 @@ def send_reset_password_instructions @user.send_reset_password_instructions redirect_to users_path, notice: "Reset password instructions sent to #{@user.email}." end + def toggle_lock_status return redirect_to users_path, alert: "You don't have permission to perform this action." unless current_user.super_user? From 2a19015d75bf07c4f1dd87eef1f7cd60e9438f4b Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Thu, 29 Jan 2026 11:43:46 +0530 Subject: [PATCH 09/10] fixed before action and ran rubocop --- app/controllers/users_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 645247e70..1ee7a70df 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,5 +1,5 @@ class UsersController < ApplicationController - before_action :set_user, only: [ :show, :edit, :update, :destroy, :generate_facilitator, :toggle_lock_status ] + before_action :set_user, only: [ :show, :edit, :update, :destroy, :generate_facilitator, :toggle_lock_status, :send_reset_password_instructions ] def index return redirect_to root_path unless current_user.super_user? @@ -162,4 +162,4 @@ def user_params project_users_attributes: [ :id, :project_id, :position, :title, :inactive, :_destroy ] ) end -end \ No newline at end of file +end From ac4c5e2742882a4268a41fb0cb85921fe915b4e9 Mon Sep 17 00:00:00 2001 From: abhiishekk31 Date: Thu, 29 Jan 2026 16:34:00 +0530 Subject: [PATCH 10/10] added Add to Calendar text --- app/views/events/_card.html.erb | 2 +- app/views/events/show.html.erb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/events/_card.html.erb b/app/views/events/_card.html.erb index 4b6e82c8c..66a4af58b 100644 --- a/app/views/events/_card.html.erb +++ b/app/views/events/_card.html.erb @@ -70,7 +70,7 @@ <% if event.event_registrations.exists?(registrant_id: current_user.id) %>
- + Add to your calendar: <%= event.calendar_links %>
<% end %> diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb index 37c658144..d175ec44d 100644 --- a/app/views/events/show.html.erb +++ b/app/views/events/show.html.erb @@ -74,6 +74,7 @@ <% if registered %>
+ Add to your calendar: <%= @event.calendar_links %>
<% end %>