difit 2.2.7 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md CHANGED
@@ -148,28 +148,30 @@ src/components/Button.tsx:L42-L48 # この行が自動的に追加されます
148
148
  - **IaC**:Terraform (HCL)
149
149
  - **その他**:Python, Protobuf, YAML, Solidity, Vim Script
150
150
 
151
- ## 🔍 自動生成ファイルの検出
152
-
153
- difitは生成されたファイルを自動的に識別し、ビューをすっきりさせるために折りたたみます。これには以下が含まれます:
154
-
155
- - ロックファイル (`package-lock.json`, `go.mod`, `Cargo.lock`, `Gemfile.lock` など)
156
- - 圧縮されたファイル (`*.min.js`, `*.min.css`)
157
- - ソースマップ (`*.map`)
158
- - 生成されたコード:
159
- - Orval (`*.msw.ts`, `*.zod.ts`, `*.api.ts`)
160
- - Dart (`*.g.dart`, `*.freezed.dart`)
161
- - C# (`*.g.cs`, `*.designer.cs`)
162
- - Protobuf (`*.pb.go`, `*.pb.cc`, `*.pb.h`)
163
- - フレームワーク:
164
- - Ruby on Rails (`db/schema.rb`)
165
- - Laravel (`_ide_helper.php`)
166
- - Gradle (`gradle.lockfile`)
167
- - Python (`uv.lock`, `pdm.lock`)
168
- - 一般的な生成ファイル (`*.generated.cs`, `*.generated.ts`, `*.generated.js`)
169
- - コンテンツベースの検出:
170
- - `@generated` マーカーを含むファイル
171
- - `DO NOT EDIT` ヘッダーを含むファイル
172
- - 言語固有の自動生成ヘッダー (Go, Pythonなど)
151
+ ## 🔍 自動折りたたみファイル
152
+
153
+ difitは特定のファイルを自動的に識別し、ビューをすっきりさせるために折りたたみます:
154
+
155
+ - **削除されたファイル**: 削除されたファイルは詳細なレビューが不要なため、自動的に折りたたまれます
156
+ - **自動生成ファイル**: 自動生成されたコードはデフォルトで折りたたまれます。これには以下が含まれます:
157
+ - ロックファイル (`package-lock.json`, `go.mod`, `Cargo.lock`, `Gemfile.lock` など)
158
+ - 圧縮されたファイル (`*.min.js`, `*.min.css`)
159
+ - ソースマップ (`*.map`)
160
+ - 生成されたコード:
161
+ - Orval (`*.msw.ts`, `*.zod.ts`, `*.api.ts`)
162
+ - Dart (`*.g.dart`, `*.freezed.dart`)
163
+ - C# (`*.g.cs`, `*.designer.cs`)
164
+ - Protobuf (`*.pb.go`, `*.pb.cc`, `*.pb.h`)
165
+ - フレームワーク:
166
+ - Ruby on Rails (`db/schema.rb`)
167
+ - Laravel (`_ide_helper.php`)
168
+ - Gradle (`gradle.lockfile`)
169
+ - Python (`uv.lock`, `pdm.lock`)
170
+ - 一般的な生成ファイル (`*.generated.cs`, `*.generated.ts`, `*.generated.js`)
171
+ - コンテンツベースの検出:
172
+ - `@generated` マーカーを含むファイル
173
+ - `DO NOT EDIT` ヘッダーを含むファイル
174
+ - 言語固有の自動生成ヘッダー (Go, Pythonなど)
173
175
 
174
176
  ## 🛠️ 開発
175
177
 
package/README.ko.md CHANGED
@@ -148,28 +148,30 @@ src/components/Button.tsx:L42-L48 # 이 줄은 자동으로 추가됩니다
148
148
  - **인프라 코드**: Terraform (HCL)
149
149
  - **기타**: Python, Protobuf, YAML, Solidity, Vim 스크립트
150
150
 
