@keboola/design 5.0.0 → 6.0.0
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/AGENTS.md +1 -1
- package/COMPONENT-API.md +145 -103
- package/dist/editors.cjs +5 -5
- package/dist/editors.cjs.map +1 -1
- package/dist/editors.js +5 -5
- package/dist/editors.js.map +1 -1
- package/dist/index.cjs +439 -227
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +675 -477
- package/dist/index.d.ts +675 -477
- package/dist/index.js +440 -227
- package/dist/index.js.map +1 -1
- package/dist/markdown-editor.cjs +61 -28
- package/dist/markdown-editor.cjs.map +1 -1
- package/dist/markdown-editor.js +61 -28
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.cjs +4 -3
- package/dist/mermaid.cjs.map +1 -1
- package/dist/mermaid.js +4 -3
- package/dist/mermaid.js.map +1 -1
- package/dist/rjsf.cjs +61 -29
- package/dist/rjsf.cjs.map +1 -1
- package/dist/rjsf.js +61 -29
- package/dist/rjsf.js.map +1 -1
- package/dist/styles.css +3 -3
- package/dist/testing.cjs +5 -0
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.js +5 -0
- package/dist/testing.js.map +1 -1
- package/package.json +7 -6
- package/src/styles.css +12 -2
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Slot, Root as Root$1, Slottable } from '@radix-ui/react-slot';
|
|
2
2
|
export { Slot } from '@radix-ui/react-slot';
|
|
3
3
|
import * as lucide_react_star from 'lucide-react';
|
|
4
|
-
import React26, { createContext, forwardRef, useMemo, useRef, useEffect, useImperativeHandle, Fragment,
|
|
4
|
+
import React26, { createContext, forwardRef, useMemo, useRef, useEffect, use, useImperativeHandle, Fragment, useState, useReducer, useCallback, useId, useLayoutEffect, Children, useContext, useInsertionEffect, isValidElement } from 'react';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { extendTailwindMerge } from 'tailwind-merge';
|
|
7
7
|
import { Root as Root$6, Trigger, Portal, Content, Provider } from '@radix-ui/react-tooltip';
|
|
@@ -1438,11 +1438,12 @@ var variants = cva(
|
|
|
1438
1438
|
"tw-items-center",
|
|
1439
1439
|
"tw-justify-center",
|
|
1440
1440
|
"tw-gap-2",
|
|
1441
|
-
// text
|
|
1441
|
+
// text — chrome weight/tracking are brand-overridable tokens
|
|
1442
|
+
// (`--font-weight-medium` / `--letter-spacing-chrome`); casing stays `tw-uppercase`.
|
|
1442
1443
|
"tw-text-xs",
|
|
1443
1444
|
"tw-leading-5",
|
|
1444
1445
|
"tw-font-medium",
|
|
1445
|
-
"tw-tracking-
|
|
1446
|
+
"tw-tracking-chrome",
|
|
1446
1447
|
"tw-uppercase",
|
|
1447
1448
|
// border — legacy (non-argo) chrome uses a fixed radius, not the brand token.
|
|
1448
1449
|
"tw-rounded",
|
|
@@ -9011,11 +9012,23 @@ var inputGroupVariants = cva(
|
|
|
9011
9012
|
off: ["has-[:is(input,textarea):focus]:!tw-ring-0"]
|
|
9012
9013
|
},
|
|
9013
9014
|
variant: {
|
|
9014
|
-
primary: [
|
|
9015
|
+
primary: [
|
|
9016
|
+
"tw-bg-white",
|
|
9017
|
+
"has-[:is(input,textarea):disabled]:tw-opacity-40",
|
|
9018
|
+
// aria-invalid on the control surfaces the error chrome without a `state` prop — the
|
|
9019
|
+
// accessible path (mirrors the `state="error"` legacy tokens). Higher specificity than
|
|
9020
|
+
// the default focus selector, so it wins without `!important`.
|
|
9021
|
+
"has-[:is(input,textarea)[aria-invalid=true]]:tw-border-error-500",
|
|
9022
|
+
"has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-error-500",
|
|
9023
|
+
"has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-error-200"
|
|
9024
|
+
],
|
|
9015
9025
|
secondary: [
|
|
9016
9026
|
"tw-bg-neutral-100",
|
|
9017
9027
|
"tw-border-neutral-100",
|
|
9018
|
-
"has-[:is(input,textarea):disabled]:tw-opacity-40"
|
|
9028
|
+
"has-[:is(input,textarea):disabled]:tw-opacity-40",
|
|
9029
|
+
"has-[:is(input,textarea)[aria-invalid=true]]:tw-border-error-500",
|
|
9030
|
+
"has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-error-500",
|
|
9031
|
+
"has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-error-200"
|
|
9019
9032
|
],
|
|
9020
9033
|
argo: [
|
|
9021
9034
|
// argo follows the brand radius token (overrides the static base)
|
|
@@ -9026,7 +9039,12 @@ var inputGroupVariants = cva(
|
|
|
9026
9039
|
"tw-text-foreground",
|
|
9027
9040
|
"has-[:is(input,textarea):disabled]:tw-opacity-50",
|
|
9028
9041
|
// higher specificity than has-[:is(input,textarea):focus] — prevents focus border on readonly
|
|
9029
|
-
"has-[:is(input,textarea)[readonly]:focus]:tw-border-neutral-150"
|
|
9042
|
+
"has-[:is(input,textarea)[readonly]:focus]:tw-border-neutral-150",
|
|
9043
|
+
// aria-invalid on the control surfaces the error chrome without a `state` prop — the
|
|
9044
|
+
// accessible path (uses the themeable `destructive` status token).
|
|
9045
|
+
"has-[:is(input,textarea)[aria-invalid=true]]:tw-border-destructive",
|
|
9046
|
+
"has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-border-destructive",
|
|
9047
|
+
"has-[:is(input,textarea)[aria-invalid=true]:focus]:tw-ring-destructive/20"
|
|
9030
9048
|
]
|
|
9031
9049
|
},
|
|
9032
9050
|
sizing: {
|
|
@@ -9981,23 +9999,23 @@ var TimePicker = ({
|
|
|
9981
9999
|
)
|
|
9982
10000
|
] });
|
|
9983
10001
|
};
|
|
9984
|
-
var Optional = ({ className }) => /* @__PURE__ */ jsx("span", { className: cn("tw-text-muted-foreground", className), children: "(optional)" });
|
|
9985
|
-
var
|
|
9986
|
-
|
|
9987
|
-
|
|
9988
|
-
|
|
9989
|
-
|
|
9990
|
-
|
|
9991
|
-
|
|
9992
|
-
|
|
9993
|
-
|
|
9994
|
-
|
|
9995
|
-
|
|
9996
|
-
|
|
9997
|
-
|
|
9998
|
-
|
|
9999
|
-
};
|
|
10002
|
+
var Optional = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-muted-foreground", className), children: "(optional)" });
|
|
10003
|
+
var Required = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, "aria-hidden": true, className: cn("tw-ml-0.5", "tw-text-primary", className), children: "*" });
|
|
10004
|
+
var Label2 = ({ className, children, id, htmlFor, ...rest }) => /* @__PURE__ */ jsx(
|
|
10005
|
+
RLabel.Root,
|
|
10006
|
+
{
|
|
10007
|
+
...rest,
|
|
10008
|
+
id: id?.toString(),
|
|
10009
|
+
htmlFor: htmlFor?.toString(),
|
|
10010
|
+
className: cn(
|
|
10011
|
+
"tw-m-0 tw-text-foreground tw-font-normal peer-disabled:tw-opacity-50",
|
|
10012
|
+
className
|
|
10013
|
+
),
|
|
10014
|
+
children
|
|
10015
|
+
}
|
|
10016
|
+
);
|
|
10000
10017
|
Label2.Optional = Optional;
|
|
10018
|
+
Label2.Required = Required;
|
|
10001
10019
|
var FieldBoxDescription = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
10002
10020
|
"span",
|
|
10003
10021
|
{
|
|
@@ -11185,12 +11203,29 @@ var variants4 = cva(
|
|
|
11185
11203
|
],
|
|
11186
11204
|
variants: {
|
|
11187
11205
|
variant: {
|
|
11188
|
-
primary: [
|
|
11206
|
+
primary: [
|
|
11207
|
+
"tw-bg-white",
|
|
11208
|
+
"disabled:tw-opacity-40",
|
|
11209
|
+
"aria-disabled:tw-opacity-40",
|
|
11210
|
+
// aria-invalid on the trigger surfaces the error chrome without a `state` prop — the
|
|
11211
|
+
// accessible path (mirrors the `state="error"` legacy tokens). The extra attribute
|
|
11212
|
+
// selector outranks the default focus/open state, so it wins without `!important`.
|
|
11213
|
+
"aria-[invalid=true]:tw-border-error-500",
|
|
11214
|
+
"aria-[invalid=true]:focus:tw-border-error-500",
|
|
11215
|
+
"aria-[invalid=true]:focus:tw-ring-error-200",
|
|
11216
|
+
"aria-[invalid=true]:data-[state=open]:tw-border-error-500",
|
|
11217
|
+
"aria-[invalid=true]:data-[state=open]:tw-ring-error-200"
|
|
11218
|
+
],
|
|
11189
11219
|
secondary: [
|
|
11190
11220
|
"tw-bg-neutral-100",
|
|
11191
11221
|
"tw-border-neutral-100",
|
|
11192
11222
|
"disabled:tw-opacity-40",
|
|
11193
|
-
"aria-disabled:tw-opacity-40"
|
|
11223
|
+
"aria-disabled:tw-opacity-40",
|
|
11224
|
+
"aria-[invalid=true]:tw-border-error-500",
|
|
11225
|
+
"aria-[invalid=true]:focus:tw-border-error-500",
|
|
11226
|
+
"aria-[invalid=true]:focus:tw-ring-error-200",
|
|
11227
|
+
"aria-[invalid=true]:data-[state=open]:tw-border-error-500",
|
|
11228
|
+
"aria-[invalid=true]:data-[state=open]:tw-ring-error-200"
|
|
11194
11229
|
],
|
|
11195
11230
|
argo: [
|
|
11196
11231
|
// muted filled input surface — gray, distinct from white containers; not the app-background token
|
|
@@ -11200,7 +11235,14 @@ var variants4 = cva(
|
|
|
11200
11235
|
"tw-rounded-[var(--radius-lg,0.25rem)]",
|
|
11201
11236
|
"tw-text-foreground",
|
|
11202
11237
|
"disabled:tw-opacity-50",
|
|
11203
|
-
"aria-disabled:tw-opacity-50"
|
|
11238
|
+
"aria-disabled:tw-opacity-50",
|
|
11239
|
+
// aria-invalid on the trigger surfaces the error chrome without a `state` prop — the
|
|
11240
|
+
// accessible path (uses the themeable `destructive` status token).
|
|
11241
|
+
"aria-[invalid=true]:tw-border-destructive",
|
|
11242
|
+
"aria-[invalid=true]:focus:tw-border-destructive",
|
|
11243
|
+
"aria-[invalid=true]:focus:tw-ring-destructive/20",
|
|
11244
|
+
"aria-[invalid=true]:data-[state=open]:tw-border-destructive",
|
|
11245
|
+
"aria-[invalid=true]:data-[state=open]:tw-ring-destructive/20"
|
|
11204
11246
|
]
|
|
11205
11247
|
},
|
|
11206
11248
|
sizing: {
|
|
@@ -11252,7 +11294,7 @@ var SelectTrigger = ({
|
|
|
11252
11294
|
...props,
|
|
11253
11295
|
children: [
|
|
11254
11296
|
/* @__PURE__ */ jsx(SelectPrimitive.Value, { placeholder }),
|
|
11255
|
-
/* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(icons_exports.ChevronDown, { className: "tw-size-
|
|
11297
|
+
/* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(icons_exports.ChevronDown, { className: "tw-size-4 tw-text-muted-foreground" }) })
|
|
11256
11298
|
]
|
|
11257
11299
|
}
|
|
11258
11300
|
);
|
|
@@ -11577,12 +11619,14 @@ var badgeRootVariants = cva(
|
|
|
11577
11619
|
"tw-h-fit",
|
|
11578
11620
|
"tw-shrink-0",
|
|
11579
11621
|
"tw-overflow-hidden",
|
|
11580
|
-
// text
|
|
11622
|
+
// text — chrome weight/tracking are brand-overridable tokens
|
|
11623
|
+
// (`--font-weight-medium` / `--letter-spacing-chrome`); casing lives on the
|
|
11624
|
+
// `default` variant below via `tw-uppercase`.
|
|
11581
11625
|
"tw-whitespace-pre-wrap",
|
|
11582
11626
|
"tw-break-normal",
|
|
11583
11627
|
"tw-text-xs",
|
|
11584
11628
|
"tw-font-medium",
|
|
11585
|
-
"tw-tracking-
|
|
11629
|
+
"tw-tracking-chrome",
|
|
11586
11630
|
"tw-text-center",
|
|
11587
11631
|
"tw-underline",
|
|
11588
11632
|
// content
|
|
@@ -13029,18 +13073,12 @@ var TimeInput = ({
|
|
|
13029
13073
|
}
|
|
13030
13074
|
);
|
|
13031
13075
|
};
|
|
13032
|
-
var
|
|
13033
|
-
sizing: "md",
|
|
13034
|
-
state: "default"
|
|
13035
|
-
});
|
|
13036
|
-
var useInputOtpVariant = () => use(InputOtpVariantContext);
|
|
13037
|
-
var useInputOtpRenderContext = () => use(OTPInputContext);
|
|
13038
|
-
var InputOtpGroup = ({
|
|
13076
|
+
var OtpInputGroup = ({
|
|
13039
13077
|
ref,
|
|
13040
13078
|
className,
|
|
13041
13079
|
...props
|
|
13042
13080
|
}) => /* @__PURE__ */ jsx("div", { ref, className: cn("tw-flex tw-items-center tw-gap-2", className), ...props });
|
|
13043
|
-
var
|
|
13081
|
+
var OtpInputSeparator = ({
|
|
13044
13082
|
ref,
|
|
13045
13083
|
children,
|
|
13046
13084
|
className,
|
|
@@ -13056,61 +13094,46 @@ var InputOtpSeparator = ({
|
|
|
13056
13094
|
children: children ?? /* @__PURE__ */ jsx(icons_exports.Minus, { className: "tw-size-4" })
|
|
13057
13095
|
}
|
|
13058
13096
|
);
|
|
13059
|
-
var
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
|
|
13068
|
-
|
|
13069
|
-
|
|
13070
|
-
|
|
13071
|
-
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
13075
|
-
|
|
13076
|
-
|
|
13077
|
-
|
|
13078
|
-
|
|
13079
|
-
|
|
13080
|
-
],
|
|
13081
|
-
|
|
13082
|
-
|
|
13083
|
-
|
|
13084
|
-
|
|
13085
|
-
|
|
13086
|
-
|
|
13087
|
-
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
|
|
13091
|
-
|
|
13092
|
-
// `!` forces the border colour over the base `tw-border-input` once tailwind-merge dedupes.
|
|
13093
|
-
// Matches the pattern InputGroup uses for its argo error state.
|
|
13094
|
-
state: {
|
|
13095
|
-
default: [],
|
|
13096
|
-
error: [
|
|
13097
|
-
"!tw-border-destructive",
|
|
13098
|
-
"tw-bg-destructive/5",
|
|
13099
|
-
"data-[active=true]:!tw-border-destructive",
|
|
13100
|
-
"data-[active=true]:tw-ring-destructive/40"
|
|
13101
|
-
]
|
|
13102
|
-
}
|
|
13103
|
-
}
|
|
13104
|
-
}
|
|
13105
|
-
);
|
|
13106
|
-
var InputOtpSlot = ({
|
|
13097
|
+
var slotClassName = [
|
|
13098
|
+
// layout
|
|
13099
|
+
"tw-relative",
|
|
13100
|
+
"tw-flex",
|
|
13101
|
+
"tw-items-center",
|
|
13102
|
+
"tw-justify-center",
|
|
13103
|
+
"tw-font-medium",
|
|
13104
|
+
"tw-tabular-nums",
|
|
13105
|
+
"tw-outline-none",
|
|
13106
|
+
"tw-transition",
|
|
13107
|
+
// resting chrome — always-visible input border on a muted fill (matches InputGroup)
|
|
13108
|
+
"tw-border",
|
|
13109
|
+
"tw-border-solid",
|
|
13110
|
+
"tw-border-input",
|
|
13111
|
+
"tw-bg-muted",
|
|
13112
|
+
"tw-text-foreground",
|
|
13113
|
+
"tw-rounded-[var(--radius-lg,0.25rem)]",
|
|
13114
|
+
// focus — the active slot mirrors InputGroup's argo focus ring; z-10 so the ring isn't clipped
|
|
13115
|
+
"data-[active=true]:tw-z-10",
|
|
13116
|
+
"data-[active=true]:tw-border-primary",
|
|
13117
|
+
"data-[active=true]:tw-ring-4",
|
|
13118
|
+
"data-[active=true]:tw-ring-ring/50",
|
|
13119
|
+
// size — from `data-size` on the group/otp container
|
|
13120
|
+
"group-data-[size=sm]/otp:tw-h-8 group-data-[size=sm]/otp:tw-w-8 group-data-[size=sm]/otp:tw-text-sm",
|
|
13121
|
+
"group-data-[size=md]/otp:tw-h-9 group-data-[size=md]/otp:tw-w-9 group-data-[size=md]/otp:tw-text-base",
|
|
13122
|
+
"group-data-[size=lg]/otp:tw-h-10 group-data-[size=lg]/otp:tw-w-10 group-data-[size=lg]/otp:tw-text-lg",
|
|
13123
|
+
// error — from `aria-invalid` on the OTP input (mirrors InputGroup argo error chrome). `!` beats
|
|
13124
|
+
// the base/active border once tailwind-merge dedupes.
|
|
13125
|
+
"group-has-[input[aria-invalid=true]]/otp:!tw-border-destructive",
|
|
13126
|
+
"group-has-[input[aria-invalid=true]]/otp:data-[active=true]:!tw-border-destructive",
|
|
13127
|
+
"group-has-[input[aria-invalid=true]]/otp:data-[active=true]:tw-ring-destructive/20"
|
|
13128
|
+
];
|
|
13129
|
+
var OtpInputSlot = ({
|
|
13107
13130
|
ref,
|
|
13108
13131
|
index,
|
|
13109
13132
|
className,
|
|
13110
13133
|
...props
|
|
13111
13134
|
}) => {
|
|
13112
|
-
const { slots } =
|
|
13113
|
-
|
|
13135
|
+
const { slots } = use(OTPInputContext);
|
|
13136
|
+
if (!slots) throw new Error("<OtpInput.Slot> must be rendered inside <OtpInput>.");
|
|
13114
13137
|
const slot = slots[index];
|
|
13115
13138
|
const char = slot?.char ?? null;
|
|
13116
13139
|
const isActive = slot?.isActive ?? false;
|
|
@@ -13121,7 +13144,7 @@ var InputOtpSlot = ({
|
|
|
13121
13144
|
ref,
|
|
13122
13145
|
"data-active": isActive || void 0,
|
|
13123
13146
|
"data-slot-index": index,
|
|
13124
|
-
className: cn(
|
|
13147
|
+
className: cn(slotClassName, className),
|
|
13125
13148
|
...props,
|
|
13126
13149
|
children: [
|
|
13127
13150
|
char,
|
|
@@ -13140,19 +13163,19 @@ var InputOtpSlot = ({
|
|
|
13140
13163
|
var Root23 = ({
|
|
13141
13164
|
ref,
|
|
13142
13165
|
sizing = "md",
|
|
13143
|
-
state = "default",
|
|
13144
13166
|
pattern = REGEXP_ONLY_DIGITS,
|
|
13145
13167
|
containerClassName,
|
|
13146
13168
|
className,
|
|
13147
13169
|
children,
|
|
13170
|
+
"aria-invalid": ariaInvalid,
|
|
13148
13171
|
...rest
|
|
13149
|
-
}) => /* @__PURE__ */ jsx(
|
|
13172
|
+
}) => /* @__PURE__ */ jsx("div", { className: "tw-group/otp tw-w-fit", "data-size": sizing, children: /* @__PURE__ */ jsx(
|
|
13150
13173
|
OTPInput,
|
|
13151
13174
|
{
|
|
13152
13175
|
...rest,
|
|
13153
13176
|
ref,
|
|
13154
13177
|
pattern,
|
|
13155
|
-
"aria-invalid":
|
|
13178
|
+
"aria-invalid": ariaInvalid,
|
|
13156
13179
|
containerClassName: cn(
|
|
13157
13180
|
"tw-flex tw-items-center tw-gap-2 has-[:disabled]:tw-opacity-50",
|
|
13158
13181
|
containerClassName
|
|
@@ -13161,20 +13184,11 @@ var Root23 = ({
|
|
|
13161
13184
|
children
|
|
13162
13185
|
}
|
|
13163
13186
|
) });
|
|
13164
|
-
var
|
|
13165
|
-
Group:
|
|
13166
|
-
Slot:
|
|
13167
|
-
Separator:
|
|
13187
|
+
var OtpInput = Object.assign(Root23, {
|
|
13188
|
+
Group: OtpInputGroup,
|
|
13189
|
+
Slot: OtpInputSlot,
|
|
13190
|
+
Separator: OtpInputSeparator
|
|
13168
13191
|
});
|
|
13169
|
-
|
|
13170
|
-
// src/blocks/InputOtp/index.ts
|
|
13171
|
-
var useInputOtpContext = () => {
|
|
13172
|
-
const ctx = use(OTPInputContext);
|
|
13173
|
-
if (!ctx.slots) {
|
|
13174
|
-
throw new Error("useInputOtpContext must be used inside <InputOtp>.");
|
|
13175
|
-
}
|
|
13176
|
-
return ctx;
|
|
13177
|
-
};
|
|
13178
13192
|
var SearchInput = ({
|
|
13179
13193
|
ref,
|
|
13180
13194
|
// group props
|
|
@@ -15148,6 +15162,18 @@ var FormGroupColorInput = ({
|
|
|
15148
15162
|
const { state } = useFormGroupContext();
|
|
15149
15163
|
return /* @__PURE__ */ jsx(ColorInput, { state, ...props, ref });
|
|
15150
15164
|
};
|
|
15165
|
+
var toMessage = (entry) => typeof entry === "string" ? entry : entry?.message;
|
|
15166
|
+
var FormGroupError = ({ children, className, errors, ...rest }) => {
|
|
15167
|
+
const content = useMemo(() => {
|
|
15168
|
+
if (children) return children;
|
|
15169
|
+
const messages = (errors ?? []).map(toMessage).filter((message2) => !!message2);
|
|
15170
|
+
if (messages.length === 0) return null;
|
|
15171
|
+
if (messages.length === 1) return messages[0];
|
|
15172
|
+
return /* @__PURE__ */ jsx("ul", { className: "tw-m-0 tw-flex tw-list-disc tw-flex-col tw-gap-0 tw-pl-4", children: messages.map((message2, index) => /* @__PURE__ */ jsx("li", { children: message2 }, index)) });
|
|
15173
|
+
}, [children, errors]);
|
|
15174
|
+
if (!content) return null;
|
|
15175
|
+
return /* @__PURE__ */ jsx("div", { ...rest, role: "alert", className: cn("tw-m-0 tw-text-xs tw-text-destructive", className), children: content });
|
|
15176
|
+
};
|
|
15151
15177
|
var helpVariants = cva(["tw-m-0", "tw-text-xs"], {
|
|
15152
15178
|
defaultVariants: {
|
|
15153
15179
|
state: "default"
|
|
@@ -15155,18 +15181,17 @@ var helpVariants = cva(["tw-m-0", "tw-text-xs"], {
|
|
|
15155
15181
|
variants: {
|
|
15156
15182
|
state: {
|
|
15157
15183
|
default: ["tw-text-muted-foreground"],
|
|
15158
|
-
error: ["tw-text-destructive"],
|
|
15159
15184
|
warning: ["tw-text-warning"]
|
|
15160
15185
|
}
|
|
15161
15186
|
}
|
|
15162
15187
|
});
|
|
15163
|
-
var HelpBlock = ({ children, className, state = "default",
|
|
15188
|
+
var HelpBlock = ({ children, className, state = "default", ...rest }) => {
|
|
15164
15189
|
if (!children) return null;
|
|
15165
|
-
return /* @__PURE__ */ jsx("p", {
|
|
15190
|
+
return /* @__PURE__ */ jsx("p", { ...rest, className: helpVariants({ state, className }), children });
|
|
15166
15191
|
};
|
|
15167
15192
|
var FormGroupHelp = ({ children, ...rest }) => {
|
|
15168
15193
|
const formGroupContext = useFormGroupContext();
|
|
15169
|
-
return /* @__PURE__ */ jsx(HelpBlock, { state: formGroupContext.state, ...rest, children });
|
|
15194
|
+
return /* @__PURE__ */ jsx(HelpBlock, { state: formGroupContext.state === "warning" ? "warning" : "default", ...rest, children });
|
|
15170
15195
|
};
|
|
15171
15196
|
var FormGroupNumberInput = ({
|
|
15172
15197
|
ref,
|
|
@@ -15186,10 +15211,11 @@ var FormGroupTextInput = ({
|
|
|
15186
15211
|
const { state } = useFormGroupContext();
|
|
15187
15212
|
return /* @__PURE__ */ jsx(TextInput, { state, ...props, ref });
|
|
15188
15213
|
};
|
|
15189
|
-
var FormGroup = ({ className, children, state,
|
|
15190
|
-
return /* @__PURE__ */ jsx(FormGroupProvider, { value: { state }, children: /* @__PURE__ */ jsx("div", {
|
|
15214
|
+
var FormGroup = ({ className, children, state, ...rest }) => {
|
|
15215
|
+
return /* @__PURE__ */ jsx(FormGroupProvider, { value: { state }, children: /* @__PURE__ */ jsx("div", { ...rest, className: cn("tw-flex tw-flex-col tw-gap-1", className), children }) });
|
|
15191
15216
|
};
|
|
15192
15217
|
FormGroup.Help = FormGroupHelp;
|
|
15218
|
+
FormGroup.Error = FormGroupError;
|
|
15193
15219
|
FormGroup.TextInput = FormGroupTextInput;
|
|
15194
15220
|
FormGroup.NumberInput = FormGroupNumberInput;
|
|
15195
15221
|
FormGroup.ColorInput = FormGroupColorInput;
|
|
@@ -15418,7 +15444,7 @@ var ANIMATION_CLASS_NAME = cn(
|
|
|
15418
15444
|
"tw-relative",
|
|
15419
15445
|
"tw-overflow-hidden",
|
|
15420
15446
|
"tw-pointer-events-none",
|
|
15421
|
-
"tw-bg-
|
|
15447
|
+
"tw-bg-skeleton",
|
|
15422
15448
|
// before
|
|
15423
15449
|
'before:tw-content-[""]',
|
|
15424
15450
|
"before:tw-opacity-100",
|
|
@@ -18412,6 +18438,11 @@ var tokensToCssVars = ({
|
|
|
18412
18438
|
vars.set("--font-sans", typography?.fontFamily?.trim() || void 0);
|
|
18413
18439
|
vars.set("--font-display", typography?.fontDisplay?.trim() || void 0);
|
|
18414
18440
|
vars.set("--font-mono", typography?.fontMono?.trim() || void 0);
|
|
18441
|
+
vars.set("--font-weight-normal", typography?.weight?.normal);
|
|
18442
|
+
vars.set("--font-weight-medium", typography?.weight?.medium);
|
|
18443
|
+
vars.set("--font-weight-semibold", typography?.weight?.semibold);
|
|
18444
|
+
vars.set("--font-weight-bold", typography?.weight?.bold);
|
|
18445
|
+
vars.set("--letter-spacing-chrome", typography?.letterSpacing?.chrome);
|
|
18415
18446
|
vars.set("--radius-sm", radii?.sm);
|
|
18416
18447
|
vars.set("--radius-md", radii?.md);
|
|
18417
18448
|
vars.set("--radius-lg", radii?.lg);
|
|
@@ -20910,13 +20941,29 @@ var BreadcrumbDropdownGroup = ({
|
|
|
20910
20941
|
[parent, labelMatched, registerChild]
|
|
20911
20942
|
);
|
|
20912
20943
|
const isExpanded = !collapsible || expanded || filtering;
|
|
20944
|
+
const isEmpty = Children.count(children) === 0;
|
|
20913
20945
|
return /* @__PURE__ */ jsxs(
|
|
20914
20946
|
"div",
|
|
20915
20947
|
{
|
|
20916
20948
|
className: cn("tw-flex tw-flex-col", className),
|
|
20917
20949
|
style: visible ? void 0 : { display: "none" },
|
|
20918
20950
|
children: [
|
|
20919
|
-
collapsible ? /* @__PURE__ */ jsxs(
|
|
20951
|
+
collapsible && isEmpty ? /* @__PURE__ */ jsxs(
|
|
20952
|
+
"span",
|
|
20953
|
+
{
|
|
20954
|
+
"aria-disabled": true,
|
|
20955
|
+
className: cn(
|
|
20956
|
+
headerClass,
|
|
20957
|
+
"tw-text-muted-foreground",
|
|
20958
|
+
// Fade just the leading chevron lighter than the label text.
|
|
20959
|
+
"[&>svg:first-child]:tw-opacity-50"
|
|
20960
|
+
),
|
|
20961
|
+
children: [
|
|
20962
|
+
/* @__PURE__ */ jsx(icons_exports.ChevronRight, {}),
|
|
20963
|
+
label
|
|
20964
|
+
]
|
|
20965
|
+
}
|
|
20966
|
+
) : collapsible && !isEmpty ? /* @__PURE__ */ jsxs(
|
|
20920
20967
|
"button",
|
|
20921
20968
|
{
|
|
20922
20969
|
type: "button",
|
|
@@ -20929,7 +20976,31 @@ var BreadcrumbDropdownGroup = ({
|
|
|
20929
20976
|
]
|
|
20930
20977
|
}
|
|
20931
20978
|
) : /* @__PURE__ */ jsx("span", { className: headerClass, children: label }),
|
|
20932
|
-
/* @__PURE__ */ jsx(BreadcrumbDropdownContext, { value: childContext, children:
|
|
20979
|
+
/* @__PURE__ */ jsx(BreadcrumbDropdownContext, { value: childContext, children: collapsible && !isEmpty ? (
|
|
20980
|
+
// Animated expand / collapse via a CSS grid-rows transition (0fr ↔ 1fr). The children stay
|
|
20981
|
+
// mounted while collapsed so the filter registry keeps receiving their visibility; `inert`
|
|
20982
|
+
// + `aria-hidden` take the collapsed content out of the a11y tree and tab order. An active
|
|
20983
|
+
// filter query force-expands (`isExpanded` includes `filtering`).
|
|
20984
|
+
/* @__PURE__ */ jsx(
|
|
20985
|
+
"div",
|
|
20986
|
+
{
|
|
20987
|
+
className: cn(
|
|
20988
|
+
"tw-grid tw-transition-[grid-template-rows] tw-duration-200 tw-ease-out",
|
|
20989
|
+
"motion-reduce:tw-transition-none",
|
|
20990
|
+
isExpanded ? "tw-grid-rows-[1fr]" : "tw-grid-rows-[0fr]"
|
|
20991
|
+
),
|
|
20992
|
+
children: /* @__PURE__ */ jsx(
|
|
20993
|
+
"div",
|
|
20994
|
+
{
|
|
20995
|
+
className: "tw-overflow-hidden",
|
|
20996
|
+
inert: !isExpanded,
|
|
20997
|
+
"aria-hidden": isExpanded ? void 0 : true,
|
|
20998
|
+
children: /* @__PURE__ */ jsx("div", { className: "tw-flex tw-flex-col tw-pl-6", children })
|
|
20999
|
+
}
|
|
21000
|
+
)
|
|
21001
|
+
}
|
|
21002
|
+
)
|
|
21003
|
+
) : /* @__PURE__ */ jsx(
|
|
20933
21004
|
"div",
|
|
20934
21005
|
{
|
|
20935
21006
|
className: "tw-flex tw-flex-col tw-pl-6",
|
|
@@ -21055,11 +21126,12 @@ var chevronButtonClass = cn(
|
|
|
21055
21126
|
"tw-flex",
|
|
21056
21127
|
"tw-items-center",
|
|
21057
21128
|
"tw-justify-center",
|
|
21058
|
-
"tw-rounded-
|
|
21129
|
+
"tw-rounded-md",
|
|
21059
21130
|
"tw-border-none",
|
|
21060
21131
|
"tw-bg-transparent",
|
|
21061
21132
|
"tw-cursor-pointer",
|
|
21062
|
-
|
|
21133
|
+
// Generous 24px hit target (was ~18px) — colour-only hover, no background box.
|
|
21134
|
+
"tw-size-6",
|
|
21063
21135
|
"tw-text-muted-foreground",
|
|
21064
21136
|
"tw-transition-colors",
|
|
21065
21137
|
"hover:tw-text-foreground",
|
|
@@ -22912,84 +22984,179 @@ var SubmitButton = ({ children = "Submit", ...buttonProps }) => {
|
|
|
22912
22984
|
}
|
|
22913
22985
|
);
|
|
22914
22986
|
};
|
|
22915
|
-
var
|
|
22916
|
-
|
|
22917
|
-
|
|
22918
|
-
|
|
22919
|
-
|
|
22920
|
-
|
|
22921
|
-
|
|
22922
|
-
|
|
22923
|
-
|
|
22924
|
-
}
|
|
22925
|
-
|
|
22926
|
-
const
|
|
22927
|
-
const
|
|
22928
|
-
|
|
22929
|
-
|
|
22930
|
-
|
|
22931
|
-
|
|
22987
|
+
var FieldItem = ({
|
|
22988
|
+
label,
|
|
22989
|
+
required,
|
|
22990
|
+
requiredMark = "required",
|
|
22991
|
+
help,
|
|
22992
|
+
tooltip,
|
|
22993
|
+
className,
|
|
22994
|
+
"aria-describedby": ariaDescribedBy,
|
|
22995
|
+
children
|
|
22996
|
+
}) => {
|
|
22997
|
+
const field = useFieldContext();
|
|
22998
|
+
const { errors, isTouched } = field.state.meta;
|
|
22999
|
+
const isInvalid = isTouched && errors.length > 0;
|
|
23000
|
+
const errorId = `${field.name}-error`;
|
|
23001
|
+
const descriptionId = `${field.name}-description`;
|
|
23002
|
+
const describedBy = [ariaDescribedBy, !!help && descriptionId, isInvalid && errorId].filter(Boolean).join(" ") || void 0;
|
|
23003
|
+
return /* @__PURE__ */ jsxs(FormGroup, { className, children: [
|
|
23004
|
+
label && /* @__PURE__ */ jsxs("div", { className: "tw-flex tw-items-center tw-gap-1", children: [
|
|
23005
|
+
/* @__PURE__ */ jsxs(Label2, { htmlFor: field.name, children: [
|
|
23006
|
+
label,
|
|
23007
|
+
requiredMark === "required" && required && /* @__PURE__ */ jsx(Label2.Required, {}),
|
|
23008
|
+
requiredMark === "optional" && !required && /* @__PURE__ */ jsx(Label2.Optional, {})
|
|
23009
|
+
] }),
|
|
23010
|
+
tooltip && /* @__PURE__ */ jsx(Tooltip, { tooltip, placement: "top", triggerAsChild: true, children: /* @__PURE__ */ jsx(
|
|
23011
|
+
"button",
|
|
23012
|
+
{
|
|
23013
|
+
type: "button",
|
|
23014
|
+
"aria-label": typeof label === "string" ? `More information about ${label}` : "More information",
|
|
23015
|
+
className: "tailwindcss-preflight tw-text-muted-foreground focus:tw-outline-none focus-visible:tw-text-primary",
|
|
23016
|
+
children: /* @__PURE__ */ jsx(icons_exports.Info, { className: "tw-size-3" })
|
|
23017
|
+
}
|
|
23018
|
+
) })
|
|
22932
23019
|
] }),
|
|
22933
|
-
children
|
|
22934
|
-
|
|
23020
|
+
children({
|
|
23021
|
+
id: field.name,
|
|
23022
|
+
name: field.name,
|
|
23023
|
+
"aria-required": required || void 0,
|
|
23024
|
+
"aria-invalid": isInvalid || void 0,
|
|
23025
|
+
"aria-describedby": describedBy
|
|
23026
|
+
}),
|
|
23027
|
+
(help || isInvalid) && /* @__PURE__ */ jsxs("div", { children: [
|
|
23028
|
+
help && /* @__PURE__ */ jsx(FormGroup.Help, { id: descriptionId, children: help }),
|
|
23029
|
+
isInvalid && /* @__PURE__ */ jsx(FormGroup.Error, { id: errorId, errors })
|
|
23030
|
+
] })
|
|
22935
23031
|
] });
|
|
22936
23032
|
};
|
|
22937
|
-
var CheckboxField = ({
|
|
23033
|
+
var CheckboxField = ({ className, children, ...checkboxProps }) => {
|
|
22938
23034
|
const field = useFieldContext();
|
|
22939
|
-
return /* @__PURE__ */ jsx(
|
|
23035
|
+
return /* @__PURE__ */ jsx(FieldItem, { className, children: (control) => /* @__PURE__ */ jsx(
|
|
22940
23036
|
Checkbox,
|
|
22941
23037
|
{
|
|
22942
|
-
|
|
22943
|
-
|
|
23038
|
+
...checkboxProps,
|
|
23039
|
+
...control,
|
|
22944
23040
|
checked: field.state.value ?? false,
|
|
22945
|
-
onCheckedChange: (checked) =>
|
|
22946
|
-
field.handleChange(checked === true);
|
|
22947
|
-
},
|
|
23041
|
+
onCheckedChange: (checked) => field.handleChange(checked === true),
|
|
22948
23042
|
onBlur: field.handleBlur,
|
|
22949
|
-
|
|
22950
|
-
children: children ?? label
|
|
23043
|
+
children
|
|
22951
23044
|
}
|
|
22952
23045
|
) });
|
|
22953
23046
|
};
|
|
22954
|
-
var NumberField = ({
|
|
23047
|
+
var NumberField = ({
|
|
23048
|
+
label,
|
|
23049
|
+
required,
|
|
23050
|
+
requiredMark,
|
|
23051
|
+
help,
|
|
23052
|
+
tooltip,
|
|
23053
|
+
className,
|
|
23054
|
+
"aria-describedby": ariaDescribedBy,
|
|
23055
|
+
...inputProps
|
|
23056
|
+
}) => {
|
|
23057
|
+
const field = useFieldContext();
|
|
23058
|
+
return /* @__PURE__ */ jsx(
|
|
23059
|
+
FieldItem,
|
|
23060
|
+
{
|
|
23061
|
+
label,
|
|
23062
|
+
required,
|
|
23063
|
+
requiredMark,
|
|
23064
|
+
help,
|
|
23065
|
+
tooltip,
|
|
23066
|
+
className,
|
|
23067
|
+
"aria-describedby": ariaDescribedBy,
|
|
23068
|
+
children: (control) => /* @__PURE__ */ jsx(
|
|
23069
|
+
NumberInput,
|
|
23070
|
+
{
|
|
23071
|
+
...inputProps,
|
|
23072
|
+
...control,
|
|
23073
|
+
value: field.state.value ?? null,
|
|
23074
|
+
onValueChange: field.handleChange,
|
|
23075
|
+
onBlur: field.handleBlur
|
|
23076
|
+
}
|
|
23077
|
+
)
|
|
23078
|
+
}
|
|
23079
|
+
);
|
|
23080
|
+
};
|
|
23081
|
+
var OtpInputField = ({
|
|
23082
|
+
label,
|
|
23083
|
+
required,
|
|
23084
|
+
requiredMark,
|
|
23085
|
+
help,
|
|
23086
|
+
tooltip,
|
|
23087
|
+
className,
|
|
23088
|
+
"aria-describedby": ariaDescribedBy,
|
|
23089
|
+
maxLength,
|
|
23090
|
+
...otpProps
|
|
23091
|
+
}) => {
|
|
22955
23092
|
const field = useFieldContext();
|
|
22956
|
-
return /* @__PURE__ */ jsx(
|
|
22957
|
-
|
|
23093
|
+
return /* @__PURE__ */ jsx(
|
|
23094
|
+
FieldItem,
|
|
22958
23095
|
{
|
|
22959
|
-
|
|
22960
|
-
|
|
22961
|
-
|
|
22962
|
-
|
|
22963
|
-
|
|
22964
|
-
|
|
22965
|
-
|
|
22966
|
-
|
|
23096
|
+
label,
|
|
23097
|
+
required,
|
|
23098
|
+
requiredMark,
|
|
23099
|
+
help,
|
|
23100
|
+
tooltip,
|
|
23101
|
+
className,
|
|
23102
|
+
"aria-describedby": ariaDescribedBy,
|
|
23103
|
+
children: (control) => /* @__PURE__ */ jsx(
|
|
23104
|
+
OtpInput,
|
|
23105
|
+
{
|
|
23106
|
+
...otpProps,
|
|
23107
|
+
...control,
|
|
23108
|
+
maxLength,
|
|
23109
|
+
value: field.state.value ?? "",
|
|
23110
|
+
onChange: field.handleChange,
|
|
23111
|
+
onBlur: field.handleBlur,
|
|
23112
|
+
children: /* @__PURE__ */ jsx(OtpInput.Group, { children: Array.from({ length: maxLength }, (_, index) => /* @__PURE__ */ jsx(OtpInput.Slot, { index }, index)) })
|
|
23113
|
+
}
|
|
23114
|
+
)
|
|
22967
23115
|
}
|
|
22968
|
-
)
|
|
23116
|
+
);
|
|
22969
23117
|
};
|
|
22970
|
-
var PasswordField = ({
|
|
23118
|
+
var PasswordField = ({
|
|
23119
|
+
label,
|
|
23120
|
+
required,
|
|
23121
|
+
requiredMark,
|
|
23122
|
+
help,
|
|
23123
|
+
tooltip,
|
|
23124
|
+
className,
|
|
23125
|
+
"aria-describedby": ariaDescribedBy,
|
|
23126
|
+
...inputProps
|
|
23127
|
+
}) => {
|
|
22971
23128
|
const field = useFieldContext();
|
|
22972
|
-
|
|
22973
|
-
|
|
22974
|
-
PasswordInput,
|
|
23129
|
+
return /* @__PURE__ */ jsx(
|
|
23130
|
+
FieldItem,
|
|
22975
23131
|
{
|
|
22976
|
-
|
|
22977
|
-
|
|
22978
|
-
|
|
22979
|
-
|
|
22980
|
-
|
|
22981
|
-
|
|
22982
|
-
|
|
22983
|
-
|
|
22984
|
-
|
|
23132
|
+
label,
|
|
23133
|
+
required,
|
|
23134
|
+
requiredMark,
|
|
23135
|
+
help,
|
|
23136
|
+
tooltip,
|
|
23137
|
+
className,
|
|
23138
|
+
"aria-describedby": ariaDescribedBy,
|
|
23139
|
+
children: (control) => /* @__PURE__ */ jsx(
|
|
23140
|
+
PasswordInput,
|
|
23141
|
+
{
|
|
23142
|
+
...inputProps,
|
|
23143
|
+
...control,
|
|
23144
|
+
value: field.state.value ?? "",
|
|
23145
|
+
onValueChange: field.handleChange,
|
|
23146
|
+
onBlur: field.handleBlur
|
|
23147
|
+
}
|
|
23148
|
+
)
|
|
22985
23149
|
}
|
|
22986
|
-
)
|
|
23150
|
+
);
|
|
22987
23151
|
};
|
|
22988
23152
|
var SelectField = ({
|
|
22989
23153
|
label,
|
|
22990
23154
|
required,
|
|
23155
|
+
requiredMark,
|
|
22991
23156
|
help,
|
|
23157
|
+
tooltip,
|
|
22992
23158
|
className,
|
|
23159
|
+
"aria-describedby": ariaDescribedBy,
|
|
22993
23160
|
items,
|
|
22994
23161
|
options,
|
|
22995
23162
|
placeholder,
|
|
@@ -23001,80 +23168,125 @@ var SelectField = ({
|
|
|
23001
23168
|
}) => {
|
|
23002
23169
|
const field = useFieldContext();
|
|
23003
23170
|
const resolved = items ?? options ?? [];
|
|
23004
|
-
return /* @__PURE__ */ jsx(
|
|
23005
|
-
|
|
23171
|
+
return /* @__PURE__ */ jsx(
|
|
23172
|
+
FieldItem,
|
|
23006
23173
|
{
|
|
23007
|
-
|
|
23008
|
-
|
|
23009
|
-
|
|
23010
|
-
|
|
23011
|
-
|
|
23012
|
-
|
|
23013
|
-
|
|
23014
|
-
|
|
23015
|
-
|
|
23016
|
-
|
|
23017
|
-
|
|
23018
|
-
|
|
23019
|
-
|
|
23020
|
-
|
|
23021
|
-
|
|
23022
|
-
|
|
23023
|
-
|
|
23024
|
-
|
|
23025
|
-
|
|
23026
|
-
|
|
23174
|
+
label,
|
|
23175
|
+
required,
|
|
23176
|
+
requiredMark,
|
|
23177
|
+
help,
|
|
23178
|
+
tooltip,
|
|
23179
|
+
className,
|
|
23180
|
+
"aria-describedby": ariaDescribedBy,
|
|
23181
|
+
children: (control) => /* @__PURE__ */ jsxs(
|
|
23182
|
+
Select2.Root,
|
|
23183
|
+
{
|
|
23184
|
+
value: field.state.value ?? "",
|
|
23185
|
+
onValueChange: (value) => {
|
|
23186
|
+
field.handleChange(value);
|
|
23187
|
+
},
|
|
23188
|
+
...rootProps,
|
|
23189
|
+
children: [
|
|
23190
|
+
/* @__PURE__ */ jsx(
|
|
23191
|
+
Select2.Trigger,
|
|
23192
|
+
{
|
|
23193
|
+
...control,
|
|
23194
|
+
className: triggerClassName ?? "tw-w-full",
|
|
23195
|
+
placeholder,
|
|
23196
|
+
variant,
|
|
23197
|
+
state,
|
|
23198
|
+
sizing,
|
|
23199
|
+
onBlur: field.handleBlur
|
|
23200
|
+
}
|
|
23201
|
+
),
|
|
23202
|
+
/* @__PURE__ */ jsx(Select2.Content, { children: resolved.map((option) => /* @__PURE__ */ jsx(Select2.Item, { value: option.value, children: option.label }, option.value)) })
|
|
23203
|
+
]
|
|
23204
|
+
}
|
|
23205
|
+
)
|
|
23027
23206
|
}
|
|
23028
|
-
)
|
|
23207
|
+
);
|
|
23029
23208
|
};
|
|
23030
|
-
var SwitchField = ({
|
|
23209
|
+
var SwitchField = ({ className, children, ...switchProps }) => {
|
|
23031
23210
|
const field = useFieldContext();
|
|
23032
|
-
return /* @__PURE__ */ jsx(
|
|
23211
|
+
return /* @__PURE__ */ jsx(FieldItem, { className, children: (control) => /* @__PURE__ */ jsx(
|
|
23033
23212
|
Switch,
|
|
23034
23213
|
{
|
|
23035
|
-
|
|
23036
|
-
|
|
23214
|
+
...switchProps,
|
|
23215
|
+
...control,
|
|
23037
23216
|
checked: field.state.value ?? false,
|
|
23038
|
-
onCheckedChange:
|
|
23039
|
-
field.handleChange(checked);
|
|
23040
|
-
},
|
|
23217
|
+
onCheckedChange: field.handleChange,
|
|
23041
23218
|
onBlur: field.handleBlur,
|
|
23042
|
-
|
|
23043
|
-
children: children ?? label
|
|
23219
|
+
children
|
|
23044
23220
|
}
|
|
23045
23221
|
) });
|
|
23046
23222
|
};
|
|
23047
|
-
var
|
|
23223
|
+
var TextareaField = ({
|
|
23224
|
+
label,
|
|
23225
|
+
required,
|
|
23226
|
+
requiredMark,
|
|
23227
|
+
help,
|
|
23228
|
+
tooltip,
|
|
23229
|
+
className,
|
|
23230
|
+
"aria-describedby": ariaDescribedBy,
|
|
23231
|
+
...inputProps
|
|
23232
|
+
}) => {
|
|
23048
23233
|
const field = useFieldContext();
|
|
23049
|
-
return /* @__PURE__ */ jsx(
|
|
23050
|
-
|
|
23234
|
+
return /* @__PURE__ */ jsx(
|
|
23235
|
+
FieldItem,
|
|
23051
23236
|
{
|
|
23052
|
-
|
|
23053
|
-
|
|
23054
|
-
|
|
23055
|
-
|
|
23056
|
-
|
|
23057
|
-
|
|
23058
|
-
|
|
23059
|
-
|
|
23237
|
+
label,
|
|
23238
|
+
required,
|
|
23239
|
+
requiredMark,
|
|
23240
|
+
help,
|
|
23241
|
+
tooltip,
|
|
23242
|
+
className,
|
|
23243
|
+
"aria-describedby": ariaDescribedBy,
|
|
23244
|
+
children: (control) => /* @__PURE__ */ jsx(
|
|
23245
|
+
Textarea,
|
|
23246
|
+
{
|
|
23247
|
+
...inputProps,
|
|
23248
|
+
...control,
|
|
23249
|
+
value: field.state.value ?? "",
|
|
23250
|
+
onValueChange: field.handleChange,
|
|
23251
|
+
onBlur: field.handleBlur
|
|
23252
|
+
}
|
|
23253
|
+
)
|
|
23060
23254
|
}
|
|
23061
|
-
)
|
|
23255
|
+
);
|
|
23062
23256
|
};
|
|
23063
|
-
var TextField = ({
|
|
23257
|
+
var TextField = ({
|
|
23258
|
+
label,
|
|
23259
|
+
required,
|
|
23260
|
+
requiredMark,
|
|
23261
|
+
help,
|
|
23262
|
+
tooltip,
|
|
23263
|
+
className,
|
|
23264
|
+
"aria-describedby": ariaDescribedBy,
|
|
23265
|
+
...inputProps
|
|
23266
|
+
}) => {
|
|
23064
23267
|
const field = useFieldContext();
|
|
23065
|
-
return /* @__PURE__ */ jsx(
|
|
23066
|
-
|
|
23268
|
+
return /* @__PURE__ */ jsx(
|
|
23269
|
+
FieldItem,
|
|
23067
23270
|
{
|
|
23068
|
-
|
|
23069
|
-
|
|
23070
|
-
|
|
23071
|
-
|
|
23072
|
-
|
|
23073
|
-
|
|
23074
|
-
|
|
23075
|
-
|
|
23271
|
+
label,
|
|
23272
|
+
required,
|
|
23273
|
+
requiredMark,
|
|
23274
|
+
help,
|
|
23275
|
+
tooltip,
|
|
23276
|
+
className,
|
|
23277
|
+
"aria-describedby": ariaDescribedBy,
|
|
23278
|
+
children: (control) => /* @__PURE__ */ jsx(
|
|
23279
|
+
TextInput,
|
|
23280
|
+
{
|
|
23281
|
+
...inputProps,
|
|
23282
|
+
...control,
|
|
23283
|
+
value: field.state.value ?? "",
|
|
23284
|
+
onValueChange: field.handleChange,
|
|
23285
|
+
onBlur: field.handleBlur
|
|
23286
|
+
}
|
|
23287
|
+
)
|
|
23076
23288
|
}
|
|
23077
|
-
)
|
|
23289
|
+
);
|
|
23078
23290
|
};
|
|
23079
23291
|
|
|
23080
23292
|
// src/blocks/Form/formHook.ts
|
|
@@ -23085,10 +23297,11 @@ var { useAppForm, withForm } = createFormHook({
|
|
|
23085
23297
|
TextField,
|
|
23086
23298
|
NumberField,
|
|
23087
23299
|
PasswordField,
|
|
23088
|
-
|
|
23300
|
+
TextareaField,
|
|
23089
23301
|
SelectField,
|
|
23090
23302
|
CheckboxField,
|
|
23091
|
-
SwitchField
|
|
23303
|
+
SwitchField,
|
|
23304
|
+
OtpInputField
|
|
23092
23305
|
},
|
|
23093
23306
|
formComponents: {
|
|
23094
23307
|
FormBody,
|
|
@@ -23204,6 +23417,6 @@ object-assign/index.js:
|
|
|
23204
23417
|
*)
|
|
23205
23418
|
*/
|
|
23206
23419
|
|
|
23207
|
-
export { Alert, AlertModal, AnswerSummary, AppShell, ArgoDesignContext, AutoSaveTextarea, Avatar, Badge, BrandLogo, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, Checkbox, Clipboard, ClipboardButton, ClipboardInline, Collapse, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, ColorModeSwitch, Combobox, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, DEFAULT_COLOR_SCHEME, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, DateInput, DatePicker, DateRangeInput, DateRangePicker, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, FileUpload, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, HelpBlock, HoverCard, InlineStepDetail, InlineStepLabel, InputGroup,
|
|
23420
|
+
export { Alert, AlertModal, AnswerSummary, AppShell, ArgoDesignContext, AutoSaveTextarea, Avatar, Badge, BrandLogo, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, Checkbox, Clipboard, ClipboardButton, ClipboardInline, Collapse, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, ColorModeSwitch, Combobox, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, DEFAULT_COLOR_SCHEME, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, DateInput, DatePicker, DateRangeInput, DateRangePicker, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, FileUpload, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, HelpBlock, HoverCard, InlineStepDetail, InlineStepLabel, InputGroup, Kbd, Label2 as Label, Link, Markdown, MarkedText, MessageBubble, Modal, MultiActionButtonGroup, MultiCombobox, Navbar, NumberInput, OtpInput, PageHeader, PageLayout, PageToolbar, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, RadioGroup2 as RadioGroup, ResizableHandle, ResizablePanelGroup, ScrollArea, ScrollBar, Search, SearchForm, SearchInput, SearchInputWithNavigation, Select2 as Select, Separator2 as Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, SplitButton, SpotlightBackdrop, Stepper, SuggestedPrompt, Switch, Table, Tabs2 as Tabs, TabsContent, Tagger, TextInput, Textarea, ThemeProvider, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, ToggleGroup, ToolCallApproval, ToolCallChip, Tooltip, TooltipProvider, Truncated, UsageStats, UsageStatsRing, ZoomableSvg, argoVariants, cn, computeDiffRows, computeLineInformation, copyToClipboard, isMac, kbdVariants, keys, mergeRefs, setServerFieldErrors, toast, useAppForm, useArgoDesign, useAutosizeInput, useMergeDiff, useNotification, useScrollbarPosition, useSidebar, useTargetRect, useTheme, withForm };
|
|
23208
23421
|
//# sourceMappingURL=index.js.map
|
|
23209
23422
|
//# sourceMappingURL=index.js.map
|