@publier/shell 2.1.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.
Files changed (141) hide show
  1. package/README.md +1 -0
  2. package/dist/build-integration.d.mts +7 -0
  3. package/dist/build-integration.mjs +1 -0
  4. package/dist/index-DWtFsw7E.d.mts +1033 -0
  5. package/dist/index.d.mts +33 -0
  6. package/dist/index.mjs +1 -0
  7. package/dist/integration-BIJIcnAT.mjs +99 -0
  8. package/dist/integration-CKjtSkwa.d.mts +183 -0
  9. package/dist/integration.d.mts +2 -0
  10. package/dist/integration.mjs +1 -0
  11. package/dist/loaders/index.d.mts +54 -0
  12. package/dist/loaders/index.mjs +1 -0
  13. package/dist/plugins/remark-asides.d.mts +8 -0
  14. package/dist/plugins/remark-asides.mjs +2 -0
  15. package/dist/plugins/remark-snippets.d.mts +11 -0
  16. package/dist/plugins/remark-snippets.mjs +1 -0
  17. package/dist/plugins/remark-structure.d.mts +13 -0
  18. package/dist/plugins/remark-structure.mjs +1 -0
  19. package/dist/plugins/remark-vars.d.mts +7 -0
  20. package/dist/plugins/remark-vars.mjs +1 -0
  21. package/dist/presets-C7z73xlB.d.mts +16 -0
  22. package/dist/presets-DL0qjtya.mjs +1 -0
  23. package/dist/runtime/code-group-sync.d.mts +30 -0
  24. package/dist/runtime/code-group-sync.mjs +103 -0
  25. package/dist/runtime/lazy-upgrade-registry.d.mts +29 -0
  26. package/dist/runtime/lazy-upgrade-registry.mjs +1 -0
  27. package/dist/runtime/tabs-sync.d.mts +25 -0
  28. package/dist/runtime/tabs-sync.mjs +106 -0
  29. package/dist/search/index.d.mts +92 -0
  30. package/dist/search/index.mjs +1 -0
  31. package/dist/tailwind/css-plugin.d.mts +16 -0
  32. package/dist/tailwind/css-plugin.mjs +1 -0
  33. package/dist/tailwind/index.d.mts +6 -0
  34. package/dist/tailwind/index.mjs +1 -0
  35. package/dist/tailwind/loader.d.mts +94 -0
  36. package/dist/tailwind/loader.mjs +2 -0
  37. package/dist/theme-toggle-element-DzFjxwpS.mjs +1 -0
  38. package/dist/themes/almond.css +115 -0
  39. package/dist/themes/aspen.css +95 -0
  40. package/dist/themes/catppuccin.css +98 -0
  41. package/dist/themes/dark.css +98 -0
  42. package/dist/themes/dusk.css +98 -0
  43. package/dist/themes/emerald.css +95 -0
  44. package/dist/themes/light.css +95 -0
  45. package/dist/themes/maple.css +119 -0
  46. package/dist/themes/neutral.css +73 -0
  47. package/dist/themes/ocean.css +98 -0
  48. package/dist/themes/purple.css +95 -0
  49. package/dist/themes/ruby.css +95 -0
  50. package/dist/themes/solar.css +98 -0
  51. package/dist/themes/vitepress.css +95 -0
  52. package/package.json +189 -0
  53. package/publier-gate +0 -0
  54. package/src/astro-modules.d.ts +20 -0
  55. package/src/components/LastModified.astro +25 -0
  56. package/src/components/announcement-banner.astro +25 -0
  57. package/src/components/aside.astro +17 -0
  58. package/src/components/ask-ai.tsx +146 -0
  59. package/src/components/badge.astro +18 -0
  60. package/src/components/breadcrumbs.astro +23 -0
  61. package/src/components/callouts/caution.astro +13 -0
  62. package/src/components/callouts/check.astro +13 -0
  63. package/src/components/callouts/danger.astro +13 -0
  64. package/src/components/callouts/info.astro +13 -0
  65. package/src/components/callouts/note.astro +13 -0
  66. package/src/components/callouts/tip.astro +13 -0
  67. package/src/components/callouts/warning.astro +13 -0
  68. package/src/components/card-grid.astro +14 -0
  69. package/src/components/card.astro +18 -0
  70. package/src/components/code-group.astro +55 -0
  71. package/src/components/columns.astro +18 -0
  72. package/src/components/docs-layout.astro +25 -0
  73. package/src/components/file-tree-node.astro +13 -0
  74. package/src/components/file-tree.astro +9 -0
  75. package/src/components/icon.astro +18 -0
  76. package/src/components/index.ts +155 -0
  77. package/src/components/link-button.astro +21 -0
  78. package/src/components/link-card.astro +21 -0
  79. package/src/components/open-in-ai.astro +13 -0
  80. package/src/components/package-install.astro +17 -0
  81. package/src/components/panels.astro +16 -0
  82. package/src/components/search-button.astro +21 -0
  83. package/src/components/sidebar.astro +12 -0
  84. package/src/components/skip-link.astro +12 -0
  85. package/src/components/steps.astro +13 -0
  86. package/src/components/table-of-contents.astro +22 -0
  87. package/src/components/tabs.astro +17 -0
  88. package/src/components/theme-storage.ts +5 -0
  89. package/src/components/theme-toggle-element.ts +85 -0
  90. package/src/components/theme-toggle.astro +25 -0
  91. package/src/components/tile-grid.astro +13 -0
  92. package/src/components/tile.astro +17 -0
  93. package/src/components/top-nav-mobile.astro +11 -0
  94. package/src/components/top-nav.astro +20 -0
  95. package/src/components/types.ts +510 -0
  96. package/src/components/ui/blur-image.astro +60 -0
  97. package/src/components/ui/changelog-entry.astro +56 -0
  98. package/src/components/ui/cta-band.astro +30 -0
  99. package/src/components/ui/feature-grid.astro +38 -0
  100. package/src/components/ui/feature-section.astro +85 -0
  101. package/src/components/ui/frame.astro +52 -0
  102. package/src/components/ui/hero.astro +47 -0
  103. package/src/components/ui/jobs-list.astro +53 -0
  104. package/src/components/ui/logo-cloud.astro +68 -0
  105. package/src/components/ui/press-gallery.astro +52 -0
  106. package/src/components/ui/pricing-comparison-table.astro +73 -0
  107. package/src/components/ui/pricing-section.astro +113 -0
  108. package/src/components/ui/pricing-table.astro +54 -0
  109. package/src/components/ui/status-indicator.astro +38 -0
  110. package/src/components/ui/team-grid.astro +63 -0
  111. package/src/components/ui/testimonial-card.astro +42 -0
  112. package/src/components/ui/types.ts +323 -0
  113. package/src/components/update-badge.astro +15 -0
  114. package/src/components/version-switcher.astro +20 -0
  115. package/src/icons/index.tsx +246 -0
  116. package/src/icons/resolve.tsx +45 -0
  117. package/src/layouts/base-layout.astro +63 -0
  118. package/src/qwik.ts +3 -0
  119. package/src/routes/blog-index.astro +20 -0
  120. package/src/routes/blog-rss.xml.ts +40 -0
  121. package/src/routes/blog-slug.astro +32 -0
  122. package/src/routes/changelog-index.astro +25 -0
  123. package/src/routes/changelog-rss.xml.ts +47 -0
  124. package/src/routes/docs-slug.astro +31 -0
  125. package/src/routes/not-found.astro +14 -0
  126. package/src/runtime/banner-init.ts +9 -0
  127. package/src/runtime/lazy-upgrade-init.ts +5 -0
  128. package/src/runtime/sidebar-scroll-init.ts +3 -0
  129. package/src/runtime/theme-init.ts +16 -0
  130. package/src/schemas/blog.ts +37 -0
  131. package/src/schemas/changelog.ts +28 -0
  132. package/src/schemas/common.ts +82 -0
  133. package/src/schemas/docs.ts +101 -0
  134. package/src/schemas/index.ts +14 -0
  135. package/src/schemas/pages.ts +22 -0
  136. package/src/styles/base.css +627 -0
  137. package/src/styles/expressive-code.css +41 -0
  138. package/src/styles/rules.css +66 -0
  139. package/src/styles/tailwind-sources.css +17 -0
  140. package/src/tailwind/preset.css +193 -0
  141. package/src/virtual-modules.d.ts +164 -0
