@sikka/hawa 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sikka/hawa",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "SaaS Oriented UI Kit",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.es.js",
@@ -107,6 +107,7 @@
107
107
  "dependencies": {
108
108
  "@radix-ui/react-dropdown-menu": "^2.0.5",
109
109
  "@radix-ui/react-label": "^2.0.2",
110
+ "@radix-ui/react-tooltip": "^1.0.6",
110
111
  "class-variance-authority": "^0.7.0",
111
112
  "clsx": "^1.2.1",
112
113
  "cmdk": "^0.2.0",
@@ -1,5 +1,6 @@
1
1
  import React, { useState, FC } from "react"
2
- import { HawaTabs, HawaTooltip } from "../../elements"
2
+ import { HawaTabs } from "../../elements"
3
+ import { Tooltip } from "../../elements/Tooltip"
3
4
 
4
5
  const CheckMark = () => (
5
6
  <svg
@@ -124,10 +125,7 @@ export const ComparingPlans: FC<ComparingPlansTypes> = (props) => {
124
125
  <div className=" flex flex-row items-center gap-2 text-gray-500 dark:text-gray-400">
125
126
  {feature.text}
126
127
  {feature.description && (
127
- <HawaTooltip
128
- position="top-right"
129
- content={feature.description}
130
- >
128
+ <Tooltip side="right" content={feature.description}>
131
129
  <svg
132
130
  stroke="currentColor"
133
131
  fill="currentColor"
@@ -138,7 +136,7 @@ export const ComparingPlans: FC<ComparingPlansTypes> = (props) => {
138
136
  >
139
137
  <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path>
140
138
  </svg>
141
- </HawaTooltip>
139
+ </Tooltip>
142
140
  )}
143
141
  </div>
144
142
  <UncheckMark />
@@ -0,0 +1,179 @@
1
+ // "use client"
2
+
3
+ // import * as React from "react"
4
+ // import * as TooltipPrimitive from "@radix-ui/react-tooltip"
5
+
6
+ import { cn } from "../util"
7
+
8
+ // const TooltipProvider = TooltipPrimitive.Provider
9
+
10
+ // const TooltipRoot = TooltipPrimitive.Root
11
+
12
+ // const TooltipTrigger = TooltipPrimitive.Trigger
13
+
14
+ // const TooltipContent = React.forwardRef<
15
+ // React.ElementRef<typeof TooltipPrimitive.Content>,
16
+ // React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
17
+ // >(({ className, sideOffset = 4, ...props }, ref) => (
18
+ // <TooltipPrimitive.Content
19
+ // ref={ref}
20
+ // sideOffset={sideOffset}
21
+ // className={cn(
22
+ // "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
23
+ // className
24
+ // )}
25
+ // {...props}
26
+ // />
27
+ // ))
28
+ // TooltipContent.displayName = TooltipPrimitive.Content.displayName
29
+
30
+ // interface TooltipProps {
31
+ // // TooltipProvider props
32
+ // delayDurationProvider?: number
33
+ // skipDelayDuration?: number
34
+ // disableHoverableContentProvider?: boolean
35
+
36
+ // // TooltipRoot props
37
+ // defaultOpen?: boolean
38
+ // open?: boolean
39
+ // onOpenChange?: (open: boolean) => void
40
+ // delayDurationRoot?: number
41
+ // disableHoverableContentRoot?: boolean
42
+
43
+ // // TooltipContent props
44
+ // content: React.ReactNode
45
+ // asChild?: boolean
46
+ // ariaLabel?: string
47
+ // onEscapeKeyDown?: () => void
48
+ // onPointerDownOutside?: (event: MouseEvent | TouchEvent) => void
49
+ // forceMount?: boolean
50
+ // side?: "top" | "right" | "bottom" | "left"
51
+ // sideOffset?: number
52
+ // align?: "start" | "center" | "end"
53
+ // alignOffset?: number
54
+ // avoidCollisions?: boolean
55
+ // collisionBoundary?: Element | Element[];
56
+ // collisionPadding?: number
57
+ // arrowPadding?: number
58
+ // sticky?: "partial" | "always";
59
+ // hideWhenDetached?: boolean
60
+
61
+ // children: React.ReactNode
62
+ // }
63
+
64
+ // const Tooltip: React.FC<TooltipProps> = (props) => {
65
+ // const { content, children, ...rest } = props
66
+ // return (
67
+ // <TooltipProvider
68
+ // delayDuration={props.delayDurationProvider}
69
+ // skipDelayDuration={props.skipDelayDuration}
70
+ // disableHoverableContent={props.disableHoverableContentProvider}
71
+ // >
72
+ // <TooltipRoot
73
+ // defaultOpen={props.defaultOpen}
74
+ // open={props.open}
75
+ // onOpenChange={props.onOpenChange}
76
+ // delayDuration={props.delayDurationRoot}
77
+ // disableHoverableContent={props.disableHoverableContentRoot}
78
+ // >
79
+ // <TooltipTrigger asChild>{children}</TooltipTrigger>
80
+ // <TooltipContent
81
+ // asChild={props.asChild}
82
+ // aria-label={props.ariaLabel}
83
+ // onEscapeKeyDown={props.onEscapeKeyDown}
84
+ // onPointerDownOutside={props.onPointerDownOutside}
85
+ // // forceMount={props.forceMount}
86
+ // side={props.side}
87
+
88
+ // sideOffset={props.sideOffset}
89
+ // align={props.align}
90
+ // alignOffset={props.alignOffset}
91
+ // avoidCollisions={props.avoidCollisions}
92
+ // collisionBoundary={props.collisionBoundary}
93
+ // collisionPadding={props.collisionPadding}
94
+ // arrowPadding={props.arrowPadding}
95
+ // sticky={props.sticky}
96
+ // hideWhenDetached={props.hideWhenDetached}
97
+ // {...rest}
98
+ // >
99
+ // {content}
100
+ // </TooltipContent>
101
+ // </TooltipRoot>
102
+ // </TooltipProvider>
103
+ // )
104
+ // }
105
+
106
+ // your-tooltip.jsx
107
+ import React from "react"
108
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip"
109
+
110
+ const TooltipContent = React.forwardRef<
111
+ React.ElementRef<typeof TooltipPrimitive.Content>,
112
+ React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
113
+ >(({ className, sideOffset = 4, ...props }, ref) => (
114
+ <TooltipPrimitive.Content
115
+ ref={ref}
116
+ sideOffset={sideOffset}
117
+ className={cn(
118
+ "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
119
+ className
120
+ )}
121
+ {...props}
122
+ />
123
+ ))
124
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName
125
+
126
+ const TooltipArrow = React.forwardRef<
127
+ React.ElementRef<typeof TooltipPrimitive.Arrow>,
128
+ React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>
129
+ >(({ className, ...props }, ref) => (
130
+ <TooltipPrimitive.Arrow
131
+ ref={ref}
132
+ className={cn(
133
+ // "bg-popover",
134
+ "bg-red-500 text-blue-500 ",
135
+ // "z-50 overflow-hidden rounded-md border bg-popover text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
136
+ className
137
+ )}
138
+ {...props}
139
+ />
140
+ ))
141
+ TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName
142
+
143
+ type TooltipTypes = {
144
+ side?: "top" | "right" | "bottom" | "left"
145
+ children?: any
146
+ content?: any
147
+ open?: any
148
+ defaultOpen?: any
149
+ onOpenChange?: any
150
+ delayDuration?: any
151
+ }
152
+
153
+ export const Tooltip: React.FunctionComponent<TooltipTypes> = ({
154
+ children,
155
+ content,
156
+ open,
157
+ defaultOpen,
158
+ onOpenChange,
159
+ delayDuration = 300,
160
+ side,
161
+ ...props
162
+ }) => {
163
+ return (
164
+ <TooltipPrimitive.TooltipProvider delayDuration={delayDuration}>
165
+ <TooltipPrimitive.Root
166
+ open={open}
167
+ defaultOpen={defaultOpen}
168
+ onOpenChange={onOpenChange}
169
+ >
170
+ <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>
171
+ <TooltipContent side={side} align="center" {...props}>
172
+ {content}
173
+ {/* <TooltipArrow width={21} height={5} /> */}
174
+ </TooltipContent>
175
+ </TooltipPrimitive.Root>
176
+ </TooltipPrimitive.TooltipProvider>
177
+ )
178
+ }
179
+ // export { Tooltip, TooltipRoot, TooltipTrigger, TooltipContent, TooltipProvider }
@@ -1,5 +1,5 @@
1
1
  import React, { FC } from "react"
2
- import { HawaTooltip } from "./HawaTooltip"
2
+ import { Tooltip } from "./Tooltip"
3
3
 
4
4
  type UsageCardTypes = {
5
5
  tooltip?: any
@@ -13,7 +13,7 @@ export const UsageCard: FC<UsageCardTypes> = (props) => {
13
13
  <div className="flex flex-row items-center gap-2">
14
14
  <span className="bg-white-200">{props.title}</span>
15
15
  {props.tooltip && (
16
- <HawaTooltip content={props.tooltip} position="right-top">
16
+ <Tooltip content={props.tooltip} side="right">
17
17
  <svg
18
18
  stroke="currentColor"
19
19
  aria-label="Exclamation Circle"
@@ -25,7 +25,7 @@ export const UsageCard: FC<UsageCardTypes> = (props) => {
25
25
  >
26
26
  <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path>
27
27
  </svg>
28
- </HawaTooltip>
28
+ </Tooltip>
29
29
  )}
30
30
  </div>
31
31
  <div className="bg-white-100 flex flex-row">
package/src/styles.css CHANGED
@@ -405,7 +405,7 @@ video {
405
405
  --border: 240 5.9% 90%;
406
406
  --input: 240 5.9% 90%;
407
407
  --ring: 240 5% 64.9%;
408
- --radius: 0rem;
408
+ --radius: 0.5rem;
409
409
  --radius-inner: calc(var(--radius) - calc(var(--radius) / 3));
410
410
 
411
411
  --layout-primary-700: #b7aff7;
@@ -1908,6 +1908,9 @@ video {
1908
1908
  --tw-bg-opacity: 1;
1909
1909
  background-color: rgb(251 146 60 / var(--tw-bg-opacity));
1910
1910
  }
1911
+ .bg-popover {
1912
+ background-color: hsl(var(--popover));
1913
+ }
1911
1914
  .bg-primary {
1912
1915
  background-color: hsl(var(--primary));
1913
1916
  }
@@ -2372,6 +2375,9 @@ video {
2372
2375
  --tw-text-opacity: 1;
2373
2376
  color: rgb(23 23 23 / var(--tw-text-opacity));
2374
2377
  }
2378
+ .text-popover-foreground {
2379
+ color: hsl(var(--popover-foreground));
2380
+ }
2375
2381
  .text-primary {
2376
2382
  color: hsl(var(--primary));
2377
2383
  }
@@ -2586,6 +2592,12 @@ video {
2586
2592
  .fade-in {
2587
2593
  --tw-enter-opacity: 0;
2588
2594
  }
2595
+ .fade-in-0 {
2596
+ --tw-enter-opacity: 0;
2597
+ }
2598
+ .zoom-in-95 {
2599
+ --tw-enter-scale: .95;
2600
+ }
2589
2601
  .duration-1000 {
2590
2602
  animation-duration: 1000ms;
2591
2603
  }
@@ -3077,6 +3089,33 @@ body {
3077
3089
  --tw-text-opacity: 1;
3078
3090
  color: hsl(250 43.0% 48.0% / var(--tw-text-opacity));
3079
3091
  }
3092
+ .data-\[state\=closed\]\:animate-out[data-state=closed] {
3093
+ animation-name: exit;
3094
+ animation-duration: 150ms;
3095
+ --tw-exit-opacity: initial;
3096
+ --tw-exit-scale: initial;
3097
+ --tw-exit-rotate: initial;
3098
+ --tw-exit-translate-x: initial;
3099
+ --tw-exit-translate-y: initial;
3100
+ }
3101
+ .data-\[state\=closed\]\:fade-out-0[data-state=closed] {
3102
+ --tw-exit-opacity: 0;
3103
+ }
3104
+ .data-\[state\=closed\]\:zoom-out-95[data-state=closed] {
3105
+ --tw-exit-scale: .95;
3106
+ }
3107
+ .data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom] {
3108
+ --tw-enter-translate-y: -0.5rem;
3109
+ }
3110
+ .data-\[side\=left\]\:slide-in-from-right-2[data-side=left] {
3111
+ --tw-enter-translate-x: 0.5rem;
3112
+ }
3113
+ .data-\[side\=right\]\:slide-in-from-left-2[data-side=right] {
3114
+ --tw-enter-translate-x: -0.5rem;
3115
+ }
3116
+ .data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top] {
3117
+ --tw-enter-translate-y: 0.5rem;
3118
+ }
3080
3119
  .group[data-disabled] .group-data-\[disabled\]\:text-mauve-8 {
3081
3120
  --tw-text-opacity: 1;
3082
3121
  color: hsl(249 10.4% 75.5% / var(--tw-text-opacity));
package/src/tailwind.css CHANGED
@@ -24,7 +24,7 @@
24
24
  --border: 240 5.9% 90%;
25
25
  --input: 240 5.9% 90%;
26
26
  --ring: 240 5% 64.9%;
27
- --radius: 0rem;
27
+ --radius: 0.5rem;
28
28
  --radius-inner: calc(var(--radius) - calc(var(--radius) / 3));
29
29
 
30
30
  --layout-primary-700: #b7aff7;