@arbor-education/design-system.components 0.0.3 → 0.0.5

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 (274) hide show
  1. package/README.md +1 -1
  2. package/dist/components/button/Button.d.ts +5 -2
  3. package/dist/components/button/Button.d.ts.map +1 -1
  4. package/dist/components/button/Button.js +3 -1
  5. package/dist/components/button/Button.js.map +1 -1
  6. package/dist/components/card/Card.d.ts +1 -2
  7. package/dist/components/card/Card.d.ts.map +1 -1
  8. package/dist/components/card/Card.js +3 -3
  9. package/dist/components/card/Card.js.map +1 -1
  10. package/dist/components/card/Card.test.js +0 -5
  11. package/dist/components/card/Card.test.js.map +1 -1
  12. package/dist/components/formField/FormField.d.ts +4 -0
  13. package/dist/components/formField/FormField.d.ts.map +1 -1
  14. package/dist/components/formField/FormField.js +2 -1
  15. package/dist/components/formField/FormField.js.map +1 -1
  16. package/dist/components/formField/FormField.stories.d.ts.map +1 -1
  17. package/dist/components/formField/FormField.stories.js +3 -1
  18. package/dist/components/formField/FormField.stories.js.map +1 -1
  19. package/dist/components/formField/FormField.test.js +5 -0
  20. package/dist/components/formField/FormField.test.js.map +1 -1
  21. package/dist/components/formField/inputs/checkbox/CheckboxInput.d.ts +7 -0
  22. package/dist/components/formField/inputs/checkbox/CheckboxInput.d.ts.map +1 -0
  23. package/dist/components/formField/inputs/checkbox/CheckboxInput.js +31 -0
  24. package/dist/components/formField/inputs/checkbox/CheckboxInput.js.map +1 -0
  25. package/dist/components/formField/inputs/checkbox/CheckboxInput.stories.d.ts +17 -0
  26. package/dist/components/formField/inputs/checkbox/CheckboxInput.stories.d.ts.map +1 -0
  27. package/dist/components/formField/inputs/checkbox/CheckboxInput.stories.js +19 -0
  28. package/dist/components/formField/inputs/checkbox/CheckboxInput.stories.js.map +1 -0
  29. package/dist/components/formField/inputs/checkbox/CheckboxInput.test.d.ts +2 -0
  30. package/dist/components/formField/inputs/checkbox/CheckboxInput.test.d.ts.map +1 -0
  31. package/dist/components/formField/inputs/checkbox/CheckboxInput.test.js +30 -0
  32. package/dist/components/formField/inputs/checkbox/CheckboxInput.test.js.map +1 -0
  33. package/dist/components/formField/inputs/dropdown/Dropdown.d.ts +11 -0
  34. package/dist/components/formField/inputs/dropdown/Dropdown.d.ts.map +1 -0
  35. package/dist/components/formField/inputs/dropdown/Dropdown.js +43 -0
  36. package/dist/components/formField/inputs/dropdown/Dropdown.js.map +1 -0
  37. package/dist/components/formField/inputs/dropdown/Dropdown.stories.d.ts +161 -0
  38. package/dist/components/formField/inputs/dropdown/Dropdown.stories.d.ts.map +1 -0
  39. package/dist/components/formField/inputs/dropdown/Dropdown.stories.js +172 -0
  40. package/dist/components/formField/inputs/dropdown/Dropdown.stories.js.map +1 -0
  41. package/dist/components/formField/inputs/dropdown/Dropdown.test.d.ts +2 -0
  42. package/dist/components/formField/inputs/dropdown/Dropdown.test.d.ts.map +1 -0
  43. package/dist/components/formField/inputs/dropdown/Dropdown.test.js +93 -0
  44. package/dist/components/formField/inputs/dropdown/Dropdown.test.js.map +1 -0
  45. package/dist/components/formField/inputs/dropdown/buttons/dropdownButton/DropdownButton.d.ts +11 -0
  46. package/dist/components/formField/inputs/dropdown/buttons/dropdownButton/DropdownButton.d.ts.map +1 -0
  47. package/dist/components/formField/inputs/dropdown/buttons/dropdownButton/DropdownButton.js +15 -0
  48. package/dist/components/formField/inputs/dropdown/buttons/dropdownButton/DropdownButton.js.map +1 -0
  49. package/dist/components/formField/inputs/dropdown/items/DropdownItemRenderer.d.ts +10 -0
  50. package/dist/components/formField/inputs/dropdown/items/DropdownItemRenderer.d.ts.map +1 -0
  51. package/dist/components/formField/inputs/dropdown/items/DropdownItemRenderer.js +12 -0
  52. package/dist/components/formField/inputs/dropdown/items/DropdownItemRenderer.js.map +1 -0
  53. package/dist/components/formField/inputs/dropdown/items/dropdownItem/DropdownItem.d.ts +9 -0
  54. package/dist/components/formField/inputs/dropdown/items/dropdownItem/DropdownItem.d.ts.map +1 -0
  55. package/dist/components/formField/inputs/dropdown/items/dropdownItem/DropdownItem.js +17 -0
  56. package/dist/components/formField/inputs/dropdown/items/dropdownItem/DropdownItem.js.map +1 -0
  57. package/dist/components/formField/inputs/dropdown/items/dropdownMultiLineItem/DropdownMultiLineItem.d.ts +7 -0
  58. package/dist/components/formField/inputs/dropdown/items/dropdownMultiLineItem/DropdownMultiLineItem.d.ts.map +1 -0
  59. package/dist/components/formField/inputs/dropdown/items/dropdownMultiLineItem/DropdownMultiLineItem.js +16 -0
  60. package/dist/components/formField/inputs/dropdown/items/dropdownMultiLineItem/DropdownMultiLineItem.js.map +1 -0
  61. package/dist/components/formField/inputs/dropdown/wrapper/DropdownWrapper.d.ts +16 -0
  62. package/dist/components/formField/inputs/dropdown/wrapper/DropdownWrapper.d.ts.map +1 -0
  63. package/dist/components/formField/inputs/dropdown/wrapper/DropdownWrapper.js +73 -0
  64. package/dist/components/formField/inputs/dropdown/wrapper/DropdownWrapper.js.map +1 -0
  65. package/dist/components/formField/inputs/number/NumberInput.d.ts +6 -0
  66. package/dist/components/formField/inputs/number/NumberInput.d.ts.map +1 -0
  67. package/dist/components/formField/inputs/number/NumberInput.js +39 -0
  68. package/dist/components/formField/inputs/number/NumberInput.js.map +1 -0
  69. package/dist/components/formField/inputs/number/NumberInput.stories.d.ts +20 -0
  70. package/dist/components/formField/inputs/number/NumberInput.stories.d.ts.map +1 -0
  71. package/dist/components/formField/inputs/number/NumberInput.stories.js +22 -0
  72. package/dist/components/formField/inputs/number/NumberInput.stories.js.map +1 -0
  73. package/dist/components/formField/inputs/number/NumberInput.test.d.ts +2 -0
  74. package/dist/components/formField/inputs/number/NumberInput.test.d.ts.map +1 -0
  75. package/dist/components/formField/inputs/number/NumberInput.test.js +30 -0
  76. package/dist/components/formField/inputs/number/NumberInput.test.js.map +1 -0
  77. package/dist/components/formField/inputs/radio/RadioButtonInput.d.ts +7 -0
  78. package/dist/components/formField/inputs/radio/RadioButtonInput.d.ts.map +1 -0
  79. package/dist/components/formField/inputs/radio/RadioButtonInput.js +9 -0
  80. package/dist/components/formField/inputs/radio/RadioButtonInput.js.map +1 -0
  81. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.d.ts +46 -0
  82. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.d.ts.map +1 -0
  83. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.js +83 -0
  84. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.js.map +1 -0
  85. package/dist/components/formField/inputs/radio/RadioButtonInput.test.d.ts +2 -0
  86. package/dist/components/formField/inputs/radio/RadioButtonInput.test.d.ts.map +1 -0
  87. package/dist/components/formField/inputs/radio/RadioButtonInput.test.js +34 -0
  88. package/dist/components/formField/inputs/radio/RadioButtonInput.test.js.map +1 -0
  89. package/dist/components/heading/Heading.d.ts +392 -388
  90. package/dist/components/heading/Heading.d.ts.map +1 -1
  91. package/dist/components/heading/Heading.js +8 -1
  92. package/dist/components/heading/Heading.js.map +1 -1
  93. package/dist/components/heading/Heading.stories.d.ts.map +1 -1
  94. package/dist/components/heading/Heading.stories.js +7 -8
  95. package/dist/components/heading/Heading.stories.js.map +1 -1
  96. package/dist/components/heading/HeadingInnerContainer.d.ts +2 -2
  97. package/dist/components/heading/HeadingInnerContainer.js +4 -4
  98. package/dist/components/icon/Icon.d.ts +2 -2
  99. package/dist/components/icon/Icon.d.ts.map +1 -1
  100. package/dist/components/icon/Icon.js.map +1 -1
  101. package/dist/components/icon/Icon.stories.d.ts +7 -0
  102. package/dist/components/icon/Icon.stories.d.ts.map +1 -1
  103. package/dist/components/icon/Icon.stories.js +8 -0
  104. package/dist/components/icon/Icon.stories.js.map +1 -1
  105. package/dist/components/icon/allowedIcons.d.ts +1 -0
  106. package/dist/components/icon/allowedIcons.d.ts.map +1 -1
  107. package/dist/components/section/Section.d.ts +18 -0
  108. package/dist/components/section/Section.d.ts.map +1 -0
  109. package/dist/components/section/Section.js +36 -0
  110. package/dist/components/section/Section.js.map +1 -0
  111. package/dist/components/section/Section.stories.d.ts +18 -0
  112. package/dist/components/section/Section.stories.d.ts.map +1 -0
  113. package/dist/components/section/Section.stories.js +27 -0
  114. package/dist/components/section/Section.stories.js.map +1 -0
  115. package/dist/components/section/Section.test.d.ts +2 -0
  116. package/dist/components/section/Section.test.d.ts.map +1 -0
  117. package/dist/components/section/Section.test.js +157 -0
  118. package/dist/components/section/Section.test.js.map +1 -0
  119. package/dist/components/slideover/Slideover.d.ts +11 -0
  120. package/dist/components/slideover/Slideover.d.ts.map +1 -0
  121. package/dist/components/slideover/Slideover.js +11 -0
  122. package/dist/components/slideover/Slideover.js.map +1 -0
  123. package/dist/components/slideover/Slideover.test.d.ts +2 -0
  124. package/dist/components/slideover/Slideover.test.d.ts.map +1 -0
  125. package/dist/components/slideover/Slideover.test.js +33 -0
  126. package/dist/components/slideover/Slideover.test.js.map +1 -0
  127. package/dist/components/slideoverManager/SlideoverManager.d.ts +7 -0
  128. package/dist/components/slideoverManager/SlideoverManager.d.ts.map +1 -0
  129. package/dist/components/slideoverManager/SlideoverManager.js +29 -0
  130. package/dist/components/slideoverManager/SlideoverManager.js.map +1 -0
  131. package/dist/components/slideoverManager/SlideoverManager.stories.d.ts +15 -0
  132. package/dist/components/slideoverManager/SlideoverManager.stories.d.ts.map +1 -0
  133. package/dist/components/slideoverManager/SlideoverManager.stories.js +102 -0
  134. package/dist/components/slideoverManager/SlideoverManager.stories.js.map +1 -0
  135. package/dist/components/slideoverManager/SlideoverManager.test.d.ts +2 -0
  136. package/dist/components/slideoverManager/SlideoverManager.test.d.ts.map +1 -0
  137. package/dist/components/slideoverManager/SlideoverManager.test.js +53 -0
  138. package/dist/components/slideoverManager/SlideoverManager.test.js.map +1 -0
  139. package/dist/components/tabs/Tabs.d.ts +14 -18
  140. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  141. package/dist/components/tabs/Tabs.js +6 -39
  142. package/dist/components/tabs/Tabs.js.map +1 -1
  143. package/dist/components/tabs/Tabs.stories.d.ts +35 -6
  144. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  145. package/dist/components/tabs/Tabs.stories.js +17 -45
  146. package/dist/components/tabs/Tabs.stories.js.map +1 -1
  147. package/dist/components/tabs/Tabs.test.d.ts.map +1 -1
  148. package/dist/components/tabs/Tabs.test.js +90 -97
  149. package/dist/components/tabs/Tabs.test.js.map +1 -1
  150. package/dist/components/tabs/TabsItem.d.ts +15 -0
  151. package/dist/components/tabs/TabsItem.d.ts.map +1 -0
  152. package/dist/components/tabs/TabsItem.js +18 -0
  153. package/dist/components/tabs/TabsItem.js.map +1 -0
  154. package/dist/components/tabs/TabsItem.stories.d.ts +618 -0
  155. package/dist/components/tabs/TabsItem.stories.d.ts.map +1 -0
  156. package/dist/components/tabs/TabsItem.stories.js +48 -0
  157. package/dist/components/tabs/TabsItem.stories.js.map +1 -0
  158. package/dist/index.css +1996 -1326
  159. package/dist/index.css.map +1 -1
  160. package/dist/index.d.ts +8 -1
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +8 -1
  163. package/dist/index.js.map +1 -1
  164. package/dist/utils/Constants.d.ts +6 -0
  165. package/dist/utils/Constants.d.ts.map +1 -0
  166. package/dist/utils/Constants.js +6 -0
  167. package/dist/utils/Constants.js.map +1 -0
  168. package/dist/utils/PopupParentContext.d.ts +3 -0
  169. package/dist/utils/PopupParentContext.d.ts.map +1 -0
  170. package/dist/utils/PopupParentContext.js +6 -0
  171. package/dist/utils/PopupParentContext.js.map +1 -0
  172. package/dist/utils/PubSub.d.ts +11 -0
  173. package/dist/utils/PubSub.d.ts.map +1 -0
  174. package/dist/utils/PubSub.js +27 -0
  175. package/dist/utils/PubSub.js.map +1 -0
  176. package/dist/utils/PubSub.test.d.ts +2 -0
  177. package/dist/utils/PubSub.test.d.ts.map +1 -0
  178. package/dist/utils/PubSub.test.js +229 -0
  179. package/dist/utils/PubSub.test.js.map +1 -0
  180. package/dist/utils/SlideoverUtils.d.ts +7 -0
  181. package/dist/utils/SlideoverUtils.d.ts.map +1 -0
  182. package/dist/utils/SlideoverUtils.js +8 -0
  183. package/dist/utils/SlideoverUtils.js.map +1 -0
  184. package/dist/utils/getDefaultPopupParent.d.ts +2 -0
  185. package/dist/utils/getDefaultPopupParent.d.ts.map +1 -0
  186. package/dist/utils/getDefaultPopupParent.js +13 -0
  187. package/dist/utils/getDefaultPopupParent.js.map +1 -0
  188. package/dist/utils/hooks/useComponentDidMount.d.ts +3 -0
  189. package/dist/utils/hooks/useComponentDidMount.d.ts.map +1 -0
  190. package/dist/utils/hooks/useComponentDidMount.js +5 -0
  191. package/dist/utils/hooks/useComponentDidMount.js.map +1 -0
  192. package/dist/utils/hooks/usePubSub.d.ts +2 -0
  193. package/dist/utils/hooks/usePubSub.d.ts.map +1 -0
  194. package/dist/utils/hooks/usePubSub.js +12 -0
  195. package/dist/utils/hooks/usePubSub.js.map +1 -0
  196. package/package.json +3 -3
  197. package/src/components/button/Button.story.tsx +9 -0
  198. package/src/components/button/Button.tsx +10 -2
  199. package/src/components/button/button.scss +75 -33
  200. package/src/components/card/Card.test.tsx +0 -6
  201. package/src/components/card/Card.tsx +12 -7
  202. package/src/components/card/card.scss +32 -18
  203. package/src/components/formField/FormField.stories.tsx +9 -1
  204. package/src/components/formField/FormField.test.tsx +6 -0
  205. package/src/components/formField/FormField.tsx +5 -0
  206. package/src/components/formField/formField.scss +20 -8
  207. package/src/components/formField/inputs/checkbox/CheckboxInput.stories.tsx +22 -0
  208. package/src/components/formField/inputs/checkbox/CheckboxInput.test.tsx +35 -0
  209. package/src/components/formField/inputs/checkbox/CheckboxInput.tsx +79 -0
  210. package/src/components/formField/inputs/checkbox/checkboxInput.scss +96 -0
  211. package/src/components/formField/inputs/dropdown/Dropdown.stories.tsx +185 -0
  212. package/src/components/formField/inputs/dropdown/Dropdown.test.tsx +185 -0
  213. package/src/components/formField/inputs/dropdown/Dropdown.tsx +82 -0
  214. package/src/components/formField/inputs/dropdown/buttons/dropdownButton/DropdownButton.tsx +41 -0
  215. package/src/components/formField/inputs/dropdown/buttons/dropdownButton/dropdownButton.scss +12 -0
  216. package/src/components/formField/inputs/dropdown/dropdown.scss +24 -0
  217. package/src/components/formField/inputs/dropdown/items/DropdownItemRenderer.tsx +38 -0
  218. package/src/components/formField/inputs/dropdown/items/dropdownItem/DropdownItem.tsx +49 -0
  219. package/src/components/formField/inputs/dropdown/items/dropdownItem/dropdownItem.scss +62 -0
  220. package/src/components/formField/inputs/dropdown/items/dropdownMultiLineItem/DropdownMultiLineItem.tsx +48 -0
  221. package/src/components/formField/inputs/dropdown/items/dropdownMultiLineItem/dropdownMultiLineItem.scss +52 -0
  222. package/src/components/formField/inputs/dropdown/wrapper/DropdownWrapper.tsx +138 -0
  223. package/src/components/formField/inputs/dropdown/wrapper/dropdownWrapper.scss +32 -0
  224. package/src/components/formField/inputs/input.scss +25 -26
  225. package/src/components/formField/inputs/number/NumberInput.stories.tsx +25 -0
  226. package/src/components/formField/inputs/number/NumberInput.test.tsx +33 -0
  227. package/src/components/formField/inputs/number/NumberInput.tsx +107 -0
  228. package/src/components/formField/inputs/number/numberInput.scss +68 -0
  229. package/src/components/formField/inputs/radio/RadioButtonInput.stories.tsx +97 -0
  230. package/src/components/formField/inputs/radio/RadioButtonInput.test.tsx +37 -0
  231. package/src/components/formField/inputs/radio/RadioButtonInput.tsx +46 -0
  232. package/src/components/formField/inputs/radio/radioButtonInput.scss +100 -0
  233. package/src/components/formField/label/label.scss +5 -1
  234. package/src/components/heading/Heading.stories.tsx +11 -12
  235. package/src/components/heading/Heading.tsx +21 -2
  236. package/src/components/heading/heading.scss +4 -0
  237. package/src/components/icon/Icon.stories.tsx +8 -0
  238. package/src/components/icon/Icon.tsx +2 -2
  239. package/src/components/icon/allowedIcons.tsx +2 -0
  240. package/src/components/pill/pill.scss +7 -7
  241. package/src/components/section/Section.stories.tsx +34 -0
  242. package/src/components/section/Section.test.tsx +308 -0
  243. package/src/components/section/Section.tsx +131 -0
  244. package/src/components/section/section.scss +42 -0
  245. package/src/components/slideover/Slideover.test.tsx +36 -0
  246. package/src/components/slideover/Slideover.tsx +38 -0
  247. package/src/components/slideover/slideover.scss +50 -0
  248. package/src/components/slideoverManager/SlideoverManager.stories.tsx +374 -0
  249. package/src/components/slideoverManager/SlideoverManager.test.tsx +64 -0
  250. package/src/components/slideoverManager/SlideoverManager.tsx +51 -0
  251. package/src/components/slideoverManager/slideoverManager.scss +13 -0
  252. package/src/components/tabs/Tabs.stories.tsx +92 -0
  253. package/src/components/tabs/Tabs.test.tsx +220 -0
  254. package/src/components/tabs/Tabs.tsx +14 -0
  255. package/src/components/tabs/TabsItem.stories.tsx +55 -0
  256. package/src/components/tabs/TabsItem.tsx +42 -0
  257. package/src/components/tabs/tabs.scss +62 -0
  258. package/src/global.scss +10 -1
  259. package/src/index.scss +15 -3
  260. package/src/index.ts +10 -3
  261. package/src/tokens.scss +1321 -1238
  262. package/src/utils/Constants.ts +5 -0
  263. package/src/utils/PopupParentContext.ts +6 -0
  264. package/src/utils/PubSub.test.ts +303 -0
  265. package/src/utils/PubSub.ts +34 -0
  266. package/src/utils/SlideoverUtils.ts +9 -0
  267. package/src/utils/getDefaultPopupParent.ts +14 -0
  268. package/src/utils/hooks/useComponentDidMount.ts +5 -0
  269. package/src/utils/hooks/usePubSub.ts +12 -0
  270. package/tokens/export-config.json +32 -0
  271. package/tokens/json/$metadata.json +5 -0
  272. package/tokens/json/$themes.json +1333 -0
  273. package/tokens/json/Arbor.json +6329 -0
  274. package/src/components/heading/HeadingInnerContainer.tsx +0 -18
