vocs 2.5.2 → 2.6.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 (75) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/internal/llms.d.ts +5 -0
  6. package/dist/internal/llms.d.ts.map +1 -1
  7. package/dist/internal/llms.js +22 -2
  8. package/dist/internal/llms.js.map +1 -1
  9. package/dist/internal/mcp.d.ts.map +1 -1
  10. package/dist/internal/mcp.js +49 -0
  11. package/dist/internal/mcp.js.map +1 -1
  12. package/dist/internal/mdx.d.ts +9 -1
  13. package/dist/internal/mdx.d.ts.map +1 -1
  14. package/dist/internal/mdx.js +85 -1
  15. package/dist/internal/mdx.js.map +1 -1
  16. package/dist/internal/openapi/openapi.d.ts +3 -3
  17. package/dist/internal/openapi/sidebar.d.ts +2 -2
  18. package/dist/internal/openapi/sidebar.d.ts.map +1 -1
  19. package/dist/internal/openapi/sidebar.js +5 -6
  20. package/dist/internal/openapi/sidebar.js.map +1 -1
  21. package/dist/internal/search.d.ts.map +1 -1
  22. package/dist/internal/search.js +6 -2
  23. package/dist/internal/search.js.map +1 -1
  24. package/dist/internal/vite-plugins.d.ts.map +1 -1
  25. package/dist/internal/vite-plugins.js +1 -0
  26. package/dist/internal/vite-plugins.js.map +1 -1
  27. package/dist/mdx.d.ts.map +1 -1
  28. package/dist/mdx.js +4 -1
  29. package/dist/mdx.js.map +1 -1
  30. package/dist/react/Prompt.d.ts +8 -0
  31. package/dist/react/Prompt.d.ts.map +1 -0
  32. package/dist/react/Prompt.js +16 -0
  33. package/dist/react/Prompt.js.map +1 -0
  34. package/dist/react/internal/Prompt.client.d.ts +10 -0
  35. package/dist/react/internal/Prompt.client.d.ts.map +1 -0
  36. package/dist/react/internal/Prompt.client.js +50 -0
  37. package/dist/react/internal/Prompt.client.js.map +1 -0
  38. package/dist/react/internal/prompt.d.ts +9 -0
  39. package/dist/react/internal/prompt.d.ts.map +1 -0
  40. package/dist/react/internal/prompt.js +63 -0
  41. package/dist/react/internal/prompt.js.map +1 -0
  42. package/dist/server/openapi/assets.generated.js +3 -3
  43. package/dist/server/openapi/assets.generated.js.map +1 -1
  44. package/dist/styles/markdown.css +132 -0
  45. package/dist/vite.d.ts.map +1 -1
  46. package/dist/vite.js +2 -0
  47. package/dist/vite.js.map +1 -1
  48. package/dist/waku/internal/middleware/md-router.d.ts.map +1 -1
  49. package/dist/waku/internal/middleware/md-router.js +1 -0
  50. package/dist/waku/internal/middleware/md-router.js.map +1 -1
  51. package/package.json +2 -1
  52. package/src/index.ts +1 -0
  53. package/src/internal/llms.test.ts +43 -1
  54. package/src/internal/llms.ts +31 -3
  55. package/src/internal/mcp.test.ts +75 -1
  56. package/src/internal/mcp.ts +54 -0
  57. package/src/internal/mdx.test.ts +55 -2
  58. package/src/internal/mdx.ts +102 -2
  59. package/src/internal/openapi/openapi.ts +3 -3
  60. package/src/internal/openapi/sidebar.test.ts +3 -5
  61. package/src/internal/openapi/sidebar.ts +7 -8
  62. package/src/internal/search.test.ts +38 -0
  63. package/src/internal/search.ts +12 -3
  64. package/src/internal/vite-plugins.ts +1 -0
  65. package/src/mdx.tsx +9 -1
  66. package/src/react/Prompt.test.tsx +27 -0
  67. package/src/react/Prompt.tsx +47 -0
  68. package/src/react/internal/Prompt.client.test.tsx +115 -0
  69. package/src/react/internal/Prompt.client.tsx +160 -0
  70. package/src/react/internal/prompt.test.ts +45 -0
  71. package/src/react/internal/prompt.ts +78 -0
  72. package/src/server/openapi/assets.generated.ts +3 -3
  73. package/src/styles/markdown.css +132 -0
  74. package/src/vite.ts +2 -0
  75. package/src/waku/internal/middleware/md-router.ts +1 -0
