@optimum-intelligence/opti-ui 0.3.0 → 0.5.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/README.md +28 -7
- package/dist/components/accordion/Accordion.d.ts +12 -0
- package/dist/components/accordion/Accordion.js +12 -0
- package/dist/components/accordion/Accordion.js.map +1 -1
- package/dist/components/alert/Alert.d.ts +4 -0
- package/dist/components/alert/Alert.js.map +1 -1
- package/dist/components/app-shell/AppShell.d.ts +96 -5
- package/dist/components/app-shell/AppShell.js +676 -185
- package/dist/components/app-shell/AppShell.js.map +1 -1
- package/dist/components/avatar/Avatar.d.ts +8 -0
- package/dist/components/avatar/Avatar.js +2 -0
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +10 -3
- package/dist/components/badge/Badge.js +17 -28
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/components/button/Button.d.ts +8 -0
- package/dist/components/button/Button.js +6 -0
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/calendar/Calendar.d.ts +21 -7
- package/dist/components/calendar/Calendar.js +285 -212
- package/dist/components/calendar/Calendar.js.map +1 -1
- package/dist/components/calendar/DateConfig.d.ts +37 -0
- package/dist/components/calendar/DateConfig.js +75 -0
- package/dist/components/calendar/DateConfig.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +41 -6
- package/dist/components/calendar/date-utils.js +119 -20
- package/dist/components/calendar/date-utils.js.map +1 -1
- package/dist/components/card/Card.d.ts +13 -0
- package/dist/components/card/Card.js +13 -0
- package/dist/components/card/Card.js.map +1 -1
- package/dist/components/choice/Choice.d.ts +13 -0
- package/dist/components/choice/Choice.js +10 -0
- package/dist/components/choice/Choice.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts +12 -0
- package/dist/components/combobox/Combobox.js.map +1 -1
- package/dist/components/command-palette/CommandPalette.d.ts +10 -0
- package/dist/components/command-palette/CommandPalette.js.map +1 -1
- package/dist/components/data-table/DataTable.d.ts +4 -0
- package/dist/components/data-table/DataTable.js.map +1 -1
- package/dist/components/data-table/DataTableContent.d.ts +1 -0
- package/dist/components/data-table/DataTableContent.js +3 -3
- package/dist/components/data-table/DataTableContent.js.map +1 -1
- package/dist/components/data-table/DataTableFilters.d.ts +3 -0
- package/dist/components/data-table/DataTableFilters.js.map +1 -1
- package/dist/components/data-table/types.d.ts +16 -0
- package/dist/components/date-picker/DatePicker.d.ts +33 -10
- package/dist/components/date-picker/DatePicker.js +315 -279
- package/dist/components/date-picker/DatePicker.js.map +1 -1
- package/dist/components/date-picker/DateRangePicker.d.ts +12 -4
- package/dist/components/date-picker/DateRangePicker.js +240 -206
- package/dist/components/date-picker/DateRangePicker.js.map +1 -1
- package/dist/components/date-picker/PickerField.d.ts +13 -0
- package/dist/components/date-picker/PickerField.js +1 -1
- package/dist/components/date-picker/PickerField.js.map +1 -1
- package/dist/components/dialog/Dialog.d.ts +5 -0
- package/dist/components/dialog/Dialog.js.map +1 -1
- package/dist/components/drawer/Drawer.d.ts +10 -0
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/empty-state/EmptyState.d.ts +5 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -1
- package/dist/components/file-upload/FileUpload.d.ts +21 -0
- package/dist/components/file-upload/FileUpload.js.map +1 -1
- package/dist/components/input/Input.d.ts +7 -0
- package/dist/components/input/Input.js +3 -0
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/link/Link.d.ts +1 -0
- package/dist/components/link/Link.js.map +1 -1
- package/dist/components/menu/Menu.d.ts +6 -0
- package/dist/components/menu/Menu.js.map +1 -1
- package/dist/components/number-field/NumberField.d.ts +7 -0
- package/dist/components/number-field/NumberField.js.map +1 -1
- package/dist/components/pagination/Pagination.d.ts +4 -0
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/popover/Popover.d.ts +4 -0
- package/dist/components/popover/Popover.js.map +1 -1
- package/dist/components/preview-card/PreviewCard.d.ts +4 -0
- package/dist/components/preview-card/PreviewCard.js.map +1 -1
- package/dist/components/progress/Progress.d.ts +8 -0
- package/dist/components/progress/Progress.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea.d.ts +1 -0
- package/dist/components/scroll-area/ScrollArea.js.map +1 -1
- package/dist/components/search-input/SearchInput.d.ts +2 -0
- package/dist/components/search-input/SearchInput.js.map +1 -1
- package/dist/components/select/Select.d.ts +11 -0
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/separator/Separator.d.ts +1 -0
- package/dist/components/separator/Separator.js +1 -0
- package/dist/components/separator/Separator.js.map +1 -1
- package/dist/components/skeleton/Skeleton.d.ts +7 -0
- package/dist/components/skeleton/Skeleton.js +1 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -1
- package/dist/components/slider/Slider.d.ts +1 -0
- package/dist/components/slider/Slider.js.map +1 -1
- package/dist/components/spinner/Spinner.d.ts +2 -0
- package/dist/components/spinner/Spinner.js +1 -0
- package/dist/components/spinner/Spinner.js.map +1 -1
- package/dist/components/stat-card/StatCard.d.ts +4 -0
- package/dist/components/stat-card/StatCard.js.map +1 -1
- package/dist/components/stepper/Stepper.d.ts +4 -0
- package/dist/components/stepper/Stepper.js.map +1 -1
- package/dist/components/table/Table.d.ts +24 -1
- package/dist/components/table/Table.js +19 -2
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/tabs/Tabs.d.ts +1 -0
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/tag/Tag.d.ts +3 -0
- package/dist/components/tag/Tag.js.map +1 -1
- package/dist/components/toast/Toast.d.ts +2 -0
- package/dist/components/toast/Toast.js.map +1 -1
- package/dist/components/toggle/Toggle.d.ts +7 -0
- package/dist/components/toggle/Toggle.js +1 -0
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components/tooltip/Tooltip.d.ts +8 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -1
- package/dist/components/typography/Typography.d.ts +5 -0
- package/dist/components/typography/Typography.js +2 -0
- package/dist/components/typography/Typography.js.map +1 -1
- package/dist/components.json +5534 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -3
- package/dist/llms-full.txt +2707 -0
- package/dist/llms.txt +177 -0
- package/dist/opti-ui.css +171 -81
- package/dist/theme/ThemeProvider.d.ts +1 -0
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/utils/portal.d.ts +4 -0
- package/dist/utils/portal.js +4 -0
- package/dist/utils/portal.js.map +1 -1
- package/package.json +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollArea.js","names":["ScrollArea","BaseScrollArea","withClass","ScrollAreaProps","Root","Props","scrollbars","viewportProps","Viewport","t0","$","_c","children","className","props","ref","t1","undefined","t2","t3","t4","t5","t6","t7","t8","t9","ScrollArea","_c","BaseScrollArea"],"sources":["../../../src/components/scroll-area/ScrollArea.tsx"],"sourcesContent":["import { ScrollArea as BaseScrollArea } from '@base-ui/react/scroll-area';\nimport { withClass } from '../../utils/cx';\n\nexport interface ScrollAreaProps extends BaseScrollArea.Root.Props {\n /** Which scrollbars to render. */\n scrollbars?: 'vertical' | 'horizontal' | 'both';\n viewportProps?: BaseScrollArea.Viewport.Props;\n}\n\n/** Scroll container with slim, themed overlay scrollbars. Set a height or max-height. */\nexport function ScrollArea({\n scrollbars = 'vertical',\n viewportProps,\n className,\n children,\n ref,\n ...props\n}: ScrollAreaProps) {\n return (\n <BaseScrollArea.Root ref={ref} className={withClass('oui-scroll-area', className)} {...props}>\n <BaseScrollArea.Viewport\n {...viewportProps}\n className={withClass('oui-scroll-area__viewport', viewportProps?.className)}\n >\n {children}\n </BaseScrollArea.Viewport>\n {scrollbars !== 'horizontal' && (\n <BaseScrollArea.Scrollbar orientation=\"vertical\" className=\"oui-scroll-area__scrollbar\">\n <BaseScrollArea.Thumb className=\"oui-scroll-area__thumb\" />\n </BaseScrollArea.Scrollbar>\n )}\n {scrollbars !== 'vertical' && (\n <BaseScrollArea.Scrollbar orientation=\"horizontal\" className=\"oui-scroll-area__scrollbar\">\n <BaseScrollArea.Thumb className=\"oui-scroll-area__thumb\" />\n </BaseScrollArea.Scrollbar>\n )}\n {scrollbars === 'both' && <BaseScrollArea.Corner />}\n </BaseScrollArea.Root>\n );\n}\n"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"ScrollArea.js","names":["ScrollArea","BaseScrollArea","withClass","ScrollAreaProps","Root","Props","scrollbars","viewportProps","Viewport","t0","$","_c","children","className","props","ref","t1","undefined","t2","t3","t4","t5","t6","t7","t8","t9","ScrollArea","_c","BaseScrollArea"],"sources":["../../../src/components/scroll-area/ScrollArea.tsx"],"sourcesContent":["import { ScrollArea as BaseScrollArea } from '@base-ui/react/scroll-area';\nimport { withClass } from '../../utils/cx';\n\nexport interface ScrollAreaProps extends BaseScrollArea.Root.Props {\n /** Which scrollbars to render. */\n scrollbars?: 'vertical' | 'horizontal' | 'both';\n /** Props for the inner scrolling viewport, e.g. a `ref` to read the scroll position. */\n viewportProps?: BaseScrollArea.Viewport.Props;\n}\n\n/** Scroll container with slim, themed overlay scrollbars. Set a height or max-height. */\nexport function ScrollArea({\n scrollbars = 'vertical',\n viewportProps,\n className,\n children,\n ref,\n ...props\n}: ScrollAreaProps) {\n return (\n <BaseScrollArea.Root ref={ref} className={withClass('oui-scroll-area', className)} {...props}>\n <BaseScrollArea.Viewport\n {...viewportProps}\n className={withClass('oui-scroll-area__viewport', viewportProps?.className)}\n >\n {children}\n </BaseScrollArea.Viewport>\n {scrollbars !== 'horizontal' && (\n <BaseScrollArea.Scrollbar orientation=\"vertical\" className=\"oui-scroll-area__scrollbar\">\n <BaseScrollArea.Thumb className=\"oui-scroll-area__thumb\" />\n </BaseScrollArea.Scrollbar>\n )}\n {scrollbars !== 'vertical' && (\n <BaseScrollArea.Scrollbar orientation=\"horizontal\" className=\"oui-scroll-area__scrollbar\">\n <BaseScrollArea.Thumb className=\"oui-scroll-area__thumb\" />\n </BaseScrollArea.Scrollbar>\n )}\n {scrollbars === 'both' && <BaseScrollArea.Corner />}\n </BaseScrollArea.Root>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type InputProps } from '../input/Input';
|
|
3
3
|
export interface SearchInputProps extends Omit<InputProps, 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'startAdornment' | 'endAdornment'> {
|
|
4
|
+
/** Current text (controlled). */
|
|
4
5
|
value?: string;
|
|
6
|
+
/** Initial text when uncontrolled. */
|
|
5
7
|
defaultValue?: string;
|
|
6
8
|
/** Called with the new text on typing and with `''` on clear. */
|
|
7
9
|
onValueChange?: (value: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.js","names":["React","Input","InputProps","IconButton","SearchIcon","XIcon","SearchInputProps","Omit","value","defaultValue","onValueChange","clearLabel","icon","ReactNode","SearchInput","t0","$","_c","disabled","props","ref","t1","t2","undefined","inner","setInner","useState","current","inputRef","useRef","t3","Symbol","for","HTMLInputElement","useImperativeHandle","t4","next","change","t5","t6","focus","t7","_c"],"sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Input, type InputProps } from '../input/Input';\nimport { IconButton } from '../button/Button';\nimport { SearchIcon, XIcon } from '../../icons';\n\nexport interface SearchInputProps\n extends Omit<InputProps, 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'startAdornment' | 'endAdornment'> {\n value?: string;\n defaultValue?: string;\n /** Called with the new text on typing and with `''` on clear. */\n onValueChange?: (value: string) => void;\n /** Accessible name of the clear button. */\n clearLabel?: string;\n /** Replaces the leading search icon. */\n icon?: React.ReactNode;\n}\n\n/** Text input with a search icon and a clear button that appears once there is a value. */\nexport function SearchInput({\n value,\n defaultValue = '',\n onValueChange,\n clearLabel = 'Clear search',\n icon,\n disabled,\n ref,\n ...props\n}: SearchInputProps) {\n const [inner, setInner] = React.useState(defaultValue);\n const current = value ?? inner;\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n React.useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\n\n const change = (next: string) => {\n setInner(next);\n onValueChange?.(next);\n };\n\n return (\n <Input\n ref={inputRef}\n type=\"text\"\n role=\"searchbox\"\n enterKeyHint=\"search\"\n autoComplete=\"off\"\n disabled={disabled}\n {...props}\n value={current}\n onValueChange={change}\n startAdornment={icon ?? <SearchIcon />}\n endAdornment={\n current && !disabled ? (\n <IconButton\n size=\"sm\"\n shape=\"circle\"\n aria-label={clearLabel}\n onClick={() => {\n change('');\n inputRef.current?.focus();\n }}\n >\n <XIcon />\n </IconButton>\n ) : undefined\n }\n />\n );\n}\n"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SearchInput.js","names":["React","Input","InputProps","IconButton","SearchIcon","XIcon","SearchInputProps","Omit","value","defaultValue","onValueChange","clearLabel","icon","ReactNode","SearchInput","t0","$","_c","disabled","props","ref","t1","t2","undefined","inner","setInner","useState","current","inputRef","useRef","t3","Symbol","for","HTMLInputElement","useImperativeHandle","t4","next","change","t5","t6","focus","t7","_c"],"sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Input, type InputProps } from '../input/Input';\nimport { IconButton } from '../button/Button';\nimport { SearchIcon, XIcon } from '../../icons';\n\nexport interface SearchInputProps\n extends Omit<InputProps, 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'startAdornment' | 'endAdornment'> {\n /** Current text (controlled). */\n value?: string;\n /** Initial text when uncontrolled. */\n defaultValue?: string;\n /** Called with the new text on typing and with `''` on clear. */\n onValueChange?: (value: string) => void;\n /** Accessible name of the clear button. */\n clearLabel?: string;\n /** Replaces the leading search icon. */\n icon?: React.ReactNode;\n}\n\n/** Text input with a search icon and a clear button that appears once there is a value. */\nexport function SearchInput({\n value,\n defaultValue = '',\n onValueChange,\n clearLabel = 'Clear search',\n icon,\n disabled,\n ref,\n ...props\n}: SearchInputProps) {\n const [inner, setInner] = React.useState(defaultValue);\n const current = value ?? inner;\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n React.useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\n\n const change = (next: string) => {\n setInner(next);\n onValueChange?.(next);\n };\n\n return (\n <Input\n ref={inputRef}\n type=\"text\"\n role=\"searchbox\"\n enterKeyHint=\"search\"\n autoComplete=\"off\"\n disabled={disabled}\n {...props}\n value={current}\n onValueChange={change}\n startAdornment={icon ?? <SearchIcon />}\n endAdornment={\n current && !disabled ? (\n <IconButton\n size=\"sm\"\n shape=\"circle\"\n aria-label={clearLabel}\n onClick={() => {\n change('');\n inputRef.current?.focus();\n }}\n >\n <XIcon />\n </IconButton>\n ) : undefined\n }\n />\n );\n}\n"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { Select as BaseSelect } from '@base-ui/react/select';
|
|
3
3
|
import type { ControlSize } from '../input/Input';
|
|
4
4
|
export interface SelectTriggerProps extends BaseSelect.Trigger.Props {
|
|
5
|
+
/** Control height. */
|
|
5
6
|
size?: ControlSize;
|
|
6
7
|
/** Placeholder shown by the default value slot. */
|
|
7
8
|
placeholder?: React.ReactNode;
|
|
@@ -10,11 +11,15 @@ export interface SelectTriggerProps extends BaseSelect.Trigger.Props {
|
|
|
10
11
|
declare function SelectTrigger({ size, placeholder, className, children, ref, ...props }: SelectTriggerProps): React.JSX.Element;
|
|
11
12
|
declare function SelectValue({ className, ref, ...props }: BaseSelect.Value.Props): React.JSX.Element;
|
|
12
13
|
export interface SelectContentProps extends BaseSelect.Popup.Props {
|
|
14
|
+
/** Which side of the trigger the list opens on. */
|
|
13
15
|
side?: BaseSelect.Positioner.Props['side'];
|
|
16
|
+
/** Alignment along that side. */
|
|
14
17
|
align?: BaseSelect.Positioner.Props['align'];
|
|
18
|
+
/** Distance from the trigger in px. */
|
|
15
19
|
sideOffset?: BaseSelect.Positioner.Props['sideOffset'];
|
|
16
20
|
/** Overlap the trigger so the selected item lines up with it (macOS style). */
|
|
17
21
|
alignItemWithTrigger?: boolean;
|
|
22
|
+
/** Props for the positioner element that places the popup. */
|
|
18
23
|
positionerProps?: BaseSelect.Positioner.Props;
|
|
19
24
|
}
|
|
20
25
|
/** Portal + positioner + popup + list in one. */
|
|
@@ -37,13 +42,19 @@ type RootProps = Omit<BaseSelect.Root.Props<string, false>, 'items' | 'children'
|
|
|
37
42
|
export interface SelectProps extends RootProps {
|
|
38
43
|
/** Options, or groups of options. */
|
|
39
44
|
items: Array<SelectOption | SelectOptionGroup>;
|
|
45
|
+
/** Visible field label. */
|
|
40
46
|
label?: React.ReactNode;
|
|
47
|
+
/** Help text under the trigger. */
|
|
41
48
|
description?: React.ReactNode;
|
|
49
|
+
/** Error message. When set, the field is marked invalid. */
|
|
42
50
|
error?: React.ReactNode;
|
|
51
|
+
/** Text shown while nothing is selected. */
|
|
43
52
|
placeholder?: React.ReactNode;
|
|
53
|
+
/** Control height. */
|
|
44
54
|
size?: ControlSize;
|
|
45
55
|
/** Props passed to the trigger button (className, style, aria-*). */
|
|
46
56
|
triggerProps?: Omit<SelectTriggerProps, 'size' | 'placeholder'>;
|
|
57
|
+
/** Props for the popup (side, align, className…). */
|
|
47
58
|
contentProps?: Omit<SelectContentProps, 'children'>;
|
|
48
59
|
}
|
|
49
60
|
declare function SelectComponent({ items, label, description, error, placeholder, size, triggerProps, contentProps, name, disabled, required, ...rootProps }: SelectProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["React","Select","BaseSelect","withClass","usePortalContainer","CheckIcon","ChevronDownIcon","Field","ControlSize","SelectTriggerProps","Trigger","Props","size","placeholder","ReactNode","SelectTrigger","t0","$","_c","children","className","props","ref","t1","undefined","t2","t3","t4","SelectValue","SelectContentProps","Popup","side","Positioner","align","sideOffset","alignItemWithTrigger","positionerProps","SelectContent","container","t5","t6","t7","SelectItem","Symbol","for","SelectGroup","SelectGroupLabel","SelectSeparator","SelectLabel","SelectOption","value","label","disabled","SelectOptionGroup","items","RootProps","Omit","Root","SelectProps","Array","description","error","triggerProps","contentProps","isGroup","item","SelectComponent","name","required","rootProps","flatMap","_temp","flat","map","_temp3","t8","t9","t10","t11","t12","item_0","index","_temp2","option","Object","assign","Label","Value","Content","Item","Group","GroupLabel","Separator","_c","_Fragment","BaseSelect","Select"],"sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Select as BaseSelect } from '@base-ui/react/select';\nimport { withClass } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { CheckIcon, ChevronDownIcon } from '../../icons';\nimport { Field } from '../field/Field';\nimport type { ControlSize } from '../input/Input';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface SelectTriggerProps extends BaseSelect.Trigger.Props {\n size?: ControlSize;\n /** Placeholder shown by the default value slot. */\n placeholder?: React.ReactNode;\n}\n\n/** The select button. Renders the value and chevron unless children are given. */\nfunction SelectTrigger({ size = 'md', placeholder, className, children, ref, ...props }: SelectTriggerProps) {\n return (\n <BaseSelect.Trigger ref={ref} className={withClass('oui-select__trigger', className)} data-size={size} {...props}>\n {children ?? (\n <>\n <BaseSelect.Value className=\"oui-select__value\" placeholder={placeholder} />\n <BaseSelect.Icon className=\"oui-select__icon\">\n <ChevronDownIcon />\n </BaseSelect.Icon>\n </>\n )}\n </BaseSelect.Trigger>\n );\n}\n\nfunction SelectValue({ className, ref, ...props }: BaseSelect.Value.Props) {\n return <BaseSelect.Value ref={ref} className={withClass('oui-select__value', className)} {...props} />;\n}\n\nexport interface SelectContentProps extends BaseSelect.Popup.Props {\n side?: BaseSelect.Positioner.Props['side'];\n align?: BaseSelect.Positioner.Props['align'];\n sideOffset?: BaseSelect.Positioner.Props['sideOffset'];\n /** Overlap the trigger so the selected item lines up with it (macOS style). */\n alignItemWithTrigger?: boolean;\n positionerProps?: BaseSelect.Positioner.Props;\n}\n\n/** Portal + positioner + popup + list in one. */\nfunction SelectContent({\n side,\n align,\n sideOffset = 6,\n alignItemWithTrigger = false,\n positionerProps,\n className,\n children,\n ref,\n ...props\n}: SelectContentProps) {\n const container = usePortalContainer();\n return (\n <BaseSelect.Portal container={container}>\n <BaseSelect.Positioner\n className=\"oui-select__positioner\"\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n {...positionerProps}\n >\n <BaseSelect.Popup ref={ref} className={withClass('oui-select__popup', className)} {...props}>\n <BaseSelect.List className=\"oui-select__list\">{children}</BaseSelect.List>\n </BaseSelect.Popup>\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n );\n}\n\nfunction SelectItem({ className, children, ref, ...props }: BaseSelect.Item.Props) {\n return (\n <BaseSelect.Item ref={ref} className={withClass('oui-select__item', className)} {...props}>\n <BaseSelect.ItemText className=\"oui-select__item-text\">{children}</BaseSelect.ItemText>\n <BaseSelect.ItemIndicator className=\"oui-select__item-indicator\">\n <CheckIcon />\n </BaseSelect.ItemIndicator>\n </BaseSelect.Item>\n );\n}\n\nfunction SelectGroup({ className, ref, ...props }: BaseSelect.Group.Props) {\n return <BaseSelect.Group ref={ref} className={withClass('oui-select__group', className)} {...props} />;\n}\n\nfunction SelectGroupLabel({ className, ref, ...props }: BaseSelect.GroupLabel.Props) {\n return <BaseSelect.GroupLabel ref={ref} className={withClass('oui-select__group-label', className)} {...props} />;\n}\n\nfunction SelectSeparator({ className, ref, ...props }: BaseSelect.Separator.Props) {\n return <BaseSelect.Separator ref={ref} className={withClass('oui-select__separator', className)} {...props} />;\n}\n\nfunction SelectLabel({ className, ref, ...props }: BaseSelect.Label.Props) {\n return <BaseSelect.Label ref={ref} className={withClass('oui-field__label', className)} {...props} />;\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface SelectOption {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup {\n label: React.ReactNode;\n items: SelectOption[];\n}\n\ntype RootProps = Omit<BaseSelect.Root.Props<string, false>, 'items' | 'children' | 'multiple'>;\n\nexport interface SelectProps extends RootProps {\n /** Options, or groups of options. */\n items: Array<SelectOption | SelectOptionGroup>;\n label?: React.ReactNode;\n description?: React.ReactNode;\n error?: React.ReactNode;\n placeholder?: React.ReactNode;\n size?: ControlSize;\n /** Props passed to the trigger button (className, style, aria-*). */\n triggerProps?: Omit<SelectTriggerProps, 'size' | 'placeholder'>;\n contentProps?: Omit<SelectContentProps, 'children'>;\n}\n\nfunction isGroup(item: SelectOption | SelectOptionGroup): item is SelectOptionGroup {\n return 'items' in item;\n}\n\nfunction SelectComponent({\n items,\n label,\n description,\n error,\n placeholder = 'Select…',\n size = 'md',\n triggerProps,\n contentProps,\n name,\n disabled,\n required,\n ...rootProps\n}: SelectProps) {\n const flat = items.flatMap((item) => (isGroup(item) ? item.items : [item]));\n return (\n <Field.Root name={name} disabled={disabled} invalid={error ? true : undefined}>\n <BaseSelect.Root items={flat} disabled={disabled} required={required} {...rootProps}>\n {label && (\n <SelectLabel>\n {label}\n {required && (\n <span className=\"oui-field__required\" aria-hidden>\n *\n </span>\n )}\n </SelectLabel>\n )}\n <SelectTrigger size={size} placeholder={placeholder} {...triggerProps} />\n <SelectContent {...contentProps}>\n {items.map((item, index) =>\n isGroup(item) ? (\n <SelectGroup key={index}>\n <SelectGroupLabel>{item.label}</SelectGroupLabel>\n {item.items.map((option) => (\n <SelectItem key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </SelectItem>\n ))}\n </SelectGroup>\n ) : (\n <SelectItem key={item.value} value={item.value} disabled={item.disabled}>\n {item.label}\n </SelectItem>\n ),\n )}\n </SelectContent>\n </BaseSelect.Root>\n {description && <Field.Description>{description}</Field.Description>}\n {error ? <Field.Error match>{error}</Field.Error> : <Field.Error />}\n </Field.Root>\n );\n}\n\n/**\n * `<Select items={…} />` renders a complete labelled select. For full control\n * compose the parts: `Select.Root`, `Select.Trigger`, `Select.Content`,\n * `Select.Item`, `Select.Group`, `Select.GroupLabel`, `Select.Separator`.\n */\nexport const Select = Object.assign(SelectComponent, {\n Root: BaseSelect.Root,\n Label: SelectLabel,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Content: SelectContent,\n Item: SelectItem,\n Group: SelectGroup,\n GroupLabel: SelectGroupLabel,\n Separator: SelectSeparator,\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","names":["React","Select","BaseSelect","withClass","usePortalContainer","CheckIcon","ChevronDownIcon","Field","ControlSize","SelectTriggerProps","Trigger","Props","size","placeholder","ReactNode","SelectTrigger","t0","$","_c","children","className","props","ref","t1","undefined","t2","t3","t4","SelectValue","SelectContentProps","Popup","side","Positioner","align","sideOffset","alignItemWithTrigger","positionerProps","SelectContent","container","t5","t6","t7","SelectItem","Symbol","for","SelectGroup","SelectGroupLabel","SelectSeparator","SelectLabel","SelectOption","value","label","disabled","SelectOptionGroup","items","RootProps","Omit","Root","SelectProps","Array","description","error","triggerProps","contentProps","isGroup","item","SelectComponent","name","required","rootProps","flatMap","_temp","flat","map","_temp3","t8","t9","t10","t11","t12","item_0","index","_temp2","option","Object","assign","Label","Value","Content","Item","Group","GroupLabel","Separator","_c","_Fragment","BaseSelect","Select"],"sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Select as BaseSelect } from '@base-ui/react/select';\nimport { withClass } from '../../utils/cx';\nimport { usePortalContainer } from '../../utils/portal';\nimport { CheckIcon, ChevronDownIcon } from '../../icons';\nimport { Field } from '../field/Field';\nimport type { ControlSize } from '../input/Input';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface SelectTriggerProps extends BaseSelect.Trigger.Props {\n /** Control height. */\n size?: ControlSize;\n /** Placeholder shown by the default value slot. */\n placeholder?: React.ReactNode;\n}\n\n/** The select button. Renders the value and chevron unless children are given. */\nfunction SelectTrigger({ size = 'md', placeholder, className, children, ref, ...props }: SelectTriggerProps) {\n return (\n <BaseSelect.Trigger ref={ref} className={withClass('oui-select__trigger', className)} data-size={size} {...props}>\n {children ?? (\n <>\n <BaseSelect.Value className=\"oui-select__value\" placeholder={placeholder} />\n <BaseSelect.Icon className=\"oui-select__icon\">\n <ChevronDownIcon />\n </BaseSelect.Icon>\n </>\n )}\n </BaseSelect.Trigger>\n );\n}\n\nfunction SelectValue({ className, ref, ...props }: BaseSelect.Value.Props) {\n return <BaseSelect.Value ref={ref} className={withClass('oui-select__value', className)} {...props} />;\n}\n\nexport interface SelectContentProps extends BaseSelect.Popup.Props {\n /** Which side of the trigger the list opens on. */\n side?: BaseSelect.Positioner.Props['side'];\n /** Alignment along that side. */\n align?: BaseSelect.Positioner.Props['align'];\n /** Distance from the trigger in px. */\n sideOffset?: BaseSelect.Positioner.Props['sideOffset'];\n /** Overlap the trigger so the selected item lines up with it (macOS style). */\n alignItemWithTrigger?: boolean;\n /** Props for the positioner element that places the popup. */\n positionerProps?: BaseSelect.Positioner.Props;\n}\n\n/** Portal + positioner + popup + list in one. */\nfunction SelectContent({\n side,\n align,\n sideOffset = 6,\n alignItemWithTrigger = false,\n positionerProps,\n className,\n children,\n ref,\n ...props\n}: SelectContentProps) {\n const container = usePortalContainer();\n return (\n <BaseSelect.Portal container={container}>\n <BaseSelect.Positioner\n className=\"oui-select__positioner\"\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n {...positionerProps}\n >\n <BaseSelect.Popup ref={ref} className={withClass('oui-select__popup', className)} {...props}>\n <BaseSelect.List className=\"oui-select__list\">{children}</BaseSelect.List>\n </BaseSelect.Popup>\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n );\n}\n\nfunction SelectItem({ className, children, ref, ...props }: BaseSelect.Item.Props) {\n return (\n <BaseSelect.Item ref={ref} className={withClass('oui-select__item', className)} {...props}>\n <BaseSelect.ItemText className=\"oui-select__item-text\">{children}</BaseSelect.ItemText>\n <BaseSelect.ItemIndicator className=\"oui-select__item-indicator\">\n <CheckIcon />\n </BaseSelect.ItemIndicator>\n </BaseSelect.Item>\n );\n}\n\nfunction SelectGroup({ className, ref, ...props }: BaseSelect.Group.Props) {\n return <BaseSelect.Group ref={ref} className={withClass('oui-select__group', className)} {...props} />;\n}\n\nfunction SelectGroupLabel({ className, ref, ...props }: BaseSelect.GroupLabel.Props) {\n return <BaseSelect.GroupLabel ref={ref} className={withClass('oui-select__group-label', className)} {...props} />;\n}\n\nfunction SelectSeparator({ className, ref, ...props }: BaseSelect.Separator.Props) {\n return <BaseSelect.Separator ref={ref} className={withClass('oui-select__separator', className)} {...props} />;\n}\n\nfunction SelectLabel({ className, ref, ...props }: BaseSelect.Label.Props) {\n return <BaseSelect.Label ref={ref} className={withClass('oui-field__label', className)} {...props} />;\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface SelectOption {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup {\n label: React.ReactNode;\n items: SelectOption[];\n}\n\ntype RootProps = Omit<BaseSelect.Root.Props<string, false>, 'items' | 'children' | 'multiple'>;\n\nexport interface SelectProps extends RootProps {\n /** Options, or groups of options. */\n items: Array<SelectOption | SelectOptionGroup>;\n /** Visible field label. */\n label?: React.ReactNode;\n /** Help text under the trigger. */\n description?: React.ReactNode;\n /** Error message. When set, the field is marked invalid. */\n error?: React.ReactNode;\n /** Text shown while nothing is selected. */\n placeholder?: React.ReactNode;\n /** Control height. */\n size?: ControlSize;\n /** Props passed to the trigger button (className, style, aria-*). */\n triggerProps?: Omit<SelectTriggerProps, 'size' | 'placeholder'>;\n /** Props for the popup (side, align, className…). */\n contentProps?: Omit<SelectContentProps, 'children'>;\n}\n\nfunction isGroup(item: SelectOption | SelectOptionGroup): item is SelectOptionGroup {\n return 'items' in item;\n}\n\nfunction SelectComponent({\n items,\n label,\n description,\n error,\n placeholder = 'Select…',\n size = 'md',\n triggerProps,\n contentProps,\n name,\n disabled,\n required,\n ...rootProps\n}: SelectProps) {\n const flat = items.flatMap((item) => (isGroup(item) ? item.items : [item]));\n return (\n <Field.Root name={name} disabled={disabled} invalid={error ? true : undefined}>\n <BaseSelect.Root items={flat} disabled={disabled} required={required} {...rootProps}>\n {label && (\n <SelectLabel>\n {label}\n {required && (\n <span className=\"oui-field__required\" aria-hidden>\n *\n </span>\n )}\n </SelectLabel>\n )}\n <SelectTrigger size={size} placeholder={placeholder} {...triggerProps} />\n <SelectContent {...contentProps}>\n {items.map((item, index) =>\n isGroup(item) ? (\n <SelectGroup key={index}>\n <SelectGroupLabel>{item.label}</SelectGroupLabel>\n {item.items.map((option) => (\n <SelectItem key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </SelectItem>\n ))}\n </SelectGroup>\n ) : (\n <SelectItem key={item.value} value={item.value} disabled={item.disabled}>\n {item.label}\n </SelectItem>\n ),\n )}\n </SelectContent>\n </BaseSelect.Root>\n {description && <Field.Description>{description}</Field.Description>}\n {error ? <Field.Error match>{error}</Field.Error> : <Field.Error />}\n </Field.Root>\n );\n}\n\n/**\n * `<Select items={…} />` renders a complete labelled select. For full control\n * compose the parts: `Select.Root`, `Select.Trigger`, `Select.Content`,\n * `Select.Item`, `Select.Group`, `Select.GroupLabel`, `Select.Separator`.\n */\nexport const Select = Object.assign(SelectComponent, {\n Root: BaseSelect.Root,\n Label: SelectLabel,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Content: SelectContent,\n Item: SelectItem,\n Group: SelectGroup,\n GroupLabel: SelectGroupLabel,\n Separator: SelectSeparator,\n});\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Separator as BaseSeparator } from '@base-ui/react/separator';
|
|
2
2
|
export interface SeparatorProps extends BaseSeparator.Props {
|
|
3
3
|
}
|
|
4
|
+
/** Thin divider line. Set `orientation="vertical"` for a vertical rule. */
|
|
4
5
|
export declare function Separator({ className, ref, ...props }: SeparatorProps): import("react").JSX.Element;
|
|
@@ -4,6 +4,7 @@ import { c } from "react/compiler-runtime";
|
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { Separator } from "@base-ui/react/separator";
|
|
6
6
|
//#region src/components/separator/Separator.tsx
|
|
7
|
+
/** Thin divider line. Set `orientation="vertical"` for a vertical rule. */
|
|
7
8
|
function Separator$1(t0) {
|
|
8
9
|
const $ = c(10);
|
|
9
10
|
let className;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Separator.js","names":["Separator","BaseSeparator","withClass","SeparatorProps","Props","t0","$","_c","className","props","ref","t1","t2","Separator","_c","BaseSeparator"],"sources":["../../../src/components/separator/Separator.tsx"],"sourcesContent":["import { Separator as BaseSeparator } from '@base-ui/react/separator';\nimport { withClass } from '../../utils/cx';\n\nexport interface SeparatorProps extends BaseSeparator.Props {}\n\nexport function Separator({ className, ref, ...props }: SeparatorProps) {\n return <BaseSeparator ref={ref} className={withClass('oui-separator', className)} {...props} />;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Separator.js","names":["Separator","BaseSeparator","withClass","SeparatorProps","Props","t0","$","_c","className","props","ref","t1","t2","Separator","_c","BaseSeparator"],"sources":["../../../src/components/separator/Separator.tsx"],"sourcesContent":["import { Separator as BaseSeparator } from '@base-ui/react/separator';\nimport { withClass } from '../../utils/cx';\n\nexport interface SeparatorProps extends BaseSeparator.Props {}\n\n/** Thin divider line. Set `orientation=\"vertical\"` for a vertical rule. */\nexport function Separator({ className, ref, ...props }: SeparatorProps) {\n return <BaseSeparator ref={ref} className={withClass('oui-separator', className)} {...props} />;\n}\n"],"mappings":";;;;;;;AAMA,SAAOA,YAAAK,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAJ,EAAA,OAAAD,IAAA;EAAmB,CAAA,CAAAG,WAAAE,KAAA,GAAAD,SAAAJ;EAA4CC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;CAAA,OAAA;EAAAF,YAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAI,MAAAJ,EAAA;CAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAE,WAAA;EACzBG,KAAAT,UAAU,iBAAiBM,SAAS;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,OAAAG,SAAAH,EAAA,OAAAI,OAAAJ,EAAA,OAAAK,IAAA;EAAzEC,KAAA,oBAACG,WAAD;GAAoBL;GAAgB,WAAAC;GAAqC,GAAMF;EAAK,CAAA;EAAIH,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAAxFM;AAAwF"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export interface SkeletonProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
/** Ref to the placeholder element. */
|
|
3
4
|
ref?: React.Ref<HTMLSpanElement>;
|
|
5
|
+
/** Width in px (number) or any CSS length. */
|
|
4
6
|
width?: number | string;
|
|
7
|
+
/** Height in px (number) or any CSS length. */
|
|
5
8
|
height?: number | string;
|
|
6
9
|
/** Render as a circle (uses `width` for both dimensions). */
|
|
7
10
|
circle?: boolean;
|
|
11
|
+
/** Corner radius in px (number) or any CSS length. */
|
|
8
12
|
radius?: number | string;
|
|
9
13
|
}
|
|
10
14
|
/** Pulsing placeholder for content that is still loading. */
|
|
11
15
|
export declare function Skeleton({ width, height, circle, radius, className, style, ref, ...props }: SkeletonProps): React.JSX.Element;
|
|
12
16
|
export interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
17
|
+
/** Ref to the wrapper element. */
|
|
13
18
|
ref?: React.Ref<HTMLDivElement>;
|
|
19
|
+
/** Number of placeholder lines. */
|
|
14
20
|
lines?: number;
|
|
15
21
|
}
|
|
22
|
+
/** Skeleton placeholder shaped like a paragraph; the last line is shorter. */
|
|
16
23
|
export declare function SkeletonText({ lines, className, ref, ...props }: SkeletonTextProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.js","names":["React","cx","SkeletonProps","HTMLAttributes","HTMLSpanElement","ref","Ref","width","height","circle","radius","Skeleton","t0","$","_c","className","props","style","t1","t2","undefined","t3","t4","borderRadius","t5","SkeletonTextProps","HTMLDivElement","lines","SkeletonText","Array","from","length","_","i","_c"],"sources":["../../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLSpanElement> {\n ref?: React.Ref<HTMLSpanElement>;\n width?: number | string;\n height?: number | string;\n /** Render as a circle (uses `width` for both dimensions). */\n circle?: boolean;\n radius?: number | string;\n}\n\n/** Pulsing placeholder for content that is still loading. */\nexport function Skeleton({ width, height, circle, radius, className, style, ref, ...props }: SkeletonProps) {\n return (\n <span\n ref={ref}\n aria-hidden\n className={cx('oui-skeleton', className)}\n data-circle={circle || undefined}\n style={{\n width,\n height: circle ? width : height,\n borderRadius: radius,\n ...style,\n }}\n {...props}\n />\n );\n}\n\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement>;\n lines?: number;\n}\n\nexport function SkeletonText({ lines = 3, className, ref, ...props }: SkeletonTextProps) {\n return (\n <div ref={ref} aria-hidden className={cx('oui-skeleton-text', className)} {...props}>\n {Array.from({ length: lines }, (_, i) => (\n <Skeleton key={i} height=\"0.8rem\" width={i === lines - 1 && lines > 1 ? '60%' : '100%'} />\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"Skeleton.js","names":["React","cx","SkeletonProps","HTMLAttributes","HTMLSpanElement","ref","Ref","width","height","circle","radius","Skeleton","t0","$","_c","className","props","style","t1","t2","undefined","t3","t4","borderRadius","t5","SkeletonTextProps","HTMLDivElement","lines","SkeletonText","Array","from","length","_","i","_c"],"sources":["../../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Ref to the placeholder element. */\n ref?: React.Ref<HTMLSpanElement>;\n /** Width in px (number) or any CSS length. */\n width?: number | string;\n /** Height in px (number) or any CSS length. */\n height?: number | string;\n /** Render as a circle (uses `width` for both dimensions). */\n circle?: boolean;\n /** Corner radius in px (number) or any CSS length. */\n radius?: number | string;\n}\n\n/** Pulsing placeholder for content that is still loading. */\nexport function Skeleton({ width, height, circle, radius, className, style, ref, ...props }: SkeletonProps) {\n return (\n <span\n ref={ref}\n aria-hidden\n className={cx('oui-skeleton', className)}\n data-circle={circle || undefined}\n style={{\n width,\n height: circle ? width : height,\n borderRadius: radius,\n ...style,\n }}\n {...props}\n />\n );\n}\n\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Ref to the wrapper element. */\n ref?: React.Ref<HTMLDivElement>;\n /** Number of placeholder lines. */\n lines?: number;\n}\n\n/** Skeleton placeholder shaped like a paragraph; the last line is shorter. */\nexport function SkeletonText({ lines = 3, className, ref, ...props }: SkeletonTextProps) {\n return (\n <div ref={ref} aria-hidden className={cx('oui-skeleton-text', className)} {...props}>\n {Array.from({ length: lines }, (_, i) => (\n <Skeleton key={i} height=\"0.8rem\" width={i === lines - 1 && lines > 1 ? '60%' : '100%'} />\n ))}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Slider as BaseSlider } from '@base-ui/react/slider';
|
|
3
3
|
export interface SliderProps extends BaseSlider.Root.Props {
|
|
4
|
+
/** Visible label above the track. */
|
|
4
5
|
label?: React.ReactNode;
|
|
5
6
|
/** Show the formatted value next to the label. */
|
|
6
7
|
showValue?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","names":["React","Slider","BaseSlider","withClass","SliderProps","Root","Props","label","ReactNode","showValue","thumbLabels","t0","$","_c","className","defaultValue","props","ref","value","initial","count","Array","isArray","length","t1","t2","t3","Symbol","for","t4","from","_","index","undefined","t5","Slider","_c","BaseSlider"],"sources":["../../../src/components/slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slider as BaseSlider } from '@base-ui/react/slider';\nimport { withClass } from '../../utils/cx';\n\nexport interface SliderProps extends BaseSlider.Root.Props {\n label?: React.ReactNode;\n /** Show the formatted value next to the label. */\n showValue?: boolean;\n /** Accessible labels for each thumb (needed for range sliders). */\n thumbLabels?: string[];\n}\n\n/** Single value or range (pass an array) slider. */\nexport function Slider({ label, showValue, thumbLabels, className, value, defaultValue, ref, ...props }: SliderProps) {\n const initial = value ?? defaultValue;\n const count = Array.isArray(initial) ? initial.length : 1;\n return (\n <BaseSlider.Root\n ref={ref}\n className={withClass('oui-slider', className)}\n value={value}\n defaultValue={defaultValue}\n {...props}\n >\n {(label || showValue) && (\n <div className=\"oui-slider__header\">\n {label && <BaseSlider.Label className=\"oui-field__label\">{label}</BaseSlider.Label>}\n {showValue && <BaseSlider.Value className=\"oui-slider__value\" />}\n </div>\n )}\n <BaseSlider.Control className=\"oui-slider__control\">\n <BaseSlider.Track className=\"oui-slider__track\">\n <BaseSlider.Indicator className=\"oui-slider__indicator\" />\n {Array.from({ length: count }, (_, index) => (\n <BaseSlider.Thumb\n key={index}\n index={count > 1 ? index : undefined}\n className=\"oui-slider__thumb\"\n aria-label={thumbLabels?.[index]}\n />\n ))}\n </BaseSlider.Track>\n </BaseSlider.Control>\n </BaseSlider.Root>\n );\n}\n"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"Slider.js","names":["React","Slider","BaseSlider","withClass","SliderProps","Root","Props","label","ReactNode","showValue","thumbLabels","t0","$","_c","className","defaultValue","props","ref","value","initial","count","Array","isArray","length","t1","t2","t3","Symbol","for","t4","from","_","index","undefined","t5","Slider","_c","BaseSlider"],"sources":["../../../src/components/slider/Slider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slider as BaseSlider } from '@base-ui/react/slider';\nimport { withClass } from '../../utils/cx';\n\nexport interface SliderProps extends BaseSlider.Root.Props {\n /** Visible label above the track. */\n label?: React.ReactNode;\n /** Show the formatted value next to the label. */\n showValue?: boolean;\n /** Accessible labels for each thumb (needed for range sliders). */\n thumbLabels?: string[];\n}\n\n/** Single value or range (pass an array) slider. */\nexport function Slider({ label, showValue, thumbLabels, className, value, defaultValue, ref, ...props }: SliderProps) {\n const initial = value ?? defaultValue;\n const count = Array.isArray(initial) ? initial.length : 1;\n return (\n <BaseSlider.Root\n ref={ref}\n className={withClass('oui-slider', className)}\n value={value}\n defaultValue={defaultValue}\n {...props}\n >\n {(label || showValue) && (\n <div className=\"oui-slider__header\">\n {label && <BaseSlider.Label className=\"oui-field__label\">{label}</BaseSlider.Label>}\n {showValue && <BaseSlider.Value className=\"oui-slider__value\" />}\n </div>\n )}\n <BaseSlider.Control className=\"oui-slider__control\">\n <BaseSlider.Track className=\"oui-slider__track\">\n <BaseSlider.Indicator className=\"oui-slider__indicator\" />\n {Array.from({ length: count }, (_, index) => (\n <BaseSlider.Thumb\n key={index}\n index={count > 1 ? index : undefined}\n className=\"oui-slider__thumb\"\n aria-label={thumbLabels?.[index]}\n />\n ))}\n </BaseSlider.Track>\n </BaseSlider.Control>\n </BaseSlider.Root>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
/** Ref to the spinner element. */
|
|
3
4
|
ref?: React.Ref<HTMLSpanElement>;
|
|
4
5
|
/** Diameter, e.g. `1rem` or `24`. Defaults to `1.25em`. */
|
|
5
6
|
size?: number | string;
|
|
6
7
|
/** Accessible label. Set to `null` when a parent already announces loading. */
|
|
7
8
|
label?: string | null;
|
|
8
9
|
}
|
|
10
|
+
/** Indeterminate loading indicator that follows `currentColor`. */
|
|
9
11
|
export declare function Spinner({ size, label, className, style, ref, ...props }: SpinnerProps): React.JSX.Element;
|
|
@@ -4,6 +4,7 @@ import { c } from "react/compiler-runtime";
|
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/spinner/Spinner.tsx
|
|
7
|
+
/** Indeterminate loading indicator that follows `currentColor`. */
|
|
7
8
|
function Spinner(t0) {
|
|
8
9
|
const $ = c(20);
|
|
9
10
|
let className;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.js","names":["React","cx","SpinnerProps","HTMLAttributes","HTMLSpanElement","ref","Ref","size","label","Spinner","t0","$","_c","className","props","style","t1","undefined","t2","t3","t4","t5","t6","width","height","t7","_c"],"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n ref?: React.Ref<HTMLSpanElement>;\n /** Diameter, e.g. `1rem` or `24`. Defaults to `1.25em`. */\n size?: number | string;\n /** Accessible label. Set to `null` when a parent already announces loading. */\n label?: string | null;\n}\n\nexport function Spinner({ size, label = 'Loading', className, style, ref, ...props }: SpinnerProps) {\n return (\n <span\n ref={ref}\n role={label ? 'status' : undefined}\n aria-label={label ?? undefined}\n aria-hidden={label ? undefined : true}\n className={cx('oui-spinner', className)}\n style={size != null ? { width: size, height: size, ...style } : style}\n {...props}\n />\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Spinner.js","names":["React","cx","SpinnerProps","HTMLAttributes","HTMLSpanElement","ref","Ref","size","label","Spinner","t0","$","_c","className","props","style","t1","undefined","t2","t3","t4","t5","t6","width","height","t7","_c"],"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Ref to the spinner element. */\n ref?: React.Ref<HTMLSpanElement>;\n /** Diameter, e.g. `1rem` or `24`. Defaults to `1.25em`. */\n size?: number | string;\n /** Accessible label. Set to `null` when a parent already announces loading. */\n label?: string | null;\n}\n\n/** Indeterminate loading indicator that follows `currentColor`. */\nexport function Spinner({ size, label = 'Loading', className, style, ref, ...props }: SpinnerProps) {\n return (\n <span\n ref={ref}\n role={label ? 'status' : undefined}\n aria-label={label ?? undefined}\n aria-hidden={label ? undefined : true}\n className={cx('oui-spinner', className)}\n style={size != null ? { width: size, height: size, ...style } : style}\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAOS,QAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAT;CAAA,IAAAE;CAAA,IAAAQ;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAiB,CAAA,CAAAH,MAAAC,OAAAQ,IAAAH,WAAAE,OAAAV,KAAA,GAAAS,SAAAJ;EAA0EC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAN;EAAAM,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAH,YAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAN,MAAAM,EAAA;EAAAJ,OAAAI,EAAA;EAAAI,QAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAAlE,MAAAH,QAAAQ,OAAAC,KAAAA,IAAA,YAAAD;CAIpB,MAAAE,KAAAV,QAAA,WAAAS,KAAAA;CACM,MAAAE,KAAAX,SAAAS,KAAAA;CACC,MAAAG,KAAAZ,QAAAS,KAAAA,IAAA;CAAwB,IAAAI;CAAA,IAAAV,EAAA,OAAAE,WAAA;EAC1BQ,KAAApB,GAAG,eAAeY,SAAS;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,OAAAJ,QAAAI,EAAA,QAAAI,OAAA;EAChCO,KAAAf,QAAQ,OAAR;GAAAgB,OAAwBhB;GAAIiB,QAAUjB;GAAI,GAAKQ;EAAc,IAA7DA;EAA8DJ,EAAA,KAAAJ;EAAAI,EAAA,MAAAI;EAAAJ,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAc;CAAA,IAAAd,EAAA,QAAAG,SAAAH,EAAA,QAAAN,OAAAM,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAW,IAAA;EANvEG,KAAA,oBAAA,QAAA;GACOpB;GACC,MAAAa;GACM,cAAAC;GACC,eAAAC;GACF,WAAAC;GACJ,OAAAC;GAA8D,GACjER;EAAK,CAAA;EACTH,EAAA,MAAAG;EAAAH,EAAA,MAAAN;EAAAM,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,OARFc;AAQE"}
|
|
@@ -3,12 +3,15 @@ import { type CardProps } from '../card/Card';
|
|
|
3
3
|
export type StatTrend = 'up' | 'down' | 'flat';
|
|
4
4
|
export type StatTone = 'positive' | 'negative' | 'neutral';
|
|
5
5
|
export interface StatCardProps extends Omit<CardProps, 'children'> {
|
|
6
|
+
/** What the number measures. */
|
|
6
7
|
label: React.ReactNode;
|
|
8
|
+
/** The headline figure. */
|
|
7
9
|
value: React.ReactNode;
|
|
8
10
|
/** Unit beside the value, e.g. "kWh" or "orders". */
|
|
9
11
|
unit?: React.ReactNode;
|
|
10
12
|
/** Change indicator, e.g. "+12.4%". */
|
|
11
13
|
delta?: React.ReactNode;
|
|
14
|
+
/** Arrow direction shown next to `delta`. */
|
|
12
15
|
trend?: StatTrend;
|
|
13
16
|
/** Color of the delta. Defaults to positive for `up`, negative for `down`. */
|
|
14
17
|
tone?: StatTone;
|
|
@@ -16,6 +19,7 @@ export interface StatCardProps extends Omit<CardProps, 'children'> {
|
|
|
16
19
|
hint?: React.ReactNode;
|
|
17
20
|
/** Icon tile shown in the top-right corner. */
|
|
18
21
|
icon?: React.ReactNode;
|
|
22
|
+
/** Replaces the value with a skeleton while data loads. */
|
|
19
23
|
loading?: boolean;
|
|
20
24
|
}
|
|
21
25
|
/** KPI tile: label, large value, optional unit and trend. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatCard.js","names":["React","cx","Card","CardProps","Skeleton","TrendingDownIcon","TrendingUpIcon","StatTrend","StatTone","StatCardProps","Omit","label","ReactNode","value","unit","delta","trend","tone","hint","icon","loading","StatCard","t0","$","_c","className","props","ref","resolvedTone","t1","t2","t3","t4","t5","t6","_c","_Fragment"],"sources":["../../../src/components/stat-card/StatCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Card, type CardProps } from '../card/Card';\nimport { Skeleton } from '../skeleton/Skeleton';\nimport { TrendingDownIcon, TrendingUpIcon } from '../../icons';\n\nexport type StatTrend = 'up' | 'down' | 'flat';\nexport type StatTone = 'positive' | 'negative' | 'neutral';\n\nexport interface StatCardProps extends Omit<CardProps, 'children'> {\n label: React.ReactNode;\n value: React.ReactNode;\n /** Unit beside the value, e.g. \"kWh\" or \"orders\". */\n unit?: React.ReactNode;\n /** Change indicator, e.g. \"+12.4%\". */\n delta?: React.ReactNode;\n trend?: StatTrend;\n /** Color of the delta. Defaults to positive for `up`, negative for `down`. */\n tone?: StatTone;\n /** Supporting text under the value. */\n hint?: React.ReactNode;\n /** Icon tile shown in the top-right corner. */\n icon?: React.ReactNode;\n loading?: boolean;\n}\n\n/** KPI tile: label, large value, optional unit and trend. */\nexport function StatCard({\n label,\n value,\n unit,\n delta,\n trend,\n tone,\n hint,\n icon,\n loading,\n className,\n ref,\n ...props\n}: StatCardProps) {\n const resolvedTone: StatTone = tone ?? (trend === 'up' ? 'positive' : trend === 'down' ? 'negative' : 'neutral');\n return (\n <Card ref={ref} className={cx('oui-stat', className)} {...props}>\n <div className=\"oui-stat__header\">\n <p className=\"oui-stat__label\">{label}</p>\n {icon && <span className=\"oui-stat__icon\">{icon}</span>}\n </div>\n {loading ? (\n <div className=\"oui-stat__loading\">\n <Skeleton height=\"2.25rem\" width=\"55%\" />\n <Skeleton height=\"0.9rem\" width=\"35%\" />\n </div>\n ) : (\n <>\n <div className=\"oui-stat__body\">\n <p className=\"oui-stat__value\">{value}</p>\n {unit && <p className=\"oui-stat__unit\">{unit}</p>}\n </div>\n {(delta || hint) && (\n <div className=\"oui-stat__footer\">\n {delta && (\n <span className=\"oui-stat__delta\" data-tone={resolvedTone}>\n {trend === 'up' && <TrendingUpIcon />}\n {trend === 'down' && <TrendingDownIcon />}\n {delta}\n </span>\n )}\n {hint && <span className=\"oui-stat__hint\">{hint}</span>}\n </div>\n )}\n </>\n )}\n </Card>\n );\n}\n"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"StatCard.js","names":["React","cx","Card","CardProps","Skeleton","TrendingDownIcon","TrendingUpIcon","StatTrend","StatTone","StatCardProps","Omit","label","ReactNode","value","unit","delta","trend","tone","hint","icon","loading","StatCard","t0","$","_c","className","props","ref","resolvedTone","t1","t2","t3","t4","t5","t6","_c","_Fragment"],"sources":["../../../src/components/stat-card/StatCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Card, type CardProps } from '../card/Card';\nimport { Skeleton } from '../skeleton/Skeleton';\nimport { TrendingDownIcon, TrendingUpIcon } from '../../icons';\n\nexport type StatTrend = 'up' | 'down' | 'flat';\nexport type StatTone = 'positive' | 'negative' | 'neutral';\n\nexport interface StatCardProps extends Omit<CardProps, 'children'> {\n /** What the number measures. */\n label: React.ReactNode;\n /** The headline figure. */\n value: React.ReactNode;\n /** Unit beside the value, e.g. \"kWh\" or \"orders\". */\n unit?: React.ReactNode;\n /** Change indicator, e.g. \"+12.4%\". */\n delta?: React.ReactNode;\n /** Arrow direction shown next to `delta`. */\n trend?: StatTrend;\n /** Color of the delta. Defaults to positive for `up`, negative for `down`. */\n tone?: StatTone;\n /** Supporting text under the value. */\n hint?: React.ReactNode;\n /** Icon tile shown in the top-right corner. */\n icon?: React.ReactNode;\n /** Replaces the value with a skeleton while data loads. */\n loading?: boolean;\n}\n\n/** KPI tile: label, large value, optional unit and trend. */\nexport function StatCard({\n label,\n value,\n unit,\n delta,\n trend,\n tone,\n hint,\n icon,\n loading,\n className,\n ref,\n ...props\n}: StatCardProps) {\n const resolvedTone: StatTone = tone ?? (trend === 'up' ? 'positive' : trend === 'down' ? 'negative' : 'neutral');\n return (\n <Card ref={ref} className={cx('oui-stat', className)} {...props}>\n <div className=\"oui-stat__header\">\n <p className=\"oui-stat__label\">{label}</p>\n {icon && <span className=\"oui-stat__icon\">{icon}</span>}\n </div>\n {loading ? (\n <div className=\"oui-stat__loading\">\n <Skeleton height=\"2.25rem\" width=\"55%\" />\n <Skeleton height=\"0.9rem\" width=\"35%\" />\n </div>\n ) : (\n <>\n <div className=\"oui-stat__body\">\n <p className=\"oui-stat__value\">{value}</p>\n {unit && <p className=\"oui-stat__unit\">{unit}</p>}\n </div>\n {(delta || hint) && (\n <div className=\"oui-stat__footer\">\n {delta && (\n <span className=\"oui-stat__delta\" data-tone={resolvedTone}>\n {trend === 'up' && <TrendingUpIcon />}\n {trend === 'down' && <TrendingDownIcon />}\n {delta}\n </span>\n )}\n {hint && <span className=\"oui-stat__hint\">{hint}</span>}\n </div>\n )}\n </>\n )}\n </Card>\n );\n}\n"],"mappings":"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"}
|
|
@@ -17,11 +17,15 @@ export interface StepperLabels {
|
|
|
17
17
|
error: string;
|
|
18
18
|
}
|
|
19
19
|
export interface StepperProps extends React.OlHTMLAttributes<HTMLOListElement> {
|
|
20
|
+
/** Ref to the `<ol>` element. */
|
|
20
21
|
ref?: React.Ref<HTMLOListElement>;
|
|
22
|
+
/** The steps in order. */
|
|
21
23
|
steps: StepItem[];
|
|
22
24
|
/** Index of the active step. Earlier steps are complete; `steps.length` completes all of them. */
|
|
23
25
|
current?: number;
|
|
26
|
+
/** Lay the steps out in a row or a column. */
|
|
24
27
|
orientation?: 'horizontal' | 'vertical';
|
|
28
|
+
/** Marker and text size. */
|
|
25
29
|
size?: 'sm' | 'md';
|
|
26
30
|
/** Screen-reader text for each status. */
|
|
27
31
|
labels?: Partial<StepperLabels>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stepper.js","names":["React","cx","CheckIcon","XIcon","StepStatus","StepItem","id","label","ReactNode","description","status","icon","StepperLabels","complete","current","upcoming","error","defaultLabels","StepperProps","OlHTMLAttributes","HTMLOListElement","ref","Ref","steps","orientation","size","labels","Partial","Stepper","t0","$","_c","className","props","t1","t2","t3","undefined","t4","text","t5","t6","t7","step","index","map","_c"],"sources":["../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { CheckIcon, XIcon } from '../../icons';\n\nexport type StepStatus = 'complete' | 'current' | 'upcoming' | 'error';\n\nexport interface StepItem {\n /** Stable key; falls back to the index. */\n id?: string;\n label: React.ReactNode;\n description?: React.ReactNode;\n /** Overrides the status derived from `current`. */\n status?: StepStatus;\n /** Replaces the number / check mark inside the marker. */\n icon?: React.ReactNode;\n}\n\nexport interface StepperLabels {\n complete: string;\n current: string;\n upcoming: string;\n error: string;\n}\n\nconst defaultLabels: StepperLabels = {\n complete: 'Completed',\n current: 'Current',\n upcoming: 'Not started',\n error: 'Failed',\n};\n\nexport interface StepperProps extends React.OlHTMLAttributes<HTMLOListElement> {\n ref?: React.Ref<HTMLOListElement>;\n steps: StepItem[];\n /** Index of the active step. Earlier steps are complete; `steps.length` completes all of them. */\n current?: number;\n orientation?: 'horizontal' | 'vertical';\n size?: 'sm' | 'md';\n /** Screen-reader text for each status. */\n labels?: Partial<StepperLabels>;\n}\n\n/** Progress through an ordered sequence: a wizard, a checkout, a background job's phases. */\nexport function Stepper({\n steps,\n current = 0,\n orientation = 'horizontal',\n size = 'md',\n labels,\n className,\n ref,\n ...props\n}: StepperProps) {\n const text = { ...defaultLabels, ...labels };\n return (\n <ol ref={ref} className={cx('oui-stepper', className)} data-orientation={orientation} data-size={size} {...props}>\n {steps.map((step, index) => {\n const status: StepStatus =\n step.status ?? (index < current ? 'complete' : index === current ? 'current' : 'upcoming');\n return (\n <li\n key={step.id ?? index}\n className=\"oui-stepper__step\"\n data-status={status}\n aria-current={status === 'current' ? 'step' : undefined}\n >\n <span className=\"oui-stepper__marker\" aria-hidden>\n {step.icon ?? (status === 'complete' ? <CheckIcon strokeWidth={3} /> : status === 'error' ? <XIcon strokeWidth={3} /> : index + 1)}\n </span>\n <span className=\"oui-stepper__text\">\n <span className=\"oui-stepper__label\">\n {step.label}\n <span className=\"oui-visually-hidden\"> ({text[status]})</span>\n </span>\n {step.description && <span className=\"oui-stepper__description\">{step.description}</span>}\n </span>\n </li>\n );\n })}\n </ol>\n );\n}\n"],"mappings":";;;;;;;AAwBA,IAAMiB,gBAA+B;CACnCJ,UAAU;CACVC,SAAS;CACTC,UAAU;CACVC,OAAO;AACT;;
|
|
1
|
+
{"version":3,"file":"Stepper.js","names":["React","cx","CheckIcon","XIcon","StepStatus","StepItem","id","label","ReactNode","description","status","icon","StepperLabels","complete","current","upcoming","error","defaultLabels","StepperProps","OlHTMLAttributes","HTMLOListElement","ref","Ref","steps","orientation","size","labels","Partial","Stepper","t0","$","_c","className","props","t1","t2","t3","undefined","t4","text","t5","t6","t7","step","index","map","_c"],"sources":["../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { CheckIcon, XIcon } from '../../icons';\n\nexport type StepStatus = 'complete' | 'current' | 'upcoming' | 'error';\n\nexport interface StepItem {\n /** Stable key; falls back to the index. */\n id?: string;\n label: React.ReactNode;\n description?: React.ReactNode;\n /** Overrides the status derived from `current`. */\n status?: StepStatus;\n /** Replaces the number / check mark inside the marker. */\n icon?: React.ReactNode;\n}\n\nexport interface StepperLabels {\n complete: string;\n current: string;\n upcoming: string;\n error: string;\n}\n\nconst defaultLabels: StepperLabels = {\n complete: 'Completed',\n current: 'Current',\n upcoming: 'Not started',\n error: 'Failed',\n};\n\nexport interface StepperProps extends React.OlHTMLAttributes<HTMLOListElement> {\n /** Ref to the `<ol>` element. */\n ref?: React.Ref<HTMLOListElement>;\n /** The steps in order. */\n steps: StepItem[];\n /** Index of the active step. Earlier steps are complete; `steps.length` completes all of them. */\n current?: number;\n /** Lay the steps out in a row or a column. */\n orientation?: 'horizontal' | 'vertical';\n /** Marker and text size. */\n size?: 'sm' | 'md';\n /** Screen-reader text for each status. */\n labels?: Partial<StepperLabels>;\n}\n\n/** Progress through an ordered sequence: a wizard, a checkout, a background job's phases. */\nexport function Stepper({\n steps,\n current = 0,\n orientation = 'horizontal',\n size = 'md',\n labels,\n className,\n ref,\n ...props\n}: StepperProps) {\n const text = { ...defaultLabels, ...labels };\n return (\n <ol ref={ref} className={cx('oui-stepper', className)} data-orientation={orientation} data-size={size} {...props}>\n {steps.map((step, index) => {\n const status: StepStatus =\n step.status ?? (index < current ? 'complete' : index === current ? 'current' : 'upcoming');\n return (\n <li\n key={step.id ?? index}\n className=\"oui-stepper__step\"\n data-status={status}\n aria-current={status === 'current' ? 'step' : undefined}\n >\n <span className=\"oui-stepper__marker\" aria-hidden>\n {step.icon ?? (status === 'complete' ? <CheckIcon strokeWidth={3} /> : status === 'error' ? <XIcon strokeWidth={3} /> : index + 1)}\n </span>\n <span className=\"oui-stepper__text\">\n <span className=\"oui-stepper__label\">\n {step.label}\n <span className=\"oui-visually-hidden\"> ({text[status]})</span>\n </span>\n {step.description && <span className=\"oui-stepper__description\">{step.description}</span>}\n </span>\n </li>\n );\n })}\n </ol>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
|
|
3
|
+
/** Ref to the `<table>`. */
|
|
3
4
|
ref?: React.Ref<HTMLTableElement>;
|
|
4
|
-
/** Row height. */
|
|
5
|
+
/** Row height and cell padding. `normal` suits data-heavy screens; `comfortable` adds air for short tables. */
|
|
5
6
|
density?: 'compact' | 'normal' | 'comfortable';
|
|
6
7
|
/** Alternating row background. */
|
|
7
8
|
striped?: boolean;
|
|
@@ -12,6 +13,21 @@ export interface TableProps extends React.TableHTMLAttributes<HTMLTableElement>
|
|
|
12
13
|
/** Props for the horizontally scrolling wrapper. */
|
|
13
14
|
wrapperProps?: React.HTMLAttributes<HTMLDivElement>;
|
|
14
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`,
|
|
18
|
+
* `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting
|
|
19
|
+
* and pagination use `DataTable` instead.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <Table striped>
|
|
23
|
+
* <TableHeader>
|
|
24
|
+
* <TableRow><TableHead>Site</TableHead><TableHead align="end">kWh</TableHead></TableRow>
|
|
25
|
+
* </TableHeader>
|
|
26
|
+
* <TableBody>
|
|
27
|
+
* <TableRow><TableCell>Győr</TableCell><TableCell numeric>1,204</TableCell></TableRow>
|
|
28
|
+
* </TableBody>
|
|
29
|
+
* </Table>
|
|
30
|
+
*/
|
|
15
31
|
export declare function Table({ density, striped, hoverable, stickyHeader, wrapperProps, className, ref, ...props }: TableProps): React.JSX.Element;
|
|
16
32
|
export declare const TableHeader: {
|
|
17
33
|
(props: import("../../utils/primitive").PrimitiveProps<"thead">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
@@ -36,18 +52,25 @@ export declare const TableCaption: {
|
|
|
36
52
|
type Align = 'start' | 'center' | 'end';
|
|
37
53
|
export type SortDirection = 'asc' | 'desc' | false;
|
|
38
54
|
export interface TableHeadProps extends Omit<React.ThHTMLAttributes<HTMLTableCellElement>, 'align'> {
|
|
55
|
+
/** Ref to the `<th>`. */
|
|
39
56
|
ref?: React.Ref<HTMLTableCellElement>;
|
|
57
|
+
/** Horizontal alignment of the header content. */
|
|
40
58
|
align?: Align;
|
|
41
59
|
/** Current sort of this column. Passing it (even `false`) makes the header sortable. */
|
|
42
60
|
sort?: SortDirection;
|
|
61
|
+
/** Called when the sortable header is clicked. */
|
|
43
62
|
onSort?: () => void;
|
|
44
63
|
}
|
|
64
|
+
/** Column header cell (`<th>`), optionally a sort button. */
|
|
45
65
|
export declare function TableHead({ align, sort, onSort, className, children, ref, ...props }: TableHeadProps): React.JSX.Element;
|
|
46
66
|
export interface TableCellProps extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, 'align'> {
|
|
67
|
+
/** Ref to the `<td>`. */
|
|
47
68
|
ref?: React.Ref<HTMLTableCellElement>;
|
|
69
|
+
/** Horizontal alignment. Defaults to `end` when `numeric`, else `start`. */
|
|
48
70
|
align?: Align;
|
|
49
71
|
/** Tabular figures for numeric columns. */
|
|
50
72
|
numeric?: boolean;
|
|
51
73
|
}
|
|
74
|
+
/** Body cell (`<td>`). `numeric` right-aligns and uses tabular figures. */
|
|
52
75
|
export declare function TableCell({ align, numeric, className, ref, ...props }: TableCellProps): React.JSX.Element;
|
|
53
76
|
export {};
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx } from "../../utils/cx.js";
|
|
3
3
|
import { createPrimitive } from "../../utils/primitive.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ChevronDownIcon, ChevronUpIcon, ChevronsUpDownIcon } from "../../icons/index.js";
|
|
5
5
|
import { c } from "react/compiler-runtime";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
//#region src/components/table/Table.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`,
|
|
11
|
+
* `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting
|
|
12
|
+
* and pagination use `DataTable` instead.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <Table striped>
|
|
16
|
+
* <TableHeader>
|
|
17
|
+
* <TableRow><TableHead>Site</TableHead><TableHead align="end">kWh</TableHead></TableRow>
|
|
18
|
+
* </TableHeader>
|
|
19
|
+
* <TableBody>
|
|
20
|
+
* <TableRow><TableCell>Győr</TableCell><TableCell numeric>1,204</TableCell></TableRow>
|
|
21
|
+
* </TableBody>
|
|
22
|
+
* </Table>
|
|
23
|
+
*/
|
|
9
24
|
function Table(t0) {
|
|
10
25
|
const $ = c(25);
|
|
11
26
|
let className;
|
|
@@ -94,6 +109,7 @@ var TableBody = createPrimitive("tbody", "oui-table__body", "TableBody");
|
|
|
94
109
|
var TableFooter = createPrimitive("tfoot", "oui-table__footer", "TableFooter");
|
|
95
110
|
var TableRow = createPrimitive("tr", "oui-table__row", "TableRow");
|
|
96
111
|
var TableCaption = createPrimitive("caption", "oui-table__caption", "TableCaption");
|
|
112
|
+
/** Column header cell (`<th>`), optionally a sort button. */
|
|
97
113
|
function TableHead(t0) {
|
|
98
114
|
const $ = c(22);
|
|
99
115
|
let children;
|
|
@@ -138,7 +154,7 @@ function TableHead(t0) {
|
|
|
138
154
|
className: "oui-table__sort",
|
|
139
155
|
"data-active": sort ? "" : void 0,
|
|
140
156
|
onClick: onSort,
|
|
141
|
-
children: [children, sort === "asc" ? /* @__PURE__ */ jsx(
|
|
157
|
+
children: [children, sort === "asc" ? /* @__PURE__ */ jsx(ChevronUpIcon, {}) : sort === "desc" ? /* @__PURE__ */ jsx(ChevronDownIcon, {}) : /* @__PURE__ */ jsx(ChevronsUpDownIcon, {})]
|
|
142
158
|
}) : children;
|
|
143
159
|
$[10] = children;
|
|
144
160
|
$[11] = onSort;
|
|
@@ -167,6 +183,7 @@ function TableHead(t0) {
|
|
|
167
183
|
} else t5 = $[21];
|
|
168
184
|
return t5;
|
|
169
185
|
}
|
|
186
|
+
/** Body cell (`<td>`). `numeric` right-aligns and uses tabular figures. */
|
|
170
187
|
function TableCell(t0) {
|
|
171
188
|
const $ = c(14);
|
|
172
189
|
let align;
|