151
- ## 🔍 자동 생성 파일 감지
152
-
153
- difit은 생성된 파일을 자동으로 식별하고 접어서 뷰를 깔끔하게 유지합니다. 여기에는 다음이 포함됩니다:
154
-
155
- - 잠금 파일 (`package-lock.json`, `go.mod`, `Cargo.lock`, `Gemfile.lock` 등)
156
- - 축소된 파일 (`*.min.js`, `*.min.css`)
157
- - 소스 (`*.map`)
158
- - 생성된 코드:
159
- - Orval (`*.msw.ts`, `*.zod.ts`, `*.api.ts`)
160
- - Dart (`*.g.dart`, `*.freezed.dart`)
161
- - C# (`*.g.cs`, `*.designer.cs`)
162
- - Protobuf (`*.pb.go`, `*.pb.cc`, `*.pb.h`)
163
- - 프레임워크:
164
- - Ruby on Rails (`db/schema.rb`)
165
- - Laravel (`_ide_helper.php`)
166
- - Gradle (`gradle.lockfile`)
167
- - Python (`uv.lock`, `pdm.lock`)
168
- - 일반적인 생성 파일 (`*.generated.cs`, `*.generated.ts`, `*.generated.js`)
169
- - 콘텐츠 기반 감지:
170
- - `@generated` 마커가 포함된 파일
171
- - `DO NOT EDIT` 헤더가 포함된 파일
172
- - 언어별 생성 헤더 (Go, Python 등)
151
+ ## 🔍 자동 접힘 파일
152
+
153
+ difit은 특정 파일을 자동으로 식별하고 접어서 뷰를 깔끔하게 유지합니다:
154
+
155
+ - **삭제된 파일**: 삭제된 파일은 자세한 검토가 필요하지 않으므로 자동으로 접힙니다
156
+ - **자동 생성 파일**: 자동 생성된 코드는 기본적으로 접힙니다. 여기에는 다음이 포함됩니다:
157
+ - 잠금 파일 (`package-lock.json`, `go.mod`, `Cargo.lock`, `Gemfile.lock` 등)
158
+ - 축소된 파일 (`*.min.js`, `*.min.css`)
159
+ - 소스 (`*.map`)
160
+ - 생성된 코드:
161
+ - Orval (`*.msw.ts`, `*.zod.ts`, `*.api.ts`)
162
+ - Dart (`*.g.dart`, `*.freezed.dart`)
163
+ - C# (`*.g.cs`, `*.designer.cs`)
164
+ - Protobuf (`*.pb.go`, `*.pb.cc`, `*.pb.h`)
165
+ - 프레임워크:
166
+ - Ruby on Rails (`db/schema.rb`)
167
+ - Laravel (`_ide_helper.php`)
168
+ - Gradle (`gradle.lockfile`)
169
+ - Python (`uv.lock`, `pdm.lock`)
170
+ - 일반적인 생성 파일 (`*.generated.cs`, `*.generated.ts`, `*.generated.js`)
171
+ - 콘텐츠 기반 감지:
172
+ - `@generated` 마커가 포함된 파일
173
+ - `DO NOT EDIT` 헤더가 포함된 파일
174
+ - 언어별 생성 헤더 (Go, Python 등)
173
175
 
174
176
  ## 🛠️ 개발
175
177
 
package/README.md CHANGED
@@ -148,28 +148,30 @@ This section is unnecessary
148
148
  - **Infrastructure as Code**: Terraform (HCL)
149
149
  - **Others**: Python, Protobuf, YAML, Solidity, Vim script
150
150
 
