cursedbelt 5.94.0 → 5.95.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.
Files changed (49) hide show
  1. package/dist/react/components/AppShell.d.ts +12 -1
  2. package/dist/react/components/AppShell.d.ts.map +1 -1
  3. package/dist/react/components/AppShell.js +24 -5
  4. package/dist/react/components/AppShell.js.map +1 -1
  5. package/dist/react/components/ComboboxField.js +2 -2
  6. package/dist/react/components/ComboboxField.js.map +1 -1
  7. package/dist/react/components/DatePicker.d.ts +9 -5
  8. package/dist/react/components/DatePicker.d.ts.map +1 -1
  9. package/dist/react/components/DatePicker.js +192 -27
  10. package/dist/react/components/DatePicker.js.map +1 -1
  11. package/dist/react/components/InlineEditableText.d.ts +12 -2
  12. package/dist/react/components/InlineEditableText.d.ts.map +1 -1
  13. package/dist/react/components/InlineEditableText.js +11 -8
  14. package/dist/react/components/InlineEditableText.js.map +1 -1
  15. package/dist/react/components/suggestionList.js +2 -2
  16. package/dist/react/components/suggestionList.js.map +1 -1
  17. package/dist/react/lib/dateText.d.ts +21 -0
  18. package/dist/react/lib/dateText.d.ts.map +1 -0
  19. package/dist/react/lib/dateText.js +94 -0
  20. package/dist/react/lib/dateText.js.map +1 -0
  21. package/dist/react/lib/floatingStyles.d.ts +12 -0
  22. package/dist/react/lib/floatingStyles.d.ts.map +1 -1
  23. package/dist/react/lib/floatingStyles.js +12 -0
  24. package/dist/react/lib/floatingStyles.js.map +1 -1
  25. package/dist/styles-areas/analytics.css +11 -10
  26. package/dist/styles-areas/data-table.css +13 -12
  27. package/dist/styles-areas/fields.css +12 -10
  28. package/dist/styles-areas/stats.css +12 -11
  29. package/dist/styles-areas/wizard.css +6 -6
  30. package/dist/styles-utilities.css +15 -0
  31. package/package.json +1 -1
  32. package/src/react/components/AppShell.spec.tsx +53 -0
  33. package/src/react/components/AppShell.tsx +79 -23
  34. package/src/react/components/ComboboxField.tsx +2 -2
  35. package/src/react/components/ControlHeightScale.spec.tsx +2 -2
  36. package/src/react/components/DatePicker.spec.tsx +186 -5
  37. package/src/react/components/DatePicker.tsx +416 -63
  38. package/src/react/components/InlineEditableText.spec.tsx +29 -0
  39. package/src/react/components/InlineEditableText.tsx +26 -10
  40. package/src/react/components/suggestionList.tsx +2 -2
  41. package/src/react/lib/dateText.ts +94 -0
  42. package/src/react/lib/floatingStyles.spec.ts +36 -1
  43. package/src/react/lib/floatingStyles.ts +13 -0
  44. package/src/styles-areas/analytics.css +11 -10
  45. package/src/styles-areas/data-table.css +13 -12
  46. package/src/styles-areas/fields.css +12 -10
  47. package/src/styles-areas/stats.css +12 -11
  48. package/src/styles-areas/wizard.css +6 -6
  49. package/src/styles-utilities.css +15 -0
