@seed-design/lynx-react 0.7.0 → 0.8.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 (245) hide show
  1. package/lib/components/Accordion/Accordion.jsx +2 -2
  2. package/lib/components/ActionButton/ActionButton.jsx +1 -1
  3. package/lib/components/AlertDialog/AlertDialog.d.ts +64 -0
  4. package/lib/components/AlertDialog/AlertDialog.d.ts.map +1 -0
  5. package/lib/components/AlertDialog/AlertDialog.jsx +138 -0
  6. package/lib/components/AlertDialog/AlertDialog.namespace.d.ts +2 -0
  7. package/lib/components/AlertDialog/AlertDialog.namespace.d.ts.map +1 -0
  8. package/lib/components/AlertDialog/AlertDialog.namespace.js +17 -0
  9. package/lib/components/AlertDialog/index.d.ts +3 -0
  10. package/lib/components/AlertDialog/index.d.ts.map +1 -0
  11. package/lib/components/AppBar/AppBar.d.ts +14 -1
  12. package/lib/components/AppBar/AppBar.d.ts.map +1 -1
  13. package/lib/components/AppBar/AppBar.jsx +46 -10
  14. package/lib/components/AppBar/AppBar.namespace.d.ts +1 -1
  15. package/lib/components/AppBar/AppBar.namespace.d.ts.map +1 -1
  16. package/lib/components/AppBar/index.d.ts +1 -1
  17. package/lib/components/AppBar/index.d.ts.map +1 -1
  18. package/lib/components/AttachmentDisplay/AttachmentDisplay.d.ts +182 -0
  19. package/lib/components/AttachmentDisplay/AttachmentDisplay.d.ts.map +1 -0
  20. package/lib/components/AttachmentDisplay/AttachmentDisplay.jsx +444 -0
  21. package/lib/components/AttachmentDisplay/index.d.ts +2 -0
  22. package/lib/components/AttachmentDisplay/index.d.ts.map +1 -0
  23. package/lib/components/AttachmentInput/AttachmentInput.d.ts +179 -0
  24. package/lib/components/AttachmentInput/AttachmentInput.d.ts.map +1 -0
  25. package/lib/components/AttachmentInput/AttachmentInput.jsx +520 -0
  26. package/lib/components/AttachmentInput/index.d.ts +2 -0
  27. package/lib/components/AttachmentInput/index.d.ts.map +1 -0
  28. package/lib/components/BottomSheet/BottomSheet.d.ts +1 -1
  29. package/lib/components/BottomSheet/BottomSheet.d.ts.map +1 -1
  30. package/lib/components/BottomSheet/BottomSheet.jsx +1 -7
  31. package/lib/components/Callout/Callout.jsx +2 -2
  32. package/lib/components/Checkbox/Checkbox.jsx +2 -2
  33. package/lib/components/Chip/Chip.jsx +2 -2
  34. package/lib/components/ChipTabs/ChipTabs.d.ts +41 -0
  35. package/lib/components/ChipTabs/ChipTabs.d.ts.map +1 -0
  36. package/lib/components/ChipTabs/ChipTabs.jsx +39 -0
  37. package/lib/components/ChipTabs/ChipTabs.namespace.d.ts +2 -0
  38. package/lib/components/ChipTabs/ChipTabs.namespace.d.ts.map +1 -0
  39. package/lib/components/ChipTabs/ChipTabs.namespace.js +13 -0
  40. package/lib/components/ChipTabs/index.d.ts +3 -0
  41. package/lib/components/ChipTabs/index.d.ts.map +1 -0
  42. package/lib/components/ContextualFloatingButton/ContextualFloatingButton.d.ts +18 -0
  43. package/lib/components/ContextualFloatingButton/ContextualFloatingButton.d.ts.map +1 -0
  44. package/lib/components/ContextualFloatingButton/ContextualFloatingButton.jsx +113 -0
  45. package/lib/components/ContextualFloatingButton/index.d.ts +2 -0
  46. package/lib/components/ContextualFloatingButton/index.d.ts.map +1 -0
  47. package/lib/components/Dialog/Dialog.d.ts +87 -0
  48. package/lib/components/Dialog/Dialog.d.ts.map +1 -0
  49. package/lib/components/Dialog/Dialog.jsx +147 -0
  50. package/lib/components/Dialog/Dialog.namespace.d.ts +2 -0
  51. package/lib/components/Dialog/Dialog.namespace.d.ts.map +1 -0
  52. package/lib/components/Dialog/Dialog.namespace.js +18 -0
  53. package/lib/components/Dialog/index.d.ts +3 -0
  54. package/lib/components/Dialog/index.d.ts.map +1 -0
  55. package/lib/components/FloatingActionButton/FloatingActionButton.d.ts +23 -0
  56. package/lib/components/FloatingActionButton/FloatingActionButton.d.ts.map +1 -0
  57. package/lib/components/FloatingActionButton/FloatingActionButton.jsx +76 -0
  58. package/lib/components/FloatingActionButton/FloatingActionButton.namespace.d.ts +2 -0
  59. package/lib/components/FloatingActionButton/FloatingActionButton.namespace.d.ts.map +1 -0
  60. package/lib/components/FloatingActionButton/FloatingActionButton.namespace.js +10 -0
  61. package/lib/components/FloatingActionButton/index.d.ts +3 -0
  62. package/lib/components/FloatingActionButton/index.d.ts.map +1 -0
  63. package/lib/components/HelpBubble/HelpBubble.d.ts +67 -0
  64. package/lib/components/HelpBubble/HelpBubble.d.ts.map +1 -0
  65. package/lib/components/HelpBubble/HelpBubble.jsx +600 -0
  66. package/lib/components/HelpBubble/HelpBubble.namespace.d.ts +2 -0
  67. package/lib/components/HelpBubble/HelpBubble.namespace.d.ts.map +1 -0
  68. package/lib/components/HelpBubble/HelpBubble.namespace.js +18 -0
  69. package/lib/components/HelpBubble/index.d.ts +3 -0
  70. package/lib/components/HelpBubble/index.d.ts.map +1 -0
  71. package/lib/components/Icon/Icon.d.ts +1 -0
  72. package/lib/components/Icon/Icon.d.ts.map +1 -1
  73. package/lib/components/Icon/Icon.jsx +3 -2
  74. package/lib/components/IdentityPlaceholder/IdentityPlaceholder.d.ts +28 -0
  75. package/lib/components/IdentityPlaceholder/IdentityPlaceholder.d.ts.map +1 -0
  76. package/lib/components/IdentityPlaceholder/IdentityPlaceholder.jsx +37 -0
  77. package/lib/components/IdentityPlaceholder/IdentityPlaceholder.namespace.d.ts +2 -0
  78. package/lib/components/IdentityPlaceholder/IdentityPlaceholder.namespace.d.ts.map +1 -0
  79. package/lib/components/IdentityPlaceholder/IdentityPlaceholder.namespace.js +9 -0
  80. package/lib/components/IdentityPlaceholder/identity-placeholder-business.js +4 -0
  81. package/lib/components/IdentityPlaceholder/identity-placeholder-person.js +4 -0
  82. package/lib/components/IdentityPlaceholder/index.d.ts +3 -0
  83. package/lib/components/IdentityPlaceholder/index.d.ts.map +1 -0
  84. package/lib/components/InputButton/InputButton.d.ts +2 -0
  85. package/lib/components/InputButton/InputButton.d.ts.map +1 -1
  86. package/lib/components/InputButton/InputButton.jsx +40 -8
  87. package/lib/components/List/List.d.ts +1 -1
  88. package/lib/components/List/List.d.ts.map +1 -1
  89. package/lib/components/List/List.jsx +26 -12
  90. package/lib/components/Menu/Menu.d.ts.map +1 -1
  91. package/lib/components/Menu/Menu.jsx +15 -5
  92. package/lib/components/PageBanner/PageBanner.d.ts +3 -0
  93. package/lib/components/PageBanner/PageBanner.d.ts.map +1 -1
  94. package/lib/components/PageBanner/PageBanner.jsx +49 -11
  95. package/lib/components/QuantityPicker/QuantityPicker.d.ts +53 -0
  96. package/lib/components/QuantityPicker/QuantityPicker.d.ts.map +1 -0
  97. package/lib/components/QuantityPicker/QuantityPicker.jsx +282 -0
  98. package/lib/components/QuantityPicker/QuantityPicker.namespace.d.ts +2 -0
  99. package/lib/components/QuantityPicker/QuantityPicker.namespace.d.ts.map +1 -0
  100. package/lib/components/QuantityPicker/QuantityPicker.namespace.js +11 -0
  101. package/lib/components/QuantityPicker/index.d.ts +3 -0
  102. package/lib/components/QuantityPicker/index.d.ts.map +1 -0
  103. package/lib/components/RadioGroup/RadioGroup.jsx +2 -2
  104. package/lib/components/ReactionButton/ReactionButton.d.ts +1 -1
  105. package/lib/components/ReactionButton/ReactionButton.d.ts.map +1 -1
  106. package/lib/components/ReactionButton/ReactionButton.jsx +22 -13
  107. package/lib/components/ScrollFog/ScrollFog.d.ts +41 -0
  108. package/lib/components/ScrollFog/ScrollFog.d.ts.map +1 -0
  109. package/lib/components/ScrollFog/ScrollFog.jsx +65 -0
  110. package/lib/components/ScrollFog/index.d.ts +2 -0
  111. package/lib/components/ScrollFog/index.d.ts.map +1 -0
  112. package/lib/components/SegmentedControl/SegmentedControl.jsx +2 -2
  113. package/lib/components/Select/Select.d.ts +112 -0
  114. package/lib/components/Select/Select.d.ts.map +1 -0
  115. package/lib/components/Select/Select.jsx +885 -0
  116. package/lib/components/Select/Select.namespace.d.ts +2 -0
  117. package/lib/components/Select/Select.namespace.d.ts.map +1 -0
  118. package/lib/components/Select/Select.namespace.js +23 -0
  119. package/lib/components/Select/index.d.ts +3 -0
  120. package/lib/components/Select/index.d.ts.map +1 -0
  121. package/lib/components/Skeleton/Skeleton.d.ts +15 -0
  122. package/lib/components/Skeleton/Skeleton.d.ts.map +1 -0
  123. package/lib/components/Skeleton/Skeleton.jsx +18 -0
  124. package/lib/components/Skeleton/index.d.ts +2 -0
  125. package/lib/components/Skeleton/index.d.ts.map +1 -0
  126. package/lib/components/Slider/Slider.d.ts +101 -0
  127. package/lib/components/Slider/Slider.d.ts.map +1 -0
  128. package/lib/components/Slider/Slider.jsx +573 -0
  129. package/lib/components/Slider/Slider.namespace.d.ts +2 -0
  130. package/lib/components/Slider/Slider.namespace.d.ts.map +1 -0
  131. package/lib/components/Slider/Slider.namespace.js +19 -0
  132. package/lib/components/Slider/Slider.utils.d.ts +19 -0
  133. package/lib/components/Slider/Slider.utils.d.ts.map +1 -0
  134. package/lib/components/Slider/Slider.utils.js +106 -0
  135. package/lib/components/Slider/index.d.ts +3 -0
  136. package/lib/components/Slider/index.d.ts.map +1 -0
  137. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.d.ts.map +1 -1
  138. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.jsx +22 -8
  139. package/lib/components/Switch/Switch.d.ts.map +1 -1
  140. package/lib/components/Switch/Switch.jsx +5 -3
  141. package/lib/components/Tabs/Tabs.d.ts +34 -2
  142. package/lib/components/Tabs/Tabs.d.ts.map +1 -1
  143. package/lib/components/Tabs/Tabs.jsx +186 -56
  144. package/lib/components/Tabs/Tabs.utils.d.ts +14 -1
  145. package/lib/components/Tabs/Tabs.utils.d.ts.map +1 -1
  146. package/lib/components/Tabs/Tabs.utils.js +24 -3
  147. package/lib/components/Tabs/index.d.ts +1 -1
  148. package/lib/components/Tabs/index.d.ts.map +1 -1
  149. package/lib/components/index.d.ts +14 -0
  150. package/lib/components/index.d.ts.map +1 -1
  151. package/lib/hooks/useControllableState.d.ts +1 -14
  152. package/lib/hooks/useControllableState.d.ts.map +1 -1
  153. package/lib/hooks/usePressTap.d.ts +1 -27
  154. package/lib/hooks/usePressTap.d.ts.map +1 -1
  155. package/lib/hooks/useScaleFeedback.d.ts +1 -1
  156. package/lib/hooks/useScaleFeedback.js +1 -1
  157. package/lib/index.js +29 -6
  158. package/lib/{hooks/useControllableState.js → packages/lynx-react-headless/use-controllable-state/lib/index.js} +2 -3
  159. package/lib/{hooks/usePressTap.js → packages/lynx-react-headless/use-press-tap/lib/index.js} +13 -10
  160. package/lib/types.d.ts +1 -0
  161. package/lib/types.d.ts.map +1 -1
  162. package/package.json +9 -5
  163. package/src/components/ActionButton/ActionButton.test.tsx +7 -7
  164. package/src/components/AlertDialog/AlertDialog.namespace.ts +22 -0
  165. package/src/components/AlertDialog/AlertDialog.test.tsx +226 -0
  166. package/src/components/AlertDialog/AlertDialog.tsx +374 -0
  167. package/src/components/AlertDialog/index.ts +24 -0
  168. package/src/components/AppBar/AppBar.namespace.ts +1 -0
  169. package/src/components/AppBar/AppBar.test.tsx +257 -0
  170. package/src/components/AppBar/AppBar.tsx +109 -14
  171. package/src/components/AppBar/index.ts +1 -0
  172. package/src/components/AttachmentDisplay/AttachmentDisplay.tsx +886 -0
  173. package/src/components/AttachmentDisplay/index.ts +48 -0
  174. package/src/components/AttachmentInput/AttachmentInput.tsx +1001 -0
  175. package/src/components/AttachmentInput/index.ts +49 -0
  176. package/src/components/BottomSheet/BottomSheet.test.tsx +22 -7
  177. package/src/components/BottomSheet/BottomSheet.tsx +1 -19
  178. package/src/components/ChipTabs/ChipTabs.namespace.ts +14 -0
  179. package/src/components/ChipTabs/ChipTabs.tsx +119 -0
  180. package/src/components/ChipTabs/index.ts +16 -0
  181. package/src/components/ContextualFloatingButton/ContextualFloatingButton.test.tsx +63 -0
  182. package/src/components/ContextualFloatingButton/ContextualFloatingButton.tsx +232 -0
  183. package/src/components/ContextualFloatingButton/index.ts +4 -0
  184. package/src/components/Dialog/Dialog.namespace.ts +24 -0
  185. package/src/components/Dialog/Dialog.test.tsx +172 -0
  186. package/src/components/Dialog/Dialog.tsx +373 -0
  187. package/src/components/Dialog/index.ts +26 -0
  188. package/src/components/FloatingActionButton/FloatingActionButton.namespace.ts +8 -0
  189. package/src/components/FloatingActionButton/FloatingActionButton.test.tsx +59 -0
  190. package/src/components/FloatingActionButton/FloatingActionButton.tsx +207 -0
  191. package/src/components/FloatingActionButton/index.ts +10 -0
  192. package/src/components/HelpBubble/HelpBubble.namespace.ts +24 -0
  193. package/src/components/HelpBubble/HelpBubble.tsx +998 -0
  194. package/src/components/HelpBubble/index.ts +26 -0
  195. package/src/components/Icon/Icon.test.tsx +57 -5
  196. package/src/components/Icon/Icon.tsx +16 -2
  197. package/src/components/IdentityPlaceholder/IdentityPlaceholder.namespace.ts +6 -0
  198. package/src/components/IdentityPlaceholder/IdentityPlaceholder.tsx +103 -0
  199. package/src/components/IdentityPlaceholder/assets.d.ts +4 -0
  200. package/src/components/IdentityPlaceholder/identity-placeholder-business.webp +0 -0
  201. package/src/components/IdentityPlaceholder/identity-placeholder-person.webp +0 -0
  202. package/src/components/IdentityPlaceholder/index.ts +8 -0
  203. package/src/components/InputButton/InputButton.test.tsx +128 -1
  204. package/src/components/InputButton/InputButton.tsx +60 -9
  205. package/src/components/List/List.test.tsx +54 -2
  206. package/src/components/List/List.tsx +43 -10
  207. package/src/components/Menu/Menu.tsx +14 -4
  208. package/src/components/Menu/__tests__/Menu.test.tsx +34 -0
  209. package/src/components/PageBanner/PageBanner.test.tsx +110 -3
  210. package/src/components/PageBanner/PageBanner.tsx +83 -19
  211. package/src/components/QuantityPicker/QuantityPicker.namespace.ts +10 -0
  212. package/src/components/QuantityPicker/QuantityPicker.test.tsx +235 -0
  213. package/src/components/QuantityPicker/QuantityPicker.tsx +605 -0
  214. package/src/components/QuantityPicker/index.ts +14 -0
  215. package/src/components/ReactionButton/ReactionButton.feedback.test.tsx +50 -0
  216. package/src/components/ReactionButton/ReactionButton.test.tsx +6 -4
  217. package/src/components/ReactionButton/ReactionButton.tsx +20 -12
  218. package/src/components/ScrollFog/ScrollFog.test.tsx +222 -0
  219. package/src/components/ScrollFog/ScrollFog.tsx +172 -0
  220. package/src/components/ScrollFog/index.ts +1 -0
  221. package/src/components/Select/Select.namespace.ts +34 -0
  222. package/src/components/Select/Select.test.tsx +297 -0
  223. package/src/components/Select/Select.tsx +1483 -0
  224. package/src/components/Select/index.ts +39 -0
  225. package/src/components/Skeleton/Skeleton.test.tsx +64 -0
  226. package/src/components/Skeleton/Skeleton.tsx +45 -0
  227. package/src/components/Skeleton/index.ts +1 -0
  228. package/src/components/Slider/Slider.namespace.ts +26 -0
  229. package/src/components/Slider/Slider.test.tsx +260 -0
  230. package/src/components/Slider/Slider.tsx +897 -0
  231. package/src/components/Slider/Slider.utils.ts +167 -0
  232. package/src/components/Slider/index.ts +30 -0
  233. package/src/components/SwipeableMenuSheet/SwipeableMenuSheet.test.tsx +21 -1
  234. package/src/components/SwipeableMenuSheet/SwipeableMenuSheet.tsx +30 -7
  235. package/src/components/Switch/Switch.tsx +14 -13
  236. package/src/components/Tabs/Tabs.test.tsx +218 -1
  237. package/src/components/Tabs/Tabs.tsx +346 -75
  238. package/src/components/Tabs/Tabs.utils.ts +51 -1
  239. package/src/components/Tabs/index.ts +17 -1
  240. package/src/components/index.ts +14 -0
  241. package/src/hooks/useControllableState.ts +1 -43
  242. package/src/hooks/usePressTap.test.ts +23 -11
  243. package/src/hooks/usePressTap.ts +1 -60
  244. package/src/hooks/useScaleFeedback.ts +1 -1
  245. package/src/types.ts +1 -0
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { useControllableState } from "./hooks/useControllableState.js";
2
- import { usePressTap } from "./hooks/usePressTap.js";
1
+ import { useControllableState } from "./packages/lynx-react-headless/use-controllable-state/lib/index.js";
2
+ import { usePressTap } from "./packages/lynx-react-headless/use-press-tap/lib/index.js";
3
3
  import { useScaleFeedback } from "./hooks/useScaleFeedback.js";
