@navikt/ds-react 6.4.1 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/cjs/date/datepicker/parts/DayButton.js +1 -1
  2. package/cjs/date/datepicker/parts/DayButton.js.map +1 -1
  3. package/cjs/date/hooks/useDatepicker.js +4 -1
  4. package/cjs/date/hooks/useDatepicker.js.map +1 -1
  5. package/cjs/date/hooks/useMonthPicker.js +4 -1
  6. package/cjs/date/hooks/useMonthPicker.js.map +1 -1
  7. package/cjs/date/monthpicker/MonthButton.js +1 -1
  8. package/cjs/date/monthpicker/MonthButton.js.map +1 -1
  9. package/cjs/tabs/Tabs.context.d.ts +30 -0
  10. package/cjs/tabs/Tabs.context.js +14 -0
  11. package/cjs/tabs/Tabs.context.js.map +1 -0
  12. package/cjs/tabs/Tabs.d.ts +8 -43
  13. package/cjs/tabs/Tabs.js +19 -12
  14. package/cjs/tabs/Tabs.js.map +1 -1
  15. package/cjs/tabs/Tabs.types.d.ts +41 -0
  16. package/cjs/tabs/Tabs.types.js +3 -0
  17. package/cjs/tabs/Tabs.types.js.map +1 -0
  18. package/cjs/tabs/index.d.ts +5 -4
  19. package/cjs/tabs/index.js +6 -6
  20. package/cjs/tabs/index.js.map +1 -1
  21. package/cjs/tabs/parts/tab/Tab.d.ts +25 -0
  22. package/cjs/tabs/{Tab.js → parts/tab/Tab.js} +15 -14
  23. package/cjs/tabs/parts/tab/Tab.js.map +1 -0
  24. package/cjs/tabs/parts/tab/useTab.d.ts +20 -0
  25. package/cjs/tabs/parts/tab/useTab.js +29 -0
  26. package/cjs/tabs/parts/tab/useTab.js.map +1 -0
  27. package/cjs/tabs/parts/tablist/ScrollButtons.d.ts +8 -0
  28. package/cjs/tabs/parts/tablist/ScrollButtons.js +15 -0
  29. package/cjs/tabs/parts/tablist/ScrollButtons.js.map +1 -0
  30. package/{esm/tabs → cjs/tabs/parts/tablist}/TabList.d.ts +1 -1
  31. package/cjs/tabs/parts/tablist/TabList.js +61 -0
  32. package/cjs/tabs/parts/tablist/TabList.js.map +1 -0
  33. package/cjs/tabs/parts/tablist/useScrollButtons.d.ts +12 -0
  34. package/cjs/tabs/parts/tablist/useScrollButtons.js +61 -0
  35. package/cjs/tabs/parts/tablist/useScrollButtons.js.map +1 -0
  36. package/cjs/tabs/parts/tablist/useTabList.d.ts +7 -0
  37. package/cjs/tabs/parts/tablist/useTabList.js +66 -0
  38. package/cjs/tabs/parts/tablist/useTabList.js.map +1 -0
  39. package/cjs/tabs/parts/tabpanel/TabPanel.d.ts +25 -0
  40. package/cjs/tabs/{TabPanel.js → parts/tabpanel/TabPanel.js} +5 -3
  41. package/cjs/tabs/parts/tabpanel/TabPanel.js.map +1 -0
  42. package/cjs/tabs/parts/tabpanel/useTabPanel.d.ts +12 -0
  43. package/cjs/tabs/parts/tabpanel/useTabPanel.js +17 -0
  44. package/cjs/tabs/parts/tabpanel/useTabPanel.js.map +1 -0
  45. package/cjs/tabs/useTabs.d.ts +14 -0
  46. package/cjs/tabs/useTabs.js +43 -0
  47. package/cjs/tabs/useTabs.js.map +1 -0
  48. package/cjs/toggle-group/ToggleGroup.context.d.ts +31 -0
  49. package/cjs/toggle-group/ToggleGroup.context.js +16 -0
  50. package/cjs/toggle-group/ToggleGroup.context.js.map +1 -0
  51. package/cjs/toggle-group/ToggleGroup.d.ts +5 -36
  52. package/cjs/toggle-group/ToggleGroup.js +24 -24
  53. package/cjs/toggle-group/ToggleGroup.js.map +1 -1
  54. package/cjs/toggle-group/ToggleGroup.types.d.ts +38 -0
  55. package/cjs/toggle-group/ToggleGroup.types.js +3 -0
  56. package/cjs/toggle-group/ToggleGroup.types.js.map +1 -0
  57. package/cjs/toggle-group/index.d.ts +3 -2
  58. package/cjs/toggle-group/index.js +1 -1
  59. package/cjs/toggle-group/index.js.map +1 -1
  60. package/cjs/toggle-group/{ToggleItem.d.ts → parts/ToggleItem.d.ts} +2 -2
  61. package/cjs/toggle-group/{ToggleItem.js → parts/ToggleItem.js} +9 -8
  62. package/cjs/toggle-group/parts/ToggleItem.js.map +1 -0
  63. package/cjs/toggle-group/parts/useToggleItem.d.ts +20 -0
  64. package/cjs/toggle-group/parts/useToggleItem.js +76 -0
  65. package/cjs/toggle-group/parts/useToggleItem.js.map +1 -0
  66. package/cjs/toggle-group/useToggleGroup.d.ts +8 -0
  67. package/cjs/toggle-group/useToggleGroup.js +29 -0
  68. package/cjs/toggle-group/useToggleGroup.js.map +1 -0
  69. package/esm/date/datepicker/parts/DayButton.js +1 -1
  70. package/esm/date/datepicker/parts/DayButton.js.map +1 -1
  71. package/esm/date/hooks/useDatepicker.js +4 -1
  72. package/esm/date/hooks/useDatepicker.js.map +1 -1
  73. package/esm/date/hooks/useMonthPicker.js +4 -1
  74. package/esm/date/hooks/useMonthPicker.js.map +1 -1
  75. package/esm/date/monthpicker/MonthButton.js +1 -1
  76. package/esm/date/monthpicker/MonthButton.js.map +1 -1
  77. package/esm/tabs/Tabs.context.d.ts +30 -0
  78. package/esm/tabs/Tabs.context.js +10 -0
  79. package/esm/tabs/Tabs.context.js.map +1 -0
  80. package/esm/tabs/Tabs.d.ts +8 -43
  81. package/esm/tabs/Tabs.js +19 -12
  82. package/esm/tabs/Tabs.js.map +1 -1
  83. package/esm/tabs/Tabs.types.d.ts +41 -0
  84. package/esm/tabs/Tabs.types.js +2 -0
  85. package/esm/tabs/Tabs.types.js.map +1 -0
  86. package/esm/tabs/index.d.ts +5 -4
  87. package/esm/tabs/index.js +3 -3
  88. package/esm/tabs/index.js.map +1 -1
  89. package/esm/tabs/parts/tab/Tab.d.ts +25 -0
  90. package/esm/tabs/parts/tab/Tab.js +35 -0
  91. package/esm/tabs/parts/tab/Tab.js.map +1 -0
  92. package/esm/tabs/parts/tab/useTab.d.ts +20 -0
  93. package/esm/tabs/parts/tab/useTab.js +25 -0
  94. package/esm/tabs/parts/tab/useTab.js.map +1 -0
  95. package/esm/tabs/parts/tablist/ScrollButtons.d.ts +8 -0
  96. package/esm/tabs/parts/tablist/ScrollButtons.js +10 -0
  97. package/esm/tabs/parts/tablist/ScrollButtons.js.map +1 -0
  98. package/{cjs/tabs → esm/tabs/parts/tablist}/TabList.d.ts +1 -1
  99. package/esm/tabs/parts/tablist/TabList.js +32 -0
  100. package/esm/tabs/parts/tablist/TabList.js.map +1 -0
  101. package/esm/tabs/parts/tablist/useScrollButtons.d.ts +12 -0
  102. package/esm/tabs/parts/tablist/useScrollButtons.js +57 -0
  103. package/esm/tabs/parts/tablist/useScrollButtons.js.map +1 -0
  104. package/esm/tabs/parts/tablist/useTabList.d.ts +7 -0
  105. package/esm/tabs/parts/tablist/useTabList.js +62 -0
  106. package/esm/tabs/parts/tablist/useTabList.js.map +1 -0
  107. package/esm/tabs/parts/tabpanel/TabPanel.d.ts +25 -0
  108. package/esm/tabs/parts/tabpanel/TabPanel.js +22 -0
  109. package/esm/tabs/parts/tabpanel/TabPanel.js.map +1 -0
  110. package/esm/tabs/parts/tabpanel/useTabPanel.d.ts +12 -0
  111. package/esm/tabs/parts/tabpanel/useTabPanel.js +13 -0
  112. package/esm/tabs/parts/tabpanel/useTabPanel.js.map +1 -0
  113. package/esm/tabs/useTabs.d.ts +14 -0
  114. package/esm/tabs/useTabs.js +39 -0
  115. package/esm/tabs/useTabs.js.map +1 -0
  116. package/esm/toggle-group/ToggleGroup.context.d.ts +31 -0
  117. package/esm/toggle-group/ToggleGroup.context.js +12 -0
  118. package/esm/toggle-group/ToggleGroup.context.js.map +1 -0
  119. package/esm/toggle-group/ToggleGroup.d.ts +5 -36
  120. package/esm/toggle-group/ToggleGroup.js +24 -24
  121. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  122. package/esm/toggle-group/ToggleGroup.types.d.ts +38 -0
  123. package/esm/toggle-group/ToggleGroup.types.js +2 -0
  124. package/esm/toggle-group/ToggleGroup.types.js.map +1 -0
  125. package/esm/toggle-group/index.d.ts +3 -2
  126. package/esm/toggle-group/index.js +1 -1
  127. package/esm/toggle-group/index.js.map +1 -1
  128. package/esm/toggle-group/{ToggleItem.d.ts → parts/ToggleItem.d.ts} +2 -2
  129. package/esm/toggle-group/parts/ToggleItem.js +25 -0
  130. package/esm/toggle-group/parts/ToggleItem.js.map +1 -0
  131. package/esm/toggle-group/parts/useToggleItem.d.ts +20 -0
  132. package/esm/toggle-group/parts/useToggleItem.js +72 -0
  133. package/esm/toggle-group/parts/useToggleItem.js.map +1 -0
  134. package/esm/toggle-group/useToggleGroup.d.ts +8 -0
  135. package/esm/toggle-group/useToggleGroup.js +25 -0
  136. package/esm/toggle-group/useToggleGroup.js.map +1 -0
  137. package/package.json +3 -5
  138. package/src/date/datepicker/datepicker.stories.tsx +39 -0
  139. package/src/date/datepicker/parts/DayButton.tsx +2 -0
  140. package/src/date/hooks/useDatepicker.tsx +5 -1
  141. package/src/date/hooks/useMonthPicker.tsx +5 -1
  142. package/src/date/monthpicker/MonthButton.tsx +1 -0
  143. package/src/date/monthpicker/monthpicker.stories.tsx +36 -19
  144. package/src/modal/modal.stories.tsx +2 -6
  145. package/src/tabs/Tabs.context.ts +24 -0
  146. package/src/tabs/Tabs.stories.tsx +233 -113
  147. package/src/tabs/Tabs.test.tsx +99 -37
  148. package/src/tabs/Tabs.tsx +48 -70
  149. package/src/tabs/Tabs.types.ts +43 -0
  150. package/src/tabs/index.ts +11 -4
  151. package/src/tabs/parts/tab/Tab.tsx +93 -0
  152. package/src/tabs/parts/tab/useTab.ts +52 -0
  153. package/src/tabs/parts/tablist/ScrollButtons.tsx +29 -0
  154. package/src/tabs/parts/tablist/TabList.tsx +56 -0
  155. package/src/tabs/parts/tablist/useScrollButtons.ts +69 -0
  156. package/src/tabs/parts/tablist/useTabList.ts +68 -0
  157. package/src/tabs/parts/tabpanel/TabPanel.tsx +50 -0
  158. package/src/tabs/parts/tabpanel/useTabPanel.ts +18 -0
  159. package/src/tabs/useTabs.ts +51 -0
  160. package/src/toggle-group/ToggleGroup.context.ts +31 -0
  161. package/src/toggle-group/ToggleGroup.stories.tsx +67 -6
  162. package/src/toggle-group/ToggleGroup.test.tsx +57 -16
  163. package/src/toggle-group/ToggleGroup.tsx +63 -90
  164. package/src/toggle-group/ToggleGroup.types.ts +40 -0
  165. package/src/toggle-group/index.ts +3 -2
  166. package/src/toggle-group/parts/ToggleItem.tsx +55 -0
  167. package/src/toggle-group/parts/useToggleItem.ts +104 -0
  168. package/src/toggle-group/useToggleGroup.ts +33 -0
  169. package/cjs/tabs/Tab.d.ts +0 -18
  170. package/cjs/tabs/Tab.js.map +0 -1
  171. package/cjs/tabs/TabList.js +0 -111
  172. package/cjs/tabs/TabList.js.map +0 -1
  173. package/cjs/tabs/TabPanel.d.ts +0 -13
  174. package/cjs/tabs/TabPanel.js.map +0 -1
  175. package/cjs/tabs/context.d.ts +0 -8
  176. package/cjs/tabs/context.js +0 -6
  177. package/cjs/tabs/context.js.map +0 -1
  178. package/cjs/toggle-group/ToggleItem.js.map +0 -1
  179. package/cjs/toggle-group/context.d.ts +0 -6
  180. package/cjs/toggle-group/context.js +0 -6
  181. package/cjs/toggle-group/context.js.map +0 -1
  182. package/esm/tabs/Tab.d.ts +0 -18
  183. package/esm/tabs/Tab.js +0 -34
  184. package/esm/tabs/Tab.js.map +0 -1
  185. package/esm/tabs/TabList.js +0 -82
  186. package/esm/tabs/TabList.js.map +0 -1
  187. package/esm/tabs/TabPanel.d.ts +0 -13
  188. package/esm/tabs/TabPanel.js +0 -20
  189. package/esm/tabs/TabPanel.js.map +0 -1
  190. package/esm/tabs/context.d.ts +0 -8
  191. package/esm/tabs/context.js +0 -3
  192. package/esm/tabs/context.js.map +0 -1
  193. package/esm/toggle-group/ToggleItem.js +0 -24
  194. package/esm/toggle-group/ToggleItem.js.map +0 -1
  195. package/esm/toggle-group/context.d.ts +0 -6
  196. package/esm/toggle-group/context.js +0 -3
  197. package/esm/toggle-group/context.js.map +0 -1
  198. package/src/tabs/Tab.tsx +0 -66
  199. package/src/tabs/TabList.tsx +0 -128
  200. package/src/tabs/TabPanel.tsx +0 -26
  201. package/src/tabs/context.ts +0 -9
  202. package/src/toggle-group/ToggleItem.tsx +0 -41
  203. package/src/toggle-group/context.ts +0 -9
