@dbcdk/react-components 0.0.148 → 0.0.150

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/dist/client.cjs CHANGED
@@ -89,6 +89,7 @@ var InlineStatus = require('./components/inline-status/InlineStatus');
89
89
  var MediaCard = require('./components/media-card/MediaCard');
90
90
  var Lightbox = require('./components/lightbox/Lightbox');
91
91
  var FileUpload = require('./components/forms/file-upload/FileUpload');
92
+ var HighlightedText = require('./components/highlighted-text/HighlightedText');
92
93
 
93
94
 
94
95
 
@@ -620,3 +621,9 @@ Object.keys(FileUpload).forEach(function (k) {
620
621
  get: function () { return FileUpload[k]; }
621
622
  });
622
623
  });
624
+ Object.keys(HighlightedText).forEach(function (k) {
625
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
626
+ enumerable: true,
627
+ get: function () { return HighlightedText[k]; }
628
+ });
629
+ });
package/dist/client.d.ts CHANGED
@@ -86,3 +86,4 @@ export * from './components/inline-status/InlineStatus';
86
86
  export * from './components/media-card/MediaCard';
87
87
  export * from './components/lightbox/Lightbox';
88
88
  export * from './components/forms/file-upload/FileUpload';
89
+ export * from './components/highlighted-text/HighlightedText';
package/dist/client.js CHANGED
@@ -87,3 +87,4 @@ export * from './components/inline-status/InlineStatus';
87
87
  export * from './components/media-card/MediaCard';
88
88
  export * from './components/lightbox/Lightbox';
89
89
  export * from './components/forms/file-upload/FileUpload';
90
+ export * from './components/highlighted-text/HighlightedText';
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+
6
+ function escapeRegExp(value) {
7
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
8
+ }
9
+ function HighlightedText({ text, query, className }) {
10
+ const trimmedQuery = query == null ? void 0 : query.trim();
11
+ if (!trimmedQuery) {
12
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className, children: text });
13
+ }
14
+ const pattern = new RegExp(`(${escapeRegExp(trimmedQuery)})`, "gi");
15
+ const parts = text.split(pattern);
16
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className, children: parts.map(
17
+ (part, index) => index % 2 === 1 ? /* @__PURE__ */ jsxRuntime.jsx("mark", { className: "dbc-highlight", children: part }, index) : /* @__PURE__ */ jsxRuntime.jsx(react.Fragment, { children: part }, index)
18
+ ) });
19
+ }
20
+
21
+ exports.HighlightedText = HighlightedText;
@@ -0,0 +1,7 @@
1
+ import type { JSX } from 'react';
2
+ export interface HighlightedTextProps {
3
+ text: string;
4
+ query?: string;
5
+ className?: string;
6
+ }
7
+ export declare function HighlightedText({ text, query, className }: HighlightedTextProps): JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Fragment } from 'react';
3
+
4
+ function escapeRegExp(value) {
5
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6
+ }
7
+ function HighlightedText({ text, query, className }) {
8
+ const trimmedQuery = query == null ? void 0 : query.trim();
9
+ if (!trimmedQuery) {
10
+ return /* @__PURE__ */ jsx("span", { className, children: text });
11
+ }
12
+ const pattern = new RegExp(`(${escapeRegExp(trimmedQuery)})`, "gi");
13
+ const parts = text.split(pattern);
14
+ return /* @__PURE__ */ jsx("span", { className, children: parts.map(
15
+ (part, index) => index % 2 === 1 ? /* @__PURE__ */ jsx("mark", { className: "dbc-highlight", children: part }, index) : /* @__PURE__ */ jsx(Fragment, { children: part }, index)
16
+ ) });
17
+ }
18
+
19
+ export { HighlightedText };
@@ -3,9 +3,9 @@
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var lucideReact = require('lucide-react');
6
- var utils = require('./utils');
7
- var HighlightedText = require('./HighlightedText');
6
+ var HighlightedText = require('../../components/highlighted-text/HighlightedText');
8
7
  var styles = require('./JsonViewer.module.css');
8
+ var utils = require('./utils');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { Check, Copy, ChevronDown, ChevronRight } from 'lucide-react';
4
- import { getNodeId, getValueType, formatPrimitive, getPrimitiveRawValue, capitalize, getPathLabel, isJsonArray, isJsonObject, getSummary } from './utils';
5
- import { HighlightedText } from './HighlightedText';
4
+ import { HighlightedText } from '../../components/highlighted-text/HighlightedText';
6
5
  import styles from './JsonViewer.module.css';
6
+ import { getNodeId, getValueType, formatPrimitive, getPrimitiveRawValue, capitalize, getPathLabel, isJsonArray, isJsonObject, getSummary } from './utils';
7
7
 
