@passui/react 0.1.45 → 0.1.47

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 (141) hide show
  1. package/README.md +57 -46
  2. package/dist/types/src/components/accordion/accordion.d.ts +1 -1
  3. package/dist/types/src/components/breadcrumb/breadcrumb.d.ts +1 -1
  4. package/dist/types/src/components/inline-disclosure/inline-disclosure.d.ts +1 -1
  5. package/dist/types/src/components/popover/anchored-surface.d.ts +5 -1
  6. package/dist/types/src/components/popover/index.d.ts +41 -0
  7. package/dist/types/src/components/popover/popover-content.d.ts +38 -0
  8. package/dist/types/src/components/popover/popover-root.d.ts +22 -0
  9. package/dist/types/src/components/popover/popover-trigger.d.ts +23 -0
  10. package/dist/types/src/components/stepper/rolling-digit.d.ts +1 -1
  11. package/dist/types/src/components/table/table.d.ts +1 -1
  12. package/dist/types/src/components/view-controller/view-controller.d.ts +2 -2
  13. package/dist/types/src/index.d.ts +1 -1
  14. package/dist/types/src/machines/popover.machine.d.ts +30 -0
  15. package/package.json +307 -307
  16. package/src/appearance/index.ts +2 -2
  17. package/src/appearance/platform.tsx +76 -60
  18. package/src/appearance/theme.tsx +409 -377
  19. package/src/components/accordion/accordion.tsx +58 -49
  20. package/src/components/ambient/ambient.tsx +25 -25
  21. package/src/components/ambient/index.ts +1 -1
  22. package/src/components/aspect-ratio/aspect-ratio.tsx +21 -16
  23. package/src/components/breadcrumb/breadcrumb.tsx +63 -57
  24. package/src/components/button/button-styles.ts +39 -32
  25. package/src/components/button/button.tsx +91 -84
  26. package/src/components/button/icon-button.tsx +27 -25
  27. package/src/components/button/pending-spinner.tsx +8 -8
  28. package/src/components/button/use-pending-indicator.ts +11 -11
  29. package/src/components/chip/chip.tsx +35 -30
  30. package/src/components/code-block/code-block.tsx +40 -39
  31. package/src/components/combo-box/combo-box.tsx +5 -5
  32. package/src/components/command/command.tsx +124 -94
  33. package/src/components/compact-date-picker/calendar-month.ts +75 -53
  34. package/src/components/compact-date-picker/compact-date-picker.tsx +308 -289
  35. package/src/components/compact-time-picker/compact-time-picker.tsx +288 -281
  36. package/src/components/compact-time-picker/time-value.ts +32 -29
  37. package/src/components/content-unavailable-view/content-unavailable-view.tsx +64 -48
  38. package/src/components/content-view/content-view.tsx +168 -159
  39. package/src/components/content-view/index.ts +1 -1
  40. package/src/components/context-menu/conceal-menu-source.ts +25 -25
  41. package/src/components/context-menu/context-menu-host.tsx +439 -402
  42. package/src/components/context-menu/context-menu-store.ts +125 -123
  43. package/src/components/context-menu/menu-navigation.ts +25 -18
  44. package/src/components/context-menu/menu-position.ts +33 -29
  45. package/src/components/context-menu/menu-reveal.ts +32 -32
  46. package/src/components/context-menu/use-context-menu.ts +63 -56
  47. package/src/components/conversation/conversation.tsx +265 -263
  48. package/src/components/conversation/index.ts +1 -1
  49. package/src/components/date-picker/date-picker.tsx +95 -94
  50. package/src/components/date-picker/date-value.ts +20 -10
  51. package/src/components/dialog/dialog-host.tsx +105 -103
  52. package/src/components/dialog/dialog-store.ts +37 -36
  53. package/src/components/dialog/dialog.tsx +192 -179
  54. package/src/components/dialog/index.ts +1 -1
  55. package/src/components/disclosure-group/disclosure-group.tsx +93 -86
  56. package/src/components/divider/divider.tsx +24 -22
  57. package/src/components/inline-disclosure/inline-disclosure.tsx +40 -36
  58. package/src/components/keyboard-shortcut/keyboard-shortcut.tsx +23 -19
  59. package/src/components/labeled-content/labeled-content.tsx +68 -68
  60. package/src/components/locale-switcher/index.ts +1 -1
  61. package/src/components/locale-switcher/locale-switcher.tsx +278 -251
  62. package/src/components/menu/menu.tsx +75 -58
  63. package/src/components/morph/index.ts +2 -2
  64. package/src/components/morph/morph.tsx +227 -201
  65. package/src/components/morph/use-morph-disclosure.ts +19 -19
  66. package/src/components/one-time-code/one-time-code.tsx +216 -200
  67. package/src/components/picker/picker-trigger.ts +16 -13
  68. package/src/components/picker/picker.tsx +371 -345
  69. package/src/components/popover/anchored-surface.tsx +253 -229
  70. package/src/components/popover/index.ts +50 -0
  71. package/src/components/popover/popover-content.tsx +374 -0
  72. package/src/components/popover/popover-root.tsx +97 -0
  73. package/src/components/popover/popover-trigger.tsx +71 -0
  74. package/src/components/profile-image/profile-image.tsx +80 -64
  75. package/src/components/progress-view/progress-view.tsx +61 -59
  76. package/src/components/progress-view/use-liquid-progress.ts +38 -38
  77. package/src/components/radio-group/radio-group.tsx +71 -68
  78. package/src/components/search-field/expanding-search-field.tsx +191 -177
  79. package/src/components/search-field/search-field.tsx +59 -50
  80. package/src/components/search-list/search-list.tsx +246 -236
  81. package/src/components/section/section.tsx +58 -58
  82. package/src/components/secure-field/secure-field.tsx +3 -3
  83. package/src/components/segmented-control/segmented-control.tsx +136 -136
  84. package/src/components/sheet/modal-environment.ts +71 -64
  85. package/src/components/sheet/sheet-portal.tsx +58 -53
  86. package/src/components/sheet/sheet.tsx +146 -141
  87. package/src/components/sheet/use-sheet-focus.ts +97 -82
  88. package/src/components/sidebar/sidebar.tsx +78 -78
  89. package/src/components/skeleton/skeleton.tsx +30 -21
  90. package/src/components/slider/slider.tsx +113 -104
  91. package/src/components/slosh-slider/liquid-step.ts +32 -31
  92. package/src/components/slosh-slider/slosh-slider.tsx +265 -228
  93. package/src/components/stat-tile/index.ts +1 -1
  94. package/src/components/stat-tile/stat-tile.tsx +79 -68
  95. package/src/components/status-indicator/status-indicator.tsx +40 -37
  96. package/src/components/stepper/rolling-digit.tsx +82 -68
  97. package/src/components/stepper/stepper.tsx +122 -113
  98. package/src/components/swatch-picker/swatch-picker.tsx +120 -120
  99. package/src/components/tab-bar/tab-bar.tsx +149 -148
  100. package/src/components/tab-view/tab-view.tsx +140 -137
  101. package/src/components/table/table.tsx +117 -98
  102. package/src/components/text-editor/text-editor.tsx +34 -29
  103. package/src/components/text-field/text-field.tsx +182 -180
  104. package/src/components/toast/toast-store.ts +127 -115
  105. package/src/components/toast/toaster.tsx +361 -347
  106. package/src/components/toggle/toggle.tsx +297 -282
  107. package/src/components/tooltip/tooltip-host.tsx +157 -150
  108. package/src/components/view-controller/index.ts +1 -1
  109. package/src/components/view-controller/view-controller.tsx +64 -53
  110. package/src/components/wake-slider/wake-slider.tsx +220 -205
  111. package/src/hooks/scroll/minimize-decision.ts +11 -7
  112. package/src/hooks/use-anchored-disclosure.ts +19 -19
  113. package/src/hooks/use-anchored-placement.ts +29 -25
  114. package/src/hooks/use-dismiss.ts +33 -29
  115. package/src/hooks/use-floating-dismiss.ts +24 -22
  116. package/src/hooks/use-media-query.ts +67 -60
  117. package/src/hooks/use-minimize-on-scroll.ts +69 -60
  118. package/src/hooks/use-visual-viewport.ts +63 -63
  119. package/src/hooks/viewport/types.ts +16 -16
  120. package/src/hooks/viewport/viewport-metrics.ts +16 -10
  121. package/src/icons/icons.tsx +440 -328
  122. package/src/index.ts +91 -91
  123. package/src/lib/anchored-placement.ts +70 -65
  124. package/src/lib/class-names.ts +14 -13
  125. package/src/lib/clipboard.ts +8 -7
  126. package/src/lib/date.ts +61 -60
  127. package/src/lib/floating-layers.ts +39 -24
  128. package/src/lib/haptics.ts +10 -10
  129. package/src/lib/language.ts +9 -9
  130. package/src/lib/range-value.ts +27 -21
  131. package/src/lib/screen-edges.ts +33 -30
  132. package/src/lib/shapes.ts +38 -34
  133. package/src/machines/popover.machine.ts +51 -0
  134. package/src/motion/transitions.ts +46 -43
  135. package/src/styles/code-block.css +69 -43
  136. package/src/styles/motion-controls.css +393 -191
  137. package/src/tokens.ts +1 -1
  138. package/dist/types/src/components/popover/popover-fit.d.ts +0 -21
  139. package/dist/types/src/components/popover/popover.d.ts +0 -21
  140. package/src/components/popover/popover-fit.ts +0 -69
  141. package/src/components/popover/popover.tsx +0 -334
