@vygruppen/spor-react 3.0.2 → 3.0.3

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @vygruppen/spor-react@3.0.2 build
2
+ > @vygruppen/spor-react@3.0.3 build
3
3
  > tsup src/index.tsx --dts --treeshake --format cjs,esm
4
4
 
5
5
  CLI Building entry: src/index.tsx
@@ -10,12 +10,12 @@
10
10
  ESM Build start
11
11
  DTS Build start
12
12
  "toTime" is imported from external module "@internationalized/date" but never used in "dist/index.js".
13
- "toTime" is imported from external module "@internationalized/date" but never used in "dist/chunk-CIZ54LAU.mjs".
13
+ "toTime" is imported from external module "@internationalized/date" but never used in "dist/chunk-B2RY6AU2.mjs".
14
+ CJS dist/index.js 896.58 KB
15
+ CJS ⚡️ Build success in 5703ms
14
16
  ESM dist/index.mjs 2.01 KB
15
- ESM dist/CountryCodeSelect-QGMCRWO6.mjs 351.65 KB
16
- ESM dist/chunk-CIZ54LAU.mjs 416.53 KB
17
- ESM ⚡️ Build success in 5751ms
18
- CJS dist/index.js 896.28 KB
19
- CJS ⚡️ Build success in 5752ms
20
- DTS ⚡️ Build success in 23047ms
21
- DTS dist/index.d.ts 259.22 KB
17
+ ESM dist/CountryCodeSelect-7ASYXAQD.mjs 351.65 KB
18
+ ESM dist/chunk-B2RY6AU2.mjs 416.81 KB
19
+ ESM ⚡️ Build success in 5716ms
20
+ DTS ⚡️ Build success in 22215ms
21
+ DTS dist/index.d.ts 259.26 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @vygruppen/spor-react
2
2
 
3
+ ## 3.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 7e9b8990: DatePicker, TimePicker: Use cursor: text; everywhere inside of the date input field
8
+ - 7e9b8990: Combobox: Make padding-right apply to the loading indicator as well
9
+
3
10
  ## 3.0.2
4
11
 
5
12
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import { createTexts, useTranslation, InfoSelect, Item } from './chunk-CIZ54LAU.mjs';
1
+ import { createTexts, useTranslation, InfoSelect, Item } from './chunk-B2RY6AU2.mjs';
2
2
  import React from 'react';
3
3
 
4
4
  // ../../node_modules/awesome-phonenumber/index-esm.mjs
