@ox-content/vite-plugin 3.0.0-alpha.8 → 3.0.0-beta.0

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.
Files changed (79) hide show
  1. package/dist/index.cjs +8898 -2585
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +2050 -221
  4. package/dist/index.d.cts.map +1 -1
  5. package/dist/index.d.mts +2050 -221
  6. package/dist/index.d.mts.map +1 -1
  7. package/dist/index.mjs +8839 -2531
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/markdown-tables.cjs +70 -0
  10. package/dist/markdown-tables.cjs.map +1 -0
  11. package/dist/markdown-tables.d.cts +22 -0
  12. package/dist/markdown-tables.d.cts.map +1 -0
  13. package/dist/markdown-tables.d.mts +22 -0
  14. package/dist/markdown-tables.d.mts.map +1 -0
  15. package/dist/markdown-tables.mjs +66 -0
  16. package/dist/markdown-tables.mjs.map +1 -0
  17. package/dist/napi.cjs +44 -0
  18. package/dist/napi.cjs.map +1 -0
  19. package/dist/napi.mjs +34 -0
  20. package/dist/napi.mjs.map +1 -0
  21. package/dist/reader-chrome-client.cjs +103 -0
  22. package/dist/reader-chrome-client.d.cts +2 -0
  23. package/dist/reader-chrome-client.d.mts +2 -0
  24. package/dist/reader-chrome-client.mjs +102 -0
  25. package/dist/reader-chrome.cjs +109 -0
  26. package/dist/reader-chrome.cjs.map +1 -0
  27. package/dist/reader-chrome.d.cts +103 -0
  28. package/dist/reader-chrome.d.mts +103 -0
  29. package/dist/reader-chrome.mjs +98 -0
  30. package/dist/reader-chrome.mjs.map +1 -0
  31. package/dist/styles/all.css +15 -0
  32. package/dist/styles/citations.css +62 -0
  33. package/dist/styles/core.css +2261 -0
  34. package/dist/styles/github.css +262 -0
  35. package/dist/styles/graphviz.css +34 -0
  36. package/dist/styles/magic-links.css +33 -0
  37. package/dist/styles/markdown-tables.css +16 -0
  38. package/dist/styles/mermaid.css +151 -0
  39. package/dist/styles/not-by-ai.css +43 -0
  40. package/dist/styles/ogp.css +170 -0
  41. package/dist/styles/reader-chrome.css +163 -0
  42. package/dist/styles/social.css +678 -0
  43. package/dist/styles/tabs.css +210 -0
  44. package/dist/styles/theme-transition.css +37 -0
  45. package/dist/styles/twitter-full.css +598 -0
  46. package/dist/styles/youtube.css +87 -0
  47. package/dist/theme-tokens.cjs +95 -0
  48. package/dist/theme-tokens.cjs.map +1 -0
  49. package/dist/theme-tokens.d.cts +72 -0
  50. package/dist/theme-tokens.d.cts.map +1 -0
  51. package/dist/theme-tokens.d.mts +72 -0
  52. package/dist/theme-tokens.d.mts.map +1 -0
  53. package/dist/theme-tokens.mjs +91 -0
  54. package/dist/theme-tokens.mjs.map +1 -0
  55. package/dist/theme-transition-client.cjs +161 -0
  56. package/dist/theme-transition-client.d.cts +21 -0
  57. package/dist/theme-transition-client.d.mts +21 -0
  58. package/dist/theme-transition-client.mjs +160 -0
  59. package/dist/twitter-client.cjs +84 -0
  60. package/dist/twitter-client.d.cts +11 -0
  61. package/dist/twitter-client.d.mts +11 -0
  62. package/dist/twitter-client.mjs +83 -0
  63. package/dist/vitepress.cjs +614 -77
  64. package/dist/vitepress.cjs.map +1 -1
  65. package/dist/vitepress.mjs +588 -65
  66. package/dist/vitepress.mjs.map +1 -1
  67. package/package.json +89 -4
  68. package/dist/api.cjs +0 -6563
  69. package/dist/api.cjs.map +0 -1
  70. package/dist/api.mjs +0 -6456
  71. package/dist/api.mjs.map +0 -1
  72. package/dist/interop.cjs +0 -31
  73. package/dist/interop.cjs.map +0 -1
  74. package/dist/interop.mjs +0 -26
  75. package/dist/interop.mjs.map +0 -1
  76. package/dist/tabs.cjs +0 -98
  77. package/dist/tabs.cjs.map +0 -1
  78. package/dist/tabs.mjs +0 -99
  79. package/dist/tabs.mjs.map +0 -1
