@uxf/ui 11.27.1 → 11.28.1

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.
@@ -33,7 +33,7 @@ function Basic() {
33
33
  // eslint-disable-next-line no-console
34
34
  const onClick = console.log;
35
35
  const gridColumnsCount = config.variants.length * config.sizes.length + 1;
36
- const gridTemplateColumns = `repeat(${gridColumnsCount}, 100px)`;
36
+ const gridTemplateColumns = `repeat(${gridColumnsCount}, 180px)`;
37
37
  return (react_1.default.createElement("div", { className: "p-4" },
38
38
  react_1.default.createElement("div", { className: "grid gap-3 p-4", style: { gridTemplateColumns } },
39
39
  react_1.default.createElement("div", null),
@@ -44,13 +44,15 @@ function Basic() {
44
44
  config.variants.flatMap((variant) => config.sizes.map((size) => (react_1.default.createElement("div", { key: variant, className: "text-center text-xs text-gray-400" },
45
45
  "size=",
46
46
  size))))),
47
- config.colors.map((color) => (react_1.default.createElement("div", { className: color === "inverted" ? "bg-[#1F2A37] dark:bg-white" : undefined, key: color },
47
+ config.colors.map((color) => (react_1.default.createElement("div", { className: color === "inverted" ? "min-w-fit bg-[#1F2A37] dark:bg-white" : undefined, key: color },
48
48
  react_1.default.createElement("div", { className: "grid gap-3 py-2", style: { gridTemplateColumns } },
49
49
  react_1.default.createElement("div", { className: "flex items-center text-center text-xs text-gray-400" },
50
50
  "color=",
51
51
  color),
52
- config.variants.map((variant) => (react_1.default.createElement(react_1.Fragment, { key: variant }, config.sizes.map((size) => (react_1.default.createElement("div", { key: `${size}${color}${variant}`, className: "flex items-center justify-center" },
53
- react_1.default.createElement(button_1.Button, { color: color, onClick: onClick, size: size, variant: variant }, "Button")))))))))))));
52
+ config.variants.map((variant) => (react_1.default.createElement(react_1.Fragment, { key: variant }, config.sizes.map((size) => (react_1.default.createElement("div", { key: `${size}${color}${variant}`, className: "flex items-center justify-center gap-2" },
53
+ react_1.default.createElement(button_1.Button, { color: color, onClick: onClick, size: size, variant: variant }, "Button"),
54
+ react_1.default.createElement(button_1.Button, { color: color, onClick: onClick, size: size, variant: variant, isIconButton: true },
55
+ react_1.default.createElement(icon_1.Icon, { name: "triangle-exclamation" }))))))))))))));
54
56
  }
55
57
  exports.Basic = Basic;
