@prosefly/astro-components 0.1.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 (67) hide show
  1. package/LICENSE +29 -0
  2. package/README.md +108 -0
  3. package/dist/astro-shim.d.ts +4 -0
  4. package/dist/client/accordions.d.ts +7 -0
  5. package/dist/client/accordions.d.ts.map +1 -0
  6. package/dist/client/accordions.js +70 -0
  7. package/dist/client/accordions.js.map +1 -0
  8. package/dist/client/image-gallery.d.ts +7 -0
  9. package/dist/client/image-gallery.d.ts.map +1 -0
  10. package/dist/client/image-gallery.js +103 -0
  11. package/dist/client/image-gallery.js.map +1 -0
  12. package/dist/client/tabs.d.ts +7 -0
  13. package/dist/client/tabs.d.ts.map +1 -0
  14. package/dist/client/tabs.js +160 -0
  15. package/dist/client/tabs.js.map +1 -0
  16. package/dist/icon/index.d.ts +8 -0
  17. package/dist/icon/index.d.ts.map +1 -0
  18. package/dist/icon/index.js +131 -0
  19. package/dist/icon/index.js.map +1 -0
  20. package/dist/icon/middleware.d.ts +3 -0
  21. package/dist/icon/middleware.d.ts.map +1 -0
  22. package/dist/icon/middleware.js +28 -0
  23. package/dist/icon/middleware.js.map +1 -0
  24. package/dist/index.d.ts +13 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +12 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/markdown/image-gallery-plugin.d.ts +3 -0
  29. package/dist/markdown/image-gallery-plugin.d.ts.map +1 -0
  30. package/dist/markdown/image-gallery-plugin.js +125 -0
  31. package/dist/markdown/image-gallery-plugin.js.map +1 -0
  32. package/dist/markdown/image-gallery.css +119 -0
  33. package/dist/markdown/image-gallery.js +1 -0
  34. package/dist/markdown/index.d.ts +3 -0
  35. package/dist/markdown/index.d.ts.map +1 -0
  36. package/dist/markdown/index.js +3 -0
  37. package/dist/markdown/index.js.map +1 -0
  38. package/dist/markdown/package-manager-tabs.d.ts +3 -0
  39. package/dist/markdown/package-manager-tabs.d.ts.map +1 -0
  40. package/dist/markdown/package-manager-tabs.js +329 -0
  41. package/dist/markdown/package-manager-tabs.js.map +1 -0
  42. package/dist/mdx/AccordionItem.astro +54 -0
  43. package/dist/mdx/Accordions.astro +126 -0
  44. package/dist/mdx/Badge.astro +140 -0
  45. package/dist/mdx/Callout.astro +124 -0
  46. package/dist/mdx/Card.astro +138 -0
  47. package/dist/mdx/CardGrid.astro +18 -0
  48. package/dist/mdx/FileTree.astro +231 -0
  49. package/dist/mdx/FileTreeItem.astro +97 -0
  50. package/dist/mdx/Icon.astro +132 -0
  51. package/dist/mdx/Steps.astro +88 -0
  52. package/dist/mdx/TabItem.astro +21 -0
  53. package/dist/mdx/Tabs.astro +272 -0
  54. package/dist/mdx/rehype-file-tree.d.ts +14 -0
  55. package/dist/mdx/rehype-file-tree.d.ts.map +1 -0
  56. package/dist/mdx/rehype-file-tree.js +205 -0
  57. package/dist/mdx/rehype-file-tree.js.map +1 -0
  58. package/dist/mdx/rehype-steps.d.ts +4 -0
  59. package/dist/mdx/rehype-steps.d.ts.map +1 -0
  60. package/dist/mdx/rehype-steps.js +74 -0
  61. package/dist/mdx/rehype-steps.js.map +1 -0
  62. package/dist/mdx/rehype-tabs.d.ts +19 -0
  63. package/dist/mdx/rehype-tabs.d.ts.map +1 -0
  64. package/dist/mdx/rehype-tabs.js +127 -0
  65. package/dist/mdx/rehype-tabs.js.map +1 -0
  66. package/dist/virtual.d.ts +8 -0
  67. package/package.json +57 -0
