@xjur-ui/react 1.0.4 → 2.0.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 (114) hide show
  1. package/.turbo/turbo-build.log +98 -42
  2. package/CHANGELOG.md +51 -0
  3. package/README.md +146 -0
  4. package/dist/chunk-CBFC4QME.js +2 -0
  5. package/dist/chunk-CBFC4QME.js.map +1 -0
  6. package/dist/chunk-EIG6CBTQ.js +2 -0
  7. package/dist/chunk-EIG6CBTQ.js.map +1 -0
  8. package/dist/chunk-FASEHVMD.js +2 -0
  9. package/dist/chunk-FASEHVMD.js.map +1 -0
  10. package/dist/chunk-KIFR5VIE.js +2 -0
  11. package/dist/chunk-KIFR5VIE.js.map +1 -0
  12. package/dist/chunk-KS6WGBHQ.js +2 -0
  13. package/dist/chunk-KS6WGBHQ.js.map +1 -0
  14. package/dist/chunk-NELCN6E2.js +2 -0
  15. package/dist/chunk-NELCN6E2.js.map +1 -0
  16. package/dist/chunk-NPTLORW5.js +2 -0
  17. package/dist/chunk-NPTLORW5.js.map +1 -0
  18. package/dist/chunk-RWMV7APX.js +2 -0
  19. package/dist/chunk-RWMV7APX.js.map +1 -0
  20. package/dist/chunk-SHHXKVVR.js +2 -0
  21. package/dist/chunk-SHHXKVVR.js.map +1 -0
  22. package/dist/chunk-TB6KI6CL.js +2 -0
  23. package/dist/chunk-TB6KI6CL.js.map +1 -0
  24. package/dist/components/avatar-group.js +2 -179
  25. package/dist/components/avatar-group.js.map +1 -0
  26. package/dist/components/avatar.js +2 -59
  27. package/dist/components/avatar.js.map +1 -0
  28. package/dist/components/badge.js +2 -111
  29. package/dist/components/badge.js.map +1 -0
  30. package/dist/components/button.js +2 -98
  31. package/dist/components/button.js.map +1 -0
  32. package/dist/components/calendar.js +2 -751
  33. package/dist/components/calendar.js.map +1 -0
  34. package/dist/components/checkbox.js +2 -153
  35. package/dist/components/checkbox.js.map +1 -0
  36. package/dist/components/chip.d.ts +3 -1
  37. package/dist/components/chip.js +2 -256
  38. package/dist/components/chip.js.map +1 -0
  39. package/dist/components/collapsible.js +2 -41
  40. package/dist/components/collapsible.js.map +1 -0
  41. package/dist/components/date-picker.d.ts +8 -3
  42. package/dist/components/date-picker.js +2 -232
  43. package/dist/components/date-picker.js.map +1 -0
  44. package/dist/components/divider.js +2 -29
  45. package/dist/components/divider.js.map +1 -0
  46. package/dist/components/dropdown-menu.js +2 -295
  47. package/dist/components/dropdown-menu.js.map +1 -0
  48. package/dist/components/icon.js +2 -177
  49. package/dist/components/icon.js.map +1 -0
  50. package/dist/components/input.d.ts +9 -4
  51. package/dist/components/input.js +2 -315
  52. package/dist/components/input.js.map +1 -0
  53. package/dist/components/list.js +2 -179
  54. package/dist/components/list.js.map +1 -0
  55. package/dist/components/logo.js +2 -324
  56. package/dist/components/logo.js.map +1 -0
  57. package/dist/components/otp-input.js +2 -47
  58. package/dist/components/otp-input.js.map +1 -0
  59. package/dist/components/radio.js +2 -156
  60. package/dist/components/radio.js.map +1 -0
  61. package/dist/components/rich-editor.d.ts +2 -1
  62. package/dist/components/rich-editor.js +2 -723
  63. package/dist/components/rich-editor.js.map +1 -0
  64. package/dist/components/search-input.js +2 -274
  65. package/dist/components/search-input.js.map +1 -0
  66. package/dist/components/select.d.ts +6 -3
  67. package/dist/components/select.js +2 -550
  68. package/dist/components/select.js.map +1 -0
  69. package/dist/components/sheet.js +2 -251
  70. package/dist/components/sheet.js.map +1 -0
  71. package/dist/components/skeleton.js +2 -16
  72. package/dist/components/skeleton.js.map +1 -0
  73. package/dist/components/status.d.ts +14 -0
  74. package/dist/components/status.js +2 -0
  75. package/dist/components/status.js.map +1 -0
  76. package/dist/components/switch.js +2 -36
  77. package/dist/components/switch.js.map +1 -0
  78. package/dist/components/table.js +2 -196
  79. package/dist/components/table.js.map +1 -0
  80. package/dist/components/tabs.d.ts +9 -6
  81. package/dist/components/tabs.js +2 -54
  82. package/dist/components/tabs.js.map +1 -0
  83. package/dist/components/tag.d.ts +3 -1
  84. package/dist/components/tag.js +2 -189
  85. package/dist/components/tag.js.map +1 -0
  86. package/dist/components/tooltip.js +2 -58
  87. package/dist/components/tooltip.js.map +1 -0
  88. package/dist/components/typography.js +2 -78
  89. package/dist/components/typography.js.map +1 -0
  90. package/dist/hooks/index.d.ts +7 -0
  91. package/dist/hooks/index.js +2 -0
  92. package/dist/hooks/index.js.map +1 -0
  93. package/dist/index.css +2 -2318
  94. package/dist/index.css.map +1 -0
  95. package/dist/logo-PQRZORCS.js +3 -0
  96. package/dist/logo-PQRZORCS.js.map +1 -0
  97. package/package.json +42 -7
  98. package/src/components/calendar.tsx +7 -6
  99. package/src/components/chip.tsx +11 -3
  100. package/src/components/date-picker.tsx +125 -22
  101. package/src/components/icon.tsx +1 -1
  102. package/src/components/input.tsx +124 -60
  103. package/src/components/logo.tsx +25 -20
  104. package/src/components/rich-editor.tsx +4 -3
  105. package/src/components/select.tsx +104 -26
  106. package/src/components/status.tsx +43 -0
  107. package/src/components/tabs.tsx +56 -37
  108. package/src/components/tag.tsx +11 -3
  109. package/src/index.css +2 -2
  110. package/src/resources/logo/index.tsx +33 -0
  111. package/tsup.config.ts +23 -5
  112. package/dist/index.js +0 -0
  113. package/src/index.ts +0 -1
  114. package/src/resources/logo/index.ts +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/rich-editor.tsx"],"names":["headingClasses","RichEditorRoot","className","editorOptions","props","editor","useEditor","StarterKit","Placeholder","node","Heading","HTMLAttributes","level","value","useMemo","jsx","EditorContext","cx","RichEditorContent","RichEditorCaption","RichEditorAreaText","useRichTextEditor","EditorContent","RichEditorToolbar","ToolbarButton","appearance","variant","onMouseDown","onPointerDown","Button","e","ToggleButton","name","shortcut","useOS","isActive","useRichTextEditorState","ctx","icon","description","handleToggle","useCallback","jsxs","Tooltip","TooltipTrigger","Icon","TooltipContent","Typography","HeadingButton","isOpen","setIsOpen","useState","isLevelActive","toggleHeading","levels","DropdownMenuRoot","open","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuList","DropdownMenuItem","DropdownMenuItemText"],"mappings":"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","file":"rich-editor.js","sourcesContent":["import { cx } from '@xjur-ui/util'\nimport { useCallback, useMemo, useState, type ComponentProps } from 'react'\nimport {\n EditorContent,\n EditorContext,\n useCurrentEditor as useRichTextEditor,\n useEditorState as useRichTextEditorState,\n useEditor,\n type EditorOptions\n} from '@tiptap/react'\nimport type { Extension } from '@tiptap/core'\nimport { StarterKit } from '@tiptap/starter-kit'\nimport { Heading, type Level } from '@tiptap/extension-heading'\n// Import specific extension instead of full extensions bundle\nimport { Placeholder } from '@tiptap/extension-placeholder'\nimport { useOS } from '../hooks'\nimport { Icon, type IconType } from './icon'\nimport { Button, type ButtonProps } from './button'\nimport {\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuItemText,\n DropdownMenuList,\n DropdownMenuRoot,\n DropdownMenuTrigger\n} from './dropdown-menu'\nimport { Tooltip, TooltipTrigger, TooltipContent } from './tooltip'\nimport { Typography } from './typography'\n\nconst headingClasses: Partial<Record<Level, string>> = {\n 1: 'text-size-body-md',\n 2: 'text-size-title-lg',\n 3: 'text-size-headline-lg'\n}\n\nexport function RichEditorRoot({\n className,\n editorOptions,\n ...props\n}: ComponentProps<'div'> & {\n editorOptions?: Partial<\n Omit<EditorOptions, 'extensions'> & {\n extensions?: Extension[]\n }\n >\n}) {\n const editor = useEditor({\n ...editorOptions,\n extensions: [\n StarterKit.configure({\n bulletList: {\n HTMLAttributes: {\n class: 'list-disc list-outside pl-large-1x'\n }\n },\n orderedList: {\n HTMLAttributes: {\n class: 'list-decimal list-outside pl-large-1x'\n }\n },\n heading: false\n }),\n Placeholder.configure({\n placeholder: ({ node, editor }) =>\n node.type.name === 'paragraph' && editor.isEmpty\n ? 'Digite aqui…'\n : '',\n showOnlyWhenEditable: true,\n includeChildren: false,\n emptyNodeClass:\n 'before:content-[attr(data-placeholder)] before:absolute before:top-0 before:left-0 before:text-neutral-placeholder first:before:float-left first:before:content-[attr(data-placeholder)] first:before:pointer-events-none'\n }),\n Heading.configure({\n levels: [1, 2, 3]\n }).extend({\n renderHTML({ node, HTMLAttributes }) {\n const level: Level = node.attrs.level ?? 1\n\n return [\n 'h',\n {\n ...HTMLAttributes,\n class: headingClasses[level]\n },\n 0\n ]\n }\n }),\n ...(editorOptions?.extensions ?? [])\n ]\n })\n\n const value = useMemo(() => ({ editor }), [editor])\n\n return (\n <EditorContext.Provider value={value}>\n <div\n className={cx('gap-small flex w-full flex-col', className)}\n data-slot=\"text-area-root\"\n {...props}\n />\n </EditorContext.Provider>\n )\n}\n\nexport function RichEditorContent({\n className,\n ...props\n}: ComponentProps<'div'>) {\n return (\n <div\n className={cx(\n 'bg-layer-2-hover py-small_1x-alt px-small rounded-small-1x min-h-[116px] w-full border border-transparent',\n 'hover:border-border-layer-2 transition-colors duration-200',\n '[&_ul_ul]:list-[circle]',\n '[&_ul_ul_ul]:list-[square]',\n '[&_ol_ol]:list-[lower-alpha]',\n '[&_ol_ol_ol]:list-[lower-roman]',\n 'gap-small flex flex-col overflow-x-hidden overflow-y-auto',\n className\n )}\n data-slot=\"text-area-content\"\n {...props}\n />\n )\n}\n\nexport function RichEditorCaption({\n className,\n ...props\n}: ComponentProps<'p'>) {\n return (\n <p\n {...props}\n className={cx(\n 'text-size-body-sm text-neutral-dark font-normal',\n className\n )}\n data-slot=\"text-area-caption\"\n />\n )\n}\n\nexport function RichEditorAreaText({\n className,\n ...props\n}: Omit<ComponentProps<typeof EditorContent>, 'editor'>) {\n const { editor } = useRichTextEditor()\n\n return (\n <EditorContent\n className={cx(\n 'text-size-body-md text-neutral-dark max-h-[116px] *:h-full *:w-full *:outline-0',\n className\n )}\n editor={editor}\n {...props}\n />\n )\n}\n\nexport function RichEditorToolbar({\n className,\n ...props\n}: ComponentProps<'div'>) {\n return (\n <div\n className={cx(\n 'h-large-4x gap-small-1x h-large-6px scrollbar-hide flex flex-nowrap items-center overflow-x-auto overflow-y-hidden',\n className\n )}\n data-slot=\"text-area-toolbar\"\n {...props}\n />\n )\n}\n\nexport function ToolbarButton({\n appearance = 'ghost',\n variant = 'secondary',\n onMouseDown,\n onPointerDown,\n ...props\n}: ButtonProps) {\n return (\n <Button\n appearance={appearance}\n size=\"icon_md\"\n tabIndex={-1}\n type=\"button\"\n variant={variant}\n onMouseDown={e => {\n e.preventDefault()\n onMouseDown?.(e)\n }}\n onPointerDown={e => {\n e.preventDefault()\n onPointerDown?.(e)\n }}\n {...props}\n />\n )\n}\n\ntype ToggleButtonName =\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strike'\n | 'bulletList'\n | 'orderedList'\n | 'undo'\n | 'redo'\n\nexport function ToggleButton({\n name,\n ...props\n}: ButtonProps & { name: ToggleButtonName }) {\n const { editor } = useRichTextEditor()\n const { shortcut } = useOS()\n\n const isActive = useRichTextEditorState({\n editor,\n selector: ctx => ctx.editor?.isActive(name) ?? false\n })\n\n const icon = useMemo(() => {\n const iconsMap = new Map<ToggleButtonName, IconType>([\n ['bold', 'format_bold'],\n ['italic', 'format_italic'],\n ['underline', 'format_underlined'],\n ['strike', 'format_strikethrough'],\n ['bulletList', 'format_list_bulleted'],\n ['orderedList', 'format_list_numbered'],\n ['undo', 'undo'],\n ['redo', 'redo']\n ])\n\n return iconsMap.get(name)\n }, [name])\n\n const description = useMemo(() => {\n const descriptionsMap = new Map<ToggleButtonName, string>([\n ['bold', `Negrito (${shortcut} + B)`],\n ['italic', `Itálico (${shortcut} + I)`],\n ['underline', `Sublinhado (${shortcut} + U)`],\n ['strike', `Tachado (${shortcut} + S)`],\n ['bulletList', `Lista (${shortcut} + Shift + 7)`],\n ['orderedList', `Lista numerada (${shortcut} + Shift + 8)`],\n ['undo', `Desfazer (${shortcut} + Z)`],\n ['redo', `Refazer (${shortcut} + Y)`]\n ])\n\n return descriptionsMap.get(name)\n }, [name, shortcut])\n\n const handleToggle = useCallback(() => {\n if (!editor) throw new Error('Editor not found')\n\n const commandsMap = new Map<ToggleButtonName, () => void>([\n ['bold', () => editor.chain().focus().toggleBold().run()],\n ['italic', () => editor.chain().focus().toggleItalic().run()],\n ['underline', () => editor.chain().focus().toggleUnderline().run()],\n ['strike', () => editor.chain().focus().toggleStrike().run()],\n ['bulletList', () => editor.chain().focus().toggleBulletList().run()],\n ['orderedList', () => editor.chain().focus().toggleOrderedList().run()],\n ['undo', () => editor.chain().focus().undo().run()],\n ['redo', () => editor.chain().focus().redo().run()]\n ])\n\n commandsMap.get(name)?.()\n }, [editor, name])\n\n return (\n <Tooltip>\n <TooltipTrigger asChild={true}>\n <ToolbarButton\n onClick={handleToggle}\n {...(isActive && { appearance: 'solid' })}\n {...props}\n >\n {icon && <Icon className=\"text-icon-neutral-3\" name={icon} />}\n </ToolbarButton>\n </TooltipTrigger>\n\n <TooltipContent>\n {description && <Typography size=\"sm\">{description}</Typography>}\n </TooltipContent>\n </Tooltip>\n )\n}\n\nexport function HeadingButton({\n appearance = 'ghost',\n variant = 'secondary',\n ...props\n}: ButtonProps) {\n const [isOpen, setIsOpen] = useState(false)\n const { editor } = useRichTextEditor()\n\n const isActive = useRichTextEditorState({\n editor,\n selector: ctx => ctx.editor?.isActive('heading') ?? false\n })\n\n const isLevelActive = useCallback(\n (level: Level) => {\n if (!editor) throw new Error('Editor not found')\n return editor.isActive('heading', { level })\n },\n [editor]\n )\n\n const toggleHeading = useCallback(\n (level: Level) => {\n if (!editor) throw new Error('Editor not found')\n setIsOpen(false)\n setTimeout(() => {\n editor.chain().focus().toggleHeading({ level }).run()\n }, 0)\n },\n [editor]\n )\n\n const levels: { level: Level; label: string; className?: string }[] = [\n { level: 1, label: 'Normal', className: headingClasses[1] },\n { level: 2, label: 'Grande', className: headingClasses[2] },\n { level: 3, label: 'Enorme', className: headingClasses[3] }\n ]\n\n return (\n <DropdownMenuRoot open={isOpen} onOpenChange={open => setIsOpen(open)}>\n <DropdownMenuTrigger asChild={true}>\n <Button\n appearance={isActive ? 'solid' : appearance}\n size=\"icon_md\"\n tabIndex={-1}\n type=\"button\"\n variant={variant}\n {...props}\n >\n <Tooltip>\n <TooltipTrigger asChild={true}>\n <Icon className=\"text-icon-neutral-3\" name=\"format_size\" />\n </TooltipTrigger>\n\n <TooltipContent>\n <Typography size=\"sm\">Tamanho</Typography>\n </TooltipContent>\n </Tooltip>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuList>\n {levels.map(level => (\n <DropdownMenuItem\n isActive={isLevelActive(level.level)}\n key={level.level}\n onPointerDown={() => toggleHeading(level.level)}\n >\n <DropdownMenuItemText className={level.className}>\n {level.label}\n </DropdownMenuItemText>\n </DropdownMenuItem>\n ))}\n </DropdownMenuList>\n </DropdownMenuContent>\n </DropdownMenuRoot>\n )\n}\n\nexport { useRichTextEditorState, useRichTextEditor }\n"]}
