@oxyhq/bloom 1.0.2 → 1.0.4
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.
- package/docs/button.mdx +19 -17
- package/docs/design-tokens.mdx +12 -10
- package/docs/dropdown-menu.mdx +26 -3
- package/lib/commonjs/context-menu/ContextMenu.js +2 -0
- package/lib/commonjs/context-menu/ContextMenu.js.map +1 -1
- package/lib/commonjs/context-menu/ContextMenu.web.js +2 -0
- package/lib/commonjs/context-menu/ContextMenu.web.js.map +1 -1
- package/lib/commonjs/design-tokens/tokens.json +11040 -0
- package/lib/commonjs/dialog/SheetShell.js +6 -1
- package/lib/commonjs/dialog/SheetShell.js.map +1 -1
- package/lib/commonjs/dropdown-menu/DropdownMenu.js +7 -1
- package/lib/commonjs/dropdown-menu/DropdownMenu.js.map +1 -1
- package/lib/commonjs/dropdown-menu/DropdownMenu.web.js +2 -0
- package/lib/commonjs/dropdown-menu/DropdownMenu.web.js.map +1 -1
- package/lib/commonjs/floating/TriggerSlot.js +3 -1
- package/lib/commonjs/floating/TriggerSlot.js.map +1 -1
- package/lib/commonjs/floating/constants.js +4 -1
- package/lib/commonjs/floating/constants.js.map +1 -1
- package/lib/commonjs/floating/menu-rows.js +28 -22
- package/lib/commonjs/floating/menu-rows.js.map +1 -1
- package/lib/commonjs/floating/menu-sub-flyout.js +18 -5
- package/lib/commonjs/floating/menu-sub-flyout.js.map +1 -1
- package/lib/commonjs/floating/menu-sub-inline.js +5 -1
- package/lib/commonjs/floating/menu-sub-inline.js.map +1 -1
- package/lib/commonjs/floating/shared.js +2 -2
- package/lib/commonjs/floating/shared.js.map +1 -1
- package/lib/commonjs/popover/Popover.js +2 -0
- package/lib/commonjs/popover/Popover.js.map +1 -1
- package/lib/commonjs/popover/Popover.web.js +2 -0
- package/lib/commonjs/popover/Popover.web.js.map +1 -1
- package/lib/commonjs/theme/color-policy.js +1 -1
- package/lib/commonjs/theme/color-presets.js +331 -1
- package/lib/commonjs/theme/color-presets.js.map +1 -1
- package/lib/commonjs/theme/glass-colors.js +22 -19
- package/lib/commonjs/theme/glass-colors.js.map +1 -1
- package/lib/module/context-menu/ContextMenu.js +2 -0
- package/lib/module/context-menu/ContextMenu.js.map +1 -1
- package/lib/module/context-menu/ContextMenu.web.js +2 -0
- package/lib/module/context-menu/ContextMenu.web.js.map +1 -1
- package/lib/module/design-tokens/tokens.json +11040 -0
- package/lib/module/dialog/SheetShell.js +6 -1
- package/lib/module/dialog/SheetShell.js.map +1 -1
- package/lib/module/dropdown-menu/DropdownMenu.js +7 -1
- package/lib/module/dropdown-menu/DropdownMenu.js.map +1 -1
- package/lib/module/dropdown-menu/DropdownMenu.web.js +2 -0
- package/lib/module/dropdown-menu/DropdownMenu.web.js.map +1 -1
- package/lib/module/floating/TriggerSlot.js +5 -3
- package/lib/module/floating/TriggerSlot.js.map +1 -1
- package/lib/module/floating/constants.js +3 -0
- package/lib/module/floating/constants.js.map +1 -1
- package/lib/module/floating/menu-rows.js +29 -23
- package/lib/module/floating/menu-rows.js.map +1 -1
- package/lib/module/floating/menu-sub-flyout.js +18 -5
- package/lib/module/floating/menu-sub-flyout.js.map +1 -1
- package/lib/module/floating/menu-sub-inline.js +5 -1
- package/lib/module/floating/menu-sub-inline.js.map +1 -1
- package/lib/module/floating/shared.js +3 -3
- package/lib/module/floating/shared.js.map +1 -1
- package/lib/module/popover/Popover.js +2 -0
- package/lib/module/popover/Popover.js.map +1 -1
- package/lib/module/popover/Popover.web.js +2 -0
- package/lib/module/popover/Popover.web.js.map +1 -1
- package/lib/module/theme/color-policy.js +1 -1
- package/lib/module/theme/color-presets.js +331 -1
- package/lib/module/theme/color-presets.js.map +1 -1
- package/lib/module/theme/glass-colors.js +22 -19
- package/lib/module/theme/glass-colors.js.map +1 -1
- package/lib/typescript/commonjs/context-menu/ContextMenu.d.ts +1 -1
- package/lib/typescript/commonjs/context-menu/ContextMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/context-menu/ContextMenu.web.d.ts +1 -1
- package/lib/typescript/commonjs/context-menu/ContextMenu.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/context-menu/types.d.ts +2 -0
- package/lib/typescript/commonjs/context-menu/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/SheetShell.d.ts +4 -1
- package/lib/typescript/commonjs/dialog/SheetShell.d.ts.map +1 -1
- package/lib/typescript/commonjs/dropdown-menu/DropdownMenu.d.ts +2 -2
- package/lib/typescript/commonjs/dropdown-menu/DropdownMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/dropdown-menu/DropdownMenu.web.d.ts +1 -1
- package/lib/typescript/commonjs/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/TriggerSlot.d.ts +3 -1
- package/lib/typescript/commonjs/floating/TriggerSlot.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/constants.d.ts +2 -0
- package/lib/typescript/commonjs/floating/constants.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/menu-rows.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/menu-sub-flyout.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/menu-sub-inline.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/shared.d.ts +2 -2
- package/lib/typescript/commonjs/floating/shared.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/types.d.ts +29 -3
- package/lib/typescript/commonjs/floating/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/popover/Popover.d.ts +1 -1
- package/lib/typescript/commonjs/popover/Popover.d.ts.map +1 -1
- package/lib/typescript/commonjs/popover/Popover.web.d.ts +1 -1
- package/lib/typescript/commonjs/popover/Popover.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-presets.d.ts +331 -1
- package/lib/typescript/commonjs/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/glass-colors.d.ts +22 -19
- package/lib/typescript/commonjs/theme/glass-colors.d.ts.map +1 -1
- package/lib/typescript/module/context-menu/ContextMenu.d.ts +1 -1
- package/lib/typescript/module/context-menu/ContextMenu.d.ts.map +1 -1
- package/lib/typescript/module/context-menu/ContextMenu.web.d.ts +1 -1
- package/lib/typescript/module/context-menu/ContextMenu.web.d.ts.map +1 -1
- package/lib/typescript/module/context-menu/types.d.ts +2 -0
- package/lib/typescript/module/context-menu/types.d.ts.map +1 -1
- package/lib/typescript/module/dialog/SheetShell.d.ts +4 -1
- package/lib/typescript/module/dialog/SheetShell.d.ts.map +1 -1
- package/lib/typescript/module/dropdown-menu/DropdownMenu.d.ts +2 -2
- package/lib/typescript/module/dropdown-menu/DropdownMenu.d.ts.map +1 -1
- package/lib/typescript/module/dropdown-menu/DropdownMenu.web.d.ts +1 -1
- package/lib/typescript/module/dropdown-menu/DropdownMenu.web.d.ts.map +1 -1
- package/lib/typescript/module/floating/TriggerSlot.d.ts +3 -1
- package/lib/typescript/module/floating/TriggerSlot.d.ts.map +1 -1
- package/lib/typescript/module/floating/constants.d.ts +2 -0
- package/lib/typescript/module/floating/constants.d.ts.map +1 -1
- package/lib/typescript/module/floating/menu-rows.d.ts.map +1 -1
- package/lib/typescript/module/floating/menu-sub-flyout.d.ts.map +1 -1
- package/lib/typescript/module/floating/menu-sub-inline.d.ts.map +1 -1
- package/lib/typescript/module/floating/shared.d.ts +2 -2
- package/lib/typescript/module/floating/shared.d.ts.map +1 -1
- package/lib/typescript/module/floating/types.d.ts +29 -3
- package/lib/typescript/module/floating/types.d.ts.map +1 -1
- package/lib/typescript/module/popover/Popover.d.ts +1 -1
- package/lib/typescript/module/popover/Popover.d.ts.map +1 -1
- package/lib/typescript/module/popover/Popover.web.d.ts +1 -1
- package/lib/typescript/module/popover/Popover.web.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-presets.d.ts +331 -1
- package/lib/typescript/module/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/module/theme/glass-colors.d.ts +22 -19
- package/lib/typescript/module/theme/glass-colors.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/context-menu/ContextMenu.tsx +2 -0
- package/src/context-menu/ContextMenu.web.tsx +2 -0
- package/src/context-menu/types.ts +2 -0
- package/src/design-tokens/tokens.json +11040 -0
- package/src/dialog/SheetShell.tsx +10 -2
- package/src/dropdown-menu/DropdownMenu.tsx +11 -1
- package/src/dropdown-menu/DropdownMenu.web.tsx +2 -0
- package/src/floating/TriggerSlot.tsx +7 -3
- package/src/floating/constants.ts +3 -1
- package/src/floating/menu-rows.tsx +36 -25
- package/src/floating/menu-sub-flyout.tsx +22 -5
- package/src/floating/menu-sub-inline.tsx +12 -2
- package/src/floating/shared.tsx +11 -4
- package/src/floating/types.ts +29 -3
- package/src/popover/Popover.tsx +2 -0
- package/src/popover/Popover.web.tsx +2 -0
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +3600 -0
- package/src/theme/color-policy.ts +1 -1
- package/src/theme/color-presets.ts +361 -1
- package/src/theme/glass-colors.ts +22 -19
package/docs/button.mdx
CHANGED
|
@@ -35,13 +35,13 @@ import { Button } from '@oxyhq/bloom';
|
|
|
35
35
|
|
|
36
36
|
The glass is the sheen, not the wash. What reads as glass is the rim, the vertical gradient and the hairline; the 15% of the backdrop that shows through is a hint of depth, not the effect itself.
|
|
37
37
|
|
|
38
|
-
**One measured cost, stated because it is real.** The 15% bleed moves the pane toward the surface under it, which in light mode means lighter — the one direction a white label cannot afford. Of `primary`'s
|
|
38
|
+
**One measured cost, stated because it is real.** The 15% bleed moves the pane toward the surface under it, which in light mode means lighter — the one direction a white label cannot afford. Of `primary`'s 640 preset × mode × surface combinations, **73 fall below WCAG AA**, in the band 4.17–4.50, all in light mode, on `acid-canopy`, `arctic-signal`, `blue`, `bronze-neon`, `clay-current`, `copper-field`, `electric-tide`, `faircoin`, `green`, `lagoon`, `lavender`, `malachite-rush`, `midnight-citrus`, `mint`, `olive`, `orange`, `pacific-flare`, `pine`, `plum`, `pumpkin`, `reef-pulse`, `rose`, `saffron-depth`, `sky`, `solar-flux`, `viridian-orbit` and `yellow`. Both solid Button fills pass all 1,280 rows; glass `destructive` is also unaffected (0/640, worst 5.32). The alpha at which the failures reach zero remains 0.89.
|
|
39
39
|
|
|
40
|
-
The
|
|
40
|
+
The 1.0.1 catalog remains exactly 38/340, including the original 18-preset oracle at 30/180. The 30 new three-seed combinations contribute 35/300 and do not lower the existing 4.17 floor. These cohorts are asserted independently, so an unchanged total cannot hide a regression moving from one into the other.
|
|
41
41
|
|
|
42
|
-
If your app runs one of those
|
|
42
|
+
If your app runs one of those 27 presets in light mode and needs AA on its primary button, use `variant="inverse"` for that call site, or raise `GLASS_FILL_ALPHA`.
|
|
43
43
|
|
|
44
|
-
Over a retained black/mid-grey/white media sample, **
|
|
44
|
+
Over a retained black/mid-grey/white media sample, **50 of 384** preset × mode × backdrop rows fall below AA, worst 3.61 (`destructive`: 0). The 1.0.1 catalog remains 25/204; the additions contribute 25/180, worst 4.17. That is a sample rather than a promise about arbitrary pixels. If a CTA must be legible over an image, `variant="inverse"` is opaque and backdrop-independent:
|
|
45
45
|
|
|
46
46
|
```tsx
|
|
47
47
|
<Button variant="inverse">Comprar</Button>
|
|
@@ -83,23 +83,25 @@ bun run storybook # the DEV server; the script reads the theme through
|
|
|
83
83
|
node scripts/measure-glass-alpha.mjs --url http://localhost:6006 --image docs/glass-alpha-sweep.png
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-

|
|
87
87
|
|
|
88
88
|
Measured in Chrome off painted pixels, with the label removed from the measurement clones so a white glyph cannot be mistaken for backdrop:
|
|
89
89
|
|
|
90
90
|
| alpha | backdrop response | blur delta over a photo (max/mean) | blur delta on a flat page | `primary` rows < AA | `destructive` rows < AA |
|
|
91
91
|
| --- | --- | --- | --- | --- | --- |
|
|
92
|
-
| 0.
|
|
93
|
-
| 0.
|
|
94
|
-
| 0.
|
|
95
|
-
| 0.
|
|
96
|
-
|
|
|
97
|
-
| 0.
|
|
98
|
-
| 0.
|
|
99
|
-
| 0.
|
|
100
|
-
| 0.
|
|
101
|
-
| 0.
|
|
102
|
-
| 0.
|
|
92
|
+
| 0.91 | 23.0 | 11 / 2.9 | 1 | 0 / 640 | 0 / 640 |
|
|
93
|
+
| 0.90 | 25.0 | 12 / 3.1 | 1 | 0 / 640 | 0 / 640 |
|
|
94
|
+
| 0.89 | 28.0 | 13 / 3.5 | 1 | 0 / 640 | 0 / 640 |
|
|
95
|
+
| 0.88 | 31.0 | 15 / 3.8 | 1 | 8 / 640 | 0 / 640 |
|
|
96
|
+
| 0.87 | 33.0 | 16 / 4.0 | 1 | 26 / 640 | 0 / 640 |
|
|
97
|
+
| 0.86 | 36.0 | 17 / 4.4 | 1 | 49 / 640 | 0 / 640 |
|
|
98
|
+
| **0.85** (shipped) | 38.0 | 18 / 4.7 | 1 | 73 / 640 | 0 / 640 |
|
|
99
|
+
| 0.75 | 63.7 | 31 / 7.8 | 1 | 431 / 640 | 128 / 640 |
|
|
100
|
+
| 0.65 | 88.7 | 43 / 10.9 | 1 | 492 / 640 | 640 / 640 |
|
|
101
|
+
| 0.55 | 114.7 | 55 / 14.2 | 1 | 531 / 640 | 640 / 640 |
|
|
102
|
+
| 0.45 | 139.3 | 67 / 17.4 | 0 | 580 / 640 | 640 / 640 |
|
|
103
|
+
| 0.35 | 165.3 | 79 / 20.6 | 1 | 635 / 640 | 640 / 640 |
|
|
104
|
+
| 0.25 | 190.3 | 91 / 23.8 | 1 | 635 / 640 | 640 / 640 |
|
|
103
105
|
|
|
104
106
|
Everything is out of 255. Backdrop response is how far the painted pane moves between a white and a black backdrop — linear in `1 - alpha`, at 25.4 ± 0.7 per 0.10 of alpha. Blur delta is how much the picture changes when the blur is switched off, which is the honest form of "can you see the blur".
|
|
105
107
|
|
|
@@ -107,7 +109,7 @@ Three things the table settles:
|
|
|
107
109
|
|
|
108
110
|
- **On a flat page the blur is worth ~1/255 at every alpha, including 0.25.** There is nothing behind the pane to blur, so lowering the alpha does not make a flat page glassy — it only makes the button paler. That is the whole of the "it doesn't look glassy" complaint, and no alpha fixes it.
|
|
109
111
|
- **Over a photograph the blur is already visible at 0.85** (18/255 peak). Where there is something to see, the shipped material is doing the thing.
|
|
110
|
-
- **Legibility falls off a cliff immediately below 0.85.** One step down takes `primary` from
|
|
112
|
+
- **Legibility falls off a cliff immediately below 0.85.** One step down takes `primary` from 73 to 431 failures and `destructive` from 0 to 128; two steps down puts every one of `destructive`'s 640 rows under AA.
|
|
111
113
|
|
|
112
114
|
So there is no single alpha that both matches the reference and reads as glass on a flat surface. That is a property of the material — a blur needs a backdrop — not a constant nobody has tuned yet. To make a specific surface read as glass, put something behind it.
|
|
113
115
|
|
package/docs/design-tokens.mdx
CHANGED
|
@@ -18,7 +18,7 @@ working.
|
|
|
18
18
|
|
|
19
19
|
## Preset recipes and runtime colour
|
|
20
20
|
|
|
21
|
-
Bloom ships **
|
|
21
|
+
Bloom ships **64 named recipes**, authored once in the type-checked
|
|
22
22
|
`COLOR_PRESET_REGISTRY`. A recipe is not a frozen light/dark token table: it is
|
|
23
23
|
an identity seed, a scheme variant and optionally explicit secondary/tertiary
|
|
24
24
|
seeds. `BloomThemeProvider`, `getResolvedTokens()` and `BloomColorScope` run
|
|
@@ -43,14 +43,16 @@ COLOR_PRESET_FAMILY_REGISTRY[0].displayName; // stable family copy and order
|
|
|
43
43
|
COLOR_PRESET_GROUPS.ocean.presets; // ordered recipes for a picker
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
The
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
The 46 `pairing: 'curated'` recipes pin an intentional action seed. The first 16
|
|
47
|
+
pin `tertiaryHex`; the newest 30 are complete three-seed combinations and pin
|
|
48
|
+
both `secondaryHex` support and `tertiaryHex` action. Identity remains
|
|
49
|
+
`--primary`, support resolves through `--secondary`, and the standout action is
|
|
50
|
+
`--tertiary`, which is the role used by FABs and compose actions. The other 18
|
|
51
|
+
recipes derive both accent families dynamically. Every recipe exposes
|
|
52
|
+
`displayName`, `description`, `family`, `pairing` and `featured` metadata, so
|
|
53
|
+
consumer pickers do not need a second name/category map. Historical
|
|
54
|
+
`APP_COLOR_PRESETS`, name arrays, hex lookup and access-gate arrays are derived
|
|
55
|
+
from this registry and retain their existing public shapes.
|
|
54
56
|
|
|
55
57
|
For visual review, run Storybook and open **Theme / Color System Playground**
|
|
56
58
|
(`src/theme/ColorSystemLab.stories.tsx`). It keeps signed-in and public Mention
|
|
@@ -214,7 +216,7 @@ track, a selected `Item`, the solid `TabBar`, a plain `Card` on a panel, the
|
|
|
214
216
|
Those tones are owned by `SURFACE_RAMP` in `theme/color-policy.ts` rather than
|
|
215
217
|
taken from Material 3's container roles. M3's ramp steps by 2 tones, which at
|
|
216
218
|
these lightnesses is about **1.2 ΔE00** — below the just-noticeable difference for
|
|
217
|
-
two large flat patches. Measured across all
|
|
219
|
+
two large flat patches. Measured across all 64 presets, **4 tones (~2.4 ΔE00)** is
|
|
218
220
|
the first spacing at which every pair separates.
|
|
219
221
|
|
|
220
222
|
`--background` is deliberately not part of the ramp: the page tone is every
|
package/docs/dropdown-menu.mdx
CHANGED
|
@@ -63,6 +63,8 @@ Handlers the child already carries are composed, not replaced — `track()` runs
|
|
|
63
63
|
|
|
64
64
|
`disabled` on the trigger is guarded the same way, at the composition layer rather than on the child alone — pass `disabled` to `DropdownMenuTrigger`, not to your own child element, or the open handler still fires.
|
|
65
65
|
|
|
66
|
+
`className` and `style` land on the trigger's anchor wrapper, the node the parent lays out and the web surface measures. With `asChild`, keep the button's visual chrome on the child and use the trigger props for anchor geometry.
|
|
67
|
+
|
|
66
68
|
## Controlled
|
|
67
69
|
|
|
68
70
|
```tsx
|
|
@@ -78,18 +80,32 @@ Uncontrolled by default; pass `open` to take over. `onOpenChange` fires either w
|
|
|
78
80
|
## Checkbox and radio rows
|
|
79
81
|
|
|
80
82
|
```tsx
|
|
83
|
+
import { Check_Stroke2_Corner0_Rounded as CheckIcon } from '@oxyhq/bloom/icons';
|
|
84
|
+
|
|
81
85
|
<DropdownMenuCheckboxItem checked={dense} onCheckedChange={setDense} keepOpen>
|
|
82
86
|
Dense rows
|
|
83
87
|
</DropdownMenuCheckboxItem>
|
|
84
88
|
|
|
85
89
|
<DropdownMenuRadioGroup value={sort} onValueChange={setSort}>
|
|
86
|
-
<DropdownMenuRadioItem
|
|
87
|
-
|
|
90
|
+
<DropdownMenuRadioItem
|
|
91
|
+
value="newest"
|
|
92
|
+
indicator={<CheckIcon size="sm" />}
|
|
93
|
+
indicatorPosition="trailing">
|
|
94
|
+
Newest
|
|
95
|
+
</DropdownMenuRadioItem>
|
|
96
|
+
<DropdownMenuRadioItem
|
|
97
|
+
value="oldest"
|
|
98
|
+
indicator={<CheckIcon size="sm" />}
|
|
99
|
+
indicatorPosition="trailing">
|
|
100
|
+
Oldest
|
|
101
|
+
</DropdownMenuRadioItem>
|
|
88
102
|
</DropdownMenuRadioGroup>
|
|
89
103
|
```
|
|
90
104
|
|
|
91
105
|
Both announce their state as `aria-checked`, which is the spelling react-native-web reads and React Native folds back into `accessibilityState` — so it reaches assistive tech on both platforms.
|
|
92
106
|
|
|
107
|
+
The established defaults stay unchanged: checkbox rows use a check and radio rows use a dot, both in the leading gutter. `indicator` replaces that selected mark, `indicatorPosition="trailing"` moves its reserved gutter to the opposite edge, and `indicator={null}` suppresses the visual mark without removing `aria-checked`. These props are implemented once by the shared row factory, so `ContextMenu` and `Menubar` receive the identical contract.
|
|
108
|
+
|
|
93
109
|
## Sub-menus: a flyout on web, an inline disclosure on native
|
|
94
110
|
|
|
95
111
|
The API is one thing on both platforms — a shadcn call site ports across unchanged — and the presentation is the platform's own, matching what each platform's upstream does.
|
|
@@ -97,7 +113,12 @@ The API is one thing on both platforms — a shadcn call site ports across uncha
|
|
|
97
113
|
```tsx
|
|
98
114
|
<DropdownMenuSub>
|
|
99
115
|
<DropdownMenuSubTrigger>Send to…</DropdownMenuSubTrigger>
|
|
100
|
-
<DropdownMenuSubContent
|
|
116
|
+
<DropdownMenuSubContent
|
|
117
|
+
side="right"
|
|
118
|
+
align="start"
|
|
119
|
+
sideOffset={2}
|
|
120
|
+
className="w-[150px]"
|
|
121
|
+
testID="effort-menu">
|
|
101
122
|
<DropdownMenuItem>Email</DropdownMenuItem>
|
|
102
123
|
<DropdownMenuItem>Messages</DropdownMenuItem>
|
|
103
124
|
</DropdownMenuSubContent>
|
|
@@ -115,6 +136,8 @@ The API is one thing on both platforms — a shadcn call site ports across uncha
|
|
|
115
136
|
|
|
116
137
|
**On native** it is an inline disclosure: the trigger expands its content in place, under the row, and the chevron swaps between down and up. react-native-reusables renders it the same way there, and a menu on native is a bottom sheet — there is nowhere for a flyout to fly to.
|
|
117
138
|
|
|
139
|
+
`DropdownMenuSubContent` accepts `side="left" | "right"`, `align`, `sideOffset`, `alignOffset`, `minWidth`, `maxWidth`, `className`, `style`, `label` and `testID`. Web applies the geometry to the flyout and still fit-flip-clamps it; native keeps the same API, forwards identity and styling to the inline disclosure, and ignores flyout-only placement.
|
|
140
|
+
|
|
118
141
|
The split is a build-time one, not a `Platform.OS` branch: `floating/menu-sub-flyout.tsx` and `floating/menu-sub-inline.tsx` are passed to `createMenuRows` by each family's own platform fork, so the web-only `FloatingPanel` never reaches a native bundle.
|
|
119
142
|
|
|
120
143
|
Verified in a real browser by `scripts/verify-submenu-flyout.mjs` — jest can see none of it.
|
|
@@ -57,12 +57,14 @@ function ContextMenuTrigger({
|
|
|
57
57
|
asChild,
|
|
58
58
|
disabled,
|
|
59
59
|
label,
|
|
60
|
+
className,
|
|
60
61
|
style,
|
|
61
62
|
testID
|
|
62
63
|
}) {
|
|
63
64
|
const menu = (0, _context2.useContextMenu)();
|
|
64
65
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TriggerSlot.TriggerSlot, {
|
|
65
66
|
asChild: asChild,
|
|
67
|
+
className: className,
|
|
66
68
|
style: style,
|
|
67
69
|
testID: testID,
|
|
68
70
|
handle: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_SheetShell","_constants","_context","_menuRows","_menuSubInline","_TriggerSlot","_useSheetOpenBridge","_context2","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ContextMenu","children","onOpenChange","open","setOpen","useState","value","useMemo","openAt","close","anchor","jsx","ContextMenuProvider","ContextMenuTrigger","asChild","disabled","label","style","testID","menu","useContextMenu","TriggerSlot","handle","onPress","onLongPress","accessibilityLabel","accessibilityRole","MENU_TRIGGER_POPUP","ContextMenuContent","useCallback","next","control","onSheetClose","useSheetOpenBridge","surface","presentation","SheetShell","onClose","contentStyle","MenuSurfaceProvider","rows","createMenuRows","createInlineMenuSub","ContextMenuItem","exports","Item","ContextMenuCheckboxItem","CheckboxItem","ContextMenuRadioGroup","RadioGroup","ContextMenuRadioItem","RadioItem","ContextMenuLabel","Label","ContextMenuSeparator","Separator","ContextMenuShortcut","Shortcut","ContextMenuGroup","Group","ContextMenuSub","Sub","ContextMenuSubTrigger","SubTrigger","ContextMenuSubContent","SubContent"],"sourceRoot":"../../../src","sources":["context-menu/ContextMenu.tsx"],"mappings":";;;;;;;;;;AASA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AAAgE,IAAAS,WAAA,GAAAT,OAAA;AAAA,SAAAD,wBAAAW,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAb,uBAAA,YAAAA,CAAAW,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAlBhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBO,SAASkB,WAAWA,CAAC;EAAEC,QAAQ;EAAEC;AAA+B,CAAC,EAAE;EACxE,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAEvC,MAAMC,KAAK,GAAG,IAAAC,cAAO,EACnB,OAAO;IACLJ,IAAI;IACJ;IACAK,MAAM,EAAEA,CAAA,KAAM;MACZJ,OAAO,CAAC,IAAI,CAAC;MACbF,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IACDO,KAAK,EAAEA,CAAA,KAAM;MACXL,OAAO,CAAC,KAAK,CAAC;MACdF,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IACDQ,MAAM,EAAE;EACV,CAAC,CAAC,EACF,CAACP,IAAI,EAAED,YAAY,CACrB,CAAC;EAED,oBAAO,IAAAtB,WAAA,CAAA+B,GAAA,EAAChC,SAAA,CAAAiC,mBAAmB;IAACN,KAAK,EAAEA,KAAM;IAAAL,QAAA,EAAEA;EAAQ,CAAsB,CAAC;AAC5E;AAEO,SAASY,kBAAkBA,CAAC;EACjCZ,QAAQ;EACRa,OAAO;EACPC,QAAQ;EACRC,KAAK;EACLC,KAAK;EACLC;AACuB,CAAC,EAAE;EAC1B,MAAMC,IAAI,GAAG,IAAAC,wBAAc,EAAC,CAAC;EAE7B,oBACE,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_SheetShell","_constants","_context","_menuRows","_menuSubInline","_TriggerSlot","_useSheetOpenBridge","_context2","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ContextMenu","children","onOpenChange","open","setOpen","useState","value","useMemo","openAt","close","anchor","jsx","ContextMenuProvider","ContextMenuTrigger","asChild","disabled","label","className","style","testID","menu","useContextMenu","TriggerSlot","handle","onPress","onLongPress","accessibilityLabel","accessibilityRole","MENU_TRIGGER_POPUP","ContextMenuContent","useCallback","next","control","onSheetClose","useSheetOpenBridge","surface","presentation","SheetShell","onClose","contentStyle","MenuSurfaceProvider","rows","createMenuRows","createInlineMenuSub","ContextMenuItem","exports","Item","ContextMenuCheckboxItem","CheckboxItem","ContextMenuRadioGroup","RadioGroup","ContextMenuRadioItem","RadioItem","ContextMenuLabel","Label","ContextMenuSeparator","Separator","ContextMenuShortcut","Shortcut","ContextMenuGroup","Group","ContextMenuSub","Sub","ContextMenuSubTrigger","SubTrigger","ContextMenuSubContent","SubContent"],"sourceRoot":"../../../src","sources":["context-menu/ContextMenu.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -57,6 +57,7 @@ function ContextMenuTrigger({
|
|
|
57
57
|
asChild,
|
|
58
58
|
disabled,
|
|
59
59
|
label,
|
|
60
|
+
className,
|
|
60
61
|
style,
|
|
61
62
|
testID
|
|
62
63
|
}) {
|
|
@@ -90,6 +91,7 @@ function ContextMenuTrigger({
|
|
|
90
91
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TriggerSlot.TriggerSlot, {
|
|
91
92
|
asChild: asChild,
|
|
92
93
|
anchorRef: wrapperRef,
|
|
94
|
+
className: className,
|
|
93
95
|
style: style,
|
|
94
96
|
testID: testID,
|
|
95
97
|
handle: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_constants","_context","_FloatingPanel","_menuRows","_menuSubFlyout","_shared","_TriggerSlot","_context2","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ContextMenu","children","onOpenChange","anchor","setAnchor","useState","value","useMemo","open","openAt","next","close","jsx","ContextMenuProvider","ContextMenuTrigger","asChild","disabled","label","style","testID","menu","useContextMenu","wrapperRef","useRef","useEffect","element","current","addEventListener","onContextMenu","event","preventDefault","top","clientY","bottom","left","clientX","right","removeEventListener","TriggerSlot","anchorRef","handle","onPress","accessibilityLabel","accessibilityRole","MENU_TRIGGER_POPUP","ContextMenuContent","side","align","sideOffset","alignOffset","dismissible","minWidth","maxWidth","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_constants","_context","_FloatingPanel","_menuRows","_menuSubFlyout","_shared","_TriggerSlot","_context2","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ContextMenu","children","onOpenChange","anchor","setAnchor","useState","value","useMemo","open","openAt","next","close","jsx","ContextMenuProvider","ContextMenuTrigger","asChild","disabled","label","className","style","testID","menu","useContextMenu","wrapperRef","useRef","useEffect","element","current","addEventListener","onContextMenu","event","preventDefault","top","clientY","bottom","left","clientX","right","removeEventListener","TriggerSlot","anchorRef","handle","onPress","accessibilityLabel","accessibilityRole","MENU_TRIGGER_POPUP","ContextMenuContent","side","align","sideOffset","alignOffset","dismissible","minWidth","maxWidth","surface","presentation","onDismiss","useCallback","FloatingPanel","role","cx","MENU_MIN_WIDTH_CLASS","MenuSurfaceProvider","rows","createMenuRows","createFlyoutMenuSub","ContextMenuItem","exports","Item","ContextMenuCheckboxItem","CheckboxItem","ContextMenuRadioGroup","RadioGroup","ContextMenuRadioItem","RadioItem","ContextMenuLabel","Label","ContextMenuSeparator","Separator","ContextMenuShortcut","Shortcut","ContextMenuGroup","Group","ContextMenuSub","Sub","ContextMenuSubTrigger","SubTrigger","ContextMenuSubContent","SubContent"],"sourceRoot":"../../../src","sources":["context-menu/ContextMenu.web.tsx"],"mappings":"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","ignoreList":[]}
|