package/LICENSE ADDED
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2026, Prosefly
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package/README.md ADDED
@@ -0,0 +1,108 @@
1
+ # @prosefly/astro-components
2
+
3
+ Reusable Astro components for MDX content.
4
+
5
+ ```astro
6
+ ---
7
+ import { Callout } from '@prosefly/astro-components';
8
+ ---
9
+
10
+ <Callout type="tip" title="Reusable">
11
+ Package components use Prosefly CSS custom properties with built-in fallbacks.
12
+ </Callout>
13
+ ```
14
+
15
+ ## Exports
16
+
17
+ The main entry exports:
18
+
19
+ - `AccordionItem` and `Accordions`
20
+ - `Badge`
21
+ - `Callout`
22
+ - `Card` and `CardGrid`
23
+ - `FileTree`
24
+ - `Icon`
25
+ - `Steps`
26
+ - `TabItem` and `Tabs`
27
+
28
+ The markdown entry exports:
29
+
30
+ - `rehypeImageGallery`
31
+ - `remarkPackageManagerTabs`
32
+
33
+ ## Icon Integration
34
+
35
+ Use the `@prosefly/astro-components/icon` integration when a project wants
36
+ Iconify preloading without the full Lotus theme:
37
+
38
+ ```ts
39
+ import { defineConfig } from 'astro/config';
40
+ import proseflyIcon from '@prosefly/astro-components/icon';
41
+
42
+ export default defineConfig({
43
+ integrations: [
44
+ proseflyIcon({
45
+ preload: ['lucide:star', 'simple-icons:github'],
46
+ }),
47
+ ],
48
+ });
49
+ ```
50
+
51
+ The integration can scan `src/**/*.astro`, `src/**/*.md`, and `src/**/*.mdx`
52
+ for static icon usage. Set `scan: false` to disable that behavior or `apiBase`
53
+ to point at an internal Iconify-compatible endpoint.
54
+
55
+ ## Markdown Transforms
56
+
57
+ Use `@prosefly/astro-components/markdown` for optional markdown transforms:
58
+
59
+ ```ts
60
+ import { defineConfig } from 'astro/config';
61
+ import { rehypeImageGallery, remarkPackageManagerTabs } from '@prosefly/astro-components/markdown';
62
+
63
+ export default defineConfig({
64
+ markdown: {
65
+ remarkPlugins: [remarkPackageManagerTabs],
66
+ rehypePlugins: [rehypeImageGallery],
67
+ },
68
+ });
69
+ ```
70
+
71
+ `remarkPackageManagerTabs` recognizes common `npm` commands and can generate
72
+ tabs for Node and Python package managers. `rehypeImageGallery` turns paragraphs
73
+ that contain only images into gallery figures. Lotus enables both transforms by
74
+ default.
75
+
76
+ Import the image gallery runtime once in the page shell to load styles and
77
+ enable previous and next controls for galleries produced by
78
+ `rehypeImageGallery`:
79
+
80
+ ```astro
81
+ ---
82
+ import '@prosefly/astro-components/markdown/image-gallery.css';
83
+ ---
84
+
85
+ <script>
86
+ import '@prosefly/astro-components/markdown/image-gallery.js';
87
+ </script>
88
+ ```
89
+
90
+ ## Styling
91
+
92
+ Consumers can theme the components with `--pl-*` custom properties:
93
+
94
+ - `--pl-text-strong`
95
+ - `--pl-text`
96
+ - `--pl-text-muted`
97
+ - `--pl-background`
98
+ - `--pl-surface`
99
+ - `--pl-accent`
100
+ - `--pl-accent-soft`
101
+ - `--pl-accent-contrast`
102
+ - `--pl-border-subtle`
103
+ - `--pl-font-sans`
104
+ - `--pl-font-mono`
105
+ - `--pl-radius-sm`
106
+ - `--pl-radius-md`
107
+ - `--pl-radius-lg`
108
+ - `--pl-radius-full`
@@ -0,0 +1,4 @@
1
+ declare module '*.astro' {
2
+ const Component: unknown;
3
+ export default Component;
4
+ }
@@ -0,0 +1,7 @@
1
+ declare global {
2
+ interface Window {
3
+ __proseflyAccordionsInit?: () => void;
4
+ }
5
+ }
6
+ export {};
7
+ //# sourceMappingURL=accordions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordions.d.ts","sourceRoot":"","sources":["../../src/client/accordions.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;KACvC;CACF;AAED,OAAO,EAAE,CAAC"}
@@ -0,0 +1,70 @@
1
+ export {};
2
+ function getItems(root) {
3
+ return [...root.querySelectorAll(':scope > [data-pl-accordion]')].filter((item) => item instanceof HTMLDetailsElement);
4
+ }
5
+ function closeSiblings(root, activeItem) {
6
+ if (root.hasAttribute('data-multiple'))
7
+ return;
8
+ for (const item of getItems(root)) {
9
+ if (item !== activeItem)
10
+ item.open = false;
11
+ }
12
+ }
13
+ function openItem(item) {
14
+ const root = item.closest('[data-pl-accordions]');
15
+ item.open = true;
16
+ if (root)
17
+ closeSiblings(root, item);
18
+ }
19
+ function openHashTarget() {
20
+ if (!location.hash)
21
+ return;
22
+ const id = decodeURIComponent(location.hash.slice(1));
23
+ const item = document.getElementById(id);
24
+ if (item instanceof HTMLDetailsElement && item.matches('[data-pl-accordion]')) {
25
+ openItem(item);
26
+ }
27
+ }
28
+ if (!window.__proseflyAccordionsInit) {
29
+ window.__proseflyAccordionsInit = () => {
30
+ document.querySelectorAll('[data-pl-accordions]').forEach((root) => {
31
+ if (!(root instanceof HTMLElement) || root.dataset.plAccordionsReady === 'true') {
32
+ return;
33
+ }
34
+ root.dataset.plAccordionsReady = 'true';
35
+ let defaultValues = [];
36
+ try {
37
+ defaultValues = JSON.parse(root.getAttribute('data-default-values') || '[]');
38
+ }
39
+ catch {
40
+ defaultValues = [];
41
+ }
42
+ for (const item of getItems(root)) {
43
+ if (defaultValues.includes(item.getAttribute('data-value') ?? '')) {
44
+ openItem(item);
45
+ }
46
+ item.addEventListener('click', (event) => {
47
+ if (!(event.target instanceof Element) || !event.target.closest('[data-pl-accordion-trigger]')) {
48
+ return;
49
+ }
50
+ if (item.getAttribute('data-disabled') === 'true') {
51
+ event.preventDefault();
52
+ return;
53
+ }
54
+ if (!item.open) {
55
+ closeSiblings(root, item);
56
+ }
57
+ });
58
+ item.addEventListener('toggle', () => {
59
+ if (item.open)
60
+ closeSiblings(root, item);
61
+ });
62
+ }
63
+ });
64
+ openHashTarget();
65
+ };
66
+ window.addEventListener('hashchange', openHashTarget);
67
+ document.addEventListener('astro:page-load', window.__proseflyAccordionsInit);
68
+ }
69
+ window.__proseflyAccordionsInit();
70
+ //# sourceMappingURL=accordions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordions.js","sourceRoot":"","sources":["../../src/client/accordions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare global {
2
+ interface Window {
3
+ __proseflyImageGalleryInit?: () => void;
4
+ }
5
+ }
6
+ export {};
7
+ //# sourceMappingURL=image-gallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-gallery.d.ts","sourceRoot":"","sources":["../../src/client/image-gallery.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;KACzC;CACF;AAED,OAAO,EAAE,CAAC"}
@@ -0,0 +1,103 @@
1
+ export {};
2
+ function imageReady(image) {
3
+ if (image.complete && image.naturalWidth > 0 && image.naturalHeight > 0) {
4
+ return Promise.resolve();
5
+ }
6
+ return new Promise((resolve) => {
7
+ image.addEventListener('load', () => resolve(), { once: true });
8
+ image.addEventListener('error', () => resolve(), { once: true });
9
+ });
10
+ }
11
+ function resolveCssLength(value, context) {
12
+ const trimmed = value.trim();
13
+ if (!trimmed) {
14
+ return 0;
15
+ }
16
+ const probe = document.createElement('div');
17
+ probe.style.contain = 'strict';
18
+ probe.style.height = '0';
19
+ probe.style.overflow = 'hidden';
20
+ probe.style.position = 'absolute';
21
+ probe.style.visibility = 'hidden';
22
+ probe.style.width = trimmed;
23
+ context.append(probe);
24
+ const width = probe.getBoundingClientRect().width;
25
+ probe.remove();
26
+ return width;
27
+ }
28
+ function getItemLeft(track, item) {
29
+ return item.getBoundingClientRect().left - track.getBoundingClientRect().left + track.scrollLeft;
30
+ }
31
+ function scrollToAdjacentItem(track, direction) {
32
+ const items = [...track.querySelectorAll('.pl-image-gallery__item')].filter((item) => item instanceof HTMLElement);
33
+ const currentLeft = track.scrollLeft;
34
+ const positions = items.map((item) => getItemLeft(track, item));
35
+ const target = direction === 'previous'
36
+ ? positions.findLast((left) => left < currentLeft - 2)
37
+ : positions.find((left) => left > currentLeft + 2);
38
+ track.scrollTo({
39
+ behavior: 'smooth',
40
+ left: target ?? (direction === 'previous' ? 0 : track.scrollWidth - track.clientWidth),
41
+ });
42
+ }
43
+ function measureGallery(gallery, track) {
44
+ const items = [...track.querySelectorAll('.pl-image-gallery__item')].filter((item) => item instanceof HTMLElement);
45
+ const images = items
46
+ .map((item) => item.querySelector('img'))
47
+ .filter((image) => image instanceof HTMLImageElement);
48
+ if (items.length === 0 || items.length !== images.length || track.clientWidth <= 0) {
49
+ return;
50
+ }
51
+ const ratios = images.map((image) => image.naturalWidth > 0 && image.naturalHeight > 0
52
+ ? image.naturalWidth / image.naturalHeight
53
+ : undefined);
54
+ if (ratios.some((ratio) => !ratio)) {
55
+ return;
56
+ }
57
+ const resolvedRatios = ratios;
58
+ const styles = getComputedStyle(track);
59
+ const gap = Number.parseFloat(styles.columnGap || styles.gap || '0') || 0;
60
+ const previewWidth = resolveCssLength(getComputedStyle(gallery).getPropertyValue('--pl-image-gallery-preview-width'), gallery);
61
+ const firstRatio = resolvedRatios[0];
62
+ const targetHeight = Math.max((track.clientWidth - previewWidth - gap) / firstRatio, 1);
63
+ gallery.style.setProperty('--pl-image-gallery-height', `${targetHeight.toFixed(2)}px`);
64
+ gallery.dataset.plImageGalleryMeasured = 'true';
65
+ items.forEach((item, index) => {
66
+ const ratio = resolvedRatios[index];
67
+ item.style.setProperty('--pl-image-gallery-ratio', ratio.toFixed(5));
68
+ item.style.height = `${targetHeight.toFixed(2)}px`;
69
+ item.style.width = `${Math.max(targetHeight * ratio, 1).toFixed(2)}px`;
70
+ });
71
+ }
72
+ if (typeof window !== 'undefined') {
73
+ if (!window.__proseflyImageGalleryInit) {
74
+ window.__proseflyImageGalleryInit = () => {
75
+ document.querySelectorAll('[data-pl-image-gallery]').forEach((gallery) => {
76
+ if (!(gallery instanceof HTMLElement) || gallery.dataset.plImageGalleryReady) {
77
+ return;
78
+ }
79
+ const track = gallery.querySelector('[data-pl-image-gallery-track]');
80
+ if (!(track instanceof HTMLElement)) {
81
+ return;
82
+ }
83
+ gallery.dataset.plImageGalleryReady = 'true';
84
+ const measure = () => measureGallery(gallery, track);
85
+ const images = [...track.querySelectorAll('img')].filter((image) => image instanceof HTMLImageElement);
86
+ Promise.all(images.map(imageReady)).then(measure);
87
+ new ResizeObserver(measure).observe(track);
88
+ gallery.querySelectorAll('[data-pl-image-gallery-button]').forEach((button) => {
89
+ if (!(button instanceof HTMLButtonElement)) {
90
+ return;
91
+ }
92
+ button.addEventListener('click', () => {
93
+ const direction = button.getAttribute('data-pl-image-gallery-button');
94
+ scrollToAdjacentItem(track, direction === 'previous' ? 'previous' : 'next');
95
+ });
96
+ });
97
+ });
98
+ };
99
+ document.addEventListener('astro:page-load', window.__proseflyImageGalleryInit);
100
+ }
101
+ window.__proseflyImageGalleryInit();
102
+ }
103
+ //# sourceMappingURL=image-gallery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-gallery.js","sourceRoot":"","sources":["../../src/client/image-gallery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare global {
2
+ interface Window {
3
+ __proseflyTabsInit?: () => void;
4
+ }
5
+ }
6
+ export {};
7
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/client/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;KACjC;CACF;AAED,OAAO,EAAE,CAAC"}
@@ -0,0 +1,160 @@
1
+ export {};
2
+ function getStoredLabel(syncKey) {
3
+ if (!syncKey)
4
+ return undefined;
5
+ try {
6
+ return localStorage.getItem(`pl-tabs:${syncKey}`) ?? undefined;
7
+ }
8
+ catch {
9
+ return undefined;
10
+ }
11
+ }
12
+ function storeLabel(syncKey, label) {
13
+ if (!syncKey || !label)
14
+ return;
15
+ try {
16
+ localStorage.setItem(`pl-tabs:${syncKey}`, label);
17
+ }
18
+ catch {
19
+ // Ignore storage failures in restricted browsing contexts.
20
+ }
21
+ }
22
+ async function writeClipboard(text) {
23
+ if (navigator.clipboard?.writeText) {
24
+ await navigator.clipboard.writeText(text);
25
+ return;
26
+ }
27
+ throw new Error('Clipboard API is not available.');
28
+ }
29
+ function setCopyState(button, copied) {
30
+ const copyIcon = button.querySelector('[data-pl-tabs-copy-icon="copy"]');
31
+ const checkIcon = button.querySelector('[data-pl-tabs-copy-icon="check"]');
32
+ copyIcon?.toggleAttribute('hidden', copied);
33
+ checkIcon?.toggleAttribute('hidden', !copied);
34
+ button.setAttribute('aria-label', copied ? 'Copied' : 'Copy code');
35
+ button.setAttribute('title', copied ? 'Copied' : 'Copy code');
36
+ }
37
+ function getActiveCode(root) {
38
+ const activePanel = root.querySelector('.pl-tabs__panel:not([hidden])');
39
+ const code = activePanel?.querySelector('pre code');
40
+ return code?.textContent ?? '';
41
+ }
42
+ function setActiveIcon(root, panelId) {
43
+ const iconContainer = root.querySelector('.pl-tabs__active-icons');
44
+ const icons = [...root.querySelectorAll('[data-pl-tabs-icon-for]')];
45
+ if (!(iconContainer instanceof HTMLElement))
46
+ return;
47
+ let hasActiveIcon = false;
48
+ icons.forEach((icon) => {
49
+ const isActive = icon.getAttribute('data-pl-tabs-icon-for') === panelId;
50
+ icon.toggleAttribute('hidden', !isActive);
51
+ hasActiveIcon ||= isActive;
52
+ });
53
+ iconContainer.toggleAttribute('hidden', !hasActiveIcon);
54
+ }
55
+ function activate(root, trigger, options = {}) {
56
+ const panelId = trigger.getAttribute('data-tab-panel');
57
+ const label = trigger.getAttribute('data-tab-label');
58
+ const syncKey = root.getAttribute('data-sync-key');
59
+ const triggers = [...root.querySelectorAll('[data-pl-tabs-trigger]')];
60
+ const panels = [...root.querySelectorAll('.pl-tabs__panel')];
61
+ triggers.forEach((button) => {
62
+ const isActive = button === trigger;
63
+ button.setAttribute('aria-selected', isActive ? 'true' : 'false');
64
+ button.setAttribute('tabindex', isActive ? '0' : '-1');
65
+ });
66
+ panels.forEach((panel) => {
67
+ panel.toggleAttribute('hidden', panel.id !== panelId);
68
+ });
69
+ setActiveIcon(root, panelId);
70
+ if (options.focus && trigger instanceof HTMLElement) {
71
+ trigger.focus();
72
+ }
73
+ if (options.persist === false) {
74
+ return;
75
+ }
76
+ storeLabel(syncKey, label);
77
+ if (!syncKey || !label) {
78
+ return;
79
+ }
80
+ document.querySelectorAll('[data-pl-tabs]').forEach((otherRoot) => {
81
+ if (otherRoot === root || otherRoot.getAttribute('data-sync-key') !== syncKey) {
82
+ return;
83
+ }
84
+ const matchingTrigger = [
85
+ ...otherRoot.querySelectorAll('[data-pl-tabs-trigger]'),
86
+ ].find((button) => button.getAttribute('data-tab-label') === label);
87
+ if (matchingTrigger) {
88
+ activate(otherRoot, matchingTrigger, { persist: false });
89
+ }
90
+ });
91
+ }
92
+ if (!window.__proseflyTabsInit) {
93
+ window.__proseflyTabsInit = () => {
94
+ document.querySelectorAll('[data-pl-tabs]').forEach((root) => {
95
+ if (root instanceof HTMLElement && root.dataset.plTabsReady === 'true') {
96
+ return;
97
+ }
98
+ const triggers = [...root.querySelectorAll('[data-pl-tabs-trigger]')];
99
+ const syncKey = root.getAttribute('data-sync-key');
100
+ const storedLabel = getStoredLabel(syncKey);
101
+ const storedTrigger = storedLabel
102
+ ? triggers.find((button) => button.getAttribute('data-tab-label') === storedLabel)
103
+ : undefined;
104
+ const selectedTrigger = storedTrigger ??
105
+ triggers.find((button) => button.getAttribute('aria-selected') === 'true') ??
106
+ triggers[0];
107
+ if (root instanceof HTMLElement) {
108
+ root.dataset.plTabsReady = 'true';
109
+ }
110
+ if (selectedTrigger) {
111
+ activate(root, selectedTrigger, { persist: false });
112
+ }
113
+ triggers.forEach((trigger) => {
114
+ trigger.addEventListener('click', () => activate(root, trigger));
115
+ trigger.addEventListener('keydown', (event) => {
116
+ if (!(event instanceof KeyboardEvent)) {
117
+ return;
118
+ }
119
+ const currentIndex = triggers.indexOf(trigger);
120
+ let nextIndex = currentIndex;
121
+ if (event.key === 'ArrowRight')
122
+ nextIndex = currentIndex + 1;
123
+ else if (event.key === 'ArrowLeft')
124
+ nextIndex = currentIndex - 1;
125
+ else if (event.key === 'Home')
126
+ nextIndex = 0;
127
+ else if (event.key === 'End')
128
+ nextIndex = triggers.length - 1;
129
+ else
130
+ return;
131
+ event.preventDefault();
132
+ const nextTrigger = triggers[(nextIndex + triggers.length) % triggers.length];
133
+ activate(root, nextTrigger, { focus: true });
134
+ });
135
+ });
136
+ root.querySelectorAll('[data-pl-tabs-copy]').forEach((button) => {
137
+ if (!(button instanceof HTMLButtonElement)) {
138
+ return;
139
+ }
140
+ button.addEventListener('click', async () => {
141
+ const text = getActiveCode(root);
142
+ if (!text) {
143
+ return;
144
+ }
145
+ try {
146
+ await writeClipboard(text);
147
+ setCopyState(button, true);
148
+ window.setTimeout(() => setCopyState(button, false), 1600);
149
+ }
150
+ catch {
151
+ setCopyState(button, false);
152
+ }
153
+ });
154
+ });
155
+ });
156
+ };
157
+ document.addEventListener('astro:page-load', window.__proseflyTabsInit);
158
+ }
159
+ window.__proseflyTabsInit();
160
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/client/tabs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { AstroIntegration } from 'astro';
2
+ export interface IconIntegrationOptions {
3
+ apiBase?: string;
4
+ preload?: string[];
5
+ scan?: boolean;
6
+ }
7
+ export default function icon(options?: IconIntegrationOptions): AstroIntegration;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icon/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsHD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,OAAO,GAAE,sBAA2B,GAAG,gBAAgB,CA6CnF"}