@redsift/design-system 12.5.15 → 12.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"useListboxItem.js","sources":["../../src/components/listbox/context.ts","../../src/components/listbox/types.ts","../../src/components/listbox/useListboxItem.ts"],"sourcesContent":["import React from 'react';\nimport { ListboxContextProps, ListboxState } from './types';\n\nexport const LISTBOX_INITIAL_STATE: ListboxState = {\n isDisabled: false,\n isReadOnly: false,\n selectedValues: [],\n selectionMode: 'single',\n};\n\nexport const ListboxContext = React.createContext<ListboxContextProps>({\n state: LISTBOX_INITIAL_STATE,\n dispatch: () => {},\n});\n","import { ComponentProps } from 'react';\nimport { ContainerProps, ContainerTransientProps, ValueOf } from '../../types';\nimport { FocusWithinGroupOptions, UseFocusWithinGroupProps } from '../focus-within-group';\n\n/**\n * Component variant.\n */\nexport const ListboxSelectionMode = {\n single: 'single',\n multiple: 'multiple',\n} as const;\nexport type ListboxSelectionMode = ValueOf<typeof ListboxSelectionMode>;\n\n/**\n * Context props.\n */\n\nexport type ListboxState = Readonly<{\n isDisabled: boolean;\n isReadOnly: boolean;\n selectedValues: string[];\n selectionMode: ListboxSelectionMode;\n activedescendant?: [string, string];\n}>;\n\nexport enum ListboxActionType {\n TOGGLE = 'TOGGLE',\n SET = 'SET',\n UPDATE_OPTIONS = 'UPDATE_OPTIONS',\n}\n\nexport type ListboxAction =\n | {\n type: ListboxActionType.TOGGLE;\n payload: { value: string; activedescendant?: [string, string] };\n }\n | {\n type: ListboxActionType.SET;\n payload: { values: string[]; activedescendant?: [string, string] };\n }\n | {\n type: ListboxActionType.UPDATE_OPTIONS;\n payload: { isDisabled: boolean };\n };\n\nexport type UseListboxItemProps = UseFocusWithinGroupProps & {\n isSelected?: boolean;\n isDisabled?: boolean;\n};\n\nexport type ListboxContextProps = {\n state: ListboxState;\n dispatch: React.Dispatch<ListboxAction>;\n};\n\n/**\n * Component variant.\n */\nexport const ListboxVariant = {\n standalone: 'standalone',\n unstyled: 'unstyled',\n} as const;\nexport type ListboxVariant = ValueOf<typeof ListboxVariant>;\n\n/**\n * Component props.\n */\nexport interface ListboxProps extends Omit<ComponentProps<'div'>, 'onChange'>, ContainerProps, FocusWithinGroupOptions {\n /**\n * Default selected values.\n * Used for uncontrolled version.\n */\n defaultValues?: string[];\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label of the switch group. */\n label?: string;\n /** Method to handle component change. */\n onChange?(values: string[]): void;\n /**\n * Whether the listbox allows multiple selections or single ones.\n * @default 'single'\n */\n selectionMode?: 'single' | 'multiple';\n /**\n * Currently selected values.\n * Used for controlled version.\n */\n values?: string[];\n /**\n * Whether the Listbox is used as standalone or is unstyled within another component.\n * @default 'standalone'\n */\n variant?: ListboxVariant;\n}\n\nexport interface StyledListboxProps extends ComponentProps<'div'>, ContainerTransientProps {\n $isDisabled: ListboxProps['isDisabled'];\n $isInvalid: ListboxProps['isInvalid'];\n $isReadOnly: ListboxProps['isReadOnly'];\n $variant: ListboxProps['variant'];\n}\n","import { useCallback, useContext, useEffect, RefObject, KeyboardEvent } from 'react';\nimport { ListboxContext } from './context';\nimport { ListboxActionType, UseListboxItemProps } from './types';\nimport { useFocusOnListItem } from '../focus-within-group';\n\nexport function useListboxItem(props: {\n domElementRef: RefObject<Element>;\n value: string;\n id?: string;\n isDisabled?: boolean;\n propsIsSelected?: boolean;\n rowIndex?: number | null;\n}): UseListboxItemProps {\n const { domElementRef, value, id, isDisabled, propsIsSelected, rowIndex } = props;\n\n const {\n tabIndex,\n isFocused,\n handleKeyDown: handleFocusKeyDown,\n handleClick: handleFocusClick,\n } = useFocusOnListItem({ domElementRef, isDisabled: isDisabled!, id, value, rowIndex });\n\n const context = useContext(ListboxContext);\n\n const handleKeyDown = useCallback((event: KeyboardEvent) => {\n handleFocusKeyDown(event);\n const code = event.code;\n if (code === 'Enter' || code === 'Space') {\n if (context.state.selectionMode === 'multiple') {\n context.dispatch({\n type: ListboxActionType.TOGGLE,\n payload: { value, activedescendant: [id!, value] },\n });\n } else {\n context.dispatch({\n type: ListboxActionType.SET,\n payload: {\n values: [value],\n activedescendant: [id!, value],\n },\n });\n }\n }\n }, []);\n\n const handleClick = useCallback(() => {\n handleFocusClick();\n if (context.state.selectionMode === 'multiple') {\n if (value) {\n context.dispatch({\n type: ListboxActionType.TOGGLE,\n payload: { value, activedescendant: [id!, value] },\n });\n }\n } else {\n context.dispatch({\n type: ListboxActionType.SET,\n payload: {\n values: [value],\n activedescendant: [id!, value],\n },\n });\n }\n }, [value]);\n\n const isSelected =\n propsIsSelected ?? context?.state?.selectedValues?.find((selectedValue) => selectedValue === value) !== undefined;\n\n useEffect(() => {\n if (isFocused && domElementRef.current) {\n (domElementRef as RefObject<SVGElement | HTMLElement>).current?.focus();\n }\n }, [isFocused]);\n\n return {\n tabIndex,\n isFocused,\n isSelected,\n isDisabled,\n handleKeyDown,\n handleClick,\n };\n}\n"],"names":["LISTBOX_INITIAL_STATE","isDisabled","isReadOnly","selectedValues","selectionMode","ListboxContext","React","createContext","state","dispatch","ListboxSelectionMode","single","multiple","ListboxActionType","ListboxVariant","standalone","unstyled","useListboxItem","props","_context$state","_context$state$select","domElementRef","value","id","propsIsSelected","rowIndex","tabIndex","isFocused","handleKeyDown","handleFocusKeyDown","handleClick","handleFocusClick","useFocusOnListItem","context","useContext","useCallback","event","code","type","TOGGLE","payload","activedescendant","SET","values","isSelected","find","selectedValue","undefined","useEffect","current","_current","focus"],"mappings":"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"}
1
+ {"version":3,"file":"useListboxItem.js","sources":["../../src/components/listbox/context.ts","../../src/components/listbox/types.ts","../../src/components/listbox/useListboxItem.ts"],"sourcesContent":["import React from 'react';\nimport { ListboxContextProps, ListboxState } from './types';\n\nexport const LISTBOX_INITIAL_STATE: ListboxState = {\n isDisabled: false,\n isReadOnly: false,\n selectedValues: [],\n selectionMode: 'single',\n};\n\nexport const ListboxContext = React.createContext<ListboxContextProps>({\n state: LISTBOX_INITIAL_STATE,\n dispatch: () => {},\n});\n","import { ComponentProps } from 'react';\nimport { ContainerProps, ContainerTransientProps, ValueOf } from '../../types';\nimport { FocusWithinGroupOptions, UseFocusWithinGroupProps } from '../focus-within-group';\n\n/**\n * Component variant.\n */\nexport const ListboxSelectionMode = {\n single: 'single',\n multiple: 'multiple',\n} as const;\nexport type ListboxSelectionMode = ValueOf<typeof ListboxSelectionMode>;\n\n/**\n * Context props.\n */\n\nexport type ListboxState = Readonly<{\n isDisabled: boolean;\n isReadOnly: boolean;\n selectedValues: string[];\n selectionMode: ListboxSelectionMode;\n activedescendant?: [string, string];\n}>;\n\nexport enum ListboxActionType {\n TOGGLE = 'TOGGLE',\n SET = 'SET',\n UPDATE_OPTIONS = 'UPDATE_OPTIONS',\n}\n\nexport type ListboxAction =\n | {\n type: ListboxActionType.TOGGLE;\n payload: { value: string; activedescendant?: [string, string] };\n }\n | {\n type: ListboxActionType.SET;\n payload: { values: string[]; activedescendant?: [string, string] };\n }\n | {\n type: ListboxActionType.UPDATE_OPTIONS;\n /**\n * Merged into the state as is. Unlike `SET` and `TOGGLE`, it is not blocked by `isDisabled` / `isReadOnly`,\n * so a parent component can mirror a controlled selection (`selectedValues`) into a disabled listbox.\n */\n payload: { isDisabled?: boolean; selectedValues?: string[] };\n };\n\nexport type UseListboxItemProps = UseFocusWithinGroupProps & {\n isSelected?: boolean;\n isDisabled?: boolean;\n};\n\nexport type ListboxContextProps = {\n state: ListboxState;\n dispatch: React.Dispatch<ListboxAction>;\n};\n\n/**\n * Component variant.\n */\nexport const ListboxVariant = {\n standalone: 'standalone',\n unstyled: 'unstyled',\n} as const;\nexport type ListboxVariant = ValueOf<typeof ListboxVariant>;\n\n/**\n * Component props.\n */\nexport interface ListboxProps extends Omit<ComponentProps<'div'>, 'onChange'>, ContainerProps, FocusWithinGroupOptions {\n /**\n * Default selected values.\n * Used for uncontrolled version.\n */\n defaultValues?: string[];\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is invalid or not. */\n isInvalid?: boolean;\n /** Whether the component is read only or not. */\n isReadOnly?: boolean;\n /** Whether the component is required or not. */\n isRequired?: boolean;\n /** Label of the switch group. */\n label?: string;\n /** Method to handle component change. */\n onChange?(values: string[]): void;\n /**\n * Whether the listbox allows multiple selections or single ones.\n * @default 'single'\n */\n selectionMode?: 'single' | 'multiple';\n /**\n * Currently selected values.\n * Used for controlled version.\n */\n values?: string[];\n /**\n * Whether the Listbox is used as standalone or is unstyled within another component.\n * @default 'standalone'\n */\n variant?: ListboxVariant;\n}\n\nexport interface StyledListboxProps extends ComponentProps<'div'>, ContainerTransientProps {\n $isDisabled: ListboxProps['isDisabled'];\n $isInvalid: ListboxProps['isInvalid'];\n $isReadOnly: ListboxProps['isReadOnly'];\n $variant: ListboxProps['variant'];\n}\n","import { useCallback, useContext, useEffect, RefObject, KeyboardEvent } from 'react';\nimport { ListboxContext } from './context';\nimport { ListboxActionType, UseListboxItemProps } from './types';\nimport { useFocusOnListItem } from '../focus-within-group';\n\nexport function useListboxItem(props: {\n domElementRef: RefObject<Element>;\n value: string;\n id?: string;\n isDisabled?: boolean;\n propsIsSelected?: boolean;\n rowIndex?: number | null;\n}): UseListboxItemProps {\n const { domElementRef, value, id, isDisabled, propsIsSelected, rowIndex } = props;\n\n const {\n tabIndex,\n isFocused,\n handleKeyDown: handleFocusKeyDown,\n handleClick: handleFocusClick,\n } = useFocusOnListItem({ domElementRef, isDisabled: isDisabled!, id, value, rowIndex });\n\n const context = useContext(ListboxContext);\n\n const handleKeyDown = useCallback((event: KeyboardEvent) => {\n handleFocusKeyDown(event);\n const code = event.code;\n if (code === 'Enter' || code === 'Space') {\n if (context.state.selectionMode === 'multiple') {\n context.dispatch({\n type: ListboxActionType.TOGGLE,\n payload: { value, activedescendant: [id!, value] },\n });\n } else {\n context.dispatch({\n type: ListboxActionType.SET,\n payload: {\n values: [value],\n activedescendant: [id!, value],\n },\n });\n }\n }\n }, []);\n\n const handleClick = useCallback(() => {\n handleFocusClick();\n if (context.state.selectionMode === 'multiple') {\n if (value) {\n context.dispatch({\n type: ListboxActionType.TOGGLE,\n payload: { value, activedescendant: [id!, value] },\n });\n }\n } else {\n context.dispatch({\n type: ListboxActionType.SET,\n payload: {\n values: [value],\n activedescendant: [id!, value],\n },\n });\n }\n }, [value]);\n\n const isSelected =\n propsIsSelected ?? context?.state?.selectedValues?.find((selectedValue) => selectedValue === value) !== undefined;\n\n useEffect(() => {\n if (isFocused && domElementRef.current) {\n (domElementRef as RefObject<SVGElement | HTMLElement>).current?.focus();\n }\n }, [isFocused]);\n\n return {\n tabIndex,\n isFocused,\n isSelected,\n isDisabled,\n handleKeyDown,\n handleClick,\n };\n}\n"],"names":["LISTBOX_INITIAL_STATE","isDisabled","isReadOnly","selectedValues","selectionMode","ListboxContext","React","createContext","state","dispatch","ListboxSelectionMode","single","multiple","ListboxActionType","ListboxVariant","standalone","unstyled","useListboxItem","props","_context$state","_context$state$select","domElementRef","value","id","propsIsSelected","rowIndex","tabIndex","isFocused","handleKeyDown","handleFocusKeyDown","handleClick","handleFocusClick","useFocusOnListItem","context","useContext","useCallback","event","code","type","TOGGLE","payload","activedescendant","SET","values","isSelected","find","selectedValue","undefined","useEffect","current","_current","focus"],"mappings":";;;AAGO,MAAMA,qBAAmC,GAAG;AACjDC,EAAAA,UAAU,EAAE,KAAK;AACjBC,EAAAA,UAAU,EAAE,KAAK;AACjBC,EAAAA,cAAc,EAAE,EAAE;AAClBC,EAAAA,aAAa,EAAE,QAAA;AACjB,EAAC;MAEYC,cAAc,gBAAGC,cAAK,CAACC,aAAa,CAAsB;AACrEC,EAAAA,KAAK,EAAER,qBAAqB;EAC5BS,QAAQ,EAAEA,MAAM,EAAC;AACnB,CAAC;;ACTD;AACA;AACA;AACO,MAAMC,oBAAoB,GAAG;AAClCC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,QAAQ,EAAE,UAAA;AACZ,EAAU;;AAGV;AACA;AACA;;AAUYC,IAAAA,iBAAiB,0BAAjBA,iBAAiB,EAAA;EAAjBA,iBAAiB,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;EAAjBA,iBAAiB,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA;EAAjBA,iBAAiB,CAAA,gBAAA,CAAA,GAAA,gBAAA,CAAA;AAAA,EAAA,OAAjBA,iBAAiB,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAkC7B;AACA;AACA;AACO,MAAMC,cAAc,GAAG;AAC5BC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,QAAQ,EAAE,UAAA;AACZ,EAAU;;AAGV;AACA;AACA;;ACjEO,SAASC,cAAcA,CAACC,KAO9B,EAAuB;EAAA,IAAAC,cAAA,EAAAC,qBAAA,CAAA;EACtB,MAAM;IAAEC,aAAa;IAAEC,KAAK;IAAEC,EAAE;IAAEtB,UAAU;IAAEuB,eAAe;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAGP,KAAK,CAAA;EAEjF,MAAM;IACJQ,QAAQ;IACRC,SAAS;AACTC,IAAAA,aAAa,EAAEC,kBAAkB;AACjCC,IAAAA,WAAW,EAAEC,gBAAAA;GACd,GAAGC,kBAAkB,CAAC;IAAEX,aAAa;AAAEpB,IAAAA,UAAU,EAAEA,UAAW;IAAEsB,EAAE;IAAED,KAAK;AAAEG,IAAAA,QAAAA;AAAS,GAAC,CAAC,CAAA;AAEvF,EAAA,MAAMQ,OAAO,GAAGC,UAAU,CAAC7B,cAAc,CAAC,CAAA;AAE1C,EAAA,MAAMuB,aAAa,GAAGO,WAAW,CAAEC,KAAoB,IAAK;IAC1DP,kBAAkB,CAACO,KAAK,CAAC,CAAA;AACzB,IAAA,MAAMC,IAAI,GAAGD,KAAK,CAACC,IAAI,CAAA;AACvB,IAAA,IAAIA,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,OAAO,EAAE;AACxC,MAAA,IAAIJ,OAAO,CAACzB,KAAK,CAACJ,aAAa,KAAK,UAAU,EAAE;QAC9C6B,OAAO,CAACxB,QAAQ,CAAC;UACf6B,IAAI,EAAEzB,iBAAiB,CAAC0B,MAAM;AAC9BC,UAAAA,OAAO,EAAE;YAAElB,KAAK;AAAEmB,YAAAA,gBAAgB,EAAE,CAAClB,EAAE,EAAGD,KAAK,CAAA;AAAE,WAAA;AACnD,SAAC,CAAC,CAAA;AACJ,OAAC,MAAM;QACLW,OAAO,CAACxB,QAAQ,CAAC;UACf6B,IAAI,EAAEzB,iBAAiB,CAAC6B,GAAG;AAC3BF,UAAAA,OAAO,EAAE;YACPG,MAAM,EAAE,CAACrB,KAAK,CAAC;AACfmB,YAAAA,gBAAgB,EAAE,CAAClB,EAAE,EAAGD,KAAK,CAAA;AAC/B,WAAA;AACF,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMQ,WAAW,GAAGK,WAAW,CAAC,MAAM;AACpCJ,IAAAA,gBAAgB,EAAE,CAAA;AAClB,IAAA,IAAIE,OAAO,CAACzB,KAAK,CAACJ,aAAa,KAAK,UAAU,EAAE;AAC9C,MAAA,IAAIkB,KAAK,EAAE;QACTW,OAAO,CAACxB,QAAQ,CAAC;UACf6B,IAAI,EAAEzB,iBAAiB,CAAC0B,MAAM;AAC9BC,UAAAA,OAAO,EAAE;YAAElB,KAAK;AAAEmB,YAAAA,gBAAgB,EAAE,CAAClB,EAAE,EAAGD,KAAK,CAAA;AAAE,WAAA;AACnD,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,MAAM;MACLW,OAAO,CAACxB,QAAQ,CAAC;QACf6B,IAAI,EAAEzB,iBAAiB,CAAC6B,GAAG;AAC3BF,QAAAA,OAAO,EAAE;UACPG,MAAM,EAAE,CAACrB,KAAK,CAAC;AACfmB,UAAAA,gBAAgB,EAAE,CAAClB,EAAE,EAAGD,KAAK,CAAA;AAC/B,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EAAE,CAACA,KAAK,CAAC,CAAC,CAAA;AAEX,EAAA,MAAMsB,UAAU,GACdpB,eAAe,aAAfA,eAAe,KAAA,KAAA,CAAA,GAAfA,eAAe,GAAI,CAAAS,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAAd,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,cAAA,GAAPc,OAAO,CAAEzB,KAAK,MAAAW,IAAAA,IAAAA,cAAA,KAAAC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAdD,cAAA,CAAgBhB,cAAc,MAAAiB,IAAAA,IAAAA,qBAAA,uBAA9BA,qBAAA,CAAgCyB,IAAI,CAAEC,aAAa,IAAKA,aAAa,KAAKxB,KAAK,CAAC,MAAKyB,SAAS,CAAA;AAEnHC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIrB,SAAS,IAAIN,aAAa,CAAC4B,OAAO,EAAE;AAAA,MAAA,IAAAC,QAAA,CAAA;AACtC,MAAA,CAAAA,QAAA,GAAC7B,aAAa,CAAyC4B,OAAO,MAAA,IAAA,IAAAC,QAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA9DA,QAAA,CAAgEC,KAAK,EAAE,CAAA;AACzE,KAAA;AACF,GAAC,EAAE,CAACxB,SAAS,CAAC,CAAC,CAAA;EAEf,OAAO;IACLD,QAAQ;IACRC,SAAS;IACTiB,UAAU;IACV3C,UAAU;IACV2B,aAAa;AACbE,IAAAA,WAAAA;GACD,CAAA;AACH;;;;"}
package/index.d.ts CHANGED
@@ -4953,8 +4953,13 @@ type ListboxAction = {
4953
4953
  };