8
8
  function JsonNode({
9
9
  keyName,
@@ -18,6 +18,7 @@ function Modal({
18
18
  onRequestClose,
19
19
  header,
20
20
  subheader,
21
+ headerAddition,
21
22
  content,
22
23
  children,
23
24
  primaryAction,
@@ -143,6 +144,7 @@ function Modal({
143
144
  size: 2,
144
145
  disableMargin: true,
145
146
  subheader,
147
+ addition: headerAddition,
146
148
  children: header
147
149
  }
148
150
  ),
@@ -14,6 +14,7 @@ export type ModalProps = {
14
14
  onRequestClose: () => void;
15
15
  header?: ReactNode;
16
16
  subheader?: ReactNode;
17
+ headerAddition?: ReactNode;
17
18
  content?: ReactNode;
18
19
  children?: ReactNode;
19
20
  primaryAction?: ModalActionConfig;
@@ -25,4 +26,4 @@ export type ModalProps = {
25
26
  width?: number | string;
26
27
  ariaLabel?: string;
27
28
  };
28
- export declare function Modal({ isOpen, onRequestClose, header, subheader, content, children, primaryAction, secondaryAction, closeOnOverlayClick, severity, disableContentSpacing, isLoading, dataCy, width, ariaLabel, }: ModalProps): React.ReactNode;
29
+ export declare function Modal({ isOpen, onRequestClose, header, subheader, headerAddition, content, children, primaryAction, secondaryAction, closeOnOverlayClick, severity, disableContentSpacing, isLoading, dataCy, width, ariaLabel, }: ModalProps): React.ReactNode;
@@ -12,6 +12,7 @@ function Modal({
12
12
  onRequestClose,
13
13
  header,
14
14
  subheader,
15
+ headerAddition,
15
16
  content,
16
17
  children,
17
18
  primaryAction,
@@ -137,6 +138,7 @@ function Modal({
137
138
  size: 2,
138
139
  disableMargin: true,
139
140
  subheader,
141
+ addition: headerAddition,
140
142
  children: header
141
143
  }
142
144
  ),
package/dist/index.cjs CHANGED
@@ -35,6 +35,7 @@ var StatePage = require('./components/state-page/StatePage');
35
35
  var Alert = require('./components/alert/Alert');
36
36
  var InlineStatus = require('./components/inline-status/InlineStatus');
37
37
  var MediaCard = require('./components/media-card/MediaCard');
38
+ var HighlightedText = require('./components/highlighted-text/HighlightedText');
38
39
 
39
40
 
40
41
 
@@ -248,3 +249,9 @@ Object.keys(MediaCard).forEach(function (k) {
248
249
  get: function () { return MediaCard[k]; }
249
250
  });
250
251
  });
252
+ Object.keys(HighlightedText).forEach(function (k) {
253
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
254
+ enumerable: true,
255
+ get: function () { return HighlightedText[k]; }
256
+ });
257
+ });
package/dist/index.d.ts CHANGED
@@ -34,3 +34,4 @@ export * from './components/state-page/StatePage';
34
34
  export * from './components/alert/Alert';
35
35
  export * from './components/inline-status/InlineStatus';
36
36
  export * from './components/media-card/MediaCard';
37
+ export * from './components/highlighted-text/HighlightedText';
package/dist/index.js CHANGED
@@ -33,3 +33,4 @@ export * from './components/state-page/StatePage';
33
33
  export * from './components/alert/Alert';
34
34
  export * from './components/inline-status/InlineStatus';
35
35
  export * from './components/media-card/MediaCard';
36
+ export * from './components/highlighted-text/HighlightedText';
@@ -162,6 +162,10 @@
162
162
  }
163
163
 
164
164
  /* Padding - all axes */
165
+ .dbc-p-0 {
166
+ padding: 0;
167
+ }
168
+
165
169
  .dbc-p-xxs {
166
170
  padding: var(--spacing-xxs);
167
171
  }
@@ -229,7 +229,6 @@ body.dbc-app {
229
229
  color: var(--color-highlight-fg, inherit);
230
230
  background-color: var(--color-highlight-bg, var(--color-status-warning-bg));
231
231
  border-radius: var(--border-radius-sm);
232
- padding-inline: var(--spacing-xs);
233
232
  box-decoration-break: clone;
234
233
  -webkit-box-decoration-break: clone;
235
234
  }
@@ -238,7 +237,7 @@ body.dbc-app {
238
237
  color: var(--color-code-fg, inherit);
239
238
  background-color: var(--color-code-bg, var(--color-bg-contextual));
240
239
  border-radius: var(--border-radius-sm);
241
- padding-inline: var(--spacing-xs);
240
+ padding-inline: var(--spacing-xxs);
242
241
  font-family: var(--font-family-mono);
243
242
  font-size: 0.9em;
244
243
  box-decoration-break: clone;
@@ -55,6 +55,8 @@ html {
55
55
 
56
56
  --dbc-amber-700: light-dark(#b45309, #f59e0b);
57
57
  --dbc-amber-100: light-dark(#fff7ed, #2b1b00);
58
+ /* Fixed (not light-dark): needs to stay a legible pale gold behind dark ink in both schemes */
59
+ --dbc-amber-200: #fde68a;
58
60
  --dbc-amber-800: light-dark(#92400e, #fcd34d);
59
61
  --dbc-amber-400: light-dark(#f59e0b, #fbbf24);
60
62
 
@@ -99,8 +101,8 @@ html {
99
101
  --color-bg-selected-hover: var(--dbc-blue-150);
100
102
 
101
103
  /* Highlight */
102
- --color-highlight-bg: var(--color-bg-selected-hover);
103
- --color-highlight-fg: var(--color-fg-default);
104
+ --color-highlight-bg: var(--dbc-amber-200);
105
+ --color-highlight-fg: #1a1a1a;
104
106
 
105
107
  --color-neutral: var(--dbc-neutral-200);
106
108
 
package/dist/styles.css CHANGED
@@ -229,7 +229,6 @@ body.dbc-app {
229
229
  color: var(--color-highlight-fg, inherit);
230
230
  background-color: var(--color-highlight-bg, var(--color-status-warning-bg));
231
231
  border-radius: var(--border-radius-sm);
232
- padding-inline: var(--spacing-xs);
233
232
  box-decoration-break: clone;
234
233
  -webkit-box-decoration-break: clone;
235
234
  }
@@ -238,7 +237,7 @@ body.dbc-app {
238
237
  color: var(--color-code-fg, inherit);
239
238
  background-color: var(--color-code-bg, var(--color-bg-contextual));
240
239
  border-radius: var(--border-radius-sm);
241
- padding-inline: var(--spacing-xs);
240
+ padding-inline: var(--spacing-xxs);
242
241
  font-family: var(--font-family-mono);
243
242
  font-size: 0.9em;
244
243
  box-decoration-break: clone;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbcdk/react-components",
3
- "version": "0.0.148",
3
+ "version": "0.0.150",
4
4
  "description": "Reusable React components for DBC projects",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var getHighlightedSegments = require('../../utils/text/get-highlighted-segments');
6
-
7
- function HighlightedText({ text, query }) {
8
- return getHighlightedSegments.getHighlightedSegments(text, query).map(
9
- (segment, index) => segment.matched ? /* @__PURE__ */ jsxRuntime.jsx("mark", { className: "dbc-highlight", children: segment.text }, `${segment.text}-${index}`) : /* @__PURE__ */ jsxRuntime.jsx(react.Fragment, { children: segment.text }, `${segment.text}-${index}`)
10
- );
11
- }
12
-
13
- exports.HighlightedText = HighlightedText;
@@ -1,5 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- export declare function HighlightedText({ text, query }: {
3
- text: string;
4
- query: string;
5
- }): ReactNode;
@@ -1,11 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Fragment } from 'react';
3
- import { getHighlightedSegments } from '../../utils/text/get-highlighted-segments';
4
-
5
- function HighlightedText({ text, query }) {
6
- return getHighlightedSegments(text, query).map(
7
- (segment, index) => segment.matched ? /* @__PURE__ */ jsx("mark", { className: "dbc-highlight", children: segment.text }, `${segment.text}-${index}`) : /* @__PURE__ */ jsx(Fragment, { children: segment.text }, `${segment.text}-${index}`)
8
- );
9
- }
10
-
11
- export { HighlightedText };
@@ -1,121 +0,0 @@
1
- :root {
2
- /* Colors */
3
- --color-primary: #1e88e5;
4
- --color-primary-hover: #007bb0;
5
- --color-highlight: #3b99e0;
6
- --focus-ring: 0 0 0 2px #3b99e0;
7
- --color-primary-hover: #0932b6;
8
- --color-secondary: #6b7280;
9
- --color-secondary-hover: #4b5563;
10
- --color-accent: #ec4899;
11
- --color-accent-hover: #be185d;
12
-
13
- --color-highlight: #0932b6;
14
- --color-hover: var(--opac-bg-light);
15
-
16
- --color-background: #ffffff;
17
-
18
- --color-text: #111827;
19
- --color-text-on-primary: var(--color-text-inverse);
20
- --color-text-on-highlight: var(--color-text-inverse);
21
- --color-text-on-secondary: var(--color-text-inverse);
22
- --color-text-muted: #6b7280;
23
- --color-text-inverse: #ffffff;
24
-
25
- --color-border: #e5e7eb;
26
- --color-border-strong: #d1d5db;
27
-
28
- --color-success: #16a34a;
29
- --color-warning: #f59e0b;
30
- --color-error: #dc2626;
31
- --color-info: #0ea5e9;
32
-
33
- --color-chart-empty: color-mix(in srgb, var(--color-text-muted) 15%, rgb(255 255 255 / 0));
34
- --color-chart-neutral: color-mix(in srgb, var(--color-text-muted) 25%, rgb(255 255 255 / 0));
35
- --color-chart-primary: color-mix(in srgb, var(--color-primary) 75%, rgb(255 255 255 / 0));
36
- --color-chart-success: color-mix(in srgb, var(--color-success) 75%, rgb(255 255 255 / 0));
37
- --color-chart-warning: color-mix(in srgb, var(--color-warning) 75%, rgb(255 255 255 / 0));
38
- --color-chart-brand: color-mix(in srgb, var(--color-accent) 75%, rgb(255 255 255 / 0));
39
- --color-chart-info: color-mix(in srgb, var(--color-info) 75%, rgb(255 255 255 / 0));
40
- --color-chart-error: color-mix(in srgb, var(--color-error) 75%, rgb(255 255 255 / 0));
41
-
42
- /* Legacy aliases */
43
- --color-chart-blue: var(--color-chart-primary);
44
- --color-chart-green: var(--color-chart-success);
45
- --color-chart-amber: var(--color-chart-warning);
46
- --color-chart-pink: var(--color-chart-brand);
47
- --color-chart-sky: var(--color-chart-info);
48
- --color-chart-red: var(--color-chart-error);
49
-
50
- --opac-bg-light: rgba(0, 0, 0, 0.025);
51
- --opac-bg-default: rgba(0, 0, 0, 0.05);
52
- --opac-bg-dark: rgba(0, 0, 0, 0.1);
53
- --opac-bg-dark-inverse: rgba(255, 255, 255, 0.1);
54
-
55
- /* Spacing */
56
- --spacing-xxs: 0.25rem;
57
- --spacing-xs: 0.5rem;
58
- --spacing-sm: 0.75rem;
59
- --spacing-md: 1rem;
60
- --spacing-lg: 1.5rem;
61
- --spacing-xl: 2rem;
62
- --spacing-2xl: 3rem;
63
-
64
- --icon-size: 20px;
65
-
66
- --component-size-xs: 1.5rem;
67
- --component-size-sm: 2rem;
68
- --component-size-md: 2.5rem;
69
- --component-size-lg: 3rem;
70
- --component-size-xl: 4rem;
71
-
72
- /* Borders */
73
-
74
- --border-width-thin: 1px;
75
- --border-width-thick: 2px;
76
-
77
- --border-radius-none: 0;
78
- --border-radius-default: 0.25rem;
79
- --border-radius-rounded: 2rem;
80
- --border-radius-round: 50%;
81
-
82
- /* Typography */
83
- --font-family: Roboto, -apple-system, 'Segoe UI', Roboto, sans-serif;
84
- --font-family-mono: ui-monospace, SFMono-Regular, monospace;
85
-
86
- --font-size-xs: 0.75rem;
87
- --font-size-sm: 0.875rem;
88
- --font-size-md: 1rem;
89
- --font-size-lg: 1.25rem;
90
- --font-size-xl: 2rem;
91
- --font-size-2xl: 3rem;
92
-
93
- --font-weight-regular: 400;
94
- --font-weight-medium: 500;
95
- --font-weight-bold: 700;
96
-
97
- --line-height-tight: 1.25;
98
- --line-height-normal: 1.5;
99
- --line-height-relaxed: 1.75;
100
-
101
- /* Overlay */
102
- --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
103
- --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
104
- --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
105
- --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
106
- --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1);
107
-
108
- /* Transitions */
109
- --transition-fast: 150ms ease-in-out;
110
- --transition-normal: 250ms ease-in-out;
111
- --transition-slow: 400ms ease-in-out;
112
-
113
- --focus-ring: 0 0 0 2px var(--color-primary);
114
-
115
- /* Layers */
116
- --z-dropdown: 1000;
117
- --z-sticky: 1100;
118
- --z-modal: 1200;
119
- --z-popover: 1300;
120
- --z-tooltip: 1400;
121
- }
@@ -1,2 +0,0 @@
1
- @import '../styles/themes/forfatterweb/light.css';
2
- @import '../index.css';