@sprocketui-react/button 1.0.2 → 1.0.4

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/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var L=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var Z=(t,e)=>{for(var s in e)L(t,s,{get:e[s],enumerable:!0})},tt=(t,e,s,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Q(e))!Y.call(t,n)&&n!==s&&L(t,n,{get:()=>e[n],enumerable:!(i=K(e,n))||i.enumerable});return t};var et=t=>tt(L({},"__esModule",{value:!0}),t);var ot={};Z(ot,{Button:()=>C,ButtonContext:()=>a,SprocketButton:()=>C,SprocketButtonContext:()=>a,useButton:()=>B,useButtonContext:()=>g,useSprocketButton:()=>B,useSprocketButtonContext:()=>g});module.exports=et(ot);var p=require("@necto-react/hooks"),u=require("@necto/dom"),A=require("@necto/mergers"),M=require("@necto-react/helpers"),E=require("shared"),H=u.HTMLElements.Button;function B(t,e){let{rel:s,href:i,target:n,autoFocus:f,focusDisabled:d,preventFocusOnPress:k,isDisabled:o=!1,type:b="button",as:x=H,elementType:r=x||H,onClick:l,onPress:R,onPressStart:y,onPressEnd:T,onPressUp:c,onPressChange:j}=t,F;r===u.HTMLElements.Button?F={type:b,disabled:o}:F={role:"button",href:r===u.HTMLElements.A&&!o?i:void 0,target:r===u.HTMLElements.A?n:void 0,type:r===u.HTMLElements.Input?b:void 0,disabled:r===u.HTMLElements.Input?o:void 0,"aria-disabled":!o||r===u.HTMLElements.Input?void 0:o,rel:r===u.HTMLElements.A?s:void 0};let{hoverProps:V,isHovered:G}=(0,p.useHover)({...t,isDisabled:o}),{focusProps:W,isFocused:X,isFocusVisible:$}=(0,p.useFocusRing)({autoFocus:f}),{focusableProps:O}=(0,p.useFocusable)(t,e),{pressProps:q,isPressed:z}=(0,p.usePress)({ref:e,isDisabled:o,preventFocusOnPress:k,onPressStart:y,onPressEnd:T,onPressChange:j,onPress:R,onPressUp:c,onClick:l});d&&(O.tabIndex=o?-1:O.tabIndex);let J=(0,A.mergeProps)(O,q,V,W,(0,M.filterDOMProps)(t,{allowLabelableProps:!0,allowedLabelableProps:new Set([]),allowedLinkProps:new Set(E.ANCHOR_ELEMENT_PROPS),extraAllowedProps:new Set(E.ALLOWED_EXTERNAL_PROPS)}));return{isFocused:X,isPressed:z,isHovered:G,isDisabled:o,isFocusVisible:$,elementType:r,buttonProps:(0,A.mergeProps)(J,F)}}var S=require("react"),a=(0,S.createContext)(null);var U=require("react");function g(){return(0,U.useContext)(a)}var w=require("@necto/strings"),I=require("@necto/mergers"),P=require("react"),N=require("shared"),D=require("@necto-react/components");var m=require("@necto-react/hooks"),h=require("react/jsx-runtime"),_="Button";function v(t,e){[t,e]=(0,m.useContextProps)({props:t,ref:e,context:a});let{buttonProps:s,isHovered:i,isPressed:n,isFocused:f,isDisabled:d,elementType:k,isFocusVisible:o}=B(t,e),b=(0,m.useId)({defaultId:s.id}),x=(0,m.useRenderer)({...t,values:{isHovered:i,isPressed:n,isFocused:f,isFocusVisible:o,isDisabled:d},defaultClassName:(0,N.buildInternalIdentifier)({component:_}),style:l=>({...t.style instanceof Function?t.style(l):t.style})}),r=(0,P.useMemo)(()=>{let l={hover:i,focus:f,focusVisible:o,disabled:d,pressed:n},R={},y=[];for(let[T,c]of Object.entries(l))typeof c=="boolean"&&(R[`data-${(0,w.kebabCase)(T)}`]=c?String(!0):void 0,c&&y.push((0,w.kebabCase)(T)));return{...R,"data-sprocket-state":y.join(" ")}},[i,f,o,d,n]);return(0,h.jsxs)(D.Primitive,{ref:e,as:k,...x,...(0,I.mergeProps)(s,r),id:b,slot:t.slot||void 0,children:["''",x.children]})}var C=Object.assign((0,P.forwardRef)((t,e)=>v(t,e)),{Root:(0,P.forwardRef)((t,e)=>v(t,e))});C.displayName=_;0&&(module.exports={Button,ButtonContext,SprocketButton,SprocketButtonContext,useButton,useButtonContext,useSprocketButton,useSprocketButtonContext});
1
+ "use strict";var L=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var tt=Object.prototype.hasOwnProperty;var et=(t,e)=>{for(var n in e)L(t,n,{get:e[n],enumerable:!0})},ot=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Y(e))!tt.call(t,o)&&o!==n&&L(t,o,{get:()=>e[o],enumerable:!(s=Q(e,o))||s.enumerable});return t};var rt=t=>ot(L({},"__esModule",{value:!0}),t);var nt={};et(nt,{Button:()=>C,ButtonContext:()=>m,SprocketButton:()=>C,SprocketButtonContext:()=>m,useButton:()=>P,useButtonContext:()=>w,useSprocketButton:()=>P,useSprocketButtonContext:()=>w});module.exports=rt(nt);var p=require("@necto-react/hooks"),a=require("@necto/dom"),k=require("@necto/mergers"),_=require("@necto-react/helpers");var F=["rel","href","ping","target","download","hrefLang","referrerPolicy"],M=["id","form","name","value","formAction","formEncType","formMethod","formTarget","formNoValidate"];function O(t,e){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function S({prefix:t=":sprocket:=",component:e,variant:n,state:s,unique:o,obscure:f}){if(!e)throw new Error("Component context is required!");let u=[t+O(e,!1)];return n&&u.push(O(n,!1)),Array.isArray(s)&&s.length&&u.push(...s.map(l=>O(l,!1))),o&&u.push(Math.random().toString(36).slice(2,8)),f&&u.push(Math.random().toString(36).slice(2,16)),u.join("--")}var H=a.HTMLElements.Button;function P(t,e){let{rel:n,href:s,target:o,autoFocus:f,focusDisabled:u,preventFocusOnPress:l,isDisabled:r=!1,type:R="button",as:x=H,elementType:i=x||H,onClick:c,onPress:y,onPressStart:T,onPressEnd:E,onPressUp:B,onPressChange:$}=t,g;i===a.HTMLElements.Button?g={type:R,disabled:r}:g={role:"button",href:i===a.HTMLElements.A&&!r?s:void 0,target:i===a.HTMLElements.A?o:void 0,type:i===a.HTMLElements.Input?R:void 0,disabled:i===a.HTMLElements.Input?r:void 0,"aria-disabled":!r||i===a.HTMLElements.Input?void 0:r,rel:i===a.HTMLElements.A?n:void 0};let{hoverProps:G,isHovered:W}=(0,p.useHover)({...t,isDisabled:r}),{focusProps:X,isFocused:q,isFocusVisible:z}=(0,p.useFocusRing)({autoFocus:f}),{focusableProps:A}=(0,p.useFocusable)(t,e),{pressProps:Z,isPressed:J}=(0,p.usePress)({ref:e,isDisabled:r,preventFocusOnPress:l,onPressStart:T,onPressEnd:E,onPressChange:$,onPress:y,onPressUp:B,onClick:c});u&&(A.tabIndex=r?-1:A.tabIndex);let K=(0,k.mergeProps)(A,Z,G,X,(0,_.filterDOMProps)(t,{allowLabelableProps:!0,allowedLabelableProps:new Set([]),allowedLinkProps:new Set(F),extraAllowedProps:new Set(M)}));return{isFocused:q,isPressed:J,isHovered:W,isDisabled:r,isFocusVisible:z,elementType:i,buttonProps:(0,k.mergeProps)(K,g)}}var v=require("react"),m=(0,v.createContext)(null);var N=require("react");function w(){return(0,N.useContext)(m)}var h=require("@necto/strings"),I=require("@necto/mergers"),b=require("react");var D=require("@necto-react/components");var d=require("@necto-react/hooks"),V=require("react/jsx-runtime"),j="Button";function U(t,e){[t,e]=(0,d.useContextProps)({props:t,ref:e,context:m});let{buttonProps:n,isHovered:s,isPressed:o,isFocused:f,isDisabled:u,elementType:l,isFocusVisible:r}=P(t,e),R=(0,d.useId)({defaultId:n.id}),x=(0,d.useRenderer)({...t,values:{isHovered:s,isPressed:o,isFocused:f,isFocusVisible:r,isDisabled:u},defaultClassName:S({component:j}),style:c=>({...t.style instanceof Function?t.style(c):t.style})}),i=(0,b.useMemo)(()=>{let c={hover:s,focus:f,focusVisible:r,disabled:u,pressed:o},y={},T=[];for(let[E,B]of Object.entries(c))typeof B=="boolean"&&(y[`data-${(0,h.kebabCase)(E)}`]=B?String(!0):void 0,B&&T.push((0,h.kebabCase)(E)));return{...y,"data-sprocket-state":T.join(" ")}},[s,f,r,u,o]);return(0,V.jsxs)(D.Primitive,{ref:e,as:l,...x,...(0,I.mergeProps)(n,i),id:R,slot:t.slot||void 0,children:["''",x.children]})}var C=Object.assign((0,b.forwardRef)((t,e)=>U(t,e)),{Root:(0,b.forwardRef)((t,e)=>U(t,e))});C.displayName=j;0&&(module.exports={Button,ButtonContext,SprocketButton,SprocketButtonContext,useButton,useButtonContext,useSprocketButton,useSprocketButtonContext});
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{useHover as _,usePress as h,useFocusRing as j,useFocusable as V}from"@necto-react/hooks";import{HTMLElements as r}from"@necto/dom";import{mergeProps as C}from"@necto/mergers";import{filterDOMProps as G}from"@necto-react/helpers";import{ANCHOR_ELEMENT_PROPS as W,ALLOWED_EXTERNAL_PROPS as X}from"shared";var k=r.Button;function x(t,o){let{rel:d,href:u,target:i,autoFocus:p,focusDisabled:a,preventFocusOnPress:R,isDisabled:e=!1,type:l="button",as:c=k,elementType:n=c||k,onClick:m,onPress:B,onPressStart:P,onPressEnd:b,onPressUp:f,onPressChange:w}=t,y;n===r.Button?y={type:l,disabled:e}:y={role:"button",href:n===r.A&&!e?u:void 0,target:n===r.A?i:void 0,type:n===r.Input?l:void 0,disabled:n===r.Input?e:void 0,"aria-disabled":!e||n===r.Input?void 0:e,rel:n===r.A?d:void 0};let{hoverProps:H,isHovered:M}=_({...t,isDisabled:e}),{focusProps:S,isFocused:U,isFocusVisible:v}=j({autoFocus:p}),{focusableProps:T}=V(t,o),{pressProps:I,isPressed:N}=h({ref:o,isDisabled:e,preventFocusOnPress:R,onPressStart:P,onPressEnd:b,onPressChange:w,onPress:B,onPressUp:f,onClick:m});a&&(T.tabIndex=e?-1:T.tabIndex);let D=C(T,I,H,S,G(t,{allowLabelableProps:!0,allowedLabelableProps:new Set([]),allowedLinkProps:new Set(W),extraAllowedProps:new Set(X)}));return{isFocused:U,isPressed:N,isHovered:M,isDisabled:e,isFocusVisible:v,elementType:n,buttonProps:C(D,y)}}import{createContext as $}from"react";var s=$(null);import{useContext as q}from"react";function F(){return q(s)}import{kebabCase as O}from"@necto/strings";import{mergeProps as z}from"@necto/mergers";import{forwardRef as L,useMemo as J}from"react";import{buildInternalIdentifier as K}from"shared";import{Primitive as Q}from"@necto-react/components";import{useContextProps as Y,useRenderer as Z,useId as tt}from"@necto-react/hooks";import{jsxs as et}from"react/jsx-runtime";var g="Button";function A(t,o){[t,o]=Y({props:t,ref:o,context:s});let{buttonProps:d,isHovered:u,isPressed:i,isFocused:p,isDisabled:a,elementType:R,isFocusVisible:e}=x(t,o),l=tt({defaultId:d.id}),c=Z({...t,values:{isHovered:u,isPressed:i,isFocused:p,isFocusVisible:e,isDisabled:a},defaultClassName:K({component:g}),style:m=>({...t.style instanceof Function?t.style(m):t.style})}),n=J(()=>{let m={hover:u,focus:p,focusVisible:e,disabled:a,pressed:i},B={},P=[];for(let[b,f]of Object.entries(m))typeof f=="boolean"&&(B[`data-${O(b)}`]=f?String(!0):void 0,f&&P.push(O(b)));return{...B,"data-sprocket-state":P.join(" ")}},[u,p,e,a,i]);return et(Q,{ref:o,as:R,...c,...z(d,n),id:l,slot:t.slot||void 0,children:["''",c.children]})}var E=Object.assign(L((t,o)=>A(t,o)),{Root:L((t,o)=>A(t,o))});E.displayName=g;export{E as Button,s as ButtonContext,E as SprocketButton,s as SprocketButtonContext,x as useButton,F as useButtonContext,x as useSprocketButton,F as useSprocketButtonContext};
1
+ import{useHover as $,usePress as G,useFocusRing as W,useFocusable as X}from"@necto-react/hooks";import{HTMLElements as u}from"@necto/dom";import{mergeProps as O}from"@necto/mergers";import{filterDOMProps as q}from"@necto-react/helpers";var g=["rel","href","ping","target","download","hrefLang","referrerPolicy"],A=["id","form","name","value","formAction","formEncType","formMethod","formTarget","formNoValidate"];function E(t,e){return t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function L({prefix:t=":sprocket:=",component:e,variant:i,state:s,unique:a,obscure:p}){if(!e)throw new Error("Component context is required!");let r=[t+E(e,!1)];return i&&r.push(E(i,!1)),Array.isArray(s)&&s.length&&r.push(...s.map(m=>E(m,!1))),a&&r.push(Math.random().toString(36).slice(2,8)),p&&r.push(Math.random().toString(36).slice(2,16)),r.join("--")}var k=u.Button;function x(t,e){let{rel:i,href:s,target:a,autoFocus:p,focusDisabled:r,preventFocusOnPress:m,isDisabled:o=!1,type:c="button",as:B=k,elementType:n=B||k,onClick:d,onPress:P,onPressStart:b,onPressEnd:R,onPressUp:l,onPressChange:H}=t,y;n===u.Button?y={type:c,disabled:o}:y={role:"button",href:n===u.A&&!o?s:void 0,target:n===u.A?a:void 0,type:n===u.Input?c:void 0,disabled:n===u.Input?o:void 0,"aria-disabled":!o||n===u.Input?void 0:o,rel:n===u.A?i:void 0};let{hoverProps:_,isHovered:v}=$({...t,isDisabled:o}),{focusProps:N,isFocused:U,isFocusVisible:I}=W({autoFocus:p}),{focusableProps:T}=X(t,e),{pressProps:D,isPressed:j}=G({ref:e,isDisabled:o,preventFocusOnPress:m,onPressStart:b,onPressEnd:R,onPressChange:H,onPress:P,onPressUp:l,onClick:d});r&&(T.tabIndex=o?-1:T.tabIndex);let V=O(T,D,_,N,q(t,{allowLabelableProps:!0,allowedLabelableProps:new Set([]),allowedLinkProps:new Set(g),extraAllowedProps:new Set(A)}));return{isFocused:U,isPressed:j,isHovered:v,isDisabled:o,isFocusVisible:I,elementType:n,buttonProps:O(V,y)}}import{createContext as z}from"react";var f=z(null);import{useContext as Z}from"react";function w(){return Z(f)}import{kebabCase as h}from"@necto/strings";import{mergeProps as J}from"@necto/mergers";import{forwardRef as F,useMemo as K}from"react";import{Primitive as Q}from"@necto-react/components";import{useContextProps as Y,useRenderer as tt,useId as et}from"@necto-react/hooks";import{jsxs as ot}from"react/jsx-runtime";var S="Button";function M(t,e){[t,e]=Y({props:t,ref:e,context:f});let{buttonProps:i,isHovered:s,isPressed:a,isFocused:p,isDisabled:r,elementType:m,isFocusVisible:o}=x(t,e),c=et({defaultId:i.id}),B=tt({...t,values:{isHovered:s,isPressed:a,isFocused:p,isFocusVisible:o,isDisabled:r},defaultClassName:L({component:S}),style:d=>({...t.style instanceof Function?t.style(d):t.style})}),n=K(()=>{let d={hover:s,focus:p,focusVisible:o,disabled:r,pressed:a},P={},b=[];for(let[R,l]of Object.entries(d))typeof l=="boolean"&&(P[`data-${h(R)}`]=l?String(!0):void 0,l&&b.push(h(R)));return{...P,"data-sprocket-state":b.join(" ")}},[s,p,o,r,a]);return ot(Q,{ref:e,as:m,...B,...J(i,n),id:c,slot:t.slot||void 0,children:["''",B.children]})}var C=Object.assign(F((t,e)=>M(t,e)),{Root:F((t,e)=>M(t,e))});C.displayName=S;export{C as Button,f as ButtonContext,C as SprocketButton,f as SprocketButtonContext,x as useButton,w as useButtonContext,x as useSprocketButton,w as useSprocketButtonContext};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sprocketui-react/button",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Sprocket's standalone React button component.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -25,8 +25,7 @@
25
25
  "@necto/strings": "^1.4.0",
26
26
  "@react-aria/focus": "^3.20.2",
27
27
  "react-aria": "^3.39.0",
28
- "@sprocketui-types/button": "1.0.1",
29
- "shared": "1.0.0"
28
+ "@sprocketui-types/button": "1.0.2"
30
29
  },
31
30
  "peerDependencies": {
32
31
  "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
@@ -41,7 +40,8 @@
41
40
  "react": "^19.1.0",
42
41
  "react-dom": "^19.1.0",
43
42
  "tsup": "^8.4.0",
44
- "vitest": "^3.2.4"
43
+ "vitest": "^3.2.4",
44
+ "shared": "1.0.0"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "tsup",