@@ -594,6 +594,138 @@ pre[data-v][data-v-wrapped] {
594
594
 
595
595
  /* #endregion */
596
596
 
597
+ /* #region Prompts */
598
+
599
+ [data-v-prompt] {
600
+ @apply vocs:bg-surfaceTint/70 vocs:overflow-hidden vocs:rounded-lg vocs:border vocs:border-primary vocs:cursor-pointer;
601
+ }
602
+
603
+ /* biome-ignore lint/correctness/noUnknownFunction: _ */
604
+ @media (width <= theme(--breakpoint-md)) {
605
+ [data-v-content] > [data-v-prompt] {
606
+ @apply vocs:-mx-4 vocs:rounded-none vocs:border-l-0 vocs:border-r-0;
607
+ }
608
+ }
609
+
610
+ [data-v-prompt-header] {
611
+ @apply vocs:bg-transparent vocs:h-12 vocs:px-2 vocs:flex vocs:items-center vocs:justify-between vocs:border-b vocs:border-transparent vocs:transition-colors vocs:duration-150;
612
+ }
613
+
614
+ [data-v-prompt][data-expanded="true"] [data-v-prompt-header] {
615
+ @apply vocs:border-primary;
616
+ }
617
+
618
+ [data-v-prompt-header]:hover {
619
+ @apply vocs:bg-surfaceTint;
620
+ }
621
+
622
+ [data-v-prompt-icon] {
623
+ @apply vocs:size-3.5 vocs:shrink-0 vocs:text-accent7;
624
+ }
625
+
626
+ [data-v-prompt-copy] {
627
+ @apply vocs:h-full vocs:min-w-0 vocs:flex-1 vocs:px-2 vocs:flex vocs:items-center vocs:gap-2 vocs:bg-transparent vocs:rounded-md vocs:text-left vocs:text-[14px] vocs:text-secondary vocs:font-medium vocs:tracking-tight vocs:hover:text-heading vocs:cursor-pointer vocs:transition-colors vocs:duration-100;
628
+
629
+ &[data-state="copied"] [data-v-prompt-icon] {
630
+ @apply vocs:text-success;
631
+ }
632
+
633
+ &[data-state="error"] {
634
+ @apply vocs:text-destructive;
635
+ }
636
+ }
637
+
638
+ [data-v-prompt-actions] {
639
+ @apply vocs:flex vocs:items-center vocs:gap-0.5;
640
+ }
641
+
642
+ [data-v-prompt-action] {
643
+ @apply vocs:size-8 vocs:flex vocs:items-center vocs:justify-center vocs:bg-transparent vocs:rounded-md vocs:text-secondary vocs:hover:bg-surfaceTint vocs:hover:text-heading vocs:cursor-pointer vocs:transition-colors vocs:duration-100;
644
+
645
+ & > svg {
646
+ @apply vocs:size-4;
647
+ }
648
+ }
649
+
650
+ [data-v-prompt-tooltip] {
651
+ @apply vocs:bg-surface vocs:px-2 vocs:py-1 vocs:rounded-md vocs:border vocs:border-primary vocs:text-[12px] vocs:text-primary vocs:shadow-md;
652
+ }
653
+
654
+ [data-v-prompt-body] {
655
+ @apply vocs:relative vocs:m-0 vocs:bg-code-block vocs:px-code-block-px vocs:py-5 vocs:overflow-hidden vocs:whitespace-pre-wrap vocs:[overflow-wrap:anywhere] vocs:font-sans vocs:text-[15px] vocs:leading-[1.7] vocs:tracking-normal vocs:text-primary;
656
+
657
+ &::after {
658
+ content: "";
659
+ position: absolute;
660
+ inset: 0;
661
+ pointer-events: none;
662
+ transform: translateX(-120%);
663
+ background: linear-gradient(
664
+ 105deg,
665
+ transparent 25%,
666
+ oklch(from var(--vocs-color-accent) l c h / 10%) 50%,
667
+ transparent 75%
668
+ );
669
+ }
670
+
671
+ & > code {
672
+ @apply vocs:px-0 vocs:font-sans;
673
+ }
674
+
675
+ /* biome-ignore lint/correctness/noUnknownFunction: _ */
676
+ @media (width <= theme(--breakpoint-md)) {
677
+ @apply vocs:px-4 vocs:py-4;
678
+ }
679
+ }
680
+
681
+ [data-v-prompt]:hover [data-v-prompt-body]::after {
682
+ animation: vocs-prompt-shimmer 900ms ease-out;
683
+ }
684
+
685
+ @keyframes vocs-prompt-shimmer {
686
+ to {
687
+ transform: translateX(120%);
688
+ }
689
+ }
690
+
691
+ @media (prefers-reduced-motion: reduce) {
692
+ [data-v-prompt]:hover [data-v-prompt-body]::after {
693
+ animation: none;
694
+ }
695
+ }
696
+
697
+ [data-v-prompt-token="url"] {
698
+ @apply vocs:text-accent7 vocs:underline vocs:decoration-accent7/40 vocs:underline-offset-2 vocs:transition-colors vocs:duration-100 vocs:cursor-pointer;
699
+
700
+ &:hover {
701
+ @apply vocs:text-accent8 vocs:decoration-accent8;
702
+ }
703
+ }
704
+
705
+ [data-v-prompt-token="code"] {
706
+ @apply vocs:bg-surfaceTint vocs:text-heading vocs:rounded-sm vocs:px-1 vocs:py-0.5;
707
+ box-decoration-break: clone;
708
+ }
709
+
710
+ [data-v-prompt-delimiter] {
711
+ @apply vocs:text-muted;
712
+ }
713
+
714
+ [data-v-prompt-token="label"] {
715
+ @apply vocs:text-heading vocs:font-medium;
716
+ }
717
+
718
+ [data-v-prompt-token="marker"] {
719
+ @apply vocs:text-accent7;
720
+ }
721
+
722
+ [data-v-prompt-token="placeholder"] {
723
+ @apply vocs:bg-accenta3 vocs:text-accent8 vocs:rounded-sm vocs:px-1;
724
+ box-decoration-break: clone;
725
+ }
726
+
727
+ /* #endregion */
728
+
597
729
  /* #region Code group */
598
730
 
599
731
  [data-v-code-group-list] {
package/src/vite.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { getIconData, iconToHTML, iconToSVG } from '@iconify/utils'
2
2
  import { type IconifyJSON, icons as lucide } from '@iconify-json/lucide'
3
+ import { icons as ri } from '@iconify-json/ri'
3
4
  import { icons as simple } from '@iconify-json/simple-icons'
4
5
  import type { PluginOption } from 'vite'
5
6
 
@@ -24,6 +25,7 @@ export async function vocs(): Promise<PluginOption[]> {
24
25
  compiler: 'jsx',
25
26
  customCollections: {
26
27
  lucide: getIcon(lucide),
28
+ ri: getIcon(ri),
27
29
  'simple-icons': getIcon(simple),
28
30
  },
29
31
  jsx: 'react',
@@ -23,6 +23,7 @@ async function resolveContent() {
23
23
  pages: [...openapiPages, ...pages],
24
24
  title: config.title,
25
25
  description: config.description,
26
+ pagePrelude: Llms.getMarkdownPagePrelude(config),
26
27
  rehypePlugins,
27
28
  remarkPlugins,
28
29
  sidebar: config.sidebar,