@danske/sapphire-react-lab 0.105.2 → 0.106.2
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 +1607 -2284
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/index.js.map +1 -1
- package/build/esm/Accordion/src/Accordion.js +44 -75
- package/build/esm/Accordion/src/Accordion.js.map +1 -1
- package/build/esm/Accordion/src/AccordionContext.js +3 -1
- package/build/esm/Accordion/src/AccordionContext.js.map +1 -1
- package/build/esm/Accordion/src/AccordionHeading.js +23 -55
- package/build/esm/Accordion/src/AccordionHeading.js.map +1 -1
- package/build/esm/Accordion/src/AccordionItem.js +18 -44
- package/build/esm/Accordion/src/AccordionItem.js.map +1 -1
- package/build/esm/Accordion/src/AccordionPanel.js +28 -45
- package/build/esm/Accordion/src/AccordionPanel.js.map +1 -1
- package/build/esm/Accordion/src/utils.js.map +1 -1
- package/build/esm/Alert/src/Alert.js +27 -65
- package/build/esm/Alert/src/Alert.js.map +1 -1
- package/build/esm/Amount/src/Amount.js +41 -63
- package/build/esm/Amount/src/Amount.js.map +1 -1
- package/build/esm/Amount/src/useGroupAmount.js +4 -1
- package/build/esm/Amount/src/useGroupAmount.js.map +1 -1
- package/build/esm/Autocomplete/i18n/da-DK.json.js +6 -0
- package/build/esm/Autocomplete/i18n/da-DK.json.js.map +1 -0
- package/build/esm/Autocomplete/i18n/de-DE.json.js +6 -0
- package/build/esm/Autocomplete/i18n/de-DE.json.js.map +1 -0
- package/build/esm/Autocomplete/i18n/en-US.json.js +6 -0
- package/build/esm/Autocomplete/i18n/en-US.json.js.map +1 -0
- package/build/esm/Autocomplete/i18n/fi-FI.json.js +6 -0
- package/build/esm/Autocomplete/i18n/fi-FI.json.js.map +1 -0
- package/build/esm/Autocomplete/i18n/index.js +9 -9
- package/build/esm/Autocomplete/i18n/index.js.map +1 -1
- package/build/esm/Autocomplete/i18n/nb-NO.json.js +6 -0
- package/build/esm/Autocomplete/i18n/nb-NO.json.js.map +1 -0
- package/build/esm/Autocomplete/i18n/pl-PL.json.js +6 -0
- package/build/esm/Autocomplete/i18n/pl-PL.json.js.map +1 -0
- package/build/esm/Autocomplete/i18n/sv-SE.json.js +6 -0
- package/build/esm/Autocomplete/i18n/sv-SE.json.js.map +1 -0
- package/build/esm/Autocomplete/src/Autocomplete.js +57 -76
- package/build/esm/Autocomplete/src/Autocomplete.js.map +1 -1
- package/build/esm/Breadcrumbs/src/BreadcrumbItem.js +46 -52
- package/build/esm/Breadcrumbs/src/BreadcrumbItem.js.map +1 -1
- package/build/esm/Breadcrumbs/src/BreadcrumbItemLink.js +17 -45
- package/build/esm/Breadcrumbs/src/BreadcrumbItemLink.js.map +1 -1
- package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js +25 -46
- package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js.map +1 -1
- package/build/esm/Breadcrumbs/src/BreadcrumbOverflowMenu.js +18 -11
- package/build/esm/Breadcrumbs/src/BreadcrumbOverflowMenu.js.map +1 -1
- package/build/esm/Breadcrumbs/src/Breadcrumbs.js +47 -64
- package/build/esm/Breadcrumbs/src/Breadcrumbs.js.map +1 -1
- package/build/esm/Breadcrumbs/src/BreadcrumbsSeparator.js +8 -6
- package/build/esm/Breadcrumbs/src/BreadcrumbsSeparator.js.map +1 -1
- package/build/esm/Breadcrumbs/src/useBreadcrumbThreshold.js +6 -6
- package/build/esm/Breadcrumbs/src/useBreadcrumbThreshold.js.map +1 -1
- package/build/esm/FileDropzone/i18n/{da-DK.js → da-DK.json.js} +3 -3
- package/build/esm/FileDropzone/i18n/da-DK.json.js.map +1 -0
- package/build/esm/FileDropzone/i18n/{de-DE.js → de-DE.json.js} +3 -3
- package/build/esm/FileDropzone/i18n/de-DE.json.js.map +1 -0
- package/build/esm/FileDropzone/i18n/{en-US.js → en-US.json.js} +3 -3
- package/build/esm/FileDropzone/i18n/en-US.json.js.map +1 -0
- package/build/esm/FileDropzone/i18n/{fi-FI.js → fi-FI.json.js} +3 -3
- package/build/esm/FileDropzone/i18n/fi-FI.json.js.map +1 -0
- package/build/esm/FileDropzone/i18n/index.js +9 -9
- package/build/esm/FileDropzone/i18n/index.js.map +1 -1
- package/build/esm/FileDropzone/i18n/{nb-NO.js → nb-NO.json.js} +3 -3
- package/build/esm/FileDropzone/i18n/nb-NO.json.js.map +1 -0
- package/build/esm/FileDropzone/i18n/{pl-PL.js → pl-PL.json.js} +3 -3
- package/build/esm/FileDropzone/i18n/pl-PL.json.js.map +1 -0
- package/build/esm/FileDropzone/i18n/{sv-SE.js → sv-SE.json.js} +3 -3
- package/build/esm/FileDropzone/i18n/sv-SE.json.js.map +1 -0
- package/build/esm/FileDropzone/src/FileDropzone.js +68 -88
- package/build/esm/FileDropzone/src/FileDropzone.js.map +1 -1
- package/build/esm/FileDropzone/src/FileTrigger.js +29 -61
- package/build/esm/FileDropzone/src/FileTrigger.js.map +1 -1
- package/build/esm/FileDropzone/src/utils.js.map +1 -1
- package/build/esm/Filtering/src/FilterDropdown.js +91 -113
- package/build/esm/Filtering/src/FilterDropdown.js.map +1 -1
- package/build/esm/Filtering/src/SearchableSelectFilter.js +53 -70
- package/build/esm/Filtering/src/SearchableSelectFilter.js.map +1 -1
- package/build/esm/Flag/src/Flag.js +5 -37
- package/build/esm/Flag/src/Flag.js.map +1 -1
- package/build/esm/LabeledValue/src/LabeledValue.js +21 -55
- package/build/esm/LabeledValue/src/LabeledValue.js.map +1 -1
- package/build/esm/NumberField/i18n/da-DK.json.js +9 -0
- package/build/esm/NumberField/i18n/da-DK.json.js.map +1 -0
- package/build/esm/NumberField/i18n/de-DE.json.js +9 -0
- package/build/esm/NumberField/i18n/de-DE.json.js.map +1 -0
- package/build/esm/NumberField/i18n/en-US.json.js +9 -0
- package/build/esm/NumberField/i18n/en-US.json.js.map +1 -0
- package/build/esm/NumberField/i18n/fi-FI.json.js +9 -0
- package/build/esm/NumberField/i18n/fi-FI.json.js.map +1 -0
- package/build/esm/NumberField/i18n/index.js +9 -9
- package/build/esm/NumberField/i18n/index.js.map +1 -1
- package/build/esm/NumberField/i18n/nb-NO.json.js +9 -0
- package/build/esm/NumberField/i18n/nb-NO.json.js.map +1 -0
- package/build/esm/NumberField/i18n/pl-PL.json.js +9 -0
- package/build/esm/NumberField/i18n/pl-PL.json.js.map +1 -0
- package/build/esm/NumberField/i18n/sv-SE.json.js +9 -0
- package/build/esm/NumberField/i18n/sv-SE.json.js.map +1 -0
- package/build/esm/NumberField/src/NumberField.js +130 -111
- package/build/esm/NumberField/src/NumberField.js.map +1 -1
- package/build/esm/NumberField/src/StepperButton.js +32 -53
- package/build/esm/NumberField/src/StepperButton.js.map +1 -1
- package/build/esm/NumberField/src/cursorHelpers.js +13 -8
- package/build/esm/NumberField/src/cursorHelpers.js.map +1 -1
- package/build/esm/NumberField/src/formatHelpers.js +15 -18
- package/build/esm/NumberField/src/formatHelpers.js.map +1 -1
- package/build/esm/NumberField/src/keyboardHelpers.js +13 -8
- package/build/esm/NumberField/src/keyboardHelpers.js.map +1 -1
- package/build/esm/NumberField/src/useAutofillStyle.js.map +1 -1
- package/build/esm/NumberField/src/useNumberFieldFormatting.js +79 -45
- package/build/esm/NumberField/src/useNumberFieldFormatting.js.map +1 -1
- package/build/esm/NumberField/src/useSapphireNumberField.js +16 -42
- package/build/esm/NumberField/src/useSapphireNumberField.js.map +1 -1
- package/build/esm/ProgressIndicator/src/ProgressIndicator.js +23 -35
- package/build/esm/ProgressIndicator/src/ProgressIndicator.js.map +1 -1
- package/build/esm/Sidebar/index.js.map +1 -1
- package/build/esm/Sidebar/src/Body.js +19 -44
- package/build/esm/Sidebar/src/Body.js.map +1 -1
- package/build/esm/Sidebar/src/ExpandableItem.js +89 -97
- package/build/esm/Sidebar/src/ExpandableItem.js.map +1 -1
- package/build/esm/Sidebar/src/Header.js +14 -44
- package/build/esm/Sidebar/src/Header.js.map +1 -1
- package/build/esm/Sidebar/src/Item.js +17 -44
- package/build/esm/Sidebar/src/Item.js.map +1 -1
- package/build/esm/Sidebar/src/List.js +14 -43
- package/build/esm/Sidebar/src/List.js.map +1 -1
- package/build/esm/Sidebar/src/Panel.js +56 -69
- package/build/esm/Sidebar/src/Panel.js.map +1 -1
- package/build/esm/Sidebar/src/ResponsiveSidebarContext.js +17 -9
- package/build/esm/Sidebar/src/ResponsiveSidebarContext.js.map +1 -1
- package/build/esm/Sidebar/src/SecondarySidebarContext.js +15 -12
- package/build/esm/Sidebar/src/SecondarySidebarContext.js.map +1 -1
- package/build/esm/Sidebar/src/Section.js +38 -51
- package/build/esm/Sidebar/src/Section.js.map +1 -1
- package/build/esm/Sidebar/src/Sidebar.js +65 -93
- package/build/esm/Sidebar/src/Sidebar.js.map +1 -1
- package/build/esm/Sidebar/src/useSidebar.js.map +1 -1
- package/build/esm/Slider/index.js.map +1 -1
- package/build/esm/Slider/src/Slider.js +46 -71
- package/build/esm/Slider/src/Slider.js.map +1 -1
- package/build/esm/TagGroup/src/Tag.js +71 -86
- package/build/esm/TagGroup/src/Tag.js.map +1 -1
- package/build/esm/TagGroup/src/TagGroup.js +46 -67
- package/build/esm/TagGroup/src/TagGroup.js.map +1 -1
- package/build/esm/TagGroup/src/TagItem.js +1 -1
- package/build/esm/TagGroup/src/TagItem.js.map +1 -1
- package/build/esm/TimeField/i18n/da-DK.json.js +7 -0
- package/build/esm/TimeField/i18n/da-DK.json.js.map +1 -0
- package/build/esm/TimeField/i18n/de-DE.json.js +7 -0
- package/build/esm/TimeField/i18n/de-DE.json.js.map +1 -0
- package/build/esm/TimeField/i18n/en-US.json.js +7 -0
- package/build/esm/TimeField/i18n/en-US.json.js.map +1 -0
- package/build/esm/TimeField/i18n/fi-FI.json.js +7 -0
- package/build/esm/TimeField/i18n/fi-FI.json.js.map +1 -0
- package/build/esm/TimeField/i18n/index.js +7 -7
- package/build/esm/TimeField/i18n/index.js.map +1 -1
- package/build/esm/TimeField/i18n/nb-NO.json.js +7 -0
- package/build/esm/TimeField/i18n/nb-NO.json.js.map +1 -0
- package/build/esm/TimeField/i18n/pl-PL.json.js +7 -0
- package/build/esm/TimeField/i18n/pl-PL.json.js.map +1 -0
- package/build/esm/TimeField/i18n/{sv-SE.js → sv-SE.json.js} +1 -1
- package/build/esm/TimeField/i18n/sv-SE.json.js.map +1 -0
- package/build/esm/TimeField/src/TimeField.js +67 -84
- package/build/esm/TimeField/src/TimeField.js.map +1 -1
- package/build/esm/TimeField/src/TimeFieldSegment.js +25 -37
- package/build/esm/TimeField/src/TimeFieldSegment.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/index.d.ts +19 -17
- package/package.json +16 -39
- package/build/esm/Autocomplete/i18n/da-DK.js +0 -6
- package/build/esm/Autocomplete/i18n/da-DK.js.map +0 -1
- package/build/esm/Autocomplete/i18n/de-DE.js +0 -6
- package/build/esm/Autocomplete/i18n/de-DE.js.map +0 -1
- package/build/esm/Autocomplete/i18n/en-US.js +0 -6
- package/build/esm/Autocomplete/i18n/en-US.js.map +0 -1
- package/build/esm/Autocomplete/i18n/fi-FI.js +0 -6
- package/build/esm/Autocomplete/i18n/fi-FI.js.map +0 -1
- package/build/esm/Autocomplete/i18n/nb-NO.js +0 -6
- package/build/esm/Autocomplete/i18n/nb-NO.js.map +0 -1
- package/build/esm/Autocomplete/i18n/pl-PL.js +0 -6
- package/build/esm/Autocomplete/i18n/pl-PL.js.map +0 -1
- package/build/esm/Autocomplete/i18n/sv-SE.js +0 -6
- package/build/esm/Autocomplete/i18n/sv-SE.js.map +0 -1
- package/build/esm/FileDropzone/i18n/da-DK.js.map +0 -1
- package/build/esm/FileDropzone/i18n/de-DE.js.map +0 -1
- package/build/esm/FileDropzone/i18n/en-US.js.map +0 -1
- package/build/esm/FileDropzone/i18n/fi-FI.js.map +0 -1
- package/build/esm/FileDropzone/i18n/nb-NO.js.map +0 -1
- package/build/esm/FileDropzone/i18n/pl-PL.js.map +0 -1
- package/build/esm/FileDropzone/i18n/sv-SE.js.map +0 -1
- package/build/esm/NumberField/i18n/da-DK.js +0 -9
- package/build/esm/NumberField/i18n/da-DK.js.map +0 -1
- package/build/esm/NumberField/i18n/de-DE.js +0 -9
- package/build/esm/NumberField/i18n/de-DE.js.map +0 -1
- package/build/esm/NumberField/i18n/en-US.js +0 -9
- package/build/esm/NumberField/i18n/en-US.js.map +0 -1
- package/build/esm/NumberField/i18n/fi-FI.js +0 -9
- package/build/esm/NumberField/i18n/fi-FI.js.map +0 -1
- package/build/esm/NumberField/i18n/nb-NO.js +0 -9
- package/build/esm/NumberField/i18n/nb-NO.js.map +0 -1
- package/build/esm/NumberField/i18n/pl-PL.js +0 -9
- package/build/esm/NumberField/i18n/pl-PL.js.map +0 -1
- package/build/esm/NumberField/i18n/sv-SE.js +0 -9
- package/build/esm/NumberField/i18n/sv-SE.js.map +0 -1
- package/build/esm/TimeField/i18n/da-DK.js +0 -7
- package/build/esm/TimeField/i18n/da-DK.js.map +0 -1
- package/build/esm/TimeField/i18n/de-DE.js +0 -7
- package/build/esm/TimeField/i18n/de-DE.js.map +0 -1
- package/build/esm/TimeField/i18n/en-US.js +0 -7
- package/build/esm/TimeField/i18n/en-US.js.map +0 -1
- package/build/esm/TimeField/i18n/fi-FI.js +0 -7
- package/build/esm/TimeField/i18n/fi-FI.js.map +0 -1
- package/build/esm/TimeField/i18n/nb-NO.js +0 -7
- package/build/esm/TimeField/i18n/nb-NO.js.map +0 -1
- package/build/esm/TimeField/i18n/pl-PL.js +0 -7
- package/build/esm/TimeField/i18n/pl-PL.js.map +0 -1
- package/build/esm/TimeField/i18n/sv-SE.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagGroup.js","sources":["../../../../src/TagGroup/src/TagGroup.tsx"],"sourcesContent":["import React, { Key, ReactNode, useRef } from 'react';\nimport { useTagGroup } from '
|
|
1
|
+
{"version":3,"file":"TagGroup.js","sources":["../../../../src/TagGroup/src/TagGroup.tsx"],"sourcesContent":["import React, { Key, ReactNode, useRef } from 'react';\nimport { useTagGroup } from 'react-aria/useTagGroup';\nimport { useListState } from 'react-stately/useListState';\nimport {\n AriaLabelingProps,\n CollectionBase,\n DOMProps,\n} from '@react-types/shared';\nimport {\n Field,\n Label,\n SapphireStyleProps,\n useThemeCheck,\n GlobalDomAttributes,\n} from '@danske/sapphire-react';\nimport styles from '@danske/sapphire-css/components/tag/tag.module.css';\n\nimport { Tag } from './Tag';\nimport { TagItemProps } from './TagItem';\n\nexport interface TagGroupProps<T>\n extends CollectionBase<T>,\n DOMProps,\n // TODO when moving to \"core\", use types under `types.ts` instead of plain strings\n Pick<\n AriaLabelingProps,\n 'aria-label' | 'aria-labelledby' | 'aria-describedby' | 'aria-details'\n >,\n SapphireStyleProps,\n GlobalDomAttributes {\n /**\n * A HelpButton element to place next to the label.\n */\n contextualHelp?: ReactNode;\n /**\n * Custom error message help text.\n */\n errorMessage?: string;\n /**\n * The label of the tag group.\n */\n label?: string;\n /**\n * Places the label either above (default) or on the left side of tags.\n * @default 'above'\n */\n labelPlacement?: 'above' | 'side';\n /**\n * Help text description displayed below tags.\n */\n note?: string;\n /**\n * onAction handler passed down for actionable Tags, called onPress of tags.\n */\n onAction?: (key: Key) => void;\n /**\n * Handler that is called when a user deletes a tag.\n *\n * @deprecated Use `onRemove` prop on the `TagItem` component instead.\n * This prop will be removed when this component is moved to \"@danske/sapphire-react\".\n */\n onRemove?: (keys: Set<Key>) => void;\n}\n\nexport function TagGroup<T extends object>(\n props: TagGroupProps<T>\n): React.JSX.Element {\n useThemeCheck();\n const {\n contextualHelp,\n errorMessage,\n label: labelText,\n labelPlacement = 'above',\n note,\n onRemove: originalOnRemove,\n ...otherProps\n } = props;\n const ref = useRef(null);\n const state = useListState(props);\n\n // TODO when moving to \"core\": Remove `originalOnRemove` from here & remove support for `onRemove` prop.\n // If an external onRemove handler is provided, use it directly.\n // Otherwise, call individual onRemove handlers on each tag item.\n const onRemove = originalOnRemove\n ? (keys: Set<Key>) => {\n // eslint-disable-next-line no-console -- It's good to warn about the deprecation, but this needs to be removed alongside `onRemove`\n console.warn(\n 'The `onRemove` prop is deprecated and will be removed in future versions. Use the `onRemove` prop on the `TagItem` component instead.'\n );\n originalOnRemove(keys);\n }\n : (keys: Set<Key>) => {\n // Iterate through the keys and call each item's onRemove handler\n Array.from(keys).forEach((key) => {\n const item = state.collection.getItem(key);\n if (item) {\n (item.props as TagItemProps<T>).onRemove?.();\n }\n });\n };\n\n const { descriptionProps, gridProps, labelProps, errorMessageProps } =\n useTagGroup({ ...props, onRemove }, state, ref);\n\n return (\n <Field\n {...otherProps}\n labelPlacement={labelPlacement}\n labelVerticalAlignment=\"top\"\n noDefaultWidth\n >\n <Field.Context\n descriptionProps={errorMessage ? errorMessageProps : descriptionProps}\n >\n {(labelText || contextualHelp) && (\n <Field.Label>\n <Label {...labelProps} contextualHelp={contextualHelp}>\n {labelText}\n </Label>\n </Field.Label>\n )}\n <Field.Control>\n <div\n {...gridProps}\n ref={ref}\n className={styles['sapphire-tag-group']}\n >\n {Array.from(state.collection).map((item) => (\n <Tag\n key={item.key}\n item={item}\n state={state}\n hasError={item.props.hasError}\n // TODO when moving to \"core\": Remove `originalOnRemove` from here & remove support for `onRemove` prop.\n // Always allow removing if `onRemove` was provided, for backwards compatibility\n // Allow removal of the tag item if a removal handler is provided\n allowsRemoving={!!originalOnRemove || !!item.props.onRemove}\n />\n ))}\n </div>\n </Field.Control>\n {(note || errorMessage) &&\n (errorMessage ? (\n <Field.Footer>\n <Field.Note variant=\"error\">{errorMessage}</Field.Note>\n </Field.Footer>\n ) : (\n <Field.Footer>{note}</Field.Footer>\n ))}\n </Field.Context>\n </Field>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAgEO,SAAS,SACd,KAAA,EACmB;AACnB,EAAA,aAAA,EAAc;AACd,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP,cAAA,GAAiB,OAAA;AAAA,IACjB,IAAA;AAAA,IACA,QAAA,EAAU,gBAAA;AAAA,IACV,GAAG;AAAA,GACL,GAAI,KAAA;AACJ,EAAA,MAAM,GAAA,GAAM,OAAO,IAAI,CAAA;AACvB,EAAA,MAAM,KAAA,GAAQ,aAAa,KAAK,CAAA;AAKhC,EAAA,MAAM,QAAA,GAAW,gBAAA,GACb,CAAC,IAAA,KAAmB;AAElB,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN;AAAA,KACF;AACA,IAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,EACvB,CAAA,GACA,CAAC,IAAA,KAAmB;AAElB,IAAA,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AAChC,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,UAAA,CAAW,OAAA,CAAQ,GAAG,CAAA;AACzC,MAAA,IAAI,IAAA,EAAM;AACR,QAAC,IAAA,CAAK,MAA0B,QAAA,IAAW;AAAA,MAC7C;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAA;AAEJ,EAAA,MAAM,EAAE,gBAAA,EAAkB,SAAA,EAAW,UAAA,EAAY,iBAAA,EAAkB,GACjE,WAAA,CAAY,EAAE,GAAG,KAAA,EAAO,QAAA,EAAS,EAAG,OAAO,GAAG,CAAA;AAEhD,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,UAAA;AAAA,MACJ,cAAA;AAAA,MACA,sBAAA,EAAuB,KAAA;AAAA,MACvB,cAAA,EAAc;AAAA,KAAA;AAAA,oBAEd,KAAA,CAAA,aAAA;AAAA,MAAC,KAAA,CAAM,OAAA;AAAA,MAAN;AAAA,QACC,gBAAA,EAAkB,eAAe,iBAAA,GAAoB;AAAA,OAAA;AAAA,MAAA,CAEnD,SAAA,IAAa,cAAA,qBACb,KAAA,CAAA,aAAA,CAAC,KAAA,CAAM,KAAA,EAAN,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAO,GAAG,UAAA,EAAY,cAAA,EAAA,EACpB,SACH,CACF,CAAA;AAAA,sBAEF,KAAA,CAAA,aAAA,CAAC,KAAA,CAAM,OAAA,EAAN,IAAA,kBACC,KAAA,CAAA,aAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACE,GAAG,SAAA;AAAA,UACJ,GAAA;AAAA,UACA,SAAA,EAAW,OAAO,oBAAoB;AAAA,SAAA;AAAA,QAErC,MAAM,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA,CAAE,GAAA,CAAI,CAAC,IAAA,qBACjC,KAAA,CAAA,aAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,KAAK,IAAA,CAAK,GAAA;AAAA,YACV,IAAA;AAAA,YACA,KAAA;AAAA,YACA,QAAA,EAAU,KAAK,KAAA,CAAM,QAAA;AAAA,YAIrB,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAA,CAAM;AAAA;AAAA,SAEtD;AAAA,OAEL,CAAA;AAAA,MAAA,CACE,IAAA,IAAQ,kBACP,YAAA,mBACC,KAAA,CAAA,aAAA,CAAC,MAAM,MAAA,EAAN,IAAA,sCACE,KAAA,CAAM,IAAA,EAAN,EAAW,OAAA,EAAQ,OAAA,EAAA,EAAS,YAAa,CAC5C,CAAA,uCAEC,KAAA,CAAM,MAAA,EAAN,MAAc,IAAK,CAAA;AAAA;AAE1B,GACF;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagItem.js","sources":["../../../../src/TagGroup/src/TagItem.tsx"],"sourcesContent":["import { Item } from '
|
|
1
|
+
{"version":3,"file":"TagItem.js","sources":["../../../../src/TagGroup/src/TagItem.tsx"],"sourcesContent":["import { Item } from 'react-stately/Item';\nimport { ItemProps } from '@react-types/shared';\n\nexport interface TagItemProps<T> extends ItemProps<T> {\n /**\n * Shows error icon.\n * @default 'false'\n */\n hasError?: boolean;\n\n /**\n * This function is called when the tag is being removed, either through\n * clicking the \"X\" button or by any supported key combination.\n *\n * @default false\n *\n * @note If the `TagGroup` has `onRemove` prop, that implementation will take\n * precedence over this function.\n *\n * @note If the `TagItem` is disabled, this function will not be called.\n */\n onRemove?: () => void;\n}\n\nconst TagItem = Item as <T>(props: TagItemProps<T>) => JSX.Element;\n\nexport { TagItem };\n"],"names":[],"mappings":";;AAwBA,MAAM,OAAA,GAAU;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"da-DK.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de-DE.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en-US.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fi-FI.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
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';
|
|
1
|
+
import da from './da-DK.json.js';
|
|
2
|
+
import en from './en-US.json.js';
|
|
3
|
+
import de from './de-DE.json.js';
|
|
4
|
+
import fi from './fi-FI.json.js';
|
|
5
|
+
import no from './nb-NO.json.js';
|
|
6
|
+
import pl from './pl-PL.json.js';
|
|
7
|
+
import se from './sv-SE.json.js';
|
|
8
8
|
|
|
9
9
|
var intlMessages = {
|
|
10
10
|
"da-DK": da,
|
|
@@ -1 +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,
|
|
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,OAAA,EAAS,EAAA;AAAA,EACT,OAAA,EAAS,EAAA;AAAA,EACT,OAAA,EAAS,EAAA;AAAA,EACT,OAAA,EAAS,EAAA;AAAA,EACT,OAAA,EAAS,EAAA;AAAA,EACT,OAAA,EAAS,EAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nb-NO.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pl-PL.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sv-SE.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -2,103 +2,86 @@ import React, { forwardRef } from 'react';
|
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
|
|
4
4
|
import { useThemeCheck, Field, Label, IconButton, Icon } from '@danske/sapphire-react';
|
|
5
|
-
import { useTimeField } from '
|
|
6
|
-
import { useTimeFieldState } from '
|
|
7
|
-
import { useLocale
|
|
5
|
+
import { useTimeField } from 'react-aria/useTimeField';
|
|
6
|
+
import { useTimeFieldState } from 'react-stately/useTimeFieldState';
|
|
7
|
+
import { useLocale } from 'react-aria/I18nProvider';
|
|
8
|
+
import { useMessageFormatter } from '@react-aria/i18n';
|
|
8
9
|
import { TimeSegment } from './TimeFieldSegment.js';
|
|
9
10
|
import { CloseOutline } from '@danske/sapphire-icons/react';
|
|
10
|
-
import { useObjectRef } from '
|
|
11
|
+
import { useObjectRef } from 'react-aria/useObjectRef';
|
|
11
12
|
import intlMessages from '../i18n/index.js';
|
|
12
13
|
|
|
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
14
|
const isAnySegmentModified = (segments) => segments.map(({ type, isPlaceholder }) => {
|
|
45
15
|
return type !== "literal" && !isPlaceholder;
|
|
46
16
|
}).some((isModified) => isModified);
|
|
47
|
-
function _TimeField(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"noClearButton",
|
|
58
|
-
"error",
|
|
59
|
-
"note",
|
|
60
|
-
"contextualHelp",
|
|
61
|
-
"necessityIndicator"
|
|
62
|
-
]);
|
|
17
|
+
function _TimeField({
|
|
18
|
+
// TODO many other props
|
|
19
|
+
size = "lg",
|
|
20
|
+
noClearButton = false,
|
|
21
|
+
error,
|
|
22
|
+
note,
|
|
23
|
+
contextualHelp,
|
|
24
|
+
necessityIndicator = false,
|
|
25
|
+
...otherProps
|
|
26
|
+
}, ref) {
|
|
63
27
|
useThemeCheck();
|
|
64
28
|
const timeFieldRef = useObjectRef(ref);
|
|
65
29
|
const { locale } = useLocale();
|
|
66
30
|
const formatMessage = useMessageFormatter(intlMessages);
|
|
67
|
-
const state = useTimeFieldState(
|
|
31
|
+
const state = useTimeFieldState({
|
|
32
|
+
...otherProps,
|
|
68
33
|
locale,
|
|
69
34
|
isInvalid: error ? true : void 0
|
|
70
|
-
})
|
|
71
|
-
const { fieldProps, labelProps } = useTimeField(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
35
|
+
});
|
|
36
|
+
const { fieldProps, labelProps } = useTimeField(
|
|
37
|
+
{ ...otherProps },
|
|
38
|
+
state,
|
|
39
|
+
timeFieldRef
|
|
40
|
+
);
|
|
41
|
+
return /* @__PURE__ */ React.createElement(Field, { ...otherProps, ref, size, noShrink: true }, /* @__PURE__ */ React.createElement(Field.Context, null, otherProps.label && /* @__PURE__ */ React.createElement(Field.Label, null, /* @__PURE__ */ React.createElement(
|
|
42
|
+
Label,
|
|
43
|
+
{
|
|
44
|
+
...labelProps,
|
|
45
|
+
size,
|
|
46
|
+
necessityIndicator: otherProps.isRequired && necessityIndicator ? "required" : !otherProps.isRequired && necessityIndicator ? "optional" : void 0,
|
|
47
|
+
contextualHelp
|
|
48
|
+
},
|
|
49
|
+
otherProps.label
|
|
50
|
+
))), /* @__PURE__ */ React.createElement(Field.Control, null, /* @__PURE__ */ React.createElement(
|
|
51
|
+
"div",
|
|
52
|
+
{
|
|
53
|
+
className: clsx(styles["sapphire-date-field"], {
|
|
54
|
+
[styles["sapphire-date-field--error"]]: state.isInvalid,
|
|
55
|
+
[styles["sapphire-date-field--no-clear-button"]]: noClearButton,
|
|
56
|
+
[styles["sapphire-date-field--no-calendar"]]: true,
|
|
57
|
+
[styles["sapphire-date-field--md"]]: size === "md"
|
|
58
|
+
})
|
|
59
|
+
},
|
|
60
|
+
/* @__PURE__ */ React.createElement(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
...fieldProps,
|
|
64
|
+
className: styles["sapphire-date-field__input"],
|
|
65
|
+
ref: timeFieldRef
|
|
66
|
+
},
|
|
67
|
+
state.segments.map((segment, i) => /* @__PURE__ */ React.createElement(TimeSegment, { key: i, segment, state }))
|
|
68
|
+
),
|
|
69
|
+
!noClearButton && !otherProps.isReadOnly && !otherProps.isDisabled && isAnySegmentModified(state.segments) && /* @__PURE__ */ React.createElement(
|
|
70
|
+
IconButton,
|
|
71
|
+
{
|
|
72
|
+
"aria-label": formatMessage("clear"),
|
|
73
|
+
onPress: () => state.segments.forEach(
|
|
74
|
+
(segment) => state.clearSegment(segment.type)
|
|
75
|
+
),
|
|
76
|
+
size: size === "md" ? "sm" : "md",
|
|
77
|
+
UNSAFE_className: clsx(
|
|
78
|
+
styles["sapphire-date-field__button"],
|
|
79
|
+
styles["sapphire-date-field__button--clear"]
|
|
80
|
+
)
|
|
81
|
+
},
|
|
82
|
+
/* @__PURE__ */ React.createElement(Icon, null, /* @__PURE__ */ React.createElement(CloseOutline, null))
|
|
83
|
+
)
|
|
84
|
+
)), !!error && typeof error !== "boolean" || note ? /* @__PURE__ */ React.createElement(Field.Footer, null, !!error && typeof error !== "boolean" ? /* @__PURE__ */ React.createElement(Field.Note, { variant: "error" }, error) : note ? note : null) : null);
|
|
102
85
|
}
|
|
103
86
|
const TimeField = forwardRef(_TimeField);
|
|
104
87
|
|
|
@@ -1 +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 GlobalDomAttributes,\n} from '@danske/sapphire-react';\nimport { AriaTimeFieldProps, useTimeField } from '
|
|
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 GlobalDomAttributes,\n} from '@danske/sapphire-react';\nimport { AriaTimeFieldProps, useTimeField } from 'react-aria/useTimeField';\nimport { ForwardedRef, forwardRef, RefObject, ReactNode } from 'react';\nimport { TimeValue } from 'react-aria-components';\nimport { DateSegment as DateSegmentType } from 'react-stately/useDateFieldState';\nimport { useTimeFieldState } from 'react-stately/useTimeFieldState';\nimport { useLocale } from 'react-aria/I18nProvider';\nimport { useMessageFormatter } from '@react-aria/i18n';\nimport { TimeSegment } from './TimeFieldSegment';\nimport { CloseOutline } from '@danske/sapphire-icons/react';\nimport { useObjectRef } from 'react-aria/useObjectRef';\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 GlobalDomAttributes & {\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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"}
|
|
@@ -1,47 +1,35 @@
|
|
|
1
1
|
import React, { useRef } from 'react';
|
|
2
|
-
import { useDateSegment } from '
|
|
2
|
+
import { useDateSegment } from 'react-aria/useDateField';
|
|
3
3
|
import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
|
|
4
4
|
import clsx from 'clsx';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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);
|
|
6
|
+
const TimeSegment = ({ segment, state }) => segment.type === "hour" || segment.type === "minute" || segment.type === "dayPeriod" ? /* @__PURE__ */ React.createElement(EditableSegment, { segment, state }) : /* @__PURE__ */ React.createElement(SeparatorSegment, { segment });
|
|
7
|
+
const SeparatorSegment = ({ segment }) => /* @__PURE__ */ React.createElement(
|
|
8
|
+
"span",
|
|
9
|
+
{
|
|
10
|
+
"aria-hidden": "true",
|
|
11
|
+
className: clsx(
|
|
12
|
+
styles["sapphire-date-field__segment"],
|
|
13
|
+
styles["sapphire-date-field__segment--separator"]
|
|
14
|
+
)
|
|
15
|
+
},
|
|
16
|
+
segment.text
|
|
17
|
+
);
|
|
35
18
|
const EditableSegment = ({ segment, state }) => {
|
|
36
19
|
const ref = useRef(null);
|
|
37
20
|
const { segmentProps } = useDateSegment(segment, state, ref);
|
|
38
|
-
return /* @__PURE__ */ React.createElement(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
21
|
+
return /* @__PURE__ */ React.createElement(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
...segmentProps,
|
|
25
|
+
style: segmentProps.style,
|
|
26
|
+
ref,
|
|
27
|
+
className: clsx(styles["sapphire-date-field__segment"], {
|
|
28
|
+
[styles["sapphire-date-field__segment--filled"]]: !segment.isPlaceholder
|
|
29
|
+
})
|
|
30
|
+
},
|
|
31
|
+
segment.text
|
|
32
|
+
);
|
|
45
33
|
};
|
|
46
34
|
|
|
47
35
|
export { TimeSegment };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeFieldSegment.js","sources":["../../../../src/TimeField/src/TimeFieldSegment.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { useDateSegment } from '
|
|
1
|
+
{"version":3,"file":"TimeFieldSegment.js","sources":["../../../../src/TimeField/src/TimeFieldSegment.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { useDateSegment } from 'react-aria/useDateField';\nimport { DateSegment as DateSegmentType } from 'react-stately/useDateFieldState';\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,WAAA,GAAc,CAAC,EAAE,OAAA,EAAS,OAAM,KAC3C,OAAA,CAAQ,IAAA,KAAS,MAAA,IACjB,OAAA,CAAQ,IAAA,KAAS,YACjB,OAAA,CAAQ,IAAA,KAAS,8BACf,KAAA,CAAA,aAAA,CAAC,eAAA,EAAA,EAAgB,SAAkB,KAAA,EAAc,CAAA,mBAEjD,KAAA,CAAA,aAAA,CAAC,gBAAA,EAAA,EAAiB,OAAA,EAAkB;AAExC,MAAM,gBAAA,GAAmB,CAAC,EAAE,OAAA,EAAQ,qBAClC,KAAA,CAAA,aAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAW,IAAA;AAAA,MACT,OAAO,8BAA8B,CAAA;AAAA,MACrC,OAAO,yCAAyC;AAAA;AAClD,GAAA;AAAA,EAEC,OAAA,CAAQ;AACX,CAAA;AAGF,MAAM,eAAA,GAAkB,CAAC,EAAE,OAAA,EAAS,OAAM,KAAwB;AAChE,EAAA,MAAM,GAAA,GAAM,OAAO,IAAI,CAAA;AACvB,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,cAAA,CAAe,OAAA,EAAS,OAAO,GAAG,CAAA;AAE3D,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,YAAA;AAAA,MACJ,OAAO,YAAA,CAAa,KAAA;AAAA,MACpB,GAAA;AAAA,MACA,SAAA,EAAW,IAAA,CAAK,MAAA,CAAO,8BAA8B,CAAA,EAAG;AAAA,QACtD,CAAC,MAAA,CAAO,sCAAsC,CAAC,GAC7C,CAAC,OAAA,CAAQ;AAAA,OACZ;AAAA,KAAA;AAAA,IAEA,OAAA,CAAQ;AAAA,GACX;AAEJ,CAAA;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -17,6 +17,6 @@ export { Slider } from './Slider/index.js';
|
|
|
17
17
|
export { TagGroup } from './TagGroup/src/TagGroup.js';
|
|
18
18
|
export { TagItem } from './TagGroup/src/TagItem.js';
|
|
19
19
|
export { TimeField } from './TimeField/src/TimeField.js';
|
|
20
|
-
export { useLocale } from '
|
|
20
|
+
export { useLocale } from 'react-aria/I18nProvider';
|
|
21
21
|
export { AccordionContext } from './Accordion/src/AccordionContext.js';
|
|
22
22
|
//# sourceMappingURL=index.js.map
|