@economic/taco 1.25.2 → 1.26.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/dist/components/ButtonGroup/ButtonGroup.d.ts +5 -0
  2. package/dist/esm/packages/taco/src/components/ButtonGroup/ButtonGroup.js +46 -0
  3. package/dist/esm/packages/taco/src/components/ButtonGroup/ButtonGroup.js.map +1 -0
  4. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +1 -1
  5. package/dist/esm/packages/taco/src/components/Drawer/Drawer.js +1 -1
  6. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +2 -2
  7. package/dist/esm/packages/taco/src/components/Group/Group.js +1 -1
  8. package/dist/esm/packages/taco/src/components/Group/Group.js.map +1 -1
  9. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js +20 -13
  10. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -1
  11. package/dist/esm/packages/taco/src/components/Header/components/MenuButton.js +1 -1
  12. package/dist/esm/packages/taco/src/components/Header/components/MenuButton.js.map +1 -1
  13. package/dist/esm/packages/taco/src/components/Header/components/PrimaryNavigation.js +1 -1
  14. package/dist/esm/packages/taco/src/components/Input/Input.js +1 -1
  15. package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js +26 -22
  16. package/dist/esm/packages/taco/src/components/Layout/components/Sidebar.js.map +1 -1
  17. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +1 -1
  18. package/dist/esm/packages/taco/src/components/Listbox/useListbox.js +1 -1
  19. package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js +1 -1
  20. package/dist/esm/packages/taco/src/components/Menu/Menu.js +2 -2
  21. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +1 -1
  22. package/dist/esm/packages/taco/src/components/Menu/components/Header.js +1 -1
  23. package/dist/esm/packages/taco/src/components/Menu/components/Item.js +2 -2
  24. package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
  25. package/dist/esm/packages/taco/src/components/Menu/components/Link.js +1 -1
  26. package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js +1 -1
  27. package/dist/esm/packages/taco/src/components/Select/useSelect.js +1 -1
  28. package/dist/esm/packages/taco/src/components/Select2/Select2.js +2 -2
  29. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +2 -2
  30. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +1 -1
  31. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js +1 -1
  32. package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js +1 -1
  33. package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +1 -1
  34. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +1 -1
  35. package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js +48 -0
  36. package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js.map +1 -0
  37. package/dist/esm/packages/taco/src/index.js +6 -4
  38. package/dist/esm/packages/taco/src/index.js.map +1 -1
  39. package/dist/hooks/useIntersectionObserver.d.ts +2 -0
  40. package/dist/index.d.ts +2 -0
  41. package/dist/taco.cjs.development.js +843 -750
  42. package/dist/taco.cjs.development.js.map +1 -1
  43. package/dist/taco.cjs.production.min.js +1 -1
  44. package/dist/taco.cjs.production.min.js.map +1 -1
  45. package/package.json +2 -2
@@ -4,11 +4,11 @@ import { AVAILABLE_COLORS, getSubtleColorShadeClasses } from '../../../utils/tai
4
4
  import { Icon } from '../../Icon/Icon.js';
5
5
  import { useLocalization } from '../../Provider/Localization.js';
6
6
  import { Button } from '../../Button/Button.js';
7
+ import { Group } from '../../Group/Group.js';
8
+ import { Root, Item, Indicator } from '@radix-ui/react-radio-group';
7
9
  import { Input } from '../../Input/Input.js';
8
10
  import { Popover } from '../../Popover/Popover.js';
9
- import { Group } from '../../Group/Group.js';
10
11
  import { Field } from '../../Field/Field.js';
11
- import { Root, Item, Indicator } from '@radix-ui/react-radio-group';
12
12
  import { useSelect2Context } from './Context.js';
13
13
  import { _catch } from '../../../../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js';
14
14
 
@@ -3,8 +3,8 @@ import cn from 'classnames';
3
3
  import { Icon } from '../../Icon/Icon.js';
4
4
  import { Badge } from '../../Badge/Badge.js';
5
5
  import { Tooltip } from '../../Tooltip/Tooltip.js';
6
- import { getInputClasses } from '../../Input/util.js';
7
6
  import { useMergedRef } from '../../../hooks/useMergedRef.js';
7
+ import { getInputClasses } from '../../Input/util.js';
8
8
  import { ScrollArea } from '../../ScrollArea/ScrollArea.js';
9
9
  import { Tag } from '../../Tag/Tag.js';
10
10
  import { useSelect2Context } from './Context.js';
@@ -1,8 +1,8 @@
1
1
  import React__default from 'react';
2
2
  import cn from 'classnames';
3
3
  import { useLocalization } from '../../Provider/Localization.js';