151
- ## 🔍 Detecting Auto-generated Files
152
-
153
- difit automatically identifies and collapses generated files to keep your view clean. This includes:
154
-
155
- - Lock files (`package-lock.json`, `go.mod`, `Cargo.lock`, `Gemfile.lock`, etc.)
156
- - Minified files (`*.min.js`, `*.min.css`)
157
- - Source maps (`*.map`)
158
- - Generated code:
159
- - Orval (`*.msw.ts`, `*.zod.ts`, `*.api.ts`)
160
- - Dart (`*.g.dart`, `*.freezed.dart`)
161
- - C# (`*.g.cs`, `*.designer.cs`)
162
- - Protobuf (`*.pb.go`, `*.pb.cc`, `*.pb.h`)
163
- - Frameworks:
164
- - Ruby on Rails (`db/schema.rb`)
165
- - Laravel (`_ide_helper.php`)
166
- - Gradle (`gradle.lockfile`)
167
- - Python (`uv.lock`, `pdm.lock`)
168
- - Generic generated files (`*.generated.cs`, `*.generated.ts`, `*.generated.js`)
169
- - Content-based detection:
170
- - Files containing `@generated` marker
171
- - Files containing `DO NOT EDIT` header
172
- - Language-specific generated headers (Go, Python, etc.)
151
+ ## 🔍 Auto-collapsed Files
152
+
153
+ difit automatically identifies and collapses certain files to keep your view clean:
154
+
155
+ - **Deleted files**: Removed files are auto-collapsed since they don't require close review
156
+ - **Generated files**: Auto-generated code is collapsed by default. This includes:
157
+ - Lock files (`package-lock.json`, `go.mod`, `Cargo.lock`, `Gemfile.lock`, etc.)
158
+ - Minified files (`*.min.js`, `*.min.css`)
159
+ - Source maps (`*.map`)
160
+ - Generated code:
161
+ - Orval (`*.msw.ts`, `*.zod.ts`, `*.api.ts`)
162
+ - Dart (`*.g.dart`, `*.freezed.dart`)
163
+ - C# (`*.g.cs`, `*.designer.cs`)
164
+ - Protobuf (`*.pb.go`, `*.pb.cc`, `*.pb.h`)
165
+ - Frameworks:
166
+ - Ruby on Rails (`db/schema.rb`)
167
+ - Laravel (`_ide_helper.php`)
168
+ - Gradle (`gradle.lockfile`)
169
+ - Python (`uv.lock`, `pdm.lock`)
170
+ - Generic generated files (`*.generated.cs`, `*.generated.ts`, `*.generated.js`)
171
+ - Content-based detection:
172
+ - Files containing `@generated` marker
173
+ - Files containing `DO NOT EDIT` header
174
+ - Language-specific generated headers (Go, Python, etc.)
173
175
 
174
176
  ## 🛠️ Development
175
177
 
package/README.zh.md CHANGED
@@ -148,28 +148,30 @@ src/components/Button.tsx:L42-L48 # 此行自动添加
148
148
  - **基础设施即代码**:Terraform (HCL)
149
149
  - **其他**:Python, Protobuf, YAML, Solidity, Vim Script
150
150
 
