@altruist03/ui 0.0.0-stage → 0.1.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.
- package/dist/index.css +514 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +289 -0
- package/dist/index.js +731 -0
- package/dist/index.js.map +1 -0
- package/package.json +37 -4
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/cx.ts","../src/utils/resolve.ts","../src/components/Badge.tsx","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Checkbox.tsx","../src/components/Field.tsx","../src/components/FileInput.tsx","../src/components/FloatingInput.tsx","../src/components/Input.tsx","../src/components/Select.tsx","../src/components/Table.tsx","../src/components/Textarea.tsx","../src/components/Accordion.tsx","../src/theme/css-variables.ts","../src/theme/default-theme.ts","../src/theme/presets.ts","../src/theme/ThemeProvider.tsx"],"names":["Button","jsx","jsxs","forwardRef","Checkbox","FileInput","useId","FloatingInput","useState","Input","Select","Textarea"],"mappings":"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","file":"index.js","sourcesContent":["export function cx(...parts: Array<string | false | null | undefined>): string {\n return parts.filter(Boolean).join(' ')\n}\n","import type { CSSProperties } from 'react'\nimport type { ColorProp, FontSizeProp } from '../theme/types'\n\nconst COLOR_VARS: Record<string, string> = {\n primary: 'var(--al-color-primary)',\n secondary: 'var(--al-color-secondary)',\n danger: 'var(--al-color-danger)',\n success: 'var(--al-color-success)',\n warning: 'var(--al-color-warning)',\n text: 'var(--al-color-text)',\n textMuted: 'var(--al-color-text-muted)',\n border: 'var(--al-color-border)',\n surface: 'var(--al-color-surface)',\n surfaceMuted: 'var(--al-color-surface-muted)',\n}\n\nconst FONT_SIZE_VARS: Record<string, string> = {\n xs: 'var(--al-font-size-xs)',\n sm: 'var(--al-font-size-sm)',\n md: 'var(--al-font-size-md)',\n lg: 'var(--al-font-size-lg)',\n}\n\nexport function resolveColor(value?: ColorProp): string | undefined {\n if (!value) return undefined\n return COLOR_VARS[value] ?? value\n}\n\nexport function resolveFontSize(value?: FontSizeProp): string | undefined {\n if (value == null || value === '') return undefined\n if (typeof value === 'number') return `${value}px`\n return FONT_SIZE_VARS[value] ?? value\n}\n\nexport function solidForeground(color?: ColorProp): string {\n if (!color || color === 'primary') return 'var(--al-color-on-primary)'\n if (color === 'secondary') return 'var(--al-color-on-secondary)'\n return '#ffffff'\n}\n\nexport function controlVars(color?: ColorProp): CSSProperties {\n const accent = resolveColor(color)\n if (!accent) return {}\n return {\n '--al-control-accent': accent,\n '--al-control-border': accent,\n } as CSSProperties\n}\n","import type { CSSProperties, HTMLAttributes, ReactNode } from 'react'\nimport type { ColorProp, FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { resolveColor, resolveFontSize } from '../utils/resolve'\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> & {\n color?: ColorProp\n variant?: 'soft' | 'solid'\n fontSize?: FontSizeProp\n fontFamily?: string\n children: ReactNode\n}\n\nexport function Badge({\n color = 'primary',\n variant = 'soft',\n fontSize,\n fontFamily,\n className,\n style,\n children,\n ...rest\n}: BadgeProps) {\n return (\n <span\n className={cx('al-badge', className)}\n data-variant={variant}\n style={\n {\n '--al-badge-color': resolveColor(color),\n fontSize: resolveFontSize(fontSize),\n fontFamily,\n ...style,\n } as CSSProperties\n }\n {...rest}\n >\n {children}\n </span>\n )\n}\n","import { forwardRef, type ButtonHTMLAttributes, type CSSProperties, type ReactNode } from 'react'\nimport type { ColorProp, ControlSize, FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { resolveColor, resolveFontSize, solidForeground } from '../utils/resolve'\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: 'solid' | 'outline' | 'ghost'\n color?: ColorProp\n textColor?: ColorProp\n size?: ControlSize\n fontSize?: FontSizeProp\n fontFamily?: string\n fullWidth?: boolean\n loading?: boolean\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = 'solid',\n color = 'primary',\n textColor,\n size = 'md',\n fontSize,\n fontFamily,\n fullWidth = false,\n loading = false,\n leftIcon,\n rightIcon,\n className,\n style,\n disabled,\n children,\n type = 'button',\n ...rest\n },\n ref,\n) {\n const accent = resolveColor(color)\n const vars = {\n '--al-btn-bg': accent,\n ...(variant === 'solid'\n ? { '--al-btn-fg': textColor ? resolveColor(textColor) : solidForeground(color) }\n : null),\n ...(fontSize != null ? { fontSize: resolveFontSize(fontSize) } : null),\n ...(fontFamily ? { fontFamily } : null),\n ...style,\n } as CSSProperties\n\n return (\n <button\n ref={ref}\n type={type}\n className={cx('al-btn', className)}\n data-variant={variant}\n data-size={size}\n data-full-width={fullWidth ? 'true' : undefined}\n style={vars}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n {...rest}\n >\n {loading ? <span className=\"al-spinner\" aria-hidden=\"true\" /> : leftIcon}\n {children}\n {rightIcon}\n </button>\n )\n})\n","import type { CSSProperties, HTMLAttributes, ReactNode } from 'react'\nimport type { FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { resolveFontSize } from '../utils/resolve'\n\nexport type CardProps = HTMLAttributes<HTMLElement> & {\n title?: ReactNode\n description?: ReactNode\n footer?: ReactNode\n padding?: 'sm' | 'md' | 'lg'\n fontSize?: FontSizeProp\n fontFamily?: string\n}\n\nexport function Card({\n title,\n description,\n footer,\n padding = 'md',\n fontSize,\n fontFamily,\n className,\n style,\n children,\n ...rest\n}: CardProps) {\n const cardStyle = {\n ...(fontSize != null ? { fontSize: resolveFontSize(fontSize) } : null),\n ...(fontFamily ? { fontFamily } : null),\n ...style,\n } as CSSProperties\n\n return (\n <section className={cx('al-card', className)} data-padding={padding} style={cardStyle} {...rest}>\n {title || description ? (\n <header className=\"al-card-header\">\n {title ? <h2 className=\"al-card-title\">{title}</h2> : null}\n {description ? <p className=\"al-card-description\">{description}</p> : null}\n </header>\n ) : null}\n {children}\n {footer ? <footer className=\"al-card-footer\">{footer}</footer> : null}\n </section>\n )\n}\n","import { forwardRef, useId, type InputHTMLAttributes, type ReactNode } from 'react'\nimport type { ColorProp, FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { resolveColor, resolveFontSize } from '../utils/resolve'\n\nexport type CheckboxProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> & {\n label?: ReactNode\n description?: ReactNode\n error?: ReactNode\n fontSize?: FontSizeProp\n fontFamily?: string\n color?: ColorProp\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(\n { label, description, error, fontSize, fontFamily, color, className, style, id, ...rest },\n ref,\n) {\n const autoId = useId()\n const checkboxId = id ?? autoId\n const errorId = `${checkboxId}-error`\n const descriptionId = `${checkboxId}-description`\n const accent = resolveColor(color)\n const describedBy = [description ? descriptionId : null, error ? errorId : null].filter(Boolean).join(' ')\n\n return (\n <div className=\"al-checkbox-field\" style={fontFamily ? { fontFamily } : undefined}>\n <label className=\"al-checkbox\" htmlFor={checkboxId}>\n <input\n ref={ref}\n id={checkboxId}\n type=\"checkbox\"\n className={cx('al-checkbox-input', className)}\n aria-invalid={error ? true : undefined}\n aria-describedby={describedBy || undefined}\n style={{\n accentColor: accent,\n ...style,\n }}\n {...rest}\n />\n {label || description ? (\n <span className=\"al-checkbox-copy\" style={{ fontSize: resolveFontSize(fontSize) }}>\n {label ? <span className=\"al-checkbox-label\">{label}</span> : null}\n {description ? (\n <span id={descriptionId} className=\"al-checkbox-description\">\n {description}\n </span>\n ) : null}\n </span>\n ) : null}\n </label>\n {error ? (\n <p id={errorId} className=\"al-field-error\">\n {error}\n </p>\n ) : null}\n </div>\n )\n})\n","import type { ReactNode } from 'react'\nimport { cx } from '../utils/cx'\n\nexport type FieldProps = {\n id: string\n label?: ReactNode\n required?: boolean\n helperText?: ReactNode\n error?: ReactNode\n messageId?: string\n fontFamily?: string\n children: ReactNode\n className?: string\n}\n\nexport function Field({\n id,\n label,\n required,\n helperText,\n error,\n messageId,\n fontFamily,\n children,\n className,\n}: FieldProps) {\n const describedBy = messageId ?? `${id}-message`\n return (\n <div className={cx('al-field', className)} style={fontFamily ? { fontFamily } : undefined}>\n {label ? (\n <label className=\"al-field-label\" htmlFor={id}>\n {label}\n {required ? <span className=\"al-field-required\">*</span> : null}\n </label>\n ) : null}\n {children}\n {error ? (\n <p id={describedBy} className=\"al-field-error\">\n {error}\n </p>\n ) : helperText ? (\n <p id={describedBy} className=\"al-field-helper\">\n {helperText}\n </p>\n ) : null}\n </div>\n )\n}\n","import { forwardRef, useId, useState, type DragEvent, type InputHTMLAttributes, type ReactNode } from 'react'\nimport type { ColorProp, FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { controlVars, resolveFontSize } from '../utils/resolve'\nimport { Field } from './Field'\n\nexport type FileInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> & {\n label?: ReactNode\n helperText?: ReactNode\n error?: ReactNode\n emptyText?: ReactNode\n buttonLabel?: string\n fontSize?: FontSizeProp\n fontFamily?: string\n color?: ColorProp\n}\n\nexport const FileInput = forwardRef<HTMLInputElement, FileInputProps>(function FileInput(\n {\n label,\n helperText,\n error,\n emptyText = 'Drop a file here, or browse',\n buttonLabel = 'Browse',\n fontSize,\n fontFamily,\n color,\n className,\n style,\n id,\n required,\n multiple,\n onChange,\n ...rest\n },\n ref,\n) {\n const autoId = useId()\n const inputId = id ?? autoId\n const messageId = `${inputId}-message`\n const [names, setNames] = useState<string[]>([])\n const [dragging, setDragging] = useState(false)\n\n function remember(files: FileList | null) {\n setNames(Array.from(files ?? []).map((file) => file.name))\n }\n\n function keepDropAlive(event: DragEvent<HTMLLabelElement>) {\n event.preventDefault()\n setDragging(true)\n }\n\n return (\n <Field\n id={inputId}\n label={label}\n required={required}\n helperText={helperText}\n error={error}\n messageId={messageId}\n fontFamily={fontFamily}\n className={className}\n >\n <label\n className={cx('al-file', dragging && 'is-dragging')}\n htmlFor={inputId}\n data-invalid={error ? 'true' : undefined}\n style={{\n ...controlVars(color),\n fontSize: resolveFontSize(fontSize),\n ...style,\n }}\n onDragEnter={keepDropAlive}\n onDragOver={keepDropAlive}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n >\n <input\n ref={ref}\n id={inputId}\n className=\"al-file-input\"\n type=\"file\"\n multiple={multiple}\n required={required}\n aria-invalid={error ? true : undefined}\n aria-describedby={error || helperText ? messageId : undefined}\n onChange={(event) => {\n remember(event.target.files)\n setDragging(false)\n onChange?.(event)\n }}\n {...rest}\n />\n <span className=\"al-file-copy\">\n <span className=\"al-file-title\">{names.length > 0 ? `${names.length} file${names.length === 1 ? '' : 's'} selected` : emptyText}</span>\n {names.length > 0 ? <span className=\"al-file-names\">{names.join(', ')}</span> : <span className=\"al-file-names\">PNG, JPG, or PDF</span>}\n </span>\n <span className=\"al-file-button\">{buttonLabel}</span>\n </label>\n </Field>\n )\n})\n","import { forwardRef, useId, useState, type InputHTMLAttributes, type ReactNode } from 'react'\nimport type { ColorProp, ControlSize, FontSizeProp } from '../theme/types'\nimport { controlVars, resolveFontSize } from '../utils/resolve'\nimport { Field } from './Field'\n\nexport type FloatingInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'placeholder'> & {\n label: ReactNode\n placeholder?: string\n helperText?: ReactNode\n error?: ReactNode\n size?: ControlSize\n fontSize?: FontSizeProp\n fontFamily?: string\n color?: ColorProp\n}\n\nexport const FloatingInput = forwardRef<HTMLInputElement, FloatingInputProps>(function FloatingInput(\n {\n label,\n placeholder,\n helperText,\n error,\n size = 'md',\n fontSize,\n fontFamily,\n color,\n className,\n style,\n id,\n required,\n value,\n defaultValue,\n onChange,\n ...rest\n },\n ref,\n) {\n const autoId = useId()\n const inputId = id ?? autoId\n const messageId = `${inputId}-message`\n const [localFilled, setLocalFilled] = useState(() => String(value ?? defaultValue ?? '').length > 0)\n const filled = value != null ? String(value).length > 0 : localFilled\n\n return (\n <Field\n id={inputId}\n required={required}\n helperText={helperText}\n error={error}\n messageId={messageId}\n fontFamily={fontFamily}\n className={className}\n >\n <div\n className=\"al-float\"\n data-size={size}\n data-filled={filled ? 'true' : 'false'}\n data-invalid={error ? 'true' : undefined}\n style={controlVars(color)}\n >\n <input\n ref={ref}\n id={inputId}\n className=\"al-control al-float-input\"\n placeholder={placeholder ?? ' '}\n required={required}\n {...(value != null ? { value } : { defaultValue })}\n aria-invalid={error ? true : undefined}\n aria-describedby={error || helperText ? messageId : undefined}\n style={{\n fontSize: resolveFontSize(fontSize),\n ...style,\n }}\n onChange={(event) => {\n if (value == null) setLocalFilled(event.target.value.length > 0)\n onChange?.(event)\n }}\n {...rest}\n />\n <label className=\"al-float-label\" htmlFor={inputId}>\n {label}\n {required ? <span className=\"al-field-required\">*</span> : null}\n </label>\n </div>\n </Field>\n )\n})\n","import { forwardRef, useId, type InputHTMLAttributes, type ReactNode } from 'react'\nimport type { ColorProp, ControlSize, FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { controlVars, resolveFontSize } from '../utils/resolve'\nimport { Field } from './Field'\n\nexport type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> & {\n label?: ReactNode\n helperText?: ReactNode\n error?: ReactNode\n size?: ControlSize\n fontSize?: FontSizeProp\n fontFamily?: string\n color?: ColorProp\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n label,\n helperText,\n error,\n size = 'md',\n fontSize,\n fontFamily,\n color,\n leftIcon,\n rightIcon,\n className,\n style,\n id,\n required,\n ...rest\n },\n ref,\n) {\n const autoId = useId()\n const inputId = id ?? autoId\n const messageId = `${inputId}-message`\n\n return (\n <Field\n id={inputId}\n label={label}\n required={required}\n helperText={helperText}\n error={error}\n messageId={messageId}\n fontFamily={fontFamily}\n >\n <div className={cx('al-control-wrap', leftIcon ? 'has-left' : undefined, rightIcon ? 'has-right' : undefined)}>\n {leftIcon ? <span className=\"al-control-icon left\">{leftIcon}</span> : null}\n <input\n ref={ref}\n id={inputId}\n className={cx('al-control', className)}\n data-size={size}\n required={required}\n aria-invalid={error ? true : undefined}\n aria-describedby={error || helperText ? messageId : undefined}\n style={{\n ...controlVars(color),\n fontSize: resolveFontSize(fontSize),\n ...style,\n }}\n {...rest}\n />\n {rightIcon ? <span className=\"al-control-icon right\">{rightIcon}</span> : null}\n </div>\n </Field>\n )\n})\n","import { forwardRef, useId, type ReactNode, type SelectHTMLAttributes } from 'react'\nimport type { ColorProp, ControlSize, FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { controlVars, resolveFontSize } from '../utils/resolve'\nimport { Field } from './Field'\n\nexport type SelectOption = {\n label: string\n value: string\n disabled?: boolean\n}\n\nexport type SelectProps = Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> & {\n label?: ReactNode\n helperText?: ReactNode\n error?: ReactNode\n placeholder?: string\n options: SelectOption[]\n size?: ControlSize\n fontSize?: FontSizeProp\n fontFamily?: string\n color?: ColorProp\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(function Select(\n {\n label,\n helperText,\n error,\n placeholder,\n options,\n size = 'md',\n fontSize,\n fontFamily,\n color,\n className,\n style,\n id,\n required,\n ...rest\n },\n ref,\n) {\n const autoId = useId()\n const selectId = id ?? autoId\n const messageId = `${selectId}-message`\n\n return (\n <Field\n id={selectId}\n label={label}\n required={required}\n helperText={helperText}\n error={error}\n messageId={messageId}\n fontFamily={fontFamily}\n >\n <select\n ref={ref}\n id={selectId}\n className={cx('al-control', 'al-select', className)}\n data-size={size}\n required={required}\n aria-invalid={error ? true : undefined}\n aria-describedby={error || helperText ? messageId : undefined}\n style={{\n ...controlVars(color),\n fontSize: resolveFontSize(fontSize),\n ...style,\n }}\n {...rest}\n >\n {placeholder ? (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n ) : null}\n {options.map((option) => (\n <option key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n ))}\n </select>\n </Field>\n )\n})\n","import type { CSSProperties, ReactNode } from 'react'\nimport type { ControlSize, FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { resolveFontSize } from '../utils/resolve'\n\nexport type TableColumn<Row> = {\n key: string\n header: ReactNode\n align?: 'left' | 'center' | 'right'\n width?: string | number\n render?: (row: Row) => ReactNode\n}\n\nexport type TableProps<Row> = {\n columns: Array<TableColumn<Row>>\n rows: Row[]\n getRowKey: (row: Row, index: number) => string\n caption?: ReactNode\n emptyLabel?: ReactNode\n size?: ControlSize\n striped?: boolean\n fontSize?: FontSizeProp\n fontFamily?: string\n className?: string\n style?: CSSProperties\n}\n\nfunction cellValue<Row>(row: Row, key: string): ReactNode {\n const value = (row as Record<string, unknown>)[key]\n if (value == null || value === '') return '—'\n if (typeof value === 'string' || typeof value === 'number') return value\n return String(value)\n}\n\nexport function Table<Row>({\n columns,\n rows,\n getRowKey,\n caption,\n emptyLabel = 'No records',\n size = 'md',\n striped = false,\n fontSize,\n fontFamily,\n className,\n style,\n}: TableProps<Row>) {\n return (\n <div className=\"al-table-wrap\">\n <table\n className={cx('al-table', className)}\n data-size={size}\n data-striped={striped ? 'true' : undefined}\n style={{\n fontSize: resolveFontSize(fontSize),\n fontFamily,\n ...style,\n }}\n >\n {caption ? <caption className=\"al-table-caption\">{caption}</caption> : null}\n <thead>\n <tr>\n {columns.map((column) => (\n <th key={column.key} scope=\"col\" style={{ textAlign: column.align, width: column.width }}>\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.length === 0 ? (\n <tr>\n <td className=\"al-table-empty\" colSpan={Math.max(columns.length, 1)}>\n {emptyLabel}\n </td>\n </tr>\n ) : (\n rows.map((row, index) => (\n <tr key={getRowKey(row, index)}>\n {columns.map((column) => (\n <td key={column.key} style={{ textAlign: column.align }}>\n {column.render ? column.render(row) : cellValue(row, column.key)}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n )\n}\n","import { forwardRef, useId, type ReactNode, type TextareaHTMLAttributes } from 'react'\nimport type { ColorProp, FontSizeProp } from '../theme/types'\nimport { cx } from '../utils/cx'\nimport { controlVars, resolveFontSize } from '../utils/resolve'\nimport { Field } from './Field'\n\nexport type TextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {\n label?: ReactNode\n helperText?: ReactNode\n error?: ReactNode\n fontSize?: FontSizeProp\n fontFamily?: string\n color?: ColorProp\n}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(\n {\n label,\n helperText,\n error,\n fontSize,\n fontFamily,\n color,\n className,\n style,\n id,\n required,\n rows = 4,\n ...rest\n },\n ref,\n) {\n const autoId = useId()\n const textareaId = id ?? autoId\n const messageId = `${textareaId}-message`\n\n return (\n <Field\n id={textareaId}\n label={label}\n required={required}\n helperText={helperText}\n error={error}\n messageId={messageId}\n fontFamily={fontFamily}\n >\n <textarea\n ref={ref}\n id={textareaId}\n className={cx('al-control', 'al-textarea', className)}\n rows={rows}\n required={required}\n aria-invalid={error ? true : undefined}\n aria-describedby={error || helperText ? messageId : undefined}\n style={{\n ...controlVars(color),\n fontSize: resolveFontSize(fontSize),\n ...style,\n }}\n {...rest}\n />\n </Field>\n )\n})\n","import { useState, type CSSProperties, type ReactNode } from 'react'\nimport type { ColorProp, FontSizeProp } from '../theme/types'\nimport { resolveColor, resolveFontSize } from '../utils/resolve'\n\nexport type AccordionItem = {\n id: string\n title: ReactNode\n content: ReactNode\n}\n\nexport type AccordionProps = {\n items: AccordionItem[]\n allowMultiple?: boolean\n defaultOpenIds?: string[]\n color?: ColorProp\n fontSize?: FontSizeProp\n fontFamily?: string\n className?: string\n style?: CSSProperties\n}\n\nexport function Accordion({\n items,\n allowMultiple = false,\n defaultOpenIds = [],\n color,\n fontSize,\n fontFamily,\n className,\n style,\n}: AccordionProps) {\n const [openIds, setOpenIds] = useState(defaultOpenIds)\n const accent = resolveColor(color)\n\n function toggle(id: string) {\n setOpenIds((current) => {\n const isOpen = current.includes(id)\n if (allowMultiple) {\n return isOpen ? current.filter((item) => item !== id) : [...current, id]\n }\n return isOpen ? [] : [id]\n })\n }\n\n return (\n <div\n className={className ? 'accordion ' + className : 'accordion'}\n style={{ fontSize: resolveFontSize(fontSize), fontFamily, ...style }}\n >\n {items.map((item) => {\n const open = openIds.includes(item.id)\n const panelId = `accordion-${item.id}-panel`\n const buttonId = `accordion-${item.id}-button`\n return (\n <div key={item.id} className=\"accordion-item\">\n <button\n id={buttonId}\n type=\"button\"\n className=\"accordion-trigger\"\n aria-expanded={open}\n aria-controls={panelId}\n style={accent ? { color: accent } : undefined}\n onClick={() => toggle(item.id)}\n >\n <span>{item.title}</span>\n <span className=\"accordion-chevron\" data-open={open ? 'true' : 'false'} aria-hidden=\"true\" />\n </button>\n {open ? (\n <div id={panelId} role=\"region\" aria-labelledby={buttonId} className=\"accordion-panel\">\n {item.content}\n </div>\n ) : null}\n </div>\n )\n })}\n </div>\n )\n}\n","import type { CSSProperties } from 'react'\nimport type { AltruistTheme } from './types'\n\nexport function themeToCssVars(theme: AltruistTheme): CSSProperties {\n return {\n '--al-color-primary': theme.colors.primary,\n '--al-color-primary-hover': theme.colors.primaryHover,\n '--al-color-on-primary': theme.colors.onPrimary,\n '--al-color-secondary': theme.colors.secondary,\n '--al-color-on-secondary': theme.colors.onSecondary,\n '--al-color-danger': theme.colors.danger,\n '--al-color-success': theme.colors.success,\n '--al-color-warning': theme.colors.warning,\n '--al-color-text': theme.colors.text,\n '--al-color-text-muted': theme.colors.textMuted,\n '--al-color-surface': theme.colors.surface,\n '--al-color-surface-muted': theme.colors.surfaceMuted,\n '--al-color-border': theme.colors.border,\n '--al-color-focus': theme.colors.focus,\n '--al-font-family': theme.fontFamily,\n '--al-font-size-xs': theme.fontSize.xs,\n '--al-font-size-sm': theme.fontSize.sm,\n '--al-font-size-md': theme.fontSize.md,\n '--al-font-size-lg': theme.fontSize.lg,\n '--al-radius-sm': theme.radius.sm,\n '--al-radius-md': theme.radius.md,\n '--al-radius-lg': theme.radius.lg,\n '--al-space-sm': theme.spacing.sm,\n '--al-space-md': theme.spacing.md,\n '--al-space-lg': theme.spacing.lg,\n } as CSSProperties\n}\n","import type { AltruistTheme } from './types'\n\nexport const altruistTheme: AltruistTheme = {\n colors: {\n primary: '#0b6b4f',\n primaryHover: '#095c44',\n onPrimary: '#ffffff',\n secondary: '#1f2937',\n onSecondary: '#ffffff',\n danger: '#b42318',\n success: '#067647',\n warning: '#b54708',\n text: '#1c2430',\n textMuted: '#5c6778',\n surface: '#ffffff',\n surfaceMuted: '#f5f7fa',\n border: '#d8dee8',\n focus: '#0b6b4f',\n },\n fontFamily: '\"Segoe UI\", \"Noto Sans\", sans-serif',\n fontSize: {\n xs: '12px',\n sm: '13px',\n md: '14px',\n lg: '16px',\n },\n radius: {\n sm: '6px',\n md: '8px',\n lg: '12px',\n },\n spacing: {\n sm: '8px',\n md: '12px',\n lg: '16px',\n },\n}\n","import type { AltruistTheme, ThemeOverride } from './types'\nimport { altruistTheme } from './default-theme'\n\nexport const indigoTheme: ThemeOverride = {\n colors: {\n primary: '#3730a3',\n primaryHover: '#312e81',\n focus: '#3730a3',\n },\n}\n\nexport const darkTheme: ThemeOverride = {\n colors: {\n primary: '#3ddc97',\n primaryHover: '#2fc588',\n onPrimary: '#06281c',\n secondary: '#d1d5db',\n onSecondary: '#111827',\n danger: '#ff8b80',\n success: '#6ee7b7',\n warning: '#fbbf24',\n text: '#e8edf5',\n textMuted: '#a3b0c2',\n surface: '#161b22',\n surfaceMuted: '#0f141b',\n border: '#2d3746',\n focus: '#3ddc97',\n },\n}\n\nexport function mergeTheme(base: AltruistTheme = altruistTheme, override?: ThemeOverride): AltruistTheme {\n if (!override) return base\n return {\n ...base,\n ...override,\n colors: { ...base.colors, ...override.colors },\n fontSize: { ...base.fontSize, ...override.fontSize },\n radius: { ...base.radius, ...override.radius },\n spacing: { ...base.spacing, ...override.spacing },\n }\n}\n","import { type CSSProperties, type ReactNode } from 'react'\nimport { themeToCssVars } from './css-variables'\nimport { altruistTheme } from './default-theme'\nimport { mergeTheme } from './presets'\nimport type { ThemeOverride } from './types'\n\nexport type ThemeProviderProps = {\n theme?: ThemeOverride\n children: ReactNode\n className?: string\n style?: CSSProperties\n}\n\nexport function ThemeProvider({ theme, children, className, style }: ThemeProviderProps) {\n const merged = mergeTheme(altruistTheme, theme)\n return (\n <div\n className={className ? `al-theme ${className}` : 'al-theme'}\n style={{ ...themeToCssVars(merged), display: 'contents', ...style }}\n >\n {children}\n </div>\n )\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@altruist03/ui",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Themed UI components for Altruist admin portals.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"sideEffects": [
|
|
7
|
+
"**/*.css"
|
|
8
|
+
],
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"module": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"default": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./styles.css": "./dist/index.css"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsup"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"react": ">=18",
|
|
28
|
+
"react-dom": ">=18"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@types/react": "^19.2.2",
|
|
32
|
+
"@types/react-dom": "^19.2.2",
|
|
33
|
+
"react": "^19.2.0",
|
|
34
|
+
"react-dom": "^19.2.0"
|
|
35
|
+
},
|
|
36
|
+
"publishConfig": {
|
|
37
|
+
"access": "public"
|
|
38
|
+
}
|
|
39
|
+
}
|
package/README.md
DELETED