@@ -41,6 +41,17 @@ export interface AppShellProps {
41
41
  /** A section header was pressed while `navCollapsedSections` is controlled; `collapsed` is
42
42
  * the section's NEXT state. */
43
43
  onNavSectionToggle?: (section: string, collapsed: boolean) => void;
44
+ /**
45
+ * The 240px sidebar folded to the 64px icon rail at every width — the reader's choice, to see
46
+ * the page wider (a photo archive's grid, a canvas): Linear's `⌘\` and Notion's `«` fold theirs
47
+ * the same way. Controlled: the app remembers it (a setting, `localStorage`) and passes it back.
48
+ * With `onNavCollapsedChange` the rail head carries the fold button (`IconSidebar`, a tooltip
49
+ * either way); without it the sidebar is fixed open, as before. The rail keeps its places, the
50
+ * account and the ⌘K trigger folded (NAV-2, NAV-15); a phone is never folded — it has no sidebar.
51
+ */
52
+ navCollapsed?: boolean;
53
+ /** The fold button was pressed; `collapsed` is the sidebar's NEXT state. */
54
+ onNavCollapsedChange?: (collapsed: boolean) => void;
44
55
  /** Dynamic per-place badge (unread counts), keyed by domain id. A badge may carry its own tone (`{ value, tone }`) — see {@link NavBadge}. */
45
56
  navBadges?: Record<string, NavBadge>;
46
57
  /** How those counts READ — `alert` (default, red) for "this needs you", `neutral` or
@@ -171,7 +182,7 @@ export interface AppShellProps {
171
182
  * <header h-[--header-h]> ← left: brand · center: places or ⌘K field · right: account
172
183
  * <BannerLane /> ← NAV-10, only when there is a banner
173
184
  * <div flex min-h-0 grow> ← sidebar + content row
174
- * <aside md:flex lg:hidden w-16 /> ← 6+ places: the icon rail
185
+ * <aside md:flex lg:hidden w-16 /> ← 6+ places: the icon rail (and at lg, folded by `navCollapsed`)
175
186
  * <aside lg:flex w-60 /> ← 6+ places: the sectioned SideNav
176
187
  * <main><ScrollArea>{children}</ScrollArea></main> ← THE ONLY page scroll container
177
188
  * </div>
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/react/components/AppShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/react/components/AppShell.tsx"],"names":[],"mappings":"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"}
@@ -13,8 +13,10 @@ import { SideNav } from '../nav/SideNav.js';
13
13
  import { TopBarPlaces } from '../nav/TopBar.js';
14
14
  import { CommandSourceProvider, useCommandSources } from '../palette/commandSources.js';
15
15
  import { useCommandPalette } from '../palette/useCommandPalette.js';
16
+ import { IconSidebar } from '../icons.js';
16
17
  import { AmbientBackdrop } from './AmbientBackdrop.js';
17
18
  import { BannerLane } from './BannerLane.js';
19
+ import { IconButton } from './IconButton.js';
18
20
  import { lazyPart } from './DataTable/lazyPart.js';
19
21
  import { ScrollArea } from './ScrollArea.js';
20
22
  /**
@@ -52,7 +54,7 @@ const UNSECTIONED_MAX_PLACES = 7;
52
54
  * <header h-[--header-h]> ← left: brand · center: places or ⌘K field · right: account
53
55
  * <BannerLane /> ← NAV-10, only when there is a banner
54
56
  * <div flex min-h-0 grow> ← sidebar + content row
55
- * <aside md:flex lg:hidden w-16 /> ← 6+ places: the icon rail
57
+ * <aside md:flex lg:hidden w-16 /> ← 6+ places: the icon rail (and at lg, folded by `navCollapsed`)
56
58
  * <aside lg:flex w-60 /> ← 6+ places: the sectioned SideNav
57
59
  * <main><ScrollArea>{children}</ScrollArea></main> ← THE ONLY page scroll container
58
60
  * </div>
@@ -68,7 +70,7 @@ export function AppShell(props) {
68
70
  // palette the shell mounts, and the shell can read what they contributed.
69
71
  return (_jsx(CommandSourceProvider, { children: _jsx(Shell, { ...props }) }));
70
72
  }
71
- function Shell({ children, nav, navGate = allowAllGate, activeHref, onNavigate, navLinkComponent, resolveIcon, navPrefs, onNavPrefsChange, navCollapsedSections, onNavSectionToggle, navBadges, navBadgeTone, navHeader, navFooter, banners, density, commandPalette = 'auto', onCapture, captureLabel, onOpenCommand, commandLabel, commandHint, commandBarExtra, headerCenter, immersive = false, account, bottomDock, palette, placeBarMax = 5, placeBarLabels = 'active', scrollSpace = 'default', scrollRef, ambient, className, }) {
73
+ function Shell({ children, nav, navGate = allowAllGate, activeHref, onNavigate, navLinkComponent, resolveIcon, navPrefs, onNavPrefsChange, navCollapsedSections, onNavSectionToggle, navCollapsed = false, onNavCollapsedChange, navBadges, navBadgeTone, navHeader, navFooter, banners, density, commandPalette = 'auto', onCapture, captureLabel, onOpenCommand, commandLabel, commandHint, commandBarExtra, headerCenter, immersive = false, account, bottomDock, palette, placeBarMax = 5, placeBarLabels = 'active', scrollSpace = 'default', scrollRef, ambient, className, }) {
72
74
  useKeyboardInset();
73
75
  const places = nav ? deriveSideNavDomains(nav, navGate) : [];
74
76
  const pattern = !nav ? 'none' : places.length <= TOP_BAR_MAX_PLACES ? 'top' : 'side';
@@ -121,8 +123,25 @@ function Shell({ children, nav, navGate = allowAllGate, activeHref, onNavigate,
121
123
  * rail (md–lg) gets the account and the square ⌘K trigger; `onCapture` stays on the full sidebar
122
124
  * and the phone's PlaceBar, as a worded primary button cannot fit a 64px rail.
123
125
  */
124
- const railCommand = (collapsed) => openCommand || (!collapsed && (onCapture || commandBarExtra)) ? (_jsx(CommandBar, { className: collapsed ? 'flex-col' : 'w-full min-w-0 flex-wrap', compact: collapsed, onCapture: collapsed ? undefined : onCapture, captureLabel: captureLabel, onOpenCommand: openCommand, commandPlaceholder: commandLabel, commandHint: commandHint, extra: collapsed ? undefined : commandBarExtra })) : null;
125
- const railHead = (collapsed) => (_jsxs("div", { "data-cb-rail-head": '', className: cn('flex flex-col gap-3', collapsed && 'items-center'), children: [(navHeader && !collapsed) || account ? (_jsxs("div", { className: cn('flex min-w-0 items-center gap-2', collapsed && 'flex-col'), children: [navHeader && !collapsed ? _jsx("div", { className: 'flex min-w-0 flex-1 items-center overflow-hidden', children: navHeader }) : null, account ? (_jsx("div", { "data-cb-account": '', className: 'shrink-0', children: account })) : null] })) : null, railCommand(collapsed)] }));
126
+ // The fold button (`navCollapsed`): only where the app takes the choice back — a shell that cannot
127
+ // remember it does not offer it. On the icon rail it stacks under the account. On the full sidebar it
128
+ // sits at the leading edge of the ⌘K row, NOT on the brand line: the account launcher there is a
129
+ // worded control (cursedauth's "Curt Phillips ▾", 175px in a 240px rail), and a third control on
130
+ // that line left the brand no width at all (photos, WebKit, 2026-10-25). A shell with no ⌘K row
131
+ // keeps it on the brand line, where there is room.
132
+ const foldButton = (collapsed) => onNavCollapsedChange ? (_jsx(IconButton, { "data-cb-rail-fold": '', "aria-pressed": collapsed, label: collapsed ? 'Show the sidebar' : 'Hide the sidebar', tooltip: collapsed ? 'Show the sidebar with its names' : 'Fold the sidebar to icons, for a wider page', size: 'sm', variant: 'ghost', className: 'mt-0.5', onClick: () => onNavCollapsedChange(!collapsed), children: _jsx(IconSidebar, {}) })) : null;
133
+ const hasCommandRow = (collapsed) => Boolean(openCommand || (!collapsed && (onCapture || commandBarExtra)));
134
+ const railCommand = (collapsed) => {
135
+ if (!hasCommandRow(collapsed))
136
+ return null;
137
+ const bar = (_jsx(CommandBar, { className: collapsed ? 'flex-col' : 'w-full min-w-0 flex-wrap', compact: collapsed, onCapture: collapsed ? undefined : onCapture, captureLabel: captureLabel, onOpenCommand: openCommand, commandPlaceholder: commandLabel, commandHint: commandHint, extra: collapsed ? undefined : commandBarExtra }));
138
+ const fold = collapsed ? null : foldButton(false);
139
+ return fold ? (_jsxs("div", { "data-cb-rail-command-row": '', className: 'flex w-full min-w-0 items-start gap-1', children: [fold, _jsx("div", { className: 'min-w-0 flex-1', children: bar })] })) : (bar);
140
+ };
141
+ const railHead = (collapsed) => {
142
+ const foldOnBrandLine = collapsed || !hasCommandRow(collapsed);
143
+ return (_jsxs("div", { "data-cb-rail-head": '', className: cn('flex flex-col gap-3', collapsed && 'items-center'), children: [(navHeader && !collapsed) || account || (foldOnBrandLine && onNavCollapsedChange) ? (_jsxs("div", { className: cn('flex min-w-0 items-center gap-2', collapsed && 'flex-col'), children: [navHeader && !collapsed ? _jsx("div", { className: 'flex min-w-0 flex-1 items-center overflow-hidden', children: navHeader }) : null, account ? (_jsx("div", { "data-cb-account": '', className: 'shrink-0', children: account })) : null, foldOnBrandLine ? foldButton(collapsed) : null] })) : null, railCommand(collapsed)] }));
144
+ };
126
145
  const sideNavProps = {
127
146
  model: nav,
128
147
  gate: navGate,
@@ -159,6 +178,6 @@ function Shell({ children, nav, navGate = allowAllGate, activeHref, onNavigate,
159
178
  badgeTone: navBadgeTone === undefined && navBadges?.[d.id] === undefined ? undefined : navBadgeTone_(navBadges?.[d.id], navBadgeTone ?? 'alert'),
160
179
  unavailable: d.hostLimit && d.hostLimit.navigable !== true ? d.hostLimit.reason : undefined,
161
180
  linkProps: navLinkComponent ? undefined : { onClick: routeClick(d.path, onNavigate) },
162
- })) })) : headerCenter ? (headerCenter) : (commandBar) }), (pattern === 'top' || account) && (_jsxs("div", { "data-cb-header-zone": 'right', className: 'flex shrink-0 items-center gap-2', children: [pattern === 'top' ? commandBar : null, account && (_jsx("div", { "data-cb-account": '', className: 'shrink-0', children: account }))] }))] })), banners && banners.length > 0 ? _jsx(BannerLane, { banners: banners, className: cn(ambient && chrome) }) : null, _jsxs("div", { className: 'relative flex min-h-0 grow overflow-hidden', children: [pattern === 'side' && (_jsxs(_Fragment, { children: [_jsx("aside", { "data-cb-nav-rail": '', "data-cb-nav-collapsed": '', className: cn('hidden w-[var(--rail-w-collapsed)] border-r border-border md:flex md:shrink-0 md:flex-col lg:hidden', chrome), children: _jsx(SideNav, { ...sideNavProps, collapsed: true, header: railHead(true) }) }), _jsx("aside", { "data-cb-nav-rail": '', className: cn('hidden w-[var(--rail-w)] border-r border-border lg:flex lg:shrink-0 lg:flex-col', chrome), children: _jsx(SideNav, { ...sideNavProps, header: railHead(false), onPrefsChange: onNavPrefsChange, collapsedSections: navCollapsedSections, onSectionToggle: onNavSectionToggle }) })] })), _jsx("main", { className: 'flex min-h-0 min-w-0 grow flex-col', children: _jsx(ScrollArea, { space: scrollSpace, scrollRef: scrollRef, children: children }) })] }), showBottom && (_jsxs("div", { ref: bottomChromeRef, className: 'shrink-0 pb-[env(safe-area-inset-bottom,0px)]', children: [bottomDock && _jsx("div", { className: 'border-t border-border', children: bottomDock }), nav && (_jsx(PlaceBar, { className: cn('border-t border-border md:hidden', ambient && chrome), model: nav, gate: navGate, activeHref: activeHref, onNavigate: onNavigate, linkComponent: navLinkComponent, resolveIcon: resolveIcon, badges: navBadges, badgeTone: navBadgeTone, onCapture: onCapture, captureLabel: captureLabel, max: placeBarMax, labels: placeBarLabels }))] })), palette, ownPalette && nav && paletteMounted ? (_jsx(ShellCommandPalette, { model: nav, gate: navGate, open: paletteControls.open, onOpenChange: paletteControls.setOpen, onNavigate: navigate, resolveIcon: resolveIcon, currentPath: activeHref, places: true, sources: sources })) : null] }));
181
+ })) })) : headerCenter ? (headerCenter) : (commandBar) }), (pattern === 'top' || account) && (_jsxs("div", { "data-cb-header-zone": 'right', className: 'flex shrink-0 items-center gap-2', children: [pattern === 'top' ? commandBar : null, account && (_jsx("div", { "data-cb-account": '', className: 'shrink-0', children: account }))] }))] })), banners && banners.length > 0 ? _jsx(BannerLane, { banners: banners, className: cn(ambient && chrome) }) : null, _jsxs("div", { className: 'relative flex min-h-0 grow overflow-hidden', children: [pattern === 'side' && (_jsxs(_Fragment, { children: [_jsx("aside", { "data-cb-nav-rail": '', "data-cb-nav-collapsed": '', className: cn('hidden w-[var(--rail-w-collapsed)] border-r border-border md:flex md:shrink-0 md:flex-col', !navCollapsed && 'lg:hidden', chrome), children: _jsx(SideNav, { ...sideNavProps, collapsed: true, header: railHead(true) }) }), _jsx("aside", { "data-cb-nav-rail": '', className: cn('hidden w-[var(--rail-w)] border-r border-border', !navCollapsed && 'lg:flex lg:shrink-0 lg:flex-col', chrome), children: _jsx(SideNav, { ...sideNavProps, header: railHead(false), onPrefsChange: onNavPrefsChange, collapsedSections: navCollapsedSections, onSectionToggle: onNavSectionToggle }) })] })), _jsx("main", { className: 'flex min-h-0 min-w-0 grow flex-col', children: _jsx(ScrollArea, { space: scrollSpace, scrollRef: scrollRef, children: children }) })] }), showBottom && (_jsxs("div", { ref: bottomChromeRef, className: 'shrink-0 pb-[env(safe-area-inset-bottom,0px)]', children: [bottomDock && _jsx("div", { className: 'border-t border-border', children: bottomDock }), nav && (_jsx(PlaceBar, { className: cn('border-t border-border md:hidden', ambient && chrome), model: nav, gate: navGate, activeHref: activeHref, onNavigate: onNavigate, linkComponent: navLinkComponent, resolveIcon: resolveIcon, badges: navBadges, badgeTone: navBadgeTone, onCapture: onCapture, captureLabel: captureLabel, max: placeBarMax, labels: placeBarLabels }))] })), palette, ownPalette && nav && paletteMounted ? (_jsx(ShellCommandPalette, { model: nav, gate: navGate, open: paletteControls.open, onOpenChange: paletteControls.setOpen, onNavigate: navigate, resolveIcon: resolveIcon, currentPath: activeHref, places: true, sources: sources })) : null] }));
163
182
  }