151
- ## 🔍 检测自动生成文件
152
-
153
- difit 自动识别并折叠生成的文件以保持视图整洁。这包括:
154
-
155
- - 锁定文件 (`package-lock.json`, `go.mod`, `Cargo.lock`, `Gemfile.lock` 等)
156
- - 压缩文件 (`*.min.js`, `*.min.css`)
157
- - 源映射 (`*.map`)
158
- - 生成的代码:
159
- - Orval (`*.msw.ts`, `*.zod.ts`, `*.api.ts`)
160
- - Dart (`*.g.dart`, `*.freezed.dart`)
161
- - C# (`*.g.cs`, `*.designer.cs`)
162
- - Protobuf (`*.pb.go`, `*.pb.cc`, `*.pb.h`)
163
- - 框架:
164
- - Ruby on Rails (`db/schema.rb`)
165
- - Laravel (`_ide_helper.php`)
166
- - Gradle (`gradle.lockfile`)
167
- - Python (`uv.lock`, `pdm.lock`)
168
- - 通用生成文件 (`*.generated.cs`, `*.generated.ts`, `*.generated.js`)
169
- - 基于内容的检测:
170
- - 包含 `@generated` 标记的文件
171
- - 包含 `DO NOT EDIT` 标头的文件
172
- - 特定语言的生成标头 (Go, Python 等)
151
+ ## 🔍 自动折叠文件
152
+
153
+ difit 自动识别并折叠某些文件以保持视图整洁:
154
+
155
+ - **已删除文件**:已删除的文件不需要详细审查,因此自动折叠
156
+ - **自动生成文件**:自动生成的代码默认折叠。这包括:
157
+ - 锁定文件 (`package-lock.json`, `go.mod`, `Cargo.lock`, `Gemfile.lock` 等)
158
+ - 压缩文件 (`*.min.js`, `*.min.css`)
159
+ - 源映射 (`*.map`)
160
+ - 生成的代码:
161
+ - Orval (`*.msw.ts`, `*.zod.ts`, `*.api.ts`)
162
+ - Dart (`*.g.dart`, `*.freezed.dart`)
163
+ - C# (`*.g.cs`, `*.designer.cs`)
164
+ - Protobuf (`*.pb.go`, `*.pb.cc`, `*.pb.h`)
165
+ - 框架:
166
+ - Ruby on Rails (`db/schema.rb`)
167
+ - Laravel (`_ide_helper.php`)
168
+ - Gradle (`gradle.lockfile`)
169
+ - Python (`uv.lock`, `pdm.lock`)
170
+ - 通用生成文件 (`*.generated.cs`, `*.generated.ts`, `*.generated.js`)
171
+ - 基于内容的检测:
172
+ - 包含 `@generated` 标记的文件
173
+ - 包含 `DO NOT EDIT` 标头的文件
174
+ - 特定语言的生成标头 (Go, Python 等)
173
175
 
174
176
  ## 🛠️ 开发
175
177
 
package/dist/cli/index.js CHANGED
@@ -5,7 +5,7 @@ import { simpleGit } from 'simple-git';
5
5
  import pkg from '../../package.json' with { type: 'json' };
6
6
  import { startServer } from '../server/server.js';
7
7
  import { DiffMode } from '../types/watch.js';
8
- import { findUntrackedFiles, markFilesIntentToAdd, promptUser, validateDiffArguments, resolvePrCommits, } from './utils.js';
8
+ import { findUntrackedFiles, markFilesIntentToAdd, promptUser, validateDiffArguments, resolvePrCommits, getGitRoot, } from './utils.js';
9
9
  function isSpecialArg(arg) {
10
10
  return arg === 'working' || arg === 'staged' || arg === '.';
11
11
  }
@@ -66,6 +66,15 @@ program
66
66
  console.log('\nPress Ctrl+C to stop the server');
67
67
  return;
68
68
  }
69
+ // Detect git root
70
+ let repoPath;
71
+ try {
72
+ repoPath = getGitRoot();
73
+ }
74
+ catch {
75
+ // If not in a git repository, fall back to process.cwd()
76
+ repoPath = undefined;
77
+ }
69
78
  // Determine target and base commitish
70
79
  let targetCommitish = commitish;
71
80
  let baseCommitish;
@@ -106,7 +115,7 @@ program
106
115
  }
107
116
  }
108
117
  if (commitish === 'working' || commitish === '.') {
109
- const git = simpleGit();
118
+ const git = simpleGit(repoPath);
110
119
  await handleUntrackedFiles(git);
111
120
  }
112
121
  if (options.tui) {
@@ -119,7 +128,12 @@ program
119
128
  // Dynamic import for TUI mode
120
129
  const { render } = await import('ink');
121
130
  const { default: TuiApp } = await import('../tui/App.js');
122
- render(React.createElement(TuiApp, { targetCommitish, baseCommitish, mode: options.mode }));
131
+ render(React.createElement(TuiApp, {
132
+ targetCommitish,
133
+ baseCommitish,
134
+ mode: options.mode,
135
+ repoPath,
136
+ }));
123
137
  return;
124
138
  }
