hs-uix 1.6.2 → 1.6.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.
- package/dist/common-components.js +45 -3
- package/dist/common-components.mjs +45 -3
- package/dist/datatable.js +7 -2
- package/dist/datatable.mjs +8 -2
- package/dist/form.js +8 -1
- package/dist/form.mjs +8 -1
- package/dist/index.js +60 -6
- package/dist/index.mjs +63 -8
- package/dist/utils.js +45 -3
- package/dist/utils.mjs +45 -3
- package/form.d.ts +1 -0
- package/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -71,6 +71,7 @@ var SUCCESS_MATCHERS = [
|
|
|
71
71
|
"complete",
|
|
72
72
|
"completed",
|
|
73
73
|
"approved",
|
|
74
|
+
"accepted",
|
|
74
75
|
"won",
|
|
75
76
|
"healthy",
|
|
76
77
|
"enabled",
|
|
@@ -80,23 +81,46 @@ var SUCCESS_MATCHERS = [
|
|
|
80
81
|
"published",
|
|
81
82
|
"available",
|
|
82
83
|
"synced",
|
|
83
|
-
"resolved"
|
|
84
|
+
"resolved",
|
|
85
|
+
"replied",
|
|
86
|
+
"responded",
|
|
87
|
+
"confirmed",
|
|
88
|
+
"verified",
|
|
89
|
+
"validated",
|
|
90
|
+
"deployed",
|
|
91
|
+
"running",
|
|
92
|
+
"restored",
|
|
93
|
+
"recovered",
|
|
94
|
+
"cleared"
|
|
84
95
|
];
|
|
85
96
|
var WARNING_MATCHERS = [
|
|
86
97
|
"warning",
|
|
87
98
|
"at risk",
|
|
88
99
|
"risky",
|
|
89
100
|
"pending",
|
|
101
|
+
"waiting",
|
|
90
102
|
"paused",
|
|
91
103
|
"pause",
|
|
92
104
|
"on hold",
|
|
93
105
|
"hold",
|
|
94
106
|
"review",
|
|
107
|
+
"attention",
|
|
95
108
|
"expiring",
|
|
96
109
|
"trial",
|
|
97
110
|
"in progress",
|
|
98
111
|
"awaiting",
|
|
99
|
-
"scheduled"
|
|
112
|
+
"scheduled",
|
|
113
|
+
"negotiation",
|
|
114
|
+
"stalled",
|
|
115
|
+
"stuck",
|
|
116
|
+
"recovering",
|
|
117
|
+
"urgent",
|
|
118
|
+
"escalated",
|
|
119
|
+
"reopened",
|
|
120
|
+
"degraded",
|
|
121
|
+
"retrying",
|
|
122
|
+
"limited",
|
|
123
|
+
"partial"
|
|
100
124
|
];
|
|
101
125
|
var DANGER_MATCHERS = [
|
|
102
126
|
"danger",
|
|
@@ -108,6 +132,9 @@ var DANGER_MATCHERS = [
|
|
|
108
132
|
"blocked",
|
|
109
133
|
"cancelled",
|
|
110
134
|
"canceled",
|
|
135
|
+
"deactivated",
|
|
136
|
+
"suspended",
|
|
137
|
+
"terminated",
|
|
111
138
|
"rejected",
|
|
112
139
|
"denied",
|
|
113
140
|
"churned",
|
|
@@ -115,6 +142,10 @@ var DANGER_MATCHERS = [
|
|
|
115
142
|
"overdue",
|
|
116
143
|
"expired",
|
|
117
144
|
"offline",
|
|
145
|
+
"disconnected",
|
|
146
|
+
"invalid",
|
|
147
|
+
"unhealthy",
|
|
148
|
+
"unsynced",
|
|
118
149
|
"deleted",
|
|
119
150
|
"archived",
|
|
120
151
|
"unpaid"
|
|
@@ -122,12 +153,23 @@ var DANGER_MATCHERS = [
|
|
|
122
153
|
var INFO_MATCHERS = [
|
|
123
154
|
"info",
|
|
124
155
|
"new",
|
|
156
|
+
"not started",
|
|
157
|
+
"todo",
|
|
158
|
+
"to do",
|
|
159
|
+
"backlog",
|
|
160
|
+
"qualified",
|
|
161
|
+
"proposal",
|
|
162
|
+
"contacted",
|
|
163
|
+
"attempted",
|
|
125
164
|
"queued",
|
|
126
165
|
"processing",
|
|
127
166
|
"progress",
|
|
128
167
|
"upcoming",
|
|
129
168
|
"draft",
|
|
130
|
-
"open"
|
|
169
|
+
"open",
|
|
170
|
+
"ready",
|
|
171
|
+
"deferred",
|
|
172
|
+
"postponed"
|
|
131
173
|
];
|
|
132
174
|
var normalizeTagValue = (value) => {
|
|
133
175
|
if (value == null) return "";
|
|
@@ -13,6 +13,7 @@ var SUCCESS_MATCHERS = [
|
|
|
13
13
|
"complete",
|
|
14
14
|
"completed",
|
|
15
15
|
"approved",
|
|
16
|
+
"accepted",
|
|
16
17
|
"won",
|
|
17
18
|
"healthy",
|
|
18
19
|
"enabled",
|
|
@@ -22,23 +23,46 @@ var SUCCESS_MATCHERS = [
|
|
|
22
23
|
"published",
|
|
23
24
|
"available",
|
|
24
25
|
"synced",
|
|
25
|
-
"resolved"
|
|
26
|
+
"resolved",
|
|
27
|
+
"replied",
|
|
28
|
+
"responded",
|
|
29
|
+
"confirmed",
|
|
30
|
+
"verified",
|
|
31
|
+
"validated",
|
|
32
|
+
"deployed",
|
|
33
|
+
"running",
|
|
34
|
+
"restored",
|
|
35
|
+
"recovered",
|
|
36
|
+
"cleared"
|
|
26
37
|
];
|
|
27
38
|
var WARNING_MATCHERS = [
|
|
28
39
|
"warning",
|
|
29
40
|
"at risk",
|
|
30
41
|
"risky",
|
|
31
42
|
"pending",
|
|
43
|
+
"waiting",
|
|
32
44
|
"paused",
|
|
33
45
|
"pause",
|
|
34
46
|
"on hold",
|
|
35
47
|
"hold",
|
|
36
48
|
"review",
|
|
49
|
+
"attention",
|
|
37
50
|
"expiring",
|
|
38
51
|
"trial",
|
|
39
52
|
"in progress",
|
|
40
53
|
"awaiting",
|
|
41
|
-
"scheduled"
|
|
54
|
+
"scheduled",
|
|
55
|
+
"negotiation",
|
|
56
|
+
"stalled",
|
|
57
|
+
"stuck",
|
|
58
|
+
"recovering",
|
|
59
|
+
"urgent",
|
|
60
|
+
"escalated",
|
|
61
|
+
"reopened",
|
|
62
|
+
"degraded",
|
|
63
|
+
"retrying",
|
|
64
|
+
"limited",
|
|
65
|
+
"partial"
|
|
42
66
|
];
|
|
43
67
|
var DANGER_MATCHERS = [
|
|
44
68
|
"danger",
|
|
@@ -50,6 +74,9 @@ var DANGER_MATCHERS = [
|
|
|
50
74
|
"blocked",
|
|
51
75
|
"cancelled",
|
|
52
76
|
"canceled",
|
|
77
|
+
"deactivated",
|
|
78
|
+
"suspended",
|
|
79
|
+
"terminated",
|
|
53
80
|
"rejected",
|
|
54
81
|
"denied",
|
|
55
82
|
"churned",
|
|
@@ -57,6 +84,10 @@ var DANGER_MATCHERS = [
|
|
|
57
84
|
"overdue",
|
|
58
85
|
"expired",
|
|
59
86
|
"offline",
|
|
87
|
+
"disconnected",
|
|
88
|
+
"invalid",
|
|
89
|
+
"unhealthy",
|
|
90
|
+
"unsynced",
|
|
60
91
|
"deleted",
|
|
61
92
|
"archived",
|
|
62
93
|
"unpaid"
|
|
@@ -64,12 +95,23 @@ var DANGER_MATCHERS = [
|
|
|
64
95
|
var INFO_MATCHERS = [
|
|
65
96
|
"info",
|
|
66
97
|
"new",
|
|
98
|
+
"not started",
|
|
99
|
+
"todo",
|
|
100
|
+
"to do",
|
|
101
|
+
"backlog",
|
|
102
|
+
"qualified",
|
|
103
|
+
"proposal",
|
|
104
|
+
"contacted",
|
|
105
|
+
"attempted",
|
|
67
106
|
"queued",
|
|
68
107
|
"processing",
|
|
69
108
|
"progress",
|
|
70
109
|
"upcoming",
|
|
71
110
|
"draft",
|
|
72
|
-
"open"
|
|
111
|
+
"open",
|
|
112
|
+
"ready",
|
|
113
|
+
"deferred",
|
|
114
|
+
"postponed"
|
|
73
115
|
];
|
|
74
116
|
var normalizeTagValue = (value) => {
|
|
75
117
|
if (value == null) return "";
|
package/dist/datatable.js
CHANGED
|
@@ -186,6 +186,8 @@ var DataTable = ({
|
|
|
186
186
|
showFirstLastButtons,
|
|
187
187
|
// show First/Last page buttons (default: auto when pageCount > 5)
|
|
188
188
|
// Row count
|
|
189
|
+
title,
|
|
190
|
+
// optional title shown above the table toolbar
|
|
189
191
|
showRowCount = true,
|
|
190
192
|
// show "X records" / "X of Y records" text
|
|
191
193
|
rowCountBold = false,
|
|
@@ -655,6 +657,9 @@ var DataTable = ({
|
|
|
655
657
|
selectionResetRef.current = combinedSelectionResetKey;
|
|
656
658
|
}, [combinedSelectionResetKey, selectable, externalSelectedIds]);
|
|
657
659
|
const selectedIds = externalSelectedIds != null ? new Set(externalSelectedIds) : internalSelectedIds;
|
|
660
|
+
const showToolbarCount = showRowCount && !title && displayCount > 0 && !(showSelectionBar && selectable && selectedIds.size > 0);
|
|
661
|
+
const showTitleCount = showRowCount && !!title && displayCount > 0 && !(showSelectionBar && selectable && selectedIds.size > 0);
|
|
662
|
+
const hasToolbarContent = showSearch && searchFields.length > 0 || filters.length > 0 || activeChips.length > 0 && (showFilterBadges || showClearFiltersButton) || showToolbarCount;
|
|
658
663
|
const showRowActionsColumn = !!rowActions && !(hideRowActionsWhenSelectionActive && selectable && selectedIds.size > 0);
|
|
659
664
|
const applySelection = (0, import_react.useCallback)((nextSet) => {
|
|
660
665
|
if (externalSelectedIds == null) {
|
|
@@ -1004,7 +1009,7 @@ var DataTable = ({
|
|
|
1004
1009
|
}
|
|
1005
1010
|
);
|
|
1006
1011
|
};
|
|
1007
|
-
return /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "column", gap: "xs" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Box, { flex: 3 }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "column", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", align: "center", gap: "sm", wrap: "wrap" }, showSearch && searchFields.length > 0 && /* @__PURE__ */ import_react.default.createElement(
|
|
1012
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "column", gap: "xs" }, title && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", align: "center", justify: "between", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Heading, null, title), showTitleCount && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Text, { variant: "microcopy", format: rowCountBold ? { fontWeight: "bold" } : void 0 }, recordCountLabel)), hasToolbarContent && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Box, { flex: 3 }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "column", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", align: "center", gap: "sm", wrap: "wrap" }, showSearch && searchFields.length > 0 && /* @__PURE__ */ import_react.default.createElement(
|
|
1008
1013
|
import_ui_extensions.SearchInput,
|
|
1009
1014
|
{
|
|
1010
1015
|
name: "datatable-search",
|
|
@@ -1030,7 +1035,7 @@ var DataTable = ({
|
|
|
1030
1035
|
onClick: () => handleFilterRemove("all")
|
|
1031
1036
|
},
|
|
1032
1037
|
resolvedClearAllLabel
|
|
1033
|
-
)))),
|
|
1038
|
+
)))), showToolbarCount && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Box, { flex: 1, alignSelf: "end" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", justify: "end" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Text, { variant: "microcopy", format: rowCountBold ? { fontWeight: "bold" } : void 0 }, recordCountLabel)))), showSelectionBar && selectable && selectedIds.size > 0 && (renderSelectionBar ? renderSelectionBar({
|
|
1034
1039
|
selectedIds,
|
|
1035
1040
|
selectedCount: selectedIds.size,
|
|
1036
1041
|
displayCount,
|
package/dist/datatable.mjs
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
EmptyState,
|
|
11
11
|
ErrorState,
|
|
12
12
|
Flex,
|
|
13
|
+
Heading,
|
|
13
14
|
Icon,
|
|
14
15
|
Input,
|
|
15
16
|
Link,
|
|
@@ -182,6 +183,8 @@ var DataTable = ({
|
|
|
182
183
|
showFirstLastButtons,
|
|
183
184
|
// show First/Last page buttons (default: auto when pageCount > 5)
|
|
184
185
|
// Row count
|
|
186
|
+
title,
|
|
187
|
+
// optional title shown above the table toolbar
|
|
185
188
|
showRowCount = true,
|
|
186
189
|
// show "X records" / "X of Y records" text
|
|
187
190
|
rowCountBold = false,
|
|
@@ -651,6 +654,9 @@ var DataTable = ({
|
|
|
651
654
|
selectionResetRef.current = combinedSelectionResetKey;
|
|
652
655
|
}, [combinedSelectionResetKey, selectable, externalSelectedIds]);
|
|
653
656
|
const selectedIds = externalSelectedIds != null ? new Set(externalSelectedIds) : internalSelectedIds;
|
|
657
|
+
const showToolbarCount = showRowCount && !title && displayCount > 0 && !(showSelectionBar && selectable && selectedIds.size > 0);
|
|
658
|
+
const showTitleCount = showRowCount && !!title && displayCount > 0 && !(showSelectionBar && selectable && selectedIds.size > 0);
|
|
659
|
+
const hasToolbarContent = showSearch && searchFields.length > 0 || filters.length > 0 || activeChips.length > 0 && (showFilterBadges || showClearFiltersButton) || showToolbarCount;
|
|
654
660
|
const showRowActionsColumn = !!rowActions && !(hideRowActionsWhenSelectionActive && selectable && selectedIds.size > 0);
|
|
655
661
|
const applySelection = useCallback((nextSet) => {
|
|
656
662
|
if (externalSelectedIds == null) {
|
|
@@ -1000,7 +1006,7 @@ var DataTable = ({
|
|
|
1000
1006
|
}
|
|
1001
1007
|
);
|
|
1002
1008
|
};
|
|
1003
|
-
return /* @__PURE__ */ React.createElement(Flex, { direction: "column", gap: "xs" }, /* @__PURE__ */ React.createElement(Flex, { direction: "row", gap: "sm" }, /* @__PURE__ */ React.createElement(Box, { flex: 3 }, /* @__PURE__ */ React.createElement(Flex, { direction: "column", gap: "sm" }, /* @__PURE__ */ React.createElement(Flex, { direction: "row", align: "center", gap: "sm", wrap: "wrap" }, showSearch && searchFields.length > 0 && /* @__PURE__ */ React.createElement(
|
|
1009
|
+
return /* @__PURE__ */ React.createElement(Flex, { direction: "column", gap: "xs" }, title && /* @__PURE__ */ React.createElement(Flex, { direction: "row", align: "center", justify: "between", gap: "sm" }, /* @__PURE__ */ React.createElement(Heading, null, title), showTitleCount && /* @__PURE__ */ React.createElement(Text, { variant: "microcopy", format: rowCountBold ? { fontWeight: "bold" } : void 0 }, recordCountLabel)), hasToolbarContent && /* @__PURE__ */ React.createElement(Flex, { direction: "row", gap: "sm" }, /* @__PURE__ */ React.createElement(Box, { flex: 3 }, /* @__PURE__ */ React.createElement(Flex, { direction: "column", gap: "sm" }, /* @__PURE__ */ React.createElement(Flex, { direction: "row", align: "center", gap: "sm", wrap: "wrap" }, showSearch && searchFields.length > 0 && /* @__PURE__ */ React.createElement(
|
|
1004
1010
|
SearchInput,
|
|
1005
1011
|
{
|
|
1006
1012
|
name: "datatable-search",
|
|
@@ -1026,7 +1032,7 @@ var DataTable = ({
|
|
|
1026
1032
|
onClick: () => handleFilterRemove("all")
|
|
1027
1033
|
},
|
|
1028
1034
|
resolvedClearAllLabel
|
|
1029
|
-
)))),
|
|
1035
|
+
)))), showToolbarCount && /* @__PURE__ */ React.createElement(Box, { flex: 1, alignSelf: "end" }, /* @__PURE__ */ React.createElement(Flex, { direction: "row", justify: "end" }, /* @__PURE__ */ React.createElement(Text, { variant: "microcopy", format: rowCountBold ? { fontWeight: "bold" } : void 0 }, recordCountLabel)))), showSelectionBar && selectable && selectedIds.size > 0 && (renderSelectionBar ? renderSelectionBar({
|
|
1030
1036
|
selectedIds,
|
|
1031
1037
|
selectedCount: selectedIds.size,
|
|
1032
1038
|
displayCount,
|
package/dist/form.js
CHANGED
|
@@ -404,6 +404,8 @@ var FormBuilder = (0, import_react.forwardRef)(function FormBuilder2(props, ref)
|
|
|
404
404
|
// () => void
|
|
405
405
|
submitPosition = "bottom",
|
|
406
406
|
// "bottom" | "none"
|
|
407
|
+
submitAlign,
|
|
408
|
+
// default single-step action row alignment
|
|
407
409
|
loading: controlledLoading,
|
|
408
410
|
// controlled loading state
|
|
409
411
|
disabled = false,
|
|
@@ -708,6 +710,10 @@ var FormBuilder = (0, import_react.forwardRef)(function FormBuilder2(props, ref)
|
|
|
708
710
|
console.warn(`[FormBuilder] ${message}`);
|
|
709
711
|
}
|
|
710
712
|
}, [isDev]);
|
|
713
|
+
(0, import_react.useEffect)(() => {
|
|
714
|
+
if (!isMultiStep || !submitAlign) return;
|
|
715
|
+
warnConfig("submitAlign is ignored when steps are provided. Use renderButtons for custom multi-step button layout.");
|
|
716
|
+
}, [isMultiStep, submitAlign, warnConfig]);
|
|
711
717
|
const replaceErrors = (0, import_react.useCallback)(
|
|
712
718
|
(nextErrors) => {
|
|
713
719
|
if (controlledErrors == null) setInternalErrors(nextErrors);
|
|
@@ -2310,6 +2316,7 @@ var FormBuilder = (0, import_react.forwardRef)(function FormBuilder2(props, ref)
|
|
|
2310
2316
|
if (submitPosition === "none" || formReadOnly) return null;
|
|
2311
2317
|
const isLastStep = !isMultiStep || currentStep === steps.length - 1;
|
|
2312
2318
|
const isFirstStep = !isMultiStep || currentStep === 0;
|
|
2319
|
+
const singleStepJustify = submitAlign || (showCancel ? "between" : "start");
|
|
2313
2320
|
const buttonContext = {
|
|
2314
2321
|
isMultiStep,
|
|
2315
2322
|
isFirstStep,
|
|
@@ -2344,7 +2351,7 @@ var FormBuilder = (0, import_react.forwardRef)(function FormBuilder2(props, ref)
|
|
|
2344
2351
|
submitButtonLabel
|
|
2345
2352
|
) : /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Button, { variant: "primary", onClick: handleNext, disabled }, nextButtonLabel)));
|
|
2346
2353
|
}
|
|
2347
|
-
return /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", justify:
|
|
2354
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", justify: singleStepJustify, gap: "sm" }, showCancel && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Button, { variant: "secondary", onClick: onCancel, disabled }, cancelButtonLabel), /* @__PURE__ */ import_react.default.createElement(
|
|
2348
2355
|
import_ui_extensions.LoadingButton,
|
|
2349
2356
|
{
|
|
2350
2357
|
variant: submitVariant,
|
package/dist/form.mjs
CHANGED
|
@@ -408,6 +408,8 @@ var FormBuilder = forwardRef(function FormBuilder2(props, ref) {
|
|
|
408
408
|
// () => void
|
|
409
409
|
submitPosition = "bottom",
|
|
410
410
|
// "bottom" | "none"
|
|
411
|
+
submitAlign,
|
|
412
|
+
// default single-step action row alignment
|
|
411
413
|
loading: controlledLoading,
|
|
412
414
|
// controlled loading state
|
|
413
415
|
disabled = false,
|
|
@@ -712,6 +714,10 @@ var FormBuilder = forwardRef(function FormBuilder2(props, ref) {
|
|
|
712
714
|
console.warn(`[FormBuilder] ${message}`);
|
|
713
715
|
}
|
|
714
716
|
}, [isDev]);
|
|
717
|
+
useEffect(() => {
|
|
718
|
+
if (!isMultiStep || !submitAlign) return;
|
|
719
|
+
warnConfig("submitAlign is ignored when steps are provided. Use renderButtons for custom multi-step button layout.");
|
|
720
|
+
}, [isMultiStep, submitAlign, warnConfig]);
|
|
715
721
|
const replaceErrors = useCallback(
|
|
716
722
|
(nextErrors) => {
|
|
717
723
|
if (controlledErrors == null) setInternalErrors(nextErrors);
|
|
@@ -2314,6 +2320,7 @@ var FormBuilder = forwardRef(function FormBuilder2(props, ref) {
|
|
|
2314
2320
|
if (submitPosition === "none" || formReadOnly) return null;
|
|
2315
2321
|
const isLastStep = !isMultiStep || currentStep === steps.length - 1;
|
|
2316
2322
|
const isFirstStep = !isMultiStep || currentStep === 0;
|
|
2323
|
+
const singleStepJustify = submitAlign || (showCancel ? "between" : "start");
|
|
2317
2324
|
const buttonContext = {
|
|
2318
2325
|
isMultiStep,
|
|
2319
2326
|
isFirstStep,
|
|
@@ -2348,7 +2355,7 @@ var FormBuilder = forwardRef(function FormBuilder2(props, ref) {
|
|
|
2348
2355
|
submitButtonLabel
|
|
2349
2356
|
) : /* @__PURE__ */ React.createElement(Button, { variant: "primary", onClick: handleNext, disabled }, nextButtonLabel)));
|
|
2350
2357
|
}
|
|
2351
|
-
return /* @__PURE__ */ React.createElement(Flex, { direction: "row", justify:
|
|
2358
|
+
return /* @__PURE__ */ React.createElement(Flex, { direction: "row", justify: singleStepJustify, gap: "sm" }, showCancel && /* @__PURE__ */ React.createElement(Button, { variant: "secondary", onClick: onCancel, disabled }, cancelButtonLabel), /* @__PURE__ */ React.createElement(
|
|
2352
2359
|
LoadingButton,
|
|
2353
2360
|
{
|
|
2354
2361
|
variant: submitVariant,
|
package/dist/index.js
CHANGED
|
@@ -217,6 +217,8 @@ var DataTable = ({
|
|
|
217
217
|
showFirstLastButtons,
|
|
218
218
|
// show First/Last page buttons (default: auto when pageCount > 5)
|
|
219
219
|
// Row count
|
|
220
|
+
title,
|
|
221
|
+
// optional title shown above the table toolbar
|
|
220
222
|
showRowCount = true,
|
|
221
223
|
// show "X records" / "X of Y records" text
|
|
222
224
|
rowCountBold = false,
|
|
@@ -686,6 +688,9 @@ var DataTable = ({
|
|
|
686
688
|
selectionResetRef.current = combinedSelectionResetKey;
|
|
687
689
|
}, [combinedSelectionResetKey, selectable, externalSelectedIds]);
|
|
688
690
|
const selectedIds = externalSelectedIds != null ? new Set(externalSelectedIds) : internalSelectedIds;
|
|
691
|
+
const showToolbarCount = showRowCount && !title && displayCount > 0 && !(showSelectionBar && selectable && selectedIds.size > 0);
|
|
692
|
+
const showTitleCount = showRowCount && !!title && displayCount > 0 && !(showSelectionBar && selectable && selectedIds.size > 0);
|
|
693
|
+
const hasToolbarContent = showSearch && searchFields.length > 0 || filters.length > 0 || activeChips.length > 0 && (showFilterBadges || showClearFiltersButton) || showToolbarCount;
|
|
689
694
|
const showRowActionsColumn = !!rowActions && !(hideRowActionsWhenSelectionActive && selectable && selectedIds.size > 0);
|
|
690
695
|
const applySelection = (0, import_react.useCallback)((nextSet) => {
|
|
691
696
|
if (externalSelectedIds == null) {
|
|
@@ -1035,7 +1040,7 @@ var DataTable = ({
|
|
|
1035
1040
|
}
|
|
1036
1041
|
);
|
|
1037
1042
|
};
|
|
1038
|
-
return /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "column", gap: "xs" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Box, { flex: 3 }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "column", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", align: "center", gap: "sm", wrap: "wrap" }, showSearch && searchFields.length > 0 && /* @__PURE__ */ import_react.default.createElement(
|
|
1043
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "column", gap: "xs" }, title && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", align: "center", justify: "between", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Heading, null, title), showTitleCount && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Text, { variant: "microcopy", format: rowCountBold ? { fontWeight: "bold" } : void 0 }, recordCountLabel)), hasToolbarContent && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Box, { flex: 3 }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "column", gap: "sm" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", align: "center", gap: "sm", wrap: "wrap" }, showSearch && searchFields.length > 0 && /* @__PURE__ */ import_react.default.createElement(
|
|
1039
1044
|
import_ui_extensions.SearchInput,
|
|
1040
1045
|
{
|
|
1041
1046
|
name: "datatable-search",
|
|
@@ -1061,7 +1066,7 @@ var DataTable = ({
|
|
|
1061
1066
|
onClick: () => handleFilterRemove("all")
|
|
1062
1067
|
},
|
|
1063
1068
|
resolvedClearAllLabel
|
|
1064
|
-
)))),
|
|
1069
|
+
)))), showToolbarCount && /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Box, { flex: 1, alignSelf: "end" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Flex, { direction: "row", justify: "end" }, /* @__PURE__ */ import_react.default.createElement(import_ui_extensions.Text, { variant: "microcopy", format: rowCountBold ? { fontWeight: "bold" } : void 0 }, recordCountLabel)))), showSelectionBar && selectable && selectedIds.size > 0 && (renderSelectionBar ? renderSelectionBar({
|
|
1065
1070
|
selectedIds,
|
|
1066
1071
|
selectedCount: selectedIds.size,
|
|
1067
1072
|
displayCount,
|
|
@@ -1540,6 +1545,8 @@ var FormBuilder = (0, import_react2.forwardRef)(function FormBuilder2(props, ref
|
|
|
1540
1545
|
// () => void
|
|
1541
1546
|
submitPosition = "bottom",
|
|
1542
1547
|
// "bottom" | "none"
|
|
1548
|
+
submitAlign,
|
|
1549
|
+
// default single-step action row alignment
|
|
1543
1550
|
loading: controlledLoading,
|
|
1544
1551
|
// controlled loading state
|
|
1545
1552
|
disabled = false,
|
|
@@ -1844,6 +1851,10 @@ var FormBuilder = (0, import_react2.forwardRef)(function FormBuilder2(props, ref
|
|
|
1844
1851
|
console.warn(`[FormBuilder] ${message}`);
|
|
1845
1852
|
}
|
|
1846
1853
|
}, [isDev]);
|
|
1854
|
+
(0, import_react2.useEffect)(() => {
|
|
1855
|
+
if (!isMultiStep || !submitAlign) return;
|
|
1856
|
+
warnConfig("submitAlign is ignored when steps are provided. Use renderButtons for custom multi-step button layout.");
|
|
1857
|
+
}, [isMultiStep, submitAlign, warnConfig]);
|
|
1847
1858
|
const replaceErrors = (0, import_react2.useCallback)(
|
|
1848
1859
|
(nextErrors) => {
|
|
1849
1860
|
if (controlledErrors == null) setInternalErrors(nextErrors);
|
|
@@ -3446,6 +3457,7 @@ var FormBuilder = (0, import_react2.forwardRef)(function FormBuilder2(props, ref
|
|
|
3446
3457
|
if (submitPosition === "none" || formReadOnly) return null;
|
|
3447
3458
|
const isLastStep = !isMultiStep || currentStep === steps.length - 1;
|
|
3448
3459
|
const isFirstStep = !isMultiStep || currentStep === 0;
|
|
3460
|
+
const singleStepJustify = submitAlign || (showCancel ? "between" : "start");
|
|
3449
3461
|
const buttonContext = {
|
|
3450
3462
|
isMultiStep,
|
|
3451
3463
|
isFirstStep,
|
|
@@ -3480,7 +3492,7 @@ var FormBuilder = (0, import_react2.forwardRef)(function FormBuilder2(props, ref
|
|
|
3480
3492
|
submitButtonLabel
|
|
3481
3493
|
) : /* @__PURE__ */ import_react2.default.createElement(import_ui_extensions2.Button, { variant: "primary", onClick: handleNext, disabled }, nextButtonLabel)));
|
|
3482
3494
|
}
|
|
3483
|
-
return /* @__PURE__ */ import_react2.default.createElement(import_ui_extensions2.Flex, { direction: "row", justify:
|
|
3495
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_ui_extensions2.Flex, { direction: "row", justify: singleStepJustify, gap: "sm" }, showCancel && /* @__PURE__ */ import_react2.default.createElement(import_ui_extensions2.Button, { variant: "secondary", onClick: onCancel, disabled }, cancelButtonLabel), /* @__PURE__ */ import_react2.default.createElement(
|
|
3484
3496
|
import_ui_extensions2.LoadingButton,
|
|
3485
3497
|
{
|
|
3486
3498
|
variant: submitVariant,
|
|
@@ -4990,6 +5002,7 @@ var SUCCESS_MATCHERS = [
|
|
|
4990
5002
|
"complete",
|
|
4991
5003
|
"completed",
|
|
4992
5004
|
"approved",
|
|
5005
|
+
"accepted",
|
|
4993
5006
|
"won",
|
|
4994
5007
|
"healthy",
|
|
4995
5008
|
"enabled",
|
|
@@ -4999,23 +5012,46 @@ var SUCCESS_MATCHERS = [
|
|
|
4999
5012
|
"published",
|
|
5000
5013
|
"available",
|
|
5001
5014
|
"synced",
|
|
5002
|
-
"resolved"
|
|
5015
|
+
"resolved",
|
|
5016
|
+
"replied",
|
|
5017
|
+
"responded",
|
|
5018
|
+
"confirmed",
|
|
5019
|
+
"verified",
|
|
5020
|
+
"validated",
|
|
5021
|
+
"deployed",
|
|
5022
|
+
"running",
|
|
5023
|
+
"restored",
|
|
5024
|
+
"recovered",
|
|
5025
|
+
"cleared"
|
|
5003
5026
|
];
|
|
5004
5027
|
var WARNING_MATCHERS = [
|
|
5005
5028
|
"warning",
|
|
5006
5029
|
"at risk",
|
|
5007
5030
|
"risky",
|
|
5008
5031
|
"pending",
|
|
5032
|
+
"waiting",
|
|
5009
5033
|
"paused",
|
|
5010
5034
|
"pause",
|
|
5011
5035
|
"on hold",
|
|
5012
5036
|
"hold",
|
|
5013
5037
|
"review",
|
|
5038
|
+
"attention",
|
|
5014
5039
|
"expiring",
|
|
5015
5040
|
"trial",
|
|
5016
5041
|
"in progress",
|
|
5017
5042
|
"awaiting",
|
|
5018
|
-
"scheduled"
|
|
5043
|
+
"scheduled",
|
|
5044
|
+
"negotiation",
|
|
5045
|
+
"stalled",
|
|
5046
|
+
"stuck",
|
|
5047
|
+
"recovering",
|
|
5048
|
+
"urgent",
|
|
5049
|
+
"escalated",
|
|
5050
|
+
"reopened",
|
|
5051
|
+
"degraded",
|
|
5052
|
+
"retrying",
|
|
5053
|
+
"limited",
|
|
5054
|
+
"partial"
|
|
5019
5055
|
];
|
|
5020
5056
|
var DANGER_MATCHERS = [
|
|
5021
5057
|
"danger",
|
|
@@ -5027,6 +5063,9 @@ var DANGER_MATCHERS = [
|
|
|
5027
5063
|
"blocked",
|
|
5028
5064
|
"cancelled",
|
|
5029
5065
|
"canceled",
|
|
5066
|
+
"deactivated",
|
|
5067
|
+
"suspended",
|
|
5068
|
+
"terminated",
|
|
5030
5069
|
"rejected",
|
|
5031
5070
|
"denied",
|
|
5032
5071
|
"churned",
|
|
@@ -5034,6 +5073,10 @@ var DANGER_MATCHERS = [
|
|
|
5034
5073
|
"overdue",
|
|
5035
5074
|
"expired",
|
|
5036
5075
|
"offline",
|
|
5076
|
+
"disconnected",
|
|
5077
|
+
"invalid",
|
|
5078
|
+
"unhealthy",
|
|
5079
|
+
"unsynced",
|
|
5037
5080
|
"deleted",
|
|
5038
5081
|
"archived",
|
|
5039
5082
|
"unpaid"
|
|
@@ -5041,12 +5084,23 @@ var DANGER_MATCHERS = [
|
|
|
5041
5084
|
var INFO_MATCHERS = [
|
|
5042
5085
|
"info",
|
|
5043
5086
|
"new",
|
|
5087
|
+
"not started",
|
|
5088
|
+
"todo",
|
|
5089
|
+
"to do",
|
|
5090
|
+
"backlog",
|
|
5091
|
+
"qualified",
|
|
5092
|
+
"proposal",
|
|
5093
|
+
"contacted",
|
|
5094
|
+
"attempted",
|
|
5044
5095
|
"queued",
|
|
5045
5096
|
"processing",
|
|
5046
5097
|
"progress",
|
|
5047
5098
|
"upcoming",
|
|
5048
5099
|
"draft",
|
|
5049
|
-
"open"
|
|
5100
|
+
"open",
|
|
5101
|
+
"ready",
|
|
5102
|
+
"deferred",
|
|
5103
|
+
"postponed"
|
|
5050
5104
|
];
|
|
5051
5105
|
var normalizeTagValue = (value) => {
|
|
5052
5106
|
if (value == null) return "";
|
package/dist/index.mjs
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
EmptyState,
|
|
11
11
|
ErrorState,
|
|
12
12
|
Flex,
|
|
13
|
+
Heading,
|
|
13
14
|
Icon,
|
|
14
15
|
Input,
|
|
15
16
|
Link,
|
|
@@ -182,6 +183,8 @@ var DataTable = ({
|
|
|
182
183
|
showFirstLastButtons,
|
|
183
184
|
// show First/Last page buttons (default: auto when pageCount > 5)
|
|
184
185
|
// Row count
|
|
186
|
+
title,
|
|
187
|
+
// optional title shown above the table toolbar
|
|
185
188
|
showRowCount = true,
|
|
186
189
|
// show "X records" / "X of Y records" text
|
|
187
190
|
rowCountBold = false,
|
|
@@ -651,6 +654,9 @@ var DataTable = ({
|
|
|
651
654
|
selectionResetRef.current = combinedSelectionResetKey;
|
|
652
655
|
}, [combinedSelectionResetKey, selectable, externalSelectedIds]);
|
|
653
656
|
const selectedIds = externalSelectedIds != null ? new Set(externalSelectedIds) : internalSelectedIds;
|
|
657
|
+
const showToolbarCount = showRowCount && !title && displayCount > 0 && !(showSelectionBar && selectable && selectedIds.size > 0);
|
|
658
|
+
const showTitleCount = showRowCount && !!title && displayCount > 0 && !(showSelectionBar && selectable && selectedIds.size > 0);
|
|
659
|
+
const hasToolbarContent = showSearch && searchFields.length > 0 || filters.length > 0 || activeChips.length > 0 && (showFilterBadges || showClearFiltersButton) || showToolbarCount;
|
|
654
660
|
const showRowActionsColumn = !!rowActions && !(hideRowActionsWhenSelectionActive && selectable && selectedIds.size > 0);
|
|
655
661
|
const applySelection = useCallback((nextSet) => {
|
|
656
662
|
if (externalSelectedIds == null) {
|
|
@@ -1000,7 +1006,7 @@ var DataTable = ({
|
|
|
1000
1006
|
}
|
|
1001
1007
|
);
|
|
1002
1008
|
};
|
|
1003
|
-
return /* @__PURE__ */ React.createElement(Flex, { direction: "column", gap: "xs" }, /* @__PURE__ */ React.createElement(Flex, { direction: "row", gap: "sm" }, /* @__PURE__ */ React.createElement(Box, { flex: 3 }, /* @__PURE__ */ React.createElement(Flex, { direction: "column", gap: "sm" }, /* @__PURE__ */ React.createElement(Flex, { direction: "row", align: "center", gap: "sm", wrap: "wrap" }, showSearch && searchFields.length > 0 && /* @__PURE__ */ React.createElement(
|
|
1009
|
+
return /* @__PURE__ */ React.createElement(Flex, { direction: "column", gap: "xs" }, title && /* @__PURE__ */ React.createElement(Flex, { direction: "row", align: "center", justify: "between", gap: "sm" }, /* @__PURE__ */ React.createElement(Heading, null, title), showTitleCount && /* @__PURE__ */ React.createElement(Text, { variant: "microcopy", format: rowCountBold ? { fontWeight: "bold" } : void 0 }, recordCountLabel)), hasToolbarContent && /* @__PURE__ */ React.createElement(Flex, { direction: "row", gap: "sm" }, /* @__PURE__ */ React.createElement(Box, { flex: 3 }, /* @__PURE__ */ React.createElement(Flex, { direction: "column", gap: "sm" }, /* @__PURE__ */ React.createElement(Flex, { direction: "row", align: "center", gap: "sm", wrap: "wrap" }, showSearch && searchFields.length > 0 && /* @__PURE__ */ React.createElement(
|
|
1004
1010
|
SearchInput,
|
|
1005
1011
|
{
|
|
1006
1012
|
name: "datatable-search",
|
|
@@ -1026,7 +1032,7 @@ var DataTable = ({
|
|
|
1026
1032
|
onClick: () => handleFilterRemove("all")
|
|
1027
1033
|
},
|
|
1028
1034
|
resolvedClearAllLabel
|
|
1029
|
-
)))),
|
|
1035
|
+
)))), showToolbarCount && /* @__PURE__ */ React.createElement(Box, { flex: 1, alignSelf: "end" }, /* @__PURE__ */ React.createElement(Flex, { direction: "row", justify: "end" }, /* @__PURE__ */ React.createElement(Text, { variant: "microcopy", format: rowCountBold ? { fontWeight: "bold" } : void 0 }, recordCountLabel)))), showSelectionBar && selectable && selectedIds.size > 0 && (renderSelectionBar ? renderSelectionBar({
|
|
1030
1036
|
selectedIds,
|
|
1031
1037
|
selectedCount: selectedIds.size,
|
|
1032
1038
|
displayCount,
|
|
@@ -1545,6 +1551,8 @@ var FormBuilder = forwardRef(function FormBuilder2(props, ref) {
|
|
|
1545
1551
|
// () => void
|
|
1546
1552
|
submitPosition = "bottom",
|
|
1547
1553
|
// "bottom" | "none"
|
|
1554
|
+
submitAlign,
|
|
1555
|
+
// default single-step action row alignment
|
|
1548
1556
|
loading: controlledLoading,
|
|
1549
1557
|
// controlled loading state
|
|
1550
1558
|
disabled = false,
|
|
@@ -1849,6 +1857,10 @@ var FormBuilder = forwardRef(function FormBuilder2(props, ref) {
|
|
|
1849
1857
|
console.warn(`[FormBuilder] ${message}`);
|
|
1850
1858
|
}
|
|
1851
1859
|
}, [isDev]);
|
|
1860
|
+
useEffect2(() => {
|
|
1861
|
+
if (!isMultiStep || !submitAlign) return;
|
|
1862
|
+
warnConfig("submitAlign is ignored when steps are provided. Use renderButtons for custom multi-step button layout.");
|
|
1863
|
+
}, [isMultiStep, submitAlign, warnConfig]);
|
|
1852
1864
|
const replaceErrors = useCallback2(
|
|
1853
1865
|
(nextErrors) => {
|
|
1854
1866
|
if (controlledErrors == null) setInternalErrors(nextErrors);
|
|
@@ -3451,6 +3463,7 @@ var FormBuilder = forwardRef(function FormBuilder2(props, ref) {
|
|
|
3451
3463
|
if (submitPosition === "none" || formReadOnly) return null;
|
|
3452
3464
|
const isLastStep = !isMultiStep || currentStep === steps.length - 1;
|
|
3453
3465
|
const isFirstStep = !isMultiStep || currentStep === 0;
|
|
3466
|
+
const singleStepJustify = submitAlign || (showCancel ? "between" : "start");
|
|
3454
3467
|
const buttonContext = {
|
|
3455
3468
|
isMultiStep,
|
|
3456
3469
|
isFirstStep,
|
|
@@ -3485,7 +3498,7 @@ var FormBuilder = forwardRef(function FormBuilder2(props, ref) {
|
|
|
3485
3498
|
submitButtonLabel
|
|
3486
3499
|
) : /* @__PURE__ */ React2.createElement(Button2, { variant: "primary", onClick: handleNext, disabled }, nextButtonLabel)));
|
|
3487
3500
|
}
|
|
3488
|
-
return /* @__PURE__ */ React2.createElement(Flex2, { direction: "row", justify:
|
|
3501
|
+
return /* @__PURE__ */ React2.createElement(Flex2, { direction: "row", justify: singleStepJustify, gap: "sm" }, showCancel && /* @__PURE__ */ React2.createElement(Button2, { variant: "secondary", onClick: onCancel, disabled }, cancelButtonLabel), /* @__PURE__ */ React2.createElement(
|
|
3489
3502
|
LoadingButton,
|
|
3490
3503
|
{
|
|
3491
3504
|
variant: submitVariant,
|
|
@@ -5030,6 +5043,7 @@ var SUCCESS_MATCHERS = [
|
|
|
5030
5043
|
"complete",
|
|
5031
5044
|
"completed",
|
|
5032
5045
|
"approved",
|
|
5046
|
+
"accepted",
|
|
5033
5047
|
"won",
|
|
5034
5048
|
"healthy",
|
|
5035
5049
|
"enabled",
|
|
@@ -5039,23 +5053,46 @@ var SUCCESS_MATCHERS = [
|
|
|
5039
5053
|
"published",
|
|
5040
5054
|
"available",
|
|
5041
5055
|
"synced",
|
|
5042
|
-
"resolved"
|
|
5056
|
+
"resolved",
|
|
5057
|
+
"replied",
|
|
5058
|
+
"responded",
|
|
5059
|
+
"confirmed",
|
|
5060
|
+
"verified",
|
|
5061
|
+
"validated",
|
|
5062
|
+
"deployed",
|
|
5063
|
+
"running",
|
|
5064
|
+
"restored",
|
|
5065
|
+
"recovered",
|
|
5066
|
+
"cleared"
|
|
5043
5067
|
];
|
|
5044
5068
|
var WARNING_MATCHERS = [
|
|
5045
5069
|
"warning",
|
|
5046
5070
|
"at risk",
|
|
5047
5071
|
"risky",
|
|
5048
5072
|
"pending",
|
|
5073
|
+
"waiting",
|
|
5049
5074
|
"paused",
|
|
5050
5075
|
"pause",
|
|
5051
5076
|
"on hold",
|
|
5052
5077
|
"hold",
|
|
5053
5078
|
"review",
|
|
5079
|
+
"attention",
|
|
5054
5080
|
"expiring",
|
|
5055
5081
|
"trial",
|
|
5056
5082
|
"in progress",
|
|
5057
5083
|
"awaiting",
|
|
5058
|
-
"scheduled"
|
|
5084
|
+
"scheduled",
|
|
5085
|
+
"negotiation",
|
|
5086
|
+
"stalled",
|
|
5087
|
+
"stuck",
|
|
5088
|
+
"recovering",
|
|
5089
|
+
"urgent",
|
|
5090
|
+
"escalated",
|
|
5091
|
+
"reopened",
|
|
5092
|
+
"degraded",
|
|
5093
|
+
"retrying",
|
|
5094
|
+
"limited",
|
|
5095
|
+
"partial"
|
|
5059
5096
|
];
|
|
5060
5097
|
var DANGER_MATCHERS = [
|
|
5061
5098
|
"danger",
|
|
@@ -5067,6 +5104,9 @@ var DANGER_MATCHERS = [
|
|
|
5067
5104
|
"blocked",
|
|
5068
5105
|
"cancelled",
|
|
5069
5106
|
"canceled",
|
|
5107
|
+
"deactivated",
|
|
5108
|
+
"suspended",
|
|
5109
|
+
"terminated",
|
|
5070
5110
|
"rejected",
|
|
5071
5111
|
"denied",
|
|
5072
5112
|
"churned",
|
|
@@ -5074,6 +5114,10 @@ var DANGER_MATCHERS = [
|
|
|
5074
5114
|
"overdue",
|
|
5075
5115
|
"expired",
|
|
5076
5116
|
"offline",
|
|
5117
|
+
"disconnected",
|
|
5118
|
+
"invalid",
|
|
5119
|
+
"unhealthy",
|
|
5120
|
+
"unsynced",
|
|
5077
5121
|
"deleted",
|
|
5078
5122
|
"archived",
|
|
5079
5123
|
"unpaid"
|
|
@@ -5081,12 +5125,23 @@ var DANGER_MATCHERS = [
|
|
|
5081
5125
|
var INFO_MATCHERS = [
|
|
5082
5126
|
"info",
|
|
5083
5127
|
"new",
|
|
5128
|
+
"not started",
|
|
5129
|
+
"todo",
|
|
5130
|
+
"to do",
|
|
5131
|
+
"backlog",
|
|
5132
|
+
"qualified",
|
|
5133
|
+
"proposal",
|
|
5134
|
+
"contacted",
|
|
5135
|
+
"attempted",
|
|
5084
5136
|
"queued",
|
|
5085
5137
|
"processing",
|
|
5086
5138
|
"progress",
|
|
5087
5139
|
"upcoming",
|
|
5088
5140
|
"draft",
|
|
5089
|
-
"open"
|
|
5141
|
+
"open",
|
|
5142
|
+
"ready",
|
|
5143
|
+
"deferred",
|
|
5144
|
+
"postponed"
|
|
5090
5145
|
];
|
|
5091
5146
|
var normalizeTagValue = (value) => {
|
|
5092
5147
|
if (value == null) return "";
|
|
@@ -5387,7 +5442,7 @@ var KeyValueList = ({ items = [], direction = "row", gap = "sm" }) => {
|
|
|
5387
5442
|
|
|
5388
5443
|
// src/common-components/SectionHeader.js
|
|
5389
5444
|
import React10 from "react";
|
|
5390
|
-
import { Flex as Flex6, Heading, Text as Text5 } from "@hubspot/ui-extensions";
|
|
5445
|
+
import { Flex as Flex6, Heading as Heading2, Text as Text5 } from "@hubspot/ui-extensions";
|
|
5391
5446
|
var SectionHeader = ({
|
|
5392
5447
|
title,
|
|
5393
5448
|
description,
|
|
@@ -5398,7 +5453,7 @@ var SectionHeader = ({
|
|
|
5398
5453
|
}) => {
|
|
5399
5454
|
const body = [];
|
|
5400
5455
|
if (title != null) {
|
|
5401
|
-
body.push(React10.createElement(
|
|
5456
|
+
body.push(React10.createElement(Heading2, { key: "title", as: titleAs }, title));
|
|
5402
5457
|
}
|
|
5403
5458
|
if (description != null) {
|
|
5404
5459
|
body.push(
|
package/dist/utils.js
CHANGED
|
@@ -140,6 +140,7 @@ var SUCCESS_MATCHERS = [
|
|
|
140
140
|
"complete",
|
|
141
141
|
"completed",
|
|
142
142
|
"approved",
|
|
143
|
+
"accepted",
|
|
143
144
|
"won",
|
|
144
145
|
"healthy",
|
|
145
146
|
"enabled",
|
|
@@ -149,23 +150,46 @@ var SUCCESS_MATCHERS = [
|
|
|
149
150
|
"published",
|
|
150
151
|
"available",
|
|
151
152
|
"synced",
|
|
152
|
-
"resolved"
|
|
153
|
+
"resolved",
|
|
154
|
+
"replied",
|
|
155
|
+
"responded",
|
|
156
|
+
"confirmed",
|
|
157
|
+
"verified",
|
|
158
|
+
"validated",
|
|
159
|
+
"deployed",
|
|
160
|
+
"running",
|
|
161
|
+
"restored",
|
|
162
|
+
"recovered",
|
|
163
|
+
"cleared"
|
|
153
164
|
];
|
|
154
165
|
var WARNING_MATCHERS = [
|
|
155
166
|
"warning",
|
|
156
167
|
"at risk",
|
|
157
168
|
"risky",
|
|
158
169
|
"pending",
|
|
170
|
+
"waiting",
|
|
159
171
|
"paused",
|
|
160
172
|
"pause",
|
|
161
173
|
"on hold",
|
|
162
174
|
"hold",
|
|
163
175
|
"review",
|
|
176
|
+
"attention",
|
|
164
177
|
"expiring",
|
|
165
178
|
"trial",
|
|
166
179
|
"in progress",
|
|
167
180
|
"awaiting",
|
|
168
|
-
"scheduled"
|
|
181
|
+
"scheduled",
|
|
182
|
+
"negotiation",
|
|
183
|
+
"stalled",
|
|
184
|
+
"stuck",
|
|
185
|
+
"recovering",
|
|
186
|
+
"urgent",
|
|
187
|
+
"escalated",
|
|
188
|
+
"reopened",
|
|
189
|
+
"degraded",
|
|
190
|
+
"retrying",
|
|
191
|
+
"limited",
|
|
192
|
+
"partial"
|
|
169
193
|
];
|
|
170
194
|
var DANGER_MATCHERS = [
|
|
171
195
|
"danger",
|
|
@@ -177,6 +201,9 @@ var DANGER_MATCHERS = [
|
|
|
177
201
|
"blocked",
|
|
178
202
|
"cancelled",
|
|
179
203
|
"canceled",
|
|
204
|
+
"deactivated",
|
|
205
|
+
"suspended",
|
|
206
|
+
"terminated",
|
|
180
207
|
"rejected",
|
|
181
208
|
"denied",
|
|
182
209
|
"churned",
|
|
@@ -184,6 +211,10 @@ var DANGER_MATCHERS = [
|
|
|
184
211
|
"overdue",
|
|
185
212
|
"expired",
|
|
186
213
|
"offline",
|
|
214
|
+
"disconnected",
|
|
215
|
+
"invalid",
|
|
216
|
+
"unhealthy",
|
|
217
|
+
"unsynced",
|
|
187
218
|
"deleted",
|
|
188
219
|
"archived",
|
|
189
220
|
"unpaid"
|
|
@@ -191,12 +222,23 @@ var DANGER_MATCHERS = [
|
|
|
191
222
|
var INFO_MATCHERS = [
|
|
192
223
|
"info",
|
|
193
224
|
"new",
|
|
225
|
+
"not started",
|
|
226
|
+
"todo",
|
|
227
|
+
"to do",
|
|
228
|
+
"backlog",
|
|
229
|
+
"qualified",
|
|
230
|
+
"proposal",
|
|
231
|
+
"contacted",
|
|
232
|
+
"attempted",
|
|
194
233
|
"queued",
|
|
195
234
|
"processing",
|
|
196
235
|
"progress",
|
|
197
236
|
"upcoming",
|
|
198
237
|
"draft",
|
|
199
|
-
"open"
|
|
238
|
+
"open",
|
|
239
|
+
"ready",
|
|
240
|
+
"deferred",
|
|
241
|
+
"postponed"
|
|
200
242
|
];
|
|
201
243
|
var normalizeTagValue = (value) => {
|
|
202
244
|
if (value == null) return "";
|
package/dist/utils.mjs
CHANGED
|
@@ -100,6 +100,7 @@ var SUCCESS_MATCHERS = [
|
|
|
100
100
|
"complete",
|
|
101
101
|
"completed",
|
|
102
102
|
"approved",
|
|
103
|
+
"accepted",
|
|
103
104
|
"won",
|
|
104
105
|
"healthy",
|
|
105
106
|
"enabled",
|
|
@@ -109,23 +110,46 @@ var SUCCESS_MATCHERS = [
|
|
|
109
110
|
"published",
|
|
110
111
|
"available",
|
|
111
112
|
"synced",
|
|
112
|
-
"resolved"
|
|
113
|
+
"resolved",
|
|
114
|
+
"replied",
|
|
115
|
+
"responded",
|
|
116
|
+
"confirmed",
|
|
117
|
+
"verified",
|
|
118
|
+
"validated",
|
|
119
|
+
"deployed",
|
|
120
|
+
"running",
|
|
121
|
+
"restored",
|
|
122
|
+
"recovered",
|
|
123
|
+
"cleared"
|
|
113
124
|
];
|
|
114
125
|
var WARNING_MATCHERS = [
|
|
115
126
|
"warning",
|
|
116
127
|
"at risk",
|
|
117
128
|
"risky",
|
|
118
129
|
"pending",
|
|
130
|
+
"waiting",
|
|
119
131
|
"paused",
|
|
120
132
|
"pause",
|
|
121
133
|
"on hold",
|
|
122
134
|
"hold",
|
|
123
135
|
"review",
|
|
136
|
+
"attention",
|
|
124
137
|
"expiring",
|
|
125
138
|
"trial",
|
|
126
139
|
"in progress",
|
|
127
140
|
"awaiting",
|
|
128
|
-
"scheduled"
|
|
141
|
+
"scheduled",
|
|
142
|
+
"negotiation",
|
|
143
|
+
"stalled",
|
|
144
|
+
"stuck",
|
|
145
|
+
"recovering",
|
|
146
|
+
"urgent",
|
|
147
|
+
"escalated",
|
|
148
|
+
"reopened",
|
|
149
|
+
"degraded",
|
|
150
|
+
"retrying",
|
|
151
|
+
"limited",
|
|
152
|
+
"partial"
|
|
129
153
|
];
|
|
130
154
|
var DANGER_MATCHERS = [
|
|
131
155
|
"danger",
|
|
@@ -137,6 +161,9 @@ var DANGER_MATCHERS = [
|
|
|
137
161
|
"blocked",
|
|
138
162
|
"cancelled",
|
|
139
163
|
"canceled",
|
|
164
|
+
"deactivated",
|
|
165
|
+
"suspended",
|
|
166
|
+
"terminated",
|
|
140
167
|
"rejected",
|
|
141
168
|
"denied",
|
|
142
169
|
"churned",
|
|
@@ -144,6 +171,10 @@ var DANGER_MATCHERS = [
|
|
|
144
171
|
"overdue",
|
|
145
172
|
"expired",
|
|
146
173
|
"offline",
|
|
174
|
+
"disconnected",
|
|
175
|
+
"invalid",
|
|
176
|
+
"unhealthy",
|
|
177
|
+
"unsynced",
|
|
147
178
|
"deleted",
|
|
148
179
|
"archived",
|
|
149
180
|
"unpaid"
|
|
@@ -151,12 +182,23 @@ var DANGER_MATCHERS = [
|
|
|
151
182
|
var INFO_MATCHERS = [
|
|
152
183
|
"info",
|
|
153
184
|
"new",
|
|
185
|
+
"not started",
|
|
186
|
+
"todo",
|
|
187
|
+
"to do",
|
|
188
|
+
"backlog",
|
|
189
|
+
"qualified",
|
|
190
|
+
"proposal",
|
|
191
|
+
"contacted",
|
|
192
|
+
"attempted",
|
|
154
193
|
"queued",
|
|
155
194
|
"processing",
|
|
156
195
|
"progress",
|
|
157
196
|
"upcoming",
|
|
158
197
|
"draft",
|
|
159
|
-
"open"
|
|
198
|
+
"open",
|
|
199
|
+
"ready",
|
|
200
|
+
"deferred",
|
|
201
|
+
"postponed"
|
|
160
202
|
];
|
|
161
203
|
var normalizeTagValue = (value) => {
|
|
162
204
|
if (value == null) return "";
|
package/form.d.ts
CHANGED
package/index.d.ts
CHANGED