@danske/sapphire-react-lab 0.77.4 → 0.80.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/build/cjs/index.js +1137 -813
- package/build/cjs/index.js.map +1 -1
- package/build/esm/DateField/src/DateField.js +4 -1
- package/build/esm/DateField/src/DateField.js.map +1 -1
- package/build/esm/DateField/src/DateRangeField.js +4 -1
- package/build/esm/DateField/src/DateRangeField.js.map +1 -1
- package/build/esm/Fieldset/src/Fieldset.js +8 -4
- package/build/esm/Fieldset/src/Fieldset.js.map +1 -1
- package/build/esm/NumberField/i18n/da-DK.js +9 -0
- package/build/esm/NumberField/i18n/da-DK.js.map +1 -0
- package/build/esm/NumberField/i18n/de-DE.js +9 -0
- package/build/esm/NumberField/i18n/de-DE.js.map +1 -0
- package/build/esm/NumberField/i18n/en-US.js +9 -0
- package/build/esm/NumberField/i18n/en-US.js.map +1 -0
- package/build/esm/NumberField/i18n/fi-FI.js +9 -0
- package/build/esm/NumberField/i18n/fi-FI.js.map +1 -0
- package/build/esm/NumberField/i18n/index.js +20 -0
- package/build/esm/NumberField/i18n/index.js.map +1 -0
- package/build/esm/NumberField/i18n/nb-NO.js +9 -0
- package/build/esm/NumberField/i18n/nb-NO.js.map +1 -0
- package/build/esm/NumberField/i18n/pl-PL.js +9 -0
- package/build/esm/NumberField/i18n/pl-PL.js.map +1 -0
- package/build/esm/NumberField/i18n/sv-SE.js +9 -0
- package/build/esm/NumberField/i18n/sv-SE.js.map +1 -0
- package/build/esm/NumberField/src/NumberField.js +149 -0
- package/build/esm/NumberField/src/NumberField.js.map +1 -0
- package/build/esm/NumberField/src/StepperButton.js +63 -0
- package/build/esm/NumberField/src/StepperButton.js.map +1 -0
- package/build/esm/NumberField/src/useAutofillStyle.js +21 -0
- package/build/esm/NumberField/src/useAutofillStyle.js.map +1 -0
- package/build/esm/NumberField/src/useSapphireNumberField.js +49 -0
- package/build/esm/NumberField/src/useSapphireNumberField.js.map +1 -0
- package/build/esm/Toast/src/ToastRegion.js +5 -2
- package/build/esm/Toast/src/ToastRegion.js.map +1 -1
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/index.d.ts +92 -4
- package/package.json +8 -5
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
|
|
3
|
+
function useAutofillStyle(inputRef) {
|
|
4
|
+
const [styles, setStyles] = useState({});
|
|
5
|
+
const updateStyle = () => {
|
|
6
|
+
const input = inputRef.current;
|
|
7
|
+
if (input) {
|
|
8
|
+
const color = window.getComputedStyle(input).backgroundColor;
|
|
9
|
+
setStyles({
|
|
10
|
+
boxShadow: `-100px 0 ${color}, 100px 0 ${color}`
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
return {
|
|
15
|
+
autofillStyles: styles,
|
|
16
|
+
updateStyle
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { useAutofillStyle };
|
|
21
|
+
//# sourceMappingURL=useAutofillStyle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutofillStyle.js","sources":["../../../../src/NumberField/src/useAutofillStyle.ts"],"sourcesContent":["import { CSSProperties, RefObject, useState } from 'react';\n\ninterface UseAutofillStyle {\n autofillStyles: CSSProperties;\n updateStyle: () => void;\n}\n\n//Copied from TextFieldBase, once NumberField moves into Core, this file can be removed and the import updated\nexport function useAutofillStyle<T>(\n inputRef: RefObject<\n T extends 'input' ? HTMLInputElement : HTMLTextAreaElement\n >\n): UseAutofillStyle {\n const [styles, setStyles] = useState<CSSProperties>({});\n\n const updateStyle = () => {\n const input = inputRef.current;\n if (input) {\n const color = window.getComputedStyle(input).backgroundColor;\n\n setStyles({\n boxShadow: `-100px 0 ${color}, 100px 0 ${color}`,\n });\n }\n };\n\n return {\n autofillStyles: styles,\n updateStyle,\n };\n}\n"],"names":[],"mappings":";;AAQO,SAAA,gBAAA,CACL,QAGkB,EAAA;AAClB,EAAM,MAAA,CAAC,MAAQ,EAAA,SAAA,CAAA,GAAa,QAAwB,CAAA,EAAA,CAAA,CAAA;AAEpD,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,MAAM,QAAQ,QAAS,CAAA,OAAA,CAAA;AACvB,IAAA,IAAI,KAAO,EAAA;AACT,MAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,gBAAA,CAAiB,KAAO,CAAA,CAAA,eAAA,CAAA;AAE7C,MAAU,SAAA,CAAA;AAAA,QACR,SAAA,EAAW,YAAY,KAAkB,CAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAK/C,EAAO,OAAA;AAAA,IACL,cAAgB,EAAA,MAAA;AAAA,IAChB,WAAA;AAAA,GAAA,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useNumberField } from '@react-aria/numberfield';
|
|
2
|
+
import { useNumberFieldState } from '@react-stately/numberfield';
|
|
3
|
+
import { useLocale } from '@react-aria/i18n';
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __defProps = Object.defineProperties;
|
|
7
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
8
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __objRest = (source, exclude) => {
|
|
25
|
+
var target = {};
|
|
26
|
+
for (var prop in source)
|
|
27
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
28
|
+
target[prop] = source[prop];
|
|
29
|
+
if (source != null && __getOwnPropSymbols)
|
|
30
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
31
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
32
|
+
target[prop] = source[prop];
|
|
33
|
+
}
|
|
34
|
+
return target;
|
|
35
|
+
};
|
|
36
|
+
const useSapphireNumberField = (_a, ref) => {
|
|
37
|
+
var _b = _a, { error } = _b, numberFieldProps = __objRest(_b, ["error"]);
|
|
38
|
+
const { locale } = useLocale();
|
|
39
|
+
const numberFieldState = useNumberFieldState(__spreadProps(__spreadValues({}, numberFieldProps), {
|
|
40
|
+
locale
|
|
41
|
+
}));
|
|
42
|
+
const numberFieldAria = useNumberField(__spreadProps(__spreadValues({}, numberFieldProps), {
|
|
43
|
+
validationState: error === false || error === void 0 ? void 0 : "invalid"
|
|
44
|
+
}), numberFieldState, ref);
|
|
45
|
+
return numberFieldAria;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export { useSapphireNumberField };
|
|
49
|
+
//# sourceMappingURL=useSapphireNumberField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSapphireNumberField.js","sources":["../../../../src/NumberField/src/useSapphireNumberField.ts"],"sourcesContent":["import { RefObject } from 'react';\nimport {\n AriaNumberFieldProps,\n NumberFieldAria,\n useNumberField,\n} from '@react-aria/numberfield';\nimport { useNumberFieldState } from '@react-stately/numberfield';\nimport { useLocale } from '@react-aria/i18n';\nimport { Validation } from '@react-types/shared';\n\nexport interface SapphireNumberFieldProps\n /**\n * Reasons to omit the below properties:\n * - Validation:\n * - validationState: we handle that with the `error` prop instead.\n * - errorMessage: our own error-prop covers the same.\n */\n extends Omit<\n AriaNumberFieldProps,\n 'errorMessage' | keyof Omit<Validation<unknown>, 'isRequired'>\n > {\n /**\n * Whether the input should render as having an error and an error message.\n * This also sets the appropriate `aria` attributes on the input.\n *\n * A `boolean` sets the error state.\n * A `string` sets the error state with an additional error message.\n *\n * **An error message is strongly recommended because an error should always have an explanation about how to fix it.**\n */\n error?: boolean | string;\n}\n\nexport const useSapphireNumberField = (\n { error, ...numberFieldProps }: SapphireNumberFieldProps,\n ref: RefObject<HTMLInputElement>\n): NumberFieldAria => {\n const { locale } = useLocale();\n const numberFieldState = useNumberFieldState({\n ...numberFieldProps,\n locale,\n });\n const numberFieldAria = useNumberField(\n {\n ...numberFieldProps,\n validationState:\n error === false || error === undefined ? undefined : 'invalid',\n },\n numberFieldState,\n ref\n );\n\n return numberFieldAria;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCa,MAAA,sBAAA,GAAyB,CACpC,EAAA,EACA,GACoB,KAAA;AAFpB,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAF,KAAA,EAAA,GAAA,EAAA,EAAY,gBAAZ,GAAA,SAAA,CAAA,EAAA,EAAY,CAAV,OAAA,CAAA,CAAA,CAAA;AAGF,EAAA,MAAM,EAAE,MAAW,EAAA,GAAA,SAAA,EAAA,CAAA;AACnB,EAAM,MAAA,gBAAA,GAAmB,mBAAoB,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACxC,gBADwC,CAAA,EAAA;AAAA,IAE3C,MAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAEF,EAAM,MAAA,eAAA,GAAkB,cACtB,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,gBADL,CAAA,EAAA;AAAA,IAEE,eACE,EAAA,KAAA,KAAU,KAAS,IAAA,KAAA,KAAU,SAAY,KAAY,CAAA,GAAA,SAAA;AAAA,GAAA,CAAA,EAEzD,gBACA,EAAA,GAAA,CAAA,CAAA;AAGF,EAAO,OAAA,eAAA,CAAA;AAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useRef } from 'react';
|
|
2
2
|
import { useToastRegion } from '@react-aria/toast';
|
|
3
|
-
import { SapphireOverlayContainer, ThemeRoot } from '@danske/sapphire-react';
|
|
3
|
+
import { useThemeContext, SapphireOverlayContainer, ThemeRoot } from '@danske/sapphire-react';
|
|
4
4
|
import styles from '@danske/sapphire-css/components/toast/toast.module.css';
|
|
5
5
|
import { Toast } from './Toast.js';
|
|
6
6
|
|
|
@@ -39,12 +39,15 @@ const ToastRegion = (_a) => {
|
|
|
39
39
|
var _b = _a, { state } = _b, props = __objRest(_b, ["state"]);
|
|
40
40
|
const ref = useRef(null);
|
|
41
41
|
const { regionProps } = useToastRegion(props, state, ref);
|
|
42
|
+
const { overlayZIndex = 100 } = useThemeContext();
|
|
42
43
|
return /* @__PURE__ */ React.createElement(SapphireOverlayContainer, null, /* @__PURE__ */ React.createElement(ThemeRoot, {
|
|
43
44
|
contrast: true
|
|
44
45
|
}, /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({}, regionProps), {
|
|
45
46
|
ref,
|
|
46
47
|
className: styles["sapphire-toast-container"],
|
|
47
|
-
style: {
|
|
48
|
+
style: {
|
|
49
|
+
zIndex: overlayZIndex + 200
|
|
50
|
+
}
|
|
48
51
|
}), state.visibleToasts.map((toast) => /* @__PURE__ */ React.createElement(Toast, __spreadProps(__spreadValues({}, props), {
|
|
49
52
|
key: toast.key,
|
|
50
53
|
toast,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastRegion.js","sources":["../../../../src/Toast/src/ToastRegion.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { AriaToastRegionProps, useToastRegion } from '@react-aria/toast';\nimport {\n SapphireOverlayContainer,\n SapphireStyleProps,\n ThemeRoot,\n} from '@danske/sapphire-react';\n\nimport styles from '@danske/sapphire-css/components/toast/toast.module.css';\nimport { ToastState } from '@react-stately/toast';\nimport { Toast } from './Toast';\n\nexport type ToastRegionProps<T> = AriaToastRegionProps &\n SapphireStyleProps & {\n state: ToastState<T>;\n };\n\nexport const ToastRegion = <T,>({ state, ...props }: ToastRegionProps<T>) => {\n const ref = useRef(null);\n const { regionProps } = useToastRegion(props, state, ref);\n\n return (\n <SapphireOverlayContainer>\n <ThemeRoot contrast>\n <div\n {...regionProps}\n ref={ref}\n className={styles['sapphire-toast-container']}\n style={{
|
|
1
|
+
{"version":3,"file":"ToastRegion.js","sources":["../../../../src/Toast/src/ToastRegion.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { AriaToastRegionProps, useToastRegion } from '@react-aria/toast';\nimport {\n SapphireOverlayContainer,\n SapphireStyleProps,\n ThemeRoot,\n useThemeContext,\n} from '@danske/sapphire-react';\n\nimport styles from '@danske/sapphire-css/components/toast/toast.module.css';\nimport { ToastState } from '@react-stately/toast';\nimport { Toast } from './Toast';\n\nexport type ToastRegionProps<T> = AriaToastRegionProps &\n SapphireStyleProps & {\n state: ToastState<T>;\n };\n\nexport const ToastRegion = <T,>({ state, ...props }: ToastRegionProps<T>) => {\n const ref = useRef(null);\n const { regionProps } = useToastRegion(props, state, ref);\n const { overlayZIndex = 100 } = useThemeContext();\n\n return (\n <SapphireOverlayContainer>\n <ThemeRoot contrast>\n <div\n {...regionProps}\n ref={ref}\n className={styles['sapphire-toast-container']}\n style={\n {\n zIndex: overlayZIndex + 200,\n } /* above overlays from @danske/sapphire-react */\n }\n >\n {state.visibleToasts.map((toast) => (\n <Toast {...props} key={toast.key} toast={toast} state={state} />\n ))}\n </div>\n </ThemeRoot>\n </SapphireOverlayContainer>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBa,MAAA,WAAA,GAAc,CAAK,EAA6C,KAAA;AAA7C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAF,KAAA,EAAA,GAAA,EAAA,EAAY,KAAZ,GAAA,SAAA,CAAA,EAAA,EAAY,CAAV,OAAA,CAAA,CAAA,CAAA;AAChC,EAAA,MAAM,MAAM,MAAO,CAAA,IAAA,CAAA,CAAA;AACnB,EAAA,MAAM,EAAE,WAAA,EAAA,GAAgB,cAAe,CAAA,KAAA,EAAO,KAAO,EAAA,GAAA,CAAA,CAAA;AACrD,EAAM,MAAA,EAAE,gBAAgB,GAAQ,EAAA,GAAA,eAAA,EAAA,CAAA;AAEhC,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,wBAAA,EAAD,IACE,kBAAA,KAAA,CAAA,aAAA,CAAC,SAAD,EAAA;AAAA,IAAW,QAAQ,EAAA,IAAA;AAAA,GACjB,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACM,WADN,CAAA,EAAA;AAAA,IAEE,GAAA;AAAA,IACA,WAAW,MAAO,CAAA,0BAAA,CAAA;AAAA,IAClB,KACE,EAAA;AAAA,MACE,QAAQ,aAAgB,GAAA,GAAA;AAAA,KAAA;AAAA,GAI3B,CAAA,EAAA,KAAA,CAAM,cAAc,GAAI,CAAA,CAAC,0BACvB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAD,iCAAW,KAAX,CAAA,EAAA;AAAA,IAAkB,KAAK,KAAM,CAAA,GAAA;AAAA,IAAK,KAAA;AAAA,IAAc,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -17,5 +17,6 @@ export { Accordion } from './Accordion/index.js';
|
|
|
17
17
|
export { Typography } from './Typography/index.js';
|
|
18
18
|
export { Fieldset } from './Fieldset/src/Fieldset.js';
|
|
19
19
|
export { Avatar } from './Avatar/src/Avatar.js';
|
|
20
|
+
export { NumberField } from './NumberField/src/NumberField.js';
|
|
20
21
|
export { useLocale } from '@react-aria/i18n';
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _react_types_shared from '@react-types/shared';
|
|
2
|
-
import { PressEvents, Validation, RangeValue, HelpTextProps, LabelableProps, CollectionBase, DOMProps, Expandable, ItemProps } from '@react-types/shared';
|
|
2
|
+
import { PressEvents, Validation, RangeValue, HelpTextProps, LabelableProps, CollectionBase, DOMProps, Expandable, ItemProps, FocusableRefValue } from '@react-types/shared';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import React__default, { ReactNode, ComponentType } from 'react';
|
|
4
|
+
import React__default, { ReactNode, ComponentType, RefObject } from 'react';
|
|
5
5
|
import { AriaToggleButtonProps } from '@react-aria/button';
|
|
6
6
|
import { SapphireStyleProps, PopoverTriggerProps, HeadingProps, TextStyleProps } from '@danske/sapphire-react';
|
|
7
7
|
import { DateValue } from '@internationalized/date';
|
|
@@ -13,6 +13,7 @@ import { ComboBoxProps } from '@react-types/combobox';
|
|
|
13
13
|
import { AriaSearchFieldProps } from '@react-aria/searchfield';
|
|
14
14
|
import { AriaToastRegionProps } from '@react-aria/toast';
|
|
15
15
|
import { ToastState } from '@react-stately/toast';
|
|
16
|
+
import { AriaNumberFieldProps } from '@react-aria/numberfield';
|
|
16
17
|
export { useLocale } from '@react-aria/i18n';
|
|
17
18
|
|
|
18
19
|
declare type SapphireToggleButtonProps = Omit<AriaToggleButtonProps<'button'>, 'elementType' | 'type'> & SapphireStyleProps & PressEvents & {
|
|
@@ -263,6 +264,11 @@ declare type DateFieldProps<T extends DateValue$1> = Omit<AriaDatePickerProps<T>
|
|
|
263
264
|
* @default false
|
|
264
265
|
*/
|
|
265
266
|
necessityIndicator?: boolean;
|
|
267
|
+
/**
|
|
268
|
+
* Places the label either above (default) or on the side of the control.
|
|
269
|
+
* @default 'above'
|
|
270
|
+
*/
|
|
271
|
+
labelPlacement?: 'side' | 'above';
|
|
266
272
|
};
|
|
267
273
|
/**
|
|
268
274
|
* A date field allows users to enter or edit date values using the keyboard
|
|
@@ -308,6 +314,11 @@ declare const DateField: <T extends DateValue$1>(props: Omit<AriaDatePickerProps
|
|
|
308
314
|
* @default false
|
|
309
315
|
*/
|
|
310
316
|
necessityIndicator?: boolean | undefined;
|
|
317
|
+
/**
|
|
318
|
+
* Places the label either above (default) or on the side of the control.
|
|
319
|
+
* @default 'above'
|
|
320
|
+
*/
|
|
321
|
+
labelPlacement?: "above" | "side" | undefined;
|
|
311
322
|
} & {
|
|
312
323
|
ref?: React__default.RefObject<HTMLDivElement> | undefined;
|
|
313
324
|
}) => React__default.ReactElement;
|
|
@@ -380,6 +391,11 @@ declare type DateRangeFieldProps<T extends DateValue$1, P extends string> = Omit
|
|
|
380
391
|
* @default false
|
|
381
392
|
*/
|
|
382
393
|
necessityIndicator?: boolean;
|
|
394
|
+
/**
|
|
395
|
+
* Places the label either above (default) or on the side of the control.
|
|
396
|
+
* @default 'above'
|
|
397
|
+
*/
|
|
398
|
+
labelPlacement?: 'side' | 'above';
|
|
383
399
|
};
|
|
384
400
|
/**
|
|
385
401
|
* A date range field allows users to select a range of dates by selecting a to and a from date with keyboard and/or mouse.
|
|
@@ -447,6 +463,11 @@ declare const DateRangeField: <T extends DateValue$1, P extends string>(props: O
|
|
|
447
463
|
* @default false
|
|
448
464
|
*/
|
|
449
465
|
necessityIndicator?: boolean | undefined;
|
|
466
|
+
/**
|
|
467
|
+
* Places the label either above (default) or on the side of the control.
|
|
468
|
+
* @default 'above'
|
|
469
|
+
*/
|
|
470
|
+
labelPlacement?: "above" | "side" | undefined;
|
|
450
471
|
} & {
|
|
451
472
|
ref?: React__default.RefObject<HTMLDivElement> | undefined;
|
|
452
473
|
}) => React__default.ReactElement;
|
|
@@ -721,11 +742,16 @@ declare type FieldsetProps = SapphireStyleProps & {
|
|
|
721
742
|
* ```
|
|
722
743
|
*/
|
|
723
744
|
children: ReactNode;
|
|
745
|
+
/**
|
|
746
|
+
* Places the label either above (default) or on the side of the control.
|
|
747
|
+
* @default 'above'
|
|
748
|
+
*/
|
|
749
|
+
labelPlacement?: 'side' | 'above';
|
|
724
750
|
};
|
|
725
751
|
/**
|
|
726
752
|
* Sapphire search input field.
|
|
727
753
|
*/
|
|
728
|
-
declare const Fieldset: ({ label, contextualHelp, note, error, isDisabled, isRequired, necessityIndicator, children, size, ...props }: FieldsetProps) => React__default.JSX.Element;
|
|
754
|
+
declare const Fieldset: ({ label, contextualHelp, note, error, isDisabled, isRequired, necessityIndicator, children, size, labelPlacement, ...props }: FieldsetProps) => React__default.JSX.Element;
|
|
729
755
|
|
|
730
756
|
declare type SapphireAvatarProps = SapphireStyleProps & {
|
|
731
757
|
/**
|
|
@@ -748,4 +774,66 @@ declare type SapphireAvatarProps = SapphireStyleProps & {
|
|
|
748
774
|
});
|
|
749
775
|
declare const Avatar: ({ monogram, icon, color, size, ...props }: SapphireAvatarProps) => React__default.ReactElement;
|
|
750
776
|
|
|
751
|
-
|
|
777
|
+
interface SapphireNumberFieldProps
|
|
778
|
+
/**
|
|
779
|
+
* Reasons to omit the below properties:
|
|
780
|
+
* - Validation:
|
|
781
|
+
* - validationState: we handle that with the `error` prop instead.
|
|
782
|
+
* - errorMessage: our own error-prop covers the same.
|
|
783
|
+
*/
|
|
784
|
+
extends Omit<AriaNumberFieldProps, 'errorMessage' | keyof Omit<Validation<unknown>, 'isRequired'>> {
|
|
785
|
+
/**
|
|
786
|
+
* Whether the input should render as having an error and an error message.
|
|
787
|
+
* This also sets the appropriate `aria` attributes on the input.
|
|
788
|
+
*
|
|
789
|
+
* A `boolean` sets the error state.
|
|
790
|
+
* A `string` sets the error state with an additional error message.
|
|
791
|
+
*
|
|
792
|
+
* **An error message is strongly recommended because an error should always have an explanation about how to fix it.**
|
|
793
|
+
*/
|
|
794
|
+
error?: boolean | string;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
declare type NumberFieldRef = FocusableRefValue<HTMLInputElement, HTMLDivElement> & {
|
|
798
|
+
getInputElement(): HTMLInputElement | null;
|
|
799
|
+
};
|
|
800
|
+
interface NumberFieldProps extends SapphireNumberFieldProps, PressEvents, SapphireStyleProps {
|
|
801
|
+
prefix?: ReactNode;
|
|
802
|
+
postfix?: ReactNode;
|
|
803
|
+
inputRef?: RefObject<HTMLInputElement | null>;
|
|
804
|
+
/**
|
|
805
|
+
* A note to show below the input.
|
|
806
|
+
* If the input has an error message, this note will be replaced by that.
|
|
807
|
+
*/
|
|
808
|
+
note?: ReactNode;
|
|
809
|
+
/**
|
|
810
|
+
* A ContextualHelp to render next to the label.
|
|
811
|
+
*/
|
|
812
|
+
contextualHelp?: ReactNode;
|
|
813
|
+
/**
|
|
814
|
+
* To visually indicate if this field is required or optional.
|
|
815
|
+
* @default false
|
|
816
|
+
*/
|
|
817
|
+
necessityIndicator?: boolean;
|
|
818
|
+
/**
|
|
819
|
+
* @default 'large'
|
|
820
|
+
*/
|
|
821
|
+
size?: 'large' | 'medium';
|
|
822
|
+
/**
|
|
823
|
+
* Aligns the text inside the input fields without affecting the positioning of the label of the field.
|
|
824
|
+
*/
|
|
825
|
+
alignInputRight?: boolean;
|
|
826
|
+
/**
|
|
827
|
+
* Places the label either above (default) or on the side of the control.
|
|
828
|
+
* @default 'above'
|
|
829
|
+
*/
|
|
830
|
+
labelPlacement?: 'side' | 'above';
|
|
831
|
+
/**
|
|
832
|
+
* To show the buttons for incrementing and decrementing the value.
|
|
833
|
+
* @default false
|
|
834
|
+
*/
|
|
835
|
+
showButtons?: boolean;
|
|
836
|
+
}
|
|
837
|
+
declare const NumberField: React__default.ForwardRefExoticComponent<NumberFieldProps & React__default.RefAttributes<NumberFieldRef>>;
|
|
838
|
+
|
|
839
|
+
export { _Accordion as Accordion, Avatar, Calendar, CalendarView, DateField, DateFieldProps, DateRangeField, DateRangeFieldProps, FeedbackMessage, Fieldset, FieldsetProps, FilterDropdown, NotificationBadge, NotificationBadgeProps, NumberField, NumberFieldProps, NumberFieldRef, PredefinedDateRange, RangeCalendar, SapphireAccordionHeadingProps, SapphireAccordionItemProps, SapphireAccordionProps, SapphireAvatarProps, SapphireCalendarProps, SapphireFeedbackMessageProps, SapphireFilterDropdownProps, SapphireRangeCalendarProps, SapphireSearchFieldProps, SapphireToggleButtonProps, SearchField, ShowToastFn, ShowToastOptions, Spinner, SpinnerProps, ToastProvider, ToastProviderProps, ToggleButton, Typography, TypographyBodyProps, TypographyCaptionProps, TypographyHeadingProps, TypographySubheadingProps, isDateOutsideValidRange, isEndDateBeforeStartDate, useShowToast };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@danske/sapphire-react-lab",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.80.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"description": "Experimental React components of the Sapphire Design System from Danske Bank A/S",
|
|
6
6
|
"exports": {
|
|
@@ -19,23 +19,24 @@
|
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
21
|
"build": "cross-env ../../node_modules/.bin/rollup --config ../../rollup.config.js",
|
|
22
|
+
"postpublish": "echo bypassing npx -y send-release-notes@latest --to=6d5d8a75.groupsmail.danskebank.com@emea.teams.ms",
|
|
22
23
|
"prepare": "yarn run build",
|
|
23
24
|
"prepublishOnly": "yarn run build"
|
|
24
25
|
},
|
|
25
26
|
"peerDependencies": {
|
|
26
27
|
"@danske/sapphire-icons": "^2.1.0",
|
|
27
|
-
"@danske/sapphire-react": "^3.
|
|
28
|
+
"@danske/sapphire-react": "^3.27.0",
|
|
28
29
|
"react": ">=16.8.0",
|
|
29
30
|
"react-dom": ">=16.8.0"
|
|
30
31
|
},
|
|
31
32
|
"devDependencies": {
|
|
32
33
|
"@danske/sapphire-icons": "^2.1.0",
|
|
33
|
-
"@danske/sapphire-react": "^3.
|
|
34
|
+
"@danske/sapphire-react": "^3.27.0",
|
|
34
35
|
"@types/react-transition-group": "^4.4.5",
|
|
35
36
|
"cross-env": "^7.0.3"
|
|
36
37
|
},
|
|
37
38
|
"dependencies": {
|
|
38
|
-
"@danske/sapphire-css": "^
|
|
39
|
+
"@danske/sapphire-css": "^27.0.0",
|
|
39
40
|
"@internationalized/date": "^3.5.2",
|
|
40
41
|
"@internationalized/string": "^3.2.1",
|
|
41
42
|
"@react-aria/accordion": "^3.0.0-alpha.27",
|
|
@@ -48,6 +49,7 @@
|
|
|
48
49
|
"@react-aria/i18n": "^3.10.2",
|
|
49
50
|
"@react-aria/interactions": "^3.21.1",
|
|
50
51
|
"@react-aria/label": "^3.7.6",
|
|
52
|
+
"@react-aria/numberfield": "^3.11.3",
|
|
51
53
|
"@react-aria/overlays": "^3.21.1",
|
|
52
54
|
"@react-aria/searchfield": "^3.7.3",
|
|
53
55
|
"@react-aria/toast": "^3.0.0-beta.10",
|
|
@@ -58,6 +60,7 @@
|
|
|
58
60
|
"@react-stately/collections": "^3.10.5",
|
|
59
61
|
"@react-stately/combobox": "^3.8.2",
|
|
60
62
|
"@react-stately/datepicker": "^3.9.2",
|
|
63
|
+
"@react-stately/numberfield": "^3.9.3",
|
|
61
64
|
"@react-stately/searchfield": "^3.5.1",
|
|
62
65
|
"@react-stately/toast": "^3.0.0-beta.2",
|
|
63
66
|
"@react-stately/toggle": "^3.7.2",
|
|
@@ -68,5 +71,5 @@
|
|
|
68
71
|
"clsx": "^1.1.1",
|
|
69
72
|
"react-transition-group": "^4.4.5"
|
|
70
73
|
},
|
|
71
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "e207779162338643e012a71b68cbd4d2ad5def7d"
|
|
72
75
|
}
|