164
183
  //# sourceMappingURL=AppShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/react/components/AppShell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA8C,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxF,OAAO,EACL,YAAY,EACZ,oBAAoB,GAIrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAqB,cAAc,EAAqB,UAAU,EAAE,UAAU,EAAiB,YAAY,IAAI,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChL,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AA+KjH,iGAAiG;AACjG,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,+FAA+F;AAC/F,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,4FAA4F;IAC5F,0EAA0E;IAC1E,OAAO,CACL,KAAC,qBAAqB,cACpB,KAAC,KAAK,OAAK,KAAK,GAAI,GACE,CACzB,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EACb,QAAQ,EACR,GAAG,EACH,OAAO,GAAG,YAAY,EACtB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,EACT,OAAO,EACP,OAAO,EACP,cAAc,GAAG,MAAM,EACvB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,UAAU,EACV,OAAO,EACP,WAAW,GAAG,CAAC,EACf,cAAc,GAAG,QAAQ,EACzB,WAAW,GAAG,SAAS,EACvB,SAAS,EACT,OAAO,EACP,SAAS,GACK;IACd,gBAAgB,EAAE,CAAC;IAEnB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,OAAO,GAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9G,IAAI,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,sBAAsB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACnG,WAAW,CACT,sBAAsB,EACtB,oCAAoC,MAAM,CAAC,MAAM,4DAA4D;YAC3G,kGAAkG,CACrG,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACjH,MAAM,eAAe,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,4FAA4F;IAC5F,sFAAsF;IACtF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,eAAe,CAAC,IAAI,IAAI,CAAC,cAAc;QAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,MAAM,WAAW,GAAG,aAAa,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;QAChC,IAAI,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC;;YAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,IAAI,SAAS,IAAI,OAAO,IAAI,WAAW,IAAI,SAAS,IAAI,eAAe,IAAI,YAAY,CAAC,CAAC;IACpI,MAAM,UAAU,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC7D,iFAAiF;IACjF,iFAAiF;IACjF,mEAAmE;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC;IAE7D,MAAM,UAAU,GAAG,CACjB,KAAC,UAAU;IACT,sFAAsF;IACtF,sDAAsD;;QADtD,sFAAsF;QACtF,sDAAsD;QACtD,SAAS,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,0BAA0B,EACtE,OAAO,EAAE,OAAO,KAAK,KAAK,EAC1B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY;QAC1B,6EAA6E;QAC7E,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,EAChC,aAAa,EAAE,WAAW,EAC1B,kBAAkB,EAAE,YAAY,EAChC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,eAAe,GACtB,CACH,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,WAAW,GAAG,CAAC,SAAkB,EAAE,EAAE,CACzC,WAAW,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9D,KAAC,UAAU,IACT,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,0BAA0B,EAC9D,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC5C,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,WAAW,EAC1B,kBAAkB,EAAE,YAAY,EAChC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,GAC9C,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,QAAQ,GAAG,CAAC,SAAkB,EAAE,EAAE,CAAC,CACvC,oCAAuB,EAAE,EAAC,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,IAAI,cAAc,CAAC,aACxF,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CACtC,eAAK,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE,SAAS,IAAI,UAAU,CAAC,aAC3E,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,kDAAkD,YAAE,SAAS,GAAO,CAAC,CAAC,CAAC,IAAI,EACpH,OAAO,CAAC,CAAC,CAAC,CACT,iCAAqB,EAAE,EAAC,SAAS,EAAC,UAAU,YACzC,OAAO,GACJ,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,CAAC,SAAS,CAAC,IACnB,CACP,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,KAAK,EAAE,GAAsB;QAC7B,IAAI,EAAE,OAAO;QACb,UAAU;QACV,UAAU;QACV,aAAa,EAAE,gBAAgB;QAC/B,WAAW;QACX,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,OAAO,CACL,mCACmB,EAAE,yBACE,OAAO,uBACT,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAC7C,SAAS,EAAE,EAAE,CACX,mEAAmE;QACnE,6EAA6E;QAC7E,2EAA2E;QAC3E,0EAA0E;QAC1E,OAAO,IAAI,iBAAiB,EAC5B,SAAS,CACV,aAMA,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,eAAe,IAAC,QAAQ,EAAC,UAAU,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAI,CAC/E,CAAC,CAAC,CAAC,IAAI,EAGP,SAAS,IAAI,CACZ,uCACoB,EAAE,qBACH,OAAO,EACxB,SAAS,EAAE,EAAE,CACX,oFAAoF;gBACpF,iFAAiF;gBACjF,OAAO,KAAK,MAAM,IAAI,WAAW,EACjC,OAAO,KAAK,OAAO;oBACjB,CAAC,CAAC,2BAA2B;oBAC7B,CAAC,CAAC,OAAO,KAAK,OAAO;wBACnB,CAAC,CAAC,2BAA2B;wBAC7B,CAAC,CAAC,qBAAqB,EAC3B,OAAO,IAAI,MAAM,CAClB,aAED,qCAAyB,MAAM,EAAC,SAAS,EAAC,4BAA4B,YACnE,SAAS,GACN,EACN,qCAAyB,QAAQ,EAAC,SAAS,EAAC,wDAAwD,YACjG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CACnB,KAAC,YAAY;wBACX,gFAAgF;;4BAAhF,gFAAgF;4BAChF,WAAW,EAAC,MAAM,EAClB,aAAa,EAAE,gBAAgB,EAC/B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCACxB,EAAE,EAAE,CAAC,CAAC,EAAE;gCACR,KAAK,EAAE,CAAC,CAAC,KAAK;gCACd,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC;gCACrC,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC;gCACrC,KAAK,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS;gCACpD,SAAS,EAAE,YAAY,KAAK,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,IAAI,OAAO,CAAC;gCAChJ,WAAW,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gCAC3F,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;6BACtF,CAAC,CAAC,GACH,CACH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CACjB,YAAY,CACb,CAAC,CAAC,CAAC,CACF,UAAU,CACX,GACG,EAEL,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CACjC,sCAAyB,OAAO,EAAC,SAAS,EAAC,kCAAkC,aAC1E,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EACrC,OAAO,IAAI,CACV,iCAAqB,EAAE,EAAC,SAAS,EAAC,UAAU,YACzC,OAAO,GACJ,CACP,IACG,CACP,IACM,CACV,EAGA,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,MAAM,CAAC,GAAI,CAAC,CAAC,CAAC,IAAI,EAG1G,eAAK,SAAS,EAAC,4CAA4C,aAKxD,OAAO,KAAK,MAAM,IAAI,CACrB,8BACE,oCACmB,EAAE,2BACG,EAAE,EACxB,SAAS,EAAE,EAAE,CACX,qGAAqG,EACrG,MAAM,CACP,YAED,KAAC,OAAO,OAAK,YAAY,EAAE,SAAS,QAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAI,GACzD,EACR,oCACmB,EAAE,EACnB,SAAS,EAAE,EAAE,CACX,iFAAiF,EACjF,MAAM,CACP,YAED,KAAC,OAAO,OACF,YAAY,EAChB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,EACvB,aAAa,EAAE,gBAAgB,EAC/B,iBAAiB,EAAE,oBAAoB,EACvC,eAAe,EAAE,kBAAkB,GACnC,GACI,IACP,CACJ,EAMD,eAAM,SAAS,EAAC,oCAAoC,YAClD,KAAC,UAAU,IAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,YACjD,QAAQ,GACE,GACR,IACH,EAGL,UAAU,IAAI,CACb,eAAK,GAAG,EAAE,eAAe,EAAE,SAAS,EAAC,+CAA+C,aACjF,UAAU,IAAI,cAAK,SAAS,EAAC,wBAAwB,YAAE,UAAU,GAAO,EACxE,GAAG,IAAI,CACN,KAAC,QAAQ,IACP,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,OAAO,IAAI,MAAM,CAAC,EACpE,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,gBAAgB,EAC/B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,cAAc,GACtB,CACH,IACG,CACP,EAGA,OAAO,EACP,UAAU,IAAI,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CACrC,KAAC,mBAAmB,IAClB,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,eAAe,CAAC,IAAI,EAC1B,YAAY,EAAE,eAAe,CAAC,OAAO,EACrC,UAAU,EAAE,QAAQ,EACpB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,UAAU,EACvB,MAAM,QACN,OAAO,EAAE,OAAO,GAChB,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/react/components/AppShell.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { Check, ChevronDown, Loader2, Plus, X } from 'lucide-react';
