@drjoshcsimmons/scl 0.1.2 → 0.1.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.
Files changed (100) hide show
  1. package/README.md +202 -13
  2. package/dist/index100.js +13 -217
  3. package/dist/index101.js +8 -649
  4. package/dist/index102.js +48 -179
  5. package/dist/index103.js +218 -3
  6. package/dist/index106.js +21 -12
  7. package/dist/index107.js +3 -15
  8. package/dist/index108.js +32 -3
  9. package/dist/index109.js +12 -32
  10. package/dist/index11.js +1 -1
  11. package/dist/index110.js +12 -18
  12. package/dist/index115.js +1 -1
  13. package/dist/index116.js +1 -1
  14. package/dist/index117.js +2 -25
  15. package/dist/index118.js +2 -29
  16. package/dist/index119.js +25 -5
  17. package/dist/index12.js +1 -1
  18. package/dist/index120.js +29 -2
  19. package/dist/index121.js +5 -2
  20. package/dist/index125.js +1 -1
  21. package/dist/index126.js +1 -1
  22. package/dist/index13.js +2 -2
  23. package/dist/index130.js +1 -1
  24. package/dist/index14.js +2 -2
  25. package/dist/index15.js +2 -2
  26. package/dist/index17.js +4 -4
  27. package/dist/index18.js +2 -2
  28. package/dist/index20.js +2 -2
  29. package/dist/index21.js +1 -1
  30. package/dist/index22.js +1 -1
  31. package/dist/index23.js +1 -1
  32. package/dist/index25.js +3 -3
  33. package/dist/index26.js +1 -1
  34. package/dist/index27.js +3 -3
  35. package/dist/index29.js +1 -1
  36. package/dist/index31.js +1 -1
  37. package/dist/index33.js +1 -1
  38. package/dist/index36.js +2 -2
  39. package/dist/index37.js +1 -1
  40. package/dist/index45.js +8 -8
  41. package/dist/index46.js +1 -1
  42. package/dist/index47.js +435 -33
  43. package/dist/index48.js +141 -98
  44. package/dist/index49.js +302 -65
  45. package/dist/index5.js +1 -1
  46. package/dist/index50.js +12 -310
  47. package/dist/index51.js +33 -12
  48. package/dist/index52.js +104 -246
  49. package/dist/index53.js +73 -12
  50. package/dist/index54.js +12 -60
  51. package/dist/index55.js +9 -254
  52. package/dist/index56.js +7 -7
  53. package/dist/index57.js +60 -9
  54. package/dist/index58.js +210 -110
  55. package/dist/index59.js +4 -5
  56. package/dist/index6.js +1 -1
  57. package/dist/index60.js +11 -18
  58. package/dist/index61.js +110 -210
  59. package/dist/index62.js +260 -11
  60. package/dist/index63.js +5 -4
  61. package/dist/index64.js +71 -230
  62. package/dist/index65.js +9 -9
  63. package/dist/index66.js +8 -8
  64. package/dist/index67.js +21 -160
  65. package/dist/index68.js +835 -105
  66. package/dist/index69.js +9 -336
  67. package/dist/index7.js +1 -1
  68. package/dist/index70.js +248 -76
  69. package/dist/index71.js +30 -434
  70. package/dist/index72.js +332 -18
  71. package/dist/index73.js +204 -823
  72. package/dist/index74.js +18 -9
  73. package/dist/index75.js +130 -31
  74. package/dist/index76.js +66 -5
  75. package/dist/index77.js +42 -64
  76. package/dist/index78.js +24 -49
  77. package/dist/index79.js +7 -4
  78. package/dist/index8.js +1 -1
  79. package/dist/index80.js +49 -24
  80. package/dist/index81.js +1 -1
  81. package/dist/index82.js +10 -68
  82. package/dist/index83.js +7 -10
  83. package/dist/index84.js +3 -54
  84. package/dist/index85.js +5 -10
  85. package/dist/index86.js +25 -30
  86. package/dist/index87.js +178 -10
  87. package/dist/index88.js +66 -43
  88. package/dist/index89.js +14 -7
  89. package/dist/index9.js +2 -2
  90. package/dist/index90.js +30 -15
  91. package/dist/index91.js +48 -118
  92. package/dist/index92.js +10 -134
  93. package/dist/index93.js +4 -14
  94. package/dist/index94.js +11 -13
  95. package/dist/index95.js +54 -9
  96. package/dist/index96.js +648 -48
  97. package/dist/index97.js +120 -49
  98. package/dist/index98.js +134 -5
  99. package/dist/index99.js +14 -25
  100. package/package.json +1 -1
