@salt-ds/lab 1.0.0-alpha.6 → 1.0.0-alpha.7
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-cjs/packages/lab/src/form-field-context/FormFieldContextNext.js.map +1 -1
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldControlWrapper.css.js +9 -0
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldControlWrapper.css.js.map +1 -0
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldControlWrapper.js +16 -0
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldControlWrapper.js.map +1 -0
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldHelperText.css.js +1 -1
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldHelperText.js +24 -9
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldHelperText.js.map +1 -1
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldLabel.css.js +1 -1
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldLabel.js +16 -10
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldLabel.js.map +1 -1
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldNext.css.js +1 -1
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldNext.js +11 -44
- package/dist-cjs/packages/lab/src/form-field-next/FormFieldNext.js.map +1 -1
- package/dist-cjs/packages/lab/src/index.js +6 -2
- package/dist-cjs/packages/lab/src/index.js.map +1 -1
- package/dist-cjs/packages/lab/src/input-next/InputNext.css.js +1 -1
- package/dist-cjs/packages/lab/src/input-next/InputNext.js +46 -36
- package/dist-cjs/packages/lab/src/input-next/InputNext.js.map +1 -1
- package/dist-cjs/packages/lab/src/status-adornment/ErrorAdornment.js +24 -0
- package/dist-cjs/packages/lab/src/status-adornment/ErrorAdornment.js.map +1 -0
- package/dist-cjs/packages/lab/src/status-adornment/StatusAdornment.css.js +9 -0
- package/dist-cjs/packages/lab/src/status-adornment/StatusAdornment.css.js.map +1 -0
- package/dist-cjs/packages/lab/src/status-adornment/StatusAdornment.js +39 -0
- package/dist-cjs/packages/lab/src/status-adornment/StatusAdornment.js.map +1 -0
- package/dist-cjs/packages/lab/src/status-adornment/SuccessAdornment.js +24 -0
- package/dist-cjs/packages/lab/src/status-adornment/SuccessAdornment.js.map +1 -0
- package/dist-cjs/packages/lab/src/status-adornment/WarningAdornment.js +22 -0
- package/dist-cjs/packages/lab/src/status-adornment/WarningAdornment.js.map +1 -0
- package/dist-es/packages/lab/src/form-field-context/FormFieldContextNext.js.map +1 -1
- package/dist-es/packages/lab/src/form-field-next/FormFieldControlWrapper.css.js +7 -0
- package/dist-es/packages/lab/src/form-field-next/FormFieldControlWrapper.css.js.map +1 -0
- package/dist-es/packages/lab/src/form-field-next/FormFieldControlWrapper.js +12 -0
- package/dist-es/packages/lab/src/form-field-next/FormFieldControlWrapper.js.map +1 -0
- package/dist-es/packages/lab/src/form-field-next/FormFieldHelperText.css.js +1 -1
- package/dist-es/packages/lab/src/form-field-next/FormFieldHelperText.js +26 -11
- package/dist-es/packages/lab/src/form-field-next/FormFieldHelperText.js.map +1 -1
- package/dist-es/packages/lab/src/form-field-next/FormFieldLabel.css.js +1 -1
- package/dist-es/packages/lab/src/form-field-next/FormFieldLabel.js +16 -10
- package/dist-es/packages/lab/src/form-field-next/FormFieldLabel.js.map +1 -1
- package/dist-es/packages/lab/src/form-field-next/FormFieldNext.css.js +1 -1
- package/dist-es/packages/lab/src/form-field-next/FormFieldNext.js +12 -45
- package/dist-es/packages/lab/src/form-field-next/FormFieldNext.js.map +1 -1
- package/dist-es/packages/lab/src/index.js +3 -2
- package/dist-es/packages/lab/src/index.js.map +1 -1
- package/dist-es/packages/lab/src/input-next/InputNext.css.js +1 -1
- package/dist-es/packages/lab/src/input-next/InputNext.js +47 -37
- package/dist-es/packages/lab/src/input-next/InputNext.js.map +1 -1
- package/dist-es/packages/lab/src/status-adornment/ErrorAdornment.js +20 -0
- package/dist-es/packages/lab/src/status-adornment/ErrorAdornment.js.map +1 -0
- package/dist-es/packages/lab/src/status-adornment/StatusAdornment.css.js +7 -0
- package/dist-es/packages/lab/src/status-adornment/StatusAdornment.css.js.map +1 -0
- package/dist-es/packages/lab/src/status-adornment/StatusAdornment.js +35 -0
- package/dist-es/packages/lab/src/status-adornment/StatusAdornment.js.map +1 -0
- package/dist-es/packages/lab/src/status-adornment/SuccessAdornment.js +20 -0
- package/dist-es/packages/lab/src/status-adornment/SuccessAdornment.js.map +1 -0
- package/dist-es/packages/lab/src/status-adornment/WarningAdornment.js +18 -0
- package/dist-es/packages/lab/src/status-adornment/WarningAdornment.js.map +1 -0
- package/dist-types/form-field-context/FormFieldContextNext.d.ts +5 -2
- package/dist-types/form-field-next/FormFieldControlWrapper.d.ts +3 -0
- package/dist-types/form-field-next/FormFieldHelperText.d.ts +1 -6
- package/dist-types/form-field-next/FormFieldLabel.d.ts +1 -11
- package/dist-types/form-field-next/FormFieldNext.d.ts +9 -19
- package/dist-types/form-field-next/index.d.ts +1 -0
- package/dist-types/index.d.ts +1 -1
- package/dist-types/input-next/InputNext.d.ts +14 -7
- package/dist-types/status-adornment/ErrorAdornment.d.ts +4 -0
- package/dist-types/status-adornment/StatusAdornment.d.ts +13 -0
- package/dist-types/status-adornment/SuccessAdornment.d.ts +4 -0
- package/dist-types/status-adornment/WarningAdornment.d.ts +4 -0
- package/dist-types/status-adornment/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var clsx = require('clsx');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var core = require('@salt-ds/core');
|
|
9
|
+
var ErrorAdornment = require('./ErrorAdornment.js');
|
|
10
|
+
var SuccessAdornment = require('./SuccessAdornment.js');
|
|
11
|
+
var WarningAdornment = require('./WarningAdornment.js');
|
|
12
|
+
require('./StatusAdornment.css.js');
|
|
13
|
+
|
|
14
|
+
const icons = {
|
|
15
|
+
error: ErrorAdornment.ErrorAdornmentIcon,
|
|
16
|
+
warning: WarningAdornment.WarningAdornmentIcon,
|
|
17
|
+
success: SuccessAdornment.SuccessAdornmentIcon
|
|
18
|
+
};
|
|
19
|
+
const statusToAriaLabelMap = {
|
|
20
|
+
error: "error",
|
|
21
|
+
warning: "warning",
|
|
22
|
+
success: "success"
|
|
23
|
+
};
|
|
24
|
+
const withBaseName = core.makePrefixer("saltStatusAdornment");
|
|
25
|
+
const StatusAdornment = React.forwardRef(
|
|
26
|
+
function StatusAdornment2({ className, status, ...restProps }, ref) {
|
|
27
|
+
const AdornmentComponent = icons[status];
|
|
28
|
+
const ariaLabel = statusToAriaLabelMap[status];
|
|
29
|
+
return /* @__PURE__ */ jsxRuntime.jsx(AdornmentComponent, {
|
|
30
|
+
className: clsx.clsx(withBaseName(), withBaseName(status), className),
|
|
31
|
+
"aria-label": ariaLabel,
|
|
32
|
+
...restProps,
|
|
33
|
+
ref
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
exports.StatusAdornment = StatusAdornment;
|
|
39
|
+
//# sourceMappingURL=StatusAdornment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusAdornment.js","sources":["../src/status-adornment/StatusAdornment.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { makePrefixer, ValidationStatus } from \"@salt-ds/core\";\nimport { IconProps } from \"@salt-ds/icons\";\nimport { ErrorAdornmentIcon } from \"./ErrorAdornment\";\nimport { SuccessAdornmentIcon } from \"./SuccessAdornment\";\nimport { WarningAdornmentIcon } from \"./WarningAdornment\";\n\nimport \"./StatusAdornment.css\";\n\nconst icons = {\n error: ErrorAdornmentIcon,\n warning: WarningAdornmentIcon,\n success: SuccessAdornmentIcon,\n};\n\ntype AdornmentValidationStatus = Exclude<ValidationStatus, \"info\">;\n\nexport interface StatusAdornmentProps extends IconProps {\n /**\n * Status adornment to be displayed.\n */\n status: AdornmentValidationStatus;\n}\n\nconst statusToAriaLabelMap: Record<AdornmentValidationStatus, string> = {\n error: \"error\",\n warning: \"warning\",\n success: \"success\",\n};\n\nconst withBaseName = makePrefixer(\"saltStatusAdornment\");\n\nexport const StatusAdornment = forwardRef<SVGSVGElement, StatusAdornmentProps>(\n function StatusAdornment({ className, status, ...restProps }, ref) {\n const AdornmentComponent = icons[status];\n const ariaLabel = statusToAriaLabelMap[status];\n\n return (\n <AdornmentComponent\n className={clsx(withBaseName(), withBaseName(status), className)}\n aria-label={ariaLabel}\n {...restProps}\n ref={ref}\n />\n );\n }\n);\n"],"names":["ErrorAdornmentIcon","WarningAdornmentIcon","SuccessAdornmentIcon","makePrefixer","forwardRef","StatusAdornment","jsx","clsx"],"mappings":";;;;;;;;;;;;;AAUA,MAAM,KAAQ,GAAA;AAAA,EACZ,KAAO,EAAAA,iCAAA;AAAA,EACP,OAAS,EAAAC,qCAAA;AAAA,EACT,OAAS,EAAAC,qCAAA;AACX,CAAA,CAAA;AAWA,MAAM,oBAAkE,GAAA;AAAA,EACtE,KAAO,EAAA,OAAA;AAAA,EACP,OAAS,EAAA,SAAA;AAAA,EACT,OAAS,EAAA,SAAA;AACX,CAAA,CAAA;AAEA,MAAM,YAAA,GAAeC,kBAAa,qBAAqB,CAAA,CAAA;AAEhD,MAAM,eAAkB,GAAAC,gBAAA;AAAA,EAC7B,SAASC,gBAAgB,CAAA,EAAE,WAAW,MAAW,EAAA,GAAA,SAAA,IAAa,GAAK,EAAA;AACjE,IAAA,MAAM,qBAAqB,KAAM,CAAA,MAAA,CAAA,CAAA;AACjC,IAAA,MAAM,YAAY,oBAAqB,CAAA,MAAA,CAAA,CAAA;AAEvC,IAAA,uBACGC,cAAA,CAAA,kBAAA,EAAA;AAAA,MACC,WAAWC,SAAK,CAAA,YAAA,IAAgB,YAAa,CAAA,MAAM,GAAG,SAAS,CAAA;AAAA,MAC/D,YAAY,EAAA,SAAA;AAAA,MACX,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
|
|
8
|
+
const SuccessAdornmentIcon = React.forwardRef(function SuccessAdornmentIcon2({ children, className, ...rest }, ref) {
|
|
9
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", {
|
|
10
|
+
className,
|
|
11
|
+
...rest,
|
|
12
|
+
role: "img",
|
|
13
|
+
viewBox: "0 0 10 8",
|
|
14
|
+
ref,
|
|
15
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", {
|
|
16
|
+
"fill-rule": "evenodd",
|
|
17
|
+
"clip-rule": "evenodd",
|
|
18
|
+
d: "M2.92089 5.95735L8.96399 0L10 1.02133L2.92088 8L0 5.1205L1.03602 4.09918L2.92089 5.95735Z"
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
exports.SuccessAdornmentIcon = SuccessAdornmentIcon;
|
|
24
|
+
//# sourceMappingURL=SuccessAdornment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuccessAdornment.js","sources":["../src/status-adornment/SuccessAdornment.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { IconProps } from \"@salt-ds/icons\";\n\nexport type SuccessAdornmentIconProps = IconProps;\n\nexport const SuccessAdornmentIcon = forwardRef<\n SVGSVGElement,\n SuccessAdornmentIconProps\n>(function SuccessAdornmentIcon(\n { children, className, ...rest }: SuccessAdornmentIconProps,\n ref\n) {\n return (\n <svg\n className={className}\n {...rest}\n role=\"img\"\n viewBox=\"0 0 10 8\"\n ref={ref}\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.92089 5.95735L8.96399 0L10 1.02133L2.92088 8L0 5.1205L1.03602 4.09918L2.92089 5.95735Z\"\n />\n </svg>\n );\n});\n"],"names":["forwardRef","SuccessAdornmentIcon","jsx"],"mappings":";;;;;;;AAKa,MAAA,oBAAA,GAAuBA,iBAGlC,SAASC,qBAAAA,CACT,EAAE,QAAU,EAAA,SAAA,EAAA,GAAc,IAAK,EAAA,EAC/B,GACA,EAAA;AACA,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA;AAAA,IACC,GAAG,IAAA;AAAA,IACJ,IAAK,EAAA,KAAA;AAAA,IACL,OAAQ,EAAA,UAAA;AAAA,IACR,GAAA;AAAA,IAEA,QAAC,kBAAAA,cAAA,CAAA,MAAA,EAAA;AAAA,MACC,WAAU,EAAA,SAAA;AAAA,MACV,WAAU,EAAA,SAAA;AAAA,MACV,CAAE,EAAA,2FAAA;AAAA,KACJ,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
|
|
8
|
+
const WarningAdornmentIcon = React.forwardRef(function WarningAdornmentIcon2({ children, className, ...rest }, ref) {
|
|
9
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", {
|
|
10
|
+
className,
|
|
11
|
+
...rest,
|
|
12
|
+
role: "img",
|
|
13
|
+
viewBox: "0 0 9 8",
|
|
14
|
+
ref,
|
|
15
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", {
|
|
16
|
+
d: "M0 8L4.5 0L9 8H0Z"
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
exports.WarningAdornmentIcon = WarningAdornmentIcon;
|
|
22
|
+
//# sourceMappingURL=WarningAdornment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WarningAdornment.js","sources":["../src/status-adornment/WarningAdornment.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { IconProps } from \"@salt-ds/icons\";\n\nexport type WarningAdornmentIconProps = IconProps;\n\nexport const WarningAdornmentIcon = forwardRef<\n SVGSVGElement,\n WarningAdornmentIconProps\n>(function WarningAdornmentIcon(\n { children, className, ...rest }: WarningAdornmentIconProps,\n ref\n) {\n return (\n <svg className={className} {...rest} role=\"img\" viewBox=\"0 0 9 8\" ref={ref}>\n <path d=\"M0 8L4.5 0L9 8H0Z\" />\n </svg>\n );\n});\n"],"names":["forwardRef","WarningAdornmentIcon","jsx"],"mappings":";;;;;;;AAKa,MAAA,oBAAA,GAAuBA,iBAGlC,SAASC,qBAAAA,CACT,EAAE,QAAU,EAAA,SAAA,EAAA,GAAc,IAAK,EAAA,EAC/B,GACA,EAAA;AACA,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAA;AAAA,IAAuB,GAAG,IAAA;AAAA,IAAM,IAAK,EAAA,KAAA;AAAA,IAAM,OAAQ,EAAA,SAAA;AAAA,IAAU,GAAA;AAAA,IAChE,QAAC,kBAAAA,cAAA,CAAA,MAAA,EAAA;AAAA,MAAK,CAAE,EAAA,mBAAA;AAAA,KAAoB,CAAA;AAAA,GAC9B,CAAA,CAAA;AAEJ,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldContextNext.js","sources":["../src/form-field-context/FormFieldContextNext.ts"],"sourcesContent":["import { createContext } from \"@salt-ds/core\";\nimport {
|
|
1
|
+
{"version":3,"file":"FormFieldContextNext.js","sources":["../src/form-field-context/FormFieldContextNext.ts"],"sourcesContent":["import { createContext } from \"@salt-ds/core\";\nimport { a11yValueAriaProps } from \"../form-field-next\";\n\nexport interface FormFieldContextNextValue {\n a11yProps: a11yValueAriaProps;\n disabled: boolean;\n readOnly: boolean;\n validationStatus: \"error\" | \"warning\" | \"success\" | undefined;\n}\n\nexport const FormFieldContextNext = createContext(\n \"FormFieldContext\",\n {} as FormFieldContextNextValue\n);\n"],"names":[],"mappings":";;AAUO,MAAM,oBAAuB,GAAA,aAAA;AAAA,EAClC,kBAAA;AAAA,EACA,EAAC;AACH;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".saltFormFieldControlWrapper {\n align-items: center;\n display: grid;\n grid-auto-columns: minmax(min-content, 1fr);\n grid-auto-flow: column;\n grid-column-gap: var(--salt-size-unit);\n}\n";
|
|
4
|
+
styleInject(css_248z);
|
|
5
|
+
|
|
6
|
+
export { css_248z as default };
|
|
7
|
+
//# sourceMappingURL=FormFieldControlWrapper.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFieldControlWrapper.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { makePrefixer } from '@salt-ds/core';
|
|
3
|
+
import './FormFieldControlWrapper.css.js';
|
|
4
|
+
|
|
5
|
+
const withBaseName = makePrefixer("saltFormFieldControlWrapper");
|
|
6
|
+
const FormFieldControlWrapper = ({ children }) => /* @__PURE__ */ jsx("div", {
|
|
7
|
+
className: withBaseName(),
|
|
8
|
+
children
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export { FormFieldControlWrapper };
|
|
12
|
+
//# sourceMappingURL=FormFieldControlWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFieldControlWrapper.js","sources":["../src/form-field-next/FormFieldControlWrapper.tsx"],"sourcesContent":["import { PropsWithChildren } from \"react\";\nimport { makePrefixer } from \"@salt-ds/core\";\n\nimport \"./FormFieldControlWrapper.css\";\n\nconst withBaseName = makePrefixer(\"saltFormFieldControlWrapper\");\n\nexport const FormFieldControlWrapper = ({ children }: PropsWithChildren) => (\n <div className={withBaseName()}>{children}</div>\n);\n"],"names":[],"mappings":";;;;AAKA,MAAM,YAAA,GAAe,aAAa,6BAA6B,CAAA,CAAA;AAExD,MAAM,uBAA0B,GAAA,CAAC,EAAE,QAAA,uBACvC,GAAA,CAAA,KAAA,EAAA;AAAA,EAAI,WAAW,YAAa,EAAA;AAAA,EAAI,QAAA;AAAA,CAAS;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".saltFormFieldHelperText.saltText {\n font-style: var(--saltFormField-helperText-fontStyle, var(--salt-editable-help-fontStyle));\n
|
|
3
|
+
var css_248z = ".saltFormFieldHelperText {\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n\n.saltFormFieldHelperText .saltText {\n font-style: var(--saltFormField-helperText-fontStyle, var(--salt-editable-help-fontStyle));\n}\n\n.saltFormFieldHelperText-withValidation {\n column-gap: var(--salt-size-adornmentGap);\n}\n";
|
|
4
4
|
styleInject(css_248z);
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
@@ -1,22 +1,37 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import { makePrefixer, Text } from '@salt-ds/core';
|
|
3
|
+
import { makePrefixer, StatusIndicator, Text } from '@salt-ds/core';
|
|
4
|
+
import '../form-field-context/FormFieldContext.js';
|
|
5
|
+
import '../form-field-context/FormFieldContextNext.js';
|
|
6
|
+
import 'react';
|
|
7
|
+
import { useFormFieldPropsNext } from '../form-field-context/useFormFieldPropsNext.js';
|
|
4
8
|
import './FormFieldHelperText.css.js';
|
|
5
9
|
|
|
6
10
|
const withBaseName = makePrefixer("saltFormFieldHelperText");
|
|
7
11
|
const FormFieldHelperText = ({
|
|
8
12
|
className,
|
|
9
|
-
|
|
10
|
-
helperText,
|
|
13
|
+
children,
|
|
11
14
|
...restProps
|
|
12
15
|
}) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
const { disabled, readOnly, validationStatus } = useFormFieldPropsNext();
|
|
17
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
18
|
+
className: clsx(
|
|
19
|
+
withBaseName(),
|
|
20
|
+
{ [withBaseName("withValidation")]: validationStatus },
|
|
21
|
+
className
|
|
22
|
+
),
|
|
23
|
+
children: [
|
|
24
|
+
!disabled && !readOnly && validationStatus && /* @__PURE__ */ jsx(StatusIndicator, {
|
|
25
|
+
status: validationStatus
|
|
26
|
+
}),
|
|
27
|
+
/* @__PURE__ */ jsx(Text, {
|
|
28
|
+
disabled,
|
|
29
|
+
variant: "secondary",
|
|
30
|
+
styleAs: "label",
|
|
31
|
+
...restProps,
|
|
32
|
+
children
|
|
33
|
+
})
|
|
34
|
+
]
|
|
20
35
|
});
|
|
21
36
|
};
|
|
22
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldHelperText.js","sources":["../src/form-field-next/FormFieldHelperText.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { makePrefixer, Text, TextProps } from \"@salt-ds/core\";\nimport {
|
|
1
|
+
{"version":3,"file":"FormFieldHelperText.js","sources":["../src/form-field-next/FormFieldHelperText.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { makePrefixer, StatusIndicator, Text, TextProps } from \"@salt-ds/core\";\nimport { useFormFieldPropsNext } from \"../form-field-context\";\n\nimport \"./FormFieldHelperText.css\";\n\nconst withBaseName = makePrefixer(\"saltFormFieldHelperText\");\n\nexport const FormFieldHelperText = ({\n className,\n children,\n ...restProps\n}: Omit<TextProps<\"label\">, \"variant\" | \"styleAs\">) => {\n const { disabled, readOnly, validationStatus } = useFormFieldPropsNext();\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"withValidation\")]: validationStatus },\n className\n )}\n >\n {!disabled && !readOnly && validationStatus && (\n <StatusIndicator status={validationStatus} />\n )}\n <Text\n disabled={disabled}\n variant=\"secondary\"\n styleAs=\"label\"\n {...restProps}\n >\n {children}\n </Text>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAMA,MAAM,YAAA,GAAe,aAAa,yBAAyB,CAAA,CAAA;AAEpD,MAAM,sBAAsB,CAAC;AAAA,EAClC,SAAA;AAAA,EACA,QAAA;AAAA,EACG,GAAA,SAAA;AACL,CAAuD,KAAA;AACrD,EAAA,MAAM,EAAE,QAAA,EAAU,QAAU,EAAA,gBAAA,KAAqB,qBAAsB,EAAA,CAAA;AAEvE,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAW,EAAA,IAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb,EAAE,CAAC,YAAa,CAAA,gBAAgB,IAAI,gBAAiB,EAAA;AAAA,MACrD,SAAA;AAAA,KACF;AAAA,IAEC,QAAA,EAAA;AAAA,MAAA,CAAC,QAAY,IAAA,CAAC,QAAY,IAAA,gBAAA,oBACxB,GAAA,CAAA,eAAA,EAAA;AAAA,QAAgB,MAAQ,EAAA,gBAAA;AAAA,OAAkB,CAAA;AAAA,sBAE5C,GAAA,CAAA,IAAA,EAAA;AAAA,QACC,QAAA;AAAA,QACA,OAAQ,EAAA,WAAA;AAAA,QACR,OAAQ,EAAA,OAAA;AAAA,QACP,GAAG,SAAA;AAAA,QAEH,QAAA;AAAA,OACH,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".saltFormFieldLabel.saltText {\n align-self: center;\n font-weight: var(--saltFormField-label-fontWeight, var(--salt-text-fontWeight-strong));\n width: 100%;\n}\n\n.saltFormFieldLabel:hover + .saltFormFieldNext-controls * {\n --inputNext-borderColor: var(--
|
|
3
|
+
var css_248z = ".saltFormFieldLabel.saltText {\n align-self: center;\n font-weight: var(--saltFormField-label-fontWeight, var(--salt-text-fontWeight-strong));\n width: 100%;\n}\n\n.saltFormFieldLabel:hover + .saltFormFieldNext-controls * {\n --inputNext-borderColor: var(--inputNext-borderColor-hover);\n}\n";
|
|
4
4
|
styleInject(css_248z);
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
3
|
import { makePrefixer, Label } from '@salt-ds/core';
|
|
4
|
+
import '../form-field-context/FormFieldContext.js';
|
|
5
|
+
import '../form-field-context/FormFieldContextNext.js';
|
|
6
|
+
import 'react';
|
|
7
|
+
import { useFormFieldPropsNext } from '../form-field-context/useFormFieldPropsNext.js';
|
|
4
8
|
import './FormFieldLabel.css.js';
|
|
5
9
|
|
|
6
10
|
const withBaseName = makePrefixer("saltFormFieldLabel");
|
|
7
11
|
const FormFieldLabel = ({
|
|
8
12
|
className,
|
|
9
|
-
|
|
10
|
-
label,
|
|
13
|
+
children,
|
|
11
14
|
...restProps
|
|
12
|
-
}) =>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
}) => {
|
|
16
|
+
const { disabled } = useFormFieldPropsNext();
|
|
17
|
+
return /* @__PURE__ */ jsx(Label, {
|
|
18
|
+
as: "label",
|
|
19
|
+
className: clsx(withBaseName(), className),
|
|
20
|
+
disabled,
|
|
21
|
+
variant: "secondary",
|
|
22
|
+
...restProps,
|
|
23
|
+
children
|
|
24
|
+
});
|
|
25
|
+
};
|
|
20
26
|
|
|
21
27
|
export { FormFieldLabel };
|
|
22
28
|
//# sourceMappingURL=FormFieldLabel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldLabel.js","sources":["../src/form-field-next/FormFieldLabel.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { Label, makePrefixer, TextProps } from \"@salt-ds/core\";\n\nimport \"./FormFieldLabel.css\";\n\nconst withBaseName = makePrefixer(\"saltFormFieldLabel\");\nexport
|
|
1
|
+
{"version":3,"file":"FormFieldLabel.js","sources":["../src/form-field-next/FormFieldLabel.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { Label, makePrefixer, TextProps } from \"@salt-ds/core\";\nimport { useFormFieldPropsNext } from \"../form-field-context\";\n\nimport \"./FormFieldLabel.css\";\n\nconst withBaseName = makePrefixer(\"saltFormFieldLabel\");\n\nexport const FormFieldLabel = ({\n className,\n children,\n ...restProps\n}: Omit<TextProps<\"label\">, \"variant\" | \"styleAs\">) => {\n const { disabled } = useFormFieldPropsNext();\n\n return (\n <Label\n as=\"label\"\n className={clsx(withBaseName(), className)}\n disabled={disabled}\n variant=\"secondary\"\n {...restProps}\n >\n {children}\n </Label>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAMA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA,CAAA;AAE/C,MAAM,iBAAiB,CAAC;AAAA,EAC7B,SAAA;AAAA,EACA,QAAA;AAAA,EACG,GAAA,SAAA;AACL,CAAuD,KAAA;AACrD,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,qBAAsB,EAAA,CAAA;AAE3C,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,EAAG,EAAA,OAAA;AAAA,IACH,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,QAAA;AAAA,IACA,OAAQ,EAAA,WAAA;AAAA,IACP,GAAG,SAAA;AAAA,IAEH,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".saltFormFieldNext {\n display: inline-grid;\n position: relative;\n column-gap: var(--salt-size-adornmentGap);\n row-gap: var(--salt-size-adornmentGap);\n vertical-align: top;\n width: var(--saltFormFieldNext-width, 100%);\n}\n\n.saltFormFieldNext-labelLeft {\n align-self: center;\n grid-template-columns:
|
|
3
|
+
var css_248z = ".saltFormFieldNext {\n display: inline-grid;\n position: relative;\n column-gap: var(--salt-size-adornmentGap);\n row-gap: var(--salt-size-adornmentGap);\n vertical-align: top;\n width: var(--saltFormFieldNext-width, 100%);\n}\n\n.saltFormFieldNext-labelLeft {\n align-self: center;\n grid-template-columns: 40% 1fr;\n}\n\n.saltFormFieldNext-labelTop {\n}\n\n.saltFormFieldNext-controls {\n align-items: center;\n display: grid;\n grid-auto-columns: minmax(0, 1fr);\n grid-auto-flow: column;\n grid-column-gap: var(--salt-size-adornmentGap);\n}\n\n.saltFormFieldNext > * {\n grid-row-start: 2;\n grid-row-end: 3;\n}\n\n.saltFormFieldNext > .saltFormFieldLabel {\n grid-row-start: 1;\n grid-row-end: 2;\n}\n\n.saltFormFieldNext-labelLeft > * {\n grid-row-start: 1;\n grid-row-end: 2;\n}\n\n.saltFormFieldNext > .saltFormFieldHelperText {\n grid-row-start: 3;\n grid-row-end: 4;\n}\n\n.saltFormFieldNext.saltFormFieldNext-labelLeft > .saltFormFieldHelperText {\n grid-row-start: 2;\n grid-row-end: 3;\n}\n\n.saltFormFieldNext-labelLeft > .saltFormFieldLabel ~ * {\n grid-column-start: 2;\n grid-column-end: 2;\n}\n\n.saltFormFieldNext-disabled .saltInputNext-focused {\n outline: none;\n}\n";
|
|
4
4
|
styleInject(css_248z);
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
@@ -1,52 +1,34 @@
|
|
|
1
|
-
import { jsx
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
3
|
import { forwardRef, useMemo } from 'react';
|
|
4
4
|
import { makePrefixer, useId, capitalize } from '@salt-ds/core';
|
|
5
5
|
import '../form-field-context/FormFieldContext.js';
|
|
6
6
|
import { FormFieldContextNext } from '../form-field-context/FormFieldContextNext.js';
|
|
7
|
-
import { FormFieldLabel } from './FormFieldLabel.js';
|
|
8
|
-
import { FormFieldHelperText } from './FormFieldHelperText.js';
|
|
9
7
|
import './FormFieldNext.css.js';
|
|
10
8
|
|
|
11
|
-
const useA11yValue = ({
|
|
12
|
-
disabled,
|
|
13
|
-
labelId,
|
|
14
|
-
helperTextId,
|
|
15
|
-
readOnly
|
|
16
|
-
}) => {
|
|
17
|
-
return useMemo(
|
|
18
|
-
() => ({
|
|
19
|
-
"aria-labelledby": labelId,
|
|
20
|
-
"aria-describedby": helperTextId,
|
|
21
|
-
disabled,
|
|
22
|
-
readOnly
|
|
23
|
-
}),
|
|
24
|
-
[labelId, disabled, helperTextId, readOnly]
|
|
25
|
-
);
|
|
26
|
-
};
|
|
27
9
|
const withBaseName = makePrefixer("saltFormFieldNext");
|
|
28
10
|
const FormField = forwardRef(
|
|
29
11
|
({
|
|
30
12
|
children,
|
|
31
13
|
className,
|
|
32
14
|
disabled = false,
|
|
33
|
-
helperText,
|
|
34
|
-
label,
|
|
35
15
|
labelPlacement = "top",
|
|
36
16
|
onBlur,
|
|
37
17
|
onFocus,
|
|
38
18
|
readOnly = false,
|
|
39
19
|
id: idProp,
|
|
20
|
+
validationStatus,
|
|
40
21
|
...restProps
|
|
41
22
|
}, ref) => {
|
|
42
23
|
const labelId = useId();
|
|
43
24
|
const helperTextId = useId();
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
25
|
+
const a11yProps = useMemo(
|
|
26
|
+
() => ({
|
|
27
|
+
"aria-labelledby": labelId,
|
|
28
|
+
"aria-describedby": helperTextId
|
|
29
|
+
}),
|
|
30
|
+
[labelId, helperTextId]
|
|
31
|
+
);
|
|
50
32
|
return /* @__PURE__ */ jsx("div", {
|
|
51
33
|
ref,
|
|
52
34
|
className: clsx(
|
|
@@ -59,24 +41,9 @@ const FormField = forwardRef(
|
|
|
59
41
|
className
|
|
60
42
|
),
|
|
61
43
|
...restProps,
|
|
62
|
-
children: /* @__PURE__ */
|
|
63
|
-
value: { a11yProps
|
|
64
|
-
children
|
|
65
|
-
label && /* @__PURE__ */ jsx(FormFieldLabel, {
|
|
66
|
-
id: labelId,
|
|
67
|
-
disabled,
|
|
68
|
-
label
|
|
69
|
-
}),
|
|
70
|
-
/* @__PURE__ */ jsx("div", {
|
|
71
|
-
className: withBaseName("controls"),
|
|
72
|
-
children
|
|
73
|
-
}),
|
|
74
|
-
helperText && /* @__PURE__ */ jsx(FormFieldHelperText, {
|
|
75
|
-
id: helperTextId,
|
|
76
|
-
disabled,
|
|
77
|
-
helperText
|
|
78
|
-
})
|
|
79
|
-
]
|
|
44
|
+
children: /* @__PURE__ */ jsx(FormFieldContextNext.Provider, {
|
|
45
|
+
value: { a11yProps, disabled, readOnly, validationStatus },
|
|
46
|
+
children
|
|
80
47
|
})
|
|
81
48
|
});
|
|
82
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldNext.js","sources":["../src/form-field-next/FormFieldNext.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { ForwardedRef, forwardRef, HTMLAttributes, useMemo } from \"react\";\nimport { makePrefixer, useId, capitalize } from \"@salt-ds/core\";\nimport { FormFieldContextNext } from \"../form-field-context\";\
|
|
1
|
+
{"version":3,"file":"FormFieldNext.js","sources":["../src/form-field-next/FormFieldNext.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { ForwardedRef, forwardRef, HTMLAttributes, useMemo } from \"react\";\nimport { makePrefixer, useId, capitalize } from \"@salt-ds/core\";\nimport { FormFieldContextNext } from \"../form-field-context\";\n\nimport \"./FormFieldNext.css\";\n\nexport type FormFieldLabelPlacement = \"top\" | \"left\";\n\nexport interface FormFieldProps\n extends HTMLAttributes<HTMLDivElement>,\n A11yValueProps {\n /**\n * Disabled prop\n */\n disabled?: boolean;\n /**\n * Location of the label, values: 'top' (default) or 'left'\n */\n labelPlacement?: FormFieldLabelPlacement;\n /**\n * Readonly prop\n */\n readOnly?: boolean;\n /**\n * Optional id prop\n */\n id?: string;\n /**\n * Validation status\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n}\n\nexport interface A11yValueProps {\n /**\n * id for FormFieldHelperText\n */\n helperTextId?: string;\n /**\n * id for FormFieldLabel\n */\n labelId?: string;\n}\nexport interface a11yValueAriaProps {\n \"aria-labelledby\": A11yValueProps[\"labelId\"];\n \"aria-describedby\": A11yValueProps[\"helperTextId\"] | undefined;\n}\n\nconst withBaseName = makePrefixer(\"saltFormFieldNext\");\n\nexport const FormField = forwardRef(\n (\n {\n children,\n className,\n disabled = false,\n labelPlacement = \"top\",\n onBlur,\n onFocus,\n readOnly = false,\n id: idProp,\n validationStatus,\n ...restProps\n }: FormFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const labelId = useId();\n const helperTextId = useId();\n\n const a11yProps = useMemo(\n () => ({\n \"aria-labelledby\": labelId,\n \"aria-describedby\": helperTextId,\n }),\n [labelId, helperTextId]\n );\n\n return (\n <div\n ref={ref}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"readOnly\")]: readOnly,\n [withBaseName(`label${capitalize(labelPlacement)}`)]:\n labelPlacement,\n },\n className\n )}\n {...restProps}\n >\n <FormFieldContextNext.Provider\n value={{ a11yProps, disabled, readOnly, validationStatus }}\n >\n {children}\n </FormFieldContextNext.Provider>\n </div>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;;AAiDA,MAAM,YAAA,GAAe,aAAa,mBAAmB,CAAA,CAAA;AAE9C,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CACE;AAAA,IACE,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAW,GAAA,KAAA;AAAA,IACX,cAAiB,GAAA,KAAA;AAAA,IACjB,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAW,GAAA,KAAA;AAAA,IACX,EAAI,EAAA,MAAA;AAAA,IACJ,gBAAA;AAAA,IACG,GAAA,SAAA;AAAA,KAEL,GACG,KAAA;AACH,IAAA,MAAM,UAAU,KAAM,EAAA,CAAA;AACtB,IAAA,MAAM,eAAe,KAAM,EAAA,CAAA;AAE3B,IAAA,MAAM,SAAY,GAAA,OAAA;AAAA,MAChB,OAAO;AAAA,QACL,iBAAmB,EAAA,OAAA;AAAA,QACnB,kBAAoB,EAAA,YAAA;AAAA,OACtB,CAAA;AAAA,MACA,CAAC,SAAS,YAAY,CAAA;AAAA,KACxB,CAAA;AAEA,IAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,CAAA,KAAA,EAAQ,UAAW,CAAA,cAAc,GAAG,CAChD,GAAA,cAAA;AAAA,SACJ;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,SAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,qBAAqB,QAArB,EAAA;AAAA,QACC,KAAO,EAAA,EAAE,SAAW,EAAA,QAAA,EAAU,UAAU,gBAAiB,EAAA;AAAA,QAExD,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
|
|
@@ -78,9 +78,10 @@ export { FileDropZone } from './file-drop-zone/FileDropZone.js';
|
|
|
78
78
|
export { createFileTypeValidator, createTotalSizeValidator } from './file-drop-zone/validators.js';
|
|
79
79
|
export { FormField, useFormField } from './form-field/FormField.js';
|
|
80
80
|
export { FormLabel } from './form-field/FormLabel.js';
|
|
81
|
+
export { FormFieldControlWrapper } from './form-field-next/FormFieldControlWrapper.js';
|
|
81
82
|
export { FormField as FormFieldNext } from './form-field-next/FormFieldNext.js';
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
export { FormFieldHelperText } from './form-field-next/FormFieldHelperText.js';
|
|
84
|
+
export { FormFieldLabel } from './form-field-next/FormFieldLabel.js';
|
|
84
85
|
export { FormFieldContext } from './form-field-context/FormFieldContext.js';
|
|
85
86
|
export { FormFieldContextNext } from './form-field-context/FormFieldContextNext.js';
|
|
86
87
|
export { useFormFieldProps } from './form-field-context/useFormFieldProps.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/* Style applied to the root element */\n.saltInputNext {\n --inputNext-borderColor: var(--salt-editable-borderColor);\n --inputNext-borderStyle: var(--salt-editable-borderStyle);\n\n align-items: center;\n background: var(--saltInputNext-background, var(--inputNext-background));\n border-color: var(--saltInputNext-borderColor, var(--inputNext-borderColor));\n border-width: var(--saltInputNext-borderWidth, 0 0 var(--salt-size-border) 0);\n border-style: var(--saltInputNext-borderStyle, var(--inputNext-borderStyle));\n border-radius: var(--saltInputNext-borderRadius, 0);\n color: var(--saltInputNext-color, var(--salt-text-primary-foreground));\n display: inline-flex;\n font-family: var(--saltInputNext-fontFamily, var(--salt-text-fontFamily));\n font-size: var(--saltInputNext-fontSize, var(--salt-text-fontSize));\n height: var(--saltInputNext-height, var(--salt-size-base));\n line-height: var(--salt-text-lineHeight);\n min-height: var(--saltInputNext-minHeight, var(--salt-size-base));\n min-width: var(--saltInputNext-minWidth, 8em);\n padding: var(--saltInputNext-padding, 0 var(--salt-size-unit));\n position: var(--saltInputNext-position, relative);\n width: 100%;\n}\n\n.saltInputNext:hover {\n --inputNext-background: var(--inputNext-background-hover);\n --inputNext-borderColor: var(--
|
|
3
|
+
var css_248z = "/* Style applied to the root element */\n.saltInputNext {\n --inputNext-borderColor: var(--salt-editable-borderColor);\n --inputNext-borderColor-hover: var(--salt-editable-borderColor-hover);\n --inputNext-borderStyle: var(--salt-editable-borderStyle);\n\n align-items: center;\n background: var(--saltInputNext-background, var(--inputNext-background));\n border-color: var(--saltInputNext-borderColor, var(--inputNext-borderColor));\n border-width: var(--saltInputNext-borderWidth, 0 0 var(--salt-size-border) 0);\n border-style: var(--saltInputNext-borderStyle, var(--inputNext-borderStyle));\n border-radius: var(--saltInputNext-borderRadius, 0);\n color: var(--saltInputNext-color, var(--salt-text-primary-foreground));\n display: inline-flex;\n font-family: var(--saltInputNext-fontFamily, var(--salt-text-fontFamily));\n font-size: var(--saltInputNext-fontSize, var(--salt-text-fontSize));\n height: var(--saltInputNext-height, var(--salt-size-base));\n line-height: var(--salt-text-lineHeight);\n min-height: var(--saltInputNext-minHeight, var(--salt-size-base));\n min-width: var(--saltInputNext-minWidth, 8em);\n padding: var(--saltInputNext-padding, 0 var(--salt-size-unit));\n position: var(--saltInputNext-position, relative);\n width: 100%;\n}\n\n.saltInputNext:hover {\n --inputNext-background: var(--inputNext-background-hover);\n --inputNext-borderColor: var(--inputNext-borderColor-hover);\n --inputNext-borderStyle: var(--salt-editable-borderStyle-hover);\n --inputNext-cursor: var(--salt-editable-cursor-hover);\n}\n\n.saltInputNext:active {\n --inputNext-background: var(--inputNext-background-active);\n --inputNext-borderColor: var(--salt-editable-borderColor-active);\n --inputNext-borderStyle: var(--salt-editable-borderStyle-active);\n --inputNext-cursor: var(--salt-editable-cursor-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltInputNext-primary {\n --inputNext-background: var(--salt-editable-primary-background);\n --inputNext-background-active: var(--salt-editable-primary-background-active);\n --inputNext-background-hover: var(--salt-editable-primary-background-hover);\n --inputNext-background-disabled: var(--salt-editable-primary-background-disabled);\n --inputNext-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltInputNext-secondary {\n --inputNext-background: var(--salt-editable-secondary-background);\n --inputNext-background-active: var(--salt-editable-secondary-background-active);\n --inputNext-background-hover: var(--salt-editable-secondary-background-active);\n --inputNext-background-disabled: var(--salt-editable-secondary-background-disabled);\n --inputNext-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltInputNext-error,\n.saltInputNext-error:hover {\n --inputNext-background: var(--salt-status-error-background);\n --inputNext-outlineColor: var(--salt-status-error-borderColor);\n --inputNext-borderColor: var(--salt-status-error-borderColor);\n --inputNext-borderColor-hover: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltInputNext-warning,\n.saltInputNext-warning:hover {\n --inputNext-background: var(--salt-status-warning-background);\n --inputNext-outlineColor: var(--salt-status-warning-borderColor);\n --inputNext-borderColor: var(--salt-status-warning-borderColor);\n --inputNext-borderColor-hover: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltInputNext-success,\n.saltInputNext-success:hover {\n --inputNext-background: var(--salt-status-success-background);\n --inputNext-outlineColor: var(--salt-status-success-borderColor);\n --inputNext-borderColor: var(--salt-status-success-borderColor);\n --inputNext-borderColor-hover: var(--salt-status-success-borderColor);\n}\n\n/* Style applied to inner input component */\n.saltInputNext-input {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: var(--saltInputNext-cursor, var(--inputNext-cursor));\n display: block;\n flex: 1;\n font: inherit;\n height: 100%;\n letter-spacing: var(--saltInputNext-letterSpacing, 0);\n margin: 0;\n min-width: 0;\n overflow: hidden;\n padding: 0;\n text-align: var(--saltInputNext-textAlign, left);\n width: 100%;\n}\n\n/* Reset in the next class */\n.saltInputNext-input:focus {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltInputNext-input::selection {\n background: var(--saltInputNext-highlight-color, var(--salt-text-background-selected));\n}\n\n/* Styling when focused */\n.saltInputNext-focused {\n --inputNext-outlineColor: var(--salt-focused-outlineColor);\n\n outline-style: var(--saltInputNext-focused-outlineStyle, var(--salt-focused-outlineStyle));\n outline-width: var(--saltInputNext-focused-outlineWidth, var(--salt-focused-outlineWidth));\n outline-color: var(--saltInputNext-focused-outlineColor, var(--inputNext-outlineColor));\n outline-offset: var(--saltInputNext-focused-outlineOffset, var(--salt-focused-outlineOffset));\n}\n\n/* Style applied if `readOnly={true}` */\n.saltInputNext.saltInputNext-readOnly {\n --inputNext-background: var(--inputNext-background-readonly);\n --inputNext-background-hover: var(--inputNext-background-readonly);\n --inputNext-borderColor: var(--salt-editable-borderColor-readonly);\n --inputNext-borderColor-hover: var(--salt-editable-borderColor-readonly);\n --inputNext-borderStyle: var(--salt-editable-borderStyle-readonly);\n --inputNext-cursor: var(--salt-editable-cursor-readonly);\n}\n\n/* Styling when focused if `disabled={true}` or `readOnly={true}` */\n.saltInputNext-focused.saltInputNext-readOnly,\n.saltInputNext-disabled .saltInputNext-focused {\n outline: none;\n}\n\n/* Style applied to selected input if `disabled={true}` */\n.saltInputNext-disabled .saltInputNext-input::selection {\n background: none;\n}\n\n/* Style applied to input if `disabled={true}` */\n.saltInputNext-disabled .saltInputNext-input,\n.saltInputNext.saltInputNext-disabled,\n.saltInputNext.saltInputNext-disabled:hover,\n.saltInputNext.saltInputNext-disabled:active {\n --inputNext-background: var(--inputNext-background-disabled);\n --inputNext-borderColor: var(--salt-editable-borderColor-disabled);\n --inputNext-borderColor-hover: var(--salt-editable-borderColor-disabled);\n --inputNext-borderStyle: var(--salt-editable-borderStyle-disabled);\n\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--saltInputNext-text-color-disabled, var(--salt-text-primary-foreground-disabled));\n}\n\n/* Style applied to input if adornment provided */\n.saltInputNext-withAdornment {\n padding-right: var(--salt-size-adornmentGap);\n}\n\n/* Style applied to start adornments */\n.saltInputNext-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-right: var(--salt-size-adornmentGap);\n column-gap: var(--salt-size-adornmentGap);\n}\n\n/* Style applied to end adornments */\n.saltInputNext-endAdornmentContainer {\n align-items: center;\n display: inline-flex;\n padding-left: var(--salt-size-adornmentGap);\n column-gap: var(--salt-size-adornmentGap);\n}\n";
|
|
4
4
|
styleInject(css_248z);
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
3
|
import { forwardRef, useState } from 'react';
|
|
4
4
|
import { makePrefixer, useControlled } from '@salt-ds/core';
|
|
5
5
|
import '../form-field-context/FormFieldContext.js';
|
|
6
6
|
import '../form-field-context/FormFieldContextNext.js';
|
|
7
7
|
import { useFormFieldPropsNext } from '../form-field-context/useFormFieldPropsNext.js';
|
|
8
|
+
import { StatusAdornment } from '../status-adornment/StatusAdornment.js';
|
|
8
9
|
import './InputNext.css.js';
|
|
9
10
|
|
|
10
11
|
const withBaseName = makePrefixer("saltInputNext");
|
|
@@ -26,27 +27,28 @@ const Input = forwardRef(function Input2({
|
|
|
26
27
|
"aria-owns": ariaOwns,
|
|
27
28
|
className: classNameProp,
|
|
28
29
|
disabled,
|
|
30
|
+
endAdornment,
|
|
29
31
|
id,
|
|
30
32
|
inputProps: inputPropsProp,
|
|
31
|
-
onChange,
|
|
32
33
|
readOnly: readOnlyProp,
|
|
33
34
|
role,
|
|
35
|
+
startAdornment,
|
|
34
36
|
style,
|
|
35
|
-
type = "text",
|
|
36
37
|
value: valueProp,
|
|
37
38
|
defaultValue: defaultValueProp = valueProp === void 0 ? "" : void 0,
|
|
39
|
+
validationStatus: validationStatusProp,
|
|
38
40
|
variant = "primary",
|
|
39
41
|
...other
|
|
40
42
|
}, ref) {
|
|
41
43
|
const {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
} = {}
|
|
44
|
+
disabled: formFieldDisabled,
|
|
45
|
+
readOnly: formFieldReadOnly,
|
|
46
|
+
validationStatus: formFieldValidationStatus,
|
|
47
|
+
a11yProps
|
|
47
48
|
} = useFormFieldPropsNext();
|
|
48
|
-
const isDisabled = disabled ||
|
|
49
|
-
const isReadOnly = readOnlyProp ||
|
|
49
|
+
const isDisabled = disabled || formFieldDisabled;
|
|
50
|
+
const isReadOnly = readOnlyProp || formFieldReadOnly;
|
|
51
|
+
const validationStatus = formFieldValidationStatus != null ? formFieldValidationStatus : validationStatusProp;
|
|
50
52
|
const [focused, setFocused] = useState(false);
|
|
51
53
|
const misplacedAriaProps = {
|
|
52
54
|
"aria-activedescendant": ariaActiveDescendant,
|
|
@@ -55,20 +57,11 @@ const Input = forwardRef(function Input2({
|
|
|
55
57
|
role
|
|
56
58
|
};
|
|
57
59
|
const inputProps = mergeA11yProps(
|
|
58
|
-
|
|
60
|
+
a11yProps,
|
|
59
61
|
inputPropsProp,
|
|
60
62
|
misplacedAriaProps
|
|
61
63
|
);
|
|
62
|
-
const {
|
|
63
|
-
onBlur,
|
|
64
|
-
onFocus,
|
|
65
|
-
onKeyDown,
|
|
66
|
-
onKeyUp,
|
|
67
|
-
onMouseUp,
|
|
68
|
-
onMouseMove,
|
|
69
|
-
onMouseDown,
|
|
70
|
-
...restInputProps
|
|
71
|
-
} = inputProps;
|
|
64
|
+
const { onBlur, onChange, onFocus, ...restInputProps } = inputProps;
|
|
72
65
|
const [value, setValue] = useControlled({
|
|
73
66
|
controlled: valueProp,
|
|
74
67
|
default: defaultValueProp,
|
|
@@ -78,7 +71,7 @@ const Input = forwardRef(function Input2({
|
|
|
78
71
|
const handleChange = (event) => {
|
|
79
72
|
const value2 = event.target.value;
|
|
80
73
|
setValue(value2);
|
|
81
|
-
onChange == null ? void 0 : onChange(event
|
|
74
|
+
onChange == null ? void 0 : onChange(event);
|
|
82
75
|
};
|
|
83
76
|
const handleBlur = (event) => {
|
|
84
77
|
onBlur == null ? void 0 : onBlur(event);
|
|
@@ -88,33 +81,50 @@ const Input = forwardRef(function Input2({
|
|
|
88
81
|
onFocus == null ? void 0 : onFocus(event);
|
|
89
82
|
setFocused(true);
|
|
90
83
|
};
|
|
91
|
-
return /* @__PURE__ */
|
|
84
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
92
85
|
className: clsx(
|
|
93
86
|
withBaseName(),
|
|
94
87
|
{
|
|
95
88
|
[withBaseName("focused")]: !isDisabled && focused,
|
|
96
89
|
[withBaseName("disabled")]: isDisabled,
|
|
97
90
|
[withBaseName("readOnly")]: isReadOnly,
|
|
91
|
+
[withBaseName(validationStatus || "")]: validationStatus,
|
|
98
92
|
[withBaseName(variant)]: variant
|
|
99
93
|
},
|
|
100
94
|
classNameProp
|
|
101
95
|
),
|
|
102
96
|
style,
|
|
103
97
|
...other,
|
|
104
|
-
children:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
98
|
+
children: [
|
|
99
|
+
startAdornment && /* @__PURE__ */ jsx("div", {
|
|
100
|
+
className: withBaseName("startAdornmentContainer"),
|
|
101
|
+
children: startAdornment
|
|
102
|
+
}),
|
|
103
|
+
/* @__PURE__ */ jsx("input", {
|
|
104
|
+
id,
|
|
105
|
+
className: clsx(
|
|
106
|
+
withBaseName("input"),
|
|
107
|
+
{ [withBaseName("withAdornment")]: validationStatus },
|
|
108
|
+
inputProps == null ? void 0 : inputProps.className
|
|
109
|
+
),
|
|
110
|
+
disabled: isDisabled,
|
|
111
|
+
readOnly: isReadOnly,
|
|
112
|
+
ref,
|
|
113
|
+
value,
|
|
114
|
+
tabIndex: isReadOnly || isDisabled ? -1 : 0,
|
|
115
|
+
onBlur: handleBlur,
|
|
116
|
+
onChange: handleChange,
|
|
117
|
+
onFocus: !isDisabled ? handleFocus : void 0,
|
|
118
|
+
...restInputProps
|
|
119
|
+
}),
|
|
120
|
+
!isDisabled && !isReadOnly && validationStatus && /* @__PURE__ */ jsx(StatusAdornment, {
|
|
121
|
+
status: validationStatus
|
|
122
|
+
}),
|
|
123
|
+
endAdornment && /* @__PURE__ */ jsx("div", {
|
|
124
|
+
className: withBaseName("endAdornmentContainer"),
|
|
125
|
+
children: endAdornment
|
|
126
|
+
})
|
|
127
|
+
]
|
|
118
128
|
});
|
|
119
129
|
});
|
|
120
130
|
|