neba 1.10.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -5
- package/dist/components/accordion/Accordion.js +1 -1
- package/dist/components/alert/Alert.js +1 -1
- package/dist/components/anchor/Anchor.js +1 -1
- package/dist/components/animate-lighting/AnimateLighting.js +1 -1
- package/dist/components/app-logo/AppLogo.js +1 -1
- package/dist/components/aspect-ratio/AspectRatio.js +1 -1
- package/dist/components/avatar/Avatar.js +1 -1
- package/dist/components/avatar-group/AvatarGroup.js +1 -1
- package/dist/components/badge/Badge.js +1 -1
- package/dist/components/bar-chart/BarChart.d.ts +1 -1
- package/dist/components/bar-chart/BarChart.js +1 -1
- package/dist/components/blockquote/Blockquote.js +1 -1
- package/dist/components/bottom-navigation/BottomNavigation.js +1 -1
- package/dist/components/box/Box.js +1 -1
- package/dist/components/breadcrumb/Breadcrumb.js +1 -1
- package/dist/components/button/Button.js +1 -1
- package/dist/components/button-group/ButtonGroup.js +1 -1
- package/dist/components/calendar/Calendar.d.ts +72 -0
- package/dist/components/calendar/Calendar.js +1 -0
- package/dist/components/calendar/index.d.ts +2 -0
- package/dist/components/calendar/index.js +1 -0
- package/dist/components/card/Card.js +1 -1
- package/dist/components/carousel/Carousel.js +1 -1
- package/dist/components/chat-bubble/ChatBubble.js +1 -1
- package/dist/components/checkbox/Checkbox.js +1 -1
- package/dist/components/chip/Chip.js +1 -1
- package/dist/components/code-block/CodeBlock.js +1 -1
- package/dist/components/collapsible/Collapsible.js +1 -1
- package/dist/components/color-picker/ColorPicker.js +1 -1
- package/dist/components/combobox/Combobox.d.ts +14 -2
- package/dist/components/combobox/Combobox.js +1 -1
- package/dist/components/command-palette/CommandPalette.d.ts +1 -1
- package/dist/components/command-palette/CommandPalette.js +1 -1
- package/dist/components/confirm/Confirm.d.ts +83 -0
- package/dist/components/confirm/Confirm.js +1 -0
- package/dist/components/confirm/index.d.ts +2 -0
- package/dist/components/confirm/index.js +1 -0
- package/dist/components/container/Container.js +1 -1
- package/dist/components/data-list/DataList.js +1 -1
- package/dist/components/data-table/DataTable.d.ts +104 -1
- package/dist/components/data-table/DataTable.js +1 -1
- package/dist/components/date-picker/DatePicker.d.ts +40 -8
- package/dist/components/date-picker/DatePicker.js +1 -1
- package/dist/components/date-range-picker/DateRangePicker.js +1 -1
- package/dist/components/date-time-picker/DateTimePicker.js +1 -1
- package/dist/components/dialog/Dialog.d.ts +1 -1
- package/dist/components/dialog/Dialog.js +1 -1
- package/dist/components/divider/Divider.js +1 -1
- package/dist/components/drawer/Drawer.d.ts +1 -1
- package/dist/components/drawer/Drawer.js +1 -1
- package/dist/components/empty/Empty.js +1 -1
- package/dist/components/file-picker/FilePicker.js +1 -1
- package/dist/components/floating-action-button/FloatingActionButton.js +1 -1
- package/dist/components/floating-bottom-navigation/FloatingBottomNavigation.js +1 -1
- package/dist/components/footer/Footer.js +1 -1
- package/dist/components/gauge-chart/GaugeChart.d.ts +1 -1
- package/dist/components/gauge-chart/GaugeChart.js +1 -1
- package/dist/components/grid-container/GridContainer.js +1 -1
- package/dist/components/header/Header.js +1 -1
- package/dist/components/heatmap-chart/HeatmapChart.d.ts +1 -1
- package/dist/components/heatmap-chart/HeatmapChart.js +1 -1
- package/dist/components/highlight/Highlight.js +1 -1
- package/dist/components/hover-card/HoverCard.d.ts +1 -1
- package/dist/components/hover-card/HoverCard.js +1 -1
- package/dist/components/how-to-steps/HowToSteps.js +1 -1
- package/dist/components/image/Image.d.ts +70 -0
- package/dist/components/image/Image.js +1 -0
- package/dist/components/image/index.d.ts +2 -0
- package/dist/components/image/index.js +1 -0
- package/dist/components/list/List.js +1 -1
- package/dist/components/menubar/Menubar.js +1 -1
- package/dist/components/meter/Meter.js +1 -1
- package/dist/components/mockup/Mockup.js +1 -1
- package/dist/components/number-field/NumberField.d.ts +12 -2
- package/dist/components/number-field/NumberField.js +1 -1
- package/dist/components/otp-field/OtpField.js +1 -1
- package/dist/components/overlay/Overlay.d.ts +1 -1
- package/dist/components/overlay/Overlay.js +1 -1
- package/dist/components/page-layout/PageLayout.js +1 -1
- package/dist/components/pagination/Pagination.js +1 -1
- package/dist/components/panes/Panes.js +1 -1
- package/dist/components/pie-chart/PieChart.d.ts +1 -1
- package/dist/components/pie-chart/PieChart.js +1 -1
- package/dist/components/pill/Pill.js +1 -1
- package/dist/components/popconfirm/Popconfirm.d.ts +71 -0
- package/dist/components/popconfirm/Popconfirm.js +1 -0
- package/dist/components/popconfirm/index.d.ts +2 -0
- package/dist/components/popconfirm/index.js +1 -0
- package/dist/components/popover/Popover.d.ts +1 -1
- package/dist/components/popover/Popover.js +1 -1
- package/dist/components/portal/Portal.d.ts +48 -0
- package/dist/components/portal/Portal.js +1 -0
- package/dist/components/portal/index.d.ts +2 -0
- package/dist/components/portal/index.js +1 -0
- package/dist/components/progress-box/ProgressBox.js +1 -1
- package/dist/components/progress-circular/ProgressCircular.js +1 -1
- package/dist/components/progress-linear/ProgressLinear.js +1 -1
- package/dist/components/provider/NebaProvider.d.ts +99 -0
- package/dist/components/provider/NebaProvider.js +1 -0
- package/dist/components/provider/index.d.ts +3 -0
- package/dist/components/provider/index.js +1 -0
- package/dist/components/rating/Rating.js +1 -1
- package/dist/components/scatter-chart/ScatterChart.d.ts +1 -1
- package/dist/components/scatter-chart/ScatterChart.js +1 -1
- package/dist/components/scroll-area/ScrollArea.js +1 -1
- package/dist/components/scroll-zone/ScrollZone.js +1 -1
- package/dist/components/select/Select.js +1 -1
- package/dist/components/shortcut/Shortcut.d.ts +2 -1
- package/dist/components/shortcut/Shortcut.js +1 -1
- package/dist/components/sidebar/Sidebar.js +1 -1
- package/dist/components/sidebar/SidebarTrigger.js +1 -1
- package/dist/components/skeleton/Skeleton.js +1 -1
- package/dist/components/slider/Slider.js +1 -1
- package/dist/components/sparkline/Sparkline.js +1 -1
- package/dist/components/spoiler/Spoiler.js +1 -1
- package/dist/components/statistic/Statistic.js +1 -1
- package/dist/components/switch/Switch.js +1 -1
- package/dist/components/table/Table.d.ts +1 -1
- package/dist/components/table/Table.js +1 -1
- package/dist/components/text-field/TextField.d.ts +12 -1
- package/dist/components/text-field/TextField.js +1 -1
- package/dist/components/text-link/TextLink.js +1 -1
- package/dist/components/time-picker/TimePicker.js +1 -1
- package/dist/components/timeline-chart/TimelineChart.d.ts +1 -1
- package/dist/components/timeline-chart/TimelineChart.js +1 -1
- package/dist/components/toast/Toast.d.ts +1 -1
- package/dist/components/toast/Toast.js +1 -1
- package/dist/components/toggle/Toggle.js +1 -1
- package/dist/components/toggle-group/ToggleGroup.js +1 -1
- package/dist/components/toolbar/Toolbar.js +1 -1
- package/dist/components/tooltip/Tooltip.d.ts +1 -1
- package/dist/components/tooltip/Tooltip.js +1 -1
- package/dist/components/tour/Tour.d.ts +1 -1
- package/dist/components/tour/Tour.js +1 -1
- package/dist/components/transfer/Transfer.js +1 -1
- package/dist/components/tree-select/TreeSelect.d.ts +88 -0
- package/dist/components/tree-select/TreeSelect.js +1 -0
- package/dist/components/tree-select/index.d.ts +2 -0
- package/dist/components/tree-select/index.js +1 -0
- package/dist/components/tree-view/TreeView.js +1 -1
- package/dist/components/visually-hidden/VisuallyHidden.d.ts +37 -0
- package/dist/components/visually-hidden/VisuallyHidden.js +1 -0
- package/dist/components/visually-hidden/index.d.ts +2 -0
- package/dist/components/visually-hidden/index.js +1 -0
- package/dist/components/window-pane/WindowPane.js +1 -1
- package/dist/hooks/index.d.ts +10 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/useDisclosure.d.ts +21 -0
- package/dist/hooks/useDisclosure.js +1 -0
- package/dist/hooks/useElementSize.d.ts +23 -0
- package/dist/hooks/useElementSize.js +1 -0
- package/dist/hooks/useMediaQuery.d.ts +27 -0
- package/dist/hooks/useMediaQuery.js +1 -0
- package/dist/hooks/useOnScreen.d.ts +24 -0
- package/dist/hooks/useOnScreen.js +1 -0
- package/dist/hooks/useShortcut.d.ts +34 -0
- package/dist/hooks/useShortcut.js +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +1 -1
- package/dist/internal/calendar.d.ts +31 -5
- package/dist/internal/calendar.js +1 -1
- package/dist/internal/csv.d.ts +40 -0
- package/dist/internal/csv.js +1 -0
- package/dist/internal/date.d.ts +39 -1
- package/dist/internal/date.js +1 -1
- package/dist/internal/defaults.d.ts +46 -0
- package/dist/internal/defaults.js +1 -0
- package/dist/internal/i18n.d.ts +23 -0
- package/dist/internal/i18n.js +1 -1
- package/dist/internal/keys.d.ts +92 -0
- package/dist/internal/keys.js +1 -0
- package/dist/internal/media.d.ts +27 -0
- package/dist/internal/media.js +1 -1
- package/dist/internal/page-layout.d.ts +7 -0
- package/dist/internal/page-layout.js +1 -1
- package/dist/internal/picker.d.ts +7 -1
- package/dist/internal/picker.js +1 -1
- package/dist/locales/ar.js +1 -1
- package/dist/locales/de.js +1 -1
- package/dist/locales/es.js +1 -1
- package/dist/locales/fr.js +1 -1
- package/dist/locales/hi.js +1 -1
- package/dist/locales/id.js +1 -1
- package/dist/locales/it.js +1 -1
- package/dist/locales/ja.js +1 -1
- package/dist/locales/ko.js +1 -1
- package/dist/locales/nl.js +1 -1
- package/dist/locales/pl.js +1 -1
- package/dist/locales/pt.js +1 -1
- package/dist/locales/ru.js +1 -1
- package/dist/locales/th.js +1 -1
- package/dist/locales/tr.js +1 -1
- package/dist/locales/vi.js +1 -1
- package/dist/locales/zh-hans.js +1 -1
- package/dist/locales/zh-hant.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/types.d.ts +34 -0
- package/package.json +6 -1
|
@@ -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 i}from"../../internal/drag.js";import{layoutMessages as l,useMessages as s}from"../../internal/i18n.js";import{drawerSide as d,expandedOnlyClasses as c,PageLayoutContext as u,SidebarSideContext as p,useCollapsed as f}from"../../internal/page-layout.js";import{cx as m,surfaceClasses as b,surfaceSlots as v,toLength as g,toPixels as h,transitionClasses as x}from"../../internal/styles.js";const
|
|
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 i}from"../../internal/drag.js";import{layoutMessages as l,useMessages as s}from"../../internal/i18n.js";import{drawerSide as d,expandedOnlyClasses as c,PageLayoutContext as u,SidebarSideContext as p,useCollapsed as f}from"../../internal/page-layout.js";import{cx as m,surfaceClasses as b,surfaceSlots as v,toLength as g,toPixels as h,transitionClasses as x}from"../../internal/styles.js";import{useStyleDefaults as y}from"../../internal/defaults.js";const w={xs:"11rem",sm:"13rem",md:"16rem",lg:"18rem",xl:"21rem"},j={solid:[b,"text-(--neba-fg) bg-(--n-panel-press)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[b,"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(b,z){const{side:C,width:R,minWidth:k=160,maxWidth:S=480,resizable:B=!1,onResize:N,onResizeEnd:O,collapseBelow:D,open:M,defaultOpen:A=!1,onOpenChange:E,sticky:I=!0,title:T,variant:W="outline",size:L="md",color:P="primary",density:X="default",elevation:_=0,divider:K=!0,padded:$=!0,label:q,locale:F,className:G,style:H,children:J,...Q}=y(b,["size","density","variant","locale"]),U=r.useContext(u),V=r.useContext(p),Y=C??V??"start",Z=F??U.locale,ee=s(l,Z),te=D??(U.present?U.collapseBelow:"none"),re=f(te),[ne,oe]=r.useState(A),ae=void 0!==M,ie=ae?M:U.present?U.open[Y]:ne,le=e=>{ae||(U.present?U.setOpen(Y,e):oe(e)),E?.(e)},se=g(R)??w[L],de=r.useRef(null),ce=r.useCallback(e=>{de.current=e,"function"==typeof z?z(e):z&&(z.current=e)},[z]),ue=r.useRef(null);r.useEffect(()=>()=>ue.current?.(),[]);const pe=e=>{const t=de.current;if(!t)return e;const r=(e,r)=>null==e?r:"number"==typeof e?e:h(e,{percentOf:"undefined"==typeof window?0:window.innerWidth,relativeTo:t})??r,n=Math.min(r(S,480),Math.max(r(k,160),Math.round(e)));return t.style.setProperty("--n-sidebar-w",`${n}px`),n},fe=e("div",{className:m("min-h-0 flex-1 overflow-y-auto overscroll-contain",$?m(n[X][L],o[X][L]):""),children:J});return re?e(a,{side:d(Y),mode:"overlay",open:ie,onOpenChange:le,title:T,size:L,color:P,density:X,locale:Z,closeLabel:ee.closeSidebar,extent:void 0===R?void 0:se,"aria-label":T?void 0:q??ee.sidebar,className:G,style:H,children:J}):t("aside",{ref:ce,"aria-label":q??ee.sidebar,className:m("relative flex min-w-0 shrink-0 flex-col","w-(--n-sidebar-w)",j[W],K?m("start"===Y?"border-e":"border-s","[border-color:var(--n-line)]"):"","content"===U.scroll?"h-full":I?m("self-start","sticky [top:var(--n-layout-header,0px)]","[height:calc(100dvh-var(--n-layout-header,0px)-var(--n-layout-footer,0px))]"):"",c[te],x,G),style:{...v(P,_),"--n-sidebar-w":se,...H},...Q,children:[fe,B?e("div",{role:"separator","aria-orientation":"vertical","aria-label":ee.resizeSidebar,tabIndex:0,className:m("absolute inset-y-0 z-1 w-2 cursor-col-resize","start"===Y?"end-0 -me-1":"start-0 -ms-1","bg-transparent hover:bg-(--n-soft) data-[dragging]:bg-(--n-soft)",x,"[outline:none] focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-0"),onPointerDown:e=>{const t=de.current;if(!t||0!==e.button)return;const r=e.currentTarget,n=e.clientX,o=t.getBoundingClientRect().width,a="rtl"===getComputedStyle(t).direction,l="start"===Y===a?-1:1;let s=o;ue.current=i({target:r,pointerId:e.pointerId,onMove:e=>{s=pe(o+(e.clientX-n)*l),N?.(s)},onEnd:()=>{ue.current=null,O?.(s)}})},onKeyDown:e=>{if("ArrowLeft"!==e.key&&"ArrowRight"!==e.key)return;e.preventDefault();const t="rtl"===getComputedStyle(e.currentTarget).direction,r="start"===Y===t?-1:1;(e=>{const t=de.current;if(!t)return;const r=pe(t.getBoundingClientRect().width+e);N?.(r),O?.(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 t,useMessages as n}from"../../internal/i18n.js";import{collapsedOnlyClasses as a,PageLayoutContext as i}from"../../internal/page-layout.js";import{cx as l}from"../../internal/styles.js";function
|
|
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 t,useMessages as n}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 c(){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(p,m){const{side:u="start",collapseBelow:f,icon:d,label:h,locale:j,variant:x="text",className:b,onClick:k,...v}=s(p,["variant","locale"]),g=r.useContext(i),w=j??g.locale,B=n(t,w);if(!g.present)return null;const C=f??g.collapseBelow,M=g.open[u];return e(o,{ref:m,variant:x,icon:d??e(c,{}),label:h??(M?B.closeSidebar:B.openSidebar),"aria-expanded":M,className:l(a[C],b),onClick:e=>{g.setOpen(u,!M),k?.(e)},...v})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e}from"react/jsx-runtime";import*as r from"react";import{useRender as l}from"@base-ui/react/use-render";import{controlHeightClasses as
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import*as r from"react";import{useRender as l}from"@base-ui/react/use-render";import{controlHeightClasses as n,controlSquareClasses as s,cx as d,surfaceSlots as a}from"../../internal/styles.js";import{useStyleDefaults as o}from"../../internal/defaults.js";const m={xs:"h-[0.6875rem]",sm:"h-[0.75rem]",md:"h-[0.8125rem]",lg:"h-[0.9375rem]",xl:"h-[1.0625rem]"},i={xs:"gap-[0.3125rem]",sm:"gap-[0.375rem]",md:"gap-[0.5625rem]",lg:"gap-[0.5625rem]",xl:"gap-[0.6875rem]"},t={xs:"rounded-[0.3125rem]",sm:"rounded-[0.3125rem]",md:"rounded-[0.375rem]",lg:"rounded-[0.4375rem]",xl:"rounded-[0.5rem]"},u={xs:"h-12",sm:"h-16",md:"h-20",lg:"h-28",xl:"h-36"},f={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)"},h="relative overflow-hidden bg-(--n-soft-hover)";function c(e){if(void 0!==e)return"number"==typeof e?`${e}px`:e}export const Skeleton=/*@__PURE__*/r.forwardRef(function(r,x){const{shape:p="line",lines:g=1,size:b="md",color:w="secondary",width:y,height:$,animated:v=!0,label:j,render:k,className:N,style:z,...A}=o(r,["size"]),B=v?"neba-skeleton":"",R="circle"===p?`rounded-full ${n[b]} ${s[b]} shrink-0`:"rect"===p?`w-full ${f[b]} ${void 0===$?u[b]:""}`:`w-full ${t[b]} ${m[b]}`,S=j?{role:"status","aria-busy":!0,"aria-label":j}:{"aria-hidden":!0},q="line"===p&&g>1;return l({render:k,ref:x,props:{className:(q?["flex w-full flex-col",i[b],N??""]:[h,B,R,N??""]).filter(Boolean).join(" "),style:{...a(w,0),width:c(y),height:c($),...z},...S,...q?{children:Array.from({length:g},(r,l)=>e("div",{className:d(h,B,t[b],m[b],l===g-1?"w-3/5":"w-full")},l))}:null,...A}})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import*as a from"react";import{Slider as s}from"@base-ui/react/slider";import{cx as r,metaTextClasses as n,surfaceClasses as o,transitionClasses as t}from"../../internal/styles.js";const
|
|
1
|
+
"use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import*as a from"react";import{Slider as s}from"@base-ui/react/slider";import{cx as r,metaTextClasses as n,surfaceClasses as o,transitionClasses as t}from"../../internal/styles.js";import{useStyleDefaults as i}from"../../internal/defaults.js";const c={xs:"h-1",sm:"h-1.5",md:"h-1.5",lg:"h-2",xl:"h-2.5"},d={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"},u={xs:"h-4",sm:"h-4.5",md:"h-5",lg:"h-6",xl:"h-7"},m={xs:"w-4",sm:"w-4.5",md:"w-5",lg:"w-6",xl:"w-7"},h="rounded-full bg-(--n-soft)",b=`rounded-full bg-(--n-fill) ${t}`,x=["rounded-full border bg-(--neba-surface)",o,"[border-color:var(--n-line-hover)]","[box-shadow:var(--neba-shadow-1),var(--neba-plate-glass)]","cursor-grab select-none active:cursor-grabbing",t,"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(" ");export const Slider=/*@__PURE__*/a.forwardRef(function(a,o){const{size:t="md",color:v="primary",orientation:g="horizontal",label:w,description:p,showValue:$=!1,disabled:_=!1,className:y,style:N,...j}=i(a,["size"]),z="vertical"===g,A={"--n-fill":`var(--neba-${v}-fill)`,"--n-accent":`var(--neba-${v}-accent)`,"--n-soft":`var(--neba-${v}-soft)`,"--n-soft-hover":`var(--neba-${v}-soft-hover)`,"--n-line-hover":`var(--neba-${v}-line-hover)`,"--n-ring":`var(--neba-${v}-ring)`},V=j.value??j.defaultValue,R=Array.isArray(V)?V.length:1;return l(s.Root,{ref:o,orientation:g,disabled:_,className:r("flex",z?"w-fit flex-col items-center gap-2":"w-full flex-col gap-1.5",_?"[filter:saturate(0.25)] opacity-70 [&_*]:cursor-not-allowed":"",y??""),style:{...A,...N},...j,children:[w||$?l("div",{className:`flex w-full items-baseline gap-2 ${n[t]}`,children:[w?e(s.Label,{className:_?"font-medium text-(--neba-disabled-fg)":"font-medium text-(--neba-fg)",children:w}):null,$?e(s.Value,{className:"ms-auto tabular-nums text-(--neba-muted-fg)",children:"function"==typeof $?$:null}):null]}):null,e(s.Control,{className:["flex touch-none select-none items-center justify-center",z?`${m[t]} h-40 flex-col`:`w-full ${u[t]}`].join(" "),children:l(s.Track,{className:[h,z?`${d[t]} h-full`:`${c[t]} w-full`].join(" "),children:[e(s.Indicator,{className:b}),Array.from({length:R},(l,a)=>e(s.Thumb,{index:a,className:`${x} ${f[t]}`},a))]})}),p?e("div",{className:`${n[t]} text-(--neba-muted-fg)`,children:p}):null]})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as a,jsxs as e,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
|
|
1
|
+
"use client";import{jsx as a,jsxs as e,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 f}from"../../internal/chart.js";import{useMeasuredWidth as p}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__*/t.forwardRef(function(M,k){const{data:y,shape:j="line",curve:w="linear",size:$="md",color:N,endDot:W=!1,baseline:z,min:C,max:L,width:R,label:B,className:D,style:F,...G}=g(M,["size"]),I=t.useRef(null),S=p(I),q=t.useId().replace(/:/g,""),A=t.useMemo(()=>y.map(f),[y]),E=d[$],H=m[$],J=h[$],K=s([A],!1),O=C??(K?Math.min(K.min,z??K.min):0),P=(L??(K?Math.max(K.max,z??K.max):1))-O||1,Q="number"==typeof R?R:S,T=c(N??"var(--neba-chart-1)"),U="bar"===j?0:H/2+(W?J:0),V=U,X=Math.max(1,E-2*U),Y=a=>V+(1-(a-O)/P)*X,Z=A.length>1?Q/(A.length-1):Q,_=A.map((a,e)=>null===a.value?null:{x:e*Z,y:Y(a.value)}),aa=(()=>{for(let a=A.length-1;a>=0;a--)if(null!==A[a].value)return a;return-1})(),ea=Math.min(n[$]/2,Math.max(1,Q/Math.max(1,A.length)-u));return e("div",{ref:k,className:x("relative block",D??void 0),style:{width:R??"100%",height:E,...F},...G,children:[a("div",{ref:I,className:"absolute inset-0",children:Q>0&&A.length>0?e("svg",{width:Q,height:E,viewBox:`0 0 ${Q} ${E}`,role:B?"img":"presentation","aria-label":B,"aria-hidden":!B||void 0,className:"block overflow-visible",children:["area"===j?e(l,{children:[a("defs",{children:e("linearGradient",{id:`${q}-fill`,x1:"0",y1:"0",x2:"0",y2:"1",children:[a("stop",{offset:"0%",stopColor:`color-mix(in oklab, ${T} 32%, transparent)`}),a("stop",{offset:"100%",stopColor:`color-mix(in oklab, ${T} 2%, transparent)`})]})}),a("path",{d:r(_,E,w),fill:`url(#${q}-fill)`})]}):null,void 0!==z?a("line",{x1:0,x2:Q,y1:Y(z),y2:Y(z),stroke:"var(--neba-chart-baseline)",strokeWidth:1}):null,"bar"===j?A.map((e,l)=>null===e.value?null:a("path",{d:i(l*(Q/Math.max(1,A.length))+(Q/Math.max(1,A.length)-ea)/2,Math.min(Y(e.value),Y(Math.max(O,0))),ea,Math.max(1,Math.abs(Y(e.value)-Y(Math.max(O,0)))),o/2,e.value>=0?"up":"down"),fill:e.color??T},l)):a("path",{d:b(_,w),fill:"none",stroke:T,strokeWidth:H,strokeLinecap:"round",strokeLinejoin:"round"}),W&&aa>=0&&"bar"!==j?a("circle",{cx:_[aa].x,cy:_[aa].y,r:J,fill:T,stroke:"var(--neba-chart-gap)",strokeWidth:u}):null]}):null}),B?a("span",{className:v,children:A.map(a=>null===a.value?"—":a.value).join(", ")}):null]})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import*as n from"react";import{Button as r}from"../button/Button.js";import{spoilerMessages as i,useMessages as
|
|
1
|
+
"use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import*as n from"react";import{Button as r}from"../button/Button.js";import{spoilerMessages as i,useMessages as t}from"../../internal/i18n.js";import{boxPaddingClasses as l,boxPaddingXClasses as o,boxPaddingYClasses as s}from"../box/Box.js";import{cx as d,hasContent as c,metaTextClasses as m,radiusClasses as v,surfaceClasses as u,surfaceSlots as f,transitionClasses as p}from"../../internal/styles.js";import{useStyleDefaults as b}from"../../internal/defaults.js";const x={solid:[u,"bg-(--n-panel-hover)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[u,"border bg-(--n-panel)","[border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]"].join(" "),text:"bg-transparent"},h="[background-color:color-mix(in_oklab,var(--neba-surface)_55%,transparent)]";export const Spoiler=/*@__PURE__*/n.forwardRef(function(u,j){const{revealed:y,defaultRevealed:g=!1,onRevealedChange:w,locale:N,label:z,hideLabel:k,description:_,action:C,reversible:R=!1,maxHeight:B,blur:H=10,padded:S=!0,variant:$="outline",size:I="md",color:L="primary",density:q="default",elevation:A=0,className:D,style:E,children:F,...G}=b(u,["size","density","variant","locale"]),J=t(i,N),K=n.useId(),[M,O]=n.useState(g),P=y??M,Q=e=>{void 0===y&&O(e),w?.(e)},T=!1===_?null:_??J.notice;return a("div",{ref:j,className:d("relative isolate overflow-hidden",v[I],x[$],p,D??""),style:{...f(L,A),...E},...G,children:[e("div",{id:K,className:d("min-w-0",S?l[q][I]:"","[transition:filter_var(--neba-duration-fill)_var(--neba-ease)]","motion-reduce:[transition-duration:0ms]",P?"":"select-none"),style:{filter:P?void 0:`blur(${H}px)`,maxHeight:P?void 0:B,overflow:P?void 0:"hidden"},inert:!P,children:F}),P?null:a("div",{className:["absolute inset-0 z-10 flex flex-col items-center justify-center gap-2 text-center",l[q][I],h].join(" "),children:[c(T)?e("p",{className:`m-0 text-(--neba-muted-fg) ${m[I]}`,children:T}):null,C??e(r,{size:I,color:L,density:q,onClick:()=>Q(!0),"aria-expanded":!1,"aria-controls":K,children:z??J.reveal})]}),P&&R?e("div",{className:["flex justify-end",o[q][I],s[q][I],"pt-0"].join(" "),children:e(r,{variant:"text",size:I,color:L,density:q,onClick:()=>Q(!1),"aria-expanded":!0,"aria-controls":K,children:k??J.hide})}):null]})});
|
|
@@ -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 r,TrendDownIcon as s,TrendUpIcon as m}from"../../internal/icons.js";import{numberFormatter as i}from"../../internal/format.js";import{cx as o,hasContent as c,metaTextClasses as u,sheetSectionGapClasses as d}from"../../internal/styles.js";const x={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]"},
|
|
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 r,TrendDownIcon as s,TrendUpIcon as m}from"../../internal/icons.js";import{numberFormatter as i}from"../../internal/format.js";import{cx as o,hasContent as c,metaTextClasses as u,sheetSectionGapClasses as d}from"../../internal/styles.js";import{useStyleDefaults as f}from"../../internal/defaults.js";const x={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]"},p={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"},b={start:"items-start text-start",center:"items-center text-center",end:"items-end text-end"},g={up:e(m,{}),down:e(s,{}),flat:e(r,{})};export const Statistic=/*@__PURE__*/l.forwardRef(function(l,r){const{size:s="md",color:m="primary",density:j="default",label:w,value:y,format:N,locale:$,prefix:v,unit:z,icon:M,previousValue:k,delta:B="percent",betterWhen:C="up",caption:F,align:I="start",className:R,children:S,...V}=f(l,["size","density","locale"]),W="number"==typeof y?y:null,q=null===W?y:i($,N).format(W),A=null!==W&&void 0!==k?W-k:null,D=null!==A&&0!==k&&void 0!==k?A/Math.abs(k):null,E=null===A?null:A>0?"up":A<0?"down":"flat";let G=null;if(null!==A&&null!==E&&"none"!==B){const e=A>0?"+":A<0?"-":"",t=`${e}${i($,N).format(Math.abs(A))}`,l=null===D?null:`${e}${(100*Math.abs(D)).toFixed(1).replace(/\.0$/,"")}%`;G="absolute"===B?t:"both"===B?[l,t].filter(Boolean).join(" · "):l??t}const H=null===E||"flat"===E?"secondary":E===C?"success":"danger",J=null!==G||c(F);return t(n,{ref:r,size:s,color:m,density:j,className:o("flex flex-col",d[s],b[I],R??""),...V,children:[c(w)||c(M)?t("div",{className:["flex min-w-0 items-center gap-1.5 font-medium text-(--neba-muted-fg)",u[s]].join(" "),children:[c(M)?e("span",{className:"flex shrink-0 items-center",children:M}):null,c(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",x[s]].join(" "),children:[c(v)?e("span",{className:`font-medium text-(--neba-muted-fg) ${p[s]}`,children:v}):null,e("span",{className:"min-w-0 break-words",children:q}),c(z)?e("span",{className:`font-medium text-(--neba-muted-fg) ${p[s]}`,children:z}):null]}),J?t("div",{className:`flex min-w-0 flex-wrap items-center gap-x-2 ${h[s]}`,children:[null!==G&&null!==E?e(a,{size:s,variant:"text",color:H,startIcon:g[E],className:"tabular-nums",children:G}):null,c(F)?e("span",{className:`min-w-0 text-(--neba-muted-fg) ${u[s]}`,children:F}):null]}):null,S]})});
|
|
@@ -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 o,cx as i,hitAreaClasses as c,metaTextClasses as s,surfaceClasses as d,tickRowLeadingClasses as b}from"../../internal/styles.js";const
|
|
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 o,cx as i,hitAreaClasses as c,metaTextClasses as s,surfaceClasses as d,tickRowLeadingClasses as b}from"../../internal/styles.js";import{useStyleDefaults as h}from"../../internal/defaults.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"},m={xs:"data-[checked]:left-[calc(100%-0.75rem)]",sm:"data-[checked]:left-[calc(100%-0.875rem)]",md:"data-[checked]:left-[calc(100%-1.125rem)]",lg:"data-[checked]:left-[calc(100%-1.375rem)]",xl:"data-[checked]:left-[calc(100%-1.625rem)]"},u=["relative inline-flex shrink-0 border",c,"[-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(" "),v=[d,"cursor-pointer bg-(--n-panel) [border-color:var(--n-line)]","hover:bg-(--n-panel-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(" "),p=[d,"cursor-default bg-(--n-panel) [border-color:var(--n-line)]","[filter:saturate(0.55)]","data-[checked]:bg-(--n-fill) data-[checked]:[border-color:transparent]"].join(" "),g=["cursor-not-allowed bg-transparent [border-color:var(--neba-disabled-border)] shadow-none","data-[checked]:bg-(--neba-disabled-bg)"].join(" "),x=["absolute inset-y-0.5 left-0.5 aspect-square rounded-full bg-(--neba-surface)","[box-shadow:var(--neba-shadow-1)]","[transition:left_var(--neba-duration)_var(--neba-ease)]"].join(" ");export const Switch=/*@__PURE__*/n.forwardRef(function(n,c){const{size:d="md",color:w="primary",label:k,description:N,error:j,invalid:y,labelPlacement:$="end",disabled:_=!1,readOnly:R=!1,className:z,classNames:O,style:S,...q}=h(n,["size"]),D=null!=j&&!1!==j&&""!==j,E=y??D,F=E?"danger":w,L={"--n-fill":`var(--neba-${F}-fill)`,"--n-fill-hover":`var(--neba-${F}-fill-hover)`,"--n-accent":`var(--neba-${F}-accent)`,"--n-panel":"var(--neba-panel)","--n-panel-hover":"var(--neba-panel-hover)","--n-line":`var(--neba-${F}-line)`,"--n-line-hover":`var(--neba-${F}-line-hover)`,"--n-ring":`var(--neba-${F}-ring)`},P=e("span",{className:"flex h-[1lh] shrink-0 items-center",children:e(l.Root,{ref:c,className:i(u,f[d],_?g:R?p:v,O?.control),disabled:_,readOnly:R,...q,children:e(l.Thumb,{className:i(x,m[d],O?.thumb)})})}),T=k||N?a("span",{className:i("flex min-w-0 flex-col gap-0.5","start"===$?"flex-1":""),children:[k?e(t.Label,{className:i("leading-[1.4]",_?"text-(--neba-disabled-fg)":"cursor-pointer text-(--neba-fg)",O?.label),children:k}):null,N?e(t.Description,{className:i(s[d],"text-(--neba-muted-fg)",O?.description),children:N}):null]}):null;return a(t.Root,{disabled:_,invalid:E,className:i("inline-flex flex-col gap-1 align-top",z??""),style:{...L,...S},children:[e("div",{className:`flex items-start gap-2.5 ${o[d]} ${b}`,children:a(r,"start"===$?{children:[T,P]}:{children:[P,T]})}),e(t.Error,D?{match:!0,className:i(s[d],"text-(--n-accent)",O?.error),children:j}:{className:i(s[d],"text-(--n-accent)",O?.error)})]})});
|
|
@@ -107,4 +107,4 @@ export interface TableProps<Row> extends Omit<BoxProps, 'padded' | 'children' |
|
|
|
107
107
|
* might sit next to. What Table adds is the part that is genuinely tabular: the
|
|
108
108
|
* columns, the rows, and the fact that the two cannot drift apart.
|
|
109
109
|
*/
|
|
110
|
-
export declare function Table<Row>(
|
|
110
|
+
export declare function Table<Row>(rawProps: TableProps<Row>): React.JSX.Element;
|
|
@@ -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}from"../../internal/styles.js";const
|
|
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}from"../../internal/styles.js";import{useStyleDefaults as d}from"../../internal/defaults.js";const c={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"}},m=["[--n-row:transparent]","[transition:background-color_var(--neba-duration)_var(--neba-ease)]"].join(" "),p=["cursor-pointer [outline:none]","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]"].join(" "),y={borderTop:"1px solid var(--n-line)",backgroundColor:"var(--n-row)"};export function Table(h){const{headers:u,items:b,getRowKey:x,caption:f,locale:g,empty:v,striped:w=!1,hoverable:k=!1,stickyHeader:N=!1,onRowClick:j,size:C="md",density:z="default",className:A,classNames:$,..._}=d(h,["size","density","locale"]),T=l(a,g),B=i[z][C],D=c[z][C],K=Boolean(j),R=k||K,E={padding:`${D} ${B}`},H={...E,backgroundColor:"var(--n-panel-press)"};return e(r,{size:C,density:z,padded:!1,className:o("overflow-x-auto",A??""),..._,children:t("table",{className:o("w-full text-start",n[C],"text-(--neba-fg)",$?.table),style:{borderCollapse:"collapse"},children:[f?e("caption",{className:o(s[C],"text-(--neba-muted-fg)",$?.caption),style:{...E,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:$?.head,children:e("tr",{children:u.map(t=>e("th",{scope:"col",className:o("font-semibold whitespace-nowrap text-(--neba-muted-fg)",N?"sticky top-0 z-10 [backdrop-filter:var(--neba-blur)]":"",$?.headCell),style:{...H,textAlign:t.align??"start"},children:t.label??t.key},t.key))})}),e("tbody",{className:$?.body,children:0===b.length?e("tr",{className:o(m,$?.row),style:y,children:e("td",{colSpan:u.length,className:o("text-(--neba-muted-fg)",$?.empty),style:{padding:`2rem ${B}`,textAlign:"center"},children:v??T.empty})}):b.map((t,r)=>e("tr",{className:o(m,w&&r%2==1?"[--n-row:var(--n-panel-hover)]":"",R?"hover:[--n-row:var(--n-soft)]":"",K?p:"",$?.row),style:y,tabIndex:K?0:void 0,onClick:j?()=>j(t,r):void 0,onKeyDown:j?e=>{e.target===e.currentTarget&&("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),j(t,r)))}:void 0,children:u.map(a=>e("td",{className:$?.cell,style:{...E,textAlign:a.align??"start"},children:a.render?a.render(t,r):t[a.key]},a.key))},x?x(t,r):r))})]})})}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type { NebaElevation, NebaFieldSlot, NebaSlots, NebaStyleProps } from '../../types.js';
|
|
2
|
+
import type { NebaElevation, NebaFieldSlot, NebaShortcuts, NebaSlots, NebaStyleProps } from '../../types.js';
|
|
3
3
|
/** How the multiline control may be resized by the user. Ignored when single line. */
|
|
4
4
|
export type TextFieldResize = 'none' | 'vertical' | 'horizontal' | 'both';
|
|
5
5
|
/**
|
|
@@ -72,6 +72,17 @@ export interface TextFieldProps extends NebaStyleProps, NativeControlProps {
|
|
|
72
72
|
* control itself is reached through `classNames.control`.
|
|
73
73
|
*/
|
|
74
74
|
classNames?: NebaSlots<TextFieldSlot>;
|
|
75
|
+
/**
|
|
76
|
+
* Key combinations to act on, spelled the way
|
|
77
|
+
* [Shortcut](../display/shortcut) draws them — `{ 'Mod+Enter': send }`. Bound
|
|
78
|
+
* to the control, so `event.currentTarget` is the `<input>` or the
|
|
79
|
+
* `<textarea>` and `event.currentTarget.value` is what was typed.
|
|
80
|
+
*
|
|
81
|
+
* It runs *before* `onKeyDown`, which still sees every keystroke; neither
|
|
82
|
+
* replaces the other. Nothing is prevented on the caller's behalf — a
|
|
83
|
+
* shortcut that must not also insert a newline calls `preventDefault` itself.
|
|
84
|
+
*/
|
|
85
|
+
shortcuts?: NebaShortcuts<HTMLInputElement | HTMLTextAreaElement>;
|
|
75
86
|
onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
76
87
|
}
|
|
77
88
|
export declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{Field as r}from"@base-ui/react/field";import{Input as
|
|
1
|
+
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{Field as r}from"@base-ui/react/field";import{Input as i}from"@base-ui/react/input";import{controlHeightClasses as l,controlTextLeadingClasses as s,cx as a,disabledClasses as o,fieldReadOnlyClasses as c,fieldRestClasses as d,focusWithinRingClasses as m,gapClasses as u,iconClasses as p,metaTextClasses as f,paddingXClasses as x,radiusClasses as h,stackGapClasses as b,surfaceSlots as g,transitionClasses as y}from"../../internal/styles.js";import{keyHandler as $}from"../../internal/keys.js";import{useStyleDefaults as w}from"../../internal/defaults.js";const v={xs:`${u.xs} ${h.xs} ${s.xs}`,sm:`${u.sm} ${h.sm} ${s.sm}`,md:`${u.md} ${h.md} ${s.md}`,lg:`${u.lg} ${h.lg} ${s.lg}`,xl:`${u.xl} ${h.xl} ${s.xl}`},N={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]"},k={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},z=["group relative flex w-full cursor-text","[-webkit-tap-highlight-color:transparent]",y,"focus-within:[transition-duration:0ms]",m,p].join(" "),j=d,D=c;function C(){return t("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",className:"animate-spin",children:[e("circle",{cx:"8",cy:"8",r:"6.5",stroke:"currentColor",strokeOpacity:"0.25",strokeWidth:"2"}),e("path",{d:"M14.5 8A6.5 6.5 0 0 0 8 1.5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]})}export const TextField=/*@__PURE__*/n.forwardRef(function(s,c){const{variant:d="outline",size:m="md",color:u="primary",density:p="default",elevation:h=0,multiline:y=!1,rows:O=3,resize:R="vertical",label:W,description:I,error:K,invalid:L,startIcon:T,endIcon:A,loading:B=!1,fullWidth:E=!1,classNames:F,shortcuts:M,onKeyDown:P,readOnly:q=!1,disabled:G=!1,type:H="text",className:J,style:Q,...S}=w(s,["size","density","variant"]),U=null!=K&&!1!==K&&""!==K,V=L??U,X=V?"danger":u,Y=n.useRef(null),Z=n.useCallback(e=>{Y.current=e,"function"==typeof c?c(e):c&&(c.current=e)},[c]),_=a(z,v[m],y?`${N[m]} items-start`:`${l[m]} items-center`,x[p][m],G?o[d]:q?D[d]:j[d],F?.shell),ee=a("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",y?`block ${k[R]}`:"self-stretch",F?.control),te="inline-flex h-[1lh] shrink-0 items-center text-(--neba-muted-fg) transition-[color] duration-(--neba-duration) group-focus-within:text-(--n-accent)";return t(r.Root,{disabled:G,invalid:V,className:a("flex-col align-top",b[m],E?"flex w-full":"inline-flex",J??""),style:{...g(X,h),...Q},children:[W?e(r.Label,{className:a(f[m],"font-medium",G?"text-(--neba-disabled-fg)":"text-(--neba-fg)",F?.label),children:W}):null,t("span",{className:_,onPointerDown:e=>{e.target!==e.currentTarget||G||(e.preventDefault(),Y.current?.focus())},children:[T?e("span",{className:te,children:T}):null,e(i,{ref:Z,className:ee,disabled:G,readOnly:q,"aria-busy":B||void 0,"data-loading":B||void 0,...y?{render:e("textarea",{rows:O})}:{type:H},...S,onKeyDown:$(M,P)}),B?e("span",{className:te,children:e(C,{})}):A?e("span",{className:te,children:A}):null]}),I?e(r.Description,{className:a(f[m],"text-(--neba-muted-fg)",F?.description),children:I}):null,e(r.Error,U?{match:!0,className:a(f[m],"text-(--n-accent)",F?.error),children:K}:{className:a(f[m],"text-(--n-accent)",F?.error)})]})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as n,Fragment as e,jsxs as r}from"react/jsx-runtime";import*as i from"react";import{useRender as a}from"@base-ui/react/use-render";import{linkMessages as o,useMessages as t}from"../../internal/i18n.js";import{ExternalLinkIcon as l,LinkIcon as s}from"../../internal/icons.js";import{safeRel as c}from"../../internal/link.js";import{controlTextLeadingClasses as m,cx as u,focusRingClasses as d,srOnlyClasses as p}from"../../internal/styles.js";const
|
|
1
|
+
"use client";import{jsx as n,Fragment as e,jsxs as r}from"react/jsx-runtime";import*as i from"react";import{useRender as a}from"@base-ui/react/use-render";import{linkMessages as o,useMessages as t}from"../../internal/i18n.js";import{ExternalLinkIcon as l,LinkIcon as s}from"../../internal/icons.js";import{safeRel as c}from"../../internal/link.js";import{controlTextLeadingClasses as m,cx as u,focusRingClasses as d,srOnlyClasses as p}from"../../internal/styles.js";import{useStyleDefaults as b}from"../../internal/defaults.js";const f={always:"[&.neba-link]:underline",hover:"[&.neba-link]:no-underline [&.neba-link]:hover:underline",none:"[&.neba-link]:no-underline"},v=["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(" "),d,"focus-visible:rounded-[0.25rem]"].join(" ");export const TextLink=/*@__PURE__*/i.forwardRef(function(i,d){const{href:h,underline:k="always",color:j,size:g,newTab:x=!1,icon:y,locale:w,render:_,className:N,style:z,children:T,...C}=b(i,["size","locale"]),$=t(o,w),F=y??x,L=!0===F?n(x?l:s,{}):F,R=u(v,g?m[g]:"",f[k],j?"[&.neba-link]:text-(--n-accent)":"[&.neba-link]:text-inherit",N??""),q={"--n-underline":"color-mix(in oklab, currentColor 45%, transparent)","--n-underline-hover":"currentColor","--n-ring":`var(--neba-${j??"primary"}-ring)`,...j?{"--n-accent":`var(--neba-${j}-accent)`}:null},A=x?"_blank":void 0,{rel:B,...D}=C,E=c(A,B);return a({render:_??n("a",{}),ref:d,props:{href:h,target:A,className:R,style:{...q,...z},children:r(e,{children:[T,L?n("span",{className:"ms-[0.25em]",children:L}):null,x?r(e,{children:[" ",n("span",{className:p,children:$.newTab})]}):null]}),...D,rel:E}})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as o from"react";import{Button as t}from"../button/Button.js";import{TimeGrid as l,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 d,isHour12 as u,isValidDate as m,secondsOfDay as p,timeUnitSpan as h,toISOTime as f,withPlaceholder as
|
|
1
|
+
"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as o from"react";import{Button as t}from"../button/Button.js";import{TimeGrid as l,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 d,isHour12 as u,isValidDate as m,secondsOfDay as p,timeUnitSpan as h,toISOTime as f,withPlaceholder as y,withTime as S}from"../../internal/date.js";import{cx as b}from"../../internal/styles.js";import{useStyleDefaults as g}from"../../internal/defaults.js";export const TimePicker=/*@__PURE__*/o.forwardRef(function(v,j){const{value:x,defaultValue:C,onValueChange:w,open:z,defaultOpen:k,onOpenChange:D,referenceDate:O,minTime:T,maxTime:M,shouldDisableTime:V,hour12:B,showSeconds:I=!1,hourStep:N=1,minuteStep:R=1,secondStep:F=1,locale:H,format:P,placeholder:q,clearable:A=!1,showNowButton:E=!0,closeOnSelect:G=!1,labels:J,name:K,size:L="md",color:Q="primary",density:U="default",readOnly:W=!1,disabled:X=!1,startIcon:Y,...Z}=g(v,["size","density","locale"]),$=a(J),_=B??u(H),[ee,ne]=o.useState(C??null),oe=void 0!==x?x:ee,[te,le]=o.useState(k??!1),ae=z??te,[se]=o.useState(()=>O??new Date),ie=e=>{e&&(W||X)||(void 0===z&&le(e),D?.(e))},re=e=>{void 0===x&&ne(e),w?.(e)},ce=o.useCallback((e,n)=>{const[o,t]=h(n,e);return!!(m(T)&&t<p(T))||(!!(m(M)&&o>p(M))||(V?.(e,n)??!1))},[T,M,V]),de=o.useMemo(()=>P??{hour:"numeric",minute:"2-digit",...I?{second:"2-digit"}:{}},[P,I]),ue=new Date,me=S(O??se,{hours:ue.getHours(),minutes:ue.getMinutes(),seconds:I?ue.getSeconds():0}),pe=E||A||!G,he=o.useMemo(()=>y(c(H,de),q),[H,de,q]);return e(r,{...Z,size:L,color:Q,density:U,readOnly:W,disabled:X,triggerRef:j,startIcon:Y??e(s,{}),display:m(oe)?d(oe,H,de):q??"",samples:he,empty:!m(oe),clearable:A,onClear:()=>re(null),open:ae,onOpenChange:ie,labels:$,hiddenValues:K?[{name:K,value:m(oe)?f(oe,I):""}]:void 0,children:n("div",{className:b("flex flex-col",pe&&"gap-1.5"),children:[e(l,{size:L,density:U,locale:H,value:m(oe)?oe:null,referenceDate:O??se,onChange:e=>{re(e),G&&ie(!1)},hour12:_,showSeconds:I,hourStep:N,minuteStep:R,secondStep:F,shouldDisableTime:ce,labels:$,autoFocus:!0}),pe?n(i,{size:L,children:[A?e(t,{variant:"text",size:L,color:Q,density:"compact",onClick:()=>{re(null),ie(!1)},children:$.clear}):null,E?e(t,{variant:"text",size:L,color:Q,density:"compact",disabled:ce(me,"second"),onClick:()=>{re(me),ie(!1)},children:$.now}):null,G?null:e(t,{variant:"solid",size:L,color:Q,density:"compact",onClick:()=>ie(!1),children:$.done})]}):null]})})});
|
|
@@ -41,4 +41,4 @@ export interface TimelineChartProps extends Omit<CartesianChartProps, 'series' |
|
|
|
41
41
|
* steps and draws no axis at all. That one is for a sequence of events; this
|
|
42
42
|
* one is for how long each of them took.
|
|
43
43
|
*/
|
|
44
|
-
export declare function TimelineChart(
|
|
44
|
+
export declare function TimelineChart(rawProps: TimelineChartProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as t from"react";import{CartesianChart as o}from"../../internal/chart-frame.js";import{barBandRatio as r,barMaxThickness as a,barRadius as s,formatTimeTicks as l,formatTimeValue as i,markGap as c,resolveColor as m,seriesColor as d,timeScale as u,toNumber as h}from"../../internal/chart.js";import{srOnlyClasses as
|
|
1
|
+
"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as t from"react";import{CartesianChart as o}from"../../internal/chart-frame.js";import{barBandRatio as r,barMaxThickness as a,barRadius as s,formatTimeTicks as l,formatTimeValue as i,markGap as c,resolveColor as m,seriesColor as d,timeScale as u,toNumber as h}from"../../internal/chart.js";import{srOnlyClasses as f}from"../../internal/styles.js";import{useStyleDefaults as x}from"../../internal/defaults.js";export function TimelineChart(n){const{series:s,min:m,max:f,barSize:y,rounded:k=!0,size:g="md",density:v="default",xAxis:j,yAxis:$,locale:C,...z}=x(n,["size","density","locale"]),w=t.useMemo(()=>s.map(p),[s]),A=t.useMemo(()=>w.map(e=>e.spans),[w]),E=t.useMemo(()=>{let e=1/0,n=-1/0,t=!1;for(const o of A)for(const r of o)r&&(t=!0,e=Math.min(e,r.from),n=Math.max(n,r.to));return t?{min:e,max:n}:null},[A]),P=t.useMemo(()=>u(E,{min:h(m)??void 0,max:h(f)??void 0,tickCount:$?.tickCount}),[E,m,f,$?.tickCount]),B=t.useMemo(()=>l(P.ticks,P.unit,C),[P,C]),I=t.useMemo(()=>s.map((e,n)=>d(e,n)),[s]),T=t.useMemo(()=>[{data:A.map(e=>e.some(Boolean)?1:null)}],[A]),F=t.useMemo(()=>s.map((e,n)=>e.name??`${n+1}`),[s]),N=y??a[g],R=t.useCallback(e=>{const n=[];return w.forEach((t,o)=>{const r=Math.min(N,Math.max(1,(e.band.band-c*(t.lanes-1))/t.lanes)),a=r*t.lanes+c*(t.lanes-1),s=e.plot.top+e.categoryPx(o)-a/2+r/2;t.spans.forEach((t,a)=>{if(!t)return;const l=e.valuePx(t.from),i=e.valuePx(t.to);n.push({series:o,index:a,x:(l+i)/2,y:s+t.lane*(r+c),r:r/2,rx:Math.max(0,(i-l)/2),ry:r/2})})}),n},[w,N]),S=t.useCallback(e=>{const n=A[e.series]?.[e.index];if(!n)return null;const t=[{seriesIndex:e.series,name:F[e.series],color:n.color??I[e.series],value:n.to-n.from,formatted:`${i(n.from,P.unit,C)} – ${i(n.to,P.unit,C)}`}];return{heading:n.span.label??F[e.series],items:t}},[A,F,I,P.unit,C]);return e(o,{...z,series:T,categories:F,size:g,density:v,locale:C,horizontal:!0,scale:P,xAxis:j,yAxis:{tickFormat:(e,n)=>B[n]??"",...$},legend:!1,bandRatio:r[v],marks:R,markTooltip:S,table:n=>e(b,{id:n,names:F,series:s,spans:A,unit:P.unit,label:z.label,corner:j?.label,locale:C}),children:n=>e(M,{context:n,spans:A,colors:I,rounded:k})})}function p(e){const n=e.data.map(e=>{const n=h(e.start),t=h(e.end);return null===n||null===t?null:{from:Math.min(n,t),to:Math.max(n,t),lane:0,color:e.color?m(e.color):void 0,span:e}}),t=[];return n.map((e,n)=>({one:e,index:n})).filter(e=>Boolean(e.one)).sort((e,n)=>e.one.from-n.one.from).forEach(({one:e})=>{const n=t.findIndex(n=>n<=e.from),o=-1===n?t.length:n;t[o]=e.to,e.lane=o}),{spans:n,lanes:Math.max(1,t.length)}}function M({context:n,spans:t,colors:o,rounded:r}){const{marks:a,activeMark:l,plot:i}=n,c=r?s:0;return e("g",{children:a.map(n=>{const r=t[n.series]?.[n.index];if(!r)return null;const a=l?.series===n.series&&l?.index===n.index,s=n.rx??n.r,m=2*(n.ry??n.r),d=Math.max(i.left,n.x-s),u=Math.min(i.left+i.width,n.x+s);if(u<i.left||d>i.left+i.width)return null;const h=Math.max(1,u-d);return e("rect",{x:d,y:n.y-m/2,width:h,height:m,rx:Math.min(c,h/2,m/2),fill:r.color??o[n.series],opacity:a?1:.92},`${n.series}-${n.index}`)})})}function b({id:t,names:o,series:r,spans:a,unit:s,label:l,corner:c,locale:m}){const d=r.some(e=>e.data.some(e=>void 0!==e.label));return n("table",{id:t,className:f,children:[l?e("caption",{children:l}):null,e("thead",{children:n("tr",{children:[e("th",{scope:"col",children:c??""}),d?e("th",{scope:"col",children:"label"}):null,e("th",{scope:"col",children:"start"}),e("th",{scope:"col",children:"end"})]})}),e("tbody",{children:a.flatMap((t,a)=>t.map((t,l)=>n("tr",{children:[e("th",{scope:"row",children:o[a]}),d?e("td",{children:r[a].data[l]?.label??""}):null,e("td",{children:t?i(t.from,s,m):""}),e("td",{children:t?i(t.to,s,m):""})]},`${a}-${l}`)))})]})}
|
|
@@ -136,4 +136,4 @@ export declare function useToast(): {
|
|
|
136
136
|
* limit, the swipe, the F6 focus hotkey, and the live region that makes a
|
|
137
137
|
* message that appeared out of nowhere reach a screen reader at all.
|
|
138
138
|
*/
|
|
139
|
-
export declare function ToastProvider(
|
|
139
|
+
export declare function ToastProvider(rawProps: ToastProviderProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as o from"react";import{Toast as s}from"@base-ui/react/toast";import{boxPaddingClasses as i}from"../box/Box.js";import{actionMessages as
|
|
1
|
+
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as o from"react";import{Toast as s}from"@base-ui/react/toast";import{boxPaddingClasses as i}from"../box/Box.js";import{actionMessages as a,useMessages as n}from"../../internal/i18n.js";import{CloseIcon as r,severityIcon as l}from"../../internal/icons.js";import{controlSlots as c,cx as d,focusRingClasses as m,hasContent as p,iconClasses as u,metaTextClasses as f,radiusClasses as b,sheetBodyClasses as v,sheetHeaderGapClasses as x,sheetSectionGapClasses as h,sheetTitleClasses as y,surfaceClasses as g}from"../../internal/styles.js";import{useStyleDefaults as w}from"../../internal/defaults.js";const N={"top-start":"top-0 items-start","top-center":"top-0 items-center","top-end":"top-0 items-end","bottom-start":"bottom-0 items-start flex-col-reverse","bottom-center":"bottom-0 items-center flex-col-reverse","bottom-end":"bottom-0 items-end flex-col-reverse"},j={solid:[g,"text-(--n-on-solid) bg-(--n-fill)","[box-shadow:var(--neba-shadow-3),var(--neba-plate-solid)]"].join(" "),outline:[g,"border text-(--neba-fg) bg-(--n-panel-press)","[border-color:var(--n-line)]","[box-shadow:var(--neba-shadow-3),var(--neba-plate-glass)]"].join(" "),text:[g,"text-(--neba-fg) bg-(--n-panel-press)","[box-shadow:var(--neba-shadow-3),var(--neba-plate-glass)]"].join(" ")},_={solid:"",outline:"text-(--n-accent)",text:"text-(--n-accent)"};function z(e){const{color:t,variant:o,icon:s,actionLabel:i,onAction:a,...n}=e;return{...n,data:{color:t,variant:o,icon:s},actionProps:void 0===i?void 0:{children:i,onClick:a}}}export function useToast(){const e=s.useToastManager();return o.useMemo(()=>({add:t=>e.add(z(t)),close:t=>e.close(t),update:(t,o)=>e.update(t,z(o)),promise:(t,o)=>e.promise(t,{loading:z(o.loading),success:e=>z("function"==typeof o.success?o.success(e):o.success),error:e=>z("function"==typeof o.error?o.error(e):o.error)}),toasts:e.toasts}),[e])}function T({toast:o,variant:a,color:n,size:g,density:w,closeLabel:N,swipeDirection:z,classNames:T}){const k=o.data?.variant??a??"outline",D=o.data?.color??n,L=void 0===o.data?.icon?l(D):o.data.icon,M=_[k],P=p(o.title);return t(s.Root,{toast:o,swipeDirection:z,className:d("pointer-events-auto flex w-full items-start",i[w??"default"][g],b[g],h[g],v[g],j[k],u,"[transition:opacity_var(--neba-duration)_var(--neba-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0","data-[limited]:hidden",m,"[outline:none]",T?.toast),style:c(D,3,k),children:[p(L)?e("span",{className:`flex h-[1lh] shrink-0 items-center ${M}`,children:L}):null,t("div",{className:`flex min-w-0 flex-1 flex-col ${x[g]}`,children:[e(s.Title,{className:d("neba-title font-semibold",y[g],M,T?.title)}),e(s.Description,{className:d(P&&"solid"!==k?"text-(--neba-muted-fg)":"",T?.description)})]}),e(s.Action,{className:d("flex h-[1lh] shrink-0 cursor-pointer items-center rounded-full px-2","font-medium underline-offset-2",M||"text-(--n-on-solid)","hover:underline","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2",f[g],T?.action)}),e("span",{className:"flex h-[1lh] shrink-0 items-center",children:e(s.Close,{"aria-label":N,className:d("inline-flex size-[1.15em] cursor-pointer items-center justify-center rounded-full","opacity-70 [transition:opacity_var(--neba-duration)_var(--neba-ease)]","hover:opacity-100 focus-visible:opacity-100","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2",T?.close),children:e(r,{})})})]})}function k(t){const{toasts:i}=s.useToastManager(),{position:a,width:n,classNames:r,...l}=t,c=o.useMemo(()=>[a.startsWith("top")?"up":"down","left","right"],[a]);return e(s.Portal,{children:e(s.Viewport,{className:d("neba-portal pointer-events-none fixed inset-x-0 z-50 flex flex-col gap-2 p-4",N[a],r?.viewport),children:i.map(t=>e("div",{className:"w-full",style:{maxWidth:"number"==typeof n?`${n}px`:n},children:e(T,{toast:t,swipeDirection:c,classNames:r,...l})},t.id))})})}export function ToastProvider(o){const{variant:i="outline",size:r="md",color:l="primary",density:c="default",position:d="bottom-end",timeout:m=5e3,limit:p=3,width:u=380,locale:f,closeLabel:b,classNames:v,children:x}=w(o,["size","density","variant","locale"]),h=n(a,f);return t(s.Provider,{timeout:m,limit:p,children:[x,e(k,{position:d,variant:i,size:r,color:l,density:c,width:u,closeLabel:b??h.close,classNames:v})]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsxs as e}from"react/jsx-runtime";import*as
|
|
1
|
+
"use client";import{jsxs as e}from"react/jsx-runtime";import*as t from"react";import{Toggle as n}from"@base-ui/react/toggle";import{ButtonGroupContext as o}from"../../internal/button-group.js";import{controlHeightClasses as r,controlSlots as s,controlSquareClasses as a,controlTextClasses as l,cx as i,disabledClasses as d,focusRingClasses as v,gapClasses as g,iconClasses as b,paddingXClasses as p,pressTransitionClasses as x,radiusClasses as f,surfaceClasses as m,transitionClasses as c}from"../../internal/styles.js";import{useStyleDefaults as h}from"../../internal/defaults.js";const u={xs:`${r.xs} ${g.xs} ${f.xs} ${l.xs}`,sm:`${r.sm} ${g.sm} ${f.sm} ${l.sm}`,md:`${r.md} ${g.md} ${f.md} ${l.md}`,lg:`${r.lg} ${g.lg} ${f.lg} ${l.lg}`,xl:`${r.xl} ${g.xl} ${f.xl} ${l.xl}`},$={xs:`${a.xs} px-0`,sm:`${a.sm} px-0`,md:`${a.md} px-0`,lg:`${a.lg} px-0`,xl:`${a.xl} px-0`},j=["relative inline-flex shrink-0 cursor-pointer select-none items-center justify-center","whitespace-nowrap align-middle font-medium leading-none","[-webkit-tap-highlight-color:transparent] [touch-action:manipulation]",c,x,v,b].join(" "),y={solid:[m,"text-(--neba-muted-fg) bg-(--n-panel-hover)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]","hover:bg-(--n-panel-press) hover:text-(--neba-fg)","active:bg-(--n-panel-press)"].join(" "),outline:[m,"border text-(--neba-muted-fg) bg-(--n-panel)","[border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]","hover:bg-(--n-panel-hover) hover:text-(--neba-fg) hover:[border-color:var(--n-line-hover)]","active:bg-(--n-panel-press)"].join(" "),text:["text-(--neba-muted-fg) bg-transparent","hover:bg-(--n-soft) hover:text-(--neba-fg)","active:bg-(--n-soft-hover)"].join(" ")},w={solid:[m,"text-(--n-on-solid) bg-(--n-fill)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]","hover:bg-(--n-fill-hover)","active:bg-(--n-fill-active)"].join(" "),outline:[m,"border text-(--n-accent) bg-(--n-soft)","[border-color:var(--n-line-hover)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]","hover:bg-(--n-soft-hover)","active:bg-(--n-soft-press)"].join(" "),text:["text-(--n-accent) bg-(--n-soft)","hover:bg-(--n-soft-hover)","active:bg-(--n-soft-press)"].join(" ")};export const Toggle=/*@__PURE__*/t.forwardRef(function(r,a){const{variant:l,size:v,color:g,density:b,elevation:x,pressed:f,defaultPressed:m,onPressedChange:c,value:P,startIcon:z,endIcon:C,fullWidth:T=!1,disabled:k,className:E,style:I,children:M,onPointerMove:N,...R}=h(r,["size","density","variant"]),W=t.useContext(o),X=l??W?.variant??"outline",Y=v??W?.size??"md",q=g??W?.color??"primary",A=b??W?.density??"default",B=x??W?.elevation??0,D=k??W?.disabled??!1,F=null==M||!1===M;return e(n,{ref:a,value:P,pressed:f,defaultPressed:m,onPressedChange:e=>c?.(e),disabled:D,className:e=>i(j,u[Y],F?$[Y]:p[A][Y],D?d[X]:e.pressed?w[X]:y[X],D?"":"neba-glow",T?"w-full":"",E??""),style:{...s(q,B,X),...I},onPointerMove:e=>{if(!D){const t=e.currentTarget;t.style.setProperty("--n-mx",`${e.nativeEvent.offsetX}px`),t.style.setProperty("--n-my",`${e.nativeEvent.offsetY}px`)}N?.(e)},...R,children:[z,M,C]})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e}from"react/jsx-runtime";import*as o from"react";import{ToggleGroup as l}from"@base-ui/react/toggle-group";import{ButtonGroupContext as i}from"../../internal/button-group.js";import{cx as t}from"../../internal/styles.js";const
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import*as o from"react";import{ToggleGroup as l}from"@base-ui/react/toggle-group";import{ButtonGroupContext as i}from"../../internal/button-group.js";import{cx as t}from"../../internal/styles.js";import{useStyleDefaults as n}from"../../internal/defaults.js";const r={horizontal:"[&>*:not(:first-child)]:rounded-s-none [&>*:not(:last-child)]:rounded-e-none",vertical:"[&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none"},a={horizontal:"[&>*:not(:first-child)]:-ms-px",vertical:"[&>*:not(:first-child)]:-mt-px"},s=["inline-flex align-middle","[&>*]:relative [&>*:hover]:z-10 [&>*:focus-visible]:z-10","[&>*]:shrink-0"].join(" ");export const ToggleGroup=/*@__PURE__*/o.forwardRef(function(d,u){const{variant:c,size:f,color:m,density:h,elevation:p,value:v,defaultValue:g,onValueChange:x,multiple:z=!1,orientation:b="horizontal",disabled:j,loopFocus:y=!0,fullWidth:V=!1,className:w,children:C,...F}=n(d,["size","density","variant"]),G=o.useMemo(()=>({variant:c,size:f,color:m,density:h,elevation:p,disabled:j}),[c,f,m,h,p,j]);return e(i.Provider,{value:G,children:e(l,{ref:u,value:v,defaultValue:g,onValueChange:e=>x?.(e),multiple:z,orientation:b,disabled:j,loopFocus:y,className:t(s,"vertical"===b?"flex-col":"flex-row",r[b],"outline"===(c??"outline")?a[b]:"",V?"flex w-full [&>*]:flex-1":"",w??""),...F,children:C})})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import*as o from"react";import{useRender as n}from"@base-ui/react/use-render";import{boxPaddingXClasses as i,boxPaddingYClasses as s}from"../box/Box.js";import{cx as a,hasContent as l,radiusClasses as
|
|
1
|
+
"use client";import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import*as o from"react";import{useRender as n}from"@base-ui/react/use-render";import{boxPaddingXClasses as i,boxPaddingYClasses as s}from"../box/Box.js";import{cx as a,hasContent as l,radiusClasses as d,sheetSectionGapClasses as m,surfaceClasses as c,surfaceSlots as b,transitionClasses as p}from"../../internal/styles.js";import{useStyleDefaults as f}from"../../internal/defaults.js";const x={solid:[c,"text-(--neba-fg) bg-(--n-panel-hover)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[c,"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"},v={static:{top:"",bottom:""},sticky:{top:"sticky top-0 z-20",bottom:"sticky bottom-0 z-20"},fixed:{top:"fixed inset-x-0 top-0 z-30",bottom:"fixed inset-x-0 bottom-0 z-30"}},u={top:"border-b [border-color:var(--n-line)]",bottom:"border-t [border-color:var(--n-line)]"};export const Toolbar=/*@__PURE__*/o.forwardRef(function(o,c){const{variant:g="outline",size:h="md",color:y="primary",density:j="default",elevation:w=0,position:z="static",side:k="top",divider:N=!1,start:B,end:F,render:R,className:T,style:q,children:A,...C}=f(o,["size","density","variant"]),D=a("flex w-full min-w-0 items-center",i[j][h],s[j][h],m[h],"static"===z?d[h]:"",x[g],N?u[k]:"",v[z][k],p,T??"");return n({render:R,ref:c,props:{className:D,style:{...b(y,w),...q},children:r(t,{children:[l(B)?e("div",{className:"flex min-w-0 shrink-0 items-center gap-2",children:B}):null,e("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:A}),l(F)?e("div",{className:"flex min-w-0 shrink-0 items-center gap-2",children:F}):null]}),...C}})});
|
|
@@ -76,4 +76,4 @@ export type TooltipProviderProps = React.ComponentProps<typeof BaseUITooltip.Pro
|
|
|
76
76
|
* this component wires both, and drops the reference while it is closed rather
|
|
77
77
|
* than pointing at an element that is not in the document.
|
|
78
78
|
*/
|
|
79
|
-
export declare function Tooltip(
|
|
79
|
+
export declare function Tooltip(rawProps: TooltipProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as a from"react";import{Tooltip as o}from"@base-ui/react/tooltip";import{controlSlots as i,cx as s,metaTextClasses as n,paddingXClasses as
|
|
1
|
+
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as a from"react";import{Tooltip as o}from"@base-ui/react/tooltip";import{controlSlots as i,cx as s,metaTextClasses as n,paddingXClasses as r,radiusClasses as l,surfaceClasses as d}from"../../internal/styles.js";import{useStyleDefaults as p}from"../../internal/defaults.js";export const TooltipProvider=o.Provider;const c=[d,"max-w-64 text-(--n-on-solid) bg-(--n-fill)","[box-shadow:var(--neba-shadow-3),var(--neba-plate-solid)]","[outline:none]","[transition:opacity_var(--neba-duration)_var(--neba-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0","data-[instant]:[transition-duration:0ms]"].join(" "),m={xs:"py-0.5",sm:"py-0.5",md:"py-1",lg:"py-1.5",xl:"py-2"},y={xs:6,sm:7,md:8,lg:9,xl:10};export function Tooltip(d){const{content:f,children:h,size:u="sm",color:x="secondary",density:b="default",side:g="top",align:v="center",sideOffset:j=6,delay:w,closeDelay:O,arrow:N=!0,open:P,defaultOpen:z,onOpenChange:T,disabled:C=!1,className:D,style:_,...k}=p(d,["size","density"]),A=y[u],B=a.useId(),[I,L]=a.useState(z??!1),M=P??I;return t(o.Root,{open:P,defaultOpen:z,onOpenChange:e=>{void 0===P&&L(e),T?.(e)},children:[e(o.Trigger,{render:h,delay:w,closeDelay:O,disabled:C,"aria-describedby":M?B:void 0}),e(o.Portal,{children:e(o.Positioner,{className:"neba-portal z-50 [outline:none]",side:g,align:v,sideOffset:j,children:t(o.Popup,{id:B,role:"tooltip",className:s(c,l[u],r[b][u],m[u],n[u],D??""),style:{...i(x,3,"solid"),..._},...k,children:[N?e(o.Arrow,{className:["data-[side=top]:bottom-[-1px]","data-[side=bottom]:top-[-1px] data-[side=bottom]:rotate-180","data-[side=left]:right-[-1px] data-[side=left]:-rotate-90","data-[side=right]:left-[-1px] data-[side=right]:rotate-90"].join(" "),children:e("svg",{width:A,height:A/2,viewBox:"0 0 10 5","aria-hidden":"true",className:"block",children:e("path",{d:"M0 0h10L5 5z",fill:"var(--n-fill)"})})}):null,f]})})})]})}
|
|
@@ -94,4 +94,4 @@ export interface TourProps extends Pick<NebaStyleProps, 'size' | 'color' | 'dens
|
|
|
94
94
|
* pointed at while the card is up, which is the difference between a tour and a
|
|
95
95
|
* sequence of dialogs.
|
|
96
96
|
*/
|
|
97
|
-
export declare function Tour(
|
|
97
|
+
export declare function Tour(rawProps: TourProps): React.JSX.Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{Popover as s}from"@base-ui/react/popover";import{Button as
|
|
1
|
+
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{Popover as s}from"@base-ui/react/popover";import{Button as i}from"../button/Button.js";import{boxPaddingXClasses as o,boxPaddingYClasses as a}from"../box/Box.js";import{actionMessages as r,fill as l,stepsMessages as c,useMessages as d}from"../../internal/i18n.js";import{CloseIcon as m}from"../../internal/icons.js";import{observeResize as u}from"../../internal/observe.js";import{cx as p,hasContent as f,metaTextClasses as h,radiusClasses as g,sheetBodyClasses as b,sheetHeaderGapClasses as v,sheetSectionGapClasses as x,sheetTitleClasses as w,surfaceClasses as y,surfaceSlots as N}from"../../internal/styles.js";import{useStyleDefaults as k}from"../../internal/defaults.js";const _=[y,"relative flex flex-col","border text-(--neba-fg) bg-(--n-panel-press)","[border-color:var(--n-line)]","[box-shadow:var(--neba-shadow-3),var(--neba-plate-glass)]","[outline:none]","[transition:opacity_var(--neba-duration)_var(--neba-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0"].join(" "),j={xs:"max-w-56",sm:"max-w-64",md:"max-w-80",lg:"max-w-96",xl:"max-w-lg"},z={xs:"xs",sm:"xs",md:"sm",lg:"sm",xl:"md"};function L({spot:t,radius:n,className:s}){return e("div",null===t?{"aria-hidden":"true",className:p("pointer-events-none fixed inset-0 z-40 bg-(--neba-scrim)",s)}:{"aria-hidden":"true",className:p("pointer-events-none fixed z-40 [box-shadow:0_0_0_9999px_var(--neba-scrim)]",s),style:{top:t.top,left:t.left,width:t.width,height:t.height,borderRadius:n}})}export function Tour(y){const{steps:S,open:C,defaultOpen:E=!1,onOpenChange:P,step:O,defaultStep:q=0,onStepChange:B,onFinish:F,mask:M=!0,skippable:R=!0,dismissible:T=!0,scrollIntoView:A=!0,locale:I,previousLabel:V,nextLabel:$,doneLabel:D,skipLabel:H,size:G="md",color:J="primary",density:K="default",className:Q,classNames:U}=k(y,["size","density","locale"]),W=d(c,I),X=d(r,I),[Y,Z]=n.useState(E),[ee,te]=n.useState(q),ne=C??Y,se=Math.min(O??ee,Math.max(0,S.length-1)),ie=S[se],[oe,ae]=n.useState(null),re=e=>{void 0===C&&Z(e),P?.(e)},le=e=>{void 0===O&&te(e),B?.(e)};if(n.useEffect(()=>{const e=ie?.target;if(!ne||!e)return;const t=document.querySelector(e);if(!(t instanceof HTMLElement))return;A&&t.scrollIntoView({block:"center",inline:"nearest",behavior:"smooth"});const n=ie?.padding??6;let s=0;const i=()=>{s=0;const i=t.getBoundingClientRect();ae({selector:e,spot:{top:i.top-n,left:i.left-n,width:i.width+2*n,height:i.height+2*n}})},o=()=>{0===s&&(s=requestAnimationFrame(i))};i();const a=u(t,o);return window.addEventListener("scroll",o,{passive:!0,capture:!0}),window.addEventListener("resize",o,{passive:!0}),()=>{0!==s&&cancelAnimationFrame(s),a(),window.removeEventListener("scroll",o,!0),window.removeEventListener("resize",o)}},[ne,ie?.target,ie?.padding,A]),0===S.length)return null;const ce=ne&&ie?.target&&oe?.selector===ie.target?oe.spot:null,de=0===se,me=se===S.length-1,ue=o[K][G],pe=a[K][G],fe=z[G],he=f(ie?.title)||f(ie?.content);return t(s.Root,{open:ne,onOpenChange:(e,t)=>{(e||T||"escape-key"!==t.reason)&&(e||"outside-press"!==t.reason&&"focus-out"!==t.reason)?re(e):t.cancel()},children:[ne&&M?e(L,{spot:ce,radius:ce?8:0,className:U?.mask}):null,e(s.Portal,{children:e(s.Positioner,{className:"neba-portal z-50 [outline:none]",side:ie?.side??"bottom",align:ie?.align??"center",sideOffset:10,collisionPadding:12,anchor:()=>{if(!ie?.target)return null;const e=document.querySelector(ie.target);return e instanceof Element?e:null},children:t(s.Popup,{className:p(_,g[G],b[G],x[G],j[G],ue,pe,Q),style:N(J,3),children:[he?t("div",{className:"flex items-start gap-3",children:[t("div",{className:`flex min-w-0 flex-1 flex-col ${v[G]}`,children:[f(ie?.title)?e(s.Title,{className:p("m-0 font-semibold",w[G],U?.title),children:ie?.title}):null,f(ie?.content)?e(s.Description,{className:p("m-0 min-w-0",U?.description),children:ie?.content}):null]}),T?e("button",{type:"button","aria-label":X.close,onClick:()=>re(!1),className:p("flex size-[1.6em] shrink-0 cursor-pointer items-center justify-center","rounded-full text-(--neba-muted-fg)","[&_svg]:size-[1.1em] [&_svg]:shrink-0","[transition:background-color_var(--neba-duration)_var(--neba-ease),color_var(--neba-duration)_var(--neba-ease)]","hover:bg-(--n-soft) hover:text-(--neba-fg)","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2",U?.close),children:e(m,{})}):null]}):null,t("div",{className:p("flex items-center gap-2",U?.footer),children:[e("span",{className:`shrink-0 tabular-nums text-(--neba-muted-fg) ${h[G]}`,children:l(W.position,{index:String(se+1),total:String(S.length)})}),t("div",{className:"ms-auto flex items-center gap-2",children:[R&&!me?e(i,{size:fe,variant:"text",color:"secondary",onClick:()=>re(!1),children:H??W.skip}):null,de?null:e(i,{size:fe,variant:"outline",color:J,onClick:()=>le(se-1),children:V??W.previous}),e(i,{size:fe,color:J,onClick:()=>me?(F?.(),void re(!1)):le(se+1),children:me?D??W.done:$??W.next})]})]})]})})})]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import*as a from"react";import{Checkbox as t}from"../checkbox/Checkbox.js";import{IconButton as s}from"../icon-button/IconButton.js";import{ScrollArea as r}from"../scroll-area/ScrollArea.js";import{TextField as i}from"../text-field/TextField.js";import{transferMessages as n,useMessages as o}from"../../internal/i18n.js";import{ArrowRightIcon as c}from"../../internal/icons.js";import{searchText as d}from"../../internal/search.js";import{cx as
|
|
1
|
+
"use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import*as a from"react";import{Checkbox as t}from"../checkbox/Checkbox.js";import{IconButton as s}from"../icon-button/IconButton.js";import{ScrollArea as r}from"../scroll-area/ScrollArea.js";import{TextField as i}from"../text-field/TextField.js";import{transferMessages as n,useMessages as o}from"../../internal/i18n.js";import{ArrowRightIcon as c}from"../../internal/icons.js";import{searchText as d}from"../../internal/search.js";import{cx as m,fieldRestClasses as h,hasContent as u,metaTextClasses as f,paddingXClasses as b,radiusClasses as p,surfaceSlots as g,toLength as v}from"../../internal/styles.js";import{useStyleDefaults as x}from"../../internal/defaults.js";const y={xs:"py-1",sm:"py-1.5",md:"py-2",lg:"py-2.5",xl:"py-3"},k={xs:"py-0.5",sm:"py-1",md:"py-1",lg:"py-1.5",xl:"py-2"};function S({title:a,rows:s,ticked:n,onTick:o,onTickAll:c,search:d,onSearch:m,searchable:u,disabled:v,height:x,emptyMessage:S,searchLabel:w,selectAllLabel:j,style:N}){const{size:z,variant:$="outline",color:A="primary",density:C="default"}=N,T=s.filter(e=>!e.disabled),L=T.filter(e=>n.has(e.value)),M=T.length>0&&L.length===T.length,V=L.length>0&&!M,_=b[C][z];return l("div",{className:["flex min-w-0 flex-col overflow-hidden",h[$],p[z]].join(" "),style:g(A,0),children:[l("div",{className:`flex items-center gap-2 border-b [border-color:var(--neba-border)] ${_} ${y[z]}`,children:[e(t,{size:z,color:A,checked:M,indeterminate:V,disabled:v||0===T.length,"aria-label":j,onCheckedChange:e=>c(!0===e)}),e("span",{className:`min-w-0 flex-1 truncate font-medium ${f[z]}`,children:a}),l("span",{className:`shrink-0 tabular-nums text-(--neba-muted-fg) ${f[z]}`,children:[L.length,"/",s.length]})]}),u?e("div",{className:`${_} ${y[z]}`,children:e(i,{size:z,color:A,density:C,fullWidth:!0,variant:"text",disabled:v,placeholder:w,"aria-label":w,value:d,onChange:e=>m(e.target.value)})}):null,e(r,{size:z,color:A,height:x,fade:!0,children:e("div",{className:`flex flex-col ${_} ${y[z]}`,children:0===s.length?e("span",{className:`text-(--neba-muted-fg) ${f[z]} ${k[z]}`,children:S}):s.map(l=>e(t,{size:z,color:A,className:k[z],label:l.label,checked:n.has(l.value),disabled:v||l.disabled,onCheckedChange:e=>o(l.value,!0===e)},l.value))})})]})}function w(e,l){const a=d(l);return""===a?e:e.filter(e=>"string"!=typeof e.label||d(e.label).includes(a))}export const Transfer=/*@__PURE__*/a.forwardRef(function(t,r){const{items:i,value:d,defaultValue:h,onValueChange:f,sourceLabel:b,targetLabel:p,searchable:g=!1,height:y=220,disabled:k=!1,locale:j,variant:N="outline",size:z="md",color:$="primary",density:A="default",className:C,...T}=x(t,["size","density","variant","locale"]),L=o(n,j),[M,V]=a.useState(h??[]),_=d??M,[B,F]=a.useState(()=>new Set),[I,R]=a.useState(""),[W,q]=a.useState(""),D=a.useMemo(()=>new Set(_),[_]),E=a.useMemo(()=>i.filter(e=>!D.has(e.value)),[i,D]),G=a.useMemo(()=>i.filter(e=>D.has(e.value)),[i,D]),H=(e,l)=>{F(a=>{const t=new Set(a);return l?t.add(e):t.delete(e),t})},J=(e,l)=>{F(a=>{const t=new Set(a);for(const a of e)a.disabled||(l?t.add(a.value):t.delete(a.value));return t})},K=(e,l)=>{const a=e.filter(e=>!e.disabled&&B.has(e.value));if(0===a.length)return;const t=new Set(a.map(e=>e.value)),s=l?i.filter(e=>D.has(e.value)||t.has(e.value)).map(e=>e.value):_.filter(e=>!t.has(e));F(e=>new Set([...e].filter(e=>!t.has(e)))),(e=>{void 0===d&&V(e),f?.(e)})(s)},O=w(E,I),P=w(G,W),Q=O.some(e=>!e.disabled&&B.has(e.value)),U=P.some(e=>!e.disabled&&B.has(e.value)),X=v(y),Y={variant:N,size:z,color:$,density:A};return l("div",{ref:r,className:m("grid w-full items-center gap-3","[grid-template-columns:minmax(0,1fr)_auto_minmax(0,1fr)]",C??""),...T,children:[e(S,{title:u(b)?b:L.source,rows:O,ticked:B,onTick:H,onTickAll:e=>J(O,e),search:I,onSearch:R,searchable:g,disabled:k,height:X,emptyMessage:L.empty,searchLabel:L.search,selectAllLabel:L.selectAll,style:Y}),l("div",{className:"flex flex-col gap-2",children:[e(s,{size:z,color:$,variant:"text"===N?"text":"outline",label:L.toTarget,disabled:k||!Q,onClick:()=>K(O,!0),icon:e(c,{})}),e(s,{size:z,color:$,variant:"text"===N?"text":"outline",label:L.toSource,disabled:k||!U,onClick:()=>K(P,!1),icon:e("span",{className:"flex rotate-180",children:e(c,{})})})]}),e(S,{title:u(p)?p:L.target,rows:P,ticked:B,onTick:H,onTickAll:e=>J(P,e),search:W,onSearch:q,searchable:g,disabled:k,height:X,emptyMessage:L.empty,searchLabel:L.search,selectAllLabel:L.selectAll,style:Y})]})});
|