@xjur-ui/react 1.0.0 → 1.0.1

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 (115) hide show
  1. package/.turbo/turbo-build.log +61 -57
  2. package/CHANGELOG.md +11 -0
  3. package/dist/components/avatar.d.ts +11 -0
  4. package/dist/components/avatar.js +58 -0
  5. package/dist/components/{ui/button.d.ts → button.d.ts} +2 -2
  6. package/dist/components/{ui/button.js → button.js} +9 -6
  7. package/dist/components/calendar.d.ts +11 -0
  8. package/dist/components/calendar.js +751 -0
  9. package/dist/components/checkbox.d.ts +8 -0
  10. package/dist/components/{ui/input/root.js → checkbox.js} +69 -79
  11. package/dist/components/chip.d.ts +24 -0
  12. package/dist/components/chip.js +255 -0
  13. package/dist/components/collapsible.d.ts +8 -0
  14. package/dist/components/collapsible.js +41 -0
  15. package/dist/components/date-picker.d.ts +20 -0
  16. package/dist/components/date-picker.js +230 -0
  17. package/dist/components/divider.d.ts +7 -0
  18. package/dist/components/divider.js +28 -0
  19. package/dist/components/dropdown-menu.d.ts +22 -0
  20. package/dist/components/dropdown-menu.js +294 -0
  21. package/dist/components/{resources/icons.d.ts → icon.d.ts} +11 -2
  22. package/dist/components/{ui/icon.js → icon.js} +18 -5
  23. package/dist/components/input.d.ts +32 -0
  24. package/dist/components/input.js +299 -0
  25. package/dist/components/list.d.ts +25 -0
  26. package/dist/components/{ui/input/content.js → list.js} +83 -87
  27. package/dist/components/{ui/logo.d.ts → logo.d.ts} +2 -2
  28. package/dist/components/{ui/logo.js → logo.js} +5 -5
  29. package/dist/components/{ui/otp-input.js → otp-input.js} +1 -1
  30. package/dist/components/radio.d.ts +10 -0
  31. package/dist/components/{ui/input/label.js → radio.js} +68 -77
  32. package/dist/components/search-input.d.ts +17 -0
  33. package/dist/components/search-input.js +274 -0
  34. package/dist/components/select.d.ts +33 -0
  35. package/dist/components/select.js +548 -0
  36. package/dist/components/sheet.d.ts +19 -0
  37. package/dist/components/sheet.js +251 -0
  38. package/dist/components/switch.d.ts +7 -0
  39. package/dist/components/switch.js +36 -0
  40. package/dist/components/tabs.d.ts +11 -0
  41. package/dist/components/tabs.js +54 -0
  42. package/dist/components/tag.d.ts +18 -0
  43. package/dist/components/tag.js +189 -0
  44. package/dist/components/{ui/typography.d.ts → typography.d.ts} +3 -3
  45. package/dist/components/{ui/typography.js → typography.js} +1 -1
  46. package/dist/index.css +1156 -62
  47. package/dist/index.d.ts +2 -17
  48. package/dist/index.js +0 -788
  49. package/eslint.config.js +8 -1
  50. package/package.json +40 -10
  51. package/src/components/avatar.tsx +53 -0
  52. package/src/components/{ui/button.tsx → button.tsx} +7 -5
  53. package/src/components/calendar.tsx +123 -0
  54. package/src/components/checkbox.tsx +57 -0
  55. package/src/components/chip.tsx +109 -0
  56. package/src/components/collapsible.tsx +35 -0
  57. package/src/components/date-picker.tsx +154 -0
  58. package/src/components/divider.tsx +23 -0
  59. package/src/components/dropdown-menu.tsx +101 -0
  60. package/src/components/{ui/icon.tsx → icon.tsx} +1 -1
  61. package/src/components/input.tsx +241 -0
  62. package/src/components/list.tsx +111 -0
  63. package/src/components/radio.tsx +74 -0
  64. package/src/components/search-input.tsx +112 -0
  65. package/src/components/select.tsx +234 -0
  66. package/src/components/sheet.tsx +141 -0
  67. package/src/components/switch.tsx +31 -0
  68. package/src/components/tabs.tsx +53 -0
  69. package/src/components/tag.tsx +91 -0
  70. package/src/index.css +4 -1
  71. package/src/index.ts +0 -1
  72. package/src/{components/resources → resources}/icons.ts +14 -1
  73. package/src/resources/input-mask.ts +91 -0
  74. package/dist/components/resources/icons.js +0 -133
  75. package/dist/components/resources/logo/horizontal.d.ts +0 -12
  76. package/dist/components/resources/logo/horizontal.js +0 -107
  77. package/dist/components/resources/logo/icon.d.ts +0 -12
  78. package/dist/components/resources/logo/icon.js +0 -79
  79. package/dist/components/resources/logo/index.d.ts +0 -4
  80. package/dist/components/resources/logo/index.js +0 -291
  81. package/dist/components/resources/logo/vertical.d.ts +0 -12
  82. package/dist/components/resources/logo/vertical.js +0 -107
  83. package/dist/components/ui/accordion.d.ts +0 -5
  84. package/dist/components/ui/accordion.js +0 -8
  85. package/dist/components/ui/icon.d.ts +0 -12
  86. package/dist/components/ui/index.d.ts +0 -17
  87. package/dist/components/ui/index.js +0 -788
  88. package/dist/components/ui/input/content.d.ts +0 -9
  89. package/dist/components/ui/input/index.d.ts +0 -12
  90. package/dist/components/ui/input/index.js +0 -335
  91. package/dist/components/ui/input/label.d.ts +0 -12
  92. package/dist/components/ui/input/message.d.ts +0 -10
  93. package/dist/components/ui/input/message.js +0 -128
  94. package/dist/components/ui/input/root.d.ts +0 -18
  95. package/dist/components/ui/input/slot.d.ts +0 -10
  96. package/dist/components/ui/input/slot.js +0 -20
  97. package/dist/components/ui/input/text.d.ts +0 -10
  98. package/dist/components/ui/input/text.js +0 -195
  99. package/src/components/ui/accordion.tsx +0 -3
  100. package/src/components/ui/index.ts +0 -13
  101. package/src/components/ui/input/content.tsx +0 -59
  102. package/src/components/ui/input/index.ts +0 -6
  103. package/src/components/ui/input/label.tsx +0 -41
  104. package/src/components/ui/input/message.tsx +0 -37
  105. package/src/components/ui/input/root.tsx +0 -57
  106. package/src/components/ui/input/slot.tsx +0 -21
  107. package/src/components/ui/input/text.tsx +0 -69
  108. /package/dist/components/{ui/otp-input.d.ts → otp-input.d.ts} +0 -0
  109. /package/src/components/{ui/logo.tsx → logo.tsx} +0 -0
  110. /package/src/components/{ui/otp-input.tsx → otp-input.tsx} +0 -0
  111. /package/src/components/{ui/typography.tsx → typography.tsx} +0 -0
  112. /package/src/{components/resources → resources}/logo/horizontal.tsx +0 -0
  113. /package/src/{components/resources → resources}/logo/icon.tsx +0 -0
  114. /package/src/{components/resources → resources}/logo/index.ts +0 -0
  115. /package/src/{components/resources → resources}/logo/vertical.tsx +0 -0
