uibee 2.17.2 → 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,9 +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
- const defaultComponents = {
5
- h1: ({ ...props }) => _jsx("h2", { ...props }),
6
- };
4
+ import rehypeHighlight from 'rehype-highlight';
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
+ }
7
23
  export default function MarkdownRender({ MDstr, components, className }) {
8
- return (_jsx("div", { className: className ?? 'prose prose-sm prose-custom max-w-none', children: _jsx(Markdown, { components: { ...defaultComponents, ...components }, remarkPlugins: [remarkGfm], 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') }) }));
9
25
  }
@@ -1125,6 +1125,9 @@
1125
1125
  .h-2 {
1126
1126
  height: calc(var(--spacing) * 2);
1127
1127
  }
1128
+ .h-2\.5 {
1129
+ height: calc(var(--spacing) * 2.5);
1130
+ }
1128
1131
  .h-3 {
1129
1132
  height: calc(var(--spacing) * 3);
1130
1133
  }
@@ -1194,6 +1197,9 @@
1194
1197
  .w-2 {
1195
1198
  width: calc(var(--spacing) * 2);
1196
1199
  }
1200
+ .w-2\.5 {
1201
+ width: calc(var(--spacing) * 2.5);
1202
+ }
1197
1203
  .w-3 {
1198
1204
  width: calc(var(--spacing) * 3);
1199
1205
  }
@@ -1545,6 +1551,9 @@
1545
1551
  .border-gray-200 {
1546
1552
  border-color: var(--color-gray-200);
1547
1553
  }
1554
+ .border-login {
1555
+ border-color: var(--color-login);
1556
+ }
1548
1557
  .border-login-50 {
1549
1558
  border-color: var(--color-login-50);
1550
1559
  }
@@ -1578,6 +1587,12 @@
1578
1587
  border-color: color-mix(in oklab, var(--color-login-600) 50%, transparent);
1579
1588
  }
1580
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
+ }
1581
1596
  .border-orange-400\/25 {
1582
1597
  border-color: color-mix(in srgb, oklch(75% 0.183 55.934) 25%, transparent);
1583
1598
  @supports (color: color-mix(in lab, red, red)) {
@@ -1856,9 +1871,15 @@
1856
1871
  .stroke-red-400 {
1857
1872
  stroke: var(--color-red-400);
1858
1873
  }
1874
+ .stroke-white {
1875
+ stroke: var(--color-white);
1876
+ }
1859
1877
  .stroke-yellow-400 {
1860
1878
  stroke: var(--color-yellow-400);
1861
1879
  }
1880
+ .stroke-2 {
1881
+ stroke-width: 2;
1882
+ }
1862
1883
  .stroke-\[3\.5px\] {
1863
1884
  stroke-width: 3.5px;
1864
1885
  }
@@ -1955,6 +1976,30 @@
1955
1976
  .pb-4 {
1956
1977
  padding-bottom: calc(var(--spacing) * 4);
1957
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
+ }
1958
2003
  .pl-3 {
1959
2004
  padding-left: calc(var(--spacing) * 3);
1960
2005
  }
@@ -1976,6 +2021,9 @@
1976
2021
  .text-right {
1977
2022
  text-align: right;
1978
2023
  }
2024
+ .align-middle {
2025
+ vertical-align: middle;
2026
+ }
1979
2027
  .font-mono {
1980
2028
  font-family: var(--font-mono);
1981
2029
  }
@@ -2074,9 +2122,15 @@
2074
2122
  --tw-tracking: var(--tracking-wider);
2075
2123
  letter-spacing: var(--tracking-wider);
2076
2124
  }
2125
+ .wrap-break-word {
2126
+ overflow-wrap: break-word;
2127
+ }
2077
2128
  .whitespace-nowrap {
2078
2129
  white-space: nowrap;
2079
2130
  }
2131
+ .whitespace-pre-wrap {
2132
+ white-space: pre-wrap;
2133
+ }
2080
2134
  .text-amber-200 {
2081
2135
  color: var(--color-amber-200);
2082
2136
  }
@@ -2158,6 +2212,12 @@
2158
2212
  .no-underline {
2159
2213
  text-decoration-line: none;
2160
2214
  }
2215
+ .underline {
2216
+ text-decoration-line: underline;
2217
+ }
2218
+ .underline-offset-2 {
2219
+ text-underline-offset: 2px;
2220
+ }
2161
2221
  .placeholder-login-200 {
2162
2222
  &::placeholder {
2163
2223
  color: var(--color-login-200);
@@ -2175,6 +2235,9 @@
2175
2235
  .opacity-50 {
2176
2236
  opacity: 50%;
2177
2237
  }
2238
+ .opacity-70 {
2239
+ opacity: 70%;
2240
+ }
2178
2241
  .opacity-100 {
2179
2242
  opacity: 100%;
2180
2243
  }
@@ -2324,24 +2387,6 @@
2324
2387
  --tw-ease: var(--ease-out);
2325
2388
  transition-timing-function: var(--ease-out);
2326
2389
  }
2327
- .prose-custom {
2328
- --tw-prose-body: var(--color-login-text);
2329
- --tw-prose-headings: var(--color-login-text);
2330
- --tw-prose-lead: var(--color-login-300);
2331
- --tw-prose-links: var(--color-login);
2332
- --tw-prose-bold: var(--color-login-text);
2333
- --tw-prose-counters: var(--color-login-400);
2334
- --tw-prose-bullets: var(--color-login-400);
2335
- --tw-prose-hr: var(--color-login-300);
2336
- --tw-prose-quotes: var(--color-login-text);
2337
- --tw-prose-quote-borders: var(--color-login-300);
2338
- --tw-prose-captions: var(--color-login-300);
2339
- --tw-prose-code: var(--color-login-text);
2340
- --tw-prose-pre-code: var(--color-login-text);
2341
- --tw-prose-pre-bg: var(--color-login-800);
2342
- --tw-prose-th-borders: var(--color-login-500);
2343
- --tw-prose-td-borders: var(--color-login-500);
2344
- }
2345
2390
  .outline-none {
2346
2391
  --tw-outline-style: none;
2347
2392
  outline-style: none;
@@ -2766,6 +2811,16 @@
2766
2811
  }
2767
2812
  }
2768
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
+ }
2769
2824
  .hover\:text-red-200 {
2770
2825
  &:hover {
2771
2826
  @media (hover: hover) {
@@ -2991,6 +3046,81 @@
2991
3046
  --color-login-50: #ffffff;
2992
3047
  --color-login-text: #0e0e0e;
2993
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
+ }
2994
3124
  @keyframes jump {
2995
3125
  40% {
2996
3126
  transform: translateY(-0.3rem);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uibee",
3
- "version": "2.17.2",
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 {