@hyvor/design 0.0.4 → 0.0.6

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.
@@ -1,28 +1,11 @@
1
1
  <script>import "./prism.scss";
2
2
  export let code;
3
3
  export let language = "html";
4
- import Prism from "prismjs";
5
- import "prism-svelte";
6
- function getCode() {
7
- let ret = code;
8
- ret = ret.replace(/^[^\S\r\n]*\n/, "");
9
- ret = ret.replace(/\n[^\S\r\n]*$/, "");
10
- let lines = ret.split("\n");
11
- let indent = null;
12
- lines = lines.map((line) => {
13
- if (indent === null) {
14
- const match = line.match(/^(\s*)/);
15
- indent = match ? match[1].length : 0;
16
- }
17
- if (line.substring(0, indent).trim() !== "") {
18
- return line;
19
- }
20
- line = line.substring(indent);
21
- return line;
22
- });
23
- ret = lines.join("\n");
24
- return Prism.highlight(ret, Prism.languages[language], language);
25
- }
4
+ const languagesMap = {
5
+ svelte: "tsx"
6
+ };
7
+ const languageCode = languagesMap[language] || language;
8
+ import getCode, {} from "./prism.js";
26
9
  </script>
27
10
 
28
- <pre class="language-{language}"><code>{@html getCode()}</code></pre>
11
+ <pre class="language-{languageCode}"><code>{@html getCode(code, languageCode)}</code></pre>
@@ -1,10 +1,9 @@
1
1
  import { SvelteComponent } from "svelte";
2
2
  import './prism.scss';
3
- import 'prism-svelte';
4
3
  declare const __propDef: {
5
4
  props: {
6
5
  code: string;
7
- language?: "html" | "js" | "css" | "svelte" | undefined;
6
+ language?: ("html" | "css" | "ts" | "jsx" | "svelte") | undefined;
8
7
  };
9
8
  events: {
10
9
  [evt: string]: CustomEvent<any>;
@@ -0,0 +1,5 @@
1
+ import 'prismjs/components/prism-typescript.js';
2
+ import 'prismjs/components/prism-jsx.js';
3
+ import 'prismjs/components/prism-tsx.js';
4
+ export type Language = 'html' | 'css' | 'js' | 'ts' | 'jsx' | 'tsx';
5
+ export default function getCode(code: string, language: Language): string;
@@ -0,0 +1,28 @@
1
+ import Prism from 'prismjs';
2
+ import 'prismjs/components/prism-typescript.js';
3
+ import 'prismjs/components/prism-jsx.js';
4
+ import 'prismjs/components/prism-tsx.js';
5
+ export default function getCode(code, language) {
6
+ let ret = code;
7
+ // remove the first empty line
8
+ ret = ret.replace(/^[^\S\r\n]*\n/, "");
9
+ // remove the last empty line
10
+ ret = ret.replace(/\n[^\S\r\n]*$/, "");
11
+ let lines = ret.split("\n");
12
+ let indent = null; // number of spaces to remove from each line
13
+ lines = lines.map(line => {
14
+ if (indent === null) {
15
+ // find the indent
16
+ const match = line.match(/^(\s*)/);
17
+ indent = match ? match[1].length : 0;
18
+ }
19
+ if (line.substring(0, indent).trim() !== "") {
20
+ return line;
21
+ }
22
+ // remove the indent
23
+ line = line.substring(indent);
24
+ return line;
25
+ });
26
+ ret = lines.join("\n");
27
+ return Prism.highlight(ret, Prism.languages[language], language);
28
+ }
@@ -4,6 +4,9 @@ code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shad
4
4
  pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}@media print{.line-highlight{-webkit-print-color-adjust:exact;color-adjust:exact}}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:after,.line-numbers .line-highlight:before{content:none}pre[id].linkable-line-numbers span.line-numbers-rows{pointer-events:all}pre[id].linkable-line-numbers span.line-numbers-rows>span:before{cursor:pointer}pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:rgba(128,128,128,.2)}
5
5
  pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}
6
6
 