125
139
  // Skip validation for PR URLs as they're already resolved to valid commits
@@ -140,6 +154,7 @@ program
140
154
  mode: options.mode,
141
155
  clearComments: options.clean,
142
156
  diffMode,
157
+ repoPath,
143
158
  });
144
159
  console.log(`\n🚀 difit server started on ${url}`);
145
160
  console.log(`📋 Reviewing: ${targetCommitish}`);
@@ -1,4 +1,5 @@
1
1
  import type { SimpleGit } from 'simple-git';
2
+ export declare function getGitRoot(): string;
2
3
  export declare function validateCommitish(commitish: string): boolean;
3
4
  export declare function shortHash(hash: string): string;
4
5
  export declare function createCommitRangeString(baseHash: string, targetHash: string): string;
package/dist/cli/utils.js CHANGED
@@ -1,6 +1,15 @@
1
1
  import { execSync } from 'child_process';
2
2
  import { createInterface } from 'readline/promises';
3
3
  import { Octokit } from '@octokit/rest';
4
+ export function getGitRoot() {
5
+ try {
6
+ const result = execSync('git rev-parse --show-toplevel', { encoding: 'utf8', stdio: 'pipe' });
7
+ return result.trim();
8
+ }
9
+ catch {
10
+ throw new Error('Not a git repository (or any of the parent directories)');
11
+ }
12
+ }
4
13
  export function validateCommitish(commitish) {
5
14
  if (!commitish || typeof commitish !== 'string') {
6
15
  return false;
@@ -0,0 +1 @@
1
+ @layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(93.6% .032 17.717);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-100:oklch(96.2% .044 156.743);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-github-bg-primary:#0d1117;--color-github-bg-secondary:#161b22;--color-github-bg-tertiary:#21262d;--color-github-border:#30363d;--color-github-text-primary:#f0f6fc;--color-github-text-secondary:#8b949e;--color-github-text-muted:#6e7681;--color-github-accent:#238636;--color-github-danger:#da3633;--color-github-warning:#d29922;--color-diff-addition-bg:#0d4429;--color-diff-addition-border:#1b7c3d;--color-diff-deletion-bg:#67060c;--color-diff-deletion-border:#da3633;--color-diff-neutral-bg:#21262d;--color-diff-selected-bg:#ae7c1426;--color-diff-selected-border:#ae7c1466;--color-comment-bg:#1c2128;--color-comment-border:#373e47;--color-comment-text:#e6edf3}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.-right-2{right:calc(var(--spacing)*-2)}.right-0{right:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-3{left:calc(var(--spacing)*3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-2{margin:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-2{height:calc(var(--spacing)*2)}.h-4{height:calc(var(--spacing)*4)}.h-7{height:calc(var(--spacing)*7)}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[calc\(80vh-120px\)\]{max-height:calc(80vh - 120px)}.min-h-\[16px\]{min-height:16px}.min-h-\[20px\]{min-height:20px}.min-h-\[60px\]{min-height:60px}.w-1\/2{width:50%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-none{--tw-border-style:none;border-style:none}.border-github-accent{border-color:var(--color-github-accent)}.border-github-border{border-color:var(--color-github-border)}.border-github-text-muted{border-color:var(--color-github-text-muted)}.border-github-text-primary{border-color:var(--color-github-text-primary)}.border-yellow-600\/50{border-color:#cd890080}@supports (color:color-mix(in lab,red,red)){.border-yellow-600\/50{border-color:color-mix(in oklab,var(--color-yellow-600)50%,transparent)}}.border-t-github-accent{border-top-color:var(--color-github-accent)}.border-l-yellow-400{border-left-color:var(--color-yellow-400)}.bg-\[var\(--bg-secondary\)\]{background-color:var(--bg-secondary)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-diff-addition-bg{background-color:var(--color-diff-addition-bg)}.bg-diff-deletion-bg{background-color:var(--color-diff-deletion-bg)}.bg-github-accent{background-color:var(--color-github-accent)}.bg-github-bg-primary{background-color:var(--color-github-bg-primary)}.bg-github-bg-secondary{background-color:var(--color-github-bg-secondary)}.bg-github-bg-tertiary{background-color:var(--color-github-bg-tertiary)}.bg-github-border{background-color:var(--color-github-border)}.bg-github-text-primary{background-color:var(--color-github-text-primary)}.bg-green-100\/10{background-color:#dcfce71a}@supports (color:color-mix(in lab,red,red)){.bg-green-100\/10{background-color:color-mix(in oklab,var(--color-green-100)10%,transparent)}}.bg-red-100\/10{background-color:#ffe2e21a}@supports (color:color-mix(in lab,red,red)){.bg-red-100\/10{background-color:color-mix(in oklab,var(--color-red-100)10%,transparent)}}.bg-transparent{background-color:#0000}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-5{padding-right:calc(var(--spacing)*5)}.pb-px{padding-bottom:1px}.pl-9{padding-left:calc(var(--spacing)*9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-github-accent{color:var(--color-github-accent)}.text-github-bg-primary{color:var(--color-github-bg-primary)}.text-github-danger{color:var(--color-github-danger)}.text-github-text-muted{color:var(--color-github-text-muted)}.text-github-text-primary{color:var(--color-github-text-primary)}.text-github-text-secondary{color:var(--color-github-text-secondary)}.text-github-warning{color:var(--color-github-warning)}.text-green-600{color:var(--color-green-600)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.placeholder-github-text-muted::-moz-placeholder{color:var(--color-github-text-muted)}.placeholder-github-text-muted::placeholder{color:var(--color-github-text-muted)}.accent-github-accent{accent-color:var(--color-github-accent)}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.\!transition-all{transition-property:all!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\!duration-300{--tw-duration:.3s!important;transition-duration:.3s!important}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.\!ease-in-out{--tw-ease:var(--ease-in-out)!important;transition-timing-function:var(--ease-in-out)!important}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:calc(var(--spacing)*0)}.after\:border-t-2:after{content:var(--tw-content);border-top-style:var(--tw-border-style);border-top-width:2px}.after\:border-b-2:after{content:var(--tw-content);border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.after\:border-l-4:after{content:var(--tw-content);border-left-style:var(--tw-border-style);border-left-width:4px}.after\:border-l-5:after{content:var(--tw-content);border-left-style:var(--tw-border-style);border-left-width:5px}.after\:border-blue-500:after{content:var(--tw-content);border-color:var(--color-blue-500)}.after\:border-l-diff-selected-border:after{content:var(--tw-content);border-left-color:var(--color-diff-selected-border)}.after\:bg-blue-100:after{content:var(--tw-content);background-color:var(--color-blue-100)}.after\:bg-diff-selected-bg:after{content:var(--tw-content);background-color:var(--color-diff-selected-bg)}.after\:opacity-30:after{content:var(--tw-content);opacity:.3}@media(hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-github-accent\/50:hover{border-color:#23863680}@supports (color:color-mix(in lab,red,red)){.hover\:border-github-accent\/50:hover{border-color:color-mix(in oklab,var(--color-github-accent)50%,transparent)}}.hover\:border-github-text-muted:hover{border-color:var(--color-github-text-muted)}.hover\:border-green-600:hover{border-color:var(--color-green-600)}.hover\:bg-github-bg-primary:hover{background-color:var(--color-github-bg-primary)}.hover\:bg-github-bg-tertiary:hover{background-color:var(--color-github-bg-tertiary)}.hover\:bg-github-text-muted:hover{background-color:var(--color-github-text-muted)}.hover\:bg-green-500\/10:hover{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-green-500\/10:hover{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:text-github-text-primary:hover{color:var(--color-github-text-primary)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:min-h-\[80px\]:focus{min-height:80px}.focus\:border-blue-600:focus{border-color:var(--color-blue-600)}.focus\:border-github-accent:focus{border-color:var(--color-github-accent)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-600\/30:focus{--tw-ring-color:#155dfc4d}@supports (color:color-mix(in lab,red,red)){.focus\:ring-blue-600\/30:focus{--tw-ring-color:color-mix(in oklab,var(--color-blue-600)30%,transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\:border-slate-500{border-color:var(--color-slate-500)}.dark\:bg-slate-600{background-color:var(--color-slate-600)}.dark\:text-white{color:var(--color-white)}@media(hover:hover){.dark\:hover\:border-slate-400:hover{border-color:var(--color-slate-400)}.dark\:hover\:bg-slate-500:hover{background-color:var(--color-slate-500)}}}.\[\&_code\]\:\!bg-transparent code{background-color:#0000!important}.\[\&_code\]\:text-inherit code{color:inherit}.\[\&_pre\]\:m-0 pre{margin:calc(var(--spacing)*0)}.\[\&_pre\]\:\!bg-transparent pre{background-color:#0000!important}.\[\&_pre\]\:p-0 pre{padding:calc(var(--spacing)*0)}.\[\&_pre\]\:text-inherit pre{color:inherit}}:root{--app-font-size:14px;--app-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif}html,body{background-color:var(--color-github-bg-primary);color:var(--color-github-text-primary);font-family:var(--app-font-family);line-height:1.5;font-size:var(--app-font-size)}:root{interpolate-size:allow-keywords}button{cursor:pointer}@keyframes sparkle-rise{0%{opacity:0;transform:translateY(20px)scale(.5)}20%{opacity:1;transform:translateY(10px)scale(1)}80%{opacity:1;transform:translateY(-30px)scale(1)}to{opacity:0;transform:translateY(-40px)scale(.8)}}.animate-sparkle-rise{animation:.8s ease-out both sparkle-rise}html,body,.bg-github-bg-primary,.bg-github-bg-secondary,.bg-github-bg-tertiary,[class*=bg-github],[class*=text-github],[class*=border-github],[class*=bg-diff],[class*=border-diff]{transition:background-color .3s,color .3s,border-color .3s}tr.keyboard-cursor td{position:relative}tr.keyboard-cursor td:before{content:"";pointer-events:none;z-index:1;background-color:#fffd5433;position:absolute;inset:0}tr.keyboard-cursor td:first-child:before{box-shadow:inset 1px 0 #fffd5466,inset 0 1px #fffd5466,inset 0 -1px #fffd5466}tr.keyboard-cursor td:last-child:before{box-shadow:inset -1px 0 #fffd5466,inset 0 1px #fffd5466,inset 0 -1px #fffd5466}tr.keyboard-cursor td:not(:first-child):not(:last-child):before{box-shadow:inset 0 1px #fffd5466,inset 0 -1px #fffd5466}td.keyboard-cursor{position:relative}td.keyboard-cursor:before{content:"";pointer-events:none;z-index:1;background-color:#fffd5433;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #fffd5466}.word-token{cursor:pointer;transition:background-color .15s;position:relative}.word-highlight{background-color:var(--word-highlight-color,#fffd54);border-radius:2px}[data-theme=dark]{--word-highlight-color:#fffd544d}[data-theme=light]{--word-highlight-color:#fffd54}.word-diff-added{background-color:var(--word-diff-added-bg);border-radius:2px;padding:0 1px}.word-diff-removed{background-color:var(--word-diff-removed-bg);border-radius:2px;padding:0 1px}:root,[data-theme=dark]{--word-diff-added-bg:#3fb95066;--word-diff-removed-bg:#f8514966}[data-theme=light]{--word-diff-added-bg:#3fb95080;--word-diff-removed-bg:#f8514980}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}