@stainless-api/docs 0.1.0-beta.6 → 0.1.0-beta.61

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 (115) hide show
  1. package/CHANGELOG.md +486 -0
  2. package/README.md +1 -1
  3. package/eslint-suppressions.json +52 -0
  4. package/locals.d.ts +16 -0
  5. package/package.json +45 -40
  6. package/plugin/assets/languages/csharp.svg +1 -0
  7. package/plugin/buildAlgoliaIndex.ts +32 -7
  8. package/plugin/cms/server.ts +130 -58
  9. package/plugin/cms/sidebar-builder.ts +7 -26
  10. package/plugin/cms/worker.ts +83 -5
  11. package/plugin/components/MethodDescription.tsx +54 -0
  12. package/plugin/components/SDKSelect.astro +7 -87
  13. package/plugin/components/SnippetCode.tsx +53 -8
  14. package/plugin/components/search/SearchAlgolia.astro +14 -26
  15. package/plugin/components/search/SearchIsland.tsx +38 -24
  16. package/plugin/create-playground.shim.tsx +3 -0
  17. package/plugin/generateAPIReferenceLink.ts +2 -2
  18. package/plugin/globalJs/ai-dropdown-options.ts +235 -0
  19. package/plugin/globalJs/code-snippets.ts +15 -8
  20. package/plugin/globalJs/copy.ts +81 -16
  21. package/plugin/globalJs/method-descriptions.ts +33 -0
  22. package/plugin/globalJs/navigation.ts +7 -4
  23. package/plugin/index.ts +179 -35
  24. package/plugin/languages.ts +5 -2
  25. package/plugin/loadPluginConfig.ts +121 -32
  26. package/plugin/middlewareBuilder/stainlessMiddleware.d.ts +1 -1
  27. package/plugin/react/Routing.tsx +208 -104
  28. package/plugin/referencePlaceholderUtils.ts +1 -1
  29. package/plugin/replaceSidebarPlaceholderMiddleware.ts +5 -1
  30. package/plugin/routes/Docs.astro +61 -83
  31. package/plugin/routes/Overview.astro +10 -16
  32. package/plugin/routes/markdown.ts +7 -7
  33. package/plugin/vendor/preview.worker.docs.js +19768 -17702
  34. package/plugin/vendor/templates/go.md +1 -1
  35. package/plugin/vendor/templates/python.md +1 -1
  36. package/resolveSrcFile.ts +10 -0
  37. package/scripts/vendor_deps.ts +5 -5
  38. package/shared/getSharedLogger.ts +15 -0
  39. package/shared/terminalUtils.ts +3 -0
  40. package/src/content.config.ts +9 -0
  41. package/stl-docs/components/AIDropdown.tsx +63 -0
  42. package/stl-docs/components/AiChatIsland.tsx +10 -0
  43. package/stl-docs/components/{content-panel/ContentBreadcrumbs.tsx → ContentBreadcrumbs.tsx} +10 -18
  44. package/stl-docs/components/Head.astro +16 -0
  45. package/stl-docs/components/Header.astro +6 -8
  46. package/stl-docs/components/PageFrame.astro +14 -0
  47. package/stl-docs/components/PageTitle.astro +82 -0
  48. package/stl-docs/components/TableOfContents.astro +34 -0
  49. package/stl-docs/components/ThemeSelect.astro +118 -136
  50. package/stl-docs/components/content-panel/ContentPanel.astro +16 -25
  51. package/stl-docs/components/headers/SplashMobileMenuToggle.astro +17 -1
  52. package/stl-docs/components/headers/StackedHeader.astro +29 -24
  53. package/stl-docs/components/icons/chat-gpt.tsx +17 -0
  54. package/stl-docs/components/icons/claude.tsx +10 -0
  55. package/stl-docs/components/icons/cursor.tsx +10 -0
  56. package/stl-docs/components/icons/gemini.tsx +19 -0
  57. package/stl-docs/components/icons/markdown.tsx +10 -0
  58. package/stl-docs/components/index.ts +1 -0
  59. package/stl-docs/components/mintlify-compat/Accordion.astro +7 -5
  60. package/stl-docs/components/mintlify-compat/AccordionGroup.astro +7 -3
  61. package/stl-docs/components/mintlify-compat/Columns.astro +40 -42
  62. package/stl-docs/components/mintlify-compat/Frame.astro +16 -18
  63. package/stl-docs/components/mintlify-compat/Step.astro +30 -32
  64. package/stl-docs/components/mintlify-compat/Steps.astro +8 -10
  65. package/stl-docs/components/mintlify-compat/callouts/Callout.astro +1 -1
  66. package/stl-docs/components/mintlify-compat/callouts/Check.astro +1 -1
  67. package/stl-docs/components/mintlify-compat/callouts/Danger.astro +1 -1
  68. package/stl-docs/components/mintlify-compat/callouts/Info.astro +1 -1
  69. package/stl-docs/components/mintlify-compat/callouts/Note.astro +1 -1
  70. package/stl-docs/components/mintlify-compat/callouts/Tip.astro +1 -1
  71. package/stl-docs/components/mintlify-compat/callouts/Warning.astro +1 -1
  72. package/stl-docs/components/mintlify-compat/card.css +33 -35
  73. package/stl-docs/components/nav-tabs/NavDropdown.astro +31 -70
  74. package/stl-docs/components/nav-tabs/NavTabs.astro +78 -80
  75. package/stl-docs/components/nav-tabs/SecondaryNavTabs.astro +15 -8
  76. package/stl-docs/components/nav-tabs/buildNavLinks.ts +3 -2
  77. package/stl-docs/components/pagination/HomeLink.astro +10 -0
  78. package/stl-docs/components/pagination/Pagination.astro +175 -0
  79. package/stl-docs/components/pagination/PaginationLinkEmphasized.astro +22 -0
  80. package/stl-docs/components/pagination/PaginationLinkQuiet.astro +13 -0
  81. package/stl-docs/components/pagination/util.ts +71 -0
  82. package/stl-docs/components/scripts.ts +1 -0
  83. package/stl-docs/disableCalloutSyntax.ts +36 -0
  84. package/stl-docs/index.ts +130 -48
  85. package/stl-docs/loadStlDocsConfig.ts +44 -4
  86. package/stl-docs/proseMarkdown/proseMarkdownIntegration.ts +64 -0
  87. package/stl-docs/proseMarkdown/proseMarkdownMiddleware.ts +34 -0
  88. package/stl-docs/proseMarkdown/toMarkdown.ts +158 -0
  89. package/stl-docs/proseSearchIndexing.ts +113 -0
  90. package/stl-docs/tabsMiddleware.ts +11 -3
  91. package/styles/code.css +108 -140
  92. package/styles/fonts.css +32 -17
  93. package/styles/links.css +11 -48
  94. package/styles/method-descriptions.css +36 -0
  95. package/styles/overrides.css +48 -60
  96. package/styles/page.css +92 -52
  97. package/styles/sdk_select.css +9 -7
  98. package/styles/search.css +58 -69
  99. package/styles/sidebar.css +211 -131
  100. package/styles/{variables.css → sl-variables.css} +3 -2
  101. package/styles/stldocs-variables.css +6 -0
  102. package/styles/toc.css +41 -34
  103. package/theme.css +10 -10
  104. package/tsconfig.json +2 -5
  105. package/virtual-module.d.ts +23 -3
  106. package/components/variables.css +0 -135
  107. /package/{plugin/assets → assets}/fonts/geist/OFL.txt +0 -0
  108. /package/{plugin/assets → assets}/fonts/geist/geist-italic-latin-ext.woff2 +0 -0
  109. /package/{plugin/assets → assets}/fonts/geist/geist-italic-latin.woff2 +0 -0
  110. /package/{plugin/assets → assets}/fonts/geist/geist-latin-ext.woff2 +0 -0
  111. /package/{plugin/assets → assets}/fonts/geist/geist-latin.woff2 +0 -0
  112. /package/{plugin/assets → assets}/fonts/geist/geist-mono-italic-latin-ext.woff2 +0 -0
  113. /package/{plugin/assets → assets}/fonts/geist/geist-mono-italic-latin.woff2 +0 -0
  114. /package/{plugin/assets → assets}/fonts/geist/geist-mono-latin-ext.woff2 +0 -0
  115. /package/{plugin/assets → assets}/fonts/geist/geist-mono-latin.woff2 +0 -0