@@ -1,274 +1,2 @@
1
- // src/components/search-input.tsx
2
- import { cva as cva3, cx as cx2 } from "@xjur-ui/util";
3
- import { createContext } from "react";
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/button.tsx
82
- import { Slot as Slot2 } from "@radix-ui/react-slot";
83
- import { cva as cva2, cx } from "@xjur-ui/util";
84
- import { jsx as jsx2 } from "react/jsx-runtime";
85
- var buttonVariants = cva2(
86
- [
87
- "outline-none inline-flex items-center justify-center rounded-circle gap-small cursor-pointer disabled:opacity-38 disabled:pointer-events-none transition-colors"
88
- ],
89
- {
90
- variants: {
91
- size: {
92
- md: "py-small_1x-alt px-medium text-size-body-md",
93
- sm: "py-small-1x px-small text-size-label-sm",
94
- icon_md: "p-small text-size-body-md h-large-4x w-large-4x",
95
- icon_sm: "p-small-1x text-size-label-sm h-large-2x w-large-2x"
96
- },
97
- variant: {
98
- primary: "",
99
- secondary: "",
100
- tertiary: "",
101
- destructive: "",
102
- outlined: "bg-layer-2-idle border border-border-layer-2 hover:bg-layer-2-hover active:bg-layer-2-pressed"
103
- },
104
- appearance: {
105
- solid: "",
106
- ghost: "bg-transparent"
107
- }
108
- },
109
- compoundVariants: [
110
- {
111
- variant: "primary",
112
- appearance: "solid",
113
- class: "bg-primary-idle text-neutral-label hover:bg-primary-hover active:bg-primary-pressed"
114
- },
115
- {
116
- variant: "primary",
117
- appearance: "ghost",
118
- class: "text-primary-idle hover:bg-primary-alt-idle active:bg-primary-alt-pressed"
119
- },
120
- {
121
- variant: "secondary",
122
- appearance: "solid",
123
- class: "bg-layer-1-hover text-neutral-dark hover:bg-layer-1-pressed active:bg-layer-1-active"
124
- },
125
- {
126
- variant: "secondary",
127
- appearance: "ghost",
128
- class: "hover:bg-layer-1-hover active:bg-layer-1-pressed"
129
- },
130
- {
131
- variant: "tertiary",
132
- appearance: "solid",
133
- class: "bg-layer-2-hover text-neutral-dark hover:bg-layer-2-pressed active:bg-layer-2-active"
134
- },
135
- {
136
- variant: "tertiary",
137
- appearance: "ghost",
138
- class: "hover:bg-layer-2-hover active:bg-layer-2-pressed"
139
- },
140
- {
141
- variant: "destructive",
142
- appearance: "solid",
143
- class: "bg-danger-idle text-neutral-label hover:bg-danger-hover active:bg-danger-pressed"
144
- },
145
- {
146
- variant: "destructive",
147
- appearance: "ghost",
148
- class: "text-danger-label-idle hover:bg-danger-alt-idle active:bg-danger-alt-pressed"
149
- }
150
- ],
151
- defaultVariants: {
152
- size: "md",
153
- variant: "primary",
154
- appearance: "solid"
155
- }
156
- }
157
- );
158
- function Button({
159
- asChild,
160
- className,
161
- variant = "primary",
162
- size = "md",
163
- appearance = "solid",
164
- ...props
165
- }) {
166
- const Component = asChild ? Slot2 : "button";
167
- return /* @__PURE__ */ jsx2(
168
- Component,
169
- {
170
- className: cx(buttonVariants({ variant, appearance, size }), className),
171
- ...props
172
- }
173
- );
174
- }
175
-
176
- // src/components/search-input.tsx
177
- import { jsx as jsx3 } from "react/jsx-runtime";
178
- var SearchInputRootContext = createContext({
179
- variant: "outlined"
180
- });
181
- function SearchInputRoot({
182
- className,
183
- variant = "outlined",
184
- ...props
185
- }) {
186
- return /* @__PURE__ */ jsx3(SearchInputRootContext.Provider, { value: { variant }, children: /* @__PURE__ */ jsx3("div", { className: cx2(className, "relative flex w-full"), ...props }) });
187
- }
188
- function SearchInputContent({
189
- className,
190
- ...props
191
- }) {
192
- const contentVarians = cva3(
193
- [
194
- "gap-small py-small_1x-alt px-small flex items-center w-full",
195
- "h-large-4x rounded-circle",
196
- "border-border-layer-2 placeholder:placeholder-neutral-placeholder text-size-body-md text-neutral-dark border font-normal",
197
- "group-hover:border-border-layer-3 transition-colors duration-200",
198
- "disabled:opacity-60",
199
- "focus-within:border-primary-idle"
200
- ],
201
- {
202
- variants: {
203
- variant: {
204
- outlined: "rounded-circle focus-within:border-primary-idle ",
205
- line: "rounded-none border-t-0 border-b-1 border-x-0",
206
- action: "rounded-tr-none rounded-br-none border-r-0"
207
- }
208
- }
209
- }
210
- );
211
- return /* @__PURE__ */ jsx3(SearchInputRootContext.Consumer, { children: ({ variant }) => /* @__PURE__ */ jsx3(
212
- "div",
213
- {
214
- className: cx2(className, contentVarians({ variant })),
215
- "data-variant": variant,
216
- ...props
217
- }
218
- ) });
219
- }
220
- function SearchInputLabel({
221
- htmlFor,
222
- ...props
223
- }) {
224
- return /* @__PURE__ */ jsx3(
225
- Typography,
226
- {
227
- asChild: true,
228
- className: cx2("absolute -top-[22px] left-0"),
229
- size: "sm",
230
- variant: "label",
231
- weight: "medium",
232
- children: /* @__PURE__ */ jsx3("label", { htmlFor, ...props })
233
- }
234
- );
235
- }
236
- function SearchInputText({
237
- className,
238
- ...props
239
- }) {
240
- return /* @__PURE__ */ jsx3("input", { className: cx2(className, "flex-1 outline-none"), ...props });
241
- }
242
- function SearchInputSlot(props) {
243
- return /* @__PURE__ */ jsx3("div", { ...props, "data-slot": "search-input-slot" });
244
- }
245
- function SearchInputAction({
246
- className,
247
- appearance = "ghost",
248
- variant = "outlined",
249
- ...props
250
- }) {
251
- return /* @__PURE__ */ jsx3(
252
- Button,
253
- {
254
- ...props,
255
- appearance,
256
- className: cx2(
257
- className,
258
- "cursor-pointer",
259
- "h-large-4x rounded-tr-circle rounded-br-circle px-small py-small_1x-alt flex items-center justify-center rounded-none",
260
- "text-size-body-md text-neutral-dark gap-small-1x"
261
- ),
262
- "data-slot": "search-input-action",
263
- variant
264
- }
265
- );
266
- }
267
- export {
268
- SearchInputAction,
269
- SearchInputContent,
270
- SearchInputLabel,
271
- SearchInputRoot,
272
- SearchInputSlot,
273
- SearchInputText
274
- };
1
+ export{f as SearchInputAction,b as SearchInputContent,c as SearchInputLabel,a as SearchInputRoot,e as SearchInputSlot,d as SearchInputText}from'../chunk-NPTLORW5.js';import'../chunk-FASEHVMD.js';import'../chunk-EIG6CBTQ.js';//# sourceMappingURL=search-input.js.map
2
+ //# sourceMappingURL=search-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"search-input.js"}
@@ -8,7 +8,10 @@ import 'class-variance-authority/types';
8
8
  import '@xjur-ui/util';
