@passui/react 0.1.45 → 0.1.46

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 (140) 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 +32 -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 +279 -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 +334 -0
  72. package/src/components/popover/popover-fit.ts +58 -53
  73. package/src/components/popover/popover-root.tsx +97 -0
  74. package/src/components/popover/popover-trigger.tsx +71 -0
  75. package/src/components/profile-image/profile-image.tsx +80 -64
  76. package/src/components/progress-view/progress-view.tsx +61 -59
  77. package/src/components/progress-view/use-liquid-progress.ts +38 -38
  78. package/src/components/radio-group/radio-group.tsx +71 -68
  79. package/src/components/search-field/expanding-search-field.tsx +191 -177
  80. package/src/components/search-field/search-field.tsx +59 -50
  81. package/src/components/search-list/search-list.tsx +246 -236
  82. package/src/components/section/section.tsx +58 -58
  83. package/src/components/secure-field/secure-field.tsx +3 -3
  84. package/src/components/segmented-control/segmented-control.tsx +136 -136
  85. package/src/components/sheet/modal-environment.ts +71 -64
  86. package/src/components/sheet/sheet-portal.tsx +58 -53
  87. package/src/components/sheet/sheet.tsx +146 -141
  88. package/src/components/sheet/use-sheet-focus.ts +97 -82
  89. package/src/components/sidebar/sidebar.tsx +78 -78
  90. package/src/components/skeleton/skeleton.tsx +30 -21
  91. package/src/components/slider/slider.tsx +113 -104
  92. package/src/components/slosh-slider/liquid-step.ts +32 -31
  93. package/src/components/slosh-slider/slosh-slider.tsx +265 -228
  94. package/src/components/stat-tile/index.ts +1 -1
  95. package/src/components/stat-tile/stat-tile.tsx +79 -68
  96. package/src/components/status-indicator/status-indicator.tsx +40 -37
  97. package/src/components/stepper/rolling-digit.tsx +82 -68
  98. package/src/components/stepper/stepper.tsx +122 -113
  99. package/src/components/swatch-picker/swatch-picker.tsx +120 -120
  100. package/src/components/tab-bar/tab-bar.tsx +149 -148
  101. package/src/components/tab-view/tab-view.tsx +140 -137
  102. package/src/components/table/table.tsx +117 -98
  103. package/src/components/text-editor/text-editor.tsx +34 -29
  104. package/src/components/text-field/text-field.tsx +182 -180
  105. package/src/components/toast/toast-store.ts +127 -115
  106. package/src/components/toast/toaster.tsx +361 -347
  107. package/src/components/toggle/toggle.tsx +297 -282
  108. package/src/components/tooltip/tooltip-host.tsx +157 -150
  109. package/src/components/view-controller/index.ts +1 -1
  110. package/src/components/view-controller/view-controller.tsx +64 -53
  111. package/src/components/wake-slider/wake-slider.tsx +220 -205
  112. package/src/hooks/scroll/minimize-decision.ts +11 -7
  113. package/src/hooks/use-anchored-disclosure.ts +19 -19
  114. package/src/hooks/use-anchored-placement.ts +29 -25
  115. package/src/hooks/use-dismiss.ts +33 -29
  116. package/src/hooks/use-floating-dismiss.ts +24 -22
  117. package/src/hooks/use-media-query.ts +67 -60
  118. package/src/hooks/use-minimize-on-scroll.ts +69 -60
  119. package/src/hooks/use-visual-viewport.ts +63 -63
  120. package/src/hooks/viewport/types.ts +16 -16
  121. package/src/hooks/viewport/viewport-metrics.ts +16 -10
  122. package/src/icons/icons.tsx +440 -328
  123. package/src/index.ts +91 -91
  124. package/src/lib/anchored-placement.ts +70 -65
  125. package/src/lib/class-names.ts +14 -13
  126. package/src/lib/clipboard.ts +8 -7
  127. package/src/lib/date.ts +61 -60
  128. package/src/lib/floating-layers.ts +39 -24
  129. package/src/lib/haptics.ts +10 -10
  130. package/src/lib/language.ts +9 -9
  131. package/src/lib/range-value.ts +27 -21
  132. package/src/lib/screen-edges.ts +33 -30
  133. package/src/lib/shapes.ts +38 -34
  134. package/src/machines/popover.machine.ts +51 -0
  135. package/src/motion/transitions.ts +46 -43
  136. package/src/styles/code-block.css +69 -43
  137. package/src/styles/motion-controls.css +393 -191
  138. package/src/tokens.ts +1 -1
  139. package/dist/types/src/components/popover/popover.d.ts +0 -21
  140. 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
  }