5
5
  import { useCallback, useEffect, useRef, useState } from 'react';
6
6
  import { cn } from '../lib/cn.js';
7
7
  import { CONTROL_HEIGHT_CLASS, CONTROL_MIN_HEIGHT_CLASS, choiceFieldWidth, declareFieldWidth, } from '../lib/field.js';
8
- import { FLOATING_COLLISION_PADDING, FLOATING_CONTENT_BASE, FLOATING_ITEM_BASE } from '../lib/floatingStyles.js';
8
+ import { BASE_UI_POSITIONER, FLOATING_COLLISION_PADDING, FLOATING_CONTENT_BASE, FLOATING_ITEM_BASE } from '../lib/floatingStyles.js';
9
9
  import { TAP_TARGET, TAP_TARGET_HEIGHT } from '../lib/tapTarget.js';
10
10
  const DEBOUNCE_MS = 250;
11
11
  /** Sentinel value used to represent the "Create new" option inside Base UI. */
@@ -118,7 +118,7 @@ export function ComboboxField(props) {
118
118
  placeholder: multiple && (multiValue?.length ?? 0) > 0 ? undefined : placeholder, className: cn(
119
119
  // `m-0 border-0 font-[inherit]`: the group draws the frame, and a host with no
120
120
  // preflight (desk) would otherwise add the UA's inset border and control face (task 2757).
121
- 'm-0 min-w-24 flex-1 border-0 bg-transparent px-3 font-[inherit] text-base text-field-fg outline-none placeholder:text-field-placeholder sm:pointer-fine:text-sm', TAP_TARGET_HEIGHT, multiple && 'py-1.5') }), loading ? (_jsx(Loader2, { className: 'mr-2 size-4 shrink-0 animate-spin opacity-50', "aria-label": 'Loading options' })) : (_jsx(Combobox.Trigger, { "aria-label": 'Toggle options', className: `mr-2 flex size-5 shrink-0 items-center justify-center text-muted-foreground transition hover:text-foreground ${TAP_TARGET}`, children: _jsx(ChevronDown, { className: 'size-4' }) }))] }), _jsx(Combobox.Portal, { children: _jsx(Combobox.Positioner, { sideOffset: 4, collisionPadding: FLOATING_COLLISION_PADDING, className: 'z-[var(--z-popover)]', children: _jsx(Combobox.Popup, { className: cn(FLOATING_CONTENT_BASE,
121
+ 'm-0 min-w-24 flex-1 border-0 bg-transparent px-3 font-[inherit] text-base text-field-fg outline-none placeholder:text-field-placeholder sm:pointer-fine:text-sm', TAP_TARGET_HEIGHT, multiple && 'py-1.5') }), loading ? (_jsx(Loader2, { className: 'mr-2 size-4 shrink-0 animate-spin opacity-50', "aria-label": 'Loading options' })) : (_jsx(Combobox.Trigger, { "aria-label": 'Toggle options', className: `mr-2 flex size-5 shrink-0 items-center justify-center text-muted-foreground transition hover:text-foreground ${TAP_TARGET}`, children: _jsx(ChevronDown, { className: 'size-4' }) }))] }), _jsx(Combobox.Portal, { children: _jsx(Combobox.Positioner, { sideOffset: 4, collisionPadding: FLOATING_COLLISION_PADDING, className: BASE_UI_POSITIONER, children: _jsx(Combobox.Popup, { className: cn(FLOATING_CONTENT_BASE,
122
122
  // guardrails-ignore no-raw-overflow: floating popover panel outside the page's ScrollArea, height-capped by max-h-64 — no keyboard-inset concern.
123
123
  'max-h-64 min-w-[var(--anchor-width)] overflow-y-auto p-0', 'transition-[transform,opacity] duration-100', 'data-[starting-style]:scale-95 data-[starting-style]:opacity-0', 'data-[ending-style]:scale-95 data-[ending-style]:opacity-0'), children: _jsx(ComboboxList, { creatable: creatable, query: query, onCreateClick: handleCreate, emptyLabel: emptyLabel }) }) }) })] }));