9
9
  import './button.js';
10
10
 
11
- declare function SelectRoot(props: ComponentProps<typeof RadixPopover.Root>): react_jsx_runtime.JSX.Element;
11
+ declare function SelectRoot({ disabled, hasError, ...props }: ComponentProps<typeof RadixPopover.Root> & {
12
+ disabled?: boolean;
13
+ hasError?: boolean;
14
+ }): react_jsx_runtime.JSX.Element;
12
15
  declare function SelectTrigger({ className, ...props }: ComponentProps<typeof RadixPopover.Trigger>): react_jsx_runtime.JSX.Element;
13
16
  declare function SelectContent({ className, children, sideOffset, side, align, ...props }: ComponentProps<typeof RadixPopover.Content>): react_jsx_runtime.JSX.Element;
14
17
  declare function SelectValue({ className, displayValue, ...props }: ComponentProps<'input'> & {
@@ -25,9 +28,9 @@ declare function SelectOption({ className, ...props }: ComponentProps<typeof Lis
25
28
  declare function SelectOptionText(props: ComponentProps<typeof Typography>): react_jsx_runtime.JSX.Element;
26
29
  declare function SelectHeader(props: ComponentProps<typeof ListHeader>): react_jsx_runtime.JSX.Element;
27
30
  declare function SelectHeaderTitle(props: ComponentProps<typeof ListHeaderTitle>): react_jsx_runtime.JSX.Element;
28
- declare function SelectDropdown(props: ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
29
31
  declare function SelectLeftSlot({ className, ...props }: ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
30
32
  declare function SelectRightSlot({ className, ...props }: ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
31
33
  declare function SelectSearch(props: ComponentProps<typeof SearchInputText>): react_jsx_runtime.JSX.Element;
34
+ declare function SelectCaption({ className, variant, size, weight, ...props }: ComponentProps<typeof Typography>): react_jsx_runtime.JSX.Element;
32
35
 
33
- export { SelectContent, SelectDropdown, SelectHeader, SelectHeaderTitle, SelectLabel, SelectLeftSlot, SelectMultiValue, SelectOption, SelectOptionText, SelectOptions, SelectRightSlot, SelectRoot, SelectSearch, SelectTrigger, SelectValue };
36
+ export { SelectCaption, SelectContent, SelectHeader, SelectHeaderTitle, SelectLabel, SelectLeftSlot, SelectMultiValue, SelectOption, SelectOptionText, SelectOptions, SelectRightSlot, SelectRoot, SelectSearch, SelectTrigger, SelectValue };