neba 1.18.0 → 1.19.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 (200) hide show
  1. package/dist/a2ui/adapter-catalog.json +1 -1
  2. package/dist/a2ui/catalog.json +2 -2
  3. package/dist/components/accordion/Accordion.js +1 -1
  4. package/dist/components/agent-steps/AgentSteps.js +1 -1
  5. package/dist/components/alert/Alert.js +1 -1
  6. package/dist/components/anchor/Anchor.js +1 -1
  7. package/dist/components/animate-counter/AnimateCounter.js +1 -1
  8. package/dist/components/animate-headline/AnimateHeadline.js +1 -1
  9. package/dist/components/animate-lighting/AnimateLighting.js +1 -1
  10. package/dist/components/animate-marquee/AnimateMarquee.js +1 -1
  11. package/dist/components/animate-scramble/AnimateScramble.js +1 -1
  12. package/dist/components/animate-typing/AnimateTyping.js +1 -1
  13. package/dist/components/app-logo/AppLogo.js +1 -1
  14. package/dist/components/approval/Approval.js +1 -1
  15. package/dist/components/aspect-ratio/AspectRatio.js +1 -1
  16. package/dist/components/avatar/Avatar.js +1 -1
  17. package/dist/components/badge/Badge.js +1 -1
  18. package/dist/components/bar-chart/BarChart.js +1 -1
  19. package/dist/components/blockquote/Blockquote.js +1 -1
  20. package/dist/components/bottom-navigation/BottomNavigation.js +1 -1
  21. package/dist/components/breadcrumb/Breadcrumb.js +1 -1
  22. package/dist/components/button/Button.js +1 -1
  23. package/dist/components/button-group/ButtonGroup.js +1 -1
  24. package/dist/components/calendar/Calendar.js +1 -1
  25. package/dist/components/carousel/Carousel.js +1 -1
  26. package/dist/components/chat-bubble/ChatBubble.js +1 -1
  27. package/dist/components/checkbox/Checkbox.js +1 -1
  28. package/dist/components/checkbox/index.d.ts +1 -1
  29. package/dist/components/checkbox-group/CheckboxGroup.d.ts +84 -0
  30. package/dist/components/checkbox-group/CheckboxGroup.js +1 -0
  31. package/dist/components/checkbox-group/index.d.ts +2 -0
  32. package/dist/components/checkbox-group/index.js +1 -0
  33. package/dist/components/chip/Chip.d.ts +32 -3
  34. package/dist/components/chip/Chip.js +1 -1
  35. package/dist/components/code-block/CodeBlock.js +1 -1
  36. package/dist/components/collapsible/Collapsible.js +1 -1
  37. package/dist/components/color-picker/ColorPicker.js +1 -1
  38. package/dist/components/combobox/Combobox.d.ts +11 -0
  39. package/dist/components/combobox/Combobox.js +1 -1
  40. package/dist/components/combobox/index.d.ts +1 -1
  41. package/dist/components/command-palette/CommandPalette.d.ts +21 -5
  42. package/dist/components/command-palette/CommandPalette.js +1 -1
  43. package/dist/components/command-palette/CommandPaletteSheet.d.ts +27 -0
  44. package/dist/components/command-palette/CommandPaletteSheet.js +1 -0
  45. package/dist/components/command-palette/index.d.ts +1 -1
  46. package/dist/components/confirm/Confirm.d.ts +7 -5
  47. package/dist/components/confirm/Confirm.js +1 -1
  48. package/dist/components/data-list/DataList.js +1 -1
  49. package/dist/components/data-table/DataTable.js +1 -1
  50. package/dist/components/data-table/RowsPerPage.d.ts +43 -0
  51. package/dist/components/data-table/RowsPerPage.js +1 -0
  52. package/dist/components/date-picker/DatePicker.js +1 -1
  53. package/dist/components/date-range-picker/DateRangePicker.js +1 -1
  54. package/dist/components/date-time-picker/DateTimePicker.js +1 -1
  55. package/dist/components/dialog/Dialog.js +1 -1
  56. package/dist/components/dialog/index.d.ts +1 -1
  57. package/dist/components/drawer/Drawer.d.ts +1 -1
  58. package/dist/components/drawer/Drawer.js +1 -1
  59. package/dist/components/empty/Empty.js +1 -1
  60. package/dist/components/fieldset/Fieldset.d.ts +12 -1
  61. package/dist/components/fieldset/Fieldset.js +1 -1
  62. package/dist/components/file-picker/FilePicker.js +1 -1
  63. package/dist/components/floating-action-button/FloatingActionButton.js +1 -1
  64. package/dist/components/floating-action-button/index.d.ts +1 -0
  65. package/dist/components/floating-bottom-navigation/FloatingBottomNavigation.js +1 -1
  66. package/dist/components/footer/Footer.js +1 -1
  67. package/dist/components/form/Form.d.ts +8 -2
  68. package/dist/components/form/Form.js +1 -1
  69. package/dist/components/gallery/Gallery.js +1 -1
  70. package/dist/components/gauge-chart/GaugeChart.js +1 -1
  71. package/dist/components/header/Header.js +1 -1
  72. package/dist/components/heatmap-chart/HeatmapChart.js +1 -1
  73. package/dist/components/highlight/Highlight.js +1 -1
  74. package/dist/components/hover-card/HoverCard.js +1 -1
  75. package/dist/components/how-to-steps/HowToSteps.d.ts +3 -0
  76. package/dist/components/how-to-steps/HowToSteps.js +1 -1
  77. package/dist/components/image/Image.js +1 -1
  78. package/dist/components/inline-citation/InlineCitation.d.ts +24 -0
  79. package/dist/components/inline-citation/InlineCitation.js +1 -1
  80. package/dist/components/list/List.d.ts +9 -0
  81. package/dist/components/list/List.js +1 -1
  82. package/dist/components/menu/Menu.js +1 -1
  83. package/dist/components/menubar/Menubar.js +1 -1
  84. package/dist/components/meter/Meter.js +1 -1
  85. package/dist/components/mockup/Mockup.js +1 -1
  86. package/dist/components/navigation-menu/NavigationMenu.d.ts +2 -1
  87. package/dist/components/navigation-menu/NavigationMenu.js +1 -1
  88. package/dist/components/number-field/NumberField.js +1 -1
  89. package/dist/components/number-field/index.d.ts +1 -1
  90. package/dist/components/overlay/Overlay.js +1 -1
  91. package/dist/components/page-layout/PageLayout.js +1 -1
  92. package/dist/components/pagination/Pagination.js +1 -1
  93. package/dist/components/panes/Panes.js +1 -1
  94. package/dist/components/pie-chart/PieChart.js +1 -1
  95. package/dist/components/pill/Pill.js +1 -1
  96. package/dist/components/popover/Popover.js +1 -1
  97. package/dist/components/progress-box/ProgressBox.js +1 -1
  98. package/dist/components/progress-circular/ProgressCircular.js +1 -1
  99. package/dist/components/progress-linear/ProgressLinear.js +1 -1
  100. package/dist/components/prompt-input/PromptInput.js +1 -1
  101. package/dist/components/provider/NebaProvider.d.ts +3 -2
  102. package/dist/components/provider/NebaProvider.js +1 -1
  103. package/dist/components/radio-group/RadioGroup.d.ts +13 -0
  104. package/dist/components/radio-group/RadioGroup.js +1 -1
  105. package/dist/components/radio-group/index.d.ts +1 -1
  106. package/dist/components/rating/Rating.js +1 -1
  107. package/dist/components/reasoning/Reasoning.js +1 -1
  108. package/dist/components/scatter-chart/ScatterChart.js +1 -1
  109. package/dist/components/scroll-area/ScrollArea.js +1 -1
  110. package/dist/components/scroll-zone/ScrollZone.js +1 -1
  111. package/dist/components/segmented-button/SegmentedButton.js +1 -1
  112. package/dist/components/select/Select.d.ts +12 -0
  113. package/dist/components/select/Select.js +1 -1
  114. package/dist/components/select/index.d.ts +1 -1
  115. package/dist/components/shortcut/Shortcut.js +1 -1
  116. package/dist/components/sidebar/Sidebar.js +1 -1
  117. package/dist/components/sidebar/SidebarTrigger.js +1 -1
  118. package/dist/components/skeleton/Skeleton.js +1 -1
  119. package/dist/components/slider/Slider.js +1 -1
  120. package/dist/components/slider/index.d.ts +1 -1
  121. package/dist/components/sources/Sources.js +1 -1
  122. package/dist/components/sparkline/Sparkline.d.ts +7 -0
  123. package/dist/components/sparkline/Sparkline.js +1 -1
  124. package/dist/components/spoiler/Spoiler.js +1 -1
  125. package/dist/components/statistic/Statistic.js +1 -1
  126. package/dist/components/streaming-text/StreamingText.d.ts +10 -6
  127. package/dist/components/streaming-text/StreamingText.js +1 -1
  128. package/dist/components/switch/Switch.js +1 -1
  129. package/dist/components/switch/index.d.ts +1 -1
  130. package/dist/components/table/Table.js +1 -1
  131. package/dist/components/table/index.d.ts +1 -1
  132. package/dist/components/tabs/Tabs.js +1 -1
  133. package/dist/components/text-field/TextField.js +1 -1
  134. package/dist/components/text-field/index.d.ts +1 -1
  135. package/dist/components/text-link/TextLink.js +1 -1
  136. package/dist/components/time-picker/TimePicker.js +1 -1
  137. package/dist/components/timeline-chart/TimelineChart.js +1 -1
  138. package/dist/components/toast/Toast.d.ts +38 -5
  139. package/dist/components/toast/Toast.js +1 -1
  140. package/dist/components/toast/index.d.ts +2 -2
  141. package/dist/components/toast/index.js +1 -1
  142. package/dist/components/toggle/Toggle.js +1 -1
  143. package/dist/components/toggle-group/ToggleGroup.js +1 -1
  144. package/dist/components/tool-call/ToolCall.js +1 -1
  145. package/dist/components/toolbar/Toolbar.js +1 -1
  146. package/dist/components/tooltip/Tooltip.js +1 -1
  147. package/dist/components/tour/Tour.js +1 -1
  148. package/dist/components/tour/index.d.ts +1 -1
  149. package/dist/components/transfer/Transfer.d.ts +7 -0
  150. package/dist/components/transfer/Transfer.js +1 -1
  151. package/dist/components/tree-select/TreeSelect.js +1 -1
  152. package/dist/components/tree-view/TreeView.js +1 -1
  153. package/dist/components/window-pane/WindowPane.js +1 -1
  154. package/dist/index.d.ts +1 -0
  155. package/dist/index.js +1 -1
  156. package/dist/internal/animate.d.ts +34 -2
  157. package/dist/internal/animate.js +1 -1
  158. package/dist/internal/cache.d.ts +7 -1
  159. package/dist/internal/cache.js +1 -1
  160. package/dist/internal/calendar.d.ts +40 -1
  161. package/dist/internal/calendar.js +1 -1
  162. package/dist/internal/chart-frame.d.ts +86 -8
  163. package/dist/internal/chart-frame.js +1 -1
  164. package/dist/internal/chart-line.js +1 -1
  165. package/dist/internal/chart.d.ts +13 -0
  166. package/dist/internal/chart.js +1 -1
  167. package/dist/internal/checkbox-group.d.ts +29 -0
  168. package/dist/internal/checkbox-group.js +1 -0
  169. package/dist/internal/data-table.d.ts +7 -1
  170. package/dist/internal/data-table.js +1 -1
  171. package/dist/internal/date.d.ts +10 -0
  172. package/dist/internal/date.js +1 -1
  173. package/dist/internal/defaults.d.ts +14 -2
  174. package/dist/internal/idle.d.ts +10 -0
  175. package/dist/internal/idle.js +1 -0
  176. package/dist/internal/link.d.ts +4 -3
  177. package/dist/internal/media.js +1 -1
  178. package/dist/internal/observe.d.ts +4 -0
  179. package/dist/internal/observe.js +1 -1
  180. package/dist/internal/page-layout.d.ts +30 -2
  181. package/dist/internal/page-layout.js +1 -1
  182. package/dist/internal/picker.js +1 -1
  183. package/dist/internal/progress.d.ts +17 -0
  184. package/dist/internal/progress.js +1 -1
  185. package/dist/internal/refs.d.ts +18 -0
  186. package/dist/internal/refs.js +1 -0
  187. package/dist/internal/run.d.ts +34 -19
  188. package/dist/internal/run.js +1 -1
  189. package/dist/internal/sizer.d.ts +9 -4
  190. package/dist/internal/sizer.js +1 -1
  191. package/dist/internal/styles.d.ts +27 -1
  192. package/dist/internal/styles.js +1 -1
  193. package/dist/internal/tile.d.ts +34 -0
  194. package/dist/internal/tile.js +1 -0
  195. package/dist/internal/wheel.d.ts +24 -1
  196. package/dist/internal/wheel.js +1 -1
  197. package/dist/styles.css +1 -1
  198. package/dist/tailwind.css +369 -62
  199. package/dist/types.d.ts +4 -2
  200. package/package.json +2 -2
