singularity-components 0.1.68 → 0.1.70

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/main.cjs CHANGED
@@ -8,6 +8,7 @@ var jsxRuntime = require('react/jsx-runtime');
8
8
  var reactSlot = require('@radix-ui/react-slot');
9
9
  var classVarianceAuthority = require('class-variance-authority');
10
10
  var React = require('react');
11
+ var reactSpinners = require('react-spinners');
11
12
 
12
13
  function _interopNamespace(e) {
13
14
  if (e && e.__esModule) return e;
@@ -310,6 +311,15 @@ function Skeleton({ className, ...props }) {
310
311
  }
311
312
  );
312
313
  }
314
+ function Spinner({ size = "md" }) {
315
+ const sizeMap = {
316
+ sm: 30,
317
+ md: 60,
318
+ lg: 90
319
+ };
320
+ const spinnerSize = typeof size === "string" ? sizeMap[size] : size;
321
+ return /* @__PURE__ */ jsxRuntime.jsx(reactSpinners.PuffLoader, { "data-slot": "spinner", size: spinnerSize });
322
+ }
313
323
  function Table({ className, ...props }) {
314
324
  return /* @__PURE__ */ jsxRuntime.jsx(
315
325
  "div",
@@ -477,6 +487,7 @@ exports.Heading = Heading;
477
487
  exports.Input = Input;
478
488
  exports.Layout = Layout;
479
489
  exports.Skeleton = Skeleton;
490
+ exports.Spinner = Spinner;
480
491
  exports.Table = Table;
481
492
  exports.TableBody = TableBody;
482
493
  exports.TableCaption = TableCaption;
package/dist/main.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/heading.tsx","../src/components/ui/input.tsx","../src/components/ui/layout.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/table.tsx","../src/components/ui/text.tsx"],"names":["extendTailwindMerge","twMerge","clsx","AccordionPrimitive","jsx","jsxs","ChevronDownIcon","cva","Slot","Fragment","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAsB,EAAA;AAC1C,EAAA,MAAM,oBAAoBA,iCAAoB,CAAA;AAAA,IAC5C,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,OAAO,iBAAkB,CAAAC,qBAAA,CAAQC,SAAK,CAAA,MAAM,CAAC,CAAC,CAAA;AAChD;ACFA,SAAS,SAAU,CAAA;AAAA,EACjB,GAAG;AACL,CAAyD,EAAA;AACvD,EAAA,sCAA2BC,6BAAnB,CAAA,IAAA,EAAA,EAAwB,WAAU,EAAA,WAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AACnE;AAEA,SAAS,aAAc,CAAA;AAAA,EACrB,SAAA;AAAA,EACA,GAAG;AACL,CAAyD,EAAA;AACvD,EACE,uBAAAC,cAAA;AAAA,IAAoBD,6BAAA,CAAA,IAAA;AAAA,IAAnB;AAAA,MACC,WAAU,EAAA,gBAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,gCAAA,EAAkC,SAAS,CAAA;AAAA,MACxD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAiB,CAAA;AAAA,EACxB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAA4D,EAAA;AAC1D,EAAA,uBACsBC,cAAA,CAAAD,6BAAA,CAAA,MAAA,EAAnB,EAA0B,SAAA,EAAU,SACnC,EAAA,QAAA,kBAAAE,eAAA;AAAA,IAAoBF,6BAAA,CAAA,OAAA;AAAA,IAAnB;AAAA,MACC,WAAU,EAAA,mBAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,qWAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDC,cAAA,CAACE,2BAAgB,EAAA,EAAA,SAAA,EAAU,kIAAmI,EAAA;AAAA;AAAA;AAAA,GAElK,EAAA,CAAA;AAEJ;AAEA,SAAS,gBAAiB,CAAA;AAAA,EACxB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAA4D,EAAA;AAC1D,EACE,uBAAAF,cAAA;AAAA,IAAoBD,6BAAA,CAAA,OAAA;AAAA,IAAnB;AAAA,MACC,WAAU,EAAA,mBAAA;AAAA,MACV,SAAU,EAAA,uHAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,yCAAC,KAAI,EAAA,EAAA,SAAA,EAAW,GAAG,iBAAmB,EAAA,SAAS,GAAI,QAAS,EAAA;AAAA;AAAA,GAC9D;AAEJ;ACzDA,IAAM,aAAgB,GAAAI,0BAAA;AAAA,EACpB,qdAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,OACE,EAAA,4FAAA;AAAA,QACF,SACE,EAAA,kGAAA;AAAA,QACF,WACE,EAAA,gMAAA;AAAA,QACF,OACE,EAAA;AAAA;AACJ,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,OAAS,EAAA;AAAA;AACX;AAEJ;AAEA,SAAS,KAAM,CAAA;AAAA,EACb,SAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,GAAG;AACL,CAC8D,EAAA;AAC5D,EAAM,MAAA,IAAA,GAAO,UAAUC,cAAO,GAAA,MAAA;AAE9B,EAAA,uBACEJ,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,OAAA;AAAA,MACV,WAAW,EAAG,CAAA,aAAA,CAAc,EAAE,OAAQ,EAAC,GAAG,SAAS,CAAA;AAAA,MAClD,GAAG;AAAA;AAAA,GACN;AAEJ;ACrCA,IAAM,cAAiBG,GAAAA,0BAAAA;AAAA,EACrB,6fAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,OACE,EAAA,8EAAA;AAAA,QACF,WACE,EAAA,kLAAA;AAAA,QACF,OACE,EAAA,+JAAA;AAAA,QACF,SACE,EAAA,oFAAA;AAAA,QACF,KACE,EAAA,+EAAA;AAAA,QACF,IAAM,EAAA;AAAA,OACR;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,OAAS,EAAA,2CAAA;AAAA,QACT,EAAI,EAAA,8DAAA;AAAA,QACJ,EAAI,EAAA,kDAAA;AAAA,QACJ,IAAM,EAAA;AAAA;AACR,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,OAAS,EAAA,SAAA;AAAA,MACT,IAAM,EAAA;AAAA;AACR;AAEJ;AAEA,SAAS,MAAO,CAAA;AAAA,EACd,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,GAAG;AACL,CAGK,EAAA;AACH,EAAM,MAAA,IAAA,GAAO,UAAUC,cAAO,GAAA,QAAA;AAE9B,EACE,uBAAAJ,cAAA,CAAAK,mBAAA,EAAA,EACE,QAAAL,kBAAAA,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,QAAA;AAAA,MACV,SAAA,EAAW,GAAG,cAAe,CAAA,EAAE,SAAS,IAAM,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GAER,EAAA,CAAA;AAEJ;ACpDA,IAAM,eAAA,GAAkBG,2BAAI,EAAI,EAAA;AAAA,EAC9B,QAAU,EAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,EAAI,EAAA,gEAAA;AAAA,MACJ,EAAI,EAAA,mFAAA;AAAA,MACJ,EAAI,EAAA,gDAAA;AAAA,MACJ,EAAI,EAAA;AAAA,KACN;AAAA,IACA,UAAY,EAAA;AAAA,MACV,OAAS,EAAA,oBAAA;AAAA,MACT,KAAO,EAAA,0BAAA;AAAA,MACP,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,OAAS,EAAA,IAAA;AAAA,IACT,UAAY,EAAA;AAAA;AAEhB,CAAC,CAAA;AAYM,IAAM,UAAkC,CAAC;AAAA,EAC9C,QAAA;AAAA,EACA,EAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAI,IAAA,CAAC,MAAM,OAAS,EAAA;AAClB,IAAK,EAAA,GAAA,OAAA;AAAA,GACP,MAAA,IAAW,CAAC,EAAI,EAAA;AACd,IAAK,EAAA,GAAA,IAAA;AAAA;AAEP,EAAA,MAAM,SAAY,GAAA,EAAA;AAElB,EAAA,uBACEH,cAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,eAAgB,CAAA,EAAE,SAAS,UAAY,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA,MAChE,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACvDA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAM,EAAA,GAAG,OAAwC,EAAA;AAC3E,EAAA,uBACEA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAU,EAAA,OAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,whBAAA;AAAA,QACA,wFAAA;AAAA,QACA,iHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACZA,IAAM,OAAU,GAAA;AAAA,EACd,WAAa,EAAA,mBAAA;AAAA,EACb,KAAO,EAAA,aAAA;AAAA,EACP,KAAO,EAAA,aAAA;AAAA,EACP,MAAQ,EAAA,cAAA;AAAA,EACR,MAAQ,EAAA;AACV,CAAA;AAEM,IAAA,cAAA,GAAiBG,2BAAI,iCAAmC,EAAA;AAAA,EAC5D,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,mBAAA;AAAA,MACN,GAAK,EAAA;AAAA,KACP;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,EAAA;AAAA,MACP,OAAS,EAAA,mBAAA;AAAA,MACT,OAAS,EAAA,mBAAA;AAAA,MACT,UAAY,EAAA,mBAAA;AAAA,MACZ,aAAe,EAAA;AAAA,KACjB;AAAA,IACA,OAAS,EAAA;AAAA,GACX;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,KAAA;AAAA,IACN,IAAM,EAAA;AAAA;AAEV,CAAC;AAMD,SAAS,MAAO,CAAA;AAAA,EACd,QAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAmC,EAAA;AACjC,EAAM,MAAA,eAAA,GAAkB,CACtB,OACY,KAAA;AACZ,IAAI,IAAA,OAAA,CAAQ,IAAS,KAAA,MAAA,CAAO,IAAM,EAAA;AAChC,MAAO,OAAA,IAAA;AAAA,KAEP,MAAA,IAAA,OAAA,CAAQ,IAAS,KAAA,MAAA,CAAO,IACvB,KAAA,IAAA,KAAS,OACR,IAAA,IAAA,KAAS,OACT,IAAA,IAAA,KAAS,UACT,IAAA,IAAA,KAAS,aACX,CAAA,EAAA;AACA,MAAO,OAAA,IAAA;AAAA,KACT,MAAA,IACE,QAAQ,IAAS,KAAA,MAAA,CAAO,SACvB,IAAS,KAAA,UAAA,IAAc,SAAS,aACjC,CAAA,EAAA;AACA,MAAO,OAAA,IAAA;AAAA,eACE,OAAQ,CAAA,IAAA,KAAS,MAAO,CAAA,IAAA,IAAQ,SAAS,aAAe,EAAA;AACjE,MAAO,OAAA,IAAA;AAAA;AAGT,IAAQ,OAAA,CAAA,KAAA;AAAA,MACN,2CAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAQ,CAAA;AAAA,KACV;AACA,IAAO,OAAA,KAAA;AAAA,GACT;AAEA,EAAM,MAAA,YAAA,GAAe,CACnB,OACG,KAAA;AACH,IAAI,IAAA,CAAC,eAAgB,CAAA,OAAO,CAAG,EAAA;AAC7B,MAAA;AAAA;AAEF,IAAO,OAAA,OAAA;AAAA,GACT;AAEA,EAAA,uBACEH,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,WAAW,EAAG,CAAA,OAAA,CAAQ,OAAW,IAAA,aAAa,GAAG,SAAS,CAAA;AAAA,MAE1D,QAAAA,kBAAAA,cAAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,EAAG,CAAA,cAAA,CAAe,EAAE,IAAA,EAAM,IAAK,EAAC,CAAC,CAAA,EAC9C,UAAMM,gBAAS,CAAA,QAAA,CAAA,GAAA;AAAA,QAAI,QAAA;AAAA,QAAU,CAAC,KACvB,KAAAA,gBAAA,CAAA,cAAA,CAAe,KAAK,CAAA,GAAI,YAAa,CAAA,KAAK,CAAI,mBAAAN,cAAAK,CAAAA,mBAAAA,EAAA,EAAE;AAAA,OAE1D,EAAA;AAAA;AAAA,GACF;AAEJ;AAOA,SAAS,GAAI,CAAA,EAAE,QAAU,EAAA,OAAA,EAAoB,EAAA;AAC3C,EAAO,OAAA,OAAA,mBAAUL,cAAAA,CAAAK,mBAAA,EAAA,EAAG,UAAS,CAAM,mBAAAL,cAAC,CAAA,KAAA,EAAA,EAAK,QAAS,EAAA,CAAA;AACpD;AAEA,MAAA,CAAO,IAAO,GAAA,GAAA;AACd,MAAA,CAAO,IAAO,GAAA,GAAA;AACd,MAAA,CAAO,IAAO,GAAA,GAAA;AACd,MAAA,CAAO,IAAO,GAAA,GAAA;AC7Gd,SAAS,QAAS,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACtE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,UAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACrE,GAAG;AAAA;AAAA,GACN;AAEJ;ACLA,SAAS,KAAM,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AACrE,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,iBAAA;AAAA,MACV,SAAU,EAAA,0CAAA;AAAA,MAEV,QAAAA,kBAAAA,cAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,WAAU,EAAA,OAAA;AAAA,UACV,SAAA,EAAW,EAAG,CAAA,wCAAA,EAA0C,SAAS,CAAA;AAAA,UAChE,GAAG;AAAA;AAAA;AACN;AAAA,GACF;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AAC3E,EAAA,uBACEA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,oBAAA,EAAsB,SAAS,CAAA;AAAA,MAC5C,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AACzE,EAAA,uBACEA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,YAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AAC3E,EAAA,uBACEA,cAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,qEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAS,CAAA,EAAE,SAAW,EAAA,GAAG,OAAqC,EAAA;AACrE,EAAA,uBACEA,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,WAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,yFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,GAAG,OAAqC,EAAA;AACtE,EAAA,uBACEA,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,YAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,+KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,GAAG,OAAqC,EAAA;AACtE,EAAA,uBACEA,cAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,YAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,uHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAa,CAAA;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAoC,EAAA;AAClC,EAAA,uBACEA,cAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,eAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACrE,GAAG;AAAA;AAAA,GACN;AAEJ;AClGA,IAAM,YAAA,GAAeG,2BAAI,EAAI,EAAA;AAAA,EAC3B,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,EAAI,EAAA,YAAA;AAAA,MACJ,EAAI,EAAA,YAAA;AAAA,MACJ,IAAM,EAAA,cAAA;AAAA,MACN,EAAI,EAAA,YAAA;AAAA,MACJ,EAAI,EAAA;AAAA,KACN;AAAA,IACA,UAAY,EAAA;AAAA,MACV,OAAS,EAAA,oBAAA;AAAA,MACT,KAAO,EAAA,0BAAA;AAAA,MACP,OAAS,EAAA,iBAAA;AAAA,MACT,SAAW,EAAA,8BAAA;AAAA,MACX,WAAa,EAAA,qBAAA;AAAA,MACb,MAAQ,EAAA;AAAA,KACV;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,MAAQ,EAAA,gBAAA;AAAA,MACR,MAAQ,EAAA,gBAAA;AAAA,MACR,QAAU,EAAA,kBAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,MAAA;AAAA,IACN,UAAY,EAAA,SAAA;AAAA,IACZ,MAAQ,EAAA;AAAA;AAEZ,CAAC,CAAA;AAQM,IAAM,OAA4B,CAAC;AAAA,EACxC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEH,cAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,EAAA;AAAA,QACT,YAAa,CAAA;AAAA,UACX,IAAA;AAAA,UACA,UAAA;AAAA,UACA,MAAA;AAAA,UACA;AAAA,SACD;AAAA,OACH;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"main.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { extendTailwindMerge, twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n const twMergeWithPrefix = extendTailwindMerge({\r\n prefix: \"sg:\",\r\n });\r\n\r\n return twMergeWithPrefix(twMerge(clsx(inputs)));\r\n}\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cn } from \"../../utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"sg:border-b last:sg:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"sg:flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 sg:flex sg:flex-1 sg:items-start sg:justify-between sg:gap-4 sg:rounded-md sg:py-4 sg:text-left sg:text-sm sg:font-medium sg:transition-all sg:outline-none hover:sg:underline focus-visible:sg:ring-[3px] disabled:sg:pointer-events-none disabled:sg:opacity-50 [&[data-state=open]>svg]:sg:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"sg:text-muted-foreground sg:pointer-events-none sg:size-4 sg:shrink-0 sg:translate-y-0.5 sg:transition-transform sg:duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:sg:animate-accordion-up data-[state=open]:sg:animate-accordion-down sg:overflow-hidden sg:text-sm\"\n {...props}\n >\n <div className={cn(\"sg:pt-0 sg:pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst badgeVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:rounded-md sg:border sg:px-2 sg:py-0.5 sg:text-xs sg:font-medium sg:w-fit sg:whitespace-nowrap sg:shrink-0 [&>svg]:sg:size-3 sg:gap-1 [&>svg]:sg:pointer-events-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive sg:transition-[color,box-shadow] sg:overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"sg:border-transparent sg:bg-primary sg:text-primary-foreground [a&]:hover:sg:bg-primary/90\",\n secondary:\n \"sg:border-transparent sg:bg-secondary sg:text-secondary-foreground [a&]:hover:sg:bg-secondary/90\",\n destructive:\n \"sg:border-transparent sg:bg-destructive sg:text-white [a&]:hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:text-foreground [a&]:hover:sg:bg-accent [a&]:hover:sg:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst buttonVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:transition-all disabled:sg:pointer-events-none disabled:sg:opacity-50 [&_svg]:sg:pointer-events-none [&_svg:not([class*=size-])]:sg:size-4 sg:shrink-0 [&_svg]:sg:shrink-0 sg:outline-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"sg:bg-primary sg:text-primary-foreground sg:shadow-xs hover:sg:bg-primary/90\",\n destructive:\n \"sg:bg-destructive sg:text-white sg:shadow-xs hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:border sg:bg-background sg:shadow-xs hover:sg:bg-accent hover:sg:text-accent-foreground dark:sg:bg-input/30 dark:sg:border-input dark:hover:sg:bg-input/50\",\n secondary:\n \"sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs hover:sg:bg-secondary/80\",\n ghost:\n \"hover:sg:bg-accent hover:sg:text-accent-foreground dark:hover:sg:bg-accent/50\",\n link: \"sg:text-primary sg:underline-offset-4 hover:sg:underline\",\n },\n size: {\n default: \"sg:h-9 sg:px-4 sg:py-2 has-[>svg]:sg:px-3\",\n sm: \"sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 has-[>svg]:sg:px-2.5\",\n lg: \"sg:h-10 sg:rounded-md sg:px-6 has-[>svg]:sg:px-4\",\n icon: \"sg:size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <>\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n </>\n );\n}\n\nexport { Button, buttonVariants };\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst headingVariants = cva(\"\", {\r\n variants: {\r\n variant: {\r\n h1: \"sg:text-4xl sg:font-extrabold sg:tracking-tight sg:lg:text-5xl\",\r\n h2: \"sg:text-3xl sg:font-semibold sg:tracking-tight sg:transition-colors sg:first:mt-0\",\r\n h3: \"sg:text-2xl sg:font-semibold sg:tracking-tight\",\r\n h4: \"sg:text-xl sg:font-semibold sg:tracking-tight\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"h2\",\r\n foreground: \"default\",\r\n },\r\n});\r\n\r\nexport interface HeadingProps\r\n extends OmitClassProperty<\r\n React.HTMLAttributes<HTMLHeadingElement>,\r\n \"className\"\r\n >,\r\n VariantProps<typeof headingVariants> {\r\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\";\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Heading: React.FC<HeadingProps> = ({\r\n children,\r\n as,\r\n variant,\r\n foreground,\r\n className,\r\n ...props\r\n}) => {\r\n if (!as && variant) {\r\n as = variant;\r\n } else if (!as) {\r\n as = \"h2\";\r\n }\r\n const Component = as;\r\n\r\n return (\r\n <Component\r\n className={cn(headingVariants({ variant, foreground, className }))}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n};\r\n","import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:sg:text-foreground placeholder:sg:text-muted-foreground selection:sg:bg-primary selection:sg:text-primary-foreground dark:sg:bg-input/30 sg:border-input sg:flex sg:h-9 sg:w-full sg:min-w-0 sg:rounded-md sg:border sg:bg-transparent sg:px-3 sg:py-1 sg:text-base sg:shadow-xs sg:transition-[color,box-shadow] sg:outline-none file:sg:inline-flex file:sg:h-7 file:sg:border-0 file:sg:bg-transparent file:sg:text-sm file:sg:font-medium disabled:sg:pointer-events-none disabled:sg:cursor-not-allowed disabled:sg:opacity-50 md:sg:text-sm\",\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px]\",\n \"aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { PropsWithChildren } from \"react\";\r\n\r\nconst bgColor = {\r\n transparent: \"sg:bg-transparent\",\r\n white: \"sg:bg-white\",\r\n black: \"sg:bg-black\",\r\n orange: \"sg:bg-orange\",\r\n purple: \"sg:bg-purple\",\r\n};\r\n\r\nconst layoutVariants = cva(\"sg:grid sg:grid-cols-1 sg:gap-4\", {\r\n variants: {\r\n type: {\r\n full: \"sg:w-full sg:px-4\",\r\n col: \"sg:mx-auto sg:max-w-[768px] sg:px-4 sg:md:px-0\",\r\n },\r\n cols: {\r\n \"100\": \"\",\r\n \"66-33\": \"sg:md:grid-cols-2\",\r\n \"50-50\": \"sg:md:grid-cols-2\",\r\n \"33-33-33\": \"sg:md:grid-cols-3\",\r\n \"25-25-25-25\": \"sg:md:grid-cols-4\",\r\n },\r\n bgcolor: bgColor,\r\n },\r\n defaultVariants: {\r\n type: \"col\",\r\n cols: \"100\",\r\n },\r\n});\r\n\r\nexport interface LayoutProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof layoutVariants> {}\r\n\r\nfunction Layout({\r\n children,\r\n className,\r\n type,\r\n cols,\r\n bgcolor,\r\n ...props\r\n}: PropsWithChildren<LayoutProps>) {\r\n const allowedInLayout = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ): boolean => {\r\n if (content.type === Layout.Col1) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col2 &&\r\n (cols === \"66-33\" ||\r\n cols === \"50-50\" ||\r\n cols === \"33-33-33\" ||\r\n cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col3 &&\r\n (cols === \"33-33-33\" || cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (content.type === Layout.Col4 && cols === \"25-25-25-25\") {\r\n return true;\r\n }\r\n\r\n console.error(\r\n \"Content not allowed in column for variant\",\r\n cols,\r\n content.type\r\n );\r\n return false;\r\n };\r\n\r\n const renderColumn = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ) => {\r\n if (!allowedInLayout(content)) {\r\n return;\r\n }\r\n return content;\r\n };\r\n\r\n return (\r\n <div\r\n {...props}\r\n className={cn(bgColor[bgcolor ?? \"transparent\"], className)}\r\n >\r\n <div className={cn(layoutVariants({ type, cols }))}>\r\n {React.Children.map(children, (child) =>\r\n React.isValidElement(child) ? renderColumn(child) : <></>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ntype colProp = {\r\n children?: React.ReactNode;\r\n hideDiv?: boolean;\r\n};\r\n\r\nfunction Col({ children, hideDiv }: colProp) {\r\n return hideDiv ? <>{children}</> : <div>{children}</div>;\r\n}\r\n\r\nLayout.Col1 = Col;\r\nLayout.Col2 = Col;\r\nLayout.Col3 = Col;\r\nLayout.Col4 = Col;\r\n\r\nexport { Layout, layoutVariants };\r\n","import { cn } from \"../../utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"sg:bg-accent sg:animate-pulse sg:rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"sg:relative sg:w-full sg:overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"sg:w-full sg:caption-bottom sg:text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:sg:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:sg:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"sg:bg-muted/50 sg:border-t sg:font-medium [&>tr]:last:sg:border-b-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:sg:bg-muted/50 data-[state=selected]:sg:bg-muted sg:border-b sg:transition-colors\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"sg:text-foreground sg:h-10 sg:px-2 sg:text-left sg:align-middle sg:font-medium sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"sg:p-2 sg:align-middle sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"sg:text-muted-foreground sg:mt-4 sg:text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst textVariants = cva(\"\", {\r\n variants: {\r\n size: {\r\n xs: \"sg:text-xs\",\r\n sm: \"sg:text-sm\",\r\n base: \"sg:text-base\",\r\n lg: \"sg:text-lg\",\r\n xl: \"sg:text-xl\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n secondary: \"sg:text-secondary-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n accent: \"sg:text-accent-foreground\",\r\n },\r\n weight: {\r\n normal: \"sg:font-normal\",\r\n medium: \"sg:font-medium\",\r\n semibold: \"sg:font-semibold\",\r\n bold: \"sg:font-bold\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"base\",\r\n foreground: \"default\",\r\n weight: \"normal\",\r\n },\r\n});\r\n\r\nexport interface TextProps\r\n extends OmitClassProperty<React.HTMLAttributes<HTMLDivElement>, \"className\">,\r\n VariantProps<typeof textVariants> {\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Text: React.FC<TextProps> = ({\r\n children,\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n ...props\r\n}) => {\r\n return (\r\n <p\r\n className={cn(\r\n textVariants({\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n })\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </p>\r\n );\r\n};\r\n"]}
1
+ {"version":3,"sources":["../src/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/heading.tsx","../src/components/ui/input.tsx","../src/components/ui/layout.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/spinner.tsx","../src/components/ui/table.tsx","../src/components/ui/text.tsx"],"names":["extendTailwindMerge","twMerge","clsx","AccordionPrimitive","jsx","jsxs","ChevronDownIcon","cva","Slot","Fragment","React","PuffLoader"],"mappings":"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","file":"main.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { extendTailwindMerge, twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n const twMergeWithPrefix = extendTailwindMerge({\r\n prefix: \"sg:\",\r\n });\r\n\r\n return twMergeWithPrefix(twMerge(clsx(inputs)));\r\n}\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cn } from \"../../utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"sg:border-b last:sg:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"sg:flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 sg:flex sg:flex-1 sg:items-start sg:justify-between sg:gap-4 sg:rounded-md sg:py-4 sg:text-left sg:text-sm sg:font-medium sg:transition-all sg:outline-none hover:sg:underline focus-visible:sg:ring-[3px] disabled:sg:pointer-events-none disabled:sg:opacity-50 [&[data-state=open]>svg]:sg:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"sg:text-muted-foreground sg:pointer-events-none sg:size-4 sg:shrink-0 sg:translate-y-0.5 sg:transition-transform sg:duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:sg:animate-accordion-up data-[state=open]:sg:animate-accordion-down sg:overflow-hidden sg:text-sm\"\n {...props}\n >\n <div className={cn(\"sg:pt-0 sg:pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst badgeVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:rounded-md sg:border sg:px-2 sg:py-0.5 sg:text-xs sg:font-medium sg:w-fit sg:whitespace-nowrap sg:shrink-0 [&>svg]:sg:size-3 sg:gap-1 [&>svg]:sg:pointer-events-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive sg:transition-[color,box-shadow] sg:overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"sg:border-transparent sg:bg-primary sg:text-primary-foreground [a&]:hover:sg:bg-primary/90\",\n secondary:\n \"sg:border-transparent sg:bg-secondary sg:text-secondary-foreground [a&]:hover:sg:bg-secondary/90\",\n destructive:\n \"sg:border-transparent sg:bg-destructive sg:text-white [a&]:hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:text-foreground [a&]:hover:sg:bg-accent [a&]:hover:sg:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst buttonVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:transition-all disabled:sg:pointer-events-none disabled:sg:opacity-50 [&_svg]:sg:pointer-events-none [&_svg:not([class*=size-])]:sg:size-4 sg:shrink-0 [&_svg]:sg:shrink-0 sg:outline-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"sg:bg-primary sg:text-primary-foreground sg:shadow-xs hover:sg:bg-primary/90\",\n destructive:\n \"sg:bg-destructive sg:text-white sg:shadow-xs hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:border sg:bg-background sg:shadow-xs hover:sg:bg-accent hover:sg:text-accent-foreground dark:sg:bg-input/30 dark:sg:border-input dark:hover:sg:bg-input/50\",\n secondary:\n \"sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs hover:sg:bg-secondary/80\",\n ghost:\n \"hover:sg:bg-accent hover:sg:text-accent-foreground dark:hover:sg:bg-accent/50\",\n link: \"sg:text-primary sg:underline-offset-4 hover:sg:underline\",\n },\n size: {\n default: \"sg:h-9 sg:px-4 sg:py-2 has-[>svg]:sg:px-3\",\n sm: \"sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 has-[>svg]:sg:px-2.5\",\n lg: \"sg:h-10 sg:rounded-md sg:px-6 has-[>svg]:sg:px-4\",\n icon: \"sg:size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <>\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n </>\n );\n}\n\nexport { Button, buttonVariants };\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst headingVariants = cva(\"\", {\r\n variants: {\r\n variant: {\r\n h1: \"sg:text-4xl sg:font-extrabold sg:tracking-tight sg:lg:text-5xl\",\r\n h2: \"sg:text-3xl sg:font-semibold sg:tracking-tight sg:transition-colors sg:first:mt-0\",\r\n h3: \"sg:text-2xl sg:font-semibold sg:tracking-tight\",\r\n h4: \"sg:text-xl sg:font-semibold sg:tracking-tight\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"h2\",\r\n foreground: \"default\",\r\n },\r\n});\r\n\r\nexport interface HeadingProps\r\n extends OmitClassProperty<\r\n React.HTMLAttributes<HTMLHeadingElement>,\r\n \"className\"\r\n >,\r\n VariantProps<typeof headingVariants> {\r\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\";\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Heading: React.FC<HeadingProps> = ({\r\n children,\r\n as,\r\n variant,\r\n foreground,\r\n className,\r\n ...props\r\n}) => {\r\n if (!as && variant) {\r\n as = variant;\r\n } else if (!as) {\r\n as = \"h2\";\r\n }\r\n const Component = as;\r\n\r\n return (\r\n <Component\r\n className={cn(headingVariants({ variant, foreground, className }))}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n};\r\n","import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:sg:text-foreground placeholder:sg:text-muted-foreground selection:sg:bg-primary selection:sg:text-primary-foreground dark:sg:bg-input/30 sg:border-input sg:flex sg:h-9 sg:w-full sg:min-w-0 sg:rounded-md sg:border sg:bg-transparent sg:px-3 sg:py-1 sg:text-base sg:shadow-xs sg:transition-[color,box-shadow] sg:outline-none file:sg:inline-flex file:sg:h-7 file:sg:border-0 file:sg:bg-transparent file:sg:text-sm file:sg:font-medium disabled:sg:pointer-events-none disabled:sg:cursor-not-allowed disabled:sg:opacity-50 md:sg:text-sm\",\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px]\",\n \"aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { PropsWithChildren } from \"react\";\r\n\r\nconst bgColor = {\r\n transparent: \"sg:bg-transparent\",\r\n white: \"sg:bg-white\",\r\n black: \"sg:bg-black\",\r\n orange: \"sg:bg-orange\",\r\n purple: \"sg:bg-purple\",\r\n};\r\n\r\nconst layoutVariants = cva(\"sg:grid sg:grid-cols-1 sg:gap-4\", {\r\n variants: {\r\n type: {\r\n full: \"sg:w-full sg:px-4\",\r\n col: \"sg:mx-auto sg:max-w-[768px] sg:px-4 sg:md:px-0\",\r\n },\r\n cols: {\r\n \"100\": \"\",\r\n \"66-33\": \"sg:md:grid-cols-2\",\r\n \"50-50\": \"sg:md:grid-cols-2\",\r\n \"33-33-33\": \"sg:md:grid-cols-3\",\r\n \"25-25-25-25\": \"sg:md:grid-cols-4\",\r\n },\r\n bgcolor: bgColor,\r\n },\r\n defaultVariants: {\r\n type: \"col\",\r\n cols: \"100\",\r\n },\r\n});\r\n\r\nexport interface LayoutProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof layoutVariants> {}\r\n\r\nfunction Layout({\r\n children,\r\n className,\r\n type,\r\n cols,\r\n bgcolor,\r\n ...props\r\n}: PropsWithChildren<LayoutProps>) {\r\n const allowedInLayout = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ): boolean => {\r\n if (content.type === Layout.Col1) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col2 &&\r\n (cols === \"66-33\" ||\r\n cols === \"50-50\" ||\r\n cols === \"33-33-33\" ||\r\n cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col3 &&\r\n (cols === \"33-33-33\" || cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (content.type === Layout.Col4 && cols === \"25-25-25-25\") {\r\n return true;\r\n }\r\n\r\n console.error(\r\n \"Content not allowed in column for variant\",\r\n cols,\r\n content.type\r\n );\r\n return false;\r\n };\r\n\r\n const renderColumn = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ) => {\r\n if (!allowedInLayout(content)) {\r\n return;\r\n }\r\n return content;\r\n };\r\n\r\n return (\r\n <div\r\n {...props}\r\n className={cn(bgColor[bgcolor ?? \"transparent\"], className)}\r\n >\r\n <div className={cn(layoutVariants({ type, cols }))}>\r\n {React.Children.map(children, (child) =>\r\n React.isValidElement(child) ? renderColumn(child) : <></>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ntype colProp = {\r\n children?: React.ReactNode;\r\n hideDiv?: boolean;\r\n};\r\n\r\nfunction Col({ children, hideDiv }: colProp) {\r\n return hideDiv ? <>{children}</> : <div>{children}</div>;\r\n}\r\n\r\nLayout.Col1 = Col;\r\nLayout.Col2 = Col;\r\nLayout.Col3 = Col;\r\nLayout.Col4 = Col;\r\n\r\nexport { Layout, layoutVariants };\r\n","import { cn } from \"../../utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"sg:bg-accent sg:animate-pulse sg:rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import { PuffLoader } from \"react-spinners\";\r\n\r\ntype Props = {\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n speedMultiplier?: number;\r\n};\r\n\r\nfunction Spinner({ size = \"md\" }: Props) {\r\n const sizeMap: Record<string, number> = {\r\n sm: 30,\r\n md: 60,\r\n lg: 90,\r\n };\r\n\r\n const spinnerSize = typeof size === \"string\" ? sizeMap[size] : size;\r\n\r\n return <PuffLoader data-slot=\"spinner\" size={spinnerSize} />;\r\n}\r\n\r\nexport { Spinner };\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"sg:relative sg:w-full sg:overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"sg:w-full sg:caption-bottom sg:text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:sg:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:sg:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"sg:bg-muted/50 sg:border-t sg:font-medium [&>tr]:last:sg:border-b-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:sg:bg-muted/50 data-[state=selected]:sg:bg-muted sg:border-b sg:transition-colors\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"sg:text-foreground sg:h-10 sg:px-2 sg:text-left sg:align-middle sg:font-medium sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"sg:p-2 sg:align-middle sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"sg:text-muted-foreground sg:mt-4 sg:text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst textVariants = cva(\"\", {\r\n variants: {\r\n size: {\r\n xs: \"sg:text-xs\",\r\n sm: \"sg:text-sm\",\r\n base: \"sg:text-base\",\r\n lg: \"sg:text-lg\",\r\n xl: \"sg:text-xl\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n secondary: \"sg:text-secondary-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n accent: \"sg:text-accent-foreground\",\r\n },\r\n weight: {\r\n normal: \"sg:font-normal\",\r\n medium: \"sg:font-medium\",\r\n semibold: \"sg:font-semibold\",\r\n bold: \"sg:font-bold\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"base\",\r\n foreground: \"default\",\r\n weight: \"normal\",\r\n },\r\n});\r\n\r\nexport interface TextProps\r\n extends OmitClassProperty<React.HTMLAttributes<HTMLDivElement>, \"className\">,\r\n VariantProps<typeof textVariants> {\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Text: React.FC<TextProps> = ({\r\n children,\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n ...props\r\n}) => {\r\n return (\r\n <p\r\n className={cn(\r\n textVariants({\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n })\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </p>\r\n );\r\n};\r\n"]}
package/dist/main.d.cts CHANGED
@@ -65,6 +65,12 @@ declare function Col({ children, hideDiv }: colProp): react_jsx_runtime.JSX.Elem
65
65
 