@@ -1,89 +1,133 @@
1
1
  ---
2
- import { Dropdown, DropdownTrigger, DropdownMenu, DropdownItem } from '@stainless-api/docs-ui/src/components/dropdown';
2
+ import { Dropdown } from '@stainless-api/docs/components';
3
+ import { ChevronsUpDownIcon } from 'lucide-react';
3
4
 
4
5
  const options = [
5
6
  {
6
7
  value: 'auto',
7
8
  label: 'Auto',
8
- icon: `<svg
9
- width="24"
10
- height="24"
11
- viewBox="0 0 24 24"
12
- fill="none"
13
- xmlns="http://www.w3.org/2000/svg"
14
- >
15
- <path
9
+ icon: `
10
+ <svg
11
+ width="24"
12
+ height="24"
13
+ viewBox="0 0 24 24"
14
+ fill="none"
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ >
17
+ <path
16
18
  d="M21 5C21 4.44771 20.5523 4 20 4H4C3.44772 4 3 4.44772 3 5V15C3 15.5523 3.44772 16 4 16H20C20.5523 16 21 15.5523 21 15V5ZM23 15C23 16.6569 21.6569 18 20 18H13V20H16C16.5523 20 17 20.4477 17 21C17 21.5523 16.5523 22 16 22H8C7.44772 22 7 21.5523 7 21C7 20.4477 7.44772 20 8 20H11V18H4C2.34315 18 1 16.6569 1 15V5C1 3.34315 2.34315 2 4 2H20C21.6569 2 23 3.34315 23 5V15Z"
17
- fill="#262626"></path></svg
18
- >`,
19
+ fill="var(--stl-color-foreground)"
20
+ ></path>
21
+ </svg>
22
+ `,
19
23
  },
20
24
  {
21
25
  value: 'light',
22
26
  label: 'Light',
23
- icon: `<svg
24
- width="24"
25
- height="24"
26
- viewBox="0 0 24 24"
27
- fill="none"
28
- xmlns="http://www.w3.org/2000/svg"
29
- >
30
- <path
27
+ icon: `
28
+ <svg
29
+ width="24"
30
+ height="24"
31
+ viewBox="0 0 24 24"
32
+ fill="none"
33
+ xmlns="http://www.w3.org/2000/svg"
34
+ >
35
+ <path
31
36
  d="M11 22V20C11 19.4477 11.4477 19 12 19C12.5523 19 13 19.4477 13 20V22C13 22.5523 12.5523 23 12 23C11.4477 23 11 22.5523 11 22ZM5.63281 16.9531C6.02332 16.5626 6.65635 16.5626 7.04688 16.9531C7.4374 17.3436 7.4374 17.9767 7.04688 18.3672L5.6377 19.7773C5.24717 20.1679 4.61318 20.1679 4.22266 19.7773C3.83232 19.387 3.83259 18.7538 4.22266 18.3633L5.63281 16.9531ZM16.9531 16.9531C17.3191 16.5871 17.8982 16.5637 18.291 16.8838L18.3672 16.9531L19.7773 18.3633L19.8457 18.4385C20.1663 18.8313 20.1435 19.4111 19.7773 19.7773C19.4113 20.1433 18.8322 20.1658 18.4395 19.8457L18.3633 19.7773L16.9531 18.3672L16.8848 18.291C16.5643 17.8983 16.5871 17.3193 16.9531 16.9531ZM15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12ZM4 11C4.55228 11 5 11.4477 5 12C5 12.5523 4.55228 13 4 13H2C1.44772 13 1 12.5523 1 12C1 11.4477 1.44772 11 2 11H4ZM22 11C22.5523 11 23 11.4477 23 12C23 12.5523 22.5523 13 22 13H20C19.4477 13 19 12.5523 19 12C19 11.4477 19.4477 11 20 11H22ZM7.04688 5.63281C7.4374 6.02334 7.4374 6.65635 7.04688 7.04688C6.65634 7.43728 6.0233 7.43736 5.63281 7.04688L4.22266 5.63672L5.6377 4.22266L7.04688 5.63281ZM18.3633 4.22266C18.7538 3.83235 19.3869 3.83224 19.7773 4.22266C20.1678 4.61311 20.1677 5.24618 19.7773 5.63672L18.3672 7.04688C17.9767 7.4374 17.3436 7.4374 16.9531 7.04688C16.5626 6.65635 16.5626 6.02332 16.9531 5.63281L18.3633 4.22266ZM4.22266 4.22266C4.61318 3.83213 5.24717 3.83213 5.6377 4.22266L4.22266 5.63672C3.83254 5.24621 3.83238 4.61307 4.22266 4.22266ZM11 4V2C11 1.44772 11.4477 1 12 1C12.5523 1 13 1.44772 13 2V4C13 4.55228 12.5523 5 12 5C11.4477 5 11 4.55228 11 4ZM17 12C17 14.7614 14.7614 17 12 17C9.23858 17 7 14.7614 7 12C7 9.23858 9.23858 7 12 7C14.7614 7 17 9.23858 17 12Z"
32
- fill="#262626"></path></svg
33
- >`,
37
+ fill="var(--stl-color-foreground)"
38
+ ></path>
39
+ </svg>
40
+ `,
34
41
  },
35
42
  {
36
43
  value: 'dark',
37
44
  label: 'Dark',
38
- icon: `<svg
39
- width="24"
40
- height="24"
41
- viewBox="0 0 24 24"
42
- fill="none"
43
- xmlns="http://www.w3.org/2000/svg"
44
- >
45
- <path
46
- d="M9.13569 7.5C9.13569 6.37669 9.39314 5.28007 9.87397 4.28809C9.05381 4.51419 8.27063 4.87087 7.55561 5.34863C6.24009 6.22764 5.21483 7.47676 4.60932 8.93848C4.00386 10.4002 3.84465 12.0088 4.15327 13.5605C4.46195 15.1124 5.2239 16.5384 6.34272 17.6572C7.46154 18.776 8.88756 19.538 10.4394 19.8467C11.9912 20.1553 13.5997 19.9961 15.0615 19.3906C16.5232 18.7851 17.7723 17.7599 18.6513 16.4443C19.1292 15.7291 19.4848 14.9454 19.7109 14.125C18.719 14.6057 17.6231 14.8643 16.4999 14.8643C14.5469 14.8643 12.6739 14.088 11.2929 12.707C9.91191 11.326 9.13569 9.45304 9.13569 7.5ZM11.1357 7.5C11.1357 8.92261 11.701 10.287 12.707 11.293C13.7129 12.2989 15.0773 12.8643 16.4999 12.8643C17.9226 12.8643 19.287 12.2989 20.2929 11.293C20.5789 11.007 21.0091 10.9214 21.3828 11.0762C21.7564 11.231 22 11.5956 22 12C22 13.9778 21.4132 15.9112 20.3144 17.5557C19.2156 19.2001 17.6543 20.4824 15.8271 21.2393C13.9998 21.9961 11.9886 22.1935 10.0488 21.8076C8.10909 21.4217 6.32711 20.4697 4.92866 19.0713C3.53021 17.6728 2.57822 15.8909 2.19233 13.9512C1.80648 12.0114 2.00382 10.0001 2.76069 8.17285C3.51756 6.34567 4.79987 4.78434 6.44429 3.68555C8.08878 2.58673 10.0221 2 11.9999 2C12.4044 2 12.769 2.24359 12.9238 2.61719C13.0786 2.99086 12.993 3.42103 12.707 3.70703C11.701 4.71297 11.1357 6.07739 11.1357 7.5Z"
47
- fill="#262626"></path></svg
48
- >`,
45
+ icon: `
46
+ <svg
47
+ width="24"
48
+ height="24"
49
+ viewBox="0 0 24 24"
50
+ fill="none"
51
+ xmlns="http://www.w3.org/2000/svg"
52
+ >
53
+ <path
54
+ d="M9.13569 7.5C9.13569 6.37669 9.39314 5.28007 9.87397 4.28809C9.05381 4.51419 8.27063 4.87087 7.55561 5.34863C6.24009 6.22764 5.21483 7.47676 4.60932 8.93848C4.00386 10.4002 3.84465 12.0088 4.15327 13.5605C4.46195 15.1124 5.2239 16.5384 6.34272 17.6572C7.46154 18.776 8.88756 19.538 10.4394 19.8467C11.9912 20.1553 13.5997 19.9961 15.0615 19.3906C16.5232 18.7851 17.7723 17.7599 18.6513 16.4443C19.1292 15.7291 19.4848 14.9454 19.7109 14.125C18.719 14.6057 17.6231 14.8643 16.4999 14.8643C14.5469 14.8643 12.6739 14.088 11.2929 12.707C9.91191 11.326 9.13569 9.45304 9.13569 7.5ZM11.1357 7.5C11.1357 8.92261 11.701 10.287 12.707 11.293C13.7129 12.2989 15.0773 12.8643 16.4999 12.8643C17.9226 12.8643 19.287 12.2989 20.2929 11.293C20.5789 11.007 21.0091 10.9214 21.3828 11.0762C21.7564 11.231 22 11.5956 22 12C22 13.9778 21.4132 15.9112 20.3144 17.5557C19.2156 19.2001 17.6543 20.4824 15.8271 21.2393C13.9998 21.9961 11.9886 22.1935 10.0488 21.8076C8.10909 21.4217 6.32711 20.4697 4.92866 19.0713C3.53021 17.6728 2.57822 15.8909 2.19233 13.9512C1.80648 12.0114 2.00382 10.0001 2.76069 8.17285C3.51756 6.34567 4.79987 4.78434 6.44429 3.68555C8.08878 2.58673 10.0221 2 11.9999 2C12.4044 2 12.769 2.24359 12.9238 2.61719C13.0786 2.99086 12.993 3.42103 12.707 3.70703C11.701 4.71297 11.1357 6.07739 11.1357 7.5Z"
55
+ fill="var(--stl-color-foreground)"
56
+ ></path>
57
+ </svg>
58
+ `,
49
59
  },
50
60
  ];