@@ -0,0 +1,104 @@
1
+ import { useCallback } from "react";
2
+ import { composeEventHandlers } from "../../util/composeEventHandlers";
3
+ import { mergeRefs } from "../../util/hooks/useMergeRefs";
4
+ import {
5
+ useToggleGroupContext,
6
+ useToggleGroupDescendant,
7
+ } from "../ToggleGroup.context";
8
+
9
+ export interface UseToggleItemProps {
10
+ /**
11
+ * If `true`, the `ToggleItem` won't be toggleable
12
+ * @default false
13
+ */
14
+ disabled?: boolean;
15
+ onClick?: React.MouseEventHandler;
16
+ onFocus?: React.FocusEventHandler;
17
+ onKeyDown?: React.KeyboardEventHandler;
18
+ value: string;
19
+ }
20
+
21
+ export function useToggleItem<P extends UseToggleItemProps>(
22
+ {
23
+ value,
24
+ disabled = false,
25
+ onFocus: _onFocus,
26
+ onClick,
27
+ onKeyDown: _onKeyDown,
28
+ }: P,
29
+ ref: React.ForwardedRef<HTMLButtonElement>,
30
+ ) {
31
+ const { setSelectedValue, setFocusedValue, selectedValue, focusedValue } =
32
+ useToggleGroupContext();
33
+
34
+ const { register, descendants } = useToggleGroupDescendant({
35
+ disabled,
36
+ value,
37
+ });
38
+
39
+ const isSelected = value === selectedValue;
40
+
41
+ const onFocus = () => setFocusedValue(value);
42
+
43
+ /**
44
+ * Implements roving-tabindex for horizontal tabs
45
+ */
46
+ const onKeyDown = useCallback(
47
+ (event: React.KeyboardEvent) => {
48
+ /**
49
+ * ToggleGroup.Item is registered with its prop 'value'.
50
+ * We can then use it to find the current focuses descendant
51
+ */
52
+ const idx = descendants
53
+ .values()
54
+ .findIndex((x) => x.value === focusedValue);
55
+
56
+ const nextTab = () => {
57
+ const next = descendants.nextEnabled(idx, false);
58
+ next && next.node?.focus();
59
+ };
60
+ const prevTab = () => {
61
+ const prev = descendants.prevEnabled(idx, false);
62
+ prev && prev.node?.focus();
63
+ };
64
+ const firstTab = () => {
65
+ const first = descendants.firstEnabled();
66
+ first && first.node?.focus();
67
+ };
68
+ const lastTab = () => {
69
+ const last = descendants.lastEnabled();
70
+ last && last.node?.focus();
71
+ };
72
+
73
+ const keyMap: Record<string, React.KeyboardEventHandler> = {
74
+ ArrowLeft: prevTab,
75
+ ArrowRight: nextTab,
76
+ Home: firstTab,
77
+ End: lastTab,
78
+ };
79
+
80
+ const action = keyMap[event.key];
81
+
82
+ if (action) {
83
+ event.preventDefault();
84
+ action(event);
85
+ } else if (event.key === "Tab") {
86
+ /**
87
+ * Imperative focus during keydown is risky so we prevent React's batching updates
88
+ * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332
89
+ */
90
+ selectedValue && setTimeout(() => setFocusedValue(selectedValue));
91
+ }
92
+ },
93
+ [descendants, focusedValue, selectedValue, setFocusedValue],
94
+ );
95
+
96
+ return {
97
+ ref: mergeRefs([register, ref]),
98
+ isSelected,
99
+ isFocused: focusedValue === value,
100
+ onClick: composeEventHandlers(onClick, () => setSelectedValue(value)),
101
+ onFocus: disabled ? undefined : composeEventHandlers(_onFocus, onFocus),
102
+ onKeyDown: composeEventHandlers(_onKeyDown, onKeyDown),
103
+ };
104
+ }
@@ -0,0 +1,33 @@
1
+ import { useEffect, useState } from "react";
2
+ import { useControllableState } from "../util/hooks/useControllableState";
3
+ import { ToggleGroupProps } from "./ToggleGroup.types";
4
+
5
+ export function useToggleGroup({
6
+ onChange,
7
+ value,
8
+ defaultValue = "",
9
+ }: Pick<ToggleGroupProps, "onChange" | "value" | "defaultValue">) {
10
+ const [focusedValue, setFocusedValue] = useState(defaultValue);
11
+
12
+ const [selectedValue, setSelectedValue] = useControllableState({
13
+ defaultValue,
14
+ value,
15
+ onChange,
16
+ });
17
+
18
+ /**
19
+ * Sync focused `value` with controlled `selectedValue`
20
+ */
21
+ useEffect(() => {
22
+ if (value != null) {
23
+ setFocusedValue(value);
24
+ }
25
+ }, [value]);
26
+
27
+ return {
28
+ selectedValue,
29
+ setSelectedValue,
30
+ focusedValue,
31
+ setFocusedValue,
32
+ };
33
+ }
package/cjs/tabs/Tab.d.ts DELETED
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- import { OverridableComponent } from "../util/types";
3
- export interface TabProps extends Omit<React.HTMLAttributes<HTMLButtonElement>, "children"> {
4
- /**
5
- * Tab label
6
- */
7
- label?: React.ReactNode;
8
- /**
9
- * Tab Icon
10
- */
11
- icon?: React.ReactNode;
12
- /**
13
- * Value for state-handling
14
- */
15
- value: string;
16
- }
17
- export declare const Tab: OverridableComponent<TabProps, HTMLButtonElement>;
18
- export default Tab;
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/tabs/Tab.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAkD;AAClD,gDAAsB;AACtB,+CAAsD;AACtD,8CAA0C;AAE1C,uCAAwC;AAkB3B,QAAA,GAAG,GACd,IAAA,kBAAU,EACR,CACE,EAAoE,EACpE,GAAG,EACH,EAAE;;QAFF,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,OAAW,EAAN,IAAI,cAAlE,6CAAoE,CAAF;IAGlE,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,qBAAW,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,8BAAC,SAAS,CAAC,OAAO,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO;QACtC,8BAAC,SAAS,kBACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,cAAE,EACX,iBAAiB,EACjB,oBAAoB,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,QAAQ,EAAE,EAC/C,yBAAyB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,EAChD,SAAS,EACT;gBACE,4BAA4B,EAAE,IAAI,IAAI,CAAC,KAAK;aAC7C,CACF,IACG,IAAI;YAER,8BAAC,sBAAS,IACR,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,uBAAuB,EACjC,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;gBAElB,IAAI;gBACJ,KAAK,CACI,CACF,CACM,CACrB,CAAC;AACJ,CAAC,CACF,CAAC;AAEJ,kBAAe,WAAG,CAAC"}
@@ -1,111 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.TabList = void 0;
41
- const RadixTabs = __importStar(require("@radix-ui/react-tabs"));
42
- const clsx_1 = __importDefault(require("clsx"));
43
- const react_1 = __importStar(require("react"));
44
- const aksel_icons_1 = require("@navikt/aksel-icons");
45
- const util_1 = require("../util");
46
- const useMergeRefs_1 = require("../util/hooks/useMergeRefs");
47
- const context_1 = require("./context");
48
- exports.TabList = (0, react_1.forwardRef)((_a, ref) => {
49
- var { className } = _a, rest = __rest(_a, ["className"]);
50
- const context = (0, react_1.useContext)(context_1.TabsContext);
51
- const listRef = (0, react_1.useRef)(null);
52
- const mergedRef = (0, useMergeRefs_1.useMergeRefs)(listRef, ref);
53
- const [displayScroll, setDisplayScroll] = (0, react_1.useState)({
54
- start: false,
55
- end: false,
56
- });
57
- const updateScrollButtonState = (0, react_1.useMemo)(() => (0, util_1.debounce)(() => {
58
- if (!(listRef === null || listRef === void 0 ? void 0 : listRef.current))
59
- return;
60
- const { scrollWidth, clientWidth } = listRef.current;
61
- const scrollLeft = listRef.current.scrollLeft;
62
- // use 1 for the potential rounding error with browser zooms.
63
- const showStartScroll = scrollLeft > 1;
64
- const showEndScroll = scrollLeft < scrollWidth - clientWidth - 1;
65
- setDisplayScroll((oldDisplayScroll) => showStartScroll === oldDisplayScroll.start &&
66
- showEndScroll === oldDisplayScroll.end
67
- ? oldDisplayScroll
68
- : { start: showStartScroll, end: showEndScroll });
69
- }), []);
70
- (0, react_1.useEffect)(() => {
71
- var _a, _b, _c;
72
- const handleResize = () => updateScrollButtonState();
73
- const win = (_c = (_b = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) !== null && _b !== void 0 ? _b : document) !== null && _c !== void 0 ? _c : window;
74
- win.addEventListener("resize", handleResize);
75
- let resizeObserver;
76
- if (typeof ResizeObserver !== "undefined") {
77
- resizeObserver = new ResizeObserver(handleResize);
78
- resizeObserver.observe(listRef.current);
79
- }
80
- return () => {
81
- win.removeEventListener("resize", handleResize);
82
- if (resizeObserver) {
83
- resizeObserver.disconnect();
84
- }
85
- };
86
- }, [updateScrollButtonState]);
87
- (0, react_1.useEffect)(() => {
88
- updateScrollButtonState();
89
- });
90
- (0, react_1.useEffect)(() => {
91
- return () => {
92
- updateScrollButtonState.clear();
93
- };
94
- }, [updateScrollButtonState]);
95
- const ScrollButton = ({ dir, hidden, }) => (
96
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
97
- react_1.default.createElement("div", { className: (0, clsx_1.default)("navds-tabs__scroll-button", {
98
- "navds-tabs__scroll-button--hidden": hidden,
99
- }), onClick: () => {
100
- if (!listRef.current)
101
- return;
102
- listRef.current.scrollLeft += dir * 100;
103
- } }, dir === -1 ? (react_1.default.createElement(aksel_icons_1.ChevronLeftIcon, { title: "scroll tilbake" })) : (react_1.default.createElement(aksel_icons_1.ChevronRightIcon, { title: "scroll neste" }))));
104
- const showSteppers = displayScroll.end || displayScroll.start;
105
- return (react_1.default.createElement("div", { className: "navds-tabs__tablist-wrapper" },
106
- showSteppers && (react_1.default.createElement(ScrollButton, { dir: -1, hidden: !displayScroll.start })),
107
- react_1.default.createElement(RadixTabs.TabsList, Object.assign({}, rest, { ref: mergedRef, onScroll: updateScrollButtonState, loop: context === null || context === void 0 ? void 0 : context.loop, className: (0, clsx_1.default)("navds-tabs__tablist", className) })),
108
- showSteppers && react_1.default.createElement(ScrollButton, { dir: 1, hidden: !displayScroll.end })));
109
- });
110
- exports.default = exports.TabList;
111
- //# sourceMappingURL=TabList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../src/tabs/TabList.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAkD;AAClD,gDAAsB;AACtB,+CAOe;AACf,qDAAwE;AACxE,kCAAmC;AACnC,6DAA0D;AAC1D,uCAAwC;AAS3B,QAAA,OAAO,GAAG,IAAA,kBAAU,EAC/B,CAAC,EAAsB,EAAE,GAAG,EAAE,EAAE;QAA/B,EAAE,SAAS,OAAW,EAAN,IAAI,cAApB,aAAsB,CAAF;IACnB,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,qBAAW,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAA,2BAAY,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC;QACjD,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,IAAA,eAAO,EACrC,GAAG,EAAE,CACH,IAAA,eAAQ,EAAC,GAAG,EAAE;QACZ,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA;YAAE,OAAO;QAC9B,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QAC9C,6DAA6D;QAC7D,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;QAEjE,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpC,eAAe,KAAK,gBAAgB,CAAC,KAAK;YAC1C,aAAa,KAAK,gBAAgB,CAAC,GAAG;YACpC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,CACnD,CAAC;IACJ,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACb,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,MAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,aAAa,mCAAI,QAAQ,mCAAI,MAAM,CAAC;QACjE,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE7C,IAAI,cAAc,CAAC;QAEnB,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;YAClD,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAChD,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,UAAU,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,uBAAuB,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAG,CAAC,EACpB,GAAG,EACH,MAAM,GAIP,EAAE,EAAE,CAAC;IACJ,0GAA0G;IAC1G,uCACE,SAAS,EAAE,IAAA,cAAE,EAAC,2BAA2B,EAAE;YACzC,mCAAmC,EAAE,MAAM;SAC5C,CAAC,EACF,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,GAAG,GAAG,CAAC;QAC1C,CAAC,IAEA,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACZ,8BAAC,6BAAe,IAAC,KAAK,EAAC,gBAAgB,GAAG,CAC3C,CAAC,CAAC,CAAC,CACF,8BAAC,8BAAgB,IAAC,KAAK,EAAC,cAAc,GAAG,CAC1C,CACG,CACP,CAAC;IAEF,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC;IAC9D,OAAO,CACL,uCAAK,SAAS,EAAC,6BAA6B;QACzC,YAAY,IAAI,CACf,8BAAC,YAAY,IAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,KAAK,GAAI,CACxD;QACD,8BAAC,SAAS,CAAC,QAAQ,oBACb,IAAI,IACR,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,uBAAuB,EACjC,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EACnB,SAAS,EAAE,IAAA,cAAE,EAAC,qBAAqB,EAAE,SAAS,CAAC,IAC/C;QACD,YAAY,IAAI,8BAAC,YAAY,IAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,GAAG,GAAI,CACjE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAe,eAAO,CAAC"}
@@ -1,13 +0,0 @@
1
- import React from "react";
2
- export interface TabPanelProps extends React.HTMLAttributes<HTMLDivElement> {
3
- /**
4
- * Tab panel content
5
- */
6
- children: React.ReactNode;
7
- /**
8
- * Value for state-handling
9
- */
10
- value: string;
11
- }
12
- declare const TabPanel: React.ForwardRefExoticComponent<TabPanelProps & React.RefAttributes<HTMLDivElement>>;
13
- export default TabPanel;
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabPanel.js","sourceRoot":"","sources":["../../src/tabs/TabPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAkD;AAClD,gDAAsB;AACtB,+CAA0C;AAa1C,MAAM,QAAQ,GAAG,IAAA,kBAAU,EACzB,CAAC,EAAsB,EAAE,GAAG,EAAE,EAAE;QAA/B,EAAE,SAAS,OAAW,EAAN,IAAI,cAApB,aAAsB,CAAF;IAAY,OAAA,CAC/B,8BAAC,SAAS,CAAC,WAAW,oBAChB,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,cAAE,EAAC,sBAAsB,EAAE,SAAS,CAAC,IAChD,CACH,CAAA;CAAA,CACF,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- interface TabsContextProps {
3
- size: "medium" | "small";
4
- loop: boolean;
5
- iconPosition: "left" | "top";
6
- }
7
- export declare const TabsContext: import("react").Context<TabsContextProps | null>;
8
- export {};
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TabsContext = void 0;
4
- const react_1 = require("react");
5
- exports.TabsContext = (0, react_1.createContext)(null);
6
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tabs/context.ts"],"names":[],"mappings":";;;AAAA,iCAAsC;AAQzB,QAAA,WAAW,GAAG,IAAA,qBAAa,EAA0B,IAAI,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToggleItem.js","sourceRoot":"","sources":["../../src/toggle-group/ToggleItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+EAAiE;AACjE,gDAAsB;AACtB,+CAAsD;AACtD,uDAAoD;AACpD,uCAA+C;AAc/C,MAAM,UAAU,GAAG,IAAA,kBAAU,EAC3B,CAAC,EAAgC,EAAE,GAAG,EAAE,EAAE;QAAzC,EAAE,SAAS,EAAE,QAAQ,OAAW,EAAN,IAAI,cAA9B,yBAAgC,CAAF;IAC7B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,4BAAkB,CAAC,CAAC;IAE/C,OAAO,CACL,8BAAC,gBAAgB,CAAC,IAAI,oBAChB,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,cAAE,EAAC,4BAA4B,EAAE,SAAS,CAAC;QAEtD,8BAAC,qBAAS,IACR,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,kCAAkC,EAC5C,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,IAElB,QAAQ,CACC,CACU,CACzB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- interface ToggleContextProps {
3
- size: "medium" | "small";
4
- }
5
- export declare const ToggleGroupContext: import("react").Context<ToggleContextProps | null>;
6
- export {};
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToggleGroupContext = void 0;
4
- const react_1 = require("react");
5
- exports.ToggleGroupContext = (0, react_1.createContext)(null);
6
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/toggle-group/context.ts"],"names":[],"mappings":";;;AAAA,iCAAsC;AAMzB,QAAA,kBAAkB,GAAG,IAAA,qBAAa,EAC7C,IAAI,CACL,CAAC"}
package/esm/tabs/Tab.d.ts DELETED
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- import { OverridableComponent } from "../util/types/index.js";
3
- export interface TabProps extends Omit<React.HTMLAttributes<HTMLButtonElement>, "children"> {
4
- /**
5
- * Tab label
6
- */
7
- label?: React.ReactNode;
8
- /**
9
- * Tab Icon
10
- */
11
- icon?: React.ReactNode;
12
- /**
13
- * Value for state-handling
14
- */
15
- value: string;
16
- }
17
- export declare const Tab: OverridableComponent<TabProps, HTMLButtonElement>;
18
- export default Tab;
package/esm/tabs/Tab.js DELETED
@@ -1,34 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import * as RadixTabs from "@radix-ui/react-tabs";
13
- import cl from "clsx";
14
- import React, { forwardRef, useContext } from "react";
15
- import { BodyShort } from "../typography/index.js";
16
- import { TabsContext } from "./context.js";
17
- export const Tab = forwardRef((_a, ref) => {
18
- var _b;
19
- var { className, as: Component = "button", label, icon, value } = _a, rest = __rest(_a, ["className", "as", "label", "icon", "value"]);
20
- const context = useContext(TabsContext);
21
- if (!label && !icon) {
22
- console.error("<Tabs.Tab/> needs label/icon");
23
- return null;
24
- }
25
- return (React.createElement(RadixTabs.Trigger, { value: value, asChild: true },
26
- React.createElement(Component, Object.assign({ ref: ref, className: cl("navds-tabs__tab", `navds-tabs__tab--${(_b = context === null || context === void 0 ? void 0 : context.size) !== null && _b !== void 0 ? _b : "medium"}`, `navds-tabs__tab-icon--${context === null || context === void 0 ? void 0 : context.iconPosition}`, className, {
27
- "navds-tabs__tab--icon-only": icon && !label,
28
- }) }, rest),
29
- React.createElement(BodyShort, { as: "span", className: "navds-tabs__tab-inner", size: context === null || context === void 0 ? void 0 : context.size },
30
- icon,
31
- label))));
32
- });
33
- export default Tab;
34
- //# sourceMappingURL=Tab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/tabs/Tab.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAkBxC,MAAM,CAAC,MAAM,GAAG,GACd,UAAU,CACR,CACE,EAAoE,EACpE,GAAG,EACH,EAAE;;QAFF,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,OAAW,EAAN,IAAI,cAAlE,6CAAoE,CAAF;IAGlE,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,oBAAC,SAAS,CAAC,OAAO,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO;QACtC,oBAAC,SAAS,kBACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,iBAAiB,EACjB,oBAAoB,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,QAAQ,EAAE,EAC/C,yBAAyB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,EAChD,SAAS,EACT;gBACE,4BAA4B,EAAE,IAAI,IAAI,CAAC,KAAK;aAC7C,CACF,IACG,IAAI;YAER,oBAAC,SAAS,IACR,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,uBAAuB,EACjC,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;gBAElB,IAAI;gBACJ,KAAK,CACI,CACF,CACM,CACrB,CAAC;AACJ,CAAC,CACF,CAAC;AAEJ,eAAe,GAAG,CAAC"}
@@ -1,82 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import * as RadixTabs from "@radix-ui/react-tabs";
13
- import cl from "clsx";
14
- import React, { forwardRef, useContext, useEffect, useMemo, useRef, useState, } from "react";
15
- import { ChevronLeftIcon, ChevronRightIcon } from "@navikt/aksel-icons";
16
- import { debounce } from "../util/index.js";
17
- import { useMergeRefs } from "../util/hooks/useMergeRefs.js";
18
- import { TabsContext } from "./context.js";
19
- export const TabList = forwardRef((_a, ref) => {
20
- var { className } = _a, rest = __rest(_a, ["className"]);
21
- const context = useContext(TabsContext);
22
- const listRef = useRef(null);
23
- const mergedRef = useMergeRefs(listRef, ref);
24
- const [displayScroll, setDisplayScroll] = useState({
25
- start: false,
26
- end: false,
27
- });
28
- const updateScrollButtonState = useMemo(() => debounce(() => {
29
- if (!(listRef === null || listRef === void 0 ? void 0 : listRef.current))
30
- return;
31
- const { scrollWidth, clientWidth } = listRef.current;
32
- const scrollLeft = listRef.current.scrollLeft;
33
- // use 1 for the potential rounding error with browser zooms.
34
- const showStartScroll = scrollLeft > 1;
35
- const showEndScroll = scrollLeft < scrollWidth - clientWidth - 1;
36
- setDisplayScroll((oldDisplayScroll) => showStartScroll === oldDisplayScroll.start &&
37
- showEndScroll === oldDisplayScroll.end
38
- ? oldDisplayScroll
39
- : { start: showStartScroll, end: showEndScroll });
40
- }), []);
41
- useEffect(() => {
42
- var _a, _b, _c;
43
- const handleResize = () => updateScrollButtonState();
44
- const win = (_c = (_b = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument) !== null && _b !== void 0 ? _b : document) !== null && _c !== void 0 ? _c : window;
45
- win.addEventListener("resize", handleResize);
46
- let resizeObserver;
47
- if (typeof ResizeObserver !== "undefined") {
48
- resizeObserver = new ResizeObserver(handleResize);
49
- resizeObserver.observe(listRef.current);
50
- }
51
- return () => {
52
- win.removeEventListener("resize", handleResize);
53
- if (resizeObserver) {
54
- resizeObserver.disconnect();
55
- }
56
- };
57
- }, [updateScrollButtonState]);
58
- useEffect(() => {
59
- updateScrollButtonState();
60
- });
61
- useEffect(() => {
62
- return () => {
63
- updateScrollButtonState.clear();
64
- };
65
- }, [updateScrollButtonState]);
66
- const ScrollButton = ({ dir, hidden, }) => (
67
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
68
- React.createElement("div", { className: cl("navds-tabs__scroll-button", {
69
- "navds-tabs__scroll-button--hidden": hidden,
70
- }), onClick: () => {
71
- if (!listRef.current)
72
- return;
73
- listRef.current.scrollLeft += dir * 100;
74
- } }, dir === -1 ? (React.createElement(ChevronLeftIcon, { title: "scroll tilbake" })) : (React.createElement(ChevronRightIcon, { title: "scroll neste" }))));
75
- const showSteppers = displayScroll.end || displayScroll.start;
76
- return (React.createElement("div", { className: "navds-tabs__tablist-wrapper" },
77
- showSteppers && (React.createElement(ScrollButton, { dir: -1, hidden: !displayScroll.start })),
78
- React.createElement(RadixTabs.TabsList, Object.assign({}, rest, { ref: mergedRef, onScroll: updateScrollButtonState, loop: context === null || context === void 0 ? void 0 : context.loop, className: cl("navds-tabs__tablist", className) })),
79
- showSteppers && React.createElement(ScrollButton, { dir: 1, hidden: !displayScroll.end })));
80
- });
81
- export default TabList;
82
- //# sourceMappingURL=TabList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabList.js","sourceRoot":"","sources":["../../src/tabs/TabList.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import React from "react";
2
- export interface TabPanelProps extends React.HTMLAttributes<HTMLDivElement> {
3
- /**
4
- * Tab panel content
5
- */
6
- children: React.ReactNode;
7
- /**
8
- * Value for state-handling
9
- */
10
- value: string;
11
- }
12
- declare const TabPanel: React.ForwardRefExoticComponent<TabPanelProps & React.RefAttributes<HTMLDivElement>>;
13
- export default TabPanel;
@@ -1,20 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import * as RadixTabs from "@radix-ui/react-tabs";
13
- import cl from "clsx";
14
- import React, { forwardRef } from "react";
15
- const TabPanel = forwardRef((_a, ref) => {
16
- var { className } = _a, rest = __rest(_a, ["className"]);
17
- return (React.createElement(RadixTabs.TabsContent, Object.assign({}, rest, { ref: ref, className: cl("navds-tabs__tabpanel", className) })));
18
- });
19
- export default TabPanel;
20
- //# sourceMappingURL=TabPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabPanel.js","sourceRoot":"","sources":["../../src/tabs/TabPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAa1C,MAAM,QAAQ,GAAG,UAAU,CACzB,CAAC,EAAsB,EAAE,GAAG,EAAE,EAAE;QAA/B,EAAE,SAAS,OAAW,EAAN,IAAI,cAApB,aAAsB,CAAF;IAAY,OAAA,CAC/B,oBAAC,SAAS,CAAC,WAAW,oBAChB,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,IAChD,CACH,CAAA;CAAA,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- interface TabsContextProps {
3
- size: "medium" | "small";
4
- loop: boolean;
5
- iconPosition: "left" | "top";
6
- }
7
- export declare const TabsContext: import("react").Context<TabsContextProps | null>;
8
- export {};
@@ -1,3 +0,0 @@
1
- import { createContext } from "react";
2
- export const TabsContext = createContext(null);
3
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tabs/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAQtC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC"}
@@ -1,24 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import * as RadixToggleGroup from "@radix-ui/react-toggle-group";
13
- import cl from "clsx";
14
- import React, { forwardRef, useContext } from "react";
15
- import { BodyShort } from "../typography/BodyShort.js";
16
- import { ToggleGroupContext } from "./context.js";
17
- const ToggleItem = forwardRef((_a, ref) => {
18
- var { className, children } = _a, rest = __rest(_a, ["className", "children"]);
19
- const context = useContext(ToggleGroupContext);
20
- return (React.createElement(RadixToggleGroup.Item, Object.assign({}, rest, { ref: ref, className: cl("navds-toggle-group__button", className) }),
21
- React.createElement(BodyShort, { as: "span", className: "navds-toggle-group__button-inner", size: context === null || context === void 0 ? void 0 : context.size }, children)));
22
- });
23
- export default ToggleItem;
24
- //# sourceMappingURL=ToggleItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToggleItem.js","sourceRoot":"","sources":["../../src/toggle-group/ToggleItem.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAc/C,MAAM,UAAU,GAAG,UAAU,CAC3B,CAAC,EAAgC,EAAE,GAAG,EAAE,EAAE;QAAzC,EAAE,SAAS,EAAE,QAAQ,OAAW,EAAN,IAAI,cAA9B,yBAAgC,CAAF;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/C,OAAO,CACL,oBAAC,gBAAgB,CAAC,IAAI,oBAChB,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC;QAEtD,oBAAC,SAAS,IACR,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,kCAAkC,EAC5C,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,IAElB,QAAQ,CACC,CACU,CACzB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- interface ToggleContextProps {
3
- size: "medium" | "small";
4
- }
5
- export declare const ToggleGroupContext: import("react").Context<ToggleContextProps | null>;
6
- export {};
@@ -1,3 +0,0 @@
1
- import { createContext } from "react";
2
- export const ToggleGroupContext = createContext(null);
3
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/toggle-group/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAC7C,IAAI,CACL,CAAC"}