@@ -1 +1 @@
1
- "use client";import{jsx as n,Fragment as e,jsxs as a}from"react/jsx-runtime";import*as s from"react";import{controlHeightClasses as o,controlSlots as t,controlTextClasses as l,cx as r,paddingXClasses as i,radiusClasses as m,srOnlyClasses as c,surfaceClasses as d,transitionClasses as u}from"../../internal/styles.js";import{canonicalKey as w,readOS as b,tokenize as p}from"../../internal/keys.js";import{useStyleDefaults as x}from"../../internal/defaults.js";const f=n=>({symbol:n,name:n}),y={mod:{mac:{symbol:"⌘",name:"Command"},windows:f("Ctrl"),linux:f("Ctrl")},meta:{mac:{symbol:"⌘",name:"Command"},windows:f("Win"),linux:f("Super")},ctrl:{mac:{symbol:"⌃",name:"Control"},windows:f("Ctrl"),linux:f("Ctrl")},alt:{mac:{symbol:"⌥",name:"Option"},windows:f("Alt"),linux:f("Alt")},shift:{mac:{symbol:"⇧",name:"Shift"},windows:f("Shift"),linux:f("Shift")},enter:{mac:{symbol:"↩",name:"Enter"},windows:f("Enter"),linux:f("Enter")},tab:{mac:{symbol:"⇥",name:"Tab"},windows:f("Tab"),linux:f("Tab")},escape:{mac:{symbol:"⎋",name:"Escape"},windows:f("Esc"),linux:f("Esc")},backspace:{mac:{symbol:"⌫",name:"Backspace"},windows:f("Backspace"),linux:f("Backspace")},delete:{mac:{symbol:"⌦",name:"Delete"},windows:f("Del"),linux:f("Del")},capslock:{mac:{symbol:"⇪",name:"Caps Lock"},windows:f("Caps Lock"),linux:f("Caps Lock")}},h={arrowup:{symbol:"↑",name:"Arrow up"},arrowdown:{symbol:"↓",name:"Arrow down"},arrowleft:{symbol:"←",name:"Arrow left"},arrowright:{symbol:"→",name:"Arrow right"}},g={ctrl:0,alt:1,shift:2,meta:3,mod:3};function k(){return()=>{}}function v(){return"windows"}const C={xs:"xs",sm:"xs",md:"sm",lg:"md",xl:"lg"},j={solid:[d,"text-(--n-on-solid) bg-(--n-fill)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[d,"border text-(--n-on-tint) bg-(--n-panel)","[border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]"].join(" "),text:"text-(--n-on-tint) bg-(--n-soft)"},S={xs:"min-w-5.5",sm:"min-w-6.5",md:"min-w-8",lg:"min-w-10",xl:"min-w-12"};export const Shortcut=/*@__PURE__*/s.forwardRef(function Shortcut(d,E){const{variant:A="outline",size:N="md",color:B="secondary",density:D="compact",elevation:L=0,keys:T,os:z="auto",separator:F,className:O,style:R,...U}=x(d,["size","density","variant"]),W=s.useSyncExternalStore(k,b,v),q="auto"===z?W:z,G=C[N],H=("mac"===q?function(n){const e=n.slice(0,-1);return e.every(n=>w(n)in g)?[...e.sort((n,e)=>g[w(n)]-g[w(e)]),...n.slice(-1)]:n}(p(T)):p(T)).map(n=>function(n,e){const a=w(n),s=h[a];if(s)return s;const o=y[a];return o?o[e]:f(1===n.length?n.toUpperCase():n)}(n,q)),I=void 0===F?"mac"===q?null:"+":F,J=["inline-flex shrink-0 items-center justify-center","font-mono font-medium leading-none whitespace-nowrap tabular-nums",o[G],l[G],S[G],i[D][G],m[G],j[A],u].join(" ");return n("span",{ref:E,className:r("inline-flex max-w-full items-center gap-1 align-middle",O??""),style:{...t(B,L,A),...R},...U,children:H.map((o,t)=>a(s.Fragment,{children:[t>0&&null!==I?n("span",{"aria-hidden":"true",className:"text-(--neba-muted-fg)",children:I}):null,n("kbd",{className:J,children:o.symbol===o.name?o.symbol:a(e,{children:[n("span",{"aria-hidden":"true",children:o.symbol}),n("span",{className:c,children:o.name})]})})]},t))})});
1
+ "use client";import{jsx as n,Fragment as e,jsxs as a}from"react/jsx-runtime";import*as s from"react";import{controlHeightClasses as t,controlSlots as o,controlTextClasses as l,cx as r,paddingXClasses as m,radiusClasses as i,srOnlyClasses as c,surfaceClasses as d,transitionClasses as u}from"../../internal/styles.js";import{canonicalKey as w,readOS as b,tokenize as p}from"../../internal/keys.js";import{useStyleDefaults as x}from"../../internal/defaults.js";const f=n=>({symbol:n,name:n}),y={mod:{mac:{symbol:"⌘",name:"Command"},windows:f("Ctrl"),linux:f("Ctrl")},meta:{mac:{symbol:"⌘",name:"Command"},windows:f("Win"),linux:f("Super")},ctrl:{mac:{symbol:"⌃",name:"Control"},windows:f("Ctrl"),linux:f("Ctrl")},alt:{mac:{symbol:"⌥",name:"Option"},windows:f("Alt"),linux:f("Alt")},shift:{mac:{symbol:"⇧",name:"Shift"},windows:f("Shift"),linux:f("Shift")},enter:{mac:{symbol:"↩",name:"Enter"},windows:f("Enter"),linux:f("Enter")},tab:{mac:{symbol:"⇥",name:"Tab"},windows:f("Tab"),linux:f("Tab")},escape:{mac:{symbol:"⎋",name:"Escape"},windows:f("Esc"),linux:f("Esc")},backspace:{mac:{symbol:"⌫",name:"Backspace"},windows:f("Backspace"),linux:f("Backspace")},delete:{mac:{symbol:"⌦",name:"Delete"},windows:f("Del"),linux:f("Del")},capslock:{mac:{symbol:"⇪",name:"Caps Lock"},windows:f("Caps Lock"),linux:f("Caps Lock")}},h={arrowup:{symbol:"↑",name:"Arrow up"},arrowdown:{symbol:"↓",name:"Arrow down"},arrowleft:{symbol:"←",name:"Arrow left"},arrowright:{symbol:"→",name:"Arrow right"}},g={ctrl:0,alt:1,shift:2,meta:3,mod:3};function k(){return()=>{}}function v(){return"windows"}const C={xs:"xs",sm:"xs",md:"sm",lg:"md",xl:"lg"},S={solid:d+" text-(--n-on-solid) bg-(--n-fill) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:d+" border text-(--n-on-tint) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:"text-(--n-on-tint) bg-(--n-soft)"},j={xs:"min-w-5.5",sm:"min-w-6.5",md:"min-w-8",lg:"min-w-10",xl:"min-w-12"};export const Shortcut=/*@__PURE__*/s.forwardRef(function Shortcut(d,E){const{variant:A="outline",size:N="md",color:B="secondary",density:D="compact",elevation:L=0,keys:T,os:z="auto",separator:F,className:O,style:R,...U}=x(d,["size","density","variant"]),W=s.useSyncExternalStore(k,b,v),q="auto"===z?W:z,G=C[N],H=("mac"===q?function(n){const e=n.slice(0,-1);return e.every(n=>w(n)in g)?[...e.sort((n,e)=>g[w(n)]-g[w(e)]),...n.slice(-1)]:n}(p(T)):p(T)).map(n=>function(n,e){const a=w(n),s=h[a];if(s)return s;const t=y[a];return t?t[e]:f(1===n.length?n.toUpperCase():n)}(n,q)),I=void 0===F?"mac"===q?null:"+":F,J="inline-flex shrink-0 items-center justify-center font-mono font-medium leading-none whitespace-nowrap tabular-nums "+t[G]+" "+l[G]+" "+j[G]+" "+m[D][G]+" "+i[G]+" "+S[A]+" "+u;return n("span",{ref:E,className:r("inline-flex max-w-full items-center gap-1 align-middle",O??""),style:{...o(B,L,A),...R},...U,children:H.map((t,o)=>a(s.Fragment,{children:[o>0&&null!==I?n("span",{"aria-hidden":"true",className:"text-(--neba-muted-fg)",children:I}):null,n("kbd",{className:J,children:t.symbol===t.name?t.symbol:a(e,{children:[n("span",{"aria-hidden":"true",children:t.symbol}),n("span",{className:c,children:t.name})]})})]},o))})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as r from"react";import{boxPaddingXClasses as n,boxPaddingYClasses as o}from"../box/Box.js";import{Drawer as a}from"../drawer/Drawer.js";import{beginPointerDrag as s,drawnScale as l}from"../../internal/drag.js";import{layoutMessages as i,useMessages as c}from"../../internal/i18n.js";import{drawerSide as u,expandedOnlyClasses as d,PageLayoutContext as f,SidebarSideContext as p,useCollapsed as b}from"../../internal/page-layout.js";import{cx as m,surfaceClasses as h,surfaceSlots as v,toLength as w,toPixels as g,transitionClasses as y}from"../../internal/styles.js";import{useStyleDefaults as x}from"../../internal/defaults.js";const S={xs:"11rem",sm:"13rem",md:"16rem",lg:"18rem",xl:"21rem"},j={solid:[h,"text-(--neba-fg) bg-(--n-panel-press)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[h,"text-(--neba-fg) bg-(--n-panel)","[box-shadow:var(--n-elev),var(--neba-plate-glass)]"].join(" "),text:"text-(--neba-fg) bg-transparent"};export const Sidebar=/*@__PURE__*/r.forwardRef(function Sidebar(h,R){const k=r.useContext(f),{side:z,width:E,minWidth:M=160,maxWidth:N=480,resizable:A=!1,onResize:B,onResizeEnd:C,collapseBelow:O,open:W,defaultOpen:D=!1,onOpenChange:L,keepMounted:P=!1,sticky:T,title:I,variant:$="outline",size:_="md",color:X="primary",density:K="default",elevation:V=0,divider:q=!0,padded:F=!0,label:G,locale:H,className:J,style:Q,children:U,...Y}=x(h,["size","density","variant","locale"],{locale:k.locale}),Z=r.useContext(p),ee=z??Z??"start",te=H??k.locale,re=c(i,te),ne=O??(k.present?k.collapseBelow:"none"),oe=b(ne),ae=T??k.present;r.useEffect(()=>{"production"!==process.env.NODE_ENV&&k.present&&void 0!==O&&O!==k.collapseBelow&&console.warn(`Neba: a Sidebar collapses below "${O}" and its PageLayout below "${k.collapseBelow}". A SidebarTrigger follows the layout, so between the two widths the drawer has nothing to open it. Set collapseBelow on the PageLayout instead.`)},[k.present,k.collapseBelow,O]);const[se,le]=r.useState(D),ie=void 0!==W,ce=ie?W:k.present?k.open[ee]:se,ue=e=>{ie||(k.present?k.setOpen(ee,e):le(e)),L?.(e)},de=r.useRef(ce),fe=r.useRef(ue),pe=r.useRef(oe);r.useEffect(()=>{de.current=ce,fe.current=ue}),r.useEffect(()=>{pe.current&&!oe&&de.current&&fe.current(!1),pe.current=oe},[oe]);const be=w(E)??S[_],me=r.useRef(null),he=r.useCallback(e=>{me.current=e,"function"==typeof R?R(e):R&&(R.current=e)},[R]),ve=r.useRef(null);r.useEffect(()=>()=>ve.current?.(),[]);const we=r.useRef(null),ge=(e,t,r)=>null==t?r:"number"==typeof t?t:g(t,{percentOf:"undefined"==typeof window?0:window.innerWidth,relativeTo:e})??r,ye=(e,t)=>{const r=we.current;r&&(r.setAttribute("aria-valuenow",String(Math.round(t))),r.setAttribute("aria-valuemin",String(Math.round(ge(e,M,160)))),r.setAttribute("aria-valuemax",String(Math.round(ge(e,N,480)))))};r.useEffect(()=>{const e=me.current;A&&e&&ye(e,e.offsetWidth)},[A,M,N,be,oe]);const xe=e=>{const t=me.current;if(!t)return e;const r=Math.min(ge(t,N,480),Math.max(ge(t,M,160),Math.round(e)));return t.style.setProperty("--n-sidebar-w",`${r}px`),ye(t,r),r},Se=e("div",{className:m("min-h-0 flex-1 overflow-y-auto overscroll-contain",F?m(n[K][_],o[K][_]):""),children:U});return oe?e(a,{side:u(ee),mode:"overlay",open:ce,onOpenChange:ue,keepMounted:P,title:I,size:_,color:X,density:K,locale:te,closeLabel:re.closeSidebar,extent:void 0===E?void 0:be,"aria-label":I?void 0:G??re.sidebar,className:J,style:Q,...Y,children:U}):t("aside",{ref:he,"aria-label":G??re.sidebar,className:m("relative flex min-w-0 shrink-0 flex-col","w-(--n-sidebar-w)",j[$],q?m("start"===ee?"border-e":"border-s","[border-color:var(--n-line)]"):"","content"===k.scroll?"h-full":ae?m("self-start","sticky [top:var(--n-layout-header,0px)]","[height:calc(100dvh-var(--n-layout-header,0px)-var(--n-layout-footer,0px))]"):"",d[ne],y,J),style:{...v(X,V),"--n-sidebar-w":be,...Q},...Y,children:[Se,A?e("div",{ref:we,role:"separator","aria-orientation":"vertical","aria-label":re.resizeSidebar,tabIndex:0,className:m("neba-hit absolute inset-y-0 z-1 w-2 cursor-col-resize touch-none","start"===ee?"end-0 -me-1":"start-0 -ms-1","bg-transparent hover:bg-(--n-soft) data-[dragging]:bg-(--n-soft)",y,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-0"),onPointerDown:e=>{const t=me.current;if(!t||0!==e.button)return;const r=e.currentTarget,n=e.clientX,o=t.offsetWidth,a=l(t).x,i="rtl"===getComputedStyle(t).direction,c="start"===ee===i?-1:1;let u=o;ve.current=s({target:r,pointerId:e.pointerId,onMove:e=>{u=xe(o+(e.clientX-n)/a*c),B?.(u)},onEnd:()=>{ve.current=null,C?.(u)}})},onKeyDown:e=>{if("ArrowLeft"!==e.key&&"ArrowRight"!==e.key)return;e.preventDefault();const t="rtl"===getComputedStyle(e.currentTarget).direction,r="start"===ee===t?-1:1;(e=>{const t=me.current;if(!t)return;const r=xe(t.offsetWidth+e);B?.(r),C?.(r)})(("ArrowRight"===e.key?16:-16)*r)}}):null]})});
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as r from"react";import{boxPaddingXClasses as n,boxPaddingYClasses as o}from"../box/Box.js";import{beginPointerDrag as a,drawnScale as s}from"../../internal/drag.js";import{useMergedRef as l}from"../../internal/refs.js";import{layoutMessages as i,useMessages as c}from"../../internal/i18n.js";import{drawerChunk as u,drawerSide as d,expandedOnlyClasses as f,PageLayoutContext as p,SidebarSideContext as b,useCollapsed as m}from"../../internal/page-layout.js";import{cx as h,surfaceClasses as v,surfaceSlots as g,toLength as w,toPixels as y,transitionClasses as x}from"../../internal/styles.js";import{useStyleDefaults as S}from"../../internal/defaults.js";const R={xs:"11rem",sm:"13rem",md:"16rem",lg:"18rem",xl:"21rem"},j={solid:v+" text-(--neba-fg) bg-(--n-panel-press) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:v+" text-(--neba-fg) bg-(--n-panel) [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:"text-(--neba-fg) bg-transparent"},z=r.lazy(()=>u.load());export const Sidebar=/*@__PURE__*/r.forwardRef(function Sidebar(v,E){const M=r.useContext(p),{side:k,width:N,minWidth:A=160,maxWidth:B=480,resizable:C=!1,onResize:O,onResizeEnd:W,collapseBelow:D,open:L,defaultOpen:P=!1,onOpenChange:T,keepMounted:I=!1,sticky:$,title:_,variant:X="outline",size:K="md",color:V="primary",density:q="default",elevation:F=0,divider:G=!0,padded:H=!0,label:J,locale:Q,className:U,style:Y,children:Z,...ee}=S(v,["size","density","variant","locale"],{locale:M.locale}),te=r.useContext(b),re=k??te??"start",ne=Q??M.locale,oe=c(i,ne),ae=D??(M.present?M.collapseBelow:"none"),se=m(ae),le=$??M.present;r.useEffect(()=>{"production"!==process.env.NODE_ENV&&M.present&&void 0!==D&&D!==M.collapseBelow&&console.warn(`Neba: a Sidebar collapses below "${D}" and its PageLayout below "${M.collapseBelow}". A SidebarTrigger follows the layout, so between the two widths the drawer has nothing to open it. Set collapseBelow on the PageLayout instead.`)},[M.present,M.collapseBelow,D]);const[ie,ce]=r.useState(P),ue=void 0!==L,de=ue?L:M.present?M.open[re]:ie,fe=e=>{ue||(M.present?M.setOpen(re,e):ce(e)),T?.(e)},pe=r.useRef(de),be=r.useRef(fe),me=r.useRef(se);r.useEffect(()=>{pe.current=de,be.current=fe}),r.useEffect(()=>{me.current&&!se&&pe.current&&be.current(!1),me.current=se},[se]),r.useEffect(()=>{se&&u.load().catch(()=>{})},[se]);const he=r.useMemo(()=>se?d(re):null,[se,re,de]),ve=w(N)??R[K],ge=r.useRef(null),we=l(ge,E),ye=r.useRef(null);r.useEffect(()=>()=>ye.current?.(),[]);const xe=r.useRef(null),Se=(e,t,r)=>null==t?r:"number"==typeof t?t:y(t,{percentOf:"undefined"==typeof window?0:window.innerWidth,relativeTo:e})??r,Re=(e,t)=>{const r=xe.current;r&&(r.setAttribute("aria-valuenow",String(Math.round(t))),r.setAttribute("aria-valuemin",String(Math.round(Se(e,A,160)))),r.setAttribute("aria-valuemax",String(Math.round(Se(e,B,480)))))};r.useEffect(()=>{const e=ge.current;C&&e&&Re(e,e.offsetWidth)},[C,A,B,ve,se]);const je=e=>{const t=ge.current;if(!t)return e;const r=Math.min(Se(t,B,480),Math.max(Se(t,A,160),Math.round(e)));return t.style.setProperty("--n-sidebar-w",`${r}px`),Re(t,r),r},ze=e("div",{className:h("min-h-0 flex-1 overflow-y-auto overscroll-contain",H?h(n[q][K],o[q][K]):""),children:Z});return he?e(r.Suspense,{fallback:null,children:e(z,{ref:we,side:he,mode:"overlay",open:de,onOpenChange:fe,keepMounted:I,title:_,size:K,color:V,density:q,locale:ne,closeLabel:oe.closeSidebar,extent:void 0===N?void 0:ve,"aria-label":_?void 0:J??oe.sidebar,className:U,style:Y,...ee,children:Z})}):t("aside",{ref:we,"aria-label":J??oe.sidebar,className:h("relative flex min-w-0 shrink-0 flex-col","w-(--n-sidebar-w)",j[X],G?h("start"===re?"border-e":"border-s","[border-color:var(--n-line)]"):"","content"===M.scroll?"h-full":le?h("self-start","sticky [top:var(--n-layout-header,0px)]","[height:calc(100dvh-var(--n-layout-header,0px)-var(--n-layout-footer,0px))]"):"",f[ae],x,U),style:{...g(V,F),"--n-sidebar-w":ve,...Y},...ee,children:[ze,C?e("div",{ref:xe,role:"separator","aria-orientation":"vertical","aria-label":oe.resizeSidebar,tabIndex:0,className:h("neba-hit absolute inset-y-0 z-1 w-2 cursor-col-resize touch-none","start"===re?"end-0 -me-1":"start-0 -ms-1","bg-transparent hover:bg-(--n-soft) data-[dragging]:bg-(--n-soft)",x,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-0"),onPointerDown:e=>{const t=ge.current;if(!t||0!==e.button)return;const r=e.currentTarget,n=e.clientX,o=t.offsetWidth,l=s(t).x,i="rtl"===getComputedStyle(t).direction,c="start"===re===i?-1:1;let u=o;ye.current=a({target:r,pointerId:e.pointerId,onMove:e=>{u=je(o+(e.clientX-n)/l*c),O?.(u)},onEnd:()=>{ye.current=null,W?.(u)}})},onKeyDown:e=>{if("ArrowLeft"!==e.key&&"ArrowRight"!==e.key)return;e.preventDefault();const t="rtl"===getComputedStyle(e.currentTarget).direction,r="start"===re===t?-1:1;(e=>{const t=ge.current;if(!t)return;const r=je(t.offsetWidth+e);O?.(r),W?.(r)})(("ArrowRight"===e.key?16:-16)*r)}}):null]})});
@@ -1 +1 @@
1
- "use client";import{jsx as e}from"react/jsx-runtime";import*as r from"react";import{IconButton as o}from"../icon-button/IconButton.js";import{layoutMessages as n,useMessages as t}from"../../internal/i18n.js";import{collapsedOnlyClasses as a,PageLayoutContext as i}from"../../internal/page-layout.js";import{cx as l}from"../../internal/styles.js";import{useStyleDefaults as s}from"../../internal/defaults.js";function MenuIcon(){return e("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:e("path",{d:"M4 7h16M4 12h16M4 17h16",strokeLinecap:"round"})})}export const SidebarTrigger=/*@__PURE__*/r.forwardRef(function SidebarTrigger(c,p){const u=r.useContext(i),{side:m="start",collapseBelow:d,icon:f,label:b,locale:h,variant:j="text",className:x,onClick:g,...k}=s(c,["variant","locale"],{locale:u.locale}),v=h??u.locale,M=t(n,v);if(!u.present)return null;const w=d??u.collapseBelow,B=u.open[m];return e(o,{ref:p,variant:j,icon:f??e(MenuIcon,{}),label:b??(B?M.closeSidebar:M.openSidebar),"aria-expanded":B,className:l(a[w],x),onClick:e=>{u.setOpen(m,!B),g?.(e)},...k})});
1
+ "use client";import{jsx as o}from"react/jsx-runtime";import*as e from"react";import{IconButton as n}from"../icon-button/IconButton.js";import{layoutMessages as r,useMessages as t}from"../../internal/i18n.js";import{collapsedOnlyClasses as a,drawerChunk as i,PageLayoutContext as l}from"../../internal/page-layout.js";import{cx as c}from"../../internal/styles.js";import{useStyleDefaults as s}from"../../internal/defaults.js";function MenuIcon(){return o("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:o("path",{d:"M4 7h16M4 12h16M4 17h16",strokeLinecap:"round"})})}function u(){i.load().catch(()=>{})}export const SidebarTrigger=/*@__PURE__*/e.forwardRef(function SidebarTrigger(i,p){const m=e.useContext(l),{side:d="start",collapseBelow:f,icon:h,label:b,locale:j,variant:x="text",className:g,onClick:S,onPointerEnter:k,onFocus:v,onTouchStart:M,...w}=s(i,["variant","locale"],{locale:m.locale}),B=j??m.locale,C=t(r,B);if(!m.present)return null;const T=f??m.collapseBelow,I=m.open[d];return o(n,{ref:p,variant:x,icon:h??o(MenuIcon,{}),label:b??(I?C.closeSidebar:C.openSidebar),"aria-expanded":I,className:c(a[T],g),onClick:o=>{m.setOpen(d,!I),S?.(o)},onPointerEnter:o=>{u(),k?.(o)},onFocus:o=>{u(),v?.(o)},onTouchStart:o=>{u(),M?.(o)},...w})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,Fragment as r,jsxs as l}from"react/jsx-runtime";import*as n from"react";import{useRender as s}from"@base-ui/react/use-render";import{controlHeightClasses as d,controlSquareClasses as a,cx as o,srOnlyClasses as m,surfaceSlots as i}from"../../internal/styles.js";import{useStyleDefaults as t}from"../../internal/defaults.js";const u={xs:"h-[0.6875rem]",sm:"h-[0.75rem]",md:"h-[0.8125rem]",lg:"h-[0.9375rem]",xl:"h-[1.0625rem]"},h={xs:"gap-[0.3125rem]",sm:"gap-[0.375rem]",md:"gap-[0.5625rem]",lg:"gap-[0.5625rem]",xl:"gap-[0.6875rem]"},f={xs:"rounded-[0.3125rem]",sm:"rounded-[0.3125rem]",md:"rounded-[0.375rem]",lg:"rounded-[0.4375rem]",xl:"rounded-[0.5rem]"},c={xs:"h-12",sm:"h-16",md:"h-20",lg:"h-28",xl:"h-36"},x={xs:"rounded-(--neba-radius-xs)",sm:"rounded-(--neba-radius-sm)",md:"rounded-(--neba-radius-md)",lg:"rounded-(--neba-radius-lg)",xl:"rounded-(--neba-radius-xl)"},p="relative overflow-hidden bg-(--n-soft-hover)";function g(e){if(void 0!==e)return"number"==typeof e?`${e}px`:e}export const Skeleton=/*@__PURE__*/n.forwardRef(function Skeleton(n,b){const{shape:w="line",lines:$=1,size:j="md",color:v="secondary",width:y,height:k,animated:N=!0,label:z,render:S,className:A,style:B,...F}=t(n,["size"]),R=N?"neba-skeleton":"",q="circle"===w?`rounded-full ${d[j]} ${a[j]} shrink-0`:"rect"===w?`w-full ${x[j]} ${void 0===k?c[j]:""}`:`w-full ${f[j]} ${u[j]}`,C=z?{role:"status"}:{"aria-hidden":!0},D=z?e("span",{className:m,children:z}):null,E="line"===w&&$>1;return s({render:S,ref:b,props:{className:(E?["flex w-full flex-col",h[j],A??""]:[p,R,q,A??""]).filter(Boolean).join(" "),style:{...i(v,0),width:g(y),height:g(k),...B},...C,...E?{children:l(r,{children:[D,Array.from({length:$},(r,l)=>e("div",{className:o(p,R,f[j],u[j],l===$-1?"w-3/5":"w-full")},l))]})}:{children:D},...F}})});
1
+ "use client";import{jsx as e,Fragment as r,jsxs as n}from"react/jsx-runtime";import*as s from"react";import{useRender as l}from"@base-ui/react/use-render";import{controlHeightClasses as t,controlSquareClasses as o,cx as d,srOnlyClasses as a,surfaceSlots as m}from"../../internal/styles.js";import{useStyleDefaults as i}from"../../internal/defaults.js";import{observeVisibility as u}from"../../internal/observe.js";const f={xs:"h-[0.6875rem]",sm:"h-[0.75rem]",md:"h-[0.8125rem]",lg:"h-[0.9375rem]",xl:"h-[1.0625rem]"},c={xs:"gap-[0.3125rem]",sm:"gap-[0.375rem]",md:"gap-[0.5625rem]",lg:"gap-[0.5625rem]",xl:"gap-[0.6875rem]"},h={xs:"rounded-[0.3125rem]",sm:"rounded-[0.3125rem]",md:"rounded-[0.375rem]",lg:"rounded-[0.4375rem]",xl:"rounded-[0.5rem]"},x={xs:"h-12",sm:"h-16",md:"h-20",lg:"h-28",xl:"h-36"},g={xs:"rounded-(--neba-radius-xs)",sm:"rounded-(--neba-radius-sm)",md:"rounded-(--neba-radius-md)",lg:"rounded-(--neba-radius-lg)",xl:"rounded-(--neba-radius-xl)"},p="relative overflow-hidden bg-(--n-soft-hover)";function b(e){if(void 0!==e)return"number"==typeof e?`${e}px`:e}export const Skeleton=/*@__PURE__*/s.forwardRef(function Skeleton(w,v){const{shape:j="line",lines:$=1,size:y="md",color:k="secondary",width:N,height:A,animated:z=!0,label:R,render:S,className:B,style:E,...F}=i(w,["size"]),q=z?"neba-skeleton":"",C=s.useRef(null);s.useEffect(()=>{const e=C.current;if(!z||!e)return;const r=u(e,0,r=>{e.toggleAttribute("data-offscreen",!r)});return()=>{r?.(),e.removeAttribute("data-offscreen")}},[z]);const D="circle"===j?`rounded-full ${t[y]} ${o[y]} shrink-0`:"rect"===j?`w-full ${g[y]} ${void 0===A?x[y]:""}`:`w-full ${h[y]} ${f[y]}`,G=R?{role:"status"}:{"aria-hidden":!0},H=R?e("span",{className:a,children:R}):null,I="line"===j&&$>1;return l({render:S,ref:[v,C],props:{className:(I?["flex w-full flex-col",c[y],B??""]:[p,q,D,B??""]).filter(Boolean).join(" "),style:{...m(k,0),width:b(N),height:b(A),...E},...G,...I?{children:n(r,{children:[H,Array.from({length:$},(r,n)=>e("div",{className:d(p,q,h[y],f[y],n===$-1?"w-3/5":"w-full")},n))]})}:{children:H},...F}})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import*as a from"react";import{Slider as r}from"@base-ui/react/slider";import{cx as n,hasContent as s,metaTextClasses as i,surfaceClasses as t,transitionClasses as o}from"../../internal/styles.js";import{WidthSizer as d}from"../../internal/sizer.js";import{useStyleDefaults as c}from"../../internal/defaults.js";import{useIntlLocale as b}from"../../internal/media.js";const u={xs:"h-1",sm:"h-1.5",md:"h-1.5",lg:"h-2",xl:"h-2.5"},m={xs:"w-1",sm:"w-1.5",md:"w-1.5",lg:"w-2",xl:"w-2.5"},f={xs:"size-3",sm:"size-3.5",md:"size-4",lg:"size-5",xl:"size-6"},h={xs:"h-4",sm:"h-4.5",md:"h-5",lg:"h-6",xl:"h-7"},x={xs:"w-4",sm:"w-4.5",md:"w-5",lg:"w-6",xl:"w-7"},g=`neba-slider-indicator rounded-full bg-(--n-fill) ${o}`,v=["neba-slider-thumb rounded-full border bg-(--neba-surface)",t,"[border-color:var(--n-line-hover)]","[box-shadow:var(--neba-shadow-1),var(--neba-plate-glass)]","cursor-grab select-none active:cursor-grabbing",o,"hover:[box-shadow:var(--neba-shadow-2),0_0_0_4px_var(--n-soft)]","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2","data-[dragging]:[box-shadow:var(--neba-shadow-1),0_0_0_6px_var(--n-soft-hover)]"].join(" "),p=["neba-slider-thumb rounded-full border bg-(--neba-surface)",t,"[border-color:var(--neba-disabled-border)] shadow-none"].join(" ");function w(e,l,a,r){const n=(e.value-l)/(a-l)*100;return r?{insetBlockEnd:`${n}%`}:{insetInlineStart:`${n}%`}}function N(e,l,a){return e.value<=l?"min":e.value>=a?"max":"between"}const $={min:["items-start","items-end"],max:["items-end","items-start"],between:["items-center","items-center"]};export const Slider=/*@__PURE__*/a.forwardRef(function Slider(t,o){const{size:y="md",color:j="primary",orientation:_="horizontal",label:z,description:A,showValue:k=!1,marks:V=!1,disabled:S=!1,classNames:T,min:I=0,max:L=100,step:B=1,getAriaLabel:M,getAriaValueText:R,className:C,style:E,"aria-label":q,"aria-labelledby":D,"aria-describedby":F,locale:G,...H}=c(t,["size","locale"]),J=b(void 0),K="vertical"===_,O=a.useId(),P=[F,s(A)?O:void 0].filter(Boolean).join(" ")||void 0,Q=a.useMemo(()=>!0===V?function(e,l,a){const r=l-e;if(!(a>0)||!(r>0)||r/a>100)return[];const n=Math.floor(r/a+1e-9);return Array.from({length:n+1},(l,r)=>({value:e+r*a}))}(I,L,B):!1===V?[]:[...V],[V,I,L,B]),U={"--n-fill":`var(--neba-${j}-fill)`,"--n-accent":`var(--neba-${j}-accent)`,"--n-soft":`var(--neba-${j}-soft)`,"--n-soft-hover":`var(--neba-${j}-soft-hover)`,"--n-line-hover":`var(--neba-${j}-line-hover)`,"--n-ring":`var(--neba-${j}-ring)`},W=H.value??H.defaultValue,X=Array.isArray(W)?W.length:1,Y=e(r.Control,{className:n("flex touch-none select-none items-center justify-center",K?`${x[y]} h-full flex-col`:`w-full ${h[y]}`,T?.control),children:l(r.Track,{className:n(S?"neba-slider-rail rounded-full bg-(--neba-disabled-bg)":"neba-slider-rail rounded-full bg-(--n-soft)",K?`${m[y]} h-full`:`${u[y]} w-full`,T?.track),children:[e(r.Indicator,{className:n(S?"neba-slider-indicator rounded-full bg-(--neba-disabled-fg)":g,T?.indicator)}),Array.from({length:X},(l,a)=>e(r.Thumb,{index:a,"aria-label":q,"aria-labelledby":D,"aria-describedby":P,getAriaLabel:M,getAriaValueText:R,className:n(S?p:v,f[y],T?.thumb)},a))]})}),Z=Q.some(e=>s(e.label)),ee=Q.length>0?l("div",{"aria-hidden":"true",className:n("relative",i[y],K?"h-full ps-3":Z?"h-[calc(1lh+0.375rem)] w-full":"h-1.5 w-full"),children:[Q.map((a,r)=>l("span",{className:n("absolute flex text-(--neba-muted-fg)",K?"start-0 h-0 gap-1.5":"top-0 w-0 flex-col",$[N(a,I,L)][K?1:0],T?.mark),style:w(a,I,L,K),children:[e("span",{className:n("shrink-0 rounded-full bg-(--neba-border)",K?"h-px w-1.5":"h-1.5 w-px")}),s(a.label)?e("span",{className:"whitespace-nowrap",children:a.label}):null]},`${a.value}:${r}`)),K?e(d,{samples:Q.filter(e=>s(e.label)).map(e=>e.label)}):null]}):null;return l(r.Root,{ref:o,locale:G??J,orientation:_,disabled:S,className:n("flex",K?"w-fit flex-col items-center gap-2":"w-full flex-col gap-1.5",S?"[&_*]:cursor-not-allowed":"",C??""),style:{...U,...E},min:I,max:L,step:B,...H,children:[z||k?l("div",{className:`flex w-full items-baseline gap-2 ${i[y]}`,children:[z?e(r.Label,{className:n("font-medium",S?"text-(--neba-disabled-fg)":"text-(--neba-fg)",T?.label),children:z}):null,k?e(r.Value,{className:"ms-auto tabular-nums text-(--neba-muted-fg)",children:"function"==typeof k?k:null}):null]}):null,K?l("div",{className:"flex h-40 items-stretch",children:[Y,ee]}):Y,K?null:ee,A?e("div",{id:O,className:n(i[y],"text-(--neba-muted-fg)",T?.description),children:A}):null]})});
1
+ "use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import*as a from"react";import{Slider as r}from"@base-ui/react/slider";import{cx as n,hasContent as s,metaTextClasses as i,surfaceClasses as t,transitionClasses as o}from"../../internal/styles.js";import{WidthSizer as d}from"../../internal/sizer.js";import{useStyleDefaults as c}from"../../internal/defaults.js";import{useIntlLocale as b}from"../../internal/media.js";const u={xs:"h-1",sm:"h-1.5",md:"h-1.5",lg:"h-2",xl:"h-2.5"},m={xs:"w-1",sm:"w-1.5",md:"w-1.5",lg:"w-2",xl:"w-2.5"},f={xs:"size-3",sm:"size-3.5",md:"size-4",lg:"size-5",xl:"size-6"},h={xs:"h-4",sm:"h-4.5",md:"h-5",lg:"h-6",xl:"h-7"},x={xs:"w-4",sm:"w-4.5",md:"w-5",lg:"w-6",xl:"w-7"},g=`neba-slider-indicator rounded-full bg-(--n-fill) ${o}`,v="neba-slider-thumb rounded-full border bg-(--neba-surface) "+t+" [border-color:var(--n-line-hover)] [box-shadow:var(--neba-shadow-1),var(--neba-plate-glass)] cursor-grab select-none active:cursor-grabbing "+o+" hover:[box-shadow:var(--neba-shadow-2),0_0_0_4px_var(--n-soft)] focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2 data-[dragging]:[box-shadow:var(--neba-shadow-1),0_0_0_6px_var(--n-soft-hover)]",p="neba-slider-thumb rounded-full border bg-(--neba-surface) "+t+" [border-color:var(--neba-disabled-border)] shadow-none";function w(e,l,a,r){const n=(e.value-l)/(a-l)*100;return r?{insetBlockEnd:`${n}%`}:{insetInlineStart:`${n}%`}}function N(e,l,a){return e.value<=l?"min":e.value>=a?"max":"between"}const $={min:["items-start","items-end"],max:["items-end","items-start"],between:["items-center","items-center"]};export const Slider=/*@__PURE__*/a.forwardRef(function Slider(t,o){const{size:y="md",color:_="primary",orientation:j="horizontal",label:z,description:A,showValue:k=!1,marks:V=!1,disabled:S=!1,classNames:T,min:I=0,max:L=100,step:B=1,getAriaLabel:M,getAriaValueText:R,className:C,style:E,"aria-label":q,"aria-labelledby":D,"aria-describedby":F,locale:G,...H}=c(t,["size","locale"]),J=b(void 0),K="vertical"===j,O=a.useId(),P=[F,s(A)?O:void 0].filter(Boolean).join(" ")||void 0,Q=a.useMemo(()=>!0===V?function(e,l,a){const r=l-e;if(!(a>0)||!(r>0)||r/a>100)return[];const n=Math.floor(r/a+1e-9);return Array.from({length:n+1},(l,r)=>({value:e+r*a}))}(I,L,B):!1===V?[]:[...V],[V,I,L,B]),U={"--n-fill":`var(--neba-${_}-fill)`,"--n-accent":`var(--neba-${_}-accent)`,"--n-soft":`var(--neba-${_}-soft)`,"--n-soft-hover":`var(--neba-${_}-soft-hover)`,"--n-line-hover":`var(--neba-${_}-line-hover)`,"--n-ring":`var(--neba-${_}-ring)`},W=H.value??H.defaultValue,X=Array.isArray(W)?W.length:1,Y=e(r.Control,{className:n("flex touch-none select-none items-center justify-center",K?`${x[y]} h-full flex-col`:`w-full ${h[y]}`,T?.control),children:l(r.Track,{className:n(S?"neba-slider-rail rounded-full bg-(--neba-disabled-bg)":"neba-slider-rail rounded-full bg-(--n-soft)",K?`${m[y]} h-full`:`${u[y]} w-full`,T?.track),children:[e(r.Indicator,{className:n(S?"neba-slider-indicator rounded-full bg-(--neba-disabled-fg)":g,T?.indicator)}),Array.from({length:X},(l,a)=>e(r.Thumb,{index:a,"aria-label":q,"aria-labelledby":D,"aria-describedby":P,getAriaLabel:M,getAriaValueText:R,className:n(S?p:v,f[y],T?.thumb)},a))]})}),Z=Q.some(e=>s(e.label)),ee=Q.length>0?l("div",{"aria-hidden":"true",className:n("relative",i[y],K?"h-full ps-3":Z?"h-[calc(1lh+0.375rem)] w-full":"h-1.5 w-full"),children:[Q.map((a,r)=>l("span",{className:n("absolute flex text-(--neba-muted-fg)",K?"start-0 h-0 gap-1.5":"top-0 w-0 flex-col",$[N(a,I,L)][K?1:0],T?.mark),style:w(a,I,L,K),children:[e("span",{className:n("shrink-0 rounded-full bg-(--neba-border)",K?"h-px w-1.5":"h-1.5 w-px")}),s(a.label)?e("span",{className:"whitespace-nowrap",children:a.label}):null]},`${a.value}:${r}`)),K?e(d,{samples:Q.filter(e=>s(e.label)).map(e=>e.label)}):null]}):null;return l(r.Root,{ref:o,locale:G??J,orientation:j,disabled:S,className:n("flex",K?"w-fit flex-col items-center gap-2":"w-full flex-col gap-1.5",S?"[&_*]:cursor-not-allowed":"",C??""),style:{...U,...E},min:I,max:L,step:B,...H,children:[z||k?l("div",{className:`flex w-full items-baseline gap-2 ${i[y]}`,children:[z?e(r.Label,{className:n("font-medium",S?"text-(--neba-disabled-fg)":"text-(--neba-fg)",T?.label),children:z}):null,k?e(r.Value,{className:"ms-auto tabular-nums text-(--neba-muted-fg)",children:"function"==typeof k?k:null}):null]}):null,K?l("div",{className:"flex h-40 items-stretch",children:[Y,ee]}):Y,K?null:ee,A?e("div",{id:O,className:n(i[y],"text-(--neba-muted-fg)",T?.description),children:A}):null]})});
@@ -1,2 +1,2 @@
1
1
  export { Slider } from './Slider.js';
2
- export type { SliderProps } from './Slider.js';
2
+ export type { SliderProps, SliderSlot } from './Slider.js';
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as l from"react";import{Collapsible as s}from"@base-ui/react/collapsible";import{boxPaddingXClasses as t,boxPaddingYClasses as a}from"../box/Box.js";import{ChevronIcon as i}from"../../internal/icons.js";import{TextLink as r}from"../text-link/TextLink.js";import{safeHref as o,safeRel as m}from"../../internal/link.js";import{sourcesMessages as c,useMessages as d}from"../../internal/i18n.js";import{citationMarkClasses as f,collapsiblePanelClasses as p,cx as u,gapClasses as h,hasContent as x,iconClasses as b,metaTextClasses as g,radiusClasses as v,sheetBodyClasses as N,sheetTitleClasses as j,surfaceClasses as w,surfaceSlots as y,transitionClasses as z,disclosureChevronClasses as k,disclosureTriggerClasses as _}from"../../internal/styles.js";import{useStyleDefaults as C}from"../../internal/defaults.js";const O={solid:[w,"text-(--neba-fg) bg-(--n-panel-hover)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[w,"border text-(--neba-fg) bg-(--n-panel)","[border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]"].join(" "),text:"text-(--neba-fg) bg-transparent"},S={xs:"size-3.5",sm:"size-4",md:"size-4.5",lg:"size-5",xl:"size-6"};export const Sources=/*@__PURE__*/l.forwardRef(function Sources(w,$){const{variant:F="text",size:R="md",color:T="primary",density:U="default",elevation:B=0,items:L,title:P,collapsible:q=!0,open:A,defaultOpen:D=!1,onOpenChange:E,hiddenUntilFound:G=!0,numbered:H=!0,locale:I,labels:J,classNames:K,className:M,style:Q,...V}=C(w,["size","density","variant","locale"]),W={...d(c,I),...J},[X,Y]=l.useState(D),Z=void 0!==A,ee=Z?A:X,ne=t[U][R],le=a[U][R],se=x(P)?P:W.title,te=e("ol",{role:"list",className:u("m-0 flex list-none flex-col gap-2 p-0",ne,"compact"===U?"pb-2":"pb-4",N[R],K?.list??""),children:L.map((l,s)=>{const t=l.index??s+1,a=o(l.href),i=n("span",{className:"min-w-0 font-medium",children:[l.title,x(l.site)?e("span",{className:u("ms-2 font-normal text-(--neba-muted-fg)",g[R]),children:l.site}):null]});return n("li",{className:u("flex min-w-0 items-baseline gap-2",K?.item??""),children:[H?e("span",{"aria-hidden":"true",className:f,children:t}):null,x(l.icon)?e("span",{className:u("inline-flex shrink-0 items-center justify-center self-center overflow-hidden","rounded-[0.25rem] [&_img]:size-full [&_img]:object-cover",S[R]),children:l.icon}):null,n("span",{className:"flex min-w-0 flex-col gap-0.5",children:[a?e(r,{href:a,underline:"hover",target:l.target,rel:m(l.target,l.rel),locale:I,className:"min-w-0",children:i}):i,x(l.description)?e("span",{className:u("min-w-0 text-(--neba-muted-fg)",g[R]),children:l.description}):null]})]},`${t}-${a??s}`)})}),ae=u("flex flex-col overflow-hidden",v[R],O[F],z,b,M??""),ie={...y(T,B),...Q};return q?n(s.Root,{ref:$,open:ee,onOpenChange:e=>{Z||Y(e),E?.(e)},className:ae,style:ie,...V,children:[n(s.Trigger,{className:u("flex w-full cursor-pointer items-center text-start font-semibold text-(--neba-fg)",_,ne,le,h[R],j[R],z,"hover:bg-(--n-soft)","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]",K?.header??""),children:[e("span",{className:"min-w-0 truncate",children:se}),e("span",{className:"shrink-0 font-normal text-(--neba-muted-fg) tabular-nums",children:L.length}),e("span",{className:`${k} ms-auto text-(--neba-muted-fg)`,children:e(i,{})})]}),e(s.Panel,{hiddenUntilFound:G,className:p,children:te})]}):n("div",{ref:$,className:ae,style:ie,...V,children:[n("div",{className:u("flex items-center font-semibold text-(--neba-fg)",ne,le,h[R],j[R],K?.header??""),children:[se,e("span",{className:"text-(--neba-muted-fg) tabular-nums",children:L.length})]}),te]})});
1
+ "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as l from"react";import{Collapsible as s}from"@base-ui/react/collapsible";import{boxPaddingXClasses as t,boxPaddingYClasses as a}from"../box/Box.js";import{ChevronIcon as i}from"../../internal/icons.js";import{TextLink as r}from"../text-link/TextLink.js";import{safeHref as o,safeRel as m}from"../../internal/link.js";import{sourcesMessages as c,useMessages as d}from"../../internal/i18n.js";import{citationMarkClasses as f,collapsiblePanelClasses as p,cx as u,gapClasses as h,hasContent as x,iconClasses as b,metaTextClasses as g,radiusClasses as v,sheetBodyClasses as N,sheetTitleClasses as j,surfaceClasses as w,surfaceSlots as y,transitionClasses as z,disclosureChevronClasses as k,disclosureTriggerClasses as _}from"../../internal/styles.js";import{useStyleDefaults as C}from"../../internal/defaults.js";const O={solid:w+" text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:w+" border text-(--neba-fg) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:"text-(--neba-fg) bg-transparent"},S={xs:"size-3.5",sm:"size-4",md:"size-4.5",lg:"size-5",xl:"size-6"};export const Sources=/*@__PURE__*/l.forwardRef(function Sources(w,$){const{variant:F="text",size:R="md",color:T="primary",density:U="default",elevation:B=0,items:L,title:P,collapsible:q=!0,open:A,defaultOpen:D=!1,onOpenChange:E,hiddenUntilFound:G=!0,numbered:H=!0,locale:I,labels:J,classNames:K,className:M,style:Q,...V}=C(w,["size","density","variant","locale"]),W={...d(c,I),...J},[X,Y]=l.useState(D),Z=void 0!==A,ee=Z?A:X,ne=t[U][R],le=a[U][R],se=x(P)?P:W.title,te=e("ol",{role:"list",className:u("m-0 flex list-none flex-col gap-2 p-0",ne,"compact"===U?"pb-2":"pb-4",N[R],K?.list??""),children:L.map((l,s)=>{const t=l.index??s+1,a=o(l.href),i=n("span",{className:"min-w-0 font-medium",children:[l.title,x(l.site)?e("span",{className:u("ms-2 font-normal text-(--neba-muted-fg)",g[R]),children:l.site}):null]});return n("li",{className:u("flex min-w-0 items-baseline gap-2",K?.item??""),children:[H?e("span",{"aria-hidden":"true",className:f,children:t}):null,x(l.icon)?e("span",{className:u("inline-flex shrink-0 items-center justify-center self-center overflow-hidden","rounded-[0.25rem] [&_img]:size-full [&_img]:object-cover",S[R]),children:l.icon}):null,n("span",{className:"flex min-w-0 flex-col gap-0.5",children:[a?e(r,{href:a,underline:"hover",target:l.target,rel:m(l.target,l.rel),locale:I,className:"min-w-0",children:i}):i,x(l.description)?e("span",{className:u("min-w-0 text-(--neba-muted-fg)",g[R]),children:l.description}):null]})]},`${t}-${a??s}`)})}),ae=u("flex flex-col overflow-hidden",v[R],O[F],z,b,M??""),ie={...y(T,B),...Q};return q?n(s.Root,{ref:$,open:ee,onOpenChange:e=>{Z||Y(e),E?.(e)},className:ae,style:ie,...V,children:[n(s.Trigger,{className:u("flex w-full cursor-pointer items-center text-start font-semibold text-(--neba-fg)",_,ne,le,h[R],j[R],z,"hover:bg-(--n-soft)","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]",K?.header??""),children:[e("span",{className:"min-w-0 truncate",children:se}),e("span",{className:"shrink-0 font-normal text-(--neba-muted-fg) tabular-nums",children:L.length}),e("span",{className:`${k} ms-auto text-(--neba-muted-fg)`,children:e(i,{})})]}),e(s.Panel,{hiddenUntilFound:G,className:p,children:te})]}):n("div",{ref:$,className:ae,style:ie,...V,children:[n("div",{className:u("flex items-center font-semibold text-(--neba-fg)",ne,le,h[R],j[R],K?.header??""),children:[se,e("span",{className:"text-(--neba-muted-fg) tabular-nums",children:L.length})]}),te]})});
@@ -60,6 +60,13 @@ export interface SparklineProps extends Omit<React.ComponentPropsWithoutRef<'div
60
60
  max?: number;
61
61
  /** How wide. Fills its container by default. */
62
62
  width?: number | string;
63
+ /**
64
+ * The width, in pixels, to draw at before the strip has measured its box: on
65
+ * the server and while the page hydrates. Without it a server-rendered strip
66
+ * is an empty box until the page runs; the measured width replaces it. Not
67
+ * read when `width` is a number, which is drawn from the first render.
68
+ */
69
+ initialWidth?: number;
63
70
  /** A name for the strip, read out in place of it. */
64
71
  label?: string;
65
72
  }
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as a,Fragment as l}from"react/jsx-runtime";import*as r from"react";import{areaPath as t,barMaxThickness as n,barPath as i,barRadius as o,extentOf as s,lineWidths as m,markerRadii as h,markGap as u,resolveColor as c,sparklineHeights as d,toValue as p}from"../../internal/chart.js";import{useMeasuredWidth as f}from"../../internal/chart-frame.js";import{cx as x,srOnlyClasses as v}from"../../internal/styles.js";import{linePath as b}from"../../internal/chart.js";import{useStyleDefaults as g}from"../../internal/defaults.js";export const Sparkline=/*@__PURE__*/r.forwardRef(function Sparkline(k,M){const{data:y,shape:j="line",curve:w="linear",nulls:$="gap",size:N="md",color:z,endDot:W=!1,baseline:B,min:C,max:L,width:R,label:S,className:D,style:F,...G}=g(k,["size"]),I=r.useRef(null),q=f(I),A=r.useId().replace(/:/g,""),E=r.useMemo(()=>{const e=y.map(p);return"zero"===$?e.map(e=>null===e.value?{...e,value:0}:e):e},[y,$]),H=d[N],J=m[N],K=h[N],O=s([E],!1),P="bar"===j,Q=C??(O?Math.min(O.min,B??O.min,P?0:O.min):0),T=L??(O?Math.max(O.max,B??O.max,P?0:O.max):1),U=T-Q||1,V=T===Q&&!P,X=Math.min(Math.max(Q,0),T),Y="number"==typeof R?R:q,Z=c(z??"var(--neba-chart-1)"),_="bar"===j?0:J/2+(W?K:0),ee=_,ae=Math.max(1,H-2*_),le=e=>V?ee+ae/2:ee+(1-(e-Q)/U)*ae,re=E.length>1?Y/(E.length-1):Y,te=E.map((e,a)=>null===e.value?null:{x:a*re,y:le(e.value)}),ne="connect"===$?te.filter(Boolean):te,ie=(()=>{for(let e=E.length-1;e>=0;e--)if(null!==E[e].value)return e;return-1})(),oe=Math.min(n[N]/2,Math.max(1,Y/Math.max(1,E.length)-u));return a("div",{ref:M,className:x("relative block",D??void 0),style:{width:R??"100%",height:H,...F},...G,children:[e("div",{ref:I,className:"absolute inset-0",children:Y>0&&E.length>0?a("svg",{width:Y,height:H,viewBox:`0 0 ${Y} ${H}`,role:S?"img":"presentation","aria-label":S,"aria-hidden":!S||void 0,className:"block overflow-visible",children:["area"===j?a(l,{children:[e("defs",{children:a("linearGradient",{id:`${A}-fill`,x1:"0",y1:"0",x2:"0",y2:"1",children:[e("stop",{offset:"0%",stopColor:`color-mix(in oklab, ${Z} 32%, transparent)`}),e("stop",{offset:"100%",stopColor:`color-mix(in oklab, ${Z} 2%, transparent)`})]})}),e("path",{d:t(ne,H,w),fill:`url(#${A}-fill)`})]}):null,void 0!==B?e("line",{x1:0,x2:Y,y1:le(B),y2:le(B),stroke:"var(--neba-chart-baseline)",strokeWidth:1}):null,"bar"===j?E.map((a,l)=>null===a.value?null:e("path",{d:i(l*(Y/Math.max(1,E.length))+(Y/Math.max(1,E.length)-oe)/2,Math.min(le(a.value),le(X)),oe,Math.max(1,Math.abs(le(a.value)-le(X))),o/2,a.value>=0?"up":"down"),fill:a.color??Z},l)):e("path",{d:b(ne,w),fill:"none",stroke:Z,strokeWidth:J,strokeLinecap:"round",strokeLinejoin:"round"}),W&&ie>=0&&"bar"!==j?e("circle",{cx:te[ie].x,cy:te[ie].y,r:K,fill:Z,stroke:"var(--neba-chart-gap)",strokeWidth:u}):null]}):null}),S?e("span",{className:v,children:E.map(e=>null===e.value?"—":e.value).join(", ")}):null]})});
1
+ "use client";import{jsx as e,jsxs as a,Fragment as l}from"react/jsx-runtime";import*as t from"react";import{areaPath as r,barMaxThickness as n,barPath as i,barRadius as o,extentOf as s,lineWidths as m,markerRadii as h,markGap as u,resolveColor as c,sparklineHeights as d,toValue as p}from"../../internal/chart.js";import{initialWidthFor as f,useMeasuredWidth as v}from"../../internal/chart-frame.js";import{cx as x,srOnlyClasses as b}from"../../internal/styles.js";import{linePath as g}from"../../internal/chart.js";import{useStyleDefaults as k}from"../../internal/defaults.js";export const Sparkline=/*@__PURE__*/t.forwardRef(function Sparkline(M,y){const{data:j,shape:w="line",curve:$="linear",nulls:N="gap",size:W="md",color:z,endDot:B=!1,baseline:C,min:L,max:R,width:S,initialWidth:D,label:F,className:G,style:I,...q}=k(M,["size"]),A=t.useRef(null),E=v(A,{enabled:"number"!=typeof S,initial:f(D,void 0)}),H=t.useId().replace(/:/g,""),J=t.useMemo(()=>{const e=j.map(p);return"zero"===N?e.map(e=>null===e.value?{...e,value:0}:e):e},[j,N]),K=d[W],O=m[W],P=h[W],Q=s([J],!1),T="bar"===w,U=L??(Q?Math.min(Q.min,C??Q.min,T?0:Q.min):0),V=R??(Q?Math.max(Q.max,C??Q.max,T?0:Q.max):1),X=V-U||1,Y=V===U&&!T,Z=Math.min(Math.max(U,0),V),_="number"==typeof S?S:E,ee=c(z??"var(--neba-chart-1)"),ae="bar"===w?0:O/2+(B?P:0),le=ae,te=Math.max(1,K-2*ae),re=e=>Y?le+te/2:le+(1-(e-U)/X)*te,ne=J.length>1?_/(J.length-1):_,ie=J.map((e,a)=>null===e.value?null:{x:a*ne,y:re(e.value)}),oe="connect"===N?ie.filter(Boolean):ie,se=(()=>{for(let e=J.length-1;e>=0;e--)if(null!==J[e].value)return e;return-1})(),me=Math.min(n[W]/2,Math.max(1,_/Math.max(1,J.length)-u));return a("div",{ref:y,className:x("relative block",G??void 0),style:{width:S??"100%",height:K,...I},...q,children:[e("div",{ref:A,className:"absolute inset-0",role:F?"img":void 0,"aria-label":F,children:_>0&&J.length>0?a("svg",{width:_,height:K,viewBox:`0 0 ${_} ${K}`,"aria-hidden":"true",className:"block overflow-visible",children:["area"===w?a(l,{children:[e("defs",{children:a("linearGradient",{id:`${H}-fill`,x1:"0",y1:"0",x2:"0",y2:"1",children:[e("stop",{offset:"0%",stopColor:`color-mix(in oklab, ${ee} 32%, transparent)`}),e("stop",{offset:"100%",stopColor:`color-mix(in oklab, ${ee} 2%, transparent)`})]})}),e("path",{d:r(oe,K,$),fill:`url(#${H}-fill)`})]}):null,void 0!==C?e("line",{x1:0,x2:_,y1:re(C),y2:re(C),stroke:"var(--neba-chart-baseline)",strokeWidth:1}):null,"bar"===w?J.map((a,l)=>null===a.value?null:e("path",{d:i(l*(_/Math.max(1,J.length))+(_/Math.max(1,J.length)-me)/2,Math.min(re(a.value),re(Z)),me,Math.max(1,Math.abs(re(a.value)-re(Z))),o/2,a.value>=0?"up":"down"),fill:a.color??ee},l)):e("path",{d:g(oe,$),fill:"none",stroke:ee,strokeWidth:O,strokeLinecap:"round",strokeLinejoin:"round"}),B&&se>=0&&"bar"!==w?e("circle",{cx:ie[se].x,cy:ie[se].y,r:P,fill:ee,stroke:"var(--neba-chart-gap)",strokeWidth:u}):null]}):null}),F?e("span",{className:b,children:J.map(e=>null===e.value?"—":e.value).join(", ")}):null]})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as r}from"react/jsx-runtime";import*as n from"react";import{useLayoutEffectOnClient as t}from"../../internal/layout-effect.js";import{Button as i}from"../button/Button.js";import{spoilerMessages as a,useMessages as o}from"../../internal/i18n.js";import{boxPaddingClasses as l,boxPaddingXClasses as s,boxPaddingYClasses as d}from"../box/Box.js";import{cx as c,hasContent as u,metaTextClasses as m,radiusClasses as f,surfaceClasses as v,surfaceSlots as p,transitionClasses as b}from"../../internal/styles.js";import{inertValue as x}from"../../internal/inert.js";import{useStyleDefaults as h}from"../../internal/defaults.js";const g={solid:[v,"bg-(--n-panel-hover)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[v,"border bg-(--n-panel)","[border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]"].join(" "),text:"bg-transparent"};export const Spoiler=/*@__PURE__*/n.forwardRef(function Spoiler(v,j){const{revealed:y,defaultRevealed:w=!1,onRevealedChange:R,locale:N,label:z,hideLabel:C,description:S,action:k,reversible:_=!1,maxHeight:E,blur:H=10,padded:T=!0,variant:A="outline",size:B="md",color:I="primary",density:L="default",elevation:$=0,className:q,style:M,children:D,...F}=h(v,["size","density","variant","locale"]),G=o(a,N),J=n.useId(),[K,O]=n.useState(w),P=y??K,Q=e=>{void 0===y&&O(e),R?.(e)},U=!1===S?null:S??G.notice,V=n.useRef(null),W=n.useRef(null);return t(()=>{const e=V.current?.parentElement,r=document.activeElement;if(!(e&&r instanceof HTMLElement&&e.contains(r)))return;if(!r.closest("[inert]"))return;const n=P?V.current:W.current?.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');n?.focus({preventScroll:!0})},[P]),r("div",{ref:j,className:c("isolate grid overflow-hidden",f[B],g[A],b,q??""),style:{gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:_?"auto auto":"auto",...p(I,$),...M},...F,children:[e("div",{ref:V,id:J,tabIndex:-1,className:c("min-w-0 [outline:none]",T?l[L][B]:"","[transition:filter_var(--neba-duration-fill)_var(--neba-ease)]","motion-reduce:[transition-duration:0ms]",P?"":"select-none"),style:{gridArea:"1 / 1",filter:P?void 0:`blur(${H}px)`,maxHeight:P?void 0:E,overflow:P?void 0:"hidden"},inert:x(!P),children:D}),_?e("div",{className:[P?"":"invisible","flex justify-end",s[L][B],d[L][B],"pt-0"].join(" "),style:{gridArea:"2 / 1"},inert:x(!P),children:e(i,{variant:"text",size:B,color:I,density:L,onClick:()=>Q(!1),"aria-expanded":!0,"aria-controls":J,children:C??G.hide})}):null,r("div",{ref:W,className:c("z-10 flex flex-col items-center justify-center gap-2 text-center",l[L][B],P?"invisible":"[background-color:color-mix(in_oklab,var(--neba-surface)_55%,transparent)]"),style:{gridRow:"1 / -1",gridColumn:"1"},inert:x(P),children:[u(U)?e("p",{className:`m-0 text-(--neba-muted-fg) ${m[B]}`,children:U}):null,k??e(i,{size:B,color:I,density:L,onClick:()=>Q(!0),"aria-expanded":!1,"aria-controls":J,children:z??G.reveal})]})]})});
1
+ "use client";import{jsx as e,jsxs as r}from"react/jsx-runtime";import*as t from"react";import{useLayoutEffectOnClient as n}from"../../internal/layout-effect.js";import{Button as i}from"../button/Button.js";import{spoilerMessages as a,useMessages as l}from"../../internal/i18n.js";import{boxPaddingClasses as o,boxPaddingXClasses as s,boxPaddingYClasses as d}from"../box/Box.js";import{cx as c,hasContent as u,metaTextClasses as m,radiusClasses as f,surfaceClasses as v,surfaceSlots as p,transitionClasses as b}from"../../internal/styles.js";import{inertValue as x}from"../../internal/inert.js";import{useStyleDefaults as h}from"../../internal/defaults.js";const g={solid:v+" bg-(--n-panel-hover) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:v+" border bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:"bg-transparent"};export const Spoiler=/*@__PURE__*/t.forwardRef(function Spoiler(v,y){const{revealed:j,defaultRevealed:w=!1,onRevealedChange:R,locale:N,label:z,hideLabel:C,description:S,action:k,reversible:_=!1,maxHeight:E,blur:H=10,padded:T=!0,variant:A="outline",size:B="md",color:I="primary",density:L="default",elevation:$=0,className:q,style:M,children:D,...F}=h(v,["size","density","variant","locale"]),G=l(a,N),J=t.useId(),[K,O]=t.useState(w),P=j??K,Q=e=>{void 0===j&&O(e),R?.(e)},U=!1===S?null:S??G.notice,V=t.useRef(null),W=t.useRef(null);return n(()=>{const e=V.current?.parentElement,r=document.activeElement;if(!(e&&r instanceof HTMLElement&&e.contains(r)))return;if(!r.closest("[inert]"))return;const t=P?V.current:W.current?.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');t?.focus({preventScroll:!0})},[P]),r("div",{ref:y,className:c("isolate grid overflow-hidden",f[B],g[A],b,q??""),style:{gridTemplateColumns:"minmax(0, 1fr)",gridTemplateRows:_?"auto auto":"auto",...p(I,$),...M},...F,children:[e("div",{ref:V,id:J,tabIndex:-1,className:c("min-w-0 [outline:none]",T?o[L][B]:"","[transition:filter_var(--neba-duration-fill)_var(--neba-ease)]","motion-reduce:[transition-duration:0ms]",P?"":"select-none"),style:{gridArea:"1 / 1",filter:P?void 0:`blur(${H}px)`,maxHeight:P?void 0:E,overflow:P?void 0:"hidden"},inert:x(!P),children:D}),_?e("div",{className:(P?"":"invisible")+" flex justify-end "+s[L][B]+" "+d[L][B]+" pt-0",style:{gridArea:"2 / 1"},inert:x(!P),children:e(i,{variant:"text",size:B,color:I,density:L,onClick:()=>Q(!1),"aria-expanded":!0,"aria-controls":J,children:C??G.hide})}):null,r("div",{ref:W,className:c("z-10 flex flex-col items-center justify-center gap-2 text-center",o[L][B],P?"invisible":"[background-color:color-mix(in_oklab,var(--neba-surface)_55%,transparent)]"),style:{gridRow:"1 / -1",gridColumn:"1"},inert:x(P),children:[u(U)?e("p",{className:`m-0 text-(--neba-muted-fg) ${m[B]}`,children:U}):null,k??e(i,{size:B,color:I,density:L,onClick:()=>Q(!0),"aria-expanded":!1,"aria-controls":J,children:z??G.reveal})]})]})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as l from"react";import{Box as n}from"../box/Box.js";import{Chip as a}from"../chip/Chip.js";import{MinusIcon as s,TrendDownIcon as r,TrendUpIcon as i}from"../../internal/icons.js";import{numberFormatter as m}from"../../internal/format.js";import{cx as o,hasContent as u,metaTextClasses as c,sheetSectionGapClasses as d}from"../../internal/styles.js";import{useStyleDefaults as f}from"../../internal/defaults.js";import{useIntlLocale as x}from"../../internal/media.js";const p={xs:"text-[1.125rem]/[1.375rem]",sm:"text-[1.375rem]/[1.625rem]",md:"text-[1.75rem]/[2rem]",lg:"text-[2.25rem]/[2.5rem]",xl:"text-[2.875rem]/[3.25rem]"},b={xs:"text-[0.75rem]",sm:"text-[0.875rem]",md:"text-[1rem]",lg:"text-[1.25rem]",xl:"text-[1.5rem]"},h={xs:"gap-y-0.5",sm:"gap-y-0.5",md:"gap-y-1",lg:"gap-y-1",xl:"gap-y-1.5"},g={start:"items-start text-start",center:"items-center text-center",end:"items-end text-end"},N={up:e(i,{}),down:e(r,{}),flat:e(s,{})};export const Statistic=/*@__PURE__*/l.forwardRef(function Statistic(l,s){const{size:r="md",color:i="primary",density:j="default",label:w,value:y,format:v,locale:$,prefix:M,unit:z,icon:F,previousValue:k,delta:B="percent",betterWhen:D="up",caption:S,align:C="start",className:I,children:O,...R}=f(l,["size","density","locale"]),V=x($),W="number"==typeof y?y:null,q=null===W?y:m(V,v).format(W),A=null!==W&&Number.isFinite(W)&&void 0!==k&&Number.isFinite(k)?W-k:null,E=null!==A&&0!==k&&void 0!==k?A/Math.abs(k):null,G=m(V,v),H="absolute"!==B&&null!==E,J=H?3:G.resolvedOptions().maximumFractionDigits??0,K=H?E:A,L=null===K||0===Math.round(Math.abs(K)*10**J)?0:Math.sign(K),P=null===A?null:L>0?"up":L<0?"down":"flat";let Q=null;if(null!==A&&null!==P&&"none"!==B){const e="up"===P?"+":"down"===P?"-":"",t=`${e}${G.format(Math.abs(A))}`,l=null===E?null:`${e}${m(V,{style:"percent",maximumFractionDigits:1}).format(Math.abs(E))}`;Q="absolute"===B?t:"both"===B?[l,t].filter(Boolean).join(" · "):l??t}const T=null===P||"flat"===P?"secondary":P===D?"success":"danger",U=null!==Q||u(S);return t(n,{ref:s,size:r,color:i,density:j,className:o("flex flex-col",d[r],g[C],I??""),...R,children:[u(w)||u(F)?t("div",{className:["flex min-w-0 items-center gap-1.5 font-medium text-(--neba-muted-fg)",c[r]].join(" "),children:[u(F)?e("span",{className:"flex shrink-0 items-center",children:F}):null,u(w)?e("span",{className:"min-w-0 truncate",children:w}):null]}):null,t("div",{className:["flex min-w-0 flex-wrap items-baseline gap-1 font-semibold text-(--neba-fg) tabular-nums",p[r]].join(" "),children:[u(M)?e("span",{className:`font-medium text-(--neba-muted-fg) ${b[r]}`,children:M}):null,e("span",{className:"min-w-0 break-words",children:q}),u(z)?e("span",{className:`font-medium text-(--neba-muted-fg) ${b[r]}`,children:z}):null]}),U?t("div",{className:`flex min-w-0 flex-wrap items-center gap-x-2 ${h[r]}`,children:[null!==Q&&null!==P?e(a,{size:r,variant:"text",color:T,startIcon:N[P],className:"tabular-nums",children:Q}):null,u(S)?e("span",{className:`min-w-0 text-(--neba-muted-fg) ${c[r]}`,children:S}):null]}):null,O]})});
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as l from"react";import{Box as n}from"../box/Box.js";import{Chip as a}from"../chip/Chip.js";import{MinusIcon as s,TrendDownIcon as r,TrendUpIcon as i}from"../../internal/icons.js";import{numberFormatter as m}from"../../internal/format.js";import{cx as o,hasContent as u,metaTextClasses as c,sheetSectionGapClasses as d}from"../../internal/styles.js";import{useStyleDefaults as f}from"../../internal/defaults.js";import{useIntlLocale as x}from"../../internal/media.js";const p={xs:"text-[1.125rem]/[1.375rem]",sm:"text-[1.375rem]/[1.625rem]",md:"text-[1.75rem]/[2rem]",lg:"text-[2.25rem]/[2.5rem]",xl:"text-[2.875rem]/[3.25rem]"},b={xs:"text-[0.75rem]",sm:"text-[0.875rem]",md:"text-[1rem]",lg:"text-[1.25rem]",xl:"text-[1.5rem]"},h={xs:"gap-y-0.5",sm:"gap-y-0.5",md:"gap-y-1",lg:"gap-y-1",xl:"gap-y-1.5"},g={start:"items-start text-start",center:"items-center text-center",end:"items-end text-end"},N={up:e(i,{}),down:e(r,{}),flat:e(s,{})};export const Statistic=/*@__PURE__*/l.forwardRef(function Statistic(l,s){const{size:r="md",color:i="primary",density:w="default",label:y,value:j,format:v,locale:$,prefix:M,unit:z,icon:F,previousValue:k,delta:B="percent",betterWhen:D="up",caption:S,align:C="start",className:I,children:O,...R}=f(l,["size","density","locale"]),V=x($),W="number"==typeof j?j:null,q=null===W?j:m(V,v).format(W),A=null!==W&&Number.isFinite(W)&&void 0!==k&&Number.isFinite(k)?W-k:null,E=null!==A&&0!==k&&void 0!==k?A/Math.abs(k):null,G=m(V,v),H="absolute"!==B&&null!==E,J=H?3:G.resolvedOptions().maximumFractionDigits??0,K=H?E:A,L=null===K||0===Math.round(Math.abs(K)*10**J)?0:Math.sign(K),P=null===A?null:L>0?"up":L<0?"down":"flat";let Q=null;if(null!==A&&null!==P&&"none"!==B){const e="up"===P?"+":"down"===P?"-":"",t=`${e}${G.format(Math.abs(A))}`,l=null===E?null:`${e}${m(V,{style:"percent",maximumFractionDigits:1}).format(Math.abs(E))}`;Q="absolute"===B?t:"both"===B?[l,t].filter(Boolean).join(" · "):l??t}const T=null===P||"flat"===P?"secondary":P===D?"success":"danger",U=null!==Q||u(S);return t(n,{ref:s,size:r,color:i,density:w,className:o("flex flex-col",d[r],g[C],I??""),...R,children:[u(y)||u(F)?t("div",{className:"flex min-w-0 items-center gap-1.5 font-medium text-(--neba-muted-fg) "+c[r],children:[u(F)?e("span",{className:"flex shrink-0 items-center",children:F}):null,u(y)?e("span",{className:"min-w-0 truncate",children:y}):null]}):null,t("div",{className:"flex min-w-0 flex-wrap items-baseline gap-1 font-semibold text-(--neba-fg) tabular-nums "+p[r],children:[u(M)?e("span",{className:`font-medium text-(--neba-muted-fg) ${b[r]}`,children:M}):null,e("span",{className:"min-w-0 break-words",children:q}),u(z)?e("span",{className:`font-medium text-(--neba-muted-fg) ${b[r]}`,children:z}):null]}),U?t("div",{className:`flex min-w-0 flex-wrap items-center gap-x-2 ${h[r]}`,children:[null!==Q&&null!==P?e(a,{size:r,variant:"text",color:T,startIcon:N[P],className:"tabular-nums",children:Q}):null,u(S)?e("span",{className:`min-w-0 text-(--neba-muted-fg) ${c[r]}`,children:S}):null]}):null,O]})});
@@ -26,11 +26,13 @@ export interface StreamingTextProps extends Omit<React.ComponentPropsWithoutRef<
26
26
  *
27
27
  * On. A word that arrives during a stream costs one element, which is the
28
28
  * price of the effect: a transition on the block as a whole would fade the
29
- * *whole answer* every time a token landed. Text that did not arrive that
30
- * way costs nothing — what the block was first drawn with while not
31
- * streaming, what the server rendered, what was already there when a stream
32
- * started, and what replaces it while nothing streams are drawn as plain
33
- * text. Turn it off for a very long answer.
29
+ * *whole answer* every time a token landed. The elements last as long as the
30
+ * stream: once `streaming` is off and the last word has faded in, the answer
31
+ * is drawn as plain text again. Text that did not arrive that way costs
32
+ * nothing — what the block was first drawn with while not streaming, what the
33
+ * server rendered, what was already there when a stream started, and what
34
+ * replaces it while nothing streams are drawn as plain text. Turn it off for
35
+ * a very long answer.
34
36
  * @default true
35
37
  */
36
38
  fade?: boolean;
@@ -75,7 +77,9 @@ export interface StreamingTextProps extends Omit<React.ComponentPropsWithoutRef<
75
77
  * streams — a message loaded from history, a page rendered on the server — is
76
78
  * one run of plain text, because none of it is arriving: fifty such messages
77
79
  * drawn a word to an element were fifteen thousand elements, each with an
78
- * animation to start.
80
+ * animation to start. A stream that has ended goes back to plain text too, once
81
+ * its last word has faded in, for the same reason: a long session's answers
82
+ * each kept an element per word they had streamed in, for good.
79
83
  *
80
84
  * It is deliberately **not** a live region. An answer that announced itself
81
85
  * token by token would be unusable, and one that announced itself whole on
@@ -1 +1 @@
1
- "use client";import{jsx as t,Fragment as e,jsxs as r}from"react/jsx-runtime";import*as n from"react";import{useRender as s}from"@base-ui/react/use-render";import{segmenter as a}from"../../internal/format.js";import{useLayoutEffectOnClient as i}from"../../internal/layout-effect.js";import{useHydrated as l}from"../../internal/media.js";import{cx as c,hasContent as o}from"../../internal/styles.js";const m=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Thai}\p{Script=Lao}\p{Script=Khmer}\p{Script=Myanmar}]/u;function u(t){const e=t.split(/(\s+)/).filter(t=>""!==t),r=m.test(t)?a(void 0,"word"):null;return r?e.flatMap(t=>m.test(t)?[...r.segment(t)].map(t=>t.segment):[t]):e}const p=/\s/;const f=/*@__PURE__*/n.memo(function StreamBlock({text:r,joined:s}){return t(e,{children:u(r).map((e,r)=>p.test(e)||s&&0===r?t(n.Fragment,{children:e},r):t("span",{className:"neba-stream-word",children:e},r))})});function d(t,e){if(e.startsWith(t))return t;let r=0;for(;r<t.length&&t[r]===e[r];)r+=1;for(;r>0&&!p.test(e[r-1]);)r-=1;return e.slice(0,r)}export const StreamingText=/*@__PURE__*/n.forwardRef(function StreamingText({children:a,streaming:h=!1,cursor:g=!0,fade:x=!0,lines:S=1,color:j="primary",render:v,className:y,style:b,...w},N){const M="string"==typeof a?a:null,R=M??"",T=l(),[W,k]=n.useState(()=>h?T?"":R:null),F=n.useRef(R),H=n.useRef({closed:"",texts:[]}),K=x?function(t,e,r,n){return null===t?r?d(n,e):null:e.startsWith(n)?t:r?d(t,e):null}(W,R,h,F.current):W;K!==W&&k(K),i(()=>{F.current=R});let $=a;if(null!==M&&x&&null!==K){const e=M.slice(K.length),r=function(t,e){let{closed:r,texts:n}=e.startsWith(t.closed)?t:{closed:"",texts:[]};const s=e.slice(r.length);let a=0,i=0,l=0;for(const t of u(s)){if(!p.test(t)){if(64===a){const t=s.slice(i,l);n=[...n,t],r+=t,i=l,a=0}a+=1}l+=t.length}return{closed:r,texts:n,tail:s.slice(i)}}(H.current,e),n=K.at(-1),s=e.at(0),a=void 0!==n&&void 0!==s&&!p.test(n)&&!p.test(s)&&!m.test(n+s);H.current=r,$=[K,...[...r.texts,r.tail].map((e,r)=>""===e?null:t(f,{text:e,joined:a&&0===r},r))]}const B=h&&!1!==g?!0===g?t("span",{"aria-hidden":"true",className:"neba-stream-caret"}):g:null;return s({render:v??t("div",{}),ref:N,props:{"aria-busy":h||void 0,"data-streaming":h||void 0,className:c("min-h-(--n-reserve) whitespace-pre-wrap",y),style:{"--n-reserve":`calc(${Math.max(S,0)} * 1lh)`,"--n-accent":`var(--neba-${j}-accent)`,...b},children:r(e,{children:[$,o(B)?B:null]}),...w}})});
1
+ "use client";import{jsx as t,Fragment as e,jsxs as r}from"react/jsx-runtime";import*as n from"react";import{useRender as s}from"@base-ui/react/use-render";import{segmenter as a}from"../../internal/format.js";import{useLayoutEffectOnClient as i}from"../../internal/layout-effect.js";import{useHydrated as l}from"../../internal/media.js";import{cx as o,hasContent as c}from"../../internal/styles.js";const u=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Thai}\p{Script=Lao}\p{Script=Khmer}\p{Script=Myanmar}]/u;function m(t){const e=t.split(/(\s+)/).filter(t=>""!==t),r=u.test(t)?a(void 0,"word"):null;return r?e.flatMap(t=>u.test(t)?[...r.segment(t)].map(t=>t.segment):[t]):e}const f=/\s/;const p=/*@__PURE__*/n.memo(function StreamBlock({text:r,joined:s}){return t(e,{children:m(r).map((e,r)=>f.test(e)||s&&0===r?t(n.Fragment,{children:e},r):t("span",{className:"neba-stream-word",children:e},r))})});function d(t,e){if(e.startsWith(t))return t;let r=0;for(;r<t.length&&t[r]===e[r];)r+=1;for(;r>0&&!f.test(e[r-1]);)r-=1;return e.slice(0,r)}export const StreamingText=/*@__PURE__*/n.forwardRef(function StreamingText({children:a,streaming:h=!1,cursor:g=!0,fade:x=!0,lines:S=1,color:y="primary",render:b,className:j,style:v,...N},w){const T="string"==typeof a?a:null,R=T??"",W=l(),F=n.useRef(null),[M,k]=n.useState(()=>h?W?"":R:null),A=n.useRef(R),C=n.useRef({closed:"",texts:[]}),H=x?function(t,e,r,n){return null===t?r?d(n,e):null:e.startsWith(n)?t:r?d(t,e):null}(M,R,h,A.current):M;H!==M&&k(H),i(()=>{A.current=R}),n.useEffect(()=>{const t=F.current;if(h||null===M||!t)return;let e=!1;const r=setTimeout(()=>{const r=(t.getAnimations?.({subtree:!0})??[]).filter(t=>t instanceof CSSAnimation&&"neba-stream-word-in"===t.animationName);Promise.all(r.map(t=>t.finished.catch(()=>null))).then(()=>{e||k(null)})},function(t){const e=getComputedStyle(t).getPropertyValue("--neba-duration").trim(),r=parseFloat(e);return Number.isNaN(r)?160:e.endsWith("ms")?r:1e3*r}(t));return()=>{e=!0,clearTimeout(r)}},[h,M]);let K=a;if(null!==T&&x&&null!==H){const e=T.slice(H.length),r=function(t,e){let{closed:r,texts:n}=e.startsWith(t.closed)?t:{closed:"",texts:[]};const s=e.slice(r.length);let a=0,i=0,l=0;for(const t of m(s)){if(!f.test(t)){if(64===a){const t=s.slice(i,l);n=[...n,t],r+=t,i=l,a=0}a+=1}l+=t.length}return{closed:r,texts:n,tail:s.slice(i)}}(C.current,e),n=H.at(-1),s=e.at(0),a=void 0!==n&&void 0!==s&&!f.test(n)&&!f.test(s)&&!u.test(n+s);C.current=r,K=[H,...[...r.texts,r.tail].map((e,r)=>""===e?null:t(p,{text:e,joined:a&&0===r},r))]}const P=h&&!1!==g?!0===g?t("span",{"aria-hidden":"true",className:"neba-stream-caret"}):g:null;return s({render:b??t("div",{}),ref:[w,F],props:{"aria-busy":h||void 0,"data-streaming":h||void 0,className:o("min-h-(--n-reserve) whitespace-pre-wrap",j),style:{"--n-reserve":`calc(${Math.max(S,0)} * 1lh)`,"--n-accent":`var(--neba-${y}-accent)`,...v},children:r(e,{children:[K,c(P)?P:null]}),...N}})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as a,Fragment as r}from"react/jsx-runtime";import*as n from"react";import{Switch as l}from"@base-ui/react/switch";import{Field as t}from"@base-ui/react/field";import{controlTextClasses as i,cx as o,hitAreaClasses as s,metaTextClasses as c,surfaceClasses as d,tickRowLeadingClasses as b}from"../../internal/styles.js";import{useStyleDefaults as h}from"../../internal/defaults.js";import{useFieldsetDisabled as m}from"../../internal/fieldset.js";const f={xs:"h-3.5 w-6",sm:"h-4 w-7",md:"h-5 w-9",lg:"h-6 w-11",xl:"h-7 w-13"},u={xs:"data-[checked]:start-[calc(100%-0.75rem)]",sm:"data-[checked]:start-[calc(100%-0.875rem)]",md:"data-[checked]:start-[calc(100%-1.125rem)]",lg:"data-[checked]:start-[calc(100%-1.375rem)]",xl:"data-[checked]:start-[calc(100%-1.625rem)]"},v={xs:"",sm:"",md:"py-[calc((1.25rem-1lh)/2)]",lg:"py-[calc((1.5rem-1lh)/2)]",xl:"py-[calc((1.75rem-1lh)/2)]"},g=["relative inline-flex shrink-0 border",s,"[-webkit-tap-highlight-color:transparent] [touch-action:manipulation]","rounded-full","[transition-property:background-color,border-color,box-shadow]","[transition-duration:var(--neba-duration-fill),var(--neba-duration),var(--neba-duration)]","[transition-timing-function:var(--neba-ease)]","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2"].join(" "),p=[d,"cursor-pointer bg-(--neba-groove) [border-color:var(--n-line)]","hover:bg-(--neba-groove-hover) hover:[border-color:var(--n-line-hover)]","data-[checked]:bg-(--n-fill) data-[checked]:[border-color:transparent]","data-[checked]:hover:bg-(--n-fill-hover)"].join(" "),x=[d,"cursor-default bg-(--neba-groove) [border-color:var(--n-line)]","[filter:saturate(0.55)]","data-[checked]:bg-(--n-fill) data-[checked]:[border-color:transparent]"].join(" "),w=["cursor-not-allowed bg-transparent [border-color:var(--neba-disabled-border)] shadow-none","data-[checked]:bg-(--neba-disabled-bg)"].join(" "),k=["absolute inset-y-0.5 start-0.5 aspect-square rounded-full bg-(--neba-surface)","[box-shadow:var(--neba-shadow-1)]","[transition:inset-inline-start_var(--neba-duration)_var(--neba-ease)]"].join(" ");export const Switch=/*@__PURE__*/n.forwardRef(function Switch(n,s){const{size:d="md",color:N="primary",label:j,description:y,error:$,invalid:S,labelSide:_,labelPlacement:R,disabled:z,readOnly:O=!1,className:q,classNames:D,style:E,...F}=h(n,["size"]),L=m(z),P=_??R??"end",T=null!=$&&!1!==$&&""!==$,A=S??T,B=A?"danger":N,C={"--n-fill":`var(--neba-${B}-fill)`,"--n-fill-hover":`var(--neba-${B}-fill-hover)`,"--n-accent":`var(--neba-${B}-accent)`,"--n-line":`var(--neba-${B}-line)`,"--n-line-hover":`var(--neba-${B}-line-hover)`,"--n-ring":`var(--neba-${B}-ring)`},G=e("span",{className:"flex h-[1lh] shrink-0 items-center",children:e(l.Root,{ref:s,className:o("neba-switch",g,f[d],L?w:O?x:p,D?.control),disabled:L,readOnly:O,...F,children:e(l.Thumb,{className:o("neba-switch-thumb",k,u[d],D?.thumb)})})}),H=j||y?a("span",{className:o("flex min-w-0 flex-col gap-0.5","start"===P?"flex-1":""),children:[j?e(t.Label,{className:o("leading-[1.4]",L?"text-(--neba-disabled-fg)":"cursor-pointer text-(--neba-fg)",D?.label),children:j}):null,y?e(t.Description,{className:o(c[d],"text-(--neba-muted-fg)",D?.description),children:y}):null]}):null;return a(t.Root,{disabled:L,invalid:A,className:o("inline-flex flex-col gap-1 align-top",q??""),style:{...C,...E},children:[e("div",{className:o("flex items-start gap-2.5",i[d],b,v[d]),children:a(r,"start"===P?{children:[H,G]}:{children:[G,H]})}),e(t.Error,T?{match:!0,className:o(c[d],"text-(--n-accent)",D?.error),children:$}:{className:o(c[d],"text-(--n-accent)",D?.error)})]})});
1
+ "use client";import{jsx as e,jsxs as a,Fragment as r}from"react/jsx-runtime";import*as n from"react";import{Switch as t}from"@base-ui/react/switch";import{Field as l}from"@base-ui/react/field";import{controlTextClasses as c,cx as o,hitAreaClasses as i,metaTextClasses as s,surfaceClasses as d,tickRowLeadingClasses as b}from"../../internal/styles.js";import{useStyleDefaults as h}from"../../internal/defaults.js";import{useFieldsetDisabled as m}from"../../internal/fieldset.js";const u={xs:"h-3.5 w-6",sm:"h-4 w-7",md:"h-5 w-9",lg:"h-6 w-11",xl:"h-7 w-13"},v={xs:"data-[checked]:start-[calc(100%-0.75rem)]",sm:"data-[checked]:start-[calc(100%-0.875rem)]",md:"data-[checked]:start-[calc(100%-1.125rem)]",lg:"data-[checked]:start-[calc(100%-1.375rem)]",xl:"data-[checked]:start-[calc(100%-1.625rem)]"},g={xs:"",sm:"",md:"py-[calc((1.25rem-1lh)/2)]",lg:"py-[calc((1.5rem-1lh)/2)]",xl:"py-[calc((1.75rem-1lh)/2)]"},f="relative inline-flex shrink-0 border "+i+" [-webkit-tap-highlight-color:transparent] [touch-action:manipulation] rounded-full [transition-property:background-color,border-color,box-shadow] [transition-duration:var(--neba-duration-fill),var(--neba-duration),var(--neba-duration)] [transition-timing-function:var(--neba-ease)] focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2",p=d+" cursor-pointer bg-(--neba-groove) [border-color:var(--n-line)] hover:bg-(--neba-groove-hover) hover:[border-color:var(--n-line-hover)] data-[checked]:bg-(--n-fill) data-[checked]:[border-color:transparent] data-[checked]:hover:bg-(--n-fill-hover) [@media(prefers-reduced-transparency:reduce)]:not-data-checked:bg-(--neba-backing) [@media(prefers-reduced-transparency:reduce)]:not-data-checked:hover:bg-(--neba-backing) [@media(prefers-reduced-transparency:reduce)]:not-data-checked:[background-blend-mode:overlay,normal,normal] [@media(prefers-reduced-transparency:reduce)]:not-data-checked:[background-image:var(--neba-grain),var(--neba-sheen),linear-gradient(var(--neba-groove),var(--neba-groove))] [@media(prefers-reduced-transparency:reduce)]:not-data-checked:hover:[background-image:var(--neba-grain),var(--neba-sheen),linear-gradient(var(--neba-groove-hover),var(--neba-groove-hover))]",x=d+" cursor-default bg-(--neba-groove) [border-color:var(--n-line)] [filter:saturate(0.55)] data-[checked]:bg-(--n-fill) data-[checked]:[border-color:transparent]";export const Switch=/*@__PURE__*/n.forwardRef(function Switch(n,i){const{size:d="md",color:k="primary",label:w,description:y,error:N,invalid:j,labelSide:$,labelPlacement:S,disabled:_,readOnly:R=!1,className:z,classNames:O,style:q,...D}=h(n,["size"]),E=m(_),F=$??S??"end",L=null!=N&&!1!==N&&""!==N,P=j??L,T=P?"danger":k,A={"--n-fill":`var(--neba-${T}-fill)`,"--n-fill-hover":`var(--neba-${T}-fill-hover)`,"--n-accent":`var(--neba-${T}-accent)`,"--n-line":`var(--neba-${T}-line)`,"--n-line-hover":`var(--neba-${T}-line-hover)`,"--n-ring":`var(--neba-${T}-ring)`},B=e("span",{className:"flex h-[1lh] shrink-0 items-center",children:e(t.Root,{ref:i,className:o("neba-switch",f,u[d],E?"cursor-not-allowed bg-transparent [border-color:var(--neba-disabled-border)] shadow-none data-[checked]:bg-(--neba-disabled-bg)":R?x:p,O?.control),disabled:E,readOnly:R,...D,children:e(t.Thumb,{className:o("neba-switch-thumb","absolute inset-y-0.5 start-0.5 aspect-square rounded-full bg-(--neba-surface) [box-shadow:var(--neba-shadow-1)] [transition:inset-inline-start_var(--neba-duration)_var(--neba-ease)]",v[d],O?.thumb)})})}),C=w||y?a("span",{className:o("flex min-w-0 flex-col gap-0.5","start"===F?"flex-1":""),children:[w?e(l.Label,{className:o("leading-[1.4]",E?"text-(--neba-disabled-fg)":"cursor-pointer text-(--neba-fg)",O?.label),children:w}):null,y?e(l.Description,{className:o(s[d],"text-(--neba-muted-fg)",O?.description),children:y}):null]}):null;return a(l.Root,{disabled:E,invalid:P,className:o("inline-flex flex-col gap-1 align-top",z??""),style:{...A,...q},children:[e("div",{className:o("flex items-start gap-2.5",c[d],b,g[d]),children:a(r,"start"===F?{children:[C,B]}:{children:[B,C]})}),e(l.Error,L?{match:!0,className:o(s[d],"text-(--n-accent)",O?.error),children:N}:{className:o(s[d],"text-(--n-accent)",O?.error)})]})});
@@ -1,2 +1,2 @@
1
1
  export { Switch } from './Switch.js';
2
- export type { SwitchLabelPlacement, SwitchLabelSide, SwitchProps } from './Switch.js';
2
+ export type { SwitchLabelPlacement, SwitchLabelSide, SwitchProps, SwitchSlot } from './Switch.js';
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import{Box as r}from"../box/Box.js";import{tableMessages as a,useMessages as l}from"../../internal/i18n.js";import{controlTextLeadingClasses as n,cx as o,metaTextClasses as s,paddingXValues as i,toLength as d}from"../../internal/styles.js";import{useStyleDefaults as c}from"../../internal/defaults.js";const m={default:{xs:"0.25rem",sm:"0.375rem",md:"0.625rem",lg:"0.75rem",xl:"0.875rem"},compact:{xs:"0.125rem",sm:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.625rem"}},p=["[--n-row:transparent]","[transition:background-color_var(--neba-duration)_var(--neba-ease)]"].join(" "),y=["cursor-pointer [outline:none]","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]"].join(" "),b={borderTop:"1px solid var(--n-line)",backgroundColor:"var(--n-row)"};export function Table(h){const{headers:u,items:g,getRowKey:x,caption:f,locale:v,empty:k,striped:w=!1,hoverable:N=!1,stickyHeader:j=!1,maxHeight:C,onRowClick:_,size:z="md",density:A="default",className:$,classNames:H,style:T,...B}=c(h,["size","density","locale"]),D=l(a,v),K=i[A][z],R=m[A][z],E=Boolean(_),I=N||E,S={padding:`${R} ${K}`},q={...S,backgroundColor:"var(--n-panel-press)",color:"var(--n-cell-ink, var(--neba-muted-fg))"};return e(r,{size:z,density:A,padded:!1,className:o("overflow-x-auto",$??""),style:void 0===C?T:{maxHeight:d(C),...T},...B,children:t("table",{className:o("w-full text-start",n[z],"text-(--neba-fg)",H?.table),style:{borderCollapse:"collapse"},children:[f?e("caption",{className:o(s[z],"text-(--neba-muted-fg)",H?.caption),style:{...S,textAlign:"start"},children:f}):null,e("colgroup",{children:u.map(t=>e("col",{style:void 0===t.width?void 0:{width:"number"==typeof t.width?`${t.width}px`:t.width}},t.key))}),e("thead",{className:H?.head,children:e("tr",{children:u.map(t=>e("th",{scope:"col",className:o("font-semibold whitespace-nowrap",j?"sticky top-0 z-10 [backdrop-filter:var(--neba-blur)]":"",H?.headCell),style:{...q,textAlign:t.align??"start"},children:t.label??t.key},t.key))})}),e("tbody",{className:H?.body,children:0===g.length?e("tr",{className:o(p,H?.row),style:b,children:e("td",{colSpan:u.length,className:H?.empty,style:{padding:`2rem ${K}`,textAlign:"center",color:"var(--n-cell-ink, var(--neba-muted-fg))"},children:k??D.empty})}):g.map((t,r)=>e("tr",{className:o(p,w&&r%2==1?"[--n-row:color-mix(in_oklab,var(--neba-fg)_4%,transparent)]":"",I?"hover:[--n-row:var(--n-soft)]":"",E?y:"",H?.row),style:b,tabIndex:E?0:void 0,onClick:_?()=>_(t,r):void 0,onKeyDown:_?e=>{e.target===e.currentTarget&&("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),_(t,r)))}:void 0,children:u.map(a=>e("td",{className:H?.cell,style:{...S,textAlign:a.align??"start"},children:a.render?a.render(t,r):t[a.key]},a.key))},x?x(t,r):r))})]})})}
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import{Box as r}from"../box/Box.js";import{tableMessages as a,useMessages as l}from"../../internal/i18n.js";import{controlTextLeadingClasses as n,cx as o,metaTextClasses as s,paddingXValues as i,toLength as d}from"../../internal/styles.js";import{useStyleDefaults as c}from"../../internal/defaults.js";const m={default:{xs:"0.25rem",sm:"0.375rem",md:"0.625rem",lg:"0.75rem",xl:"0.875rem"},compact:{xs:"0.125rem",sm:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.625rem"}},p="[--n-row:transparent] [transition:background-color_var(--neba-duration)_var(--neba-ease)]",y={borderTop:"1px solid var(--n-line)",backgroundColor:"var(--n-row)"};export function Table(b){const{headers:h,items:u,getRowKey:g,caption:x,locale:f,empty:v,striped:k=!1,hoverable:w=!1,stickyHeader:N=!1,maxHeight:j,onRowClick:C,size:_="md",density:z="default",className:A,classNames:$,style:H,...T}=c(b,["size","density","locale"]),B=l(a,f),D=i[z][_],K=m[z][_],R=Boolean(C),E=w||R,I={padding:`${K} ${D}`},S={...I,backgroundColor:"var(--n-panel-press)",color:"var(--n-cell-ink, var(--neba-muted-fg))"};return e(r,{size:_,density:z,padded:!1,className:o("overflow-x-auto",A??""),style:void 0===j?H:{maxHeight:d(j),...H},...T,children:t("table",{className:o("w-full text-start",n[_],"text-(--neba-fg)",$?.table),style:{borderCollapse:"collapse"},children:[x?e("caption",{className:o(s[_],"text-(--neba-muted-fg)",$?.caption),style:{...I,textAlign:"start"},children:x}):null,e("colgroup",{children:h.map(t=>e("col",{style:void 0===t.width?void 0:{width:"number"==typeof t.width?`${t.width}px`:t.width}},t.key))}),e("thead",{className:$?.head,children:e("tr",{children:h.map(t=>e("th",{scope:"col",className:o("font-semibold whitespace-nowrap",N?"sticky top-0 z-10 [backdrop-filter:var(--neba-blur)]":"",$?.headCell),style:{...S,textAlign:t.align??"start"},children:t.label??t.key},t.key))})}),e("tbody",{className:$?.body,children:0===u.length?e("tr",{className:o(p,$?.row),style:y,children:e("td",{colSpan:h.length,className:$?.empty,style:{padding:`2rem ${D}`,textAlign:"center",color:"var(--n-cell-ink, var(--neba-muted-fg))"},children:v??B.empty})}):u.map((t,r)=>e("tr",{className:o(p,k&&r%2==1?"[--n-row:color-mix(in_oklab,var(--neba-fg)_4%,transparent)]":"",E?"hover:[--n-row:var(--n-soft)]":"",R?"cursor-pointer [outline:none] focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]":"",$?.row),style:y,tabIndex:R?0:void 0,onClick:C?()=>C(t,r):void 0,onKeyDown:C?e=>{e.target===e.currentTarget&&("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),C(t,r)))}:void 0,children:h.map(a=>e("td",{className:$?.cell,style:{...I,textAlign:a.align??"start"},children:a.render?a.render(t,r):t[a.key]},a.key))},g?g(t,r):r))})]})})}
@@ -1,2 +1,2 @@
1
1
  export { Table } from './Table.js';