66
66
  declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
67
67
 
68
+ type Props = {
69
+ size?: "sm" | "md" | "lg";
70
+ speedMultiplier?: number;
71
+ };
72
+ declare function Spinner({ size }: Props): react_jsx_runtime.JSX.Element;
73
+
68
74
  declare function Table({ className, ...props }: React$1.ComponentProps<"table">): react_jsx_runtime.JSX.Element;
69
75
  declare function TableHeader({ className, ...props }: React$1.ComponentProps<"thead">): react_jsx_runtime.JSX.Element;
70
76
  declare function TableBody({ className, ...props }: React$1.ComponentProps<"tbody">): react_jsx_runtime.JSX.Element;
@@ -84,4 +90,4 @@ interface TextProps extends OmitClassProperty<React__default.HTMLAttributes<HTML
84
90
  }
85
91
  declare const Text: React__default.FC<TextProps>;
86
92
 
87
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Badge, Button, Heading, type HeadingProps, Input, Layout, type LayoutProps, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Text, type TextProps, badgeVariants, buttonVariants, layoutVariants };
93
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Badge, Button, Heading, type HeadingProps, Input, Layout, type LayoutProps, Skeleton, Spinner, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Text, type TextProps, badgeVariants, buttonVariants, layoutVariants };
package/dist/main.d.ts CHANGED
@@ -65,6 +65,12 @@ declare function Col({ children, hideDiv }: colProp): react_jsx_runtime.JSX.Elem
65
65
 
