@torpor/ui 0.0.17 → 0.1.1

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 (150) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/Accordion/Accordion.torp +53 -54
  3. package/dist/Accordion/AccordionContent.torp +5 -5
  4. package/dist/Accordion/AccordionHeader.torp +5 -4
  5. package/dist/Accordion/AccordionItem.torp +13 -8
  6. package/dist/Accordion/AccordionTrigger.torp +5 -5
  7. package/dist/Accordion/AccordionTypes.ts +1 -0
  8. package/dist/Dialog/Dialog.torp +156 -0
  9. package/dist/Dialog/DialogBody.torp +34 -0
  10. package/dist/Dialog/DialogButton.torp +48 -0
  11. package/dist/Dialog/DialogFooter.torp +13 -0
  12. package/dist/Dialog/DialogHeader.torp +34 -0
  13. package/dist/Dialog/DialogTypes.ts +16 -0
  14. package/dist/Dialog/index.cjs +53 -0
  15. package/dist/Dialog/index.cjs.map +1 -0
  16. package/dist/Dialog/index.js +22 -0
  17. package/dist/Dialog/index.js.map +1 -0
  18. package/dist/NavMenu/NavMenu.torp +178 -0
  19. package/dist/NavMenu/NavMenuButton.torp +46 -0
  20. package/dist/NavMenu/NavMenuElement.torp +43 -0
  21. package/dist/NavMenu/NavMenuGroup.torp +30 -0
  22. package/dist/NavMenu/NavMenuGroupHeader.torp +30 -0
  23. package/dist/NavMenu/NavMenuLink.torp +52 -0
  24. package/dist/NavMenu/NavMenuPopout.torp +69 -0
  25. package/dist/NavMenu/NavMenuPopoutButton.torp +120 -0
  26. package/dist/NavMenu/NavMenuPopoutContent.torp +79 -0
  27. package/dist/NavMenu/NavMenuSeparator.torp +14 -0
  28. package/dist/NavMenu/NavMenuTypes.ts +32 -0
  29. package/dist/NavMenu/index.cjs +78 -0
  30. package/dist/NavMenu/index.cjs.map +1 -0
  31. package/dist/NavMenu/index.js +42 -0
  32. package/dist/NavMenu/index.js.map +1 -0
  33. package/dist/Offscreen/Offscreen.torp +93 -0
  34. package/dist/Offscreen/index.cjs +33 -0
  35. package/dist/Offscreen/index.cjs.map +1 -0
  36. package/dist/Offscreen/index.js +6 -0
  37. package/dist/Offscreen/index.js.map +1 -0
  38. package/dist/Popover/Popover.torp +105 -0
  39. package/dist/Popover/PopoverContent.torp +78 -0
  40. package/dist/Popover/PopoverContentAnchored.torp +107 -0
  41. package/dist/Popover/PopoverContentContextual.torp +99 -0
  42. package/dist/Popover/PopoverOverlay.torp +32 -0
  43. package/dist/Popover/PopoverTrigger.torp +29 -0
  44. package/dist/Popover/PopoverTriggerContextual.torp +37 -0
  45. package/dist/Popover/PopoverTriggerHover.torp +38 -0
  46. package/dist/Popover/PopoverTypes.ts +30 -0
  47. package/dist/Popover/index.cjs +222 -0
  48. package/dist/Popover/index.cjs.map +1 -0
  49. package/dist/Popover/index.js +183 -0
  50. package/dist/Popover/index.js.map +1 -0
  51. package/dist/Popover/mountClickPopover.ts +50 -0
  52. package/dist/Popover/mountContextPopover.ts +50 -0
  53. package/dist/Popover/mountHoverPopover.ts +57 -0
  54. package/dist/Popover/showPopover.ts +24 -0
  55. package/dist/Popover/showPopoverPrompt.ts +23 -0
  56. package/dist/TabGroup/TabContent.torp +4 -4
  57. package/dist/TabGroup/TabGroup.torp +64 -62
  58. package/dist/TabGroup/TabGroupTypes.ts +1 -0
  59. package/dist/TabGroup/TabHeader.torp +10 -8
  60. package/dist/TabGroup/TabList.torp +4 -3
  61. package/dist/TabGroup/TabTrigger.torp +6 -6
  62. package/dist/metafile-cjs.json +1 -1
  63. package/dist/metafile-esm.json +1 -1
  64. package/dist/mount/disableScroll.ts +28 -0
  65. package/dist/mount/hoverTrigger.ts +59 -0
  66. package/dist/mount/trapFocus.ts +58 -0
  67. package/dist/utils/documentEvents.ts +17 -0
  68. package/dist/utils/getScrollParent.ts +22 -0
  69. package/dist/utils/setContextPosition.ts +31 -0
  70. package/dist/utils/setPopoverPosition.ts +138 -0
  71. package/package.json +26 -6
  72. package/scripts/postbuild.ts +17 -5
  73. package/src/Accordion/Accordion.torp +53 -54
  74. package/src/Accordion/AccordionContent.torp +5 -5
  75. package/src/Accordion/AccordionHeader.torp +5 -4
  76. package/src/Accordion/AccordionItem.torp +13 -8
  77. package/src/Accordion/AccordionTrigger.torp +5 -5
  78. package/src/Accordion/AccordionTypes.ts +1 -0
  79. package/src/Dialog/Dialog.torp +156 -0
  80. package/src/Dialog/DialogBody.torp +34 -0
  81. package/src/Dialog/DialogButton.torp +48 -0
  82. package/src/Dialog/DialogFooter.torp +13 -0
  83. package/src/Dialog/DialogHeader.torp +34 -0
  84. package/src/Dialog/DialogTypes.ts +16 -0
  85. package/src/Dialog/index.ts +7 -0
  86. package/src/Dialog.ts +7 -0
  87. package/src/NavMenu/NavMenu.torp +178 -0
  88. package/src/NavMenu/NavMenuButton.torp +46 -0
  89. package/src/NavMenu/NavMenuElement.torp +43 -0
  90. package/src/NavMenu/NavMenuGroup.torp +30 -0
  91. package/src/NavMenu/NavMenuGroupHeader.torp +30 -0
  92. package/src/NavMenu/NavMenuLink.torp +52 -0
  93. package/src/NavMenu/NavMenuPopout.torp +69 -0
  94. package/src/NavMenu/NavMenuPopoutButton.torp +120 -0
  95. package/src/NavMenu/NavMenuPopoutContent.torp +79 -0
  96. package/src/NavMenu/NavMenuSeparator.torp +14 -0
  97. package/src/NavMenu/NavMenuTypes.ts +32 -0
  98. package/src/NavMenu/index.ts +23 -0
  99. package/src/NavMenu.ts +23 -0
  100. package/src/Offscreen/Offscreen.torp +93 -0
  101. package/src/Offscreen/index.ts +3 -0
  102. package/src/Popover/Popover.torp +105 -0
  103. package/src/Popover/PopoverContent.torp +78 -0
  104. package/src/Popover/PopoverContentAnchored.torp +107 -0
  105. package/src/Popover/PopoverContentContextual.torp +99 -0
  106. package/src/Popover/PopoverOverlay.torp +32 -0
  107. package/src/Popover/PopoverTrigger.torp +29 -0
  108. package/src/Popover/PopoverTriggerContextual.torp +37 -0
  109. package/src/Popover/PopoverTriggerHover.torp +38 -0
  110. package/src/Popover/PopoverTypes.ts +30 -0
  111. package/src/Popover/index.ts +29 -0
  112. package/src/Popover/mountClickPopover.ts +50 -0
  113. package/src/Popover/mountContextPopover.ts +50 -0
  114. package/src/Popover/mountHoverPopover.ts +57 -0
  115. package/src/Popover/showPopover.ts +24 -0
  116. package/src/Popover/showPopoverPrompt.ts +23 -0
  117. package/src/Popover.ts +29 -0
  118. package/src/TabGroup/TabContent.torp +4 -4
  119. package/src/TabGroup/TabGroup.torp +64 -62
  120. package/src/TabGroup/TabGroupTypes.ts +1 -0
  121. package/src/TabGroup/TabHeader.torp +10 -8
  122. package/src/TabGroup/TabList.torp +4 -3
  123. package/src/TabGroup/TabTrigger.torp +6 -6
  124. package/src/mount/disableScroll.ts +28 -0
  125. package/src/mount/hoverTrigger.ts +59 -0
  126. package/src/mount/trapFocus.ts +58 -0
  127. package/src/utils/documentEvents.ts +17 -0
  128. package/src/utils/getScrollParent.ts +22 -0
  129. package/src/utils/setContextPosition.ts +31 -0
  130. package/src/utils/setPopoverPosition.ts +138 -0
  131. package/test/Accordion/accessibility.test.ts +0 -3
  132. package/test/Accordion/for-items.test.ts +2 -4
  133. package/test/Accordion/keyboard.test.ts +0 -3
  134. package/test/Accordion/multiple-item-toggle.test.ts +3 -5
  135. package/test/Accordion/single-item-toggle.test.ts +3 -5
  136. package/test/Dialog/accessibility-alert.test.ts +40 -0
  137. package/test/Dialog/accessibility-modal.test.ts +52 -0
  138. package/test/Dialog/components/CustomDialog.torp +20 -0
  139. package/test/Dialog/components/DialogAccessibility.torp +31 -0
  140. package/test/Dialog/components/DialogFunction.torp +22 -0
  141. package/test/Dialog/components/DialogVariable.torp +35 -0
  142. package/test/Dialog/function.test.ts +26 -0
  143. package/test/Dialog/variable.test.ts +27 -0
  144. package/test/NavMenu/accessibility.test.ts +97 -0
  145. package/test/NavMenu/basic.test.ts +22 -0
  146. package/test/NavMenu/components/NavMenu.torp +28 -0
  147. package/test/NavMenu/components/NavMenuAccessibility.torp +35 -0
  148. package/test/TabGroup/for-items.test.ts +2 -4
  149. package/test/TabGroup/item-trigger.test.ts +10 -11
  150. package/tsup.config.ts +9 -1
