uibee 2.17.3 → 2.17.4

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,5 +1,4 @@
1
1
  import { Components } from 'react-markdown';
2
- import 'highlight.js/styles/github-dark.css';
3
2
  export default function MarkdownRender({ MDstr, components, className }: {
4
3
  MDstr: string;
5
4
  components?: Components;
@@ -1,14 +1,25 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import Markdown from 'react-markdown';
3
3
  import remarkGfm from 'remark-gfm';
4
4
  import rehypeHighlight from 'rehype-highlight';
5
- import 'highlight.js/styles/github-dark.css';
6
- const defaultComponents = {
7
- h1: ({ ...props }) => _jsx("h2", { ...props }),
8
- pre({ children }) {
9
- return (_jsx("pre", { className: 'inline-block rounded-lg overflow-auto whitespace-pre-wrap wrap-break-word w-full', children: children }));
10
- },
11
- };
5
+ import { ExternalLink } from 'lucide-react';
6
+ function makeDefaultComponents() {
7
+ return {
8
+ h1: ({ ...props }) => _jsx("h2", { ...props }),
9
+ input({ type, checked }) {
10
+ if (type !== 'checkbox')
11
+ return _jsx("input", { type: type });
12
+ return (_jsx("span", { "data-task-checkbox": true, className: `inline-flex items-center justify-center w-4 h-4 rounded-xs border-2 shrink-0 align-middle
13
+ ${checked ? 'bg-login border-login' : 'border-login/50'}`, children: checked && (_jsx("svg", { viewBox: '0 0 10 8', className: 'w-2.5 h-2.5 fill-none stroke-white stroke-2', children: _jsx("polyline", { points: '1,4 4,7 9,1', strokeLinecap: 'round', strokeLinejoin: 'round' }) })) }));
14
+ },
15
+ a({ href, children }) {
16
+ return (_jsxs("a", { href: href, target: '_blank', rel: 'noopener noreferrer', className: 'inline-flex items-center gap-1 text-login hover:text-login/80 underline underline-offset-2 transition-colors', children: [children, _jsx(ExternalLink, { className: 'w-3 h-3 shrink-0 opacity-70' })] }));
17
+ },
18
+ pre({ children }) {
19
+ return (_jsx("pre", { className: 'block rounded-lg overflow-auto whitespace-pre-wrap wrap-break-word w-full', children: children }));
20
+ },
21
+ };
22
+ }
12
23
  export default function MarkdownRender({ MDstr, components, className }) {
13
- return (_jsx("div", { className: className ?? 'prose prose-sm prose-custom max-w-none', children: _jsx(Markdown, { components: { ...defaultComponents, ...components }, remarkPlugins: [remarkGfm], rehypePlugins: [rehypeHighlight], children: MDstr.replace(/\\n/g, '\n') }) }));
24
+ return (_jsx("div", { className: className ?? 'prose prose-sm prose-custom max-w-none', children: _jsx(Markdown, { components: { ...makeDefaultComponents(), ...components }, remarkPlugins: [remarkGfm], rehypePlugins: [rehypeHighlight], children: MDstr.replace(/\\n/g, '\n') }) }));
14
25
  }
@@ -1110,9 +1110,6 @@
1110
1110
  .hidden {
1111
1111
  display: none;
1112
1112
  }
1113
- .inline-block {
1114
- display: inline-block;
1115
- }
1116
1113
  .inline-flex {
1117
1114
  display: inline-flex;
1118
1115
  }
@@ -1128,6 +1125,9 @@
1128
1125
  .h-2 {
1129
1126
  height: calc(var(--spacing) * 2);
1130
1127
  }
1128
+ .h-2\.5 {
1129
+ height: calc(var(--spacing) * 2.5);
1130
+ }
1131
1131
  .h-3 {
1132
1132
  height: calc(var(--spacing) * 3);
1133
1133
  }
@@ -1197,6 +1197,9 @@
1197
1197
  .w-2 {
1198
1198
  width: calc(var(--spacing) * 2);
1199
1199
  }
1200
+ .w-2\.5 {
1201
+ width: calc(var(--spacing) * 2.5);
1202
+ }
1200
1203
  .w-3 {
1201
1204
  width: calc(var(--spacing) * 3);
1202
1205
  }
@@ -1548,6 +1551,9 @@
1548
1551
  .border-gray-200 {
1549
1552
  border-color: var(--color-gray-200);
1550
1553
  }
1554
+ .border-login {
1555
+ border-color: var(--color-login);
1556
+ }
1551
1557
  .border-login-50 {
1552
1558
  border-color: var(--color-login-50);
1553
1559
  }
@@ -1581,6 +1587,12 @@
1581
1587
  border-color: color-mix(in oklab, var(--color-login-600) 50%, transparent);
1582
1588
  }
1583
1589
  }