@@ -1,115 +1,108 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { expect, test, describe, vi } from "vitest";
3
- import { render, screen, fireEvent, waitFor } from '@testing-library/react';
4
- import userEvent from '@testing-library/user-event';
2
+ import { expect, test, describe, vi } from 'vitest';
5
3
  import { Tabs } from './Tabs';
4
+ import { render, screen, fireEvent } from '@testing-library/react';
6
5
  import '@testing-library/jest-dom/vitest';
7
- describe('Tabs Component', () => {
8
- test('renders tabs with default active tab', () => {
9
- render(_jsxs(Tabs, { defaultActiveTab: "tab1", children: [_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Tab 2", children: _jsx("div", { children: "Content 2" }) })] }));
10
- expect(screen.getByText('Tab 1')).toBeInTheDocument();
11
- expect(screen.getByText('Tab 2')).toBeInTheDocument();
12
- expect(screen.getByText('Content 1')).toBeInTheDocument();
13
- expect(screen.queryByText('Content 2')).not.toBeInTheDocument();
6
+ describe('Tabs component', () => {
7
+ test('renders tabs container with correct role', () => {
8
+ render(_jsxs(Tabs, { children: [_jsx(Tabs.Item, { children: "Tab 1" }), _jsx(Tabs.Item, { children: "Tab 2" })] }));
9
+ const tabsContainer = screen.getByRole('tablist');
10
+ expect(tabsContainer).toBeInTheDocument();
11
+ expect(tabsContainer.tagName).toBe('UL');
12
+ expect(tabsContainer).toHaveClass('ds-tabs');
14
13
  });
15
- test('switches active tab when clicked', async () => {
16
- const user = userEvent.setup();
17
- render(_jsxs(Tabs, { defaultActiveTab: "tab1", children: [_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Tab 2", children: _jsx("div", { children: "Content 2" }) })] }));
18
- const tab2Button = screen.getByText('Tab 2');
19
- await user.click(tab2Button);
20
- expect(screen.getByText('Content 2')).toBeInTheDocument();
21
- expect(screen.queryByText('Content 1')).not.toBeInTheDocument();
14
+ test('renders children correctly', () => {
15
+ render(_jsxs(Tabs, { children: [_jsx(Tabs.Item, { children: "Overview" }), _jsx(Tabs.Item, { children: "Details" }), _jsx(Tabs.Item, { children: "Settings" })] }));
16
+ expect(screen.getByText('Overview')).toBeInTheDocument();
17
+ expect(screen.getByText('Details')).toBeInTheDocument();
18
+ expect(screen.getByText('Settings')).toBeInTheDocument();
22
19
  });
23
- test('calls onTabChange when tab is switched', async () => {
24
- const user = userEvent.setup();
25
- const onTabChange = vi.fn();
26
- render(_jsxs(Tabs, { defaultActiveTab: "tab1", onTabChange: onTabChange, children: [_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Tab 2", children: _jsx("div", { children: "Content 2" }) })] }));
27
- const tab2Button = screen.getByText('Tab 2');
28
- await user.click(tab2Button);
29
- expect(onTabChange).toHaveBeenCalledWith('tab2');
20
+ test('applies custom className', () => {
21
+ render(_jsx(Tabs, { className: "custom-tabs", children: _jsx(Tabs.Item, { children: "Tab 1" }) }));
22
+ const tabsContainer = screen.getByRole('tablist');
23
+ expect(tabsContainer).toHaveClass('ds-tabs', 'custom-tabs');
30
24
  });
31
- test('handles keyboard navigation', async () => {
32
- const user = userEvent.setup();
33
- render(_jsxs(Tabs, { defaultActiveTab: "tab1", children: [_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Tab 2", children: _jsx("div", { children: "Content 2" }) })] }));
34
- const tab2Button = screen.getByText('Tab 2');
35
- tab2Button.focus();
36
- await user.keyboard('{Enter}');
37
- expect(screen.getByText('Content 2')).toBeInTheDocument();
38
- expect(screen.queryByText('Content 1')).not.toBeInTheDocument();
25
+ test('passes through additional props', () => {
26
+ render(_jsx(Tabs, { "data-testid": "tabs-container", "aria-label": "Navigation tabs", children: _jsx(Tabs.Item, { children: "Tab 1" }) }));
27
+ const tabsContainer = screen.getByTestId('tabs-container');
28
+ expect(tabsContainer).toHaveAttribute('aria-label', 'Navigation tabs');
39
29
  });
40
- test('handles space key navigation', async () => {
41
- const user = userEvent.setup();
42
- render(_jsxs(Tabs, { defaultActiveTab: "tab1", children: [_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Tab 2", children: _jsx("div", { children: "Content 2" }) })] }));
43
- const tab2Button = screen.getByText('Tab 2');
44
- tab2Button.focus();
45
- await user.keyboard(' ');
46
- expect(screen.getByText('Content 2')).toBeInTheDocument();
47
- expect(screen.queryByText('Content 1')).not.toBeInTheDocument();
30
+ });
31
+ describe('TabsItem component', () => {
32
+ test('renders as button by default', () => {
33
+ render(_jsx(Tabs, { children: _jsx(Tabs.Item, { children: "Tab Button" }) }));
34
+ const tabButton = screen.getByRole('tab');
35
+ expect(tabButton.tagName).toBe('BUTTON');
36
+ expect(tabButton).toHaveTextContent('Tab Button');
37
+ });
38
+ test('renders as link when tabElement is link', () => {
39
+ render(_jsx(Tabs, { children: _jsx(Tabs.Item, { tabElement: "link", tabElementProps: { href: '#overview' }, children: "Overview Link" }) }));
40
+ const tabLink = screen.getByRole('tab');
41
+ expect(tabLink.tagName).toBe('A');
42
+ expect(tabLink).toHaveAttribute('href', '#overview');
43
+ expect(tabLink).toHaveTextContent('Overview Link');
48
44
  });
49
- test('disabled tab does not respond to clicks', async () => {
50
- const user = userEvent.setup();
51
- const onTabChange = vi.fn();
52
- render(_jsxs(Tabs, { defaultActiveTab: "tab1", onTabChange: onTabChange, children: [_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Tab 2", disabled: true, children: _jsx("div", { children: "Content 2" }) })] }));
53
- const tab2Button = screen.getByText('Tab 2');
54
- await user.click(tab2Button);
55
- expect(onTabChange).not.toHaveBeenCalled();
56
- expect(screen.getByText('Content 1')).toBeInTheDocument();
57
- expect(screen.queryByText('Content 2')).not.toBeInTheDocument();
45
+ test('applies active state correctly', () => {
46
+ render(_jsxs(Tabs, { children: [_jsx(Tabs.Item, { active: true, children: "Active Tab" }), _jsx(Tabs.Item, { children: "Inactive Tab" })] }));
47
+ const activeTab = screen.getByText('Active Tab');
48
+ const inactiveTab = screen.getByText('Inactive Tab');
49
+ expect(activeTab).toHaveClass('ds-tabs-item__tab--active');
50
+ expect(activeTab).toHaveAttribute('aria-selected', 'true');
51
+ expect(inactiveTab).not.toHaveClass('ds-tabs-item__tab--active');
52
+ expect(inactiveTab).toHaveAttribute('aria-selected', 'false');
58
53
  });
59
- test('disabled tab does not respond to keyboard events', async () => {
60
- const user = userEvent.setup();
61
- const onTabChange = vi.fn();
62
- render(_jsxs(Tabs, { defaultActiveTab: "tab1", onTabChange: onTabChange, children: [_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Tab 2", disabled: true, children: _jsx("div", { children: "Content 2" }) })] }));
63
- const tab2Button = screen.getByText('Tab 2');
64
- tab2Button.focus();
65
- await user.keyboard('{Enter}');
66
- expect(onTabChange).not.toHaveBeenCalled();
67
- expect(screen.getByText('Content 1')).toBeInTheDocument();
68
- expect(screen.queryByText('Content 2')).not.toBeInTheDocument();
54
+ test('applies correct CSS classes', () => {
55
+ render(_jsx(Tabs, { children: _jsx(Tabs.Item, { children: "Tab Item" }) }));
56
+ const listItem = screen.getByRole('presentation');
57
+ const tabElement = screen.getByRole('tab');
58
+ expect(listItem).toHaveClass('ds-tabs-item');
59
+ expect(tabElement).toHaveClass('ds-tabs-item__tab');
69
60
  });
70
- test('applies custom className to tabs container', () => {
71
- render(_jsx(Tabs, { className: "custom-tabs", children: _jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }) }));
72
- const tabsContainer = screen.getByText('Tab 1').closest('.ds-tabs');
73
- expect(tabsContainer).toHaveClass('custom-tabs');
61
+ test('applies custom className to list item', () => {
62
+ render(_jsx(Tabs, { children: _jsx(Tabs.Item, { className: "custom-tab-item", children: "Tab Item" }) }));
63
+ const listItem = screen.getByRole('presentation');
64
+ expect(listItem).toHaveClass('ds-tabs-item', 'custom-tab-item');
74
65
  });
75
- test('applies custom className to tab item', () => {
76
- render(_jsx(Tabs, { children: _jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", className: "custom-tab-item", children: _jsx("div", { children: "Content 1" }) }) }));
77
- const tabItem = screen.getByText('Tab 1').closest('.ds-tabs__item');
78
- expect(tabItem).toHaveClass('custom-tab-item');
66
+ test('handles click events on button tabs', () => {
67
+ const handleClick = vi.fn();
68
+ render(_jsx(Tabs, { children: _jsx(Tabs.Item, { tabElementProps: { onClick: handleClick }, children: "Clickable Tab" }) }));
69
+ fireEvent.click(screen.getByRole('tab'));
70
+ expect(handleClick).toHaveBeenCalledTimes(1);
79
71
  });
80
- test('has proper ARIA attributes', () => {
81
- render(_jsxs(Tabs, { defaultActiveTab: "tab1", children: [_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Tab 2", children: _jsx("div", { children: "Content 2" }) })] }));
82
- const tab1Button = screen.getByText('Tab 1');
83
- const tab2Button = screen.getByText('Tab 2');
84
- expect(tab1Button).toHaveAttribute('role', 'tab');
85
- expect(tab1Button).toHaveAttribute('aria-selected', 'true');
86
- expect(tab1Button).toHaveAttribute('aria-controls', 'tabpanel-tab1');
87
- expect(tab1Button).toHaveAttribute('id', 'tab-tab1');
88
- expect(tab2Button).toHaveAttribute('role', 'tab');
89
- expect(tab2Button).toHaveAttribute('aria-selected', 'false');
90
- expect(tab2Button).toHaveAttribute('aria-controls', 'tabpanel-tab2');
91
- expect(tab2Button).toHaveAttribute('id', 'tab-tab2');
92
- const contentPanel = screen.getByText('Content 1');
93
- expect(contentPanel).toHaveAttribute('role', 'tabpanel');
94
- expect(contentPanel).toHaveAttribute('id', 'tabpanel-tab1');
95
- expect(contentPanel).toHaveAttribute('aria-labelledby', 'tab-tab1');
72
+ test('passes through additional props to button', () => {
73
+ render(_jsx(Tabs, { children: _jsx(Tabs.Item, { tabElementProps: { 'disabled': true, 'data-testid': 'tab-button' }, children: "Disabled Tab" }) }));
74
+ const tabButton = screen.getByTestId('tab-button');
75
+ expect(tabButton).toBeDisabled();
96
76
  });
97
- test('throws error when Tabs.Item is used outside Tabs context', () => {
98
- // Suppress console.error for this test since we expect an error
99
- const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
100
- expect(() => {
101
- render(_jsx(Tabs.Item, { tabId: "tab1", label: "Tab 1", children: _jsx("div", { children: "Content 1" }) }));
102
- }).toThrow('Tabs.Item must be used within a Tabs component');
103
- consoleSpy.mockRestore();
77
+ test('passes through additional props to link', () => {
78
+ render(_jsx(Tabs, { children: _jsx(Tabs.Item, { tabElement: "link", tabElementProps: {
79
+ 'href': '#test',
80
+ 'target': '_blank',
81
+ // @ts-expect-error - data-testid is not a valid prop for AnchorHTMLAttributes
82
+ 'data-testid': 'tab-link',
83
+ }, children: "Link Tab" }) }));
84
+ const tabLink = screen.getByTestId('tab-link');
85
+ expect(tabLink).toHaveAttribute('href', '#test');
86
+ expect(tabLink).toHaveAttribute('target', '_blank');
104
87
  });
105
88
  test('renders multiple tabs correctly', () => {
106
- render(_jsxs(Tabs, { defaultActiveTab: "tab2", children: [_jsx(Tabs.Item, { tabId: "tab1", label: "First Tab", children: _jsx("div", { children: "First Content" }) }), _jsx(Tabs.Item, { tabId: "tab2", label: "Second Tab", children: _jsx("div", { children: "Second Content" }) }), _jsx(Tabs.Item, { tabId: "tab3", label: "Third Tab", children: _jsx("div", { children: "Third Content" }) })] }));
107
- expect(screen.getByText('First Tab')).toBeInTheDocument();
108
- expect(screen.getByText('Second Tab')).toBeInTheDocument();
109
- expect(screen.getByText('Third Tab')).toBeInTheDocument();
110
- expect(screen.getByText('Second Content')).toBeInTheDocument();
111
- expect(screen.queryByText('First Content')).not.toBeInTheDocument();
112
- expect(screen.queryByText('Third Content')).not.toBeInTheDocument();
89
+ render(_jsxs(Tabs, { children: [_jsx(Tabs.Item, { active: true, children: "Tab 1" }), _jsx(Tabs.Item, { children: "Tab 2" }), _jsx(Tabs.Item, { tabElement: "link", tabElementProps: { href: '#tab3' }, children: "Tab 3" })] }));
90
+ const tabs = screen.getAllByRole('tab');
91
+ expect(tabs).toHaveLength(3);
92
+ expect(tabs[0]).toHaveTextContent('Tab 1');
93
+ expect(tabs[0]).toHaveAttribute('aria-selected', 'true');
94
+ expect(tabs[1]).toHaveTextContent('Tab 2');
95
+ expect(tabs[1]).toHaveAttribute('aria-selected', 'false');
96
+ expect(tabs[2]).toHaveTextContent('Tab 3');
97
+ expect(tabs[2]).toHaveAttribute('href', '#tab3');
98
+ });
99
+ test('handles mixed tab types', () => {
100
+ render(_jsxs(Tabs, { children: [_jsx(Tabs.Item, { active: true, children: "Button Tab" }), _jsx(Tabs.Item, { tabElement: "link", tabElementProps: { href: '#link-tab' }, children: "Link Tab" })] }));
101
+ const buttonTab = screen.getByText('Button Tab');
102
+ const linkTab = screen.getByText('Link Tab');
103
+ expect(buttonTab.tagName).toBe('BUTTON');
104
+ expect(linkTab.tagName).toBe('A');
105
+ expect(linkTab).toHaveAttribute('href', '#link-tab');
113
106
  });
114
107
  });
115
108
  //# sourceMappingURL=Tabs.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.test.js","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.test.js","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { allowedIcons } from '../icon/allowedIcons';
2
+ import type { AnchorHTMLAttributes, ButtonHTMLAttributes, HTMLAttributes } from 'react';
3
+ type TabsItemProps = {
4
+ active?: boolean;
5
+ iconName?: keyof typeof allowedIcons;
6
+ } & ({
7
+ tabElement?: 'button';
8
+ tabElementProps?: ButtonHTMLAttributes<HTMLButtonElement>;
9
+ } | {
10
+ tabElement?: 'link';
11
+ tabElementProps?: AnchorHTMLAttributes<HTMLAnchorElement>;
12
+ }) & HTMLAttributes<HTMLLIElement>;
13
+ export declare const TabsItem: (props: TabsItemProps) => import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=TabsItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsItem.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/TabsItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAExF,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;CACtC,GAAG,CACA;IAAE,UAAU,CAAC,EAAE,QAAQ,CAAC;IAAC,eAAe,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;CAAE,GACpF;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;CAAE,CACnF,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAEpC,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,4CA4B5C,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import { Icon } from '../icon/Icon';
4
+ export const TabsItem = (props) => {
5
+ const { children, className, tabElement = 'button', tabElementProps, active = false, iconName, ...rest } = props;
6
+ const elementClassNames = classNames('ds-tabs-item__tab', {
7
+ 'ds-tabs-item__tab--active': active,
8
+ });
9
+ const sharedProps = {
10
+ 'role': 'tab',
11
+ 'className': elementClassNames,
12
+ 'aria-selected': active,
13
+ };
14
+ return (_jsx("li", { role: "presentation", className: classNames('ds-tabs-item', className), ...rest, children: tabElement === 'button'
15
+ ? (_jsxs("button", { ...tabElementProps, ...sharedProps, children: [iconName && _jsx(Icon, { name: iconName, size: 16 }), children] }))
16
+ : (_jsxs("a", { ...tabElementProps, ...sharedProps, children: [iconName && _jsx(Icon, { name: iconName, size: 16 }), children] })) }));
17
+ };
18
+ //# sourceMappingURL=TabsItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsItem.js","sourceRoot":"","sources":["../../../src/components/tabs/TabsItem.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAW5C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,EAAE;IAC/C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,GAAG,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEjH,MAAM,iBAAiB,GAAG,UAAU,CAAC,mBAAmB,EAAE;QACxD,2BAA2B,EAAE,MAAM;KACpC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;QAClB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,iBAAiB;QAC9B,eAAe,EAAE,MAAM;KACxB,CAAC;IACF,OAAO,CACL,aAAI,IAAI,EAAC,cAAc,EAAC,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,SAAS,CAAC,KAAM,IAAI,YAC/E,UAAU,KAAK,QAAQ;YACtB,CAAC,CAAC,CACE,qBAAa,eAA2D,KAAM,WAAW,aACtF,QAAQ,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAI,EAC9C,QAAQ,IACF,CACV;YACH,CAAC,CAAC,CACE,gBAAQ,eAA2D,KAAM,WAAW,aACjF,QAAQ,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAI,EAC9C,QAAQ,IACP,CACL,GACF,CACN,CAAC;AACJ,CAAC,CAAC"}