4954
4954
  } | {
4955
4955
  type: ListboxActionType.UPDATE_OPTIONS;
4956
+ /**
4957
+ * Merged into the state as is. Unlike `SET` and `TOGGLE`, it is not blocked by `isDisabled` / `isReadOnly`,
4958
+ * so a parent component can mirror a controlled selection (`selectedValues`) into a disabled listbox.
4959
+ */
4956
4960
  payload: {
4957
- isDisabled: boolean;
4961
+ isDisabled?: boolean;
4962
+ selectedValues?: string[];
4958
4963
  };
4959
4964
  };
4960
4965
  type UseListboxItemProps = UseFocusWithinGroupProps & {
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "version": "version-changelog ../../CHANGELOG.md && changelog-verify ../../CHANGELOG.md && git add ../../CHANGELOG.md"
34
34
  },
35
35
  "types": "index.d.ts",
36
- "version": "12.5.15",
36
+ "version": "12.6.0",
37
37
  "dependencies": {
38
38
  "@react-spring/web": "^9.7.1",
39
39
  "classnames": "^2.3.1",
@@ -94,10 +94,10 @@
94
94
  "version-changelog": "^3.1.1"
95
95
  },
96
96
  "peerDependencies": {
97
- "@redsift/icons": "^12.5.15-0",
97
+ "@redsift/icons": "^12.6.0-0",
98
98
  "react": ">=17",
99
99
  "react-dom": ">=17",
100
100
  "styled-components": "6.1.19"
101
101
  },
102
- "gitHead": "b064c6c447607f10919e71c766182014fff8cee3"
102
+ "gitHead": "8bbda6ee54bc203253b81d68d74dbb9344c735ff"
103
103
  }