@iit/precision-ui 0.2.0 → 0.4.0

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.
Files changed (104) hide show
  1. package/dist/Adapters.d.ts +0 -7
  2. package/dist/Adapters.d.ts.map +1 -1
  3. package/dist/components/GridIterator.d.ts.map +1 -1
  4. package/dist/components/core/typography/Heading.d.ts +1 -0
  5. package/dist/components/core/typography/Heading.d.ts.map +1 -1
  6. package/dist/components/ui/checkbox/CheckboxWithLabel.d.ts.map +1 -1
  7. package/dist/components/ui/form.d.ts +24 -0
  8. package/dist/components/ui/form.d.ts.map +1 -0
  9. package/dist/components/ui/textarea/Textarea.d.ts +10 -0
  10. package/dist/components/ui/textarea/Textarea.d.ts.map +1 -0
  11. package/dist/components/ui/textarea/TextareaWithLabel.d.ts +11 -0
  12. package/dist/components/ui/textarea/TextareaWithLabel.d.ts.map +1 -0
  13. package/dist/components/ui/textarea/index.d.ts +5 -0
  14. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  15. package/dist/decorators/CarouselWrapper.d.ts +4 -4
  16. package/dist/decorators/CarouselWrapper.d.ts.map +1 -1
  17. package/dist/index.d.ts +5 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.es.js +55 -41
  20. package/dist/index.es.js.map +1 -1
  21. package/dist/index.es10.js +1 -1
  22. package/dist/index.es11.js +1 -1
  23. package/dist/index.es12.js +13 -14
  24. package/dist/index.es12.js.map +1 -1
  25. package/dist/index.es13.js +27 -24
  26. package/dist/index.es13.js.map +1 -1
  27. package/dist/index.es14.js +28 -73
  28. package/dist/index.es14.js.map +1 -1
  29. package/dist/index.es15.js +15 -23
  30. package/dist/index.es15.js.map +1 -1
  31. package/dist/index.es16.js +23 -31
  32. package/dist/index.es16.js.map +1 -1
  33. package/dist/index.es17.js +71 -28
  34. package/dist/index.es17.js.map +1 -1
  35. package/dist/index.es18.js +33 -26
  36. package/dist/index.es18.js.map +1 -1
  37. package/dist/index.es19.js +25 -176
  38. package/dist/index.es19.js.map +1 -1
  39. package/dist/index.es2.js +1 -1
  40. package/dist/index.es20.js +29 -51
  41. package/dist/index.es20.js.map +1 -1
  42. package/dist/index.es21.js +25 -54
  43. package/dist/index.es21.js.map +1 -1
  44. package/dist/index.es22.js +178 -54
  45. package/dist/index.es22.js.map +1 -1
  46. package/dist/index.es23.js +50 -17
  47. package/dist/index.es23.js.map +1 -1
  48. package/dist/index.es24.js +56 -18
  49. package/dist/index.es24.js.map +1 -1
  50. package/dist/index.es25.js +59 -6
  51. package/dist/index.es25.js.map +1 -1
  52. package/dist/index.es26.js +19 -21
  53. package/dist/index.es26.js.map +1 -1
  54. package/dist/index.es27.js +18 -26
  55. package/dist/index.es27.js.map +1 -1
  56. package/dist/index.es28.js +88 -2
  57. package/dist/index.es28.js.map +1 -1
  58. package/dist/index.es29.js +6 -20
  59. package/dist/index.es29.js.map +1 -1
  60. package/dist/index.es3.js +2 -2
  61. package/dist/index.es30.js +21 -19
  62. package/dist/index.es30.js.map +1 -1
  63. package/dist/index.es31.js +18 -9
  64. package/dist/index.es31.js.map +1 -1
  65. package/dist/index.es32.js +19 -84
  66. package/dist/index.es32.js.map +1 -1
  67. package/dist/index.es33.js +10 -18
  68. package/dist/index.es33.js.map +1 -1
  69. package/dist/index.es34.js +77 -38
  70. package/dist/index.es34.js.map +1 -1
  71. package/dist/index.es35.js +15 -41
  72. package/dist/index.es35.js.map +1 -1
  73. package/dist/index.es36.js +42 -33
  74. package/dist/index.es36.js.map +1 -1
  75. package/dist/index.es37.js +40 -51
  76. package/dist/index.es37.js.map +1 -1
  77. package/dist/index.es38.js +33 -88
  78. package/dist/index.es38.js.map +1 -1
  79. package/dist/index.es39.js +37 -79
  80. package/dist/index.es39.js.map +1 -1
  81. package/dist/index.es4.js +1 -1
  82. package/dist/index.es40.js +86 -21
  83. package/dist/index.es40.js.map +1 -1
  84. package/dist/index.es41.js +97 -15
  85. package/dist/index.es41.js.map +1 -1
  86. package/dist/index.es42.js +27 -4
  87. package/dist/index.es42.js.map +1 -1
  88. package/dist/index.es43.js +48 -0
  89. package/dist/index.es43.js.map +1 -0
  90. package/dist/index.es44.js +19 -0
  91. package/dist/index.es44.js.map +1 -0
  92. package/dist/index.es45.js +225 -0
  93. package/dist/index.es45.js.map +1 -0
  94. package/dist/index.es46.js +7 -0
  95. package/dist/index.es46.js.map +1 -0
  96. package/dist/index.es5.js +1 -1
  97. package/dist/index.es6.js +1 -1
  98. package/dist/index.es7.js +1 -1
  99. package/dist/index.es8.js +1 -1
  100. package/dist/index.es9.js.map +1 -1
  101. package/dist/styles.css +35 -2
  102. package/package.json +18 -4
  103. package/dist/utils/unique.d.ts +0 -2
  104. package/dist/utils/unique.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es45.js","sources":["../src/components/ui/carousel.tsx"],"sourcesContent":["import React from 'react'\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from 'embla-carousel-react'\r\nimport { ArrowLeft, ArrowRight } from 'lucide-react'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n// import { Button } from './button'\r\n\r\n// Button here to reuse\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nconst buttonVariants = cva(\r\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full typo_variant_button ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed border-none',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-white text-navy hover:bg-navy-opacity-4',\r\n destructive:\r\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\r\n outline:\r\n 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\r\n ghost: 'hover:bg-accent hover:text-accent-foreground',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n size: {\r\n default: 'h-10 px-4 py-2',\r\n sm: 'h-9 rounded-md px-3',\r\n lg: 'h-11 rounded-md px-8',\r\n icon: 'h-10 w-10',\r\n },\r\n },\r\n defaultVariants: {\r\n // variant: \"default\",\r\n // size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n asChild?: boolean\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : 'button'\r\n return (\r\n <Comp\r\n className={cn(buttonVariants({ variant, size }), className)}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nButton.displayName = 'Button'\r\n\r\n// end of Button\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: 'horizontal' | 'vertical'\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error('useCarousel must be used within a <Carousel />')\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\r\n>(\r\n (\r\n {\r\n orientation = 'horizontal',\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === 'horizontal' ? 'x' : 'y',\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n const [scrollProgress, setScrollProgress] = React.useState(0)\r\n\r\n const onScroll = React.useCallback(() => {\r\n if (!api) return\r\n const progress = api.scrollProgress()\r\n console.log('progress', progress)\r\n setScrollProgress(progress * 100) // Convert to percentage\r\n }, [api])\r\n\r\n const onSelect = React.useCallback(\r\n (api: CarouselApi) => {\r\n if (!api) return\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n onScroll() // Update scroll progress when selection changes\r\n },\r\n [onScroll]\r\n )\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === 'ArrowLeft') {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === 'ArrowRight') {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) return\r\n onSelect(api)\r\n api.on('reInit', onSelect)\r\n api.on('select', onSelect)\r\n api.on('scroll', onScroll) // Update on scroll events\r\n\r\n return () => {\r\n api?.off('reInit', onSelect)\r\n api?.off('select', onSelect)\r\n api?.off('scroll', onScroll)\r\n }\r\n }, [api, onSelect, onScroll])\r\n\r\n // const { selectedIndex, scrollSnaps, onDotButtonClick } = useDotButton(api)\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn('relative', className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n\r\n {/* Scroll Progress Indicator */}\r\n <div className=\"relative w-full mt-4 h-1 bg-gray-300 rounded-full overflow-hidden md:max-w-3xl mx-auto\">\r\n <div\r\n className=\"absolute top-0 left-0 h-full w-full bg-navy rounded-full transition-transform duration-0\"\r\n style={{\r\n transform: `translateX(${scrollProgress - 100}%)`,\r\n }}\r\n ></div>\r\n </div>\r\n\r\n <div className=\"embla__controls max-w-sm mx-auto mt-6 flex justify-center gap-4\">\r\n <div className=\"embla__buttons\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n </div>\r\n\r\n <div className=\"embla__progress\">\r\n <div\r\n className=\"embla__progress__bar\"\r\n style={{ transform: `translate3d(${scrollProgress}%,0px,0px)` }}\r\n />\r\n </div>\r\n </div>\r\n\r\n {/* Dots: not used */}\r\n {/* <div className=\"embla__controls\">\r\n <div className=\"embla__buttons\">\r\n <CarouselPrevious className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n <CarouselNext className=\"relative left-auto top-auto right-auto translate-y-0\" />\r\n </div>\r\n\r\n <div className=\"embla__dots\">\r\n {scrollSnaps.map((_, index) => (\r\n <DotButton\r\n key={index}\r\n onClick={() => onDotButtonClick(index)}\r\n className={\"embla__dot\".concat(\r\n index === selectedIndex ? \" embla__dot--selected\" : \"\"\r\n )}\r\n />\r\n ))}\r\n </div>\r\n </div> */}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = 'Carousel'\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex',\r\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = 'CarouselContent'\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n 'min-w-0 shrink-0 grow-0 basis-full',\r\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = 'CarouselItem'\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-left-12 top-1/2 -translate-y-1/2'\r\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = 'CarouselPrevious'\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n 'absolute h-8 w-8 rounded-full',\r\n orientation === 'horizontal'\r\n ? '-right-12 top-1/2 -translate-y-1/2'\r\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = 'CarouselNext'\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n}\r\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","asChild","props","ref","Comp","Slot","cn","CarouselContext","useCarousel","context","Carousel","orientation","opts","setApi","plugins","children","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","scrollProgress","setScrollProgress","onScroll","progress","onSelect","scrollPrev","scrollNext","handleKeyDown","event","CarouselPrevious","CarouselNext","CarouselContent","CarouselItem","ArrowLeft","ArrowRight"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ function u(r, n) {