@@ -1,2 +1,2 @@
1
- export * from "./platform"
2
- export * from "./theme"
1
+ export * from "./platform";
2
+ export * from "./theme";
@@ -1,86 +1,102 @@
1
- import { createContext, useContext, useEffect, useState, type PropsWithChildren } from "react"
1
+ import {
2
+ createContext,
3
+ useContext,
4
+ useEffect,
5
+ useState,
6
+ type PropsWithChildren,
7
+ } from "react";
2
8
 
3
- export type PlatformOS = "ios" | "android" | "macos" | "windows" | "linux" | "unknown"
9
+ export type PlatformOS =
10
+ | "ios"
11
+ | "android"
12
+ | "macos"
13
+ | "windows"
14
+ | "linux"
15
+ | "unknown";
4
16
 
5
- const PlatformContext = createContext<PlatformOS>("unknown")
17
+ const PlatformContext = createContext<PlatformOS>("unknown");
6
18
 
7
19
  export function detectPlatform(
8
- userAgent: string,
9
- platform: string,
10
- maxTouchPoints: number
20
+ userAgent: string,
21
+ platform: string,
22
+ maxTouchPoints: number,
11
23
  ): PlatformOS {
12
- return resolvePlatform(null, userAgent, platform, maxTouchPoints)
24
+ return resolvePlatform(null, userAgent, platform, maxTouchPoints);
13
25
  }