@@ -0,0 +1,35 @@
1
+ import {
2
+ NavMenu,
3
+ NavMenuLink,
4
+ NavMenuPopout,
5
+ NavMenuPopoutButton,
6
+ NavMenuPopoutContent,
7
+ NavMenuGroup,
8
+ NavMenuGroupHeader,
9
+ NavMenuSeparator
10
+ } from "../../../src/NavMenu";
11
+
12
+ export default function NavMenuAccessibility($props: any) {
13
+ @render {
14
+ <NavMenu ariaLabel="Site navigation">
15
+ <NavMenuLink href="/">Home</NavMenuLink>
16
+ <NavMenuLink href="/page1">Page</NavMenuLink>
17
+ <NavMenuLink href="/disabled" disabled>Disabled</NavMenuLink>
18
+ <NavMenuSeparator>/</NavMenuSeparator>
19
+ <NavMenuPopout>
20
+ <NavMenuPopoutButton>Subpages</NavMenuPopoutButton>
21
+ <NavMenuPopoutContent>
22
+ <NavMenu ariaLabel="Sub site navigation" orientation="vertical">
23
+ <NavMenuLink href="/sub/page1">Subpage 1</NavMenuLink>
24
+ <NavMenuLink href="/sub/page2">Subpage 2</NavMenuLink>
25
+ <NavMenuLink href="/sub/page3">Subpage 3</NavMenuLink>
26
+ </NavMenu>
27
+ </NavMenuPopoutContent>
28
+ </NavMenuPopout>
29
+ <NavMenuGroup>
30
+ <NavMenuGroupHeader as="h4">Group header</NavMenuGroupHeader>
31
+ <NavMenuLink href="/grouped-page">Grouped page</NavMenuLink>
32
+ </NavMenuGroup>
33
+ </NavMenu>
34
+ }
35
+ }
@@ -7,8 +7,6 @@ import TabGroupList from "./components/TabGroupList.torp";
7
7
 
