@studiocubics/components 0.0.22 → 0.0.23

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.
@@ -12,6 +12,6 @@ interface CheckboxGroupProps {
12
12
  onChange?: (checked: Record<string, boolean>) => void;
13
13
  }
14
14
  export declare const CheckboxGroupContext: import("react").Context<CheckboxGroupContextProps | null>;
15
- export declare const useCheckbox: () => CheckboxGroupContextProps;
15
+ export declare const useCheckbox: () => CheckboxGroupContextProps | null;
16
16
  export declare function CheckboxProvider({ children, onChange }: CheckboxGroupProps): import("react/jsx-runtime").JSX.Element;
17
17
  export {};
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as e}from"react/jsx-runtime";import{createContext as r,useContext as t,useState as n,useRef as o}from"react";const c=r(null),s=()=>{const e=t(c);if(!e)throw new Error("Components must be wrapped with <CheckboxProvider/>");return e};function i({children:r,onChange:t}){const[s,i]=n({}),[u,l]=n(0),a=o(-1),d=Object.keys(s).filter((e,r)=>Object.values(s)[r]);return e(c.Provider,{value:{values:s,selected:d,register:e=>{i(r=>({...r,[e]:!1}))},update:(e,r)=>{i(n=>{const o={...n,[e]:r};return t?.(o),o})},setAll:e=>{i(r=>{const n=Object.fromEntries(Object.keys(r).map(r=>[r,e]));return t?.(n),n})},reset:()=>{a.current=-1,i({}),l(e=>e+1)}},children:e("div",{children:r},u)})}export{c as CheckboxGroupContext,i as CheckboxProvider,s as useCheckbox};
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import{createContext as r,useContext as t,useState as n,useRef as c}from"react";const s=r(null),i=()=>t(s);function l({children:r,onChange:t}){const[i,l]=n({}),[o,u]=n(0),a=c(-1),d=Object.keys(i).filter((e,r)=>Object.values(i)[r]);return e(s.Provider,{value:{values:i,selected:d,register:e=>{l(r=>({...r,[e]:!1}))},update:(e,r)=>{l(n=>{const c={...n,[e]:r};return t?.(c),c})},setAll:e=>{l(r=>{const n=Object.fromEntries(Object.keys(r).map(r=>[r,e]));return t?.(n),n})},reset:()=>{a.current=-1,l({}),u(e=>e+1)}},children:e("div",{children:r},o)})}export{s as CheckboxGroupContext,l as CheckboxProvider,i as useCheckbox};
2
2
  //# sourceMappingURL=CheckboxProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxProvider.js","sources":["../../../src/Inputs/Checkbox/CheckboxProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n type ReactNode,\n useContext,\n useRef,\n useState,\n} from \"react\";\n\ninterface CheckboxGroupContextProps {\n values: Record<string, boolean>;\n selected: string[];\n register: (id: string) => void;\n update: (id: string, checked: boolean) => void;\n setAll: (checked: boolean) => void;\n reset: () => void;\n}\n\ninterface CheckboxGroupProps {\n children: ReactNode;\n onChange?: (checked: Record<string, boolean>) => void;\n}\n\nexport const CheckboxGroupContext =\n createContext<CheckboxGroupContextProps | null>(null);\n\nexport const useCheckbox = () => {\n const c = useContext(CheckboxGroupContext);\n if (!c)\n throw new Error(\"Components must be wrapped with <CheckboxProvider/>\");\n return c;\n};\n\nexport function CheckboxProvider({ children, onChange }: CheckboxGroupProps) {\n const [values, setValues] = useState<Record<string, boolean>>({});\n const [resetKey, setResetKey] = useState(0);\n const indexRef = useRef(-1);\n const selected = Object.keys(values).filter(\n (_, i) => Object.values(values)[i],\n );\n\n const register = (id: string) => {\n setValues((prev) => ({ ...prev, [id]: false }));\n };\n\n const update = (id: string, checked: boolean) => {\n setValues((prev) => {\n const next = { ...prev, [id]: checked };\n onChange?.(next);\n return next;\n });\n };\n\n const setAll = (checked: boolean) => {\n setValues((prev) => {\n const next = Object.fromEntries(\n Object.keys(prev).map((k) => [k, checked]),\n );\n onChange?.(next);\n return next;\n });\n };\n\n const reset = () => {\n indexRef.current = -1;\n setValues({});\n setResetKey((k) => k + 1);\n };\n return (\n <CheckboxGroupContext.Provider\n value={{ values, selected, register, update, setAll, reset }}\n >\n {/* resetKey forces all non-skipGroup checkboxes to remount and re-register */}\n <div key={resetKey}>{children}</div>\n </CheckboxGroupContext.Provider>\n );\n}\n"],"names":["CheckboxGroupContext","createContext","useCheckbox","c","useContext","Error","CheckboxProvider","children","onChange","values","setValues","useState","resetKey","setResetKey","indexRef","useRef","selected","Object","keys","filter","_","i","_jsx","Provider","value","register","id","prev","update","checked","next","setAll","fromEntries","map","k","reset","current"],"mappings":"2IAwBaA,EACXC,EAAgD,MAErCC,EAAc,KACzB,MAAMC,EAAIC,EAAWJ,GACrB,IAAKG,EACH,MAAM,IAAIE,MAAM,uDAClB,OAAOF,YAGOG,GAAiBC,SAAEA,EAAQC,SAAEA,IAC3C,MAAOC,EAAQC,GAAaC,EAAkC,CAAA,IACvDC,EAAUC,GAAeF,EAAS,GACnCG,EAAWC,MACXC,EAAWC,OAAOC,KAAKT,GAAQU,OACnC,CAACC,EAAGC,IAAMJ,OAAOR,OAAOA,GAAQY,IA8BlC,OACEC,EAACtB,EAAqBuB,SAAQ,CAC5BC,MAAO,CAAEf,SAAQO,WAAUS,SA7BbC,IAChBhB,EAAWiB,QAAeA,EAAMD,CAACA,IAAK,MA4BCE,OAzB1B,CAACF,EAAYG,KAC1BnB,EAAWiB,IACT,MAAMG,EAAO,IAAKH,EAAMD,CAACA,GAAKG,GAE9B,OADArB,IAAWsB,GACJA,KAqBsCC,OAjBjCF,IACdnB,EAAWiB,IACT,MAAMG,EAAOb,OAAOe,YAClBf,OAAOC,KAAKS,GAAMM,IAAKC,GAAM,CAACA,EAAGL,KAGnC,OADArB,IAAWsB,GACJA,KAW8CK,MAP3C,KACZrB,EAASsB,SAAU,EACnB1B,EAAU,CAAA,GACVG,EAAaqB,GAAMA,EAAI,KAIuC3B,SAG5De,EAAA,MAAA,CAAAf,SAAqBA,GAAXK,IAGhB"}