14
26
 
15
27
  export function resolvePlatform(
16
- override: string | null,
17
- userAgent: string,
18
- platform: string,
19
- maxTouchPoints: number
28
+ override: string | null,
29
+ userAgent: string,
30
+ platform: string,
31
+ maxTouchPoints: number,
20
32
  ): PlatformOS {
21
- if (
22
- override === "ios" ||
23
- override === "android" ||
24
- override === "macos" ||
25
- override === "windows" ||
26
- override === "linux" ||
27
- override === "unknown"
28
- ) {
29
- return override
30
- }
33
+ if (
34
+ override === "ios" ||
35
+ override === "android" ||
36
+ override === "macos" ||
37
+ override === "windows" ||
38
+ override === "linux" ||
39
+ override === "unknown"
40
+ ) {
41
+ return override;
42
+ }
31
43
 
32
- if (/android/i.test(userAgent)) return "android"
33
- if (/iPhone|iPad|iPod/i.test(userAgent)) return "ios"
34
- if (platform === "MacIntel" && maxTouchPoints > 1) return "ios"
35
- if (/Mac/i.test(platform)) return "macos"
36
- if (/Win/i.test(platform)) return "windows"
37
- if (/Linux/i.test(platform)) return "linux"
38
- return "unknown"
44
+ if (/android/i.test(userAgent)) return "android";
45
+ if (/iPhone|iPad|iPod/i.test(userAgent)) return "ios";
46
+ if (platform === "MacIntel" && maxTouchPoints > 1) return "ios";
47
+ if (/Mac/i.test(platform)) return "macos";
48
+ if (/Win/i.test(platform)) return "windows";
49
+ if (/Linux/i.test(platform)) return "linux";
50
+ return "unknown";
39
51
  }