66
66
  declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
67
67
 
68
+ type Props = {
69
+ size?: "sm" | "md" | "lg";
70
+ speedMultiplier?: number;
71
+ };
72
+ declare function Spinner({ size }: Props): react_jsx_runtime.JSX.Element;
73
+
68
74
  declare function Table({ className, ...props }: React$1.ComponentProps<"table">): react_jsx_runtime.JSX.Element;
69
75
  declare function TableHeader({ className, ...props }: React$1.ComponentProps<"thead">): react_jsx_runtime.JSX.Element;
70
76
  declare function TableBody({ className, ...props }: React$1.ComponentProps<"tbody">): react_jsx_runtime.JSX.Element;
@@ -84,4 +90,4 @@ interface TextProps extends OmitClassProperty<React__default.HTMLAttributes<HTML
84
90
  }
85
91
  declare const Text: React__default.FC<TextProps>;
86
92
 
87
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Badge, Button, Heading, type HeadingProps, Input, Layout, type LayoutProps, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Text, type TextProps, badgeVariants, buttonVariants, layoutVariants };
93
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Badge, Button, Heading, type HeadingProps, Input, Layout, type LayoutProps, Skeleton, Spinner, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Text, type TextProps, badgeVariants, buttonVariants, layoutVariants };
package/dist/main.js CHANGED
@@ -6,6 +6,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
6
  import { Slot } from '@radix-ui/react-slot';