51
61
  ---
52
62
 
53
- <div class="stldocs-root theme-select-root">
54
- <Dropdown className="theme-select-container" data-theme-select>
55
- <DropdownTrigger withChevron>
56
- <span class="stl-dropdown-icon">
57
- {options.map(({ value, label, icon }) => <Fragment set:html={icon} />)}
58
- </span>
59
- </DropdownTrigger>
60
- <DropdownMenu role="listbox">
61
- {
62
- options.map(({ value, label, icon }) => (
63
- <DropdownItem role="option" value={value}>
64
- <div>
65
- <span class="stl-dropdown-icon">
66
- <Fragment set:html={icon} />
67
- </span>
68
- <span class="stl-dropdown-label">{label}</span>
69
- </div>
70
- </DropdownItem>
71
- ))
72
- }
73
- </DropdownMenu>
74
- </Dropdown>
75
- </div>
63
+ <Dropdown data-theme-select>
64
+ <Dropdown.Trigger>
65
+ <Dropdown.TriggerSelectedItem>
66
+ <span class="stl-dropdown-icon"></span>
67
+ </Dropdown.TriggerSelectedItem>
68
+ <Dropdown.TriggerIcon>
69
+ <ChevronsUpDownIcon size={16} />
70
+ </Dropdown.TriggerIcon>
71
+ </Dropdown.Trigger>
72
+ <Dropdown.Menu>
73
+ {
74
+ options.map(({ value, label, icon }) => (
75
+ <Dropdown.MenuItem value={value}>
76
+ <Dropdown.Icon>
77
+ <Fragment set:html={icon} />
78
+ </Dropdown.Icon>
79
+ <Dropdown.MenuItemText>{label}</Dropdown.MenuItemText>
80
+ <Dropdown.MenuItemTemplate>
81
+ <span class="stl-dropdown-icon">
82
+ <Fragment set:html={icon} />
83
+ </span>
84
+ </Dropdown.MenuItemTemplate>
85
+ </Dropdown.MenuItem>
86
+ ))
87
+ }
88
+ </Dropdown.Menu>
89
+ </Dropdown>
76
90
 
77
- {/* Inlined to avoid FOUC. Uses global scope from `ThemeProvider.astro` */}
91
+ {/* Inlined to avoid FOUC. All theme selects are initialized here */}
78
92
  <script is:inline>
79
- document.addEventListener('astro:page-load', () => {
80
- StarlightThemeProvider.updatePickers();
81
- });
82
- StarlightThemeProvider.updatePickers();
93
+ window.didInitThemePickers = window.didInitThemePickers ?? false;
94
+
95
+ // Only run once.
96
+ if (!window.didInitThemePickers) {
97
+ window.didInitThemePickers = true;
98
+
99
+ // The stored theme will be either 'auto', 'light', 'dark' or null.
100
+ const storedTheme = typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
101
+
102
+ // This theme is either 'light' or 'dark'. It's used for setting the data-theme attribute.
103
+ const theme =
104
+ !storedTheme || storedTheme === 'auto'
105
+ ? window.matchMedia('(prefers-color-scheme: light)').matches
106
+ ? 'light'
107
+ : 'dark'
108
+ : storedTheme;
109
+
110
+ document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark';
111
+
112
+ const themeSelects = document.querySelectorAll('[data-theme-select]');
113
+ const selectedThemeValue = storedTheme || 'auto';
114
+
115
+ themeSelects.forEach((select) => {
116
+ const tmpl = select.querySelector(`[data-value="${selectedThemeValue}"] template`);
117
+ const selectedSlot = select.querySelector('[data-part="trigger-selected"]');
118
+
119
+ selectedSlot.innerHTML = '';
120
+ if (tmpl) {
121
+ selectedSlot.appendChild(tmpl.content.cloneNode(true));
122
+ return;
123
+ }
124
+ });
125
+ }
83
126
  </script>
84
127
 
85
128
  <script>
86
129
  import { getPageLoadEvent } from '../../plugin/helpers/getPageLoadEvent';
130
+ import { initDropdown } from '@stainless-api/docs/components/scripts';
87
131
 
88
132
  const storageKey = 'starlight-theme';
89
133
 