7
+ /* to make jsx look the same as HTML */
8
+ pre[class="language-tsx"] .token.class-name{color:#905}
9
+
7
10
  :root.dark {
8
11
  code[class*=language-],pre[class*=language-]{color:#d4d4d4;text-shadow:none;font-family:Menlo,Monaco,Consolas,"Andale Mono","Ubuntu Mono","Courier New",monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#264f78}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background:#262626}:not(pre)>code[class*=language-]{padding:.1em .3em;border-radius:.3em;color:#db4c69;background:#262626}.namespace{opacity:.7}.token.boolean,.token.doctype .token.doctype-tag,.token.entity,.token.important,.token.keyword,.token.operator.arrow,.token.punctuation.interpolation-punctuation,.token.tag{color:#569cd6}.token.atrule .token.url,.token.attr-name,.token.console,.token.constant,.token.doctype .token.name,.token.exports .token.maybe-class-name,.token.imports .token.maybe-class-name,.token.interpolation,.token.parameter,.token.property,.token.variable,code[class*=language-javascript],code[class*=language-jsx],code[class*=language-tsx],code[class*=language-typescript],pre[class*=language-javascript],pre[class*=language-jsx],pre[class*=language-tsx],pre[class*=language-typescript]{color:#9cdcfe}.token.comment,.token.prolog{color:#6a9955}.language-html .language-css .token.punctuation,.language-html .language-javascript .token.punctuation,.token.atrule .token.url .token.punctuation,.token.attr-value .token.punctuation.attr-equals,.token.entity,.token.operator,.token.punctuation,code[class*=language-html],pre[class*=language-html]{color:#d4d4d4}.token.boolean,.token.constant,.token.inserted,.token.number,.token.property,.token.symbol,.token.tag,.token.unit{color:#b5cea8}.token.atrule,.token.attr-name,.token.attr-value,.token.attr-value .token.punctuation,.token.builtin,.token.char,.token.deleted,.token.selector,.token.string,code[class*=language-css],pre[class*=language-css]{color:#ce9178}.language-css .token.string.url{text-decoration:underline}.token.atrule .token.rule,.token.keyword.control-flow,.token.keyword.module{color:#c586c0}.language-regex .token.anchor,.token.atrule .token.url .token.function,.token.function,.token.function .token.maybe-class-name{color:#dcdcaa}.token.regex{color:#d16969}.token.italic{font-style:italic}.token.class-name,.token.maybe-class-name,.token.namespace{color:#4ec9b0}.token.escape,.token.selector{color:#d7ba7d}.language-html .token.punctuation,.token.cdata,.token.tag .token.punctuation{color:grey}pre[class*=language-]>code[class*=language-]{position:relative;z-index:1}.line-highlight.line-highlight{background:#f7ebc6;box-shadow:inset 5px 0 0 #f7d87c;z-index:0}
9
12
  }
package/dist/index.css CHANGED
@@ -13,6 +13,8 @@
13
13
  body {
14
14
  background-color: var(--background, var(--accent-lightest));
15
15
  color: var(--text);
16
+ margin: 0;
17
+ padding: 0;
16
18
  }
17
19
 
18
20
  button, a {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyvor/design",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "scripts": {
@@ -35,12 +35,12 @@
35
35
  "@sveltejs/adapter-static": "^2.0.3",
36
36
  "@sveltejs/kit": "^1.25.1",
37
37
  "@sveltejs/package": "^2.0.0",
38
+ "@types/prismjs": "^1.26.1",
38
39
  "prismjs": "^1.29.0",
39
40
  "publint": "^0.1.9",
40
41
  "sass": "^1.68.0",
41
42
  "svelte": "^4.0.5",
42
43
  "svelte-check": "^3.4.3",
43
- "svelvg": "^0.12.1",
44
44
  "tslib": "^2.4.1",
45
45
  "typescript": "^5.0.0",
46
46
  "vite": "^4.4.2"
@@ -50,8 +50,7 @@
50
50
  "type": "module",
51
51
  "dependencies": {
52
52
  "@fontsource/readex-pro": "^5.0.8",
53
- "@hyvor/icons": "^0.0.2",
54
- "prism-svelte": "^0.5.0"
53
+ "@hyvor/icons": "^0.0.2"
55
54
  },
56
55
  "publishConfig": {
57
56
  "access": "public"