@jamsrui/autocomplete 0.0.14 → 0.0.16
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/autocomplete-config.mjs +1 -1
- package/dist/autocomplete-content.mjs +1 -1
- package/dist/autocomplete-context.mjs +1 -1
- package/dist/autocomplete-item.mjs +1 -1
- package/dist/autocomplete-popover.mjs +1 -1
- package/dist/autocomplete.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/styles.mjs +1 -1
- package/dist/use-autocomplete.mjs +1 -1
- package/package.json +5 -5
- package/dist/chunk-5P6HG57B.mjs +0 -1
- package/dist/chunk-AEIYFGAK.mjs +0 -1
- package/dist/chunk-DM2VGQ5L.mjs +0 -1
- package/dist/chunk-I4CZYRCA.mjs +0 -1
- package/dist/chunk-J6ZMQI6N.mjs +0 -1
- package/dist/chunk-PK2XV76J.mjs +0 -1
- package/dist/chunk-TEVAE63Y.mjs +0 -1
- package/dist/chunk-ZS2N3ITA.mjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{createConfigContext as o}from"@jamsrui/utils";const[t,p]=o({displayName:"AutocompleteConfig"});export{t as AutocompleteConfig,p as useAutocompleteConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import{FloatingList as n}from"@floating-ui/react";import{useRenderElement as p}from"@jamsrui/hooks";import{useAutocompleteContext as s}from"./autocomplete-context.mjs";const u=t=>{const{getContentProps:o,getFloatingListProps:e}=s(),r=p("div",{props:[o(t)]});return m(n,{...e(),children:r})};export{u as AutocompleteContent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{createContext as t,use as o}from"react";const p=t(null),r=()=>{const e=o(p);if(!e)throw new Error("useAutocompleteContext must be used within Autocomplete");return e};export{p as AutocompleteContext,r as useAutocompleteContext};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{useListItem as I}from"@floating-ui/react";import{useHover as g,useMergeRefs as A,useRenderElement as P}from"@jamsrui/hooks";import{useAutocompleteContext as h}from"./autocomplete-context.mjs";const V=l=>{const{textValue:a,children:e,value:t,disabled:i,...n}=l,{getAutocompleteItemProps:d,activeIndex:c,value:m}=h(),s=a??(typeof e=="string"?e:t);s.length||console.warn(`No label provided for list item with value ${t}`);const{ref:p,index:u}=I({label:s}),o=i??!1,r=m.includes(t),f=c===u,{isHovered:v,ref:b}=g({isDisabled:o}),x=A([p,b]);return P("li",{props:[d(n),{ref:x,"aria-selected":r,"data-selected":r,"aria-disabled":o,"data-disabled":o,"data-active":f,"data-hovered":v,children:e}]})};export{V as AutocompleteItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{FloatingFocusManager as s,FloatingPortal as a}from"@floating-ui/react";import{useRenderElement as l}from"@jamsrui/hooks";import{useAutocompleteContext as m}from"./autocomplete-context.mjs";const i=e=>{const{getPopoverProps:t,isOpen:r,getFocusManagerProps:p}=m(),n=l("button",{props:[t(e)]});return r?o(a,{children:o(s,{...p(),children:n})}):null};export{i as AutocompletePopover};
|
package/dist/autocomplete.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Fragment as x,jsx as o,jsxs as v}from"react/jsx-runtime";import{useRenderElement as l}from"@jamsrui/hooks";import{Input as i}from"@jamsrui/input";import{mergeConfigProps as f}from"@jamsrui/utils";import{useAutocompleteConfig as A}from"./autocomplete-config.mjs";import{AutocompleteContent as d}from"./autocomplete-content.mjs";import{AutocompleteContext as P}from"./autocomplete-context.mjs";import{AutocompletePopover as g}from"./autocomplete-popover.mjs";import{useAutocomplete as C}from"./use-autocomplete.mjs";const w=e=>{const{children:p}=e,t=A(),m=f(t,t,e),r=C(m),{getRootProps:n,getInputProps:c}=r,s=v(x,{children:[o(i,{...c({})}),o(g,{children:o(d,{children:p})})]}),u=l("div",{props:[n({}),{children:s}]});return o(P,{value:r,children:u})};export{w as Autocomplete};
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{
|
|
1
|
+
"use client";import{Autocomplete as t}from"./autocomplete.mjs";import{AutocompleteConfig as p,useAutocompleteConfig as r}from"./autocomplete-config.mjs";import{AutocompleteItem as c}from"./autocomplete-item.mjs";export{t as Autocomplete,p as AutocompleteConfig,c as AutocompleteItem,r as useAutocompleteConfig};
|
package/dist/styles.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{radiusVariant as e,tv as o}from"@jamsrui/utils";const r=o({slots:{root:["group relative flex w-full flex-col text-sm"],popover:"z-popover flex flex-col overflow-hidden rounded-2xl bg-surface shadow-md backdrop-blur-3xl focus:outline-none",content:"flex flex-col gap-px overflow-y-auto p-2",emptyContent:"text-foreground-500",item:["relative flex w-full cursor-pointer select-none items-center gap-2 rounded-xl p-2 text-sm","ui-hover:bg-surface-secondary","ui-active:bg-surface-secondary","ui-selected:bg-surface-secondary/50","ui-disabled:cursor-not-allowed ui-disabled:opacity-60"]},variants:{radius:e(["popover","item"])},defaultVariants:{radius:"md"}});export{r as autocompleteVariants};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./
|
|
1
|
+
import{useCallback as s,useMemo as B,useRef as J,useState as c}from"react";import{autoUpdate as Q,flip as X,offset as Y,size as Z,useDismiss as _,useFloating as ee,useInteractions as te,useListNavigation as oe,useRole as se}from"@floating-ui/react";import{useControlledState as M}from"@jamsrui/hooks";import{cn as r,dataAttrDev as a,mapPropsVariants as ne}from"@jamsrui/utils";import{autocompleteVariants as V}from"./styles.mjs";const ge=S=>{const[R,G]=ne(S,V.variantKeys),{classNames:t,isOpen:L,defaultOpen:T,onOpenChange:j,value:k,defaultValue:w,onValueChange:D,placement:u="bottom-start",isMultiple:ae,...p}=R,P=J([]),[l,H]=c(null),[$,re]=c(1),[pe,E]=c(!1),[m=!1,i]=M({defaultProp:T,onChange:j,prop:L}),[d=[],le]=M({defaultProp:w,onChange:D,prop:k}),{refs:{setReference:g,setFloating:f},floatingStyles:v,context:n}=ee({placement:u,open:m,onOpenChange:i,whileElementsMounted:Q,middleware:[Y(2),X({crossAxis:u.includes("-"),padding:0}),Z({apply({rects:e,elements:U,availableHeight:q}){Object.assign(U.floating.style,{maxHeight:`${Math.max(50,Math.min(400,q))}px`,minWidth:`${e.reference.width}px`})},padding:0})]}),W=oe(n,{listRef:P,activeIndex:l,selectedIndex:$,onNavigate:H,virtual:!0,loop:!0}),z=_(n,{outsidePress:!0}),K=se(n,{role:"listbox"}),{getReferenceProps:y,getFloatingProps:A,getItemProps:me}=te([W,z,K]),N=s(()=>{E(!0),i(e=>!e)},[i]),o=V(G),I=s(()=>({...p,"data-component":a("autocomplete"),"data-slot":a("root"),className:o.root({className:r(t?.root,p.className)})}),[t?.root,p,o]),C=s(e=>({...e,"data-slot":a("item"),className:o.item({className:r(t?.item,e.className)})}),[t?.item,o]),h=s(e=>({...e,"data-slot":a("popover"),className:o.popover({className:r(t?.popover,e.className)}),style:v,...A({}),ref:f}),[t?.popover,v,A,f,o]),x=s(e=>({...e,"data-slot":a("content"),className:o.content({className:r(t?.content,e.className)})}),[t?.content,o]),F=s(()=>({context:n,initialFocus:-1,visuallyHiddenDismiss:!0,modal:!0,restoreFocus:!0}),[n]),O=s(()=>({elementsRef:P}),[]),b=s(e=>({...e,...y({}),slotProps:{contentWrapper:{ref:g,onClick:N}}}),[y,N,g]);return B(()=>({getAutocompleteItemProps:C,getRootProps:I,getInputProps:b,getContentProps:x,getPopoverProps:h,getFloatingListProps:O,getFocusManagerProps:F,isOpen:m,activeIndex:l,value:d}),[l,C,x,O,F,b,h,I,m,d])};export{ge as useAutocomplete};
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jamsrui/autocomplete",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"motion": ">=12",
|
|
6
6
|
"react": ">=19"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@floating-ui/react": ">=0.27",
|
|
10
|
-
"@jamsrui/
|
|
11
|
-
"@jamsrui/
|
|
12
|
-
"@jamsrui/
|
|
13
|
-
"@jamsrui/
|
|
10
|
+
"@jamsrui/input": "^0.0.16",
|
|
11
|
+
"@jamsrui/core": "^0.0.13",
|
|
12
|
+
"@jamsrui/utils": "^0.0.15",
|
|
13
|
+
"@jamsrui/hooks": "^0.0.15"
|
|
14
14
|
},
|
|
15
15
|
"exports": {
|
|
16
16
|
".": {
|
package/dist/chunk-5P6HG57B.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{radiusVariant as e,tv as o}from"@jamsrui/utils";var r=o({slots:{root:["group relative flex w-full flex-col text-sm"],popover:"z-popover flex flex-col overflow-hidden rounded-2xl bg-surface shadow-md backdrop-blur-3xl focus:outline-none",content:"flex flex-col gap-px overflow-y-auto p-2",emptyContent:"text-foreground-500",item:["relative flex w-full cursor-pointer select-none items-center gap-2 rounded-xl p-2 text-sm","ui-hover:bg-surface-secondary","ui-active:bg-surface-secondary","ui-selected:bg-surface-secondary/50","ui-disabled:cursor-not-allowed ui-disabled:opacity-60"]},variants:{radius:e(["popover","item"])},defaultVariants:{radius:"md"}});export{r as a};
|
package/dist/chunk-AEIYFGAK.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as l}from"./chunk-DM2VGQ5L.mjs";import{useListItem as g}from"@floating-ui/react";import{useHover as A,useMergeRefs as P,useRenderElement as h}from"@jamsrui/hooks";var V=a=>{let{textValue:i,children:e,value:t,disabled:n,...d}=a,{getAutocompleteItemProps:c,activeIndex:m,value:p}=l(),s=i??(typeof e=="string"?e:t);s.length||console.warn(`No label provided for list item with value ${t}`);let{ref:u,index:f}=g({label:s}),o=n??!1,r=p.includes(t),v=m===f,{isHovered:b,ref:x}=A({isDisabled:o}),I=P([u,x]);return h("li",{props:[c(d),{ref:I,"aria-selected":r,"data-selected":r,"aria-disabled":o,"data-disabled":o,"data-active":v,"data-hovered":b,children:e}]})};export{V as a};
|
package/dist/chunk-DM2VGQ5L.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createContext as t,use as o}from"react";var p=t(null),r=()=>{let e=o(p);if(!e)throw new Error("useAutocompleteContext must be used within Autocomplete");return e};export{p as a,r as b};
|
package/dist/chunk-I4CZYRCA.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as o}from"./chunk-DM2VGQ5L.mjs";import{FloatingFocusManager as a,FloatingPortal as l}from"@floating-ui/react";import{useRenderElement as m}from"@jamsrui/hooks";import{jsx as e}from"react/jsx-runtime";var i=t=>{let{getPopoverProps:r,isOpen:p,getFocusManagerProps:n}=o(),s=m("button",{props:[r(t)]});return p?e(l,{children:e(a,{...n(),children:s})}):null};export{i as a};
|
package/dist/chunk-J6ZMQI6N.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as s}from"./chunk-ZS2N3ITA.mjs";import{b as p}from"./chunk-TEVAE63Y.mjs";import{a as n}from"./chunk-PK2XV76J.mjs";import{a as c}from"./chunk-I4CZYRCA.mjs";import{a as m}from"./chunk-DM2VGQ5L.mjs";import{useRenderElement as P}from"@jamsrui/hooks";import{Input as g}from"@jamsrui/input";import{mergeConfigProps as C}from"@jamsrui/utils";import{Fragment as x,jsx as o,jsxs as v}from"react/jsx-runtime";var w=e=>{let{children:u}=e,t=p(),l=C(t,t,e),r=s(l),{getRootProps:i,getInputProps:f}=r,A=v(x,{children:[o(g,{...f({})}),o(c,{children:o(n,{children:u})})]}),d=P("div",{props:[i({}),{children:A}]});return o(m,{value:r,children:d})};export{w as a};
|
package/dist/chunk-PK2XV76J.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as t}from"./chunk-DM2VGQ5L.mjs";import{FloatingList as p}from"@floating-ui/react";import{useRenderElement as s}from"@jamsrui/hooks";import{jsx as m}from"react/jsx-runtime";var u=o=>{let{getContentProps:e,getFloatingListProps:r}=t(),n=s("div",{props:[e(o)]});return m(p,{...r(),children:n})};export{u as a};
|
package/dist/chunk-TEVAE63Y.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createConfigContext as o}from"@jamsrui/utils";var[t,p]=o({displayName:"AutocompleteConfig"});export{t as a,p as b};
|
package/dist/chunk-ZS2N3ITA.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c}from"./chunk-5P6HG57B.mjs";import{useCallback as s,useMemo as B,useRef as J,useState as u}from"react";import{autoUpdate as Q,flip as X,offset as Y,size as Z,useDismiss as _,useFloating as ee,useInteractions as te,useListNavigation as oe,useRole as se}from"@floating-ui/react";import{useControlledState as V}from"@jamsrui/hooks";import{cn as r,dataAttrDev as a,mapPropsVariants as ne}from"@jamsrui/utils";var ge=S=>{let[R,G]=ne(S,c.variantKeys),{classNames:t,isOpen:L,defaultOpen:T,onOpenChange:j,value:k,defaultValue:w,onValueChange:D,placement:P="bottom-start",isMultiple:ae,...p}=R,d=J([]),[l,H]=u(null),[$,re]=u(1),[pe,E]=u(!1),[m=!1,i]=V({defaultProp:T,onChange:j,prop:L}),[g=[],le]=V({defaultProp:w,onChange:D,prop:k}),{refs:{setReference:f,setFloating:v},floatingStyles:y,context:n}=ee({placement:P,open:m,onOpenChange:i,whileElementsMounted:Q,middleware:[Y(2),X({crossAxis:P.includes("-"),padding:0}),Z({apply({rects:e,elements:U,availableHeight:q}){Object.assign(U.floating.style,{maxHeight:`${Math.max(50,Math.min(400,q))}px`,minWidth:`${e.reference.width}px`})},padding:0})]}),W=oe(n,{listRef:d,activeIndex:l,selectedIndex:$,onNavigate:H,virtual:!0,loop:!0}),z=_(n,{outsidePress:!0}),K=se(n,{role:"listbox"}),{getReferenceProps:A,getFloatingProps:N,getItemProps:me}=te([W,z,K]),I=s(()=>{E(!0),i(e=>!e)},[i]),o=c(G),C=s(()=>({...p,"data-component":a("autocomplete"),"data-slot":a("root"),className:o.root({className:r(t?.root,p.className)})}),[t?.root,p,o]),h=s(e=>({...e,"data-slot":a("item"),className:o.item({className:r(t?.item,e.className)})}),[t?.item,o]),x=s(e=>({...e,"data-slot":a("popover"),className:o.popover({className:r(t?.popover,e.className)}),style:y,...N({}),ref:v}),[t?.popover,y,N,v,o]),F=s(e=>({...e,"data-slot":a("content"),className:o.content({className:r(t?.content,e.className)})}),[t?.content,o]),O=s(()=>({context:n,initialFocus:-1,visuallyHiddenDismiss:!0,modal:!0,restoreFocus:!0}),[n]),b=s(()=>({elementsRef:d}),[]),M=s(e=>({...e,...A({}),slotProps:{contentWrapper:{ref:f,onClick:I}}}),[A,I,f]);return B(()=>({getAutocompleteItemProps:h,getRootProps:C,getInputProps:M,getContentProps:F,getPopoverProps:x,getFloatingListProps:b,getFocusManagerProps:O,isOpen:m,activeIndex:l,value:g}),[l,h,F,b,O,M,x,C,m,g])};export{ge as a};
|