2
- export type { TableAlign, TableColumn, TableProps } from './Table.js';
2
+ export type { TableAlign, TableColumn, TableProps, TableSlot } from './Table.js';
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as a from"react";import{glowClasses as o,spotlightSlot as n,trackPointer as i}from"../../internal/glow.js";import{Tabs as l}from"@base-ui/react/tabs";import{controlHeightClasses as r,controlHeightValues as s,controlTextClasses as c,cx as d,gapClasses as u,hasContent as f,iconClasses as b,paddingXClasses as v,radiusClasses as h,surfaceClasses as p,surfaceSlots as m,transitionClasses as x}from"../../internal/styles.js";import{observeResize as g}from"../../internal/observe.js";import{bindAxisWheel as w}from"../../internal/wheel.js";import{useStyleDefaults as y}from"../../internal/defaults.js";const z=/*@__PURE__*/a.createContext({variant:"outline",size:"md",density:"default",orientation:"horizontal",fullWidth:!1,align:"center",keepMounted:!1}),j={solid:{horizontal:`${p} inline-flex bg-(--n-panel) p-1 [box-shadow:var(--neba-plate-glass)]`,vertical:`${p} inline-flex flex-col bg-(--n-panel) p-1 [box-shadow:var(--neba-plate-glass)]`},outline:{horizontal:"flex border-b [border-color:var(--n-line)]",vertical:"flex flex-col border-e [border-color:var(--n-line)]"},text:{horizontal:"flex",vertical:"flex flex-col"}},k={solid:{horizontal:"absolute left-(--active-tab-left) top-(--active-tab-top) h-(--active-tab-height) w-(--active-tab-width)",vertical:"absolute left-(--active-tab-left) top-(--active-tab-top) h-(--active-tab-height) w-(--active-tab-width)"},outline:{horizontal:"absolute bottom-0 left-(--active-tab-left) h-0.5 w-(--active-tab-width)",vertical:"absolute end-0 top-(--active-tab-top) h-(--active-tab-height) w-0.5"},text:{horizontal:"absolute bottom-0 left-(--active-tab-left) h-0.5 w-(--active-tab-width)",vertical:"absolute end-0 top-(--active-tab-top) h-(--active-tab-height) w-0.5"}},M={horizontal:"absolute left-(--active-tab-left) top-(--active-tab-top) h-(--active-tab-height) w-(--active-tab-width) border-b-2 [border-color:var(--n-accent)] !bg-transparent",vertical:"absolute left-(--active-tab-left) top-(--active-tab-top) h-(--active-tab-height) w-(--active-tab-width) border-e-2 [border-color:var(--n-accent)] !bg-transparent"},N={solid:`${p} bg-(--n-panel-press) [box-shadow:var(--neba-shadow-1),var(--neba-plate-glass)]`,outline:"bg-(--n-accent)",text:"bg-(--n-accent)"},T={start:"justify-start",center:"justify-center",end:"justify-end"},$={solid:"text-(--neba-muted-fg) hover:text-(--neba-fg) data-[active]:text-(--n-accent)",outline:"text-(--neba-muted-fg) hover:text-(--neba-fg) data-[active]:text-(--n-accent)",text:"text-(--neba-muted-fg) hover:text-(--neba-fg) data-[active]:text-(--n-accent)"};export const Tab=/*@__PURE__*/a.forwardRef(function Tab({value:s,startIcon:p,endIcon:m,disabled:g=!1,className:w,style:y,children:j,...k},M){const{variant:N,size:E,density:P,fullWidth:C,align:R}=a.useContext(z);return t(l.Tab,{ref:M,value:s,disabled:g,style:{...g?void 0:n,...y},className:d("relative z-10 inline-flex shrink-0 cursor-pointer items-center select-none","whitespace-nowrap font-medium",T[R],"[-webkit-tap-highlight-color:transparent] [touch-action:manipulation]",r[E],c[E],u[E],v[P][E],"solid"===N?h[E]:"",x,b,$[N],"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]","data-[disabled]:cursor-not-allowed data-[disabled]:text-(--neba-disabled-fg)",g?"":o,C?"flex-1":"",w??""),...k,onPointerMove:i(k.onPointerMove,!g),children:[f(p)?e("span",{className:"flex h-[1lh] shrink-0 items-center",children:p}):null,j,f(m)?e("span",{className:"flex h-[1lh] shrink-0 items-center",children:m}):null]})});export const TabPanel=/*@__PURE__*/a.forwardRef(function TabPanel({value:t,keepMounted:o,className:n,children:i,...r},s){const{size:c,keepMounted:d}=a.useContext(z);return e(l.Panel,{ref:s,value:t,keepMounted:o??d,className:["min-w-0 flex-1 text-(--neba-fg)","[&[hidden]]:hidden","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2","data-[starting-style]:opacity-0","[transition:opacity_var(--neba-duration)_var(--neba-ease)]",h[c],n??""].filter(Boolean).join(" "),...r,children:i})});export const Tabs=/*@__PURE__*/a.forwardRef(function Tabs(o,n){const{variant:i="outline",size:r="md",color:c="primary",density:u="default",value:f,defaultValue:b,onValueChange:v,orientation:p="horizontal",activateOnFocus:x=!1,loopFocus:T=!0,overflow:$="scroll",lines:E,wheel:P=!0,fullWidth:C=!1,align:R="center",keepMounted:V=!1,className:W,style:_,children:F,...A}=y(o,["size","density","variant"]),L="horizontal"===p,H="wrap"===$,I=a.useRef(null),O=a.useRef(null),B=a.useMemo(()=>({variant:i,size:r,density:u,orientation:p,fullWidth:C,align:R,keepMounted:V}),[i,r,u,p,C,R,V]),q=[],D=[],G=e=>a.Children.forEach(e,e=>{a.isValidElement(e)&&e.type===a.Fragment?G(e.props.children):a.isValidElement(e)&&e.type===TabPanel?D.push(e):null!=e&&!1!==e&&q.push(e)});G(F);const J=q.length;return a.useEffect(()=>{const e=O.current,t=I.current;if(!e||!t)return;const a=()=>{const a=Math.abs(L?e.scrollLeft:e.scrollTop),o=L?e.clientWidth:e.clientHeight,n=L?e.scrollWidth:e.scrollHeight,i=L?"x":"y",l=L?"y":"x";t.toggleAttribute(`data-overflow-${i}-start`,a>1),t.toggleAttribute(`data-overflow-${i}-end`,n-o-a>1),t.removeAttribute(`data-overflow-${l}-start`),t.removeAttribute(`data-overflow-${l}-end`)};a(),e.addEventListener("scroll",a,{passive:!0});const o=g(e,a);return()=>{e.removeEventListener("scroll",a),o()}},[L,J]),a.useEffect(()=>{const e=O.current;if(e&&P)return w(e)},[P]),e(z.Provider,{value:B,children:t(l.Root,{ref:e=>{I.current=e,"function"==typeof n?n(e):n&&(n.current=e)},value:f,defaultValue:b,onValueChange:e=>v?.(e),orientation:p,className:d("flex min-w-0","vertical"===p?"flex-row gap-4":"flex-col gap-4",W??""),style:{...m(c,0),..._},...A,children:[t(l.List,{ref:O,activateOnFocus:x,loopFocus:T,className:d("relative shrink-0",j[i][p],"solid"===i?h[r]:"",C&&"horizontal"===p?"w-full":"",H?"flex-wrap":L?"overflow-x-auto":"overflow-y-auto",H&&void 0!==E?L?"overflow-y-auto":"overflow-x-auto":"",!H&&L?"overflow-y-hidden":"","overscroll-contain","[scrollbar-width:none] [&::-webkit-scrollbar]:hidden","neba-scroll-fade"),style:{"--n-fade":"2rem",maxHeight:H&&void 0!==E?`calc(${s[r]} * ${Math.max(1,Math.round(E))}${"solid"===i?" + 0.5rem":"outline"===i&&L?" + 1px":""})`:void 0},children:[q,e(l.Indicator,{className:["pointer-events-none",H&&"solid"!==i?M[p]:k[i][p],N[i],"solid"===i?h[r]:"rounded-full","[transition-property:left,top,width,height]","[transition-duration:var(--neba-duration)]","[transition-timing-function:var(--neba-ease)]"].join(" ")})]}),D]})})});
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as a from"react";import{glowClasses as o,spotlightSlot as n,trackPointer as l}from"../../internal/glow.js";import{Tabs as i}from"@base-ui/react/tabs";import{controlHeightClasses as r,controlHeightValues as s,controlTextClasses as c,cx as d,gapClasses as u,hasContent as f,iconClasses as b,paddingXClasses as h,radiusClasses as v,surfaceClasses as p,surfaceSlots as m,transitionClasses as x}from"../../internal/styles.js";import{observeResize as g}from"../../internal/observe.js";import{useMergedRef as w}from"../../internal/refs.js";import{bindAxisWheelWhileOverflowing as y}from"../../internal/wheel.js";import{useStyleDefaults as z}from"../../internal/defaults.js";const j=/*@__PURE__*/a.createContext({variant:"outline",size:"md",density:"default",orientation:"horizontal",fullWidth:!1,align:"center",keepMounted:!1}),k={solid:{horizontal:`${p} inline-flex bg-(--n-panel) p-1 [box-shadow:var(--neba-plate-glass)]`,vertical:`${p} inline-flex flex-col bg-(--n-panel) p-1 [box-shadow:var(--neba-plate-glass)]`},outline:{horizontal:"flex border-b [border-color:var(--n-line)]",vertical:"flex flex-col border-e [border-color:var(--n-line)]"},text:{horizontal:"flex",vertical:"flex flex-col"}},M={solid:{horizontal:"absolute left-(--active-tab-left) top-(--active-tab-top) h-(--active-tab-height) w-(--active-tab-width)",vertical:"absolute left-(--active-tab-left) top-(--active-tab-top) h-(--active-tab-height) w-(--active-tab-width)"},outline:{horizontal:"absolute bottom-0 left-(--active-tab-left) h-0.5 w-(--active-tab-width)",vertical:"absolute end-0 top-(--active-tab-top) h-(--active-tab-height) w-0.5"},text:{horizontal:"absolute bottom-0 left-(--active-tab-left) h-0.5 w-(--active-tab-width)",vertical:"absolute end-0 top-(--active-tab-top) h-(--active-tab-height) w-0.5"}},N={horizontal:"absolute left-(--active-tab-left) top-(--active-tab-top) h-(--active-tab-height) w-(--active-tab-width) border-b-2 [border-color:var(--n-accent)] !bg-transparent",vertical:"absolute left-(--active-tab-left) top-(--active-tab-top) h-(--active-tab-height) w-(--active-tab-width) border-e-2 [border-color:var(--n-accent)] !bg-transparent"},T={solid:`${p} bg-(--n-panel-press) [box-shadow:var(--neba-shadow-1),var(--neba-plate-glass)]`,outline:"bg-(--n-accent)",text:"bg-(--n-accent)"},$={start:"justify-start",center:"justify-center",end:"justify-end"},E={solid:"text-(--neba-muted-fg) hover:text-(--neba-fg) data-[active]:text-(--n-accent)",outline:"text-(--neba-muted-fg) hover:text-(--neba-fg) data-[active]:text-(--n-accent)",text:"text-(--neba-muted-fg) hover:text-(--neba-fg) data-[active]:text-(--n-accent)"};export const Tab=/*@__PURE__*/a.forwardRef(function Tab({value:s,startIcon:p,endIcon:m,disabled:g=!1,className:w,style:y,children:z,...k},M){const{variant:N,size:T,density:P,fullWidth:R,align:C}=a.useContext(j);return t(i.Tab,{ref:M,value:s,disabled:g,style:{...g?void 0:n,...y},className:d("relative z-10 inline-flex shrink-0 cursor-pointer items-center select-none","whitespace-nowrap font-medium",$[C],"[-webkit-tap-highlight-color:transparent] [touch-action:manipulation]",r[T],c[T],u[T],h[P][T],"solid"===N?v[T]:"",x,b,E[N],"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]","data-[disabled]:cursor-not-allowed data-[disabled]:text-(--neba-disabled-fg)",g?"":o,R?"flex-1":"",w??""),...k,onPointerMove:l(k.onPointerMove,!g),children:[f(p)?e("span",{className:"flex h-[1lh] shrink-0 items-center",children:p}):null,z,f(m)?e("span",{className:"flex h-[1lh] shrink-0 items-center",children:m}):null]})});export const TabPanel=/*@__PURE__*/a.forwardRef(function TabPanel({value:t,keepMounted:o,className:n,children:l,...r},s){const{size:c,keepMounted:d}=a.useContext(j);return e(i.Panel,{ref:s,value:t,keepMounted:o??d,className:["min-w-0 flex-1 text-(--neba-fg)","[&[hidden]]:hidden","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2","data-[starting-style]:opacity-0","[transition:opacity_var(--neba-duration)_var(--neba-ease)]",v[c],n??""].filter(Boolean).join(" "),...r,children:l})});export const Tabs=/*@__PURE__*/a.forwardRef(function Tabs(o,n){const{variant:l="outline",size:r="md",color:c="primary",density:u="default",value:f,defaultValue:b,onValueChange:h,orientation:p="horizontal",activateOnFocus:x=!1,loopFocus:$=!0,overflow:E="scroll",lines:P,wheel:R=!0,fullWidth:C=!1,align:V="center",keepMounted:W=!1,className:_,style:F,children:A,...L}=z(o,["size","density","variant"]),H="horizontal"===p,I="wrap"===E,O=a.useRef(null),B=w(O,n),q=a.useRef(null),D=a.useRef(null),G=a.useMemo(()=>({variant:l,size:r,density:u,orientation:p,fullWidth:C,align:V,keepMounted:W}),[l,r,u,p,C,V,W]),J=[],K=[],Q=e=>a.Children.forEach(e,e=>{a.isValidElement(e)&&e.type===a.Fragment?Q(e.props.children):a.isValidElement(e)&&e.type===TabPanel?K.push(e):null!=e&&!1!==e&&J.push(e)});Q(A);const S=J.length;return a.useEffect(()=>{const e=q.current,t=O.current;if(!e||!t)return;const a=()=>{D.current?.check();const a=Math.abs(H?e.scrollLeft:e.scrollTop),o=H?e.clientWidth:e.clientHeight,n=H?e.scrollWidth:e.scrollHeight,l=H?"x":"y",i=H?"y":"x";t.toggleAttribute(`data-overflow-${l}-start`,a>1),t.toggleAttribute(`data-overflow-${l}-end`,n-o-a>1),t.removeAttribute(`data-overflow-${i}-start`),t.removeAttribute(`data-overflow-${i}-end`)};a(),e.addEventListener("scroll",a,{passive:!0});const o=g(e,a);return()=>{e.removeEventListener("scroll",a),o()}},[H,S]),a.useEffect(()=>{const e=q.current;if(!e||!R)return;const t=y(e);return D.current=t,()=>{t.stop(),D.current=null}},[R]),e(j.Provider,{value:G,children:t(i.Root,{ref:B,value:f,defaultValue:b,onValueChange:e=>h?.(e),orientation:p,className:d("flex min-w-0","vertical"===p?"flex-row gap-4":"flex-col gap-4",_??""),style:{...m(c,0),...F},...L,children:[t(i.List,{ref:q,activateOnFocus:x,loopFocus:$,"data-indicator":"solid"===l?"tile":I?"underline":"bar",className:d("neba-tabs-list relative shrink-0",k[l][p],"solid"===l?v[r]:"",C&&"horizontal"===p?"w-full":"",I?"flex-wrap":H?"overflow-x-auto":"overflow-y-auto",I&&void 0!==P?H?"overflow-y-auto":"overflow-x-auto":"",!I&&H?"overflow-y-hidden":"","overscroll-contain","[scrollbar-width:none] [&::-webkit-scrollbar]:hidden","neba-scroll-fade"),style:{"--n-fade":"2rem",maxHeight:I&&void 0!==P?`calc(${s[r]} * ${Math.max(1,Math.round(P))}${"solid"===l?" + 0.5rem":"outline"===l&&H?" + 1px":""})`:void 0},children:[J,e(i.Indicator,{className:"neba-tabs-indicator pointer-events-none "+(I&&"solid"!==l?N[p]:M[l][p])+" "+T[l]+" "+("solid"===l?v[r]:"rounded-full")+" [transition-property:left,top,width,height] [transition-duration:var(--neba-duration)] [transition-timing-function:var(--neba-ease)]"})]}),K]})})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as l from"react";import{Field as n}from"@base-ui/react/field";import{Input as r}from"@base-ui/react/input";import{fieldLight as a,fieldSpotlightSlot as s,glowClasses as i}from"../../internal/glow.js";import{SpinnerIcon as o}from"../../internal/icons.js";import{controlTextLeadingClasses as c,cx as m,disabledClasses as d,fieldFocusTransitionClasses as p,fieldHeightClasses as x,fieldReadOnlyClasses as f,fieldRestClasses as u,fieldRingClasses as b,fieldSheetClasses as h,fieldSheetDisabledClasses as g,fieldSheetReadOnlyClasses as y,gapClasses as $,hasContent as v,iconClasses as N,metaTextClasses as w,paddingXClasses as j,radiusClasses as z,readOnlyFilterClasses as k,stackGapClasses as D,surfaceSlots as C,transitionClasses as O}from"../../internal/styles.js";import{keyHandler as P}from"../../internal/keys.js";import{FieldNotch as R,NotchFrame as T,restEndOf as E}from"../../internal/notch.js";import{useStyleDefaults as F}from"../../internal/defaults.js";import{useFieldsetDisabled as I}from"../../internal/fieldset.js";const K={xs:`${$.xs} ${z.xs} ${c.xs}`,sm:`${$.sm} ${z.sm} ${c.sm}`,md:`${$.md} ${z.md} ${c.md}`,lg:`${$.lg} ${z.lg} ${c.lg}`,xl:`${$.xl} ${z.xl} ${c.xl}`},L={xs:"min-h-5.5 py-[3px]",sm:"min-h-6.5 py-[4px]",md:"min-h-8 py-[5px]",lg:"min-h-10 py-[8px]",xl:"min-h-12 py-[10px]"},W={xs:"3px",sm:"4px",md:"5px",lg:"8px",xl:"10px"},q={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},A=["group relative flex w-full","[-webkit-tap-highlight-color:transparent]",O,p,N].join(" "),B=u,G=f;export const TextField=/*@__PURE__*/l.forwardRef(function TextField(c,p){const{variant:f="outline",size:u="md",color:$="primary",density:N="default",elevation:z=0,multiline:O=!1,rows:H=3,resize:J="vertical",label:M,labelPlacement:Q="top",description:S,error:U,invalid:V,startIcon:X,endIcon:Y,loading:Z=!1,fullWidth:_=!1,classNames:ee,shortcuts:te,onKeyDown:le,readOnly:ne=!1,disabled:re,type:ae="text",placeholder:se,className:ie,style:oe,...ce}=F(c,["size","density","variant","labelPlacement"]),me=I(re),de=!me&&!ne,pe=null!=U&&!1!==U&&""!==U,xe=V??pe,fe=xe?"danger":$,ue="top"!==Q&&v(M),be=ue&&"float"===Q&&!v(X),he=l.useRef(null),ge=l.useCallback(e=>{he.current=e,"function"==typeof p?p(e):p&&(p.current=e)},[p]),ye=m(A,K[u],O?`${L[u]} items-start`:`${x[u]} items-center`,j[N][u],ue?"":b,me?(ue?g:d)[f]:ne?ue?`${y[f]} ${k}`:G[f]:`${(ue?h:B)[f]} ${i}`,me?"":"cursor-text",ee?.shell),$e=m("neba-input min-w-0 flex-1 bg-transparent [font:inherit] text-inherit","[outline:none]","placeholder:text-(--neba-muted-fg)","caret-(--n-accent) selection:bg-(--n-soft-press)","disabled:cursor-not-allowed",O?`block ${q[J]}`:"self-stretch",be?"neba-float-control":"",ee?.control),ve="inline-flex h-[1lh] shrink-0 items-center text-(--neba-muted-fg) transition-[color] duration-(--neba-duration) group-focus-within:text-(--n-accent)",Ne=t("span",{className:ye,...a(de),onPointerDown:e=>{e.target!==e.currentTarget||me||(e.preventDefault(),he.current?.focus())},children:[X?e("span",{className:ve,children:X}):null,e(r,{ref:ge,className:$e,disabled:me,readOnly:ne,"aria-busy":Z||void 0,"data-loading":Z||void 0,placeholder:be?se||" ":se,...O?{render:e("textarea",{rows:H})}:{type:ae},...ce,onKeyDown:P(te,le)}),Z?e("span",{className:ve,children:e(o,{})}):Y?e("span",{className:ve,children:Y}):null,ue?e(R,{label:M,variant:f,disabled:me,readOnly:ne,rests:be,labelClassName:ee?.label}):null]});return t(n.Root,{disabled:me,invalid:xe,className:m("flex-col align-top",D[u],_?"flex w-full":"inline-flex",ie??""),style:{...C(fe,z),...de?s:void 0,...oe},children:[M&&!ue?e(n.Label,{className:m(w[u],"font-medium",me?"text-(--neba-disabled-fg)":"text-(--neba-fg)",ee?.label),children:M}):null,ue?e(T,{label:M,size:u,density:N,variant:f,firstLine:O?W[u]:void 0,rests:be,restEnd:E(u,Z||Y?[1.2]:[]),labelClassName:ee?.label,children:Ne}):Ne,S?e(n.Description,{className:m(w[u],"text-(--neba-muted-fg)",ee?.description),children:S}):null,e(n.Error,pe?{match:!0,className:m(w[u],"text-(--n-accent)",ee?.error),children:U}:{className:m(w[u],"text-(--n-accent)",ee?.error)})]})});
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as l from"react";import{useMergedRef as n}from"../../internal/refs.js";import{Field as r}from"@base-ui/react/field";import{Input as a}from"@base-ui/react/input";import{fieldLight as s,fieldSpotlightSlot as i,glowClasses as o}from"../../internal/glow.js";import{SpinnerIcon as c}from"../../internal/icons.js";import{controlTextLeadingClasses as m,cx as d,disabledClasses as p,fieldFocusTransitionClasses as x,fieldHeightClasses as f,fieldReadOnlyClasses as u,fieldRestClasses as h,fieldRingClasses as b,fieldSheetClasses as g,fieldSheetDisabledClasses as y,fieldSheetReadOnlyClasses as $,gapClasses as v,hasContent as N,iconClasses as w,metaTextClasses as j,paddingXClasses as z,radiusClasses as D,readOnlyFilterClasses as k,stackGapClasses as O,surfaceSlots as P,transitionClasses as R}from"../../internal/styles.js";import{keyHandler as T}from"../../internal/keys.js";import{FieldNotch as C,NotchFrame as E,restEndOf as F}from"../../internal/notch.js";import{useStyleDefaults as I}from"../../internal/defaults.js";import{useFieldsetDisabled as K}from"../../internal/fieldset.js";const L={xs:`${v.xs} ${D.xs} ${m.xs}`,sm:`${v.sm} ${D.sm} ${m.sm}`,md:`${v.md} ${D.md} ${m.md}`,lg:`${v.lg} ${D.lg} ${m.lg}`,xl:`${v.xl} ${D.xl} ${m.xl}`},W={xs:"min-h-5.5 py-[3px]",sm:"min-h-6.5 py-[4px]",md:"min-h-8 py-[5px]",lg:"min-h-10 py-[8px]",xl:"min-h-12 py-[10px]"},q={xs:"3px",sm:"4px",md:"5px",lg:"8px",xl:"10px"},A={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},B="group relative flex w-full [-webkit-tap-highlight-color:transparent] "+R+" "+x+" "+w,G=h,H=u;export const TextField=/*@__PURE__*/l.forwardRef(function TextField(m,x){const{variant:u="outline",size:h="md",color:v="primary",density:w="default",elevation:D=0,multiline:R=!1,rows:J=3,resize:M="vertical",label:Q,labelPlacement:S="top",description:U,error:V,invalid:X,startIcon:Y,endIcon:Z,loading:_=!1,fullWidth:ee=!1,classNames:te,shortcuts:le,onKeyDown:ne,readOnly:re=!1,disabled:ae,type:se="text",placeholder:ie,className:oe,style:ce,...me}=I(m,["size","density","variant","labelPlacement"]),de=K(ae),pe=!de&&!re,xe=null!=V&&!1!==V&&""!==V,fe=X??xe,ue=fe?"danger":v,he="top"!==S&&N(Q),be=he&&"float"===S&&!N(Y),ge=l.useRef(null),ye=n(ge,x),$e=d(B,L[h],R?`${W[h]} items-start`:`${f[h]} items-center`,z[w][h],he?"":b,de?(he?y:p)[u]:re?he?`${$[u]} ${k}`:H[u]:`${(he?g:G)[u]} ${o}`,de?"":"cursor-text",te?.shell),ve=d("neba-input min-w-0 flex-1 bg-transparent [font:inherit] text-inherit","[outline:none]","placeholder:text-(--neba-muted-fg)","caret-(--n-accent) selection:bg-(--n-soft-press)","disabled:cursor-not-allowed",R?`block ${A[M]}`:"self-stretch",be?"neba-float-control":"",te?.control),Ne="inline-flex h-[1lh] shrink-0 items-center text-(--neba-muted-fg) transition-[color] duration-(--neba-duration) group-focus-within:text-(--n-accent)",we=t("span",{className:$e,...s(pe),onPointerDown:e=>{e.target!==e.currentTarget||de||(e.preventDefault(),ge.current?.focus())},children:[Y?e("span",{className:Ne,children:Y}):null,e(a,{ref:ye,className:ve,disabled:de,readOnly:re,"aria-busy":_||void 0,"data-loading":_||void 0,placeholder:be?ie||" ":ie,...R?{render:e("textarea",{rows:J})}:{type:se},...me,onKeyDown:T(le,ne)}),_?e("span",{className:Ne,children:e(c,{})}):Z?e("span",{className:Ne,children:Z}):null,he?e(C,{label:Q,variant:u,disabled:de,readOnly:re,rests:be,labelClassName:te?.label}):null]});return t(r.Root,{disabled:de,invalid:fe,className:d("flex-col align-top",O[h],ee?"flex w-full":"inline-flex",oe??""),style:{...P(ue,D),...pe?i:void 0,...ce},children:[Q&&!he?e(r.Label,{className:d(j[h],"font-medium",de?"text-(--neba-disabled-fg)":"text-(--neba-fg)",te?.label),children:Q}):null,he?e(E,{label:Q,size:h,density:w,variant:u,firstLine:R?q[h]:void 0,rests:be,restEnd:F(h,_||Z?[1.2]:[]),labelClassName:te?.label,children:we}):we,U?e(r.Description,{className:d(j[h],"text-(--neba-muted-fg)",te?.description),children:U}):null,e(r.Error,xe?{match:!0,className:d(j[h],"text-(--n-accent)",te?.error),children:V}:{className:d(j[h],"text-(--n-accent)",te?.error)})]})});
@@ -1,2 +1,2 @@
1
1
  export { TextField } from './TextField.js';
2
- export type { TextFieldProps, TextFieldResize } from './TextField.js';
2
+ export type { TextFieldProps, TextFieldResize, TextFieldSlot } from './TextField.js';
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as n,Fragment as r}from"react/jsx-runtime";import*as i from"react";import{useRender as t}from"@base-ui/react/use-render";import{linkMessages as o,useMessages as a}from"../../internal/i18n.js";import{ExternalLinkIcon as l,LinkIcon as s}from"../../internal/icons.js";import{opensElsewhere as c,safeHref as d,safeRel as m}from"../../internal/link.js";import{COLOR as u,FONT_WEIGHT as h,overriddenBy as f,TEXT_DECORATION_COLOR as p,TEXT_DECORATION_LINE as b,TEXT_DECORATION_THICKNESS as k,TEXT_UNDERLINE_OFFSET as x,TEXT_UNDERLINE_POSITION as v}from"../../internal/overrides.js";import{controlTextLeadingClasses as w,cx as g,focusRingClasses as j,srOnlyClasses as y}from"../../internal/styles.js";import{useStyleDefaults as _}from"../../internal/defaults.js";const N={always:["[&.neba-link]:underline","[:where(&)]:underline"],hover:["[&.neba-link]:no-underline [&.neba-link]:hover:underline","[:where(&)]:no-underline hover:[:where(&)]:underline"],none:["[&.neba-link]:no-underline","[:where(&)]:no-underline"]},T=[[h,"[&.neba-link]:[font-weight:inherit]","[:where(&)]:[font-weight:inherit]"],[k,"[&.neba-link]:[text-decoration-thickness:max(1px,0.055em)]","[:where(&)]:[text-decoration-thickness:max(1px,0.055em)]"],[x,"[&.neba-link]:underline-offset-[0.2em]","[:where(&)]:underline-offset-[0.2em]"],[v,"[&.neba-link]:[text-underline-position:from-font]","[:where(&)]:[text-underline-position:from-font]"],[p,"[&.neba-link]:decoration-(--n-underline) [&.neba-link:hover]:decoration-(--n-underline-hover)","[:where(&)]:decoration-(--n-underline) [:where(&:hover)]:decoration-(--n-underline-hover)"]],z=["neba-link","cursor-pointer","[&_svg]:pointer-events-none [&_svg]:inline [&_svg]:size-[0.95em] [&_svg]:shrink-0",["[transition-property:color,text-decoration-color]","[transition-duration:var(--neba-duration)]","[transition-timing-function:var(--neba-ease)]"].join(" "),j,"focus-visible:rounded-[0.25rem]"].join(" ");export const TextLink=/*@__PURE__*/i.forwardRef(function TextLink(h,p){const{href:k,underline:x="always",color:v,size:j,newTab:C=!1,icon:L,locale:$,render:F,className:M,style:R,children:q,...A}=_(h,["locale"]),B=a(o,$),D=L??C,E=!0===D?e(C?l:s,{}):D,G=i.useMemo(()=>f(M),[M]),H=g(z,j?w[j]:"",N[x][G&b?1:0],...T.map(([e,n,r])=>G&e?r:n),v?G&u?"[:where(&)]:text-(--n-accent)":"[&.neba-link]:text-(--n-accent)":G&u?"[:where(&)]:text-inherit":"[&.neba-link]:text-inherit",M??""),I={"--n-underline":"color-mix(in oklab, currentColor 45%, transparent)","--n-underline-hover":"currentColor","--n-ring":`var(--neba-${v??"primary"}-ring)`,...v?{"--n-accent":`var(--neba-${v}-accent)`}:null},{rel:J,target:K,...O}=A,P=C?"_blank":K,Q=m(P,J),S=c(P);return t({render:F??e("a",{}),ref:p,props:{href:d(k),target:P,className:H,style:{...I,...R},children:n(r,{children:[q,E?e("span",{className:"ms-[0.25em]",children:E}):null,S?n("span",{className:y,children:[" ",B.newTab]}):null]}),...O,rel:Q}})});
1
+ "use client";import{jsx as e,jsxs as n,Fragment as r}from"react/jsx-runtime";import*as i from"react";import{useRender as t}from"@base-ui/react/use-render";import{linkMessages as o,useMessages as a}from"../../internal/i18n.js";import{ExternalLinkIcon as l,LinkIcon as s}from"../../internal/icons.js";import{opensElsewhere as c,safeHref as d,safeRel as m}from"../../internal/link.js";import{COLOR as u,FONT_WEIGHT as h,overriddenBy as f,TEXT_DECORATION_COLOR as p,TEXT_DECORATION_LINE as b,TEXT_DECORATION_THICKNESS as k,TEXT_UNDERLINE_OFFSET as x,TEXT_UNDERLINE_POSITION as v}from"../../internal/overrides.js";import{controlTextLeadingClasses as w,cx as g,focusRingClasses as j,srOnlyClasses as y}from"../../internal/styles.js";import{useStyleDefaults as _}from"../../internal/defaults.js";const N={always:["[&.neba-link]:underline","[:where(&)]:underline"],hover:["[&.neba-link]:no-underline [&.neba-link]:hover:underline","[:where(&)]:no-underline hover:[:where(&)]:underline"],none:["[&.neba-link]:no-underline","[:where(&)]:no-underline"]},T=[[h,"[&.neba-link]:[font-weight:inherit]","[:where(&)]:[font-weight:inherit]"],[k,"[&.neba-link]:[text-decoration-thickness:max(1px,0.055em)]","[:where(&)]:[text-decoration-thickness:max(1px,0.055em)]"],[x,"[&.neba-link]:underline-offset-[0.2em]","[:where(&)]:underline-offset-[0.2em]"],[v,"[&.neba-link]:[text-underline-position:from-font]","[:where(&)]:[text-underline-position:from-font]"],[p,"[&.neba-link]:decoration-(--n-underline) [&.neba-link:hover]:decoration-(--n-underline-hover)","[:where(&)]:decoration-(--n-underline) [:where(&:hover)]:decoration-(--n-underline-hover)"]],z="neba-link cursor-pointer [&_svg]:pointer-events-none [&_svg]:inline [&_svg]:size-[0.95em] [&_svg]:shrink-0 [transition-property:color,text-decoration-color] [transition-duration:var(--neba-duration)] [transition-timing-function:var(--neba-ease)] "+j+" focus-visible:rounded-[0.25rem]";export const TextLink=/*@__PURE__*/i.forwardRef(function TextLink(h,p){const{href:k,underline:x="always",color:v,size:j,newTab:C=!1,icon:L,locale:$,render:F,className:M,style:R,children:q,...A}=_(h,["locale"]),B=a(o,$),D=L??C,E=!0===D?e(C?l:s,{}):D,G=i.useMemo(()=>f(M),[M]),H=g(z,j?w[j]:"",N[x][G&b?1:0],...T.map(([e,n,r])=>G&e?r:n),v?G&u?"[:where(&)]:text-(--n-accent)":"[&.neba-link]:text-(--n-accent)":G&u?"[:where(&)]:text-inherit":"[&.neba-link]:text-inherit",M??""),I={"--n-underline":"color-mix(in oklab, currentColor 45%, transparent)","--n-underline-hover":"currentColor","--n-ring":`var(--neba-${v??"primary"}-ring)`,...v?{"--n-accent":`var(--neba-${v}-accent)`}:null},{rel:J,target:K,...O}=A,P=C?"_blank":K,Q=m(P,J),S=c(P);return t({render:F??e("a",{}),ref:p,props:{href:d(k),target:P,className:H,style:{...I,...R},children:n(r,{children:[q,E?e("span",{className:"ms-[0.25em]",children:E}):null,S?n("span",{className:y,children:[" ",B.newTab]}):null]}),...O,rel:Q}})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as l from"react";import{Button as t}from"../button/Button.js";import{TimeGrid as o,usePickerLabels as a}from"../../internal/calendar.js";import{ClockIcon as s}from"../../internal/icons.js";import{PickerFooter as i,PickerShell as r}from"../../internal/picker.js";import{displaySamples as c,formatDate as u,clampDate as d,isHour12 as m,isValidDate as p,secondsOfDay as h,startOfDay as f,timeUnitSpan as g,toISOTime as S,withPlaceholder as b,withTime as y}from"../../internal/date.js";import{cx as v}from"../../internal/styles.js";import{useStyleDefaults as j}from"../../internal/defaults.js";import{useIntlLocale as x}from"../../internal/media.js";export const TimePicker=/*@__PURE__*/l.forwardRef(function TimePicker(C,w){const{value:z,defaultValue:k,onValueChange:D,open:O,defaultOpen:T,onOpenChange:M,referenceDate:P,minTime:V,maxTime:B,shouldDisableTime:H,hour12:I,showSeconds:N=!1,hourStep:R=1,minuteStep:F=1,secondStep:L=1,locale:q,format:A,placeholder:E,clearable:G=!1,showNowButton:J=!0,closeOnSelect:K=!1,labels:Q,name:U,size:W="md",color:X="primary",density:Y="default",readOnly:Z=!1,disabled:$=!1,startIcon:_,...ee}=j(C,["size","density","variant","locale","labelPlacement"]),ne=a(Q,q),le=x(q),te=I??m(le),[oe,ae]=l.useState(k??null),se=void 0!==z?z:oe,[ie,re]=l.useState(T??!1),ce=O??ie,[ue]=l.useState(()=>P??f(new Date)),de=e=>{e&&(Z||$)||(void 0===O&&re(e),M?.(e))},me=(e,n)=>p(n)?y(e,{hours:n.getHours(),minutes:n.getMinutes(),seconds:n.getSeconds()}):null,pe=e=>{const n=null===e?null:d(e,me(e,V),me(e,B));void 0===z&&ae(n),D?.(n)},he=l.useCallback((e,n)=>{const[l,t]=g(n,e);return!!(p(V)&&t<h(V))||(!!(p(B)&&l>h(B))||(H?.(e,n)??!1))},[V,B,H]),fe=l.useMemo(()=>A??{hour:"numeric",minute:"2-digit",...N?{second:"2-digit"}:{}},[A,N]),ge=new Date,Se=y(P??ue,{hours:ge.getHours(),minutes:ge.getMinutes(),seconds:N?ge.getSeconds():0}),be=J||G||!K,ye=l.useMemo(()=>b(c(le,fe),E),[le,fe,E]);return e(r,{...ee,size:W,color:X,density:Y,readOnly:Z,disabled:$,triggerRef:w,startIcon:_??e(s,{}),display:p(se)?u(se,le,fe):E??"",samples:ye,empty:!p(se),clearable:G,onClear:()=>pe(null),open:ce,onOpenChange:de,clearLabel:ne.clear,hiddenValues:U?[{name:U,value:p(se)?S(se,N):""}]:void 0,children:n("div",{className:v("flex flex-col",be&&"gap-1.5"),children:[e(o,{size:W,density:Y,locale:q,value:p(se)?se:null,referenceDate:P??ue,onChange:e=>{pe(e),K&&de(!1)},hour12:te,showSeconds:N,hourStep:R,minuteStep:F,secondStep:L,shouldDisableTime:he,labels:ne,autoFocus:!0}),be?n(i,{size:W,children:[G?e(t,{variant:"text",size:W,color:X,density:"compact",onClick:()=>{pe(null),de(!1)},children:ne.clear}):null,J?e(t,{variant:"text",size:W,color:X,density:"compact",disabled:he(Se,"second"),onClick:()=>{pe(Se),de(!1)},children:ne.now}):null,K?null:e(t,{variant:"solid",size:W,color:X,density:"compact",onClick:()=>de(!1),children:ne.done})]}):null]})})});
1
+ "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as l from"react";import{Button as t}from"../button/Button.js";import{TimeGrid as o,usePickerLabels as a,usePickerSamples as s}from"../../internal/calendar.js";import{ClockIcon as i}from"../../internal/icons.js";import{PickerFooter as r,PickerShell as c}from"../../internal/picker.js";import{formatDate as u,clampDate as d,isHour12 as m,isValidDate as p,secondsOfDay as h,startOfDay as f,timeUnitSpan as g,toISOTime as S,withPlaceholder as b,withTime as y}from"../../internal/date.js";import{cx as v}from"../../internal/styles.js";import{useStyleDefaults as j}from"../../internal/defaults.js";import{useIntlLocale as x}from"../../internal/media.js";export const TimePicker=/*@__PURE__*/l.forwardRef(function TimePicker(C,w){const{value:z,defaultValue:k,onValueChange:D,open:O,defaultOpen:T,onOpenChange:M,referenceDate:P,minTime:V,maxTime:B,shouldDisableTime:H,hour12:I,showSeconds:N=!1,hourStep:R=1,minuteStep:F=1,secondStep:L=1,locale:q,format:A,placeholder:E,clearable:G=!1,showNowButton:J=!0,closeOnSelect:K=!1,labels:Q,name:U,size:W="md",color:X="primary",density:Y="default",readOnly:Z=!1,disabled:$=!1,startIcon:_,...ee}=j(C,["size","density","variant","locale","labelPlacement"]),ne=a(Q,q),le=x(q),te=I??m(le),[oe,ae]=l.useState(k??null),se=void 0!==z?z:oe,[ie,re]=l.useState(T??!1),ce=O??ie,[ue]=l.useState(()=>P??f(new Date)),de=e=>{e&&(Z||$)||(void 0===O&&re(e),M?.(e))},me=(e,n)=>p(n)?y(e,{hours:n.getHours(),minutes:n.getMinutes(),seconds:n.getSeconds()}):null,pe=e=>{const n=null===e?null:d(e,me(e,V),me(e,B));void 0===z&&ae(n),D?.(n)},he=l.useCallback((e,n)=>{const[l,t]=g(n,e);return!!(p(V)&&t<h(V))||(!!(p(B)&&l>h(B))||(H?.(e,n)??!1))},[V,B,H]),fe=l.useMemo(()=>A??{hour:"numeric",minute:"2-digit",...N?{second:"2-digit"}:{}},[A,N]),ge=new Date,Se=y(P??ue,{hours:ge.getHours(),minutes:ge.getMinutes(),seconds:N?ge.getSeconds():0}),be=J||G||!K,ye=s(q,fe),ve=l.useMemo(()=>b(ye,E),[ye,E]);return e(c,{...ee,size:W,color:X,density:Y,readOnly:Z,disabled:$,triggerRef:w,startIcon:_??e(i,{}),display:p(se)?u(se,le,fe):E??"",samples:ve,empty:!p(se),clearable:G,onClear:()=>pe(null),open:ce,onOpenChange:de,clearLabel:ne.clear,hiddenValues:U?[{name:U,value:p(se)?S(se,N):""}]:void 0,children:n("div",{className:v("flex flex-col",be&&"gap-1.5"),children:[e(o,{size:W,density:Y,locale:q,value:p(se)?se:null,referenceDate:P??ue,onChange:e=>{pe(e),K&&de(!1)},hour12:te,showSeconds:N,hourStep:R,minuteStep:F,secondStep:L,shouldDisableTime:he,labels:ne,autoFocus:!0}),be?n(r,{size:W,children:[G?e(t,{variant:"text",size:W,color:X,density:"compact",onClick:()=>{pe(null),de(!1)},children:ne.clear}):null,J?e(t,{variant:"text",size:W,color:X,density:"compact",disabled:he(Se,"second"),onClick:()=>{pe(Se),de(!1)},children:ne.now}):null,K?null:e(t,{variant:"solid",size:W,color:X,density:"compact",onClick:()=>de(!1),children:ne.done})]}):null]})})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{CartesianChart as o,chartTableClasses as a,markTransitionClasses as r,useDeferredRows as s}from"../../internal/chart-frame.js";import{barBandRatio as l,barMaxThickness as i,barRadius as c,formatTimeTicks as m,formatTimeValue as u,markGap as d,resolveColor as f,seriesColor as h,timeScale as x,toNumber as p}from"../../internal/chart.js";import{chartMessages as M,useMessages as b}from"../../internal/i18n.js";import{useStyleDefaults as y}from"../../internal/defaults.js";import{useIntlLocale as v}from"../../internal/media.js";export function TimelineChart(t){const{series:a,min:r,max:s,barSize:c,rounded:f=!0,size:C="md",density:T="default",xAxis:z,yAxis:A,locale:D,references:E,...P}=y(t,["size","density","locale"]),S=v(D),B=n.useMemo(()=>a.map(g),[a]),F=n.useMemo(()=>B.map(e=>e.spans),[B]),I=n.useMemo(()=>{let e=1/0,t=-1/0,n=!1;for(const o of F)for(const a of o)a&&(n=!0,e=Math.min(e,a.from),t=Math.max(t,a.to));for(const o of E??[])if("value"===(o.axis??"value"))for(const a of void 0===o.to?[o.value]:[o.value,o.to])n=!0,e=Math.min(e,a),t=Math.max(t,a);return n?{min:e,max:t}:null},[F,E]),N=n.useMemo(()=>x(I,{min:p(r)??void 0,max:p(s)??void 0,tickCount:A?.tickCount}),[I,r,s,A?.tickCount]),R=n.useMemo(()=>m(N.ticks,N.unit,S),[N,S]),q=n.useMemo(()=>a.map((e,t)=>h(e,t)),[a]),Y=n.useMemo(()=>[{data:F.map(e=>e.some(Boolean)?1:null)}],[F]),G=n.useMemo(()=>{const e=w(N.unit);return("day"===e||"week"===e)&&F.some(e=>e.some(e=>null!==e&&(k(e.from)||k(e.to))))},[F,N.unit]),H=n.useMemo(()=>{let e=0,t=1/0,n=-1/0;for(const o of F)for(const a of o)a&&(e+=1,t=Math.min(t,a.from),n=Math.max(n,a.to));return 0===e?{count:e,min:"",max:""}:{count:e,min:u(t,w(N.unit),S,G),max:u(n,w(N.unit),S,G)}},[F,N.unit,S,G]),J=n.useMemo(()=>a.map((e,t)=>e.name??`${t+1}`),[a]),K=c??i[C],L=b(M,D),O=n.useCallback(e=>{const t=[];return B.forEach((n,o)=>{const a=Math.min(K,Math.max(1,(e.band.band-d*(n.lanes-1))/n.lanes)),r=a*n.lanes+d*(n.lanes-1),s=e.plot.top+e.categoryPx(o)-r/2+a/2;n.spans.forEach((n,r)=>{if(!n||n.to<e.scale.min||n.from>e.scale.max)return;const l=e.valuePx(n.from),i=e.valuePx(n.to);t.push({series:o,index:r,x:(l+i)/2,y:s+n.lane*(a+d),r:a/2,rx:Math.max(0,(i-l)/2),ry:a/2})})}),t},[B,K]),Q=n.useCallback(e=>{const t=F[e.series]?.[e.index];if(!t)return null;const n=[{seriesIndex:e.series,name:J[e.series],color:t.color??q[e.series],value:t.to-t.from,formatted:`${u(t.from,w(N.unit),S,G)} – ${u(t.to,w(N.unit),S,G)}`}];return{heading:t.span.label??J[e.series],items:n}},[F,J,q,N.unit,S,G]);return e(o,{...P,series:Y,categories:J,size:C,density:T,locale:D,horizontal:!0,scale:N,references:E,brush:void 0,secondaryAxis:void 0,xAxis:z,yAxis:{tickFormat:(e,t)=>R[t]??"",...A},legend:!1,bandRatio:l[T],marks:O,markTooltip:Q,summary:H,exportRows:()=>function(e,t,n,o,a){const r=t.some(e=>e.data.some(e=>void 0!==e.label));return[["string"==typeof o?o:"",...r?[a.title]:[],a.start,a.end],...n.flatMap((n,o)=>n.map((n,a)=>[e[o],...r?[j(t[o].data[a]?.label)]:[],n?new Date(n.from):null,n?new Date(n.to):null]))]}(J,a,F,z?.label,L),table:t=>e($,{id:t,names:J,series:a,spans:F,unit:w(N.unit),clock:G,label:P.label,corner:z?.label,locale:D}),children:t=>e(Spans,{context:t,spans:F,colors:q,rounded:f})})}function g(e){const t=e.data.map(e=>{const t=p(e.start),n=p(e.end);return null===t||null===n?null:{from:Math.min(t,n),to:Math.max(t,n),lane:0,color:e.color?f(e.color):void 0,span:e}}),n=[];return t.map((e,t)=>({one:e,index:t})).filter(e=>Boolean(e.one)).sort((e,t)=>e.one.from-t.one.from).forEach(({one:e})=>{const t=n.findIndex(t=>t<=e.from),o=-1===t?n.length:t;n[o]=e.to,e.lane=o}),{spans:t,lanes:Math.max(1,n.length)}}function Spans({context:t,spans:n,colors:o,rounded:a}){const{marks:s,activeMark:l,plot:i}=t,m=a?c:0;return e("g",{children:s.map(t=>{const a=n[t.series]?.[t.index];if(!a)return null;const s=l?.series===t.series&&l?.index===t.index,c=t.rx??t.r,u=2*(t.ry??t.r),d=Math.max(i.left,t.x-c),f=Math.min(i.left+i.width,t.x+c);if(f<i.left||d>i.left+i.width)return null;const h=Math.max(1,f-d);return e("rect",{x:d,y:t.y-u/2,width:h,height:u,rx:Math.min(m,h/2,u/2),fill:a.color??o[t.series],opacity:s?1:.92,className:r},`${t.series}-${t.index}`)})})}function k(e){const t=new Date(e);return t.getTime()!==new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}function w(e){return"month"===e||"quarter"===e||"year"===e?"day":e}const j=e=>"string"==typeof e||"number"==typeof e?e:null;const $=/*@__PURE__*/n.memo(function TimelineTable({id:n,names:o,series:r,spans:l,unit:i,clock:c,label:m,corner:d,locale:f}){const h=b(M,f),x=v(f),p=r.some(e=>e.data.some(e=>void 0!==e.label)),y=[],g=l.reduce((e,t)=>(y.push(e),e+t.length),0),k=s({rows:g,points:g,columns:p?4:3});return t("table",{id:n,className:a,"aria-busy":k<g||void 0,children:[m?e("caption",{children:m}):null,e("thead",{children:t("tr",{children:[e("th",{scope:"col",children:d??""}),p?e("th",{scope:"col",children:h.title}):null,e("th",{scope:"col",children:h.start}),e("th",{scope:"col",children:h.end})]})}),e("tbody",{children:l.flatMap((n,a)=>n.slice(0,Math.max(0,k-y[a])).map((n,s)=>t("tr",{children:[e("th",{scope:"row",children:o[a]}),p?e("td",{children:r[a].data[s]?.label??""}):null,e("td",{children:n?u(n.from,i,x,c):""}),e("td",{children:n?u(n.to,i,x,c):""})]},`${a}-${s}`)))})]})});
1
+ "use client";import{jsx as e,Fragment as t,jsxs as n}from"react/jsx-runtime";import*as o from"react";import{CartesianChart as a,chartTableClasses as r,markTransitionClasses as s,tableRuns as l,useDeferredRows as i}from"../../internal/chart-frame.js";import{barBandRatio as c,barMaxThickness as m,barRadius as u,formatTimeTicks as d,formatTimeValue as h,markGap as f,resolveColor as x,seriesColor as p,timeScale as M,toNumber as y}from"../../internal/chart.js";import{chartMessages as b,useMessages as g}from"../../internal/i18n.js";import{useStyleDefaults as k}from"../../internal/defaults.js";import{useIntlLocale as v}from"../../internal/media.js";export function TimelineChart(t){const{series:n,min:r,max:s,barSize:l,rounded:i=!0,size:u="md",density:x="default",xAxis:$,yAxis:j,locale:D,references:S,...E}=k(t,["size","density","locale"]),F=v(D),P=o.useMemo(()=>n.map(w),[n]),R=o.useMemo(()=>P.map(e=>e.spans),[P]),B=o.useMemo(()=>{let e=1/0,t=-1/0,n=!1;for(const o of R)for(const a of o)a&&(n=!0,e=Math.min(e,a.from),t=Math.max(t,a.to));for(const o of S??[])if("value"===(o.axis??"value"))for(const a of void 0===o.to?[o.value]:[o.value,o.to])n=!0,e=Math.min(e,a),t=Math.max(t,a);return n?{min:e,max:t}:null},[R,S]),I=o.useMemo(()=>M(B,{min:y(r)??void 0,max:y(s)??void 0,tickCount:j?.tickCount}),[B,r,s,j?.tickCount]),N=o.useMemo(()=>d(I.ticks,I.unit,F),[I,F]),q=o.useMemo(()=>n.map((e,t)=>p(e,t)),[n]),Y=o.useMemo(()=>[{data:R.map(e=>e.some(Boolean)?1:null)}],[R]),G=o.useMemo(()=>{const e=T(I.unit);return("day"===e||"week"===e)&&R.some(e=>e.some(e=>null!==e&&(C(e.from)||C(e.to))))},[R,I.unit]),H=o.useMemo(()=>{let e=0,t=1/0,n=-1/0;for(const o of R)for(const a of o)a&&(e+=1,t=Math.min(t,a.from),n=Math.max(n,a.to));return 0===e?{count:e,min:"",max:""}:{count:e,min:h(t,T(I.unit),F,G),max:h(n,T(I.unit),F,G)}},[R,I.unit,F,G]),J=o.useMemo(()=>n.map((e,t)=>e.name??`${t+1}`),[n]),K=l??m[u],L=g(b,D),O=o.useCallback(e=>{const t=[];return P.forEach((n,o)=>{const a=Math.min(K,Math.max(1,(e.band.band-f*(n.lanes-1))/n.lanes)),r=a*n.lanes+f*(n.lanes-1),s=e.plot.top+e.categoryPx(o)-r/2+a/2;n.spans.forEach((n,r)=>{if(!n||n.to<e.scale.min||n.from>e.scale.max)return;const l=e.valuePx(n.from),i=e.valuePx(n.to);t.push({series:o,index:r,x:(l+i)/2,y:s+n.lane*(a+f),r:a/2,rx:Math.max(0,(i-l)/2),ry:a/2})})}),t},[P,K]),Q=o.useCallback(e=>{const t=R[e.series]?.[e.index];if(!t)return null;const n=[{seriesIndex:e.series,name:J[e.series],color:t.color??q[e.series],value:t.to-t.from,formatted:`${h(t.from,T(I.unit),F,G)} – ${h(t.to,T(I.unit),F,G)}`}];return{heading:t.span.label??J[e.series],items:n}},[R,J,q,I.unit,F,G]);return e(a,{...E,series:Y,categories:J,size:u,density:x,locale:D,horizontal:!0,scale:I,references:S,brush:void 0,secondaryAxis:void 0,xAxis:$,yAxis:{tickFormat:(e,t)=>N[t]??"",...j},legend:!1,bandRatio:c[x],marks:O,markTooltip:Q,summary:H,exportRows:()=>function(e,t,n,o,a){const r=t.some(e=>e.data.some(e=>void 0!==e.label));return[["string"==typeof o?o:"",...r?[a.title]:[],a.start,a.end],...n.flatMap((n,o)=>n.map((n,a)=>[e[o],...r?[z(t[o].data[a]?.label)]:[],n?new Date(n.from):null,n?new Date(n.to):null]))]}(J,n,R,$?.label,L),table:t=>e(A,{id:t,names:J,series:n,spans:R,unit:T(I.unit),clock:G,label:E.label,corner:$?.label,locale:D}),children:t=>e(Spans,{context:t,spans:R,colors:q,rounded:i})})}function w(e){const t=e.data.map(e=>{const t=y(e.start),n=y(e.end);return null===t||null===n?null:{from:Math.min(t,n),to:Math.max(t,n),lane:0,color:e.color?x(e.color):void 0,span:e}}),n=[];return t.map((e,t)=>({one:e,index:t})).filter(e=>Boolean(e.one)).sort((e,t)=>e.one.from-t.one.from).forEach(({one:e})=>{const t=n.findIndex(t=>t<=e.from),o=-1===t?n.length:t;n[o]=e.to,e.lane=o}),{spans:t,lanes:Math.max(1,n.length)}}const $=64;function Spans({context:t,spans:n,colors:a,rounded:r}){const{marks:s,activeMark:l,plot:i}=t,c=r?u:0,m=o.useMemo(()=>{const e=[];for(const t of s){const o=n[t.series]?.[t.index];if(!o)continue;const r=t.rx??t.r,s=2*(t.ry??t.r),l=Math.max(i.left,t.x-r),m=Math.min(i.left+i.width,t.x+r);if(m<i.left||l>i.left+i.width)continue;const u=Math.max(1,m-l);e.push({key:`${t.series}-${t.index}`,series:t.series,index:t.index,x:l,y:t.y-s/2,width:u,height:s,rx:Math.min(c,u/2,s/2),fill:o.color??a[t.series]})}const t=[];for(let n=0;n<e.length;n+=$)t.push(e.slice(n,n+$));return t},[s,n,a,i,c]),d=l?`${l.series}-${l.index}`:null;return e("g",{children:m.map((t,n)=>e(j,{spans:t,active:null!==d&&t.some(e=>e.key===d)?d:null},n))})}const j=/*@__PURE__*/o.memo(function SpanRun({spans:n,active:o}){return e(t,{children:n.map(t=>e("rect",{x:t.x,y:t.y,width:t.width,height:t.height,rx:t.rx,fill:t.fill,opacity:t.key===o?1:.92,className:s},t.key))})});function C(e){const t=new Date(e);return t.getTime()!==new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}function T(e){return"month"===e||"quarter"===e||"year"===e?"day":e}const z=e=>"string"==typeof e||"number"==typeof e?e:null;const A=/*@__PURE__*/o.memo(function TimelineTable({id:t,names:a,series:s,spans:c,unit:m,clock:u,label:d,corner:f,locale:x}){const p=g(b,x),M=v(x),y=s.some(e=>e.data.some(e=>void 0!==e.label)),k=c.reduce((e,t)=>e+t.length,0),{shown:w,run:$}=i({rows:k,points:k,columns:y?4:3}),j=o.useCallback((t,o)=>{let r=0;return c.flatMap((l,i)=>{const c=Math.max(0,t-r),d=Math.min(l.length,o-r);return r+=l.length,l.slice(c,Math.max(c,d)).map((t,o)=>{const r=c+o;return n("tr",{children:[e("th",{scope:"row",children:a[i]}),y?e("td",{children:s[i].data[r]?.label??""}):null,e("td",{children:t?h(t.from,m,M,u):""}),e("td",{children:t?h(t.to,m,M,u):""})]},`${i}-${r}`)})})},[c,a,s,y,m,M,u]);return n("table",{id:t,className:r,"aria-busy":w<k||void 0,children:[d?e("caption",{children:d}):null,e("thead",{children:n("tr",{children:[e("th",{scope:"col",children:f??""}),y?e("th",{scope:"col",children:p.title}):null,e("th",{scope:"col",children:p.start}),e("th",{scope:"col",children:p.end})]})}),e("tbody",{children:l(w,$,j)})]})});