4
- import { useBoundingClientRectListener } from '../../../hooks/useBoundingClientRectListener.js';
5
4
  import { useMergedRef } from '../../../hooks/useMergedRef.js';
5
+ import { useBoundingClientRectListener } from '../../../hooks/useBoundingClientRectListener.js';
6
6
  import { useTable } from '../hooks/useTable.js';
7
7
  import { Row } from '../util/renderRow.js';
8
8
  import { BaseTable, DefaultEmptyState } from './BaseTable.js';
@@ -1,6 +1,6 @@
1
1
  import React__default from 'react';
2
- import { getNextIndexFromKey } from '../../../utils/hooks/useListKeyboardNavigation.js';
3
2
  import { useControllableState } from '@radix-ui/react-use-controllable-state';
3
+ import { getNextIndexFromKey } from '../../../utils/hooks/useListKeyboardNavigation.js';
4
4
  import { sanitizeRowProps } from '../util.js';
5
5
 
6
6
  const useTableKeyboardNavigation = (props, rows, rowProps, ref) => {
@@ -3,8 +3,8 @@ import cn from 'classnames';
3
3
  import { Icon } from '../../../Icon/Icon.js';
4
4
  import { useLocalization } from '../../../Provider/Localization.js';
5
5
  import { Button } from '../../../Button/Button.js';
6
- import { Popover } from '../../../Popover/Popover.js';
7
6
  import { Group } from '../../../Group/Group.js';
7
+ import { Popover } from '../../../Popover/Popover.js';
8
8
  import { useGlobalKeyboardShortcut } from '../../../../hooks/useGlobalKeyboardShortcut.js';
9
9
  import { Shortcut } from '../../../Shortcut/Shortcut.js';
10
10
  import { isInternalColumn } from '../../utilities/columns.js';
@@ -3,8 +3,8 @@ import cn from 'classnames';
3
3
  import { Icon } from '../../Icon/Icon.js';
4
4
  import { Tooltip } from '../../Tooltip/Tooltip.js';
5
5
  import { IconButton } from '../../IconButton/IconButton.js';
6
- import { Checkbox } from '../../Checkbox/Checkbox.js';
7
6
  import { Menu } from '../../Menu/Menu.js';
7
+ import { Checkbox } from '../../Checkbox/Checkbox.js';
8
8
  import { Shortcut } from '../../Shortcut/Shortcut.js';
9
9
  import { useRowContext } from '../components/row/Context.js';
10
10
 
@@ -0,0 +1,48 @@
1
+ import React__default from 'react';
2
+
3
+ const useIntersectionObserver = (ref, offset) => {
4
+ const [intersectedIndexes, setIntersectedIndexes] = React__default.useState({});
5
+ const handleIntersection = (entries, observer) => {
6
+ if (observer.root) {
7
+ const children = Array.from(observer.root.children);
8
+ const map = {};
9
+ entries.forEach(entry => {
10
+ // entries only contains the items being intersected not all children of the ref
11
+ // so use root and the the entry being intersected to find its real index
12
+ // on first mount this is different - all children are present
13
+ map[children.indexOf(entry.target)] = entry.isIntersecting;
14
+ });
15
+ setIntersectedIndexes(prev => ({
16
+ ...prev,
17
+ ...map
18
+ }));
19
+ }
20
+ };
21
+ const intersectedChildIndex = React__default.useMemo(() => {
22
+ const index = Object.values(intersectedIndexes).indexOf(false);
23
+ return index > -1 ? index : undefined;
24
+ }, [intersectedIndexes]);
25
+ const hasRootMargin = intersectedChildIndex !== undefined && offset;
26
+ React__default.useEffect(() => {
27
+ const observer = new IntersectionObserver(handleIntersection, {
28
+ root: ref.current,
29
+ // offset the button, but only after the first item has been intersected
30
+ rootMargin: hasRootMargin ? `0px -${offset}px 0px 0px` : undefined,
31
+ threshold: 1
32
+ });
33
+ if (observer.root) {
34
+ Array.from(observer.root.children).forEach(item => {
35
+ if (item.getAttribute('data-intersection-observer') !== 'ignore') {
36
+ observer.observe(item);
37
+ }
38
+ });
39
+ }
40
+ return () => {
41
+ observer.disconnect();
42
+ };
43
+ }, [hasRootMargin]);
44
+ return intersectedChildIndex;
45
+ };
46
+
47
+ export { useIntersectionObserver };
48
+ //# sourceMappingURL=useIntersectionObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIntersectionObserver.js","sources":["../../../../../../src/hooks/useIntersectionObserver.ts"],"sourcesContent":["import React from 'react';\n\nexport const useIntersectionObserver = (ref: React.RefObject<HTMLElement>, offset?: number) => {\n const [intersectedIndexes, setIntersectedIndexes] = React.useState({});\n\n const handleIntersection = (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {\n if (observer.root) {\n const children = Array.from((observer.root as Element).children);\n const map = {};\n\n entries.forEach(entry => {\n // entries only contains the items being intersected not all children of the ref\n // so use root and the the entry being intersected to find its real index\n // on first mount this is different - all children are present\n map[children.indexOf(entry.target)] = entry.isIntersecting;\n });\n\n setIntersectedIndexes(prev => ({ ...prev, ...map }));\n }\n };\n\n const intersectedChildIndex = React.useMemo(() => {\n const index = Object.values(intersectedIndexes).indexOf(false);\n return index > -1 ? index : undefined;\n }, [intersectedIndexes]);\n\n const hasRootMargin = intersectedChildIndex !== undefined && offset;\n\n React.useEffect(() => {\n const observer = new IntersectionObserver(handleIntersection, {\n root: ref.current,\n // offset the button, but only after the first item has been intersected\n rootMargin: hasRootMargin ? `0px -${offset}px 0px 0px` : undefined,\n threshold: 1,\n });\n\n if (observer.root) {\n Array.from(observer.root.children).forEach(item => {\n if (item.getAttribute('data-intersection-observer') !== 'ignore') {\n observer.observe(item);\n }\n });\n }\n\n return () => {\n observer.disconnect();\n };\n }, [hasRootMargin]);\n\n return intersectedChildIndex;\n};\n"],"names":["useIntersectionObserver","ref","offset","intersectedIndexes","setIntersectedIndexes","React","useState","handleIntersection","entries","observer","root","children","Array","from","map","forEach","entry","indexOf","target","isIntersecting","prev","intersectedChildIndex","useMemo","index","Object","values","undefined","hasRootMargin","useEffect","IntersectionObserver","current","rootMargin","threshold","item","getAttribute","observe","disconnect"],"mappings":";;MAEaA,uBAAuB,GAAG,CAACC,GAAiC,EAAEC,MAAe;EACtF,MAAM,CAACC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,EAAE,CAAC;EAEtE,MAAMC,kBAAkB,GAAG,CAACC,OAAoC,EAAEC,QAA8B;IAC5F,IAAIA,QAAQ,CAACC,IAAI,EAAE;MACf,MAAMC,QAAQ,GAAGC,KAAK,CAACC,IAAI,CAAEJ,QAAQ,CAACC,IAAgB,CAACC,QAAQ,CAAC;MAChE,MAAMG,GAAG,GAAG,EAAE;MAEdN,OAAO,CAACO,OAAO,CAACC,KAAK;;;;QAIjBF,GAAG,CAACH,QAAQ,CAACM,OAAO,CAACD,KAAK,CAACE,MAAM,CAAC,CAAC,GAAGF,KAAK,CAACG,cAAc;OAC7D,CAAC;MAEFf,qBAAqB,CAACgB,IAAI,KAAK;QAAE,GAAGA,IAAI;QAAE,GAAGN;OAAK,CAAC,CAAC;;GAE3D;EAED,MAAMO,qBAAqB,GAAGhB,cAAK,CAACiB,OAAO,CAAC;IACxC,MAAMC,KAAK,GAAGC,MAAM,CAACC,MAAM,CAACtB,kBAAkB,CAAC,CAACc,OAAO,CAAC,KAAK,CAAC;IAC9D,OAAOM,KAAK,GAAG,CAAC,CAAC,GAAGA,KAAK,GAAGG,SAAS;GACxC,EAAE,CAACvB,kBAAkB,CAAC,CAAC;EAExB,MAAMwB,aAAa,GAAGN,qBAAqB,KAAKK,SAAS,IAAIxB,MAAM;EAEnEG,cAAK,CAACuB,SAAS,CAAC;IACZ,MAAMnB,QAAQ,GAAG,IAAIoB,oBAAoB,CAACtB,kBAAkB,EAAE;MAC1DG,IAAI,EAAET,GAAG,CAAC6B,OAAO;;MAEjBC,UAAU,EAAEJ,aAAa,WAAWzB,kBAAkB,GAAGwB,SAAS;MAClEM,SAAS,EAAE;KACd,CAAC;IAEF,IAAIvB,QAAQ,CAACC,IAAI,EAAE;MACfE,KAAK,CAACC,IAAI,CAACJ,QAAQ,CAACC,IAAI,CAACC,QAAQ,CAAC,CAACI,OAAO,CAACkB,IAAI;QAC3C,IAAIA,IAAI,CAACC,YAAY,CAAC,4BAA4B,CAAC,KAAK,QAAQ,EAAE;UAC9DzB,QAAQ,CAAC0B,OAAO,CAACF,IAAI,CAAC;;OAE7B,CAAC;;IAGN,OAAO;MACHxB,QAAQ,CAAC2B,UAAU,EAAE;KACxB;GACJ,EAAE,CAACT,aAAa,CAAC,CAAC;EAEnB,OAAON,qBAAqB;AAChC;;;;"}
@@ -13,11 +13,16 @@ export { Base, IconButton } from './components/IconButton/IconButton.js';
13
13
  export { LocalizationContext, LocalizationProvider, defaultLocalisationTexts, useLocalization } from './components/Provider/Localization.js';
14
14
  export { Banner } from './components/Banner/Banner.js';
15
15
  export { Button } from './components/Button/Button.js';
16
+ export { useMergedRef } from './hooks/useMergedRef.js';
17
+ export { Group } from './components/Group/Group.js';
18
+ export { RadioGroup, findByValue, getRadioGroupItemValueAsString, useRadioGroup } from './components/RadioGroup/RadioGroup.js';
19
+ export { Menu } from './components/Menu/Menu.js';
20
+ export { useIntersectionObserver } from './hooks/useIntersectionObserver.js';
21
+ export { ButtonGroup } from './components/ButtonGroup/ButtonGroup.js';
16
22
  export { Calendar } from './components/Calendar/Calendar.js';
17
23
  export { Card } from './components/Card/Card.js';
18
24
  export { Checkbox } from './components/Checkbox/Checkbox.js';
19
25
  export { useBoundingClientRectListener } from './hooks/useBoundingClientRectListener.js';
20
- export { useMergedRef } from './hooks/useMergedRef.js';
21
26
  export { Input } from './components/Input/Input.js';
22
27
  export { getNextIndexFromKey, useListKeyboardNavigation } from './utils/hooks/useListKeyboardNavigation.js';
23
28
  export { useListScrollTo } from './utils/hooks/useListScrollTo.js';
@@ -27,7 +32,6 @@ export { format, isWeakEqual, parseFromCustomString, parseFromISOString } from '
27
32
  export { Popover } from './components/Popover/Popover.js';
28
33
  export { Datepicker } from './components/Datepicker/Datepicker.js';
29
34
  export { Dialog } from './components/Dialog/Dialog.js';
30
- export { Group } from './components/Group/Group.js';
31
35
  export { Drawer } from './components/Drawer/Drawer.js';
32
36
  export { Field } from './components/Field/Field.js';
33
37
  export { Form } from './components/Form/Form.js';
@@ -35,8 +39,6 @@ export { Hanger, Title } from './components/Hanger/Hanger.js';
35
39
  export { HoverCard } from './components/HoverCard/HoverCard.js';
36
40
  export { SearchInput } from './components/SearchInput/SearchInput.js';
37
41
  export { Listbox, MultiListbox } from './components/Listbox/Listbox.js';
38
- export { RadioGroup, findByValue, getRadioGroupItemValueAsString, useRadioGroup } from './components/RadioGroup/RadioGroup.js';
39
- export { Menu } from './components/Menu/Menu.js';
40
42
  export { Treeview } from './components/Treeview/Treeview.js';
41
43
  export { useDropTarget } from './utils/hooks/useDropTarget.js';
42
44
  export { Navigation } from './components/Navigation/Navigation.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const useIntersectionObserver: (ref: React.RefObject<HTMLElement>, offset?: number | undefined) => number | undefined;
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from './components/Badge/Badge';
7
7
  export * from './components/BadgeIcon/BadgeIcon';
8
8
  export * from './components/Banner/Banner';
9
9
  export * from './components/Button/Button';
10
+ export * from './components/ButtonGroup/ButtonGroup';
10
11
  export * from './components/Calendar/Calendar';
11
12
  export * from './components/Card/Card';
12
13
  export * from './components/Checkbox/Checkbox';
@@ -55,6 +56,7 @@ export * from './utils/date';
55
56
  export * from './utils/mergeRefs';
56
57
  export * from './hooks/useBoundaryOverflowDetection';
57
58
  export * from './hooks/useBoundingClientRectListener';
59
+ export * from './hooks/useIntersectionObserver';
58
60
  export * from './hooks/useIsLargeScreen';
59
61
  export * from './hooks/useMatchMedia';
60
62
  export * from './hooks/useMergedRef';