7
7
  import { cva } from 'class-variance-authority';
8
8
  import * as React from 'react';
9
+ import { PuffLoader } from 'react-spinners';
9
10
 
10
11
  // src/components/ui/accordion.tsx
11
12
  function cn(...inputs) {
@@ -287,6 +288,15 @@ function Skeleton({ className, ...props }) {
287
288
  }
288
289
  );
289
290
  }
291
+ function Spinner({ size = "md" }) {
292
+ const sizeMap = {
293
+ sm: 30,
294
+ md: 60,
295
+ lg: 90
296
+ };
297
+ const spinnerSize = typeof size === "string" ? sizeMap[size] : size;
298
+ return /* @__PURE__ */ jsx(PuffLoader, { "data-slot": "spinner", size: spinnerSize });
299
+ }
290
300
  function Table({ className, ...props }) {
291
301
  return /* @__PURE__ */ jsx(
292
302
  "div",
@@ -444,6 +454,6 @@ var Text = ({
444
454
  );
445
455
  };
446
456
 
447
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Badge, Button, Heading, Input, Layout, Skeleton, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Text, badgeVariants, buttonVariants, layoutVariants };
457
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Badge, Button, Heading, Input, Layout, Skeleton, Spinner, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Text, badgeVariants, buttonVariants, layoutVariants };
448
458
  //# sourceMappingURL=main.js.map