@@ -0,0 +1,210 @@
1
+ /* ox-content Tabs Plugin - Pure CSS, No JS */
2
+
3
+ .ox-tabs {
4
+ margin: 1.25rem 0;
5
+ border: 1px solid var(--octc-color-border);
6
+ border-radius: 6px;
7
+ overflow: hidden;
8
+ background: var(--octc-color-bg);
9
+ }
10
+
11
+ .ox-tabs-header {
12
+ display: flex;
13
+ align-items: center;
14
+ gap: 0.2rem;
15
+ padding: 0.35rem;
16
+ background: var(--octc-color-bg-alt);
17
+ border-bottom: 1px solid var(--octc-color-border);
18
+ overflow-x: auto;
19
+ -webkit-overflow-scrolling: touch;
20
+ scrollbar-width: none;
21
+ }
22
+
23
+ .ox-tabs-header::-webkit-scrollbar {
24
+ display: none;
25
+ }
26
+
27
+ /* Hidden radio inputs for tab selection */
28
+ .ox-tabs input[type="radio"] {
29
+ position: absolute;
30
+ width: 1px;
31
+ height: 1px;
32
+ padding: 0;
33
+ margin: -1px;
34
+ overflow: hidden;
35
+ clip: rect(0, 0, 0, 0);
36
+ white-space: nowrap;
37
+ border: 0;
38
+ }
39
+
40
+ /* Tab labels */
41
+ .ox-tabs label {
42
+ display: inline-flex;
43
+ align-items: center;
44
+ justify-content: center;
45
+ flex: 0 0 auto;
46
+ min-width: 0;
47
+ min-height: 2.1rem;
48
+ padding: 0.42rem 0.7rem;
49
+ cursor: pointer;
50
+ font-size: 0.8125rem;
51
+ font-weight: 600;
52
+ color: var(--octc-color-text-muted);
53
+ border: 1px solid transparent;
54
+ border-bottom: 2px solid transparent;
55
+ border-radius: 5px;
56
+ white-space: nowrap;
57
+ transition:
58
+ background-color 0.2s ease,
59
+ color 0.2s ease,
60
+ border-color 0.2s ease;
61
+ }
62
+
63
+ .ox-tabs label:hover {
64
+ color: var(--octc-color-text);
65
+ background: color-mix(in srgb, var(--octc-color-bg) 72%, transparent);
66
+ }
67
+
68
+ /* Checked tab label */
69
+ .ox-tabs input[type="radio"]:checked + label {
70
+ color: var(--octc-color-primary);
71
+ background: var(--octc-color-bg);
72
+ border-color: var(--octc-color-border);
73
+ border-bottom-color: var(--octc-color-primary);
74
+ }
75
+
76
+ /* Focus styles for accessibility */
77
+ .ox-tabs input[type="radio"]:focus-visible + label {
78
+ outline: var(--octc-focus-ring);
79
+ outline-offset: -2px;
80
+ }
81
+
82
+ /* Tab content panels */
83
+ .ox-tab-panel {
84
+ display: none;
85
+ padding: 0.85rem 0.9rem;
86
+ background: var(--octc-color-bg);
87
+ }
88
+
89
+ /* Reset margins for first/last children in panels */
90
+ .ox-tab-panel > :first-child {
91
+ margin-top: 0;
92
+ }
93
+
94
+ .ox-tab-panel > :last-child {
95
+ margin-bottom: 0;
96
+ }
97
+
98
+ /* Panel visibility via :has(). Radio ids are `ox-tab-{group}-{index}`. */
99
+ @supports selector(:has(*)) {
100
+ .ox-tabs:has(input[id$="-0"]:checked) .ox-tab-panel[data-tab="0"] {
101
+ display: block;
102
+ }
103
+ .ox-tabs:has(input[id$="-1"]:checked) .ox-tab-panel[data-tab="1"] {
104
+ display: block;
105
+ }
106
+ .ox-tabs:has(input[id$="-2"]:checked) .ox-tab-panel[data-tab="2"] {
107
+ display: block;
108
+ }
109
+ .ox-tabs:has(input[id$="-3"]:checked) .ox-tab-panel[data-tab="3"] {
110
+ display: block;
111
+ }
112
+ .ox-tabs:has(input[id$="-4"]:checked) .ox-tab-panel[data-tab="4"] {
113
+ display: block;
114
+ }
115
+ .ox-tabs:has(input[id$="-5"]:checked) .ox-tab-panel[data-tab="5"] {
116
+ display: block;
117
+ }
118
+ .ox-tabs:has(input[id$="-6"]:checked) .ox-tab-panel[data-tab="6"] {
119
+ display: block;
120
+ }
121
+ .ox-tabs:has(input[id$="-7"]:checked) .ox-tab-panel[data-tab="7"] {
122
+ display: block;
123
+ }
124
+
125
+ .ox-tab-panel:has(> pre:only-child),
126
+ .ox-tabs-fallback .ox-tabs-fallback-content:has(> pre:only-child) {
127
+ padding: 0;
128
+ background: var(--octc-color-code-bg);
129
+ }
130
+
131
+ .ox-tab-panel:has(> pre:only-child) > pre,
132
+ .ox-tabs-fallback .ox-tabs-fallback-content:has(> pre:only-child) > pre {
133
+ margin: 0;
134
+ border: 0;
135
+ border-radius: 0;
136
+ }
137
+ }
138
+
139
+ /* Code blocks inside tabs */
140
+ .ox-tab-panel pre {
141
+ margin: 0.5rem 0;
142
+ }
143
+
144
+ .ox-tab-panel pre:first-child {
145
+ margin-top: 0;
146
+ }
147
+
148
+ .ox-tab-panel pre:last-child {
149
+ margin-bottom: 0;
150
+ }
151
+
152
+ .ox-tab-panel > .ox-code {
153
+ margin: 0;
154
+ }
155
+
156
+ /* Fallback for older browsers using <details> */
157
+ .ox-tabs-fallback {
158
+ margin: 1.5rem 0;
159
+ }
160
+
161
+ .ox-tabs-fallback details {
162
+ border: 1px solid var(--octc-color-border);
163
+ border-radius: 4px;
164
+ margin-bottom: 0.5rem;
165
+ }
166
+
167
+ .ox-tabs-fallback details:last-child {
168
+ margin-bottom: 0;
169
+ }
170
+
171
+ .ox-tabs-fallback summary {
172
+ padding: 0.55rem 0.75rem;
173
+ cursor: pointer;
174
+ font-weight: 500;
175
+ background: var(--octc-color-bg-alt);
176
+ border-radius: 4px;
177
+ list-style: none;
178
+ }
179
+
180
+ .ox-tabs-fallback summary::-webkit-details-marker {
181
+ display: none;
182
+ }
183
+
184
+ .ox-tabs-fallback summary::before {
185
+ content: "▸ ";
186
+ display: inline-block;
187
+ margin-right: 0.5rem;
188
+ transition: transform 0.2s ease;
189
+ }
190
+
191
+ .ox-tabs-fallback details[open] summary::before {
192
+ transform: rotate(90deg);
193
+ }
194
+
195
+ .ox-tabs-fallback details[open] summary {
196
+ border-radius: 4px 4px 0 0;
197
+ border-bottom: 1px solid var(--octc-color-border);
198
+ }
199
+
200
+ .ox-tabs-fallback .ox-tabs-fallback-content {
201
+ padding: 0.85rem 0.9rem;
202
+ }
203
+
204
+ /* The disclosure marker still turns, it just turns instantly. */
205
+ @media (prefers-reduced-motion: reduce) {
206
+ .ox-tabs label,
207
+ .ox-tabs-fallback summary::before {
208
+ transition: none;
209
+ }
210
+ }
@@ -0,0 +1,37 @@
1
+ /* Same-document colour-scheme change. Every rule is scoped to an attribute the
2
+ runtime sets for the length of one theme toggle, so none of it can reach the
3
+ cross-document `@view-transition` used for MPA navigation — that transition
4
+ needs the UA cross-fade left alone. */
5
+
6
+ /* The circle is drawn by clipping one snapshot over the other, so the UA
7
+ cross-fade has to stop first: two half-opacity snapshots would show the clip
8
+ through the layer beneath it. */
9
+ :root[data-ox-theme-transition]::view-transition-old(root),
10
+ :root[data-ox-theme-transition]::view-transition-new(root) {
11
+ animation: none;
12
+ mix-blend-mode: normal;
13
+ }
14
+
15
+ /* Whichever snapshot the circle is drawn on has to sit on top of the other. */
16
+ :root[data-ox-theme-transition="expand"]::view-transition-old(root) {
17
+ z-index: 1;
18
+ }
19
+ :root[data-ox-theme-transition="expand"]::view-transition-new(root) {
20
+ z-index: 2;
21
+ }
22
+ :root[data-ox-theme-transition="shrink"]::view-transition-old(root) {
23
+ z-index: 2;
24
+ }
25
+ :root[data-ox-theme-transition="shrink"]::view-transition-new(root) {
26
+ z-index: 1;
27
+ }
28
+
29
+ /* Element-level colour transitions would animate underneath the snapshot and
30
+ bleed the old palette into the new one. The runtime holds this attribute
31
+ only while the theme is mutated, and drops it once both snapshots exist. */
32
+ :root[data-ox-theme-transition-suppress],
33
+ :root[data-ox-theme-transition-suppress] *,
34
+ :root[data-ox-theme-transition-suppress] *::before,
35
+ :root[data-ox-theme-transition-suppress] *::after {
36
+ transition: none !important;
37
+ }