@optimum-intelligence/opti-ui 0.0.0-stage → 0.2.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 (174) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +161 -2
  3. package/dist/components/accordion/Accordion.d.ts +17 -0
  4. package/dist/components/accordion/Accordion.js +204 -0
  5. package/dist/components/accordion/Accordion.js.map +1 -0
  6. package/dist/components/alert/Alert.d.ts +18 -0
  7. package/dist/components/alert/Alert.js +164 -0
  8. package/dist/components/alert/Alert.js.map +1 -0
  9. package/dist/components/app-shell/AppShell.d.ts +97 -0
  10. package/dist/components/app-shell/AppShell.js +689 -0
  11. package/dist/components/app-shell/AppShell.js.map +1 -0
  12. package/dist/components/avatar/Avatar.d.ts +21 -0
  13. package/dist/components/avatar/Avatar.js +190 -0
  14. package/dist/components/avatar/Avatar.js.map +1 -0
  15. package/dist/components/badge/Badge.d.ts +16 -0
  16. package/dist/components/badge/Badge.js +94 -0
  17. package/dist/components/badge/Badge.js.map +1 -0
  18. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
  19. package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
  20. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  21. package/dist/components/button/Button.d.ts +23 -0
  22. package/dist/components/button/Button.js +159 -0
  23. package/dist/components/button/Button.js.map +1 -0
  24. package/dist/components/calendar/Calendar.d.ts +59 -0
  25. package/dist/components/calendar/Calendar.js +709 -0
  26. package/dist/components/calendar/Calendar.js.map +1 -0
  27. package/dist/components/calendar/date-utils.d.ts +32 -0
  28. package/dist/components/calendar/date-utils.js +112 -0
  29. package/dist/components/calendar/date-utils.js.map +1 -0
  30. package/dist/components/card/Card.d.ts +42 -0
  31. package/dist/components/card/Card.js +82 -0
  32. package/dist/components/card/Card.js.map +1 -0
  33. package/dist/components/choice/Choice.d.ts +32 -0
  34. package/dist/components/choice/Choice.js +371 -0
  35. package/dist/components/choice/Choice.js.map +1 -0
  36. package/dist/components/collapsible/Collapsible.d.ts +15 -0
  37. package/dist/components/collapsible/Collapsible.js +155 -0
  38. package/dist/components/collapsible/Collapsible.js.map +1 -0
  39. package/dist/components/combobox/Combobox.d.ts +68 -0
  40. package/dist/components/combobox/Combobox.js +752 -0
  41. package/dist/components/combobox/Combobox.js.map +1 -0
  42. package/dist/components/command-palette/CommandPalette.d.ts +52 -0
  43. package/dist/components/command-palette/CommandPalette.js +328 -0
  44. package/dist/components/command-palette/CommandPalette.js.map +1 -0
  45. package/dist/components/data-table/DataTable.d.ts +111 -0
  46. package/dist/components/data-table/DataTable.js +444 -0
  47. package/dist/components/data-table/DataTable.js.map +1 -0
  48. package/dist/components/date-picker/DatePicker.d.ts +50 -0
  49. package/dist/components/date-picker/DatePicker.js +485 -0
  50. package/dist/components/date-picker/DatePicker.js.map +1 -0
  51. package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
  52. package/dist/components/date-picker/DateRangePicker.js +339 -0
  53. package/dist/components/date-picker/DateRangePicker.js.map +1 -0
  54. package/dist/components/date-picker/PickerField.d.ts +38 -0
  55. package/dist/components/date-picker/PickerField.js +238 -0
  56. package/dist/components/date-picker/PickerField.js.map +1 -0
  57. package/dist/components/dialog/Dialog.d.ts +70 -0
  58. package/dist/components/dialog/Dialog.js +354 -0
  59. package/dist/components/dialog/Dialog.js.map +1 -0
  60. package/dist/components/drawer/Drawer.d.ts +39 -0
  61. package/dist/components/drawer/Drawer.js +225 -0
  62. package/dist/components/drawer/Drawer.js.map +1 -0
  63. package/dist/components/empty-state/EmptyState.d.ts +12 -0
  64. package/dist/components/empty-state/EmptyState.js +116 -0
  65. package/dist/components/empty-state/EmptyState.js.map +1 -0
  66. package/dist/components/field/Field.d.ts +36 -0
  67. package/dist/components/field/Field.js +337 -0
  68. package/dist/components/field/Field.js.map +1 -0
  69. package/dist/components/file-upload/FileUpload.d.ts +91 -0
  70. package/dist/components/file-upload/FileUpload.js +714 -0
  71. package/dist/components/file-upload/FileUpload.js.map +1 -0
  72. package/dist/components/input/Input.d.ts +49 -0
  73. package/dist/components/input/Input.js +538 -0
  74. package/dist/components/input/Input.js.map +1 -0
  75. package/dist/components/link/Link.d.ts +17 -0
  76. package/dist/components/link/Link.js +91 -0
  77. package/dist/components/link/Link.js.map +1 -0
  78. package/dist/components/menu/Menu.d.ts +79 -0
  79. package/dist/components/menu/Menu.js +615 -0
  80. package/dist/components/menu/Menu.js.map +1 -0
  81. package/dist/components/number-field/NumberField.d.ts +16 -0
  82. package/dist/components/number-field/NumberField.js +188 -0
  83. package/dist/components/number-field/NumberField.js.map +1 -0
  84. package/dist/components/pagination/Pagination.d.ts +34 -0
  85. package/dist/components/pagination/Pagination.js +244 -0
  86. package/dist/components/pagination/Pagination.js.map +1 -0
  87. package/dist/components/popover/Popover.d.ts +22 -0
  88. package/dist/components/popover/Popover.js +186 -0
  89. package/dist/components/popover/Popover.js.map +1 -0
  90. package/dist/components/preview-card/PreviewCard.d.ts +20 -0
  91. package/dist/components/preview-card/PreviewCard.js +114 -0
  92. package/dist/components/preview-card/PreviewCard.js.map +1 -0
  93. package/dist/components/progress/Progress.d.ts +20 -0
  94. package/dist/components/progress/Progress.js +169 -0
  95. package/dist/components/progress/Progress.js.map +1 -0
  96. package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
  97. package/dist/components/scroll-area/ScrollArea.js +112 -0
  98. package/dist/components/scroll-area/ScrollArea.js.map +1 -0
  99. package/dist/components/search-input/SearchInput.d.ts +14 -0
  100. package/dist/components/search-input/SearchInput.js +114 -0
  101. package/dist/components/search-input/SearchInput.js.map +1 -0
  102. package/dist/components/select/Select.d.ts +66 -0
  103. package/dist/components/select/Select.js +601 -0
  104. package/dist/components/select/Select.js.map +1 -0
  105. package/dist/components/separator/Separator.d.ts +4 -0
  106. package/dist/components/separator/Separator.js +46 -0
  107. package/dist/components/separator/Separator.js.map +1 -0
  108. package/dist/components/skeleton/Skeleton.d.ts +16 -0
  109. package/dist/components/skeleton/Skeleton.js +135 -0
  110. package/dist/components/skeleton/Skeleton.js.map +1 -0
  111. package/dist/components/slider/Slider.d.ts +11 -0
  112. package/dist/components/slider/Slider.js +107 -0
  113. package/dist/components/slider/Slider.js.map +1 -0
  114. package/dist/components/spinner/Spinner.d.ts +9 -0
  115. package/dist/components/spinner/Spinner.js +78 -0
  116. package/dist/components/spinner/Spinner.js.map +1 -0
  117. package/dist/components/stack/Stack.d.ts +23 -0
  118. package/dist/components/stack/Stack.js +79 -0
  119. package/dist/components/stack/Stack.js.map +1 -0
  120. package/dist/components/stat-card/StatCard.d.ts +22 -0
  121. package/dist/components/stat-card/StatCard.js +153 -0
  122. package/dist/components/stat-card/StatCard.js.map +1 -0
  123. package/dist/components/stepper/Stepper.d.ts +30 -0
  124. package/dist/components/stepper/Stepper.js +131 -0
  125. package/dist/components/stepper/Stepper.js.map +1 -0
  126. package/dist/components/table/Table.d.ts +53 -0
  127. package/dist/components/table/Table.js +221 -0
  128. package/dist/components/table/Table.js.map +1 -0
  129. package/dist/components/tabs/Tabs.d.ts +19 -0
  130. package/dist/components/tabs/Tabs.js +183 -0
  131. package/dist/components/tabs/Tabs.js.map +1 -0
  132. package/dist/components/tag/Tag.d.ts +22 -0
  133. package/dist/components/tag/Tag.js +121 -0
  134. package/dist/components/tag/Tag.js.map +1 -0
  135. package/dist/components/toast/Toast.d.ts +34 -0
  136. package/dist/components/toast/Toast.js +187 -0
  137. package/dist/components/toast/Toast.js.map +1 -0
  138. package/dist/components/toggle/Toggle.d.ts +31 -0
  139. package/dist/components/toggle/Toggle.js +197 -0
  140. package/dist/components/toggle/Toggle.js.map +1 -0
  141. package/dist/components/toolbar/Toolbar.d.ts +21 -0
  142. package/dist/components/toolbar/Toolbar.js +239 -0
  143. package/dist/components/toolbar/Toolbar.js.map +1 -0
  144. package/dist/components/tooltip/Tooltip.d.ts +33 -0
  145. package/dist/components/tooltip/Tooltip.js +182 -0
  146. package/dist/components/tooltip/Tooltip.js.map +1 -0
  147. package/dist/components/typography/Typography.d.ts +32 -0
  148. package/dist/components/typography/Typography.js +183 -0
  149. package/dist/components/typography/Typography.js.map +1 -0
  150. package/dist/fonts.css +3 -0
  151. package/dist/icons/index.d.ts +125 -0
  152. package/dist/icons/index.js +174 -0
  153. package/dist/icons/index.js.map +1 -0
  154. package/dist/index.d.ts +53 -0
  155. package/dist/index.js +56 -0
  156. package/dist/opti-ui.css +5365 -0
  157. package/dist/theme/ThemeProvider.d.ts +22 -0
  158. package/dist/theme/ThemeProvider.js +115 -0
  159. package/dist/theme/ThemeProvider.js.map +1 -0
  160. package/dist/theme/index.d.ts +2 -0
  161. package/dist/utils/cx.d.ts +10 -0
  162. package/dist/utils/cx.js +18 -0
  163. package/dist/utils/cx.js.map +1 -0
  164. package/dist/utils/index.d.ts +2 -0
  165. package/dist/utils/portal.d.ts +8 -0
  166. package/dist/utils/portal.js +16 -0
  167. package/dist/utils/portal.js.map +1 -0
  168. package/dist/utils/primitive.d.ts +13 -0
  169. package/dist/utils/primitive.js +61 -0
  170. package/dist/utils/primitive.js.map +1 -0
  171. package/dist/utils/search.d.ts +4 -0
  172. package/dist/utils/search.js +15 -0
  173. package/dist/utils/search.js.map +1 -0
  174. package/package.json +71 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.js","names":["React","cx","CircleCheckIcon","FileIcon","UploadIcon","XIcon","IconButton","Progress","FileRejection","file","File","reason","formatFileSize","bytes","locale","units","value","unit","length","digits","Intl","NumberFormat","maximumFractionDigits","format","accepts","accept","tokens","split","map","token","trim","toLowerCase","filter","Boolean","name","type","some","startsWith","endsWith","slice","setInputFiles","input","HTMLInputElement","files","DataTransfer","transfer","items","add","DropzoneProps","Omit","LabelHTMLAttributes","HTMLLabelElement","ref","Ref","onFiles","onReject","rejections","multiple","maxSize","disabled","invalid","size","icon","ReactNode","title","hint","inputProps","ComponentProps","Dropzone","t0","$","_c","children","className","props","t1","undefined","dragging","setDragging","useState","inputRef","useRef","t2","t3","current","useEffect","t4","list","accepted","rejected","Array","from","push","take","hasFiles","_temp","t5","t6","t7","t8","t9","event_0","event","t10","t11","Symbol","for","event_1","preventDefault","event_2","currentTarget","contains","relatedTarget","Node","t12","event_3","dataTransfer","t13","t14","t15","t16","event_4","target","t17","t18","t19","t20","t21","t22","t23","t24","types","includes","FileItemStatus","FileItemProps","HTMLAttributes","HTMLDivElement","status","progress","error","onRemove","removeLabel","actions","FileItem","uploading","Math","round","meta","join","FileUploadLabels","remove","defaultLabels","sameFile","a","b","lastModified","FileUploadProps","Pick","defaultValue","onValueChange","maxFiles","fileState","label","description","required","id","labels","Partial","FileUpload","idProp","text","inner","setInner","generatedId","useId","descriptionId","errorId","describedBy","next","commit","added","fresh","existing","room","max","_temp2","file_1","index","_","position","file_0","_c"],"sources":["../../../src/components/file-upload/FileUpload.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { CircleCheckIcon, FileIcon, UploadIcon, XIcon } from '../../icons';\nimport { IconButton } from '../button/Button';\nimport { Progress } from '../progress/Progress';\n\nexport interface FileRejection {\n file: File;\n /** `type`: not matched by `accept`. `size`: larger than `maxSize`. `count`: over the file limit. */\n reason: 'type' | 'size' | 'count';\n}\n\n/** `1536` → `\"1.5 KB\"`. */\nexport function formatFileSize(bytes: number, locale?: string): string {\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n let value = bytes;\n let unit = 0;\n while (value >= 1024 && unit < units.length - 1) {\n value /= 1024;\n unit += 1;\n }\n const digits = unit > 0 && value < 10 ? 1 : 0;\n return `${new Intl.NumberFormat(locale, { maximumFractionDigits: digits }).format(value)} ${units[unit]}`;\n}\n\n// Dropped files bypass the input's `accept`, so it is checked here too.\nfunction accepts(file: File, accept?: string): boolean {\n const tokens = (accept ?? '')\n .split(',')\n .map((token) => token.trim().toLowerCase())\n .filter(Boolean);\n if (!tokens.length) return true;\n const [name, type] = [file.name.toLowerCase(), file.type.toLowerCase()];\n return tokens.some((token) =>\n token.startsWith('.') ? name.endsWith(token) : token.endsWith('/*') ? type.startsWith(token.slice(0, -1)) : type === token,\n );\n}\n\nfunction setInputFiles(input: HTMLInputElement | null, files: File[] | undefined) {\n if (!input) return;\n if (!files?.length || typeof DataTransfer === 'undefined') {\n input.value = '';\n return;\n }\n const transfer = new DataTransfer();\n for (const file of files) transfer.items.add(file);\n input.files = transfer.files;\n}\n\nexport interface DropzoneProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'title'> {\n ref?: React.Ref<HTMLLabelElement>;\n /** Called with the picked or dropped files that pass `accept` and `maxSize`. */\n onFiles?: (files: File[]) => void;\n /** Called with the files that were turned away, and why. */\n onReject?: (rejections: FileRejection[]) => void;\n /** Allowed types, as for `<input accept>`: `\".pdf,image/*\"`. */\n accept?: string;\n multiple?: boolean;\n /** Largest allowed file, in bytes. */\n maxSize?: number;\n /**\n * The current selection. It is kept in the native input, so the files submit\n * with a form and `required` validates. Without it the input is emptied after each pick.\n */\n files?: File[];\n disabled?: boolean;\n invalid?: boolean;\n /** `sm` is a single compact row. */\n size?: 'sm' | 'md';\n icon?: React.ReactNode;\n title?: React.ReactNode;\n /** Secondary line, e.g. the allowed types and size. */\n hint?: React.ReactNode;\n /** Props for the file input (name, id, required, aria-*…). */\n inputProps?: Omit<React.ComponentProps<'input'>, 'ref' | 'type'>;\n}\n\n/** Drop target that also opens the file browser on click, Enter or Space. */\nexport function Dropzone({\n onFiles,\n onReject,\n accept,\n multiple,\n maxSize,\n files,\n disabled,\n invalid,\n size = 'md',\n icon,\n title,\n hint,\n inputProps,\n className,\n children,\n ref,\n ...props\n}: DropzoneProps) {\n const [dragging, setDragging] = React.useState(false);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n setInputFiles(inputRef.current, files);\n }, [files]);\n\n const take = (list: FileList | null) => {\n const accepted: File[] = [];\n const rejected: FileRejection[] = [];\n for (const file of Array.from(list ?? [])) {\n if (!accepts(file, accept)) rejected.push({ file, reason: 'type' });\n else if (maxSize != null && file.size > maxSize) rejected.push({ file, reason: 'size' });\n else if (!multiple && accepted.length) rejected.push({ file, reason: 'count' });\n else accepted.push(file);\n }\n // Restore the selection (or empty the input, so the same file can be picked again).\n setInputFiles(inputRef.current, files);\n if (accepted.length) onFiles?.(accepted);\n if (rejected.length) onReject?.(rejected);\n };\n\n const hasFiles = (event: React.DragEvent) => event.dataTransfer.types.includes('Files');\n\n return (\n <label\n ref={ref}\n {...props}\n className={cx('oui-dropzone', className)}\n data-size={size}\n data-dragging={dragging ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n data-invalid={invalid ? '' : undefined}\n onDragEnter={(event) => {\n if (!disabled && hasFiles(event)) setDragging(true);\n }}\n onDragOver={(event) => {\n if (hasFiles(event)) event.preventDefault();\n }}\n onDragLeave={(event) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) setDragging(false);\n }}\n onDrop={(event) => {\n if (!hasFiles(event)) return;\n event.preventDefault();\n setDragging(false);\n if (!disabled) take(event.dataTransfer.files);\n }}\n >\n <input\n {...inputProps}\n ref={inputRef}\n type=\"file\"\n className={cx('oui-dropzone__input', inputProps?.className)}\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n aria-invalid={invalid || undefined}\n onChange={(event) => take(event.target.files)}\n />\n <span className=\"oui-dropzone__icon\">{icon ?? <UploadIcon />}</span>\n <span className=\"oui-dropzone__text\">\n <span className=\"oui-dropzone__title\">\n {title ?? (multiple ? 'Drop files here or click to browse' : 'Drop a file here or click to browse')}\n </span>\n {hint != null && <span className=\"oui-dropzone__hint\">{hint}</span>}\n </span>\n {children}\n </label>\n );\n}\n\nexport type FileItemStatus = 'idle' | 'uploading' | 'success' | 'error';\n\nexport interface FileItemProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement>;\n name: string;\n /** Size in bytes. */\n size?: number;\n icon?: React.ReactNode;\n status?: FileItemStatus;\n /** Upload progress from 0 to 100, shown while `uploading`. `null` is indeterminate. */\n progress?: number | null;\n /** Message shown in place of the size when `status` is `error`. */\n error?: React.ReactNode;\n /** Adds the remove button. */\n onRemove?: () => void;\n removeLabel?: string;\n /** Extra controls before the remove button (download, preview…). */\n actions?: React.ReactNode;\n /** BCP 47 locale for the size. */\n locale?: string;\n}\n\n/** One file in a list: name, size, upload progress or error, and a remove button. */\nexport function FileItem({\n name,\n size,\n icon,\n status = 'idle',\n progress = null,\n error,\n onRemove,\n removeLabel,\n actions,\n locale,\n className,\n ref,\n ...props\n}: FileItemProps) {\n const uploading = status === 'uploading';\n const meta = [\n size != null && formatFileSize(size, locale),\n uploading && progress != null && `${Math.round(progress)}%`,\n ].filter(Boolean);\n return (\n <div ref={ref} className={cx('oui-file-item', className)} data-status={status} {...props}>\n <span className=\"oui-file-item__icon\">{icon ?? <FileIcon />}</span>\n <div className=\"oui-file-item__body\">\n <span className=\"oui-file-item__name\" title={name}>\n {name}\n </span>\n {status === 'error' && error ? (\n <span className=\"oui-file-item__meta\" role=\"alert\">\n {error}\n </span>\n ) : (\n meta.length > 0 && <span className=\"oui-file-item__meta\">{meta.join(' · ')}</span>\n )}\n {uploading && <Progress size=\"sm\" value={progress} aria-label={name} />}\n </div>\n {status === 'success' && <CircleCheckIcon className=\"oui-file-item__done\" />}\n {actions}\n {onRemove && (\n <IconButton size=\"sm\" aria-label={removeLabel ?? `Remove ${name}`} onClick={onRemove}>\n <XIcon />\n </IconButton>\n )}\n </div>\n );\n}\n\nexport interface FileUploadLabels {\n remove: (name: string) => string;\n}\n\nconst defaultLabels: FileUploadLabels = { remove: (name) => `Remove ${name}` };\n\nconst sameFile = (a: File, b: File) => a.name === b.name && a.size === b.size && a.lastModified === b.lastModified;\n\nexport interface FileUploadProps\n extends Pick<DropzoneProps, 'accept' | 'multiple' | 'maxSize' | 'onReject' | 'size' | 'icon' | 'title' | 'hint'> {\n ref?: React.Ref<HTMLLabelElement>;\n value?: File[];\n defaultValue?: File[];\n onValueChange?: (files: File[]) => void;\n /** Most files allowed when `multiple`. */\n maxFiles?: number;\n /** Upload state of a file, for showing progress and errors in the list. */\n fileState?: (file: File) => Pick<FileItemProps, 'status' | 'progress' | 'error'> | undefined;\n label?: React.ReactNode;\n description?: React.ReactNode;\n /** Error message. When set, the field is marked invalid. */\n error?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n /** Submits the files with a form under this name. */\n name?: string;\n id?: string;\n className?: string;\n /** BCP 47 locale for file sizes. */\n locale?: string;\n /** Override texts for localisation. */\n labels?: Partial<FileUploadLabels>;\n}\n\n/**\n * File field: a dropzone plus the list of chosen files. It only collects\n * `File` objects; upload them yourself and report progress through `fileState`.\n */\nexport function FileUpload({\n value,\n defaultValue,\n onValueChange,\n accept,\n multiple,\n maxSize,\n maxFiles,\n onReject,\n fileState,\n size,\n icon,\n title,\n hint,\n label,\n description,\n error,\n required,\n disabled,\n name,\n id: idProp,\n className,\n locale,\n labels,\n ref,\n}: FileUploadProps) {\n const text = { ...defaultLabels, ...labels };\n const [inner, setInner] = React.useState(defaultValue ?? []);\n const files = value ?? inner;\n const generatedId = React.useId();\n const id = idProp ?? generatedId;\n const descriptionId = description != null ? `${id}-description` : null;\n const errorId = error ? `${id}-error` : null;\n const describedBy = cx(descriptionId, errorId) || undefined;\n\n const commit = (next: File[]) => {\n setInner(next);\n onValueChange?.(next);\n };\n\n const add = (added: File[]) => {\n if (!multiple) {\n commit(added.slice(0, 1));\n return;\n }\n const fresh = added.filter((file) => !files.some((existing) => sameFile(existing, file)));\n const room = maxFiles == null ? fresh.length : Math.max(0, maxFiles - files.length);\n if (fresh.length > room) onReject?.(fresh.slice(room).map((file) => ({ file, reason: 'count' })));\n if (room > 0 && fresh.length > 0) commit([...files, ...fresh.slice(0, room)]);\n };\n\n return (\n <div\n className={cx('oui-field', 'oui-file-upload', className)}\n data-disabled={disabled || undefined}\n data-invalid={error ? '' : undefined}\n >\n {label != null && (\n <label htmlFor={id} className=\"oui-field__label\">\n {label}\n {required && (\n <span className=\"oui-field__required\" aria-hidden>\n *\n </span>\n )}\n </label>\n )}\n <Dropzone\n ref={ref}\n files={files}\n onFiles={add}\n onReject={onReject}\n accept={accept}\n multiple={multiple}\n maxSize={maxSize}\n disabled={disabled}\n invalid={Boolean(error)}\n size={size}\n icon={icon}\n title={title}\n hint={hint}\n inputProps={{ id, name, required, 'aria-describedby': describedBy }}\n />\n {files.length > 0 && (\n <ul className=\"oui-file-upload__list\">\n {files.map((file, index) => (\n <li key={`${file.name}-${file.size}-${file.lastModified}`}>\n <FileItem\n name={file.name}\n size={file.size}\n locale={locale}\n removeLabel={text.remove(file.name)}\n onRemove={disabled ? undefined : () => commit(files.filter((_, position) => position !== index))}\n {...fileState?.(file)}\n />\n </li>\n ))}\n </ul>\n )}\n {description != null && (\n <p id={`${id}-description`} className=\"oui-field__description\">\n {description}\n </p>\n )}\n {error && (\n <div id={`${id}-error`} className=\"oui-field__error\">\n {error}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+ import { Input as BaseInput } from '@base-ui/react/input';