1
+ {"version":3,"file":"CheckboxProvider.js","sources":["../../../src/Inputs/Checkbox/CheckboxProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n type ReactNode,\n useContext,\n useRef,\n useState,\n} from \"react\";\n\ninterface CheckboxGroupContextProps {\n values: Record<string, boolean>;\n selected: string[];\n register: (id: string) => void;\n update: (id: string, checked: boolean) => void;\n setAll: (checked: boolean) => void;\n reset: () => void;\n}\n\ninterface CheckboxGroupProps {\n children: ReactNode;\n onChange?: (checked: Record<string, boolean>) => void;\n}\n\nexport const CheckboxGroupContext =\n createContext<CheckboxGroupContextProps | null>(null);\n\nexport const useCheckbox = () => {\n const c = useContext(CheckboxGroupContext);\n return c;\n};\n\nexport function CheckboxProvider({ children, onChange }: CheckboxGroupProps) {\n const [values, setValues] = useState<Record<string, boolean>>({});\n const [resetKey, setResetKey] = useState(0);\n const indexRef = useRef(-1);\n const selected = Object.keys(values).filter(\n (_, i) => Object.values(values)[i],\n );\n\n const register = (id: string) => {\n setValues((prev) => ({ ...prev, [id]: false }));\n };\n\n const update = (id: string, checked: boolean) => {\n setValues((prev) => {\n const next = { ...prev, [id]: checked };\n onChange?.(next);\n return next;\n });\n };\n\n const setAll = (checked: boolean) => {\n setValues((prev) => {\n const next = Object.fromEntries(\n Object.keys(prev).map((k) => [k, checked]),\n );\n onChange?.(next);\n return next;\n });\n };\n\n const reset = () => {\n indexRef.current = -1;\n setValues({});\n setResetKey((k) => k + 1);\n };\n return (\n <CheckboxGroupContext.Provider\n value={{ values, selected, register, update, setAll, reset }}\n >\n {/* resetKey forces all non-skipGroup checkboxes to remount and re-register */}\n <div key={resetKey}>{children}</div>\n </CheckboxGroupContext.Provider>\n );\n}\n"],"names":["CheckboxGroupContext","createContext","useCheckbox","useContext","CheckboxProvider","children","onChange","values","setValues","useState","resetKey","setResetKey","indexRef","useRef","selected","Object","keys","filter","_","i","_jsx","Provider","value","register","id","prev","update","checked","next","setAll","fromEntries","map","k","reset","current"],"mappings":"2IAwBaA,EACXC,EAAgD,MAErCC,EAAc,IACfC,EAAWH,YAIPI,GAAiBC,SAAEA,EAAQC,SAAEA,IAC3C,MAAOC,EAAQC,GAAaC,EAAkC,CAAA,IACvDC,EAAUC,GAAeF,EAAS,GACnCG,EAAWC,MACXC,EAAWC,OAAOC,KAAKT,GAAQU,OACnC,CAACC,EAAGC,IAAMJ,OAAOR,OAAOA,GAAQY,IA8BlC,OACEC,EAACpB,EAAqBqB,SAAQ,CAC5BC,MAAO,CAAEf,SAAQO,WAAUS,SA7BbC,IAChBhB,EAAWiB,QAAeA,EAAMD,CAACA,IAAK,MA4BCE,OAzB1B,CAACF,EAAYG,KAC1BnB,EAAWiB,IACT,MAAMG,EAAO,IAAKH,EAAMD,CAACA,GAAKG,GAE9B,OADArB,IAAWsB,GACJA,KAqBsCC,OAjBjCF,IACdnB,EAAWiB,IACT,MAAMG,EAAOb,OAAOe,YAClBf,OAAOC,KAAKS,GAAMM,IAAKC,GAAM,CAACA,EAAGL,KAGnC,OADArB,IAAWsB,GACJA,KAW8CK,MAP3C,KACZrB,EAASsB,SAAU,EACnB1B,EAAU,CAAA,GACVG,EAAaqB,GAAMA,EAAI,KAIuC3B,SAG5De,EAAA,MAAA,CAAAf,SAAqBA,GAAXK,IAGhB"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "access": "public"
6
6
  },
7
7
  "private": false,
8
- "version": "0.0.22",
8
+ "version": "0.0.23",
9
9
  "keywords": [
10
10
  "@studiocubics",
11
11
  "cubics",
@@ -34,9 +34,9 @@
34
34
  "react-dom": ">= 19"
35
35
  },
36
36
  "dependencies": {
37
- "@studiocubics/hooks": "^0.0.22",
38
- "@studiocubics/types": "^0.0.22",
39
- "@studiocubics/utils": "^0.0.22"
37
+ "@studiocubics/hooks": "^0.0.23",
38
+ "@studiocubics/types": "^0.0.23",
39
+ "@studiocubics/utils": "^0.0.23"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@eslint/js": "^9.39.1",