124
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxField.js","sourceRoot":"","sources":["../../../src/react/components/ComboboxField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxField.js","sourceRoot":"","sources":["../../../src/react/components/ComboboxField.tsx"],"names":[],"mappings":"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"}
@@ -19,13 +19,17 @@ export interface DatePickerProps {
19
19
  size?: ControlSize;
20
20
  }
21
21
  /**
22
- * Token-themed date picker on `@daypicker/react`. Replaces the bare
23
- * `<input type="date">` for the `FieldInput` `date` type — presents a calendar
24
- * popover on desktop and a bottom sheet on mobile (&lt;640 px), with full
25
- * keyboard navigation and screen-reader labels.
22
+ * Token-themed date picker on `@daypicker/react`. The field is a text input a person can
23
+ * TYPE a date into (`2015-12-05`, `12/5/2015`, `Dec 5 2015`, `December 5, 2015`, `5 Dec
24
+ * 2015`; a two-digit year reads as the nearest sensible century), normalized to ISO on
25
+ * blur or Enter — and a calendar button beside it opens a popover on desktop or a bottom
26
+ * sheet on mobile (&lt;640 px). In the calendar the month AND year step with buttons, the
27
+ * caption opens a year/month chooser, and PageUp/PageDown (Shift for a year) move the view.
26
28
  *
27
29
  * Value is an ISO date string (`'YYYY-MM-DD'`), matching what a native date
28
- * input produces, so it's drop-in compatible with existing RHF form schemas.
30
+ * input produces, so it's drop-in compatible with existing RHF form schemas. Typed text that
31
+ * does not parse, or falls outside `min`/`max`, never reaches `onChange`: the field turns
32
+ * invalid with a short reason, and Escape restores the last good value.
29
33
  */
30
34
  export declare function DatePicker({ value, onChange, onBlur, placeholder, disabled, id, name, min, max, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, size, ...rest }: DatePickerProps): import("react").JSX.Element;
31
35
  //# sourceMappingURL=DatePicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/react/components/DatePicker.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,WAAW,EAAwC,MAAM,iBAAiB,CAAC;AAKzF,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;kCAC8B;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,WAA2B,EAC3B,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,GAAG,EACH,GAAG,EACH,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,IAAW,EACX,GAAG,IAAI,EACR,EAAE,eAAe,+BA0FjB"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/react/components/DatePicker.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,iBAAiB,CAAC;AAQtE,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;kCAC8B;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAgPD;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,WAA2B,EAC3B,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,GAAG,EACH,GAAG,EACH,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,IAAW,EACX,GAAG,IAAI,EACR,EAAE,eAAe,+BA4LjB"}
@@ -1,33 +1,160 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { DayPicker } from '@daypicker/react';
3
- import { Calendar } from 'lucide-react';
4
- import { useState } from 'react';
3
+ import { Calendar, ChevronDown, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, } from 'lucide-react';
4
+ import { useEffect, useId, useState } from 'react';
5
5
  import { useMediaQuery } from '../hooks/useMediaQuery.js';
6
6
  import { cn } from '../lib/cn.js';
7
+ import { RAW_BUTTON } from '../lib/cn.js';
8
+ import { TAP_TARGET_HEIGHT } from '../lib/tapTarget.js';
9
+ import { parseDateText } from '../lib/dateText.js';
7
10
  import { DAY_PICKER_CLASS_NAMES, DayPickerChevron, formatDateDisplay, isoToLocalDate, localDateToIso, ThemedDayButton, } from '../lib/daypicker.js';
8
- import { declareFieldWidth, fieldControlClass } from '../lib/field.js';
11
+ import { declareFieldWidth } from '../lib/field.js';
9
12
  import { Drawer } from './Drawer.js';
13
+ import { Button } from './Button.js';
14
+ import { IconButton } from './IconButton.js';
15
+ import { Input } from './Input.js';
10
16
  import { Popover } from './Popover.js';