@@ -0,0 +1,230 @@
1
+ // src/components/date-picker.tsx
2
+ import * as RadixPopover from "@radix-ui/react-popover";
3
+ import { cx } from "@xjur-ui/util";
4
+
5
+ // src/components/typography.tsx
6
+ import { Slot } from "@radix-ui/react-slot";
7
+ import { cva } from "@xjur-ui/util";
8
+ import { memo } from "react";
9
+ import { jsx } from "react/jsx-runtime";
10
+ var typographyVariants = cva("", {
11
+ variants: {
12
+ variant: {
13
+ body: "",
14
+ label: "",
15
+ title: "",
16
+ headline: ""
17
+ },
18
+ size: {
19
+ "sm-2x": "",
20
+ "sm-1x": "",
21
+ sm: "",
22
+ md: "",
23
+ lg: ""
24
+ },
25
+ weight: {
26
+ thin: "font-thin",
27
+ extraLight: "font-extralight",
28
+ light: "font-light",
29
+ normal: "font-normal",
30
+ medium: "font-medium",
31
+ semibold: "font-semibold",
32
+ bold: "font-bold",
33
+ extraBold: "font-extrabold",
34
+ black: "font-black"
35
+ }
36
+ },
37
+ compoundVariants: [
38
+ { variant: "body", size: "sm-1x", class: "text-size-body-sm-1x" },
39
+ { variant: "body", size: "sm", class: "text-size-body-sm" },
40
+ { variant: "body", size: "md", class: "text-size-body-md" },
41
+ { variant: "body", size: "lg", class: "text-size-body-lg" },
42
+ { variant: "label", size: "sm-2x", class: "text-size-label-sm-2x" },
43
+ { variant: "label", size: "sm-1x", class: "text-size-label-sm-1x" },
44
+ { variant: "label", size: "sm", class: "text-size-label-sm" },
45
+ { variant: "label", size: "md", class: "text-size-label-md" },
46
+ { variant: "label", size: "lg", class: "text-size-label-lg" },
47
+ { variant: "title", size: "sm", class: "text-size-title-sm" },
48
+ { variant: "title", size: "md", class: "text-size-title-md" },
49
+ { variant: "title", size: "lg", class: "text-size-title-lg" },
50
+ { variant: "headline", size: "sm", class: "text-size-headline-sm" },
51
+ { variant: "headline", size: "md", class: "text-size-headline-md" },
52
+ { variant: "headline", size: "lg", class: "text-size-headline-lg" }
53
+ ],
54
+ defaultVariants: {
55
+ variant: "body",
56
+ size: "md",
57
+ weight: "normal"
58
+ }
59
+ });
60
+ var Typography = memo(
61
+ ({
62
+ variant,
63
+ size,
64
+ weight,
65
+ asChild,
66
+ className,
67
+ ...props
68
+ }) => {
69
+ const Component = asChild ? Slot : "span";
70
+ return /* @__PURE__ */ jsx(
71
+ Component,
72
+ {
73
+ className: typographyVariants({ variant, size, weight, className }),
74
+ ...props
75
+ }
76
+ );
77
+ }
78
+ );
79
+ Typography.displayName = "Typography";
80
+
81
+ // src/components/date-picker.tsx
82
+ import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
83
+ function DatePickerRoot(props) {
84
+ return /* @__PURE__ */ jsx2(RadixPopover.Root, { ...props });
85
+ }
86
+ function DatePickerTrigger({
87
+ className,
88
+ ...props
89
+ }) {
90
+ return /* @__PURE__ */ jsx2(
91
+ RadixPopover.Trigger,
92
+ {
93
+ className: cx(
94
+ className,
95
+ "group h-large-4x rounded-small-1x gap-small py-small_1x-alt px-small relative flex w-full cursor-pointer items-center",
96
+ "bg-layer-2-idle border-border-layer-2 hover:border-border-layer-3 border",
97
+ "data-[state=open]:border-primary-idle data-[state=open]:shadow-focus-primary",
98
+ "has-[input:not(:placeholder-shown)]:text-primary-idle",
99
+ "has-[input:not(:placeholder-shown)]:border-primary-idle"
100
+ ),
101
+ ...props
102
+ }
103
+ );
104
+ }
105
+ function DatePickerContent({
106
+ className,
107
+ sideOffset = 5,
108
+ side = "bottom",
109
+ align = "start",
110
+ ...props
111
+ }) {
112
+ return /* @__PURE__ */ jsx2(RadixPopover.Portal, { children: /* @__PURE__ */ jsx2(
113
+ RadixPopover.Content,
114
+ {
115
+ align,
116
+ className: cx(
117
+ className,
118
+ "group z-10 max-h-[var(--radix-popover-content-available-height)] max-w-[var(--radix-popover-trigger-width)]"
119
+ ),
120
+ side,
121
+ sideOffset,
122
+ ...props
123
+ }
124
+ ) });
125
+ }
126
+ function DatePickerValue({
127
+ className,
128
+ displayValue = "",
129
+ value,
130
+ ...props
131
+ }) {
132
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
133
+ !!displayValue && /* @__PURE__ */ jsx2(Typography, { className: "text-neutral-dark group-has-[div[data-slot=date-picker-left-slot]]:pl-large-1x", children: displayValue }),
134
+ /* @__PURE__ */ jsx2(
135
+ "input",
136
+ {
137
+ ...props,
138
+ "aria-readonly": true,
139
+ className: cx("pointer-events-none", className),
140
+ hidden: true,
141
+ placeholder: props.placeholder ?? " ",
142
+ readOnly: true,
143
+ value: value ?? ""
144
+ }
145
+ )
146
+ ] });
147
+ }
148
+ function DatePickerLabel({
149
+ className,
150
+ htmlFor,
151
+ children,
152
+ ...props
153
+ }) {
154
+ return /* @__PURE__ */ jsx2(
155
+ Typography,
156
+ {
157
+ asChild: true,
158
+ className: cx(
159
+ "bg-layer-2-idle w-fit font-normal",
160
+ "pointer-events-none absolute top-[50%] left-auto -translate-y-1/2",
161
+ "ease pointer-events-none transition-all duration-150",
162
+ // Content Open
163
+ "group-data-[state=open]:text-primary-idle",
164
+ "group-data-[state=open]:bg-layer-2-idle",
165
+ "group-data-[state=open]:-top-[3px]",
166
+ "group-data-[state=open]:text-size-label-sm-1x",
167
+ "group-data-[state=open]:font-medium",
168
+ // Filled
169
+ "group-has-[input:not(:placeholder-shown)]:text-primary-idle",
170
+ "group-has-[input:not(:placeholder-shown)]:bg-layer-2-idle",
171
+ "group-has-[input:not(:placeholder-shown)]:-top-[3px]",
172
+ "group-has-[input:not(:placeholder-shown)]:text-size-label-sm-1x",
173
+ "group-has-[input:not(:placeholder-shown)]:font-medium",
174
+ // If has left slot
175
+ "group-has-[div[data-slot=date-picker-left-slot]]:left-large-4x",
176
+ "group-has-[div[data-slot=date-picker-left-slot]]:group-data-[state=open]:left-auto",
177
+ "group-has-[div[data-slot=date-picker-left-slot]]:group-has-[input:not(:placeholder-shown)]:left-auto",
178
+ // Animate
179
+ "group-data-[state=open]:animate-in",
180
+ "group-data-[state=closed]:animate-out",
181
+ "group-has-[input:not(:placeholder-shown)]:animate-out",
182
+ className
183
+ ),
184
+ weight: "medium",
185
+ ...props,
186
+ children: /* @__PURE__ */ jsx2("label", { htmlFor, children })
187
+ }
188
+ );
189
+ }
190
+ function DatePickerLeftSlot({
191
+ className,
192
+ ...props
193
+ }) {
194
+ return /* @__PURE__ */ jsx2(
195
+ "div",
196
+ {
197
+ ...props,
198
+ className: cx(
199
+ className,
200
+ "left-small absolute top-1/2 flex -translate-y-1/2 items-center justify-center"
201
+ ),
202
+ "data-slot": "date-picker-left-slot"
203
+ }
204
+ );
205
+ }
206
+ function DatePickerRightSlot({
207
+ className,
208
+ ...props
209
+ }) {
210
+ return /* @__PURE__ */ jsx2(
211
+ "div",
212
+ {
213
+ ...props,
214
+ className: cx(
215
+ className,
216
+ "right-small absolute top-1/2 flex -translate-y-1/2 items-center justify-center"
217
+ ),
218
+ "data-slot": "date-picker-right-slot"
219
+ }
220
+ );
221
+ }
222
+ export {
223
+ DatePickerContent,
224
+ DatePickerLabel,
225
+ DatePickerLeftSlot,
226
+ DatePickerRightSlot,
227
+ DatePickerRoot,
228
+ DatePickerTrigger,
229
+ DatePickerValue
230
+ };
@@ -0,0 +1,7 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
4
+
5
+ declare function Divider({ className, orientation, decorative, ...props }: React.ComponentProps<typeof SeparatorPrimitive.Root>): react_jsx_runtime.JSX.Element;
6
+
7
+ export { Divider };
@@ -0,0 +1,28 @@
1
+ // src/components/divider.tsx
2
+ import "react";
3
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
4
+ import { cx } from "@xjur-ui/util";
5
+ import { jsx } from "react/jsx-runtime";
6
+ function Divider({
7
+ className,
8
+ orientation = "horizontal",
9
+ decorative = true,
10
+ ...props
11
+ }) {
12
+ return /* @__PURE__ */ jsx(
13
+ SeparatorPrimitive.Root,
14
+ {
15
+ className: cx(
16
+ "bg-border-layer-2 shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
17
+ className
18
+ ),
19
+ "data-slot": "separator",
20
+ decorative,
21
+ orientation,
22
+ ...props
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ Divider
28
+ };
@@ -0,0 +1,22 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
4
+ import { ListContent, ListHeader, ListHeaderTitle, ListItem } from './list.js';
5
+ import { Typography } from './typography.js';
6
+ import { Divider } from './divider.js';
7
+ import 'class-variance-authority/types';
8
+ import '@xjur-ui/util';
9
+ import '@radix-ui/react-separator';
10
+
11
+ declare function DropdownMenuRoot({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): react_jsx_runtime.JSX.Element;
12
+ declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): react_jsx_runtime.JSX.Element;
13
+ declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
14
+ declare function DropdownMenuContent({ className, sideOffset, align, side, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>): react_jsx_runtime.JSX.Element;
15
+ declare function DropdownMenuList({ ...props }: React.ComponentProps<typeof ListContent>): react_jsx_runtime.JSX.Element;
16
+ declare function DropdownMenuHeader({ ...props }: React.ComponentProps<typeof ListHeader>): react_jsx_runtime.JSX.Element;
17
+ declare function DropdownMenuHeaderTitle({ ...props }: React.ComponentProps<typeof ListHeaderTitle>): react_jsx_runtime.JSX.Element;
18
+ declare function DropdownMenuItem({ className, ...props }: React.ComponentProps<typeof ListItem>): react_jsx_runtime.JSX.Element;
19
+ declare function DropdownMenuItemText({ ...props }: React.ComponentProps<typeof Typography>): react_jsx_runtime.JSX.Element;
20
+ declare function DropdownMenuItemDivider({ ...props }: React.ComponentProps<typeof Divider>): react_jsx_runtime.JSX.Element;
21
+
22
+ export { DropdownMenuContent, DropdownMenuHeader, DropdownMenuHeaderTitle, DropdownMenuItem, DropdownMenuItemDivider, DropdownMenuItemText, DropdownMenuList, DropdownMenuPortal, DropdownMenuRoot, DropdownMenuTrigger };
@@ -0,0 +1,294 @@
1
+ // src/components/dropdown-menu.tsx
2
+ import "react";
3
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
4
+ import { cx as cx3 } from "@xjur-ui/util";
5
+
6
+ // src/components/list.tsx
7
+ import { Slot as Slot2 } from "@radix-ui/react-slot";
8
+ import { cx, cva as cva2 } from "@xjur-ui/util";
9
+
10
+ // src/components/typography.tsx
11
+ import { Slot } from "@radix-ui/react-slot";
12
+ import { cva } from "@xjur-ui/util";
13
+ import { memo } from "react";
14
+ import { jsx } from "react/jsx-runtime";
15
+ var typographyVariants = cva("", {
16
+ variants: {
17
+ variant: {
18
+ body: "",
19
+ label: "",
20
+ title: "",
21
+ headline: ""
22
+ },
23
+ size: {
24
+ "sm-2x": "",
25
+ "sm-1x": "",
26
+ sm: "",
27
+ md: "",
28
+ lg: ""
29
+ },
30
+ weight: {
31
+ thin: "font-thin",
32
+ extraLight: "font-extralight",
33
+ light: "font-light",
34
+ normal: "font-normal",
35
+ medium: "font-medium",
36
+ semibold: "font-semibold",
37
+ bold: "font-bold",
38
+ extraBold: "font-extrabold",
39
+ black: "font-black"
40
+ }
41
+ },
42
+ compoundVariants: [
43
+ { variant: "body", size: "sm-1x", class: "text-size-body-sm-1x" },
44
+ { variant: "body", size: "sm", class: "text-size-body-sm" },
45
+ { variant: "body", size: "md", class: "text-size-body-md" },
46
+ { variant: "body", size: "lg", class: "text-size-body-lg" },
47
+ { variant: "label", size: "sm-2x", class: "text-size-label-sm-2x" },
48
+ { variant: "label", size: "sm-1x", class: "text-size-label-sm-1x" },
49
+ { variant: "label", size: "sm", class: "text-size-label-sm" },
50
+ { variant: "label", size: "md", class: "text-size-label-md" },
51
+ { variant: "label", size: "lg", class: "text-size-label-lg" },
52
+ { variant: "title", size: "sm", class: "text-size-title-sm" },
53
+ { variant: "title", size: "md", class: "text-size-title-md" },
54
+ { variant: "title", size: "lg", class: "text-size-title-lg" },
55
+ { variant: "headline", size: "sm", class: "text-size-headline-sm" },
56
+ { variant: "headline", size: "md", class: "text-size-headline-md" },
57
+ { variant: "headline", size: "lg", class: "text-size-headline-lg" }
58
+ ],
59
+ defaultVariants: {
60
+ variant: "body",
61
+ size: "md",
62
+ weight: "normal"
63
+ }
64
+ });
65
+ var Typography = memo(
66
+ ({
67
+ variant,
68
+ size,
69
+ weight,
70
+ asChild,
71
+ className,
72
+ ...props
73
+ }) => {
74
+ const Component = asChild ? Slot : "span";
75
+ return /* @__PURE__ */ jsx(
76
+ Component,
77
+ {
78
+ className: typographyVariants({ variant, size, weight, className }),
79
+ ...props
80
+ }
81
+ );
82
+ }
83
+ );
84
+ Typography.displayName = "Typography";
85
+
86
+ // src/components/list.tsx
87
+ import { jsx as jsx2 } from "react/jsx-runtime";
88
+ function ListRoot({
89
+ className,
90
+ asChild,
91
+ ...props
92
+ }) {
93
+ const Comp = asChild ? Slot2 : "div";
94
+ return /* @__PURE__ */ jsx2(
95
+ Comp,
96
+ {
97
+ ...props,
98
+ className: cx(
99
+ className,
100
+ "rounded-small scrollbar-hide bg-layer-2-idle border-border-layer-2 shadow-elevation-3 z-10 max-h-[400px] list-none overflow-y-auto border"
101
+ )
102
+ }
103
+ );
104
+ }
105
+ function ListHeader({
106
+ className,
107
+ asChild,
108
+ ...props
109
+ }) {
110
+ const Comp = asChild ? Slot2 : "div";
111
+ return /* @__PURE__ */ jsx2(Comp, { ...props, className: cx(className, "px-small pt-small-1x") });
112
+ }
113
+ function ListHeaderTitle({
114
+ variant = "label",
115
+ size = "sm",
116
+ weight = "medium",
117
+ className,
118
+ ...props
119
+ }) {
120
+ return /* @__PURE__ */ jsx2(
121
+ Typography,
122
+ {
123
+ className: cx(className, "text-neutral-placeholder"),
124
+ size,
125
+ variant,
126
+ weight,
127
+ ...props
128
+ }
129
+ );
130
+ }
131
+ function ListContent({
132
+ className,
133
+ asChild,
134
+ ...props
135
+ }) {
136
+ const Comp = asChild ? Slot2 : "ul";
137
+ return /* @__PURE__ */ jsx2(
138
+ Comp,
139
+ {
140
+ ...props,
141
+ className: cx("gap-small-1x p-small flex flex-col", className)
142
+ }
143
+ );
144
+ }
145
+ var variants = cva2(
146
+ [
147
+ "py-medium px-small flex items-center gap-small rounded-small-1x",
148
+ "bg-layer-2-idle text-neutral-dark",
149
+ "hover:bg-layer-2-hover transition-colors duration-100 ease-out",
150
+ "active:bg-layer-2-pressed"
151
+ ],
152
+ {
153
+ variants: {
154
+ size: {
155
+ md: "h-large-4x",
156
+ lg: "h-large-7x"
157
+ },
158
+ isActive: {
159
+ true: "bg-primary-alt-active text-primary-label-active hover:bg-primary-alt-hover active:bg-primary-alt-pressed"
160
+ }
161
+ },
162
+ defaultVariants: {
163
+ size: "md",
164
+ isActive: false
165
+ }
166
+ }
167
+ );
168
+ function ListItem({
169
+ className,
170
+ size,
171
+ isActive,
172
+ asChild,
173
+ ...props
174
+ }) {
175
+ const Comp = asChild ? Slot2 : "li";
176
+ return /* @__PURE__ */ jsx2(Comp, { ...props, className: cx(variants({ size, isActive }), className) });
177
+ }
178
+
179
+ // src/components/divider.tsx
180
+ import "react";
181
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
182
+ import { cx as cx2 } from "@xjur-ui/util";
183
+ import { jsx as jsx3 } from "react/jsx-runtime";
184
+ function Divider({
185
+ className,
186
+ orientation = "horizontal",
187
+ decorative = true,
188
+ ...props
189
+ }) {
190
+ return /* @__PURE__ */ jsx3(
191
+ SeparatorPrimitive.Root,
192
+ {
193
+ className: cx2(
194
+ "bg-border-layer-2 shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
195
+ className
196
+ ),
197
+ "data-slot": "separator",
198
+ decorative,
199
+ orientation,
200
+ ...props
201
+ }
202
+ );
203
+ }
204
+
205
+ // src/components/dropdown-menu.tsx
206
+ import { jsx as jsx4 } from "react/jsx-runtime";
207
+ function DropdownMenuRoot({
208
+ ...props
209
+ }) {
210
+ return /* @__PURE__ */ jsx4(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
211
+ }
212
+ function DropdownMenuPortal({
213
+ ...props
214
+ }) {
215
+ return /* @__PURE__ */ jsx4(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
216
+ }
217
+ function DropdownMenuTrigger({
218
+ ...props
219
+ }) {
220
+ return /* @__PURE__ */ jsx4(
221
+ DropdownMenuPrimitive.Trigger,
222
+ {
223
+ "data-slot": "dropdown-menu-trigger",
224
+ ...props
225
+ }
226
+ );
227
+ }
228
+ function DropdownMenuContent({
229
+ className,
230
+ sideOffset = 4,
231
+ align = "start",
232
+ side = "bottom",
233
+ children,
234
+ ...props
235
+ }) {
236
+ return /* @__PURE__ */ jsx4(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx4(
237
+ DropdownMenuPrimitive.Content,
238
+ {
239
+ align,
240
+ className: cx3(
241
+ "group z-10 max-h-[var(--radix-popover-content-available-height)] max-w-[var(--radix-popover-trigger-width)] min-w-[240px]",
242
+ className
243
+ ),
244
+ "data-slot": "dropdown-menu-content",
245
+ side,
246
+ sideOffset,
247
+ ...props,
248
+ children: /* @__PURE__ */ jsx4(ListRoot, { children })
249
+ }
250
+ ) });
251
+ }
252
+ function DropdownMenuList({
253
+ ...props
254
+ }) {
255
+ return /* @__PURE__ */ jsx4(ListContent, { ...props });
256
+ }
257
+ function DropdownMenuHeader({
258
+ ...props
259
+ }) {
260
+ return /* @__PURE__ */ jsx4(ListHeader, { ...props });
261
+ }
262
+ function DropdownMenuHeaderTitle({
263
+ ...props
264
+ }) {
265
+ return /* @__PURE__ */ jsx4(ListHeaderTitle, { ...props });
266
+ }
267
+ function DropdownMenuItem({
268
+ className,
269
+ ...props
270
+ }) {
271
+ return /* @__PURE__ */ jsx4(ListItem, { className: cx3(className, "cursor-pointer"), ...props });
272
+ }
273
+ function DropdownMenuItemText({
274
+ ...props
275
+ }) {
276
+ return /* @__PURE__ */ jsx4(Typography, { ...props });
277
+ }
278
+ function DropdownMenuItemDivider({
279
+ ...props
280
+ }) {
281
+ return /* @__PURE__ */ jsx4(Divider, { ...props });
282
+ }
283
+ export {
284
+ DropdownMenuContent,
285
+ DropdownMenuHeader,
286
+ DropdownMenuHeaderTitle,
287
+ DropdownMenuItem,
288
+ DropdownMenuItemDivider,
289
+ DropdownMenuItemText,
290
+ DropdownMenuList,
291
+ DropdownMenuPortal,
292
+ DropdownMenuRoot,
293
+ DropdownMenuTrigger
294
+ };
@@ -1,4 +1,13 @@
1
- declare const icons: readonly ["account_balance", "ad_units", "add_a_photo", "add", "adjust", "archive", "arrow_downward_alt", "arrow_downward", "arrow_drop_down", "arrow_drop_up", "arrow_split", "arrow_upward_alt", "arrow_upward", "attach_file", "attach_money", "autorenew", "brightness_1", "calendar_today", "call", "chat_bubble", "check_circle", "check", "chevron_left", "chevron_right", "close", "collapse_all", "contacts", "content_copy", "dangerous", "dashboard", "delete", "download", "draft", "drafts", "drag_handle", "drag_indicator", "edit_document", "edit_square", "edit", "error", "expand_all", "file_export", "filter_alt", "filter_list", "first_page", "flag_2", "folder_open", "folder", "format_bold", "format_italic", "format_italic", "format_size", "format_strikethrough", "gavel", "group", "headphones", "help", "hourglass_bottom", "imagesmode", "import_contacts", "inbox", "info", "inventory_2", "keep", "keep", "keyboard_arrow_down", "keyboard_arrow_up", "keyboard_return", "label_off", "label", "last_page", "left_panel_close", "left_panel_open", "link_off", "link", "linked_services", "list", "location_on", "lock", "logout", "mail", "menu", "mic", "more_vert", "notifications", "numbers", "person_add", "person_off", "person", "play_circle", "progress_activity", "question_mark", "radio_button_unchecked", "refresh", "remove", "reply", "right_panel_close", "right_panel_open", "schedule", "search", "sell", "send", "settings", "share", "smart_display", "star", "star", "swap_vert", "thumb_down", "thumb_up", "tune", "unarchive", "undo", "upload", "verified_user", "videocam", "view_list", "view_module", "view_object_track", "visibility_off", "visibility", "warning", "wifi_2_bar", "wifi_off", "wifi", "work", "workspaces"];
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ComponentProps } from 'react';
3
+
4
+ declare const icons: readonly ["account_balance", "ad_units", "add_a_photo", "add", "adjust", "archive", "arrow_downward_alt", "arrow_downward", "arrow_drop_down", "arrow_drop_up", "arrow_split", "arrow_upward_alt", "arrow_upward", "attach_file", "attach_money", "autorenew", "brightness_1", "calendar_today", "call", "chat_bubble", "check_circle", "check", "chevron_left", "chevron_right", "close", "collapse_all", "contacts", "content_copy", "dangerous", "dashboard", "delete", "download", "draft", "drafts", "drag_handle", "drag_indicator", "edit_document", "edit_square", "edit", "error", "expand_all", "file_export", "filter_alt", "filter_list", "first_page", "flag_2", "folder_open", "folder", "format_bold", "format_italic", "format_italic", "format_size", "format_strikethrough", "gavel", "group", "headphones", "help", "hourglass_bottom", "imagesmode", "import_contacts", "inbox", "info", "inventory_2", "keep", "keep", "keyboard_arrow_down", "keyboard_arrow_up", "keyboard_return", "label_off", "label", "last_page", "left_panel_close", "left_panel_open", "link_off", "link", "linked_services", "list", "location_on", "lock", "logout", "mail", "menu", "mic", "more_vert", "notifications", "numbers", "person_add", "person_off", "person", "play_circle", "progress_activity", "question_mark", "radio_button_unchecked", "refresh", "remove", "reply", "right_panel_close", "right_panel_open", "schedule", "search", "sell", "send", "settings", "share", "smart_display", "star", "star", "swap_vert", "thumb_down", "thumb_up", "tune", "unarchive", "undo", "upload", "verified_user", "videocam", "view_list", "view_module", "view_object_track", "visibility_off", "visibility", "warning", "wifi_2_bar", "wifi_off", "wifi", "work", "workspaces", "article", "id_card", "badge", "home", "save", "code", "favorite", "analytics", "reports", "event", "account_circle", "history", "security"];
2
5
  type IconType = (typeof icons)[number];
3
6
 
4
- export { type IconType, icons };
7
+ type IconProps = {
8
+ name: IconType;
9
+ filled?: boolean;
10
+ } & ComponentProps<'span'>;
11
+ declare function Icon({ className, filled, name, ...props }: IconProps): react_jsx_runtime.JSX.Element;
12
+
13
+ export { Icon, type IconProps, type IconType, icons };
@@ -1,7 +1,7 @@
1
- // src/components/ui/icon.tsx
1
+ // src/components/icon.tsx
2
2
  import { cx } from "@xjur-ui/util";
3
3
 
4
- // src/components/resources/icons.ts
4
+ // src/resources/icons.ts
5
5
  var icons = [
6
6
  "account_balance",
7
7
  "ad_units",
@@ -129,10 +129,23 @@ var icons = [
129
129
  "wifi_off",
130
130
  "wifi",
131
131
  "work",
132
- "workspaces"
132
+ "workspaces",
133
+ "article",
134
+ "id_card",
135
+ "badge",
136
+ "home",
137
+ "save",
138
+ "code",
139
+ "favorite",
140
+ "analytics",
141
+ "reports",
142
+ "event",
143
+ "account_circle",
144
+ "history",
145
+ "security"
133
146
  ];
134
147
 
135
- // src/components/ui/icon.tsx
148
+ // src/components/icon.tsx
136
149
  import { jsx } from "react/jsx-runtime";
137
150
  function Icon({ className, filled = false, name, ...props }) {
138
151
  return /* @__PURE__ */ jsx(
@@ -141,7 +154,7 @@ function Icon({ className, filled = false, name, ...props }) {
141
154
  ...props,
142
155
  className: cx(
143
156
  "material-symbols-outlined",
144
- "text-size-body-lg text-icon-neutral-3",
157
+ "text-size-body-lg",
145
158
  className
146
159
  ),
147
160
  style: {
@@ -0,0 +1,32 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ComponentProps } from 'react';
3
+ import { MaskOptions } from '@react-input/mask';
4
+ export { MaskOptions } from '@react-input/mask';
5
+ import { InputNumberFormatProps } from '@react-input/number-format';
6
+
7
+ type InputMaskType = 'cpf' | 'cnpj' | 'telefone' | 'cep' | 'numero-processo' | 'custom' | 'data' | 'hora' | 'data-hora';
8
+ declare function inputMask(type: InputMaskType, options?: MaskOptions): MaskOptions;
9
+
10
+ type InputProps = {
11
+ variant?: 'outlined' | 'filled';
12
+ };
13
+ declare function InputRoot({ className, children, variant, ...props }: ComponentProps<'div'> & InputProps): react_jsx_runtime.JSX.Element;
14
+ declare function InputContent({ className, ...props }: ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
15
+ declare function InputLabel({ htmlFor, className, ...props }: ComponentProps<'label'> & {
16
+ htmlFor: string;
17
+ }): react_jsx_runtime.JSX.Element;
18
+ declare function InputText({ className, maskOptions, maskType, ...props }: ComponentProps<'input'> & {
19
+ maskOptions?: MaskOptions;
20
+ maskType?: InputMaskType;
21
+ }): react_jsx_runtime.JSX.Element;
22
+ declare function InputNumber({ className, locales, ...props }: InputNumberFormatProps): react_jsx_runtime.JSX.Element;
23
+ declare function InputLeftSlot({ className, ...props }: ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
24
+ declare function InputRightSlot({ className, ...props }: ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
25
+ declare function InputMessage({ className, ...props }: ComponentProps<'p'>): react_jsx_runtime.JSX.Element;
26
+ declare function InputContainer({ className, ...props }: ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
27
+ declare function InputAction({ className, side, ...props }: ComponentProps<'div'> & {
28
+ side: 'left' | 'right';
29
+ }): react_jsx_runtime.JSX.Element;
30
+ declare function InputActionButton({ className, ...props }: ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
31
+
32
+ export { InputAction, InputActionButton, InputContainer, InputContent, InputLabel, InputLeftSlot, type InputMaskType, InputMessage, InputNumber, type InputProps, InputRightSlot, InputRoot, InputText, inputMask };