@danske/sapphire-react-lab 0.99.3 → 0.101.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 +1139 -801
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/src/AccordionHeading.js.map +1 -1
- package/build/esm/Alert/src/Alert.js.map +1 -1
- package/build/esm/Autocomplete/i18n/da-DK.js +6 -0
- package/build/esm/Autocomplete/i18n/da-DK.js.map +1 -0
- package/build/esm/Autocomplete/i18n/de-DE.js +6 -0
- package/build/esm/Autocomplete/i18n/de-DE.js.map +1 -0
- package/build/esm/Autocomplete/i18n/en-US.js +6 -0
- package/build/esm/Autocomplete/i18n/en-US.js.map +1 -0
- package/build/esm/Autocomplete/i18n/fi-FI.js +6 -0
- package/build/esm/Autocomplete/i18n/fi-FI.js.map +1 -0
- package/build/esm/Autocomplete/i18n/index.js +20 -0
- package/build/esm/Autocomplete/i18n/index.js.map +1 -0
- package/build/esm/Autocomplete/i18n/nb-NO.js +6 -0
- package/build/esm/Autocomplete/i18n/nb-NO.js.map +1 -0
- package/build/esm/Autocomplete/i18n/pl-PL.js +6 -0
- package/build/esm/Autocomplete/i18n/pl-PL.js.map +1 -0
- package/build/esm/Autocomplete/i18n/sv-SE.js +6 -0
- package/build/esm/Autocomplete/i18n/sv-SE.js.map +1 -0
- package/build/esm/Autocomplete/src/Autocomplete.js +89 -0
- package/build/esm/Autocomplete/src/Autocomplete.js.map +1 -0
- package/build/esm/Breadcrumbs/src/BreadcrumbItemLink.js +6 -0
- package/build/esm/Breadcrumbs/src/BreadcrumbItemLink.js.map +1 -1
- package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js +36 -0
- package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js.map +1 -0
- package/build/esm/Filtering/src/FilterDropdown.js +3 -2
- package/build/esm/Filtering/src/FilterDropdown.js.map +1 -1
- package/build/esm/Filtering/src/SearchableSelectFilter.js +14 -11
- package/build/esm/Filtering/src/SearchableSelectFilter.js.map +1 -1
- package/build/esm/LabeledValue/src/LabeledValue.js.map +1 -1
- package/build/esm/NumberField/src/StepperButton.js.map +1 -1
- package/build/esm/TagGroup/src/Tag.js.map +1 -1
- package/build/esm/TagGroup/src/TagGroup.js.map +1 -1
- package/build/esm/TimeField/i18n/da-DK.js +7 -0
- package/build/esm/TimeField/i18n/da-DK.js.map +1 -0
- package/build/esm/TimeField/i18n/de-DE.js +7 -0
- package/build/esm/TimeField/i18n/de-DE.js.map +1 -0
- package/build/esm/TimeField/i18n/en-US.js +7 -0
- package/build/esm/TimeField/i18n/en-US.js.map +1 -0
- package/build/esm/TimeField/i18n/fi-FI.js +7 -0
- package/build/esm/TimeField/i18n/fi-FI.js.map +1 -0
- package/build/esm/TimeField/i18n/index.js +20 -0
- package/build/esm/TimeField/i18n/index.js.map +1 -0
- package/build/esm/TimeField/i18n/nb-NO.js +7 -0
- package/build/esm/TimeField/i18n/nb-NO.js.map +1 -0
- package/build/esm/TimeField/i18n/pl-PL.js +7 -0
- package/build/esm/TimeField/i18n/pl-PL.js.map +1 -0
- package/build/esm/TimeField/i18n/sv-SE.js +7 -0
- package/build/esm/TimeField/i18n/sv-SE.js.map +1 -0
- package/build/esm/TimeField/src/TimeField.js +106 -0
- package/build/esm/TimeField/src/TimeField.js.map +1 -0
- package/build/esm/TimeField/src/TimeFieldSegment.js +48 -0
- package/build/esm/TimeField/src/TimeFieldSegment.js.map +1 -0
- package/build/esm/index.js +9 -7
- package/build/esm/index.js.map +1 -1
- package/build/index.d.ts +246 -133
- package/package.json +8 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en-US.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fi-FI.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import da from './da-DK.js';
|
|
2
|
+
import en from './en-US.js';
|
|
3
|
+
import de from './de-DE.js';
|
|
4
|
+
import fi from './fi-FI.js';
|
|
5
|
+
import no from './nb-NO.js';
|
|
6
|
+
import pl from './pl-PL.js';
|
|
7
|
+
import se from './sv-SE.js';
|
|
8
|
+
|
|
9
|
+
var intlMessages = {
|
|
10
|
+
"da-DK": da,
|
|
11
|
+
"en-US": en,
|
|
12
|
+
"de-DE": de,
|
|
13
|
+
"fi-FI": fi,
|
|
14
|
+
"nb-NO": no,
|
|
15
|
+
"pl-PL": pl,
|
|
16
|
+
"sv-SE": se
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { intlMessages as default };
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/TimeField/i18n/index.ts"],"sourcesContent":["import da from './da-DK.json';\nimport en from './en-US.json';\nimport de from './de-DE.json';\nimport fi from './fi-FI.json';\nimport no from './nb-NO.json';\nimport pl from './pl-PL.json';\nimport se from './sv-SE.json';\n\nexport default {\n 'da-DK': da,\n 'en-US': en,\n 'de-DE': de,\n 'fi-FI': fi,\n 'nb-NO': no,\n 'pl-PL': pl,\n 'sv-SE': se,\n};\n"],"names":[],"mappings":";;;;;;;;AAQA,mBAAe;AAAA,EACb,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,CAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nb-NO.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pl-PL.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sv-SE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
|
|
4
|
+
import { useThemeCheck, Field, Label, IconButton, Icon } from '@danske/sapphire-react';
|
|
5
|
+
import { useTimeField } from '@react-aria/datepicker';
|
|
6
|
+
import { useTimeFieldState } from '@react-stately/datepicker';
|
|
7
|
+
import { useLocale, useMessageFormatter } from '@react-aria/i18n';
|
|
8
|
+
import { TimeSegment } from './TimeFieldSegment.js';
|
|
9
|
+
import { CloseOutline } from '@danske/sapphire-icons/react';
|
|
10
|
+
import { useObjectRef } from '@react-aria/utils';
|
|
11
|
+
import intlMessages from '../i18n/index.js';
|
|
12
|
+
|
|
13
|
+
var __defProp = Object.defineProperty;
|
|
14
|
+
var __defProps = Object.defineProperties;
|
|
15
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
16
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
17
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
18
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
19
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
20
|
+
var __spreadValues = (a, b) => {
|
|
21
|
+
for (var prop in b || (b = {}))
|
|
22
|
+
if (__hasOwnProp.call(b, prop))
|
|
23
|
+
__defNormalProp(a, prop, b[prop]);
|
|
24
|
+
if (__getOwnPropSymbols)
|
|
25
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
26
|
+
if (__propIsEnum.call(b, prop))
|
|
27
|
+
__defNormalProp(a, prop, b[prop]);
|
|
28
|
+
}
|
|
29
|
+
return a;
|
|
30
|
+
};
|
|
31
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
32
|
+
var __objRest = (source, exclude) => {
|
|
33
|
+
var target = {};
|
|
34
|
+
for (var prop in source)
|
|
35
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
36
|
+
target[prop] = source[prop];
|
|
37
|
+
if (source != null && __getOwnPropSymbols)
|
|
38
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
39
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
40
|
+
target[prop] = source[prop];
|
|
41
|
+
}
|
|
42
|
+
return target;
|
|
43
|
+
};
|
|
44
|
+
const isAnySegmentModified = (segments) => segments.map(({ type, isPlaceholder }) => {
|
|
45
|
+
return type !== "literal" && !isPlaceholder;
|
|
46
|
+
}).some((isModified) => isModified);
|
|
47
|
+
function _TimeField(_a, ref) {
|
|
48
|
+
var _b = _a, {
|
|
49
|
+
size = "lg",
|
|
50
|
+
noClearButton = false,
|
|
51
|
+
error,
|
|
52
|
+
note,
|
|
53
|
+
contextualHelp,
|
|
54
|
+
necessityIndicator = false
|
|
55
|
+
} = _b, otherProps = __objRest(_b, [
|
|
56
|
+
"size",
|
|
57
|
+
"noClearButton",
|
|
58
|
+
"error",
|
|
59
|
+
"note",
|
|
60
|
+
"contextualHelp",
|
|
61
|
+
"necessityIndicator"
|
|
62
|
+
]);
|
|
63
|
+
useThemeCheck();
|
|
64
|
+
const timeFieldRef = useObjectRef(ref);
|
|
65
|
+
const { locale } = useLocale();
|
|
66
|
+
const formatMessage = useMessageFormatter(intlMessages);
|
|
67
|
+
const state = useTimeFieldState(__spreadProps(__spreadValues({}, otherProps), {
|
|
68
|
+
locale,
|
|
69
|
+
isInvalid: error ? true : void 0
|
|
70
|
+
}));
|
|
71
|
+
const { fieldProps, labelProps } = useTimeField(__spreadValues({}, otherProps), state, timeFieldRef);
|
|
72
|
+
return /* @__PURE__ */ React.createElement(Field, __spreadProps(__spreadValues({}, otherProps), {
|
|
73
|
+
ref,
|
|
74
|
+
size,
|
|
75
|
+
noShrink: true
|
|
76
|
+
}), /* @__PURE__ */ React.createElement(Field.Context, null, otherProps.label && /* @__PURE__ */ React.createElement(Field.Label, null, /* @__PURE__ */ React.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
|
|
77
|
+
size,
|
|
78
|
+
necessityIndicator: otherProps.isRequired && necessityIndicator ? "required" : !otherProps.isRequired && necessityIndicator ? "optional" : void 0,
|
|
79
|
+
contextualHelp
|
|
80
|
+
}), otherProps.label))), /* @__PURE__ */ React.createElement(Field.Control, null, /* @__PURE__ */ React.createElement("div", {
|
|
81
|
+
className: clsx(styles["sapphire-date-field"], {
|
|
82
|
+
[styles["sapphire-date-field--error"]]: state.isInvalid,
|
|
83
|
+
[styles["sapphire-date-field--no-clear-button"]]: noClearButton,
|
|
84
|
+
[styles["sapphire-date-field--no-calendar"]]: true,
|
|
85
|
+
[styles["sapphire-date-field--md"]]: size === "md"
|
|
86
|
+
})
|
|
87
|
+
}, /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({}, fieldProps), {
|
|
88
|
+
className: styles["sapphire-date-field__input"],
|
|
89
|
+
ref: timeFieldRef
|
|
90
|
+
}), state.segments.map((segment, i) => /* @__PURE__ */ React.createElement(TimeSegment, {
|
|
91
|
+
key: i,
|
|
92
|
+
segment,
|
|
93
|
+
state
|
|
94
|
+
}))), !noClearButton && !otherProps.isReadOnly && !otherProps.isDisabled && isAnySegmentModified(state.segments) && /* @__PURE__ */ React.createElement(IconButton, {
|
|
95
|
+
"aria-label": formatMessage("clear"),
|
|
96
|
+
onPress: () => state.segments.forEach((segment) => state.clearSegment(segment.type)),
|
|
97
|
+
size: size === "md" ? "sm" : "md",
|
|
98
|
+
UNSAFE_className: clsx(styles["sapphire-date-field__button"], styles["sapphire-date-field__button--clear"])
|
|
99
|
+
}, /* @__PURE__ */ React.createElement(Icon, null, /* @__PURE__ */ React.createElement(CloseOutline, null))))), !!error && typeof error !== "boolean" || note ? /* @__PURE__ */ React.createElement(Field.Footer, null, !!error && typeof error !== "boolean" ? /* @__PURE__ */ React.createElement(Field.Note, {
|
|
100
|
+
variant: "error"
|
|
101
|
+
}, error) : note ? note : null) : null);
|
|
102
|
+
}
|
|
103
|
+
const TimeField = forwardRef(_TimeField);
|
|
104
|
+
|
|
105
|
+
export { TimeField };
|
|
106
|
+
//# sourceMappingURL=TimeField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeField.js","sources":["../../../../src/TimeField/src/TimeField.tsx"],"sourcesContent":["import React from 'react';\nimport clsx from 'clsx';\nimport styles from '@danske/sapphire-css/components/dateField/dateField.module.css';\nimport {\n SapphireStyleProps,\n useThemeCheck,\n Field,\n Label,\n Icon,\n IconButton,\n} from '@danske/sapphire-react';\nimport { AriaTimeFieldProps, useTimeField } from '@react-aria/datepicker';\nimport { ForwardedRef, forwardRef, RefObject, ReactNode } from 'react';\nimport { TimeValue } from 'react-aria-components';\nimport {\n useTimeFieldState,\n DateSegment as DateSegmentType,\n} from '@react-stately/datepicker';\nimport { useLocale, useMessageFormatter } from '@react-aria/i18n';\nimport { TimeSegment } from './TimeFieldSegment';\nimport { CloseOutline } from '@danske/sapphire-icons/react';\nimport { useObjectRef } from '@react-aria/utils';\nimport intlMessages from '../i18n';\n\nconst isAnySegmentModified = (segments: DateSegmentType[]) =>\n segments\n .map(({ type, isPlaceholder }) => {\n // type \"literal\" refers to the segment containing the non-editable separator\n return type !== 'literal' && !isPlaceholder;\n })\n .some((isModified) => isModified);\n\nexport type TimeFieldProps<T extends TimeValue> = Pick<\n AriaTimeFieldProps<T>,\n // TODO: when this is moved to `core`, we can replace the picked props with `ValueBasePropsKeys`\n | 'isDisabled'\n | 'isRequired'\n | 'isReadOnly'\n | 'label'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'shouldForceLeadingZeros'\n> &\n SapphireStyleProps & {\n /**\n * @default 'lg'\n */\n size?: 'lg' | 'md';\n /**\n * To visually indicate if this field is required or optional.\n * @default false\n */\n necessityIndicator?: boolean;\n /**\n * Places the label either above (default) or on the side of the control.\n * @default 'above'\n */\n labelPlacement?: 'side' | 'above';\n /**\n * If it should hide the \"clear\" button when input is not empty.\n *\n * @default false\n */\n noClearButton?: boolean;\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. Can be paired with the \"note\" prop with Field.Note variant=\"error\"\n * A `ReactNode` sets the error state with an additional error message.\n *\n * **An error message is strongly recommended because an error should\n * always have an explanation about how to fix it.**\n */\n error?: boolean | ReactNode;\n /**\n * A note to show below the input.\n * If the input has an error message, this note will be replaced by that.\n * Use {@Link Field.Note} to render the note.\n */\n note?: ReactNode;\n /**\n * A HelpButton to render next to the label.\n */\n contextualHelp?: ReactNode;\n };\n\nfunction _TimeField<T extends TimeValue>(\n {\n // TODO many other props\n size = 'lg',\n noClearButton = false,\n error,\n note,\n contextualHelp,\n necessityIndicator = false,\n ...otherProps\n }: TimeFieldProps<T>,\n ref: ForwardedRef<HTMLDivElement>\n) {\n useThemeCheck();\n\n const timeFieldRef = useObjectRef(ref);\n const { locale } = useLocale();\n const formatMessage = useMessageFormatter(intlMessages);\n\n const state = useTimeFieldState({\n ...otherProps,\n locale,\n isInvalid: error ? true : undefined,\n });\n\n const { fieldProps, labelProps } = useTimeField(\n { ...otherProps },\n state,\n timeFieldRef\n );\n\n return (\n <Field {...otherProps} ref={ref} size={size} noShrink>\n <Field.Context>\n {otherProps.label && (\n <Field.Label>\n <Label\n {...labelProps}\n size={size}\n necessityIndicator={\n otherProps.isRequired && necessityIndicator\n ? 'required'\n : !otherProps.isRequired && necessityIndicator\n ? 'optional'\n : undefined\n }\n contextualHelp={contextualHelp}\n >\n {otherProps.label}\n </Label>\n </Field.Label>\n )}\n </Field.Context>\n <Field.Control>\n <div\n className={clsx(styles['sapphire-date-field'], {\n [styles['sapphire-date-field--error']]: state.isInvalid,\n [styles['sapphire-date-field--no-clear-button']]: noClearButton,\n [styles['sapphire-date-field--no-calendar']]: true,\n [styles['sapphire-date-field--md']]: size === 'md',\n })}\n >\n <div\n {...fieldProps}\n className={styles['sapphire-date-field__input']}\n ref={timeFieldRef}\n >\n {state.segments.map((segment, i) => (\n <TimeSegment key={i} segment={segment} state={state} />\n ))}\n </div>\n {!noClearButton &&\n !otherProps.isReadOnly &&\n !otherProps.isDisabled &&\n isAnySegmentModified(state.segments) && (\n <IconButton\n aria-label={formatMessage('clear')}\n onPress={() =>\n state.segments.forEach((segment) =>\n state.clearSegment(segment.type)\n )\n }\n size={size === 'md' ? 'sm' : 'md'}\n UNSAFE_className={clsx(\n styles['sapphire-date-field__button'],\n styles['sapphire-date-field__button--clear']\n )}\n >\n <Icon>\n <CloseOutline />\n </Icon>\n </IconButton>\n )}\n </div>\n </Field.Control>\n {(!!error && typeof error !== 'boolean') || note ? (\n <Field.Footer>\n {!!error && typeof error !== 'boolean' ? (\n <Field.Note variant=\"error\">{error}</Field.Note>\n ) : note ? (\n note\n ) : null}\n </Field.Footer>\n ) : null}\n </Field>\n );\n}\n\nexport const TimeField = forwardRef(_TimeField) as <T extends TimeValue>(\n props: TimeFieldProps<T> & { ref?: RefObject<HTMLDivElement> }\n) => React.ReactElement;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React, { useRef } from 'react';
|
|
2
|
+
import { useDateSegment } from '@react-aria/datepicker';
|
|
3
|
+
import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defProps = Object.defineProperties;
|
|
8
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
9
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
+
const TimeSegment = ({ segment, state }) => segment.type === "hour" || segment.type === "minute" || segment.type === "dayPeriod" ? /* @__PURE__ */ React.createElement(EditableSegment, {
|
|
26
|
+
segment,
|
|
27
|
+
state
|
|
28
|
+
}) : /* @__PURE__ */ React.createElement(SeparatorSegment, {
|
|
29
|
+
segment
|
|
30
|
+
});
|
|
31
|
+
const SeparatorSegment = ({ segment }) => /* @__PURE__ */ React.createElement("span", {
|
|
32
|
+
"aria-hidden": "true",
|
|
33
|
+
className: clsx(styles["sapphire-date-field__segment"], styles["sapphire-date-field__segment--separator"])
|
|
34
|
+
}, segment.text);
|
|
35
|
+
const EditableSegment = ({ segment, state }) => {
|
|
36
|
+
const ref = useRef(null);
|
|
37
|
+
const { segmentProps } = useDateSegment(segment, state, ref);
|
|
38
|
+
return /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({}, segmentProps), {
|
|
39
|
+
style: segmentProps.style,
|
|
40
|
+
ref,
|
|
41
|
+
className: clsx(styles["sapphire-date-field__segment"], {
|
|
42
|
+
[styles["sapphire-date-field__segment--filled"]]: !segment.isPlaceholder
|
|
43
|
+
})
|
|
44
|
+
}), segment.text);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export { TimeSegment };
|
|
48
|
+
//# sourceMappingURL=TimeFieldSegment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeFieldSegment.js","sources":["../../../../src/TimeField/src/TimeFieldSegment.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { useDateSegment } from '@react-aria/datepicker';\nimport { DateSegment as DateSegmentType } from '@react-stately/datepicker';\nimport styles from '@danske/sapphire-css/components/dateField/dateField.module.css';\nimport clsx from 'clsx';\nimport { DateSegmentProps } from '@danske/sapphire-react';\n\nexport const TimeSegment = ({ segment, state }: DateSegmentProps) =>\n segment.type === 'hour' ||\n segment.type === 'minute' ||\n segment.type === 'dayPeriod' ? (\n <EditableSegment segment={segment} state={state}></EditableSegment>\n ) : (\n <SeparatorSegment segment={segment} />\n );\nconst SeparatorSegment = ({ segment }: { segment: DateSegmentType }) => (\n <span\n aria-hidden=\"true\"\n className={clsx(\n styles['sapphire-date-field__segment'],\n styles['sapphire-date-field__segment--separator']\n )}\n >\n {segment.text}\n </span>\n);\n\nconst EditableSegment = ({ segment, state }: DateSegmentProps) => {\n const ref = useRef(null);\n const { segmentProps } = useDateSegment(segment, state, ref);\n\n return (\n <div\n {...segmentProps}\n style={segmentProps.style}\n ref={ref}\n className={clsx(styles['sapphire-date-field__segment'], {\n [styles['sapphire-date-field__segment--filled']]:\n !segment.isPlaceholder,\n })}\n >\n {segment.text}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,WAAc,GAAA,CAAC,EAAE,OAAA,EAAS,YACrC,OAAQ,CAAA,IAAA,KAAS,MACjB,IAAA,OAAA,CAAQ,SAAS,QACjB,IAAA,OAAA,CAAQ,IAAS,KAAA,WAAA,uCACd,eAAD,EAAA;AAAA,EAAiB,OAAA;AAAA,EAAkB,KAAA;AAAA,CAAA,CAAA,uCAElC,gBAAD,EAAA;AAAA,EAAkB,OAAA;AAAA,CAAA,EAAA;AAEtB,MAAM,gBAAmB,GAAA,CAAC,EAAE,OAAA,EAAA,yCACzB,MAAD,EAAA;AAAA,EACE,aAAY,EAAA,MAAA;AAAA,EACZ,SAAW,EAAA,IAAA,CACT,MAAO,CAAA,8BAAA,CAAA,EACP,MAAO,CAAA,yCAAA,CAAA,CAAA;AAAA,CAAA,EAGR,OAAQ,CAAA,IAAA,CAAA,CAAA;AAIb,MAAM,eAAkB,GAAA,CAAC,EAAE,OAAA,EAAS,KAA8B,EAAA,KAAA;AAChE,EAAA,MAAM,MAAM,MAAO,CAAA,IAAA,CAAA,CAAA;AACnB,EAAA,MAAM,EAAE,YAAA,EAAA,GAAiB,cAAe,CAAA,OAAA,EAAS,KAAO,EAAA,GAAA,CAAA,CAAA;AAExD,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACM,YADN,CAAA,EAAA;AAAA,IAEE,OAAO,YAAa,CAAA,KAAA;AAAA,IACpB,GAAA;AAAA,IACA,SAAA,EAAW,IAAK,CAAA,MAAA,CAAO,8BAAiC,CAAA,EAAA;AAAA,MACrD,CAAA,MAAA,CAAO,sCACN,CAAA,GAAA,CAAC,OAAQ,CAAA,aAAA;AAAA,KAAA,CAAA;AAAA,GAAA,CAAA,EAGZ,OAAQ,CAAA,IAAA,CAAA,CAAA;AAAA,CAAA;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
export { FilterDropdown } from './Filtering/src/FilterDropdown.js';
|
|
2
|
-
export { SearchableSelectFilter } from './Filtering/src/SearchableSelectFilter.js';
|
|
3
1
|
export { Accordion } from './Accordion/index.js';
|
|
2
|
+
export { Alert } from './Alert/src/Alert.js';
|
|
3
|
+
export { Autocomplete } from './Autocomplete/src/Autocomplete.js';
|
|
4
|
+
export { Breadcrumbs } from './Breadcrumbs/src/Breadcrumbs.js';
|
|
5
|
+
export { BreadcrumbItem } from './Breadcrumbs/src/BreadcrumbItem.js';
|
|
6
|
+
export { BreadcrumbItemLink } from './Breadcrumbs/src/BreadcrumbItemLink.js';
|
|
4
7
|
export { FileDropzone } from './FileDropzone/src/FileDropzone.js';
|
|
5
8
|
export { FileTrigger } from './FileDropzone/src/FileTrigger.js';
|
|
9
|
+
export { FilterDropdown } from './Filtering/src/FilterDropdown.js';
|
|
10
|
+
export { SearchableSelectFilter } from './Filtering/src/SearchableSelectFilter.js';
|
|
6
11
|
export { Flag } from './Flag/src/Flag.js';
|
|
12
|
+
export { LabeledValue } from './LabeledValue/src/LabeledValue.js';
|
|
7
13
|
export { NumberField } from './NumberField/src/NumberField.js';
|
|
8
14
|
export { ProgressIndicator } from './ProgressIndicator/src/ProgressIndicator.js';
|
|
9
15
|
export { Slider } from './Slider/index.js';
|
|
10
|
-
export { Breadcrumbs } from './Breadcrumbs/src/Breadcrumbs.js';
|
|
11
|
-
export { BreadcrumbItem } from './Breadcrumbs/src/BreadcrumbItem.js';
|
|
12
|
-
export { BreadcrumbItemLink } from './Breadcrumbs/src/BreadcrumbItemLink.js';
|
|
13
16
|
export { TagGroup } from './TagGroup/src/TagGroup.js';
|
|
14
17
|
export { TagItem } from './TagGroup/src/TagItem.js';
|
|
15
|
-
export {
|
|
16
|
-
export { Alert } from './Alert/src/Alert.js';
|
|
18
|
+
export { TimeField } from './TimeField/src/TimeField.js';
|
|
17
19
|
export { useLocale } from '@react-aria/i18n';
|
|
18
20
|
export { AccordionContext } from './Accordion/src/AccordionContext.js';
|
|
19
21
|
//# 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":";;;;;;;;;;;;;;;;;;;"}
|