package/README.md CHANGED
@@ -1,17 +1,74 @@
1
+ ```
2
+ ____ ____ _
3
+ / ___| / ___|| |
4
+ \___ \| | | |
5
+ ___) | |___ | |___
6
+ |____/ \____||_____|
7
+
8
+ SIMSIES COMPONENT LIBRARY
9
+ "because copy-pasting is for normies"
10
+ ```
11
+
1
12
  # SCL - Simsies Component Library
2
13
 
14
+ [![Storybook](https://img.shields.io/badge/Storybook-ff4785?logo=storybook&logoColor=white)](https://jcpsimmons.github.io/scl/)
15
+ [![npm](https://img.shields.io/npm/v/@drjoshcsimmons/scl)](https://www.npmjs.com/package/@drjoshcsimmons/scl)
16
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
17
+
3
18
  A BASED React component library that doesn't suck. Built on [shadcn/ui](https://ui.shadcn.com/), Radix primitives, and Tailwind CSS because I'm not a masochist who writes CSS from scratch anymore.
4
19
 
5
- [![Storybook](https://img.shields.io/badge/Storybook-ff4785?logo=storybook&logoColor=white)](https://jcpsimmons.github.io/scl/)
20
+ ```
21
+ ╔══════════════════════════════════════════════════════════════╗
22
+ ║ ║
23
+ ║ > npm install @drjoshcsimmons/scl ║
24
+ ║ ║
25
+ ║ [████████████████████████████████████████] 100% ║
26
+ ║ ║
27
+ ║ ✓ installed 1 package ║
28
+ ║ ✓ your code now has TASTE ║
29
+ ║ ✓ maidens acquired ║
30
+ ║ ║
31
+ ╚══════════════════════════════════════════════════════════════╝
32
+ ```
6
33
 
7
34
  ## What the hell is this?
8
35
 
9
- It's my personal component library. I got tired of copy-pasting the same damn components between projects, so I made this. Now I just `npm install` and get on with my life.
36
+ It's my personal component library. I got tired of copy-pasting the same damn components between projects, so I made this. Now I just `npm install` and get on with my life like a functional adult.
37
+
38
+ ```
39
+ ┌─────────────────────┐
40
+ │ VIRGIN DEVS: │
41
+ │ "Let me just │
42
+ │ copy this file │
43
+ │ real quick..." │
44
+ └─────────┬───────────┘
45
+
46
+
47
+ ┌─────────────────────┐
48
+ │ *3 hours later* │
49
+ │ "Why doesn't this │
50
+ │ work anymore" │
51
+ └─────────────────────┘
52
+
53
+ vs.
54
+
55
+ ┌─────────────────────┐
56
+ │ CHAD SCL USERS: │
57
+ │ npm install │
58
+ │ *ships product* │
59
+ │ *goes outside* │
60
+ └─────────────────────┘
61
+ ```
10
62
 
11
63
  ## Installation
12
64
 
13
65
  ```bash
14
66
  npm install @drjoshcsimmons/scl
67
+ # or
68
+ pnpm add @drjoshcsimmons/scl
69
+ # or
70
+ yarn add @drjoshcsimmons/scl
71
+ # (we don't discriminate against package managers here)
15
72
  ```
16
73
 
17
74
  ## Usage
@@ -32,17 +89,36 @@ function App() {
32
89
 
33
90
  ## Components
34
91
 
35
- All the boring-but-necessary UI shit:
36
-
37
- **Layout** - Accordion, Card, Collapsible, Scroll Area, Separator, Sheet, Tabs
38
-
39
- **Forms** - Button, Checkbox, Input, Label, Radio Group, Select, Slider, Switch, Textarea, Toggle
40
-
41
- **Data Display** - Avatar, Badge, Progress, Skeleton, Table, Tooltip
42
-
43
- **Feedback** - Alert, Alert Dialog, Dialog, Popover, Dropdown Menu
44
-
45
- **Weird Custom Shit** - Dithered Image, Statusline, Terminal Textarea
92
+ ```
93
+ ┌────────────────────────────────────────────────────────────────┐
94
+ │ COMPONENT ARSENAL │
95
+ ├────────────────────────────────────────────────────────────────┤
96
+ │ │
97
+ │ ┌─ LAYOUT ─────────────────────────────────────────────────┐ │
98
+ │ │ Accordion Card Collapsible Scroll Area │ │
99
+ │ │ Separator • Sheet • Tabs • Resizable │ │
100
+ │ └──────────────────────────────────────────────────────────┘ │
101
+ │ │
102
+ │ ┌─ FORMS ──────────────────────────────────────────────────┐ │
103
+ │ │ Button • Checkbox • Input • Label • Radio Group │ │
104
+ │ │ Select • Slider • Switch • Textarea • Toggle │ │
105
+ │ └──────────────────────────────────────────────────────────┘ │
106
+ │ │
107
+ │ ┌─ DATA DISPLAY ───────────────────────────────────────────┐ │
108
+ │ │ Avatar • Badge • Progress • Skeleton • Table • Tooltip │ │
109
+ │ └──────────────────────────────────────────────────────────┘ │
110
+ │ │
111
+ │ ┌─ FEEDBACK ───────────────────────────────────────────────┐ │
112
+ │ │ Alert • Alert Dialog • Dialog • Popover • Dropdown Menu │ │
113
+ │ └──────────────────────────────────────────────────────────┘ │
114
+ │ │
115
+ │ ┌─ WEIRD CUSTOM SHIT ──────────────────────────────────────┐ │
116
+ │ │ Dithered Image • Statusline • Terminal Textarea │ │
117
+ │ │ Code Editor (with VIM MODE because we're not animals) │ │
118
+ │ └──────────────────────────────────────────────────────────┘ │
119
+ │ │
120
+ └────────────────────────────────────────────────────────────────┘
121
+ ```
46
122
 
47
123
  ## Development
48
124
 
@@ -58,16 +134,129 @@ pnpm test
58
134
 
59
135
  # Build the library
60
136
  pnpm build
137
+
138
+ # Type check (for the paranoid)
139
+ pnpm typecheck
61
140
  ```
62
141
 
63
142
  ## Storybook
64
143
 
65
144
  Check out the components at [jcpsimmons.github.io/scl](https://jcpsimmons.github.io/scl/)
66
145
 
146
+ ```
147
+ ┌─────────────────────────────────────┐
148
+ │ │
149
+ │ STORYBOOK PREVIEW: │
150
+ │ │
151
+ │ ┌─────────────────────────────┐ │
152
+ │ │ [=========] Button │ │
153
+ │ │ [ ● ] Toggle │ │
154
+ │ │ [████░░░░░] Progress │ │
155
+ │ │ ┌─────────┐ Card │ │
156
+ │ │ │ Content │ │ │
157
+ │ │ └─────────┘ │ │
158
+ │ └─────────────────────────────┘ │
159
+ │ │
160
+ │ (but cooler because retro theme) │
161
+ │ │
162
+ └─────────────────────────────────────┘
163
+ ```
164
+
165
+ ## The Aesthetic
166
+
167
+ ```
168
+ ╔════════════════════════════════════════════════════════════════════╗
169
+ ║ ║
170
+ ║ This library has a RETRO TERMINAL AESTHETIC because: ║
171
+ ║ ║
172
+ ║ • No border-radius (corners are for cowards) ║
173
+ ║ • No shadows (we live in FLATLAND) ║
174
+ ║ • BigBlueTerm437 monospace font (embrace the CRT vibes) ║
175
+ ║ • CSS variables for theming (HSL colors because we're not ║
176
+ ║ savages who use hex in 2099) ║
177
+ ║ • Dark mode (obviously) ║
178
+ ║ ║
179
+ ║ If you want rounded corners and drop shadows, Material UI is ║
180
+ ║ ──────────────────────────────────────────────> that way ║
181
+ ║ ║
182
+ ╚════════════════════════════════════════════════════════════════════╝
183
+ ```
184
+
67
185
  ## Why "Simsies"?
68
186
 
69
187
  It's my name. Well, part of it. Don't overthink it.
70
188
 
189
+ ```
190
+ ___________________
191
+ < Simmons -> Simsies >
192
+ -------------------
193
+ \ ^__^
194
+ \ (oo)\_______
195
+ (__)\ )\/\
196
+ ||----w |
197
+ || ||
198
+ ```
199
+
200
+ ## Tech Stack
201
+
202
+ ```
203
+ ┌────────────────────────────────────────────────────────┐
204
+ │ │
205
+ │ React ──────────────► Because it's 2099 │
206
+ │ │ │
207
+ │ ▼ │
208
+ │ Radix UI ──────────► Accessibility handled │
209
+ │ │ │
210
+ │ ▼ │
211
+ │ Tailwind CSS ──────► Utility classes go brrrr │
212
+ │ │ │
213
+ │ ▼ │
214
+ │ CVA ────────────────► Variants without the pain │
215
+ │ │ │
216
+ │ ▼ │
217
+ │ TypeScript ─────────► Red squiggles save lives │
218
+ │ │ │
219
+ │ ▼ │
220
+ │ Vite ───────────────► Fast AF builds │
221
+ │ │ │
222
+ │ ▼ │
223
+ │ Vitest ─────────────► Tests that don't take forever │
224
+ │ │
225
+ └────────────────────────────────────────────────────────┘
226
+ ```
227
+
228
+ ## Contributing
229
+
230
+ ```
231
+ ┌───────────────────────────────────────────────┐
232
+ │ │
233
+ │ 1. Fork the repo │
234
+ │ 2. Make your changes │
235
+ │ 3. Write tests (non-negotiable) │
236
+ │ 4. Open a PR │
237
+ │ 5. ??? │
238
+ │ 6. Profit │
239
+ │ │
240
+ └───────────────────────────────────────────────┘
241
+ ```
242
+
71
243
  ## License
72
244
 
73
245
  MIT - Do whatever the fuck you want with it.
246
+
247
+ ```
248
+ ████████████████████████████████████████████████████████████
249
+ █ █
250
+ █ "I used to copy-paste components like a peasant. █
251
+ █ Now I npm install SCL and actually touch grass." █
252
+ █ █
253
+ █ - Some developer, probably █
254
+ █ █
255
+ ████████████████████████████████████████████████████████████
256
+ ```
257
+
258
+ ---
259
+
260
+ <p align="center">
261
+ <sub>Made with ☕ and mass quantities of mass quantities by <a href="https://github.com/jcpsimmons">@jcpsimmons</a></sub>
262
+ </p>
package/dist/index100.js CHANGED
@@ -1,221 +1,17 @@
1
- import * as p from "react";
2
- import { useFloating as xe, offset as Pe, shift as ye, flip as Ae, size as ve, arrow as Ce, hide as be, limitShift as Se } from "./index111.js";
3
- import { Root as Oe } from "./index112.js";
4
- import { useComposedRefs as j } from "./index80.js";
5
- import { createContextScope as Re } from "./index77.js";
6
- import { Primitive as z } from "./index81.js";
7
- import { useCallbackRef as Ee } from "./index85.js";
8
- import { useLayoutEffect as T } from "./index79.js";
9
- import { useSize as Ne } from "./index99.js";
10
- import { jsx as f } from "react/jsx-runtime";
11
- import { autoUpdate as _e } from "./index113.js";
12
- var N = "Popper", [L, Ue] = Re(N), [$e, Z] = L(N), U = (e) => {
13
- const { __scopePopper: s, children: a } = e, [t, i] = p.useState(null);
14
- return /* @__PURE__ */ f($e, { scope: s, anchor: t, onAnchorChange: i, children: a });
15
- };
16
- U.displayName = N;
17
- var q = "PopperAnchor", G = p.forwardRef(
18
- (e, s) => {
19
- const { __scopePopper: a, virtualRef: t, ...i } = e, r = Z(q, a), o = p.useRef(null), w = j(s, o), n = p.useRef(null);
20
- return p.useEffect(() => {
21
- const c = n.current;
22
- n.current = (t == null ? void 0 : t.current) || o.current, c !== n.current && r.onAnchorChange(n.current);
23
- }), t ? null : /* @__PURE__ */ f(z.div, { ...i, ref: w });
24
- }
25
- );
26
- G.displayName = q;
27
- var _ = "PopperContent", [He, We] = L(_), J = p.forwardRef(
28
- (e, s) => {
29
- var Y, M, X, D, F, k;
30
- const {
31
- __scopePopper: a,
32
- side: t = "bottom",
33
- sideOffset: i = 0,
34
- align: r = "center",
35
- alignOffset: o = 0,
36
- arrowPadding: w = 0,
37
- avoidCollisions: n = !0,
38
- collisionBoundary: c = [],
39
- collisionPadding: x = 0,
40
- sticky: m = "partial",
41
- hideWhenDetached: y = !1,
42
- updatePositionStrategy: A = "optimized",
43
- onPlaced: l,
44
- ...d
45
- } = e, v = Z(_, a), [h, C] = p.useState(null), ee = j(s, (P) => C(P)), [E, te] = p.useState(null), u = Ne(E), re = (u == null ? void 0 : u.width) ?? 0, $ = (u == null ? void 0 : u.height) ?? 0, oe = t + (r !== "center" ? "-" + r : ""), ne = typeof x == "number" ? x : { top: 0, right: 0, bottom: 0, left: 0, ...x }, H = Array.isArray(c) ? c : [c], ae = H.length > 0, b = {
46
- padding: ne,
47
- boundary: H.filter(Ye),
48
- // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
49
- altBoundary: ae
50
- }, { refs: ie, floatingStyles: W, placement: se, isPositioned: S, middlewareData: g } = xe({
51
- // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
52
- strategy: "fixed",
53
- placement: oe,
54
- whileElementsMounted: (...P) => _e(...P, {
55
- animationFrame: A === "always"
56
- }),
57
- elements: {
58
- reference: v.anchor
59
- },
60
- middleware: [
61
- Pe({ mainAxis: i + $, alignmentAxis: o }),
62
- n && ye({
63
- mainAxis: !0,
64
- crossAxis: !1,
65
- limiter: m === "partial" ? Se() : void 0,
66
- ...b
67
- }),
68
- n && Ae({ ...b }),
69
- ve({
70
- ...b,
71
- apply: ({ elements: P, rects: B, availableWidth: he, availableHeight: ue }) => {
72
- const { width: ge, height: we } = B.reference, R = P.floating.style;
73
- R.setProperty("--radix-popper-available-width", `${he}px`), R.setProperty("--radix-popper-available-height", `${ue}px`), R.setProperty("--radix-popper-anchor-width", `${ge}px`), R.setProperty("--radix-popper-anchor-height", `${we}px`);
74
- }
75
- }),
76
- E && Ce({ element: E, padding: w }),
77
- Me({ arrowWidth: re, arrowHeight: $ }),
78
- y && be({ strategy: "referenceHidden", ...b })
79
- ]
80
- }), [I, ce] = V(se), O = Ee(l);
81
- T(() => {
82
- S && (O == null || O());
83
- }, [S, O]);
84
- const pe = (Y = g.arrow) == null ? void 0 : Y.x, de = (M = g.arrow) == null ? void 0 : M.y, le = ((X = g.arrow) == null ? void 0 : X.centerOffset) !== 0, [fe, me] = p.useState();
85
- return T(() => {
86
- h && me(window.getComputedStyle(h).zIndex);
87
- }, [h]), /* @__PURE__ */ f(
88
- "div",
89
- {
90
- ref: ie.setFloating,
91
- "data-radix-popper-content-wrapper": "",
92
- style: {
93
- ...W,
94
- transform: S ? W.transform : "translate(0, -200%)",
95
- // keep off the page when measuring
96
- minWidth: "max-content",
97
- zIndex: fe,
98
- "--radix-popper-transform-origin": [
99
- (D = g.transformOrigin) == null ? void 0 : D.x,
100
- (F = g.transformOrigin) == null ? void 0 : F.y
101
- ].join(" "),
102
- // hide the content if using the hide middleware and should be hidden
103
- // set visibility to hidden and disable pointer events so the UI behaves
104
- // as if the PopperContent isn't there at all
105
- ...((k = g.hide) == null ? void 0 : k.referenceHidden) && {
106
- visibility: "hidden",
107
- pointerEvents: "none"
108
- }
109
- },
110
- dir: e.dir,
111
- children: /* @__PURE__ */ f(
112
- He,
113
- {
114
- scope: a,
115
- placedSide: I,
116
- onArrowChange: te,
117
- arrowX: pe,
118
- arrowY: de,
119
- shouldHideArrow: le,
120
- children: /* @__PURE__ */ f(
121
- z.div,
122
- {
123
- "data-side": I,
124
- "data-align": ce,
125
- ...d,
126
- ref: ee,
127
- style: {
128
- ...d.style,
129
- // if the PopperContent hasn't been placed yet (not all measurements done)
130
- // we prevent animations so that users's animation don't kick in too early referring wrong sides
131
- animation: S ? void 0 : "none"
132
- }
133
- }
134
- )
135
- }
136
- )
137
- }
138
- );
139
- }
140
- );
141
- J.displayName = _;
142
- var K = "PopperArrow", Ie = {
143
- top: "bottom",
144
- right: "left",
145
- bottom: "top",
146
- left: "right"
147
- }, Q = p.forwardRef(function(s, a) {
148
- const { __scopePopper: t, ...i } = s, r = We(K, t), o = Ie[r.placedSide];
149
- return (
150
- // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
151
- // doesn't report size as we'd expect on SVG elements.
152
- // it reports their bounding box which is effectively the largest path inside the SVG.
153
- /* @__PURE__ */ f(
154
- "span",
155
- {
156
- ref: r.onArrowChange,
157
- style: {
158
- position: "absolute",
159
- left: r.arrowX,
160
- top: r.arrowY,
161
- [o]: 0,
162
- transformOrigin: {
163
- top: "",
164
- right: "0 0",
165
- bottom: "center 0",
166
- left: "100% 0"
167
- }[r.placedSide],
168
- transform: {
169
- top: "translateY(100%)",
170
- right: "translateY(50%) rotate(90deg) translateX(-50%)",
171
- bottom: "rotate(180deg)",
172
- left: "translateY(50%) rotate(-90deg) translateX(50%)"
173
- }[r.placedSide],
174
- visibility: r.shouldHideArrow ? "hidden" : void 0
175
- },
176
- children: /* @__PURE__ */ f(
177
- Oe,
178
- {
179
- ...i,
180
- ref: a,
181
- style: {
182
- ...i.style,
183
- // ensures the element can be measured correctly (mostly for if SVG)
184
- display: "block"
185
- }
186
- }
187
- )
188
- }
189
- )
190
- );
191
- });
192
- Q.displayName = K;
193
- function Ye(e) {
194
- return e !== null;
1
+ import * as r from "react";
2
+ var t = 0;
3
+ function a() {
4
+ r.useEffect(() => {
5
+ const e = document.querySelectorAll("[data-radix-focus-guard]");
6
+ return document.body.insertAdjacentElement("afterbegin", e[0] ?? n()), document.body.insertAdjacentElement("beforeend", e[1] ?? n()), t++, () => {
7
+ t === 1 && document.querySelectorAll("[data-radix-focus-guard]").forEach((o) => o.remove()), t--;
8
+ };
9
+ }, []);
195
10
  }
196
- var Me = (e) => ({
197
- name: "transformOrigin",
198
- options: e,
199
- fn(s) {
200
- var v, h, C;
201
- const { placement: a, rects: t, middlewareData: i } = s, o = ((v = i.arrow) == null ? void 0 : v.centerOffset) !== 0, w = o ? 0 : e.arrowWidth, n = o ? 0 : e.arrowHeight, [c, x] = V(a), m = { start: "0%", center: "50%", end: "100%" }[x], y = (((h = i.arrow) == null ? void 0 : h.x) ?? 0) + w / 2, A = (((C = i.arrow) == null ? void 0 : C.y) ?? 0) + n / 2;
202
- let l = "", d = "";
203
- return c === "bottom" ? (l = o ? m : `${y}px`, d = `${-n}px`) : c === "top" ? (l = o ? m : `${y}px`, d = `${t.floating.height + n}px`) : c === "right" ? (l = `${-n}px`, d = o ? m : `${A}px`) : c === "left" && (l = `${t.floating.width + n}px`, d = o ? m : `${A}px`), { data: { x: l, y: d } };
204
- }
205
- });
206
- function V(e) {
207
- const [s, a = "center"] = e.split("-");
208
- return [s, a];
11
+ function n() {
12
+ const e = document.createElement("span");
13
+ return e.setAttribute("data-radix-focus-guard", ""), e.tabIndex = 0, e.style.outline = "none", e.style.opacity = "0", e.style.position = "fixed", e.style.pointerEvents = "none", e;
209
14
  }
210
- var qe = U, Ge = G, Je = J, Ke = Q;
211
15
  export {
212
- Ge as Anchor,
213
- Ke as Arrow,
214
- Je as Content,
215
- U as Popper,
216
- G as PopperAnchor,
217
- Q as PopperArrow,
218
- J as PopperContent,
219
- qe as Root,
220
- Ue as createPopperScope
16
+ a as useFocusGuards
221
17
  };