@@ -0,0 +1,98 @@
1
+ [data-theme="light"] {
2
+ color-scheme: light;
3
+
4
+ --color-base-100: oklch(20.77% 0.04 265.75);
5
+ --color-base-200: oklch(20.77% 0.04 265.75);
6
+ --color-base-300: oklch(27.95% 0.037 260.03);
7
+ --color-base-content: oklch(92.99% 0.033 272.79);
8
+ --color-primary: oklch(75.35% 0.139 232.66);
9
+ --color-primary-content: oklch(20.77% 0.04 265.75);
10
+ --color-accent: oklch(78.45% 0.133 181.91);
11
+ --color-accent-content: oklch(20.77% 0.04 265.75);
12
+ --color-success: oklch(72.27% 0.192 149.58);
13
+ --color-error: oklch(57.71% 0.215 27.33);
14
+ --color-error-content: oklch(100.00% 0 0);
15
+
16
+ --radius-selector: 0.5rem;
17
+ --radius-field: 0.5rem;
18
+ --radius-box: 0.75rem;
19
+ --border: 1px;
20
+ --depth: 1;
21
+ --noise: 0;
22
+ }
23
+
24
+ [data-theme="dark"] {
25
+ color-scheme: dark;
26
+
27
+ --color-base-100: oklch(20.77% 0.04 265.75);
28
+ --color-base-200: oklch(20.77% 0.04 265.75);
29
+ --color-base-300: oklch(27.95% 0.037 260.03);
30
+ --color-base-content: oklch(92.99% 0.033 272.79);
31
+ --color-primary: oklch(75.35% 0.139 232.66);
32
+ --color-primary-content: oklch(20.77% 0.04 265.75);
33
+ --color-accent: oklch(78.45% 0.133 181.91);
34
+ --color-accent-content: oklch(20.77% 0.04 265.75);
35
+ --color-success: oklch(72.27% 0.192 149.58);
36
+ --color-error: oklch(57.71% 0.215 27.33);
37
+ --color-error-content: oklch(100.00% 0 0);
38
+
39
+ --radius-selector: 0.5rem;
40
+ --radius-field: 0.5rem;
41
+ --radius-box: 0.75rem;
42
+ --border: 1px;
43
+ --depth: 1;
44
+ --noise: 0;
45
+ }
46
+
47
+ @media (prefers-color-scheme: dark) {
48
+ :root:not([data-theme]) {
49
+ color-scheme: dark;
50
+
51
+ --color-base-100: oklch(20.77% 0.04 265.75);
52
+ --color-base-200: oklch(20.77% 0.04 265.75);
53
+ --color-base-300: oklch(27.95% 0.037 260.03);
54
+ --color-base-content: oklch(92.99% 0.033 272.79);
55
+ --color-primary: oklch(75.35% 0.139 232.66);
56
+ --color-primary-content: oklch(20.77% 0.04 265.75);
57
+ --color-accent: oklch(78.45% 0.133 181.91);
58
+ --color-accent-content: oklch(20.77% 0.04 265.75);
59
+ --color-success: oklch(72.27% 0.192 149.58);
60
+ --color-error: oklch(57.71% 0.215 27.33);
61
+ --color-error-content: oklch(100.00% 0 0);
62
+
63
+ --radius-selector: 0.5rem;
64
+ --radius-field: 0.5rem;
65
+ --radius-box: 0.75rem;
66
+ --border: 1px;
67
+ --depth: 1;
68
+ --noise: 0;
69
+ }
70
+ }
71
+
72
+ :root {
73
+ --publier-nav-height: 4rem;
74
+ --publier-sidebar-width: 16rem;
75
+ --publier-toc-width: 14rem;
76
+ --publier-page-max-width: 52rem;
77
+ --publier-layout-width: 1400px;
78
+ }
79
+
80
+ :root {
81
+
82
+ --color-pl-muted: oklch(72% 0.067 232.66);
83
+ --color-pl-muted-bg: oklch(22.5% 0.02 232.66);
84
+ --color-pl-subtle: oklch(55% 0.04 232.66);
85
+ --color-pl-card: oklch(20.5% 0.018 232.66);
86
+ --color-pl-card-hover: oklch(26% 0.03 232.66);
87
+ --color-pl-popover: oklch(20.5% 0.018 232.66);
88
+ --color-pl-border: oklch(28% 0.025 232.66);
89
+ --color-pl-border-strong: oklch(36% 0.035 232.66);
90
+ --color-pl-sidebar-accent: oklch(26% 0.03 232.66);
91
+ --color-pl-sidebar-active: color-mix(in oklch, var(--color-primary) 14%, transparent);
92
+ --color-pl-sidebar-active-fg: var(--color-primary);
93
+
94
+ --menu-active-bg: var(--color-pl-sidebar-active);
95
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
96
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
97
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
98
+ }
@@ -0,0 +1,95 @@
1
+ [data-theme="light"] {
2
+ color-scheme: light;
3
+
4
+ --color-base-100: oklch(100.00% 0 0);
5
+ --color-base-200: oklch(100.00% 0 0);
6
+ --color-base-300: oklch(96.91% 0.016 293.76);
7
+ --color-base-content: oklch(16.40% 0.041 292.82);
8
+ --color-primary: oklch(54.13% 0.247 293.01);
9
+ --color-primary-content: oklch(100.00% 0 0);
10
+ --color-accent: oklch(55.75% 0.252 302.32);
11
+ --color-accent-content: oklch(100.00% 0 0);
12
+ --color-success: oklch(72.27% 0.192 149.58);
13
+ --color-error: oklch(57.71% 0.215 27.33);
14
+ --color-error-content: oklch(100.00% 0 0);
15
+
16
+ --radius-selector: 0.5rem;
17
+ --radius-field: 0.5rem;
18
+ --radius-box: 0.75rem;
19
+ --border: 1px;
20
+ --depth: 1;
21
+ --noise: 0;
22
+ }
23
+
24
+ [data-theme="dark"] {
25
+ color-scheme: dark;
26
+
27
+ --color-base-100: oklch(14.12% 0.029 293.86);
28
+ --color-base-200: oklch(17.43% 0.046 288.66);
29
+ --color-base-300: oklch(22.96% 0.074 290.98);
30
+ --color-base-content: oklch(96.91% 0.016 293.76);
31
+ --color-primary: oklch(70.90% 0.159 293.54);
32
+ --color-primary-content: oklch(14.12% 0.029 293.86);
33
+ --color-accent: oklch(72.17% 0.177 305.5);
34
+ --color-accent-content: oklch(14.12% 0.029 293.86);
35
+ --color-success: oklch(72.27% 0.192 149.58);
36
+ --color-error: oklch(57.71% 0.215 27.33);
37
+ --color-error-content: oklch(100.00% 0 0);
38
+
39
+ --radius-selector: 0.5rem;
40
+ --radius-field: 0.5rem;
41
+ --radius-box: 0.75rem;
42
+ --border: 1px;
43
+ --depth: 1;
44
+ --noise: 0;
45
+ }
46
+
47
+ :root {
48
+ --publier-nav-height: 4rem;
49
+ --publier-sidebar-width: 16rem;
50
+ --publier-toc-width: 14rem;
51
+ --publier-page-max-width: 52rem;
52
+ --publier-layout-width: 1400px;
53
+ }
54
+
55
+ :root,
56
+ :root[data-theme="light"] {
57
+
58
+ --color-pl-muted: oklch(42% 0.06 293.01);
59
+ --color-pl-muted-bg: oklch(95% 0.022 293.01);
60
+ --color-pl-subtle: oklch(55% 0.03 293.01);
61
+ --color-pl-card: oklch(99.5% 0.008 293.01);
62
+ --color-pl-card-hover: oklch(97% 0.015 293.01);
63
+ --color-pl-popover: oklch(99.5% 0.008 293.01);
64
+ --color-pl-border: oklch(90% 0.02 293.01);
65
+ --color-pl-border-strong: oklch(82% 0.025 293.01);
66
+ --color-pl-sidebar-accent: oklch(95% 0.022 293.01);
67
+ --color-pl-sidebar-active: color-mix(in oklch, var(--color-primary) 10%, transparent);
68
+ --color-pl-sidebar-active-fg: var(--color-primary);
69
+
70
+ --menu-active-bg: var(--color-pl-sidebar-active);
71
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
72
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
73
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
74
+ }
75
+
76
+ :root[data-theme="dark"],
77
+ .dark {
78
+
79
+ --color-pl-muted: oklch(72% 0.067 293.54);
80
+ --color-pl-muted-bg: oklch(22.5% 0.02 293.54);
81
+ --color-pl-subtle: oklch(55% 0.04 293.54);
82
+ --color-pl-card: oklch(20.5% 0.018 293.54);
83
+ --color-pl-card-hover: oklch(26% 0.03 293.54);
84
+ --color-pl-popover: oklch(20.5% 0.018 293.54);
85
+ --color-pl-border: oklch(28% 0.025 293.54);
86
+ --color-pl-border-strong: oklch(36% 0.035 293.54);
87
+ --color-pl-sidebar-accent: oklch(26% 0.03 293.54);
88
+ --color-pl-sidebar-active: color-mix(in oklch, var(--color-primary) 14%, transparent);
89
+ --color-pl-sidebar-active-fg: var(--color-primary);
90
+
91
+ --menu-active-bg: var(--color-pl-sidebar-active);
92
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
93
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
94
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
95
+ }
@@ -0,0 +1,95 @@
1
+ [data-theme="light"] {
2
+ color-scheme: light;
3
+
4
+ --color-base-100: oklch(100.00% 0 0);
5
+ --color-base-200: oklch(100.00% 0 0);
6
+ --color-base-300: oklch(96.94% 0.015 12.42);
7
+ --color-base-content: oklch(16.12% 0.043 7.82);
8
+ --color-primary: oklch(58.58% 0.222 17.58);
9
+ --color-primary-content: oklch(100.00% 0 0);
10
+ --color-accent: oklch(51.43% 0.198 16.93);
11
+ --color-accent-content: oklch(100.00% 0 0);
12
+ --color-success: oklch(72.27% 0.192 149.58);
13
+ --color-error: oklch(58.58% 0.222 17.58);
14
+ --color-error-content: oklch(100.00% 0 0);
15
+
16
+ --radius-selector: 0.5rem;
17
+ --radius-field: 0.5rem;
18
+ --radius-box: 0.75rem;
19
+ --border: 1px;
20
+ --depth: 1;
21
+ --noise: 0;
22
+ }
23
+
24
+ [data-theme="dark"] {
25
+ color-scheme: dark;
26
+
27
+ --color-base-100: oklch(14.39% 0.03 6.19);
28
+ --color-base-200: oklch(16.93% 0.036 8.76);
29
+ --color-base-300: oklch(23.87% 0.064 8.06);
30
+ --color-base-content: oklch(94.14% 0.03 12.58);
31
+ --color-primary: oklch(71.92% 0.169 13.43);
32
+ --color-primary-content: oklch(14.39% 0.03 6.19);
33
+ --color-accent: oklch(80.97% 0.106 11.64);
34
+ --color-accent-content: oklch(14.39% 0.03 6.19);
35
+ --color-success: oklch(72.27% 0.192 149.58);
36
+ --color-error: oklch(71.92% 0.169 13.43);
37
+ --color-error-content: oklch(14.39% 0.03 6.19);
38
+
39
+ --radius-selector: 0.5rem;
40
+ --radius-field: 0.5rem;
41
+ --radius-box: 0.75rem;
42
+ --border: 1px;
43
+ --depth: 1;
44
+ --noise: 0;
45
+ }
46
+
47
+ :root {
48
+ --publier-nav-height: 4rem;
49
+ --publier-sidebar-width: 16rem;
50
+ --publier-toc-width: 14rem;
51
+ --publier-page-max-width: 52rem;
52
+ --publier-layout-width: 1400px;
53
+ }
54
+
55
+ :root,
56
+ :root[data-theme="light"] {
57
+
58
+ --color-pl-muted: oklch(42% 0.06 17.58);
59
+ --color-pl-muted-bg: oklch(95% 0.022 17.58);
60
+ --color-pl-subtle: oklch(55% 0.03 17.58);
61
+ --color-pl-card: oklch(99.5% 0.008 17.58);
62
+ --color-pl-card-hover: oklch(97% 0.015 17.58);
63
+ --color-pl-popover: oklch(99.5% 0.008 17.58);
64
+ --color-pl-border: oklch(90% 0.02 17.58);
65
+ --color-pl-border-strong: oklch(82% 0.025 17.58);
66
+ --color-pl-sidebar-accent: oklch(95% 0.022 17.58);
67
+ --color-pl-sidebar-active: color-mix(in oklch, var(--color-primary) 10%, transparent);
68
+ --color-pl-sidebar-active-fg: var(--color-primary);
69
+
70
+ --menu-active-bg: var(--color-pl-sidebar-active);
71
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
72
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
73
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
74
+ }
75
+
76
+ :root[data-theme="dark"],
77
+ .dark {
78
+
79
+ --color-pl-muted: oklch(72% 0.067 13.43);
80
+ --color-pl-muted-bg: oklch(22.5% 0.02 13.43);
81
+ --color-pl-subtle: oklch(55% 0.04 13.43);
82
+ --color-pl-card: oklch(20.5% 0.018 13.43);
83
+ --color-pl-card-hover: oklch(26% 0.03 13.43);
84
+ --color-pl-popover: oklch(20.5% 0.018 13.43);
85
+ --color-pl-border: oklch(28% 0.025 13.43);
86
+ --color-pl-border-strong: oklch(36% 0.035 13.43);
87
+ --color-pl-sidebar-accent: oklch(26% 0.03 13.43);
88
+ --color-pl-sidebar-active: color-mix(in oklch, var(--color-primary) 14%, transparent);
89
+ --color-pl-sidebar-active-fg: var(--color-primary);
90
+
91
+ --menu-active-bg: var(--color-pl-sidebar-active);
92
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
93
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
94
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
95
+ }
@@ -0,0 +1,98 @@
1
+ [data-theme="light"] {
2
+ color-scheme: light;
3
+
4
+ --color-base-100: oklch(21.61% 0.006 56.04);
5
+ --color-base-200: oklch(26.85% 0.006 34.3);
6
+ --color-base-300: oklch(26.85% 0.006 34.3);
7
+ --color-base-content: oklch(96.99% 0.001 106.42);
8
+ --color-primary: oklch(83.69% 0.164 84.43);
9
+ --color-primary-content: oklch(21.61% 0.006 56.04);
10
+ --color-accent: oklch(70.49% 0.187 47.6);
11
+ --color-accent-content: oklch(21.61% 0.006 56.04);
12
+ --color-success: oklch(72.27% 0.192 149.58);
13
+ --color-error: oklch(57.71% 0.215 27.33);
14
+ --color-error-content: oklch(100.00% 0 0);
15
+
16
+ --radius-selector: 0.5rem;
17
+ --radius-field: 0.5rem;
18
+ --radius-box: 0.75rem;
19
+ --border: 1px;
20
+ --depth: 1;
21
+ --noise: 0;
22
+ }
23
+
24
+ [data-theme="dark"] {
25
+ color-scheme: dark;
26
+
27
+ --color-base-100: oklch(21.61% 0.006 56.04);
28
+ --color-base-200: oklch(26.85% 0.006 34.3);
29
+ --color-base-300: oklch(26.85% 0.006 34.3);
30
+ --color-base-content: oklch(96.99% 0.001 106.42);
31
+ --color-primary: oklch(83.69% 0.164 84.43);
32
+ --color-primary-content: oklch(21.61% 0.006 56.04);
33
+ --color-accent: oklch(70.49% 0.187 47.6);
34
+ --color-accent-content: oklch(21.61% 0.006 56.04);
35
+ --color-success: oklch(72.27% 0.192 149.58);
36
+ --color-error: oklch(57.71% 0.215 27.33);
37
+ --color-error-content: oklch(100.00% 0 0);
38
+
39
+ --radius-selector: 0.5rem;
40
+ --radius-field: 0.5rem;
41
+ --radius-box: 0.75rem;
42
+ --border: 1px;
43
+ --depth: 1;
44
+ --noise: 0;
45
+ }
46
+
47
+ @media (prefers-color-scheme: dark) {
48
+ :root:not([data-theme]) {
49
+ color-scheme: dark;
50
+
51
+ --color-base-100: oklch(21.61% 0.006 56.04);
52
+ --color-base-200: oklch(26.85% 0.006 34.3);
53
+ --color-base-300: oklch(26.85% 0.006 34.3);
54
+ --color-base-content: oklch(96.99% 0.001 106.42);
55
+ --color-primary: oklch(83.69% 0.164 84.43);
56
+ --color-primary-content: oklch(21.61% 0.006 56.04);
57
+ --color-accent: oklch(70.49% 0.187 47.6);
58
+ --color-accent-content: oklch(21.61% 0.006 56.04);
59
+ --color-success: oklch(72.27% 0.192 149.58);
60
+ --color-error: oklch(57.71% 0.215 27.33);
61
+ --color-error-content: oklch(100.00% 0 0);
62
+
63
+ --radius-selector: 0.5rem;
64
+ --radius-field: 0.5rem;
65
+ --radius-box: 0.75rem;
66
+ --border: 1px;
67
+ --depth: 1;
68
+ --noise: 0;
69
+ }
70
+ }
71
+
72
+ :root {
73
+ --publier-nav-height: 4rem;
74
+ --publier-sidebar-width: 16rem;
75
+ --publier-toc-width: 14rem;
76
+ --publier-page-max-width: 52rem;
77
+ --publier-layout-width: 1400px;
78
+ }
79
+
80
+ :root {
81
+
82
+ --color-pl-muted: oklch(72% 0.067 84.43);
83
+ --color-pl-muted-bg: oklch(22.5% 0.02 84.43);
84
+ --color-pl-subtle: oklch(55% 0.04 84.43);
85
+ --color-pl-card: oklch(20.5% 0.018 84.43);
86
+ --color-pl-card-hover: oklch(26% 0.03 84.43);
87
+ --color-pl-popover: oklch(20.5% 0.018 84.43);
88
+ --color-pl-border: oklch(28% 0.025 84.43);
89
+ --color-pl-border-strong: oklch(36% 0.035 84.43);
90
+ --color-pl-sidebar-accent: oklch(26% 0.03 84.43);
91
+ --color-pl-sidebar-active: color-mix(in oklch, var(--color-primary) 14%, transparent);
92
+ --color-pl-sidebar-active-fg: var(--color-primary);
93
+
94
+ --menu-active-bg: var(--color-pl-sidebar-active);
95
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
96
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
97
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
98
+ }
@@ -0,0 +1,95 @@
1
+ [data-theme="light"] {
2
+ color-scheme: light;
3
+
4
+ --color-base-100: oklch(100.00% 0 0);
5
+ --color-base-200: oklch(100.00% 0 0);
6
+ --color-base-300: oklch(97.82% 0.003 247.86);
7
+ --color-base-content: oklch(25.07% 0.005 248.02);
8
+ --color-primary: oklch(52.73% 0.137 150.07);
9
+ --color-primary-content: oklch(100.00% 0 0);
10
+ --color-accent: oklch(52.73% 0.137 150.07);
11
+ --color-accent-content: oklch(100.00% 0 0);
12
+ --color-success: oklch(67.67% 0.128 160.23);
13
+ --color-error: oklch(57.71% 0.215 27.33);
14
+ --color-error-content: oklch(100.00% 0 0);
15
+
16
+ --radius-selector: 0.5rem;
17
+ --radius-field: 0.5rem;
18
+ --radius-box: 0.75rem;
19
+ --border: 1px;
20
+ --depth: 1;
21
+ --noise: 0;
22
+ }
23
+
24
+ [data-theme="dark"] {
25
+ color-scheme: dark;
26
+
27
+ --color-base-100: oklch(22.23% 0.006 271.14);
28
+ --color-base-200: oklch(22.02% 0.016 256.82);
29
+ --color-base-300: oklch(27.13% 0.009 255.58);
30
+ --color-base-content: oklch(97.03% 0.01 247.93);
31
+ --color-primary: oklch(70.25% 0.132 160.37);
32
+ --color-primary-content: oklch(22.23% 0.006 271.14);
33
+ --color-accent: oklch(67.67% 0.128 160.23);
34
+ --color-accent-content: oklch(22.23% 0.006 271.14);
35
+ --color-success: oklch(70.25% 0.132 160.37);
36
+ --color-error: oklch(66.51% 0.205 26.96);
37
+ --color-error-content: oklch(22.23% 0.006 271.14);
38
+
39
+ --radius-selector: 0.5rem;
40
+ --radius-field: 0.5rem;
41
+ --radius-box: 0.75rem;
42
+ --border: 1px;
43
+ --depth: 1;
44
+ --noise: 0;
45
+ }
46
+
47
+ :root {
48
+ --publier-nav-height: 4rem;
49
+ --publier-sidebar-width: 16rem;
50
+ --publier-toc-width: 14rem;
51
+ --publier-page-max-width: 52rem;
52
+ --publier-layout-width: 1400px;
53
+ }
54
+
55
+ :root,
56
+ :root[data-theme="light"] {
57
+
58
+ --color-pl-muted: oklch(42% 0.06 150.07);
59
+ --color-pl-muted-bg: oklch(95% 0.022 150.07);
60
+ --color-pl-subtle: oklch(55% 0.03 150.07);
61
+ --color-pl-card: oklch(99.5% 0.008 150.07);
62
+ --color-pl-card-hover: oklch(97% 0.015 150.07);
63
+ --color-pl-popover: oklch(99.5% 0.008 150.07);
64
+ --color-pl-border: oklch(90% 0.02 150.07);
65
+ --color-pl-border-strong: oklch(82% 0.025 150.07);
66
+ --color-pl-sidebar-accent: oklch(95% 0.022 150.07);
67
+ --color-pl-sidebar-active: color-mix(in oklch, var(--color-primary) 10%, transparent);
68
+ --color-pl-sidebar-active-fg: var(--color-primary);
69
+
70
+ --menu-active-bg: var(--color-pl-sidebar-active);
71
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
72
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
73
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
74
+ }
75
+
76
+ :root[data-theme="dark"],
77
+ .dark {
78
+
79
+ --color-pl-muted: oklch(72% 0.067 160.37);
80
+ --color-pl-muted-bg: oklch(22.5% 0.02 160.37);
81
+ --color-pl-subtle: oklch(55% 0.04 160.37);
82
+ --color-pl-card: oklch(20.5% 0.018 160.37);
83
+ --color-pl-card-hover: oklch(26% 0.03 160.37);
84
+ --color-pl-popover: oklch(20.5% 0.018 160.37);
85
+ --color-pl-border: oklch(28% 0.025 160.37);
86
+ --color-pl-border-strong: oklch(36% 0.035 160.37);
87
+ --color-pl-sidebar-accent: oklch(26% 0.03 160.37);
88
+ --color-pl-sidebar-active: color-mix(in oklch, var(--color-primary) 14%, transparent);
89
+ --color-pl-sidebar-active-fg: var(--color-primary);
90
+
91
+ --menu-active-bg: var(--color-pl-sidebar-active);
92
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
93
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
94
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
95
+ }
package/package.json ADDED
@@ -0,0 +1,189 @@
1
+ {
2
+ "name": "@publier/shell",
3
+ "version": "2.1.1",
4
+ "license": "UNLICENSED",
5
+ "description": "Qwik + Astro docs layout for Publier sites.",
6
+ "_filesRationale": "mixed: dist for build-time TS + source globs for shipped .astro components",
7
+ "_osCpuRationale": "linux/x64 only because we bundle publier-gate (ELF). Mac/Win contributors cannot pnpm install --filter @publier/shell directly — they must clone the monorepo (workspace symlinks bypass the os/cpu check) or use WSL2/Docker. See docs/architecture/shell-platform-lock.md for the deferred refactor (extract @publier/shell-gate as an optional binary-only package so the OS-neutral 95% of @publier/shell becomes platform-agnostic).",
8
+ "type": "module",
9
+ "os": [
10
+ "linux"
11
+ ],
12
+ "cpu": [
13
+ "x64"
14
+ ],
15
+ "files": [
16
+ "dist",
17
+ "publier-gate",
18
+ "src/**/*.astro",
19
+ "src/**/*.css",
20
+ "!src/tailwind/themes/**",
21
+ "src/routes/**/*.xml.ts",
22
+ "src/schemas/**/*.ts",
23
+ "src/components/index.ts",
24
+ "src/components/types.ts",
25
+ "src/components/ui/types.ts",
26
+ "src/components/_nav-active-index.ts",
27
+ "src/components/_nav-path-match.ts",
28
+ "src/components/ask-ai.tsx",
29
+ "src/components/theme-storage.ts",
30
+ "src/components/theme-toggle-element.ts",
31
+ "src/runtime/banner-init.ts",
32
+ "src/runtime/lazy-upgrade-init.ts",
33
+ "src/runtime/sidebar-scroll-init.ts",
34
+ "src/runtime/theme-init.ts",
35
+ "src/icons/index.tsx",
36
+ "src/icons/resolve.tsx",
37
+ "src/qwik.ts",
38
+ "src/astro-modules.d.ts",
39
+ "src/virtual-modules.d.ts",
40
+ "!src/**/__tests__/**",
41
+ "!src/**/*.test.ts",
42
+ "!src/**/*.test.tsx",
43
+ "!src/**/*.tsbuildinfo"
44
+ ],
45
+ "exports": {
46
+ ".": {
47
+ "types": "./dist/index.d.mts",
48
+ "import": "./dist/index.mjs"
49
+ },
50
+ "./qwik": "./src/qwik.ts",
51
+ "./build": {
52
+ "types": "./dist/build-integration.d.mts",
53
+ "import": "./dist/build-integration.mjs"
54
+ },
55
+ "./schemas": "./src/schemas/index.ts",
56
+ "./loaders": {
57
+ "types": "./dist/loaders/index.d.mts",
58
+ "import": "./dist/loaders/index.mjs"
59
+ },
60
+ "./components": "./src/components/index.ts",
61
+ "./layouts/base-layout.astro": "./src/layouts/base-layout.astro",
62
+ "./routes/*.astro": "./src/routes/*.astro",
63
+ "./routes/*.xml.ts": "./src/routes/*.xml.ts",
64
+ "./search": {
65
+ "types": "./dist/search/index.d.mts",
66
+ "import": "./dist/search/index.mjs"
67
+ },
68
+ "./styles/base.css": "./src/styles/base.css",
69
+ "./styles/expressive-code.css": "./src/styles/expressive-code.css",
70
+ "./styles/tailwind-sources.css": "./src/styles/tailwind-sources.css",
71
+ "./plugins/remark-structure": {
72
+ "types": "./dist/plugins/remark-structure.d.mts",
73
+ "import": "./dist/plugins/remark-structure.mjs"
74
+ },
75
+ "./plugins/remark-asides": {
76
+ "types": "./dist/plugins/remark-asides.d.mts",
77
+ "import": "./dist/plugins/remark-asides.mjs"
78
+ },
79
+ "./plugins/remark-snippets": {
80
+ "types": "./dist/plugins/remark-snippets.d.mts",
81
+ "import": "./dist/plugins/remark-snippets.mjs"
82
+ },
83
+ "./plugins/remark-vars": {
84
+ "types": "./dist/plugins/remark-vars.d.mts",
85
+ "import": "./dist/plugins/remark-vars.mjs"
86
+ },
87
+ "./integration": {
88
+ "types": "./dist/integration.d.mts",
89
+ "import": "./dist/integration.mjs"
90
+ },
91
+ "./runtime/code-group-sync": {
92
+ "types": "./dist/runtime/code-group-sync.d.mts",
93
+ "import": "./dist/runtime/code-group-sync.mjs"
94
+ },
95
+ "./runtime/lazy-upgrade-registry": {
96
+ "types": "./dist/runtime/lazy-upgrade-registry.d.mts",
97
+ "import": "./dist/runtime/lazy-upgrade-registry.mjs"
98
+ },
99
+ "./runtime/tabs-sync": {
100
+ "types": "./dist/runtime/tabs-sync.d.mts",
101
+ "import": "./dist/runtime/tabs-sync.mjs"
102
+ },
103
+ "./tailwind": {
104
+ "types": "./dist/tailwind/index.d.mts",
105
+ "import": "./dist/tailwind/index.mjs"
106
+ },
107
+ "./tailwind/css-plugin": {
108
+ "types": "./dist/tailwind/css-plugin.d.mts",
109
+ "import": "./dist/tailwind/css-plugin.mjs"
110
+ },
111
+ "./tailwind/loader": {
112
+ "types": "./dist/tailwind/loader.d.mts",
113
+ "import": "./dist/tailwind/loader.mjs"
114
+ },
115
+ "./tailwind/preset.css": "./src/tailwind/preset.css",
116
+ "./tailwind/themes/*": "./dist/themes/*"
117
+ },
118
+ "publishConfig": {
119
+ "access": "public"
120
+ },
121
+ "dependencies": {
122
+ "@astrojs/rss": "^4.0.18",
123
+ "@astrojs/sitemap": "^3.7.2",
124
+ "@fontsource-variable/inter": "^5.2.8",
125
+ "@fontsource-variable/jetbrains-mono": "^5.2.8",
126
+ "@github/clipboard-copy-element": "^1.3.0",
127
+ "@github/relative-time-element": "^5.0.0",
128
+ "@github/tab-container-element": "^4.8.2",
129
+ "@tailwindcss/typography": "^0.5.19",
130
+ "astro-pagefind": "^1.8.6",
131
+ "daisyui": "^5.5.19",
132
+ "hastscript": "^9.0.1",
133
+ "katex": "^0.16.45",
134
+ "mdast-util-directive": "^3.1.0",
135
+ "mdast-util-from-markdown": "^2.0.3",
136
+ "mdast-util-to-markdown": "^2.1.2",
137
+ "mdast-util-to-string": "^4.0.0",
138
+ "rehype-autolink-headings": "^7.1.0",
139
+ "rehype-external-links": "^3.0.0",
140
+ "rehype-katex": "^7.0.1",
141
+ "remark-directive": "^4.0.0",
142
+ "remark-gfm": "^4.0.1",
143
+ "remark-math": "^6.0.0",
144
+ "unist-util-visit": "^5.1.0",
145
+ "yaml": "^2.9.0",
146
+ "@publier/native": "0.10.1"
147
+ },
148
+ "peerDependencies": {
149
+ "@qwik.dev/astro": ">=1.0.0",
150
+ "@qwik.dev/core": ">=2.0.0-beta",
151
+ "@tailwindcss/vite": "^4",
152
+ "astro": "^6.0.0 || >=7.0.0-alpha.0",
153
+ "astro-expressive-code": ">=0.35.0",
154
+ "tailwindcss": "^4",
155
+ "vite": ">=8"
156
+ },
157
+ "peerDependenciesMeta": {
158
+ "astro-expressive-code": {
159
+ "optional": true
160
+ }
161
+ },
162
+ "devDependencies": {
163
+ "@astrojs/mdx": "7.0.0-beta.2",
164
+ "@qwik.dev/core": "2.0.0-beta.34",
165
+ "@types/mdast": "^4.0.4",
166
+ "astro": "7.0.0-beta.3",
167
+ "rehype-stringify": "^10.0.1",
168
+ "remark-parse": "^11.0.0",
169
+ "remark-rehype": "^11.1.2",
170
+ "tsdown": "^0.22.0",
171
+ "typescript": "^6.0.3",
172
+ "unified": "^11.0.5",
173
+ "vfile": "^6.0.3",
174
+ "vite": "^8.0.12"
175
+ },
176
+ "repository": {
177
+ "type": "git",
178
+ "url": "https://github.com/Publier/releases.git",
179
+ "directory": "packages/shell"
180
+ },
181
+ "scripts": {
182
+ "build": "tsdown && node --experimental-strip-types --no-warnings ../../tools/css-theme-precompile/precompile.ts .",
183
+ "build:binary": "cargo build -p publier-gate --release --target x86_64-unknown-linux-gnu && cp ../../target/x86_64-unknown-linux-gnu/release/publier-gate ./publier-gate && chmod +x ./publier-gate",
184
+ "build:binary:debug": "cargo build -p publier-gate && cp ../../target/debug/publier-gate ./publier-gate && chmod +x ./publier-gate",
185
+ "dev": "tsdown --watch",
186
+ "check-types": "tsc --noEmit",
187
+ "test": "echo \"@publier/shell: covered by root vitest workspace\" && exit 0"
188
+ }
189
+ }
package/publier-gate ADDED
Binary file
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Ambient type for `.astro` component imports.
3
+ *
4
+ * Astro files are normally typed via `astro sync` in a consumer project,
5
+ * but `@publier/shell` type-checks its own source via `tsc --noEmit` outside
6
+ * of Astro's build pipeline. This declaration lets `index.ts` re-export the
7
+ * default export of sibling `.astro` files without TypeScript erroring.
8
+ *
9
+ * At runtime, the consumer's Astro build (via Vite's astro plugin) provides
10
+ * the real implementation — the `.astro` default export is an Astro
11
+ * `ComponentFactory` that Astro's SSR renderer knows how to emit.
12
+ */
13
+ declare module '*.astro' {
14
+ // Props are validated in each `.astro` file's own frontmatter via an
15
+ // exported `Props` interface; we use `any` at the boundary to avoid
16
+ // forcing a generic type import everywhere.
17
+ // biome-ignore lint/suspicious/noExplicitAny: library-boundary escape hatch, see docblock above.
18
+ const Component: (_props: any) => any;
19
+ export default Component;
20
+ }