@konopskidev/ui 0.1.2 → 0.2.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/README.md +102 -13
- package/dist/chunks/rolldown-runtime-CmQyd0Gu.cjs +27 -0
- package/dist/components/ui/accordion.cjs +62 -0
- package/dist/components/ui/accordion.cjs.map +1 -0
- package/dist/components/ui/accordion.d.cts +7 -0
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +9 -8
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/alert-dialog.cjs +116 -0
- package/dist/components/ui/alert-dialog.cjs.map +1 -0
- package/dist/components/ui/alert-dialog.d.cts +18 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +13 -12
- package/dist/components/ui/alert-dialog.js.map +1 -1
- package/dist/components/ui/alert.cjs +49 -0
- package/dist/components/ui/alert.cjs.map +1 -0
- package/dist/components/ui/alert.d.cts +10 -0
- package/dist/components/ui/aspect-ratio.cjs +14 -0
- package/dist/components/ui/aspect-ratio.cjs.map +1 -0
- package/dist/components/ui/aspect-ratio.d.cts +3 -0
- package/dist/components/ui/aspect-ratio.js +4 -5
- package/dist/components/ui/aspect-ratio.js.map +1 -1
- package/dist/components/ui/attachment.cjs +113 -0
- package/dist/components/ui/attachment.cjs.map +1 -0
- package/dist/components/ui/attachment.d.cts +24 -0
- package/dist/components/ui/avatar.cjs +60 -0
- package/dist/components/ui/avatar.cjs.map +1 -0
- package/dist/components/ui/avatar.d.cts +11 -0
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/avatar.js +7 -6
- package/dist/components/ui/avatar.js.map +1 -1
- package/dist/components/ui/badge.cjs +33 -0
- package/dist/components/ui/badge.cjs.map +1 -0
- package/dist/components/ui/badge.d.cts +9 -0
- package/dist/components/ui/breadcrumb.cjs +81 -0
- package/dist/components/ui/breadcrumb.cjs.map +1 -0
- package/dist/components/ui/breadcrumb.d.cts +11 -0
- package/dist/components/ui/bubble.cjs +79 -0
- package/dist/components/ui/bubble.cjs.map +1 -0
- package/dist/components/ui/bubble.d.cts +17 -0
- package/dist/components/ui/button-group.cjs +43 -0
- package/dist/components/ui/button-group.cjs.map +1 -0
- package/dist/components/ui/button-group.d.cts +11 -0
- package/dist/components/ui/button.cjs +64 -0
- package/dist/components/ui/button.cjs.map +1 -0
- package/dist/components/ui/button.d.cts +21 -0
- package/dist/components/ui/calendar.cjs +114 -0
- package/dist/components/ui/calendar.cjs.map +1 -0
- package/dist/components/ui/calendar.d.cts +10 -0
- package/dist/components/ui/calendar.js +0 -1
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/card.cjs +80 -0
- package/dist/components/ui/card.cjs.map +1 -0
- package/dist/components/ui/card.d.cts +33 -0
- package/dist/components/ui/card.d.ts +7 -2
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/carousel.cjs +142 -0
- package/dist/components/ui/carousel.cjs.map +1 -0
- package/dist/components/ui/carousel.d.cts +28 -0
- package/dist/components/ui/carousel.d.ts +1 -1
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +1 -0
- package/dist/components/ui/carousel.js.map +1 -1
- package/dist/components/ui/chart.cjs +159 -0
- package/dist/components/ui/chart.cjs.map +1 -0
- package/dist/components/ui/chart.d.cts +44 -0
- package/dist/components/ui/chart.js +0 -1
- package/dist/components/ui/chart.js.map +1 -1
- package/dist/components/ui/checkbox.cjs +25 -0
- package/dist/components/ui/checkbox.cjs.map +1 -0
- package/dist/components/ui/checkbox.d.cts +4 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +6 -5
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/code-block.cjs +134 -0
- package/dist/components/ui/code-block.cjs.map +1 -0
- package/dist/components/ui/code-block.d.cts +26 -0
- package/dist/components/ui/code-block.d.ts.map +1 -1
- package/dist/components/ui/code-block.js +1 -0
- package/dist/components/ui/code-block.js.map +1 -1
- package/dist/components/ui/collapsible.cjs +28 -0
- package/dist/components/ui/collapsible.cjs.map +1 -0
- package/dist/components/ui/collapsible.d.cts +5 -0
- package/dist/components/ui/collapsible.js +6 -7
- package/dist/components/ui/collapsible.js.map +1 -1
- package/dist/components/ui/combobox.cjs +193 -0
- package/dist/components/ui/combobox.cjs.map +1 -0
- package/dist/components/ui/combobox.d.cts +24 -0
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +22 -21
- package/dist/components/ui/combobox.js.map +1 -1
- package/dist/components/ui/command.cjs +99 -0
- package/dist/components/ui/command.cjs.map +1 -0
- package/dist/components/ui/command.d.cts +18 -0
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js +10 -12
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/context-menu.cjs +143 -0
- package/dist/components/ui/context-menu.cjs.map +1 -0
- package/dist/components/ui/context-menu.d.cts +31 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/context-menu.js +20 -19
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/dialog.cjs +148 -0
- package/dist/components/ui/dialog.cjs.map +1 -0
- package/dist/components/ui/dialog.d.cts +55 -0
- package/dist/components/ui/dialog.d.ts +41 -3
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +65 -26
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/direction.cjs +19 -0
- package/dist/components/ui/direction.cjs.map +1 -0
- package/dist/components/ui/direction.d.cts +11 -0
- package/dist/components/ui/direction.d.ts +1 -1
- package/dist/components/ui/direction.d.ts.map +1 -1
- package/dist/components/ui/direction.js +0 -1
- package/dist/components/ui/direction.js.map +1 -1
- package/dist/components/ui/drawer.cjs +90 -0
- package/dist/components/ui/drawer.cjs.map +1 -0
- package/dist/components/ui/drawer.d.cts +13 -0
- package/dist/components/ui/drawer.js +11 -11
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.cjs +146 -0
- package/dist/components/ui/dropdown-menu.cjs.map +1 -0
- package/dist/components/ui/dropdown-menu.d.cts +29 -0
- package/dist/components/ui/dropdown-menu.js +19 -20
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/empty.cjs +66 -0
- package/dist/components/ui/empty.cjs.map +1 -0
- package/dist/components/ui/empty.d.cts +11 -0
- package/dist/components/ui/field.cjs +121 -0
- package/dist/components/ui/field.cjs.map +1 -0
- package/dist/components/ui/field.d.cts +24 -0
- package/dist/components/ui/field.js +0 -1
- package/dist/components/ui/field.js.map +1 -1
- package/dist/components/ui/hover-card.cjs +38 -0
- package/dist/components/ui/hover-card.cjs.map +1 -0
- package/dist/components/ui/hover-card.d.cts +6 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/hover-card.js +8 -7
- package/dist/components/ui/hover-card.js.map +1 -1
- package/dist/components/ui/input-group.cjs +87 -0
- package/dist/components/ui/input-group.cjs.map +1 -0
- package/dist/components/ui/input-group.d.cts +16 -0
- package/dist/components/ui/input-otp.cjs +54 -0
- package/dist/components/ui/input-otp.cjs.map +1 -0
- package/dist/components/ui/input-otp.d.cts +11 -0
- package/dist/components/ui/input-otp.js +0 -1
- package/dist/components/ui/input-otp.js.map +1 -1
- package/dist/components/ui/input.cjs +28 -0
- package/dist/components/ui/input.cjs.map +1 -0
- package/dist/components/ui/input.d.cts +10 -0
- package/dist/components/ui/item.cjs +133 -0
- package/dist/components/ui/item.cjs.map +1 -0
- package/dist/components/ui/item.d.cts +23 -0
- package/dist/components/ui/kbd.cjs +22 -0
- package/dist/components/ui/kbd.cjs.map +1 -0
- package/dist/components/ui/kbd.d.cts +3 -0
- package/dist/components/ui/label.cjs +19 -0
- package/dist/components/ui/label.cjs.map +1 -0
- package/dist/components/ui/label.d.cts +4 -0
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/label.js +5 -4
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/marker.cjs +46 -0
- package/dist/components/ui/marker.cjs.map +1 -0
- package/dist/components/ui/marker.d.cts +11 -0
- package/dist/components/ui/menubar.cjs +154 -0
- package/dist/components/ui/menubar.cjs.map +1 -0
- package/dist/components/ui/menubar.d.cts +30 -0
- package/dist/components/ui/menubar.js +20 -21
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/message-scroller.cjs +87 -0
- package/dist/components/ui/message-scroller.cjs.map +1 -0
- package/dist/components/ui/message-scroller.d.cts +10 -0
- package/dist/components/ui/message-scroller.js +9 -9
- package/dist/components/ui/message-scroller.js.map +1 -1
- package/dist/components/ui/message.cjs +58 -0
- package/dist/components/ui/message.cjs.map +1 -0
- package/dist/components/ui/message.d.cts +10 -0
- package/dist/components/ui/native-select.cjs +44 -0
- package/dist/components/ui/native-select.cjs.map +1 -0
- package/dist/components/ui/native-select.d.cts +8 -0
- package/dist/components/ui/native-select.d.ts +1 -1
- package/dist/components/ui/native-select.d.ts.map +1 -1
- package/dist/components/ui/native-select.js.map +1 -1
- package/dist/components/ui/navigation-menu.cjs +93 -0
- package/dist/components/ui/navigation-menu.cjs.map +1 -0
- package/dist/components/ui/navigation-menu.d.cts +14 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +12 -11
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/pagination.cjs +90 -0
- package/dist/components/ui/pagination.cjs.map +1 -0
- package/dist/components/ui/pagination.d.cts +17 -0
- package/dist/components/ui/pagination.d.ts +1 -1
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js.map +1 -1
- package/dist/components/ui/popover.cjs +66 -0
- package/dist/components/ui/popover.cjs.map +1 -0
- package/dist/components/ui/popover.d.cts +10 -0
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +8 -7
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/progress.cjs +25 -0
- package/dist/components/ui/progress.cjs.map +1 -0
- package/dist/components/ui/progress.d.cts +4 -0
- package/dist/components/ui/progress.js +5 -6
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/questionnaire.cjs +187 -0
- package/dist/components/ui/questionnaire.cjs.map +1 -0
- package/dist/components/ui/questionnaire.d.cts +19 -0
- package/dist/components/ui/questionnaire.d.ts.map +1 -1
- package/dist/components/ui/questionnaire.js +19 -21
- package/dist/components/ui/questionnaire.js.map +1 -1
- package/dist/components/ui/radio-group.cjs +32 -0
- package/dist/components/ui/radio-group.cjs.map +1 -0
- package/dist/components/ui/radio-group.d.cts +5 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +7 -6
- package/dist/components/ui/radio-group.js.map +1 -1
- package/dist/components/ui/resizable.cjs +33 -0
- package/dist/components/ui/resizable.cjs.map +1 -0
- package/dist/components/ui/resizable.d.cts +7 -0
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +0 -2
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/scroll-area.cjs +43 -0
- package/dist/components/ui/scroll-area.cjs.map +1 -0
- package/dist/components/ui/scroll-area.d.cts +5 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.js +9 -8
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/select.cjs +113 -0
- package/dist/components/ui/select.cjs.map +1 -0
- package/dist/components/ui/select.d.cts +15 -0
- package/dist/components/ui/select.js +17 -18
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/separator.cjs +21 -0
- package/dist/components/ui/separator.cjs.map +1 -0
- package/dist/components/ui/separator.d.cts +4 -0
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/separator.js +5 -4
- package/dist/components/ui/separator.js.map +1 -1
- package/dist/components/ui/sheet.cjs +101 -0
- package/dist/components/ui/sheet.cjs.map +1 -0
- package/dist/components/ui/sheet.d.cts +14 -0
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +1 -0
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/sidebar.cjs +405 -0
- package/dist/components/ui/sidebar.cjs.map +1 -0
- package/dist/components/ui/sidebar.d.cts +69 -0
- package/dist/components/ui/sidebar.js +0 -1
- package/dist/components/ui/sidebar.js.map +1 -1
- package/dist/components/ui/skeleton.cjs +14 -0
- package/dist/components/ui/skeleton.cjs.map +1 -0
- package/dist/components/ui/skeleton.d.cts +2 -0
- package/dist/components/ui/slider.cjs +42 -0
- package/dist/components/ui/slider.cjs.map +1 -0
- package/dist/components/ui/slider.d.cts +7 -0
- package/dist/components/ui/slider.js +7 -8
- package/dist/components/ui/slider.js.map +1 -1
- package/dist/components/ui/sonner.cjs +36 -0
- package/dist/components/ui/sonner.cjs.map +1 -0
- package/dist/components/ui/sonner.d.cts +13 -0
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +4 -6
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/spinner.cjs +17 -0
- package/dist/components/ui/spinner.cjs.map +1 -0
- package/dist/components/ui/spinner.d.cts +2 -0
- package/dist/components/ui/switch.cjs +24 -0
- package/dist/components/ui/switch.cjs.map +1 -0
- package/dist/components/ui/switch.d.cts +6 -0
- package/dist/components/ui/switch.js +5 -6
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/table.cjs +77 -0
- package/dist/components/ui/table.cjs.map +1 -0
- package/dist/components/ui/table.d.cts +10 -0
- package/dist/components/ui/tabs.cjs +54 -0
- package/dist/components/ui/tabs.cjs.map +1 -0
- package/dist/components/ui/tabs.d.cts +11 -0
- package/dist/components/ui/tabs.js +7 -8
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/textarea.cjs +39 -0
- package/dist/components/ui/textarea.cjs.map +1 -0
- package/dist/components/ui/textarea.d.cts +9 -0
- package/dist/components/ui/textarea.js +0 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/toggle-group.cjs +56 -0
- package/dist/components/ui/toggle-group.cjs.map +1 -0
- package/dist/components/ui/toggle-group.d.cts +10 -0
- package/dist/components/ui/toggle-group.js +5 -6
- package/dist/components/ui/toggle-group.js.map +1 -1
- package/dist/components/ui/toggle.cjs +41 -0
- package/dist/components/ui/toggle.cjs.map +1 -0
- package/dist/components/ui/toggle.d.cts +9 -0
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +5 -4
- package/dist/components/ui/toggle.js.map +1 -1
- package/dist/components/ui/tooltip.cjs +43 -0
- package/dist/components/ui/tooltip.cjs.map +1 -0
- package/dist/components/ui/tooltip.d.cts +7 -0
- package/dist/components/ui/tooltip.js +8 -9
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/trace.cjs +86 -0
- package/dist/components/ui/trace.cjs.map +1 -0
- package/dist/components/ui/trace.d.cts +18 -0
- package/dist/hooks/use-highlighted-code.d.ts.map +1 -1
- package/dist/hooks/use-highlighted-code.js +56 -0
- package/dist/hooks/use-highlighted-code.js.map +1 -0
- package/dist/hooks/use-mobile.cjs +26 -0
- package/dist/hooks/use-mobile.cjs.map +1 -0
- package/dist/hooks/use-mobile.d.cts +1 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -1
- package/dist/hooks/use-mobile.js +1 -0
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/index.cjs +356 -0
- package/dist/index.d.cts +67 -0
- package/dist/index.d.ts +5 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -14
- package/dist/lib/get-placeholder.cjs +13 -0
- package/dist/lib/get-placeholder.cjs.map +1 -0
- package/dist/lib/get-placeholder.d.cts +5 -0
- package/dist/lib/highlighter.js +79 -0
- package/dist/lib/highlighter.js.map +1 -0
- package/dist/lib/utils.cjs +8 -0
- package/dist/lib/utils.d.cts +8 -0
- package/{src → dist}/styles/globals.css +11 -0
- package/package.json +111 -32
- /package/{src → dist}/styles/base.css +0 -0
- /package/{src → dist}/styles/prose.css +0 -0
- /package/{src → dist}/styles/theme.css +0 -0
- /package/{src → dist}/styles/tokens.css +0 -0
- /package/{src → dist}/styles/utilities.css +0 -0
- /package/{src → dist}/styles/variants.css +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createHighlighterCore } from "shiki/core";
|
|
4
|
+
import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
|
|
5
|
+
// src/lib/highlighter.tsx
|
|
6
|
+
var languages = {
|
|
7
|
+
bash: () => import("shiki/langs/shellscript.mjs"),
|
|
8
|
+
css: () => import("shiki/langs/css.mjs"),
|
|
9
|
+
diff: () => import("shiki/langs/diff.mjs"),
|
|
10
|
+
html: () => import("shiki/langs/html.mjs"),
|
|
11
|
+
javascript: () => import("shiki/langs/javascript.mjs"),
|
|
12
|
+
json: () => import("shiki/langs/json.mjs"),
|
|
13
|
+
jsx: () => import("shiki/langs/jsx.mjs"),
|
|
14
|
+
markdown: () => import("shiki/langs/markdown.mjs"),
|
|
15
|
+
python: () => import("shiki/langs/python.mjs"),
|
|
16
|
+
sql: () => import("shiki/langs/sql.mjs"),
|
|
17
|
+
tsx: () => import("shiki/langs/tsx.mjs"),
|
|
18
|
+
typescript: () => import("shiki/langs/typescript.mjs"),
|
|
19
|
+
yaml: () => import("shiki/langs/yaml.mjs")
|
|
20
|
+
};
|
|
21
|
+
var aliases = {
|
|
22
|
+
js: "javascript",
|
|
23
|
+
md: "markdown",
|
|
24
|
+
py: "python",
|
|
25
|
+
sh: "bash",
|
|
26
|
+
shell: "bash",
|
|
27
|
+
shellscript: "bash",
|
|
28
|
+
ts: "typescript",
|
|
29
|
+
yml: "yaml",
|
|
30
|
+
zsh: "bash"
|
|
31
|
+
};
|
|
32
|
+
var highlighter;
|
|
33
|
+
function getHighlighter() {
|
|
34
|
+
highlighter ??= createHighlighterCore({
|
|
35
|
+
themes: [import("shiki/themes/github-light.mjs"), import("shiki/themes/github-dark.mjs")],
|
|
36
|
+
langs: [],
|
|
37
|
+
engine: createJavaScriptRegexEngine({ forgiving: true })
|
|
38
|
+
});
|
|
39
|
+
return highlighter;
|
|
40
|
+
}
|
|
41
|
+
function getLanguage(language) {
|
|
42
|
+
const name = language.toLowerCase();
|
|
43
|
+
if (name === "ansi") return name;
|
|
44
|
+
if (name in languages) return name;
|
|
45
|
+
return aliases[name] ?? null;
|
|
46
|
+
}
|
|
47
|
+
async function loadHighlighter(language) {
|
|
48
|
+
const lang = getLanguage(language);
|
|
49
|
+
if (!lang) return null;
|
|
50
|
+
const shiki = await getHighlighter();
|
|
51
|
+
if (lang !== "ansi" && !shiki.getLoadedLanguages().includes(lang)) await shiki.loadLanguage(languages[lang]);
|
|
52
|
+
return { highlight(code, state) {
|
|
53
|
+
const tokenize = (text) => shiki.codeToTokens(text, {
|
|
54
|
+
lang,
|
|
55
|
+
themes: {
|
|
56
|
+
light: "github-light",
|
|
57
|
+
dark: "github-dark"
|
|
58
|
+
},
|
|
59
|
+
defaultColor: false,
|
|
60
|
+
grammarState: state
|
|
61
|
+
}).tokens;
|
|
62
|
+
const tokens = lang === "ansi" ? code.split("\n").flatMap((line) => tokenize(line)) : tokenize(code);
|
|
63
|
+
return {
|
|
64
|
+
lines: tokens.map((line) => line.map((token, index) => /* @__PURE__ */ jsx("span", {
|
|
65
|
+
style: token.htmlStyle,
|
|
66
|
+
className: "text-(--shiki-light) dark:text-(--shiki-dark)",
|
|
67
|
+
children: token.content
|
|
68
|
+
}, index))),
|
|
69
|
+
state: shiki.getLastGrammarState(tokens)
|
|
70
|
+
};
|
|
71
|
+
} };
|
|
72
|
+
}
|
|
73
|
+
async function highlightCode(code, language) {
|
|
74
|
+
const highlighter = await loadHighlighter(language);
|
|
75
|
+
return highlighter ? highlighter.highlight(code).lines : null;
|
|
76
|
+
}
|
|
77
|
+
export { highlightCode, loadHighlighter };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=highlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlighter.js","names":[],"sources":["../../src/lib/highlighter.tsx"],"sourcesContent":["import * as React from 'react';\nimport { createHighlighterCore, type GrammarState, type HighlighterCore } from 'shiki/core';\nimport { createJavaScriptRegexEngine } from 'shiki/engine/javascript';\n\n// Add the languages you need. Each one loads the first time it is used.\nconst languages = {\n bash: () => import('shiki/langs/shellscript.mjs'),\n css: () => import('shiki/langs/css.mjs'),\n diff: () => import('shiki/langs/diff.mjs'),\n html: () => import('shiki/langs/html.mjs'),\n javascript: () => import('shiki/langs/javascript.mjs'),\n json: () => import('shiki/langs/json.mjs'),\n jsx: () => import('shiki/langs/jsx.mjs'),\n markdown: () => import('shiki/langs/markdown.mjs'),\n python: () => import('shiki/langs/python.mjs'),\n sql: () => import('shiki/langs/sql.mjs'),\n tsx: () => import('shiki/langs/tsx.mjs'),\n typescript: () => import('shiki/langs/typescript.mjs'),\n yaml: () => import('shiki/langs/yaml.mjs'),\n};\n\nconst aliases: Record<string, keyof typeof languages> = {\n js: 'javascript',\n md: 'markdown',\n py: 'python',\n sh: 'bash',\n shell: 'bash',\n shellscript: 'bash',\n ts: 'typescript',\n yml: 'yaml',\n zsh: 'bash',\n};\n\nlet highlighter: Promise<HighlighterCore> | undefined;\n\nfunction getHighlighter() {\n highlighter ??= createHighlighterCore({\n themes: [import('shiki/themes/github-light.mjs'), import('shiki/themes/github-dark.mjs')],\n langs: [],\n engine: createJavaScriptRegexEngine({ forgiving: true }),\n });\n\n return highlighter;\n}\n\nfunction getLanguage(language: string) {\n const name = language.toLowerCase();\n\n if (name === 'ansi') {\n return name;\n }\n\n if (name in languages) {\n return name as keyof typeof languages;\n }\n\n return aliases[name] ?? null;\n}\n\n// Loads a language and returns a highlighter for it, or null for a language\n// that is not listed.\nexport async function loadHighlighter(language: string) {\n const lang = getLanguage(language);\n\n if (!lang) {\n return null;\n }\n\n const shiki = await getHighlighter();\n\n if (lang !== 'ansi' && !shiki.getLoadedLanguages().includes(lang)) {\n await shiki.loadLanguage(languages[lang]);\n }\n\n return {\n // Returns one React node per line, and the grammar state after the last\n // line. Pass that state back to continue where the code left off.\n highlight(code: string, state?: GrammarState) {\n const tokenize = (text: string) =>\n shiki.codeToTokens(text, {\n lang,\n themes: { light: 'github-light', dark: 'github-dark' },\n defaultColor: false,\n grammarState: state,\n }).tokens;\n\n // ANSI has no grammar state, so each line is tokenized on its own and\n // gets the same colors whether it arrives in one piece or streams.\n const tokens =\n lang === 'ansi' ? code.split('\\n').flatMap((line) => tokenize(line)) : tokenize(code);\n\n return {\n lines: tokens.map((line) =>\n line.map((token, index) => (\n <span\n key={index}\n style={token.htmlStyle as React.CSSProperties}\n className=\"text-(--shiki-light) dark:text-(--shiki-dark)\"\n >\n {token.content}\n </span>\n )),\n ),\n state: shiki.getLastGrammarState(tokens),\n };\n },\n };\n}\n\n// Returns one React node per line, or null for a language that is not listed.\nexport async function highlightCode(code: string, language: string) {\n const highlighter = await loadHighlighter(language);\n\n return highlighter ? highlighter.highlight(code).lines : null;\n}\n"],"mappings":";;;;;AAKA,IAAM,YAAY;CAChB,YAAY,OAAO;CACnB,WAAW,OAAO;CAClB,YAAY,OAAO;CACnB,YAAY,OAAO;CACnB,kBAAkB,OAAO;CACzB,YAAY,OAAO;CACnB,WAAW,OAAO;CAClB,gBAAgB,OAAO;CACvB,cAAc,OAAO;CACrB,WAAW,OAAO;CAClB,WAAW,OAAO;CAClB,kBAAkB,OAAO;CACzB,YAAY,OAAO;AACrB;AAEA,IAAM,UAAkD;CACtD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,aAAa;CACb,IAAI;CACJ,KAAK;CACL,KAAK;AACP;AAEA,IAAI;AAEJ,SAAS,iBAAiB;CACxB,gBAAgB,sBAAsB;EACpC,QAAQ,CAAC,OAAO,kCAAkC,OAAO,+BAA+B;EACxF,OAAO,CAAC;EACR,QAAQ,4BAA4B,EAAE,WAAW,KAAK,CAAC;CACzD,CAAC;CAED,OAAO;AACT;AAEA,SAAS,YAAY,UAAkB;CACrC,MAAM,OAAO,SAAS,YAAY;CAElC,IAAI,SAAS,QACX,OAAO;CAGT,IAAI,QAAQ,WACV,OAAO;CAGT,OAAO,QAAQ,SAAS;AAC1B;AAIA,eAAsB,gBAAgB,UAAkB;CACtD,MAAM,OAAO,YAAY,QAAQ;CAEjC,IAAI,CAAC,MACH,OAAO;CAGT,MAAM,QAAQ,MAAM,eAAe;CAEnC,IAAI,SAAS,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAC,SAAS,IAAI,GAC9D,MAAM,MAAM,aAAa,UAAU,KAAK;CAG1C,OAAO,EAGL,UAAU,MAAc,OAAsB;EAC5C,MAAM,YAAY,SAChB,MAAM,aAAa,MAAM;GACvB;GACA,QAAQ;IAAE,OAAO;IAAgB,MAAM;GAAc;GACrD,cAAc;GACd,cAAc;EAChB,CAAC,CAAC,CAAC;EAIL,MAAM,SACJ,SAAS,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,SAAS,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI;EAEtF,OAAO;GACL,OAAO,OAAO,KAAK,SACjB,KAAK,KAAK,OAAO,UACf,oBAAC,QAAD;IAEE,OAAO,MAAM;IACb,WAAU;IAET,UAAA,MAAM;GACH,GALC,KAKD,CACP,CACH;GACA,OAAO,MAAM,oBAAoB,MAAM;EACzC;CACF,EACF;AACF;AAGA,eAAsB,cAAc,MAAc,UAAkB;CAClE,MAAM,cAAc,MAAM,gBAAgB,QAAQ;CAElD,OAAO,cAAc,YAAY,UAAU,IAAI,CAAC,CAAC,QAAQ;AAC3D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The class-name merger every component in this package uses.
|
|
3
|
+
*
|
|
4
|
+
* It is re-exported here so an app consuming `@konopskidev/ui` can merge its own
|
|
5
|
+
* classes with the same semantics without adding its own copy of
|
|
6
|
+
* `clsx` + `tailwind-merge`.
|
|
7
|
+
*/
|
|
8
|
+
export { cn } from 'cn';
|
|
@@ -31,3 +31,14 @@
|
|
|
31
31
|
@import './utilities.css';
|
|
32
32
|
@import './base.css';
|
|
33
33
|
@import './prose.css';
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* Register this package's own modules as Tailwind sources.
|
|
37
|
+
*
|
|
38
|
+
* Tailwind does not scan `node_modules`, so without these lines every component
|
|
39
|
+
* renders unstyled with no error anywhere. The paths are relative to this file,
|
|
40
|
+
* which is why they work from a consumer's install without configuration.
|
|
41
|
+
*/
|
|
42
|
+
@source '../components';
|
|
43
|
+
@source '../lib';
|
|
44
|
+
@source '../hooks';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@konopskidev/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "The konopskidev design system: shadcn/ui components styled with the konopskidev tokens on Tailwind CSS v4.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"shadcn",
|
|
@@ -27,42 +27,121 @@
|
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
29
|
"dist",
|
|
30
|
-
"src/styles",
|
|
31
30
|
"README.md",
|
|
32
31
|
"LICENSE"
|
|
33
32
|
],
|
|
34
33
|
"exports": {
|
|
35
34
|
".": {
|
|
36
|
-
"
|
|
37
|
-
|
|
35
|
+
"import": {
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"default": "./dist/index.js"
|
|
38
|
+
},
|
|
39
|
+
"require": {
|
|
40
|
+
"types": "./dist/index.d.cts",
|
|
41
|
+
"default": "./dist/index.cjs"
|
|
42
|
+
}
|
|
38
43
|
},
|
|
39
44
|
"./components/*": {
|
|
40
|
-
"
|
|
41
|
-
|
|
45
|
+
"import": {
|
|
46
|
+
"types": "./dist/components/ui/*.d.ts",
|
|
47
|
+
"default": "./dist/components/ui/*.js"
|
|
48
|
+
},
|
|
49
|
+
"require": {
|
|
50
|
+
"types": "./dist/components/ui/*.d.cts",
|
|
51
|
+
"default": "./dist/components/ui/*.cjs"
|
|
52
|
+
}
|
|
42
53
|
},
|
|
43
54
|
"./lib/*": {
|
|
44
|
-
"
|
|
45
|
-
|
|
55
|
+
"import": {
|
|
56
|
+
"types": "./dist/lib/*.d.ts",
|
|
57
|
+
"default": "./dist/lib/*.js"
|
|
58
|
+
},
|
|
59
|
+
"require": {
|
|
60
|
+
"types": "./dist/lib/*.d.cts",
|
|
61
|
+
"default": "./dist/lib/*.cjs"
|
|
62
|
+
}
|
|
46
63
|
},
|
|
47
64
|
"./hooks/*": {
|
|
48
|
-
"
|
|
49
|
-
|
|
65
|
+
"import": {
|
|
66
|
+
"types": "./dist/hooks/*.d.ts",
|
|
67
|
+
"default": "./dist/hooks/*.js"
|
|
68
|
+
},
|
|
69
|
+
"require": {
|
|
70
|
+
"types": "./dist/hooks/*.d.cts",
|
|
71
|
+
"default": "./dist/hooks/*.cjs"
|
|
72
|
+
}
|
|
50
73
|
},
|
|
51
|
-
"./
|
|
74
|
+
"./lib/highlighter": {
|
|
75
|
+
"import": {
|
|
76
|
+
"types": "./dist/lib/highlighter.d.ts",
|
|
77
|
+
"default": "./dist/lib/highlighter.js"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"./hooks/use-highlighted-code": {
|
|
81
|
+
"import": {
|
|
82
|
+
"types": "./dist/hooks/use-highlighted-code.d.ts",
|
|
83
|
+
"default": "./dist/hooks/use-highlighted-code.js"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"./styles.css": "./dist/styles/globals.css",
|
|
52
87
|
"./package.json": "./package.json"
|
|
53
88
|
},
|
|
54
89
|
"peerDependencies": {
|
|
90
|
+
"@base-ui/react": "^1.9.0",
|
|
91
|
+
"@shadcn/react": "^0.3.1",
|
|
92
|
+
"cmdk": "^1.1.1",
|
|
93
|
+
"embla-carousel-react": "^8.6.0",
|
|
94
|
+
"input-otp": "^1.5.0",
|
|
55
95
|
"lucide-react": ">=0.4 <2",
|
|
56
96
|
"react": "^19.0.0",
|
|
97
|
+
"react-day-picker": "^10.0.2",
|
|
57
98
|
"react-dom": "^19.0.0",
|
|
58
|
-
"
|
|
99
|
+
"react-resizable-panels": "^4.15.0",
|
|
100
|
+
"recharts": "3.8.0",
|
|
101
|
+
"shiki": "^4.5.0",
|
|
102
|
+
"sonner": "^2.0.8",
|
|
103
|
+
"tailwindcss": "^4.0.0",
|
|
104
|
+
"vaul": "^1.1.2"
|
|
59
105
|
},
|
|
60
106
|
"peerDependenciesMeta": {
|
|
61
|
-
"
|
|
107
|
+
"@base-ui/react": {
|
|
108
|
+
"optional": true
|
|
109
|
+
},
|
|
110
|
+
"@shadcn/react": {
|
|
111
|
+
"optional": true
|
|
112
|
+
},
|
|
113
|
+
"cmdk": {
|
|
114
|
+
"optional": true
|
|
115
|
+
},
|
|
116
|
+
"embla-carousel-react": {
|
|
117
|
+
"optional": true
|
|
118
|
+
},
|
|
119
|
+
"input-otp": {
|
|
62
120
|
"optional": true
|
|
63
121
|
},
|
|
64
122
|
"lucide-react": {
|
|
65
123
|
"optional": true
|
|
124
|
+
},
|
|
125
|
+
"react-day-picker": {
|
|
126
|
+
"optional": true
|
|
127
|
+
},
|
|
128
|
+
"react-resizable-panels": {
|
|
129
|
+
"optional": true
|
|
130
|
+
},
|
|
131
|
+
"recharts": {
|
|
132
|
+
"optional": true
|
|
133
|
+
},
|
|
134
|
+
"shiki": {
|
|
135
|
+
"optional": true
|
|
136
|
+
},
|
|
137
|
+
"sonner": {
|
|
138
|
+
"optional": true
|
|
139
|
+
},
|
|
140
|
+
"tailwindcss": {
|
|
141
|
+
"optional": true
|
|
142
|
+
},
|
|
143
|
+
"vaul": {
|
|
144
|
+
"optional": true
|
|
66
145
|
}
|
|
67
146
|
},
|
|
68
147
|
"engines": {
|
|
@@ -70,11 +149,13 @@
|
|
|
70
149
|
},
|
|
71
150
|
"devDependencies": {
|
|
72
151
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
152
|
+
"@base-ui/react": "^1.9.0",
|
|
73
153
|
"@eslint/js": "^10.0.1",
|
|
74
154
|
"@fontsource/jetbrains-mono": "^5.3.0",
|
|
75
155
|
"@fontsource/lato": "^5.3.0",
|
|
76
156
|
"@fontsource/lora": "^5.3.0",
|
|
77
157
|
"@fontsource/playfair-display": "^5.3.0",
|
|
158
|
+
"@shadcn/react": "^0.3.1",
|
|
78
159
|
"@storybook/addon-a11y": "10.6.5",
|
|
79
160
|
"@storybook/addon-docs": "10.6.5",
|
|
80
161
|
"@storybook/addon-themes": "10.6.5",
|
|
@@ -91,6 +172,8 @@
|
|
|
91
172
|
"@vitejs/plugin-react": "^6.1.2",
|
|
92
173
|
"@vitest/browser-playwright": "^5.0.5",
|
|
93
174
|
"@vitest/coverage-v8": "^5.0.5",
|
|
175
|
+
"cmdk": "^1.1.1",
|
|
176
|
+
"embla-carousel-react": "^8.6.0",
|
|
94
177
|
"eslint": "^10.13.0",
|
|
95
178
|
"eslint-config-prettier": "^10.1.8",
|
|
96
179
|
"eslint-plugin-import-x": "^4.17.1",
|
|
@@ -99,6 +182,7 @@
|
|
|
99
182
|
"eslint-plugin-testing-library": "^7.16.2",
|
|
100
183
|
"globals": "^17.13.0",
|
|
101
184
|
"husky": "^9.1.7",
|
|
185
|
+
"input-otp": "^1.5.0",
|
|
102
186
|
"jsdom": "^30.1.3",
|
|
103
187
|
"lint-staged": "^17.6.0",
|
|
104
188
|
"playwright": "^1.64.1",
|
|
@@ -106,38 +190,32 @@
|
|
|
106
190
|
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
107
191
|
"publint": "^0.3.25",
|
|
108
192
|
"react": "^19.3.1",
|
|
193
|
+
"react-day-picker": "^10.0.2",
|
|
109
194
|
"react-dom": "^19.3.1",
|
|
195
|
+
"react-resizable-panels": "^4.15.0",
|
|
196
|
+
"recharts": "3.8.0",
|
|
110
197
|
"shadcn": "^4.23.0",
|
|
198
|
+
"shiki": "^4.5.0",
|
|
199
|
+
"sonner": "^2.0.8",
|
|
111
200
|
"storybook": "10.6.5",
|
|
112
201
|
"tailwindcss": "^4.0.0",
|
|
113
202
|
"typescript": "~5.9.3",
|
|
114
203
|
"typescript-eslint": "^8.72.1",
|
|
204
|
+
"vaul": "^1.1.2",
|
|
115
205
|
"vite": "^8.3.5",
|
|
116
206
|
"vitest": "^5.0.5"
|
|
117
207
|
},
|
|
118
208
|
"dependencies": {
|
|
119
|
-
"@base-ui/react": "^1.9.0",
|
|
120
|
-
"@radix-ui/react-dialog": "^1.1.1",
|
|
121
|
-
"@radix-ui/react-slot": "^1.1.1",
|
|
122
|
-
"@shadcn/react": "^0.3.1",
|
|
123
209
|
"class-variance-authority": "^0.7.1",
|
|
124
|
-
"cmdk": "^1.1.1",
|
|
125
210
|
"cn": "^0.5.0",
|
|
126
|
-
"date-fns": "^4.4.0",
|
|
127
|
-
"embla-carousel-react": "^8.6.0",
|
|
128
|
-
"input-otp": "^1.5.0",
|
|
129
211
|
"radix-ui": "^1.8.1",
|
|
130
|
-
"
|
|
131
|
-
"react-resizable-panels": "^4.15.0",
|
|
132
|
-
"recharts": "3.8.0",
|
|
133
|
-
"shiki": "^4.5.0",
|
|
134
|
-
"sonner": "^2.0.8",
|
|
135
|
-
"tw-animate-css": "^1.4.0",
|
|
136
|
-
"vaul": "^1.1.2"
|
|
212
|
+
"tw-animate-css": "^1.4.0"
|
|
137
213
|
},
|
|
214
|
+
"main": "./dist/index.cjs",
|
|
215
|
+
"types": "./dist/index.d.ts",
|
|
138
216
|
"scripts": {
|
|
139
217
|
"dev": "storybook dev -p 6006",
|
|
140
|
-
"build": "
|
|
218
|
+
"build": "node scripts/build.mjs",
|
|
141
219
|
"build:storybook": "storybook build",
|
|
142
220
|
"lint": "eslint . --max-warnings=0",
|
|
143
221
|
"lint:fix": "eslint . --fix",
|
|
@@ -148,9 +226,10 @@
|
|
|
148
226
|
"test:watch": "vitest --project=unit",
|
|
149
227
|
"test:stories": "vitest run --project=storybook",
|
|
150
228
|
"test:coverage": "vitest run --project=unit --coverage",
|
|
151
|
-
"verify:package": "publint && attw --pack . --profile
|
|
152
|
-
"verify": "pnpm lint && pnpm tsc && pnpm test && pnpm build && pnpm verify:package",
|
|
229
|
+
"verify:package": "publint && attw --pack . --profile node16 --exclude-entrypoints ./styles.css ./lib/highlighter ./hooks/use-highlighted-code",
|
|
230
|
+
"verify": "pnpm lint && pnpm tsc && pnpm test && pnpm build && pnpm test:package && pnpm verify:package",
|
|
153
231
|
"style": "node scripts/apply-house-style.mjs && prettier --write \"src/components/ui/**/*.tsx\"",
|
|
154
|
-
"barrel": "node scripts/generate-barrel.mjs"
|
|
232
|
+
"barrel": "node scripts/generate-barrel.mjs",
|
|
233
|
+
"test:package": "node scripts/test-package.mjs"
|
|
155
234
|
}
|
|
156
235
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|