40
52
 
41
53
  function initializePlatform(
42
- resolve: typeof resolvePlatform,
43
- root: HTMLElement,
44
- userAgent: string,
45
- platform: string,
46
- maxTouchPoints: number
54
+ resolve: typeof resolvePlatform,
55
+ root: HTMLElement,
56
+ userAgent: string,
57
+ platform: string,
58
+ maxTouchPoints: number,
47
59
  ) {
48
- root.setAttribute(
49
- "data-os",
50
- resolve(root.getAttribute("data-os"), userAgent, platform, maxTouchPoints)
51
- )
60
+ root.setAttribute(
61
+ "data-os",
62
+ resolve(root.getAttribute("data-os"), userAgent, platform, maxTouchPoints),
63
+ );
52
64
  }
53
65
 
54
66
  export function PlatformScript({ nonce }: { nonce?: string }) {
55
- return (
56
- <script
57
- // Run the library's platform bootstrap before first paint.
58
- dangerouslySetInnerHTML={{
59
- __html: `(${initializePlatform.toString()})(${resolvePlatform.toString()}, document.documentElement, navigator.userAgent, navigator.platform, navigator.maxTouchPoints)`,
60
- }}
61
- nonce={nonce}
62
- suppressHydrationWarning
63
- />
64
- )
67
+ return (
68
+ <script
69
+ // Run the library's platform bootstrap before first paint.
70
+ dangerouslySetInnerHTML={{
71
+ __html: `(${initializePlatform.toString()})(${resolvePlatform.toString()}, document.documentElement, navigator.userAgent, navigator.platform, navigator.maxTouchPoints)`,
72
+ }}
73
+ nonce={nonce}
74
+ suppressHydrationWarning
75
+ />
76
+ );
65
77
  }
66
78
 
67
79
  export function PlatformProvider({ children }: PropsWithChildren) {
68
- const [platform, setPlatform] = useState<PlatformOS>("unknown")
80
+ const [platform, setPlatform] = useState<PlatformOS>("unknown");
69
81
 
70
- useEffect(() => {
71
- const resolved = resolvePlatform(
72
- document.documentElement.getAttribute("data-os"),
73
- navigator.userAgent,
74
- navigator.platform,
75
- navigator.maxTouchPoints
76
- )
77
- document.documentElement.setAttribute("data-os", resolved)
78
- setPlatform(resolved)
79
- }, [])
82
+ useEffect(() => {
83
+ const resolved = resolvePlatform(
84
+ document.documentElement.getAttribute("data-os"),
85
+ navigator.userAgent,
86
+ navigator.platform,
87
+ navigator.maxTouchPoints,
88
+ );
89
+ document.documentElement.setAttribute("data-os", resolved);
90
+ setPlatform(resolved);
91
+ }, []);
80
92
 
81
- return <PlatformContext.Provider value={platform}>{children}</PlatformContext.Provider>
93
+ return (
94
+ <PlatformContext.Provider value={platform}>
95
+ {children}
96
+ </PlatformContext.Provider>
97
+ );
82
98
  }
83
99
 
84
100
  export function usePlatform() {
85
- return useContext(PlatformContext)
101
+ return useContext(PlatformContext);
86
102
  }