@vitus-labs/core 1.3.2 → 1.3.3

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.
@@ -5386,7 +5386,7 @@ var drawChart = (function (exports) {
5386
5386
  </script>
5387
5387
  <script>
5388
5388
  /*<!--*/
5389
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.js","children":[{"name":"src","children":[{"uid":"44034ba7-1","name":"compose.ts"},{"uid":"44034ba7-3","name":"config.ts"},{"uid":"44034ba7-5","name":"isEmpty.ts"},{"uid":"44034ba7-7","name":"context.tsx"},{"uid":"44034ba7-9","name":"hoistNonReactStatics.ts"},{"name":"html/htmlTags.ts","uid":"44034ba7-11"},{"uid":"44034ba7-13","name":"render.ts"},{"uid":"44034ba7-15","name":"utils.ts"},{"uid":"44034ba7-17","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"44034ba7-1":{"renderedLength":313,"gzipLength":240,"brotliLength":0,"metaUid":"44034ba7-0"},"44034ba7-3":{"renderedLength":795,"gzipLength":311,"brotliLength":0,"metaUid":"44034ba7-2"},"44034ba7-5":{"renderedLength":236,"gzipLength":163,"brotliLength":0,"metaUid":"44034ba7-4"},"44034ba7-7":{"renderedLength":1041,"gzipLength":496,"brotliLength":0,"metaUid":"44034ba7-6"},"44034ba7-9":{"renderedLength":1747,"gzipLength":641,"brotliLength":0,"metaUid":"44034ba7-8"},"44034ba7-11":{"renderedLength":1363,"gzipLength":483,"brotliLength":0,"metaUid":"44034ba7-10"},"44034ba7-13":{"renderedLength":577,"gzipLength":275,"brotliLength":0,"metaUid":"44034ba7-12"},"44034ba7-15":{"renderedLength":2911,"gzipLength":1054,"brotliLength":0,"metaUid":"44034ba7-14"},"44034ba7-17":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"44034ba7-16"}},"nodeMetas":{"44034ba7-0":{"id":"/src/compose.ts","moduleParts":{"index.js":"44034ba7-1"},"imported":[],"importedBy":[{"uid":"44034ba7-16"}]},"44034ba7-2":{"id":"/src/config.ts","moduleParts":{"index.js":"44034ba7-3"},"imported":[{"uid":"44034ba7-19"}],"importedBy":[{"uid":"44034ba7-16"},{"uid":"44034ba7-6"}]},"44034ba7-4":{"id":"/src/isEmpty.ts","moduleParts":{"index.js":"44034ba7-5"},"imported":[],"importedBy":[{"uid":"44034ba7-16"},{"uid":"44034ba7-6"},{"uid":"44034ba7-12"}]},"44034ba7-6":{"id":"/src/context.tsx","moduleParts":{"index.js":"44034ba7-7"},"imported":[{"uid":"44034ba7-20"},{"uid":"44034ba7-2"},{"uid":"44034ba7-4"},{"uid":"44034ba7-21"}],"importedBy":[{"uid":"44034ba7-16"}]},"44034ba7-8":{"id":"/src/hoistNonReactStatics.ts","moduleParts":{"index.js":"44034ba7-9"},"imported":[{"uid":"44034ba7-22"}],"importedBy":[{"uid":"44034ba7-16"}]},"44034ba7-10":{"id":"/src/html/htmlTags.ts","moduleParts":{"index.js":"44034ba7-11"},"imported":[],"importedBy":[{"uid":"44034ba7-18"}]},"44034ba7-12":{"id":"/src/render.ts","moduleParts":{"index.js":"44034ba7-13"},"imported":[{"uid":"44034ba7-20"},{"uid":"44034ba7-22"},{"uid":"44034ba7-4"}],"importedBy":[{"uid":"44034ba7-16"}]},"44034ba7-14":{"id":"/src/utils.ts","moduleParts":{"index.js":"44034ba7-15"},"imported":[],"importedBy":[{"uid":"44034ba7-16"}]},"44034ba7-16":{"id":"/src/index.ts","moduleParts":{"index.js":"44034ba7-17"},"imported":[{"uid":"44034ba7-0"},{"uid":"44034ba7-2"},{"uid":"44034ba7-6"},{"uid":"44034ba7-8"},{"uid":"44034ba7-18"},{"uid":"44034ba7-4"},{"uid":"44034ba7-12"},{"uid":"44034ba7-14"}],"importedBy":[],"isEntry":true},"44034ba7-18":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"44034ba7-10"}],"importedBy":[{"uid":"44034ba7-16"}]},"44034ba7-19":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"44034ba7-2"}]},"44034ba7-20":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"44034ba7-6"},{"uid":"44034ba7-12"}]},"44034ba7-21":{"id":"react/jsx-runtime","moduleParts":{},"imported":[],"importedBy":[{"uid":"44034ba7-6"}]},"44034ba7-22":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"44034ba7-8"},{"uid":"44034ba7-12"}]}},"env":{"rollup":"4.23.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
5389
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.js","children":[{"name":"src","children":[{"uid":"72578a7c-1","name":"compose.ts"},{"uid":"72578a7c-3","name":"config.ts"},{"uid":"72578a7c-5","name":"isEmpty.ts"},{"uid":"72578a7c-7","name":"context.tsx"},{"uid":"72578a7c-9","name":"hoistNonReactStatics.ts"},{"name":"html/htmlTags.ts","uid":"72578a7c-11"},{"uid":"72578a7c-13","name":"render.ts"},{"uid":"72578a7c-15","name":"utils.ts"},{"uid":"72578a7c-17","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"72578a7c-1":{"renderedLength":313,"gzipLength":240,"brotliLength":0,"metaUid":"72578a7c-0"},"72578a7c-3":{"renderedLength":795,"gzipLength":311,"brotliLength":0,"metaUid":"72578a7c-2"},"72578a7c-5":{"renderedLength":236,"gzipLength":163,"brotliLength":0,"metaUid":"72578a7c-4"},"72578a7c-7":{"renderedLength":1041,"gzipLength":496,"brotliLength":0,"metaUid":"72578a7c-6"},"72578a7c-9":{"renderedLength":1747,"gzipLength":641,"brotliLength":0,"metaUid":"72578a7c-8"},"72578a7c-11":{"renderedLength":1363,"gzipLength":483,"brotliLength":0,"metaUid":"72578a7c-10"},"72578a7c-13":{"renderedLength":577,"gzipLength":275,"brotliLength":0,"metaUid":"72578a7c-12"},"72578a7c-15":{"renderedLength":3190,"gzipLength":1137,"brotliLength":0,"metaUid":"72578a7c-14"},"72578a7c-17":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"metaUid":"72578a7c-16"}},"nodeMetas":{"72578a7c-0":{"id":"/src/compose.ts","moduleParts":{"index.js":"72578a7c-1"},"imported":[],"importedBy":[{"uid":"72578a7c-16"}]},"72578a7c-2":{"id":"/src/config.ts","moduleParts":{"index.js":"72578a7c-3"},"imported":[{"uid":"72578a7c-19"}],"importedBy":[{"uid":"72578a7c-16"},{"uid":"72578a7c-6"}]},"72578a7c-4":{"id":"/src/isEmpty.ts","moduleParts":{"index.js":"72578a7c-5"},"imported":[],"importedBy":[{"uid":"72578a7c-16"},{"uid":"72578a7c-6"},{"uid":"72578a7c-12"}]},"72578a7c-6":{"id":"/src/context.tsx","moduleParts":{"index.js":"72578a7c-7"},"imported":[{"uid":"72578a7c-20"},{"uid":"72578a7c-2"},{"uid":"72578a7c-4"},{"uid":"72578a7c-21"}],"importedBy":[{"uid":"72578a7c-16"}]},"72578a7c-8":{"id":"/src/hoistNonReactStatics.ts","moduleParts":{"index.js":"72578a7c-9"},"imported":[{"uid":"72578a7c-22"}],"importedBy":[{"uid":"72578a7c-16"}]},"72578a7c-10":{"id":"/src/html/htmlTags.ts","moduleParts":{"index.js":"72578a7c-11"},"imported":[],"importedBy":[{"uid":"72578a7c-18"}]},"72578a7c-12":{"id":"/src/render.ts","moduleParts":{"index.js":"72578a7c-13"},"imported":[{"uid":"72578a7c-20"},{"uid":"72578a7c-22"},{"uid":"72578a7c-4"}],"importedBy":[{"uid":"72578a7c-16"}]},"72578a7c-14":{"id":"/src/utils.ts","moduleParts":{"index.js":"72578a7c-15"},"imported":[],"importedBy":[{"uid":"72578a7c-16"}]},"72578a7c-16":{"id":"/src/index.ts","moduleParts":{"index.js":"72578a7c-17"},"imported":[{"uid":"72578a7c-0"},{"uid":"72578a7c-2"},{"uid":"72578a7c-6"},{"uid":"72578a7c-8"},{"uid":"72578a7c-18"},{"uid":"72578a7c-4"},{"uid":"72578a7c-12"},{"uid":"72578a7c-14"}],"importedBy":[],"isEntry":true},"72578a7c-18":{"id":"/src/html/index.ts","moduleParts":{},"imported":[{"uid":"72578a7c-10"}],"importedBy":[{"uid":"72578a7c-16"}]},"72578a7c-19":{"id":"styled-components","moduleParts":{},"imported":[],"importedBy":[{"uid":"72578a7c-2"}]},"72578a7c-20":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"72578a7c-6"},{"uid":"72578a7c-12"}]},"72578a7c-21":{"id":"react/jsx-runtime","moduleParts":{},"imported":[],"importedBy":[{"uid":"72578a7c-6"}]},"72578a7c-22":{"id":"react-is","moduleParts":{},"imported":[],"importedBy":[{"uid":"72578a7c-8"},{"uid":"72578a7c-12"}]}},"env":{"rollup":"4.23.0"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
5390
5390
 
5391
5391
  const run = () => {
5392
5392
  const width = window.innerWidth;
package/lib/index.d.ts CHANGED
@@ -219,7 +219,10 @@ declare const omit: <T extends Record<string, any>>(obj: T | null | undefined, k
219
219
  declare const pick: <T extends Record<string, any>>(obj: T | null | undefined, keys?: readonly (string | keyof T)[]) => Partial<T>;
220
220
  declare const get: (obj: any, path: string | string[], defaultValue?: any) => any;
221
221
  declare const set: (obj: Record<string, any>, path: string | string[], value: any) => Record<string, any>;
222
- declare const throttle: <T extends (...args: any[]) => any>(fn: T, wait?: number) => T & {
222
+ declare const throttle: <T extends (...args: any[]) => any>(fn: T, wait?: number, options?: {
223
+ leading?: boolean;
224
+ trailing?: boolean;
225
+ }) => T & {
223
226
  cancel: () => void;
224
227
  };
225
228
  declare const merge: <T extends Record<string, any>>(target: T, ...sources: Record<string, any>[]) => T;
@@ -1 +1 @@
1
- {"version":3,"file":"index2.d.ts","names":[],"sources":["../src/compose.ts","../src/html/htmlElementAttrs.ts","../src/html/htmlTags.ts","../src/html/index.ts","../src/config.ts","../src/types.ts","../src/context.tsx","../src/hoistNonReactStatics.ts","../src/isEmpty.ts","../src/render.ts","../src/utils.ts"],"mappings":";;;;;KAAK,UAAA,IAAc,GAAA;;KAGd,eAAA,oBAAmC,CAAA,aACnC,IAAA,YACH,IAAA,aAEE,CAAA;;KAIC,oBAAA,oBAAwC,UAAA,CAAW,eAAA,CAAgB,CAAA;;KAEnE,gBAAA,oBAAoC,UAAA,CAAW,CAAA;AAbzB;;;;;;;AAAA,cAsBrB,OAAA,aACO,UAAA,OAAiB,GAAA,EAAK,CAAA,MAChC,CAAA,EAAG,oBAAA,CAAqB,CAAA,MAAK,gBAAA,CAAiB,CAAA;;;KCtB5C,IAAA,GAAO,KAAA,CAAM,iBAAA,CAChB,KAAA,CAAM,cAAA,CAAe,WAAA,GACrB,WAAA;AAAA,UAGe,gBAAA;EACf,CAAA,EAAG,KAAA,CAAM,iBAAA,CACP,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,IAAA,EAAM,IAAA;EAEN,OAAA,EAAS,IAAA;EAET,IAAA,EAAM,KAAA,CAAM,iBAAA,CACV,KAAA,CAAM,kBAAA,CAAmB,eAAA,GACzB,eAAA;EAGF,OAAA,EAAS,IAAA;EAET,KAAA,EAAO,IAAA;EAEP,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,mBAAA,CAAoB,gBAAA,GAC1B,gBAAA;EAGF,CAAA,EAAG,IAAA;EAEH,GAAA,EAAK,IAAA;EAEL,GAAA,EAAK,IAAA;EAEL,GAAA,EAAK,IAAA;EAEL,UAAA,EAAY,KAAA,CAAM,iBAAA,CAChB,KAAA,CAAM,wBAAA,CAAyB,gBAAA,GAC/B,gBAAA;EAGF,IAAA,EAAM,KAAA,CAAM,iBAAA,CACV,KAAA,CAAM,cAAA,CAAe,eAAA,GACrB,eAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,aAAA,GACrB,aAAA;EAGF,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,OAAA,EAAS,IAAA;EAET,IAAA,EAAM,KAAA,CAAM,iBAAA,CACV,KAAA,CAAM,cAAA,CAAe,gBAAA,GACrB,gBAAA;EAGF,IAAA,EAAM,IAAA;EAEN,GAAA,EAAK,KAAA,CAAM,iBAAA,CACT,KAAA,CAAM,iBAAA,CAAkB,mBAAA,GACxB,mBAAA;EAGF,QAAA,EAAU,KAAA,CAAM,iBAAA,CACd,KAAA,CAAM,sBAAA,CAAuB,mBAAA,GAC7B,mBAAA;EAGF,IAAA,EAAM,KAAA,CAAM,iBAAA,CACV,KAAA,CAAM,kBAAA,CAAmB,eAAA,GACzB,eAAA;EAGF,QAAA,EAAU,KAAA,CAAM,iBAAA,CACd,KAAA,CAAM,cAAA,CAAe,mBAAA,GACrB,mBAAA;EAGF,EAAA,EAAI,IAAA;EAEJ,GAAA,EAAK,KAAA,CAAM,iBAAA,CACT,KAAA,CAAM,iBAAA,CAAkB,cAAA,GACxB,cAAA;EAGF,OAAA,EAAS,IAAA;EAET,GAAA,EAAK,IAAA;EAEL,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,GAAA,EAAK,KAAA,CAAM,iBAAA,CACT,KAAA,CAAM,cAAA,CAAe,cAAA,GACrB,cAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,gBAAA,GACrB,gBAAA;EAGF,EAAA,EAAI,IAAA;EAEJ,EAAA,EAAI,IAAA;EAEJ,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,mBAAA,CAAoB,gBAAA,GAC1B,gBAAA;EAGF,QAAA,EAAU,KAAA,CAAM,iBAAA,CACd,KAAA,CAAM,sBAAA,CAAuB,mBAAA,GAC7B,mBAAA;EAGF,UAAA,EAAY,IAAA;EAEZ,MAAA,EAAQ,IAAA;EAER,MAAA,EAAQ,IAAA;EAER,IAAA,EAAM,KAAA,CAAM,iBAAA,CACV,KAAA,CAAM,kBAAA,CAAmB,eAAA,GACzB,eAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,kBAAA,GACrB,kBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,kBAAA,GACrB,kBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,kBAAA,GACrB,kBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,kBAAA,GACrB,kBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,kBAAA,GACrB,kBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,kBAAA,GACrB,kBAAA;EAGF,MAAA,EAAQ,IAAA;EAER,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,aAAA,GACrB,aAAA;EAGF,IAAA,EAAM,KAAA,CAAM,iBAAA,CACV,KAAA,CAAM,kBAAA,CAAmB,eAAA,GACzB,eAAA;EAGF,CAAA,EAAG,IAAA;EAEH,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,GAAA,EAAK,KAAA,CAAM,iBAAA,CACT,KAAA,CAAM,iBAAA,CAAkB,gBAAA,GACxB,gBAAA;EAGF,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,mBAAA,CAAoB,gBAAA,GAC1B,gBAAA;EAGF,GAAA,EAAK,KAAA,CAAM,iBAAA,CACT,KAAA,CAAM,iBAAA,CAAkB,cAAA,GACxB,cAAA;EAGF,GAAA,EAAK,IAAA;EAEL,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,mBAAA,CAAoB,gBAAA,GAC1B,gBAAA;EAGF,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,cAAA,CAAe,iBAAA,GACrB,iBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,gBAAA,CAAiB,aAAA,GACvB,aAAA;EAGF,IAAA,EAAM,IAAA;EAEN,GAAA,EAAK,KAAA,CAAM,iBAAA,CACT,KAAA,CAAM,iBAAA,CAAkB,cAAA,GACxB,cAAA;EAGF,IAAA,EAAM,IAAA;EAEN,KAAA,EAAO,IAAA;EAEP,GAAA,EAAK,IAAA;EAEL,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,gBAAA,CAAiB,gBAAA,GACvB,gBAAA;EAGF,QAAA,EAAU,KAAA,CAAM,iBAAA,CACd,KAAA,CAAM,sBAAA,CAAuB,mBAAA,GAC7B,mBAAA;EAGF,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,MAAA,EAAQ,IAAA;EAER,CAAA,EAAG,KAAA,CAAM,iBAAA,CACP,KAAA,CAAM,cAAA,CAAe,oBAAA,GACrB,oBAAA;EAGF,OAAA,EAAS,IAAA;EAET,GAAA,EAAK,KAAA,CAAM,iBAAA,CACT,KAAA,CAAM,cAAA,CAAe,cAAA,GACrB,cAAA;EAGF,QAAA,EAAU,KAAA,CAAM,iBAAA,CACd,KAAA,CAAM,sBAAA,CAAuB,mBAAA,GAC7B,mBAAA;EAGF,CAAA,EAAG,KAAA,CAAM,iBAAA,CACP,KAAA,CAAM,cAAA,CAAe,gBAAA,GACrB,gBAAA;EAGF,EAAA,EAAI,IAAA;EAEJ,EAAA,EAAI,IAAA;EAEJ,IAAA,EAAM,IAAA;EAEN,CAAA,EAAG,IAAA;EAEH,IAAA,EAAM,IAAA;EAEN,OAAA,EAAS,IAAA;EAET,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,KAAA,EAAO,IAAA;EAEP,MAAA,EAAQ,KAAA,CAAM,iBAAA,CACZ,KAAA,CAAM,oBAAA,CAAqB,iBAAA,GAC3B,iBAAA;EAGF,IAAA,EAAM,KAAA,CAAM,iBAAA,CACV,KAAA,CAAM,cAAA,CAAe,eAAA,GACrB,eAAA;EAGF,MAAA,EAAQ,IAAA;EAER,GAAA,EAAK,IAAA;EAEL,OAAA,EAAS,IAAA;EAET,GAAA,EAAK,IAAA;EAEL,GAAA,EAAK,KAAA,CAAM,QAAA,CAAS,aAAA;EAEpB,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,mBAAA,CAAoB,gBAAA,GAC1B,gBAAA;EAGF,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,cAAA,CAAe,uBAAA,GACrB,uBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,gBAAA,CAAiB,oBAAA,GACvB,oBAAA;EAGF,QAAA,EAAU,KAAA,CAAM,iBAAA,CACd,KAAA,CAAM,cAAA,CAAe,mBAAA,GACrB,mBAAA;EAGF,QAAA,EAAU,KAAA,CAAM,iBAAA,CACd,KAAA,CAAM,sBAAA,CAAuB,mBAAA,GAC7B,mBAAA;EAGF,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,cAAA,CAAe,uBAAA,GACrB,uBAAA;EAGF,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,gBAAA,CAAiB,oBAAA,GACvB,oBAAA;EAGF,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,cAAA,CAAe,uBAAA,GACrB,uBAAA;EAGF,IAAA,EAAM,IAAA;EAEN,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,mBAAA,GACrB,mBAAA;EAGF,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,mBAAA,CAAoB,gBAAA,GAC1B,gBAAA;EAGF,CAAA,EAAG,IAAA;EAEH,EAAA,EAAI,KAAA,CAAM,iBAAA,CACR,KAAA,CAAM,cAAA,CAAe,gBAAA,GACrB,gBAAA;EAGF,GAAA,EAAK,IAAA;EAEL,KAAA,EAAO,KAAA,CAAM,iBAAA,CACX,KAAA,CAAM,mBAAA,CAAoB,gBAAA,GAC1B,gBAAA;EAGF,GAAA,EAAK,IAAA;AAAA;;;cCnYD,SAAA;AAAA,cA6HA,cAAA;AAAA,KA2CM,QAAA,WAAmB,SAAA;AAAA,KAEnB,YAAA,WAAuB,cAAA;;;KCtK9B,iBAAA,WAA4B,QAAA,IAAY,CAAA,SAAU,QAAA,GACnD,gBAAA,CAAiB,CAAA;;;;;;;;UCIX,QAAA;EACR,GAAA,SAAY,GAAA;EACZ,MAAA,SAAe,MAAA;EACf,QAAA,SAAiB,aAAA;EACjB,SAAA,EAAW,aAAA,GAAgB,QAAA;EAC3B,aAAA,EAAe,aAAA,GAAgB,QAAA;AAAA;AAAA,cAG3B,aAAA;EACJ,GAAA,EAAK,QAAA;EAEL,MAAA,EAAQ,QAAA;EAER,gBAAA,EAAkB,QAAA;EAElB,SAAA,EAAW,QAAA;EAEX,aAAA,EAAe,QAAA;cAEH,KAAA,EAAO,QAAA;EAQnB,IAAA,GAAQ,KAAA,EAAO,OAAA,CAAQ,QAAA;AAAA;AAAA,cA+BnB,MAAA,EAAM,aAAA;AAAA,cAEJ,IAAA,GAAI,KAAA,EAjCK,OAAA,CAAQ,QAAA;;;UCpCR,WAAA;EAAA,CACd,GAAA;AAAA;AAAA,KAGS,cAAA,SAAuB,WAAA;;;;;;;cCM7B,OAAA,EAAgC,KAAA,CAAzB,OAAA;AAAA,KAGR,KAAA,GAAQ,OAAA;EAET,QAAA;EACA,WAAA,EAAa,WAAA;AAAA,IACX,MAAA;AAAA,KAGD,YAAA,GAAe,OAAA;EAEhB,KAAA,EAAO,KAAA;EACP,QAAA,EAAU,SAAA;AAAA,IACR,MAAA;;;;;;cAQA,QAAA,EAAU,EAAA,CAAG,YAAA;;;cCsBb,oBAAA,SACJ,MAAA,EAAQ,CAAA,EACR,MAAA,EAAQ,CAAA,EACR,WAAA,GAAc,MAAA,mBACb,CAAA;;;;;;;;KCrDS,OAAA,cACA,MAAA,mDAEV,KAAA,EAAO,CAAA,KACJ,CAAA,yCAEK,CAAA,wBAEJ,CAAA,SAAU,CAAA,KACR,CAAA;AAAA,cAKF,OAAA,EAAS,OAAA;;;KCdV,WAAA,GAAc,UAAA,QAAkB,aAAA;AAAA,KAChC,UAAA,GAAa,UAAA,QAAkB,YAAA;AAAA,KAC/B,WAAA,WAAsB,MAAA,kCACzB,KAAA,EAAO,OAAA,CAAQ,CAAA,MACZ,SAAA;;;;;;ATTsB;;;KSmBf,MAAA,cAAoB,MAAA,2BAC9B,OAAA,GAAU,WAAA,GAAc,UAAA,GAAa,SAAA,GAAY,SAAA,KAAc,WAAA,CAAY,CAAA,GAC3E,WAAA,GAAc,CAAA,KACX,UAAA,QAAkB,aAAA,IAAiB,UAAA,QAAkB,YAAA;AAAA,cAEpD,MAAA,EAAQ,MAAA;;;cCnBD,IAAA,aAAkB,MAAA,eAC7B,GAAA,EAAK,CAAA,qBACL,IAAA,4BAAgC,CAAA,QAC/B,OAAA,CAAQ,CAAA;AAAA,cAqBE,IAAA,aAAkB,MAAA,eAC7B,GAAA,EAAK,CAAA,qBACL,IAAA,4BAAgC,CAAA,QAC/B,OAAA,CAAQ,CAAA;AAAA,cA8BE,GAAA,GACX,GAAA,OACA,IAAA,qBACA,YAAA;AAAA,cAoBW,GAAA,GACX,GAAA,EAAK,MAAA,eACL,IAAA,qBACA,KAAA,UACC,MAAA;AAAA,cAgCU,QAAA,iBAA0B,IAAA,iBACrC,EAAA,EAAI,CAAA,EACJ,IAAA,cACC,CAAA;EAAM,MAAA;AAAA;AAAA,cAkDI,KAAA,aAAmB,MAAA,eAC9B,MAAA,EAAQ,CAAA,KACL,OAAA,EAAS,MAAA,oBACX,CAAA"}
1
+ {"version":3,"file":"index2.d.ts","names":[],"sources":["../src/compose.ts","../src/html/htmlElementAttrs.ts","../src/html/htmlTags.ts","../src/html/index.ts","../src/config.ts","../src/types.ts","../src/context.tsx","../src/hoistNonReactStatics.ts","../src/isEmpty.ts","../src/render.ts","../src/utils.ts"],"mappings":"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"}
package/lib/index.js CHANGED
@@ -378,29 +378,36 @@ const set = (obj, path, value) => {
378
378
  if (lastKey != null) current[lastKey] = value;
379
379
  return obj;
380
380
  };
381
- const throttle = (fn, wait = 0) => {
381
+ const throttle = (fn, wait = 0, options) => {
382
+ const leading = options?.leading !== false;
383
+ const trailing = options?.trailing !== false;
382
384
  let lastCallTime;
383
385
  let timeoutId;
384
386
  let lastArgs;
387
+ const invoke = (args) => {
388
+ lastCallTime = Date.now();
389
+ fn(...args);
390
+ };
391
+ const startTrailingTimer = (args, delay) => {
392
+ lastArgs = args;
393
+ if (timeoutId !== void 0) return;
394
+ timeoutId = setTimeout(() => {
395
+ timeoutId = void 0;
396
+ if (lastArgs) {
397
+ invoke(lastArgs);
398
+ lastArgs = void 0;
399
+ }
400
+ }, delay);
401
+ };
385
402
  const throttled = (...args) => {
386
403
  const now = Date.now();
387
- if (lastCallTime === void 0 || now - lastCallTime >= wait) {
404
+ const elapsed = lastCallTime === void 0 ? wait : now - lastCallTime;
405
+ if (elapsed >= wait) if (leading) invoke(args);
406
+ else {
388
407
  lastCallTime = now;
389
- fn(...args);
390
- } else {
391
- lastArgs = args;
392
- if (timeoutId === void 0) {
393
- const remaining = wait - (now - lastCallTime);
394
- timeoutId = setTimeout(() => {
395
- lastCallTime = Date.now();
396
- timeoutId = void 0;
397
- if (lastArgs) {
398
- fn(...lastArgs);
399
- lastArgs = void 0;
400
- }
401
- }, remaining);
402
- }
408
+ if (trailing) startTrailingTimer(args, wait);
403
409
  }
410
+ else if (trailing) startTrailingTimer(args, wait - elapsed);
404
411
  };
405
412
  throttled.cancel = () => {
406
413
  if (timeoutId !== void 0) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/compose.ts","../src/config.ts","../src/isEmpty.ts","../src/context.tsx","../src/hoistNonReactStatics.ts","../src/html/htmlTags.ts","../src/render.ts","../src/utils.ts"],"sourcesContent":["type ArityOneFn = (arg: any) => any\n\n/** Extracts the last function from a tuple type. */\ntype PickLastInTuple<T extends any[]> = T extends [\n ...rest: infer _U,\n argn: infer L,\n]\n ? L\n : any\n\n/** Parameter type of the rightmost (first-applied) function. */\ntype FirstFnParameterType<T extends any[]> = Parameters<PickLastInTuple<T>>[any]\n/** Return type of the leftmost (last-applied) function. */\ntype LastFnReturnType<T extends any[]> = ReturnType<T[0]>\n\n/**\n * Right-to-left function composition.\n * `compose(f, g, h)(x)` === `f(g(h(x)))`.\n *\n * Used throughout the system to build HOC chains —\n * `compose(attrsHoc, userHoc1, userHoc2)(Component)`.\n */\nconst compose =\n <T extends ArityOneFn[]>(...fns: T) =>\n (p: FirstFnParameterType<T>): LastFnReturnType<T> =>\n fns.reduceRight((acc: any, cur: any) => cur(acc), p)\n\nexport default compose\n","import type { ComponentType } from 'react'\nimport { css, styled, ThemeProvider } from 'styled-components'\nimport type { HTMLTags } from '~/html'\n\n/**\n * Singleton configuration that bridges the UI system with styled-components.\n * All packages reference `config.css`, `config.styled`, etc. so the styling\n * engine can be swapped at runtime (e.g. for React Native) via `init()`.\n */\ninterface Internal {\n css: typeof css\n styled: typeof styled\n provider: typeof ThemeProvider\n component: ComponentType | HTMLTags\n textComponent: ComponentType | HTMLTags\n}\n\nclass Configuration {\n css: Internal['css']\n\n styled: Internal['styled']\n\n ExternalProvider: Internal['provider']\n\n component: Internal['component'] = 'div'\n\n textComponent: Internal['textComponent'] = 'span'\n\n constructor(props: Internal) {\n this.css = props.css\n this.styled = props.styled\n this.ExternalProvider = props.provider\n this.component = props.component\n this.textComponent = props.textComponent\n }\n\n init = (props: Partial<Internal>) => {\n if (props.css) {\n this.css = props.css\n }\n\n if (props.styled) {\n this.styled = props.styled\n }\n\n if (props.provider) {\n this.ExternalProvider = props.provider\n }\n\n if (props.component) {\n this.component = props.component\n }\n\n if (props.textComponent) {\n this.textComponent = props.textComponent\n }\n }\n}\n\nconst defaultParams = {\n css,\n styled,\n provider: ThemeProvider,\n component: 'div',\n textComponent: 'span',\n} as const\n\nconst config = new Configuration(defaultParams)\n\nconst { init } = config\n\nexport default config\nexport { init }\n","/**\n * Type-safe emptiness check for objects, arrays, null, and undefined.\n * Returns `true` for null, undefined, empty objects `{}`, and empty arrays `[]`.\n * Non-object primitives (string, number) also return `true` as any.\n */\nexport type IsEmpty = <\n T extends Record<number | string, any> | any[] | null | undefined,\n>(\n param: T,\n) => T extends null | undefined\n ? true\n : keyof T extends never\n ? true\n : T extends T[]\n ? T[number] extends never\n ? true\n : false\n : false\n\nconst isEmpty: IsEmpty = (param) => {\n if (!param) return true\n\n if (typeof param !== 'object') {\n return true as any\n }\n\n if (Array.isArray(param)) {\n return param.length === 0\n }\n\n return Object.keys(param).length === 0\n}\n\nexport default isEmpty\n","import type { FC, ReactNode } from 'react'\nimport { createContext, useMemo } from 'react'\nimport config from '~/config'\nimport isEmpty from '~/isEmpty'\nimport type { Breakpoints } from '~/types'\n\n/**\n * Internal React context shared across all @vitus-labs packages.\n * Carries the theme object plus any extra provider props.\n */\nconst context = createContext<any>({})\nconst VitusLabsProvider = context.Provider\n\ntype Theme = Partial<\n {\n rootSize: number\n breakpoints: Breakpoints\n } & Record<string, any>\n>\n\ntype ProviderType = Partial<\n {\n theme: Theme\n children: ReactNode\n } & Record<string, any>\n>\n\n/**\n * Dual-layer provider that feeds both the internal VitusLabs context\n * and an optional external styling provider (e.g. styled-components'\n * ThemeProvider). When no theme is supplied, renders children directly.\n */\nconst Provider: FC<ProviderType> = ({ theme, children, ...props }) => {\n const ExternalProvider = useMemo(() => config.ExternalProvider, [])\n const context = useMemo(\n () => ({ theme, ...props }),\n [theme, ...Object.values(props), props],\n )\n\n if (isEmpty(theme) || !theme) return <>{children}</>\n\n if (ExternalProvider) {\n return (\n <VitusLabsProvider value={context}>\n <ExternalProvider theme={theme}>{children}</ExternalProvider>\n </VitusLabsProvider>\n )\n }\n\n return <VitusLabsProvider value={context}>{children}</VitusLabsProvider>\n}\n\nexport { context }\n\nexport default Provider\n","import { isMemo } from 'react-is'\n\nconst REACT_STATICS: Record<string, true> = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n}\n\nconst KNOWN_STATICS: Record<string, true> = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n}\n\nconst FORWARD_REF_STATICS: Record<string, true> = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n}\n\nconst MEMO_STATICS: Record<string, true> = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n}\n\nconst TYPE_STATICS: Record<string | symbol, Record<string, true>> = {}\n\n// Symbol.for matches what react-is uses internally\nTYPE_STATICS[Symbol.for('react.forward_ref')] = FORWARD_REF_STATICS\nTYPE_STATICS[Symbol.for('react.memo')] = MEMO_STATICS\n\nconst getStatics = (component: any): Record<string, true> => {\n if (isMemo(component)) return MEMO_STATICS\n return TYPE_STATICS[component.$$typeof] || REACT_STATICS\n}\n\nconst hoistNonReactStatics = <T, S>(\n target: T,\n source: S,\n excludeList?: Record<string, true>,\n): T => {\n if (typeof source === 'string') return target\n\n const proto = Object.getPrototypeOf(source)\n if (proto && proto !== Object.prototype) {\n hoistNonReactStatics(target, proto, excludeList)\n }\n\n const keys: (string | symbol)[] = [\n ...Object.getOwnPropertyNames(source),\n ...Object.getOwnPropertySymbols(source),\n ]\n\n const targetStatics = getStatics(target)\n const sourceStatics = getStatics(source)\n\n for (const key of keys) {\n const k = key as string\n if (\n KNOWN_STATICS[k] ||\n excludeList?.[k] ||\n sourceStatics[k] ||\n targetStatics[k]\n ) {\n continue\n }\n\n const descriptor = Object.getOwnPropertyDescriptor(source, key)\n if (descriptor) {\n try {\n Object.defineProperty(target, key, descriptor)\n } catch {\n // Silently skip non-configurable properties\n }\n }\n }\n\n return target\n}\n\nexport default hoistNonReactStatics\n","const HTML_TAGS = [\n 'a',\n 'abbr',\n // 'acronym',\n 'address',\n // 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n // 'base',\n // 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n // 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n // 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n // 'font',\n 'footer',\n 'form',\n // 'frame',\n // 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n // 'head',\n 'header',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n // 'link',\n 'main',\n 'map',\n 'mark',\n // 'meta',\n 'meter',\n 'nav',\n // 'noframes',\n // 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n // 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n // 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n // 'strike',\n 'strong',\n // 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n // 'title',\n 'tr',\n 'track',\n // 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n] as const\n\nconst HTML_TEXT_TAGS = [\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'cite',\n 'code',\n 'del',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'figcaption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'p',\n 'pre',\n 'q',\n 'rp',\n 'rt',\n 's',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'time',\n 'u',\n] as const\n\nexport type HTMLTags = (typeof HTML_TAGS)[number]\n\nexport type HTMLTextTags = (typeof HTML_TEXT_TAGS)[number]\n\nexport { HTML_TAGS, HTML_TEXT_TAGS }\n","import type { ReactNode } from 'react'\nimport { cloneElement, createElement, isValidElement } from 'react'\nimport { isFragment, isValidElementType } from 'react-is'\nimport isEmpty from './isEmpty'\n\ntype CreateTypes = Parameters<typeof createElement>[0]\ntype CloneTypes = Parameters<typeof cloneElement>[0]\ntype RenderProps<T extends Record<string, unknown> | undefined> = (\n props: Partial<T>,\n) => ReactNode\n\n/**\n * Flexible element renderer that handles multiple content types:\n * - Primitives (string, number) — returned as-is\n * - Arrays and fragments — returned as-is\n * - Component types (class/function) — created via `createElement`\n * - Valid elements — cloned with `attachProps` if provided\n * - Falsy values — return null\n */\nexport type Render = <T extends Record<string, any> | undefined>(\n content?: CreateTypes | CloneTypes | ReactNode | ReactNode[] | RenderProps<T>,\n attachProps?: T,\n) => ReturnType<typeof createElement> | ReturnType<typeof cloneElement> | null\n\nconst render: Render = (content, attachProps) => {\n if (!content) return null as any\n\n const render = (child: Parameters<typeof createElement>[0]) =>\n attachProps ? createElement(child, attachProps) : createElement(child)\n\n if (['number', 'boolean', 'bigint', 'string'].includes(typeof content)) {\n return content\n }\n\n if (Array.isArray(content) || isFragment(content)) {\n return content\n }\n\n if (isValidElementType(content)) {\n return render(content)\n }\n\n if (isValidElement(content)) {\n if (isEmpty(attachProps)) {\n return content\n }\n\n return cloneElement(content, attachProps)\n }\n\n return content\n}\n\nexport default render\n","// --------------------------------------------------------\n// omit — create a new object without the specified keys.\n// Accepts nullable input for convenience (returns `{}`).\n// Uses a Set for O(1) key lookup.\n// --------------------------------------------------------\nexport const omit = <T extends Record<string, any>>(\n obj: T | null | undefined,\n keys?: readonly (string | keyof T)[],\n): Partial<T> => {\n if (obj == null) return {} as Partial<T>\n if (!keys || keys.length === 0) return { ...obj }\n\n const result: Record<string, any> = {}\n const keysSet = new Set(keys as readonly string[])\n\n for (const key in obj) {\n if (Object.hasOwn(obj, key) && !keysSet.has(key)) {\n result[key] = obj[key]\n }\n }\n\n return result as Partial<T>\n}\n\n// --------------------------------------------------------\n// pick — create a new object with only the specified keys.\n// Accepts nullable input for convenience (returns `{}`).\n// When no keys given, returns a shallow copy of the whole object.\n// --------------------------------------------------------\nexport const pick = <T extends Record<string, any>>(\n obj: T | null | undefined,\n keys?: readonly (string | keyof T)[],\n): Partial<T> => {\n if (obj == null) return {} as Partial<T>\n if (!keys || keys.length === 0) return { ...obj }\n\n const result: Record<string, any> = {}\n\n for (const key of keys) {\n const k = key as string\n if (Object.hasOwn(obj, k)) {\n result[k] = obj[k]\n }\n }\n\n return result as Partial<T>\n}\n\n// --------------------------------------------------------\n// get — retrieve a nested value by dot/bracket path.\n// e.g. get(obj, 'a.b.c') or get(obj, 'a.children[0]')\n// Returns `defaultValue` when any segment is null/undefined.\n// --------------------------------------------------------\nconst PATH_RE = /[^.[\\]]+/g\n\n/** Split a dot/bracket path string into individual key tokens. */\nconst parsePath = (path: string | string[]): string[] => {\n if (Array.isArray(path)) return path\n const parts = path.match(PATH_RE)\n return parts ?? []\n}\n\nexport const get = (\n obj: any,\n path: string | string[],\n defaultValue?: any,\n): any => {\n const keys = parsePath(path)\n let result = obj\n\n for (const key of keys) {\n if (result == null) return defaultValue\n result = result[key]\n }\n\n return result === undefined ? defaultValue : result\n}\n\n// --------------------------------------------------------\n// set — set a nested value by path (mutates the object).\n// Auto-creates intermediate objects/arrays as needed.\n// Blocks prototype-pollution keys (__proto__, constructor, prototype).\n// --------------------------------------------------------\nconst UNSAFE_KEYS = new Set(['__proto__', 'prototype', 'constructor'])\n\nexport const set = (\n obj: Record<string, any>,\n path: string | string[],\n value: any,\n): Record<string, any> => {\n const keys = parsePath(path)\n if (keys.some((k) => UNSAFE_KEYS.has(k))) return obj\n\n let current = obj\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i]!\n const nextKey = keys[i + 1]!\n\n if (current[key] == null) {\n // create array if next key is numeric, otherwise object\n current[key] = /^\\d+$/.test(nextKey) ? [] : {}\n }\n\n current = current[key]\n }\n\n const lastKey = keys[keys.length - 1]\n if (lastKey != null) {\n current[lastKey] = value\n }\n\n return obj\n}\n\n// --------------------------------------------------------\n// throttle — limit function execution to at most once per `wait` ms.\n// Trailing calls are preserved: if called during the cooldown, the\n// last invocation fires after the remaining delay.\n// Returns a throttled function with a `.cancel()` method to clear\n// any pending trailing call.\n// --------------------------------------------------------\nexport const throttle = <T extends (...args: any[]) => any>(\n fn: T,\n wait: number = 0,\n): T & { cancel: () => void } => {\n let lastCallTime: number | undefined\n let timeoutId: ReturnType<typeof setTimeout> | undefined\n let lastArgs: any[] | undefined\n\n const throttled = (...args: any[]) => {\n const now = Date.now()\n\n if (lastCallTime === undefined || now - lastCallTime >= wait) {\n lastCallTime = now\n fn(...args)\n } else {\n lastArgs = args\n if (timeoutId === undefined) {\n const remaining = wait - (now - lastCallTime)\n timeoutId = setTimeout(() => {\n lastCallTime = Date.now()\n timeoutId = undefined\n if (lastArgs) {\n fn(...lastArgs)\n lastArgs = undefined\n }\n }, remaining)\n }\n }\n }\n\n throttled.cancel = () => {\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n timeoutId = undefined\n }\n lastArgs = undefined\n lastCallTime = undefined\n }\n\n return throttled as T & { cancel: () => void }\n}\n\n// --------------------------------------------------------\n// merge — deep merge objects (source wins, arrays replaced wholesale).\n// Only plain objects are recursed into; class instances and arrays\n// are assigned by reference. Blocks prototype-pollution keys.\n// --------------------------------------------------------\nconst isPlainObject = (value: unknown): value is Record<string, any> =>\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.getPrototypeOf(value) === Object.prototype\n\nexport const merge = <T extends Record<string, any>>(\n target: T,\n ...sources: Record<string, any>[]\n): T => {\n for (const source of sources) {\n if (source == null) continue\n\n for (const key of Object.keys(source)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype')\n continue\n\n const targetVal = (target as any)[key]\n const sourceVal = source[key]\n\n if (isPlainObject(targetVal) && isPlainObject(sourceVal)) {\n ;(target as any)[key] = merge({ ...targetVal }, sourceVal)\n } else {\n ;(target as any)[key] = sourceVal\n }\n }\n }\n\n return target\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/compose.ts","../src/config.ts","../src/isEmpty.ts","../src/context.tsx","../src/hoistNonReactStatics.ts","../src/html/htmlTags.ts","../src/render.ts","../src/utils.ts"],"sourcesContent":["type ArityOneFn = (arg: any) => any\n\n/** Extracts the last function from a tuple type. */\ntype PickLastInTuple<T extends any[]> = T extends [\n ...rest: infer _U,\n argn: infer L,\n]\n ? L\n : any\n\n/** Parameter type of the rightmost (first-applied) function. */\ntype FirstFnParameterType<T extends any[]> = Parameters<PickLastInTuple<T>>[any]\n/** Return type of the leftmost (last-applied) function. */\ntype LastFnReturnType<T extends any[]> = ReturnType<T[0]>\n\n/**\n * Right-to-left function composition.\n * `compose(f, g, h)(x)` === `f(g(h(x)))`.\n *\n * Used throughout the system to build HOC chains —\n * `compose(attrsHoc, userHoc1, userHoc2)(Component)`.\n */\nconst compose =\n <T extends ArityOneFn[]>(...fns: T) =>\n (p: FirstFnParameterType<T>): LastFnReturnType<T> =>\n fns.reduceRight((acc: any, cur: any) => cur(acc), p)\n\nexport default compose\n","import type { ComponentType } from 'react'\nimport { css, styled, ThemeProvider } from 'styled-components'\nimport type { HTMLTags } from '~/html'\n\n/**\n * Singleton configuration that bridges the UI system with styled-components.\n * All packages reference `config.css`, `config.styled`, etc. so the styling\n * engine can be swapped at runtime (e.g. for React Native) via `init()`.\n */\ninterface Internal {\n css: typeof css\n styled: typeof styled\n provider: typeof ThemeProvider\n component: ComponentType | HTMLTags\n textComponent: ComponentType | HTMLTags\n}\n\nclass Configuration {\n css: Internal['css']\n\n styled: Internal['styled']\n\n ExternalProvider: Internal['provider']\n\n component: Internal['component'] = 'div'\n\n textComponent: Internal['textComponent'] = 'span'\n\n constructor(props: Internal) {\n this.css = props.css\n this.styled = props.styled\n this.ExternalProvider = props.provider\n this.component = props.component\n this.textComponent = props.textComponent\n }\n\n init = (props: Partial<Internal>) => {\n if (props.css) {\n this.css = props.css\n }\n\n if (props.styled) {\n this.styled = props.styled\n }\n\n if (props.provider) {\n this.ExternalProvider = props.provider\n }\n\n if (props.component) {\n this.component = props.component\n }\n\n if (props.textComponent) {\n this.textComponent = props.textComponent\n }\n }\n}\n\nconst defaultParams = {\n css,\n styled,\n provider: ThemeProvider,\n component: 'div',\n textComponent: 'span',\n} as const\n\nconst config = new Configuration(defaultParams)\n\nconst { init } = config\n\nexport default config\nexport { init }\n","/**\n * Type-safe emptiness check for objects, arrays, null, and undefined.\n * Returns `true` for null, undefined, empty objects `{}`, and empty arrays `[]`.\n * Non-object primitives (string, number) also return `true` as any.\n */\nexport type IsEmpty = <\n T extends Record<number | string, any> | any[] | null | undefined,\n>(\n param: T,\n) => T extends null | undefined\n ? true\n : keyof T extends never\n ? true\n : T extends T[]\n ? T[number] extends never\n ? true\n : false\n : false\n\nconst isEmpty: IsEmpty = (param) => {\n if (!param) return true\n\n if (typeof param !== 'object') {\n return true as any\n }\n\n if (Array.isArray(param)) {\n return param.length === 0\n }\n\n return Object.keys(param).length === 0\n}\n\nexport default isEmpty\n","import type { FC, ReactNode } from 'react'\nimport { createContext, useMemo } from 'react'\nimport config from '~/config'\nimport isEmpty from '~/isEmpty'\nimport type { Breakpoints } from '~/types'\n\n/**\n * Internal React context shared across all @vitus-labs packages.\n * Carries the theme object plus any extra provider props.\n */\nconst context = createContext<any>({})\nconst VitusLabsProvider = context.Provider\n\ntype Theme = Partial<\n {\n rootSize: number\n breakpoints: Breakpoints\n } & Record<string, any>\n>\n\ntype ProviderType = Partial<\n {\n theme: Theme\n children: ReactNode\n } & Record<string, any>\n>\n\n/**\n * Dual-layer provider that feeds both the internal VitusLabs context\n * and an optional external styling provider (e.g. styled-components'\n * ThemeProvider). When no theme is supplied, renders children directly.\n */\nconst Provider: FC<ProviderType> = ({ theme, children, ...props }) => {\n const ExternalProvider = useMemo(() => config.ExternalProvider, [])\n const context = useMemo(\n () => ({ theme, ...props }),\n [theme, ...Object.values(props), props],\n )\n\n if (isEmpty(theme) || !theme) return <>{children}</>\n\n if (ExternalProvider) {\n return (\n <VitusLabsProvider value={context}>\n <ExternalProvider theme={theme}>{children}</ExternalProvider>\n </VitusLabsProvider>\n )\n }\n\n return <VitusLabsProvider value={context}>{children}</VitusLabsProvider>\n}\n\nexport { context }\n\nexport default Provider\n","import { isMemo } from 'react-is'\n\nconst REACT_STATICS: Record<string, true> = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n}\n\nconst KNOWN_STATICS: Record<string, true> = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n}\n\nconst FORWARD_REF_STATICS: Record<string, true> = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n}\n\nconst MEMO_STATICS: Record<string, true> = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n}\n\nconst TYPE_STATICS: Record<string | symbol, Record<string, true>> = {}\n\n// Symbol.for matches what react-is uses internally\nTYPE_STATICS[Symbol.for('react.forward_ref')] = FORWARD_REF_STATICS\nTYPE_STATICS[Symbol.for('react.memo')] = MEMO_STATICS\n\nconst getStatics = (component: any): Record<string, true> => {\n if (isMemo(component)) return MEMO_STATICS\n return TYPE_STATICS[component.$$typeof] || REACT_STATICS\n}\n\nconst hoistNonReactStatics = <T, S>(\n target: T,\n source: S,\n excludeList?: Record<string, true>,\n): T => {\n if (typeof source === 'string') return target\n\n const proto = Object.getPrototypeOf(source)\n if (proto && proto !== Object.prototype) {\n hoistNonReactStatics(target, proto, excludeList)\n }\n\n const keys: (string | symbol)[] = [\n ...Object.getOwnPropertyNames(source),\n ...Object.getOwnPropertySymbols(source),\n ]\n\n const targetStatics = getStatics(target)\n const sourceStatics = getStatics(source)\n\n for (const key of keys) {\n const k = key as string\n if (\n KNOWN_STATICS[k] ||\n excludeList?.[k] ||\n sourceStatics[k] ||\n targetStatics[k]\n ) {\n continue\n }\n\n const descriptor = Object.getOwnPropertyDescriptor(source, key)\n if (descriptor) {\n try {\n Object.defineProperty(target, key, descriptor)\n } catch {\n // Silently skip non-configurable properties\n }\n }\n }\n\n return target\n}\n\nexport default hoistNonReactStatics\n","const HTML_TAGS = [\n 'a',\n 'abbr',\n // 'acronym',\n 'address',\n // 'applet',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n // 'base',\n // 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n // 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n // 'dir',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n // 'font',\n 'footer',\n 'form',\n // 'frame',\n // 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n // 'head',\n 'header',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n // 'link',\n 'main',\n 'map',\n 'mark',\n // 'meta',\n 'meter',\n 'nav',\n // 'noframes',\n // 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n // 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n // 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n // 'strike',\n 'strong',\n // 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n // 'title',\n 'tr',\n 'track',\n // 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n] as const\n\nconst HTML_TEXT_TAGS = [\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'cite',\n 'code',\n 'del',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'figcaption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'i',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'p',\n 'pre',\n 'q',\n 'rp',\n 'rt',\n 's',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'time',\n 'u',\n] as const\n\nexport type HTMLTags = (typeof HTML_TAGS)[number]\n\nexport type HTMLTextTags = (typeof HTML_TEXT_TAGS)[number]\n\nexport { HTML_TAGS, HTML_TEXT_TAGS }\n","import type { ReactNode } from 'react'\nimport { cloneElement, createElement, isValidElement } from 'react'\nimport { isFragment, isValidElementType } from 'react-is'\nimport isEmpty from './isEmpty'\n\ntype CreateTypes = Parameters<typeof createElement>[0]\ntype CloneTypes = Parameters<typeof cloneElement>[0]\ntype RenderProps<T extends Record<string, unknown> | undefined> = (\n props: Partial<T>,\n) => ReactNode\n\n/**\n * Flexible element renderer that handles multiple content types:\n * - Primitives (string, number) — returned as-is\n * - Arrays and fragments — returned as-is\n * - Component types (class/function) — created via `createElement`\n * - Valid elements — cloned with `attachProps` if provided\n * - Falsy values — return null\n */\nexport type Render = <T extends Record<string, any> | undefined>(\n content?: CreateTypes | CloneTypes | ReactNode | ReactNode[] | RenderProps<T>,\n attachProps?: T,\n) => ReturnType<typeof createElement> | ReturnType<typeof cloneElement> | null\n\nconst render: Render = (content, attachProps) => {\n if (!content) return null as any\n\n const render = (child: Parameters<typeof createElement>[0]) =>\n attachProps ? createElement(child, attachProps) : createElement(child)\n\n if (['number', 'boolean', 'bigint', 'string'].includes(typeof content)) {\n return content\n }\n\n if (Array.isArray(content) || isFragment(content)) {\n return content\n }\n\n if (isValidElementType(content)) {\n return render(content)\n }\n\n if (isValidElement(content)) {\n if (isEmpty(attachProps)) {\n return content\n }\n\n return cloneElement(content, attachProps)\n }\n\n return content\n}\n\nexport default render\n","// --------------------------------------------------------\n// omit — create a new object without the specified keys.\n// Accepts nullable input for convenience (returns `{}`).\n// Uses a Set for O(1) key lookup.\n// --------------------------------------------------------\nexport const omit = <T extends Record<string, any>>(\n obj: T | null | undefined,\n keys?: readonly (string | keyof T)[],\n): Partial<T> => {\n if (obj == null) return {} as Partial<T>\n if (!keys || keys.length === 0) return { ...obj }\n\n const result: Record<string, any> = {}\n const keysSet = new Set(keys as readonly string[])\n\n for (const key in obj) {\n if (Object.hasOwn(obj, key) && !keysSet.has(key)) {\n result[key] = obj[key]\n }\n }\n\n return result as Partial<T>\n}\n\n// --------------------------------------------------------\n// pick — create a new object with only the specified keys.\n// Accepts nullable input for convenience (returns `{}`).\n// When no keys given, returns a shallow copy of the whole object.\n// --------------------------------------------------------\nexport const pick = <T extends Record<string, any>>(\n obj: T | null | undefined,\n keys?: readonly (string | keyof T)[],\n): Partial<T> => {\n if (obj == null) return {} as Partial<T>\n if (!keys || keys.length === 0) return { ...obj }\n\n const result: Record<string, any> = {}\n\n for (const key of keys) {\n const k = key as string\n if (Object.hasOwn(obj, k)) {\n result[k] = obj[k]\n }\n }\n\n return result as Partial<T>\n}\n\n// --------------------------------------------------------\n// get — retrieve a nested value by dot/bracket path.\n// e.g. get(obj, 'a.b.c') or get(obj, 'a.children[0]')\n// Returns `defaultValue` when any segment is null/undefined.\n// --------------------------------------------------------\nconst PATH_RE = /[^.[\\]]+/g\n\n/** Split a dot/bracket path string into individual key tokens. */\nconst parsePath = (path: string | string[]): string[] => {\n if (Array.isArray(path)) return path\n const parts = path.match(PATH_RE)\n return parts ?? []\n}\n\nexport const get = (\n obj: any,\n path: string | string[],\n defaultValue?: any,\n): any => {\n const keys = parsePath(path)\n let result = obj\n\n for (const key of keys) {\n if (result == null) return defaultValue\n result = result[key]\n }\n\n return result === undefined ? defaultValue : result\n}\n\n// --------------------------------------------------------\n// set — set a nested value by path (mutates the object).\n// Auto-creates intermediate objects/arrays as needed.\n// Blocks prototype-pollution keys (__proto__, constructor, prototype).\n// --------------------------------------------------------\nconst UNSAFE_KEYS = new Set(['__proto__', 'prototype', 'constructor'])\n\nexport const set = (\n obj: Record<string, any>,\n path: string | string[],\n value: any,\n): Record<string, any> => {\n const keys = parsePath(path)\n if (keys.some((k) => UNSAFE_KEYS.has(k))) return obj\n\n let current = obj\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i]!\n const nextKey = keys[i + 1]!\n\n if (current[key] == null) {\n // create array if next key is numeric, otherwise object\n current[key] = /^\\d+$/.test(nextKey) ? [] : {}\n }\n\n current = current[key]\n }\n\n const lastKey = keys[keys.length - 1]\n if (lastKey != null) {\n current[lastKey] = value\n }\n\n return obj\n}\n\n// --------------------------------------------------------\n// throttle — limit function execution to at most once per `wait` ms.\n// By default both leading and trailing calls are enabled.\n// Set `leading: false` to skip the immediate invocation.\n// Set `trailing: false` to skip the deferred trailing invocation.\n// Returns a throttled function with a `.cancel()` method to clear\n// any pending trailing call.\n// --------------------------------------------------------\nexport const throttle = <T extends (...args: any[]) => any>(\n fn: T,\n wait: number = 0,\n options?: { leading?: boolean; trailing?: boolean },\n): T & { cancel: () => void } => {\n const leading = options?.leading !== false\n const trailing = options?.trailing !== false\n\n let lastCallTime: number | undefined\n let timeoutId: ReturnType<typeof setTimeout> | undefined\n let lastArgs: any[] | undefined\n\n const invoke = (args: any[]) => {\n lastCallTime = Date.now()\n fn(...args)\n }\n\n const startTrailingTimer = (args: any[], delay: number) => {\n lastArgs = args\n if (timeoutId !== undefined) return\n timeoutId = setTimeout(() => {\n timeoutId = undefined\n if (lastArgs) {\n invoke(lastArgs)\n lastArgs = undefined\n }\n }, delay)\n }\n\n const throttled = (...args: any[]) => {\n const now = Date.now()\n const elapsed = lastCallTime === undefined ? wait : now - lastCallTime\n\n if (elapsed >= wait) {\n if (leading) {\n invoke(args)\n } else {\n lastCallTime = now\n if (trailing) startTrailingTimer(args, wait)\n }\n } else if (trailing) {\n startTrailingTimer(args, wait - elapsed)\n }\n }\n\n throttled.cancel = () => {\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n timeoutId = undefined\n }\n lastArgs = undefined\n lastCallTime = undefined\n }\n\n return throttled as T & { cancel: () => void }\n}\n\n// --------------------------------------------------------\n// merge — deep merge objects (source wins, arrays replaced wholesale).\n// Only plain objects are recursed into; class instances and arrays\n// are assigned by reference. Blocks prototype-pollution keys.\n// --------------------------------------------------------\nconst isPlainObject = (value: unknown): value is Record<string, any> =>\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n Object.getPrototypeOf(value) === Object.prototype\n\nexport const merge = <T extends Record<string, any>>(\n target: T,\n ...sources: Record<string, any>[]\n): T => {\n for (const source of sources) {\n if (source == null) continue\n\n for (const key of Object.keys(source)) {\n if (key === '__proto__' || key === 'constructor' || key === 'prototype')\n continue\n\n const targetVal = (target as any)[key]\n const sourceVal = source[key]\n\n if (isPlainObject(targetVal) && isPlainObject(sourceVal)) {\n ;(target as any)[key] = merge({ ...targetVal }, sourceVal)\n } else {\n ;(target as any)[key] = sourceVal\n }\n }\n }\n\n return target\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitus-labs/core",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "license": "MIT",
5
5
  "author": "Vit Bokisch <vit@bokisch.cz>",
6
6
  "maintainers": [
@@ -55,5 +55,5 @@
55
55
  "@vitus-labs/tools-rolldown": "^1.6.0",
56
56
  "@vitus-labs/tools-typescript": "^1.6.0"
57
57
  },
58
- "gitHead": "7bc861a995432d735f07ffbce346ccb61dc34df7"
58
+ "gitHead": "1f1b5be1389a89c41626db181d28018cc978d3ab"
59
59
  }