@scalar/components 0.12.50 → 0.12.52

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.
@@ -108,14 +108,14 @@ declare const meta: {
108
108
  ScalarSearchResultItem: {
109
109
  new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<{
110
110
  icon: {
111
- type: import("vue").PropType<"Add" | "AddTab" | "ArrowLeft" | "ArrowRight" | "Brackets" | "Branch" | "Changelog" | "Checkmark" | "ChevronDown" | "ChevronLeft" | "ChevronRight" | "ChevronUp" | "Clipboard" | "Close" | "CloseTab" | "CloseTabs" | "Cloud" | "CodeFolder" | "Cog" | "Collection" | "Cookie" | "DarkMode" | "Delete" | "Discord" | "DiscordLine" | "DocsPage" | "Download" | "Duplicate" | "Edit" | "Ellipses" | "Email" | "Error" | "Example" | "ExternalLink" | "FilterList" | "Folder" | "GitHub" | "GitHubLine" | "Google" | "Help" | "Hide" | "History" | "House" | "Import" | "Info" | "Key" | "Leave" | "LightDarkModeToggle" | "LightMode" | "Link" | "Lock" | "Logo" | "LogoAPI" | "LogoClient" | "LogoMarket" | "LogoSwagger" | "Magic" | "Menu" | "Page" | "PaperAirplane" | "Pencil" | "Play" | "Refresh" | "Roadmap" | "Scribble" | "Search" | "Server" | "Show" | "Sort" | "Terminal" | "ThumbsDown" | "ThumbsUp" | "Trash" | "Unlock" | "Upload" | "UploadSimple" | "User" | "Users" | "Wallet" | "Workspace" | "programming-framework-angular" | "programming-framework-astro" | "programming-framework-laravel" | "programming-framework-nextdotjs" | "programming-framework-react" | "programming-framework-vuedotjs" | "programming-language-c" | "programming-language-clojure" | "programming-language-csharp" | "programming-language-css3" | "programming-language-go" | "programming-language-html5" | "programming-language-http" | "programming-language-java" | "programming-language-javascript" | "programming-language-json" | "programming-language-kotlin" | "programming-language-node" | "programming-language-objc" | "programming-language-ocaml" | "programming-language-php" | "programming-language-powershell" | "programming-language-python" | "programming-language-r" | "programming-language-ruby" | "programming-language-scala" | "programming-language-shell" | "programming-language-swift" | "programming-language-typescript" | "programming-script-code" | "programming-tool-git" | "programming-tool-tailwindcss">;
111
+ type: import("vue").PropType<"Add" | "AddTab" | "ArrowLeft" | "ArrowRight" | "Brackets" | "Branch" | "Changelog" | "Checkmark" | "ChevronDown" | "ChevronLeft" | "ChevronRight" | "ChevronUp" | "Clipboard" | "Close" | "CloseTab" | "CloseTabs" | "Cloud" | "CodeFolder" | "Cog" | "Collection" | "Cookie" | "DarkMode" | "Delete" | "Discord" | "DiscordLine" | "DocsPage" | "Download" | "Duplicate" | "Edit" | "Ellipses" | "Email" | "Error" | "Example" | "ExternalLink" | "FilterList" | "Folder" | "GitHub" | "GitHubLine" | "Google" | "Help" | "Hide" | "History" | "House" | "Import" | "Info" | "Key" | "Leave" | "LightDarkModeToggle" | "LightMode" | "Link" | "Lock" | "Logo" | "LogoAPI" | "LogoClient" | "LogoMarket" | "LogoSwagger" | "Magic" | "Menu" | "Page" | "PaperAirplane" | "Pencil" | "Play" | "Refresh" | "Roadmap" | "Scribble" | "Search" | "Server" | "Settings" | "Show" | "Sort" | "Terminal" | "ThumbsDown" | "ThumbsUp" | "Trash" | "Unlock" | "Upload" | "UploadSimple" | "User" | "Users" | "Wallet" | "Workspace" | "programming-framework-angular" | "programming-framework-astro" | "programming-framework-laravel" | "programming-framework-nextdotjs" | "programming-framework-react" | "programming-framework-vuedotjs" | "programming-language-c" | "programming-language-clojure" | "programming-language-csharp" | "programming-language-css3" | "programming-language-go" | "programming-language-html5" | "programming-language-http" | "programming-language-java" | "programming-language-javascript" | "programming-language-json" | "programming-language-kotlin" | "programming-language-node" | "programming-language-objc" | "programming-language-ocaml" | "programming-language-php" | "programming-language-powershell" | "programming-language-python" | "programming-language-r" | "programming-language-ruby" | "programming-language-scala" | "programming-language-shell" | "programming-language-swift" | "programming-language-typescript" | "programming-script-code" | "programming-tool-git" | "programming-tool-tailwindcss">;
112
112
  };
113
113
  active: {
114
114
  type: import("vue").PropType<boolean>;
115
115
  };
116
116
  }>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
117
117
  icon: {
118
- type: import("vue").PropType<"Add" | "AddTab" | "ArrowLeft" | "ArrowRight" | "Brackets" | "Branch" | "Changelog" | "Checkmark" | "ChevronDown" | "ChevronLeft" | "ChevronRight" | "ChevronUp" | "Clipboard" | "Close" | "CloseTab" | "CloseTabs" | "Cloud" | "CodeFolder" | "Cog" | "Collection" | "Cookie" | "DarkMode" | "Delete" | "Discord" | "DiscordLine" | "DocsPage" | "Download" | "Duplicate" | "Edit" | "Ellipses" | "Email" | "Error" | "Example" | "ExternalLink" | "FilterList" | "Folder" | "GitHub" | "GitHubLine" | "Google" | "Help" | "Hide" | "History" | "House" | "Import" | "Info" | "Key" | "Leave" | "LightDarkModeToggle" | "LightMode" | "Link" | "Lock" | "Logo" | "LogoAPI" | "LogoClient" | "LogoMarket" | "LogoSwagger" | "Magic" | "Menu" | "Page" | "PaperAirplane" | "Pencil" | "Play" | "Refresh" | "Roadmap" | "Scribble" | "Search" | "Server" | "Show" | "Sort" | "Terminal" | "ThumbsDown" | "ThumbsUp" | "Trash" | "Unlock" | "Upload" | "UploadSimple" | "User" | "Users" | "Wallet" | "Workspace" | "programming-framework-angular" | "programming-framework-astro" | "programming-framework-laravel" | "programming-framework-nextdotjs" | "programming-framework-react" | "programming-framework-vuedotjs" | "programming-language-c" | "programming-language-clojure" | "programming-language-csharp" | "programming-language-css3" | "programming-language-go" | "programming-language-html5" | "programming-language-http" | "programming-language-java" | "programming-language-javascript" | "programming-language-json" | "programming-language-kotlin" | "programming-language-node" | "programming-language-objc" | "programming-language-ocaml" | "programming-language-php" | "programming-language-powershell" | "programming-language-python" | "programming-language-r" | "programming-language-ruby" | "programming-language-scala" | "programming-language-shell" | "programming-language-swift" | "programming-language-typescript" | "programming-script-code" | "programming-tool-git" | "programming-tool-tailwindcss">;
118
+ type: import("vue").PropType<"Add" | "AddTab" | "ArrowLeft" | "ArrowRight" | "Brackets" | "Branch" | "Changelog" | "Checkmark" | "ChevronDown" | "ChevronLeft" | "ChevronRight" | "ChevronUp" | "Clipboard" | "Close" | "CloseTab" | "CloseTabs" | "Cloud" | "CodeFolder" | "Cog" | "Collection" | "Cookie" | "DarkMode" | "Delete" | "Discord" | "DiscordLine" | "DocsPage" | "Download" | "Duplicate" | "Edit" | "Ellipses" | "Email" | "Error" | "Example" | "ExternalLink" | "FilterList" | "Folder" | "GitHub" | "GitHubLine" | "Google" | "Help" | "Hide" | "History" | "House" | "Import" | "Info" | "Key" | "Leave" | "LightDarkModeToggle" | "LightMode" | "Link" | "Lock" | "Logo" | "LogoAPI" | "LogoClient" | "LogoMarket" | "LogoSwagger" | "Magic" | "Menu" | "Page" | "PaperAirplane" | "Pencil" | "Play" | "Refresh" | "Roadmap" | "Scribble" | "Search" | "Server" | "Settings" | "Show" | "Sort" | "Terminal" | "ThumbsDown" | "ThumbsUp" | "Trash" | "Unlock" | "Upload" | "UploadSimple" | "User" | "Users" | "Wallet" | "Workspace" | "programming-framework-angular" | "programming-framework-astro" | "programming-framework-laravel" | "programming-framework-nextdotjs" | "programming-framework-react" | "programming-framework-vuedotjs" | "programming-language-c" | "programming-language-clojure" | "programming-language-csharp" | "programming-language-css3" | "programming-language-go" | "programming-language-html5" | "programming-language-http" | "programming-language-java" | "programming-language-javascript" | "programming-language-json" | "programming-language-kotlin" | "programming-language-node" | "programming-language-objc" | "programming-language-ocaml" | "programming-language-php" | "programming-language-powershell" | "programming-language-python" | "programming-language-r" | "programming-language-ruby" | "programming-language-scala" | "programming-language-shell" | "programming-language-swift" | "programming-language-typescript" | "programming-script-code" | "programming-tool-git" | "programming-tool-tailwindcss">;
119
119
  };
120
120
  active: {
121
121
  type: import("vue").PropType<boolean>;
@@ -129,7 +129,7 @@ declare const meta: {
129
129
  Defaults: {};
130
130
  }, Readonly<import("vue").ExtractPropTypes<{
131
131
  icon: {
132
- type: import("vue").PropType<"Add" | "AddTab" | "ArrowLeft" | "ArrowRight" | "Brackets" | "Branch" | "Changelog" | "Checkmark" | "ChevronDown" | "ChevronLeft" | "ChevronRight" | "ChevronUp" | "Clipboard" | "Close" | "CloseTab" | "CloseTabs" | "Cloud" | "CodeFolder" | "Cog" | "Collection" | "Cookie" | "DarkMode" | "Delete" | "Discord" | "DiscordLine" | "DocsPage" | "Download" | "Duplicate" | "Edit" | "Ellipses" | "Email" | "Error" | "Example" | "ExternalLink" | "FilterList" | "Folder" | "GitHub" | "GitHubLine" | "Google" | "Help" | "Hide" | "History" | "House" | "Import" | "Info" | "Key" | "Leave" | "LightDarkModeToggle" | "LightMode" | "Link" | "Lock" | "Logo" | "LogoAPI" | "LogoClient" | "LogoMarket" | "LogoSwagger" | "Magic" | "Menu" | "Page" | "PaperAirplane" | "Pencil" | "Play" | "Refresh" | "Roadmap" | "Scribble" | "Search" | "Server" | "Show" | "Sort" | "Terminal" | "ThumbsDown" | "ThumbsUp" | "Trash" | "Unlock" | "Upload" | "UploadSimple" | "User" | "Users" | "Wallet" | "Workspace" | "programming-framework-angular" | "programming-framework-astro" | "programming-framework-laravel" | "programming-framework-nextdotjs" | "programming-framework-react" | "programming-framework-vuedotjs" | "programming-language-c" | "programming-language-clojure" | "programming-language-csharp" | "programming-language-css3" | "programming-language-go" | "programming-language-html5" | "programming-language-http" | "programming-language-java" | "programming-language-javascript" | "programming-language-json" | "programming-language-kotlin" | "programming-language-node" | "programming-language-objc" | "programming-language-ocaml" | "programming-language-php" | "programming-language-powershell" | "programming-language-python" | "programming-language-r" | "programming-language-ruby" | "programming-language-scala" | "programming-language-shell" | "programming-language-swift" | "programming-language-typescript" | "programming-script-code" | "programming-tool-git" | "programming-tool-tailwindcss">;
132
+ type: import("vue").PropType<"Add" | "AddTab" | "ArrowLeft" | "ArrowRight" | "Brackets" | "Branch" | "Changelog" | "Checkmark" | "ChevronDown" | "ChevronLeft" | "ChevronRight" | "ChevronUp" | "Clipboard" | "Close" | "CloseTab" | "CloseTabs" | "Cloud" | "CodeFolder" | "Cog" | "Collection" | "Cookie" | "DarkMode" | "Delete" | "Discord" | "DiscordLine" | "DocsPage" | "Download" | "Duplicate" | "Edit" | "Ellipses" | "Email" | "Error" | "Example" | "ExternalLink" | "FilterList" | "Folder" | "GitHub" | "GitHubLine" | "Google" | "Help" | "Hide" | "History" | "House" | "Import" | "Info" | "Key" | "Leave" | "LightDarkModeToggle" | "LightMode" | "Link" | "Lock" | "Logo" | "LogoAPI" | "LogoClient" | "LogoMarket" | "LogoSwagger" | "Magic" | "Menu" | "Page" | "PaperAirplane" | "Pencil" | "Play" | "Refresh" | "Roadmap" | "Scribble" | "Search" | "Server" | "Settings" | "Show" | "Sort" | "Terminal" | "ThumbsDown" | "ThumbsUp" | "Trash" | "Unlock" | "Upload" | "UploadSimple" | "User" | "Users" | "Wallet" | "Workspace" | "programming-framework-angular" | "programming-framework-astro" | "programming-framework-laravel" | "programming-framework-nextdotjs" | "programming-framework-react" | "programming-framework-vuedotjs" | "programming-language-c" | "programming-language-clojure" | "programming-language-csharp" | "programming-language-css3" | "programming-language-go" | "programming-language-html5" | "programming-language-http" | "programming-language-java" | "programming-language-javascript" | "programming-language-json" | "programming-language-kotlin" | "programming-language-node" | "programming-language-objc" | "programming-language-ocaml" | "programming-language-php" | "programming-language-powershell" | "programming-language-python" | "programming-language-r" | "programming-language-ruby" | "programming-language-scala" | "programming-language-shell" | "programming-language-swift" | "programming-language-typescript" | "programming-script-code" | "programming-tool-git" | "programming-tool-tailwindcss">;
133
133
  };
134
134
  active: {
135
135
  type: import("vue").PropType<boolean>;
@@ -140,7 +140,7 @@ declare const meta: {
140
140
  __isSuspense?: never;
141
141
  } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
142
142
  icon: {
143
- type: import("vue").PropType<"Add" | "AddTab" | "ArrowLeft" | "ArrowRight" | "Brackets" | "Branch" | "Changelog" | "Checkmark" | "ChevronDown" | "ChevronLeft" | "ChevronRight" | "ChevronUp" | "Clipboard" | "Close" | "CloseTab" | "CloseTabs" | "Cloud" | "CodeFolder" | "Cog" | "Collection" | "Cookie" | "DarkMode" | "Delete" | "Discord" | "DiscordLine" | "DocsPage" | "Download" | "Duplicate" | "Edit" | "Ellipses" | "Email" | "Error" | "Example" | "ExternalLink" | "FilterList" | "Folder" | "GitHub" | "GitHubLine" | "Google" | "Help" | "Hide" | "History" | "House" | "Import" | "Info" | "Key" | "Leave" | "LightDarkModeToggle" | "LightMode" | "Link" | "Lock" | "Logo" | "LogoAPI" | "LogoClient" | "LogoMarket" | "LogoSwagger" | "Magic" | "Menu" | "Page" | "PaperAirplane" | "Pencil" | "Play" | "Refresh" | "Roadmap" | "Scribble" | "Search" | "Server" | "Show" | "Sort" | "Terminal" | "ThumbsDown" | "ThumbsUp" | "Trash" | "Unlock" | "Upload" | "UploadSimple" | "User" | "Users" | "Wallet" | "Workspace" | "programming-framework-angular" | "programming-framework-astro" | "programming-framework-laravel" | "programming-framework-nextdotjs" | "programming-framework-react" | "programming-framework-vuedotjs" | "programming-language-c" | "programming-language-clojure" | "programming-language-csharp" | "programming-language-css3" | "programming-language-go" | "programming-language-html5" | "programming-language-http" | "programming-language-java" | "programming-language-javascript" | "programming-language-json" | "programming-language-kotlin" | "programming-language-node" | "programming-language-objc" | "programming-language-ocaml" | "programming-language-php" | "programming-language-powershell" | "programming-language-python" | "programming-language-r" | "programming-language-ruby" | "programming-language-scala" | "programming-language-shell" | "programming-language-swift" | "programming-language-typescript" | "programming-script-code" | "programming-tool-git" | "programming-tool-tailwindcss">;
143
+ type: import("vue").PropType<"Add" | "AddTab" | "ArrowLeft" | "ArrowRight" | "Brackets" | "Branch" | "Changelog" | "Checkmark" | "ChevronDown" | "ChevronLeft" | "ChevronRight" | "ChevronUp" | "Clipboard" | "Close" | "CloseTab" | "CloseTabs" | "Cloud" | "CodeFolder" | "Cog" | "Collection" | "Cookie" | "DarkMode" | "Delete" | "Discord" | "DiscordLine" | "DocsPage" | "Download" | "Duplicate" | "Edit" | "Ellipses" | "Email" | "Error" | "Example" | "ExternalLink" | "FilterList" | "Folder" | "GitHub" | "GitHubLine" | "Google" | "Help" | "Hide" | "History" | "House" | "Import" | "Info" | "Key" | "Leave" | "LightDarkModeToggle" | "LightMode" | "Link" | "Lock" | "Logo" | "LogoAPI" | "LogoClient" | "LogoMarket" | "LogoSwagger" | "Magic" | "Menu" | "Page" | "PaperAirplane" | "Pencil" | "Play" | "Refresh" | "Roadmap" | "Scribble" | "Search" | "Server" | "Settings" | "Show" | "Sort" | "Terminal" | "ThumbsDown" | "ThumbsUp" | "Trash" | "Unlock" | "Upload" | "UploadSimple" | "User" | "Users" | "Wallet" | "Workspace" | "programming-framework-angular" | "programming-framework-astro" | "programming-framework-laravel" | "programming-framework-nextdotjs" | "programming-framework-react" | "programming-framework-vuedotjs" | "programming-language-c" | "programming-language-clojure" | "programming-language-csharp" | "programming-language-css3" | "programming-language-go" | "programming-language-html5" | "programming-language-http" | "programming-language-java" | "programming-language-javascript" | "programming-language-json" | "programming-language-kotlin" | "programming-language-node" | "programming-language-objc" | "programming-language-ocaml" | "programming-language-php" | "programming-language-powershell" | "programming-language-python" | "programming-language-r" | "programming-language-ruby" | "programming-language-scala" | "programming-language-shell" | "programming-language-swift" | "programming-language-typescript" | "programming-script-code" | "programming-tool-git" | "programming-tool-tailwindcss">;
144
144
  };
145
145
  active: {
146
146
  type: import("vue").PropType<boolean>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ScalarVirtualText.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarVirtualText.spec.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarVirtualText/ScalarVirtualText.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,214 @@
1
+ import type { StoryObj } from '@storybook/vue3';
2
+ declare const meta: {
3
+ component: import("vue").DefineComponent<{
4
+ text: {
5
+ type: import("vue").PropType<string>;
6
+ required: true;
7
+ };
8
+ lineHeight: {
9
+ type: import("vue").PropType<number>;
10
+ default: number;
11
+ };
12
+ containerClass: {
13
+ type: import("vue").PropType<string>;
14
+ default: string;
15
+ };
16
+ contentClass: {
17
+ type: import("vue").PropType<string>;
18
+ default: string;
19
+ };
20
+ lineClass: {
21
+ type: import("vue").PropType<string>;
22
+ default: string;
23
+ };
24
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
25
+ text: {
26
+ type: import("vue").PropType<string>;
27
+ required: true;
28
+ };
29
+ lineHeight: {
30
+ type: import("vue").PropType<number>;
31
+ default: number;
32
+ };
33
+ containerClass: {
34
+ type: import("vue").PropType<string>;
35
+ default: string;
36
+ };
37
+ contentClass: {
38
+ type: import("vue").PropType<string>;
39
+ default: string;
40
+ };
41
+ lineClass: {
42
+ type: import("vue").PropType<string>;
43
+ default: string;
44
+ };
45
+ }>>, {
46
+ lineHeight: number;
47
+ containerClass: string;
48
+ contentClass: string;
49
+ lineClass: string;
50
+ }, {}>;
51
+ tags: string[];
52
+ argTypes: {
53
+ text: {
54
+ control: "text";
55
+ };
56
+ lineHeight: {
57
+ control: "number";
58
+ };
59
+ };
60
+ render: (args: import("@storybook/vue3").ComponentPropsAndSlots<import("vue").DefineComponent<{
61
+ text: {
62
+ type: import("vue").PropType<string>;
63
+ required: true;
64
+ };
65
+ lineHeight: {
66
+ type: import("vue").PropType<number>;
67
+ default: number;
68
+ };
69
+ containerClass: {
70
+ type: import("vue").PropType<string>;
71
+ default: string;
72
+ };
73
+ contentClass: {
74
+ type: import("vue").PropType<string>;
75
+ default: string;
76
+ };
77
+ lineClass: {
78
+ type: import("vue").PropType<string>;
79
+ default: string;
80
+ };
81
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
82
+ text: {
83
+ type: import("vue").PropType<string>;
84
+ required: true;
85
+ };
86
+ lineHeight: {
87
+ type: import("vue").PropType<number>;
88
+ default: number;
89
+ };
90
+ containerClass: {
91
+ type: import("vue").PropType<string>;
92
+ default: string;
93
+ };
94
+ contentClass: {
95
+ type: import("vue").PropType<string>;
96
+ default: string;
97
+ };
98
+ lineClass: {
99
+ type: import("vue").PropType<string>;
100
+ default: string;
101
+ };
102
+ }>>, {
103
+ lineHeight: number;
104
+ containerClass: string;
105
+ contentClass: string;
106
+ lineClass: string;
107
+ }, {}>>) => {
108
+ components: {
109
+ ScalarVirtualText: import("vue").DefineComponent<{
110
+ text: {
111
+ type: import("vue").PropType<string>;
112
+ required: true;
113
+ };
114
+ lineHeight: {
115
+ type: import("vue").PropType<number>;
116
+ default: number;
117
+ };
118
+ containerClass: {
119
+ type: import("vue").PropType<string>;
120
+ default: string;
121
+ };
122
+ contentClass: {
123
+ type: import("vue").PropType<string>;
124
+ default: string;
125
+ };
126
+ lineClass: {
127
+ type: import("vue").PropType<string>;
128
+ default: string;
129
+ };
130
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
131
+ text: {
132
+ type: import("vue").PropType<string>;
133
+ required: true;
134
+ };
135
+ lineHeight: {
136
+ type: import("vue").PropType<number>;
137
+ default: number;
138
+ };
139
+ containerClass: {
140
+ type: import("vue").PropType<string>;
141
+ default: string;
142
+ };
143
+ contentClass: {
144
+ type: import("vue").PropType<string>;
145
+ default: string;
146
+ };
147
+ lineClass: {
148
+ type: import("vue").PropType<string>;
149
+ default: string;
150
+ };
151
+ }>>, {
152
+ lineHeight: number;
153
+ containerClass: string;
154
+ contentClass: string;
155
+ lineClass: string;
156
+ }, {}>;
157
+ };
158
+ setup(this: void): {
159
+ args: import("@storybook/vue3").ComponentPropsAndSlots<import("vue").DefineComponent<{
160
+ text: {
161
+ type: import("vue").PropType<string>;
162
+ required: true;
163
+ };
164
+ lineHeight: {
165
+ type: import("vue").PropType<number>;
166
+ default: number;
167
+ };
168
+ containerClass: {
169
+ type: import("vue").PropType<string>;
170
+ default: string;
171
+ };
172
+ contentClass: {
173
+ type: import("vue").PropType<string>;
174
+ default: string;
175
+ };
176
+ lineClass: {
177
+ type: import("vue").PropType<string>;
178
+ default: string;
179
+ };
180
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
181
+ text: {
182
+ type: import("vue").PropType<string>;
183
+ required: true;
184
+ };
185
+ lineHeight: {
186
+ type: import("vue").PropType<number>;
187
+ default: number;
188
+ };
189
+ containerClass: {
190
+ type: import("vue").PropType<string>;
191
+ default: string;
192
+ };
193
+ contentClass: {
194
+ type: import("vue").PropType<string>;
195
+ default: string;
196
+ };
197
+ lineClass: {
198
+ type: import("vue").PropType<string>;
199
+ default: string;
200
+ };
201
+ }>>, {
202
+ lineHeight: number;
203
+ containerClass: string;
204
+ contentClass: string;
205
+ lineClass: string;
206
+ }, {}>>;
207
+ };
208
+ template: string;
209
+ };
210
+ };
211
+ export default meta;
212
+ type Story = StoryObj<typeof meta>;
213
+ export declare const Base: Story;
214
+ //# sourceMappingURL=ScalarVirtualText.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarVirtualText.stories.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarVirtualText/ScalarVirtualText.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAIrD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBgC,CAAA;AAE1C,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAElC,eAAO,MAAM,IAAI,EAAE,KAWlB,CAAA"}
@@ -0,0 +1,57 @@
1
+ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<{
2
+ /** Text to display */
3
+ text: string;
4
+ /**
5
+ * Height of each line
6
+ * @default 20
7
+ */
8
+ lineHeight?: number;
9
+ containerClass?: string;
10
+ contentClass?: string;
11
+ lineClass?: string;
12
+ }>, {
13
+ lineHeight: number;
14
+ containerClass: string;
15
+ contentClass: string;
16
+ lineClass: string;
17
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
18
+ /** Text to display */
19
+ text: string;
20
+ /**
21
+ * Height of each line
22
+ * @default 20
23
+ */
24
+ lineHeight?: number;
25
+ containerClass?: string;
26
+ contentClass?: string;
27
+ lineClass?: string;
28
+ }>, {
29
+ lineHeight: number;
30
+ containerClass: string;
31
+ contentClass: string;
32
+ lineClass: string;
33
+ }>>>, {
34
+ lineHeight: number;
35
+ containerClass: string;
36
+ contentClass: string;
37
+ lineClass: string;
38
+ }, {}>;
39
+ export default _default;
40
+ type __VLS_WithDefaults<P, D> = {
41
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
42
+ default: D[K];
43
+ }> : P[K];
44
+ };
45
+ type __VLS_Prettify<T> = {
46
+ [K in keyof T]: T[K];
47
+ } & {};
48
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
49
+ type __VLS_TypePropsToOption<T> = {
50
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
51
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
52
+ } : {
53
+ type: import('vue').PropType<T[K]>;
54
+ required: true;
55
+ };
56
+ };
57
+ //# sourceMappingURL=ScalarVirtualText.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarVirtualText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarVirtualText/ScalarVirtualText.vue"],"names":[],"mappings":";IA6HI,sBAAsB;UAChB,MAAM;IACZ;;;OAGG;iBACU,MAAM;qBACF,MAAM;mBACR,MAAM;gBACT,MAAM;;;;;;;IATlB,sBAAsB;UAChB,MAAM;IACZ;;;OAGG;iBACU,MAAM;qBACF,MAAM;mBACR,MAAM;gBACT,MAAM;;;;;;;gBAHL,MAAM;oBACF,MAAM;kBACR,MAAM;eACT,MAAM;;AAqJtB,wBAMG;AAOH,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAC7C,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAC,CAAC,GACvC,CAAC,CAAC,CAAC,CAAC;CACP,CAAC;AAEN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AAExD,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAC5D,KAAK,uBAAuB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CACzD,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { defineComponent as S, ref as o, computed as t, onMounted as w, onBeforeUnmount as E, watchEffect as k, openBlock as v, createElementBlock as f, normalizeClass as h, createElementVNode as _, normalizeStyle as m, Fragment as $, renderList as z, toDisplayString as L } from "vue";
2
+ const B = /* @__PURE__ */ S({
3
+ __name: "ScalarVirtualText",
4
+ props: {
5
+ text: {},
6
+ lineHeight: { default: 20 },
7
+ containerClass: { default: "" },
8
+ contentClass: { default: "" },
9
+ lineClass: { default: "" }
10
+ },
11
+ setup(p) {
12
+ const e = p, n = o(null), s = o(null), r = o(0), d = o(0), l = t(() => e.text.split(`
13
+ `)), x = t(() => l.value.length * e.lineHeight), a = t(
14
+ () => Math.floor(r.value / e.lineHeight)
15
+ ), H = t(
16
+ () => Math.min(
17
+ Math.ceil(
18
+ (r.value + d.value) / e.lineHeight
19
+ ),
20
+ l.value.length
21
+ )
22
+ ), y = t(() => {
23
+ const g = Math.max(0, a.value - 10), u = Math.min(l.value.length, H.value + 10);
24
+ return l.value.slice(g, u);
25
+ }), C = t(() => ({
26
+ height: `${x.value}px`,
27
+ transform: `translateY(${Math.max(0, a.value - 10) * e.lineHeight}px)`
28
+ })), M = () => n.value && (r.value = n.value.scrollTop), c = () => n.value && (d.value = n.value.clientHeight);
29
+ return w(() => {
30
+ c(), window.addEventListener("resize", c);
31
+ }), E(() => {
32
+ window.removeEventListener("resize", c);
33
+ }), k(() => {
34
+ s.value && (s.value.style.transform = `translateY(${Math.max(0, a.value - 10) * e.lineHeight}px)`);
35
+ }), (i, g) => (v(), f("div", {
36
+ ref_key: "containerRef",
37
+ ref: n,
38
+ class: h(["scalar-virtual-text relative overflow-auto", i.containerClass]),
39
+ onScroll: M
40
+ }, [
41
+ _("code", {
42
+ ref_key: "contentRef",
43
+ ref: s,
44
+ class: h(["scalar-virtual-text-content absolute", i.contentClass]),
45
+ style: m(C.value)
46
+ }, [
47
+ (v(!0), f($, null, z(y.value, (u, b) => (v(), f("div", {
48
+ key: a.value + b,
49
+ class: h(["scalar-virtual-text-line", i.lineClass]),
50
+ style: m({
51
+ height: `${e.lineHeight}px`,
52
+ lineHeight: `${e.lineHeight}px`
53
+ })
54
+ }, L(u), 7))), 128))
55
+ ], 6)
56
+ ], 34));
57
+ }
58
+ });
59
+ export {
60
+ B as default
61
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./ScalarVirtualText.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,2 @@
1
+ export { default as ScalarVirtualText } from './ScalarVirtualText.vue.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarVirtualText/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -15,7 +15,8 @@ import { ScalarSearchInput } from './components/ScalarSearchInput';
15
15
  import { ScalarSearchResultItem, ScalarSearchResultList } from './components/ScalarSearchResults';
16
16
  import { ScalarTextField } from './components/ScalarTextField';
17
17
  import { ScalarTooltip } from './components/ScalarTooltip';
18
+ import { ScalarVirtualText } from './components/ScalarVirtualText';
18
19
  import './tailwind/tailwind.css';
19
20
  export * from './helpers';
20
- export { ScalarButton, ScalarCodeBlock, ScalarCombobox, ScalarComboboxMultiselect, ScalarMarkdown, ScalarDropdown, ScalarDropdownDivider, ScalarDropdownItem, ScalarFloating, ScalarIcon, ScalarIconButton, ScalarListbox, ScalarLoading, ScalarContextMenu, ScalarModal, ScalarPopover, ScalarSearchInput, ScalarSearchResultItem, ScalarSearchResultList, ScalarTextField, ScalarTooltip, type Icon, type ScalarListboxOption, type ScalarComboboxOption, type ModalState, useLoadingState, useModal, };
21
+ export { ScalarButton, ScalarCodeBlock, ScalarCombobox, ScalarComboboxMultiselect, ScalarMarkdown, ScalarDropdown, ScalarDropdownDivider, ScalarDropdownItem, ScalarFloating, ScalarIcon, ScalarIconButton, ScalarListbox, ScalarLoading, ScalarContextMenu, ScalarModal, ScalarPopover, ScalarSearchInput, ScalarSearchResultItem, ScalarSearchResultList, ScalarTextField, ScalarTooltip, ScalarVirtualText, type Icon, type ScalarListboxOption, type ScalarComboboxOption, type ModalState, useLoadingState, useModal, };
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,KAAK,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EACL,KAAK,UAAU,EACf,WAAW,EACX,QAAQ,EACT,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,yBAAyB,CAAA;AAEhC,cAAc,WAAW,CAAA;AAEzB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,KAAK,IAAI,EACT,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,eAAe,EACf,QAAQ,GACT,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,KAAK,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EACL,KAAK,UAAU,EACf,WAAW,EACX,QAAQ,EACT,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,yBAAyB,CAAA;AAEhC,cAAc,WAAW,CAAA;AAEzB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,KAAK,IAAI,EACT,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,eAAe,EACf,QAAQ,GACT,CAAA"}
package/dist/index.js CHANGED
@@ -4,50 +4,52 @@ import { default as d } from "./components/ScalarButton/ScalarButton.vue.js";
4
4
  import { default as s } from "./components/ScalarCodeBlock/ScalarCodeBlock.vue.js";
5
5
  /* empty css */
6
6
  import { default as u } from "./components/ScalarCombobox/ScalarCombobox.vue.js";
7
- import { default as x } from "./components/ScalarCombobox/ScalarComboboxMultiselect.vue.js";
8
- import { default as n } from "./components/ScalarMarkdown/ScalarMarkdown.vue.js";
7
+ import { default as c } from "./components/ScalarCombobox/ScalarComboboxMultiselect.vue.js";
8
+ import { default as i } from "./components/ScalarMarkdown/ScalarMarkdown.vue.js";
9
9
  /* empty css */
10
10
  import { default as b } from "./components/ScalarDropdown/ScalarDropdown.vue.js";
11
11
  import { default as I } from "./components/ScalarDropdown/ScalarDropdownDivider.vue.js";
12
12
  import { default as w } from "./components/ScalarDropdown/ScalarDropdownItem.vue.js";
13
13
  import { default as L } from "./components/ScalarFloating/ScalarFloating.vue.js";
14
- import { default as h } from "./components/ScalarIcon/ScalarIcon.vue.js";
15
- import { default as T } from "./components/ScalarIconButton/ScalarIconButton.vue.js";
14
+ import { default as g } from "./components/ScalarIcon/ScalarIcon.vue.js";
15
+ import { default as B } from "./components/ScalarIconButton/ScalarIconButton.vue.js";
16
16
  import { default as v } from "./components/ScalarListbox/ScalarListbox.vue.js";
17
17
  import { default as R } from "./components/ScalarLoading/ScalarLoading.vue.js";
18
18
  import { default as P } from "./components/ScalarContextMenu/ScalarContextMenu.vue.js";
19
- import { default as q } from "./components/ScalarPopover/ScalarPopover.vue.js";
20
- import { default as z } from "./components/ScalarSearchInput/ScalarSearchInput.vue.js";
21
- import { default as E } from "./components/ScalarSearchResults/ScalarSearchResultItem.vue.js";
22
- import { default as J } from "./components/ScalarSearchResults/ScalarSearchResultList.vue.js";
23
- import { default as N } from "./components/ScalarTextField/ScalarTextField.vue.js";
24
- import { default as Q } from "./components/ScalarTooltip/ScalarTooltip.vue.js";
25
- import { addScalarClassesToHeadless as V } from "./helpers/add-scalar-classes.js";
26
- import { useLoadingState as X } from "./components/ScalarLoading/ScalarLoading.vue2.js";
27
- import { useModal as Z } from "./components/ScalarModal/ScalarModal.vue2.js";
19
+ import { default as j } from "./components/ScalarPopover/ScalarPopover.vue.js";
20
+ import { default as y } from "./components/ScalarSearchInput/ScalarSearchInput.vue.js";
21
+ import { default as A } from "./components/ScalarSearchResults/ScalarSearchResultItem.vue.js";
22
+ import { default as G } from "./components/ScalarSearchResults/ScalarSearchResultList.vue.js";
23
+ import { default as K } from "./components/ScalarTextField/ScalarTextField.vue.js";
24
+ import { default as O } from "./components/ScalarTooltip/ScalarTooltip.vue.js";
25
+ import { default as U } from "./components/ScalarVirtualText/ScalarVirtualText.vue.js";
26
+ import { addScalarClassesToHeadless as X } from "./helpers/add-scalar-classes.js";
27
+ import { useLoadingState as Z } from "./components/ScalarLoading/ScalarLoading.vue2.js";
28
+ import { useModal as $ } from "./components/ScalarModal/ScalarModal.vue2.js";
28
29
  export {
29
30
  d as ScalarButton,
30
31
  s as ScalarCodeBlock,
31
32
  u as ScalarCombobox,
32
- x as ScalarComboboxMultiselect,
33
+ c as ScalarComboboxMultiselect,
33
34
  P as ScalarContextMenu,
34
35
  b as ScalarDropdown,
35
36
  I as ScalarDropdownDivider,
36
37
  w as ScalarDropdownItem,
37
38
  L as ScalarFloating,
38
- h as ScalarIcon,
39
- T as ScalarIconButton,
39
+ g as ScalarIcon,
40
+ B as ScalarIconButton,
40
41
  v as ScalarListbox,
41
42
  R as ScalarLoading,
42
- n as ScalarMarkdown,
43
+ i as ScalarMarkdown,
43
44
  l as ScalarModal,
44
- q as ScalarPopover,
45
- z as ScalarSearchInput,
46
- E as ScalarSearchResultItem,
47
- J as ScalarSearchResultList,
48
- N as ScalarTextField,
49
- Q as ScalarTooltip,
50
- V as addScalarClassesToHeadless,
51
- X as useLoadingState,
52
- Z as useModal
45
+ j as ScalarPopover,
46
+ y as ScalarSearchInput,
47
+ A as ScalarSearchResultItem,
48
+ G as ScalarSearchResultList,
49
+ K as ScalarTextField,
50
+ O as ScalarTooltip,
51
+ U as ScalarVirtualText,
52
+ X as addScalarClassesToHeadless,
53
+ Z as useLoadingState,
54
+ $ as useModal
53
55
  };