2
+ return r ? r.length <= n ? r : r.slice(0, n) + "..." : "";
3
+ }
4
+ export {
5
+ u as default
6
+ };
7
+ //# sourceMappingURL=index.es46.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es46.js","sources":["../src/lib/utils/truncateText.ts"],"sourcesContent":["function truncateText(text: string, maxLength: number): string {\r\n if (!text) return ''\r\n if (text.length <= maxLength) {\r\n return text\r\n }\r\n return text.slice(0, maxLength) + '...'\r\n}\r\n\r\nexport default truncateText\r\n"],"names":["truncateText","text","maxLength"],"mappings":"AAAA,SAASA,EAAaC,GAAcC,GAA2B;AAC7D,SAAKD,IACDA,EAAK,UAAUC,IACVD,IAEFA,EAAK,MAAM,GAAGC,CAAS,IAAI,QAJhB;AAKpB;"}
package/dist/index.es5.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import t from "react";
2
2
  import { Button as p } from "./index.es2.js";
3
3
  import { cva as l } from "class-variance-authority";
4
- import { cn as u } from "./index.es25.js";
4
+ import { cn as u } from "./index.es29.js";
5
5
  const f = l(
6
6
  "transition-all rounded-lg hover:rounded-[24px] border",
7
7
  {
package/dist/index.es6.js CHANGED
@@ -2,7 +2,7 @@ import t from "react";
2
2
  import { Button as s } from "./index.es2.js";
3
3
  import { LessLink16X16 as c, MoreLink16X16 as u, ArrowLinkRight16X16 as m } from "@iit/precision-ui-icons";
4
4
  import { cva as r } from "class-variance-authority";
5
- import { cn as n } from "./index.es25.js";
5
+ import { cn as n } from "./index.es29.js";
6
6
  import { ArrowDownToLine as d } from "lucide-react";
7
7
  const f = r("bg-link-gradient-container hover:cursor-pointer", {
8
8
  variants: {
package/dist/index.es7.js CHANGED
@@ -2,7 +2,7 @@ import t from "react";
2
2
  import { Button as s } from "./index.es2.js";
3
3
  import { ServicesModal16X16 as u, Login16X16 as c } from "@iit/precision-ui-icons";
4
4
  import { cva as i } from "class-variance-authority";
5
- import { cn as n } from "./index.es25.js";
5
+ import { cn as n } from "./index.es29.js";
6
6
  const m = i("bg-link-gradient-container group cursor-pointer", {
7
7
  variants: {
8
8
  variant: {
package/dist/index.es8.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import l from "react";
2
2
  import { cva as s } from "class-variance-authority";
3
- import { cn as c } from "./index.es25.js";
3
+ import { cn as c } from "./index.es29.js";
4
4
  import { getAdapter as f } from "./index.es9.js";
5
5
  const m = s("duration-200 transition-colors", {
6
6
  variants: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.es9.js","sources":["../src/Adapters.tsx"],"sourcesContent":["type ComponentAdapter<TProps = unknown> = React.FC<TProps>\r\n\r\ninterface Adapters {\r\n LinkWrapper?: ComponentAdapter<{\r\n href: string\r\n children: React.ReactNode\r\n className?: string\r\n target?: string\r\n rel?: string\r\n }>\r\n ImageWrapper?: ComponentAdapter<{\r\n src: string\r\n alt: string\r\n width?: number\r\n height?: number\r\n className?: string\r\n objectFit?: string\r\n }>\r\n CarouselWrapper?: ComponentAdapter<{\r\n items: unknown[]\r\n renderItem: (item: unknown, index: number) => React.ReactNode\r\n columns: number\r\n showControlsOnDesktop: boolean\r\n className?: string\r\n }>\r\n}\r\n\r\nconst adapters: Adapters = {}\r\n\r\nexport const registerAdapter = <T extends keyof Adapters>(\r\n key: T,\r\n adapter: NonNullable<Adapters[T]>\r\n) => {\r\n adapters[key] = adapter\r\n}\r\n\r\nexport const getAdapter = <T extends keyof Adapters>(\r\n key: T\r\n): NonNullable<Adapters[T]> => {\r\n const adapter = adapters[key]\r\n if (!adapter) {\r\n throw new Error(`Adapter for ${key} is not registered.`)\r\n }\r\n return adapter\r\n}\r\n"],"names":["adapters","registerAdapter","key","adapter","getAdapter"],"mappings":"AA2BA,MAAMA,IAAqB,CAAA,GAEdC,IAAkB,CAC7BC,GACAC,MACG;AACH,EAAAH,EAASE,CAAG,IAAIC;AAClB,GAEaC,IAAa,CACxBF,MAC6B;AACvB,QAAAC,IAAUH,EAASE,CAAG;AAC5B,MAAI,CAACC;AACH,UAAM,IAAI,MAAM,eAAeD,CAAG,qBAAqB;AAElD,SAAAC;AACT;"}
1
+ {"version":3,"file":"index.es9.js","sources":["../src/Adapters.tsx"],"sourcesContent":["type ComponentAdapter<TProps = unknown> = React.FC<TProps>\r\n\r\ninterface Adapters {\r\n LinkWrapper?: ComponentAdapter<{\r\n href: string\r\n children: React.ReactNode\r\n className?: string\r\n target?: string\r\n rel?: string\r\n }>\r\n ImageWrapper?: ComponentAdapter<{\r\n src: string\r\n alt: string\r\n width?: number\r\n height?: number\r\n className?: string\r\n objectFit?: string\r\n }>\r\n // CarouselWrapper?: ComponentAdapter<{\r\n // items: unknown[]\r\n // renderItem: (item: unknown, index: number) => React.ReactNode\r\n // columns: number\r\n // showControlsOnDesktop: boolean\r\n // className?: string\r\n // }>\r\n}\r\n\r\nconst adapters: Adapters = {}\r\n\r\nexport const registerAdapter = <T extends keyof Adapters>(\r\n key: T,\r\n adapter: NonNullable<Adapters[T]>\r\n) => {\r\n adapters[key] = adapter\r\n}\r\n\r\nexport const getAdapter = <T extends keyof Adapters>(\r\n key: T\r\n): NonNullable<Adapters[T]> => {\r\n const adapter = adapters[key]\r\n if (!adapter) {\r\n throw new Error(`Adapter for ${key} is not registered.`)\r\n }\r\n return adapter\r\n}\r\n"],"names":["adapters","registerAdapter","key","adapter","getAdapter"],"mappings":"AA2BA,MAAMA,IAAqB,CAAA,GAEdC,IAAkB,CAC7BC,GACAC,MACG;AACH,EAAAH,EAASE,CAAG,IAAIC;AAClB,GAEaC,IAAa,CACxBF,MAC6B;AACvB,QAAAC,IAAUH,EAASE,CAAG;AAC5B,MAAI,CAACC;AACH,UAAM,IAAI,MAAM,eAAeD,CAAG,qBAAqB;AAElD,SAAAC;AACT;"}
package/dist/styles.css CHANGED
@@ -338,9 +338,39 @@ body{
338
338
  padding-right: 1.5rem;
339
339
  padding-left: 1.5rem;
340
340
  }
341
- @media (min-width: 1400px){
341
+ @media (min-width: 360px){
342
342
  .container{
343
- max-width: 1400px;
343
+ max-width: 360px;
344
+ }
345
+ }
346
+ @media (min-width: 640px){
347
+ .container{
348
+ max-width: 640px;
349
+ }
350
+ }
351
+ @media (min-width: 768px){
352
+ .container{
353
+ max-width: 768px;
354
+ }
355
+ }
356
+ @media (min-width: 990px){
357
+ .container{
358
+ max-width: 990px;
359
+ }
360
+ }
361
+ @media (min-width: 1280px){
362
+ .container{
363
+ max-width: 1280px;
364
+ }
365
+ }
366
+ @media (min-width: 1440px){
367
+ .container{
368
+ max-width: 1440px;
369
+ }
370
+ }
371
+ @media (min-width: 1600px){
372
+ .container{
373
+ max-width: 1600px;
344
374
  }
345
375
  }
346
376
  #__next{
@@ -626,6 +656,9 @@ body{
626
656
  .min-h-\[360px\]{
627
657
  min-height: 360px;
628
658
  }
659
+ .min-h-\[80px\]{
660
+ min-height: 80px;
661
+ }
629
662
  .w-10{
630
663
  width: 2.5rem;
631
664
  }
package/package.json CHANGED
@@ -11,9 +11,9 @@
11
11
  "homepage": "https://github.com/wowxoxo/precision-ui",
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "https://github.com/wowxoxo/precision-ui"
14
+ "url": "git+https://github.com/wowxoxo/precision-ui.git"
15
15
  },
16
- "version": "0.2.0",
16
+ "version": "0.4.0",
17
17
  "type": "module",
18
18
  "module": "./dist/index.es.js",
19
19
  "types": "./dist/index.d.ts",
@@ -45,6 +45,7 @@
45
45
  "test:coverage": "vitest run --coverage"
46
46
  },
47
47
  "dependencies": {
48
+ "@hookform/resolvers": "^3.10.0",
48
49
  "@iit/precision-ui-icons": "^0.4.0",
49
50
  "@radix-ui/react-checkbox": "^1.1.3",
50
51
  "@radix-ui/react-label": "^2.1.1",
@@ -57,13 +58,26 @@
57
58
  "lucide-react": "^0.394.0",
58
59
  "react": "^18.2.0",
59
60
  "react-dom": "^18.2.0",
61
+ "react-hook-form": "^7.54.2",
60
62
  "tailwind-merge": "^2.3.0",
61
63
  "tailwindcss-animate": "^1.0.7",
62
- "the-new-css-reset": "^1.11.3"
64
+ "the-new-css-reset": "^1.11.3",
65
+ "zod": "^3.24.1"
63
66
  },
64
67
  "peerDependencies": {
65
68
  "react": "^18.2.0",
66
- "react-dom": "^18.2.0"
69
+ "react-dom": "^18.2.0",
70
+ "react-hook-form": "^7.54.2",
71
+ "@hookform/resolvers": "^3.10.0",
72
+ "zod": "^3.24.1"
73
+ },
74
+ "peerDependenciesMeta": {
75
+ "@hookform/resolvers": {
76
+ "optional": true
77
+ },
78
+ "zod": {
79
+ "optional": true
80
+ }
67
81
  },
68
82
  "devDependencies": {
69
83
  "@chromatic-com/storybook": "^3.2.3",
@@ -1,2 +0,0 @@
1
- export declare const uniqueId: () => string;
2
- //# sourceMappingURL=unique.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../../src/utils/unique.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,cAAsD,CAAA"}