11
- import { RAW_BUTTON } from '../lib/cn.js';
17
+ import { ScrollArea } from './ScrollArea.js';
18
+ const monthStart = (d) => new Date(d.getFullYear(), d.getMonth(), 1);
19
+ const addMonths = (d, n) => new Date(d.getFullYear(), d.getMonth() + n, 1);
20
+ /** Keep a month inside the [min, max] months, if given. */
21
+ function clampMonth(d, min, max) {
22
+ const first = monthStart(d);
23
+ if (min && first < monthStart(min))
24
+ return monthStart(min);
25
+ if (max && first > monthStart(max))
26
+ return monthStart(max);
27
+ return first;
28
+ }
29
+ const sameMonth = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
30
+ const CHOOSER_BUTTON = `flex h-[var(--control-h-sm)] ${TAP_TARGET_HEIGHT} w-full items-center justify-center rounded-md text-sm transition-colors hover:bg-accent/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:pointer-events-none disabled:opacity-30`;
31
+ const CHOOSER_SELECTED = 'bg-accent-solid text-white hover:bg-accent-solid-hover';
32
+ /** One cell of the year / month chooser grids. */
33
+ function ChooserCell({ current, disabled, tall, label, onPick, children, }) {
34
+ return (_jsx("button", {
35
+ // guardrails-ignore no-raw-action-button: task 3764 — a cell in the year/month chooser grid, a
36
+ // presentational selection like ThemedDayButton (STANDARDS.md §4a carve-out).
37
+ type: 'button', disabled: disabled, "aria-current": current ? 'date' : undefined, "aria-label": label, ref: (el) => {
38
+ // Bring the viewed year into view in the scrolling year grid.
39
+ if (el && current)
40
+ el.scrollIntoView?.({ block: 'center' });
41
+ }, className: cn(RAW_BUTTON, CHOOSER_BUTTON, tall && 'h-[var(--control-h-lg)]', current && CHOOSER_SELECTED), onClick: onPick, children: children }));
42
+ }
43
+ /**
44
+ * The calendar body: month + year steppers, a caption that opens a year/month chooser, and
45
+ * the day grid. PageUp/PageDown (month) and Shift+PageUp/PageDown (year) are DayPicker's own,
46
+ * per the WAI-ARIA date-picker dialog pattern; the month is controlled here so the steppers,
47
+ * the chooser and the keys all move the same view.
48
+ */
49
+ function DatePickerCalendar({ selected, month, onMonthChange, onSelect, minDate, maxDate, }) {
50
+ const [view, setView] = useState('days');
51
+ const [chosenYear, setChosenYear] = useState(month.getFullYear());
52
+ const disabledMatchers = [];
53
+ if (minDate)
54
+ disabledMatchers.push({ before: minDate });
55
+ if (maxDate)
56
+ disabledMatchers.push({ after: maxDate });
57
+ const step = (months) => onMonthChange(clampMonth(addMonths(month, months), minDate, maxDate));
58
+ const stepDisabled = (months) => sameMonth(clampMonth(addMonths(month, months), minDate, maxDate), month);
59
+ if (view === 'years') {
60
+ const thisYear = new Date().getFullYear();
61
+ const first = minDate ? minDate.getFullYear() : Math.min(1900, month.getFullYear());
62
+ const last = maxDate ? maxDate.getFullYear() : Math.max(thisYear + 30, month.getFullYear());
63
+ const years = Array.from({ length: last - first + 1 }, (_, i) => first + i);
64
+ return (_jsxs("div", { children: [_jsxs("div", { className: `flex h-[var(--control-h-lg)] ${TAP_TARGET_HEIGHT} items-center gap-1 pb-1`, children: [_jsx(IconButton, { label: 'Back to calendar', size: 'sm', onClick: () => setView('days'), children: _jsx(ChevronLeft, {}) }), _jsx("span", { className: 'flex-1 text-center text-sm font-semibold', children: "Choose a year" }), _jsx("span", { className: 'w-[var(--control-h-sm)]', "aria-hidden": true })] }), _jsx(ScrollArea, { className: 'max-h-60', space: 'none', safeArea: false, children: _jsx("fieldset", { "aria-label": 'Year', className: 'm-0 grid min-w-0 grid-cols-4 gap-1 border-0 p-0', children: years.map((year) => {
65
+ const isCurrent = year === month.getFullYear();
66
+ return (_jsx(ChooserCell, { current: isCurrent, onPick: () => {
67
+ setChosenYear(year);
68
+ setView('months');
69
+ }, children: year }, year));
70
+ }) }) })] }));
71
+ }
72
+ if (view === 'months') {
73
+ return (_jsxs("div", { children: [_jsxs("div", { className: `flex h-[var(--control-h-lg)] ${TAP_TARGET_HEIGHT} items-center gap-1 pb-1`, children: [_jsx(IconButton, { label: 'Choose another year', size: 'sm', onClick: () => setView('years'), children: _jsx(ChevronLeft, {}) }), _jsx("span", { className: 'flex-1 text-center text-sm font-semibold', children: chosenYear }), _jsx("span", { className: 'w-[var(--control-h-sm)]', "aria-hidden": true })] }), _jsx("fieldset", { "aria-label": 'Month', className: 'm-0 grid min-w-0 grid-cols-3 gap-1 border-0 p-0', children: Array.from({ length: 12 }, (_, i) => {
74
+ const start = new Date(chosenYear, i, 1);
75
+ const outOfRange = (minDate !== undefined && start < monthStart(minDate)) ||
76
+ (maxDate !== undefined && start > monthStart(maxDate));
77
+ const isCurrent = sameMonth(start, month);
78
+ return (_jsx(ChooserCell, { current: isCurrent, disabled: outOfRange, tall: true, label: start.toLocaleDateString(undefined, { month: 'long', year: 'numeric' }), onPick: () => {
79
+ onMonthChange(start);
80
+ setView('days');
81
+ }, children: start.toLocaleDateString(undefined, { month: 'short' }) }, start.getTime()));
82
+ }) })] }));
83
+ }
84
+ return (_jsxs("div", { children: [_jsxs("div", { className: 'flex items-center gap-0.5 pb-1', children: [_jsx(IconButton, { label: 'Previous year', size: 'sm', disabled: stepDisabled(-12), onClick: () => step(-12), children: _jsx(ChevronsLeft, {}) }), _jsx(IconButton, { label: 'Previous month', size: 'sm', disabled: stepDisabled(-1), onClick: () => step(-1), children: _jsx(ChevronLeft, {}) }), _jsxs(Button, { variant: 'ghost', size: 'sm', tooltip: 'Choose month and year', "aria-haspopup": 'dialog', "aria-label": `${month.toLocaleDateString(undefined, { month: 'long', year: 'numeric' })}, choose month and year`, className: `min-w-0 flex-1 gap-1 font-semibold ${TAP_TARGET_HEIGHT}`, onClick: () => {
85
+ setChosenYear(month.getFullYear());
86
+ setView('years');
87
+ }, children: [_jsx("span", { className: 'truncate', children: month.toLocaleDateString(undefined, { month: 'long', year: 'numeric' }) }), _jsx(ChevronDown, { className: 'h-3.5 w-3.5 shrink-0 opacity-60' })] }), _jsx(IconButton, { label: 'Next month', size: 'sm', disabled: stepDisabled(1), onClick: () => step(1), children: _jsx(ChevronRight, {}) }), _jsx(IconButton, { label: 'Next year', size: 'sm', disabled: stepDisabled(12), onClick: () => step(12), children: _jsx(ChevronsRight, {}) })] }), _jsx(DayPicker, { mode: 'single', selected: selected, onSelect: onSelect, month: month, onMonthChange: (next) => onMonthChange(clampMonth(next, minDate, maxDate)), hideNavigation: true, classNames: { ...DAY_PICKER_CLASS_NAMES, month_caption: 'hidden' }, components: { DayButton: ThemedDayButton, Chevron: DayPickerChevron }, disabled: disabledMatchers.length > 0 ? disabledMatchers : undefined, startMonth: minDate, endMonth: maxDate })] }));
88
+ }
12
89
  /**
13
- * Token-themed date picker on `@daypicker/react`. Replaces the bare
14
- * `<input type="date">` for the `FieldInput` `date` type — presents a calendar
15
- * popover on desktop and a bottom sheet on mobile (&lt;640 px), with full
16
- * keyboard navigation and screen-reader labels.
90
+ * Token-themed date picker on `@daypicker/react`. The field is a text input a person can
91
+ * TYPE a date into (`2015-12-05`, `12/5/2015`, `Dec 5 2015`, `December 5, 2015`, `5 Dec
92
+ * 2015`; a two-digit year reads as the nearest sensible century), normalized to ISO on
93
+ * blur or Enter — and a calendar button beside it opens a popover on desktop or a bottom
94
+ * sheet on mobile (&lt;640 px). In the calendar the month AND year step with buttons, the
95
+ * caption opens a year/month chooser, and PageUp/PageDown (Shift for a year) move the view.
17
96
  *
18
97
  * Value is an ISO date string (`'YYYY-MM-DD'`), matching what a native date
19
- * input produces, so it's drop-in compatible with existing RHF form schemas.
98
+ * input produces, so it's drop-in compatible with existing RHF form schemas. Typed text that
99
+ * does not parse, or falls outside `min`/`max`, never reaches `onChange`: the field turns
100
+ * invalid with a short reason, and Escape restores the last good value.
20
101
  */
