components-svelte 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.
- package/LICENSE +21 -0
- package/README.md +103 -0
- package/dist/components/Search.svelte +320 -0
- package/dist/components/Search.svelte.d.ts +31 -0
- package/dist/components/SearchButton.svelte +82 -0
- package/dist/components/SearchButton.svelte.d.ts +13 -0
- package/dist/components/SearchProvider.svelte +87 -0
- package/dist/components/SearchProvider.svelte.d.ts +17 -0
- package/dist/components/accordion/Accordion.svelte +150 -0
- package/dist/components/accordion/Accordion.svelte.d.ts +25 -0
- package/dist/components/accordion/AccordionCover.svelte +68 -0
- package/dist/components/accordion/AccordionCover.svelte.d.ts +13 -0
- package/dist/components/accordion/AccordionGroup.svelte +23 -0
- package/dist/components/accordion/AccordionGroup.svelte.d.ts +8 -0
- package/dist/components/accordion/accordion-url-utils.d.ts +4 -0
- package/dist/components/accordion/accordion-url-utils.js +48 -0
- package/dist/components/accordion/index.d.ts +29 -0
- package/dist/components/accordion/index.js +6 -0
- package/dist/components/badge/Badge.svelte +152 -0
- package/dist/components/badge/Badge.svelte.d.ts +23 -0
- package/dist/components/badge/index.d.ts +1 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/callout/Callout.svelte +317 -0
- package/dist/components/callout/Callout.svelte.d.ts +17 -0
- package/dist/components/callout/Check.svelte +9 -0
- package/dist/components/callout/Check.svelte.d.ts +4 -0
- package/dist/components/callout/Danger.svelte +9 -0
- package/dist/components/callout/Danger.svelte.d.ts +4 -0
- package/dist/components/callout/Info.svelte +9 -0
- package/dist/components/callout/Info.svelte.d.ts +4 -0
- package/dist/components/callout/Note.svelte +9 -0
- package/dist/components/callout/Note.svelte.d.ts +4 -0
- package/dist/components/callout/Tip.svelte +9 -0
- package/dist/components/callout/Tip.svelte.d.ts +4 -0
- package/dist/components/callout/Warning.svelte +9 -0
- package/dist/components/callout/Warning.svelte.d.ts +4 -0
- package/dist/components/callout/index.d.ts +8 -0
- package/dist/components/callout/index.js +8 -0
- package/dist/components/card/Card.svelte +172 -0
- package/dist/components/card/Card.svelte.d.ts +21 -0
- package/dist/components/card/index.d.ts +3 -0
- package/dist/components/card/index.js +2 -0
- package/dist/components/code-block/BaseCodeBlock.svelte +249 -0
- package/dist/components/code-block/BaseCodeBlock.svelte.d.ts +10 -0
- package/dist/components/code-block/CodeBlock.svelte +185 -0
- package/dist/components/code-block/CodeBlock.svelte.d.ts +5 -0
- package/dist/components/code-block/CodeFooter.svelte +34 -0
- package/dist/components/code-block/CodeFooter.svelte.d.ts +8 -0
- package/dist/components/code-block/CodeHeader.svelte +52 -0
- package/dist/components/code-block/CodeHeader.svelte.d.ts +11 -0
- package/dist/components/code-block/CopyToClipboardButton.svelte +124 -0
- package/dist/components/code-block/CopyToClipboardButton.svelte.d.ts +4 -0
- package/dist/components/code-block/index.d.ts +10 -0
- package/dist/components/code-block/index.js +5 -0
- package/dist/components/code-block/types.d.ts +85 -0
- package/dist/components/code-block/types.js +1 -0
- package/dist/components/code-group/CodeGroup.svelte +327 -0
- package/dist/components/code-group/CodeGroup.svelte.d.ts +24 -0
- package/dist/components/code-group/CodeGroupSelect.svelte +170 -0
- package/dist/components/code-group/CodeGroupSelect.svelte.d.ts +25 -0
- package/dist/components/code-group/CodeSelectDropdown.svelte +74 -0
- package/dist/components/code-group/CodeSelectDropdown.svelte.d.ts +9 -0
- package/dist/components/code-group/LanguageDropdown.svelte +134 -0
- package/dist/components/code-group/LanguageDropdown.svelte.d.ts +11 -0
- package/dist/components/code-group/LanguageIcon.svelte +24 -0
- package/dist/components/code-group/LanguageIcon.svelte.d.ts +8 -0
- package/dist/components/code-group/context.d.ts +14 -0
- package/dist/components/code-group/context.js +2 -0
- package/dist/components/code-group/index.d.ts +8 -0
- package/dist/components/code-group/index.js +4 -0
- package/dist/components/color/Color.svelte +34 -0
- package/dist/components/color/Color.svelte.d.ts +10 -0
- package/dist/components/color/ColorItem.svelte +140 -0
- package/dist/components/color/ColorItem.svelte.d.ts +10 -0
- package/dist/components/color/ColorRow.svelte +27 -0
- package/dist/components/color/ColorRow.svelte.d.ts +8 -0
- package/dist/components/color/index.d.ts +1 -0
- package/dist/components/color/index.js +8 -0
- package/dist/components/columns/Box.svelte +15 -0
- package/dist/components/columns/Box.svelte.d.ts +7 -0
- package/dist/components/columns/Columns.svelte +31 -0
- package/dist/components/columns/Columns.svelte.d.ts +10 -0
- package/dist/components/columns/constants.d.ts +5 -0
- package/dist/components/columns/constants.js +3 -0
- package/dist/components/columns/index.d.ts +5 -0
- package/dist/components/columns/index.js +3 -0
- package/dist/components/expandable/Expandable.svelte +182 -0
- package/dist/components/expandable/Expandable.svelte.d.ts +22 -0
- package/dist/components/expandable/index.d.ts +3 -0
- package/dist/components/expandable/index.js +2 -0
- package/dist/components/frame/Frame.svelte +118 -0
- package/dist/components/frame/Frame.svelte.d.ts +15 -0
- package/dist/components/frame/index.d.ts +3 -0
- package/dist/components/frame/index.js +2 -0
- package/dist/components/icon/Icon.svelte +129 -0
- package/dist/components/icon/Icon.svelte.d.ts +18 -0
- package/dist/components/icon/index.d.ts +2 -0
- package/dist/components/icon/index.js +1 -0
- package/dist/components/index.d.ts +22 -0
- package/dist/components/index.js +22 -0
- package/dist/components/mermaid/Mermaid.svelte +181 -0
- package/dist/components/mermaid/Mermaid.svelte.d.ts +11 -0
- package/dist/components/mermaid/ZoomControls.svelte +74 -0
- package/dist/components/mermaid/ZoomControls.svelte.d.ts +12 -0
- package/dist/components/mermaid/index.d.ts +7 -0
- package/dist/components/mermaid/index.js +4 -0
- package/dist/components/mermaid/use-pan-zoom.svelte.d.ts +11 -0
- package/dist/components/mermaid/use-pan-zoom.svelte.js +41 -0
- package/dist/components/panel/Panel.svelte +27 -0
- package/dist/components/panel/Panel.svelte.d.ts +9 -0
- package/dist/components/panel/index.d.ts +3 -0
- package/dist/components/panel/index.js +2 -0
- package/dist/components/property/DeprecatedPill.svelte +16 -0
- package/dist/components/property/DeprecatedPill.svelte.d.ts +6 -0
- package/dist/components/property/InfoPill.svelte +32 -0
- package/dist/components/property/InfoPill.svelte.d.ts +10 -0
- package/dist/components/property/ParamHead.svelte +188 -0
- package/dist/components/property/ParamHead.svelte.d.ts +22 -0
- package/dist/components/property/Property.svelte +123 -0
- package/dist/components/property/Property.svelte.d.ts +24 -0
- package/dist/components/property/RequiredPill.svelte +16 -0
- package/dist/components/property/RequiredPill.svelte.d.ts +6 -0
- package/dist/components/property/index.d.ts +11 -0
- package/dist/components/property/index.js +6 -0
- package/dist/components/search/index.d.ts +7 -0
- package/dist/components/search/index.js +4 -0
- package/dist/components/search/use-search.d.ts +9 -0
- package/dist/components/search/use-search.js +6 -0
- package/dist/components/steps/Step.svelte +314 -0
- package/dist/components/steps/Step.svelte.d.ts +26 -0
- package/dist/components/steps/Steps.svelte +51 -0
- package/dist/components/steps/Steps.svelte.d.ts +11 -0
- package/dist/components/steps/constants.d.ts +4 -0
- package/dist/components/steps/constants.js +2 -0
- package/dist/components/steps/context.d.ts +10 -0
- package/dist/components/steps/context.js +2 -0
- package/dist/components/steps/index.d.ts +32 -0
- package/dist/components/steps/index.js +6 -0
- package/dist/components/tabs/Tabs.svelte +254 -0
- package/dist/components/tabs/Tabs.svelte.d.ts +16 -0
- package/dist/components/tabs/TabsItem.svelte +56 -0
- package/dist/components/tabs/TabsItem.svelte.d.ts +15 -0
- package/dist/components/tabs/context.d.ts +20 -0
- package/dist/components/tabs/context.js +2 -0
- package/dist/components/tabs/index.d.ts +27 -0
- package/dist/components/tabs/index.js +5 -0
- package/dist/components/tile/Tile.svelte +124 -0
- package/dist/components/tile/Tile.svelte.d.ts +12 -0
- package/dist/components/tile/index.d.ts +2 -0
- package/dist/components/tile/index.js +1 -0
- package/dist/components/tooltip/Tooltip.svelte +170 -0
- package/dist/components/tooltip/Tooltip.svelte.d.ts +23 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/tree/Tree.svelte +226 -0
- package/dist/components/tree/Tree.svelte.d.ts +9 -0
- package/dist/components/tree/TreeFile.svelte +44 -0
- package/dist/components/tree/TreeFile.svelte.d.ts +6 -0
- package/dist/components/tree/TreeFolder.svelte +107 -0
- package/dist/components/tree/TreeFolder.svelte.d.ts +10 -0
- package/dist/components/tree/context.d.ts +3 -0
- package/dist/components/tree/context.js +7 -0
- package/dist/components/tree/index.d.ts +10 -0
- package/dist/components/tree/index.js +9 -0
- package/dist/components/tree/tree-level-context.d.ts +8 -0
- package/dist/components/tree/tree-level-context.js +7 -0
- package/dist/components/tree/use-tree-level.d.ts +3 -0
- package/dist/components/tree/use-tree-level.js +5 -0
- package/dist/components/tree/utils.d.ts +9 -0
- package/dist/components/tree/utils.js +86 -0
- package/dist/components/update/Update.svelte +210 -0
- package/dist/components/update/Update.svelte.d.ts +34 -0
- package/dist/components/update/index.d.ts +4 -0
- package/dist/components/update/index.js +3 -0
- package/dist/components/view/View.svelte +52 -0
- package/dist/components/view/View.svelte.d.ts +14 -0
- package/dist/components/view/index.d.ts +3 -0
- package/dist/components/view/index.js +2 -0
- package/dist/constants/brands.d.ts +2 -0
- package/dist/constants/brands.js +4 -0
- package/dist/constants/index.d.ts +6 -0
- package/dist/constants/index.js +6 -0
- package/dist/constants/selectors.d.ts +125 -0
- package/dist/constants/selectors.js +125 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/use-expandable-memory.svelte.d.ts +6 -0
- package/dist/hooks/use-expandable-memory.svelte.js +89 -0
- package/dist/hooks/use-expandable.svelte.d.ts +15 -0
- package/dist/hooks/use-expandable.svelte.js +53 -0
- package/dist/hooks/use-get-shiki-highlighted-html.svelte.d.ts +8 -0
- package/dist/hooks/use-get-shiki-highlighted-html.svelte.js +36 -0
- package/dist/hooks/use-has-hover.d.ts +2 -0
- package/dist/hooks/use-has-hover.js +10 -0
- package/dist/hooks/use-is-dark-theme.svelte.d.ts +3 -0
- package/dist/hooks/use-is-dark-theme.svelte.js +25 -0
- package/dist/hooks/use-isomorphic-layout-effect.d.ts +3 -0
- package/dist/hooks/use-isomorphic-layout-effect.js +6 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/styles.css +2 -0
- package/dist/utils/cn.d.ts +3 -0
- package/dist/utils/cn.js +7 -0
- package/dist/utils/copy-to-clipboard.d.ts +4 -0
- package/dist/utils/copy-to-clipboard.js +50 -0
- package/dist/utils/dedent.d.ts +1 -0
- package/dist/utils/dedent.js +125 -0
- package/dist/utils/enhance-video-props.d.ts +4 -0
- package/dist/utils/enhance-video-props.js +25 -0
- package/dist/utils/get-node-text.d.ts +2 -0
- package/dist/utils/get-node-text.js +26 -0
- package/dist/utils/icon-utils.d.ts +18 -0
- package/dist/utils/icon-utils.js +30 -0
- package/dist/utils/is-absolute-url.d.ts +4 -0
- package/dist/utils/is-absolute-url.js +11 -0
- package/dist/utils/is-remote-url.d.ts +2 -0
- package/dist/utils/is-remote-url.js +12 -0
- package/dist/utils/make-marker-ids-unique.d.ts +2 -0
- package/dist/utils/make-marker-ids-unique.js +36 -0
- package/dist/utils/shiki/code-styling.d.ts +13 -0
- package/dist/utils/shiki/code-styling.js +1 -0
- package/dist/utils/shiki/constants.d.ts +21 -0
- package/dist/utils/shiki/constants.js +116 -0
- package/dist/utils/shiki/get-code-styling.d.ts +9 -0
- package/dist/utils/shiki/get-code-styling.js +38 -0
- package/dist/utils/shiki/get-shiki-background-colors.d.ts +20 -0
- package/dist/utils/shiki/get-shiki-background-colors.js +56 -0
- package/dist/utils/shiki/index.d.ts +30 -0
- package/dist/utils/shiki/index.js +209 -0
- package/dist/utils/shiki/lib.d.ts +4 -0
- package/dist/utils/shiki/lib.js +49 -0
- package/dist/utils/shiki/shiki-themes.d.ts +2 -0
- package/dist/utils/shiki/shiki-themes.js +64 -0
- package/dist/utils/shiki/snippet-presets.d.ts +27 -0
- package/dist/utils/shiki/snippet-presets.js +44 -0
- package/dist/utils/shiki/worker-client.d.ts +9 -0
- package/dist/utils/shiki/worker-client.js +22 -0
- package/dist/utils/shiki/worker.d.ts +1 -0
- package/dist/utils/shiki/worker.js +134 -0
- package/dist/utils/slugify.d.ts +2 -0
- package/dist/utils/slugify.js +9 -0
- package/package.json +100 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
const _classes = {
|
|
2
|
+
Accordion: "accordion",
|
|
3
|
+
AccordionGroup: "accordion-group",
|
|
4
|
+
Callout: "callout",
|
|
5
|
+
Card: "card",
|
|
6
|
+
Columns: "columns",
|
|
7
|
+
CodeBlock: "code-block",
|
|
8
|
+
CodeBlockIcon: "code-block-icon",
|
|
9
|
+
CodeGroup: "code-group",
|
|
10
|
+
Expandable: "expandable",
|
|
11
|
+
Field: "field",
|
|
12
|
+
Frame: "frame",
|
|
13
|
+
Icon: "icon",
|
|
14
|
+
Mermaid: "mermaid",
|
|
15
|
+
Step: "step",
|
|
16
|
+
Steps: "steps",
|
|
17
|
+
Tab: "tab",
|
|
18
|
+
Tabs: "tabs",
|
|
19
|
+
TabIcon: "tab-icon",
|
|
20
|
+
Update: "update",
|
|
21
|
+
Tooltip: "tooltip",
|
|
22
|
+
Panel: "panel",
|
|
23
|
+
APISection: "api-section",
|
|
24
|
+
APISectionHeading: "api-section-heading",
|
|
25
|
+
APISectionHeadingTitle: "api-section-heading-title",
|
|
26
|
+
APISectionHeadingSubtitle: "api-section-heading-subtitle",
|
|
27
|
+
OptionDropdown: "option-dropdown",
|
|
28
|
+
TryitButton: "tryit-button",
|
|
29
|
+
MethodPill: "method-pill",
|
|
30
|
+
MethodNavPill: "method-nav-pill",
|
|
31
|
+
NavTagPill: "nav-tag-pill",
|
|
32
|
+
NavTagPillText: "nav-tag-pill-text",
|
|
33
|
+
Anchors: "nav-anchors",
|
|
34
|
+
Anchor: "nav-anchor",
|
|
35
|
+
TabsBar: "nav-tabs",
|
|
36
|
+
TabsBarItem: "nav-tabs-item",
|
|
37
|
+
MobileNavTabsBarItem: "mobile-nav-tabs-item",
|
|
38
|
+
TableOfContents: "toc",
|
|
39
|
+
TableOfContentsItem: "toc-item",
|
|
40
|
+
Footer: "footer",
|
|
41
|
+
AdvancedFooter: "advanced-footer",
|
|
42
|
+
SidebarGroupIcon: "sidebar-group-icon",
|
|
43
|
+
SidebarGroupHeader: "sidebar-group-header",
|
|
44
|
+
SidebarTitle: "sidebar-title",
|
|
45
|
+
SidebarGroup: "sidebar-group",
|
|
46
|
+
SidebarNavGroupDivider: "sidebar-nav-group-divider",
|
|
47
|
+
NavBarLink: "navbar-link",
|
|
48
|
+
TopbarRightContainer: "topbar-right-container",
|
|
49
|
+
Logo: "nav-logo",
|
|
50
|
+
PaginationPrev: "pagination-prev",
|
|
51
|
+
PaginationNext: "pagination-next",
|
|
52
|
+
PaginationTitle: "pagination-title",
|
|
53
|
+
FeedbackToolbar: "feedback-toolbar",
|
|
54
|
+
Eyebrow: "eyebrow",
|
|
55
|
+
BreadcrumbList: "breadcrumb-list",
|
|
56
|
+
BreadcrumbItem: "breadcrumb-item",
|
|
57
|
+
Content: "mdx-content",
|
|
58
|
+
DropdownTrigger: "nav-dropdown-trigger",
|
|
59
|
+
DropdownContent: "nav-dropdown-content",
|
|
60
|
+
DropdownItem: "nav-dropdown-item",
|
|
61
|
+
DropdownItemTextContainer: "nav-dropdown-item-text-container",
|
|
62
|
+
DropdownItemTitle: "nav-dropdown-item-title",
|
|
63
|
+
DropdownItemDescription: "nav-dropdown-item-description",
|
|
64
|
+
DropdownItemIcon: "nav-dropdown-item-icon",
|
|
65
|
+
ProductsSelectorTrigger: "nav-dropdown-products-selector-trigger",
|
|
66
|
+
ProductsSelectorContent: "nav-dropdown-products-selector-content",
|
|
67
|
+
ProductsSelectorItem: "nav-dropdown-products-selector-item",
|
|
68
|
+
ProductsSelectorItemTitle: "nav-dropdown-products-selector-item-title",
|
|
69
|
+
ProductsSelectorItemDescription: "nav-dropdown-products-selector-item-description",
|
|
70
|
+
ProductsSelectorItemIcon: "nav-dropdown-products-selector-item-icon",
|
|
71
|
+
Link: "link",
|
|
72
|
+
AlmondLayout: "almond-layout",
|
|
73
|
+
AlmondNavBottomSection: "almond-nav-bottom-section",
|
|
74
|
+
AlmondNavBottomSectionDivider: "almond-nav-bottom-section-divider",
|
|
75
|
+
ChatAssistantSheet: "chat-assistant-sheet",
|
|
76
|
+
ChatAssistantSheetHeader: "chat-assistant-sheet-header",
|
|
77
|
+
ChatAssistantSheetContent: "chat-assistant-sheet-content",
|
|
78
|
+
ChatAssistantInput: "chat-assistant-input",
|
|
79
|
+
ChatAssistantFloatingInput: "chat-assistant-floating-input",
|
|
80
|
+
ChatAssistantSendButton: "chat-assistant-send-button",
|
|
81
|
+
ChatAssistantDisclaimerText: "chat-assistant-disclaimer-text",
|
|
82
|
+
ChatAssistantPayloadItem: "chat-assistant-payload-item",
|
|
83
|
+
StarterQuestionText: "starter-question-text",
|
|
84
|
+
LoginLink: "login-link",
|
|
85
|
+
LogoutLink: "logout-link",
|
|
86
|
+
ContextualFeedbackContainer: "contextual-feedback-container",
|
|
87
|
+
ContextualFeedbackForm: "contextual-feedback-form",
|
|
88
|
+
ContextualFeedbackFormTitle: "contextual-feedback-form-title",
|
|
89
|
+
ContextualFeedbackFormInput: "contextual-feedback-input",
|
|
90
|
+
ContextualFeedbackFormButton: "contextual-feedback-button",
|
|
91
|
+
ContextualFeedbackFormSubmitButton: "contextual-feedback-form-submit-button",
|
|
92
|
+
CodeSnippetFeedbackPopoverContent: "code-snippet-feedback-popover-content",
|
|
93
|
+
CodeSnippetFeedbackForm: "code-snippet-feedback-form",
|
|
94
|
+
CodeSnippetFeedbackButton: "code-snippet-feedback-button",
|
|
95
|
+
CodeSnippetFeedbackTextArea: "code-snippet-feedback-textarea",
|
|
96
|
+
CodeSnippetFeedbackFormTitle: "code-snippet-feedback-form-title",
|
|
97
|
+
CodeSnippetFeedbackFormDescription: "code-snippet-feedback-form-description",
|
|
98
|
+
CodeSnippetFeedbackFormSubmitButton: "code-snippet-feedback-form-submit-button",
|
|
99
|
+
NotFoundContainer: "not-found-container",
|
|
100
|
+
NotFoundStatusCode: "not-found-status-code",
|
|
101
|
+
NotFoundTitle: "not-found-title",
|
|
102
|
+
NotFoundDescription: "not-found-description",
|
|
103
|
+
NotFoundLogo: "not-found-logo",
|
|
104
|
+
NotFoundLogoContainer: "not-found-logo-container",
|
|
105
|
+
NotFoundMessage: "not-found-message",
|
|
106
|
+
NotFoundGoBackButton: "not-found-go-back-button",
|
|
107
|
+
NotFoundGoBackArrow: "not-found-go-back-arrow",
|
|
108
|
+
NotFoundGoBackText: "not-found-go-back-text",
|
|
109
|
+
NotFoundRecommendedPagesList: "not-found-recommended-pages-list",
|
|
110
|
+
NotFoundRecommendedPageLink: "not-found-recommended-page-link",
|
|
111
|
+
MultiViewItem: "multi-view-item",
|
|
112
|
+
MultiViewDropdown: "multi-view-dropdown",
|
|
113
|
+
MultiViewDropdownTrigger: "multi-view-dropdown-trigger",
|
|
114
|
+
MultiViewDropdownContent: "multi-view-dropdown-content",
|
|
115
|
+
MultiViewDropdownItem: "multi-view-dropdown-item",
|
|
116
|
+
Color: "color",
|
|
117
|
+
ColorRow: "color-row",
|
|
118
|
+
ColorItem: "color-item",
|
|
119
|
+
Tile: "tile",
|
|
120
|
+
Tree: "tree",
|
|
121
|
+
TreeFolder: "tree-folder",
|
|
122
|
+
TreeFile: "tree-file",
|
|
123
|
+
};
|
|
124
|
+
const Classes = Object.fromEntries(Object.entries(_classes).map(([key, value]) => [key, `${value}`]));
|
|
125
|
+
export { Classes };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { useExpandable } from "./use-expandable.svelte";
|
|
2
|
+
export { useExpandableMemory } from "./use-expandable-memory.svelte";
|
|
3
|
+
export { useGetShikiHighlightedHtml } from "./use-get-shiki-highlighted-html.svelte";
|
|
4
|
+
export { useHasHover } from "./use-has-hover";
|
|
5
|
+
export { useIsDarkTheme } from "./use-is-dark-theme.svelte";
|
|
6
|
+
export { useIsomorphicLayoutEffect } from "./use-isomorphic-layout-effect";
|
|
7
|
+
export type { UseExpandableReturn } from "./use-expandable.svelte";
|
|
8
|
+
export type { UseGetShikiHighlightedHtmlReturn } from "./use-get-shiki-highlighted-html.svelte";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useExpandable } from "./use-expandable.svelte";
|
|
2
|
+
export { useExpandableMemory } from "./use-expandable-memory.svelte";
|
|
3
|
+
export { useGetShikiHighlightedHtml } from "./use-get-shiki-highlighted-html.svelte";
|
|
4
|
+
export { useHasHover } from "./use-has-hover";
|
|
5
|
+
export { useIsDarkTheme } from "./use-is-dark-theme.svelte";
|
|
6
|
+
export { useIsomorphicLayoutEffect } from "./use-isomorphic-layout-effect";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const useExpandableMemory: (getId: () => string | undefined, getDefaultExpanded: () => boolean, getElement: () => HTMLElement | null) => {
|
|
2
|
+
readonly isExpanded: boolean;
|
|
3
|
+
onManualToggle: (expanded: boolean) => void;
|
|
4
|
+
readonly isInSessionStorage: boolean;
|
|
5
|
+
};
|
|
6
|
+
export { useExpandableMemory };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
const USER_TOGGLED_EXPANDABLES_KEY = "user_toggled_expandables";
|
|
2
|
+
const getManuallyToggledExpandables = () => {
|
|
3
|
+
try {
|
|
4
|
+
const manuallyToggledExpandables = sessionStorage.getItem(USER_TOGGLED_EXPANDABLES_KEY);
|
|
5
|
+
return manuallyToggledExpandables
|
|
6
|
+
? JSON.parse(manuallyToggledExpandables)
|
|
7
|
+
: {};
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return {};
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const saveManuallyToggledState = (id, isExpanded) => {
|
|
14
|
+
try {
|
|
15
|
+
const current = getManuallyToggledExpandables();
|
|
16
|
+
const updated = { ...current, [id]: isExpanded };
|
|
17
|
+
sessionStorage.setItem(USER_TOGGLED_EXPANDABLES_KEY, JSON.stringify(updated));
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
// silently fail if setItem() fails
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const useExpandableMemory = (getId, getDefaultExpanded, getElement) => {
|
|
24
|
+
// track if user manually clicked the expandable
|
|
25
|
+
let manuallyChanged = $state(false);
|
|
26
|
+
// track if the expandable state exists in session storage
|
|
27
|
+
let isInSessionStorage = $state(false);
|
|
28
|
+
let isExpanded = $state(getDefaultExpanded());
|
|
29
|
+
$effect(() => {
|
|
30
|
+
const id = getId();
|
|
31
|
+
if (!id) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const manuallyToggledExpandables = getManuallyToggledExpandables();
|
|
35
|
+
if (id in manuallyToggledExpandables) {
|
|
36
|
+
isExpanded = !!manuallyToggledExpandables[id];
|
|
37
|
+
manuallyChanged = true;
|
|
38
|
+
isInSessionStorage = true;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
$effect(() => {
|
|
42
|
+
const defaultExpanded = getDefaultExpanded();
|
|
43
|
+
const observer = typeof IntersectionObserver === "undefined"
|
|
44
|
+
? undefined
|
|
45
|
+
: new IntersectionObserver((entries) => {
|
|
46
|
+
const entry = entries[0];
|
|
47
|
+
if (entry) {
|
|
48
|
+
// Only auto-expand if the user hasn't manually clicked the expandable
|
|
49
|
+
// Don't update visibility state constantly during scroll
|
|
50
|
+
if (entry.isIntersecting &&
|
|
51
|
+
!manuallyChanged &&
|
|
52
|
+
defaultExpanded) {
|
|
53
|
+
isExpanded = isExpanded ? isExpanded : true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
rootMargin: "100px",
|
|
58
|
+
threshold: 0,
|
|
59
|
+
});
|
|
60
|
+
const currentElement = getElement();
|
|
61
|
+
if (observer && currentElement) {
|
|
62
|
+
observer.observe(currentElement);
|
|
63
|
+
}
|
|
64
|
+
return () => {
|
|
65
|
+
if (observer && currentElement) {
|
|
66
|
+
observer.unobserve(currentElement);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
const onManualToggle = (expanded) => {
|
|
71
|
+
isExpanded = expanded;
|
|
72
|
+
manuallyChanged = true;
|
|
73
|
+
isInSessionStorage = true;
|
|
74
|
+
const id = getId();
|
|
75
|
+
if (id) {
|
|
76
|
+
saveManuallyToggledState(id, expanded);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
get isExpanded() {
|
|
81
|
+
return isExpanded;
|
|
82
|
+
},
|
|
83
|
+
onManualToggle,
|
|
84
|
+
get isInSessionStorage() {
|
|
85
|
+
return isInSessionStorage;
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
export { useExpandableMemory };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const SMALL_EXPANDABLE_NUMBER_OF_LINES = 7;
|
|
2
|
+
declare const SMALL_EXPANDABLE_HEIGHT_OFFSET = 30;
|
|
3
|
+
declare const EXPANDED_HEIGHT_OFFSET = 40;
|
|
4
|
+
declare const SMALL_EXPANDABLE_CODE_BLOCK_HEIGHT = 45;
|
|
5
|
+
declare const DEFAULT_EXPANDABLE_CODE_BLOCK_HEIGHT = 190;
|
|
6
|
+
type ReactiveValue<T> = T | (() => T);
|
|
7
|
+
type UseExpandableReturn = {
|
|
8
|
+
isExpanded: boolean;
|
|
9
|
+
calculatedHeight: number;
|
|
10
|
+
contentRef: HTMLElement | null;
|
|
11
|
+
toggleExpanded: () => void;
|
|
12
|
+
};
|
|
13
|
+
declare const useExpandable: (enable: ReactiveValue<boolean>, numberOfLines?: ReactiveValue<number | undefined>) => UseExpandableReturn;
|
|
14
|
+
export { SMALL_EXPANDABLE_NUMBER_OF_LINES, SMALL_EXPANDABLE_HEIGHT_OFFSET, EXPANDED_HEIGHT_OFFSET, SMALL_EXPANDABLE_CODE_BLOCK_HEIGHT, DEFAULT_EXPANDABLE_CODE_BLOCK_HEIGHT, useExpandable, };
|
|
15
|
+
export type { UseExpandableReturn };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const SMALL_EXPANDABLE_NUMBER_OF_LINES = 7;
|
|
2
|
+
const SMALL_EXPANDABLE_HEIGHT_OFFSET = 30;
|
|
3
|
+
const EXPANDED_HEIGHT_OFFSET = 40;
|
|
4
|
+
const SMALL_EXPANDABLE_CODE_BLOCK_HEIGHT = 45;
|
|
5
|
+
const DEFAULT_EXPANDABLE_CODE_BLOCK_HEIGHT = 190;
|
|
6
|
+
const resolve = (value) => typeof value === "function" ? value() : value;
|
|
7
|
+
const useExpandable = (enable, numberOfLines) => {
|
|
8
|
+
let isExpanded = $state(false);
|
|
9
|
+
let calculatedHeight = $state(0);
|
|
10
|
+
let contentRef = $state(null);
|
|
11
|
+
$effect(() => {
|
|
12
|
+
const currentEnable = resolve(enable);
|
|
13
|
+
const currentNumberOfLines = resolve(numberOfLines);
|
|
14
|
+
const currentContentRef = contentRef;
|
|
15
|
+
let rafId;
|
|
16
|
+
if (currentContentRef != null && currentEnable) {
|
|
17
|
+
rafId = requestAnimationFrame(() => {
|
|
18
|
+
if (contentRef === currentContentRef) {
|
|
19
|
+
calculatedHeight =
|
|
20
|
+
currentContentRef.scrollHeight +
|
|
21
|
+
(currentNumberOfLines !== undefined &&
|
|
22
|
+
currentNumberOfLines < SMALL_EXPANDABLE_NUMBER_OF_LINES
|
|
23
|
+
? SMALL_EXPANDABLE_HEIGHT_OFFSET
|
|
24
|
+
: EXPANDED_HEIGHT_OFFSET);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return () => {
|
|
29
|
+
if (rafId !== undefined) {
|
|
30
|
+
cancelAnimationFrame(rafId);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
const toggleExpanded = () => {
|
|
35
|
+
isExpanded = !isExpanded;
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
get isExpanded() {
|
|
39
|
+
return isExpanded;
|
|
40
|
+
},
|
|
41
|
+
get calculatedHeight() {
|
|
42
|
+
return calculatedHeight;
|
|
43
|
+
},
|
|
44
|
+
get contentRef() {
|
|
45
|
+
return contentRef;
|
|
46
|
+
},
|
|
47
|
+
set contentRef(value) {
|
|
48
|
+
contentRef = value;
|
|
49
|
+
},
|
|
50
|
+
toggleExpanded,
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export { SMALL_EXPANDABLE_NUMBER_OF_LINES, SMALL_EXPANDABLE_HEIGHT_OFFSET, EXPANDED_HEIGHT_OFFSET, SMALL_EXPANDABLE_CODE_BLOCK_HEIGHT, DEFAULT_EXPANDABLE_CODE_BLOCK_HEIGHT, useExpandable, };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ShikiHighlightedHtmlArgs } from "../utils/shiki";
|
|
2
|
+
type PropsSource = ShikiHighlightedHtmlArgs | (() => ShikiHighlightedHtmlArgs);
|
|
3
|
+
type UseGetShikiHighlightedHtmlReturn = {
|
|
4
|
+
html: string | undefined;
|
|
5
|
+
};
|
|
6
|
+
declare const useGetShikiHighlightedHtml: (props: PropsSource) => UseGetShikiHighlightedHtmlReturn;
|
|
7
|
+
export { useGetShikiHighlightedHtml };
|
|
8
|
+
export type { UseGetShikiHighlightedHtmlReturn };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { getShikiHighlightedHtml, } from "../utils/shiki";
|
|
2
|
+
const useGetShikiHighlightedHtml = (props) => {
|
|
3
|
+
let html = $state(undefined);
|
|
4
|
+
let requestSequence = 0;
|
|
5
|
+
$effect(() => {
|
|
6
|
+
const currentProps = typeof props === "function" ? props() : props;
|
|
7
|
+
const htmlOrPromise = getShikiHighlightedHtml(currentProps);
|
|
8
|
+
const requestId = ++requestSequence;
|
|
9
|
+
if (!(htmlOrPromise instanceof Promise)) {
|
|
10
|
+
html = htmlOrPromise;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
html = undefined;
|
|
14
|
+
void htmlOrPromise
|
|
15
|
+
.then((result) => {
|
|
16
|
+
if (requestId === requestSequence) {
|
|
17
|
+
html = result;
|
|
18
|
+
}
|
|
19
|
+
})
|
|
20
|
+
.catch((err) => {
|
|
21
|
+
console.error(err);
|
|
22
|
+
if (requestId === requestSequence) {
|
|
23
|
+
html = undefined;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return () => {
|
|
27
|
+
requestSequence += 1;
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
get html() {
|
|
32
|
+
return html;
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export { useGetShikiHighlightedHtml };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { onMount } from "svelte";
|
|
2
|
+
function createIsDarkTheme() {
|
|
3
|
+
let isDarkTheme = $state(false);
|
|
4
|
+
function getIsDarkTheme() {
|
|
5
|
+
if (typeof document === "undefined")
|
|
6
|
+
return false;
|
|
7
|
+
return document.documentElement.classList.contains("dark");
|
|
8
|
+
}
|
|
9
|
+
onMount(() => {
|
|
10
|
+
isDarkTheme = getIsDarkTheme();
|
|
11
|
+
const observer = new MutationObserver(() => {
|
|
12
|
+
isDarkTheme = getIsDarkTheme();
|
|
13
|
+
});
|
|
14
|
+
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
|
|
15
|
+
return () => observer.disconnect();
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
get isDarkTheme() {
|
|
19
|
+
return isDarkTheme;
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function useIsDarkTheme() {
|
|
24
|
+
return createIsDarkTheme();
|
|
25
|
+
}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED