@ox-content/vite-plugin 2.90.0 → 3.0.0-alpha.10

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.
@@ -0,0 +1,256 @@
1
+ /* ox-content GitHub Plugin - Repository card styles */
2
+
3
+ .ox-github-card {
4
+ display: block;
5
+ margin: 1.5rem 0;
6
+ padding: 1rem 0;
7
+ border: 0;
8
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 74%, transparent);
9
+ border-bottom: 1px solid color-mix(in srgb, var(--octc-color-border) 74%, transparent);
10
+ border-radius: 0;
11
+ background: transparent;
12
+ text-decoration: none;
13
+ color: var(--octc-color-text);
14
+ transition: color 0.2s ease;
15
+ }
16
+
17
+ .ox-github-card:hover {
18
+ text-decoration: none;
19
+ }
20
+
21
+ .ox-github-header {
22
+ display: flex;
23
+ align-items: center;
24
+ gap: 0.5rem;
25
+ margin-bottom: 0.5rem;
26
+ }
27
+
28
+ .ox-github-icon {
29
+ width: 20px;
30
+ height: 20px;
31
+ color: var(--octc-color-text-muted);
32
+ flex-shrink: 0;
33
+ }
34
+
35
+ .ox-github-repo {
36
+ font-weight: 600;
37
+ font-size: 1rem;
38
+ color: var(--octc-color-primary);
39
+ }
40
+
41
+ .ox-github-card:hover .ox-github-repo {
42
+ text-decoration: underline;
43
+ }
44
+
45
+ .ox-github-description {
46
+ font-size: 0.875rem;
47
+ color: var(--octc-color-text-muted);
48
+ margin-bottom: 0.75rem;
49
+ line-height: 1.5;
50
+ }
51
+
52
+ .ox-github-stats {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 1rem;
56
+ font-size: 0.8125rem;
57
+ color: var(--octc-color-text-muted);
58
+ }
59
+
60
+ .ox-github-stat {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: 0.25rem;
64
+ }
65
+
66
+ .ox-github-stat svg {
67
+ width: 16px;
68
+ height: 16px;
69
+ }
70
+
71
+ .ox-github-language {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 0.375rem;
75
+ }
76
+
77
+ .ox-github-language-color {
78
+ width: 12px;
79
+ height: 12px;
80
+ border-radius: 50%;
81
+ }
82
+
83
+ /* Language colors */
84
+ .ox-github-language-color[data-lang="javascript"] {
85
+ background: #f1e05a;
86
+ }
87
+ .ox-github-language-color[data-lang="typescript"] {
88
+ background: #3178c6;
89
+ }
90
+ .ox-github-language-color[data-lang="rust"] {
91
+ background: #dea584;
92
+ }
93
+ .ox-github-language-color[data-lang="python"] {
94
+ background: #3572a5;
95
+ }
96
+ .ox-github-language-color[data-lang="go"] {
97
+ background: #00add8;
98
+ }
99
+ .ox-github-language-color[data-lang="java"] {
100
+ background: #b07219;
101
+ }
102
+ .ox-github-language-color[data-lang="c++"] {
103
+ background: #f34b7d;
104
+ }
105
+ .ox-github-language-color[data-lang="c"] {
106
+ background: #555555;
107
+ }
108
+ .ox-github-language-color[data-lang="ruby"] {
109
+ background: #701516;
110
+ }
111
+ .ox-github-language-color[data-lang="php"] {
112
+ background: #4f5d95;
113
+ }
114
+ .ox-github-language-color[data-lang="swift"] {
115
+ background: #f05138;
116
+ }
117
+ .ox-github-language-color[data-lang="kotlin"] {
118
+ background: #a97bff;
119
+ }
120
+ .ox-github-language-color[data-lang="vue"] {
121
+ background: #41b883;
122
+ }
123
+ .ox-github-language-color[data-lang="svelte"] {
124
+ background: #ff3e00;
125
+ }
126
+ .ox-github-language-color[data-lang="html"] {
127
+ background: #e34c26;
128
+ }
129
+ .ox-github-language-color[data-lang="css"] {
130
+ background: #563d7c;
131
+ }
132
+ .ox-github-language-color[data-lang="shell"] {
133
+ background: #89e051;
134
+ }
135
+
136
+ /* Loading state */
137
+ .ox-github-card.loading {
138
+ min-height: 100px;
139
+ }
140
+
141
+ .ox-github-card.loading::after {
142
+ content: "";
143
+ display: block;
144
+ width: 24px;
145
+ height: 24px;
146
+ margin: 2rem auto;
147
+ border: 2px solid var(--octc-color-border);
148
+ border-top-color: var(--octc-color-primary);
149
+ border-radius: 50%;
150
+ animation: ox-github-spin 0.8s linear infinite;
151
+ }
152
+
153
+ @keyframes ox-github-spin {
154
+ to {
155
+ transform: rotate(360deg);
156
+ }
157
+ }
158
+
159
+ /* Error state */
160
+ .ox-github-card.error {
161
+ border-color: #f87171;
162
+ background: transparent;
163
+ }
164
+
165
+ .ox-github-error {
166
+ color: #f87171;
167
+ font-size: 0.875rem;
168
+ }
169
+
170
+ .ox-github-code {
171
+ margin: 1.5rem 0;
172
+ border: 1px solid var(--octc-color-code-frame-border);
173
+ border-radius: 8px;
174
+ overflow: hidden;
175
+ background: var(--octc-color-code-bg);
176
+ }
177
+
178
+ .ox-github-code-header {
179
+ display: flex;
180
+ flex-wrap: wrap;
181
+ justify-content: space-between;
182
+ align-items: flex-start;
183
+ gap: 1rem;
184
+ padding: 0.75rem 1.25rem;
185
+ border-bottom: 1px solid var(--octc-color-code-title-border);
186
+ background: var(--octc-color-code-title-bg);
187
+ font-size: 0.75rem;
188
+ }
189
+
190
+ .ox-github-code-heading {
191
+ display: flex;
192
+ flex-direction: column;
193
+ gap: 0.3rem;
194
+ min-width: 0;
195
+ flex: 1;
196
+ }
197
+
198
+ .ox-github-code-title {
199
+ min-width: 0;
200
+ color: var(--octc-color-code-title-text);
201
+ font-family: var(--octc-font-mono);
202
+ font-weight: 600;
203
+ letter-spacing: 0.02em;
204
+ text-decoration: none;
205
+ overflow: hidden;
206
+ text-overflow: ellipsis;
207
+ white-space: nowrap;
208
+ }
209
+
210
+ .ox-github-code-title:hover {
211
+ color: var(--octc-color-primary);
212
+ text-decoration: underline;
213
+ }
214
+
215
+ .ox-github-code-commit {
216
+ display: flex;
217
+ align-items: baseline;
218
+ gap: 0.5rem;
219
+ min-width: 0;
220
+ color: var(--octc-color-text-muted);
221
+ text-decoration: none;
222
+ }
223
+
224
+ .ox-github-code-commit:hover {
225
+ color: var(--octc-color-primary);
226
+ }
227
+
228
+ .ox-github-code-sha {
229
+ flex-shrink: 0;
230
+ font-family: var(--octc-font-mono);
231
+ font-variant-numeric: tabular-nums;
232
+ }
233
+
234
+ .ox-github-code-commit-message {
235
+ overflow: hidden;
236
+ text-overflow: ellipsis;
237
+ white-space: nowrap;
238
+ }
239
+
240
+ .ox-github-code-loc {
241
+ flex-shrink: 0;
242
+ color: var(--octc-color-text-muted);
243
+ font-variant-numeric: tabular-nums;
244
+ line-height: 1.4;
245
+ }
246
+
247
+ .ox-github-code > .ox-code {
248
+ margin: 0;
249
+ }
250
+
251
+ .content .ox-github-code pre.ox-github-code-block {
252
+ margin: 0 !important;
253
+ border: 0 !important;
254
+ border-radius: 0 !important;
255
+ background: transparent !important;
256
+ }
@@ -0,0 +1,32 @@
1
+ .content .ox-magic-link {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: 0.26em;
5
+ max-width: 100%;
6
+ padding: 0.08em 0.38em 0.08em 0.24em;
7
+ border: 1px solid color-mix(in srgb, var(--octc-color-border) 88%, transparent);
8
+ border-radius: 0.42em;
9
+ background: color-mix(in srgb, var(--octc-color-bg-alt) 82%, var(--octc-color-bg) 18%);
10
+ color: inherit;
11
+ line-height: 1;
12
+ text-decoration: none;
13
+ vertical-align: -0.08em;
14
+ }
15
+ .content .ox-magic-link:hover {
16
+ border-color: color-mix(in srgb, var(--octc-color-primary) 45%, var(--octc-color-border));
17
+ }
18
+ .content .ox-magic-link:focus-visible {
19
+ outline: var(--octc-focus-ring);
20
+ outline-offset: var(--octc-focus-offset);
21
+ }
22
+ .content .ox-magic-link__image {
23
+ width: 1em;
24
+ height: 1em;
25
+ border-radius: 999px;
26
+ object-fit: cover;
27
+ flex: 0 0 auto;
28
+ }
29
+ .content .ox-magic-link__label {
30
+ font-weight: 600;
31
+ font-size: 0.9em;
32
+ }
@@ -0,0 +1,151 @@
1
+ /* ox-content Mermaid Plugin Styles */
2
+
3
+ .ox-mermaid {
4
+ margin: 1.5rem 0;
5
+ padding: 1.5rem;
6
+ background: var(--octc-color-bg);
7
+ border: 1px solid var(--octc-color-border);
8
+ border-radius: 4px;
9
+ overflow-x: auto;
10
+ text-align: center;
11
+ }
12
+
13
+ /* SVG diagram */
14
+ .ox-mermaid svg {
15
+ max-width: 100%;
16
+ height: auto;
17
+ display: inline-block;
18
+ }
19
+
20
+ /* --- Neutral theme integration --- */
21
+
22
+ /* Node shapes */
23
+ .ox-mermaid svg .node rect,
24
+ .ox-mermaid svg .node circle,
25
+ .ox-mermaid svg .node ellipse,
26
+ .ox-mermaid svg .node polygon,
27
+ .ox-mermaid svg .node .label-container {
28
+ fill: var(--octc-color-bg-alt) !important;
29
+ stroke: var(--octc-color-border) !important;
30
+ }
31
+
32
+ /* SVG root text color */
33
+ .ox-mermaid svg .label,
34
+ .ox-mermaid svg text,
35
+ .ox-mermaid svg span,
36
+ .ox-mermaid svg .label text,
37
+ .ox-mermaid svg .label span {
38
+ fill: var(--octc-color-text) !important;
39
+ color: var(--octc-color-text) !important;
40
+ }
41
+
42
+ /* Subgraph */
43
+ .ox-mermaid svg .cluster rect {
44
+ fill: var(--octc-color-bg-alt) !important;
45
+ stroke: var(--octc-color-border) !important;
46
+ rx: 6;
47
+ ry: 6;
48
+ }
49
+
50
+ .ox-mermaid svg .cluster span,
51
+ .ox-mermaid svg .cluster text {
52
+ fill: var(--octc-color-text-muted) !important;
53
+ color: var(--octc-color-text-muted) !important;
54
+ font-weight: 600;
55
+ }
56
+
57
+ /* Edge lines */
58
+ .ox-mermaid svg .edgePath .path,
59
+ .ox-mermaid svg .flowchart-link {
60
+ stroke: var(--octc-color-text-muted) !important;
61
+ stroke-width: 1.5px;
62
+ }
63
+
64
+ /* Arrowheads */
65
+ .ox-mermaid svg marker path {
66
+ fill: var(--octc-color-text-muted) !important;
67
+ }
68
+
69
+ /* Edge labels */
70
+ .ox-mermaid svg .edgeLabel {
71
+ background-color: var(--octc-color-bg) !important;
72
+ color: var(--octc-color-text) !important;
73
+ }
74
+
75
+ .ox-mermaid svg .edgeLabel rect {
76
+ fill: var(--octc-color-bg) !important;
77
+ opacity: 0.9;
78
+ }
79
+
80
+ /* Node text */
81
+ .ox-mermaid svg .node .label,
82
+ .ox-mermaid svg .node text,
83
+ .ox-mermaid svg .node span {
84
+ color: var(--octc-color-text) !important;
85
+ fill: var(--octc-color-text) !important;
86
+ }
87
+
88
+ /* --- Sequence diagram --- */
89
+
90
+ .ox-mermaid svg .actor {
91
+ fill: var(--octc-color-bg-alt) !important;
92
+ stroke: var(--octc-color-border) !important;
93
+ }
94
+
95
+ .ox-mermaid svg .actor-line {
96
+ stroke: var(--octc-color-border) !important;
97
+ }
98
+
99
+ .ox-mermaid svg line.messageLine0,
100
+ .ox-mermaid svg line.messageLine1 {
101
+ stroke: var(--octc-color-text-muted) !important;
102
+ }
103
+
104
+ .ox-mermaid svg .messageText {
105
+ fill: var(--octc-color-text) !important;
106
+ }
107
+
108
+ .ox-mermaid svg .note {
109
+ fill: var(--octc-color-bg-alt) !important;
110
+ stroke: var(--octc-color-border) !important;
111
+ }
112
+
113
+ .ox-mermaid svg .noteText {
114
+ fill: var(--octc-color-text) !important;
115
+ }
116
+
117
+ /* --- Gantt chart --- */
118
+
119
+ .ox-mermaid svg .section {
120
+ fill: var(--octc-color-bg-alt) !important;
121
+ }
122
+
123
+ .ox-mermaid svg .task {
124
+ stroke: var(--octc-color-border) !important;
125
+ }
126
+
127
+ /* --- Class / State / ER diagrams --- */
128
+
129
+ .ox-mermaid svg .classGroup rect,
130
+ .ox-mermaid svg .stateGroup rect,
131
+ .ox-mermaid svg .er.entityBox {
132
+ fill: var(--octc-color-bg) !important;
133
+ stroke: var(--octc-color-border) !important;
134
+ }
135
+
136
+ .ox-mermaid svg .classGroup line,
137
+ .ox-mermaid svg .divider {
138
+ stroke: var(--octc-color-border) !important;
139
+ }
140
+
141
+ /* Responsive */
142
+ @media (max-width: 640px) {
143
+ .ox-mermaid {
144
+ padding: 1rem;
145
+ margin-left: -0.75rem;
146
+ margin-right: -0.75rem;
147
+ border-radius: 0;
148
+ border-left: none;
149
+ border-right: none;
150
+ }
151
+ }
@@ -0,0 +1,43 @@
1
+ .ox-not-by-ai {
2
+ display: inline-block;
3
+ line-height: 0;
4
+ text-decoration: none;
5
+ color: inherit;
6
+ vertical-align: middle;
7
+ }
8
+ .ox-not-by-ai:focus-visible {
9
+ outline: var(--octc-focus-ring, 2px solid currentColor);
10
+ outline-offset: var(--octc-focus-offset, 2px);
11
+ }
12
+ .ox-not-by-ai__badge {
13
+ display: block;
14
+ height: 2.625rem;
15
+ width: auto;
16
+ }
17
+ .ox-not-by-ai__badge--dark {
18
+ display: none;
19
+ }
20
+ @media (prefers-color-scheme: dark) {
21
+ :root:not([data-theme="light"]):not(.light) .ox-not-by-ai__badge--light {
22
+ display: none;
23
+ }
24
+ :root:not([data-theme="light"]):not(.light) .ox-not-by-ai__badge--dark {
25
+ display: block;
26
+ }
27
+ }
28
+ [data-theme="dark"] .ox-not-by-ai__badge--light,
29
+ .dark .ox-not-by-ai__badge--light {
30
+ display: none;
31
+ }
32
+ [data-theme="dark"] .ox-not-by-ai__badge--dark,
33
+ .dark .ox-not-by-ai__badge--dark {
34
+ display: block;
35
+ }
36
+ [data-theme="light"] .ox-not-by-ai__badge--light,
37
+ .light .ox-not-by-ai__badge--light {
38
+ display: block;
39
+ }
40
+ [data-theme="light"] .ox-not-by-ai__badge--dark,
41
+ .light .ox-not-by-ai__badge--dark {
42
+ display: none;
43
+ }
@@ -0,0 +1,179 @@
1
+ /* ox-content OGP Card Plugin - Link card styles */
2
+
3
+ .ox-ogp-card {
4
+ display: flex;
5
+ margin: 1.5rem 0;
6
+ border: 0;
7
+ border-top: 1px solid color-mix(in srgb, var(--octc-color-border) 74%, transparent);
8
+ border-bottom: 1px solid color-mix(in srgb, var(--octc-color-border) 74%, transparent);
9
+ border-radius: 0;
10
+ overflow: visible;
11
+ background: transparent;
12
+ text-decoration: none;
13
+ color: var(--octc-color-text);
14
+ transition: color 0.2s ease;
15
+ }
16
+
17
+ .ox-ogp-card:hover {
18
+ text-decoration: none;
19
+ }
20
+
21
+ .ox-ogp-content {
22
+ flex: 1;
23
+ padding: 1rem 1.25rem;
24
+ min-width: 0;
25
+ display: flex;
26
+ flex-direction: column;
27
+ justify-content: center;
28
+ }
29
+
30
+ .ox-ogp-title {
31
+ font-weight: 600;
32
+ font-size: 1rem;
33
+ color: var(--octc-color-text);
34
+ margin-bottom: 0.375rem;
35
+ display: -webkit-box;
36
+ -webkit-line-clamp: 2;
37
+ -webkit-box-orient: vertical;
38
+ overflow: hidden;
39
+ }
40
+
41
+ .ox-ogp-card:hover .ox-ogp-title {
42
+ color: var(--octc-color-primary);
43
+ }
44
+
45
+ .ox-ogp-description {
46
+ font-size: 0.8125rem;
47
+ color: var(--octc-color-text-muted);
48
+ line-height: 1.5;
49
+ display: -webkit-box;
50
+ -webkit-line-clamp: 2;
51
+ -webkit-box-orient: vertical;
52
+ overflow: hidden;
53
+ margin-bottom: 0.5rem;
54
+ }
55
+
56
+ .ox-ogp-meta {
57
+ display: flex;
58
+ align-items: center;
59
+ gap: 0.5rem;
60
+ font-size: 0.75rem;
61
+ color: var(--octc-color-text-muted);
62
+ }
63
+
64
+ .ox-ogp-favicon {
65
+ width: 16px;
66
+ height: 16px;
67
+ border-radius: 2px;
68
+ }
69
+
70
+ .ox-ogp-domain {
71
+ overflow: hidden;
72
+ text-overflow: ellipsis;
73
+ white-space: nowrap;
74
+ }
75
+
76
+ .ox-ogp-image {
77
+ width: 200px;
78
+ min-width: 200px;
79
+ height: auto;
80
+ object-fit: cover;
81
+ background: var(--octc-color-bg-alt);
82
+ }
83
+
84
+ /* Compact variant (no image) */
85
+ .ox-ogp-card.compact {
86
+ flex-direction: column;
87
+ }
88
+
89
+ .ox-ogp-card.compact .ox-ogp-image {
90
+ width: 100%;
91
+ min-width: 100%;
92
+ height: 140px;
93
+ }
94
+
95
+ /* Vertical variant */
96
+ .ox-ogp-card.vertical {
97
+ flex-direction: column;
98
+ }
99
+
100
+ .ox-ogp-card.vertical .ox-ogp-image {
101
+ width: 100%;
102
+ min-width: 100%;
103
+ height: 180px;
104
+ }
105
+
106
+ /* Responsive */
107
+ @media (max-width: 640px) {
108
+ .ox-ogp-card {
109
+ flex-direction: column;
110
+ }
111
+
112
+ .ox-ogp-image {
113
+ width: 100%;
114
+ min-width: 100%;
115
+ height: 160px;
116
+ order: -1;
117
+ }
118
+
119
+ .ox-ogp-content {
120
+ padding: 0.875rem 1rem;
121
+ }
122
+ }
123
+
124
+ /* Loading state */
125
+ .ox-ogp-card.loading {
126
+ min-height: 100px;
127
+ justify-content: center;
128
+ align-items: center;
129
+ }
130
+
131
+ .ox-ogp-card.loading::after {
132
+ content: "";
133
+ width: 24px;
134
+ height: 24px;
135
+ border: 2px solid var(--octc-color-border);
136
+ border-top-color: var(--octc-color-primary);
137
+ border-radius: 50%;
138
+ animation: ox-ogp-spin 0.8s linear infinite;
139
+ }
140
+
141
+ @keyframes ox-ogp-spin {
142
+ to {
143
+ transform: rotate(360deg);
144
+ }
145
+ }
146
+
147
+ /* Error/fallback state */
148
+ .ox-ogp-card.error {
149
+ border-color: var(--octc-color-border);
150
+ }
151
+
152
+ .ox-ogp-card.error .ox-ogp-content {
153
+ width: 100%;
154
+ }
155
+
156
+ /* Simple link fallback */
157
+ .ox-ogp-simple {
158
+ display: inline-flex;
159
+ align-items: center;
160
+ gap: 0.5rem;
161
+ padding: 0.35rem 0;
162
+ border: 0;
163
+ border-bottom: 1px solid color-mix(in srgb, var(--octc-color-border) 74%, transparent);
164
+ border-radius: 0;
165
+ font-size: 0.875rem;
166
+ color: var(--octc-color-primary);
167
+ text-decoration: none;
168
+ transition: color 0.2s ease;
169
+ }
170
+
171
+ .ox-ogp-simple:hover {
172
+ text-decoration: underline;
173
+ }
174
+
175
+ .ox-ogp-simple svg {
176
+ width: 14px;
177
+ height: 14px;
178
+ color: var(--octc-color-text-muted);
179
+ }