1590
+ .border-login\/50 {
1591
+ border-color: color-mix(in srgb, #fd8738 50%, transparent);
1592
+ @supports (color: color-mix(in lab, red, red)) {
1593
+ border-color: color-mix(in oklab, var(--color-login) 50%, transparent);
1594
+ }
1595
+ }
1584
1596
  .border-orange-400\/25 {
1585
1597
  border-color: color-mix(in srgb, oklch(75% 0.183 55.934) 25%, transparent);
1586
1598
  @supports (color: color-mix(in lab, red, red)) {
@@ -1859,9 +1871,15 @@
1859
1871
  .stroke-red-400 {
1860
1872
  stroke: var(--color-red-400);
1861
1873
  }
1874
+ .stroke-white {
1875
+ stroke: var(--color-white);
1876
+ }
1862
1877
  .stroke-yellow-400 {
1863
1878
  stroke: var(--color-yellow-400);
1864
1879
  }
1880
+ .stroke-2 {
1881
+ stroke-width: 2;
1882
+ }
1865
1883
  .stroke-\[3\.5px\] {
1866
1884
  stroke-width: 3.5px;
1867
1885
  }
@@ -1958,6 +1976,30 @@
1958
1976
  .pb-4 {
1959
1977
  padding-bottom: calc(var(--spacing) * 4);
1960
1978
  }
1979
+ .prose-custom {
1980
+ --tw-prose-body: var(--color-login-text);
1981
+ --tw-prose-headings: var(--color-login-text);
1982
+ --tw-prose-lead: var(--color-login-300);
1983
+ --tw-prose-links: var(--color-login);
1984
+ --tw-prose-bold: var(--color-login-text);
1985
+ --tw-prose-counters: var(--color-login);
1986
+ --tw-prose-bullets: var(--color-login);
1987
+ --tw-prose-hr: var(--color-login-300);
1988
+ --tw-prose-quotes: var(--color-login-text);
1989
+ --tw-prose-quote-borders: var(--color-login);
1990
+ --tw-prose-captions: var(--color-login-300);
1991
+ --tw-prose-code: var(--color-login-text);
1992
+ --tw-prose-pre-code: var(--color-login-text);
1993
+ --tw-prose-pre-bg: var(--color-login-900);
1994
+ --tw-prose-th-borders: var(--color-login-500);
1995
+ --tw-prose-td-borders: var(--color-login-500);
1996
+ & ul:has(> li > span[data-task-checkbox]) {
1997
+ padding-left: 0;
1998
+ }
1999
+ & li:has(> span[data-task-checkbox]) {
2000
+ list-style: none;
2001
+ }
2002
+ }
1961
2003
  .pl-3 {
1962
2004
  padding-left: calc(var(--spacing) * 3);
1963
2005
  }
@@ -1979,6 +2021,9 @@
1979
2021
  .text-right {
1980
2022
  text-align: right;
1981
2023
  }
2024
+ .align-middle {
2025
+ vertical-align: middle;
2026
+ }
1982
2027
  .font-mono {
1983
2028
  font-family: var(--font-mono);
1984
2029
  }
@@ -2167,6 +2212,12 @@
2167
2212
  .no-underline {
2168
2213
  text-decoration-line: none;
2169
2214
  }
2215
+ .underline {
2216
+ text-decoration-line: underline;
2217
+ }
2218
+ .underline-offset-2 {
2219
+ text-underline-offset: 2px;
2220
+ }
2170
2221
  .placeholder-login-200 {
2171
2222
  &::placeholder {
2172
2223
  color: var(--color-login-200);
@@ -2184,6 +2235,9 @@
2184
2235
  .opacity-50 {
2185
2236
  opacity: 50%;
2186
2237
  }
2238
+ .opacity-70 {
2239
+ opacity: 70%;
2240
+ }
2187
2241
  .opacity-100 {
2188
2242
  opacity: 100%;
2189
2243
  }
@@ -2333,24 +2387,6 @@
2333
2387
  --tw-ease: var(--ease-out);
2334
2388
  transition-timing-function: var(--ease-out);
2335
2389
  }
2336
- .prose-custom {
2337
- --tw-prose-body: var(--color-login-text);
2338
- --tw-prose-headings: var(--color-login-text);
2339
- --tw-prose-lead: var(--color-login-300);
2340
- --tw-prose-links: var(--color-login);
2341
- --tw-prose-bold: var(--color-login-text);
2342
- --tw-prose-counters: var(--color-login-400);
2343
- --tw-prose-bullets: var(--color-login-400);
2344
- --tw-prose-hr: var(--color-login-300);
2345
- --tw-prose-quotes: var(--color-login-text);
2346
- --tw-prose-quote-borders: var(--color-login-300);
2347
- --tw-prose-captions: var(--color-login-300);
2348
- --tw-prose-code: var(--color-login-text);
2349
- --tw-prose-pre-code: var(--color-login-text);
2350
- --tw-prose-pre-bg: var(--color-login-800);
2351
- --tw-prose-th-borders: var(--color-login-500);
2352
- --tw-prose-td-borders: var(--color-login-500);
2353
- }
2354
2390
  .outline-none {
2355
2391
  --tw-outline-style: none;
2356
2392
  outline-style: none;
@@ -2775,6 +2811,16 @@
2775
2811
  }
2776
2812
  }
2777
2813
  }
2814
+ .hover\:text-login\/80 {
2815
+ &:hover {
2816
+ @media (hover: hover) {
2817
+ color: color-mix(in srgb, #fd8738 80%, transparent);
2818
+ @supports (color: color-mix(in lab, red, red)) {
2819
+ color: color-mix(in oklab, var(--color-login) 80%, transparent);
2820
+ }
2821
+ }
2822
+ }
2823
+ }
2778
2824
  .hover\:text-red-200 {
2779
2825
  &:hover {
2780
2826
  @media (hover: hover) {
@@ -3000,6 +3046,81 @@
3000
3046
  --color-login-50: #ffffff;
3001
3047
  --color-login-text: #0e0e0e;
3002
3048
  }
3049
+ /*!
3050
+ Theme: GitHub Dark
3051
+ Description: Dark theme as seen on github.com
3052
+ Author: github.com
3053
+ Maintainer: @Hirse
3054
+ Updated: 2021-05-15
3055
+
3056
+ Outdated base version: https://github.com/primer/github-syntax-dark
3057
+ Current colors taken from GitHub's CSS
3058
+ */
3059
+ pre code.hljs {
3060
+ display: block;
3061
+ overflow-x: auto;
3062
+ padding: 1em;
3063
+ }
3064
+ code.hljs {
3065
+ padding: 3px 5px;
3066
+ }
3067
+ .hljs {
3068
+ color: #c9d1d9;
3069
+ background: #0d1117;
3070
+ }
3071
+ .hljs-doctag, .hljs-keyword, .hljs-meta .hljs-keyword, .hljs-template-tag, .hljs-template-variable, .hljs-type, .hljs-variable.language_ {
3072
+ color: #ff7b72;
3073
+ }
3074
+ .hljs-title, .hljs-title.class_, .hljs-title.class_.inherited__, .hljs-title.function_ {
3075
+ color: #d2a8ff;
3076
+ }
3077
+ .hljs-attr, .hljs-attribute, .hljs-literal, .hljs-meta, .hljs-number, .hljs-operator, .hljs-variable, .hljs-selector-attr, .hljs-selector-class, .hljs-selector-id {
3078
+ color: #79c0ff;
3079
+ }
3080
+ .hljs-regexp, .hljs-string, .hljs-meta .hljs-string {
3081
+ color: #a5d6ff;
3082
+ }
3083
+ .hljs-built_in, .hljs-symbol {
3084
+ color: #ffa657;
3085
+ }
3086
+ .hljs-comment, .hljs-code, .hljs-formula {
3087
+ color: #8b949e;
3088
+ }
3089
+ .hljs-name, .hljs-quote, .hljs-selector-tag, .hljs-selector-pseudo {
3090
+ color: #7ee787;
3091
+ }
3092
+ .hljs-subst {
3093
+ color: #c9d1d9;
3094
+ }
3095
+ .hljs-section {
3096
+ color: #1f6feb;
3097
+ font-weight: bold;
3098
+ }
3099
+ .hljs-bullet {
3100
+ color: #f2cc60;
3101
+ }
3102
+ .hljs-emphasis {
3103
+ color: #c9d1d9;
3104
+ font-style: italic;
3105
+ }
3106
+ .hljs-strong {
3107
+ color: #c9d1d9;
3108
+ font-weight: bold;
3109
+ }
3110
+ .hljs-addition {
3111
+ color: #aff5b4;
3112
+ background-color: #033a16;
3113
+ }
3114
+ .hljs-deletion {
3115
+ color: #ffdcd7;
3116
+ background-color: #67060c;
3117
+ }
3118
+ .hljs {
3119
+ background: transparent;
3120
+ }
3121
+ pre code.hljs {
3122
+ padding: 0;
3123
+ }
3003
3124
  @keyframes jump {
3004
3125
  40% {
3005
3126
  transform: translateY(-0.3rem);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uibee",
3
- "version": "2.17.3",
3
+ "version": "2.17.4",
4
4
  "description": "Shared components, functions and hooks for reuse across Login projects",
5
5
  "homepage": "https://github.com/Login-Linjeforening-for-IT/uibee#readme",
6
6
  "bugs": {
@@ -1,18 +1,48 @@
1
1
  import Markdown, { Components } from 'react-markdown'
2
2
  import remarkGfm from 'remark-gfm'
3
3
  import rehypeHighlight from 'rehype-highlight'
4
- import 'highlight.js/styles/github-dark.css'
4
+ import { ExternalLink } from 'lucide-react'
5
5
 
6
- const defaultComponents: Components = {
7
- h1: ({...props}) => <h2 {...props} />,
8
- pre({ children }) {
9
- return (
10
- <pre className='inline-block rounded-lg overflow-auto whitespace-pre-wrap wrap-break-word w-full'>
11
- {children}
12
- </pre>
13
- )
14
- },
15
- }
6
+ function makeDefaultComponents(): Components {
7
+ return {
8
+ h1: ({...props}) => <h2 {...props} />,
9
+ input({ type, checked }) {
10
+ if (type !== 'checkbox') return <input type={type} />
11
+ return (
12
+ <span
13
+ data-task-checkbox
14
+ className={`inline-flex items-center justify-center w-4 h-4 rounded-xs border-2 shrink-0 align-middle
15
+ ${checked ? 'bg-login border-login' : 'border-login/50'}`}
16
+ >
17
+ {checked && (
18
+ <svg viewBox='0 0 10 8' className='w-2.5 h-2.5 fill-none stroke-white stroke-2'>
19
+ <polyline points='1,4 4,7 9,1' strokeLinecap='round' strokeLinejoin='round' />
20
+ </svg>
21
+ )}
22
+ </span>
23
+ )
24
+ },
25
+ a({ href, children }) {
26
+ return (
27
+ <a
28
+ href={href}
29
+ target='_blank'
30
+ rel='noopener noreferrer'
31
+ className='inline-flex items-center gap-1 text-login hover:text-login/80 underline underline-offset-2 transition-colors'
32
+ >
33
+ {children}
34
+ <ExternalLink className='w-3 h-3 shrink-0 opacity-70' />
35
+ </a>
36
+ )
37
+ },
38
+ pre({ children }) {
39
+ return (
40
+ <pre className='block rounded-lg overflow-auto whitespace-pre-wrap wrap-break-word w-full'>
41
+ {children}
42
+ </pre>
43
+ )
44
+ },
45
+ }}
16
46
 
17
47
  export default function MarkdownRender({ MDstr, components, className }: {
18
48
  MDstr: string
@@ -22,7 +52,7 @@ export default function MarkdownRender({ MDstr, components, className }: {
22
52
  return (
23
53
  <div className={className ?? 'prose prose-sm prose-custom max-w-none'}>
24
54
  <Markdown
25
- components={{ ...defaultComponents, ...components }}
55
+ components={{ ...makeDefaultComponents(), ...components }}
26
56
  remarkPlugins={[remarkGfm]}
27
57
  rehypePlugins={[rehypeHighlight]}
28
58
  >
package/src/globals.css CHANGED
@@ -105,17 +105,35 @@
105
105
  --tw-prose-lead: var(--color-login-300);
106
106
  --tw-prose-links: var(--color-login);
107
107
  --tw-prose-bold: var(--color-login-text);
108
- --tw-prose-counters: var(--color-login-400);
109
- --tw-prose-bullets: var(--color-login-400);
108
+ --tw-prose-counters: var(--color-login);
109
+ --tw-prose-bullets: var(--color-login);
110
110
  --tw-prose-hr: var(--color-login-300);
111
111
  --tw-prose-quotes: var(--color-login-text);
112
- --tw-prose-quote-borders: var(--color-login-300);
112
+ --tw-prose-quote-borders: var(--color-login);
113
113
  --tw-prose-captions: var(--color-login-300);
114
114
  --tw-prose-code: var(--color-login-text);
115
115
  --tw-prose-pre-code: var(--color-login-text);
116
- --tw-prose-pre-bg: var(--color-login-800);
116
+ --tw-prose-pre-bg: var(--color-login-900);
117
117
  --tw-prose-th-borders: var(--color-login-500);
118
118
  --tw-prose-td-borders: var(--color-login-500);
119
+
120
+ & ul:has(> li > span[data-task-checkbox]) {
121
+ padding-left: 0;
122
+ }
123
+
124
+ & li:has(> span[data-task-checkbox]) {
125
+ list-style: none;
126
+ }
127
+ }
128
+
129
+ @import 'highlight.js/styles/github-dark.css';
130
+
131
+ .hljs {
132
+ background: transparent;
133
+ }
134
+
135
+ pre code.hljs {
136
+ padding: 0;
119
137
  }
120
138
 
121
139
  @keyframes jump {