4
4
  import { mergeProps } from "./utils/merge-props.js";
5
5
  import { createSlotRecipeContext } from "./utils/create-slot-recipe-context.jsx";
@@ -26,10 +26,25 @@ import { CheckboxControl, CheckboxGroup, CheckboxIndicator, CheckboxLabel, Check
26
26
  import { Checkbox_namespace_exports } from "./components/Checkbox/Checkbox.namespace.js";
27
27
  import { ChipButton, ChipLabel, ChipPrefixAvatar, ChipPrefixIcon, ChipRadioItem, ChipRadioRoot, ChipRoot, ChipSuffixIcon, ChipToggle } from "./components/Chip/Chip.jsx";
28
28
  import { Chip_namespace_exports } from "./components/Chip/Chip.namespace.js";
29
+ import { HStack, VStack } from "./components/Stack/Stack.jsx";
30
+ import { TabsCarousel, TabsCarouselCamera, TabsContent, TabsIndicator, TabsList, TabsRoot, TabsTrigger } from "./components/Tabs/Tabs.jsx";
31
+ import { ChipTabsCarousel, ChipTabsCarouselCamera, ChipTabsContent, ChipTabsList, ChipTabsRoot, ChipTabsTrigger } from "./components/ChipTabs/ChipTabs.jsx";
32
+ import { ChipTabs_namespace_exports } from "./components/ChipTabs/ChipTabs.namespace.js";
29
33
  import { Count } from "./components/Count/Count.jsx";
34
+ import { ContextualFloatingButton } from "./components/ContextualFloatingButton/ContextualFloatingButton.jsx";
30
35
  import { Divider } from "./components/Divider/Divider.jsx";
31
36
  import { FieldCharacterCount, FieldDescription, FieldErrorMessage, FieldFooter, FieldHeader, FieldIndicatorText, FieldLabel, FieldRequiredIndicator, FieldRoot } from "./components/Field/Field.jsx";
32
37
  import { Field_namespace_exports } from "./components/Field/Field.namespace.js";
38
+ import { FloatingActionButtonIcon, FloatingActionButtonLabel, FloatingActionButtonRoot } from "./components/FloatingActionButton/FloatingActionButton.jsx";
39
+ import { FloatingActionButton_namespace_exports } from "./components/FloatingActionButton/FloatingActionButton.namespace.js";
40
+ import { DialogAction, DialogBackdrop, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogPositioner, DialogRoot, DialogTitle, DialogTrigger } from "./components/Dialog/Dialog.jsx";
41
+ import { Dialog_namespace_exports } from "./components/Dialog/Dialog.namespace.js";
42
+ import { AlertDialogAction, AlertDialogBackdrop, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPositioner, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger } from "./components/AlertDialog/AlertDialog.jsx";
43
+ import { AlertDialog_namespace_exports } from "./components/AlertDialog/AlertDialog.namespace.js";
44
+ import { HelpBubbleAnchor, HelpBubbleArrow, HelpBubbleArrowTip, HelpBubbleBody, HelpBubbleCloseButton, HelpBubbleContent, HelpBubbleDescription, HelpBubblePositioner, HelpBubbleRoot, HelpBubbleTitle, HelpBubbleTrigger } from "./components/HelpBubble/HelpBubble.jsx";
45
+ import { HelpBubble_namespace_exports } from "./components/HelpBubble/HelpBubble.namespace.js";
46
+ import { IdentityPlaceholderImage, IdentityPlaceholderRoot } from "./components/IdentityPlaceholder/IdentityPlaceholder.jsx";
47
+ import { IdentityPlaceholder_namespace_exports } from "./components/IdentityPlaceholder/IdentityPlaceholder.namespace.js";
33
48
  import { InputButtonButton, InputButtonClearButton, InputButtonPlaceholder, InputButtonPrefixIcon, InputButtonPrefixText, InputButtonRoot, InputButtonSuffixIcon, InputButtonSuffixText, InputButtonValue } from "./components/InputButton/InputButton.jsx";
34
49
  import { InputButton_namespace_exports } from "./components/InputButton/InputButton.namespace.js";
35
50
  import { KeyboardAvoidingScrollView } from "./components/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.jsx";
@@ -38,25 +53,31 @@ import { MenuAnchor, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuItemB
38
53
  import { Menu_namespace_exports } from "./components/Menu/Menu.namespace.js";
39
54
  import { MannerTempBadge } from "./components/MannerTempBadge/MannerTempBadge.jsx";
40
55
  import { NotificationBadge, NotificationBadgePositioner } from "./components/NotificationBadge/NotificationBadge.jsx";
41
- import { ScaleFeedback } from "./components/ScaleFeedback/ScaleFeedback.jsx";
42
56
  import { PageBannerBody, PageBannerButton, PageBannerCloseButton, PageBannerContent, PageBannerDescription, PageBannerRoot, PageBannerTitle } from "./components/PageBanner/PageBanner.jsx";
43
57
  import { PageBanner_namespace_exports } from "./components/PageBanner/PageBanner.namespace.js";
44
58
  import { RadioGroupItem, RadioGroupItemControl, RadioGroupItemIndicator, RadioGroupItemLabel, RadioGroupRoot } from "./components/RadioGroup/RadioGroup.jsx";
45
59
  import { SwitchControl, SwitchLabel, SwitchRoot, SwitchThumb } from "./components/Switch/Switch.jsx";
46
60
  import { ListButtonItem, ListCheckboxItem, ListContent, ListDetail, ListHeader, ListItem, ListPrefix, ListRadioItem, ListRoot, ListSuffix, ListSwitchItem, ListTitle } from "./components/List/List.jsx";
47
61
  import { List_namespace_exports } from "./components/List/List.namespace.js";
62
+ import { QuantityPickerDecrementButton, QuantityPickerIncrementButton, QuantityPickerRoot, QuantityPickerValueDisplay } from "./components/QuantityPicker/QuantityPicker.jsx";
63
+ import { QuantityPicker_namespace_exports } from "./components/QuantityPicker/QuantityPicker.namespace.js";
48
64
  import { RadioGroup_namespace_exports } from "./components/RadioGroup/RadioGroup.namespace.js";
49
65
  import { ReactionButton } from "./components/ReactionButton/ReactionButton.jsx";
50
- import { HStack, VStack } from "./components/Stack/Stack.jsx";
66
+ import { ScaleFeedback } from "./components/ScaleFeedback/ScaleFeedback.jsx";
51
67
  import { SegmentedControlIndicator, SegmentedControlItem, SegmentedControlRoot } from "./components/SegmentedControl/SegmentedControl.jsx";
52
68
  import { SegmentedControl_namespace_exports } from "./components/SegmentedControl/SegmentedControl.namespace.js";
69
+ import { SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectItemBody, SelectItemDescription, SelectItemIndicator, SelectItemLabel, SelectItemPrefixIcon, SelectPlaceholder, SelectPrefixIcon, SelectRoot, SelectScrollArea, SelectSuffixIcon, SelectTrigger, SelectValue } from "./components/Select/Select.jsx";
70
+ import { Select_namespace_exports } from "./components/Select/Select.namespace.js";
53
71
  import { CheckSelectBoxBody, CheckSelectBoxCheckmarkControl, CheckSelectBoxCheckmarkIcon, CheckSelectBoxContent, CheckSelectBoxDescription, CheckSelectBoxFooter, CheckSelectBoxGroup, CheckSelectBoxLabel, CheckSelectBoxRoot, CheckSelectBoxTrigger, RadioSelectBoxBody, RadioSelectBoxContent, RadioSelectBoxDescription, RadioSelectBoxFooter, RadioSelectBoxGroup, RadioSelectBoxItem, RadioSelectBoxLabel, RadioSelectBoxTrigger } from "./components/SelectBox/SelectBox.jsx";
54
72
  import { CheckSelectBox_namespace_exports } from "./components/SelectBox/CheckSelectBox.namespace.js";
55
73
  import { RadioSelectBox_namespace_exports } from "./components/SelectBox/RadioSelectBox.namespace.js";
74
+ import { Skeleton } from "./components/Skeleton/Skeleton.jsx";
75
+ import { SliderControl, SliderMarker, SliderMarkers, SliderRange, SliderRoot, SliderThumb, SliderTick, SliderTrack, SliderValueIndicatorArrow, SliderValueIndicatorArrowTip, SliderValueIndicatorLabel, SliderValueIndicatorRoot } from "./components/Slider/Slider.jsx";
76
+ import { Slider_namespace_exports } from "./components/Slider/Slider.namespace.js";
56
77
  import { Switch_namespace_exports } from "./components/Switch/Switch.namespace.js";
78
+ import { ScrollFog } from "./components/ScrollFog/ScrollFog.jsx";
57
79
  import { SwipeableMenuSheetBackdrop, SwipeableMenuSheetCloseButton, SwipeableMenuSheetContent, SwipeableMenuSheetDescription, SwipeableMenuSheetFooter, SwipeableMenuSheetGroup, SwipeableMenuSheetHandle, SwipeableMenuSheetHeader, SwipeableMenuSheetItem, SwipeableMenuSheetItemContent, SwipeableMenuSheetItemDescription, SwipeableMenuSheetItemLabel, SwipeableMenuSheetList, SwipeableMenuSheetPositioner, SwipeableMenuSheetRoot, SwipeableMenuSheetTitle, SwipeableMenuSheetTrigger } from "./components/SwipeableMenuSheet/SwipeableMenuSheet.jsx";
58
80
  import { SwipeableMenuSheet_namespace_exports } from "./components/SwipeableMenuSheet/SwipeableMenuSheet.namespace.js";
59
- import { TabsCarousel, TabsCarouselCamera, TabsContent, TabsIndicator, TabsList, TabsRoot, TabsTrigger } from "./components/Tabs/Tabs.jsx";
60
81
  import { Tabs_namespace_exports } from "./components/Tabs/Tabs.namespace.js";
61
82
  import { TagGroupItem, TagGroupItemLabel, TagGroupRoot } from "./components/TagGroup/TagGroup.jsx";
62
83
  import { TagGroup_namespace_exports } from "./components/TagGroup/TagGroup.namespace.js";
@@ -64,6 +85,8 @@ import { Text } from "./components/Text/Text.jsx";
64
85
  import { TextFieldInput, TextFieldPrefixIcon, TextFieldPrefixText, TextFieldRoot, TextFieldSuffixIcon, TextFieldSuffixText, TextFieldTextarea } from "./components/TextField/TextField.jsx";
65
86
  import { useTextFieldWithGraphemes } from "./components/TextField/useTextFieldWithGraphemes.js";
66
87
  import { TextField_namespace_exports } from "./components/TextField/TextField.namespace.js";
88
+ import { AttachmentInput, AttachmentInputContainer, AttachmentInputContext, AttachmentInputItem, AttachmentInputItemActionButton, AttachmentInputItemBackdrop, AttachmentInputItemBadge, AttachmentInputItemGroup, AttachmentInputItemImage, AttachmentInputItemMetadata, AttachmentInputItemName, AttachmentInputItemRemoveButton, AttachmentInputItemSize, AttachmentInputItemSurface, AttachmentInputItemThumbnail, AttachmentInputRoot, AttachmentInputTrigger, AttachmentInputTriggerIcon, AttachmentInputTriggerItemCount, useAttachmentInput, useAttachmentInputContext, useAttachmentInputItemContext } from "./components/AttachmentInput/AttachmentInput.jsx";
89
+ import { AttachmentDisplay, AttachmentDisplayContainer, AttachmentDisplayContext, AttachmentDisplayControl, AttachmentDisplayDescription, AttachmentDisplayErrorMessage, AttachmentDisplayFooter, AttachmentDisplayHeader, AttachmentDisplayIndicatorText, AttachmentDisplayItem, AttachmentDisplayItemActionButton, AttachmentDisplayItemBackdrop, AttachmentDisplayItemBadge, AttachmentDisplayItemGroup, AttachmentDisplayItemImage, AttachmentDisplayItemMetadata, AttachmentDisplayItemRemoveButton, AttachmentDisplayItemSurface, AttachmentDisplayItemThumbnail, AttachmentDisplayLabel, AttachmentDisplayRequiredIndicator, AttachmentDisplayRoot, AttachmentDisplayTrigger, AttachmentDisplayTriggerIcon, AttachmentDisplayTriggerItemCount, useAttachmentDisplay, useAttachmentDisplayContext, useAttachmentDisplayItemContext } from "./components/AttachmentDisplay/AttachmentDisplay.jsx";
67
90
  import { getSeedClassName } from "./utils/get-seed-class-name.js";
68
91
  import { useSeedClassName } from "./hooks/useSeedClassName.js";
69
- export { Accordion_namespace_exports as Accordion, AccordionBody, AccordionContent, AccordionDescription, AccordionHeader, AccordionItem, AccordionPrefix, AccordionRoot, AccordionSuffixIcon, AccordionTitle, AccordionTrigger, ActionButton, AppBar_namespace_exports as AppBar, AppBarIconButton, AppBarLeft, AppBarMain, AppBarRight, AppBarRoot, AppBarSlot, AppBarSubtitle, AppBarTitle, Badge, BottomSheet_namespace_exports as BottomSheet, BottomSheetBackdrop, BottomSheetBody, BottomSheetContent, BottomSheetDescription, BottomSheetFooter, BottomSheetHandle, BottomSheetHeader, BottomSheetPositioner, BottomSheetRoot, BottomSheetTitle, BottomSheetTrigger, Box, Callout_namespace_exports as Callout, CalloutCloseButton, CalloutContent, CalloutDescription, CalloutLink, CalloutRoot, CalloutTitle, CheckSelectBox_namespace_exports as CheckSelectBox, CheckSelectBoxBody, CheckSelectBoxCheckmarkControl, CheckSelectBoxCheckmarkIcon, CheckSelectBoxContent, CheckSelectBoxDescription, CheckSelectBoxFooter, CheckSelectBoxGroup, CheckSelectBoxLabel, CheckSelectBoxRoot, CheckSelectBoxTrigger, Checkbox_namespace_exports as Checkbox, CheckboxControl, CheckboxGroup, CheckboxIndicator, CheckboxLabel, CheckboxRoot, Chip_namespace_exports as Chip, ChipButton, ChipLabel, ChipPrefixAvatar, ChipPrefixIcon, ChipRadioItem, ChipRadioRoot, ChipRoot, ChipSuffixIcon, ChipToggle, Count, Divider, Field_namespace_exports as Field, FieldCharacterCount, FieldDescription, FieldErrorMessage, FieldFooter, FieldHeader, FieldIndicatorText, FieldLabel, FieldRequiredIndicator, FieldRoot, HStack, Icon, InputButton_namespace_exports as InputButton, InputButtonButton, InputButtonClearButton, InputButtonPlaceholder, InputButtonPrefixIcon, InputButtonPrefixText, InputButtonRoot, InputButtonSuffixIcon, InputButtonSuffixText, InputButtonValue, KeyboardAvoidingScrollView, List_namespace_exports as List, ListButtonItem, ListCheckboxItem, ListContent, ListDetail, ListHeader, ListItem, ListPrefix, ListRadioItem, ListRoot, ListSuffix, ListSwitchItem, ListTitle, MannerTemp, MannerTempBadge, MannerTempEmote, Menu_namespace_exports as Menu, MenuAnchor, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuItemBody, MenuItemDescription, MenuItemLabel, PrefixIcon as MenuPrefixIcon, MenuRoot, MenuScrollArea, SuffixIcon as MenuSuffixIcon, MenuTrigger, NotificationBadge, NotificationBadgePositioner, PageBanner_namespace_exports as PageBanner, PageBannerBody, PageBannerButton, PageBannerCloseButton, PageBannerContent, PageBannerDescription, PageBannerRoot, PageBannerTitle, PrefixIcon, ProgressCircle_namespace_exports as ProgressCircle, ProgressCircleRange, ProgressCircleRoot, RadioGroup_namespace_exports as RadioGroup, RadioGroupItem, RadioGroupItemControl, RadioGroupItemIndicator, RadioGroupItemLabel, RadioGroupRoot, RadioSelectBox_namespace_exports as RadioSelectBox, RadioSelectBoxBody, RadioSelectBoxContent, RadioSelectBoxDescription, RadioSelectBoxFooter, RadioSelectBoxGroup, RadioSelectBoxItem, RadioSelectBoxLabel, RadioSelectBoxTrigger, ReactionButton, ScaleFeedback, ScaleFeedbackContentContext, SegmentedControl_namespace_exports as SegmentedControl, SegmentedControlIndicator, SegmentedControlItem, SegmentedControlRoot, SuffixIcon, SwipeableMenuSheet_namespace_exports as SwipeableMenuSheet, SwipeableMenuSheetBackdrop, SwipeableMenuSheetCloseButton, SwipeableMenuSheetContent, SwipeableMenuSheetDescription, SwipeableMenuSheetFooter, SwipeableMenuSheetGroup, SwipeableMenuSheetHandle, SwipeableMenuSheetHeader, SwipeableMenuSheetItem, SwipeableMenuSheetItemContent, SwipeableMenuSheetItemDescription, SwipeableMenuSheetItemLabel, SwipeableMenuSheetList, SwipeableMenuSheetPositioner, SwipeableMenuSheetRoot, SwipeableMenuSheetTitle, SwipeableMenuSheetTrigger, Switch_namespace_exports as Switch, SwitchControl, SwitchLabel, SwitchRoot, SwitchThumb, Tabs_namespace_exports as Tabs, TabsCarousel, TabsCarouselCamera, TabsContent, TabsIndicator, TabsList, TabsRoot, TabsTrigger, TagGroup_namespace_exports as TagGroup, TagGroupItem, TagGroupItemLabel, TagGroupRoot, Text, TextField_namespace_exports as TextField, TextFieldInput, TextFieldPrefixIcon, TextFieldPrefixText, TextFieldRoot, TextFieldSuffixIcon, TextFieldSuffixText, TextFieldTextarea, VStack, capitalize, createSlotRecipeContext, getSeedClassName, mergeProps, resolveRecipeToken, splitMultipleVariantsProps, useControllableState, useIconColor, usePressTap, useSafeArea, useScaleFeedback, useSeedClassName, useTextFieldWithGraphemes };
92
+ export { Accordion_namespace_exports as Accordion, AccordionBody, AccordionContent, AccordionDescription, AccordionHeader, AccordionItem, AccordionPrefix, AccordionRoot, AccordionSuffixIcon, AccordionTitle, AccordionTrigger, ActionButton, AlertDialog_namespace_exports as AlertDialog, AlertDialogAction, AlertDialogBackdrop, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPositioner, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, AppBar_namespace_exports as AppBar, AppBarIconButton, AppBarLeft, AppBarMain, AppBarRight, AppBarRoot, AppBarSlot, AppBarSubtitle, AppBarTitle, AttachmentDisplay, AttachmentDisplayContainer, AttachmentDisplayContext, AttachmentDisplayControl, AttachmentDisplayDescription, AttachmentDisplayErrorMessage, AttachmentDisplayFooter, AttachmentDisplayHeader, AttachmentDisplayIndicatorText, AttachmentDisplayItem, AttachmentDisplayItemActionButton, AttachmentDisplayItemBackdrop, AttachmentDisplayItemBadge, AttachmentDisplayItemGroup, AttachmentDisplayItemImage, AttachmentDisplayItemMetadata, AttachmentDisplayItemRemoveButton, AttachmentDisplayItemSurface, AttachmentDisplayItemThumbnail, AttachmentDisplayLabel, AttachmentDisplayRequiredIndicator, AttachmentDisplayRoot, AttachmentDisplayTrigger, AttachmentDisplayTriggerIcon, AttachmentDisplayTriggerItemCount, AttachmentInput, AttachmentInputContainer, AttachmentInputContext, AttachmentInputItem, AttachmentInputItemActionButton, AttachmentInputItemBackdrop, AttachmentInputItemBadge, AttachmentInputItemGroup, AttachmentInputItemImage, AttachmentInputItemMetadata, AttachmentInputItemName, AttachmentInputItemRemoveButton, AttachmentInputItemSize, AttachmentInputItemSurface, AttachmentInputItemThumbnail, AttachmentInputRoot, AttachmentInputTrigger, AttachmentInputTriggerIcon, AttachmentInputTriggerItemCount, Badge, BottomSheet_namespace_exports as BottomSheet, BottomSheetBackdrop, BottomSheetBody, BottomSheetContent, BottomSheetDescription, BottomSheetFooter, BottomSheetHandle, BottomSheetHeader, BottomSheetPositioner, BottomSheetRoot, BottomSheetTitle, BottomSheetTrigger, Box, Callout_namespace_exports as Callout, CalloutCloseButton, CalloutContent, CalloutDescription, CalloutLink, CalloutRoot, CalloutTitle, CheckSelectBox_namespace_exports as CheckSelectBox, CheckSelectBoxBody, CheckSelectBoxCheckmarkControl, CheckSelectBoxCheckmarkIcon, CheckSelectBoxContent, CheckSelectBoxDescription, CheckSelectBoxFooter, CheckSelectBoxGroup, CheckSelectBoxLabel, CheckSelectBoxRoot, CheckSelectBoxTrigger, Checkbox_namespace_exports as Checkbox, CheckboxControl, CheckboxGroup, CheckboxIndicator, CheckboxLabel, CheckboxRoot, Chip_namespace_exports as Chip, ChipButton, ChipLabel, ChipPrefixAvatar, ChipPrefixIcon, ChipRadioItem, ChipRadioRoot, ChipRoot, ChipSuffixIcon, ChipTabs_namespace_exports as ChipTabs, ChipTabsCarousel, ChipTabsCarouselCamera, ChipTabsContent, ChipTabsList, ChipTabsRoot, ChipTabsTrigger, ChipToggle, ContextualFloatingButton, Count, Dialog_namespace_exports as Dialog, DialogAction, DialogBackdrop, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogPositioner, DialogRoot, DialogTitle, DialogTrigger, Divider, Field_namespace_exports as Field, FieldCharacterCount, FieldDescription, FieldErrorMessage, FieldFooter, FieldHeader, FieldIndicatorText, FieldLabel, FieldRequiredIndicator, FieldRoot, FloatingActionButton_namespace_exports as FloatingActionButton, FloatingActionButtonIcon, FloatingActionButtonLabel, FloatingActionButtonRoot, HStack, HelpBubble_namespace_exports as HelpBubble, HelpBubbleAnchor, HelpBubbleArrow, HelpBubbleArrowTip, HelpBubbleBody, HelpBubbleCloseButton, HelpBubbleContent, HelpBubbleDescription, HelpBubblePositioner, HelpBubbleRoot, HelpBubbleTitle, HelpBubbleTrigger, Icon, IdentityPlaceholder_namespace_exports as IdentityPlaceholder, IdentityPlaceholderImage, IdentityPlaceholderRoot, InputButton_namespace_exports as InputButton, InputButtonButton, InputButtonClearButton, InputButtonPlaceholder, InputButtonPrefixIcon, InputButtonPrefixText, InputButtonRoot, InputButtonSuffixIcon, InputButtonSuffixText, InputButtonValue, KeyboardAvoidingScrollView, List_namespace_exports as List, ListButtonItem, ListCheckboxItem, ListContent, ListDetail, ListHeader, ListItem, ListPrefix, ListRadioItem, ListRoot, ListSuffix, ListSwitchItem, ListTitle, MannerTemp, MannerTempBadge, MannerTempEmote, Menu_namespace_exports as Menu, MenuAnchor, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuItemBody, MenuItemDescription, MenuItemLabel, PrefixIcon as MenuPrefixIcon, MenuRoot, MenuScrollArea, SuffixIcon as MenuSuffixIcon, MenuTrigger, NotificationBadge, NotificationBadgePositioner, PageBanner_namespace_exports as PageBanner, PageBannerBody, PageBannerButton, PageBannerCloseButton, PageBannerContent, PageBannerDescription, PageBannerRoot, PageBannerTitle, PrefixIcon, ProgressCircle_namespace_exports as ProgressCircle, ProgressCircleRange, ProgressCircleRoot, QuantityPicker_namespace_exports as QuantityPicker, QuantityPickerDecrementButton, QuantityPickerIncrementButton, QuantityPickerRoot, QuantityPickerValueDisplay, RadioGroup_namespace_exports as RadioGroup, RadioGroupItem, RadioGroupItemControl, RadioGroupItemIndicator, RadioGroupItemLabel, RadioGroupRoot, RadioSelectBox_namespace_exports as RadioSelectBox, RadioSelectBoxBody, RadioSelectBoxContent, RadioSelectBoxDescription, RadioSelectBoxFooter, RadioSelectBoxGroup, RadioSelectBoxItem, RadioSelectBoxLabel, RadioSelectBoxTrigger, ReactionButton, ScaleFeedback, ScaleFeedbackContentContext, ScrollFog, SegmentedControl_namespace_exports as SegmentedControl, SegmentedControlIndicator, SegmentedControlItem, SegmentedControlRoot, Select_namespace_exports as Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectItemBody, SelectItemDescription, SelectItemIndicator, SelectItemLabel, SelectItemPrefixIcon, SelectPlaceholder, SelectPrefixIcon, SelectRoot, SelectScrollArea, SelectSuffixIcon, SelectTrigger, SelectValue, Skeleton, Slider_namespace_exports as Slider, SliderControl, SliderMarker, SliderMarkers, SliderRange, SliderRoot, SliderThumb, SliderTick, SliderTrack, SliderValueIndicatorArrow, SliderValueIndicatorArrowTip, SliderValueIndicatorLabel, SliderValueIndicatorRoot, SuffixIcon, SwipeableMenuSheet_namespace_exports as SwipeableMenuSheet, SwipeableMenuSheetBackdrop, SwipeableMenuSheetCloseButton, SwipeableMenuSheetContent, SwipeableMenuSheetDescription, SwipeableMenuSheetFooter, SwipeableMenuSheetGroup, SwipeableMenuSheetHandle, SwipeableMenuSheetHeader, SwipeableMenuSheetItem, SwipeableMenuSheetItemContent, SwipeableMenuSheetItemDescription, SwipeableMenuSheetItemLabel, SwipeableMenuSheetList, SwipeableMenuSheetPositioner, SwipeableMenuSheetRoot, SwipeableMenuSheetTitle, SwipeableMenuSheetTrigger, Switch_namespace_exports as Switch, SwitchControl, SwitchLabel, SwitchRoot, SwitchThumb, Tabs_namespace_exports as Tabs, TabsCarousel, TabsCarouselCamera, TabsContent, TabsIndicator, TabsList, TabsRoot, TabsTrigger, TagGroup_namespace_exports as TagGroup, TagGroupItem, TagGroupItemLabel, TagGroupRoot, Text, TextField_namespace_exports as TextField, TextFieldInput, TextFieldPrefixIcon, TextFieldPrefixText, TextFieldRoot, TextFieldSuffixIcon, TextFieldSuffixText, TextFieldTextarea, VStack, capitalize, createSlotRecipeContext, getSeedClassName, mergeProps, resolveRecipeToken, splitMultipleVariantsProps, useAttachmentDisplay, useAttachmentDisplayContext, useAttachmentDisplayItemContext, useAttachmentInput, useAttachmentInputContext, useAttachmentInputItemContext, useControllableState, useIconColor, usePressTap, useSafeArea, useScaleFeedback, useSeedClassName, useTextFieldWithGraphemes };
@@ -1,6 +1,6 @@
1
1
  import { useRef, useState } from "@lynx-js/react";
2
2
  import { useMemoizedFn } from "@lynx-js/lynx-ui-common";
3
- //#region src/hooks/useControllableState.ts
3
+ //#region ../lynx-react-headless/use-controllable-state/lib/index.js
4
4
  /**
5
5
  * Controlled/uncontrolled state pattern for Lynx components.
6
6
  *
@@ -8,8 +8,7 @@ import { useMemoizedFn } from "@lynx-js/lynx-ui-common";
8
8
  * - When `value` is `undefined`, the component manages its own state
9
9
  * starting from `defaultValue`.
10
10
  * - `onChange` fires in both modes.
11
- */
12
- function useControllableState(props) {
11
+ */ function useControllableState(props) {
13
12
  const { value, defaultValue, onChange } = props;
14
13
  const isControlled = value !== void 0;
15
14
  const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
@@ -1,6 +1,6 @@
1
- import { useState } from "@lynx-js/react";
1
+ import { useEffect, useState } from "@lynx-js/react";
2
2
  import { useMemoizedFn } from "@lynx-js/lynx-ui-common";
3
- //#region src/hooks/usePressTap.ts
3
+ //#region ../lynx-react-headless/use-press-tap/lib/index.js
4
4
  /**
5
5
  * Hook that provides press/tap interaction state for Lynx elements.
6
6
  *
@@ -8,10 +8,12 @@ import { useMemoizedFn } from "@lynx-js/lynx-ui-common";
8
8
  * - When `disabled` is true, the element cannot become active and no tap fires.
9
9
  * - If the element becomes disabled during a press, the active state is cleared.
10
10
  * - `main-thread:bindtap` is conditionally included (only when enabled and provided).
11
- */
12
- function usePressTap(options = {}) {
11
+ */ function usePressTap(options = {}) {
13
12
  const { disabled = false, onTap, mainThreadOnTap } = options;
14
13
  const [pressed, setPressed] = useState(false);
14
+ useEffect(() => {
15
+ if (disabled) setPressed(false);
16
+ }, [disabled]);
15
17
  const press = useMemoizedFn(() => {
16
18
  if (disabled) return;
17
19
  setPressed(true);
@@ -19,13 +21,14 @@ function usePressTap(options = {}) {
19
21
  const reset = useMemoizedFn(() => {
20
22
  setPressed(false);
21
23
  });
24
+ const handleTap = useMemoizedFn((...args) => {
25
+ if (disabled) return;
26
+ setPressed(false);
27
+ onTap?.(...args);
28
+ });
22
29
  return {
23
- pressed,
24
- bindtap: useMemoizedFn((...args) => {
25
- if (disabled) return;
26
- setPressed(false);
27
- onTap?.(...args);
28
- }),
30
+ pressed: !disabled && pressed,
31
+ bindtap: handleTap,
29
32
  bindtouchstart: press,
30
33
  bindtouchend: reset,
31
34
  bindtouchcancel: reset,
package/lib/types.d.ts CHANGED
@@ -28,6 +28,7 @@ export interface LynxIconElementProps {
28
28
  className?: IntrinsicElements["image"]["className"];
29
29
  style?: LynxStyle;
30
30
  ref?: LynxMainThreadRef;
31
+ "disable-default-resize"?: boolean;
31
32
  "main-thread:binduiappear"?: IntrinsicElements["image"]["main-thread:binduiappear"];
32
33
  }
33
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,qBAAqB,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACnD,qBAAqB,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,0BAA0B,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,0BAA0B,CAAC,CAAC;CACrF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,aAAa,EACX,qBAAqB,GACrB,sBAAsB,GACtB,uBAAuB,GACvB,qBAAqB,GACrB,gCAAgC,GAChC,+BAA+B,GAC/B,uBAAuB,GACvB,uBAAuB,GACvB,+BAA+B,GAC/B,+BAA+B,CAClC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,qBAAqB,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACnD,qBAAqB,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,0BAA0B,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,0BAA0B,CAAC,CAAC;CACrF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,aAAa,EACX,qBAAqB,GACrB,sBAAsB,GACtB,uBAAuB,GACvB,qBAAqB,GACrB,gCAAgC,GAChC,+BAA+B,GAC/B,uBAAuB,GACvB,uBAAuB,GACvB,+BAA+B,GAC/B,+BAA+B,CAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seed-design/lynx-react",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/daangn/seed-design.git",
@@ -34,18 +34,19 @@
34
34
  "peerDependencies": {
35
35
  "@lynx-js/react": ">=0.117.0",
36
36
  "@lynx-js/types": ">=3.9.0",
37
- "@seed-design/lynx-css": "0.0.0 || >=0.11.0 <1.0.0"
37
+ "@seed-design/lynx-css": "0.0.0 || >=0.12.0 <1.0.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@lynx-js/react": "^0.117.0",
41
41
  "@lynx-js/types": "^3.9.0",
42
- "@seed-design/lynx-css": "0.11.0",
42
+ "@seed-design/lynx-css": "0.12.0",
43
43
  "@testing-library/jest-dom": "^6.9.1",
44
44
  "jsdom": "^29.0.2",
45
45
  "preact": "npm:@lynx-js/internal-preact@10.28.4-ee7bb26",
46
46
  "vite": "^8.0.0",
47
47
  "vite-plugin-dts": "^4.5.4",
48
- "vitest": "^3.2.4"
48
+ "vitest": "^3.2.4",
49
+ "@seed-design/lynx-vitest-config": "0.0.0"
49
50
  },
50
51
  "publishConfig": {
51
52
  "access": "public"
@@ -53,8 +54,11 @@
53
54
  "dependencies": {
54
55
  "@floating-ui/core": "^1.8.0",
55
56
  "@lynx-js/lynx-ui-common": "^3.130.0",
57
+ "@lynx-js/lynx-ui-dialog": "^3.133.1",
56
58
  "@lynx-js/lynx-ui-sheet": "^3.130.1",
57
59
  "clsx": "^2.1.1",
58
- "unicode-segmenter": "^0.14.4"
60
+ "unicode-segmenter": "^0.14.4",
61
+ "@seed-design/lynx-react-use-controllable-state": "0.1.0",
62
+ "@seed-design/lynx-react-use-press-tap": "0.1.0"
59
63
  }
60
64
  }
@@ -88,9 +88,9 @@ describe("ActionButton", () => {
88
88
  const { getByText } = getRenderedQueries();
89
89
  const root = getRenderedRoot();
90
90
 
91
- expect(root.querySelector(".seed-prefix-icon")).toHaveClass("seed-action-button__prefixIcon");
92
- expect(root.querySelector(".seed-suffix-icon")).toHaveClass("seed-action-button__suffixIcon");
93
- expect(root.querySelector(".seed-prefix-icon image")).toHaveStyle({
91
+ expect(root.querySelector(".seed-prefix-icon-slot")).toHaveClass("seed-action-button__prefixIcon");
92
+ expect(root.querySelector(".seed-suffix-icon-slot")).toHaveClass("seed-action-button__suffixIcon");
93
+ expect(root.querySelector(".seed-prefix-icon-slot image")).toHaveStyle({
94
94
  width: "100%",
95
95
  height: "100%",
96
96
  });
@@ -106,8 +106,8 @@ describe("ActionButton", () => {
106
106
 
107
107
  const root = getRenderedRoot();
108
108
 
109
- expect(root.querySelector(".seed-prefix-icon")).toHaveClass("seed-action-button__prefixIcon");
110
- expect(root.querySelector(".seed-suffix-icon")).toHaveClass("seed-action-button__suffixIcon");
109
+ expect(root.querySelector(".seed-prefix-icon-slot")).toHaveClass("seed-action-button__prefixIcon");
110
+ expect(root.querySelector(".seed-suffix-icon-slot")).toHaveClass("seed-action-button__suffixIcon");
111
111
  });
112
112
 
113
113
  it("supports icon-only child slot", () => {
@@ -119,7 +119,7 @@ describe("ActionButton", () => {
119
119
 
120
120
  const root = getRenderedRoot();
121
121
 
122
- expect(root.querySelector(".seed-icon")).toHaveClass("seed-action-button__icon");
122
+ expect(root.querySelector(".seed-icon-slot")).toHaveClass("seed-action-button__icon");
123
123
  });
124
124
 
125
125
  it("maps accessibility props to the root view", () => {
@@ -141,7 +141,7 @@ describe("ActionButton", () => {
141
141
 
142
142
  const root = getRenderedRoot();
143
143
 
144
- expect(root.querySelector(".seed-icon")).toHaveClass("seed-action-button__icon");
144
+ expect(root.querySelector(".seed-icon-slot")).toHaveClass("seed-action-button__icon");
145
145
  });
146
146
 
147
147
  it("throws in development when icon-only layout has no Icon child", () => {
@@ -0,0 +1,22 @@
1
+ export {
2
+ AlertDialogAction as Action,
3
+ AlertDialogBackdrop as Backdrop,
4
+ AlertDialogContent as Content,
5
+ AlertDialogDescription as Description,
6
+ AlertDialogFooter as Footer,
7
+ AlertDialogHeader as Header,
8
+ AlertDialogPositioner as Positioner,
9
+ AlertDialogRoot as Root,
10
+ AlertDialogTitle as Title,
11
+ AlertDialogTrigger as Trigger,
12
+ type AlertDialogActionProps as ActionProps,
13
+ type AlertDialogBackdropProps as BackdropProps,
14
+ type AlertDialogContentProps as ContentProps,
15
+ type AlertDialogDescriptionProps as DescriptionProps,
16
+ type AlertDialogFooterProps as FooterProps,
17
+ type AlertDialogHeaderProps as HeaderProps,
18
+ type AlertDialogPositionerProps as PositionerProps,
19
+ type AlertDialogRootProps as RootProps,
20
+ type AlertDialogTitleProps as TitleProps,
21
+ type AlertDialogTriggerProps as TriggerProps,
22
+ } from "./AlertDialog";
@@ -0,0 +1,226 @@
1
+ import type { ReactNode } from "@lynx-js/react";
2
+
3
+ import { render } from "@lynx-js/react/testing-library";
4
+ import { beforeEach, describe, expect, it, vi } from "vitest";
5
+
6
+ const alertDialogMocks = vi.hoisted(() => ({
7
+ rootProps: [] as Array<Record<string, unknown>>,
8
+ viewProps: [] as Array<Record<string, unknown>>,
9
+ backdropProps: [] as Array<Record<string, unknown>>,
10
+ contentProps: [] as Array<Record<string, unknown>>,
11
+ closeProps: [] as Array<Record<string, unknown>>,
12
+ }));
13
+
14
+ vi.mock("@lynx-js/lynx-ui-dialog", () => {
15
+ const renderChildren = (children: unknown, status: Record<string, boolean>): ReactNode => {
16
+ if (typeof children === "function") {
17
+ return (children as (status: Record<string, boolean>) => ReactNode)(status);
18
+ }
19
+ return children as ReactNode;
20
+ };
21
+
22
+ const DialogRoot = (props: Record<string, unknown>) => {
23
+ alertDialogMocks.rootProps.push(props);
24
+ return <>{renderChildren(props["children"], { open: props["show"] === true })}</>;
25
+ };
26
+ DialogRoot.displayName = "MockDialogRoot";
27
+
28
+ const DialogTrigger = (props: Record<string, unknown>) => (
29
+ <view>{renderChildren(props["children"], { active: false, busy: false })}</view>
30
+ );
31
+ DialogTrigger.displayName = "MockDialogTrigger";
32
+
33
+ const DialogView = (props: Record<string, unknown>) => {
34
+ alertDialogMocks.viewProps.push(props);
35
+ return (
36
+ <view className={props["className"] as string}>
37
+ {renderChildren(props["children"], { open: props["show"] === true })}
38
+ </view>
39
+ );
40
+ };
41
+ DialogView.displayName = "MockDialogView";
42
+
43
+ const DialogBackdrop = (props: Record<string, unknown>) => {
44
+ alertDialogMocks.backdropProps.push(props);
45
+ return <view className={props["className"] as string}>{props["children"] as ReactNode}</view>;
46
+ };
47
+ DialogBackdrop.displayName = "MockDialogBackdrop";
48
+
49
+ const DialogContent = (props: Record<string, unknown>) => {
50
+ alertDialogMocks.contentProps.push(props);
51
+ return <view className={props["className"] as string}>{props["children"] as ReactNode}</view>;
52
+ };
53
+ DialogContent.displayName = "MockDialogContent";
54
+
55
+ const DialogClose = (props: Record<string, unknown>) => {
56
+ alertDialogMocks.closeProps.push(props);
57
+ return (
58
+ <view className={props["className"] as string}>
59
+ {renderChildren(props["children"], { active: false, busy: false })}
60
+ </view>
61
+ );
62
+ };
63
+ DialogClose.displayName = "MockDialogClose";
64
+
65
+ return {
66
+ DialogBackdrop,
67
+ DialogClose,
68
+ DialogContent,
69
+ DialogRoot,
70
+ DialogTrigger,
71
+ DialogView,
72
+ };
73
+ });
74
+
75
+ import * as AlertDialog from "./AlertDialog.namespace";
76
+
77
+ describe("AlertDialog", () => {
78
+ beforeEach(() => {
79
+ alertDialogMocks.rootProps = [];
80
+ alertDialogMocks.viewProps = [];
81
+ alertDialogMocks.backdropProps = [];
82
+ alertDialogMocks.contentProps = [];
83
+ alertDialogMocks.closeProps = [];
84
+ });
85
+
86
+ it("maps the namespace API and applies dialog recipe classes", () => {
87
+ const onOpenChange = vi.fn();
88
+ const { container } = render(
89
+ <AlertDialog.Root open onOpenChange={onOpenChange}>
90
+ <AlertDialog.Trigger>
91
+ <text>Open</text>
92
+ </AlertDialog.Trigger>
93
+ <AlertDialog.Positioner>
94
+ <AlertDialog.Backdrop />
95
+ <AlertDialog.Content>
96
+ <AlertDialog.Header>
97
+ <AlertDialog.Title>Title</AlertDialog.Title>
98
+ <AlertDialog.Description>Description</AlertDialog.Description>
99
+ </AlertDialog.Header>
100
+ <AlertDialog.Footer>
101
+ <AlertDialog.Action>
102
+ <text>Cancel</text>
103
+ </AlertDialog.Action>
104
+ </AlertDialog.Footer>
105
+ </AlertDialog.Content>
106
+ </AlertDialog.Positioner>
107
+ </AlertDialog.Root>,
108
+ );
109
+
110
+ expect(alertDialogMocks.rootProps.at(-1)).toMatchObject({
111
+ show: true,
112
+ onShowChange: onOpenChange,
113
+ });
114
+ expect(container.querySelector(".seed-alert-dialog__positioner")).not.toBeNull();
115
+ expect(container.querySelector(".seed-alert-dialog__backdrop")).not.toBeNull();
116
+ expect(container.querySelector(".seed-alert-dialog__content")).not.toBeNull();
117
+ expect(container.querySelector(".seed-alert-dialog__header")).not.toBeNull();
118
+ expect(container.querySelector(".seed-alert-dialog__title")).not.toBeNull();
119
+ expect(container.querySelector(".seed-alert-dialog__description")).not.toBeNull();
120
+ expect(container.querySelector(".seed-alert-dialog__footer")).not.toBeNull();
121
+ expect(container.querySelector(".seed-alert-dialog__action")).not.toBeNull();
122
+ });
123
+
124
+ it("does not dismiss from the backdrop by default and preserves explicit overrides", () => {
125
+ render(
126
+ <AlertDialog.Root defaultOpen>
127
+ <AlertDialog.Positioner>
128
+ <AlertDialog.Backdrop />
129
+ <AlertDialog.Content />
130
+ </AlertDialog.Positioner>
131
+ </AlertDialog.Root>,
132
+ );
133
+
134
+ expect(alertDialogMocks.backdropProps.at(-1)).toHaveProperty("clickToClose", false);
135
+
136
+ render(
137
+ <AlertDialog.Root defaultOpen>
138
+ <AlertDialog.Positioner>
139
+ <AlertDialog.Backdrop clickToClose />
140
+ <AlertDialog.Content />
141
+ </AlertDialog.Positioner>
142
+ </AlertDialog.Root>,
143
+ );
144
+
145
+ expect(alertDialogMocks.backdropProps.at(-1)).toHaveProperty("clickToClose", true);
146
+ });
147
+
148
+ it("provides alert dialog accessibility defaults and preserves consumer overrides", () => {
149
+ const { container } = render(
150
+ <AlertDialog.Root defaultOpen>
151
+ <AlertDialog.Positioner>
152
+ <AlertDialog.Backdrop />
153
+ <AlertDialog.Content>
154
+ <AlertDialog.Title>Title</AlertDialog.Title>
155
+ </AlertDialog.Content>
156
+ </AlertDialog.Positioner>
157
+ </AlertDialog.Root>,
158
+ );
159
+
160
+ expect(alertDialogMocks.contentProps.at(-1)?.["dialogContentProps"]).toMatchObject({
161
+ "accessibility-element": true,
162
+ "accessibility-role-description": "alertdialog",
163
+ });
164
+ expect(container.querySelector("text")?.getAttribute("accessibility-heading")).toBe("true");
165
+
166
+ const { container: overriddenContainer } = render(
167
+ <AlertDialog.Root defaultOpen>
168
+ <AlertDialog.Positioner>
169
+ <AlertDialog.Content
170
+ accessibility-element={false}
171
+ accessibility-role-description="custom dialog"
172
+ />
173
+ <AlertDialog.Title accessibility-heading={false}>Title</AlertDialog.Title>
174
+ </AlertDialog.Positioner>
175
+ </AlertDialog.Root>,
176
+ );
177
+
178
+ expect(alertDialogMocks.contentProps.at(-1)?.["dialogContentProps"]).toMatchObject({
179
+ "accessibility-element": false,
180
+ "accessibility-role-description": "custom dialog",
181
+ });
182
+ const overriddenTexts = overriddenContainer.querySelectorAll("text");
183
+ expect(
184
+ overriddenTexts.item(overriddenTexts.length - 1)?.getAttribute("accessibility-heading"),
185
+ ).toBe("false");
186
+ });
187
+
188
+ it("disables transitions with skipAnimation and removes reserved lifecycle handlers", () => {
189
+ const userBindTap = vi.fn();
190
+ const dialogContentProps = {
191
+ style: { paddingTop: "12px" },
192
+ bindtap: userBindTap,
193
+ };
194
+
195
+ render(
196
+ <AlertDialog.Root defaultOpen forceMount skipAnimation>
197
+ <AlertDialog.Positioner container="window" overlayLevel={2} style={{ width: "80%" }}>
198
+ <AlertDialog.Backdrop />
199
+ <AlertDialog.Content dialogContentProps={dialogContentProps} />
200
+ </AlertDialog.Positioner>
201
+ </AlertDialog.Root>,
202
+ );
203
+
204
+ expect(alertDialogMocks.rootProps.at(-1)).toMatchObject({
205
+ defaultShow: true,
206
+ forceMount: true,
207
+ });
208
+ expect(alertDialogMocks.viewProps.at(-1)).toMatchObject({
209
+ container: "window",
210
+ overlayLevel: 2,
211
+ style: { width: "80%", height: "100%" },
212
+ transition: false,
213
+ });
214
+ expect(alertDialogMocks.backdropProps.at(-1)).toMatchObject({ transition: false });
215
+ expect(alertDialogMocks.contentProps.at(-1)).toMatchObject({ transition: false });
216
+ expect(alertDialogMocks.contentProps.at(-1)?.["dialogContentProps"]).toMatchObject({
217
+ style: { paddingTop: "12px" },
218
+ "accessibility-element": true,
219
+ "accessibility-role-description": "alertdialog",
220
+ });
221
+ expect(alertDialogMocks.contentProps.at(-1)?.["dialogContentProps"]).not.toHaveProperty(
222
+ "bindtap",
223
+ );
224
+ expect(userBindTap).not.toHaveBeenCalled();
225
+ });
226
+ });