8
8
  describe("TabGroup", () => {
9
9
  it("Items in a for loop", async () => {
10
- const user = userEvent.setup();
11
-
12
10
  let $state = $watch({
13
11
  value: "1",
14
12
  items: [
@@ -35,7 +33,7 @@ describe("TabGroup", () => {
35
33
  expect(queryByText(container, "Content 3")).not.toBeInTheDocument();
36
34
 
37
35
  // Clicking header 1 should reveal body 1
38
- await user.click(getByText(container, "Item 1"));
36
+ await userEvent.click(getByText(container, "Item 1"));
39
37
  expect(queryByText(container, "Content 1")).toBeInTheDocument();
40
38
 
41
39
  $state.items.push({ id: 3, header: "Item 4", text: "Content 4" });
@@ -47,7 +45,7 @@ describe("TabGroup", () => {
47
45
  expect(queryByText(container, "Content 4")).not.toBeInTheDocument();
48
46
 
49
47
  // Clicking header 4 should reveal body 4
50
- await user.click(getByText(container, "Item 4"));
48
+ await userEvent.click(getByText(container, "Item 4"));
51
49
  expect(queryByText(container, "Content 1")).not.toBeInTheDocument();
52
50
  expect(queryByText(container, "Content 4")).toBeInTheDocument();
53
51
  });
@@ -7,28 +7,27 @@ import TabGroupTrigger from "./components/TabGroupTrigger.torp";
7
7
 
8
8
  describe("TabGroup", () => {
9
9
  it("Item trigger", async () => {
10
- const user = userEvent.setup();
11
-
12
10
  const container = document.createElement("div");
13
11
  document.body.appendChild(container);
14
12
  mount(container, TabGroupTrigger);
15
13
 
16
- expect(queryByText(container, "Content 1")).not.toBeInTheDocument();
14
+ expect(queryByText(container, "Content 1")).toBeInTheDocument();
17
15
  expect(queryByText(container, "Content 2")).not.toBeInTheDocument();
18
16
  expect(queryByText(container, "Content 3")).not.toBeInTheDocument();
19
17
 
20
- // Clicking header 1 should reveal body 1
21
- await user.click(getByText(container, "Header 1"));
22
- expect(queryByText(container, "Content 1")).toBeInTheDocument();
23
-
24
- // Clicking header 2 should hide body 1 and reveal body 2
25
- await user.click(getByText(container, "Header 2"));
18
+ // Clicking header 3 should hide body 1 and reveal body 3
19
+ await userEvent.click(getByText(container, "Header 3"));
26
20
  expect(queryByText(container, "Content 1")).not.toBeInTheDocument();
21
+ expect(queryByText(container, "Content 3")).toBeInTheDocument();
22
+
23
+ // Clicking header 2 should hide body 3 and reveal body 2
24
+ await userEvent.click(getByText(container, "Header 2"));
25
+ expect(queryByText(container, "Content 3")).not.toBeInTheDocument();
27
26
  expect(queryByText(container, "Content 2")).toBeInTheDocument();
28
27
 
29
28
  // Clicking header 2 again should keep body 2
30
- await user.click(getByText(container, "Header 2"));
31
- expect(queryByText(container, "Content 1")).not.toBeInTheDocument();
29
+ await userEvent.click(getByText(container, "Header 2"));
30
+ expect(queryByText(container, "Content 3")).not.toBeInTheDocument();
32
31
  expect(queryByText(container, "Content 2")).toBeInTheDocument();
33
32
  });
34
33
  });
package/tsup.config.ts CHANGED
@@ -6,7 +6,15 @@ type Config =
6
6
  | ((overrideOptions: Options) => Options | Options[] | Promise<Options | Options[]>);
7
7
 
8
8
  export default defineConfig({
9
- entry: ["src/Accordion/index.ts", "src/TabGroup/index.ts", "src/motion.ts"],
9
+ entry: [
10
+ "src/Accordion/index.ts",
11
+ "src/Dialog/index.ts",
12
+ "src/NavMenu/index.ts",
13
+ "src/Offscreen/index.ts",
14
+ "src/Popover/index.ts",
15
+ "src/TabGroup/index.ts",
16
+ "src/motion.ts",
17
+ ],
10
18
  format: ["esm", "cjs"],
11
19
  dts: { entry: ["src/motion.ts"] },
12
20
  clean: true,