449
459
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/heading.tsx","../src/components/ui/input.tsx","../src/components/ui/layout.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/table.tsx","../src/components/ui/text.tsx"],"names":["jsx","cva","Slot","Fragment"],"mappings":";;;;;;;;;;AAGO,SAAS,MAAM,MAAsB,EAAA;AAC1C,EAAA,MAAM,oBAAoB,mBAAoB,CAAA;AAAA,IAC5C,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,OAAO,iBAAkB,CAAA,OAAA,CAAQ,IAAK,CAAA,MAAM,CAAC,CAAC,CAAA;AAChD;ACFA,SAAS,SAAU,CAAA;AAAA,EACjB,GAAG;AACL,CAAyD,EAAA;AACvD,EAAA,2BAA2B,kBAAnB,CAAA,IAAA,EAAA,EAAwB,WAAU,EAAA,WAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AACnE;AAEA,SAAS,aAAc,CAAA;AAAA,EACrB,SAAA;AAAA,EACA,GAAG;AACL,CAAyD,EAAA;AACvD,EACE,uBAAA,GAAA;AAAA,IAAoB,kBAAA,CAAA,IAAA;AAAA,IAAnB;AAAA,MACC,WAAU,EAAA,gBAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,gCAAA,EAAkC,SAAS,CAAA;AAAA,MACxD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAiB,CAAA;AAAA,EACxB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAA4D,EAAA;AAC1D,EAAA,uBACsB,GAAA,CAAA,kBAAA,CAAA,MAAA,EAAnB,EAA0B,SAAA,EAAU,SACnC,EAAA,QAAA,kBAAA,IAAA;AAAA,IAAoB,kBAAA,CAAA,OAAA;AAAA,IAAnB;AAAA,MACC,WAAU,EAAA,mBAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,qWAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAAC,eAAgB,EAAA,EAAA,SAAA,EAAU,kIAAmI,EAAA;AAAA;AAAA;AAAA,GAElK,EAAA,CAAA;AAEJ;AAEA,SAAS,gBAAiB,CAAA;AAAA,EACxB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAA4D,EAAA;AAC1D,EACE,uBAAA,GAAA;AAAA,IAAoB,kBAAA,CAAA,OAAA;AAAA,IAAnB;AAAA,MACC,WAAU,EAAA,mBAAA;AAAA,MACV,SAAU,EAAA,uHAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,8BAAC,KAAI,EAAA,EAAA,SAAA,EAAW,GAAG,iBAAmB,EAAA,SAAS,GAAI,QAAS,EAAA;AAAA;AAAA,GAC9D;AAEJ;ACzDA,IAAM,aAAgB,GAAA,GAAA;AAAA,EACpB,qdAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,OACE,EAAA,4FAAA;AAAA,QACF,SACE,EAAA,kGAAA;AAAA,QACF,WACE,EAAA,gMAAA;AAAA,QACF,OACE,EAAA;AAAA;AACJ,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,OAAS,EAAA;AAAA;AACX;AAEJ;AAEA,SAAS,KAAM,CAAA;AAAA,EACb,SAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,GAAG;AACL,CAC8D,EAAA;AAC5D,EAAM,MAAA,IAAA,GAAO,UAAU,IAAO,GAAA,MAAA;AAE9B,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,OAAA;AAAA,MACV,WAAW,EAAG,CAAA,aAAA,CAAc,EAAE,OAAQ,EAAC,GAAG,SAAS,CAAA;AAAA,MAClD,GAAG;AAAA;AAAA,GACN;AAEJ;ACrCA,IAAM,cAAiBC,GAAAA,GAAAA;AAAA,EACrB,6fAAA;AAAA,EACA;AAAA,IACE,QAAU,EAAA;AAAA,MACR,OAAS,EAAA;AAAA,QACP,OACE,EAAA,8EAAA;AAAA,QACF,WACE,EAAA,kLAAA;AAAA,QACF,OACE,EAAA,+JAAA;AAAA,QACF,SACE,EAAA,oFAAA;AAAA,QACF,KACE,EAAA,+EAAA;AAAA,QACF,IAAM,EAAA;AAAA,OACR;AAAA,MACA,IAAM,EAAA;AAAA,QACJ,OAAS,EAAA,2CAAA;AAAA,QACT,EAAI,EAAA,8DAAA;AAAA,QACJ,EAAI,EAAA,kDAAA;AAAA,QACJ,IAAM,EAAA;AAAA;AACR,KACF;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,OAAS,EAAA,SAAA;AAAA,MACT,IAAM,EAAA;AAAA;AACR;AAEJ;AAEA,SAAS,MAAO,CAAA;AAAA,EACd,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAU,GAAA,KAAA;AAAA,EACV,GAAG;AACL,CAGK,EAAA;AACH,EAAM,MAAA,IAAA,GAAO,UAAUC,IAAO,GAAA,QAAA;AAE9B,EACE,uBAAAF,GAAA,CAAA,QAAA,EAAA,EACE,QAAAA,kBAAAA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,QAAA;AAAA,MACV,SAAA,EAAW,GAAG,cAAe,CAAA,EAAE,SAAS,IAAM,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG;AAAA;AAAA,GAER,EAAA,CAAA;AAEJ;ACpDA,IAAM,eAAA,GAAkBC,IAAI,EAAI,EAAA;AAAA,EAC9B,QAAU,EAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,EAAI,EAAA,gEAAA;AAAA,MACJ,EAAI,EAAA,mFAAA;AAAA,MACJ,EAAI,EAAA,gDAAA;AAAA,MACJ,EAAI,EAAA;AAAA,KACN;AAAA,IACA,UAAY,EAAA;AAAA,MACV,OAAS,EAAA,oBAAA;AAAA,MACT,KAAO,EAAA,0BAAA;AAAA,MACP,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,OAAS,EAAA,IAAA;AAAA,IACT,UAAY,EAAA;AAAA;AAEhB,CAAC,CAAA;AAYM,IAAM,UAAkC,CAAC;AAAA,EAC9C,QAAA;AAAA,EACA,EAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAI,IAAA,CAAC,MAAM,OAAS,EAAA;AAClB,IAAK,EAAA,GAAA,OAAA;AAAA,GACP,MAAA,IAAW,CAAC,EAAI,EAAA;AACd,IAAK,EAAA,GAAA,IAAA;AAAA;AAEP,EAAA,MAAM,SAAY,GAAA,EAAA;AAElB,EAAA,uBACED,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,eAAgB,CAAA,EAAE,SAAS,UAAY,EAAA,SAAA,EAAW,CAAC,CAAA;AAAA,MAChE,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;ACvDA,SAAS,MAAM,EAAE,SAAA,EAAW,IAAM,EAAA,GAAG,OAAwC,EAAA;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAU,EAAA,OAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,whBAAA;AAAA,QACA,wFAAA;AAAA,QACA,iHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACZA,IAAM,OAAU,GAAA;AAAA,EACd,WAAa,EAAA,mBAAA;AAAA,EACb,KAAO,EAAA,aAAA;AAAA,EACP,KAAO,EAAA,aAAA;AAAA,EACP,MAAQ,EAAA,cAAA;AAAA,EACR,MAAQ,EAAA;AACV,CAAA;AAEM,IAAA,cAAA,GAAiBC,IAAI,iCAAmC,EAAA;AAAA,EAC5D,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,mBAAA;AAAA,MACN,GAAK,EAAA;AAAA,KACP;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,EAAA;AAAA,MACP,OAAS,EAAA,mBAAA;AAAA,MACT,OAAS,EAAA,mBAAA;AAAA,MACT,UAAY,EAAA,mBAAA;AAAA,MACZ,aAAe,EAAA;AAAA,KACjB;AAAA,IACA,OAAS,EAAA;AAAA,GACX;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,KAAA;AAAA,IACN,IAAM,EAAA;AAAA;AAEV,CAAC;AAMD,SAAS,MAAO,CAAA;AAAA,EACd,QAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAmC,EAAA;AACjC,EAAM,MAAA,eAAA,GAAkB,CACtB,OACY,KAAA;AACZ,IAAI,IAAA,OAAA,CAAQ,IAAS,KAAA,MAAA,CAAO,IAAM,EAAA;AAChC,MAAO,OAAA,IAAA;AAAA,KAEP,MAAA,IAAA,OAAA,CAAQ,IAAS,KAAA,MAAA,CAAO,IACvB,KAAA,IAAA,KAAS,OACR,IAAA,IAAA,KAAS,OACT,IAAA,IAAA,KAAS,UACT,IAAA,IAAA,KAAS,aACX,CAAA,EAAA;AACA,MAAO,OAAA,IAAA;AAAA,KACT,MAAA,IACE,QAAQ,IAAS,KAAA,MAAA,CAAO,SACvB,IAAS,KAAA,UAAA,IAAc,SAAS,aACjC,CAAA,EAAA;AACA,MAAO,OAAA,IAAA;AAAA,eACE,OAAQ,CAAA,IAAA,KAAS,MAAO,CAAA,IAAA,IAAQ,SAAS,aAAe,EAAA;AACjE,MAAO,OAAA,IAAA;AAAA;AAGT,IAAQ,OAAA,CAAA,KAAA;AAAA,MACN,2CAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAQ,CAAA;AAAA,KACV;AACA,IAAO,OAAA,KAAA;AAAA,GACT;AAEA,EAAM,MAAA,YAAA,GAAe,CACnB,OACG,KAAA;AACH,IAAI,IAAA,CAAC,eAAgB,CAAA,OAAO,CAAG,EAAA;AAC7B,MAAA;AAAA;AAEF,IAAO,OAAA,OAAA;AAAA,GACT;AAEA,EAAA,uBACED,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,WAAW,EAAG,CAAA,OAAA,CAAQ,OAAW,IAAA,aAAa,GAAG,SAAS,CAAA;AAAA,MAE1D,QAAAA,kBAAAA,GAAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,EAAG,CAAA,cAAA,CAAe,EAAE,IAAA,EAAM,IAAK,EAAC,CAAC,CAAA,EAC9C,UAAM,KAAS,CAAA,QAAA,CAAA,GAAA;AAAA,QAAI,QAAA;AAAA,QAAU,CAAC,KACvB,KAAA,KAAA,CAAA,cAAA,CAAe,KAAK,CAAA,GAAI,YAAa,CAAA,KAAK,CAAI,mBAAAA,GAAAG,CAAAA,QAAAA,EAAA,EAAE;AAAA,OAE1D,EAAA;AAAA;AAAA,GACF;AAEJ;AAOA,SAAS,GAAI,CAAA,EAAE,QAAU,EAAA,OAAA,EAAoB,EAAA;AAC3C,EAAO,OAAA,OAAA,mBAAUH,GAAAA,CAAAG,QAAA,EAAA,EAAG,UAAS,CAAM,mBAAAH,GAAC,CAAA,KAAA,EAAA,EAAK,QAAS,EAAA,CAAA;AACpD;AAEA,MAAA,CAAO,IAAO,GAAA,GAAA;AACd,MAAA,CAAO,IAAO,GAAA,GAAA;AACd,MAAA,CAAO,IAAO,GAAA,GAAA;AACd,MAAA,CAAO,IAAO,GAAA,GAAA;AC7Gd,SAAS,QAAS,CAAA,EAAE,SAAW,EAAA,GAAG,OAAsC,EAAA;AACtE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,UAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACrE,GAAG;AAAA;AAAA,GACN;AAEJ;ACLA,SAAS,KAAM,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AACrE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,iBAAA;AAAA,MACV,SAAU,EAAA,0CAAA;AAAA,MAEV,QAAAA,kBAAAA,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,WAAU,EAAA,OAAA;AAAA,UACV,SAAA,EAAW,EAAG,CAAA,wCAAA,EAA0C,SAAS,CAAA;AAAA,UAChE,GAAG;AAAA;AAAA;AACN;AAAA,GACF;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,oBAAA,EAAsB,SAAS,CAAA;AAAA,MAC5C,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AACzE,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,YAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAY,CAAA,EAAE,SAAW,EAAA,GAAG,OAAwC,EAAA;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,cAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,qEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAS,CAAA,EAAE,SAAW,EAAA,GAAG,OAAqC,EAAA;AACrE,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,WAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,yFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,GAAG,OAAqC,EAAA;AACtE,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,YAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,+KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAU,CAAA,EAAE,SAAW,EAAA,GAAG,OAAqC,EAAA;AACtE,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,YAAA;AAAA,MACV,SAAW,EAAA,EAAA;AAAA,QACT,uHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAa,CAAA;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAoC,EAAA;AAClC,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,WAAU,EAAA,eAAA;AAAA,MACV,SAAA,EAAW,EAAG,CAAA,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACrE,GAAG;AAAA;AAAA,GACN;AAEJ;AClGA,IAAM,YAAA,GAAeC,IAAI,EAAI,EAAA;AAAA,EAC3B,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,EAAI,EAAA,YAAA;AAAA,MACJ,EAAI,EAAA,YAAA;AAAA,MACJ,IAAM,EAAA,cAAA;AAAA,MACN,EAAI,EAAA,YAAA;AAAA,MACJ,EAAI,EAAA;AAAA,KACN;AAAA,IACA,UAAY,EAAA;AAAA,MACV,OAAS,EAAA,oBAAA;AAAA,MACT,KAAO,EAAA,0BAAA;AAAA,MACP,OAAS,EAAA,iBAAA;AAAA,MACT,SAAW,EAAA,8BAAA;AAAA,MACX,WAAa,EAAA,qBAAA;AAAA,MACb,MAAQ,EAAA;AAAA,KACV;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,MAAQ,EAAA,gBAAA;AAAA,MACR,MAAQ,EAAA,gBAAA;AAAA,MACR,QAAU,EAAA,kBAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,MAAA;AAAA,IACN,UAAY,EAAA,SAAA;AAAA,IACZ,MAAQ,EAAA;AAAA;AAEZ,CAAC,CAAA;AAQM,IAAM,OAA4B,CAAC;AAAA,EACxC,QAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACED,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,EAAA;AAAA,QACT,YAAa,CAAA;AAAA,UACX,IAAA;AAAA,UACA,UAAA;AAAA,UACA,MAAA;AAAA,UACA;AAAA,SACD;AAAA,OACH;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"main.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { extendTailwindMerge, twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n const twMergeWithPrefix = extendTailwindMerge({\r\n prefix: \"sg:\",\r\n });\r\n\r\n return twMergeWithPrefix(twMerge(clsx(inputs)));\r\n}\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cn } from \"../../utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"sg:border-b last:sg:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"sg:flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 sg:flex sg:flex-1 sg:items-start sg:justify-between sg:gap-4 sg:rounded-md sg:py-4 sg:text-left sg:text-sm sg:font-medium sg:transition-all sg:outline-none hover:sg:underline focus-visible:sg:ring-[3px] disabled:sg:pointer-events-none disabled:sg:opacity-50 [&[data-state=open]>svg]:sg:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"sg:text-muted-foreground sg:pointer-events-none sg:size-4 sg:shrink-0 sg:translate-y-0.5 sg:transition-transform sg:duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:sg:animate-accordion-up data-[state=open]:sg:animate-accordion-down sg:overflow-hidden sg:text-sm\"\n {...props}\n >\n <div className={cn(\"sg:pt-0 sg:pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst badgeVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:rounded-md sg:border sg:px-2 sg:py-0.5 sg:text-xs sg:font-medium sg:w-fit sg:whitespace-nowrap sg:shrink-0 [&>svg]:sg:size-3 sg:gap-1 [&>svg]:sg:pointer-events-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive sg:transition-[color,box-shadow] sg:overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"sg:border-transparent sg:bg-primary sg:text-primary-foreground [a&]:hover:sg:bg-primary/90\",\n secondary:\n \"sg:border-transparent sg:bg-secondary sg:text-secondary-foreground [a&]:hover:sg:bg-secondary/90\",\n destructive:\n \"sg:border-transparent sg:bg-destructive sg:text-white [a&]:hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:text-foreground [a&]:hover:sg:bg-accent [a&]:hover:sg:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst buttonVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:transition-all disabled:sg:pointer-events-none disabled:sg:opacity-50 [&_svg]:sg:pointer-events-none [&_svg:not([class*=size-])]:sg:size-4 sg:shrink-0 [&_svg]:sg:shrink-0 sg:outline-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"sg:bg-primary sg:text-primary-foreground sg:shadow-xs hover:sg:bg-primary/90\",\n destructive:\n \"sg:bg-destructive sg:text-white sg:shadow-xs hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:border sg:bg-background sg:shadow-xs hover:sg:bg-accent hover:sg:text-accent-foreground dark:sg:bg-input/30 dark:sg:border-input dark:hover:sg:bg-input/50\",\n secondary:\n \"sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs hover:sg:bg-secondary/80\",\n ghost:\n \"hover:sg:bg-accent hover:sg:text-accent-foreground dark:hover:sg:bg-accent/50\",\n link: \"sg:text-primary sg:underline-offset-4 hover:sg:underline\",\n },\n size: {\n default: \"sg:h-9 sg:px-4 sg:py-2 has-[>svg]:sg:px-3\",\n sm: \"sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 has-[>svg]:sg:px-2.5\",\n lg: \"sg:h-10 sg:rounded-md sg:px-6 has-[>svg]:sg:px-4\",\n icon: \"sg:size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <>\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n </>\n );\n}\n\nexport { Button, buttonVariants };\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst headingVariants = cva(\"\", {\r\n variants: {\r\n variant: {\r\n h1: \"sg:text-4xl sg:font-extrabold sg:tracking-tight sg:lg:text-5xl\",\r\n h2: \"sg:text-3xl sg:font-semibold sg:tracking-tight sg:transition-colors sg:first:mt-0\",\r\n h3: \"sg:text-2xl sg:font-semibold sg:tracking-tight\",\r\n h4: \"sg:text-xl sg:font-semibold sg:tracking-tight\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"h2\",\r\n foreground: \"default\",\r\n },\r\n});\r\n\r\nexport interface HeadingProps\r\n extends OmitClassProperty<\r\n React.HTMLAttributes<HTMLHeadingElement>,\r\n \"className\"\r\n >,\r\n VariantProps<typeof headingVariants> {\r\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\";\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Heading: React.FC<HeadingProps> = ({\r\n children,\r\n as,\r\n variant,\r\n foreground,\r\n className,\r\n ...props\r\n}) => {\r\n if (!as && variant) {\r\n as = variant;\r\n } else if (!as) {\r\n as = \"h2\";\r\n }\r\n const Component = as;\r\n\r\n return (\r\n <Component\r\n className={cn(headingVariants({ variant, foreground, className }))}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n};\r\n","import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:sg:text-foreground placeholder:sg:text-muted-foreground selection:sg:bg-primary selection:sg:text-primary-foreground dark:sg:bg-input/30 sg:border-input sg:flex sg:h-9 sg:w-full sg:min-w-0 sg:rounded-md sg:border sg:bg-transparent sg:px-3 sg:py-1 sg:text-base sg:shadow-xs sg:transition-[color,box-shadow] sg:outline-none file:sg:inline-flex file:sg:h-7 file:sg:border-0 file:sg:bg-transparent file:sg:text-sm file:sg:font-medium disabled:sg:pointer-events-none disabled:sg:cursor-not-allowed disabled:sg:opacity-50 md:sg:text-sm\",\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px]\",\n \"aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { PropsWithChildren } from \"react\";\r\n\r\nconst bgColor = {\r\n transparent: \"sg:bg-transparent\",\r\n white: \"sg:bg-white\",\r\n black: \"sg:bg-black\",\r\n orange: \"sg:bg-orange\",\r\n purple: \"sg:bg-purple\",\r\n};\r\n\r\nconst layoutVariants = cva(\"sg:grid sg:grid-cols-1 sg:gap-4\", {\r\n variants: {\r\n type: {\r\n full: \"sg:w-full sg:px-4\",\r\n col: \"sg:mx-auto sg:max-w-[768px] sg:px-4 sg:md:px-0\",\r\n },\r\n cols: {\r\n \"100\": \"\",\r\n \"66-33\": \"sg:md:grid-cols-2\",\r\n \"50-50\": \"sg:md:grid-cols-2\",\r\n \"33-33-33\": \"sg:md:grid-cols-3\",\r\n \"25-25-25-25\": \"sg:md:grid-cols-4\",\r\n },\r\n bgcolor: bgColor,\r\n },\r\n defaultVariants: {\r\n type: \"col\",\r\n cols: \"100\",\r\n },\r\n});\r\n\r\nexport interface LayoutProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof layoutVariants> {}\r\n\r\nfunction Layout({\r\n children,\r\n className,\r\n type,\r\n cols,\r\n bgcolor,\r\n ...props\r\n}: PropsWithChildren<LayoutProps>) {\r\n const allowedInLayout = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ): boolean => {\r\n if (content.type === Layout.Col1) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col2 &&\r\n (cols === \"66-33\" ||\r\n cols === \"50-50\" ||\r\n cols === \"33-33-33\" ||\r\n cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col3 &&\r\n (cols === \"33-33-33\" || cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (content.type === Layout.Col4 && cols === \"25-25-25-25\") {\r\n return true;\r\n }\r\n\r\n console.error(\r\n \"Content not allowed in column for variant\",\r\n cols,\r\n content.type\r\n );\r\n return false;\r\n };\r\n\r\n const renderColumn = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ) => {\r\n if (!allowedInLayout(content)) {\r\n return;\r\n }\r\n return content;\r\n };\r\n\r\n return (\r\n <div\r\n {...props}\r\n className={cn(bgColor[bgcolor ?? \"transparent\"], className)}\r\n >\r\n <div className={cn(layoutVariants({ type, cols }))}>\r\n {React.Children.map(children, (child) =>\r\n React.isValidElement(child) ? renderColumn(child) : <></>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ntype colProp = {\r\n children?: React.ReactNode;\r\n hideDiv?: boolean;\r\n};\r\n\r\nfunction Col({ children, hideDiv }: colProp) {\r\n return hideDiv ? <>{children}</> : <div>{children}</div>;\r\n}\r\n\r\nLayout.Col1 = Col;\r\nLayout.Col2 = Col;\r\nLayout.Col3 = Col;\r\nLayout.Col4 = Col;\r\n\r\nexport { Layout, layoutVariants };\r\n","import { cn } from \"../../utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"sg:bg-accent sg:animate-pulse sg:rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"sg:relative sg:w-full sg:overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"sg:w-full sg:caption-bottom sg:text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:sg:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:sg:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"sg:bg-muted/50 sg:border-t sg:font-medium [&>tr]:last:sg:border-b-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:sg:bg-muted/50 data-[state=selected]:sg:bg-muted sg:border-b sg:transition-colors\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"sg:text-foreground sg:h-10 sg:px-2 sg:text-left sg:align-middle sg:font-medium sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"sg:p-2 sg:align-middle sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"sg:text-muted-foreground sg:mt-4 sg:text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst textVariants = cva(\"\", {\r\n variants: {\r\n size: {\r\n xs: \"sg:text-xs\",\r\n sm: \"sg:text-sm\",\r\n base: \"sg:text-base\",\r\n lg: \"sg:text-lg\",\r\n xl: \"sg:text-xl\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n secondary: \"sg:text-secondary-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n accent: \"sg:text-accent-foreground\",\r\n },\r\n weight: {\r\n normal: \"sg:font-normal\",\r\n medium: \"sg:font-medium\",\r\n semibold: \"sg:font-semibold\",\r\n bold: \"sg:font-bold\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"base\",\r\n foreground: \"default\",\r\n weight: \"normal\",\r\n },\r\n});\r\n\r\nexport interface TextProps\r\n extends OmitClassProperty<React.HTMLAttributes<HTMLDivElement>, \"className\">,\r\n VariantProps<typeof textVariants> {\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Text: React.FC<TextProps> = ({\r\n children,\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n ...props\r\n}) => {\r\n return (\r\n <p\r\n className={cn(\r\n textVariants({\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n })\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </p>\r\n );\r\n};\r\n"]}
1
+ {"version":3,"sources":["../src/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/heading.tsx","../src/components/ui/input.tsx","../src/components/ui/layout.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/spinner.tsx","../src/components/ui/table.tsx","../src/components/ui/text.tsx"],"names":["jsx","cva","Slot","Fragment"],"mappings":"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","file":"main.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { extendTailwindMerge, twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n const twMergeWithPrefix = extendTailwindMerge({\r\n prefix: \"sg:\",\r\n });\r\n\r\n return twMergeWithPrefix(twMerge(clsx(inputs)));\r\n}\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { cn } from \"../../utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"sg:border-b last:sg:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"sg:flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 sg:flex sg:flex-1 sg:items-start sg:justify-between sg:gap-4 sg:rounded-md sg:py-4 sg:text-left sg:text-sm sg:font-medium sg:transition-all sg:outline-none hover:sg:underline focus-visible:sg:ring-[3px] disabled:sg:pointer-events-none disabled:sg:opacity-50 [&[data-state=open]>svg]:sg:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"sg:text-muted-foreground sg:pointer-events-none sg:size-4 sg:shrink-0 sg:translate-y-0.5 sg:transition-transform sg:duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:sg:animate-accordion-up data-[state=open]:sg:animate-accordion-down sg:overflow-hidden sg:text-sm\"\n {...props}\n >\n <div className={cn(\"sg:pt-0 sg:pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst badgeVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:rounded-md sg:border sg:px-2 sg:py-0.5 sg:text-xs sg:font-medium sg:w-fit sg:whitespace-nowrap sg:shrink-0 [&>svg]:sg:size-3 sg:gap-1 [&>svg]:sg:pointer-events-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive sg:transition-[color,box-shadow] sg:overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"sg:border-transparent sg:bg-primary sg:text-primary-foreground [a&]:hover:sg:bg-primary/90\",\n secondary:\n \"sg:border-transparent sg:bg-secondary sg:text-secondary-foreground [a&]:hover:sg:bg-secondary/90\",\n destructive:\n \"sg:border-transparent sg:bg-destructive sg:text-white [a&]:hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:text-foreground [a&]:hover:sg:bg-accent [a&]:hover:sg:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst buttonVariants = cva(\n \"sg:inline-flex sg:items-center sg:justify-center sg:gap-2 sg:whitespace-nowrap sg:rounded-md sg:text-sm sg:font-medium sg:transition-all disabled:sg:pointer-events-none disabled:sg:opacity-50 [&_svg]:sg:pointer-events-none [&_svg:not([class*=size-])]:sg:size-4 sg:shrink-0 [&_svg]:sg:shrink-0 sg:outline-none focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px] aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"sg:bg-primary sg:text-primary-foreground sg:shadow-xs hover:sg:bg-primary/90\",\n destructive:\n \"sg:bg-destructive sg:text-white sg:shadow-xs hover:sg:bg-destructive/90 focus-visible:sg:ring-destructive/20 dark:focus-visible:sg:ring-destructive/40 dark:sg:bg-destructive/60\",\n outline:\n \"sg:border sg:bg-background sg:shadow-xs hover:sg:bg-accent hover:sg:text-accent-foreground dark:sg:bg-input/30 dark:sg:border-input dark:hover:sg:bg-input/50\",\n secondary:\n \"sg:bg-secondary sg:text-secondary-foreground sg:shadow-xs hover:sg:bg-secondary/80\",\n ghost:\n \"hover:sg:bg-accent hover:sg:text-accent-foreground dark:hover:sg:bg-accent/50\",\n link: \"sg:text-primary sg:underline-offset-4 hover:sg:underline\",\n },\n size: {\n default: \"sg:h-9 sg:px-4 sg:py-2 has-[>svg]:sg:px-3\",\n sm: \"sg:h-8 sg:rounded-md sg:gap-1.5 sg:px-3 has-[>svg]:sg:px-2.5\",\n lg: \"sg:h-10 sg:rounded-md sg:px-6 has-[>svg]:sg:px-4\",\n icon: \"sg:size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <>\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n </>\n );\n}\n\nexport { Button, buttonVariants };\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst headingVariants = cva(\"\", {\r\n variants: {\r\n variant: {\r\n h1: \"sg:text-4xl sg:font-extrabold sg:tracking-tight sg:lg:text-5xl\",\r\n h2: \"sg:text-3xl sg:font-semibold sg:tracking-tight sg:transition-colors sg:first:mt-0\",\r\n h3: \"sg:text-2xl sg:font-semibold sg:tracking-tight\",\r\n h4: \"sg:text-xl sg:font-semibold sg:tracking-tight\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"h2\",\r\n foreground: \"default\",\r\n },\r\n});\r\n\r\nexport interface HeadingProps\r\n extends OmitClassProperty<\r\n React.HTMLAttributes<HTMLHeadingElement>,\r\n \"className\"\r\n >,\r\n VariantProps<typeof headingVariants> {\r\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\";\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Heading: React.FC<HeadingProps> = ({\r\n children,\r\n as,\r\n variant,\r\n foreground,\r\n className,\r\n ...props\r\n}) => {\r\n if (!as && variant) {\r\n as = variant;\r\n } else if (!as) {\r\n as = \"h2\";\r\n }\r\n const Component = as;\r\n\r\n return (\r\n <Component\r\n className={cn(headingVariants({ variant, foreground, className }))}\r\n {...props}\r\n >\r\n {children}\r\n </Component>\r\n );\r\n};\r\n","import * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:sg:text-foreground placeholder:sg:text-muted-foreground selection:sg:bg-primary selection:sg:text-primary-foreground dark:sg:bg-input/30 sg:border-input sg:flex sg:h-9 sg:w-full sg:min-w-0 sg:rounded-md sg:border sg:bg-transparent sg:px-3 sg:py-1 sg:text-base sg:shadow-xs sg:transition-[color,box-shadow] sg:outline-none file:sg:inline-flex file:sg:h-7 file:sg:border-0 file:sg:bg-transparent file:sg:text-sm file:sg:font-medium disabled:sg:pointer-events-none disabled:sg:cursor-not-allowed disabled:sg:opacity-50 md:sg:text-sm\",\n \"focus-visible:sg:border-ring focus-visible:sg:ring-ring/50 focus-visible:sg:ring-[3px]\",\n \"aria-invalid:sg:ring-destructive/20 dark:aria-invalid:sg:ring-destructive/40 aria-invalid:sg:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { PropsWithChildren } from \"react\";\r\n\r\nconst bgColor = {\r\n transparent: \"sg:bg-transparent\",\r\n white: \"sg:bg-white\",\r\n black: \"sg:bg-black\",\r\n orange: \"sg:bg-orange\",\r\n purple: \"sg:bg-purple\",\r\n};\r\n\r\nconst layoutVariants = cva(\"sg:grid sg:grid-cols-1 sg:gap-4\", {\r\n variants: {\r\n type: {\r\n full: \"sg:w-full sg:px-4\",\r\n col: \"sg:mx-auto sg:max-w-[768px] sg:px-4 sg:md:px-0\",\r\n },\r\n cols: {\r\n \"100\": \"\",\r\n \"66-33\": \"sg:md:grid-cols-2\",\r\n \"50-50\": \"sg:md:grid-cols-2\",\r\n \"33-33-33\": \"sg:md:grid-cols-3\",\r\n \"25-25-25-25\": \"sg:md:grid-cols-4\",\r\n },\r\n bgcolor: bgColor,\r\n },\r\n defaultVariants: {\r\n type: \"col\",\r\n cols: \"100\",\r\n },\r\n});\r\n\r\nexport interface LayoutProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof layoutVariants> {}\r\n\r\nfunction Layout({\r\n children,\r\n className,\r\n type,\r\n cols,\r\n bgcolor,\r\n ...props\r\n}: PropsWithChildren<LayoutProps>) {\r\n const allowedInLayout = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ): boolean => {\r\n if (content.type === Layout.Col1) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col2 &&\r\n (cols === \"66-33\" ||\r\n cols === \"50-50\" ||\r\n cols === \"33-33-33\" ||\r\n cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (\r\n content.type === Layout.Col3 &&\r\n (cols === \"33-33-33\" || cols === \"25-25-25-25\")\r\n ) {\r\n return true;\r\n } else if (content.type === Layout.Col4 && cols === \"25-25-25-25\") {\r\n return true;\r\n }\r\n\r\n console.error(\r\n \"Content not allowed in column for variant\",\r\n cols,\r\n content.type\r\n );\r\n return false;\r\n };\r\n\r\n const renderColumn = (\r\n content: React.ReactElement<any, string | React.JSXElementConstructor<any>>\r\n ) => {\r\n if (!allowedInLayout(content)) {\r\n return;\r\n }\r\n return content;\r\n };\r\n\r\n return (\r\n <div\r\n {...props}\r\n className={cn(bgColor[bgcolor ?? \"transparent\"], className)}\r\n >\r\n <div className={cn(layoutVariants({ type, cols }))}>\r\n {React.Children.map(children, (child) =>\r\n React.isValidElement(child) ? renderColumn(child) : <></>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ntype colProp = {\r\n children?: React.ReactNode;\r\n hideDiv?: boolean;\r\n};\r\n\r\nfunction Col({ children, hideDiv }: colProp) {\r\n return hideDiv ? <>{children}</> : <div>{children}</div>;\r\n}\r\n\r\nLayout.Col1 = Col;\r\nLayout.Col2 = Col;\r\nLayout.Col3 = Col;\r\nLayout.Col4 = Col;\r\n\r\nexport { Layout, layoutVariants };\r\n","import { cn } from \"../../utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"sg:bg-accent sg:animate-pulse sg:rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import { PuffLoader } from \"react-spinners\";\r\n\r\ntype Props = {\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n speedMultiplier?: number;\r\n};\r\n\r\nfunction Spinner({ size = \"md\" }: Props) {\r\n const sizeMap: Record<string, number> = {\r\n sm: 30,\r\n md: 60,\r\n lg: 90,\r\n };\r\n\r\n const spinnerSize = typeof size === \"string\" ? sizeMap[size] : size;\r\n\r\n return <PuffLoader data-slot=\"spinner\" size={spinnerSize} />;\r\n}\r\n\r\nexport { Spinner };\r\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"sg:relative sg:w-full sg:overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"sg:w-full sg:caption-bottom sg:text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:sg:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:sg:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"sg:bg-muted/50 sg:border-t sg:font-medium [&>tr]:last:sg:border-b-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:sg:bg-muted/50 data-[state=selected]:sg:bg-muted sg:border-b sg:transition-colors\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"sg:text-foreground sg:h-10 sg:px-2 sg:text-left sg:align-middle sg:font-medium sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"sg:p-2 sg:align-middle sg:whitespace-nowrap [&:has([role=checkbox])]:sg:pr-0 [&>[role=checkbox]]:sg:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"sg:text-muted-foreground sg:mt-4 sg:text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import React from \"react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"../../utils\";\r\nimport { OmitClassProperty, TailwindMarginClass } from \"../../lib/types\";\r\n\r\nconst textVariants = cva(\"\", {\r\n variants: {\r\n size: {\r\n xs: \"sg:text-xs\",\r\n sm: \"sg:text-sm\",\r\n base: \"sg:text-base\",\r\n lg: \"sg:text-lg\",\r\n xl: \"sg:text-xl\",\r\n },\r\n foreground: {\r\n default: \"sg:text-foreground\",\r\n muted: \"sg:text-muted-foreground\",\r\n primary: \"sg:text-primary\",\r\n secondary: \"sg:text-secondary-foreground\",\r\n destructive: \"sg:text-destructive\",\r\n accent: \"sg:text-accent-foreground\",\r\n },\r\n weight: {\r\n normal: \"sg:font-normal\",\r\n medium: \"sg:font-medium\",\r\n semibold: \"sg:font-semibold\",\r\n bold: \"sg:font-bold\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"base\",\r\n foreground: \"default\",\r\n weight: \"normal\",\r\n },\r\n});\r\n\r\nexport interface TextProps\r\n extends OmitClassProperty<React.HTMLAttributes<HTMLDivElement>, \"className\">,\r\n VariantProps<typeof textVariants> {\r\n className?: TailwindMarginClass;\r\n}\r\n\r\nexport const Text: React.FC<TextProps> = ({\r\n children,\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n ...props\r\n}) => {\r\n return (\r\n <p\r\n className={cn(\r\n textVariants({\r\n size,\r\n foreground,\r\n weight,\r\n className,\r\n })\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </p>\r\n );\r\n};\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "singularity-components",
3
- "version": "0.1.68",
3
+ "version": "0.1.70",
4
4
  "main": "./dist/main.js",
5
5
  "module": "./dist/main.mjs",
6
6
  "types": "./dist/main.d.ts",
@@ -25,10 +25,11 @@
25
25
  "@tailwindcss/vite": "^4.0.17",
26
26
  "class-variance-authority": "^0.7.1",
27
27
  "clsx": "^2.1.1",
28
- "lucide-react": "^0.486.0",
28
+ "lucide-react": "^0.515.0",
29
29
  "postcss": "^8.5.3",
30
30
  "react": "^19.1.0",
31
31
  "react-dom": "^19.1.0",
32
+ "react-spinners": "^0.17.0",
32
33
  "tailwind-merge": "^3.0.2",
33
34
  "tailwindcss": "^4.0.17",
34
35
  "tailwindcss-animate": "^1.0.7"
@@ -42,7 +43,7 @@
42
43
  "@storybook/react": "^8.6.11",
43
44
  "@storybook/react-vite": "^8.6.11",
44
45
  "@storybook/test": "^8.6.11",
45
- "@types/node": "^22.13.14",
46
+ "@types/node": "^22.15.31",
46
47
  "@types/react": "^19.0.12",
47
48
  "@types/react-dom": "^19.0.4",
48
49
  "@typescript-eslint/eslint-plugin": "^8.29.0",