@@ -1,4 +1,4 @@
1
- import { forwardRef, Accordion as Accordion$1, Skeleton as Skeleton$1, useButtonGroup, Button as Button$1, Box, Center, ButtonGroup as ButtonGroup$1, IconButton as IconButton$1, Stack as Stack$1, useStyleConfig, Badge as Badge$1, Code as Code$1, Text, useFormControlContext, useMultiStyleConfig, chakra, Flex, Checkbox as Checkbox$1, useCheckbox, FormControl as FormControl$1, FormLabel, InputGroup, InputLeftElement, Input as Input$1, InputRightElement, Select, useDisclosure, useControllableState, Radio as Radio$1, RadioGroup as RadioGroup$1, Switch as Switch$1, Textarea as Textarea$1, Link, ModalHeader as ModalHeader$1, useModalContext, DrawerContent as DrawerContent$1, Tabs as Tabs$1, Table as Table$1, defineStyleConfig as defineStyleConfig$1, createMultiStyleConfigHelpers as createMultiStyleConfigHelpers$1, AccordionItem, AccordionButton, AccordionIcon, AccordionPanel, SkeletonCircle as SkeletonCircle$1, SkeletonText as SkeletonText$1, useBreakpointValue, Popover, PopoverAnchor, Portal, PopoverContent, PopoverArrow, PopoverBody, Heading as Heading$1, CheckboxGroup as CheckboxGroup$1, List, ListItem, useColorModeValue, useFormControlProps, useFormControl, Drawer as Drawer$1, DrawerOverlay, DrawerCloseButton, DrawerBody, usePopoverContext, DarkMode, PopoverTrigger, PopoverCloseButton, ChakraProvider, HStack, useToast as useToast$1, useInterval } from '@chakra-ui/react';
1
+ import { forwardRef, Accordion as Accordion$1, Skeleton as Skeleton$1, useButtonGroup, Button as Button$1, Box, Center, ButtonGroup as ButtonGroup$1, IconButton as IconButton$1, Stack as Stack$1, useStyleConfig, Badge as Badge$1, Code as Code$1, Text, useFormControlContext, useMultiStyleConfig, chakra, Flex, Checkbox as Checkbox$1, useCheckbox, FormControl as FormControl$1, FormLabel, InputGroup, InputLeftElement, Input as Input$1, InputRightElement, Select, useDisclosure, useControllableState, Radio as Radio$1, RadioGroup as RadioGroup$1, Switch as Switch$1, Textarea as Textarea$1, Link, ModalHeader as ModalHeader$1, useModalContext, DrawerContent as DrawerContent$1, Tabs as Tabs$1, Table as Table$1, defineStyleConfig as defineStyleConfig$1, createMultiStyleConfigHelpers as createMultiStyleConfigHelpers$1, AccordionItem, AccordionButton, AccordionIcon, AccordionPanel, SkeletonCircle as SkeletonCircle$1, SkeletonText as SkeletonText$1, useBreakpointValue, Popover, PopoverAnchor, Portal, PopoverContent, PopoverArrow, PopoverBody, Heading as Heading$1, CheckboxGroup as CheckboxGroup$1, useOutsideClick, List, ListItem, useColorModeValue, useFormControlProps, useFormControl, Drawer as Drawer$1, DrawerOverlay, DrawerCloseButton, DrawerBody, usePopoverContext, DarkMode, PopoverTrigger, PopoverCloseButton, ChakraProvider, HStack, useToast as useToast$1, useInterval } from '@chakra-ui/react';
2
2
  export { AccordionButton, AccordionIcon, AccordionItem, AccordionPanel, Box, Center, Collapse, Container, DarkMode, DrawerBody, DrawerCloseButton, DrawerFooter, DrawerOverlay, Fade, Flex, FormHelperText, Grid, GridItem, HStack, Image, Img, InputGroup, LightMode, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalOverlay, Popover, PopoverAnchor, PopoverArrow, PopoverBody, PopoverCloseButton, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, ScaleFade, SimpleGrid, Slide, SlideFade, Spacer, Tab, TabList, TabPanel, TabPanels, TableCaption, Tbody, Td, Tfoot, Th, Thead, Tr, VStack, Wrap, WrapItem, extendTheme, useBreakpointValue, useClipboard, useColorMode, useColorModePreference, useColorModeValue, useControllableProp, useDisclosure, useMediaQuery, useMergeRefs, useOutsideClick, usePrefersReducedMotion, useTheme, useToken } from '@chakra-ui/react';
3
3
  import tokens10__default from '@vygruppen/spor-design-tokens';
4
4
  import * as tokens10 from '@vygruppen/spor-design-tokens';
@@ -3828,7 +3828,8 @@ var TimeField = ({ state: state2, ...props }) => {
3828
3828
  ...labelProps,
3829
3829
  htmlFor: fieldProps.id,
3830
3830
  marginBottom: 0,
3831
- fontSize: "mobile.xs"
3831
+ fontSize: "mobile.xs",
3832
+ cursor: "text"
3832
3833
  },
3833
3834
  props.label
3834
3835
  ), /* @__PURE__ */ React49__default.createElement(Flex, { ...fieldProps, ref }, state2.segments.map((segment) => /* @__PURE__ */ React49__default.createElement(DateTimeSegment, { key: segment.type, segment, state: state2 }))), /* @__PURE__ */ React49__default.createElement(
@@ -4031,7 +4032,9 @@ var Popover3 = forwardRef$1(
4031
4032
  triggerRef,
4032
4033
  offset = 0,
4033
4034
  crossOffset = 0,
4034
- placement = "bottom"
4035
+ placement = "bottom",
4036
+ shouldFlip = false,
4037
+ isNonModal = false
4035
4038
  }, ref) => {
4036
4039
  var _a6;
4037
4040
  const internalRef = useRef(null);
@@ -4042,7 +4045,9 @@ var Popover3 = forwardRef$1(
4042
4045
  popoverRef,
4043
4046
  offset,
4044
4047
  crossOffset,
4045
- placement
4048
+ placement,
4049
+ shouldFlip,
4050
+ isNonModal
4046
4051
  },
4047
4052
  state2
4048
4053
  );
@@ -4227,6 +4232,11 @@ function Combobox({
4227
4232
  shouldCloseOnBlur: true,
4228
4233
  label
4229
4234
  });