@@ -95,115 +139,54 @@ const options = [
95
139
  const loadTheme = (): Theme => parseTheme(localStorage.getItem(storageKey));
96
140
 
97
141
  const storeTheme = (theme: Theme) => {
98
- localStorage.setItem(storageKey, theme === 'light' || theme === 'dark' ? theme : '');
142
+ localStorage.setItem(storageKey, parseTheme(theme));
99
143
  };
100
144
 
101
145
  const getPreferredColorScheme = (): Theme =>
102
146
  window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark';
103
147
 
104
- const highlightSelected = (doc: Document, theme: Theme) => {
105
- doc.querySelectorAll('.theme-select-container.stldocs-dropdown').forEach((container) => {
106
- const icons = container.querySelectorAll('.stl-dropdown-icon svg');
107
- icons.forEach((icon, index) => {
108
- const themeForIcon = ['auto', 'light', 'dark'][index];
109
- icon.classList.toggle('selected', theme === themeForIcon);
110
- });
111
-
112
- container.querySelectorAll('.stldocs-dropdown-item').forEach((option) => {
113
- const label = option.querySelector('.stl-dropdown-label')?.textContent?.toLowerCase();
114
- option.classList.toggle('selected', label === theme);
115
- });
116
-
117
- const menu = container.querySelector('.stldocs-dropdown-menu');
118
- menu?.classList.remove('open');
119
- });
120
- };
121
-
122
148
  const applyTheme = (doc: Document, theme: Theme) => {
123
149
  const effective = theme === 'auto' ? getPreferredColorScheme() : theme;
124
150
  doc.documentElement.dataset.theme = effective;
125
151
  storeTheme(theme);
126
- StarlightThemeProvider?.updatePickers?.(theme);
127
- highlightSelected(doc, theme);
128
152
  };
129
153
 
130
154
  function setupThemeMode(doc: Document) {
131
- // Attach to all instances of .theme-select-container.stldocs-dropdown. We need this because
132
- // the theme component is used in the mobile dropdown and the desktop sidebar.
133
- doc.querySelectorAll('.theme-select-container.stldocs-dropdown').forEach((container) => {
134
- const trigger = container.querySelector('.stldocs-dropdown-trigger');
135
- const menu = container.querySelector('.stldocs-dropdown-menu');
136
-
137
- if (trigger && menu) {
138
- trigger.addEventListener('click', (e) => {
139
- e.stopPropagation();
140
-
141
- doc.querySelectorAll('.theme-select-container .stldocs-dropdown-menu.open').forEach((otherMenu) => {
142
- if (otherMenu !== menu) otherMenu.classList.remove('open');
143
- });
144
-
145
- menu.classList.toggle('open');
146
- });
147
-
148
- container.querySelectorAll('.stldocs-dropdown-item').forEach((option) => {
149
- option.addEventListener('click', () => {
150
- const label = option.querySelector('.stl-dropdown-label')?.textContent?.toLowerCase() ?? '';
151
- if (['auto', 'light', 'dark'].includes(label)) {
152
- applyTheme(doc, label as Theme);
153
- }
154
- });
155
- });
156
- }
157
- });
158
-
159
- // Close dropdown if you click outside
160
- doc.addEventListener('click', (e) => {
161
- doc.querySelectorAll('.theme-select-container .stldocs-dropdown-menu.open').forEach((menu) => {
162
- if (e.target instanceof HTMLElement && !menu.contains(e.target)) {
163
- menu.classList.remove('open');
164
- }
165
- });
166
- });
167
-
168
- // React to system preference changes
169
155
  matchMedia('(prefers-color-scheme: light)').addEventListener('change', () => {
170
156
  if (loadTheme() === 'auto') applyTheme(doc, 'auto');
171
157
  });
172
158
 
173
159
  applyTheme(doc, loadTheme());
160
+ return loadTheme();
174
161
  }
175
162
 
176
163
  document.addEventListener('astro:before-swap', (event) => {
177
164
  applyTheme(event.newDocument, loadTheme());
178
165
  });
179
166
 
180
- document.addEventListener(getPageLoadEvent(), (e) => {
181
- setupThemeMode(document);
167
+ document.addEventListener(getPageLoadEvent(), () => {
168
+ const initialTheme = setupThemeMode(document);
169
+ const themeSelects = document.querySelectorAll<HTMLElement>('[data-theme-select]');
170
+ themeSelects.forEach((select) => {
171
+ initDropdown({
172
+ root: select,
173
+ onSelect: (value: string) => applyTheme(document, value as Theme),
174
+ initialValue: initialTheme as string,
175
+ });
176
+ });
182
177
  });
183
178
  </script>
184
179
 
185
180
  <style is:global>
186
- .theme-select-root {
187
- background-color: unset;
188
- display: flex;
189
- align-items: center;
190
- }
191
181
  .stl-dropdown-icon svg {
192
182
  width: 16px;
193
183
  height: 16px;
194
184
 
195
185
  path {
196
- fill: var(--sl-color-gray-2);
186
+ fill: var(--stl-color-foreground-reduced);
197
187
  }
198
188
  }
199
189
 
200
- .stldocs-dropdown-trigger .stl-dropdown-icon svg {
201
- display: none;
202
-
203
- &.selected {
204
- display: flex;
205
- }
206
- }
207
190
  .stl-dropdown-icon {
208
191
  display: flex;
209
192
  align-items: center;
@@ -212,8 +195,7 @@ const options = [
212
195
  height: 16px;
213
196
  }
214
197
 
215
- span.stl-dropdown-icon,
216
- span.stl-dropdown-chevron {
198
+ span.stl-dropdown-icon {
217
199
  padding-left: 0;
218
200
  padding-right: 0%;
219
201
  }
@@ -1,15 +1,9 @@
1
1
  ---
2
- import { ContentBreadcrumbs } from './ContentBreadcrumbs';
3
- const currentPath = Astro.url.pathname;
2
+
4
3
  ---
5
4
 
6
- <div class="content-panel">
7
- <div class="sl-container stl-ui-prose">
8
- <div class="stl-ui-not-prose">
9
- <ContentBreadcrumbs currentPath={currentPath} sidebarEntry={Astro.locals.starlightRoute.sidebar} />
10
- </div>
11
- <slot />
12
- </div>
5
+ <div class="content-panel sl-container stl-ui-prose">
6
+ <slot />
13
7
  </div>
14
8
 
15
9
  <style>
@@ -17,35 +11,32 @@ const currentPath = Astro.url.pathname;
17
11
  .content-panel {
18
12
  padding: 1.5rem var(--sl-content-pad-x);
19
13
  }
20
- .content-panel + .content-panel {
21
- border-top: 1px solid var(--sl-color-hairline);
22
- }
23
14
  .sl-container {
24
15
  max-width: var(--sl-content-width);
25
16
  }
26
17
 
27
- .sl-container > :global(* + *) {
28
- margin-top: 1.5rem;
29
- }
30
-
31
18
  @media (min-width: 72rem) {
32
19
  .sl-container {
33
20
  margin-inline: var(--sl-content-margin-inline, auto);
34
21
  }
35
22
  }
36
23
  }
37
- /* Overrides */
38
- @layer stainless {
24
+
25
+ .content-panel {
26
+ padding: 0 var(--sl-content-pad-x) 0 var(--sl-content-pad-x);
27
+ }
28
+
29
+ .content-panel + .content-panel {
30
+ margin-top: 24px;
31
+ }
32
+
33
+ @media (min-width: 50rem) {
39
34
  .content-panel {
40
- padding: 0 var(--sl-content-pad-x);
35
+ padding: 0 0 0 var(--sl-content-pad-x);
41
36
  }
42
37
  }
43
- </style>
44
38
 
45
- <style is:global>
46
- main .content-panel:not(:first-of-type) {
47
- .stl-content-breadcrumbs {
48
- display: none;
49
- }
39
+ .stl-prose-page-nav-container {
40
+ padding: 1rem 0 0;
50
41
  }
51
42
  </style>
@@ -5,7 +5,7 @@ import Sidebar from 'virtual:starlight/components/Sidebar';
5
5
 
6
6
  <div class="stl-splash-mobile-menu-toggle">
7
7
  <MobileMenuToggle />
8
- <div id="starlight__sidebar" class="sidebar-pane">
8
+ <div id="starlight__sidebar" class="sidebar sidebar-pane">
9
9
  <div class="sidebar-content sl-flex">
10
10
  <Sidebar />
11
11
  </div>
@@ -13,6 +13,16 @@ import Sidebar from 'virtual:starlight/components/Sidebar';
13
13
  </div>
14
14
 
15
15
  <style>
16
+ @layer starlight.core {
17
+ .sidebar-pane {
18
+ li,
19
+ li a,
20
+ li a[aria-current='page'] {
21
+ all: revert-layer;
22
+ }
23
+ }
24
+ }
25
+
16
26
  :global([aria-expanded='true']) ~ .sidebar-pane {
17
27
  --sl-sidebar-visibility: visible;
18
28
  }
@@ -24,6 +34,11 @@ import Sidebar from 'virtual:starlight/components/Sidebar';
24
34
  inset-inline-start: 0;
25
35
  width: 100%;
26
36
  overflow-y: auto;
37
+ left: 0;
38
+
39
+ a {
40
+ font-size: var(--stl-typography-scale-sm);
41
+ }
27
42
  }
28
43
 
29
44
  .sidebar-content {
@@ -32,6 +47,7 @@ import Sidebar from 'virtual:starlight/components/Sidebar';
32
47
  padding: 1rem var(--sl-sidebar-pad-x) 0;
33
48
  flex-direction: column;
34
49
  gap: 1rem;
50
+ background-color: var(--stl-color-background);
35
51
  }
36
52
 
37
53
  @media (min-width: 50rem) {
@@ -1,12 +1,12 @@
1
1
  ---
2
- import LanguageSelect from "virtual:starlight/components/LanguageSelect";
3
- import Search from "virtual:starlight/components/Search";
4
- import SiteTitle from "virtual:starlight/components/SiteTitle";
2
+ import LanguageSelect from 'virtual:starlight/components/LanguageSelect';
3
+ import Search from 'virtual:starlight/components/Search';
4
+ import SiteTitle from 'virtual:starlight/components/SiteTitle';
5
5
  import HeaderLinks from './HeaderLinks.astro';
6
- import { TABS } from "virtual:stl-docs-virtual-module";
7
- import ThemeSelect from "virtual:starlight/components/ThemeSelect";
8
- import SecondaryNavTabs from "../nav-tabs/SecondaryNavTabs.astro";
9
- import SplashMobileMenuToggle from "./SplashMobileMenuToggle.astro";
6
+ import { TABS } from 'virtual:stl-docs-virtual-module';
7
+ import ThemeSelect from 'virtual:starlight/components/ThemeSelect';
8
+ import SecondaryNavTabs from '../nav-tabs/SecondaryNavTabs.astro';
9
+ import SplashMobileMenuToggle from './SplashMobileMenuToggle.astro';
10
10
 
11
11
  interface Props {
12
12
  shouldRenderSearch?: boolean;
@@ -38,14 +38,14 @@ const { hasSidebar } = Astro.locals.starlightRoute;
38
38
  <SecondaryNavTabs />
39
39
 
40
40
  <style is:inline>
41
- .stl-top-container {
42
- display: flex;
43
- flex-direction: row;
44
- align-items: center;
45
- justify-content: end;
46
- gap: 0.5rem;
47
- width: 100%;
48
- }
41
+ .stl-top-container {
42
+ display: flex;
43
+ flex-direction: row;
44
+ align-items: center;
45
+ justify-content: end;
46
+ gap: 0.5rem;
47
+ width: 100%;
48
+ }
49
49
  @media (min-width: 50rem) {
50
50
  :root {
51
51
  --sl-nav-height: 88px;
@@ -64,12 +64,17 @@ const { hasSidebar } = Astro.locals.starlightRoute;
64
64
  }
65
65
  </style>
66
66
 
67
- {TABS.length === 0 && (
68
- <style is:inline>
69
- @media (min-width: 50rem) {
70
- :root {
71
- --sl-nav-height: 56px;
72
- }
73
- }
74
- </style>
75
- )}
67
+ {
68
+ TABS.length === 0 && (
69
+ <style
70
+ is:inline
71
+ set:text={`
72
+ @media (min-width: 50rem) {
73
+ :root {
74
+ --sl-nav-height: 56px;
75
+ }
76
+ }
77
+ `}
78
+ />
79
+ )
80
+ }
@@ -0,0 +1,17 @@
1
+ export function ChatGPTIcon() {
2
+ return (
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
4
+ <g clipPath="url(#clip0_2771_126147)">
5
+ <path
6
+ d="M14.853 6.54857C15.216 5.45907 15.091 4.26557 14.5105 3.27457C13.6375 1.75457 11.8825 0.972574 10.1685 1.34057C9.40596 0.481574 8.31046 -0.00692579 7.16196 7.42116e-05C5.40996 -0.00392579 3.85546 1.12407 3.31646 2.79107C2.19096 3.02157 1.21946 3.72607 0.650955 4.72457C-0.228545 6.24057 -0.0280446 8.15157 1.14696 9.45157C0.783955 10.5411 0.908955 11.7346 1.48946 12.7256C2.36246 14.2456 4.11746 15.0276 5.83146 14.6596C6.59346 15.5186 7.68946 16.0071 8.83796 15.9996C10.591 16.0041 12.146 14.8751 12.685 13.2066C13.8105 12.9761 14.782 12.2716 15.3505 11.2731C16.229 9.75707 16.028 7.84757 14.8535 6.54757L14.853 6.54857ZM8.83896 14.9541C8.13746 14.9551 7.45796 14.7096 6.91946 14.2601C6.94396 14.2471 6.98646 14.2236 7.01396 14.2066L10.2 12.3666C10.363 12.2741 10.463 12.1006 10.462 11.9131V7.42157L11.8085 8.19907C11.823 8.20607 11.8325 8.22007 11.8345 8.23607V11.9556C11.8325 13.6096 10.493 14.9506 8.83896 14.9541ZM2.39696 12.2026C2.04546 11.5956 1.91896 10.8841 2.03946 10.1936C2.06296 10.2076 2.10446 10.2331 2.13396 10.2501L5.31996 12.0901C5.48146 12.1846 5.68146 12.1846 5.84346 12.0901L9.73296 9.84407V11.3991C9.73396 11.4151 9.72646 11.4306 9.71396 11.4406L6.49346 13.3001C5.05896 14.1261 3.22696 13.6351 2.39746 12.2026H2.39696ZM1.55846 5.24807C1.90846 4.64007 2.46096 4.17507 3.11896 3.93357C3.11896 3.96107 3.11746 4.00957 3.11746 4.04357V7.72407C3.11646 7.91107 3.21646 8.08457 3.37896 8.17707L7.26846 10.4226L5.92196 11.2001C5.90846 11.2091 5.89146 11.2106 5.87646 11.2041L2.65546 9.34307C1.22396 8.51407 0.732955 6.68257 1.55796 5.24857L1.55846 5.24807ZM12.6215 7.82257L8.73196 5.57657L10.0785 4.79957C10.092 4.79057 10.109 4.78907 10.124 4.79557L13.345 6.65507C14.779 7.48357 15.2705 9.31807 14.442 10.7521C14.0915 11.3591 13.5395 11.8241 12.882 12.0661V8.27557C12.8835 8.08857 12.784 7.91557 12.622 7.82257H12.6215ZM13.9615 5.80557C13.938 5.79107 13.8965 5.76607 13.867 5.74907L10.681 3.90907C10.5195 3.81457 10.3195 3.81457 10.1575 3.90907L6.26796 6.15507V4.60007C6.26696 4.58407 6.27446 4.56857 6.28696 4.55857L9.50746 2.70057C10.942 1.87307 12.776 2.36557 13.603 3.80057C13.9525 4.40657 14.079 5.11607 13.9605 5.80557H13.9615ZM5.53596 8.57707L4.18896 7.79957C4.17446 7.79257 4.16496 7.77857 4.16296 7.76257V4.04307C4.16396 2.38707 5.50746 1.04507 7.16346 1.04607C7.86396 1.04607 8.54196 1.29207 9.08046 1.74007C9.05596 1.75307 9.01396 1.77657 8.98596 1.79357L5.79996 3.63357C5.63696 3.72607 5.53696 3.89907 5.53796 4.08657L5.53596 8.57607V8.57707ZM6.26746 7.00007L7.99996 5.99957L9.73246 6.99957V9.00007L7.99996 10.0001L6.26746 9.00007V7.00007Z"
7
+ fill="currentColor"
8
+ />
9
+ </g>
10
+ <defs>
11
+ <clipPath id="clip0_2771_126147">
12
+ <rect width="16" height="16" fill="white" />
13
+ </clipPath>
14
+ </defs>
15
+ </svg>
16
+ );
17
+ }
@@ -0,0 +1,10 @@
1
+ export function ClaudeIcon() {
2
+ return (
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
4
+ <path
5
+ d="M3.13924 10.6036L6.28658 8.84444L6.33924 8.69111L6.28658 8.60638H6.13266L5.60608 8.5741L3.8076 8.52568L2.2481 8.46113L0.737215 8.38043L0.356456 8.29973L0 7.83169L0.0364557 7.59766L0.356456 7.38382L0.814177 7.42416L1.82684 7.49276L3.34582 7.59766L4.4476 7.66222L6.08 7.83169H6.33924L6.3757 7.72678L6.28658 7.66222L6.21772 7.59766L4.64608 6.53649L2.94481 5.4148L2.05367 4.76922L1.57165 4.44239L1.32861 4.13574L1.22329 3.46595L1.66076 2.98581L2.2481 3.02615L2.39797 3.0665L2.99342 3.52244L4.26532 4.50292L5.92608 5.72145L6.16911 5.92319L6.26633 5.8546L6.27848 5.80618L6.16911 5.62461L5.26582 3.99856L4.30177 2.34426L3.87241 1.65833L3.75899 1.24678C3.71848 1.07731 3.69013 0.93609 3.69013 0.762591L4.18835 0.0887672L4.4638 0L5.1281 0.0887672L5.4076 0.330859L5.82076 1.27098L6.48911 2.75178L7.52608 4.76518L7.82987 5.36234L7.9919 5.91512L8.05266 6.08459H8.15797V5.98775L8.24304 4.85395L8.40101 3.46192L8.55494 1.67044L8.60759 1.16608L8.85873 0.560847L9.35696 0.234023L9.74582 0.419627L10.0658 0.875567L10.0213 1.17011L9.83089 2.40075L9.45823 4.32942L9.21519 5.62058H9.35696L9.51899 5.45918L10.1752 4.59168L11.277 3.21983L11.763 2.67512L12.3301 2.07392L12.6947 1.78745H13.3833L13.8896 2.53793L13.6628 3.31263L12.9539 4.20837L12.3666 4.96693L11.5241 6.09669L10.9975 7.0005L11.0461 7.07313L11.1716 7.06103L13.0754 6.65754L14.1043 6.47193L15.3316 6.26212L15.8866 6.52035L15.9473 6.78262L15.7286 7.31926L14.4162 7.64205L12.877 7.9487L10.5843 8.48937L10.5559 8.50954L10.5884 8.54989L11.6213 8.64673L12.0628 8.67094H13.1443L15.1575 8.82023L15.6841 9.16723L16 9.59089L15.9473 9.91368L15.1372 10.3252L14.0435 10.067L11.4916 9.46177L10.6167 9.24389H10.4952V9.31652L11.2243 10.0267L12.561 11.229L14.2339 12.7784L14.319 13.1618L14.1043 13.4644L13.8775 13.4321L12.4071 12.3306L11.84 11.8343L10.5559 10.757H10.4709V10.8699L10.7666 11.3017L12.3301 13.6419L12.4111 14.3601L12.2977 14.5941L11.8927 14.7354L11.4471 14.6547L10.5316 13.3756L9.58785 11.9352L8.82633 10.644L8.73316 10.6964L8.28354 15.5181L8.07291 15.7642L7.58684 15.9498L7.18177 15.6432L6.96709 15.1469L7.18177 14.1664L7.44101 12.8874L7.65165 11.8706L7.84203 10.6077L7.95544 10.1881L7.94734 10.1598L7.85418 10.1719L6.89823 11.4792L5.44405 13.4361L4.29367 14.6627L4.01823 14.7717L3.54025 14.5255L3.58481 14.0857L3.85215 13.6944L5.44405 11.6769L6.40405 10.4261L7.0238 9.70387L7.01975 9.59896H6.98329L2.75443 12.3346L2.00101 12.4314L1.67696 12.1288L1.71747 11.6325L1.87139 11.4711L3.14329 10.5996L3.13924 10.6036Z"
6
+ fill="#D97757"
7
+ />
8
+ </svg>
9
+ );
10
+ }
@@ -0,0 +1,10 @@
1
+ export function CursorIcon() {
2
+ return (
3
+ <svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 466.73 532.09">
4
+ <path
5
+ fill="currentColor"
6
+ d="M457.43,125.94L244.42,2.96c-6.84-3.95-15.28-3.95-22.12,0L9.3,125.94c-5.75,3.32-9.3,9.46-9.3,16.11v247.99c0,6.65,3.55,12.79,9.3,16.11l213.01,122.98c6.84,3.95,15.28,3.95,22.12,0l213.01-122.98c5.75-3.32,9.3-9.46,9.3-16.11v-247.99c0-6.65-3.55-12.79-9.3-16.11h-.01ZM444.05,151.99l-205.63,356.16c-1.39,2.4-5.06,1.42-5.06-1.36v-233.21c0-4.66-2.49-8.97-6.53-11.31L24.87,145.67c-2.4-1.39-1.42-5.06,1.36-5.06h411.26c5.84,0,9.49,6.33,6.57,11.39h-.01Z"
7
+ />
8
+ </svg>
9
+ );
10
+ }
@@ -0,0 +1,19 @@
1
+ export const GeminiIcon = () => (
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 192" width="16" height="16">
3
+ <defs>
4
+ <clipPath id="clippath">
5
+ <path
6
+ d="M164.93 86.68c-13.56-5.84-25.42-13.84-35.6-24.01-10.17-10.17-18.18-22.04-24.01-35.6-2.23-5.19-4.04-10.54-5.42-16.02C99.45 9.26 97.85 8 96 8s-3.45 1.26-3.9 3.05c-1.38 5.48-3.18 10.81-5.42 16.02-5.84 13.56-13.84 25.43-24.01 35.6-10.17 10.16-22.04 18.17-35.6 24.01-5.19 2.23-10.54 4.04-16.02 5.42C9.26 92.55 8 94.15 8 96s1.26 3.45 3.05 3.9c5.48 1.38 10.81 3.18 16.02 5.42 13.56 5.84 25.42 13.84 35.6 24.01 10.17 10.17 18.18 22.04 24.01 35.6 2.24 5.2 4.04 10.54 5.42 16.02A4.03 4.03 0 0 0 96 184c1.85 0 3.45-1.26 3.9-3.05 1.38-5.48 3.18-10.81 5.42-16.02 5.84-13.56 13.84-25.42 24.01-35.6 10.17-10.17 22.04-18.18 35.6-24.01 5.2-2.24 10.54-4.04 16.02-5.42A4.03 4.03 0 0 0 184 96c0-1.85-1.26-3.45-3.05-3.9-5.48-1.38-10.81-3.18-16.02-5.42"
7
+ className="st0"
8
+ />
9
+ </clipPath>
10
+ </defs>
11
+ <g style={{ clipPath: 'url(#clippath)' }}>
12
+ <image
13
+ xlinkHref="data:image/webp;base64,UklGRoQQAABXRUJQVlA4IHgQAABwggCdASoAAQABPhUKhEGhBFYZfAQAUSxtxh9NbBxnu+sP619jnmvye/Mr5XuPe273j9z/afx0Wi3ej33/U9Z37B6ifqq54fdYfXK/qfTi+mNg/Ho4+If6nkT9pDC2Q3/9620/YA9L+1hKHrV7G0iOTEax9mLMRsPRwYV5/GWUYraYUCuzkIcQxHT//keBBcSgom3MBYJiIc6z1HWi/q8GY8PQKMHNrEM10nD6GDTIxhq4Bi3DNfENLeuGJ1WYLQrlTmmu9ZaKDyQ/8ikinYS7/c8UtlBqM3yowoiaV4Pveg+qrw9l5iSVTGmUTP1VvNbXUGQCUUncQO/rhqBlBv/BWsOoOLvIFY7lYYU/wQZSXuTnIavy3MBK7NQX5qPhHIfwVhmRtN/IyledurdtrXxCc24EQC9J5Zhj7t68A5iX1tZXLaTWm99npx3f2TXeIxV03Qp/3T/bLeUWWtMMhmvAxBgmiGbbCtC/fnRau2RXs7gVnbNackKpzigBjtgT2EWeqwzI1YbFJ0gruoYpIGvoZP5SbbsJD4XId6vHYZdO9bwbKfkM72VrIrgKdKtn4EUtHNcclGPYhgxBaf17vbC6SCyaOXOaW+DMx362VdNrf9OVAkBnlGJMKhocznSydEfcJR8q4Lvf7quD6+rmq4L1D1x02tSYxiilY8uOXAw92gxsUljhbdrFT9qaXS5HHa92YSuY05Lfmg1rqQkFQOMhCTNfI0nea/69TYCcLQOdvWKrkTwqdJrPJH5BTT8bnXUVvV6wyDo9hxlcrWI7uIfQSmK0xpRFyuQI3YWe8GepAK3r1kCH8J+14B1tp4F7wbGTq8qFrqOTqZB3k2ILdZCjPS98U8ZvRbXwV32nxHJxjv9nMobw6SDdEBUzTC8betePLderDoSXEJyfcrSauLS7JdkGZKn6qk1LfhEh1231VOxWU/rHYK8JWe6wNxMETHDmwY3Nh/nwJxWrPFuz35JtOQxDphdmDEsyF8VPHwPVIfLX/rwWbff/tH4GWoN8FVypG2ZzlWd7p9zlb74mDxH719SECJRJ3bJPddwtxDA4hxBwG7rBmrkve8IgjjTNGBi73q2zlcSX4vynFnUfRlViHWOQXkGkhv0vxpPoGOdzUVfSswelxG2pcbbBhwnMYNHsTxwD1WJm6G210wxofAXzx7hopEJESF3bXPO50PEjZmw+fSTGz6OUIioG7Eq6R/XQHd2QCOfhQ5h7j9ivRmxEGx7QzXCUeXLDuYv5Qss3/VIgcf0H+kFdYQJG/SoqwOBEbX6/ZCB1eI2TKqqVBGvQr3BSAbf0jZongGidzsYP2Nm9hwKvlxJDWiE73xIen6fzMAXT1VVSsgz5EWx6jEGZmDK4mTKt/lMwvr3Lak3qnfVYm/4tDIaDfAVnAAD+//oB+IEtbTtb6zT5w//dKy+uO98i/E/yLrL/8D46/oak/5y58fspnj9XBI9s0EVX48a4lOP83ZqgiGbCIF7CC6nTN7pb4fzg5gfvh87FVFQOYE9shLz96FX4lTMZdc8ZWnPDPihCqlwSQR2+8WZbz+4KyEzI5ECTTzxma8GJUHWKQHPPRXmvp+cSpzytVVJRst2oG9DiAew3DrrPZdDuWk1+k+A5W3c36nrzY8gerklIDzCKJLU7kqvSrE63Zkyw0A5irbuH/o8mJG3DCR0WXKkiArQRnFL8lf3eM/jY3DKR4iGG6zRu6oulzTUKfNFZNyosF0W3RfE/CN+SWHPRs0VeO3qIJqm/zRNN+qxzX2UqX7sELX4oGVhHli7u8PlswTKcVwfQlPmYAVF+eA43Kf92Z9sGbyTLfov76ysBnoC5M7oAUEa7efZ8mAHRhRuJmz9uxDxEoe1IGRDPZCl04buDNtz+v8/OZUTPCy5JveDhgU4GCHYsXLN6c01q6WWMhTON6kIrdUj5bNV+tMhqQibGhj5dSOQaXMTwZE6HJrbRbuwKggLJkGbSjHtHxwCm/0qj+hnWiXJXKrsPxvomyKbXOs4uo3sT/pdWOXK/YJhxGSer7BAxlYeldeCee/Vp04AgMN4DO5hWqcPjF8DudPUSKaFydlcpoLtEkcbWzjQBgRtB4p+NK7QOkP4J8qN5We4O5H0MVXd4Hg46iAiVuibcMcbSULEcjdqv1QYAYjpmPRbvmVxAj3wzeE6FaZaZzzGLXkDj7kMVUZy6mzM633tMpA3zxX1WVsU5nHF2yygdSi0LGDd/HCvDKAX7Q1HcpyrF9WAaEVAlR7Gq5088f2z0n7VRBivPDPR7qNrvPLWfy284IDJkrwVYFdu7YK6IvRCccqyum6wbFCxr4eSOI7/31HAVSJulsToX6RNuUtzGjg3kSQaAB+b6Yr5ke0BnwCIODuRgYJX51RTpTNqzI/qqNsNcfaGwtIa9xBW39Y/08afSbT/b0DElp5uFqIiVhSu7hpz7gYYQ/fm6wSWdRHKHvlLl48g3kb5T9CUha7V1jnJZOAjGD+k160HlXdAtAD0afoDF+HvNAEdnKQVSL04+kxUun4cmxQQ0Z3xpQ96cNm6HY7r/bjYaPMW363yfhOUHIw3poSZY1VZ0Qw0XM6DaZjV+GtbOaHJ4tOGjMlsHO5ZbaxaBU3gO/9jONXmlm3WOLdk5Q1sDCrGJcAD5oSrAgGu0R7ykJYQvLEZYWsIBdTsyrLW+9duXfU2TKOoClVr+/h/jKlKBNfBlsyDinyKKxHsA6nwHqkP72yZOaI7suuWmUTfmPU51C7Fz9xX6DMdAQuH9IODggzCrByZgfRQoMTPF+il8m137V465sP/tcSr1SgWFdU1iP2z47Vt0dipID8jFURioBKI/kx8R4BFdeYR45PqqOrXR416zEFIyUjVXSf7eyfswwzJx7j4/jk4GpduXhWIBbcppGywO8K28X/Ea1bSHKAz8bmdDY4Mmm6pYfGn2u4F223MIyQZ69uajeJV9asXhFOCgQFomwZWrKn2707Tm4AdZ2uPKkhAPEQeTb2TLio27/SUxaAqrRQwMRMV7HAfPG4pg8gzYos4Q8EK2KnrygVHJS9TbcFeC1E4xdWjACX4qwAwZkEqppu2SMFPZ7LDLKL55hye2MrBqbKY0y4tVc7NNz7dTOHcllGe6COXE5NgKRbVZCIBiZasEAevLFIF81Zj+AAeAGmuXeBAlENuX9VxZX+u/M4ujl2/B7QxeWqzmD4iSwXl4i8Pm+4TP6lW8G/2RstJfaKqbJ0SQp+tQsYyb8pIAoyOW0IlM77VaKHbCcDGu2BzAE7qPyPab9xJ+McowZfywLSUyuLzSGlnKnYrGKGUckRXdJu4y/+BPPETpwAAVGTPxj7zGF9L9yHMmB/JKyJ2Lb4aDTPRG/rge98nW0R40YduMBnHakEqFkh/5eJqyJwvdvOSHpjBBqbU34TuzRr/KwjLIvz3MWQ1t6l521Dg+FN6uatH48rR83bp76FGepBpgjvnvM2PC4p/WzjFNUeYcCK5OXN4h1Kv0mTwnD/HK4XjglCTwzcEdDA/bfTQR4CkKe9n8/iX+pM7ABZvAAACPjOK/vUrxAnGgcjqyJBtVVSFsBkAtsFoW75tSvDF+4gA6DPHtk+vyQnEzlkNaM7ErKetulHjIkSH+5hAZ/JbnP52h1VLtiNYX77Bvi8A5RF2uCrrlH9hCQxV1UhUp387BuwcvhnuXZ+tOwPUicEiUlJGpzsFtMKxtpeVi8yJSfkrGBzYAA8TTb1CFJSzZun1BqWHNBWB+gzDJQNHNguB7yBG6YkWnSHPpKRVYqeCloeBtIfPcoVsEBL4G9bog9n9rpdaYkb+BEKp6W30QqQsCmN8xKchUlS+trdTDDKduRtlYWoSvQWvL2ej/qEfBfW4MCM6koxP1wTXbikTjTO8VCvR7Uq0zgUlLBSvN3QV+TamlPQKbt0bZn5oEtI1YAnz4vEXcQqWGbCC+vG7WmHjDubdS1k/tf67D2s/UACAn21tfE8AwMK94eNoYeT7x83FdlX6mZnrO4oS9UbKHwCAkW0Cd9Bs0ZD9mudbFcvdT7agHBhz8kFzqPiamoT/EAhdoAHDku+C24dwD2h3NvanqTI0H2hB2vGLPP4k8sc5AAPaHbm78L6sXnitkbAkQu8wnc/Pe9v8cS2IDWbXRpyn1qLrdequrbOiBjw4jxWcKxY69A2ZUJoKnJ4zVyaExKc90QnojiHq2lrIh7mMSYwIpUg7Hq/KOkHpHtc8OLCrfmAuVnchGJSwC7ts/7gfHBqIrPbnrUH+5biJ8KSlSm8hsA84I6CcNLZGWkScsqCkxEx/I57TFKBL5GwwyOilwtBSxHW9tgnBgLtCtspmlUYM6GIE13Z0TQPDdveD4JLY33+YAEsnJMcn0MK9AGTy5pCHLgUbeVfBNSas2q06fJoMDuVWChmJv/zlusS8olFSZ2bGyHwWPOeW48cqAtO3Xu5FdX6vpxk2WDjhUuJXyiePz1cs7R5GASC55lJziil/VvFE6ChQbDKCbyPgNo8XvDb7k1nnypeOjJwFU9jdxTuUU8o93wXWe1t1ehh7TP0ZQCTF0zRU7Y6uQBFWybX7oSR8xZgHJJA5IPTiPv2VOyI6bsM22ZbyRtKFJPUMIWYwrsMAY45HYlSQ7D8Nez4rV87gbY/B6nUaoGfOjJYtgifqWZegzfGe9kU1HsTZ9WYPdzUGQvVdNY18ZfXZJ9xaWrHbFwc7TJHZH1yZqM7w2vsp8vwmnIHCdtLsF3Sz3uvAOcEEVrCl92UwcBrA8LTqC1KZ79FzI9/7nrlfweTjKd5XSp8SyhDK8CfhLQlSkTcYmF905qtSeGCmw1SkDX9s2VOT7XErqzlSBDLmNX56BBAcJHlbffvJNa7js7i/tgU1xc+GSfHiN9HnC2LQXralEmHhEKAaBtYrzkndYG70KRNHHNpH9zyMXNYjJc5GPEtEL9ZyjE31jYaPnFIJbC4WMApo/HDzoT7Zu+NLpPT1/NZyVNAPu5fbmAJs0W7CMBhXTs1pJCcDEvoamac5BzE7/hjoa8JWWaBeovyVGHqBYzLnuu3YVYmFQDRbqxZFxclJPfysxzorDuUvNTqzC3rVRqiEFXbdZ1yZ/piIYCyLVNijZsrvcM08oQO1V6r4Ct8DBm2f8klMYDOJcxT2C21IdX1t/Hzoq4nVek+7TP/Bz9ka9cpJfWeRHZwV/PQsz5AfjuyhVqhMnWxghPHrGXQl5nDqtjS3ORY9VN3JY4e3ZNsOoioaaqWbQal1qFm9iz9WacmBFEUyd7UD20ALxXy8BlLRnejx1Rbfmd2Qm8HwrwDq5pMi2IjciDv+OBHgwuM75ZAMGcc5PYvB0anKPQA6YJZuEgfoNrOt/5ulQLV6/PUTwhFI8gsMNngQ2Vzlc7lduGTd3EAYraET4Z9l+vclySzAuGBgk7fteroJibGqAVOYe3ybNPkVSSuabvAc0+fitjD11Q7uNJovLeh8O+ceR+VLDFvENFkRXg1b2jYK6BPH4iweK9cn930tHzdfrjQo99O6UolsA0o7fsgAIiLPiV8+pZ0WS98IAQ+2ZUJ7RSDX/bQSGqUt+7Slciebr8g12tT5icQC2Y3DrJfDAP4YLLay96tFE1Uqecn6gsm0WR01D6oiUSwiDTMyeAAAA"
14
+ width={192}
15
+ height={192}
16
+ />
17
+ </g>
18
+ </svg>
19
+ );
@@ -0,0 +1,10 @@
1
+ export function MarkdownIcon() {
2
+ return (
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
4
+ <path
5
+ d="M14.8447 3.33301C15.151 3.33301 15.4455 3.45527 15.6621 3.67188C15.8785 3.88844 16 4.18213 16 4.48828V12.0254C15.9997 12.3315 15.8777 12.6254 15.6611 12.8418C15.4446 13.0581 15.1508 13.1797 14.8447 13.1797H1.15527C0.848967 13.1797 0.55449 13.0584 0.337891 12.8418C0.121288 12.6252 0 12.3307 0 12.0244V4.48828C1.09706e-05 4.18213 0.121501 3.88844 0.337891 3.67188C0.554493 3.45527 0.848951 3.33301 1.15527 3.33301H14.8447ZM1.15527 4.10254C1.10457 4.10245 1.0537 4.11247 1.00684 4.13184C0.960202 4.15116 0.917554 4.17917 0.881836 4.21484C0.845984 4.2507 0.817213 4.29396 0.797852 4.34082C0.778601 4.38756 0.769447 4.43773 0.769531 4.48828V12.0254C0.76962 12.0759 0.779409 12.1262 0.798828 12.1729C0.81827 12.2196 0.846978 12.2621 0.882812 12.2979C0.918602 12.3335 0.961134 12.3616 1.00781 12.3809C1.05454 12.4001 1.10474 12.4102 1.15527 12.4102H14.8447C14.9467 12.4101 15.045 12.3699 15.1172 12.2979C15.1893 12.2258 15.2293 12.1274 15.2295 12.0254V4.48828C15.2296 4.43774 15.2204 4.38755 15.2012 4.34082C15.1819 4.29403 15.1529 4.25166 15.1172 4.21582C15.0814 4.17999 15.0389 4.15126 14.9922 4.13184C14.9455 4.11249 14.8952 4.10258 14.8447 4.10254H1.15527ZM5.38477 7.56348L6.92285 5.64062H8.46094V10.8721H6.92285V7.87109L5.38477 9.79492L3.8457 7.87109V10.8711H2.30762V5.63965H3.8457L5.38477 7.56348ZM12.6924 8.33301H14.2305L11.9229 10.8711L9.61523 8.33301H11.1533V5.64062H12.6924V8.33301Z"
6
+ fill="currentColor"
7
+ />
8
+ </svg>
9
+ );
10
+ }
@@ -0,0 +1 @@
1
+ export * from '@stainless-api/ui-primitives';
@@ -1,13 +1,15 @@
1
1
  ---
2
2
  export interface Props {
3
- title: unknown;
4
- children: unknown;
3
+ title: string;
4
+ children: astroHTML.JSX.Children;
5
5
  }
6
6
 
7
7
  const { title } = Astro.props;
8
+
9
+ import { Accordion as StainlessAccordion } from '@stainless-api/ui-primitives';
8
10
  ---
9
11
 
10
- <details>
11
- <summary>{title}</summary>
12
+ <StainlessAccordion>
13
+ <StainlessAccordion.Summary>{title}</StainlessAccordion.Summary>
12
14
  <slot />
13
- </details>
15
+ </StainlessAccordion>
@@ -1,7 +1,11 @@
1
1
  ---
2
- import { DetailsGroup } from '@stainless-api/ui-primitives';
2
+ import { Accordion as StainlessAccordion } from '@stainless-api/ui-primitives';
3
+
4
+ export interface Props {
5
+ children: astroHTML.JSX.Children;
6
+ }
3
7
  ---
4
8
 
5
- <DetailsGroup>
9
+ <StainlessAccordion.Group>
6
10
  <slot />
7
- </DetailsGroup>
11
+ </StainlessAccordion.Group>