21
102
  export function DatePicker({ value, onChange, onBlur, placeholder = 'Pick a date', disabled, id, name, min, max, 'aria-invalid': ariaInvalid, 'aria-describedby': ariaDescribedBy, size = 'md', ...rest }) {
22
103
  const [open, setOpen] = useState(false);
23
104
  const isMobile = useMediaQuery('(max-width: 639px)');
105
+ const [anchor, setAnchor] = useState(null);
106
+ const errorId = useId();
24
107
  const selectedDate = value ? isoToLocalDate(value) : undefined;
25
- const defaultMonth = selectedDate ?? new Date();
26
- const disabledMatchers = [];
27
- if (min)
28
- disabledMatchers.push({ before: isoToLocalDate(min) });
29
- if (max)
30
- disabledMatchers.push({ after: isoToLocalDate(max) });
108
+ const minDate = min ? isoToLocalDate(min) : undefined;
109
+ const maxDate = max ? isoToLocalDate(max) : undefined;
110
+ // The text being typed, or null while the field just shows the value.
111
+ const [draft, setDraft] = useState(null);
112
+ const [error, setError] = useState(null);
113
+ const [month, setMonth] = useState(() => clampMonth(selectedDate ?? new Date(), minDate, maxDate));
114
+ // A new value from outside (or a pick in the calendar) replaces whatever was being typed
115
+ // and moves the calendar's view to it. min/max only bound the clamp: the view moves when the
116
+ // value does, so they stay out of the dependency list.
117
+ // biome-ignore lint/correctness/useExhaustiveDependencies: see above
118
+ useEffect(() => {
119
+ setDraft(null);
120
+ setError(null);
121
+ if (value)
122
+ setMonth(clampMonth(isoToLocalDate(value), minDate, maxDate));
123
+ }, [value]);
124
+ const display = selectedDate ? formatDateDisplay(selectedDate) : '';
125
+ const inputText = draft ?? display;
126
+ const refuse = (reason) => {
127
+ setError(reason);
128
+ return false;
129
+ };
130
+ /** Parse the draft; on success call onChange once and return to the display form. */
131
+ const commitDraft = () => {
132
+ if (draft === null)
133
+ return true;
134
+ if (draft.trim() === '') {
135
+ setDraft(null);
136
+ setError(null);
137
+ if (value)
138
+ onChange?.(undefined);
139
+ return true;
140
+ }
141
+ const parsed = parseDateText(draft);
142
+ if (!parsed.ok)
143
+ return refuse(parsed.reason);
144
+ const date = isoToLocalDate(parsed.iso);
145
+ if (minDate && date < minDate) {
146
+ return refuse(`Pick a date on or after ${formatDateDisplay(minDate)}`);
147
+ }
148
+ if (maxDate && date > maxDate) {
149
+ return refuse(`Pick a date on or before ${formatDateDisplay(maxDate)}`);
150
+ }
151
+ setDraft(null);
152
+ setError(null);
153
+ setMonth(clampMonth(date, minDate, maxDate));
154
+ if (parsed.iso !== value)
155
+ onChange?.(parsed.iso);
156
+ return true;
157
+ };
31
158
  const handleSelect = (date) => {
32
159
  onChange?.(date ? localDateToIso(date) : undefined);
33
160
  setOpen(false);
@@ -35,21 +162,59 @@ export function DatePicker({ value, onChange, onBlur, placeholder = 'Pick a date
35
162
  };
36
163
  const handleOpenChange = (next) => {
37
164
  setOpen(next);
38
- if (!next)
165
+ if (next) {
166
+ // Open on the typed date when the text is valid, else on the value.
167
+ setMonth(clampMonth(selectedDate ?? new Date(), minDate, maxDate));
168
+ }
169
+ else
39
170
  onBlur?.();
40
171
  };
41
- const triggerLabel = selectedDate ? formatDateDisplay(selectedDate) : placeholder;
42
- const trigger = (_jsxs("button", { ...rest,
43
- // guardrails-ignore no-raw-action-button: presentational popover/drawer trigger for
44
- // the calendar (opens a picker, doesn't mutate) — styled as a field via
45
- // fieldControlClass and needs to be a plain <button> to work as both the Popover
46
- // and Drawer trigger.
47
- type: 'button', id: id, name: name, disabled: disabled, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, "aria-haspopup": 'dialog', "aria-expanded": open, "aria-label": selectedDate ? triggerLabel : placeholder, onClick: () => setOpen(true), className: cn(RAW_BUTTON, fieldControlClass(size), 'flex cursor-pointer items-center justify-between text-left', !selectedDate && 'text-field-placeholder', disabled && 'cursor-not-allowed'), children: [_jsx("span", { children: triggerLabel }), _jsx(Calendar, { className: 'h-4 w-4 shrink-0 opacity-50' })] }));
48
- const calendar = (_jsx(DayPicker, { mode: 'single', selected: selectedDate, onSelect: handleSelect, defaultMonth: defaultMonth, classNames: DAY_PICKER_CLASS_NAMES, components: { DayButton: ThemedDayButton, Chevron: DayPickerChevron }, disabled: disabledMatchers.length > 0 ? disabledMatchers : undefined, startMonth: min ? isoToLocalDate(min) : undefined, endMonth: max ? isoToLocalDate(max) : undefined }));
172
+ const openCalendar = () => {
173
+ if (disabled)
174
+ return;
175
+ if (draft !== null) {
176
+ const parsed = parseDateText(draft);
177
+ if (parsed.ok)
178
+ setMonth(clampMonth(isoToLocalDate(parsed.iso), minDate, maxDate));
179
+ }
180
+ setOpen(true);
181
+ };
182
+ const invalid = ariaInvalid || error !== null ? true : undefined;
183
+ const describedBy = [ariaDescribedBy, error ? errorId : undefined].filter(Boolean).join(' ');
184
+ const field = (_jsxs("div", { ref: setAnchor, className: 'relative w-full', children: [_jsx(Input, { ...rest, type: 'text', maxLength: 64, size: size, id: id, name: name, disabled: disabled, autoComplete: 'off', spellCheck: false, value: inputText, placeholder: placeholder, "aria-invalid": invalid, "aria-describedby": describedBy || undefined, onFocus: (e) => e.currentTarget.select(), onChange: (e) => {
185
+ setDraft(e.target.value);
186
+ setError(null);
187
+ }, onKeyDown: (e) => {
188
+ if (e.key === 'Enter') {
189
+ e.preventDefault();
190
+ commitDraft();
191
+ }
192
+ else if (e.key === 'Escape' && (draft !== null || error !== null)) {
193
+ e.preventDefault();
194
+ e.stopPropagation();
195
+ setDraft(null);
196
+ setError(null);
197
+ }
198
+ else if (e.key === 'ArrowDown' && e.altKey) {
199
+ e.preventDefault();
200
+ openCalendar();
201
+ }
202
+ }, onBlur: (e) => {
203
+ commitDraft();
204
+ // Focus moving to the calendar button (or into its panel) is not the field being left.
205
+ const next = e.relatedTarget;
206
+ if (!open && !(next && anchor?.contains(next)))
207
+ onBlur?.();
208
+ }, className: 'pr-11 pointer-coarse:pr-12' }), _jsx(IconButton, { size: size, label: selectedDate ? `Change date, ${display}` : placeholder, disabled: disabled, "aria-haspopup": 'dialog', "aria-expanded": open, onClick: () => (open ? handleOpenChange(false) : openCalendar()), className: 'absolute right-0 top-0 text-muted-foreground hover:text-foreground', children: _jsx(Calendar, { className: 'opacity-70' }) })] }));
209
+ const message = error ? (_jsx("p", { id: errorId, role: 'alert', className: 'mt-1 text-xs text-field-error', children: error })) : null;
210
+ const calendar = (_jsx(DatePickerCalendar, { selected: selectedDate, month: month, onMonthChange: setMonth, onSelect: handleSelect, minDate: minDate, maxDate: maxDate }));
49
211
  if (isMobile) {
50
- return (_jsxs(_Fragment, { children: [trigger, _jsx(Drawer, { open: open, onClose: () => handleOpenChange(false), side: 'bottom', size: 'md', children: _jsx("div", { className: 'flex justify-center py-2', children: calendar }) })] }));
212
+ return (_jsxs("div", { className: 'w-full', children: [field, message, _jsx(Drawer, { open: open, onClose: () => handleOpenChange(false), side: 'bottom', size: 'md', children: _jsx("div", { className: 'flex justify-center py-2', children: calendar }) })] }));
51
213
  }
52
- return (_jsx(Popover, { trigger: trigger, open: open, onOpenChange: handleOpenChange, align: 'start', arrow: false, width: 280, children: calendar }));
214
+ return (_jsxs("div", { className: 'w-full', children: [field, message, _jsx(Popover, { anchor: anchor, open: open, onOpenChange: handleOpenChange, align: 'start', arrow: false,
215
+ // 🔴 Wide enough for the longest caption beside its four steppers: at 296 "September 2026"
216
+ // truncated to "September 20…" (photos' lightbox, forge task 3764). 320 still fits a 390px phone.
217
+ width: 320, children: calendar })] }));
53
218
  }
54
219
  declareFieldWidth(DatePicker, 'sm');
55
220
  //# sourceMappingURL=DatePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/react/components/DatePicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/react/components/DatePicker.tsx"],"names":[],"mappings":"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"}
@@ -27,6 +27,16 @@ export interface InlineEditableTextProps {
27
27
  * edit needs a separate, explicit affordance.
28
28
  */
29
29
  trigger?: 'text' | 'icon';
30
+ /**
31
+ * Where the caret lands when editing starts (default `'select-all'`):
32
+ * - `'select-all'` — the whole value is selected, so typing replaces it (a title, a name).
33
+ * - `'end'` — the caret goes after the last character and nothing is selected; for
34
+ * paragraphs someone ADDS to (notes, a description), where one stray keystroke
35
+ * would otherwise replace everything they wrote.
36
+ */
37
+ caret?: 'select-all' | 'end';
38
+ /** The editor's character ceiling (default 10,000) — the server's limit, so the editor stops where a save would be refused. */
39
+ maxLength?: number;
30
40
  ariaLabel?: string;
31
41
  }
32
42
  /**
@@ -35,7 +45,7 @@ export interface InlineEditableTextProps {
35
45
  * primitive, used anywhere a title/heading should be edited in place. Fully
36
46
  * token-driven (accent border + ring on the editor); the editor focuses and
37
47
  * selects its text on mount so typing replaces (and the cursor is never stranded
38
- * at position 0).
48
+ * at position 0) — or, with `caret='end'`, puts the caret after the text.
39
49
  */
40
- export declare function InlineEditableText({ value, onChange, canEdit, multiline, placeholder, className, inputClassName, trigger, wrap, ariaLabel, ...rest }: InlineEditableTextProps): import("react").JSX.Element | null;
50
+ export declare function InlineEditableText({ value, onChange, canEdit, multiline, placeholder, className, inputClassName, trigger, wrap, caret, maxLength, ariaLabel, ...rest }: InlineEditableTextProps): import("react").JSX.Element | null;
41
51
  //# sourceMappingURL=InlineEditableText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditableText.d.ts","sourceRoot":"","sources":["../../../src/react/components/InlineEditableText.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;gEAC4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;gEAC4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;sDAGkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,OAAc,EACd,SAAiB,EACjB,WAAyB,EACzB,SAAS,EACT,cAAc,EACd,OAAgB,EAChB,IAAW,EACX,SAAS,EACT,GAAG,IAAI,EACR,EAAE,uBAAuB,sCA4IzB"}
1
+ {"version":3,"file":"InlineEditableText.d.ts","sourceRoot":"","sources":["../../../src/react/components/InlineEditableText.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;gEAC4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;gEAC4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;sDAGkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IAC7B,+HAA+H;IAC/H,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,OAAc,EACd,SAAiB,EACjB,WAAyB,EACzB,SAAS,EACT,cAAc,EACd,OAAgB,EAChB,IAAW,EACX,KAAoB,EACpB,SAAkB,EAClB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,uBAAuB,sCAgJzB"}