4235
+ useOutsideClick({
4236
+ ref: listBoxRef,
4237
+ handler: state2.close,
4238
+ enabled: true
4239
+ });
4230
4240
  const {
4231
4241
  inputProps: { size: size2, ...inputProps },
4232
4242
  listBoxProps
@@ -4267,6 +4277,7 @@ function Combobox({
4267
4277
  {
4268
4278
  width: "1.5rem",
4269
4279
  alignSelf: "center",
4280
+ paddingRight,
4270
4281
  css: {
4271
4282
  div: {
4272
4283
  display: "flex",
@@ -4282,7 +4293,8 @@ function Combobox({
4282
4293
  state: state2,
4283
4294
  triggerRef: inputRef,
4284
4295
  ref: popoverRef,
4285
- placement: "bottom start"
4296
+ placement: "bottom start",
4297
+ shouldFlip: false
4286
4298
  },
4287
4299
  /* @__PURE__ */ React49__default.createElement(
4288
4300
  ListBox,
@@ -4928,7 +4940,7 @@ var texts13 = createTexts({
4928
4940
  sv: "Telefonnummer"
4929
4941
  }
4930
4942
  });
4931
- var LazyCountryCodeSelect = React49__default.lazy(() => import('./CountryCodeSelect-QGMCRWO6.mjs'));
4943
+ var LazyCountryCodeSelect = React49__default.lazy(() => import('./CountryCodeSelect-7ASYXAQD.mjs'));
4932
4944
  var Radio = forwardRef((props, ref) => {
4933
4945
  return /* @__PURE__ */ React49__default.createElement(Radio$1, { ...props, ref });
4934
4946
  });
@@ -11907,7 +11919,8 @@ var config13 = helpers6.defineMultiStyleConfig({
11907
11919
  inputLabel: {
11908
11920
  fontSize: "mobile.xs",
11909
11921
  color: mode("darkGrey", "white")(props),
11910
- margin: 0
11922
+ margin: 0,
11923
+ cursor: "text"
11911
11924
  },
11912
11925
  dateTimeSegment: {
11913
11926
  color: mode(
package/dist/index.d.ts CHANGED
@@ -2706,6 +2706,7 @@ declare const theme: {
2706
2706
  fontSize: string;
2707
2707
  color: string;
2708
2708
  margin: number;
2709
+ cursor: string;
2709
2710
  };
2710
2711
  dateTimeSegment: {
2711
2712
  color: string;
package/dist/index.js CHANGED
@@ -3533,7 +3533,8 @@ var init_TimeField = __esm({
3533
3533
  ...labelProps,
3534
3534
  htmlFor: fieldProps.id,
3535
3535
  marginBottom: 0,
3536
- fontSize: "mobile.xs"
3536
+ fontSize: "mobile.xs",
3537
+ cursor: "text"
3537
3538
  },
3538
3539
  props.label
3539
3540
  ), /* @__PURE__ */ React49__namespace.default.createElement(react.Flex, { ...fieldProps, ref }, state2.segments.map((segment) => /* @__PURE__ */ React49__namespace.default.createElement(DateTimeSegment, { key: segment.type, segment, state: state2 }))), /* @__PURE__ */ React49__namespace.default.createElement(
@@ -3770,7 +3771,9 @@ var init_Popover = __esm({
3770
3771
  triggerRef,
3771
3772
  offset = 0,
3772
3773
  crossOffset = 0,
3773
- placement = "bottom"
3774
+ placement = "bottom",
3775
+ shouldFlip = false,
3776
+ isNonModal = false
3774
3777
  }, ref) => {
3775
3778
  var _a6;
3776
3779
  const internalRef = React49.useRef(null);
@@ -3781,7 +3784,9 @@ var init_Popover = __esm({
3781
3784
  popoverRef,
3782
3785
  offset,
3783
3786
  crossOffset,
3784
- placement
3787
+ placement,
3788
+ shouldFlip,
3789
+ isNonModal
3785
3790
  },
3786
3791
  state2
3787
3792
  );
@@ -4737,6 +4742,11 @@ function Combobox({
4737
4742
  shouldCloseOnBlur: true,
4738
4743
  label
4739
4744
  });
4745
+ react.useOutsideClick({
4746
+ ref: listBoxRef,
4747
+ handler: state2.close,
4748
+ enabled: true
4749
+ });
4740
4750
  const {
4741
4751
  inputProps: { size: size2, ...inputProps },
4742
4752
  listBoxProps
@@ -4777,6 +4787,7 @@ function Combobox({
4777
4787
  {
4778
4788
  width: "1.5rem",
4779
4789
  alignSelf: "center",
4790
+ paddingRight,
4780
4791
  css: {
4781
4792
  div: {
4782
4793
  display: "flex",
@@ -4792,7 +4803,8 @@ function Combobox({
4792
4803
  state: state2,
4793
4804
  triggerRef: inputRef,
4794
4805
  ref: popoverRef,
4795
- placement: "bottom start"
4806
+ placement: "bottom start",
4807
+ shouldFlip: false
4796
4808
  },
4797
4809
  /* @__PURE__ */ React49__namespace.default.createElement(
4798
4810
  ListBox,
@@ -19979,7 +19991,8 @@ var init_datepicker2 = __esm({
19979
19991
  inputLabel: {
19980
19992
  fontSize: "mobile.xs",
19981
19993
  color: themeTools.mode("darkGrey", "white")(props),
19982
- margin: 0
19994
+ margin: 0,
19995
+ cursor: "text"
19983
19996
  },
19984
19997
  dateTimeSegment: {
19985
19998
  color: themeTools.mode(
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export { Accordion, AccordionButton, AccordionIcon, AccordionItem, AccordionPanel, AttachedInputs, Badge, Box, Button, ButtonGroup, Card, CardSelect, Center, Checkbox, CheckboxGroup, ChoiceChip, ClosableAlert, CloseButton, Code, Collapse, ColorInlineLoader, ColorSpinner, Combobox, Container, ContentLoader, DarkFullScreenLoader, DarkInlineLoader, DarkMode, DarkSpinner, DatePicker, DateRangePicker, Divider, Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerFooter, ModalHeader as DrawerHeader, DrawerOverlay, Expandable, ExpandableAlert, ExpandableItem, Fade, Flex, FloatingActionButton, FormControl, FormErrorMessage, FormHelperText, FormLabel, Grid, GridItem, HStack, Heading, IconButton, Image, Img, InfoSelect, InfoTag, Input, InputGroup, InputLeftElement, InputRightElement, Item, ItemDescription, ItemLabel, JumpButton, Language, LanguageProvider, LightFullScreenLoader, LightInlineLoader, LightMode, LightSpinner, LineIcon, ListBox, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, NativeSelect, NumericStepper, PasswordInput, PhoneNumberInput, PlayPauseButton, Popover, PopoverAnchor, PopoverArrow, PopoverBody, PopoverCloseButton, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, PopoverWizardBody, ProgressBar, ProgressLoader, Radio, RadioGroup, ScaleFade, SearchInput, Section, SimpleDrawer, SimpleGrid, SimplePopover, Skeleton, SkeletonCircle, SkeletonText, SkipButton, Slide, SlideFade, Spacer, SporProvider, Stack, StaticAlert, Stepper, StepperStep, Switch, Tab, TabList, TabPanel, TabPanels, Table, TableCaption, Tabs, Tbody, Td, Text, TextLink, Textarea, Tfoot, Th, Thead, Time, TimePicker, Tr, TravelTag, VStack, VyLogo, WizardPopover, Wrap, WrapItem, createTexts, extendTheme, fontFaces, theme, tokens, useBreakpointValue, useClipboard, useColorMode, useColorModePreference, useColorModeValue, useControllableProp, useDisclosure, useMediaQuery, useMergeRefs, useOutsideClick, usePrefersReducedMotion, useTheme, useToast, useToken, useTranslation } from './chunk-CIZ54LAU.mjs';
1
+ export { Accordion, AccordionButton, AccordionIcon, AccordionItem, AccordionPanel, AttachedInputs, Badge, Box, Button, ButtonGroup, Card, CardSelect, Center, Checkbox, CheckboxGroup, ChoiceChip, ClosableAlert, CloseButton, Code, Collapse, ColorInlineLoader, ColorSpinner, Combobox, Container, ContentLoader, DarkFullScreenLoader, DarkInlineLoader, DarkMode, DarkSpinner, DatePicker, DateRangePicker, Divider, Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerFooter, ModalHeader as DrawerHeader, DrawerOverlay, Expandable, ExpandableAlert, ExpandableItem, Fade, Flex, FloatingActionButton, FormControl, FormErrorMessage, FormHelperText, FormLabel, Grid, GridItem, HStack, Heading, IconButton, Image, Img, InfoSelect, InfoTag, Input, InputGroup, InputLeftElement, InputRightElement, Item, ItemDescription, ItemLabel, JumpButton, Language, LanguageProvider, LightFullScreenLoader, LightInlineLoader, LightMode, LightSpinner, LineIcon, ListBox, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, NativeSelect, NumericStepper, PasswordInput, PhoneNumberInput, PlayPauseButton, Popover, PopoverAnchor, PopoverArrow, PopoverBody, PopoverCloseButton, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, PopoverWizardBody, ProgressBar, ProgressLoader, Radio, RadioGroup, ScaleFade, SearchInput, Section, SimpleDrawer, SimpleGrid, SimplePopover, Skeleton, SkeletonCircle, SkeletonText, SkipButton, Slide, SlideFade, Spacer, SporProvider, Stack, StaticAlert, Stepper, StepperStep, Switch, Tab, TabList, TabPanel, TabPanels, Table, TableCaption, Tabs, Tbody, Td, Text, TextLink, Textarea, Tfoot, Th, Thead, Time, TimePicker, Tr, TravelTag, VStack, VyLogo, WizardPopover, Wrap, WrapItem, createTexts, extendTheme, fontFaces, theme, tokens, useBreakpointValue, useClipboard, useColorMode, useColorModePreference, useColorModeValue, useControllableProp, useDisclosure, useMediaQuery, useMergeRefs, useOutsideClick, usePrefersReducedMotion, useTheme, useToast, useToken, useTranslation } from './chunk-B2RY6AU2.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vygruppen/spor-react",
3
- "version": "3.0.2",
3
+ "version": "3.0.3",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -28,6 +28,7 @@ export const TimeField = ({ state, ...props }: TimeFieldProps) => {
28
28
  htmlFor={fieldProps.id}
29
29
  marginBottom={0}
30
30
  fontSize="mobile.xs"
31
+ cursor="text"
31
32
  >
32
33
  {props.label}
33
34
  </FormLabel>
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect, useRef, useState } from "react";
2
2
  import { AriaComboBoxProps, useComboBox, useFilter } from "react-aria";
3
3
  import { useComboBoxState } from "react-stately";
4
- import { ColorSpinner, Input, InputProps, ListBox } from "..";
4
+ import { ColorSpinner, Input, InputProps, ListBox, useOutsideClick } from "..";
5
5
  import { Popover } from "./Popover";
6
6
 
7
7
  export type ComboboxProps<T> = AriaComboBoxProps<T> & {
@@ -96,6 +96,12 @@ export function Combobox<T extends object>({
96
96
  label,
97
97
  });
98
98
 
99
+ useOutsideClick({
100
+ ref: listBoxRef,
101
+ handler: state.close,
102
+ enabled: true,
103
+ });
104
+
99
105
  const {
100
106
  inputProps: { size, ...inputProps },
101
107
  listBoxProps,
@@ -141,6 +147,7 @@ export function Combobox<T extends object>({
141
147
  <ColorSpinner
142
148
  width="1.5rem"
143
149
  alignSelf="center"
150
+ paddingRight={paddingRight}
144
151
  css={{
145
152
  div: {
146
153
  display: "flex",
@@ -159,6 +166,7 @@ export function Combobox<T extends object>({
159
166
  triggerRef={inputRef as any}
160
167
  ref={popoverRef}
161
168
  placement="bottom start"
169
+ shouldFlip={false}
162
170
  >
163
171
  <ListBox
164
172
  {...listBoxProps}
@@ -27,6 +27,18 @@ type PopoverProps = {
27
27
  * Defaults to "bottom"
28
28
  */
29
29
  placement?: AriaPopoverProps["placement"];
30
+ /**
31
+ * Whether or not the list should flip to the opposite side of the trigger if there is not enough space.
32
+ * Defaults to false.
33
+ */
34
+ shouldFlip?: boolean;
35
+ /**
36
+ * Whether the popover is non-modal, i.e. elements outside the popover may be interacted with by assistive technologies.
37
+ * Most popovers should not use this option as it may negatively impact the screen reader experience. Only use with components such as combobox, which are designed to handle this situation carefully.
38
+ *
39
+ * Defaults to false.
40
+ */
41
+ isNonModal?: boolean;
30
42
  };
31
43
  /**
32
44
  * Internal popover component.
@@ -42,6 +54,8 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
42
54
  offset = 0,
43
55
  crossOffset = 0,
44
56
  placement = "bottom",
57
+ shouldFlip = false,
58
+ isNonModal = false,
45
59
  },
46
60
  ref
47
61
  ) => {
@@ -55,6 +69,8 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
55
69
  offset,
56
70
  crossOffset,
57
71
  placement,
72
+ shouldFlip,
73
+ isNonModal,
58
74
  },
59
75
  state
60
76
  );
@@ -70,6 +70,7 @@ const config = helpers.defineMultiStyleConfig({
70
70
  fontSize: "mobile.xs",
71
71
  color: mode("darkGrey", "white")(props),
72
72
  margin: 0,
73
+ cursor: "text",
73
74
  },
74
75
  dateTimeSegment: {
75
76
  color: mode(