cursedbelt 5.66.0 → 5.67.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.
- package/dist/react/Toast.d.ts.map +1 -1
- package/dist/react/Toast.js +4 -1
- package/dist/react/Toast.js.map +1 -1
- package/dist/react/components/Button.d.ts.map +1 -1
- package/dist/react/components/Button.js +4 -8
- package/dist/react/components/Button.js.map +1 -1
- package/dist/react/components/CardTapTarget.d.ts.map +1 -1
- package/dist/react/components/CardTapTarget.js +3 -1
- package/dist/react/components/CardTapTarget.js.map +1 -1
- package/dist/react/components/ChipFilterStrip.d.ts.map +1 -1
- package/dist/react/components/ChipFilterStrip.js +2 -1
- package/dist/react/components/ChipFilterStrip.js.map +1 -1
- package/dist/react/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/react/components/ConfirmDialog.js +2 -1
- package/dist/react/components/ConfirmDialog.js.map +1 -1
- package/dist/react/components/Drawer.d.ts.map +1 -1
- package/dist/react/components/Drawer.js +2 -1
- package/dist/react/components/Drawer.js.map +1 -1
- package/dist/react/components/Lightbox.d.ts.map +1 -1
- package/dist/react/components/Lightbox.js +2 -1
- package/dist/react/components/Lightbox.js.map +1 -1
- package/dist/react/components/Modal.d.ts.map +1 -1
- package/dist/react/components/Modal.js +5 -3
- package/dist/react/components/Modal.js.map +1 -1
- package/dist/react/components/PromptDialog.d.ts.map +1 -1
- package/dist/react/components/PromptDialog.js +2 -1
- package/dist/react/components/PromptDialog.js.map +1 -1
- package/dist/react/components/SegmentedControl.d.ts.map +1 -1
- package/dist/react/components/SegmentedControl.js +2 -1
- package/dist/react/components/SegmentedControl.js.map +1 -1
- package/dist/react/components/Tabs.d.ts.map +1 -1
- package/dist/react/components/Tabs.js +68 -15
- package/dist/react/components/Tabs.js.map +1 -1
- package/dist/react/components/TooltipImpl.d.ts.map +1 -1
- package/dist/react/components/TooltipImpl.js +2 -1
- package/dist/react/components/TooltipImpl.js.map +1 -1
- package/dist/react/components/dialog.d.ts.map +1 -1
- package/dist/react/components/dialog.js +2 -1
- package/dist/react/components/dialog.js.map +1 -1
- package/dist/react/layoutEngine/LayoutConfigDialog.d.ts.map +1 -1
- package/dist/react/layoutEngine/LayoutConfigDialog.js +3 -1
- package/dist/react/layoutEngine/LayoutConfigDialog.js.map +1 -1
- package/dist/react/lib/floatingStyles.d.ts +10 -2
- package/dist/react/lib/floatingStyles.d.ts.map +1 -1
- package/dist/react/lib/floatingStyles.js +12 -7
- package/dist/react/lib/floatingStyles.js.map +1 -1
- package/dist/react/lib/overlayMotion.d.ts +37 -0
- package/dist/react/lib/overlayMotion.d.ts.map +1 -0
- package/dist/react/lib/overlayMotion.js +50 -0
- package/dist/react/lib/overlayMotion.js.map +1 -0
- package/dist/react/lib/press.d.ts +37 -0
- package/dist/react/lib/press.d.ts.map +1 -0
- package/dist/react/lib/press.js +41 -0
- package/dist/react/lib/press.js.map +1 -0
- package/dist/react/nav/PlaceBar.d.ts.map +1 -1
- package/dist/react/nav/PlaceBar.js +4 -3
- package/dist/react/nav/PlaceBar.js.map +1 -1
- package/dist/react/palette/CommandPalette.d.ts.map +1 -1
- package/dist/react/palette/CommandPalette.js +3 -2
- package/dist/react/palette/CommandPalette.js.map +1 -1
- package/dist/styles-areas/analytics.css +2 -2
- package/dist/styles-areas/core.css +57 -50
- package/dist/styles-areas/data-table.css +3 -3
- package/dist/styles-areas/fields.css +2 -2
- package/dist/styles-areas/media.css +4 -4
- package/dist/styles-areas/nav.css +18 -18
- package/dist/styles-areas/overlays.css +2 -2
- package/dist/styles-areas/palette.css +4 -5
- package/dist/styles-areas/place-bar.css +5 -5
- package/dist/styles-areas/sharing.css +4 -4
- package/dist/styles-areas/test-report.css +4 -4
- package/dist/styles-areas/wizard.css +2 -2
- package/dist/styles-areas/workbench.css +2 -2
- package/dist/styles-utilities.css +68 -22
- package/dist/theme.css +44 -0
- package/package.json +1 -1
- package/src/react/Toast.tsx +4 -1
- package/src/react/components/Button.spec.tsx +3 -2
- package/src/react/components/Button.tsx +4 -8
- package/src/react/components/CardTapTarget.tsx +3 -1
- package/src/react/components/ChipFilterStrip.tsx +3 -1
- package/src/react/components/ConfirmDialog.tsx +2 -2
- package/src/react/components/Drawer.tsx +2 -0
- package/src/react/components/Lightbox.tsx +2 -2
- package/src/react/components/Modal.tsx +5 -4
- package/src/react/components/PromptDialog.tsx +2 -2
- package/src/react/components/SegmentedControl.tsx +3 -1
- package/src/react/components/Tabs.tsx +78 -5
- package/src/react/components/TooltipImpl.tsx +2 -0
- package/src/react/components/dialog.tsx +2 -2
- package/src/react/layoutEngine/LayoutConfigDialog.tsx +3 -1
- package/src/react/lib/floatingStyles.ts +12 -8
- package/src/react/lib/overlayMotion.ts +58 -0
- package/src/react/lib/press.ts +43 -0
- package/src/react/nav/PlaceBar.tsx +7 -3
- package/src/react/palette/CommandPalette.tsx +3 -2
- package/src/styles-areas/analytics.css +2 -2
- package/src/styles-areas/core.css +57 -50
- package/src/styles-areas/data-table.css +3 -3
- package/src/styles-areas/fields.css +2 -2
- package/src/styles-areas/media.css +4 -4
- package/src/styles-areas/nav.css +18 -18
- package/src/styles-areas/overlays.css +2 -2
- package/src/styles-areas/palette.css +4 -5
- package/src/styles-areas/place-bar.css +5 -5
- package/src/styles-areas/sharing.css +4 -4
- package/src/styles-areas/test-report.css +4 -4
- package/src/styles-areas/wizard.css +2 -2
- package/src/styles-areas/workbench.css +2 -2
- package/src/styles-utilities.css +68 -22
- package/src/theme.css +44 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/react/Toast.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG5F,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAmB5D;;;GAGG;AACH,iBAAS,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,EAAE,aAAa,mBAEjF;AAED,4EAA4E;AAC5E,eAAO,MAAM,KAAK,EAAE,OAAO,WAAW,GAAG;IAAE,IAAI,EAAE,OAAO,SAAS,CAAA;CAIhE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC;AAwBtE,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/react/Toast.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG5F,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAmB5D;;;GAGG;AACH,iBAAS,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,EAAE,aAAa,mBAEjF;AAED,4EAA4E;AAC5E,eAAO,MAAM,KAAK,EAAE,OAAO,WAAW,GAAG;IAAE,IAAI,EAAE,OAAO,SAAS,CAAA;CAIhE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC;AAwBtE,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+BA8BxD"}
|
package/dist/react/Toast.js
CHANGED
|
@@ -59,7 +59,10 @@ const DESKTOP_OFFSET = { bottom: 'calc(var(--cb-bottom-chrome-h, 0px) + 24px)',
|
|
|
59
59
|
export function Toaster({ style, ...props }) {
|
|
60
60
|
return (_jsx(SonnerToaster, { style: { ...TOKEN_VARS, ...style }, position: 'bottom-right', offset: DESKTOP_OFFSET, mobileOffset: BOTTOM_OFFSET, closeButton: true, toastOptions: {
|
|
61
61
|
classNames: {
|
|
62
|
-
|
|
62
|
+
// The overlay curve and the slow speed (`lib/overlayMotion.ts`, forge task 2912) in place
|
|
63
|
+
// of sonner's 400ms `ease`. `!` because sonner's own `[data-sonner-toast]` rule sets the
|
|
64
|
+
// transition shorthand after this stylesheet; its reduced-motion rule still turns it off.
|
|
65
|
+
toast: 'rounded-lg border border-border bg-popover text-foreground shadow-overlay duration-[var(--duration-slow)]! ease-[var(--ease-out)]!',
|
|
63
66
|
title: 'text-sm font-medium',
|
|
64
67
|
// `!` because sonner colours these two with element rules of its own (`#3f3f3f` for a
|
|
65
68
|
// description, its grey scale for the close button) that no variable reaches.
|
package/dist/react/Toast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../src/react/Toast.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAsB,OAAO,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;;GAKG;AACH,SAAS,UAAU,CAAC,OAAqB,EAAE,IAAoB;IAC7D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,CACT,4BAA4B,EAC5B,yHAAyH;YACvH,6FAA6F,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAqB,EAAE,MAAkB,EAAE,IAAoB;IAChF,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,KAAK,GAAoD,MAAM,CAAC,MAAM,CACjF,CAAC,GAAG,IAAoC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,EACjE,WAAW,EACX,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CACvC,CAAC;AAIF;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE,gBAAgB;IAC/B,iBAAiB,EAAE,eAAe;IAClC,eAAe,EAAE,2BAA2B;CACtB,CAAC;AAEzB;;;;GAIG;AACH,MAAM,aAAa,GAAG,EAAE,MAAM,EAAE,6CAA6C,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC/F,MAAM,cAAc,GAAG,EAAE,MAAM,EAAE,6CAA6C,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAEhG,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAgB;IACvD,OAAO,CACL,KAAC,aAAa,IACZ,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,EAClC,QAAQ,EAAC,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,aAAa,EAC3B,WAAW,QACX,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../src/react/Toast.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAsB,OAAO,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;;GAKG;AACH,SAAS,UAAU,CAAC,OAAqB,EAAE,IAAoB;IAC7D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,CACT,4BAA4B,EAC5B,yHAAyH;YACvH,6FAA6F,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,OAAqB,EAAE,MAAkB,EAAE,IAAoB;IAChF,OAAO,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,KAAK,GAAoD,MAAM,CAAC,MAAM,CACjF,CAAC,GAAG,IAAoC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,EACjE,WAAW,EACX,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CACvC,CAAC;AAIF;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE,gBAAgB;IAC/B,iBAAiB,EAAE,eAAe;IAClC,eAAe,EAAE,2BAA2B;CACtB,CAAC;AAEzB;;;;GAIG;AACH,MAAM,aAAa,GAAG,EAAE,MAAM,EAAE,6CAA6C,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC/F,MAAM,cAAc,GAAG,EAAE,MAAM,EAAE,6CAA6C,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAEhG,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAgB;IACvD,OAAO,CACL,KAAC,aAAa,IACZ,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,EAClC,QAAQ,EAAC,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,aAAa,EAC3B,WAAW,QACX,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,0FAA0F;gBAC1F,yFAAyF;gBACzF,0FAA0F;gBAC1F,KAAK,EAAE,oIAAoI;gBAC3I,KAAK,EAAE,qBAAqB;gBAC5B,sFAAsF;gBACtF,8EAA8E;gBAC9E,WAAW,EAAE,gCAAgC;gBAC7C,YAAY,EAAE,yDAAyD;gBACvE,YAAY,EAAE,uDAAuD;gBACrE,WAAW,EAAE,0EAA0E;gBACvF,KAAK,EAAE,wDAAwD;gBAC/D,OAAO,EAAE,gDAAgD;gBACzD,OAAO,EAAE,gDAAgD;gBACzD,IAAI,EAAE,8CAA8C;aACrD;SACF,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAGT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAGT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKlF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc;;;8EA6G1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxF,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAElF,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC;;;8CAG0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;6EACyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;;;;eAQW;IACX,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;8DAI0D;IAC1D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE;yFACqF;IACrF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;gFAC4E;IAC5E,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;CAC9B;AAcD,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,OAAe,EACf,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAsB,EACtB,YAAmB,EACnB,OAAc,EACd,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,WAAW,+BA+Gb"}
|
|
@@ -7,6 +7,7 @@ import { cn } from '../lib/cn.js';
|
|
|
7
7
|
import { Tooltip } from './Tooltip.js';
|
|
8
8
|
import { TAP_TARGET_HEIGHT } from '../lib/tapTarget.js';
|
|
9
9
|
import { RAW_BUTTON } from '../lib/cn.js';
|
|
10
|
+
import { PRESS } from '../lib/press.js';
|
|
10
11
|
/**
|
|
11
12
|
* The single source of truth for every interactive element that triggers an action.
|
|
12
13
|
* The intent variants implement the 3-weight action taxonomy (STANDARDS.md §4c:
|
|
@@ -23,14 +24,9 @@ import { RAW_BUTTON } from '../lib/cn.js';
|
|
|
23
24
|
*/
|
|
24
25
|
export const buttonVariants = cva([
|
|
25
26
|
'relative inline-flex items-center justify-center gap-2 rounded-md font-medium',
|
|
26
|
-
// 🔴 TACTILE (forge task family-app-ux-overhaul, 2026-10-06): a press is answered —
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
// finger reads as dead on a phone. `transform` is in the transition list so the dip and
|
|
30
|
-
// its release both ease rather than snap. Reduced motion turns both off; a refused press
|
|
31
|
-
// (`aria-disabled`) does not dip, because nothing happened.
|
|
32
|
-
'transition-[color,background-color,border-color,box-shadow,transform] duration-[var(--duration-fast)] ease-[var(--ease-out)]',
|
|
33
|
-
'active:scale-[var(--press-scale)] aria-disabled:active:scale-100 motion-reduce:transition-none motion-reduce:active:scale-100',
|
|
27
|
+
// 🔴 TACTILE (forge task family-app-ux-overhaul, 2026-10-06): a press is answered — eased
|
|
28
|
+
// colours and a `--press-scale` dip while held. The contract and who is exempt: `lib/press.ts`.
|
|
29
|
+
PRESS,
|
|
34
30
|
TAP_TARGET_HEIGHT, // ≥44px touch target on coarse pointers
|
|
35
31
|
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-offset-background',
|
|
36
32
|
// Disabled = muted surface + faded + inert (never color-alone): clearly off, not a low-contrast haze.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAML,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAA6C,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardTapTarget.d.ts","sourceRoot":"","sources":["../../../src/react/components/CardTapTarget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CardTapTarget.d.ts","sourceRoot":"","sources":["../../../src/react/components/CardTapTarget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAM/C,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;8BAC0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,GAAI,0DAM3B,kBAAkB,gCA8BpB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useRef } from 'react';
|
|
3
3
|
import { cn } from '../lib/cn.js';
|
|
4
|
+
import { PRESS_SURFACE } from '../lib/press.js';
|
|
4
5
|
import { TAP_TARGET_HEIGHT } from '../lib/tapTarget.js';
|
|
5
6
|
import { hasSelectionWithin } from '../lib/textSelection.js';
|
|
6
7
|
/**
|
|
@@ -39,6 +40,7 @@ export const CardTapTarget = ({ onClick, className, children, selectionSafe = tr
|
|
|
39
40
|
},
|
|
40
41
|
// `TAP_TARGET_HEIGHT`: a tappable row on a phone answers to a thumb — family's 35px value
|
|
41
42
|
// rows (`.ft-row`, forge task 2913) were under the 44pt floor. DESIGN.md §5.
|
|
42
|
-
|
|
43
|
+
// `PRESS_SURFACE`: the card answers a press with a dip sized for a surface (forge task 2912).
|
|
44
|
+
className: cn('cursor-pointer touch-manipulation text-left', TAP_TARGET_HEIGHT, PRESS_SURFACE, className), ...rest, children: children }));
|
|
43
45
|
};
|
|
44
46
|
//# sourceMappingURL=CardTapTarget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardTapTarget.js","sourceRoot":"","sources":["../../../src/react/components/CardTapTarget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAqB7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,GAAG,IAAI,EACY,EAAE,EAAE;IACvB,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,4EAA4E;QAC5E,+EAA+E;QAC/E,IAAI,aAAa,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,OAAO,CAEL,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,0FAA0F;QAC1F,6EAA6E;QAC7E,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,iBAAiB,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"CardTapTarget.js","sourceRoot":"","sources":["../../../src/react/components/CardTapTarget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAqB7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,GAAG,IAAI,EACY,EAAE,EAAE;IACvB,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,4EAA4E;QAC5E,+EAA+E;QAC/E,IAAI,aAAa,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IACF,OAAO,CAEL,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,0FAA0F;QAC1F,6EAA6E;QAC7E,8FAA8F;QAC9F,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,CAAC,KACrG,IAAI,YAEP,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipFilterStrip.d.ts","sourceRoot":"","sources":["../../../src/react/components/ChipFilterStrip.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChipFilterStrip.d.ts","sourceRoot":"","sources":["../../../src/react/components/ChipFilterStrip.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAa,EACb,QAAgB,EAChB,SAAS,GACV,EAAE,oBAAoB,+BAmDtB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn, RAW_BUTTON } from '../lib/cn.js';
|
|
3
|
+
import { PRESS } from '../lib/press.js';
|
|
3
4
|
import { ScrollArea } from './ScrollArea.js';
|
|
4
5
|
function isActive(value, option) {
|
|
5
6
|
if (value === null)
|
|
@@ -49,7 +50,7 @@ function Chip({ active, onClick, children }) {
|
|
|
49
50
|
type: 'button', onClick: onClick, "aria-pressed": active, className: cn(RAW_BUTTON,
|
|
50
51
|
// 44 px min tap target height via py + min-h (STANDARDS §4a). px-4 keeps every
|
|
51
52
|
// pill's internal padding identical regardless of label length.
|
|
52
|
-
'inline-flex min-h-11 shrink-0 cursor-pointer items-center rounded-full px-4 text-sm font-medium
|
|
53
|
+
'inline-flex min-h-11 shrink-0 cursor-pointer items-center rounded-full px-4 text-sm font-medium', PRESS, 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
53
54
|
// Soft active state — an accent tint + accent text (the standardized active
|
|
54
55
|
// treatment shared with nav items and the `accent` Badge tone), not a stark
|
|
55
56
|
// solid accent block. `text-accent-strong` (not plain `text-accent`) — the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipFilterStrip.js","sourceRoot":"","sources":["../../../src/react/components/ChipFilterStrip.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAwB7C,SAAS,QAAQ,CAAC,KAA+B,EAAE,MAAc;IAC/D,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,KAAK,KAAK,MAAM,CAAC;AAC1B,CAAC;AAED,SAAS,KAAK,CAAC,KAA+B;IAC5C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EAChB,SAAS,GACY;IACrB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1F,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAKL,iCAAqB,gBAAgB,EAAC,SAAS,EAAE,EAAE,CAAC,qCAAqC,EAAE,SAAS,CAAC,YACnG,MAAC,UAAU,IACT,IAAI,EAAC,GAAG,EACR,KAAK,EAAC,MAAM,EACZ,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,EAAE,CACX,kCAAkC;YAClC,kEAAkE;YAClE,sDAAsD,CACvD,aAED,KAAC,IAAI,IAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,YACxC,QAAQ,GACJ,EACN,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,MAAC,IAAI,IAEH,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAClC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,aAErC,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CACpB,eAAM,SAAS,EAAC,2BAA2B,YAAE,GAAG,CAAC,KAAK,GAAQ,CAC/D,KAPI,GAAG,CAAC,KAAK,CAQT,CACR,CAAC,IACS,GACJ,CACZ,CAAC;AACJ,CAAC;AAQD,SAAS,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAa;IACpD,OAAO,CACL;QACE,8EAA8E;QAC9E,8EAA8E;QAC9E,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,kBACF,MAAM,EACpB,SAAS,EAAE,EAAE,CACX,UAAU;QACV,+EAA+E;QAC/E,gEAAgE;QAChE,
|
|
1
|
+
{"version":3,"file":"ChipFilterStrip.js","sourceRoot":"","sources":["../../../src/react/components/ChipFilterStrip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmDialog.d.ts","sourceRoot":"","sources":["../../../src/react/components/ConfirmDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfirmDialog.d.ts","sourceRoot":"","sources":["../../../src/react/components/ConfirmDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAM/C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;yEACqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;oGACgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,YAAwB,EACxB,WAAsB,EACtB,WAAmB,EACnB,OAAe,EACf,SAAS,GACV,EAAE,kBAAkB,+BAiEpB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useRef } from 'react';
|
|
3
3
|
import { cn } from '../lib/cn.js';
|
|
4
|
+
import { DIALOG_MOTION } from '../lib/overlayMotion.js';
|
|
4
5
|
import { Button } from './Button.js';
|
|
5
6
|
import { Dialog, DialogContent, DialogDescription, DialogTitle } from './dialog.js';
|
|
6
7
|
/**
|
|
@@ -16,7 +17,7 @@ export function ConfirmDialog({ open, onConfirm, onCancel, title, message, confi
|
|
|
16
17
|
return (_jsx(Dialog, { open: open, onOpenChange: (v) => {
|
|
17
18
|
if (!v)
|
|
18
19
|
onCancel();
|
|
19
|
-
}, children: _jsxs(DialogContent, { ref: contentRef, className: cn('fixed top-1/2 left-1/2 flex w-[calc(100vw-2rem)] max-w-[var(--modal-w-sm)] -translate-x-1/2 -translate-y-1/2 flex-col gap-4', 'rounded-xl border border-border bg-popover p-6 text-popover-foreground shadow-overlay',
|
|
20
|
+
}, children: _jsxs(DialogContent, { ref: contentRef, className: cn('fixed top-1/2 left-1/2 flex w-[calc(100vw-2rem)] max-w-[var(--modal-w-sm)] -translate-x-1/2 -translate-y-1/2 flex-col gap-4', 'rounded-xl border border-border bg-popover p-6 text-popover-foreground shadow-overlay', DIALOG_MOTION, className),
|
|
20
21
|
// Land focus on the safe button for destructive actions; otherwise on confirm.
|
|
21
22
|
// Button isn't a forwardRef component, so target it by data attribute.
|
|
22
23
|
onOpenAutoFocus: (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmDialog.js","sourceRoot":"","sources":["../../../src/react/components/ConfirmDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAoBpF;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,YAAY,GAAG,SAAS,EACxB,WAAW,GAAG,QAAQ,EACtB,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,KAAK,EACf,SAAS,GACU;IACnB,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC;gBAAE,QAAQ,EAAE,CAAC;QACrB,CAAC,YAED,MAAC,aAAa,IACZ,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,EAAE,CACX,6HAA6H,EAC7H,uFAAuF,EACvF,
|
|
1
|
+
{"version":3,"file":"ConfirmDialog.js","sourceRoot":"","sources":["../../../src/react/components/ConfirmDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAoBpF;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,YAAY,GAAG,SAAS,EACxB,WAAW,GAAG,QAAQ,EACtB,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,KAAK,EACf,SAAS,GACU;IACnB,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC;gBAAE,QAAQ,EAAE,CAAC;QACrB,CAAC,YAED,MAAC,aAAa,IACZ,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,EAAE,CACX,6HAA6H,EAC7H,uFAAuF,EACvF,aAAa,EACb,SAAS,CACV;YACD,+EAA+E;YAC/E,uEAAuE;YACvE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;gBACrB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,UAAU,CAAC,OAAO;oBAChB,EAAE,aAAa,CACb,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CACvD;oBACD,EAAE,KAAK,EAAE,CAAC;YACd,CAAC,aAED,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,WAAW,IAAC,SAAS,EAAC,iDAAiD,YACrE,KAAK,GACM,EACb,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,iBAAiB,IAAC,SAAS,EAAC,+BAA+B,YACzD,OAAO,GACU,CACrB,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,MAAM,4BAEL,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,WAAW,YAEnB,WAAW,GACL,EACT,KAAC,MAAM;4BAEL,uEAAuE;4BACvE,0EAA0E;4BAC1E,uEAAuE;4BACvE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,EAAE,EAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,YAEpB,YAAY,GACN,IACL,IACQ,GACT,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/react/components/Drawer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/react/components/Drawer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AACrD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAmB5C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,OAAO,EACP,KAAK,EACL,IAAW,EACX,IAAc,EACd,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,UAAiB,GAClB,EAAE,WAAW,+BAuFb"}
|
|
@@ -3,6 +3,7 @@ import { X } from 'lucide-react';
|
|
|
3
3
|
import { useDiscardGuard } from '../hooks/useDiscardGuard.js';
|
|
4
4
|
import { useSwipeToDismiss } from '../hooks/useSwipeToDismiss.js';
|
|
5
5
|
import { cn } from '../lib/cn.js';
|
|
6
|
+
import { DRAWER_MOTION } from '../lib/overlayMotion.js';
|
|
6
7
|
import { FooterSlot } from './ActionBar.js';
|
|
7
8
|
import { Dialog, DialogContent, DialogTitle, focusPanelOnOpen } from './dialog.js';
|
|
8
9
|
import { IconButton } from './IconButton.js';
|
|
@@ -48,7 +49,7 @@ export function Drawer({ open, onClose, title, size = 'md', side = 'right', isDi
|
|
|
48
49
|
return (_jsx(Dialog, { open: open, onOpenChange: (v) => {
|
|
49
50
|
if (!v)
|
|
50
51
|
guardedClose();
|
|
51
|
-
}, children: _jsxs(DialogContent, { className: cn('flex flex-col gap-0 overflow-hidden bg-popover text-popover-foreground shadow-overlay', side === 'left' && [
|
|
52
|
+
}, children: _jsxs(DialogContent, { className: cn('flex flex-col gap-0 overflow-hidden bg-popover text-popover-foreground shadow-overlay', DRAWER_MOTION, side === 'left' && [
|
|
52
53
|
'fixed top-0 left-0 h-full w-full rounded-r-xl border-r border-border',
|
|
53
54
|
DRAWER_WIDTH[size],
|
|
54
55
|
'data-[state=open]:animate-in data-[state=open]:slide-in-from-left',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/react/components/Drawer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/react/components/Drawer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../../src/react/components/Lightbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../../src/react/components/Lightbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,+BAiC3E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { X } from 'lucide-react';
|
|
3
3
|
import { cn } from '../lib/cn.js';
|
|
4
|
+
import { DIALOG_MOTION } from '../lib/overlayMotion.js';
|
|
4
5
|
import { Dialog, DialogContent, DialogTitle, focusPanelOnOpen } from './dialog.js';
|
|
5
6
|
import { IconButton } from './IconButton.js';
|
|
6
7
|
/**
|
|
@@ -14,6 +15,6 @@ export function Lightbox({ open, onClose, children, caption }) {
|
|
|
14
15
|
return (_jsx(Dialog, { open: open, onOpenChange: (v) => {
|
|
15
16
|
if (!v)
|
|
16
17
|
onClose();
|
|
17
|
-
}, children: _jsxs(DialogContent, { overlayClassName: 'bg-black/80', className: cn('fixed inset-4 flex flex-col items-center justify-center gap-3 p-4', 'rounded-xl border-none bg-black/95 shadow-none',
|
|
18
|
+
}, children: _jsxs(DialogContent, { overlayClassName: 'bg-black/80', className: cn('fixed inset-4 flex flex-col items-center justify-center gap-3 p-4', 'rounded-xl border-none bg-black/95 shadow-none', DIALOG_MOTION), onInteractOutside: () => onClose(), onOpenAutoFocus: focusPanelOnOpen, children: [_jsx(DialogTitle, { className: 'sr-only', children: caption ?? 'Media viewer' }), _jsx(IconButton, { label: 'Close', variant: 'ghost', onClick: onClose, className: 'absolute top-4 right-4 h-auto w-auto rounded-full bg-white/10 p-1.5 text-white hover:bg-white/20 hover:text-white focus-visible:ring-offset-black', children: _jsx(X, { className: 'size-5' }) }), _jsx("div", { className: 'flex min-h-0 min-w-0 flex-1 items-center justify-center', children: children }), caption ? _jsx("p", { className: 'text-center text-sm text-white/70', children: caption }) : null] }) }));
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=Lightbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Lightbox.js","sourceRoot":"","sources":["../../../src/react/components/Lightbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAiB;IAC1E,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;QACpB,CAAC,YAED,MAAC,aAAa,IACZ,gBAAgB,EAAC,aAAa,EAC9B,SAAS,EAAE,EAAE,CACX,mEAAmE,EACnE,gDAAgD,EAChD,
|
|
1
|
+
{"version":3,"file":"Lightbox.js","sourceRoot":"","sources":["../../../src/react/components/Lightbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAiB;IAC1E,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;QACpB,CAAC,YAED,MAAC,aAAa,IACZ,gBAAgB,EAAC,aAAa,EAC9B,SAAS,EAAE,EAAE,CACX,mEAAmE,EACnE,gDAAgD,EAChD,aAAa,CACd,EACD,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAClC,eAAe,EAAE,gBAAgB,aAGjC,KAAC,WAAW,IAAC,SAAS,EAAC,SAAS,YAAE,OAAO,IAAI,cAAc,GAAe,EAC1E,KAAC,UAAU,IACT,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,mJAAmJ,YAE7J,KAAC,CAAC,IAAC,SAAS,EAAC,QAAQ,GAAG,GACb,EACb,cAAK,SAAS,EAAC,yDAAyD,YAAE,QAAQ,GAAO,EACxF,OAAO,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,mCAAmC,YAAE,OAAO,GAAK,CAAC,CAAC,CAAC,IAAI,IAClE,GACT,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/react/components/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/react/components/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,2BAA2B,CAAC,IAAI,CAAC;AA6CvF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gFAAgF;IAChF,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,IAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAiB,EACjB,aAAoB,EACpB,KAAK,EACL,UAAiB,EACjB,SAAS,GACV,EAAE,UAAU,+BA+IZ"}
|
|
@@ -4,6 +4,7 @@ import { useDiscardGuard } from '../hooks/useDiscardGuard.js';
|
|
|
4
4
|
import { useMediaQuery } from '../hooks/useMediaQuery.js';
|
|
5
5
|
import { useSwipeToDismiss } from '../hooks/useSwipeToDismiss.js';
|
|
6
6
|
import { cn } from '../lib/cn.js';
|
|
7
|
+
import { DIALOG_MOTION } from '../lib/overlayMotion.js';
|
|
7
8
|
import { devWarnOnce } from '../lib/devWarn.js';
|
|
8
9
|
import { FooterSlot } from './ActionBar.js';
|
|
9
10
|
import { Dialog, DialogContent, DialogTitle, focusPanelOnOpen } from './dialog.js';
|
|
@@ -43,8 +44,9 @@ const PHONE_QUERY = '(max-width: 639px)';
|
|
|
43
44
|
* every native sheet does.
|
|
44
45
|
*/
|
|
45
46
|
const SHEET = 'max-sm:inset-x-0 max-sm:bottom-0 max-sm:w-full max-sm:max-w-none max-sm:max-h-[var(--sheet-h-phone)] max-sm:rounded-t-2xl max-sm:rounded-b-none max-sm:border-x-0 max-sm:border-b-0 max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=closed]:slide-out-to-bottom';
|
|
46
|
-
/** From `sm` up: the centred card, capped to the viewport
|
|
47
|
-
|
|
47
|
+
/** From `sm` up: the centred card, capped to the viewport. It rises with every dialog
|
|
48
|
+
* (`DIALOG_MOTION`: 8px and 0.985); the phone's sheet above slides its whole height instead. */
|
|
49
|
+
const CARD = 'sm:top-1/2 sm:left-1/2 sm:w-[calc(100vw-2rem)] sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-xl sm:max-h-[min(90dvh,calc(100dvh-2rem))]';
|
|
48
50
|
/**
|
|
49
51
|
* Centered modal dialog on Radix Dialog (shadcn-vendored). Renders into a portal, so it
|
|
50
52
|
* is never clipped by an `overflow` ancestor; the focus trap and body scroll-lock are
|
|
@@ -78,7 +80,7 @@ export function Modal({ open, onClose, size = 'md', title, subtitle, children, f
|
|
|
78
80
|
'fixed flex flex-col gap-0 overflow-hidden',
|
|
79
81
|
// The body scrolls with `py-4`: a form kit preview pinned inside it sits flush with
|
|
80
82
|
// the body's top edge rather than a padding's height below it (formKit.css).
|
|
81
|
-
'[--cbfk-sticky-top:-1rem]', 'border border-border bg-popover text-popover-foreground shadow-overlay',
|
|
83
|
+
'[--cbfk-sticky-top:-1rem]', 'border border-border bg-popover text-popover-foreground shadow-overlay', DIALOG_MOTION, SHEET, CARD, sizeClass(size), className),
|
|
82
84
|
// Intercept Radix's default close so a dirty form gets the discard prompt; while
|
|
83
85
|
// the prompt is up, Escape cancels it (keep editing) instead of re-prompting.
|
|
84
86
|
// backdropClose={false} turns the backdrop into a no-op — critical dialogs that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/react/components/Modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQtD,wFAAwF;AACxF,mFAAmF;AACnF,2FAA2F;AAC3F,6FAA6F;AAC7F,+FAA+F;AAC/F,4FAA4F;AAC5F,+DAA+D;AAC/D,MAAM,IAAI,GAA6C;IACrD,EAAE,EAAE,8BAA8B;IAClC,EAAE,EAAE,8BAA8B;IAClC,EAAE,EAAE,8BAA8B;IAClC,IAAI,EAAE,4GAA4G;CACnH,CAAC;AAEF,kEAAkE;AAClE,SAAS,SAAS,CAAC,IAAe;IAChC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,WAAW,CAAC,eAAe,EAAE,6GAA6G,CAAC,CAAC;QAC5I,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,uEAAuE;AACvE,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,KAAK,GACT,kRAAkR,CAAC;AAErR
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/react/components/Modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptDialog.d.ts","sourceRoot":"","sources":["../../../src/react/components/PromptDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PromptDialog.d.ts","sourceRoot":"","sources":["../../../src/react/components/PromptDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,OAAO,CAAC;AAOzD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;oGACgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAiB,EACjB,YAAmB,EACnB,WAAsB,EACtB,OAAe,EACf,SAAS,GACV,EAAE,iBAAiB,+BAoEnB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useRef, useState } from 'react';
|
|
3
3
|
import { cn } from '../lib/cn.js';
|
|
4
|
+
import { DIALOG_MOTION } from '../lib/overlayMotion.js';
|
|
4
5
|
import { Button } from './Button.js';
|
|
5
6
|
import { Dialog, DialogContent, DialogDescription, DialogTitle } from './dialog.js';
|
|
6
7
|
import { Input } from './Input.js';
|
|
@@ -22,7 +23,7 @@ export function PromptDialog({ open, onSubmit, onCancel, title, message, placeho
|
|
|
22
23
|
return (_jsx(Dialog, { open: open, onOpenChange: (v) => {
|
|
23
24
|
if (!v)
|
|
24
25
|
onCancel();
|
|
25
|
-
}, children: _jsxs(DialogContent, { className: cn('fixed top-1/2 left-1/2 flex w-[calc(100vw-2rem)] max-w-[var(--modal-w-sm)] -translate-x-1/2 -translate-y-1/2 flex-col gap-4', 'rounded-xl border border-border bg-popover p-6 text-popover-foreground shadow-overlay',
|
|
26
|
+
}, children: _jsxs(DialogContent, { className: cn('fixed top-1/2 left-1/2 flex w-[calc(100vw-2rem)] max-w-[var(--modal-w-sm)] -translate-x-1/2 -translate-y-1/2 flex-col gap-4', 'rounded-xl border border-border bg-popover p-6 text-popover-foreground shadow-overlay', DIALOG_MOTION, className), onOpenAutoFocus: (e) => {
|
|
26
27
|
e.preventDefault();
|
|
27
28
|
inputRef.current?.focus();
|
|
28
29
|
inputRef.current?.select();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptDialog.js","sourceRoot":"","sources":["../../../src/react/components/PromptDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAmBnC;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,GAAG,EAAE,EACjB,YAAY,GAAG,IAAI,EACnB,WAAW,GAAG,QAAQ,EACtB,OAAO,GAAG,KAAK,EACf,SAAS,GACS;IAClB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEhD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,CAAC,OAAO;YAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC;gBAAE,QAAQ,EAAE,CAAC;QACrB,CAAC,YAED,MAAC,aAAa,IACZ,SAAS,EAAE,EAAE,CACX,6HAA6H,EAC7H,uFAAuF,EACvF,
|
|
1
|
+
{"version":3,"file":"PromptDialog.js","sourceRoot":"","sources":["../../../src/react/components/PromptDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAmBnC;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,GAAG,EAAE,EACjB,YAAY,GAAG,IAAI,EACnB,WAAW,GAAG,QAAQ,EACtB,OAAO,GAAG,KAAK,EACf,SAAS,GACS;IAClB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEhD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,CAAC,OAAO;YAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC;gBAAE,QAAQ,EAAE,CAAC;QACrB,CAAC,YAED,MAAC,aAAa,IACZ,SAAS,EAAE,EAAE,CACX,6HAA6H,EAC7H,uFAAuF,EACvF,aAAa,EACb,SAAS,CACV,EACD,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;gBACrB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;gBAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7B,CAAC,aAED,eAAK,SAAS,EAAC,uBAAuB,aACpC,KAAC,WAAW,IAAC,SAAS,EAAC,yBAAyB,YAAE,KAAK,GAAe,EACrE,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,iBAAiB,IAAC,SAAS,EAAC,+BAA+B,YACzD,OAAO,GACU,CACrB,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,KAAC,KAAK,IACJ,GAAG,EAAE,QAAQ,gCAEb,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,OAAO,EAAE,YAAY,GACrB,EACF,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,MAAM,4BAEL,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,WAAW,YAEnB,WAAW,GACL,EACT,KAAC,MAAM,6BAEL,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,YAEpB,YAAY,GACN,IACL,IACQ,GACT,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/react/components/SegmentedControl.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAG/C,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/react/components/SegmentedControl.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAG/C,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKzE,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM;IAC7C,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;sFACkF;IAClF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM;IACrD,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;kCAC8B;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,CAEpG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,UAAkB,EAClB,SAAS,EACT,YAAY,EAAE,SAAqB,EACnC,IAAW,EACX,KAAK,GACN,EAAE,qBAAqB,CAAC,CAAC,CAAC,+BAyE1B"}
|
|
@@ -6,6 +6,7 @@ import { cn, RAW_BUTTON } from '../lib/cn.js';
|
|
|
6
6
|
import { CONTROL_HEIGHT_CLASS } from '../lib/field.js';
|
|
7
7
|
import { Tooltip } from './Tooltip.js';
|
|
8
8
|
import { TAP_TARGET } from '../lib/tapTarget.js';
|
|
9
|
+
import { PRESS } from '../lib/press.js';
|
|
9
10
|
/** Labels this short are peers: the strip gives them equal segments unless told otherwise. */
|
|
10
11
|
export const EQUAL_SEGMENT_MAX_CHARS = 4;
|
|
11
12
|
/** Whether a set of options gets equal segments by default (FRM-7). Exported for tests. */
|
|
@@ -33,7 +34,7 @@ export function SegmentedControl({ options, value, onChange, capitalize = false,
|
|
|
33
34
|
const trigger = (_jsx(Tabs.Trigger, { value: opt.value, disabled: opt.disabled, "data-testid": opt['data-testid'], className: cn(
|
|
34
35
|
// Radix renders a <button>: desk (no preflight) drew the inactive segment in the
|
|
35
36
|
// browser's ButtonFace — #6b6b6b behind muted text, 1.42:1 in dark (forge task 2749).
|
|
36
|
-
RAW_BUTTON, 'inline-flex shrink-0 items-center justify-center whitespace-nowrap rounded-[calc(var(--radius-md)-0.25rem)] px-3 text-sm font-medium
|
|
37
|
+
RAW_BUTTON, 'inline-flex shrink-0 items-center justify-center whitespace-nowrap rounded-[calc(var(--radius-md)-0.25rem)] px-3 text-sm font-medium', PRESS, CONTROL_HEIGHT_CLASS[size], 'text-muted-foreground hover:text-foreground', 'data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-raised', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:text-muted-foreground', TAP_TARGET,
|
|
37
38
|
// One line box for every segment: a superscript (`<sup>`) must not push its
|
|
38
39
|
// segment's baseline down and make the row uneven.
|
|
39
40
|
'leading-none [&_sup]:leading-none', uniform && 'w-full', capitalize && 'capitalize'), children: opt.label }, opt.value));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../../../src/react/components/SegmentedControl.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAkB,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAoB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../../../src/react/components/SegmentedControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/react/components/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/react/components/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAO5C,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAChD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAClD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACpB,uEAAuE;IACvE,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,+DAA+D;IAC/D,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAC9C,KAAK,EACL,KAAK,EACL,YAAY,EACZ,aAAa,EACb,OAAqB,EACrB,IAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EAAE,SAAkB,GACjC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CA4G5B"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as RadixTabs from '@radix-ui/react-tabs';
|
|
3
|
-
import { useRef } from 'react';
|
|
3
|
+
import { useLayoutEffect, useRef, useState } from 'react';
|
|
4
4
|
import { useScrollFade } from '../hooks/useScrollFade.js';
|
|
5
5
|
import { cn } from '../lib/cn.js';
|
|
6
6
|
import { TAP_TARGET } from '../lib/tapTarget.js';
|
|
7
|
+
import { PRESS } from '../lib/press.js';
|
|
7
8
|
/**
|
|
8
9
|
* Tabbed panels built on Radix `Tabs` — full tablist/tab/tabpanel ARIA pattern with
|
|
9
10
|
* roving focus and arrow-key navigation for free. Unlike {@link SegmentedControl}
|
|
@@ -14,29 +15,81 @@ import { TAP_TARGET } from '../lib/tapTarget.js';
|
|
|
14
15
|
export function Tabs({ items, value, defaultValue, onValueChange, variant = 'underline', fill = false, className, contentClassName, 'aria-label': ariaLabel = 'Tabs', }) {
|
|
15
16
|
const listRef = useRef(null);
|
|
16
17
|
const fade = useScrollFade(listRef);
|
|
17
|
-
|
|
18
|
+
// Uncontrolled tabs change inside Radix without re-rendering this component; mirroring the
|
|
19
|
+
// value here is what lets the indicator below follow a click on an uncontrolled strip.
|
|
20
|
+
const [seen, setSeen] = useState(value ?? defaultValue ?? items[0]?.value);
|
|
21
|
+
const active = value ?? seen;
|
|
22
|
+
const indicator = useSlidingIndicator(listRef, variant === 'underline', active, items.length);
|
|
23
|
+
return (_jsxs(RadixTabs.Root, { value: value, defaultValue: defaultValue ?? items[0]?.value, onValueChange: (v) => {
|
|
24
|
+
setSeen(v);
|
|
25
|
+
onValueChange?.(v);
|
|
26
|
+
}, className: cn(fill && 'flex h-full min-h-0 flex-col', className), children: [_jsxs(RadixTabs.List, { ref: listRef, onScroll: fade.onScroll, "aria-label": ariaLabel, "data-cb-scrollarea": '', style: fade.style, className: cn(
|
|
18
27
|
// guardrails-ignore no-raw-overflow: small inline horizontal scroller for the
|
|
19
28
|
// tab-trigger row, not a keyboard-aware page scroll region.
|
|
20
29
|
'flex max-w-full items-center overflow-x-auto',
|
|
21
30
|
// The trigger row keeps its own height in the fill column — a shrinking
|
|
22
31
|
// tab strip is how "the panel fills the rest" turns into "the tabs get
|
|
23
32
|
// squeezed to nothing" on a short viewport.
|
|
24
|
-
fill && 'flex-none',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
fill && 'flex-none',
|
|
34
|
+
// `relative`: the sliding indicator is positioned against the strip, so it scrolls
|
|
35
|
+
// with the triggers when the row overflows.
|
|
36
|
+
variant === 'underline' && 'relative gap-1 border-b border-border', variant === 'pill' && 'inline-flex gap-0.5 rounded-md bg-muted p-1'), children: [items.map((item) => (_jsx(RadixTabs.Trigger, { value: item.value, disabled: item.disabled, className: cn('shrink-0 whitespace-nowrap text-sm font-medium', PRESS, 'text-muted-foreground hover:text-foreground', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'disabled:cursor-not-allowed disabled:opacity-50',
|
|
37
|
+
// `min-w-11` alongside `min-h-11`: a short label (a 2-letter app key like
|
|
38
|
+
// "db"/"cc") leaves the trigger's own padding-only width under 44px, which
|
|
39
|
+
// an automated touch-target probe flags even though `min-h-11` already
|
|
40
|
+
// satisfies the height floor (orch-host task-sources mobile scan measured
|
|
41
|
+
// a "db" tab at 17×44px).
|
|
42
|
+
TAP_TARGET,
|
|
43
|
+
// Active underline tab: accent underline + accent text + semibold — the
|
|
44
|
+
// same accent-marks-the-active-view treatment as the sidebar nav, so the
|
|
45
|
+
// selected tab is unmistakable at a glance (not just a hairline shift).
|
|
46
|
+
// Once the strip has measured, the underline is ONE indicator that glides
|
|
47
|
+
// between triggers (below), and the trigger's own border stays transparent;
|
|
48
|
+
// before that — no layout yet, or no script — the trigger draws it.
|
|
49
|
+
variant === 'underline' &&
|
|
50
|
+
'-mb-px border-b-2 border-transparent px-3 py-2 data-[state=active]:font-semibold data-[state=active]:text-accent', variant === 'underline' && !indicator && 'data-[state=active]:border-accent', variant === 'pill' &&
|
|
51
|
+
'rounded-[calc(var(--radius-md)-0.25rem)] px-3 py-1.5 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-raised'), children: item.label }, item.value))), indicator && (_jsx("span", { "aria-hidden": true, "data-cb-tab-indicator": '',
|
|
52
|
+
// A measured position: the active trigger's offset and width exist only at runtime.
|
|
53
|
+
style: { width: indicator.width, transform: `translateX(${indicator.left}px)` }, className: cn('pointer-events-none absolute bottom-0 left-0 h-0.5 rounded-full bg-accent',
|
|
54
|
+
// The first placement lands; every move after it glides (Linear's tab strip).
|
|
55
|
+
indicator.glide &&
|
|
56
|
+
'transition-[transform,width] duration-[var(--duration-base)] ease-[var(--ease-out)] motion-reduce:transition-none') }))] }), items.map((item) => (_jsx(RadixTabs.Content, { value: item.value, className: cn('pt-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
|
|
37
57
|
// Definite main size for the ACTIVE panel, so `h-full` below it resolves.
|
|
38
58
|
// An inactive panel is `hidden` (display:none) and contributes nothing, so
|
|
39
59
|
// this is safe to put on all of them.
|
|
40
60
|
fill && 'min-h-0 flex-1', contentClassName), children: item.content }, item.value)))] }));
|
|
41
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Measures the active trigger inside `listRef` and returns where the underline indicator sits
|
|
64
|
+
* (forge task 2912). Re-measures when the active value or the item count changes, and when the
|
|
65
|
+
* strip resizes — a label that wraps, a font that loads. `null` until there is a laid-out
|
|
66
|
+
* trigger to measure (happy-dom, a hidden panel), which is when the trigger draws its own border.
|
|
67
|
+
*/
|
|
68
|
+
function useSlidingIndicator(listRef, enabled, active, count) {
|
|
69
|
+
const [box, setBox] = useState(null);
|
|
70
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: `active` and `count` are the triggers to re-measure; the measurement reads the DOM.
|
|
71
|
+
useLayoutEffect(() => {
|
|
72
|
+
const list = listRef.current;
|
|
73
|
+
if (!enabled || !list)
|
|
74
|
+
return;
|
|
75
|
+
const measure = () => {
|
|
76
|
+
const tab = list.querySelector('[role="tab"][data-state="active"]');
|
|
77
|
+
if (!tab || tab.offsetWidth === 0)
|
|
78
|
+
return;
|
|
79
|
+
setBox((prev) => {
|
|
80
|
+
const next = { left: tab.offsetLeft, width: tab.offsetWidth, glide: prev !== null };
|
|
81
|
+
return prev && prev.left === next.left && prev.width === next.width ? prev : next;
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
measure();
|
|
85
|
+
if (typeof ResizeObserver === 'undefined')
|
|
86
|
+
return;
|
|
87
|
+
const ro = new ResizeObserver(measure);
|
|
88
|
+
ro.observe(list);
|
|
89
|
+
for (const tab of list.querySelectorAll('[role="tab"]'))
|
|
90
|
+
ro.observe(tab);
|
|
91
|
+
return () => ro.disconnect();
|
|
92
|
+
}, [enabled, active, count]);
|
|
93
|
+
return enabled ? box : null;
|
|
94
|
+
}
|
|
42
95
|
//# sourceMappingURL=Tabs.js.map
|