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.
- package/dist/a2ui/adapter-catalog.json +1 -1
- package/dist/a2ui/catalog.json +2 -2
- package/dist/components/accordion/Accordion.js +1 -1
- package/dist/components/agent-steps/AgentSteps.js +1 -1
- package/dist/components/alert/Alert.js +1 -1
- package/dist/components/anchor/Anchor.js +1 -1
- package/dist/components/animate-counter/AnimateCounter.js +1 -1
- package/dist/components/animate-headline/AnimateHeadline.js +1 -1
- package/dist/components/animate-lighting/AnimateLighting.js +1 -1
- package/dist/components/animate-marquee/AnimateMarquee.js +1 -1
- package/dist/components/animate-scramble/AnimateScramble.js +1 -1
- package/dist/components/animate-typing/AnimateTyping.js +1 -1
- package/dist/components/app-logo/AppLogo.js +1 -1
- package/dist/components/approval/Approval.js +1 -1
- package/dist/components/aspect-ratio/AspectRatio.js +1 -1
- package/dist/components/avatar/Avatar.js +1 -1
- package/dist/components/badge/Badge.js +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/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.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/checkbox/index.d.ts +1 -1
- package/dist/components/checkbox-group/CheckboxGroup.d.ts +84 -0
- package/dist/components/checkbox-group/CheckboxGroup.js +1 -0
- package/dist/components/checkbox-group/index.d.ts +2 -0
- package/dist/components/checkbox-group/index.js +1 -0
- package/dist/components/chip/Chip.d.ts +32 -3
- 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 +11 -0
- package/dist/components/combobox/Combobox.js +1 -1
- package/dist/components/combobox/index.d.ts +1 -1
- package/dist/components/command-palette/CommandPalette.d.ts +21 -5
- package/dist/components/command-palette/CommandPalette.js +1 -1
- package/dist/components/command-palette/CommandPaletteSheet.d.ts +27 -0
- package/dist/components/command-palette/CommandPaletteSheet.js +1 -0
- package/dist/components/command-palette/index.d.ts +1 -1
- package/dist/components/confirm/Confirm.d.ts +7 -5
- package/dist/components/confirm/Confirm.js +1 -1
- package/dist/components/data-list/DataList.js +1 -1
- package/dist/components/data-table/DataTable.js +1 -1
- package/dist/components/data-table/RowsPerPage.d.ts +43 -0
- package/dist/components/data-table/RowsPerPage.js +1 -0
- 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.js +1 -1
- package/dist/components/dialog/index.d.ts +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/fieldset/Fieldset.d.ts +12 -1
- package/dist/components/fieldset/Fieldset.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-action-button/index.d.ts +1 -0
- package/dist/components/floating-bottom-navigation/FloatingBottomNavigation.js +1 -1
- package/dist/components/footer/Footer.js +1 -1
- package/dist/components/form/Form.d.ts +8 -2
- package/dist/components/form/Form.js +1 -1
- package/dist/components/gallery/Gallery.js +1 -1
- package/dist/components/gauge-chart/GaugeChart.js +1 -1
- package/dist/components/header/Header.js +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.js +1 -1
- package/dist/components/how-to-steps/HowToSteps.d.ts +3 -0
- package/dist/components/how-to-steps/HowToSteps.js +1 -1
- package/dist/components/image/Image.js +1 -1
- package/dist/components/inline-citation/InlineCitation.d.ts +24 -0
- package/dist/components/inline-citation/InlineCitation.js +1 -1
- package/dist/components/list/List.d.ts +9 -0
- package/dist/components/list/List.js +1 -1
- package/dist/components/menu/Menu.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/navigation-menu/NavigationMenu.d.ts +2 -1
- package/dist/components/navigation-menu/NavigationMenu.js +1 -1
- package/dist/components/number-field/NumberField.js +1 -1
- package/dist/components/number-field/index.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.js +1 -1
- package/dist/components/pill/Pill.js +1 -1
- package/dist/components/popover/Popover.js +1 -1
- 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/prompt-input/PromptInput.js +1 -1
- package/dist/components/provider/NebaProvider.d.ts +3 -2
- package/dist/components/provider/NebaProvider.js +1 -1
- package/dist/components/radio-group/RadioGroup.d.ts +13 -0
- package/dist/components/radio-group/RadioGroup.js +1 -1
- package/dist/components/radio-group/index.d.ts +1 -1
- package/dist/components/rating/Rating.js +1 -1
- package/dist/components/reasoning/Reasoning.js +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/segmented-button/SegmentedButton.js +1 -1
- package/dist/components/select/Select.d.ts +12 -0
- package/dist/components/select/Select.js +1 -1
- package/dist/components/select/index.d.ts +1 -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/slider/index.d.ts +1 -1
- package/dist/components/sources/Sources.js +1 -1
- package/dist/components/sparkline/Sparkline.d.ts +7 -0
- 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/streaming-text/StreamingText.d.ts +10 -6
- package/dist/components/streaming-text/StreamingText.js +1 -1
- package/dist/components/switch/Switch.js +1 -1
- package/dist/components/switch/index.d.ts +1 -1
- package/dist/components/table/Table.js +1 -1
- package/dist/components/table/index.d.ts +1 -1
- package/dist/components/tabs/Tabs.js +1 -1
- package/dist/components/text-field/TextField.js +1 -1
- package/dist/components/text-field/index.d.ts +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.js +1 -1
- package/dist/components/toast/Toast.d.ts +38 -5
- package/dist/components/toast/Toast.js +1 -1
- package/dist/components/toast/index.d.ts +2 -2
- package/dist/components/toast/index.js +1 -1
- package/dist/components/toggle/Toggle.js +1 -1
- package/dist/components/toggle-group/ToggleGroup.js +1 -1
- package/dist/components/tool-call/ToolCall.js +1 -1
- package/dist/components/toolbar/Toolbar.js +1 -1
- package/dist/components/tooltip/Tooltip.js +1 -1
- package/dist/components/tour/Tour.js +1 -1
- package/dist/components/tour/index.d.ts +1 -1
- package/dist/components/transfer/Transfer.d.ts +7 -0
- package/dist/components/transfer/Transfer.js +1 -1
- package/dist/components/tree-select/TreeSelect.js +1 -1
- package/dist/components/tree-view/TreeView.js +1 -1
- package/dist/components/window-pane/WindowPane.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/internal/animate.d.ts +34 -2
- package/dist/internal/animate.js +1 -1
- package/dist/internal/cache.d.ts +7 -1
- package/dist/internal/cache.js +1 -1
- package/dist/internal/calendar.d.ts +40 -1
- package/dist/internal/calendar.js +1 -1
- package/dist/internal/chart-frame.d.ts +86 -8
- package/dist/internal/chart-frame.js +1 -1
- package/dist/internal/chart-line.js +1 -1
- package/dist/internal/chart.d.ts +13 -0
- package/dist/internal/chart.js +1 -1
- package/dist/internal/checkbox-group.d.ts +29 -0
- package/dist/internal/checkbox-group.js +1 -0
- package/dist/internal/data-table.d.ts +7 -1
- package/dist/internal/data-table.js +1 -1
- package/dist/internal/date.d.ts +10 -0
- package/dist/internal/date.js +1 -1
- package/dist/internal/defaults.d.ts +14 -2
- package/dist/internal/idle.d.ts +10 -0
- package/dist/internal/idle.js +1 -0
- package/dist/internal/link.d.ts +4 -3
- package/dist/internal/media.js +1 -1
- package/dist/internal/observe.d.ts +4 -0
- package/dist/internal/observe.js +1 -1
- package/dist/internal/page-layout.d.ts +30 -2
- package/dist/internal/page-layout.js +1 -1
- package/dist/internal/picker.js +1 -1
- package/dist/internal/progress.d.ts +17 -0
- package/dist/internal/progress.js +1 -1
- package/dist/internal/refs.d.ts +18 -0
- package/dist/internal/refs.js +1 -0
- package/dist/internal/run.d.ts +34 -19
- package/dist/internal/run.js +1 -1
- package/dist/internal/sizer.d.ts +9 -4
- package/dist/internal/sizer.js +1 -1
- package/dist/internal/styles.d.ts +27 -1
- package/dist/internal/styles.js +1 -1
- package/dist/internal/tile.d.ts +34 -0
- package/dist/internal/tile.js +1 -0
- package/dist/internal/wheel.d.ts +24 -1
- package/dist/internal/wheel.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +369 -62
- package/dist/types.d.ts +4 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,Fragment as t,jsxs as a}from"react/jsx-runtime";import*as n from"react";import{useRender as i}from"@base-ui/react/use-render";import{barMinHeightClasses as r,BottomNavigationContext as l}from"../../internal/bottom-navigation.js";import{safeHref as o,safeRel as s}from"../../internal/link.js";import{NewTabNote as d}from"../../internal/new-tab.js";import{cx as c,hasContent as m,iconSizeClasses as u,metaTextClasses as p,paddingXClasses as f,radiusClasses as g,srOnlyClasses as b,surfaceClasses as v,surfaceSlots as x,transitionClasses as h}from"../../internal/styles.js";import{useStyleDefaults as y}from"../../internal/defaults.js";const w={solid:
|
|
1
|
+
"use client";import{jsx as e,Fragment as t,jsxs as a}from"react/jsx-runtime";import*as n from"react";import{useRender as i}from"@base-ui/react/use-render";import{barMinHeightClasses as r,BottomNavigationContext as l}from"../../internal/bottom-navigation.js";import{safeHref as o,safeRel as s}from"../../internal/link.js";import{NewTabNote as d}from"../../internal/new-tab.js";import{cx as c,hasContent as m,iconSizeClasses as u,metaTextClasses as p,paddingXClasses as f,radiusClasses as g,srOnlyClasses as b,surfaceClasses as v,surfaceSlots as x,transitionClasses as h}from"../../internal/styles.js";import{useStyleDefaults as y}from"../../internal/defaults.js";const w={solid:v+" text-(--neba-fg) bg-(--n-panel-hover) [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"},N={static:"",sticky:"sticky bottom-0 z-20",fixed:"fixed inset-x-0 bottom-0 z-30"},z={default:{xs:"p-1",sm:"p-1",md:"p-1.5",lg:"p-2",xl:"p-2.5"},compact:{xs:"p-0.5",sm:"p-0.5",md:"p-1",lg:"p-1",xl:"p-1.5"}},j={xs:"gap-0.5",sm:"gap-0.5",md:"gap-1",lg:"gap-1",xl:"gap-1.5"};export const BottomNavigation=/*@__PURE__*/n.forwardRef(function BottomNavigation(t,a){const{variant:o="outline",size:s="md",color:d="primary",density:m="default",elevation:u=0,value:p,defaultValue:f=null,onValueChange:b,position:v="fixed",labels:j="all",divider:k=!0,safeArea:C=!0,disabled:B=!1,label:I,render:R,className:V,style:_,children:A,...D}=y(t,["size","density","variant"]),[F,M]=n.useState(f),P=void 0!==p,S=P?p:F,q=n.useCallback(e=>{P||M(e),b?.(e)},[P,b]),E=n.useMemo(()=>({value:S??null,change:q,size:s,density:m,labels:j,disabled:B,floating:!1}),[S,q,s,m,j,B]),G=c("w-full min-w-0","static"===v?g[s]:"",w[o],"outline"===o&&"static"===v?"border [border-color:var(--n-line)]":"",k?"border-t [border-color:var(--n-line)]":"",N[v],C&&"static"!==v?"pb-[env(safe-area-inset-bottom)]":"",h,V);return i({render:R??e("nav",{}),ref:a,props:{"aria-label":I,className:G,style:{...x(d,u),..._},children:e(l.Provider,{value:E,children:e("div",{className:c("flex w-full items-stretch",r[s],z[m][s]),children:A})}),...D}})});export const BottomNavigationItem=/*@__PURE__*/n.forwardRef(function BottomNavigationItem({value:i,icon:r,href:v,target:x,rel:y,disabled:w=!1,className:N,children:z,onClick:k,...C},B){const I=n.useContext(l),R=w||I.disabled,V=null!==I.value&&I.value===i,_="all"===I.labels||"selected"===I.labels&&V,A=c("neba-nav-item flex min-w-0 flex-col items-center justify-center py-1.5 no-underline",I.floating?c("relative z-10",f[I.density][I.size],"rounded-full"):c("flex-1 px-1",g[I.size]),j[I.size],"[-webkit-tap-highlight-color:transparent] [touch-action:manipulation]",h,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]",R?"cursor-not-allowed text-(--neba-disabled-fg)":V?I.floating?"cursor-pointer font-medium text-(--n-on-tint)":"cursor-pointer font-medium text-(--n-on-tint) bg-(--n-soft) hover:bg-(--n-soft-hover)":"cursor-pointer text-(--neba-muted-fg) hover:text-(--neba-fg) hover:bg-(--n-panel-hover)",N),D=a(t,{children:[m(r)?e("span",{className:c("flex shrink-0 items-center justify-center",u[I.size]),children:r}):null,m(z)?I.floating&&"selected"===I.labels?e("span",{"data-drawn":_?"":void 0,className:c("grid justify-items-center [grid-template-rows:1fr]","[transition-property:grid-template-columns,opacity]","[transition-duration:var(--neba-duration)]","[transition-timing-function:var(--neba-ease)]","motion-reduce:[transition-duration:0ms]",_?"[grid-template-columns:1fr] opacity-100":"[grid-template-columns:0fr] opacity-0"),children:e("span",{className:c("min-w-0 truncate leading-tight",p[I.size]),children:z})}):e("span",{"data-drawn":_?"":void 0,className:_?c("max-w-full truncate leading-tight",p[I.size]):"selected"===I.labels?c("max-w-full truncate leading-tight opacity-0",p[I.size]):b,children:z}):null]}),F=e=>{R?e.preventDefault():(I.change(i),k?.(e))},M=o(v);return M?a("a",{ref:B,"data-nav-item":"",href:R?void 0:M,"aria-current":V?"page":void 0,"aria-disabled":R||void 0,className:A,onClick:F,target:x,rel:s(x,y),...C,children:[D,e(d,{target:x})]}):e("button",{ref:B,"data-nav-item":"",type:"button",disabled:R,"aria-current":V?"page":void 0,className:A,onClick:F,...C,children:D})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as t,Fragment as
|
|
1
|
+
"use client";import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import*as r from"react";import{useLayoutEffectOnClient as a}from"../../internal/layout-effect.js";import{useRender as s}from"@base-ui/react/use-render";import{safeHref as l,safeRel as i}from"../../internal/link.js";import{NewTabNote as o}from"../../internal/new-tab.js";import{breadcrumbMessages as c,useMessages as d}from"../../internal/i18n.js";import{ArrowRightIcon as m,ChevronIcon as u,EllipsisIcon as p}from"../../internal/icons.js";import{controlTextClasses as f,cx as h,gapClasses as x,hasContent as b,iconClasses as g,radiusClasses as y,transitionClasses as v}from"../../internal/styles.js";import{useStyleDefaults as N}from"../../internal/defaults.js";const j=/*@__PURE__*/r.createContext({size:"md",last:!1}),k={default:{xs:"gap-1",sm:"gap-1.5",md:"gap-2",lg:"gap-2.5",xl:"gap-3"},compact:{xs:"gap-0.5",sm:"gap-1",md:"gap-1",lg:"gap-1.5",xl:"gap-2"}},w={xs:y.xs,sm:y.xs,md:y.xs,lg:y.sm,xl:y.sm};const C=["chevron","arrow","slash","dot"];function B(e){return"string"==typeof e||"number"==typeof e?String(e):Array.isArray(e)?e.map(B).join(""):r.isValidElement(e)?B(e.props.children):""}function I(e,t){if(!t)return e;try{return new URL(e,t).href}catch{return e}}function $(e,t){const n=e.map((e,n)=>{const{children:r}=e.props,a=l(e.props.href);return{"@type":"ListItem",position:n+1,name:B(r),...a?{item:I(a,t)}:null}});return JSON.stringify({"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:n}).replace(/</g,"\\u003c")}export const Breadcrumb=/*@__PURE__*/r.forwardRef(function Breadcrumb(n,s){const{size:l="md",color:i="primary",density:o="default",separator:x="chevron",maxItems:b,itemsBeforeCollapse:y=1,itemsAfterCollapse:w=1,expandable:I=!0,keepMounted:E=!1,locale:L,label:M,expandLabel:S,structuredData:_=!1,baseUrl:z,className:A,style:R,children:q,...F}=N(n,["size","density","locale"]),T=d(c,L),U=r.Children.toArray(q).filter(r.isValidElement),V=U.length,D=U.map(e=>`${e.key??""}\0${e.props.href??""}\0${B(e.props.children)}`).join(""),[H,J]=r.useState(null),O=H===D,P=r.useRef(null),G=r.useRef(!1);a(()=>{if(!O||!G.current)return;G.current=!1;const e=P.current?.querySelectorAll(":scope > li:not([aria-hidden])")[Math.max(0,y)];e?.querySelector("a, button")?.focus()},[O,y]);const K=U.some(e=>!0===e.props.current),Q=!O&&void 0!==b&&V>Math.max(b,1)&&V-y-w>1,W=Math.max(0,y),X=V-Math.max(0,w),Y=[];U.forEach((e,t)=>{const n=Q&&t>=W&&t<X;Q&&t===W&&Y.push({step:null,at:-1,folded:!1}),n?E&&Y.push({step:r.cloneElement(e,{hidden:!0}),at:t,folded:n}):Y.push({step:e,at:t,folded:n})});const Z=Y.reduce((e,t)=>t.folded?e:t.step?t.at:-1,-1),ee="string"==typeof(te=x)&&C.includes(te)?function(t){switch(t){case"chevron":return e("span",{className:"flex -rotate-90 items-center rtl:rotate-90",children:e(u,{})});case"arrow":return e("span",{className:"flex items-center rtl:rotate-180",children:e(m,{})});case"slash":return e("span",{className:"opacity-70",children:"/"});case"dot":return e("span",{className:"opacity-70",children:"·"});default:return null}}(x):x;var te;const ne=h("inline-flex items-center rounded-(--neba-radius-xs) px-0.5","text-(--neba-muted-fg)",v,g,I?h("cursor-pointer hover:bg-(--n-soft) hover:text-(--n-on-tint)","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-1"):"");return t("nav",{ref:s,"aria-label":M??T.label,className:h("flex",f[l],g,A),style:{"--n-accent":`var(--neba-${i}-accent)`,"--n-on-tint":`var(--neba-${i}-on-tint)`,"--n-soft":`var(--neba-${i}-soft)`,"--n-ring":`var(--neba-${i}-ring)`,...R},...F,children:[_&&V>0?e("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:$(U,z)}}):null,e("ol",{ref:P,role:"list",className:h("flex list-none flex-wrap items-center p-0",k[o][l]),children:Y.map(({step:n,at:a,folded:s},i)=>t(r.Fragment,{children:[i>0?e("li",{"aria-hidden":"true",hidden:s||void 0,className:"flex shrink-0 items-center text-(--neba-muted-fg) select-none [&[hidden]]:hidden",children:ee}):null,n?e(j.Provider,{value:{size:l,locale:L,last:!K&&a===Z},children:n}):e("li",{className:"flex shrink-0 items-center",children:I?e("button",{type:"button",className:ne,"aria-label":S??T.expand,onClick:e=>{G.current=e.currentTarget===document.activeElement,J(D)},children:e(p,{})}):e("span",{className:ne,"aria-hidden":"true",children:e(p,{})})})]},n?n.key??a:"fold"))})]})});export const BreadcrumbItem=/*@__PURE__*/r.forwardRef(function BreadcrumbItem({href:a,onClick:c,render:d,target:m,rel:u,startIcon:p,endIcon:f,current:g,disabled:y=!1,className:N,children:k,...C},B){const{size:I,locale:$,last:E}=r.useContext(j),L=l(a),M=g??E,S=Boolean(L||c||d)&&!M&&!y,_=S&&Boolean(L||d),z=h("inline-flex min-w-0 items-center px-1 no-underline",x[I],w[I],v,y?"cursor-not-allowed text-(--neba-disabled-fg)":M?"font-medium text-(--neba-fg)":S?h("cursor-pointer text-(--neba-muted-fg)","hover:bg-(--n-soft) hover:text-(--n-on-tint)","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-1"):"text-(--neba-muted-fg)"),A=t(n,{children:[b(p)?e("span",{className:"flex h-[1lh] shrink-0 items-center",children:p}):null,e("span",{className:"truncate",children:k}),b(f)?e("span",{className:"flex h-[1lh] shrink-0 items-center",children:f}):null]}),R=s({render:d??e("a",{}),props:{href:L,target:m,rel:i(m,u),className:z,onClick:c,children:t(n,{children:[A,e(o,{target:m,locale:$})]})}});return e("li",{ref:B,className:h("flex min-w-0 items-center [&[hidden]]:hidden",N),...C,children:_?R:S?e("button",{type:"button",className:z,onClick:c,children:A}):e("span",{className:z,"aria-current":M?"page":void 0,"aria-disabled":y||void 0,children:A})})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,Fragment as
|
|
1
|
+
"use client";import{jsx as e,Fragment as n,jsxs as o}from"react/jsx-runtime";import*as r from"react";import{Button as t}from"@base-ui/react/button";import{useRender as a}from"@base-ui/react/use-render";import{trackPointer as l}from"../../internal/glow.js";import{ButtonGroupContext as s}from"../../internal/button-group.js";import{SpinnerIcon as i}from"../../internal/icons.js";import{controlHeightClasses as d,controlSlots as v,controlSquareClasses as b,controlTextClasses as p,cx as c,disabledClasses as m,focusRingClasses as x,gapClasses as u,iconClasses as g,paddingXClasses as f,pressTransitionClasses as h,radiusClasses as $,readOnlyFilterClasses as w,surfaceClasses as y,transitionClasses as j}from"../../internal/styles.js";import{useStyleDefaults as k}from"../../internal/defaults.js";const z={xs:`${d.xs} ${u.xs} ${$.xs} ${p.xs}`,sm:`${d.sm} ${u.sm} ${$.sm} ${p.sm}`,md:`${d.md} ${u.md} ${$.md} ${p.md}`,lg:`${d.lg} ${u.lg} ${$.lg} ${p.lg}`,xl:`${d.xl} ${u.xl} ${$.xl} ${p.xl}`},B={xs:`${b.xs} px-0`,sm:`${b.sm} px-0`,md:`${b.md} px-0`,lg:`${b.lg} px-0`,xl:`${b.xl} px-0`},C="relative inline-flex shrink-0 select-none items-center justify-center no-underline whitespace-nowrap align-middle font-medium leading-none [-webkit-tap-highlight-color:transparent] [touch-action:manipulation] "+j+" "+h+" "+x+" "+g,D={solid:y+" text-(--n-on-solid) bg-(--n-fill) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:y+" 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-transparent"},P={solid:"hover:bg-(--n-fill-hover) hover:[box-shadow:var(--n-elev-hover),var(--neba-plate-solid)] active:bg-(--n-fill-active) active:[box-shadow:var(--n-elev-press),var(--neba-plate-solid)]",outline:"hover:bg-(--n-panel-hover) hover:[border-color:var(--n-line-hover)] hover:[box-shadow:var(--n-elev-hover),var(--neba-plate-glass)] active:bg-(--n-panel-press) active:[box-shadow:var(--n-elev-press),var(--neba-plate-glass)]",text:"hover:bg-(--n-soft) active:bg-(--n-soft-hover)"},W={solid:y+" "+w+" cursor-default text-(--n-on-solid) bg-(--n-fill) [box-shadow:var(--neba-plate-solid)]",outline:y+" "+w+" cursor-default border text-(--n-on-tint) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--neba-plate-glass)]",text:`${w} cursor-default text-(--n-on-tint) bg-transparent`};export const Button=/*@__PURE__*/r.forwardRef(function Button(d,b){const p=r.useContext(s),{variant:x,size:u,color:g,density:h,elevation:$,startIcon:w,endIcon:y,loading:j=!1,readOnly:I=!1,fullWidth:M=!1,disabled:N,focusableWhenDisabled:F=!1,render:O,className:R,style:q,children:A,onClick:E,onPointerMove:G,...H}=k(d,["size","density","variant"],p),J=x??p?.variant??"solid",K=u??p?.size??"md",L=g??p?.color??"primary",Q=h??p?.density??"default",S=$??p?.elevation??0,T=N??p?.disabled??!1,U=j||I,V=c(C,z[K],null==A||!1===A?B[K]:f[Q][K],T?m[J]:I?W[J]:D[J],T||U?"":P[J]+" neba-glow cursor-pointer",j?"cursor-progress":"",M?"w-full":"",R??"");return a({render:O??e(t,{disabled:T,focusableWhenDisabled:F}),ref:b,props:{className:V,style:{...v(L,S,J),...q},...U?{"aria-disabled":!0}:null,"aria-busy":j||void 0,"data-loading":j||void 0,"data-readonly":I||void 0,onClick:e=>{if(U)return e.preventDefault(),void e.stopPropagation();E?.(e)},onPointerMove:l(G,!T&&!U),...H,children:o(n,{children:[j?e(i,{}):w,A,y]})}})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e}from"react/jsx-runtime";import*as o from"react";import{ButtonGroupContext as
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import*as o from"react";import{ButtonGroupContext as t}from"../../internal/button-group.js";import{cx as i}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"},l={horizontal:"[&>*:not(:first-child)]:-ms-px",vertical:"[&>*:not(:first-child)]:-mt-px"};export const ButtonGroup=/*@__PURE__*/o.forwardRef(function ButtonGroup(s,a){const{variant:d,size:c,color:f,density:u,elevation:m,orientation:h="horizontal",disabled:v,fullWidth:p=!1,className:x,children:z,...b}=n(s,["size","density","variant"]),j=o.useMemo(()=>({variant:d,size:c,color:f,density:u,elevation:m,disabled:v}),[d,c,f,u,m,v]);return e(t.Provider,{value:j,children:e("div",{ref:a,role:"group",className:i("align-middle [&>*]:relative [&>*:hover]:z-10 [&>*:focus-visible]:z-10 [&>*]:shrink-0","vertical"===h?"flex-col":"flex-row",r[h],"outline"===(d??"solid")?l[h]:"",p?"flex w-full [&>*]:flex-1":"inline-flex",x??""),...b,children:z})})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e}from"react/jsx-runtime";import*as
|
|
1
|
+
"use client";import{jsx as e}from"react/jsx-runtime";import*as t from"react";import{askOnEveryRender as n,Calendar as r,usePickerLabels as a}from"../../internal/calendar.js";import{compareDay as l,isSameDay as o,isValidDate as s,localeWeekStart as i,makeDate as d,startOfMonth as u,startOfUnit as c,toISOMonth as m,toMonthOf as f,today as g}from"../../internal/date.js";import{popupPaddingClasses as h}from"../../internal/picker.js";import{cx as p,radiusClasses as b,surfaceClasses as v,surfaceSlots as y}from"../../internal/styles.js";import{useStyleDefaults as D}from"../../internal/defaults.js";import{useHydrated as S,useIntlLocale as j}from"../../internal/media.js";const x={single:null,multiple:[],range:{start:null,end:null}};function C(e,t){if("multiple"===e)return t??[];if("range"===e){const e=t??x.range;return[e.start,e.end]}return[t]}export const Calendar=/*@__PURE__*/t.forwardRef(function Calendar(w,k){const{mode:N="single",value:O,defaultValue:z,onValueChange:M,size:R="md",color:E="primary",elevation:V=0,bordered:$=!0,month:q,defaultMonth:A,onMonthChange:F,granularity:I="day",minDate:B,maxDate:G,shouldDisableDate:H,locale:J,weekStartsOn:K,showOutsideDays:L=!0,renderDay:P,labels:Q,className:T,style:U,...W}=D(w,["size","locale"]),X=a(Q,J),Y=j(J),Z=K??i(Y),[_,ee]=t.useState(()=>z??x[N]),te=void 0!==O?O:_,ne=C(N,te).find(s),re=S(),ae=t.useId(),[le,oe]=t.useState(()=>u(ne??A??(re?null:function(e){if("undefined"==typeof document)return null;const t=document.querySelector(`[data-neba-calendar="${CSS.escape(e)}"]`)?.getAttribute("data-month"),n=t?/^(\d{4,})-(\d{2})$/.exec(t):null;return n?d(Number(n[1]),Number(n[2])-1,1):null}(ae))??g())),se=q??le,[ie]=t.useState(()=>!re&&void 0===ne&&void 0===A&&void 0===q),de=t.useRef(ie),ue=t.useRef(!1);t.useEffect(()=>{re&&de.current&&(de.current=!1,ue.current||oe(f(g())))},[re]);const ce=e=>{void 0===O&&ee(e),M?.(e)},me="range"===N?te??x.range:x.range;return e("div",{ref:k,className:p("inline-block",$?p(v,"border bg-(--n-panel-press) [border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]",b[R],h[R]):"[box-shadow:var(--n-elev)]",T),style:{...y(E,V),...U},"data-neba-calendar":ae,"data-month":m(se),...W,children:e(r,{size:R,color:E,locale:J,weekStartsOn:Z,month:se,onMonthChange:e=>{ue.current=!0,void 0===q&&oe(e),F?.(e)},selected:C(N,te),rangeStart:me.start,rangeEnd:me.end,onSelect:e=>{const t=c(e,I);if("multiple"===N){const e=te??[],n=e.filter(e=>!o(e,t));return void ce(n.length===e.length?[...e,t]:n)}if("range"===N){const e=te??x.range;return!s(e.start)||s(e.end)?void ce({start:t,end:null}):void ce(l(t,e.start)<0?{start:t,end:null}:{start:e.start,end:t})}ce(t)},granularity:I,minDate:B,maxDate:G,shouldDisableDate:n(H),showOutsideDays:L,renderDay:P,multiselectable:"single"!==N,monthFromClock:ie,labels:X})})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as r from"react";import{IconButton as n}from"../icon-button/IconButton.js";import{childKey as a}from"../../internal/children.js";import{carouselMessages as l,fillMessage as o,useMessages as
|
|
1
|
+
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as r from"react";import{IconButton as n}from"../icon-button/IconButton.js";import{childKey as a}from"../../internal/children.js";import{carouselMessages as l,fillMessage as o,useMessages as s}from"../../internal/i18n.js";import{ChevronIcon as i,PauseIcon as c,PlayIcon as u}from"../../internal/icons.js";import{usePrefersReducedMotion as d}from"../../internal/media.js";import{observeVisibility as m}from"../../internal/observe.js";import{cx as f,radiusClasses as p,srOnlyClasses as b,surfaceClasses as v,surfaceSlots as h,transitionClasses as g}from"../../internal/styles.js";import{useStyleDefaults as x}from"../../internal/defaults.js";const w={solid:v+" text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:v+" 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"},y={xs:"start-1 end-1",sm:"start-1.5 end-1.5",md:"start-2 end-2",lg:"start-3 end-3",xl:"start-4 end-4"},N={xs:{rest:"h-1 w-1",current:"h-1 w-3",gap:"gap-1"},sm:{rest:"h-1 w-1",current:"h-1 w-3.5",gap:"gap-1"},md:{rest:"h-1.5 w-1.5",current:"h-1.5 w-4",gap:"gap-1.5"},lg:{rest:"h-1.5 w-1.5",current:"h-1.5 w-5",gap:"gap-2"},xl:{rest:"h-2 w-2",current:"h-2 w-6",gap:"gap-2"}},j={xs:"0.25rem",sm:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.5rem"};export const Carousel=/*@__PURE__*/r.forwardRef(function Carousel(v,C){const{variant:S="outline",size:k="md",color:L="primary",density:M="default",elevation:T=0,value:_,defaultValue:z=0,onValueChange:E,loop:I=!0,autoPlay:P=!1,interval:R=5e3,arrows:W=!0,indicators:$=!0,locale:B,label:D,previousLabel:F,nextLabel:V,pauseLabel:A,playLabel:q,slideLabel:G,className:H,style:J,children:K,onPointerEnter:O,onPointerLeave:Q,onFocus:U,onBlur:X,...Y}=x(v,["size","density","variant","locale"]),Z=s(l,B),ee=G??((e,t)=>o(Z.slide,{index:String(e),total:String(t)})),te=r.Children.toArray(K),re=te.length,[ne,ae]=r.useState(z),le=Math.min(Math.max(_??ne,0),Math.max(re-1,0)),[oe]=r.useState(le),se=r.useRef(null),ie=r.useRef(!1),ce=r.useRef(!1),ue=r.useRef(!1),[de,me]=r.useState(!1),[fe,pe]=r.useState(!1),be=de||fe,[ve,he]=r.useState(!1),ge=r.useCallback((e,t=!1)=>{if(0===re)return;const r=I?(e%re+re)%re:Math.min(Math.max(e,0),re-1);ie.current=t,void 0===_&&ae(r),r!==le&&E?.(r)},[re,I,_,le,E]);r.useEffect(()=>{if(ie.current)return void(ie.current=!1);const e=!ce.current;if(ce.current=!0,e&&0===le)return;const t=se.current;if(t){const r="rtl"===getComputedStyle(t).direction?-1:1;t.scrollTo({left:r*le*t.clientWidth,...e?{behavior:"instant"}:null})}ue.current=!0;const r=window.setTimeout(()=>{ue.current=!1},700);return()=>window.clearTimeout(r)},[le]);const xe=d(),[we,ye]=r.useState(!1),Ne=P&&!ve&&!xe&&re>1;r.useEffect(()=>{const e=se.current;if(Ne&&e)return m(e,0,e=>ye(!e))??void 0},[Ne]),r.useEffect(()=>{if(!P||ve||be||xe||we||re<2)return;const e=window.setInterval(()=>{document.hidden||ge(le+1)},R);return()=>window.clearInterval(e)},[P,ve,be,xe,we,re,R,le,ge]);const je=le<=0,Ce=le>=re-1,Se=P&&!xe&&re>1,ke=$&&re>1;return t("div",{ref:C,role:"region","aria-roledescription":"carousel","aria-label":D??Z.label,className:f("flex flex-col",H??""),style:{...h(L,T),...J},onPointerEnter:e=>{me(!0),O?.(e)},onPointerLeave:e=>{me(!1),Q?.(e)},onFocus:e=>{pe(!0),U?.(e)},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||pe(!1),X?.(e)},...Y,children:[t("div",{className:"relative min-w-0 overflow-hidden "+p[k]+" "+w[S]+" "+g,children:[e("div",{ref:se,tabIndex:0,role:"group","aria-label":D??Z.label,className:"flex min-w-0 snap-x snap-mandatory overflow-x-auto scroll-smooth motion-reduce:scroll-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px]",onScroll:()=>{const e=se.current;if(ue.current||!e||0===e.clientWidth)return;const t=Math.round(Math.abs(e.scrollLeft)/e.clientWidth);t!==le&&t>=0&&t<re&&ge(t,!0)},children:te.map((t,r)=>e("div",{role:"group","aria-roledescription":"slide","aria-label":ee(r+1,re),className:"w-full shrink-0 grow-0 basis-full snap-start",style:r===oe&&oe>0?{scrollInitialTarget:"nearest"}:void 0,children:t},a(t,r)))}),W&&re>1?t("div",{className:`pointer-events-none absolute inset-y-0 flex items-center ${y[k]}`,children:[e(n,{variant:"solid",size:k,color:L,density:M,elevation:1,label:F??Z.previous,disabled:!I&&je,focusableWhenDisabled:!0,className:"pointer-events-auto",icon:e("span",{className:"flex items-center rotate-90 rtl:-rotate-90",children:e(i,{})}),onClick:()=>ge(le-1)}),e("span",{className:"flex-1"}),e(n,{variant:"solid",size:k,color:L,density:M,elevation:1,label:V??Z.next,disabled:!I&&Ce,focusableWhenDisabled:!0,className:"pointer-events-auto",icon:e("span",{className:"flex items-center -rotate-90 rtl:rotate-90",children:e(i,{})}),onClick:()=>ge(le+1)})]}):null]}),Se||ke?t("div",{className:"grid shrink-0 grid-cols-[1fr_auto_1fr] items-center pt-2",children:[e("span",{className:"flex justify-start",children:Se?e(n,{variant:"text",size:k,color:L,density:M,label:ve?q??Z.play:A??Z.pause,icon:e(ve?u:c,{}),onClick:()=>he(e=>!e)}):null}),e("span",{className:`flex items-center ${N[k].gap}`,style:{"--n-hit-gap":j[k]},children:ke?te.map((t,r)=>e("button",{type:"button","aria-label":ee(r+1,re),"aria-current":r===le?"true":void 0,className:"neba-hit-row relative cursor-pointer rounded-full [transition-property:width,background-color] [transition-duration:var(--neba-duration)] [transition-timing-function:var(--neba-ease)] focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2 "+(r===le?`${N[k].current} bg-(--n-accent)`:`${N[k].rest} bg-(--n-line-hover) hover:bg-(--n-accent)`),onClick:()=>ge(r)},r)):null}),e("span",{})]}):null,e("span",{className:b,"aria-live":!Se||ve||be?"polite":"off",children:re>0?ee(le+1,re):""})]})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as r from"react";import{chatMessages as l,useMessages as a}from"../../internal/i18n.js";import{CheckIcon as i,ClockIcon as t,DangerIcon as
|
|
1
|
+
"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as r from"react";import{chatMessages as l,useMessages as a}from"../../internal/i18n.js";import{CheckIcon as i,ClockIcon as t,DangerIcon as s,LinkIcon as o}from"../../internal/icons.js";import{safeHref as c,safeRel as d}from"../../internal/link.js";import{NewTabNote as m}from"../../internal/new-tab.js";import{controlSlots as p,cx as u,hasContent as f,metaTextClasses as b,radiusClasses as h,sheetBodyClasses as v,sheetHeaderGapClasses as x,srOnlyClasses as g,surfaceClasses as k,transitionClasses as y}from"../../internal/styles.js";import{useStyleDefaults as w}from"../../internal/defaults.js";const N={default:{xs:"px-2 py-1",sm:"px-2.5 py-1.5",md:"px-3 py-2",lg:"px-3.5 py-2.5",xl:"px-4 py-3"},compact:{xs:"px-1.5 py-0.5",sm:"px-2 py-1",md:"px-2.5 py-1.5",lg:"px-3 py-1.5",xl:"px-3.5 py-2"}},_={start:"[border-start-start-radius:0.25rem]",end:"[border-start-end-radius:0.25rem]"},j={solid:k+" text-(--n-on-solid) bg-(--n-fill) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:k+" 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-(--n-soft) [box-shadow:var(--n-elev)]"};const L={sending:e(t,{}),sent:e(i,{}),delivered:e(function DoubleCheckIcon(){return n("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[e("path",{d:"m1.5 8.5 2.75 2.75L9.5 6",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M7 10.75 8.25 12l5.25-5.25",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})]})},{}),read:e(function ReadIcon(){const l=r.useId();return n("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[n("mask",{id:l,children:[e("rect",{width:"16",height:"16",fill:"white"}),n("g",{transform:"translate(2.375 1.25) scale(0.75)",stroke:"black",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e("path",{d:"m1.5 8.5 2.75 2.75L9.5 6"}),e("path",{d:"M7 10.75 8.25 12l5.25-5.25"})]})]}),e("circle",{cx:"8",cy:"8",r:"7.25",fill:"currentColor",mask:`url(#${l})`})]})},{}),failed:e(s,{})},C={sending:"text-(--neba-muted-fg)",sent:"text-(--neba-muted-fg)",delivered:"text-(--neba-muted-fg)",read:"text-(--n-accent)",failed:"text-(--neba-danger-accent)"};export const ChatBubble=/*@__PURE__*/r.forwardRef(function ChatBubble(r,i){const{side:t="start",name:s,time:o,avatar:c,status:d,statusLabel:m,typing:k=!1,media:z,preview:B,actions:D,locale:I,variant:T="outline",size:W="md",color:M="primary",density:P="default",elevation:R=0,className:$,style:q,children:A,...E}=w(r,["size","density","variant","locale"]),F=a(l,I),G="end"===t,H=f(s)||f(o),J=k||f(A)||Boolean(B),K="flex min-w-0 flex-col overflow-hidden "+h[W]+" "+_[t]+" "+j[T]+" "+y,O=d?m??F[d]:"";return n("div",{ref:i,className:u("group/bubble flex w-full items-start gap-2",G?"flex-row-reverse":"",$??""),style:{...p(M,R,T),...q},...E,children:[f(c)?e("div",{className:"shrink-0",children:c}):null,n("div",{className:"flex min-w-0 max-w-[min(100%,32rem)] flex-col "+x[W]+" "+(G?"items-end":"items-start"),children:[H?n("div",{className:`flex items-baseline gap-2 ${b[W]}`,children:[f(s)?e("span",{className:"font-semibold",children:s}):null,f(o)?e("span",{className:"text-(--neba-muted-fg)",children:o}):null]}):null,n("div",{className:"flex min-w-0 items-center gap-1 "+(G?"flex-row-reverse":""),children:[n("div",{className:K,children:[f(z)?e("div",{className:"[&_img]:block [&_img]:w-full [&_video]:block [&_video]:w-full",children:z}):null,J?n("div",{className:N[P][W]+" flex min-w-0 flex-col gap-2 "+v[W],children:[k?e(TypingDots,{label:F.typing}):f(A)?e("div",{className:"min-w-0 break-words whitespace-pre-line",children:A}):null,B?e(LinkPreview,{preview:B,locale:I}):null]}):null]}),f(D)?e("div",{className:"shrink-0 opacity-0 [transition:opacity_var(--neba-duration)_var(--neba-ease)] group-hover/bubble:opacity-100 group-focus-within/bubble:opacity-100 [@media(hover:none)]:opacity-100",children:D}):null]}),d?n("div",{className:"flex items-center gap-1 "+b[W]+" "+C[d]+" [&_svg]:size-[1.15em] [&_svg]:shrink-0",children:[L[d],e("span",{className:g,children:O})]}):null]})]})});function TypingDots({label:r}){return n("div",{className:"flex items-center gap-1 py-[0.35em]",role:"status",children:[[0,1,2].map(n=>e("span",{"aria-hidden":"true",className:"neba-typing-dot size-[0.45em] rounded-full",style:{"--n-i":n}},n)),e("span",{className:g,children:r})]})}function LinkPreview({preview:r,locale:l}){const{url:a,title:i,description:t,image:s,site:p,newTab:u=!1,rel:b}=r,h=u?"_blank":void 0;return n("a",{href:c(a),target:h,rel:d(h,b),className:"block overflow-hidden rounded-(--neba-radius-sm) border text-inherit no-underline [border-color:color-mix(in_oklab,currentColor_18%,transparent)] [background-color:color-mix(in_oklab,currentColor_7%,transparent)] hover:[background-color:color-mix(in_oklab,currentColor_12%,transparent)] [transition-property:background-color] [transition-duration:var(--neba-duration)] [transition-timing-function:var(--neba-ease)] focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2",children:[s?e("img",{alt:"",loading:"lazy",decoding:"async",className:"block h-28 w-full object-cover",src:s}):null,n("div",{className:"flex flex-col gap-0.5 p-2",children:[f(p)?n("span",{className:"flex items-center gap-1 text-[0.85em] opacity-70 [&_svg]:size-[1em] [&_svg]:shrink-0",children:[e(o,{}),e("span",{className:"truncate",children:p})]}):null,f(i)?e("span",{className:"font-semibold",children:i}):null,f(t)?e("span",{className:"line-clamp-2 text-[0.9em] opacity-80",children:t}):null,e(m,{target:h,locale:l})]})]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import*as n from"react";import{Checkbox as r}from"@base-ui/react/checkbox";import{Field as t}from"@base-ui/react/field";import{controlTextClasses as i,cx as o,hitAreaClasses as l,metaTextClasses as s,surfaceClasses as d,tickRadiusClasses as c,tickRowLeadingClasses as h,tickSizeClasses as b,transitionClasses as f}from"../../internal/styles.js";import{useStyleDefaults as
|
|
1
|
+
"use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import*as n from"react";import{Checkbox as r}from"@base-ui/react/checkbox";import{Field as t}from"@base-ui/react/field";import{controlTextClasses as i,cx as o,hitAreaClasses as l,metaTextClasses as s,surfaceClasses as d,tickRadiusClasses as c,tickRowLeadingClasses as h,tickSizeClasses as b,transitionClasses as f}from"../../internal/styles.js";import{useStyleDefaults as m}from"../../internal/defaults.js";import{useFieldsetDisabled as p}from"../../internal/fieldset.js";import{CheckboxGroupContext as u}from"../../internal/checkbox-group.js";const v="relative inline-flex shrink-0 items-center justify-center border "+l+" [-webkit-tap-highlight-color:transparent] [touch-action:manipulation] "+f+" active:[transition-duration:0ms] focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2",g=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]:text-(--n-on-solid) data-[checked]:[border-color:transparent] data-[checked]:hover:bg-(--n-fill-hover) data-[indeterminate]:bg-(--n-fill) data-[indeterminate]:text-(--n-on-solid) data-[indeterminate]:[border-color:transparent]",k=d+" cursor-default bg-(--n-panel) [border-color:var(--n-line)] [filter:saturate(0.55)] data-[checked]:bg-(--n-fill) data-[checked]:text-(--n-on-solid) data-[checked]:[border-color:transparent] data-[indeterminate]:bg-(--n-fill) data-[indeterminate]:text-(--n-on-solid) data-[indeterminate]:[border-color:transparent]";function CheckMark(){return e("svg",{viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",className:"size-full",children:e("path",{d:"M2 6.2 4.6 8.8 10 3.4",pathLength:"1",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function DashMark(){return e("svg",{viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",className:"size-full",children:e("path",{d:"M2.5 6h7",pathLength:"1",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}export const Checkbox=/*@__PURE__*/n.forwardRef(function Checkbox(l,d){const f=n.useContext(u),{size:x,color:y,label:N,description:j,error:_,invalid:$,disabled:C,readOnly:w,name:z,className:L,classNames:M,style:D,...O}=m(l,["size"],f),R=x??f?.size??"md",B=y??f?.color??"primary",W=w??f?.readOnly??!1,E=z??f?.name,I=p(C)||!0===f?.disabled,q=null!=_&&!1!==_&&""!==_,A=$??q,F=A||!0===f?.invalid?"danger":B,G={"--n-fill":`var(--neba-${F}-fill)`,"--n-fill-hover":`var(--neba-${F}-fill-hover)`,"--n-on-solid":`var(--neba-${F}-on-solid)`,"--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)`},H=v+" "+b[R]+" "+c[R]+" "+(I?"cursor-not-allowed bg-transparent [border-color:var(--neba-disabled-border)] text-(--neba-disabled-fg) shadow-none data-[checked]:bg-(--neba-disabled-bg) data-[indeterminate]:bg-(--neba-disabled-bg)":W?k:g);return a(t.Root,{disabled:I,invalid:A,className:o("inline-flex flex-col gap-1 align-top",L??""),style:{...G,...D},children:[a("div",{className:`flex items-start gap-2 ${i[R]} ${h}`,children:[e("span",{className:"flex h-[1lh] shrink-0 items-center",children:e(r.Root,{ref:d,className:o(H,M?.control),disabled:I,readOnly:W,name:E,...O,children:e(r.Indicator,{className:o("flex size-[70%] items-center justify-center [transition:opacity_var(--neba-duration)_var(--neba-ease)] data-[starting-style]:opacity-0 data-[ending-style]:opacity-0 [&_path]:[stroke-dasharray:1] [&_path]:[transition:stroke-dashoffset_var(--neba-duration)_var(--neba-ease)] [&[data-starting-style]_path]:[stroke-dashoffset:1] [&[data-ending-style]_path]:[stroke-dashoffset:1]",M?.indicator),render:(a,n)=>e("span",{...a,children:n.indeterminate?e(DashMark,{}):e(CheckMark,{})})})})}),N||j?a("span",{className:"flex min-w-0 flex-col gap-0.5",children:[N?e(t.Label,{className:o("leading-[1.4]",I?"text-(--neba-disabled-fg)":"cursor-pointer text-(--neba-fg)",M?.label),children:N}):null,j?e(t.Description,{className:o(s[R],"text-(--neba-muted-fg)",M?.description),children:j}):null]}):null]}),e(t.Error,q?{match:!0,className:o(s[R],"text-(--n-accent)",M?.error),children:_}:{className:o(s[R],"text-(--n-accent)",M?.error)})]})});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { Checkbox } from './Checkbox.js';
|
|
2
|
-
export type { CheckboxProps } from './Checkbox.js';
|
|
2
|
+
export type { CheckboxProps, CheckboxSlot } from './Checkbox.js';
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { CheckboxGroup as BaseUICheckboxGroup } from '@base-ui/react/checkbox-group';
|
|
3
|
+
import type { NebaColor, NebaFieldSlot, NebaOrientation, NebaSize, NebaSlots } from '../../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* The parts a CheckboxGroup draws behind its root. `control` is the element
|
|
6
|
+
* that holds the checkboxes — the one carrying the row or column direction —
|
|
7
|
+
* and not any single Checkbox, which has slots of its own.
|
|
8
|
+
*/
|
|
9
|
+
export type CheckboxGroupSlot = NebaFieldSlot;
|
|
10
|
+
export interface CheckboxGroupProps extends Omit<React.ComponentPropsWithoutRef<typeof BaseUICheckboxGroup>, 'className' | 'style' | 'render'> {
|
|
11
|
+
/**
|
|
12
|
+
* The size of every Checkbox inside, unless one sets its own, and the type
|
|
13
|
+
* scale of the label, the description and the error.
|
|
14
|
+
* @default 'md'
|
|
15
|
+
*/
|
|
16
|
+
size?: NebaSize;
|
|
17
|
+
/** The colour family of every Checkbox inside, unless one sets its own. @default 'primary' */
|
|
18
|
+
color?: NebaColor;
|
|
19
|
+
/**
|
|
20
|
+
* Which way the checkboxes stack. Vertical by default, for RadioGroup's
|
|
21
|
+
* reason: a column is scannable at any length, and a row stops being readable
|
|
22
|
+
* the moment one label runs long.
|
|
23
|
+
* @default 'vertical'
|
|
24
|
+
*/
|
|
25
|
+
orientation?: NebaOrientation;
|
|
26
|
+
/**
|
|
27
|
+
* The gap between the checkboxes, on Tailwind's spacing scale: `3` is
|
|
28
|
+
* `0.75rem`, the same step `gap-3` is. One length on both axes, so a
|
|
29
|
+
* horizontal group that wraps puts its lines as far apart as its options.
|
|
30
|
+
* Left out, a column follows `size` on the ladder a Form stands its fields
|
|
31
|
+
* on, `3` at `md`, and a row keeps `5` along it with the column's step
|
|
32
|
+
* between its lines — RadioGroup's gaps, so the two read as the same kind of
|
|
33
|
+
* question.
|
|
34
|
+
*
|
|
35
|
+
* Not read from a `NebaProvider`: the provider's `spacing` is the gap between
|
|
36
|
+
* fields, and a product that spreads its fields apart should not spread every
|
|
37
|
+
* set of options with them.
|
|
38
|
+
*/
|
|
39
|
+
spacing?: number;
|
|
40
|
+
/** The question the checkboxes answer. It names the group. */
|
|
41
|
+
label?: React.ReactNode;
|
|
42
|
+
/** Helper text under the label. */
|
|
43
|
+
description?: React.ReactNode;
|
|
44
|
+
/** Error message below the checkboxes. Its presence also turns the group invalid. */
|
|
45
|
+
error?: React.ReactNode;
|
|
46
|
+
/** Forces the invalid state without a message. Defaults to `!!error`. */
|
|
47
|
+
invalid?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Shows every checkbox's state without letting it change. Base UI's group
|
|
50
|
+
* has no such state, so this is handed to each Checkbox inside.
|
|
51
|
+
* @default false
|
|
52
|
+
*/
|
|
53
|
+
readOnly?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The name the ticked values are submitted under. A native submit sends one
|
|
56
|
+
* entry per ticked checkbox, each its `value`, and a Form's `onSubmit` is
|
|
57
|
+
* handed them as an array.
|
|
58
|
+
*/
|
|
59
|
+
name?: string;
|
|
60
|
+
className?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Class names for the parts behind the root. The element holding the
|
|
63
|
+
* checkboxes is `classNames.control`; a single option is styled on the
|
|
64
|
+
* Checkbox itself.
|
|
65
|
+
*/
|
|
66
|
+
classNames?: NebaSlots<CheckboxGroupSlot>;
|
|
67
|
+
style?: React.CSSProperties;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* A set of checkboxes that answer one question, any number of them at once.
|
|
71
|
+
*
|
|
72
|
+
* A column of Checkboxes in a Fieldset already works, and this is what that
|
|
73
|
+
* column was missing: one value for the set — an array of the ticked
|
|
74
|
+
* checkboxes' `value`s, controlled or not — a label and an error that belong to
|
|
75
|
+
* the question rather than to one option, and a parent checkbox that ticks
|
|
76
|
+
* every option at once. `allValues` names every option, and the Checkbox with
|
|
77
|
+
* `parent` is the one that answers for all of them.
|
|
78
|
+
*
|
|
79
|
+
* Base UI's group owns the value and the parent's three states. What it does
|
|
80
|
+
* not carry down is how each option looks, so `size`, `color`, `disabled` and
|
|
81
|
+
* `readOnly` reach every Checkbox through `internal/checkbox-group.ts`, and so
|
|
82
|
+
* does the `name` a native submit needs.
|
|
83
|
+
*/
|
|
84
|
+
export declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{jsx as e,jsxs as r}from"react/jsx-runtime";import*as a from"react";import{CheckboxGroup as l}from"@base-ui/react/checkbox-group";import{Field as o}from"@base-ui/react/field";import{cx as i,metaTextClasses as t,optionGapClasses as n}from"../../internal/styles.js";import{spacingValue as s}from"../../internal/grid.js";import{useStyleDefaults as c}from"../../internal/defaults.js";import{useFieldsetDisabled as d}from"../../internal/fieldset.js";import{CheckboxGroupContext as m}from"../../internal/checkbox-group.js";export const CheckboxGroup=/*@__PURE__*/a.forwardRef(function CheckboxGroup(f,p){const{size:x="md",color:b="primary",orientation:u="vertical",spacing:h,label:g,description:v,error:j,invalid:N,disabled:y,readOnly:k=!1,name:z,className:w,classNames:C,style:G,children:O,...R}=c(f,["size"]),D=d(y),E=null!=j&&!1!==j&&""!==j,L=N??E,M=L?"danger":b,P=a.useMemo(()=>({size:x,color:b,invalid:L,disabled:D,readOnly:k,name:z}),[x,b,L,D,k,z]);return e(m.Provider,{value:P,children:r(o.Root,{name:z,disabled:D,invalid:L,className:i("flex flex-col gap-1.5",w??""),style:{"--n-accent":`var(--neba-${M}-accent)`,...G},children:[g?e(o.Label,{className:i(t[x],"font-medium",D?"text-(--neba-disabled-fg)":"text-(--neba-fg)",C?.label),children:g}):null,v?e(o.Description,{className:i(t[x],"text-(--neba-muted-fg)",C?.description),children:v}):null,e(l,{ref:p,disabled:D,className:i("flex","horizontal"===u?"flex-row flex-wrap":"flex-col",void 0===h?n[u][x]:"",C?.control),style:void 0===h?void 0:{gap:s(h)},...R,children:O}),e(o.Error,E?{match:!0,className:i(t[x],"text-(--n-accent)",C?.error),children:j}:{className:i(t[x],"text-(--n-accent)",C?.error)})]})})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{CheckboxGroup}from"./CheckboxGroup.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
2
3
|
import type { NebaElevation, NebaStyleProps, NebaTransition } from '../../types.js';
|
|
3
4
|
export interface ChipProps extends NebaStyleProps, Omit<React.ComponentPropsWithoutRef<'span'>, 'color'> {
|
|
4
5
|
/**
|
|
@@ -49,6 +50,31 @@ export interface ChipProps extends NebaStyleProps, Omit<React.ComponentPropsWith
|
|
|
49
50
|
* screen reader. A chip with `onClick` and no `selected` is a plain button.
|
|
50
51
|
*/
|
|
51
52
|
selected?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Makes the chip's label a link to this address: a tag that leads to its
|
|
55
|
+
* page, a filter that is a URL. A crawler can follow it and a reader can
|
|
56
|
+
* open it in a new tab, neither of which a button with an `onClick` offers.
|
|
57
|
+
* With `onDelete` the × stays a button of its own beside the link, never
|
|
58
|
+
* inside it.
|
|
59
|
+
*
|
|
60
|
+
* A scheme other than `http`, `https`, `mailto` and `tel` is dropped, and a
|
|
61
|
+
* `disabled` chip is not a link.
|
|
62
|
+
*/
|
|
63
|
+
href?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Renders the link as something other than an `<a>` — the `Link` a router
|
|
66
|
+
* brings, so a chip moves without reloading the page. `href` still goes
|
|
67
|
+
* through. Only a chip that is a link uses it: a `disabled` one stays text,
|
|
68
|
+
* and the `onDelete` button stays beside the link, never inside it.
|
|
69
|
+
*/
|
|
70
|
+
render?: useRender.RenderProp;
|
|
71
|
+
/** Where the link opens. Anything but this tab also gets `rel="noopener noreferrer"`. */
|
|
72
|
+
target?: string;
|
|
73
|
+
/**
|
|
74
|
+
* The link's `rel` — `tag`, `nofollow`, `sponsored`. The two tokens a new tab
|
|
75
|
+
* needs are merged into it rather than written over it.
|
|
76
|
+
*/
|
|
77
|
+
rel?: string;
|
|
52
78
|
/** Unavailable. Drops the colour family for neutral grey, as everywhere else. */
|
|
53
79
|
disabled?: boolean;
|
|
54
80
|
children?: React.ReactNode;
|
|
@@ -57,9 +83,12 @@ export interface ChipProps extends NebaStyleProps, Omit<React.ComponentPropsWith
|
|
|
57
83
|
* A compact token: a tag, a filter, a status, an entity plucked out of a list.
|
|
58
84
|
*
|
|
59
85
|
* The shell is always a `<span>`. What changes is what is inside it: a plain run
|
|
60
|
-
* of content,
|
|
61
|
-
*
|
|
62
|
-
*
|
|
86
|
+
* of content, a real `<button>` wrapping that content when `onClick` is given,
|
|
87
|
+
* or an `<a>` wrapping it when `href` is — or whatever `render` draws in its
|
|
88
|
+
* place — plus a second button for `onDelete`.
|
|
89
|
+
* Both are reachable by keyboard, and neither is nested inside the other, which
|
|
90
|
+
* is as true of a link as of a button: interactive content inside an `<a>` is
|
|
91
|
+
* invalid too.
|
|
63
92
|
*
|
|
64
93
|
* An inert `<span>` carrying a click handler is the single most common way a
|
|
65
94
|
* component library loses its keyboard users, and a `<button>` inside a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,Fragment as n,jsxs as
|
|
1
|
+
"use client";import{jsx as e,Fragment as n,jsxs as t}from"react/jsx-runtime";import*as l from"react";import{useRender as r}from"@base-ui/react/use-render";import{actionMessages as i,fillMessage as o,useMessages as a}from"../../internal/i18n.js";import{CloseIcon as s}from"../../internal/icons.js";import{safeHref as d,safeRel as c}from"../../internal/link.js";import{NewTabNote as m}from"../../internal/new-tab.js";import{transitionProps as p}from"../../internal/animate.js";import{chipRemoveClasses as f,controlHeightClasses as b,controlSlots as u,controlTextClasses as h,disabledClasses as v,focusRingClasses as g,gapClasses as x,iconClasses as j,paddingXClasses as y,pressTransitionClasses as w,radiusClasses as k,surfaceClasses as N,transitionClasses as $}from"../../internal/styles.js";import{useStyleDefaults as C}from"../../internal/defaults.js";const z={xs:"xs",sm:"xs",md:"sm",lg:"md",xl:"lg"},B={solid:N+" text-(--n-on-solid) bg-(--n-fill) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:N+" 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)"},I={solid:"bg-(--n-fill-active)",outline:"bg-(--n-panel-press) [border-color:var(--n-line-hover)]",text:"bg-(--n-soft-press)"},L={solid:"hover:bg-(--n-fill-hover) active:bg-(--n-fill-active)",outline:"hover:bg-(--n-panel-hover) hover:[border-color:var(--n-line-hover)] active:bg-(--n-panel-press)",text:"hover:bg-(--n-soft-hover) active:bg-(--n-soft-press)"},D="relative inline-flex max-w-full shrink-0 select-none items-center align-middle font-medium leading-none whitespace-nowrap [-webkit-tap-highlight-color:transparent] [touch-action:manipulation] "+$+" "+w+" "+j,F="flex min-w-0 flex-1 cursor-pointer items-center justify-center self-stretch rounded-[inherit] "+g,R=`${F} text-inherit no-underline`;export const Chip=/*@__PURE__*/l.forwardRef(function Chip(l,g){const{variant:j="outline",size:w="md",color:N="primary",density:$="default",elevation:q=0,startIcon:A,endIcon:E,count:G,onDelete:H,locale:J,deleteLabel:K,transition:M,selected:O,href:P,render:Q,target:S,rel:T,disabled:U=!1,className:V,style:W,children:X,onClick:Y,...Z}=C(l,["size","density","variant","locale"]),_=a(i,J),ee=U?void 0:d(P),ne=(void 0!==ee||void 0!==Q)&&!U,te=(ne||Boolean(Y))&&!U,le=z[w],re=p(M),ie=y[$][le],oe=[D,b[le],h[le],x[le],k[le],U?v[j]:B[j],!U&&O?I[j]:"",te?L[j]:"",te?"ps-0":ie,H?"pe-1":te?"pe-0":"",re.className,V??""].filter(Boolean).join(" "),ae=t(n,{children:[A,null!=X&&!1!==X?e("span",{className:"min-w-0 truncate leading-[normal]",children:X}):null,E,null!=G&&!1!==G?e("span",{className:"ms-0.5 inline-flex shrink-0 items-center justify-center rounded-full px-1.5 py-px text-[0.85em] leading-none font-semibold tabular-nums "+("solid"===j?"bg-(--neba-glow-on-fill) text-(--n-on-solid)":"bg-(--n-fill) text-(--n-on-solid)"),children:G}):null]}),se=r({render:Q??e("a",{}),props:{href:ee,target:S,rel:c(S,T),"aria-current":O?"true":void 0,className:`${R} ${x[le]} ${ie}`,onClick:Y,children:t(n,{children:[ae,e(m,{target:S,locale:J})]})}});return t("span",{ref:g,className:oe,style:{...u(N,q,j),...re.style,...W},"aria-disabled":!(!U||te)||void 0,...Z,children:[ne?se:te?e("button",{type:"button","aria-pressed":O,className:`${F} ${x[le]} ${ie}`,onClick:Y,children:ae}):ae,H?e("button",{type:"button","aria-label":K??("string"==typeof X&&X.trim()?o(_.removeLabel,{label:X.trim()}):_.remove),disabled:U,className:f,onClick:H,children:e(s,{})}):null]})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{CheckIcon as o,CodeIcon as r,CopyIcon as l}from"../../internal/icons.js";import{codeMessages as i,useMessages as a}from"../../internal/i18n.js";import{observeResize as s,observeVisibility as c}from"../../internal/observe.js";import{canonicalLanguage as d,highlight as u,plainLines as m,preloadLanguage as p}from"../../internal/highlight.js";import{cx as f,hasContent as x,metaTextClasses as h,radiusClasses as g,srOnlyClasses as y,surfaceSlots as v,toLength as b,transitionClasses as w}from"../../internal/styles.js";import{useStyleDefaults as N}from"../../internal/defaults.js";const k={xs:"text-[0.6875rem]/[1.55]",sm:"text-[0.75rem]/[1.6]",md:"text-[0.8125rem]/[1.65]",lg:"text-[0.875rem]/[1.7]",xl:"text-[1rem]/[1.7]"},S={default:{xs:"py-2",sm:"py-3",md:"py-3.5",lg:"py-4",xl:"py-5"},compact:{xs:"py-1.5",sm:"py-2",md:"py-2.5",lg:"py-3",xl:"py-3.5"}},
|
|
1
|
+
"use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{CheckIcon as o,CodeIcon as r,CopyIcon as l}from"../../internal/icons.js";import{codeMessages as i,useMessages as a}from"../../internal/i18n.js";import{observeResize as s,observeVisibility as c}from"../../internal/observe.js";import{canonicalLanguage as d,highlight as u,plainLines as m,preloadLanguage as p}from"../../internal/highlight.js";import{cx as f,hasContent as x,metaTextClasses as h,radiusClasses as g,srOnlyClasses as y,surfaceSlots as v,toLength as b,transitionClasses as w}from"../../internal/styles.js";import{useStyleDefaults as N}from"../../internal/defaults.js";const k={xs:"text-[0.6875rem]/[1.55]",sm:"text-[0.75rem]/[1.6]",md:"text-[0.8125rem]/[1.65]",lg:"text-[0.875rem]/[1.7]",xl:"text-[1rem]/[1.7]"},S={default:{xs:"py-2",sm:"py-3",md:"py-3.5",lg:"py-4",xl:"py-5"},compact:{xs:"py-1.5",sm:"py-2",md:"py-2.5",lg:"py-3",xl:"py-3.5"}},M={default:{xs:"px-2",sm:"px-3",md:"px-3.5",lg:"px-4",xl:"px-5"},compact:{xs:"px-1.5",sm:"px-2",md:"px-2.5",lg:"px-3",xl:"px-3.5"}},T={default:{xs:"px-2.5 py-1",sm:"px-3.5 py-1",md:"px-4 py-1.5",lg:"px-4.5 py-2",xl:"px-5.5 py-2"},compact:{xs:"px-2 py-0.5",sm:"px-2.5 py-0.5",md:"px-3 py-1",lg:"px-3.5 py-1",xl:"px-4 py-1.5"}};export const CodeBlock=/*@__PURE__*/n.forwardRef(function CodeBlock(j,C){const{code:E,language:R,theme:A="dark",size:H="md",color:L="primary",density:_="default",elevation:z=0,highlight:F=!0,toolbar:K=!0,title:$,showLanguage:B=!0,copyable:D=!0,rawToggle:I=!1,highlightLines:W,lineNumbers:q=!1,startLine:G=1,prompt:J,wrap:O=!1,maxHeight:P,fontFamily:Q,fontSize:U,lineHeight:V,letterSpacing:X,locale:Y,copyLabel:Z,copiedLabel:ee,rawLabel:te,onCopy:ne,className:oe,style:re,...le}=N(j,["size","density","locale"]),ie=a(i,Y),ae=n.useMemo(()=>E.replace(/\r\n?/g,"\n").trimEnd(),[E]),se=d(R),[ce,de]=n.useState(!1),[ue,me]=n.useState(null),[pe,fe]=n.useState(null),xe=F&&!ce&&null!==se,[he,ge]=n.useState(!1);n.useEffect(()=>{if(!xe||!se)return void fe(null);if(!he)return void p(se);let e=!1;return u(ae,se).then(t=>{e||n.startTransition(()=>fe(t?{source:ae,name:se,lines:t}:null))},()=>{e||fe(null)}),()=>{e=!0}},[ae,se,xe,he]);const ye=n.useMemo(()=>xe&&pe&&pe.source===ae&&pe.name===se?pe.lines:m(ae),[xe,pe,ae,se]),ve=`${String(G+Math.max(ye.length-1,0)).length}ch`,be=n.useRef(void 0),we=n.useRef(void 0),[Ne,ke]=n.useState(null);n.useEffect(()=>()=>{clearTimeout(be.current),clearTimeout(we.current)},[]);const Se=G+Math.max(ye.length-1,0),Me=n.useMemo(()=>function(e,t,n){const o=new Set;if(void 0===e)return o;for(const r of Array.isArray(e)?e:[e])if("number"!=typeof r)for(const e of r.split(",")){const r=/^\s*(\d+)\s*(?:-\s*(\d+)\s*)?$/.exec(e);if(!r)continue;const l=Number(r[1]),i=void 0===r[2]?l:Number(r[2]),a=Math.max(Math.min(l,i),t),s=Math.min(Math.max(l,i),n);for(let e=a;e<=s;e+=1)o.add(e)}else Number.isFinite(r)&&o.add(Math.trunc(r));return o}(W,G,Se),[W,G,Se]),Te=n.useRef(null),je=n.useRef(null),[Ce,Ee]=n.useState(!1);n.useEffect(()=>{const e=je.current;if(!xe||he||!e)return;const t=c(e,0,e=>{e&&ge(!0)},"100% 0px");if(t)return t;ge(!0)},[xe,he]),n.useEffect(()=>{const e=je.current,t=Te.current;if(!e||!t)return;const n=()=>Ee(e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1);n();const o=s(e,n),r=s(t,n);return()=>{o(),r()}},[]);const Re=Z??ie.copy,Ae=ee??ie.copied,He=te??ie.raw,Le=f("inline-flex shrink-0 cursor-pointer items-center gap-1 border-0 bg-transparent","px-1.5 py-1 text-(--n-code-dim) hover:text-(--n-code-fg) hover:bg-(--n-code-hover)",g.xs,h[H],"[&_svg]:pointer-events-none [&_svg]:size-[1.15em] [&_svg]:shrink-0",w,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-1"),_e=n.useId(),ze=x($)&&"string"!=typeof $&&K,Fe="string"==typeof $&&""!==$?$:se??ie.code,Ke=n.useMemo(()=>e("pre",{ref:Te,className:f("m-0 bg-transparent p-0 font-mono",O?"w-full":"w-max min-w-full"),children:ye.map((t,o)=>{const r=G+o;return e("div",{className:f("neba-code-line",M[_][H]),"data-line":q?r:void 0,"data-mark":Me.has(r)?"":void 0,"data-prompt":J&&t.length>0?J:void 0,children:e("code",{children:t.map((t,o)=>t.token?e("span",{className:t.token,children:t.text},o):e(n.Fragment,{children:t.text},o))})},o)})}),[ye,O,G,_,H,q,Me,J]),$e=e("div",{ref:je,role:Ce?"region":void 0,"aria-label":Ce&&!ze?Fe:void 0,"aria-labelledby":Ce&&ze?_e:void 0,tabIndex:Ce?0:void 0,onKeyDown:e=>{if(!("a"===e.key||"A"===e.key||!/^[a-z]$/i.test(e.key)&&"KeyA"===e.code))return;if(!e.metaKey&&!e.ctrlKey||e.altKey)return;const t=Te.current,n="undefined"==typeof window?null:window.getSelection();if(!t||!n)return;e.preventDefault();const o=document.createRange();o.selectNodeContents(t),n.removeAllRanges(),n.addRange(o)},className:f("min-h-0 overflow-auto",S[_][H],"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:-outline-offset-2"),style:void 0===P?void 0:{maxHeight:b(P)},children:Ke});return t("div",{ref:C,className:f("neba-code flex min-w-0 flex-col overflow-hidden",g[H],"border bg-(--n-code-bg) text-(--n-code-fg) [border-color:var(--n-code-rule)]","[box-shadow:var(--n-elev)]",w,oe),"data-code-theme":A,"data-code-wrap":O?"true":void 0,style:{...v(L,z),"--n-code-gutter":ve,...Q?{fontFamily:Q}:null,...void 0===U?null:{fontSize:b(U)},...void 0===V?null:{lineHeight:V},...void 0===X?null:{letterSpacing:b(X)},...re},...le,children:[K&&(B&&se||D||I&&F||x($))?t("div",{className:f("flex min-w-0 items-center gap-1 border-b [border-color:var(--n-code-rule)]",T[_][H]),children:[x($)?e("span",{id:_e,className:f("min-w-0 truncate font-mono",h[H]),children:$}):null,B&&se?e("span",{className:f("min-w-0 truncate font-mono tracking-wide text-(--n-code-dim) uppercase select-none",h[H]),children:se}):null,e("span",{className:"flex-1"}),I&&F?e("button",{type:"button","aria-pressed":ce,"aria-label":He,title:He,onClick:()=>de(e=>!e),className:f(Le,ce?"text-(--n-code-fg) bg-(--n-code-hover)":""),children:e(r,{})}):null,D?t("button",{type:"button",onClick:async()=>{const e=await async function(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}const t=document.activeElement;try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.setAttribute("aria-hidden","true"),t.style.cssText="position:fixed;top:0;left:0;opacity:0;pointer-events:none",document.body.append(t),t.select();const n=document.execCommand("copy");return t.remove(),n}catch{return!1}finally{t instanceof HTMLElement&&t.isConnected&&t.focus()}}(ae);clearTimeout(be.current),clearTimeout(we.current),me(e),ke(null),we.current=setTimeout(()=>ke(e),100),be.current=setTimeout(()=>{me(null),ke(null)},2e3),e&&ne?.(ae)},className:Le,children:[e(ue?o:l,{}),e("span",{children:null===ue?Re:ue?Ae:ie.copyFailed})]}):null]}):null,e("div",{className:f("flex min-h-0 flex-col",k[H]),children:$e}),e("span",{"aria-live":"polite",className:y,children:null===Ne?"":Ne?Ae:ie.copyFailed})]})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as l from"react";import{Collapsible as t}from"@base-ui/react/collapsible";import{boxPaddingXClasses as a,boxPaddingYClasses as s}from"../box/Box.js";import{ChevronIcon as i}from"../../internal/icons.js";import{collapsiblePanelClasses as
|
|
1
|
+
"use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as l from"react";import{Collapsible as t}from"@base-ui/react/collapsible";import{boxPaddingXClasses as a,boxPaddingYClasses as s}from"../box/Box.js";import{ChevronIcon as i}from"../../internal/icons.js";import{collapsiblePanelClasses as r,gapClasses as o,hasContent as d,iconClasses as c,metaTextClasses as f,radiusClasses as m,sheetBodyClasses as p,sheetHeaderGapClasses as b,sheetTitleClasses as u,surfaceClasses as x,surfaceSlots as h,transitionClasses as g,clampClasses as v,clampSlot as N,disclosureChevronClasses as j,disclosureTriggerClasses as w}from"../../internal/styles.js";import{useStyleDefaults as y}from"../../internal/defaults.js";const $={solid:x+" text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:x+" 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"};export const Collapsible=/*@__PURE__*/l.forwardRef(function Collapsible(l,x){const{variant:C="outline",size:k="md",color:O="primary",density:B="default",elevation:z=0,open:F,defaultOpen:M=!1,onOpenChange:R,title:T,subtitle:U,lines:_,startIcon:I,action:P,trigger:q,indicator:A=!0,disabled:D=!1,padded:E=!0,hiddenUntilFound:G=!0,keepMounted:H=!1,className:J,style:K,children:L,...Q}=y(l,["size","density","variant"]),S=_?v(_):"",V=N(_),W=a[B][k],X=s[B][k];return n(t.Root,{ref:x,open:F,defaultOpen:M,onOpenChange:e=>R?.(e),disabled:D,className:["flex flex-col overflow-hidden",m[k],$[C],g,J??""].filter(Boolean).join(" "),style:{...h(O,z),...K},...Q,children:[q?e(t.Trigger,{render:q}):n("div",{className:"flex w-full items-center",children:[n(t.Trigger,{className:"flex min-w-0 flex-1 items-center text-start "+w+" "+W+" "+X+" "+o[k]+" "+g+" "+c+" focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:[outline-offset:-2px] "+(D?"cursor-not-allowed bg-transparent text-(--neba-disabled-fg)":"cursor-pointer hover:bg-(--n-soft) data-[panel-open]:text-(--n-on-tint)"),children:[d(I)?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--neba-muted-fg)",children:I}):null,n("span",{className:`flex min-w-0 flex-1 flex-col ${b[k]}`,children:[d(T)?e("span",{className:`${S} font-semibold ${u[k]}`,style:V,children:T}):null,d(U)?e("span",{className:`${S} text-(--neba-muted-fg) ${f[k]}`,style:V,children:U}):null]}),A?e("span",{className:`${j} text-(--neba-muted-fg)`,children:e(i,{})}):null]}),d(P)?e("span",{className:`flex shrink-0 items-center ${W}`,children:P}):null]}),e(t.Panel,{hiddenUntilFound:G,keepMounted:G?void 0:H,className:r,children:e("div",{className:["min-w-0 text-(--neba-muted-fg)",p[k],E?W:"",E?q?X:"compact"===B?"pb-2":"pb-4":""].filter(Boolean).join(" "),children:L})})]})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import*as r from"react";import{PickerShell as l}from"../../internal/picker.js";import{CheckIcon as n}from"../../internal/icons.js";import{colorMessages as t,fillMessage as o,useMessages as s}from"../../internal/i18n.js";import{numberFormatter as i}from"../../internal/format.js";import{checkerBackground as d,clamp as c,cssColor as u,defaultSwatches as h,formatColor as f,parseColor as p,readableInk as m}from"../../internal/color.js";import{controlTextClasses as b,cx as v,focusRingClasses as g,metaTextClasses as x,radiusClasses as w,stackGapClasses as y,surfaceSlots as k,transitionClasses as C}from"../../internal/styles.js";import{useStyleDefaults as N}from"../../internal/defaults.js";import{useIntlLocale as
|
|
1
|
+
"use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import*as r from"react";import{PickerShell as l}from"../../internal/picker.js";import{CheckIcon as n}from"../../internal/icons.js";import{colorMessages as t,fillMessage as o,useMessages as s}from"../../internal/i18n.js";import{numberFormatter as i}from"../../internal/format.js";import{checkerBackground as d,clamp as c,cssColor as u,defaultSwatches as h,formatColor as f,parseColor as p,readableInk as m}from"../../internal/color.js";import{controlTextClasses as b,cx as v,focusRingClasses as g,metaTextClasses as x,radiusClasses as w,stackGapClasses as y,surfaceSlots as k,transitionClasses as C}from"../../internal/styles.js";import{useStyleDefaults as N}from"../../internal/defaults.js";import{useIntlLocale as _}from"../../internal/media.js";import{useFieldsetDisabled as P}from"../../internal/fieldset.js";const j={xs:"w-40",sm:"w-44",md:"w-52",lg:"w-60",xl:"w-72"},I={xs:"h-24",sm:"h-28",md:"h-32",lg:"h-40",xl:"h-48"},D={xs:"h-2.5",sm:"h-3",md:"h-3.5",lg:"h-4",xl:"h-5"},z={xs:"gap-1.5",sm:"gap-2",md:"gap-2.5",lg:"gap-3",xl:"gap-3.5"},A={xs:10,sm:12,md:14,lg:16,xl:18},T="relative overflow-hidden border [border-color:var(--neba-border)] [box-shadow:var(--neba-plate-glass)]",L="pointer-events-none absolute rounded-full border-2 border-white [box-shadow:0_0_0_1px_rgba(0,0,0,0.35),0_1px_3px_rgba(0,0,0,0.4)]";function O(e){const a=e.currentTarget.getBoundingClientRect();return{x:0===a.width?0:c((e.clientX-a.left)/a.width,0,1),y:0===a.height?0:c((e.clientY-a.top)/a.height,0,1)}}function ColorPanel({hsv:l,alphaValue:t,onChange:s,text:h,onTextChange:b,withAlpha:y,swatches:k,editable:N,size:P,inert:V,disabled:q,labels:M,locale:S}){const B=_(S),E=A[P],K=i(B,{style:"percent",maximumFractionDigits:0}),R=i(B,{style:"unit",unit:"degree",unitDisplay:"long",maximumFractionDigits:0}),U=-E/2,F=u({h:l.h,s:100,v:100}),$=u(l),H=r.useMemo(()=>k?k.map(e=>{const a=p(e);return{swatch:e,parsed:a,hex:a?f(a.hsv,a.alpha,"hex"):null}}):[],[k]),W=H.length>0?f(l,t,"hex"):null,X=e=>({onPointerDown:a=>{V||(a.currentTarget.setPointerCapture(a.pointerId),e(a))},onPointerMove:a=>{!V&&a.currentTarget.hasPointerCapture(a.pointerId)&&e(a)}}),Y=(e,a,r,l,n,t,o)=>({role:"slider",tabIndex:V?-1:0,"aria-label":e,"aria-valuemin":0,"aria-valuemax":l,"aria-valuenow":Math.round(r),"aria-valuetext":a,"aria-orientation":"horizontal","aria-disabled":V||void 0,onKeyDown:e=>{const a=function(e,a,r,l,n){const t=(e.shiftKey?10:1)*l;let o;switch(e.key){case"ArrowRight":case"ArrowUp":o=a+t;break;case"ArrowLeft":case"ArrowDown":o=a-t;break;case"PageUp":o=a+10*l;break;case"PageDown":o=a-10*l;break;case"Home":return 0;case"End":return r;default:return null}return n?(o%r+r)%r:c(o,0,r)}(e,r,l,n,t);V||null===a||(e.preventDefault(),o(a))}});return a("div",{className:v("flex flex-col",j[P],z[P]),children:[e("div",{...X(e=>{const{x:a,y:r}=O(e);s({hsv:{h:l.h,s:100*a,v:100*(1-r)},alpha:t})}),role:"slider",tabIndex:V?-1:0,"aria-label":M.area,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(l.s),"aria-valuetext":o(M.areaValue,{saturation:K.format(l.s/100),brightness:K.format(l.v/100)}),"aria-disabled":V||void 0,onKeyDown:e=>{const a=function(e,a,r){const l=e.shiftKey?10:1;switch(e.key){case"ArrowLeft":return{s:a-l,v:r};case"ArrowRight":return{s:a+l,v:r};case"ArrowUp":return{s:a,v:r+l};case"ArrowDown":return{s:a,v:r-l};case"PageUp":return{s:a,v:r+10};case"PageDown":return{s:a,v:r-10};case"Home":return{s:0,v:r};case"End":return{s:100,v:r};default:return null}}(e,l.s,l.v);!V&&a&&(e.preventDefault(),s({hsv:{h:l.h,s:c(a.s,0,100),v:c(a.v,0,100)},alpha:t}))},className:v(T,I[P],w[P],g,V?"cursor-default":"cursor-crosshair touch-none"),style:{backgroundColor:F,backgroundImage:"linear-gradient(to top, #000000, rgba(0, 0, 0, 0)), linear-gradient(to right, #ffffff, rgba(255, 255, 255, 0))"},children:e("span",{className:L,style:{width:E,height:E,left:`${l.s}%`,top:100-l.v+"%",marginLeft:U,marginTop:U,backgroundColor:$}})}),e("div",{...X(e=>s({hsv:{...l,h:360*O(e).x},alpha:t})),...Y(M.hue,R.format(l.h),l.h,360,2,!0,e=>s({hsv:{...l,h:e},alpha:t})),className:v(T,D[P],"rounded-full",g,V?"cursor-default":"cursor-pointer touch-none"),style:{backgroundImage:"linear-gradient(to right, #ff0000 0%, #ffff00 16.66%, #00ff00 33.33%, #00ffff 50%, #0000ff 66.66%, #ff00ff 83.33%, #ff0000 100%)"},children:e("span",{className:L,style:{width:E,height:E,left:l.h/360*100+"%",top:"50%",marginLeft:U,marginTop:U,backgroundColor:F}})}),y?a("div",{...X(e=>s({hsv:l,alpha:O(e).x})),...Y(M.alpha,K.format(t),100*t,100,1,!1,e=>s({hsv:l,alpha:e/100})),className:v(T,D[P],"rounded-full",g,V?"cursor-default":"cursor-pointer touch-none"),style:d,children:[e("span",{"aria-hidden":"true",className:"absolute inset-0",style:{backgroundImage:`linear-gradient(to right, ${u(l,0)}, ${$})`}}),e("span",{className:L,style:{width:E,height:E,left:100*t+"%",top:"50%",marginLeft:U,marginTop:U,backgroundColor:u(l,t)}})]}):null,N?a("div",{className:v("flex items-center",z[P]),children:[e("span",{"aria-hidden":"true",className:v("shrink-0 rounded-full border","[border-color:var(--neba-border)]"),style:{width:E+6,height:E+6,...d},children:e("span",{className:"block size-full rounded-full",style:{backgroundColor:u(l,t)}})}),e("input",{type:"text",value:h,readOnly:V,disabled:q,spellCheck:!1,autoComplete:"off","aria-label":M.value,onChange:e=>b(e.target.value),className:v("neba-input min-w-0 flex-1 border bg-transparent px-1.5 py-1 font-mono lowercase","[border-color:var(--neba-border)]",w.xs,x[P],"text-(--neba-fg)",C,"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-1")})]}):null,H.length>0?e("div",{role:"group","aria-label":M.swatches,className:"grid grid-cols-8 gap-1",children:H.map(({swatch:a,parsed:r,hex:l})=>{const t=null!==r&&l===W;return e("button",{type:"button",disabled:V,"aria-label":a,"aria-pressed":t,onClick:()=>{r&&s(r)},className:v("flex aspect-square items-center justify-center rounded-full border","[border-color:color-mix(in_oklab,var(--neba-fg)_18%,transparent)]","[transition:box-shadow_var(--neba-duration)_var(--neba-ease)]",g,V?"cursor-default":"cursor-pointer hover:[box-shadow:var(--neba-shadow-1)]","[&_svg]:size-3"),style:{backgroundColor:a},children:t&&r?e("span",{style:{color:m(r.hsv)},children:e(n,{})}):null},a)})}):null]})}function V(e,a){return"hex"===e?[a?"#ffffffff":"#ffffff"]:"rgb"===e?[a?"rgba(255, 255, 255, 0.55)":"rgb(255, 255, 255)"]:[a?"hsla(360, 100%, 100%, 0.55)":"hsl(360, 100%, 100%)"]}const q={h:217,s:87,v:82};export const ColorPicker=/*@__PURE__*/r.forwardRef(function ColorPicker(n,o){const{value:i,defaultValue:c="#1a58d1",onValueChange:m,format:g="hex",alpha:w=!1,swatches:C=h,inline:_=!1,editable:j=!0,label:I,labelPlacement:D,description:z,error:A,invalid:T,required:L=!1,disabled:O,readOnly:M=!1,fullWidth:S=!1,clearable:B=!1,name:E,open:K,defaultOpen:R=!1,onOpenChange:U,locale:F,labels:$,variant:H="outline",size:W="md",color:X="primary",density:Y="default",elevation:G=0,className:J,style:Q,...Z}=N(n,["size","density","variant","locale","labelPlacement"]),ee=P(O),ae=s(t,F),re=r.useMemo(()=>({...ae,...$}),[ae,$]),[le,ne]=r.useState(c),te=i??le,[oe,se]=r.useState(R),ie=K??oe,[de,ce]=r.useState(()=>p(te)??{hsv:q,alpha:1}),[ue,he]=r.useState(()=>te||""),fe=f(de.hsv,w?de.alpha:1,g),pe=""===te;r.useEffect(()=>{const e=p(te);e?f(e.hsv,w?e.alpha:1,g)!==fe&&(he(te),ce(e)):he(te)},[te,fe,w,g]);const me=(e,a)=>{ce(e);const r=f(e.hsv,w?e.alpha:1,g);he(a??r),void 0===i&&ne(r),m?.(r)},be=ee||M,ve=r.useId(),ge=r.useId(),xe=r.useId(),we=e(ColorPanel,{hsv:de.hsv,alphaValue:de.alpha,onChange:me,text:ue,onTextChange:e=>{he(e);const a=p(e);a&&me(a,e)},withAlpha:w,swatches:C,editable:j,size:W,inert:be,disabled:Boolean(ee),labels:re,locale:F}),ye=E?e("input",{type:"hidden",name:E,value:pe?"":fe,disabled:ee}):null,ke=L&&!be?e("input",{"aria-hidden":"true",tabIndex:-1,required:!0,value:pe?"":"chosen",onChange:()=>{},onInvalid:e=>e.currentTarget.parentElement?.querySelector('[role="slider"]')?.focus(),className:"pointer-events-none absolute start-0 bottom-0 size-px overflow-hidden opacity-0 [clip-path:inset(50%)]"}):null;if(_){const r=T??Boolean(A)?"danger":X,l=[z?ge:"",A?xe:""].filter(Boolean).join(" ");return a("div",{ref:o,role:"group","aria-labelledby":I?ve:void 0,"aria-describedby":l||void 0,className:v("relative flex flex-col",y[W],J),style:{...k(r,G),...Q},...Z,children:[I?e("span",{id:ve,className:v(x[W],"font-medium",ee?"text-(--neba-disabled-fg)":"text-(--neba-fg)"),children:I}):null,we,z?e("span",{id:ge,className:v(x[W],"text-(--neba-muted-fg)"),children:z}):null,A?e("span",{id:xe,className:v(x[W],"text-(--n-accent)"),children:A}):null,ye,ke]})}return e("div",{ref:o,className:S?"w-full":"inline-block",...Z,children:e(l,{variant:H,size:W,color:X,density:Y,elevation:G,style:Q,label:I,labelPlacement:D,description:z,error:A,invalid:T,required:L,disabled:ee,readOnly:M,fullWidth:S,className:J,startIcon:e("span",{"aria-hidden":"true",className:v("block size-[1.15em] shrink-0 rounded-full border","[border-color:color-mix(in_oklab,var(--neba-fg)_18%,transparent)]"),style:d,children:e("span",{className:"block size-full rounded-full",style:{backgroundColor:pe?"transparent":u(de.hsv,w?de.alpha:1)}})}),display:pe?re.empty:fe,samples:V(g,w),empty:pe,clearable:B,onClear:()=>{void 0===i&&ne(""),he(""),m?.("")},open:ie,onOpenChange:e=>{void 0===K&&se(e),U?.(e)},clearLabel:re.clear,initialFocus:!0,hiddenValues:E?[{name:E,value:pe?"":fe}]:void 0,children:e("div",{className:b[W],children:we})})})});
|
|
@@ -144,6 +144,17 @@ export interface ComboboxProps<Multiple extends boolean | undefined = false> ext
|
|
|
144
144
|
required?: boolean;
|
|
145
145
|
/** Identifies the field when a form is submitted. */
|
|
146
146
|
name?: string;
|
|
147
|
+
/**
|
|
148
|
+
* What the browser may fill the field in with, such as `country` or
|
|
149
|
+
* `address-level2`. It is written on the hidden input that submits the
|
|
150
|
+
* value, and an autofilled value that matches an option's value or label
|
|
151
|
+
* chooses that option. A `multiple` combobox ignores autofill, since a
|
|
152
|
+
* browser fills in one value.
|
|
153
|
+
*
|
|
154
|
+
* Not the `<input>` the reader types into: that one stays `off`, so the
|
|
155
|
+
* browser's own list of past entries does not open over the combobox's.
|
|
156
|
+
*/
|
|
157
|
+
autoComplete?: string;
|
|
147
158
|
/** The popup is open. Use with `onOpenChange` for a controlled popup. */
|
|
148
159
|
open?: boolean;
|
|
149
160
|
/** Whether the popup starts open. */
|