3
+ import { Field } from '../field/Field';
4
+ export type ControlSize = 'sm' | 'md' | 'lg';
5
+ export interface InputProps extends Omit<BaseInput.Props, 'size'> {
6
+ size?: ControlSize;
7
+ /** Icon or text rendered inside the box, before the value. */
8
+ startAdornment?: React.ReactNode;
9
+ /** Icon, text or button rendered inside the box, after the value. */
10
+ endAdornment?: React.ReactNode;
11
+ }
12
+ export declare function Input({ size, startAdornment, endAdornment, className, ref, ...props }: InputProps): React.JSX.Element;
13
+ export interface PasswordInputProps extends Omit<InputProps, 'type' | 'endAdornment'> {
14
+ /** Whether the value is shown as plain text. */
15
+ visible?: boolean;
16
+ defaultVisible?: boolean;
17
+ onVisibleChange?: (visible: boolean) => void;
18
+ /** Accessible name of the show/hide button. */
19
+ toggleLabel?: string;
20
+ }
21
+ /** Password input with a button that reveals the value. */
22
+ export declare function PasswordInput({ visible, defaultVisible, onVisibleChange, toggleLabel, ...props }: PasswordInputProps): React.JSX.Element;
23
+ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
24
+ ref?: React.Ref<HTMLTextAreaElement>;
25
+ /** Grow with content up to `maxRows` (uses CSS field-sizing where supported). */
26
+ autoResize?: boolean;
27
+ }
28
+ export declare function Textarea({ autoResize, className, rows, ref, ...props }: TextareaProps): React.JSX.Element;
29
+ interface FieldShellProps {
30
+ label?: React.ReactNode;
31
+ description?: React.ReactNode;
32
+ /** Error message. When set, the field is marked invalid. */
33
+ error?: React.ReactNode;
34
+ required?: boolean;
35
+ /** Props for the wrapping Field.Root. */
36
+ fieldProps?: Omit<React.ComponentProps<typeof Field.Root>, 'children'>;
37
+ }
38
+ export interface TextFieldProps extends InputProps, FieldShellProps {
39
+ }
40
+ /** Labelled input with description and error message. */
41
+ export declare function TextField({ label, description, error, required, fieldProps, name, disabled, ref, ...props }: TextFieldProps): React.JSX.Element;
42
+ export interface PasswordFieldProps extends PasswordInputProps, FieldShellProps {
43
+ }
44
+ /** Labelled password input with description and error message. */
45
+ export declare function PasswordField({ label, description, error, required, fieldProps, name, disabled, ref, ...props }: PasswordFieldProps): React.JSX.Element;
46
+ export interface TextareaFieldProps extends TextareaProps, FieldShellProps {
47
+ }
48
+ export declare function TextareaField({ label, description, error, required, fieldProps, name, disabled, ref, ...props }: TextareaFieldProps): React.JSX.Element;
49
+ export {};
@@ -0,0 +1,538 @@
1
+ "use client";
2
+ import { cx, withClass } from "../../utils/cx.js";
3
+ import { EyeIcon, EyeOffIcon } from "../../icons/index.js";
4
+ import { IconButton } from "../button/Button.js";
5
+ import { Field as Field$1 } from "../field/Field.js";
6
+ import { c } from "react/compiler-runtime";
7
+ import * as React from "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { Field } from "@base-ui/react/field";
10
+ import { Input } from "@base-ui/react/input";
11
+ //#region src/components/input/Input.tsx
12
+ function Input$1(t0) {
13
+ const $ = c(25);
14
+ let className;
15
+ let endAdornment;
16
+ let props;
17
+ let ref;
18
+ let startAdornment;
19
+ let t1;
20
+ if ($[0] !== t0) {
21
+ ({size: t1, startAdornment, endAdornment, className, ref, ...props} = t0);
22
+ $[0] = t0;
23
+ $[1] = className;
24
+ $[2] = endAdornment;
25
+ $[3] = props;
26
+ $[4] = ref;
27
+ $[5] = startAdornment;
28
+ $[6] = t1;
29
+ } else {
30
+ className = $[1];
31
+ endAdornment = $[2];
32
+ props = $[3];
33
+ ref = $[4];
34
+ startAdornment = $[5];
35
+ t1 = $[6];
36
+ }
37
+ const size = t1 === void 0 ? "md" : t1;
38
+ const grouped = startAdornment != null || endAdornment != null;
39
+ let t2;
40
+ if ($[7] !== className) {
41
+ t2 = withClass("oui-input", className);
42
+ $[7] = className;
43
+ $[8] = t2;
44
+ } else t2 = $[8];
45
+ const t3 = grouped || void 0;
46
+ let t4;
47
+ if ($[9] !== props || $[10] !== ref || $[11] !== size || $[12] !== t2 || $[13] !== t3) {
48
+ t4 = /* @__PURE__ */ jsx(Input, {
49
+ ref,
50
+ className: t2,
51
+ "data-size": size,
52
+ "data-grouped": t3,
53
+ ...props
54
+ });
55
+ $[9] = props;
56
+ $[10] = ref;
57
+ $[11] = size;
58
+ $[12] = t2;
59
+ $[13] = t3;
60
+ $[14] = t4;
61
+ } else t4 = $[14];
62
+ const input = t4;
63
+ if (!grouped) return input;
64
+ const t5 = props.disabled || void 0;
65
+ let t6;
66
+ if ($[15] !== startAdornment) {
67
+ t6 = startAdornment != null && /* @__PURE__ */ jsx("span", {
68
+ className: "oui-input-group__adornment",
69
+ children: startAdornment
70
+ });
71
+ $[15] = startAdornment;
72
+ $[16] = t6;
73
+ } else t6 = $[16];
74
+ let t7;
75
+ if ($[17] !== endAdornment) {
76
+ t7 = endAdornment != null && /* @__PURE__ */ jsx("span", {
77
+ className: "oui-input-group__adornment",
78
+ children: endAdornment
79
+ });
80
+ $[17] = endAdornment;
81
+ $[18] = t7;
82
+ } else t7 = $[18];
83
+ let t8;
84
+ if ($[19] !== input || $[20] !== size || $[21] !== t5 || $[22] !== t6 || $[23] !== t7) {
85
+ t8 = /* @__PURE__ */ jsxs("span", {
86
+ className: "oui-input-group",
87
+ "data-size": size,
88
+ "data-disabled": t5,
89
+ children: [
90
+ t6,
91
+ input,
92
+ t7
93
+ ]
94
+ });
95
+ $[19] = input;
96
+ $[20] = size;
97
+ $[21] = t5;
98
+ $[22] = t6;
99
+ $[23] = t7;
100
+ $[24] = t8;
101
+ } else t8 = $[24];
102
+ return t8;
103
+ }
104
+ /** Password input with a button that reveals the value. */
105
+ function PasswordInput(t0) {
106
+ const $ = c(21);
107
+ let onVisibleChange;
108
+ let props;
109
+ let t1;
110
+ let t2;
111
+ let visible;
112
+ if ($[0] !== t0) {
113
+ ({visible, defaultVisible: t1, onVisibleChange, toggleLabel: t2, ...props} = t0);
114
+ $[0] = t0;
115
+ $[1] = onVisibleChange;
116
+ $[2] = props;
117
+ $[3] = t1;
118
+ $[4] = t2;
119
+ $[5] = visible;
120
+ } else {
121
+ onVisibleChange = $[1];
122
+ props = $[2];
123
+ t1 = $[3];
124
+ t2 = $[4];
125
+ visible = $[5];
126
+ }
127
+ const defaultVisible = t1 === void 0 ? false : t1;
128
+ const toggleLabel = t2 === void 0 ? "Show password" : t2;
129
+ const [inner, setInner] = React.useState(defaultVisible);
130
+ const shown = visible ?? inner;
131
+ const t3 = shown ? "text" : "password";
132
+ let t4;
133
+ if ($[6] !== onVisibleChange || $[7] !== shown) {
134
+ t4 = () => {
135
+ setInner(!shown);
136
+ onVisibleChange?.(!shown);
137
+ };
138
+ $[6] = onVisibleChange;
139
+ $[7] = shown;
140
+ $[8] = t4;
141
+ } else t4 = $[8];
142
+ let t5;
143
+ if ($[9] !== shown) {
144
+ t5 = shown ? /* @__PURE__ */ jsx(EyeOffIcon, {}) : /* @__PURE__ */ jsx(EyeIcon, {});
145
+ $[9] = shown;
146
+ $[10] = t5;
147
+ } else t5 = $[10];
148
+ let t6;
149
+ if ($[11] !== props.disabled || $[12] !== shown || $[13] !== t4 || $[14] !== t5 || $[15] !== toggleLabel) {
150
+ t6 = /* @__PURE__ */ jsx(IconButton, {
151
+ size: "sm",
152
+ "aria-label": toggleLabel,
153
+ "aria-pressed": shown,
154
+ disabled: props.disabled,
155
+ onClick: t4,
156
+ children: t5
157
+ });
158
+ $[11] = props.disabled;
159
+ $[12] = shown;
160
+ $[13] = t4;
161
+ $[14] = t5;
162
+ $[15] = toggleLabel;
163
+ $[16] = t6;
164
+ } else t6 = $[16];
165
+ let t7;
166
+ if ($[17] !== props || $[18] !== t3 || $[19] !== t6) {
167
+ t7 = /* @__PURE__ */ jsx(Input$1, {
168
+ autoCapitalize: "off",
169
+ spellCheck: false,
170
+ ...props,
171
+ type: t3,
172
+ endAdornment: t6
173
+ });
174
+ $[17] = props;
175
+ $[18] = t3;
176
+ $[19] = t6;
177
+ $[20] = t7;
178
+ } else t7 = $[20];
179
+ return t7;
180
+ }
181
+ function Textarea(t0) {
182
+ const $ = c(16);
183
+ let autoResize;
184
+ let className;
185
+ let props;
186
+ let ref;
187
+ let t1;
188
+ if ($[0] !== t0) {
189
+ ({autoResize, className, rows: t1, ref, ...props} = t0);
190
+ $[0] = t0;
191
+ $[1] = autoResize;
192
+ $[2] = className;
193
+ $[3] = props;
194
+ $[4] = ref;
195
+ $[5] = t1;
196
+ } else {
197
+ autoResize = $[1];
198
+ className = $[2];
199
+ props = $[3];
200
+ ref = $[4];
201
+ t1 = $[5];
202
+ }
203
+ const rows = t1 === void 0 ? 3 : t1;
204
+ const t2 = ref;
205
+ let t3;
206
+ if ($[6] !== rows) {
207
+ t3 = /* @__PURE__ */ jsx("textarea", { rows });
208
+ $[6] = rows;
209
+ $[7] = t3;
210
+ } else t3 = $[7];
211
+ let t4;
212
+ if ($[8] !== className) {
213
+ t4 = cx("oui-input", "oui-textarea", className);
214
+ $[8] = className;
215
+ $[9] = t4;
216
+ } else t4 = $[9];
217
+ const t5 = autoResize || void 0;
218
+ const t6 = props;
219
+ let t7;
220
+ if ($[10] !== t2 || $[11] !== t3 || $[12] !== t4 || $[13] !== t5 || $[14] !== t6) {
221
+ t7 = /* @__PURE__ */ jsx(Field.Control, {
222
+ ref: t2,
223
+ render: t3,
224
+ className: t4,
225
+ "data-auto-resize": t5,
226
+ ...t6
227
+ });
228
+ $[10] = t2;
229
+ $[11] = t3;
230
+ $[12] = t4;
231
+ $[13] = t5;
232
+ $[14] = t6;
233
+ $[15] = t7;
234
+ } else t7 = $[15];
235
+ return t7;
236
+ }
237
+ /** Labelled input with description and error message. */
238
+ function TextField(t0) {
239
+ const $ = c(30);
240
+ let description;
241
+ let disabled;
242
+ let error;
243
+ let fieldProps;
244
+ let label;
245
+ let name;
246
+ let props;
247
+ let ref;
248
+ let required;
249
+ if ($[0] !== t0) {
250
+ ({label, description, error, required, fieldProps, name, disabled, ref, ...props} = t0);
251
+ $[0] = t0;
252
+ $[1] = description;
253
+ $[2] = disabled;
254
+ $[3] = error;
255
+ $[4] = fieldProps;
256
+ $[5] = label;
257
+ $[6] = name;
258
+ $[7] = props;
259
+ $[8] = ref;
260
+ $[9] = required;
261
+ } else {
262
+ description = $[1];
263
+ disabled = $[2];
264
+ error = $[3];
265
+ fieldProps = $[4];
266
+ label = $[5];
267
+ name = $[6];
268
+ props = $[7];
269
+ ref = $[8];
270
+ required = $[9];
271
+ }
272
+ const t1 = error ? true : void 0;
273
+ let t2;
274
+ if ($[10] !== label || $[11] !== required) {
275
+ t2 = label && /* @__PURE__ */ jsx(Field$1.Label, {
276
+ required,
277
+ children: label
278
+ });
279
+ $[10] = label;
280
+ $[11] = required;
281
+ $[12] = t2;
282
+ } else t2 = $[12];
283
+ let t3;
284
+ if ($[13] !== props || $[14] !== ref || $[15] !== required) {
285
+ t3 = /* @__PURE__ */ jsx(Input$1, {
286
+ ref,
287
+ required,
288
+ ...props
289
+ });
290
+ $[13] = props;
291
+ $[14] = ref;
292
+ $[15] = required;
293
+ $[16] = t3;
294
+ } else t3 = $[16];
295
+ let t4;
296
+ if ($[17] !== description) {
297
+ t4 = description && /* @__PURE__ */ jsx(Field$1.Description, { children: description });
298
+ $[17] = description;
299
+ $[18] = t4;
300
+ } else t4 = $[18];
301
+ let t5;
302
+ if ($[19] !== error) {
303
+ t5 = error ? /* @__PURE__ */ jsx(Field$1.Error, {
304
+ match: true,
305
+ children: error
306
+ }) : /* @__PURE__ */ jsx(Field$1.Error, {});
307
+ $[19] = error;
308
+ $[20] = t5;
309
+ } else t5 = $[20];
310
+ let t6;
311
+ if ($[21] !== disabled || $[22] !== fieldProps || $[23] !== name || $[24] !== t1 || $[25] !== t2 || $[26] !== t3 || $[27] !== t4 || $[28] !== t5) {
312
+ t6 = /* @__PURE__ */ jsxs(Field$1.Root, {
313
+ name,
314
+ disabled,
315
+ invalid: t1,
316
+ ...fieldProps,
317
+ children: [
318
+ t2,
319
+ t3,
320
+ t4,
321
+ t5
322
+ ]
323
+ });
324
+ $[21] = disabled;
325
+ $[22] = fieldProps;
326
+ $[23] = name;
327
+ $[24] = t1;
328
+ $[25] = t2;
329
+ $[26] = t3;
330
+ $[27] = t4;
331
+ $[28] = t5;
332
+ $[29] = t6;
333
+ } else t6 = $[29];
334
+ return t6;
335
+ }
336
+ /** Labelled password input with description and error message. */
337
+ function PasswordField(t0) {
338
+ const $ = c(31);
339
+ let description;
340
+ let disabled;
341
+ let error;
342
+ let fieldProps;
343
+ let label;
344
+ let name;
345
+ let props;
346
+ let ref;
347
+ let required;
348
+ if ($[0] !== t0) {
349
+ ({label, description, error, required, fieldProps, name, disabled, ref, ...props} = t0);
350
+ $[0] = t0;
351
+ $[1] = description;
352
+ $[2] = disabled;
353
+ $[3] = error;
354
+ $[4] = fieldProps;
355
+ $[5] = label;
356
+ $[6] = name;
357
+ $[7] = props;
358
+ $[8] = ref;
359
+ $[9] = required;
360
+ } else {
361
+ description = $[1];
362
+ disabled = $[2];
363
+ error = $[3];
364
+ fieldProps = $[4];
365
+ label = $[5];
366
+ name = $[6];
367
+ props = $[7];
368
+ ref = $[8];
369
+ required = $[9];
370
+ }
371
+ const t1 = error ? true : void 0;
372
+ let t2;
373
+ if ($[10] !== label || $[11] !== required) {
374
+ t2 = label && /* @__PURE__ */ jsx(Field$1.Label, {
375
+ required,
376
+ children: label
377
+ });
378
+ $[10] = label;
379
+ $[11] = required;
380
+ $[12] = t2;
381
+ } else t2 = $[12];
382
+ let t3;
383
+ if ($[13] !== disabled || $[14] !== props || $[15] !== ref || $[16] !== required) {
384
+ t3 = /* @__PURE__ */ jsx(PasswordInput, {
385
+ ref,
386
+ required,
387
+ disabled,
388
+ ...props
389
+ });
390
+ $[13] = disabled;
391
+ $[14] = props;
392
+ $[15] = ref;
393
+ $[16] = required;
394
+ $[17] = t3;
395
+ } else t3 = $[17];
396
+ let t4;
397
+ if ($[18] !== description) {
398
+ t4 = description && /* @__PURE__ */ jsx(Field$1.Description, { children: description });
399
+ $[18] = description;
400
+ $[19] = t4;
401
+ } else t4 = $[19];
402
+ let t5;
403
+ if ($[20] !== error) {
404
+ t5 = error ? /* @__PURE__ */ jsx(Field$1.Error, {
405
+ match: true,
406
+ children: error
407
+ }) : /* @__PURE__ */ jsx(Field$1.Error, {});
408
+ $[20] = error;
409
+ $[21] = t5;
410
+ } else t5 = $[21];
411
+ let t6;
412
+ if ($[22] !== disabled || $[23] !== fieldProps || $[24] !== name || $[25] !== t1 || $[26] !== t2 || $[27] !== t3 || $[28] !== t4 || $[29] !== t5) {
413
+ t6 = /* @__PURE__ */ jsxs(Field$1.Root, {
414
+ name,
415
+ disabled,
416
+ invalid: t1,
417
+ ...fieldProps,
418
+ children: [
419
+ t2,
420
+ t3,
421
+ t4,
422
+ t5
423
+ ]
424
+ });
425
+ $[22] = disabled;
426
+ $[23] = fieldProps;
427
+ $[24] = name;
428
+ $[25] = t1;
429
+ $[26] = t2;
430
+ $[27] = t3;
431
+ $[28] = t4;
432
+ $[29] = t5;
433
+ $[30] = t6;
434
+ } else t6 = $[30];
435
+ return t6;
436
+ }
437
+ function TextareaField(t0) {
438
+ const $ = c(30);
439
+ let description;
440
+ let disabled;
441
+ let error;
442
+ let fieldProps;
443
+ let label;
444
+ let name;
445
+ let props;
446
+ let ref;
447
+ let required;
448
+ if ($[0] !== t0) {
449
+ ({label, description, error, required, fieldProps, name, disabled, ref, ...props} = t0);
450
+ $[0] = t0;
451
+ $[1] = description;
452
+ $[2] = disabled;
453
+ $[3] = error;
454
+ $[4] = fieldProps;
455
+ $[5] = label;
456
+ $[6] = name;
457
+ $[7] = props;
458
+ $[8] = ref;
459
+ $[9] = required;
460
+ } else {
461
+ description = $[1];
462
+ disabled = $[2];
463
+ error = $[3];
464
+ fieldProps = $[4];
465
+ label = $[5];
466
+ name = $[6];
467
+ props = $[7];
468
+ ref = $[8];
469
+ required = $[9];
470
+ }
471
+ const t1 = error ? true : void 0;
472
+ let t2;
473
+ if ($[10] !== label || $[11] !== required) {
474
+ t2 = label && /* @__PURE__ */ jsx(Field$1.Label, {
475
+ required,
476
+ children: label
477
+ });
478
+ $[10] = label;
479
+ $[11] = required;
480
+ $[12] = t2;
481
+ } else t2 = $[12];
482
+ let t3;
483
+ if ($[13] !== props || $[14] !== ref || $[15] !== required) {
484
+ t3 = /* @__PURE__ */ jsx(Textarea, {
485
+ ref,
486
+ required,
487
+ ...props
488
+ });
489
+ $[13] = props;
490
+ $[14] = ref;
491
+ $[15] = required;
492
+ $[16] = t3;
493
+ } else t3 = $[16];
494
+ let t4;
495
+ if ($[17] !== description) {
496
+ t4 = description && /* @__PURE__ */ jsx(Field$1.Description, { children: description });
497
+ $[17] = description;
498
+ $[18] = t4;
499
+ } else t4 = $[18];
500
+ let t5;
501
+ if ($[19] !== error) {
502
+ t5 = error ? /* @__PURE__ */ jsx(Field$1.Error, {
503
+ match: true,
504
+ children: error
505
+ }) : /* @__PURE__ */ jsx(Field$1.Error, {});
506
+ $[19] = error;
507
+ $[20] = t5;
508
+ } else t5 = $[20];
509
+ let t6;
510
+ if ($[21] !== disabled || $[22] !== fieldProps || $[23] !== name || $[24] !== t1 || $[25] !== t2 || $[26] !== t3 || $[27] !== t4 || $[28] !== t5) {
511
+ t6 = /* @__PURE__ */ jsxs(Field$1.Root, {
512
+ name,
513
+ disabled,
514
+ invalid: t1,
515
+ ...fieldProps,
516
+ children: [
517
+ t2,
518
+ t3,
519
+ t4,
520
+ t5
521
+ ]
522
+ });
523
+ $[21] = disabled;
524
+ $[22] = fieldProps;
525
+ $[23] = name;
526
+ $[24] = t1;
527
+ $[25] = t2;
528
+ $[26] = t3;
529
+ $[27] = t4;
530
+ $[28] = t5;
531
+ $[29] = t6;
532
+ } else t6 = $[29];
533
+ return t6;
534
+ }
535
+ //#endregion
536
+ export { Input$1 as Input, PasswordField, PasswordInput, TextField, Textarea, TextareaField };
537
+
538
+ //# sourceMappingURL=Input.js.map