@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.
Files changed (58) hide show
  1. package/build/cjs/index.js +1139 -801
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Accordion/src/AccordionHeading.js.map +1 -1
  4. package/build/esm/Alert/src/Alert.js.map +1 -1
  5. package/build/esm/Autocomplete/i18n/da-DK.js +6 -0
  6. package/build/esm/Autocomplete/i18n/da-DK.js.map +1 -0
  7. package/build/esm/Autocomplete/i18n/de-DE.js +6 -0
  8. package/build/esm/Autocomplete/i18n/de-DE.js.map +1 -0
  9. package/build/esm/Autocomplete/i18n/en-US.js +6 -0
  10. package/build/esm/Autocomplete/i18n/en-US.js.map +1 -0
  11. package/build/esm/Autocomplete/i18n/fi-FI.js +6 -0
  12. package/build/esm/Autocomplete/i18n/fi-FI.js.map +1 -0
  13. package/build/esm/Autocomplete/i18n/index.js +20 -0
  14. package/build/esm/Autocomplete/i18n/index.js.map +1 -0
  15. package/build/esm/Autocomplete/i18n/nb-NO.js +6 -0
  16. package/build/esm/Autocomplete/i18n/nb-NO.js.map +1 -0
  17. package/build/esm/Autocomplete/i18n/pl-PL.js +6 -0
  18. package/build/esm/Autocomplete/i18n/pl-PL.js.map +1 -0
  19. package/build/esm/Autocomplete/i18n/sv-SE.js +6 -0
  20. package/build/esm/Autocomplete/i18n/sv-SE.js.map +1 -0
  21. package/build/esm/Autocomplete/src/Autocomplete.js +89 -0
  22. package/build/esm/Autocomplete/src/Autocomplete.js.map +1 -0
  23. package/build/esm/Breadcrumbs/src/BreadcrumbItemLink.js +6 -0
  24. package/build/esm/Breadcrumbs/src/BreadcrumbItemLink.js.map +1 -1
  25. package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js +36 -0
  26. package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js.map +1 -0
  27. package/build/esm/Filtering/src/FilterDropdown.js +3 -2
  28. package/build/esm/Filtering/src/FilterDropdown.js.map +1 -1
  29. package/build/esm/Filtering/src/SearchableSelectFilter.js +14 -11
  30. package/build/esm/Filtering/src/SearchableSelectFilter.js.map +1 -1
  31. package/build/esm/LabeledValue/src/LabeledValue.js.map +1 -1
  32. package/build/esm/NumberField/src/StepperButton.js.map +1 -1
  33. package/build/esm/TagGroup/src/Tag.js.map +1 -1
  34. package/build/esm/TagGroup/src/TagGroup.js.map +1 -1
  35. package/build/esm/TimeField/i18n/da-DK.js +7 -0
  36. package/build/esm/TimeField/i18n/da-DK.js.map +1 -0
  37. package/build/esm/TimeField/i18n/de-DE.js +7 -0
  38. package/build/esm/TimeField/i18n/de-DE.js.map +1 -0
  39. package/build/esm/TimeField/i18n/en-US.js +7 -0
  40. package/build/esm/TimeField/i18n/en-US.js.map +1 -0
  41. package/build/esm/TimeField/i18n/fi-FI.js +7 -0
  42. package/build/esm/TimeField/i18n/fi-FI.js.map +1 -0
  43. package/build/esm/TimeField/i18n/index.js +20 -0
  44. package/build/esm/TimeField/i18n/index.js.map +1 -0
  45. package/build/esm/TimeField/i18n/nb-NO.js +7 -0
  46. package/build/esm/TimeField/i18n/nb-NO.js.map +1 -0
  47. package/build/esm/TimeField/i18n/pl-PL.js +7 -0
  48. package/build/esm/TimeField/i18n/pl-PL.js.map +1 -0
  49. package/build/esm/TimeField/i18n/sv-SE.js +7 -0
  50. package/build/esm/TimeField/i18n/sv-SE.js.map +1 -0
  51. package/build/esm/TimeField/src/TimeField.js +106 -0
  52. package/build/esm/TimeField/src/TimeField.js.map +1 -0
  53. package/build/esm/TimeField/src/TimeFieldSegment.js +48 -0
  54. package/build/esm/TimeField/src/TimeFieldSegment.js.map +1 -0
  55. package/build/esm/index.js +9 -7
  56. package/build/esm/index.js.map +1 -1
  57. package/build/index.d.ts +246 -133
  58. package/package.json +8 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en-US.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,7 @@
1
+ var clear = "Nollaa";
2
+ var fi = {
3
+ clear: clear
4
+ };
5
+
6
+ export { clear, fi as default };
7
+ //# sourceMappingURL=fi-FI.js.map
@@ -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,7 @@
1
+ var clear = "Nullstill";
2
+ var no = {
3
+ clear: clear
4
+ };
5
+
6
+ export { clear, no as default };
7
+ //# sourceMappingURL=nb-NO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nb-NO.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,7 @@
1
+ var clear = "Zresetuj";
2
+ var pl = {
3
+ clear: clear
4
+ };
5
+
6
+ export { clear, pl as default };
7
+ //# sourceMappingURL=pl-PL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pl-PL.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,7 @@
1
+ var clear = "Återställ";
2
+ var se = {
3
+ clear: clear
4
+ };
5
+
6
+ export { clear, se as default };
7
+ //# sourceMappingURL=sv-SE.js.map
@@ -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;;;;"}
@@ -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 { LabeledValue } from './LabeledValue/src/LabeledValue.js';
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}