56
58
  function Default() {
package/components.d.ts CHANGED
@@ -36,6 +36,7 @@ import * as loaderStories from "./loader/loader.stories";
36
36
  import * as lozengeStories from "./lozenge/lozenge.stories";
37
37
  import * as messageStories from "./message/message.stories";
38
38
  import * as modalStories from "./modal/modal.stories";
39
+ import * as modalDialogStories from "./modal-dialog/modal-dialog.stories";
39
40
  import * as multiComboboxStories from "./multi-combobox/multi-combobox.stories";
40
41
  import * as multiSelectStories from "./multi-select/multi-select.stories";
41
42
  import * as paginationStories from "./pagination/pagination.stories";
@@ -206,6 +207,10 @@ export declare const components: {
206
207
  readonly title: "Modal";
207
208
  readonly stories: typeof modalStories;
208
209
  };
210
+ readonly "modal-dialog": {
211
+ readonly title: "ModalDialog";
212
+ readonly stories: typeof modalDialogStories;
213
+ };
209
214
  readonly "multi-combobox": {
210
215
  readonly title: "MultiCombobox";
211
216
  readonly stories: typeof multiComboboxStories;
package/components.js CHANGED
@@ -63,6 +63,7 @@ const loaderStories = __importStar(require("./loader/loader.stories"));
63
63
  const lozengeStories = __importStar(require("./lozenge/lozenge.stories"));
64
64
  const messageStories = __importStar(require("./message/message.stories"));
65
65
  const modalStories = __importStar(require("./modal/modal.stories"));
66
+ const modalDialogStories = __importStar(require("./modal-dialog/modal-dialog.stories"));
66
67
  const multiComboboxStories = __importStar(require("./multi-combobox/multi-combobox.stories"));
67
68
  const multiSelectStories = __importStar(require("./multi-select/multi-select.stories"));
68
69
  const paginationStories = __importStar(require("./pagination/pagination.stories"));
@@ -233,6 +234,10 @@ exports.components = {
233
234
  title: "Modal",
234
235
  stories: modalStories
235
236
  },
237
+ "modal-dialog": {
238
+ title: "ModalDialog",
239
+ stories: modalDialogStories
240
+ },
236
241
  "multi-combobox": {
237
242
  title: "MultiCombobox",
238
243
  stories: multiComboboxStories
package/css/button.css CHANGED
@@ -3,8 +3,8 @@
3
3
  --uxf-button-height: theme("inputSize.default");
4
4
  --uxf-button-border-radius: theme("borderRadius.md");
5
5
  --uxf-button-font-size: theme("fontSize.sm");
6
- --uxf-button-icon-size: theme("spacing.6");
7
- --uxf-button-loading-size: theme("spacing.6");
6
+ --uxf-button-icon-size: theme("spacing.5");
7
+ --uxf-button-loading-size: theme("spacing.5");
8
8
  --uxf-button-px: theme("spacing.4");
9
9
  --uxf-button-border-color: initial;
10
10
  --uxf-button-background-color: initial;
@@ -18,6 +18,9 @@
18
18
  }
19
19
 
20
20
  .uxf-button {
21
+ --i-h: var(--uxf-button-icon-size);
22
+ --i-w: var(--uxf-button-icon-size);
23
+
21
24
  align-items: center;
22
25
  background-color: var(--uxf-button-background-color);
23
26
  border-color: var(--uxf-button-border-color);
@@ -44,11 +47,6 @@
44
47
  background-color: var(--uxf-button-background-color-hover);
45
48
  }
46
49
 
47
- .uxf-icon {
48
- height: var(--uxf-button-icon-size);
49
- width: var(--uxf-button-icon-size);
50
- }
51
-
52
50
  &__text {
53
51
  @apply truncate;
54
52
  }
@@ -60,6 +58,7 @@
60
58
  }
61
59
 
62
60
  &--icon-button {
61
+ flex-shrink: 0;
63
62
  padding: 0;
64
63
  width: var(--uxf-button-height);
65
64
  }
@@ -112,12 +111,16 @@
112
111
  &--size-lg {
113
112
  --uxf-button-font-size: theme("fontSize.base");
114
113
  --uxf-button-height: theme("inputSize.lg");
114
+ --uxf-button-icon-size: theme("spacing.6");
115
+ --uxf-button-loading-size: theme("spacing.6");
115
116
  }
116
117
 
117
118
  &--size-xl {
118
119
  --uxf-button-px: theme("spacing.6");
119
120
  --uxf-button-font-size: theme("fontSize.base");
120
121
  --uxf-button-height: theme("inputSize.xl");
122
+ --uxf-button-icon-size: theme("spacing.7");
123
+ --uxf-button-loading-size: theme("spacing.7");
121
124
  }
122
125
 
123
126
  /* VARIANTS */
@@ -169,6 +172,7 @@
169
172
 
170
173
  &--variant-secondary {
171
174
  --uxf-button-background-color-hover: var(--uxf-color-base-surface-main-hover);
175
+ --uxf-button-background-color: var(--uxf-color-base-surface-main);
172
176
 
173
177
  border-style: solid;
174
178
  border-width: 1px;
@@ -201,15 +205,12 @@
201
205
  &.uxf-button--color-inverted {
202
206
  --uxf-button-border-color: var(--uxf-color-base-border-inverted);
203
207
  --uxf-button-text-color: var(--uxf-color-base-text-inverted-high-emphasis);
204
- --uxf-button-background-color-hover: #ffffff1f;
208
+ --uxf-button-background-color: var(--uxf-color-base-surface-inverted-main);
209
+ --uxf-button-background-color-hover: var(--uxf-color-base-surface-inverted-main-hover);
205
210
 
206
211
  &.uxf-button--is-disabled {
207
- --uxf-button-border-color: var(--uxf-color-base-surface-disabled);
208
- --uxf-button-background-color: var(--uxf-color-base-surface-disabled);
209
- }
210
-
211
- :root .dark & {
212
- --uxf-button-background-color-hover: #d2d6db2f;
212
+ --uxf-button-text-color: var(--uxf-color-base-text-inverted-disabled);
213
+ --uxf-button-background-color: var(--uxf-color-base-surface-inverted-main);
213
214
  }
214
215
  }
215
216
 
@@ -245,14 +246,12 @@
245
246
  --uxf-button-text-color: var(--uxf-color-info-text);
246
247
  }
247
248
 
248
- /** TODO @vejvis - UX musí doladit inverted button... teď je to strašnej hack */
249
249
  &.uxf-button--color-inverted {
250
250
  --uxf-button-text-color: var(--uxf-color-base-text-inverted-high-emphasis);
251
- --uxf-button-background-color-hover: #ffffff1f;
251
+ --uxf-button-background-color-hover: var(--uxf-color-base-surface-inverted-main-hover);
252
252
 
253
- :root .dark & {
254
- --uxf-button-background-color-hover: #d2d6db2f;
255
- --uxf-button-text-color: #d2d6db;
253
+ &.uxf-button--is-disabled {
254
+ --uxf-button-text-color: var(--uxf-color-base-text-inverted-disabled);
256
255
  }
257
256
  }
258
257
 
package/css/colors.css CHANGED
@@ -6,9 +6,14 @@
6
6
  --uxf-color-base-surface-main-hover: #f3f4f6;
7
7
  --uxf-color-base-surface-input-disabled: #f3f4f6;
8
8
  --uxf-color-base-surface-disabled: #d2d6db;
9
+ --uxf-color-base-surface-inverted-main: #ffffff14;
10
+ --uxf-color-base-surface-inverted-main-hover: #ffffff29;
9
11
  --uxf-color-base-text-disabled: #9da4ae;
10
12
  --uxf-color-base-text-high-emphasis: #111927;
13
+ --uxf-color-base-text-low-emphasis: #4d5761;
11
14
  --uxf-color-base-text-inverted-high-emphasis: #fff;
15
+ --uxf-color-base-text-inverted-low-emphasis: #fffc;
16
+ --uxf-color-base-text-inverted-disabled: #ffffffb3;
12
17
 
13
18
  /** primary */
14
19
  --uxf-color-primary-surface-default: #155dee;
@@ -46,9 +51,14 @@
46
51
  --uxf-color-base-surface-main-hover: #1f2a37;
47
52
  --uxf-color-base-surface-input-disabled: #4d5761;
48
53
  --uxf-color-base-surface-disabled: #d2d6db;
54
+ --uxf-color-base-surface-inverted-main: #20293914;
55
+ --uxf-color-base-surface-inverted-main-hover: #20293929;
49
56
  --uxf-color-base-text-disabled: #ffffff80;
50
57
  --uxf-color-base-text-high-emphasis: #fff;
58
+ --uxf-color-base-text-low-emphasis: #ffffffbf;
51
59
  --uxf-color-base-text-inverted-high-emphasis: #111927;
60
+ --uxf-color-base-text-inverted-low-emphasis: #202939cc;
61
+ --uxf-color-base-text-inverted-disabled: #202939b3;
52
62
 
53
63
  /** primary */
54
64
  --uxf-color-primary-surface-default: #518bff;
package/css/icon.css CHANGED
@@ -1,11 +1,29 @@
1
1
  .uxf-icon {
2
- @apply h-[var(--i-h)] w-[var(--i-w)] shrink-0;
2
+ flex-shrink: 0;
3
+ height: var(--i-h);
4
+ width: var(--i-w);
3
5
 
4
- :root .dark & {
5
- color: theme("colors.white");
6
+ & > use {
7
+ pointer-events: none;
6
8
  }
7
9
 
8
- & > use {
9
- @apply pointer-events-none;
10
+ &--color-default {
11
+ color: var(--uxf-color-base-text-high-emphasis);
12
+ }
13
+
14
+ &--color-positive {
15
+ color: var(--uxf-color-positive-text);
16
+ }
17
+
18
+ &--color-negative {
19
+ color: var(--uxf-color-negative-text);
20
+ }
21
+
22
+ &--color-warning {
23
+ color: var(--uxf-color-warning-text);
24
+ }
25
+
26
+ &--color-info {
27
+ color: var(--uxf-color-info-text);
10
28
  }
11
29
  }
@@ -0,0 +1,38 @@
1
+ .uxf-modal-dialog {
2
+ background-color: var(--uxf-color-base-surface-main);
3
+ display: flex;
4
+ flex-direction: column;
5
+ font-size: var(--uxf-typo-main-size);
6
+ gap: theme("spacing.3");
7
+ line-height: var(--uxf-typo-main-line-height);
8
+ padding: theme("spacing.4");
9
+
10
+ &__icon {
11
+ flex-shrink: 0;
12
+ height: theme("spacing.5");
13
+ transform: translateY(2px);
14
+ width: theme("spacing.5");
15
+ }
16
+
17
+ &__header {
18
+ align-items: flex-start;
19
+ display: flex;
20
+ gap: theme("spacing.2");
21
+ }
22
+
23
+ &__title {
24
+ color: var(--uxf-color-base-text-high-emphasis);
25
+ font-weight: theme("fontWeight.medium");
26
+ }
27
+
28
+ &__text {
29
+ color: var(--uxf-color-base-text-low-emphasis);
30
+ }
31
+
32
+ &__footer {
33
+ display: flex;
34
+ flex-wrap: wrap;
35
+ gap: theme("spacing.4");
36
+ justify-content: flex-end;
37
+ }
38
+ }
package/icon/icon.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import React, { CSSProperties } from "react";
2
+ import { IconColor } from "./theme";
2
3
  import { IconName } from "./types";
3
4
  type NameOrComponentType = {
4
5
  name: IconName;
@@ -13,6 +14,7 @@ export type IconProps = {
13
14
  mode?: "meet" | "slice";
14
15
  size?: number;
15
16
  style?: CSSProperties;
17
+ color?: IconColor;
16
18
  } & NameOrComponentType;
17
19
  export declare const Icon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
18
20
  export {};
package/icon/icon.js CHANGED
@@ -32,7 +32,7 @@ exports.Icon = (0, react_1.forwardRef)((props, ref) => {
32
32
  var _a, _b;
33
33
  const componentContext = (0, context_1.useComponentContext)("icon");
34
34
  const CustomComponent = props.Component;
35
- const className = (0, cx_1.cx)("uxf-icon", props.className);
35
+ const className = (0, cx_1.cx)("uxf-icon", props.color && `uxf-icon--color-${props.color}`, props.className);
36
36
  const preserveAspectRatio = `xMidYMid ${(_a = props.mode) !== null && _a !== void 0 ? _a : "meet"}`;
37
37
  const style = props.size
38
38
  ? {
package/icon/theme.d.ts CHANGED
@@ -1,2 +1,10 @@
1
1
  export interface IconsSet extends Record<string, boolean> {
2
2
  }
3
+ export interface IconColors {
4
+ default: true;
5
+ positive: true;
6
+ negative: true;
7
+ warning: true;
8
+ info: true;
9
+ }
10
+ export type IconColor = keyof IconColors;
package/icons-config.js CHANGED
@@ -10,6 +10,11 @@ module.exports = {
10
10
  height: 512,
11
11
  data: `<path fill="currentColor" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/>`,
12
12
  },
13
+ "badge-check-solid": {
14
+ width: 512,
15
+ height: 512,
16
+ data: `<path fill="currentColor" d="M256 0c36.8 0 68.8 20.7 84.9 51.1C373.8 41 411 49 437 75s34 63.3 23.9 96.1C491.3 187.2 512 219.2 512 256s-20.7 68.8-51.1 84.9C471 373.8 463 411 437 437s-63.3 34-96.1 23.9C324.8 491.3 292.8 512 256 512s-68.8-20.7-84.9-51.1C138.2 471 101 463 75 437s-34-63.3-23.9-96.1C20.7 324.8 0 292.8 0 256s20.7-68.8 51.1-84.9C41 138.2 49 101 75 75s63.3-34 96.1-23.9C187.2 20.7 219.2 0 256 0zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"/>`,
17
+ },
13
18
  calendar: {
14
19
  width: 448,
15
20
  height: 512,
@@ -75,6 +80,11 @@ module.exports = {
75
80
  height: 512,
76
81
  data: `<path d="M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9-.1-2.7-.2-5.4-.2-8.1 0-88.4 71.6-160 160-160 59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96 0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z" fill="currentColor"/>`,
77
82
  },
83
+ "circle-info-solid": {
84
+ width: 512,
85
+ height: 512,
86
+ data: `<path fill="currentColor" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/>`,
87
+ },
78
88
  copy: {
79
89
  width: 512,
80
90
  height: 512,
@@ -110,6 +120,11 @@ module.exports = {
110
120
  height: 512,
111
121
  data: `<path fill="currentColor" d="M248.4 84.3c1.6-2.7 4.5-4.3 7.6-4.3s6 1.6 7.6 4.3L461.9 410c1.4 2.3 2.1 4.9 2.1 7.5c0 8-6.5 14.5-14.5 14.5H62.5c-8 0-14.5-6.5-14.5-14.5c0-2.7 .7-5.3 2.1-7.5L248.4 84.3zm-41-25L9.1 385c-6 9.8-9.1 21-9.1 32.5C0 452 28 480 62.5 480h387c34.5 0 62.5-28 62.5-62.5c0-11.5-3.2-22.7-9.1-32.5L304.6 59.3C294.3 42.4 275.9 32 256 32s-38.3 10.4-48.6 27.3zM288 368a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-8-184c0-13.3-10.7-24-24-24s-24 10.7-24 24v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184z"/>`,
112
122
  },
123
+ "triangle-exclamation-solid": {
124
+ width: 512,
125
+ height: 512,
126
+ data: `<path d="M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z" fill="currentColor"/>`,
127
+ },
113
128
  user: {
114
129
  width: 448,
115
130
  height: 512,
@@ -125,6 +140,11 @@ module.exports = {
125
140
  height: 512,
126
141
  data: `<path fill="currentColor" d="M345 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-119 119L73 103c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l119 119L39 375c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l119-119L311 409c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-119-119L345 137z"/>`,
127
142
  },
143
+ "xmark-octagon-solid": {
144
+ width: 512,
145
+ height: 512,
146
+ data: `<path fill="currentColor" d="M140.6 21.2C154.1 7.7 172.4 .1 191.5 .1l129 0c19.1 0 37.4 7.6 50.9 21.1L490.8 140.6c13.5 13.5 21.1 31.8 21.1 50.9l0 129c0 19.1-7.6 37.4-21.1 50.9L371.4 490.8c-13.5 13.5-31.8 21.1-50.9 21.1l-129 0c-19.1 0-37.4-7.6-50.9-21.1L21.2 371.4C7.7 357.9 .1 339.6 .1 320.5l0-129c0-19.1 7.6-37.4 21.1-50.9L140.6 21.2zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z"/>`,
147
+ },
128
148
  xmarkLarge: {
129
149
  width: 448,
130
150
  height: 512,
package/message/README.md CHANGED
@@ -1,4 +1,6 @@
1
- # Message
1
+ # Message !!! DEPRECATED !!!
2
+
3
+ Use component [ModalDialog](/docs/ui/modal-dialog) and method [openModal()](/docs/ui/modal).
2
4
 
3
5
  ## CSS dependencies
4
6
 
@@ -16,4 +16,5 @@ export interface ConfirmProps {
16
16
  title: string;
17
17
  variant?: MessageVariant;
18
18
  }
19
+ /** @deprecated use ModalDialog */
19
20
  export declare const MessageContent: FC<ConfirmProps>;
@@ -13,6 +13,7 @@ const BUTTON_COLOR = {
13
13
  warning: "warning",
14
14
  success: "positive",
15
15
  };
16
+ /** @deprecated use ModalDialog */
16
17
  const MessageContent = (props) => {
17
18
  var _a, _b, _c;
18
19
  const onAcceptClick = () => {
@@ -4,6 +4,7 @@ declare function getMessageRef(): import("react").RefObject<MessageRef>;
4
4
  declare function openAlert(confirm: Omit<MessageProps, "onAccept" | "acceptLabel">): void;
5
5
  declare function openConfirm(confirm: Omit<MessageProps, "onAccept" | "acceptLabel"> & Required<Pick<MessageProps, "onAccept" | "acceptLabel">>): void;
6
6
  declare function close(): void;
7
+ /** @deprecated use openModal with ModalDialog component */
7
8
  export declare const MessageService: {
8
9
  getMessageRef: typeof getMessageRef;
9
10
  openAlert: typeof openAlert;
@@ -21,6 +21,7 @@ function close() {
21
21
  messageRef.current.close();
22
22
  }
23
23
  }
24
+ /** @deprecated use openModal with ModalDialog component */
24
25
  exports.MessageService = {
25
26
  getMessageRef,
26
27
  openAlert,
@@ -0,0 +1,8 @@
1
+ # ModalDialog
2
+
3
+ ## CSS dependencies
4
+
5
+ ```css
6
+ @import url("@uxf/ui/css/typography.css");
7
+ @import url("@uxf/ui/css/modal-dialog.css");
8
+ ```
@@ -0,0 +1,10 @@
1
+ import React, { ReactNode } from "react";
2
+ interface ModalDialogProps {
3
+ children?: ReactNode;
4
+ className?: string;
5
+ footer?: ReactNode;
6
+ icon?: ReactNode;
7
+ title: string;
8
+ }
9
+ export declare function ModalDialog(props: ModalDialogProps): React.JSX.Element;
10
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ModalDialog = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ function ModalDialog(props) {
9
+ var _a;
10
+ return (react_1.default.createElement("div", { className: `uxf-modal-dialog ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}` },
11
+ react_1.default.createElement("div", { className: "uxf-modal-dialog__header" },
12
+ props.icon && react_1.default.createElement("div", { className: "uxf-modal-dialog__icon" }, props.icon),
13
+ react_1.default.createElement("div", { className: "uxf-modal-dialog__title" }, props.title)),
14
+ props.children && react_1.default.createElement("div", { className: "uxf-modal-dialog__text" }, props.children),
15
+ props.footer && react_1.default.createElement("div", { className: "uxf-modal-dialog__footer" }, props.footer)));
16
+ }
17
+ exports.ModalDialog = ModalDialog;
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare function Default(): React.JSX.Element;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
8
+ const react_1 = __importDefault(require("react"));
9
+ const icon_1 = require("../icon");
10
+ const modal_dialog_1 = require("./modal-dialog");
11
+ function Default() {
12
+ return (react_1.default.createElement("div", { className: "space-y-6 bg-neutral-200 p-6" },
13
+ react_1.default.createElement(modal_dialog_1.ModalDialog, { title: "Default dialog", footer: react_1.default.createElement(react_1.default.Fragment, null,
14
+ react_1.default.createElement(button_1.Button, { variant: "text" }, "Close"),
15
+ react_1.default.createElement(button_1.Button, null, "Button")) }, "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam erat volutpat. Praesent dapibus. Vestibulum fermentum tortor id mi."),
16
+ react_1.default.createElement(modal_dialog_1.ModalDialog, { title: "Warning dialog", icon: react_1.default.createElement(icon_1.Icon, { name: "triangle-exclamation-solid", color: "warning" }), footer: react_1.default.createElement(react_1.default.Fragment, null,
17
+ react_1.default.createElement(button_1.Button, { variant: "text" }, "Close"),
18
+ react_1.default.createElement(button_1.Button, { color: "warning" }, "Button")) }, "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam erat volutpat. Praesent dapibus. Vestibulum fermentum tortor id mi."),
19
+ react_1.default.createElement(modal_dialog_1.ModalDialog, { title: "Positive dialog asda ksdjahs kjdhakj shdk jahksdjh kajsdh k", icon: react_1.default.createElement(icon_1.Icon, { name: "badge-check-solid", color: "positive" }), footer: react_1.default.createElement(react_1.default.Fragment, null,
20
+ react_1.default.createElement(button_1.Button, { variant: "text" }, "Cancel"),
21
+ react_1.default.createElement(button_1.Button, { color: "positive" }, "Save")) }, "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam erat volutpat. Praesent dapibus. Vestibulum fermentum tortor id mi."),
22
+ react_1.default.createElement(modal_dialog_1.ModalDialog, { title: "Negative dialog", icon: react_1.default.createElement(icon_1.Icon, { name: "xmark-octagon-solid", color: "negative" }), footer: react_1.default.createElement(react_1.default.Fragment, null,
23
+ react_1.default.createElement(button_1.Button, { variant: "text" }, "Cancel"),
24
+ react_1.default.createElement(button_1.Button, { color: "negative" }, "Save")) }, "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam erat volutpat. Praesent dapibus. Vestibulum fermentum tortor id mi."),
25
+ react_1.default.createElement(modal_dialog_1.ModalDialog, { title: "Info dialog", icon: react_1.default.createElement(icon_1.Icon, { name: "circle-info-solid", color: "info" }), footer: react_1.default.createElement(react_1.default.Fragment, null,
26
+ react_1.default.createElement(button_1.Button, { variant: "text" }, "Cancel"),
27
+ react_1.default.createElement(button_1.Button, { color: "info" }, "Save")) }, "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam erat volutpat. Praesent dapibus. Vestibulum fermentum tortor id mi.")));
28
+ }
29
+ exports.Default = Default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/ui",
3
- "version": "11.27.1",
3
+ "version": "11.28.1",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/readmes.d.ts CHANGED
@@ -39,6 +39,7 @@ export declare const readmes: {
39
39
  readonly lozenge: typeof alertBubbleReadme;
40
40
  readonly message: typeof alertBubbleReadme;
41
41
  readonly modal: typeof alertBubbleReadme;
42
+ readonly "modal-dialog": typeof alertBubbleReadme;
42
43
  readonly "multi-combobox": typeof alertBubbleReadme;
43
44
  readonly "multi-select": typeof alertBubbleReadme;
44
45
  readonly pagination: typeof alertBubbleReadme;
package/readmes.js CHANGED
@@ -43,23 +43,24 @@ const README_md_35 = __importDefault(require("./loader/README.md"));
43
43
  const README_md_36 = __importDefault(require("./lozenge/README.md"));
44
44
  const README_md_37 = __importDefault(require("./message/README.md"));
45
45
  const README_md_38 = __importDefault(require("./modal/README.md"));
46
- const README_md_39 = __importDefault(require("./multi-combobox/README.md"));
47
- const README_md_40 = __importDefault(require("./multi-select/README.md"));
48
- const README_md_41 = __importDefault(require("./pagination/README.md"));
49
- const README_md_42 = __importDefault(require("./paper/README.md"));
50
- const README_md_43 = __importDefault(require("./radio/README.md"));
51
- const README_md_44 = __importDefault(require("./radio-group/README.md"));
52
- const README_md_45 = __importDefault(require("./raster-image/README.md"));
53
- const README_md_46 = __importDefault(require("./select/README.md"));
54
- const README_md_47 = __importDefault(require("./tabs/README.md"));
55
- const README_md_48 = __importDefault(require("./text-input/README.md"));
56
- const README_md_49 = __importDefault(require("./text-link/README.md"));
57
- const README_md_50 = __importDefault(require("./textarea/README.md"));
58
- const README_md_51 = __importDefault(require("./time-picker/README.md"));
59
- const README_md_52 = __importDefault(require("./time-picker-input/README.md"));
60
- const README_md_53 = __importDefault(require("./toggle/README.md"));
61
- const README_md_54 = __importDefault(require("./tooltip/README.md"));
62
- const README_md_55 = __importDefault(require("./typography/README.md"));
46
+ const README_md_39 = __importDefault(require("./modal-dialog/README.md"));
47
+ const README_md_40 = __importDefault(require("./multi-combobox/README.md"));
48
+ const README_md_41 = __importDefault(require("./multi-select/README.md"));
49
+ const README_md_42 = __importDefault(require("./pagination/README.md"));
50
+ const README_md_43 = __importDefault(require("./paper/README.md"));
51
+ const README_md_44 = __importDefault(require("./radio/README.md"));
52
+ const README_md_45 = __importDefault(require("./radio-group/README.md"));
53
+ const README_md_46 = __importDefault(require("./raster-image/README.md"));
54
+ const README_md_47 = __importDefault(require("./select/README.md"));
55
+ const README_md_48 = __importDefault(require("./tabs/README.md"));
56
+ const README_md_49 = __importDefault(require("./text-input/README.md"));
57
+ const README_md_50 = __importDefault(require("./text-link/README.md"));
58
+ const README_md_51 = __importDefault(require("./textarea/README.md"));
59
+ const README_md_52 = __importDefault(require("./time-picker/README.md"));
60
+ const README_md_53 = __importDefault(require("./time-picker-input/README.md"));
61
+ const README_md_54 = __importDefault(require("./toggle/README.md"));
62
+ const README_md_55 = __importDefault(require("./tooltip/README.md"));
63
+ const README_md_56 = __importDefault(require("./typography/README.md"));
63
64
  exports.readmes = {
64
65
  "alert-bubble": README_md_1.default,
65
66
  "avatar": README_md_2.default,
@@ -99,21 +100,22 @@ exports.readmes = {
99
100
  "lozenge": README_md_36.default,
100
101
  "message": README_md_37.default,
101
102
  "modal": README_md_38.default,
102
- "multi-combobox": README_md_39.default,
103
- "multi-select": README_md_40.default,
104
- "pagination": README_md_41.default,
105
- "paper": README_md_42.default,
106
- "radio": README_md_43.default,
107
- "radio-group": README_md_44.default,
108
- "raster-image": README_md_45.default,
109
- "select": README_md_46.default,
110
- "tabs": README_md_47.default,
111
- "text-input": README_md_48.default,
112
- "text-link": README_md_49.default,
113
- "textarea": README_md_50.default,
114
- "time-picker": README_md_51.default,
115
- "time-picker-input": README_md_52.default,
116
- "toggle": README_md_53.default,
117
- "tooltip": README_md_54.default,
118
- "typography": README_md_55.default,
103
+ "modal-dialog": README_md_39.default,
104
+ "multi-combobox": README_md_40.default,
105
+ "multi-select": README_md_41.default,
106
+ "pagination": README_md_42.default,
107
+ "paper": README_md_43.default,
108
+ "radio": README_md_44.default,
109
+ "radio-group": README_md_45.default,
110
+ "raster-image": README_md_46.default,
111
+ "select": README_md_47.default,
112
+ "tabs": README_md_48.default,
113
+ "text-input": README_md_49.default,
114
+ "text-link": README_md_50.default,
115
+ "textarea": README_md_51.default,
116
+ "time-picker": README_md_52.default,
117
+ "time-picker-input": README_md_53.default,
118
+ "toggle": README_md_54.default,
119
+ "tooltip": README_md_55.default,
120
+ "typography": README_md_56.default,
119
121
  };