@kazee-ds/react 0.11.0 → 0.12.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.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["AriaButton","_Fragment","Root","AriaToggleButton","Root","AriaToggleButtonGroup","Popover","AriaSelect","Button","AriaListBox","ListBoxItem","AriaFieldError","AriaTextField","AriaInput","_Fragment","AriaSelect","Label","Button","ListBox","_Fragment","AriaInput","Label","Text","FieldError","Label","AriaTextArea","Text","FieldError","AriaLabel","AriaCheckbox","AriaRadioGroup","AriaCheckbox","_Fragment","AriaRadioGroup","Label","_Fragment","_Fragment","Text","FieldError","ListBox","ListBoxItem","AriaNumberField","Group","Input","Button","AriaNumberField","_Fragment","Label","Group","Button","Input","Text","FieldError","_Fragment","AriaTabs","Button","Dialog","Popover","Tooltip","Header","Separator","DataTableColumnPart","_Fragment","Button","AriaDialog","DialogBackdropPart","_Fragment","Popover","Separator","Header","Button","Button","AriaPopover","Dialog","Button","AriaTooltip","AriaComboBox","Input","Button","Label","ListBox","ListBoxItem","_Fragment","ToggleButtonGroup","ToggleButton","ComposedToggleGroup","ComposedToggleItem","Button","Popover","Dialog","_Fragment","Button","CalendarGrid","CalendarGridHeader","CalendarHeaderCell","CalendarGridBody","CalendarCell","AriaCalendar","AriaRangeCalendar","RangeCalendar","Button","Dialog","Popover","_Fragment","ToastQueue","I18nProvider","ToastRegion","ToastList","_Fragment","ToastContent","Text","Button","AriaToast","_Fragment","Label","AriaTimeField","AriaDateField","Button","Popover","Dialog","_Fragment"],"sources":["../src/Button.tsx","../src/styling.ts","../src/ButtonGroup.tsx","../src/ToggleButton.tsx","../src/OverlayDirection.tsx","../src/ToggleButtonGroup.tsx","../src/selection-popover.tsx","../src/label-context.ts","../src/icons.tsx","../src/input-clear.tsx","../src/control-composition.tsx","../src/field.tsx","../src/SelectionValidation.tsx","../src/selection-options.ts","../src/Select.tsx","../src/SelectGroup.tsx","../src/Input.tsx","../src/Textarea.tsx","../src/Label.tsx","../src/switch-visual.tsx","../src/choice-composition.tsx","../src/Checkbox.tsx","../src/RadioGroup.tsx","../src/Switch.tsx","../src/form-context.ts","../src/FieldComponent.tsx","../src/Form.tsx","../src/listbox-selection.ts","../src/Listbox.tsx","../src/number-composition.tsx","../src/NumberField.tsx","../src/Card.tsx","../src/visual-slot.tsx","../src/Badge.tsx","../src/Avatar.tsx","../src/AvatarGroup.tsx","../src/Skeleton.tsx","../src/Separator.tsx","../src/tabs-indicator.ts","../src/Tabs.tsx","../src/pagination-model.ts","../src/Pagination.tsx","../src/structural-parts.tsx","../src/Table.tsx","../src/useDisclosure.ts","../src/layout-parts.tsx","../src/DataTable.tsx","../src/Alert.tsx","../src/Empty.tsx","../src/Breadcrumb.tsx","../src/Sidebar.tsx","../src/chart-model.ts","../src/Chart.tsx","../src/Dialog.tsx","../src/overlay-model.ts","../src/DropdownMenu.tsx","../src/Popover.tsx","../src/Tooltip.tsx","../src/Spinner.tsx","../src/combobox-composition.tsx","../src/Combobox.tsx","../src/toggle-group-model.ts","../src/ToggleGroup.tsx","../src/date-range-composition.tsx","../src/Calendar.tsx","../src/date-range-model.ts","../src/DateRangePicker.tsx","../src/toast-model.ts","../src/Toast.tsx","../src/temporal-model.ts","../src/TemporalField.tsx","../src/TimeControls.tsx","../src/TemporalPicker.tsx"],"sourcesContent":["import { type StylingProps } from './styling.js';\nimport {\n Button as AriaButton,\n type ButtonProps as AriaButtonProps,\n} from 'react-aria-components/Button';\nimport { useContext, type ReactNode } from 'react';\nimport { ProgressBarContext } from 'react-aria-components/ProgressBar';\n\nfunction PendingLabelAnchor() {\n const context = useContext(ProgressBarContext);\n const id = context && 'id' in context ? context.id : undefined;\n return id ? <span id={id} hidden aria-hidden=\"true\" /> : null;\n}\n\nexport type ButtonVariant =\n 'primary' | 'secondary' | 'danger' | 'outline' | 'tertiary' | 'ghost' | 'danger-soft' | 'ai';\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/** The event passed to `onPress`: pointer type, modifier keys, and the target element. */\nexport type ButtonPressEvent = Parameters<NonNullable<AriaButtonProps['onPress']>>[0];\n\n/** Public flags supplied to the Button render function. */\nexport interface ButtonRenderProps {\n isPending: boolean;\n isDisabled: boolean;\n isHovered: boolean;\n isPressed: boolean;\n isFocused: boolean;\n isFocusVisible: boolean;\n}\n/**\n * The props the design system supports on `Button`. Anything not listed here is not part of the\n * public API, even if the underlying React Aria button would accept it.\n */\nexport interface ButtonProps extends StylingProps {\n /** Label or content of the button. */\n children?: ReactNode | ((state: ButtonRenderProps) => ReactNode);\n /** Square icon button. Supply aria-label or aria-labelledby. */\n isIconOnly?: boolean;\n /** Blocks actions while retaining focus. Render a Spinner through children if desired. */\n isPending?: boolean;\n /** Visual style. Use `danger` for destructive actions such as delete. */\n variant?: ButtonVariant;\n /** Size of the button. */\n size?: ButtonSize;\n /** Fill the container width. Icon-only buttons retain their square shape. */\n fullWidth?: boolean;\n /** Disables the button. The button is not focusable and `onPress` is not called. */\n isDisabled?: boolean;\n /**\n * Called when the button is activated by mouse, touch, keyboard, or screen reader. Use this\n * instead of `onClick`.\n */\n onPress?: (event: ButtonPressEvent) => void;\n /** Button type inside a form. Defaults to `button`. */\n type?: 'button' | 'submit' | 'reset';\n /** Accessible name when the button has no visible text, such as an icon-only button. */\n 'aria-label'?: string;\n /** Id of an element that labels the button. */\n 'aria-labelledby'?: string;\n /** Id of an element that describes the button. */\n 'aria-describedby'?: string;\n /** Id of the button element. */\n id?: string;\n /** Focuses the button when it first renders. */\n autoFocus?: boolean;\n}\n\nexport function Button({\n variant = 'primary',\n size = 'md',\n isIconOnly = false,\n isPending = false,\n isDisabled = false,\n fullWidth = false,\n type = 'button',\n children,\n className: consumerClassName,\n classNames,\n style,\n ...props\n}: ButtonProps) {\n const className = [\n 'button',\n classNames?.root,\n consumerClassName,\n `button--${variant}`,\n size !== 'md' && `button--${size}`,\n isIconOnly && 'button--icon-only',\n fullWidth && !isIconOnly && 'button--full-width',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <AriaButton\n {...props}\n type={isPending ? 'button' : type}\n className={className}\n style={style}\n isDisabled={isDisabled}\n isPending={isPending}\n >\n {(state) => (\n <>\n {typeof children === 'function'\n ? children({\n isPending: state.isPending,\n isDisabled: state.isDisabled,\n isHovered: state.isHovered,\n isPressed: state.isPressed,\n isFocused: state.isFocused,\n isFocusVisible: state.isFocusVisible,\n })\n : children}\n {isPending && <PendingLabelAnchor />}\n </>\n )}\n </AriaButton>\n );\n}\n","import type { CSSProperties } from 'react';\n\n/** Stable public styling slots; classes are applied directly to their owning element. */\nexport interface StylingProps<Part extends string = never> {\n className?: string;\n style?: CSSProperties;\n classNames?: Partial<Record<Part | 'root', string>>;\n}\n\nexport function partClass(base: string, override?: string): string {\n return override ? `${base} ${override}` : base;\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport {\n Children,\n Fragment,\n cloneElement,\n isValidElement,\n type ReactNode,\n type ReactElement,\n} from 'react';\nimport { Button, type ButtonProps, type ButtonSize, type ButtonVariant } from './Button.js';\n\nexport interface ButtonGroupProps extends StylingProps {\n label: string;\n children: ReactNode;\n variant?: ButtonVariant;\n size?: ButtonSize;\n isDisabled?: boolean;\n fullWidth?: boolean;\n orientation?: 'horizontal' | 'vertical';\n dir?: 'ltr' | 'rtl';\n}\nexport function ButtonGroupSeparator({ className, style, classNames }: StylingProps = {}) {\n return (\n <span\n className={partClass(partClass('button-group__separator', classNames?.root), className)}\n style={style}\n aria-hidden=\"true\"\n />\n );\n}\nfunction Root({\n children,\n label,\n variant,\n size,\n isDisabled,\n fullWidth,\n orientation = 'horizontal',\n dir,\n className,\n style,\n classNames,\n}: ButtonGroupProps) {\n function defaults(nodes: ReactNode): ReactNode {\n return Children.map(nodes, (child) => {\n if (!isValidElement(child)) return child;\n if (child.type === Fragment)\n return cloneElement(\n child as ReactElement<{ children: ReactNode }>,\n {},\n defaults((child.props as { children: ReactNode }).children),\n );\n if (child.type !== Button) return child;\n const button = child as ReactElement<ButtonProps>;\n return cloneElement(button, {\n variant: button.props.variant ?? variant,\n size: button.props.size ?? size,\n isDisabled: button.props.isDisabled ?? isDisabled,\n });\n });\n }\n return (\n <div\n role=\"group\"\n aria-label={label}\n dir={dir}\n data-orientation={orientation}\n className={partClass(\n partClass(`button-group${fullWidth ? ' button-group--full-width' : ''}`, classNames?.root),\n className,\n )}\n style={style}\n >\n {defaults(children)}\n </div>\n );\n}\nexport const ButtonGroup = /* @__PURE__ */ Object.assign(Root, { Separator: ButtonGroupSeparator });\n","import { type StylingProps } from './styling.js';\nimport { createContext, useContext, type ReactNode } from 'react';\nimport {\n ToggleButton as AriaToggleButton,\n type ToggleButtonRenderProps as AriaRenderProps,\n} from 'react-aria-components/ToggleButton';\nimport type { ButtonPressEvent, ButtonSize } from './Button.js';\n\nexport type ToggleButtonVariant = 'default' | 'ghost' | 'chip';\nexport type ToggleButtonRenderProps = Omit<AriaRenderProps, 'state'>;\nexport interface ToggleButtonProps extends StylingProps {\n id?: string;\n children?: ReactNode | ((state: ToggleButtonRenderProps) => ReactNode);\n variant?: ToggleButtonVariant;\n size?: ButtonSize;\n isIconOnly?: boolean;\n isSelected?: boolean;\n defaultSelected?: boolean;\n isDisabled?: boolean;\n onChange?: (selected: boolean) => void;\n onPress?: (event: ButtonPressEvent) => void;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n autoFocus?: boolean;\n}\nexport const ToggleButtonSizeContext = createContext<ButtonSize>('md');\nexport const ToggleButtonVariantContext = createContext<ToggleButtonVariant>('default');\nexport function ToggleButton({\n children,\n variant,\n size,\n isIconOnly,\n className: consumerClassName,\n classNames,\n style,\n ...props\n}: ToggleButtonProps) {\n const inheritedSize = useContext(ToggleButtonSizeContext);\n const inheritedVariant = useContext(ToggleButtonVariantContext);\n const resolvedSize = size ?? inheritedSize;\n return (\n <AriaToggleButton\n {...props}\n style={style}\n className={[\n 'button',\n classNames?.root,\n consumerClassName,\n 'toggle-button',\n `toggle-button--${variant ?? inheritedVariant}`,\n resolvedSize !== 'md' && `button--${resolvedSize}`,\n isIconOnly && 'button--icon-only',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {({ isSelected, isPressed, isHovered, isFocused, isFocusVisible, isDisabled }) =>\n typeof children === 'function'\n ? children({ isSelected, isPressed, isHovered, isFocused, isFocusVisible, isDisabled })\n : children\n }\n </AriaToggleButton>\n );\n}\n","import type { ReactNode } from 'react';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nexport function OverlayDirection({ dir, children }: { dir?: 'ltr' | 'rtl'; children: ReactNode }) {\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{children}</I18nProvider>\n ) : (\n children\n );\n}\n","import { type StylingProps } from './styling.js';\nimport type { ReactNode } from 'react';\nimport { ToggleButtonGroup as AriaToggleButtonGroup } from 'react-aria-components/ToggleButtonGroup';\nimport type { ButtonSize } from './Button.js';\nimport {\n ToggleButtonSizeContext,\n ToggleButtonVariantContext,\n type ToggleButtonVariant,\n} from './ToggleButton.js';\nimport { ButtonGroupSeparator } from './ButtonGroup.js';\nimport { OverlayDirection } from './OverlayDirection.js';\n\ninterface Common extends StylingProps {\n label: string;\n children: ReactNode;\n size?: ButtonSize;\n variant?: ToggleButtonVariant;\n isDisabled?: boolean;\n isDetached?: boolean;\n fullWidth?: boolean;\n orientation?: 'horizontal' | 'vertical';\n dir?: 'ltr' | 'rtl';\n disallowEmptySelection?: boolean;\n}\nexport type ToggleButtonGroupProps = Common &\n (\n | {\n selectionMode?: 'single';\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n }\n | {\n selectionMode: 'multiple';\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n }\n );\nconst keys = (value: string | string[] | null | undefined) =>\n Array.isArray(value) ? value : value ? [value] : [];\nfunction Root(props: ToggleButtonGroupProps) {\n return (\n <OverlayDirection dir={props.dir}>\n <ToggleButtonSizeContext.Provider value={props.size ?? 'md'}>\n <ToggleButtonVariantContext.Provider value={props.variant ?? 'default'}>\n <AriaToggleButtonGroup\n aria-label={props.label}\n dir={props.dir}\n className={[\n 'button-group',\n props.classNames?.root,\n props.className,\n 'toggle-button-group',\n (props.isDetached ?? props.variant === 'chip') && 'button-group--detached',\n props.fullWidth && 'button-group--full-width',\n ]\n .filter(Boolean)\n .join(' ')}\n style={props.style}\n orientation={props.orientation ?? 'horizontal'}\n selectionMode={props.selectionMode ?? 'single'}\n selectedKeys={props.value === undefined ? undefined : keys(props.value)}\n defaultSelectedKeys={keys(props.defaultValue)}\n onSelectionChange={(selected) => {\n if (props.isDisabled) return;\n const next = Array.from(selected, String);\n if (props.selectionMode === 'multiple') props.onChange?.(next);\n else props.onChange?.(next[0] ?? null);\n }}\n isDisabled={props.isDisabled}\n disallowEmptySelection={props.disallowEmptySelection}\n >\n {props.children}\n </AriaToggleButtonGroup>\n </ToggleButtonVariantContext.Provider>\n </ToggleButtonSizeContext.Provider>\n </OverlayDirection>\n );\n}\nexport const ToggleButtonGroup = /* @__PURE__ */ Object.assign(Root, {\n Separator: ButtonGroupSeparator,\n});\n","import { useLayoutEffect, useState } from 'react';\nimport { Popover, type PopoverProps } from 'react-aria-components/Popover';\n\n/** Positioning must receive the cap: its available-space inline style wins over CSS. */\nexport function SelectionPopover({ maxHeight, ...props }: PopoverProps) {\n const [remHeight, setRemHeight] = useState(256);\n useLayoutEffect(() => {\n if (maxHeight !== undefined && Number.isFinite(maxHeight) && maxHeight > 0) return;\n const root = document.documentElement;\n const update = () => setRemHeight((parseFloat(getComputedStyle(root).fontSize) || 16) * 16);\n update();\n const resize = new ResizeObserver(update);\n resize.observe(root);\n const mutation = new MutationObserver(update);\n mutation.observe(root, { attributes: true, attributeFilter: ['style', 'class', 'data-theme'] });\n window.addEventListener('resize', update);\n return () => {\n resize.disconnect();\n mutation.disconnect();\n window.removeEventListener('resize', update);\n };\n }, [maxHeight]);\n const limit =\n maxHeight !== undefined && Number.isFinite(maxHeight) && maxHeight > 0 ? maxHeight : remHeight;\n return <Popover {...props} maxHeight={limit} />;\n}\n","import { createContext } from 'react';\n\n/** Item labels use Text slots rather than introducing native label elements. */\nexport const ItemLabelContext = createContext(false);\n\n/** Field feedback parts share styling without coupling labels to a specific control. */\nexport const FieldPartClassesContext = createContext<{\n label?: string;\n description?: string;\n error?: string;\n}>({});\n","interface IconProps {\n className?: string;\n}\n\nexport function ChevronIcon({ className }: IconProps) {\n return (\n <svg\n className={className}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n );\n}\n\nexport function CheckIcon({ className }: IconProps) {\n return (\n <svg\n className={className}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M3.5 8.5l3 3 6-6.5\" />\n </svg>\n );\n}\n\nexport function CloseIcon({ className }: IconProps) {\n return (\n <svg\n className={className}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M4 4l8 8M12 4l-8 8\" />\n </svg>\n );\n}\n","import {\n createContext,\n useContext,\n useEffect,\n useState,\n type RefObject,\n type ButtonHTMLAttributes,\n} from 'react';\nimport { partClass } from './styling.js';\nimport { CloseIcon } from './icons.js';\nexport const InputClearContext = createContext<{\n value: string;\n disabled?: boolean;\n readOnly?: boolean;\n clear: () => void;\n} | null>(null);\nexport function useClearableInput(\n {\n value,\n defaultValue = '',\n onChange,\n isDisabled,\n isReadOnly,\n }: {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n },\n element: RefObject<HTMLElement | null>,\n) {\n const [local, setLocal] = useState(defaultValue);\n const current = value === undefined ? local : value;\n const update = (next: string) => {\n if (!isDisabled && !isReadOnly) {\n if (value === undefined) setLocal(next);\n onChange?.(next);\n }\n };\n useEffect(() => {\n const input =\n element.current instanceof HTMLInputElement || element.current instanceof HTMLTextAreaElement\n ? element.current\n : element.current?.querySelector<HTMLInputElement | HTMLTextAreaElement>('input,textarea');\n const form = input?.form;\n const reset = (event: Event) => {\n queueMicrotask(() => {\n if (!event.defaultPrevented && value === undefined) setLocal(defaultValue);\n });\n };\n form?.addEventListener('reset', reset);\n return () => form?.removeEventListener('reset', reset);\n }, [element, value, defaultValue]);\n return {\n value: current,\n update,\n context: {\n value: current,\n disabled: isDisabled,\n readOnly: isReadOnly,\n clear: () => {\n if (isDisabled || isReadOnly) return;\n update('');\n const input =\n element.current instanceof HTMLInputElement ||\n element.current instanceof HTMLTextAreaElement\n ? element.current\n : element.current?.querySelector<HTMLInputElement | HTMLTextAreaElement>(\n 'input,textarea',\n );\n input?.focus();\n },\n },\n };\n}\nexport function InputClearButton({\n className,\n children,\n onClick,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const context = useContext(InputClearContext);\n if (!context) throw new Error('Input.ClearButton requires Input.Root.');\n if (!context.value || context.readOnly) return null;\n return (\n <button\n aria-label=\"Hapus input / Clear input\"\n {...props}\n type=\"button\"\n className={partClass('input__clear', className)}\n disabled={context.disabled || props.disabled}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) context.clear();\n }}\n >\n {children ?? <CloseIcon />}\n </button>\n );\n}\n","import { SelectionPopover } from './selection-popover.js';\nimport { FieldPartClassesContext, ItemLabelContext } from './label-context.js';\nimport {\n createContext,\n forwardRef,\n useImperativeHandle,\n useRef,\n useContext,\n useEffect,\n useState,\n type Ref,\n type RefObject,\n type ComponentProps,\n type HTMLAttributes,\n} from 'react';\nimport { Button } from 'react-aria-components/Button';\nimport {\n Select as AriaSelect,\n SelectStateContext,\n SelectValue,\n type SelectProps as AriaSelectProps,\n type SelectValueProps,\n} from 'react-aria-components/Select';\nimport { type PopoverProps } from 'react-aria-components/Popover';\nimport {\n ListBox as AriaListBox,\n ListBoxItem,\n ListBoxSection,\n type ListBoxProps,\n type ListBoxItemProps,\n type ListBoxSectionProps,\n} from 'react-aria-components/ListBox';\nimport { Text, type TextProps } from 'react-aria-components/Text';\nimport { Header } from 'react-aria-components/Header';\nimport {\n FieldError as AriaFieldError,\n type FieldErrorProps,\n} from 'react-aria-components/FieldError';\nimport {\n TextField as AriaTextField,\n Input as AriaInput,\n type TextFieldProps,\n type InputProps as AriaInputProps,\n} from 'react-aria-components/TextField';\nimport { Group, type GroupProps } from 'react-aria-components/Group';\nimport { CloseIcon, ChevronIcon, CheckIcon } from './icons.js';\nimport { InputClearContext, useClearableInput } from './input-clear.js';\nimport { partClass, type StylingProps } from './styling.js';\n\nexport type SelectPart =\n | 'root'\n | 'label'\n | 'control'\n | 'trigger'\n | 'value'\n | 'indicator'\n | 'clearButton'\n | 'popover'\n | 'list'\n | 'item'\n | 'itemIndicator'\n | 'description'\n | 'error';\nexport type SelectCompositionProps<M extends 'single' | 'multiple' = 'single'> = Omit<\n AriaSelectProps<object, M>,\n 'className' | 'style' | 'onChange' | 'value' | 'defaultValue'\n> &\n StylingProps<SelectPart> & {\n options?: never;\n label?: never;\n value?: AriaSelectProps<object, M>['value'];\n defaultValue?: AriaSelectProps<object, M>['defaultValue'];\n onChange?: (value: M extends 'multiple' ? string[] : string | null) => void;\n onClear?: () => void;\n size?: import('./Select.js').SelectSize;\n variant?: import('./Select.js').SelectVariant;\n fullWidth?: boolean;\n hideLabel?: boolean;\n };\n\nconst SelectPartsContext = createContext<{\n classNames?: StylingProps<SelectPart>['classNames'];\n onClear?: () => void;\n disabled?: boolean;\n clearButtons: number;\n registerClear: () => () => void;\n triggerRef?: RefObject<HTMLButtonElement | null>;\n}>({ clearButtons: 0, registerClear: () => () => {} });\nconst InSelectTrigger = createContext(false);\n\nexport function SelectComposition<M extends 'single' | 'multiple' = 'single'>({\n className,\n style,\n classNames,\n onClear,\n onChange,\n size = 'md',\n variant = 'primary',\n fullWidth = true,\n hideLabel = false,\n ...props\n}: SelectCompositionProps<M>) {\n const [clearButtons, setClearButtons] = useState(0);\n const triggerRef = useRef<HTMLButtonElement>(null);\n // A stable callback avoids repeatedly registering mounted clear affordances.\n const [registerClear] = useState(() => () => {\n setClearButtons((count) => count + 1);\n return () => setClearButtons((count) => count - 1);\n });\n return (\n <SelectPartsContext.Provider\n value={{\n classNames,\n onClear,\n disabled: props.isDisabled,\n clearButtons,\n registerClear,\n triggerRef,\n }}\n >\n <FieldPartClassesContext.Provider value={classNames ?? {}}>\n <AriaSelect<object, M>\n {...props}\n data-multiple={props.selectionMode === 'multiple' || undefined}\n className={partClass(\n partClass(\n `select select--${size} select--${variant}${fullWidth ? '' : ' select--fit'}${hideLabel ? ' select--label-hidden' : ''}`,\n classNames?.root,\n ),\n className,\n )}\n style={style}\n onChange={(value) => {\n if (props.isDisabled) return;\n if (Array.isArray(value))\n (onChange as ((value: string[]) => void) | undefined)?.(value.map(String));\n else\n (onChange as ((value: string | null) => void) | undefined)?.(\n value == null ? null : String(value),\n );\n }}\n />\n </FieldPartClassesContext.Provider>\n </SelectPartsContext.Provider>\n );\n}\n\nexport function SelectControl({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n const { classNames, clearButtons } = useContext(SelectPartsContext);\n return (\n <div\n {...props}\n data-clearable={clearButtons > 0 || undefined}\n className={partClass(partClass('select__control', classNames?.control), className)}\n />\n );\n}\n\nexport function SelectTrigger({\n ref,\n className,\n children,\n onKeyDown,\n ...props\n}: Omit<ComponentProps<typeof Button>, 'className'> & { className?: string }) {\n const state = useContext(SelectStateContext);\n const context = useContext(SelectPartsContext);\n const element = useRef<HTMLButtonElement>(null);\n useImperativeHandle(ref, () => element.current!);\n useImperativeHandle(context.triggerRef, () => element.current!);\n const clear = () => {\n state?.setValue(Array.isArray(state.value) ? [] : null);\n context.onClear?.();\n };\n return (\n <Button\n {...props}\n ref={element}\n className={partClass(\n partClass('select__trigger select__composed-trigger', context.classNames?.trigger),\n className,\n )}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (\n !event.defaultPrevented &&\n !context.disabled &&\n context.clearButtons > 0 &&\n !state?.isOpen &&\n (event.key === 'Backspace' || event.key === 'Delete') &&\n state?.value != null &&\n (!Array.isArray(state.value) || state.value.length > 0)\n ) {\n event.preventDefault();\n clear();\n }\n }}\n >\n {(state) => (\n <InSelectTrigger.Provider value>\n {typeof children === 'function' ? children(state) : children}\n </InSelectTrigger.Provider>\n )}\n </Button>\n );\n}\n\nexport function SelectValuePart<T>({\n className,\n ...props\n}: Omit<SelectValueProps<T>, 'className'> & { className?: string }) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <SelectValue<T>\n {...props}\n className={partClass(partClass('select__value', classNames?.value), className)}\n />\n );\n}\n\nexport function SelectIndicator({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <span\n {...props}\n className={partClass(partClass('select__icon', classNames?.indicator), className)}\n aria-hidden=\"true\"\n >\n {children ?? <ChevronIcon />}\n </span>\n );\n}\n\n/** Nested clear is decorative to AT; Backspace/Delete on the trigger supplies keyboard clearing. Outside Trigger it is a named native button. */\nexport function SelectClearButton({\n className,\n children,\n 'aria-label': label = 'Hapus pilihan',\n ...props\n}: Pick<\n HTMLAttributes<HTMLSpanElement>,\n 'className' | 'children' | 'style' | 'aria-label' | 'id'\n>) {\n const state = useContext(SelectStateContext);\n const context = useContext(SelectPartsContext);\n const nested = useContext(InSelectTrigger);\n const registerClear = context.registerClear;\n useEffect(() => registerClear(), [registerClear]);\n const empty = state?.value == null || (Array.isArray(state.value) && state.value.length === 0);\n const disabled = context.disabled || empty;\n const classes = partClass(\n partClass('selection__clear', context.classNames?.clearButton),\n className,\n );\n const clear = () => {\n if (disabled) return;\n state?.setValue(Array.isArray(state.value) ? [] : null);\n context.onClear?.();\n context.triggerRef?.current?.focus();\n };\n const content = children ?? <CloseIcon className=\"selection__close-icon\" />;\n if (nested)\n return (\n <span\n {...props}\n className={classes}\n aria-hidden=\"true\"\n data-empty={empty || undefined}\n onPointerDown={(event) => event.stopPropagation()}\n onClick={(event) => {\n event.stopPropagation();\n if (event.button === 0) clear();\n }}\n >\n {content}\n </span>\n );\n return (\n <button\n {...props}\n type=\"button\"\n className={classes}\n aria-label={label}\n disabled={disabled}\n data-empty={empty || undefined}\n onClick={clear}\n >\n {content}\n </button>\n );\n}\n\nexport function SelectPopover({\n className,\n ...props\n}: Omit<PopoverProps, 'className'> & { className?: string }) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <SelectionPopover\n {...props}\n className={partClass(partClass('select__popover', classNames?.popover), className)}\n />\n );\n}\n\nexport function ListBoxRoot<T extends object>({\n className,\n ...props\n}: Omit<ListBoxProps<T>, 'className'> & { className?: string }) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <AriaListBox\n {...props}\n className={partClass(partClass('listbox__list select__list', classNames?.list), className)}\n />\n );\n}\nexport function ListBoxItemPart<T extends object>({\n className,\n children,\n ...props\n}: Omit<ListBoxItemProps<T>, 'className'> & { className?: string }) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <ListBoxItem\n {...props}\n textValue={\n props.textValue ??\n (typeof children === 'string' || typeof children === 'number'\n ? String(children)\n : undefined)\n }\n className={partClass(partClass('listbox__item select__item', classNames?.item), className)}\n >\n {(state) => (\n <ItemLabelContext.Provider value>\n {typeof children === 'function' ? children(state) : children}\n </ItemLabelContext.Provider>\n )}\n </ListBoxItem>\n );\n}\nexport function ListBoxSectionPart<T extends object>({\n className,\n ...props\n}: ListBoxSectionProps<T>) {\n return <ListBoxSection {...props} className={partClass('listbox__section', className)} />;\n}\nexport function ListBoxItemIndicator({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <span\n {...props}\n className={partClass(\n partClass('listbox__check select__check', classNames?.itemIndicator),\n className,\n )}\n aria-hidden=\"true\"\n >\n {children ?? <CheckIcon />}\n </span>\n );\n}\nexport const ListBox = /* @__PURE__ */ Object.assign(ListBoxRoot, {\n Item: ListBoxItemPart,\n Section: ListBoxSectionPart,\n ItemIndicator: ListBoxItemIndicator,\n});\n\nexport function Description({ className, ...props }: TextProps) {\n const fieldClasses = useContext(FieldPartClassesContext);\n const inItem = useContext(ItemLabelContext);\n return (\n <Text\n slot=\"description\"\n {...props}\n className={partClass(\n partClass('input__description', inItem ? undefined : fieldClasses.description),\n className,\n )}\n />\n );\n}\nexport function FieldError({\n className,\n ...props\n}: Omit<FieldErrorProps, 'className'> & { className?: string }) {\n const fieldClasses = useContext(FieldPartClassesContext);\n return (\n <AriaFieldError\n {...props}\n className={partClass(partClass('input__error', fieldClasses.error), className)}\n />\n );\n}\nexport type InputCompositionProps = Omit<TextFieldProps, 'className'> & {\n className?: string;\n label?: never;\n size?: import('./Input.js').InputSize;\n variant?: import('./Input.js').InputVariant;\n hideLabel?: boolean;\n};\nexport function InputRoot({\n className,\n size = 'md',\n variant = 'primary',\n hideLabel = false,\n value,\n defaultValue,\n onChange,\n ...props\n}: Omit<InputCompositionProps, 'label'>) {\n const root = useRef<HTMLDivElement>(null);\n const clearable = useClearableInput(\n { value, defaultValue, onChange, isDisabled: props.isDisabled, isReadOnly: props.isReadOnly },\n root,\n );\n return (\n <InputClearContext.Provider value={clearable.context}>\n <AriaTextField\n {...props}\n ref={root}\n value={clearable.value}\n onChange={clearable.update}\n className={partClass(\n `input input--${size} input--${variant}${hideLabel ? ' input--label-hidden' : ''}`,\n className,\n )}\n />\n </InputClearContext.Provider>\n );\n}\nexport const InputControlRefContext = createContext<Ref<HTMLInputElement> | undefined>(undefined);\nexport const InputControl = /* @__PURE__ */ forwardRef<\n HTMLInputElement,\n Omit<AriaInputProps, 'className'> & { className?: string }\n>(function InputControl({ className, ...props }, ref) {\n const inheritedRef = useContext(InputControlRefContext);\n const control = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => control.current!);\n useImperativeHandle(inheritedRef, () => control.current!);\n return <AriaInput {...props} ref={control} className={partClass('input__control', className)} />;\n});\nexport function InputGroup({\n className,\n ...props\n}: Omit<GroupProps, 'className'> & { className?: string }) {\n return <Group {...props} className={partClass('input__group', className)} />;\n}\nexport function InputPrefix({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} className={partClass('input__prefix', className)} />;\n}\nexport function InputSuffix({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} className={partClass('input__suffix', className)} />;\n}\nexport { Header };\n","import { partClass } from './styling.js';\nimport { useId } from 'react';\n\nexport interface FieldFeedbackProps {\n description?: string;\n errorMessage?: string;\n isInvalid?: boolean;\n}\n\nexport function useFeedback({\n description,\n errorMessage,\n isInvalid,\n classNames,\n}: FieldFeedbackProps & { classNames?: { description?: string; error?: string } }) {\n const id = useId();\n const descriptionId = `${id}-description`;\n const errorId = `${id}-error`;\n const showError = !!(isInvalid && errorMessage);\n return {\n describedBy:\n [description && descriptionId, showError && errorId].filter(Boolean).join(' ') || undefined,\n feedback: (\n <>\n {description && (\n <span\n id={descriptionId}\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </span>\n )}\n {showError && (\n <span id={errorId} className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </span>\n )}\n </>\n ),\n };\n}\n","import { useEffect, useRef } from 'react';\nexport function SelectionValidation({\n hasValue,\n required,\n disabled,\n onInvalid,\n onReset,\n onResetStart,\n}: {\n hasValue: boolean;\n required?: boolean;\n disabled?: boolean;\n onInvalid: () => void;\n onReset: (cancelled: boolean) => void;\n onResetStart: () => void;\n}) {\n const ref = useRef<HTMLInputElement>(null);\n useEffect(() => {\n const form = ref.current?.form;\n const reset = (event: Event) => {\n // Capture before headless controls react to reset; only commit after cancellation is known.\n onResetStart();\n // A new task is required: browser microtasks can run between capture and bubble listeners.\n setTimeout(() => onReset(event.defaultPrevented), 0);\n };\n form?.addEventListener('reset', reset, true);\n return () => form?.removeEventListener('reset', reset, true);\n }, [onReset, onResetStart]);\n return (\n <input\n ref={ref}\n className=\"selection__validation\"\n type=\"text\"\n tabIndex={-1}\n aria-hidden=\"true\"\n autoComplete=\"off\"\n required={required}\n disabled={disabled}\n value={hasValue ? 'selected' : ''}\n onChange={() => {}}\n onInvalid={(event) => {\n event.preventDefault();\n onInvalid();\n }}\n />\n );\n}\n","export interface SelectOption {\n id: string;\n label: string;\n description?: string;\n isDisabled?: boolean;\n}\nexport function selectionIds(value: unknown, options: SelectOption[], multiple: boolean): string[] {\n const requested = new Set(\n Array.isArray(value) ? value : typeof value === 'string' ? [value] : [],\n );\n const ids = [\n ...new Set(options.filter((o) => o.id !== '' && requested.has(o.id)).map((o) => o.id)),\n ];\n return multiple ? ids : ids.slice(0, 1);\n}\nexport function filterOptions(options: SelectOption[], query: string): SelectOption[] {\n const fold = (text: string) => text.normalize('NFD').replace(/\\p{M}/gu, '').toLowerCase();\n const search = fold(query.trim());\n return options.filter((o) => fold(`${o.label} ${o.description ?? ''}`).includes(search));\n}\n","import { SelectionPopover } from './selection-popover.js';\nimport {\n SelectComposition,\n SelectControl,\n SelectTrigger,\n SelectValuePart,\n SelectIndicator,\n SelectClearButton,\n SelectPopover,\n type SelectCompositionProps,\n} from './control-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useRef, useState, type ReactNode } from 'react';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport {\n Button,\n Label,\n ListBox,\n ListBoxItem,\n Select as AriaSelect,\n SelectValue,\n} from 'react-aria-components/Select';\nimport { CloseIcon, CheckIcon, ChevronIcon } from './icons.js';\nimport { useFeedback } from './field.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { selectionIds, type SelectOption } from './selection-options.js';\nexport type { SelectOption } from './selection-options.js';\nexport type SelectSize = 'xs' | 'sm' | 'dense' | 'md' | 'lg' | 'xl';\nexport type SelectVariant = 'primary' | 'secondary' | 'outline' | 'flat';\ninterface SelectCommonProps extends StylingProps<\n | 'root'\n | 'label'\n | 'required'\n | 'control'\n | 'trigger'\n | 'leading'\n | 'value'\n | 'indicator'\n | 'clearButton'\n | 'clearIcon'\n | 'popover'\n | 'list'\n | 'item'\n | 'itemLabel'\n | 'itemDescription'\n | 'itemIndicator'\n | 'description'\n | 'error'\n> {\n /** Activates an option even when it is already selected (for linked editors). */\n onAction?: (value: string) => void;\n label: string;\n options: SelectOption[];\n maxHeight?: number;\n size?: SelectSize;\n variant?: SelectVariant;\n /** Hide visually while retaining the accessible label. */\n hideLabel?: boolean;\n /** Defaults to true to preserve the existing full-width trigger. */\n fullWidth?: boolean;\n /** Decorative noninteractive icon before the value/input. */\n startContent?: ReactNode;\n placeholder?: string;\n isDisabled?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n description?: string;\n errorMessage?: string;\n requiredMessage?: string;\n name?: string;\n dir?: 'ltr' | 'rtl';\n isClearable?: boolean;\n clearLabel?: string;\n onClear?: () => void;\n renderOption?: (option: SelectOption) => ReactNode;\n renderValue?: (selected: SelectOption[]) => ReactNode;\n}\nexport type SelectProps = SelectCommonProps &\n (\n | {\n selectionMode?: 'single';\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string) => void;\n }\n | {\n selectionMode: 'multiple';\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n }\n );\nfunction SelectCompact(props: Extract<SelectProps, { selectionMode: 'multiple' }>): ReactNode;\nfunction SelectCompact(props: Exclude<SelectProps, { selectionMode: 'multiple' }>): ReactNode;\nfunction SelectCompact(props: SelectProps) {\n const {\n label,\n options,\n placeholder,\n isDisabled,\n isRequired,\n isClearable,\n clearLabel = 'Hapus pilihan',\n dir,\n } = props;\n const multiple = props.selectionMode === 'multiple';\n const [local, setLocal] = useState<unknown>(props.defaultValue);\n const [tried, setTried] = useState(false);\n const resetting = useRef(false);\n const trigger = useRef<HTMLButtonElement>(null);\n const ids = selectionIds(props.value !== undefined ? props.value : local, options, multiple);\n const selected = options.filter((o) => ids.includes(o.id));\n const invalid = props.isInvalid || (tried && isRequired && ids.length === 0);\n const { describedBy, feedback } = useFeedback({\n classNames: props.classNames,\n description: props.description,\n isInvalid: invalid,\n errorMessage:\n props.errorMessage ??\n (isRequired && ids.length === 0\n ? (props.requiredMessage ?? 'Pilihan wajib diisi.')\n : undefined),\n });\n function update(value: unknown) {\n if (isDisabled || resetting.current) return;\n const next = selectionIds(value, options, multiple);\n setLocal(multiple ? next : (next[0] ?? null));\n if (props.selectionMode === 'multiple') props.onChange?.(next);\n else if (next[0] !== undefined) props.onChange?.(next[0]);\n }\n function clear() {\n if (isDisabled || resetting.current) return;\n setLocal(multiple ? [] : null);\n if (props.selectionMode === 'multiple') props.onChange?.([]);\n props.onClear?.();\n trigger.current?.focus();\n }\n const select = (\n <AriaSelect<SelectOption, 'single' | 'multiple'>\n className={[\n 'select',\n props.classNames?.root,\n props.className,\n `select--${props.size ?? 'md'}`,\n `select--${props.variant ?? 'primary'}`,\n props.hideLabel && 'select--label-hidden',\n props.fullWidth === false && 'select--fit',\n ]\n .filter(Boolean)\n .join(' ')}\n style={props.style}\n data-multiple={multiple || undefined}\n selectionMode={multiple ? 'multiple' : 'single'}\n value={multiple ? ids : (ids[0] ?? null)}\n onChange={update}\n placeholder={placeholder}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isInvalid={!!invalid}\n validationBehavior=\"aria\"\n aria-describedby={describedBy}\n >\n <Label className={partClass('select__label', props.classNames?.label)}>\n {label}\n {isRequired && (\n <span\n className={partClass('selection__required', props.classNames?.required)}\n aria-hidden=\"true\"\n >\n {' '}\n *\n </span>\n )}\n </Label>\n <div\n className={partClass('select__control', props.classNames?.control)}\n data-clearable={isClearable || undefined}\n >\n <Button\n ref={trigger}\n className={partClass('select__trigger', props.classNames?.trigger)}\n aria-describedby={describedBy}\n >\n {props.startContent && (\n <span\n className={partClass('selection__leading', props.classNames?.leading)}\n aria-hidden=\"true\"\n >\n {props.startContent}\n </span>\n )}\n <SelectValue className={partClass('select__value', props.classNames?.value)}>\n {() =>\n selected.length\n ? (props.renderValue?.(selected) ?? selected.map((o) => o.label).join(', '))\n : placeholder\n }\n </SelectValue>\n <ChevronIcon className={partClass('select__icon', props.classNames?.indicator)} />\n </Button>\n {isClearable && (\n <button\n type=\"button\"\n className={partClass('selection__clear', props.classNames?.clearButton)}\n data-empty={ids.length === 0 || undefined}\n aria-hidden={ids.length === 0 || undefined}\n tabIndex={ids.length === 0 ? -1 : undefined}\n aria-label={clearLabel}\n disabled={isDisabled || ids.length === 0}\n onClick={clear}\n >\n <CloseIcon\n className={partClass('selection__close-icon', props.classNames?.clearIcon)}\n />\n </button>\n )}\n </div>\n <SelectionPopover\n maxHeight={props.maxHeight}\n className={partClass('select__popover', props.classNames?.popover)}\n >\n <ListBox className={partClass('select__list', props.classNames?.list)}>\n {options.map((option) => (\n <ListBoxItem\n onPress={props.onAction ? () => props.onAction!(option.id) : undefined}\n key={option.id}\n id={option.id}\n textValue={option.label}\n isDisabled={option.isDisabled}\n className={partClass('select__item', props.classNames?.item)}\n >\n <span className={partClass('select__item-label', props.classNames?.itemLabel)}>\n {props.renderOption?.(option) ?? (\n <>\n {option.label}\n {option.description && (\n <span\n className={partClass(\n 'selection__description',\n props.classNames?.itemDescription,\n )}\n >\n {option.description}\n </span>\n )}\n </>\n )}\n </span>\n <CheckIcon className={partClass('select__check', props.classNames?.itemIndicator)} />\n </ListBoxItem>\n ))}\n </ListBox>\n </SelectionPopover>\n {feedback}\n {props.name &&\n (multiple ? ids : [ids[0] ?? '']).map((id, i) => (\n <input key={i} type=\"hidden\" name={props.name} value={id} disabled={isDisabled} />\n ))}\n <SelectionValidation\n hasValue={ids.length > 0}\n required={isRequired}\n disabled={isDisabled}\n onInvalid={() => {\n setTried(true);\n trigger.current?.focus();\n }}\n onResetStart={() => {\n resetting.current = true;\n }}\n onReset={(cancelled) => {\n resetting.current = false;\n if (!cancelled) {\n setTried(false);\n if (props.value === undefined) setLocal(props.defaultValue);\n }\n }}\n />\n </AriaSelect>\n );\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{select}</I18nProvider>\n ) : (\n select\n );\n}\n\nfunction SelectRoot(\n props: Extract<SelectProps, { selectionMode: 'multiple' }> | SelectCompositionProps<'multiple'>,\n): ReactNode;\nfunction SelectRoot(\n props: Exclude<SelectProps, { selectionMode: 'multiple' }> | SelectCompositionProps<'single'>,\n): ReactNode;\nfunction SelectRoot(\n props: SelectProps | SelectCompositionProps<'single'> | SelectCompositionProps<'multiple'>,\n) {\n if (props.options)\n return props.selectionMode === 'multiple' ? (\n <SelectCompact {...props} />\n ) : (\n <SelectCompact {...props} />\n );\n if (props.selectionMode === 'multiple') return <SelectComposition<'multiple'> {...props} />;\n return <SelectComposition<'single'> {...(props as SelectCompositionProps<'single'>)} />;\n}\nexport const Select = /* @__PURE__ */ Object.assign(SelectRoot, {\n Root: SelectComposition,\n Control: SelectControl,\n Trigger: SelectTrigger,\n Value: SelectValuePart,\n Indicator: SelectIndicator,\n ClearButton: SelectClearButton,\n Popover: SelectPopover,\n});\nexport type { SelectCompositionProps } from './control-composition.js';\n","import { partClass, type StylingProps } from './styling.js';\nimport {\n Children,\n Fragment,\n cloneElement,\n isValidElement,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { Select, type SelectProps, type SelectSize, type SelectVariant } from './Select.js';\nexport interface SelectGroupProps extends StylingProps<'root' | 'label' | 'controls'> {\n label: string;\n children: ReactNode;\n size?: SelectSize;\n variant?: SelectVariant;\n fullWidth?: boolean;\n isDisabled?: boolean;\n dir?: 'ltr' | 'rtl';\n}\n/** Joins direct Select children. Each child retains its own value and accessible label. */\nexport function SelectGroup({\n label,\n children,\n size,\n variant,\n fullWidth = true,\n isDisabled,\n dir,\n className,\n style,\n classNames,\n}: SelectGroupProps) {\n function defaults(nodes: ReactNode): ReactNode {\n return Children.map(nodes, (child) => {\n if (!isValidElement(child)) return child;\n if (child.type === Fragment)\n return cloneElement(\n child as ReactElement<{ children: ReactNode }>,\n {},\n defaults((child.props as { children: ReactNode }).children),\n );\n if (child.type !== Select) return child;\n const select = child as ReactElement<SelectProps>;\n return cloneElement(select, {\n size: select.props.size ?? size,\n variant: select.props.variant ?? variant,\n hideLabel: select.props.hideLabel ?? true,\n fullWidth: select.props.fullWidth ?? fullWidth,\n isDisabled: !!isDisabled || select.props.isDisabled,\n dir: select.props.dir ?? dir,\n });\n });\n }\n return (\n <fieldset\n className={['select-group', !fullWidth && 'select-group--fit', classNames?.root, className]\n .filter(Boolean)\n .join(' ')}\n style={style}\n disabled={isDisabled}\n dir={dir}\n >\n <legend className={partClass('select-group__legend', classNames?.label)}>{label}</legend>\n <div className={partClass('select-group__controls', classNames?.controls)}>\n {defaults(children)}\n </div>\n </fieldset>\n );\n}\n","import {\n InputRoot,\n InputControl,\n InputGroup,\n InputPrefix,\n InputSuffix,\n InputControlRefContext,\n type InputCompositionProps,\n} from './control-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { InputClearButton, InputClearContext, useClearableInput } from './input-clear.js';\nimport {\n FieldError,\n Input as AriaInput,\n Label,\n Text,\n TextField,\n} from 'react-aria-components/TextField';\nimport {\n forwardRef,\n useImperativeHandle,\n useRef,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type ReactNode,\n} from 'react';\n\nexport type InputSize = 'xs' | 'sm' | 'dense' | 'md' | 'lg' | 'xl';\nexport type InputType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url';\nexport type InputVariant = 'primary' | 'secondary' | 'flat' | 'sunken';\nexport type InputMode =\n 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';\nexport type InputEnterKeyHint = 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';\n\n/** A labeled single-line string field. Numeric/date parsing is a separate contract. */\nexport interface InputProps extends StylingProps<\n | 'root'\n | 'input'\n | 'control'\n | 'label'\n | 'boundary'\n | 'prefix'\n | 'suffix'\n | 'description'\n | 'error'\n | 'group'\n | 'clearButton'\n> {\n label: string;\n value?: string;\n defaultValue?: string;\n /** Receives the string value, not a DOM event. Clear with an empty string. */\n onChange?: (value: string) => void;\n description?: string;\n /** Shown only when isInvalid is true; the application owns validation. */\n errorMessage?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n placeholder?: string;\n type?: InputType;\n size?: InputSize;\n variant?: InputVariant;\n /** Fill the available width. Defaults to true to preserve the existing field layout. */\n fullWidth?: boolean;\n hideLabel?: boolean;\n isClearable?: boolean;\n clearLabel?: string;\n /** Leading/trailing content. Mark decorative icons aria-hidden; name interactive buttons. */\n prefix?: ReactNode;\n suffix?: ReactNode;\n name?: string;\n id?: string;\n autoComplete?: string;\n maxLength?: number;\n minLength?: number;\n pattern?: string;\n inputMode?: InputMode;\n enterKeyHint?: InputEnterKeyHint;\n autoFocus?: boolean;\n spellCheck?: boolean;\n form?: string;\n onFocus?: FocusEventHandler<HTMLInputElement>;\n onBlur?: FocusEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onKeyUp?: KeyboardEventHandler<HTMLInputElement>;\n dir?: 'ltr' | 'rtl';\n}\n\nconst CompactInput = /* @__PURE__ */ forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n label,\n value,\n defaultValue,\n onChange,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n placeholder,\n type = 'text',\n size = 'md',\n variant = 'primary',\n fullWidth = true,\n hideLabel = false,\n isClearable = false,\n clearLabel,\n prefix,\n suffix,\n name,\n id,\n autoComplete,\n maxLength,\n minLength,\n pattern,\n inputMode,\n enterKeyHint,\n autoFocus,\n spellCheck,\n form,\n onFocus,\n onBlur,\n onKeyDown,\n onKeyUp,\n dir,\n className,\n style,\n classNames,\n }: InputProps,\n ref,\n) {\n const control = useRef<HTMLInputElement>(null);\n const clearable = useClearableInput(\n { value, defaultValue, onChange, isDisabled, isReadOnly },\n control,\n );\n useImperativeHandle(ref, () => control.current!);\n const hasAdornment = prefix != null || suffix != null || isClearable;\n /* eslint-disable jsx-a11y/no-autofocus -- This forwards the caller's explicit opt-in; autofocus is never enabled by default. */\n const input = (\n <AriaInput\n ref={control}\n className={partClass(partClass('input__control', classNames?.input), classNames?.control)}\n placeholder={placeholder}\n required={isRequired}\n minLength={minLength}\n pattern={pattern}\n inputMode={inputMode}\n enterKeyHint={enterKeyHint}\n autoFocus={autoFocus}\n spellCheck={spellCheck}\n form={form}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n />\n );\n /* eslint-enable jsx-a11y/no-autofocus */\n return (\n <InputClearContext.Provider value={clearable.context}>\n <TextField\n className={partClass(\n partClass(\n `input input--${size} input--${variant}${fullWidth ? '' : ' input--fit'}${hideLabel ? ' input--label-hidden' : ''}`,\n classNames?.root,\n ),\n className,\n )}\n style={style}\n value={clearable.value}\n onChange={clearable.update}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n validationBehavior=\"aria\"\n type={type}\n name={name}\n id={id}\n autoComplete={autoComplete}\n maxLength={maxLength}\n dir={dir}\n >\n <Label className={partClass('input__label', classNames?.label)}>{label}</Label>\n <fieldset\n className={partClass('input__boundary', classNames?.boundary)}\n role=\"presentation\"\n disabled={isDisabled}\n >\n <div\n className={partClass(hasAdornment ? 'input__group' : 'input__plain', classNames?.group)}\n data-invalid={isInvalid || undefined}\n data-readonly={isReadOnly || undefined}\n onPointerDown={(event) => {\n if (\n !isDisabled &&\n !(event.target as Element).closest(\n 'input,button,a,select,textarea,[tabindex],[contenteditable]',\n )\n ) {\n event.preventDefault();\n control.current?.focus();\n }\n }}\n >\n {prefix != null && (\n <span className={partClass('input__prefix', classNames?.prefix)}>{prefix}</span>\n )}\n {input}\n {isClearable && (\n <InputClearButton\n aria-label={clearLabel ?? 'Hapus input / Clear input'}\n className={classNames?.clearButton}\n />\n )}\n {suffix != null && (\n <span className={partClass('input__suffix', classNames?.suffix)}>{suffix}</span>\n )}\n </div>\n </fieldset>\n {description && (\n <Text\n slot=\"description\"\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </Text>\n )}\n {isInvalid && errorMessage && (\n <FieldError className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </FieldError>\n )}\n </TextField>\n </InputClearContext.Provider>\n );\n});\n\nconst InputWithComposition = /* @__PURE__ */ forwardRef<\n HTMLInputElement,\n InputProps | InputCompositionProps\n>(function InputWithComposition(props, ref) {\n if ('label' in props && props.label !== undefined)\n return <CompactInput {...(props as InputProps)} ref={ref} />;\n return (\n <InputControlRefContext.Provider value={ref}>\n <InputRoot {...(props as InputCompositionProps)} />\n </InputControlRefContext.Provider>\n );\n});\nexport const Input = /* @__PURE__ */ Object.assign(InputWithComposition, {\n Root: InputRoot,\n Control: InputControl,\n Group: InputGroup,\n Prefix: InputPrefix,\n Suffix: InputSuffix,\n ClearButton: InputClearButton,\n});\n","import { InputRoot, type InputCompositionProps } from './control-composition.js';\nimport type { TextAreaProps as AriaTextAreaProps } from 'react-aria-components/TextField';\nimport { partClass, type StylingProps } from './styling.js';\nimport {\n FieldError,\n TextArea as AriaTextArea,\n Label,\n Text,\n TextField,\n} from 'react-aria-components/TextField';\n\n/** A labeled multiline string field; validation is owned by the application. */\nexport interface TextareaProps extends StylingProps<\n 'root' | 'label' | 'input' | 'description' | 'error'\n> {\n label: string;\n value?: string;\n defaultValue?: string;\n /** Receives the string value, not a DOM event. Clear with an empty string. */\n onChange?: (value: string) => void;\n description?: string;\n /** Shown only when isInvalid is true; the application owns validation. */\n errorMessage?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n placeholder?: string;\n rows?: number;\n resize?: 'vertical' | 'none';\n name?: string;\n id?: string;\n autoComplete?: string;\n maxLength?: number;\n dir?: 'ltr' | 'rtl';\n}\n\nfunction CompactTextarea({\n label,\n value,\n defaultValue,\n onChange,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n placeholder,\n rows = 3,\n resize = 'vertical',\n name,\n id,\n autoComplete,\n maxLength,\n dir,\n className,\n style,\n classNames,\n}: TextareaProps) {\n return (\n <TextField\n className={partClass(partClass('input textarea', classNames?.root), className)}\n style={style}\n data-resize={resize}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n validationBehavior=\"aria\"\n name={name}\n id={id}\n autoComplete={autoComplete}\n maxLength={maxLength}\n dir={dir}\n >\n <Label className={partClass('input__label', classNames?.label)}>{label}</Label>\n <AriaTextArea\n className={partClass('input__control textarea__control', classNames?.input)}\n rows={rows}\n placeholder={placeholder}\n required={isRequired}\n />\n {description && (\n <Text\n slot=\"description\"\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </Text>\n )}\n {isInvalid && errorMessage && (\n <FieldError className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </FieldError>\n )}\n </TextField>\n );\n}\n\nfunction TextareaControl({\n className,\n ...props\n}: Omit<AriaTextAreaProps, 'className'> & { className?: string }) {\n return (\n <AriaTextArea {...props} className={partClass('input__control textarea__control', className)} />\n );\n}\nfunction TextareaRoot(props: TextareaProps | InputCompositionProps) {\n if ('label' in props && props.label !== undefined)\n return <CompactTextarea {...(props as TextareaProps)} />;\n return <InputRoot {...(props as InputCompositionProps)} />;\n}\nexport const Textarea = /* @__PURE__ */ Object.assign(TextareaRoot, {\n Root: InputRoot,\n Control: TextareaControl,\n});\n","import { partClass, type StylingProps } from './styling.js';\nimport { useContext, type ReactNode } from 'react';\nimport { Label as AriaLabel } from 'react-aria-components/Label';\nimport { Text } from 'react-aria-components/Text';\nimport { FieldPartClassesContext, ItemLabelContext } from './label-context.js';\n\nexport interface LabelProps extends StylingProps<'root'> {\n children: ReactNode;\n htmlFor?: string;\n id?: string;\n}\n\n/** Associates visible text with a separately rendered control. */\nexport function Label({ children, htmlFor, id, className, style, classNames }: LabelProps) {\n const inItem = useContext(ItemLabelContext);\n const fieldClasses = useContext(FieldPartClassesContext);\n if (inItem)\n return (\n <Text\n slot=\"label\"\n id={id}\n className={partClass(partClass('label', classNames?.root), className)}\n style={style}\n >\n {children}\n </Text>\n );\n return (\n <AriaLabel\n className={partClass(\n partClass(partClass('label', fieldClasses.label), classNames?.root),\n className,\n )}\n style={style}\n htmlFor={htmlFor}\n id={id}\n >\n {children}\n </AriaLabel>\n );\n}\n","import { createContext, useContext, type HTMLAttributes } from 'react';\nimport type { Tone, ComponentSize } from './visual.js';\nimport { partClass } from './styling.js';\nexport interface SwitchVisualProps {\n size?: ComponentSize;\n tone?: Tone;\n variant?: 'default' | 'outline';\n}\nexport const SwitchVisualContext = createContext<SwitchVisualProps & { isDisabled?: boolean }>({});\nexport function SwitchGroup({\n size,\n tone,\n variant,\n isDisabled,\n orientation = 'vertical',\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement> &\n SwitchVisualProps & {\n label?: string;\n orientation?: 'horizontal' | 'vertical';\n isDisabled?: boolean;\n }) {\n const { label, ...native } = props;\n return (\n <SwitchVisualContext.Provider value={{ size, tone, variant, isDisabled }}>\n <div\n {...native}\n role=\"group\"\n aria-label={label ?? props['aria-label']}\n className={partClass('switch-group', className)}\n data-orientation={orientation}\n />\n </SwitchVisualContext.Provider>\n );\n}\nexport function useSwitchVisual(props: SwitchVisualProps) {\n const inherited = useContext(SwitchVisualContext);\n return {\n size: props.size ?? inherited.size ?? 'md',\n tone: props.tone ?? inherited.tone ?? 'primary',\n variant: props.variant ?? inherited.variant ?? 'default',\n disabled: inherited.isDisabled,\n };\n}\n","import { ItemLabelContext } from './label-context.js';\nimport { createContext, useContext, type HTMLAttributes } from 'react';\nimport {\n Checkbox as AriaCheckbox,\n type CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components/Checkbox';\nimport { SwitchField, SwitchButton, type SwitchFieldProps } from 'react-aria-components/Switch';\nimport {\n RadioGroup as AriaRadioGroup,\n Radio,\n type RadioGroupProps as AriaRadioGroupProps,\n type RadioProps,\n} from 'react-aria-components/RadioGroup';\nimport { CheckIcon } from './icons.js';\nimport { partClass } from './styling.js';\nimport { SwitchVisualContext, useSwitchVisual, type SwitchVisualProps } from './switch-visual.js';\n\ninterface ChoiceState {\n isSelected: boolean;\n isDisabled: boolean;\n isInvalid?: boolean;\n isIndeterminate?: boolean;\n isFocusVisible?: boolean;\n}\nconst ChoiceStateContext = createContext<ChoiceState>({ isSelected: false, isDisabled: false });\ntype ChoiceElementProps = HTMLAttributes<HTMLSpanElement>;\n\nexport type CheckboxCompositionProps = Omit<AriaCheckboxProps, 'className'> & {\n className?: string;\n label?: never;\n};\nexport function CheckboxComposition({ className, children, ...props }: CheckboxCompositionProps) {\n return (\n <AriaCheckbox {...props} className={partClass('choice', className)}>\n {(state) => (\n <ChoiceStateContext.Provider value={state}>\n <ItemLabelContext.Provider value>\n {typeof children === 'function' ? children(state) : children}\n </ItemLabelContext.Provider>\n </ChoiceStateContext.Provider>\n )}\n </AriaCheckbox>\n );\n}\nexport function CheckboxControl({ className, ...props }: ChoiceElementProps) {\n const state = useContext(ChoiceStateContext);\n return (\n <span\n {...props}\n className={partClass('checkbox__control', className)}\n aria-hidden=\"true\"\n data-state={\n state.isIndeterminate ? 'indeterminate' : state.isSelected ? 'checked' : 'unchecked'\n }\n data-disabled={state.isDisabled || undefined}\n data-invalid={state.isInvalid || undefined}\n data-focus-visible={state.isFocusVisible || undefined}\n />\n );\n}\nexport function CheckboxIndicator({ className, children, ...props }: ChoiceElementProps) {\n const state = useContext(ChoiceStateContext);\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('checkbox__indicator', className)}>\n {children ??\n (state.isIndeterminate ? (\n <span className=\"checkbox__dash\" />\n ) : (\n <CheckIcon className=\"checkbox__check\" />\n ))}\n </span>\n );\n}\nexport function ChoiceContent({ className, ...props }: ChoiceElementProps) {\n return <span {...props} className={partClass('choice__label', className)} />;\n}\n\nexport type SwitchCompositionProps = Omit<SwitchFieldProps, 'className' | 'children'> &\n SwitchVisualProps & {\n className?: string;\n label?: never;\n children?:\n | import('react').ReactNode\n | ((\n state: import('react-aria-components/Switch').SwitchFieldRenderProps &\n Partial<import('react-aria-components/Switch').SwitchButtonRenderProps>,\n ) => import('react').ReactNode);\n };\nexport function SwitchComposition({\n className,\n children,\n size,\n tone,\n variant,\n ...props\n}: SwitchCompositionProps) {\n const visual = useSwitchVisual({ size, tone, variant });\n return (\n <SwitchVisualContext.Provider value={visual}>\n <SwitchField\n {...props}\n isDisabled={props.isDisabled ?? visual.disabled}\n className={partClass('input', className)}\n >\n {(fieldState) => (\n <SwitchButton className=\"choice\">\n {(state) => (\n <ChoiceStateContext.Provider value={state}>\n <ItemLabelContext.Provider value>\n {typeof children === 'function'\n ? children({ ...fieldState, ...state })\n : children}\n </ItemLabelContext.Provider>\n </ChoiceStateContext.Provider>\n )}\n </SwitchButton>\n )}\n </SwitchField>\n </SwitchVisualContext.Provider>\n );\n}\nexport function SwitchControl({ className, ...props }: ChoiceElementProps) {\n const state = useContext(ChoiceStateContext);\n const visual = useSwitchVisual({});\n return (\n <span\n {...props}\n className={partClass('switch__control', className)}\n data-size={visual.size}\n data-tone={visual.tone}\n data-variant={visual.variant}\n aria-hidden=\"true\"\n data-state={state.isSelected ? 'checked' : 'unchecked'}\n data-disabled={state.isDisabled || undefined}\n data-invalid={state.isInvalid || undefined}\n data-focus-visible={state.isFocusVisible || undefined}\n />\n );\n}\nexport function SwitchThumb({ className, ...props }: ChoiceElementProps) {\n return <span {...props} className={partClass('switch__thumb', className)} aria-hidden=\"true\" />;\n}\nexport function SwitchIcon({ className, ...props }: ChoiceElementProps) {\n return <span {...props} className={partClass('switch__icon', className)} aria-hidden=\"true\" />;\n}\n\nexport type RadioGroupCompositionProps = Omit<AriaRadioGroupProps, 'className'> & {\n className?: string;\n options?: never;\n label?: never;\n};\nexport function RadioGroupComposition({ className, ...props }: RadioGroupCompositionProps) {\n return <AriaRadioGroup {...props} className={partClass('input radio-group', className)} />;\n}\nexport function RadioItem({\n className,\n children,\n ...props\n}: Omit<RadioProps, 'className'> & { className?: string }) {\n return (\n <Radio {...props} className={partClass('choice', className)}>\n {(state) => (\n <ChoiceStateContext.Provider value={state}>\n {typeof children === 'function' ? children(state) : children}\n </ChoiceStateContext.Provider>\n )}\n </Radio>\n );\n}\nexport function RadioControl({ className, ...props }: ChoiceElementProps) {\n const state = useContext(ChoiceStateContext);\n return (\n <span\n {...props}\n className={partClass('radio__control', className)}\n aria-hidden=\"true\"\n data-state={state.isSelected ? 'checked' : 'unchecked'}\n data-disabled={state.isDisabled || undefined}\n data-focus-visible={state.isFocusVisible || undefined}\n />\n );\n}\nexport function RadioIndicator({ className, ...props }: ChoiceElementProps) {\n return <span {...props} className={partClass('radio__dot', className)} aria-hidden=\"true\" />;\n}\n","import {\n CheckboxComposition,\n CheckboxControl,\n CheckboxIndicator,\n ChoiceContent,\n type CheckboxCompositionProps,\n} from './choice-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { Checkbox as AriaCheckbox } from 'react-aria-components/Checkbox';\nimport { CheckIcon } from './icons.js';\nimport { useFeedback, type FieldFeedbackProps } from './field.js';\n\nexport interface CheckboxProps\n extends\n FieldFeedbackProps,\n StylingProps<\n 'root' | 'choice' | 'control' | 'indicator' | 'dash' | 'label' | 'description' | 'error'\n > {\n label: string;\n isSelected?: boolean;\n defaultSelected?: boolean;\n onChange?: (selected: boolean) => void;\n isDisabled?: boolean;\n isRequired?: boolean;\n /** Presentational mixed state; the application clears it after a change. */\n isIndeterminate?: boolean;\n name?: string;\n value?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nfunction CompactCheckbox({\n label,\n description,\n errorMessage,\n isInvalid = false,\n isSelected,\n defaultSelected,\n onChange,\n isDisabled = false,\n isRequired = false,\n isIndeterminate = false,\n name,\n value = 'on',\n id,\n dir,\n className,\n style,\n classNames,\n}: CheckboxProps) {\n const { describedBy, feedback } = useFeedback({\n classNames: classNames,\n description,\n errorMessage,\n isInvalid,\n });\n return (\n <div\n className={partClass(partClass('input', classNames?.root), className)}\n style={style}\n dir={dir}\n >\n <AriaCheckbox\n className={partClass('choice', classNames?.choice)}\n isSelected={isSelected}\n defaultSelected={defaultSelected}\n onChange={onChange}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isInvalid={isInvalid}\n isIndeterminate={isIndeterminate}\n validationBehavior=\"aria\"\n name={name}\n value={value}\n id={id}\n aria-describedby={describedBy}\n aria-invalid={isInvalid || undefined}\n >\n {({ isSelected: selected, isDisabled: disabled, isFocusVisible }) => (\n <>\n <span\n aria-hidden=\"true\"\n className={partClass('checkbox__control', classNames?.control)}\n data-state={isIndeterminate ? 'indeterminate' : selected ? 'checked' : 'unchecked'}\n data-disabled={disabled || undefined}\n data-invalid={isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n >\n <CheckIcon className={partClass('checkbox__check', classNames?.indicator)} />\n <span className={partClass('checkbox__dash', classNames?.dash)} />\n </span>\n <span className={partClass('choice__label', classNames?.label)}>{label}</span>\n </>\n )}\n </AriaCheckbox>\n {feedback}\n </div>\n );\n}\n\nfunction CheckboxRoot(props: CheckboxProps | CheckboxCompositionProps) {\n if ('label' in props) return <CompactCheckbox {...(props as CheckboxProps)} />;\n return <CheckboxComposition {...(props as CheckboxCompositionProps)} />;\n}\nexport const Checkbox = /* @__PURE__ */ Object.assign(CheckboxRoot, {\n Root: CheckboxComposition,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n Content: ChoiceContent,\n});\nexport type { CheckboxCompositionProps } from './choice-composition.js';\n","import {\n RadioGroupComposition,\n RadioItem,\n RadioControl,\n RadioIndicator,\n ChoiceContent,\n type RadioGroupCompositionProps,\n} from './choice-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { Label, Radio, RadioGroup as AriaRadioGroup } from 'react-aria-components/RadioGroup';\nimport { useFeedback, type FieldFeedbackProps } from './field.js';\n\nexport interface RadioOption {\n id: string;\n label: string;\n isDisabled?: boolean;\n}\nexport interface RadioGroupProps\n extends\n FieldFeedbackProps,\n StylingProps<\n | 'root'\n | 'label'\n | 'items'\n | 'item'\n | 'control'\n | 'indicator'\n | 'itemLabel'\n | 'description'\n | 'error'\n > {\n label: string;\n options: RadioOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n isDisabled?: boolean;\n isRequired?: boolean;\n name?: string;\n id?: string;\n orientation?: 'vertical' | 'horizontal';\n dir?: 'ltr' | 'rtl';\n}\n\nfunction CompactRadioGroup({\n label,\n options,\n value,\n defaultValue,\n onChange,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isRequired = false,\n name,\n id,\n orientation = 'vertical',\n dir,\n className,\n style,\n classNames,\n}: RadioGroupProps) {\n const { describedBy, feedback } = useFeedback({\n classNames: classNames,\n description,\n errorMessage,\n isInvalid,\n });\n const group = (\n <AriaRadioGroup\n className={partClass(partClass('input radio-group', classNames?.root), className)}\n style={style}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isInvalid={isInvalid}\n validationBehavior=\"aria\"\n name={name}\n id={id}\n orientation={orientation}\n dir={dir}\n aria-describedby={describedBy}\n >\n <Label className={partClass('label', classNames?.label)}>{label}</Label>\n <div\n className={partClass('radio-group__items', classNames?.items)}\n data-orientation={orientation}\n >\n {options.map((option) => (\n <Radio\n key={option.id}\n value={option.id}\n isDisabled={option.isDisabled}\n className={partClass('choice', classNames?.item)}\n >\n {({ isSelected, isDisabled: disabled, isFocusVisible }) => (\n <>\n <span\n aria-hidden=\"true\"\n className={partClass('radio__control', classNames?.control)}\n data-state={isSelected ? 'checked' : 'unchecked'}\n data-disabled={disabled || undefined}\n data-invalid={isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n >\n <span className={partClass('radio__dot', classNames?.indicator)} />\n </span>\n <span className={partClass('choice__label', classNames?.itemLabel)}>\n {option.label}\n </span>\n </>\n )}\n </Radio>\n ))}\n </div>\n {feedback}\n </AriaRadioGroup>\n );\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{group}</I18nProvider>\n ) : (\n group\n );\n}\n\nfunction RadioGroupRoot(props: RadioGroupProps | RadioGroupCompositionProps) {\n if ('options' in props && props.options)\n return <CompactRadioGroup {...(props as RadioGroupProps)} />;\n return <RadioGroupComposition {...(props as RadioGroupCompositionProps)} />;\n}\nexport const RadioGroup = /* @__PURE__ */ Object.assign(RadioGroupRoot, {\n Root: RadioGroupComposition,\n Item: RadioItem,\n Control: RadioControl,\n Indicator: RadioIndicator,\n Content: ChoiceContent,\n});\nexport type { RadioGroupCompositionProps } from './choice-composition.js';\n","import {\n SwitchComposition,\n SwitchControl,\n SwitchThumb,\n SwitchIcon,\n ChoiceContent,\n type SwitchCompositionProps,\n} from './choice-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { FieldError, SwitchField, SwitchButton, Text } from 'react-aria-components/Switch';\n\nimport type { FieldFeedbackProps } from './field.js';\nimport { useSwitchVisual, type SwitchVisualProps } from './switch-visual.js';\nexport { SwitchGroup } from './switch-visual.js';\n\nexport interface SwitchProps\n extends\n FieldFeedbackProps,\n SwitchVisualProps,\n StylingProps<'root' | 'choice' | 'control' | 'thumb' | 'label' | 'description' | 'error'> {\n label: string;\n isSelected?: boolean;\n defaultSelected?: boolean;\n onChange?: (selected: boolean) => void;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n validate?: import('react-aria-components/Switch').SwitchFieldProps['validate'];\n validationBehavior?: 'native' | 'aria';\n\n name?: string;\n value?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nfunction CompactSwitch({\n label,\n description,\n errorMessage,\n isInvalid = false,\n isSelected,\n defaultSelected,\n onChange,\n isDisabled,\n isReadOnly = false,\n isRequired = false,\n validate,\n validationBehavior = 'aria',\n size,\n tone,\n variant,\n name,\n value = 'on',\n id,\n dir,\n className,\n style,\n classNames,\n}: SwitchProps) {\n const visual = useSwitchVisual({ size, tone, variant });\n return (\n <SwitchField\n className={partClass(partClass('input', classNames?.root), className)}\n style={style}\n dir={dir}\n isSelected={isSelected}\n defaultSelected={defaultSelected}\n onChange={onChange}\n isDisabled={isDisabled ?? visual.disabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n validate={validate}\n isInvalid={isInvalid}\n validationBehavior={validationBehavior}\n name={name}\n value={value}\n id={id}\n >\n <SwitchButton className={partClass('choice', classNames?.choice)}>\n {({ isSelected: selected, isDisabled: disabled, isFocusVisible }) => (\n <>\n <span\n aria-hidden=\"true\"\n className={partClass('switch__control', classNames?.control)}\n data-size={visual.size}\n data-tone={visual.tone}\n data-variant={visual.variant}\n data-state={selected ? 'checked' : 'unchecked'}\n data-disabled={disabled || undefined}\n data-invalid={isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n >\n <span className={partClass('switch__thumb', classNames?.thumb)} />\n </span>\n <span className={partClass('choice__label', classNames?.label)}>{label}</span>\n </>\n )}\n </SwitchButton>\n {description && (\n <Text\n slot=\"description\"\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </Text>\n )}\n {isInvalid && errorMessage && (\n <FieldError className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </FieldError>\n )}\n </SwitchField>\n );\n}\n\nfunction SwitchRoot(props: SwitchProps | SwitchCompositionProps) {\n if ('label' in props) return <CompactSwitch {...(props as SwitchProps)} />;\n return <SwitchComposition {...(props as SwitchCompositionProps)} />;\n}\nexport const Switch = /* @__PURE__ */ Object.assign(SwitchRoot, {\n Root: SwitchComposition,\n Control: SwitchControl,\n Thumb: SwitchThumb,\n Icon: SwitchIcon,\n Content: ChoiceContent,\n});\nexport type { SwitchCompositionProps } from './choice-composition.js';\n","import { createContext } from 'react';\n\n/** Application-owned errors, keyed by the Field name. Clear entries explicitly. */\nexport type ValidationErrors = Readonly<Record<string, string | undefined>>;\nexport const FormErrorsContext = /* @__PURE__ */ createContext<ValidationErrors>({});\n","import { partClass, type StylingProps } from './styling.js';\nimport { useContext, useId, type ReactNode } from 'react';\nimport { Label } from './Label.js';\nimport { useFeedback } from './field.js';\nimport { FormErrorsContext } from './form-context.js';\n\n/** Bind these props to exactly one native input, textarea, or select. */\nexport interface FieldControlProps {\n id: string;\n name: string;\n className: string;\n disabled: boolean;\n readOnly: boolean;\n required: boolean;\n 'aria-required': true | undefined;\n 'aria-invalid': true | undefined;\n 'aria-describedby': string | undefined;\n}\nexport interface FieldRenderProps {\n controlProps: FieldControlProps;\n isInvalid: boolean;\n errorMessage: string | undefined;\n}\n/** Experimental composition API; the application owns the control value. */\nexport interface FieldProps extends StylingProps<\n 'root' | 'description' | 'error' | 'label' | 'input'\n> {\n label: string;\n name: string;\n children: (field: FieldRenderProps) => ReactNode;\n id?: string;\n description?: string;\n errorMessage?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n dir?: 'ltr' | 'rtl';\n}\n\nexport function Field({\n label,\n name,\n children,\n id,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n dir,\n className,\n style,\n classNames,\n}: FieldProps) {\n const errors = useContext(FormErrorsContext);\n const error =\n Object.hasOwn(errors, name) && typeof errors[name] === 'string'\n ? errors[name] || undefined\n : undefined;\n const invalid = isInvalid || !!error;\n const message = (isInvalid && errorMessage) || error || undefined;\n const generated = useId();\n const controlId = id ?? generated;\n const { describedBy, feedback } = useFeedback({\n classNames: classNames,\n description,\n isInvalid: invalid,\n errorMessage: message,\n });\n const controlProps: FieldControlProps = {\n id: controlId,\n name,\n className: partClass('input__control field__control', classNames?.input),\n disabled: isDisabled,\n readOnly: isReadOnly,\n required: isRequired,\n 'aria-required': isRequired || undefined,\n 'aria-invalid': invalid || undefined,\n 'aria-describedby': describedBy,\n };\n return (\n <div\n className={partClass(partClass('input field', classNames?.root), className)}\n style={style}\n dir={dir}\n >\n <Label htmlFor={controlId} className={classNames?.label}>\n {label}\n </Label>\n {children({ controlProps, isInvalid: invalid, errorMessage: message })}\n {feedback}\n </div>\n );\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport type { FormEvent, ReactNode } from 'react';\nimport { FormErrorsContext, type ValidationErrors } from './form-context.js';\n\n/** Experimental client form. Submission always prevents page navigation. */\nexport interface FormProps extends StylingProps<'root'> {\n children: ReactNode;\n validationErrors?: ValidationErrors;\n onSubmit?: (data: FormData, event: FormEvent<HTMLFormElement>) => void;\n /** Prevent default and reset application state when using controlled values. */\n onReset?: (event: FormEvent<HTMLFormElement>) => void;\n /** Skips browser constraints; explicit aria-invalid state still blocks submission. */\n noValidate?: boolean;\n id?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nexport function Form({\n children,\n validationErrors = {},\n onSubmit,\n onReset,\n noValidate = false,\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': labelledBy,\n dir,\n className,\n style,\n classNames,\n}: FormProps) {\n function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const form = event.currentTarget;\n if (!noValidate && !form.checkValidity()) {\n form.reportValidity();\n return;\n }\n // ARIA validation is application-owned and also applies to labeled Kazee controls.\n for (const element of form.querySelectorAll<HTMLElement>('[aria-invalid=\"true\"]')) {\n const selector = 'input:not([type=\"hidden\"]), textarea, select, button, [role=\"listbox\"]';\n const controls = element.matches(selector)\n ? [element]\n : [...element.querySelectorAll<HTMLElement>(selector)];\n const invalid = controls.find(\n (control) => !control.matches(':disabled, [aria-disabled=\"true\"]'),\n );\n if (invalid) {\n invalid.focus();\n return;\n }\n }\n onSubmit?.(new FormData(form, (event.nativeEvent as SubmitEvent).submitter), event);\n }\n return (\n <FormErrorsContext.Provider value={validationErrors}>\n <form\n className={partClass(partClass('form', classNames?.root), className)}\n style={style}\n id={id}\n dir={dir}\n aria-label={ariaLabel}\n aria-labelledby={labelledBy}\n noValidate={noValidate}\n onSubmit={submit}\n onReset={onReset}\n >\n {children}\n </form>\n </FormErrorsContext.Provider>\n );\n}\n","export interface ListboxOption {\n id: string;\n label: string;\n isDisabled?: boolean;\n}\nexport type ListboxSelectionMode = 'single' | 'multiple';\n/** Stable option order, unique enabled IDs, and at most one ID in single mode. */\nexport function listboxSelection(\n value: readonly string[],\n options: ListboxOption[],\n mode: ListboxSelectionMode,\n): string[] {\n const requested = new Set(value);\n const seen = new Set<string>();\n const result: string[] = [];\n for (const option of options) {\n if (option.id && !option.isDisabled && requested.has(option.id) && !seen.has(option.id)) {\n seen.add(option.id);\n result.push(option.id);\n if (mode === 'single') break;\n }\n }\n return result;\n}\n","import {\n ListBoxRoot,\n ListBoxItemPart,\n ListBoxSectionPart,\n ListBoxItemIndicator,\n} from './control-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useId, useRef, useState } from 'react';\nimport { ListBox, ListBoxItem, type Selection } from 'react-aria-components/ListBox';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { CheckIcon } from './icons.js';\nimport { useFeedback, type FieldFeedbackProps } from './field.js';\nimport {\n listboxSelection,\n type ListboxOption,\n type ListboxSelectionMode,\n} from './listbox-selection.js';\n\nexport interface ListboxProps\n extends\n FieldFeedbackProps,\n StylingProps<\n | 'root'\n | 'label'\n | 'list'\n | 'empty'\n | 'item'\n | 'itemLabel'\n | 'indicator'\n | 'description'\n | 'error'\n > {\n label: string;\n options: ListboxOption[];\n /** Always an array; empty selection is []. */\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n selectionMode?: ListboxSelectionMode;\n isDisabled?: boolean;\n name?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n emptyMessage?: string;\n}\nfunction CompactListbox({\n label,\n options,\n value,\n defaultValue = [],\n onChange,\n selectionMode = 'single',\n isDisabled = false,\n description,\n errorMessage,\n isInvalid = false,\n name,\n id,\n dir,\n emptyMessage = 'Tidak ada pilihan.',\n className,\n style,\n classNames,\n}: ListboxProps) {\n const [local, setLocal] = useState(defaultValue);\n const selected = listboxSelection(value ?? local, options, selectionMode);\n const nodeRef = useRef<HTMLDivElement | null>(null);\n const tabIndexBeforeDisable = useRef<string | null | undefined>(undefined);\n function listRef(node: HTMLDivElement | null) {\n if (!node) return;\n if (nodeRef.current !== node) tabIndexBeforeDisable.current = undefined;\n nodeRef.current = node;\n // The public ListBox ref bridges ARIA props currently overwritten by its field hook.\n if (isInvalid) node.setAttribute('aria-invalid', 'true');\n else node.removeAttribute('aria-invalid');\n if (isDisabled) {\n node.setAttribute('aria-disabled', 'true');\n if (tabIndexBeforeDisable.current === undefined)\n tabIndexBeforeDisable.current = node.getAttribute('tabindex');\n node.tabIndex = -1;\n } else {\n node.removeAttribute('aria-disabled');\n if (tabIndexBeforeDisable.current !== undefined) {\n if (tabIndexBeforeDisable.current === null) node.removeAttribute('tabindex');\n else node.setAttribute('tabindex', tabIndexBeforeDisable.current);\n tabIndexBeforeDisable.current = undefined;\n }\n }\n }\n const generated = useId();\n const labelId = `${id ?? generated}-label`;\n const { describedBy, feedback } = useFeedback({\n classNames: classNames,\n description,\n errorMessage,\n isInvalid,\n });\n function change(keys: Selection) {\n if (isDisabled || keys === 'all') return;\n const next = listboxSelection([...keys].map(String), options, selectionMode);\n if (next.length === selected.length && next.every((key, index) => key === selected[index]))\n return;\n setLocal(next);\n onChange?.(next);\n }\n const list = (\n <div\n className={partClass(partClass('input listbox', classNames?.root), className)}\n style={style}\n dir={dir}\n >\n <span id={labelId} className={partClass('label', classNames?.label)}>\n {label}\n </span>\n <ListBox\n ref={listRef}\n id={id}\n className={partClass('listbox__list', classNames?.list)}\n aria-labelledby={labelId}\n aria-describedby={describedBy}\n aria-invalid={isInvalid || undefined}\n aria-disabled={isDisabled || undefined}\n selectionMode={selectionMode}\n selectionBehavior={selectionMode === 'single' ? 'replace' : 'toggle'}\n disallowEmptySelection={selectionMode === 'single'}\n selectedKeys={selected}\n onSelectionChange={change}\n disabledKeys={options\n .filter((option) => isDisabled || option.isDisabled)\n .map((option) => option.id)}\n renderEmptyState={() => (\n <span className={partClass('listbox__empty', classNames?.empty)}>{emptyMessage}</span>\n )}\n >\n {options.map((option) => (\n <ListBoxItem\n key={option.id}\n id={option.id}\n textValue={option.label}\n isDisabled={isDisabled || option.isDisabled}\n className={partClass('listbox__item', classNames?.item)}\n >\n <span className={partClass('listbox__text', classNames?.itemLabel)}>\n {option.label}\n </span>\n <CheckIcon className={partClass('listbox__check', classNames?.indicator)} />\n </ListBoxItem>\n ))}\n </ListBox>\n {feedback}\n {name &&\n selected.map((key) => (\n <input key={key} type=\"hidden\" name={name} value={key} disabled={isDisabled} />\n ))}\n </div>\n );\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{list}</I18nProvider>\n ) : (\n list\n );\n}\n\nfunction ListboxRoot(props: ListboxProps | Parameters<typeof ListBoxRoot>[0]) {\n if ('options' in props) return <CompactListbox {...props} />;\n return <ListBoxRoot {...props} />;\n}\nexport const Listbox = /* @__PURE__ */ Object.assign(ListboxRoot, {\n Root: ListBoxRoot,\n Item: ListBoxItemPart,\n Section: ListBoxSectionPart,\n ItemIndicator: ListBoxItemIndicator,\n});\n","import {\n NumberField as AriaNumberField,\n type NumberFieldProps as AriaNumberFieldProps,\n Input,\n Group,\n Button,\n type GroupProps,\n type InputProps,\n type ButtonProps,\n} from 'react-aria-components/NumberField';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { partClass } from './styling.js';\n\nexport type NumberFieldCompositionProps = Omit<\n AriaNumberFieldProps,\n 'className' | 'value' | 'defaultValue' | 'onChange' | 'minValue' | 'maxValue'\n> & {\n className?: string;\n label?: never;\n locale?: string;\n value?: number | null;\n defaultValue?: number | null;\n onChange?: (value: number | null) => void;\n min?: number;\n max?: number;\n};\nexport function NumberFieldComposition({\n className,\n locale = 'id-ID',\n value,\n defaultValue,\n onChange,\n min,\n max,\n ...props\n}: NumberFieldCompositionProps) {\n return (\n <I18nProvider locale={locale}>\n <AriaNumberField\n {...props}\n minValue={min}\n maxValue={max}\n value={value === undefined ? undefined : (value ?? Number.NaN)}\n defaultValue={defaultValue ?? Number.NaN}\n onChange={(next) => onChange?.(Number.isFinite(next) ? next : null)}\n className={partClass('input number-field', className)}\n />\n </I18nProvider>\n );\n}\nexport function NumberFieldGroup({\n className,\n ...props\n}: Omit<GroupProps, 'className'> & { className?: string }) {\n return <Group {...props} className={partClass('number-field__group', className)} />;\n}\nexport function NumberFieldInput({\n className,\n ...props\n}: Omit<InputProps, 'className'> & { className?: string }) {\n return <Input {...props} className={partClass('number-field__control', className)} />;\n}\nexport function NumberFieldIncrement({\n className,\n ...props\n}: Omit<ButtonProps, 'className' | 'slot'> & { className?: string }) {\n return (\n <Button\n aria-label=\"Tambah\"\n {...props}\n slot=\"increment\"\n className={partClass('number-field__step', className)}\n />\n );\n}\nexport function NumberFieldDecrement({\n className,\n ...props\n}: Omit<ButtonProps, 'className' | 'slot'> & { className?: string }) {\n return (\n <Button\n aria-label=\"Kurangi\"\n {...props}\n slot=\"decrement\"\n className={partClass('number-field__step', className)}\n />\n );\n}\n","import {\n NumberFieldComposition,\n NumberFieldGroup,\n NumberFieldInput,\n NumberFieldIncrement,\n NumberFieldDecrement,\n type NumberFieldCompositionProps,\n} from './number-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useId, useRef, useState } from 'react';\nimport {\n NumberField as AriaNumberField,\n Input,\n Label,\n Group,\n Button,\n Text,\n FieldError,\n} from 'react-aria-components/NumberField';\nimport { ButtonContext } from 'react-aria-components/Button';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nexport interface NumberFieldProps extends StylingProps<\n | 'root'\n | 'label'\n | 'group'\n | 'input'\n | 'button'\n | 'decrementButton'\n | 'incrementButton'\n | 'description'\n | 'error'\n> {\n label: string;\n value?: number | null;\n defaultValue?: number | null;\n /** Committed numeric value; empty or non-finite values become null. */\n onChange?: (value: number | null) => void;\n min?: number;\n max?: number;\n step?: number;\n locale?: string;\n formatOptions?: Intl.NumberFormatOptions;\n description?: string;\n errorMessage?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n name?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n incrementLabel?: string;\n decrementLabel?: string;\n}\nfunction finite(value: number | null | undefined): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n}\nfunction CompactNumberField({\n label,\n value,\n defaultValue = null,\n onChange,\n min,\n max,\n step = 1,\n locale = 'id-ID',\n formatOptions,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n name,\n id,\n dir,\n incrementLabel,\n decrementLabel,\n className,\n style,\n classNames,\n}: NumberFieldProps) {\n const buttonId = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const [local, setLocal] = useState(() => finite(defaultValue));\n const selected = finite(value === undefined ? local : value);\n function change(next: number) {\n if (isDisabled || isReadOnly) return;\n const number = finite(next);\n setLocal(number);\n onChange?.(number);\n }\n return (\n <I18nProvider locale={locale}>\n <AriaNumberField\n className={partClass(partClass('input number-field', classNames?.root), className)}\n style={style}\n id={id}\n dir={dir}\n value={selected ?? Number.NaN}\n onChange={change}\n minValue={min}\n maxValue={max}\n step={step}\n formatOptions={formatOptions}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n isInvalid={isInvalid}\n validationBehavior=\"aria\"\n isWheelDisabled\n >\n {({ state }) => {\n const empty = state.inputValue.trim() === '';\n // Reka starts empty stepping at min (or zero); use the public state API to match it.\n function startEmpty() {\n const start = Math.min(max ?? Infinity, Math.max(min ?? -Infinity, min ?? 0));\n state.setNumberValue(start);\n inputRef.current?.focus();\n }\n return (\n <>\n <Label className={partClass('label', classNames?.label)}>{label}</Label>\n <Group\n className={partClass('number-field__group', classNames?.group)}\n onKeyDownCapture={(event) => {\n if (\n isDisabled ||\n isReadOnly ||\n !empty ||\n !['ArrowUp', 'ArrowDown', 'PageUp', 'PageDown'].includes(event.key)\n )\n return;\n event.preventDefault();\n event.stopPropagation();\n startEmpty();\n }}\n >\n <ButtonContext.Consumer>\n {(buttonContext) => (\n <ButtonContext.Provider value={empty ? null : buttonContext}>\n <Button\n slot={empty ? undefined : 'decrement'}\n onPress={empty ? startEmpty : undefined}\n isDisabled={empty ? isDisabled || isReadOnly : undefined}\n preventFocusOnPress\n className={partClass(\n partClass('number-field__step', classNames?.button),\n classNames?.decrementButton,\n )}\n aria-label={decrementLabel ?? `Kurangi ${label}`}\n aria-labelledby={`${buttonId}-decrement`}\n excludeFromTabOrder\n >\n <span id={`${buttonId}-decrement`} hidden>\n {decrementLabel ?? `Kurangi ${label}`}\n </span>\n {'\\u2212'}\n </Button>\n <Input\n ref={inputRef}\n className={partClass('number-field__control', classNames?.input)}\n required={isRequired}\n />\n <Button\n slot={empty ? undefined : 'increment'}\n onPress={empty ? startEmpty : undefined}\n isDisabled={empty ? isDisabled || isReadOnly : undefined}\n preventFocusOnPress\n className={partClass(\n partClass('number-field__step', classNames?.button),\n classNames?.incrementButton,\n )}\n aria-label={incrementLabel ?? `Tambah ${label}`}\n aria-labelledby={`${buttonId}-increment`}\n excludeFromTabOrder\n >\n <span id={`${buttonId}-increment`} hidden>\n {incrementLabel ?? `Tambah ${label}`}\n </span>\n +\n </Button>\n </ButtonContext.Provider>\n )}\n </ButtonContext.Consumer>\n </Group>\n {description && (\n <Text\n slot=\"description\"\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </Text>\n )}\n {isInvalid && errorMessage && (\n <FieldError className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </FieldError>\n )}\n {name && (\n <input\n type=\"hidden\"\n name={name}\n value={selected === null ? '' : String(selected)}\n disabled={isDisabled}\n />\n )}\n </>\n );\n }}\n </AriaNumberField>\n </I18nProvider>\n );\n}\n\nfunction NumberFieldRoot(props: NumberFieldProps | NumberFieldCompositionProps) {\n if ('label' in props) return <CompactNumberField {...(props as NumberFieldProps)} />;\n return <NumberFieldComposition {...(props as NumberFieldCompositionProps)} />;\n}\nexport const NumberField = /* @__PURE__ */ Object.assign(NumberFieldRoot, {\n Root: NumberFieldComposition,\n Group: NumberFieldGroup,\n Input: NumberFieldInput,\n IncrementButton: NumberFieldIncrement,\n DecrementButton: NumberFieldDecrement,\n});\nexport type { NumberFieldCompositionProps } from './number-composition.js';\n","import type { HTMLAttributes, ReactNode, AnchorHTMLAttributes, ButtonHTMLAttributes } from 'react';\nimport { createContext, useContext, useId } from 'react';\nimport { partClass, type StylingProps } from './styling.js';\n\nexport type CardPart =\n | 'root'\n | 'action'\n | 'header'\n | 'heading'\n | 'titleRow'\n | 'title'\n | 'description'\n | 'actions'\n | 'content'\n | 'footer';\n\nexport interface CardInteractionProps {\n density?: 'default' | 'compact';\n href?: string;\n target?: AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n rel?: string;\n onPress?: () => void;\n isDisabled?: boolean;\n /** Controlled toggle state for the native action button; omitted for ordinary actions. */\n isSelected?: boolean;\n actionLabel?: string;\n actionLabelledBy?: string;\n actionClassName?: string;\n /** Compose a router link using the supplied native anchor props. */\n renderLink?: (props: AnchorHTMLAttributes<HTMLAnchorElement>) => ReactNode;\n}\nexport interface CardProps\n extends HTMLAttributes<HTMLDivElement>, StylingProps<CardPart>, CardInteractionProps {\n title?: string;\n description?: string;\n headingLevel?: 2 | 3 | 4 | 5 | 6;\n /** Custom leading header content; replaces title/description, preserving actions. */\n header?: ReactNode;\n /** Badge or supplementary controls next to the title, outside its heading. */\n titleExtras?: ReactNode;\n actions?: ReactNode;\n footer?: ReactNode;\n headerAlign?: 'start' | 'center' | 'end';\n dividedHeader?: boolean;\n flushFooter?: boolean;\n}\n\n/** Native primary action is a sibling of content, so nested controls remain valid HTML. */\nconst CardTitleIdContext = createContext<string | undefined>(undefined);\nfunction CardAction({\n href,\n target,\n rel,\n onPress,\n isDisabled,\n isSelected,\n actionLabel,\n actionLabelledBy,\n actionClassName,\n renderLink,\n}: CardInteractionProps) {\n if (!href && !onPress) return null;\n if (href) {\n const props: AnchorHTMLAttributes<HTMLAnchorElement> = {\n className: partClass('card__action', actionClassName),\n href: isDisabled ? undefined : href,\n target,\n rel: rel ?? (target === '_blank' ? 'noopener noreferrer' : undefined),\n 'aria-label': actionLabel,\n 'aria-disabled': isDisabled || undefined,\n 'aria-labelledby': actionLabelledBy,\n role: isDisabled ? 'link' : undefined,\n tabIndex: isDisabled ? -1 : undefined,\n onClick: (event) => {\n if (isDisabled) event.preventDefault();\n else onPress?.();\n },\n };\n return renderLink ? (\n renderLink(props)\n ) : (\n <a {...props} aria-label={actionLabel} aria-labelledby={actionLabelledBy} />\n );\n }\n const props: ButtonHTMLAttributes<HTMLButtonElement> = {\n type: 'button',\n className: partClass('card__action', actionClassName),\n 'aria-label': actionLabel,\n 'aria-labelledby': actionLabelledBy,\n 'aria-pressed': isSelected,\n disabled: isDisabled,\n onClick: () => onPress?.(),\n };\n return <button {...props} />;\n}\nfunction CompactCard({\n title,\n description,\n headingLevel = 3,\n actions,\n header,\n titleExtras,\n footer,\n children,\n className,\n classNames,\n density,\n href,\n target,\n rel,\n onPress,\n isDisabled,\n isSelected,\n actionLabel,\n actionLabelledBy,\n actionClassName,\n renderLink,\n headerAlign,\n dividedHeader,\n flushFooter,\n ...props\n}: CardProps) {\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <div\n {...props}\n data-density={density}\n data-interactive={!!(href || onPress) || undefined}\n data-disabled={isDisabled || undefined}\n data-selected={isSelected || undefined}\n className={partClass(partClass('card', classNames?.root), className)}\n >\n <CardAction\n {...{ href, target, rel, onPress, isDisabled, isSelected, renderLink }}\n actionClassName={partClass(classNames?.action ?? '', actionClassName)}\n actionLabelledBy={actionLabelledBy ?? props['aria-labelledby']}\n actionLabel={actionLabel ?? title ?? props['aria-label']}\n />\n {(title || description || actions || header || titleExtras) && (\n <div\n data-align={headerAlign}\n data-divided={dividedHeader || undefined}\n className={partClass('card__header', classNames?.header)}\n >\n {(title || description || header || titleExtras) && (\n <div className={partClass('card__heading', classNames?.heading)}>\n {header ?? (\n <>\n {titleExtras ? (\n <div className={partClass('card__title-row', classNames?.titleRow)}>\n {title && (\n <Heading className={partClass('card__title', classNames?.title)}>\n {title}\n </Heading>\n )}\n {titleExtras}\n </div>\n ) : (\n title && (\n <Heading className={partClass('card__title', classNames?.title)}>\n {title}\n </Heading>\n )\n )}\n {description && (\n <p className={partClass('card__description', classNames?.description)}>\n {description}\n </p>\n )}\n </>\n )}\n </div>\n )}\n {actions && (\n <div className={partClass('card__actions', classNames?.actions)}>{actions}</div>\n )}\n </div>\n )}\n <div className={partClass('card__content', classNames?.content)}>{children}</div>\n {footer && (\n <div\n data-flush={flushFooter || undefined}\n className={partClass('card__footer', classNames?.footer)}\n >\n {footer}\n </div>\n )}\n </div>\n );\n}\n\nexport function CardRoot({\n className,\n classNames,\n children,\n density,\n href,\n target,\n rel,\n onPress,\n isDisabled,\n isSelected,\n actionLabel,\n actionLabelledBy,\n actionClassName,\n renderLink,\n ...props\n}: HTMLAttributes<HTMLDivElement> & CardInteractionProps & StylingProps<'action'>) {\n const titleId = useId();\n const label = actionLabel ?? props['aria-label'];\n return (\n <CardTitleIdContext.Provider value={titleId}>\n <div\n {...props}\n data-density={density}\n data-interactive={!!(href || onPress) || undefined}\n data-disabled={isDisabled || undefined}\n data-selected={isSelected || undefined}\n className={partClass(partClass('card', classNames?.root), className)}\n >\n <CardAction\n {...{ href, target, rel, onPress, isDisabled, isSelected, renderLink }}\n actionClassName={partClass(classNames?.action ?? '', actionClassName)}\n actionLabel={label}\n actionLabelledBy={\n actionLabelledBy ?? props['aria-labelledby'] ?? (label ? undefined : titleId)\n }\n />\n {children}\n </div>\n </CardTitleIdContext.Provider>\n );\n}\nexport function CardHeader({\n className,\n align,\n divided,\n ...props\n}: HTMLAttributes<HTMLDivElement> & { align?: 'start' | 'center' | 'end'; divided?: boolean }) {\n return (\n <div\n {...props}\n data-align={align}\n data-divided={divided || undefined}\n className={partClass('card__header', className)}\n />\n );\n}\nexport function CardHeading({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('card__heading', className)} />;\n}\nexport function CardTitleRow({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('card__title-row', className)} />;\n}\nexport function CardTitle({\n className,\n headingLevel = 3,\n ...props\n}: HTMLAttributes<HTMLHeadingElement> & { headingLevel?: 2 | 3 | 4 | 5 | 6 }) {\n const titleId = useContext(CardTitleIdContext);\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return <Heading id={titleId} {...props} className={partClass('card__title', className)} />;\n}\nexport function CardDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('card__description', className)} />;\n}\nexport function CardActions({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('card__actions', className)} />;\n}\nexport function CardContent({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('card__content', className)} />;\n}\nexport function CardFooter({\n className,\n flush,\n ...props\n}: HTMLAttributes<HTMLDivElement> & { flush?: boolean }) {\n return (\n <div\n {...props}\n data-flush={flush || undefined}\n className={partClass('card__footer', className)}\n />\n );\n}\nexport const Card = /* @__PURE__ */ Object.assign(CompactCard, {\n Root: CardRoot,\n Header: CardHeader,\n Heading: CardHeading,\n TitleRow: CardTitleRow,\n Title: CardTitle,\n Description: CardDescription,\n Actions: CardActions,\n Content: CardContent,\n Footer: CardFooter,\n});\n","import { Children, cloneElement, type ReactElement, type ReactNode, type Ref } from 'react';\n\n/** Decorate one child while preserving its handlers and ref. */\nexport function visualSlot(children: ReactNode, props: Record<string, unknown>) {\n const child = Children.only(children) as ReactElement<Record<string, unknown>>;\n const merged = { ...child.props, ...props };\n merged.className = [props.className, child.props.className].filter(Boolean).join(' ');\n merged.style = { ...(props.style as object), ...(child.props.style as object) };\n for (const key of Object.keys(props)) {\n if (\n /^on[A-Z]/.test(key) &&\n typeof child.props[key] === 'function' &&\n typeof props[key] === 'function'\n ) {\n merged[key] = (...args: unknown[]) => {\n (child.props[key] as (...args: unknown[]) => void)(...args);\n (props[key] as (...args: unknown[]) => void)(...args);\n };\n }\n }\n if (child.props.ref && props.ref) {\n merged.ref = (node: unknown) => {\n const cleanups: (() => void)[] = [];\n for (const ref of [child.props.ref, props.ref] as Ref<unknown>[]) {\n if (typeof ref === 'function') {\n const cleanup = ref(node);\n cleanups.push(\n typeof cleanup === 'function'\n ? cleanup\n : () => {\n ref(null);\n },\n );\n } else if (ref) {\n ref.current = node;\n cleanups.push(() => {\n ref.current = null;\n });\n }\n }\n return () => {\n for (const cleanup of cleanups) cleanup();\n };\n };\n }\n return cloneElement(child, merged);\n}\n","import { createContext, useContext, type HTMLAttributes, type Ref } from 'react';\nimport { partClass } from './styling.js';\nimport type { ComponentSize, IndicatorPlacement, Tone } from './visual.js';\nimport { visualSlot } from './visual-slot.js';\nexport type BadgeTone = Tone;\nexport type BadgeVariant = 'default' | 'solid' | 'soft' | 'outline' | 'ghost' | 'link';\nconst AnchorContext = createContext(false);\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n classNames?: Partial<Record<'root' | 'label', string>>;\n tone?: BadgeTone;\n size?: ComponentSize;\n variant?: BadgeVariant;\n placement?: IndicatorPlacement;\n asChild?: boolean;\n ref?: Ref<HTMLSpanElement>;\n}\n/** Static status text; wrap in Badge.Anchor to position it relative to another element. */\nexport function BadgeRoot({\n tone = 'neutral',\n size = 'md',\n variant = 'default',\n placement = 'top-right',\n asChild,\n children,\n className,\n classNames,\n ...props\n}: BadgeProps) {\n const anchored = useContext(AnchorContext);\n const attributes = {\n ...props,\n className: partClass(partClass('badge', classNames?.root), className),\n 'data-tone': tone,\n 'data-size': size,\n 'data-variant': variant,\n 'data-placement': anchored ? placement : undefined,\n 'data-anchored': anchored || undefined,\n 'data-dot': (anchored && children == null) || undefined,\n };\n return asChild ? (\n visualSlot(children, attributes)\n ) : (\n <span {...attributes}>\n {classNames?.label ? (\n <span className={partClass('badge__label', classNames.label)}>{children}</span>\n ) : (\n children\n )}\n </span>\n );\n}\nexport function BadgeAnchor({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement> & { ref?: Ref<HTMLSpanElement> }) {\n return (\n <AnchorContext.Provider value={true}>\n <span {...props} className={partClass('badge-anchor badge__anchor', className)} />\n </AnchorContext.Provider>\n );\n}\nexport function BadgeLabel({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement> & { ref?: Ref<HTMLSpanElement> }) {\n return <span {...props} className={partClass('badge__label', className)} />;\n}\nexport const Badge = /* @__PURE__ */ Object.assign(BadgeRoot, {\n Root: BadgeRoot,\n Anchor: BadgeAnchor,\n Label: BadgeLabel,\n});\n","import {\n createContext,\n useContext,\n useEffect,\n useState,\n useRef,\n type HTMLAttributes,\n type ImgHTMLAttributes,\n type Ref,\n type SyntheticEvent,\n} from 'react';\nimport { partClass, type StylingProps } from './styling.js';\nimport type {\n AvatarVariant,\n ComponentSize,\n ImageLoadingStatus,\n IndicatorPlacement,\n Tone,\n} from './visual.js';\nimport { visualSlot } from './visual-slot.js';\n\nexport const AvatarGroupContext = createContext<{\n size?: ComponentSize;\n tone?: Tone;\n variant?: AvatarVariant;\n}>({});\nconst AvatarContext = createContext<{\n status: ImageLoadingStatus;\n setStatus: (status: ImageLoadingStatus) => void;\n size: ComponentSize;\n classNames?: AvatarProps['classNames'];\n} | null>(null);\nexport interface AvatarProps\n extends HTMLAttributes<HTMLSpanElement>, StylingProps<'image' | 'fallback' | 'badge'> {\n size?: ComponentSize;\n tone?: Tone;\n variant?: AvatarVariant;\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n asChild?: boolean;\n ref?: Ref<HTMLSpanElement>;\n}\nexport function AvatarRoot({\n size,\n tone,\n variant,\n radius = 'full',\n asChild,\n children,\n className,\n classNames,\n ...props\n}: AvatarProps) {\n const group = useContext(AvatarGroupContext);\n const [status, setStatus] = useState<ImageLoadingStatus>('idle');\n const actualSize = size ?? group.size ?? 'md';\n const attributes = {\n ...props,\n className: partClass(partClass('avatar', classNames?.root), className),\n 'data-size': actualSize,\n 'data-tone': tone ?? group.tone ?? 'neutral',\n 'data-variant': variant ?? group.variant ?? 'default',\n 'data-radius': radius,\n 'data-image-status': status,\n };\n return (\n <AvatarContext.Provider value={{ status, setStatus, size: actualSize, classNames }}>\n {asChild ? visualSlot(children, attributes) : <span {...attributes}>{children}</span>}\n </AvatarContext.Provider>\n );\n}\nexport interface AvatarImageProps extends ImgHTMLAttributes<HTMLImageElement> {\n asChild?: boolean;\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void;\n ref?: Ref<HTMLImageElement>;\n}\nexport function AvatarImage(props: AvatarImageProps) {\n return (\n <AvatarImageLoader\n key={`${props.src ?? ''}|${props.srcSet ?? ''}|${props.sizes ?? ''}`}\n {...props}\n />\n );\n}\nfunction AvatarImageLoader({\n src,\n srcSet,\n sizes,\n alt,\n asChild,\n children,\n className,\n onLoad,\n onError,\n onLoadingStatusChange,\n ref,\n ...props\n}: AvatarImageProps) {\n const context = useContext(AvatarContext);\n const setStatus = context?.setStatus;\n const imageRef = useRef<HTMLImageElement | null>(null);\n const [result, setResult] = useState<{ source: string; status: ImageLoadingStatus }>({\n source: '',\n status: 'idle',\n });\n const source = `${src ?? ''}|${srcSet ?? ''}|${sizes ?? ''}`;\n const status = result.source === source ? result.status : src || srcSet ? 'loading' : 'error';\n const statusCallback = useRef(onLoadingStatusChange);\n useEffect(() => {\n statusCallback.current = onLoadingStatusChange;\n });\n useEffect(() => {\n setStatus?.(status);\n statusCallback.current?.(status);\n }, [status, setStatus]);\n useEffect(() => () => setStatus?.('idle'), [setStatus]);\n useEffect(() => {\n if (imageRef.current?.complete && imageRef.current.naturalWidth > 0)\n setResult({ source, status: 'loaded' });\n }, [source]);\n const attributes = {\n ...props,\n src,\n srcSet,\n sizes,\n className: partClass(partClass('avatar__image', context?.classNames?.image), className),\n 'data-status': status,\n 'aria-hidden': status !== 'loaded' || undefined,\n ref: (node: HTMLImageElement | null) => {\n imageRef.current = node;\n if (typeof ref === 'function') return ref(node);\n else if (ref) ref.current = node;\n },\n onLoad: (event: SyntheticEvent<HTMLImageElement>) => {\n if (event.currentTarget !== imageRef.current) return;\n setResult({ source, status: 'loaded' });\n onLoad?.(event);\n },\n onError: (event: SyntheticEvent<HTMLImageElement>) => {\n if (event.currentTarget !== imageRef.current) return;\n setResult({ source, status: 'error' });\n onError?.(event);\n },\n };\n return asChild ? (\n visualSlot(children, { ...attributes, ...(alt !== undefined ? { alt } : {}) })\n ) : (\n <img key={source} {...attributes} alt={alt ?? ''} />\n );\n}\nexport interface AvatarFallbackProps extends HTMLAttributes<HTMLSpanElement> {\n delayMs?: number;\n tone?: Tone;\n ref?: Ref<HTMLSpanElement>;\n}\nexport function AvatarFallback({ delayMs = 0, tone, className, ...props }: AvatarFallbackProps) {\n const context = useContext(AvatarContext);\n const [ready, setReady] = useState(delayMs <= 0);\n useEffect(() => {\n setReady(delayMs <= 0);\n if (delayMs <= 0) return;\n const timer = setTimeout(() => setReady(true), delayMs);\n return () => clearTimeout(timer);\n }, [delayMs, context?.status]);\n if (context?.status === 'loaded' || !ready) return null;\n return (\n <span\n {...props}\n className={partClass(partClass('avatar__fallback', context?.classNames?.fallback), className)}\n data-tone={tone}\n />\n );\n}\nexport interface AvatarBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n size?: ComponentSize;\n tone?: Tone;\n placement?: IndicatorPlacement;\n ref?: Ref<HTMLSpanElement>;\n}\nexport function AvatarBadge({\n size,\n tone = 'primary',\n placement = 'bottom-right',\n className,\n children,\n ...props\n}: AvatarBadgeProps) {\n const context = useContext(AvatarContext);\n return (\n <span\n {...props}\n className={partClass(partClass('avatar__badge', context?.classNames?.badge), className)}\n data-size={size ?? context?.size ?? 'md'}\n data-tone={tone}\n data-placement={placement}\n data-dot={children == null || undefined}\n >\n {children}\n </span>\n );\n}\nexport const Avatar = /* @__PURE__ */ Object.assign(AvatarRoot, {\n Root: AvatarRoot,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n Badge: AvatarBadge,\n});\n","import {\n Children,\n Fragment,\n cloneElement,\n isValidElement,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { Avatar, AvatarGroupContext, type AvatarProps } from './Avatar.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { AvatarVariant, ComponentSize, Tone } from './visual.js';\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement>, StylingProps<'count'> {\n size?: ComponentSize;\n tone?: Tone;\n variant?: AvatarVariant;\n max?: number;\n isGrid?: boolean;\n overlap?: 'clip' | 'ring';\n}\nfunction flatten(children: ReactNode, prefix = ''): ReactNode[] {\n return Children.toArray(children).flatMap((child, index) => {\n const key = `${prefix}/${isValidElement(child) ? (child.key ?? index) : index}`;\n return isValidElement(child) && child.type === Fragment\n ? flatten((child.props as { children: ReactNode }).children, key)\n : isValidElement(child)\n ? [cloneElement(child, { key })]\n : [];\n });\n}\nexport function AvatarGroupCount({ className, ...props }: AvatarProps) {\n return (\n <Avatar {...props} className={partClass('avatar-group__count', className)}>\n <Avatar.Fallback>{props.children}</Avatar.Fallback>\n </Avatar>\n );\n}\nexport function AvatarGroupRoot({\n size = 'md',\n tone = 'neutral',\n variant = 'default',\n max,\n isGrid = false,\n overlap = 'clip',\n className,\n classNames,\n children,\n ...props\n}: AvatarGroupProps) {\n const items = flatten(children);\n const counts = items.filter((item) => isValidElement(item) && item.type === AvatarGroupCount);\n const avatars = items.filter((item) => !counts.includes(item));\n const limit =\n max === undefined || !Number.isFinite(max) ? avatars.length : Math.max(0, Math.floor(max));\n const hidden = Math.max(0, avatars.length - limit);\n return (\n <AvatarGroupContext.Provider value={{ size, tone, variant }}>\n <div\n {...props}\n className={partClass(partClass('avatar-group', classNames?.root), className)}\n data-size={size}\n data-grid={isGrid || undefined}\n data-overlap={overlap}\n >\n {avatars.slice(0, limit)}\n {counts.length ? (\n counts\n ) : hidden > 0 ? (\n <AvatarGroupCount className={classNames?.count} aria-label={`${hidden} more`}>\n +{hidden}\n </AvatarGroupCount>\n ) : null}\n </div>\n </AvatarGroupContext.Provider>\n );\n}\nexport const AvatarGroup = /* @__PURE__ */ Object.assign(AvatarGroupRoot, {\n Root: AvatarGroupRoot,\n Count: AvatarGroupCount,\n});\n","import { partClass } from './styling.js';\nimport type { HTMLAttributes } from 'react';\nexport interface SkeletonProps extends Omit<\n HTMLAttributes<HTMLSpanElement>,\n 'children' | 'aria-hidden'\n> {\n classNames?: Partial<Record<'root', string>>;\n shape?: 'rectangle' | 'circle';\n animated?: boolean;\n}\n/** Decorative placeholder. Set aria-busy and loading text on the surrounding content. */\nexport function Skeleton({\n shape = 'rectangle',\n animated = true,\n className,\n classNames,\n ...props\n}: SkeletonProps) {\n return (\n <span\n {...props}\n className={partClass(partClass('skeleton', classNames?.root), className)}\n data-shape={shape}\n data-animated={animated ? 'true' : undefined}\n aria-hidden=\"true\"\n />\n );\n}\n","import { partClass } from './styling.js';\nimport type { HTMLAttributes } from 'react';\nexport interface SeparatorProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'children' | 'role' | 'aria-hidden' | 'aria-orientation'\n> {\n classNames?: Partial<Record<'root', string>>;\n orientation?: 'horizontal' | 'vertical';\n decorative?: boolean;\n}\nexport function Separator({\n orientation = 'horizontal',\n decorative = true,\n className,\n classNames,\n ...props\n}: SeparatorProps) {\n return (\n <div\n {...props}\n className={partClass(partClass('separator', classNames?.root), className)}\n data-orientation={orientation}\n role={decorative ? 'presentation' : 'separator'}\n aria-hidden={decorative ? 'true' : undefined}\n aria-orientation={decorative ? undefined : orientation}\n />\n );\n}\n","// Framework-neutral DOM behavior. Keep in sync with packages/vue/src/tabs-indicator.ts.\nexport function mountTabsIndicator(container: HTMLElement): () => void {\n const list = container.querySelector<HTMLElement>('[role=\"tablist\"]');\n if (!list) return () => {};\n let frame = 0,\n disposed = false,\n previous: Element | null = null,\n armed = false;\n const prev = container.querySelector<HTMLButtonElement>('[data-tabs-scroll=\"prev\"]');\n const next = container.querySelector<HTMLButtonElement>('[data-tabs-scroll=\"next\"]');\n const vertical = () => list.getAttribute('aria-orientation') === 'vertical';\n const reduced = () => window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n function measure() {\n if (disposed) return;\n const selected = list!.querySelector<HTMLElement>('[role=\"tab\"][aria-selected=\"true\"]');\n const rect = list!.getBoundingClientRect();\n if (selected && rect.width > 0 && rect.height > 0) {\n const tab = selected.getBoundingClientRect();\n const border = getComputedStyle(list!);\n list!.style.setProperty(\n '--tabs-indicator-x',\n `${tab.left - rect.left + list!.scrollLeft - (parseFloat(border.borderLeftWidth) || 0)}px`,\n );\n list!.style.setProperty(\n '--tabs-indicator-y',\n `${tab.top - rect.top + list!.scrollTop - (parseFloat(border.borderTopWidth) || 0)}px`,\n );\n list!.style.setProperty('--tabs-indicator-width', `${tab.width}px`);\n list!.style.setProperty('--tabs-indicator-height', `${tab.height}px`);\n list!.dataset.indicatorReady = 'true';\n if (!armed) {\n armed = true;\n requestAnimationFrame(() => {\n if (!disposed) list!.dataset.indicatorAnimated = 'true';\n });\n }\n if (selected !== previous && previous && typeof list!.scrollBy === 'function') {\n const delta = vertical()\n ? tab.top < rect.top\n ? tab.top - rect.top\n : tab.bottom > rect.bottom\n ? tab.bottom - rect.bottom\n : 0\n : tab.left < rect.left\n ? tab.left - rect.left\n : tab.right > rect.right\n ? tab.right - rect.right\n : 0;\n if (delta)\n list!.scrollBy({\n [vertical() ? 'top' : 'left']: delta,\n behavior: reduced() ? 'instant' : 'smooth',\n });\n }\n } else list!.dataset.indicatorReady = 'false';\n previous = selected;\n const max = vertical()\n ? list!.scrollHeight - list!.clientHeight\n : list!.scrollWidth - list!.clientWidth;\n const position = Math.abs(vertical() ? list!.scrollTop : list!.scrollLeft);\n list!.dataset.overflow = String(max > 1);\n if (prev) {\n prev.hidden = max <= 1;\n prev.disabled = position <= 1;\n }\n if (next) {\n next.hidden = max <= 1;\n next.disabled = position >= max - 1;\n }\n }\n function schedule() {\n if (disposed) return;\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(measure);\n }\n function scroll(direction: number) {\n if (typeof list!.scrollBy !== 'function') return;\n const rtl = !vertical() && getComputedStyle(list!).direction === 'rtl';\n const amount =\n (vertical() ? list!.clientHeight : list!.clientWidth) * 0.7 * direction * (rtl ? -1 : 1);\n list!.scrollBy({\n [vertical() ? 'top' : 'left']: amount,\n behavior: reduced() ? 'instant' : 'smooth',\n });\n }\n const backward = () => scroll(-1),\n forward = () => scroll(1);\n prev?.addEventListener('click', backward);\n next?.addEventListener('click', forward);\n list.addEventListener('scroll', schedule, { passive: true });\n window.addEventListener('resize', schedule);\n const observer = new MutationObserver(schedule);\n observer.observe(list, {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['aria-selected', 'aria-orientation', 'aria-disabled', 'disabled'],\n });\n const resize = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(schedule);\n resize?.observe(list);\n for (const tab of list.querySelectorAll('[role=\"tab\"]')) resize?.observe(tab);\n void document.fonts?.ready.then(schedule);\n schedule();\n return () => {\n disposed = true;\n cancelAnimationFrame(frame);\n observer.disconnect();\n resize?.disconnect();\n prev?.removeEventListener('click', backward);\n next?.removeEventListener('click', forward);\n list.removeEventListener('scroll', schedule);\n window.removeEventListener('resize', schedule);\n };\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport type { ButtonSize } from './Button.js';\nimport { useEffect, useRef, useState, type ReactNode, type HTMLAttributes } from 'react';\nimport { composeRenderProps } from 'react-aria-components';\nimport type {\n TabsProps as AriaTabsProps,\n TabListProps,\n TabProps,\n TabPanelProps,\n} from 'react-aria-components/Tabs';\nimport { Tabs as AriaTabs, TabList, Tab, TabPanel } from 'react-aria-components/Tabs';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { mountTabsIndicator } from './tabs-indicator.js';\nexport interface TabItem {\n id: string;\n label: string;\n isDisabled?: boolean;\n}\n/** `enclosed` is horizontal only; vertical Tabs render it as `secondary`. */\nexport type TabsVariant = 'primary' | 'secondary' | 'default' | 'pill' | 'enclosed';\nfunction variantClass(variant: TabsVariant, orientation?: 'horizontal' | 'vertical') {\n if (variant === 'default') return 'tabs--primary';\n if (variant === 'enclosed' && orientation === 'vertical') return 'tabs--secondary';\n return `tabs--${variant}`;\n}\nexport type TabsPart =\n | 'root'\n | 'listContainer'\n | 'list'\n | 'tab'\n | 'separator'\n | 'icon'\n | 'label'\n | 'panel'\n | 'toolbar'\n | 'navigation'\n | 'extras'\n | 'actions'\n | 'scrollButton';\nexport interface TabsProps extends StylingProps<TabsPart> {\n label: string;\n variant?: TabsVariant;\n size?: ButtonSize;\n indicatorShadow?: boolean;\n orientation?: 'horizontal' | 'vertical';\n align?: 'start' | 'center' | 'end';\n fullWidth?: boolean;\n /** Remove track inset and gaps. Pill uses an outlined track in this mode. */\n inset?: 'default' | 'none';\n showSeparators?: boolean;\n renderIcon?: (item: TabItem) => ReactNode;\n previousLabel?: string;\n nextLabel?: string;\n extras?: ReactNode;\n actions?: ReactNode;\n items: TabItem[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n renderPanel: (item: TabItem) => ReactNode;\n activationMode?: 'automatic' | 'manual';\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactTabs({\n className,\n style,\n classNames,\n label,\n variant = 'primary',\n size = 'md',\n indicatorShadow = true,\n orientation = 'horizontal',\n align = 'center',\n fullWidth = false,\n inset = 'default',\n showSeparators = false,\n renderIcon,\n previousLabel = 'Tab sebelumnya / Previous tabs',\n nextLabel = 'Tab berikutnya / Next tabs',\n extras,\n actions,\n items,\n value,\n defaultValue,\n onChange,\n renderPanel,\n activationMode = 'manual',\n dir,\n id,\n}: TabsProps) {\n const container = useRef<HTMLDivElement>(null);\n const hasToolbar = !!(extras || actions);\n useEffect(\n () => (container.current ? mountTabsIndicator(container.current) : undefined),\n [items.length, hasToolbar],\n );\n const [local, setLocal] = useState(defaultValue);\n const selected =\n items.find((item) => item.id === (value ?? local) && !item.isDisabled)?.id ??\n items.find((item) => !item.isDisabled)?.id;\n const list =\n items.length > 0 ? (\n <div className={partClass('tabs__list-container', classNames?.listContainer)} ref={container}>\n <button\n type=\"button\"\n className={partClass(\n 'tabs__scroll-button tabs__scroll-button--prev',\n classNames?.scrollButton,\n )}\n data-tabs-scroll=\"prev\"\n hidden\n aria-label={previousLabel}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m14 6-6 6 6 6\" />\n </svg>\n </button>\n <TabList className={partClass('tabs__list', classNames?.list)} aria-label={label}>\n {items.map((item, index) => (\n <Tab\n className={partClass('tabs__trigger', classNames?.tab)}\n key={item.id}\n id={item.id}\n isDisabled={item.isDisabled}\n >\n {showSeparators && index > 0 && (\n <span\n className={partClass('tabs__separator', classNames?.separator)}\n aria-hidden=\"true\"\n />\n )}\n {renderIcon && (\n <span className={partClass('tabs__icon', classNames?.icon)} aria-hidden=\"true\">\n {renderIcon(item)}\n </span>\n )}\n <span className={partClass('tabs__label', classNames?.label)}>{item.label}</span>\n </Tab>\n ))}\n </TabList>\n <button\n type=\"button\"\n className={partClass(\n 'tabs__scroll-button tabs__scroll-button--next',\n classNames?.scrollButton,\n )}\n data-tabs-scroll=\"next\"\n hidden\n aria-label={nextLabel}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m10 6 6 6-6 6\" />\n </svg>\n </button>\n </div>\n ) : null;\n const content = (\n <AriaTabs\n data-indicator-shadow={indicatorShadow}\n className={[\n 'tabs',\n classNames?.root,\n className,\n variantClass(variant, orientation),\n `tabs--align-${align}`,\n fullWidth && 'tabs--full-width',\n inset === 'none' && 'tabs--flush',\n size !== 'md' && `tabs--${size}`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n id={id}\n orientation={orientation}\n dir={dir}\n selectedKey={selected ?? ''}\n keyboardActivation={activationMode}\n disabledKeys={items.filter((item) => item.isDisabled).map((item) => item.id)}\n onSelectionChange={(key) => {\n const next = String(key);\n if (next !== selected && items.some((item) => item.id === next && !item.isDisabled)) {\n setLocal(next);\n onChange?.(next);\n }\n }}\n >\n {extras || actions ? (\n <div className={partClass('tabs__toolbar', classNames?.toolbar)}>\n <div className={partClass('tabs__navigation', classNames?.navigation)}>\n {list}\n {extras && (\n <div className={partClass('tabs__extras', classNames?.extras)}>{extras}</div>\n )}\n </div>\n {actions && (\n <div className={partClass('tabs__actions', classNames?.actions)}>{actions}</div>\n )}\n </div>\n ) : (\n list\n )}\n {items.map((item) => (\n <TabPanel\n key={item.id}\n id={item.id}\n className={partClass('tabs__panel', classNames?.panel)}\n >\n {renderPanel(item)}\n </TabPanel>\n ))}\n </AriaTabs>\n );\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{content}</I18nProvider>\n ) : (\n content\n );\n}\n\nexport interface TabsRootProps\n extends\n Omit<\n AriaTabsProps,\n | 'selectedKey'\n | 'defaultSelectedKey'\n | 'onSelectionChange'\n | 'className'\n | 'style'\n | 'children'\n >,\n StylingProps<'root'> {\n children?: ReactNode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n variant?: TabsVariant;\n size?: ButtonSize;\n indicatorShadow?: boolean;\n align?: 'start' | 'center' | 'end';\n fullWidth?: boolean;\n}\nexport function TabsRoot({\n className,\n classNames,\n value,\n defaultValue,\n onChange,\n variant = 'primary',\n size = 'md',\n align = 'center',\n fullWidth,\n indicatorShadow = true,\n ...props\n}: TabsRootProps) {\n return (\n <AriaTabs\n {...props}\n data-indicator-shadow={indicatorShadow}\n selectedKey={value}\n defaultSelectedKey={defaultValue}\n onSelectionChange={onChange ? (key) => onChange(String(key)) : undefined}\n className={[\n 'tabs',\n variantClass(variant, props.orientation),\n `tabs--align-${align}`,\n size !== 'md' && `tabs--${size}`,\n fullWidth && 'tabs--full-width',\n classNames?.root,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n />\n );\n}\nexport function TabsListContainer({\n className,\n children,\n previousLabel = 'Tab sebelumnya / Previous tabs',\n nextLabel = 'Tab berikutnya / Next tabs',\n ...props\n}: HTMLAttributes<HTMLDivElement> & { previousLabel?: string; nextLabel?: string }) {\n const ref = useRef<HTMLDivElement>(null);\n useEffect(() => (ref.current ? mountTabsIndicator(ref.current) : undefined), []);\n return (\n <div {...props} ref={ref} className={partClass('tabs__list-container', className)}>\n <button\n type=\"button\"\n className=\"tabs__scroll-button tabs__scroll-button--prev\"\n data-tabs-scroll=\"prev\"\n hidden\n aria-label={previousLabel}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m14 6-6 6 6 6\" />\n </svg>\n </button>\n {children}\n <button\n type=\"button\"\n className=\"tabs__scroll-button tabs__scroll-button--next\"\n data-tabs-scroll=\"next\"\n hidden\n aria-label={nextLabel}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m10 6 6 6-6 6\" />\n </svg>\n </button>\n </div>\n );\n}\nexport function TabsList<T extends object>(props: TabListProps<T>) {\n return (\n <TabList\n {...props}\n className={composeRenderProps(props.className, (value) => partClass('tabs__list', value))}\n />\n );\n}\nexport function TabsTab(props: TabProps) {\n return (\n <Tab\n {...props}\n className={composeRenderProps(props.className, (value) => partClass('tabs__trigger', value))}\n />\n );\n}\nexport function TabsPanel(props: TabPanelProps) {\n return (\n <TabPanel\n {...props}\n className={composeRenderProps(props.className, (value) => partClass('tabs__panel', value))}\n />\n );\n}\nexport function TabsIndicator({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} aria-hidden=\"true\" className={partClass('tabs__indicator', className)} />;\n}\nexport function TabsSeparator({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} aria-hidden=\"true\" className={partClass('tabs__separator', className)} />;\n}\nfunction TabsComponent(props: TabsProps | TabsRootProps) {\n return 'items' in props ? <CompactTabs {...props} /> : <TabsRoot {...props} />;\n}\nexport const Tabs = /* @__PURE__ */ Object.assign(TabsComponent, {\n Root: TabsRoot,\n ListContainer: TabsListContainer,\n List: TabsList,\n Tab: TabsTab,\n Panel: TabsPanel,\n Indicator: TabsIndicator,\n Separator: TabsSeparator,\n});\n","export function paginationModel(\n totalItems: number,\n pageSize: number,\n value: number,\n siblingCount = 1,\n) {\n const total = Number.isFinite(totalItems)\n ? Math.min(Number.MAX_SAFE_INTEGER, Math.max(0, Math.floor(totalItems)))\n : 0;\n const size = Number.isFinite(pageSize) ? Math.max(1, Math.floor(pageSize)) : 10;\n const count = Math.max(1, Math.ceil(total / size));\n const current = Math.min(count, Math.max(1, Number.isFinite(value) ? Math.floor(value) : 1));\n const siblings = Number.isFinite(siblingCount)\n ? Math.min(2, Math.max(0, Math.floor(siblingCount)))\n : 1;\n const pages = new Set([1, count, current]);\n for (let offset = 1; offset <= siblings; offset++) {\n if (current - offset > 1) pages.add(current - offset);\n if (current + offset < count) pages.add(current + offset);\n }\n const ordered = [...pages].sort((a, b) => a - b);\n const entries: (number | string)[] = [];\n ordered.forEach((page, index) => {\n if (index && page - ordered[index - 1] > 1) entries.push(`gap-${page}`);\n entries.push(page);\n });\n return { current, count, entries };\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport {\n createContext,\n useContext,\n useState,\n type HTMLAttributes,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { paginationModel } from './pagination-model.js';\nexport type PaginationPart = 'root' | 'button' | 'gap' | 'summary';\nexport interface PaginationProps extends StylingProps<PaginationPart> {\n totalItems: number;\n pageSize?: number;\n value?: number;\n defaultValue?: number;\n onChange?: (page: number) => void;\n isDisabled?: boolean;\n siblingCount?: number;\n label?: string;\n previousLabel?: string;\n nextLabel?: string;\n pageLabel?: string;\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactPagination({\n className,\n style,\n classNames,\n totalItems,\n pageSize = 10,\n value,\n defaultValue = 1,\n onChange,\n isDisabled = false,\n siblingCount = 1,\n label = 'Navigasi halaman',\n previousLabel = 'Sebelumnya',\n nextLabel = 'Berikutnya',\n pageLabel = 'Halaman',\n dir,\n id,\n}: PaginationProps) {\n const [local, setLocal] = useState(defaultValue);\n const { current, count, entries } = paginationModel(\n totalItems,\n pageSize,\n value ?? local,\n siblingCount,\n );\n function change(next: number) {\n if (isDisabled || next === current || next < 1 || next > count) return;\n setLocal(next);\n onChange?.(next);\n }\n return (\n <nav\n className={partClass(partClass('pagination', classNames?.root), className)}\n style={style}\n aria-label={label}\n dir={dir}\n id={id}\n >\n <button\n type=\"button\"\n className={partClass('pagination__button', classNames?.button)}\n disabled={isDisabled || current === 1}\n onClick={() => change(current - 1)}\n >\n {previousLabel}\n </button>\n {entries.map((entry) =>\n typeof entry === 'string' ? (\n <span\n className={partClass('pagination__gap', classNames?.gap)}\n aria-hidden=\"true\"\n key={entry}\n >\n ...\n </span>\n ) : (\n <button\n type=\"button\"\n key={entry}\n className={partClass('pagination__button', classNames?.button)}\n aria-label={`${pageLabel} ${entry}`}\n aria-current={entry === current ? 'page' : undefined}\n disabled={isDisabled}\n onClick={() => change(entry)}\n >\n {entry}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className={partClass('pagination__button', classNames?.button)}\n disabled={isDisabled || current === count}\n onClick={() => change(current + 1)}\n >\n {nextLabel}\n </button>\n <span className={partClass('pagination__summary', classNames?.summary)} aria-live=\"polite\">\n {current} / {count}\n </span>\n </nav>\n );\n}\n\ninterface PaginationState {\n current: number;\n count: number;\n disabled: boolean;\n change: (page: number) => void;\n}\nconst PaginationContext = createContext<PaginationState | null>(null);\nfunction usePagination() {\n const context = useContext(PaginationContext);\n if (!context) throw new Error('Pagination parts must be used inside Pagination.Root.');\n return context;\n}\nexport interface PaginationRootProps extends Omit<\n PaginationProps,\n 'previousLabel' | 'nextLabel' | 'pageLabel'\n> {\n children?: ReactNode;\n}\nexport function PaginationRoot({\n totalItems,\n pageSize = 10,\n value,\n defaultValue = 1,\n onChange,\n isDisabled = false,\n siblingCount = 1,\n label = 'Navigasi halaman / Pagination',\n className,\n classNames,\n style,\n dir,\n id,\n children,\n}: PaginationRootProps) {\n const [local, setLocal] = useState(defaultValue);\n const { current, count } = paginationModel(totalItems, pageSize, value ?? local, siblingCount);\n function change(page: number) {\n if (isDisabled || !Number.isInteger(page) || page < 1 || page > count || page === current)\n return;\n setLocal(page);\n onChange?.(page);\n }\n return (\n <PaginationContext.Provider value={{ current, count, disabled: isDisabled, change }}>\n <nav\n id={id}\n dir={dir}\n style={style}\n aria-label={label}\n className={partClass(partClass('pagination', classNames?.root), className)}\n >\n {children}\n </nav>\n </PaginationContext.Provider>\n );\n}\nexport function PaginationPageButton({\n page,\n className,\n onClick,\n disabled,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement> & { page: number }) {\n const state = usePagination();\n return (\n <button\n {...props}\n type=\"button\"\n className={partClass('pagination__button', className)}\n disabled={\n disabled || state.disabled || !Number.isInteger(page) || page < 1 || page > state.count\n }\n aria-current={page === state.current ? 'page' : undefined}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) state.change(page);\n }}\n />\n );\n}\nexport function PaginationPrevious(props: ButtonHTMLAttributes<HTMLButtonElement>) {\n const state = usePagination();\n return (\n <PaginationPageButton\n aria-label={props.children ? undefined : 'Halaman sebelumnya / Previous page'}\n {...props}\n page={state.current - 1}\n />\n );\n}\nexport function PaginationNext(props: ButtonHTMLAttributes<HTMLButtonElement>) {\n const state = usePagination();\n return (\n <PaginationPageButton\n aria-label={props.children ? undefined : 'Halaman berikutnya / Next page'}\n {...props}\n page={state.current + 1}\n />\n );\n}\nexport function PaginationSummary({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const state = usePagination();\n return (\n <span {...props} aria-live=\"polite\" className={partClass('pagination__summary', className)}>\n {children ?? `${state.current} / ${state.count}`}\n </span>\n );\n}\nexport function PaginationContent(props: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} />;\n}\nexport function PaginationItem(props: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} />;\n}\nexport function PaginationEllipsis({\n className,\n children = '…',\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('pagination__gap', className)}>\n {children}\n </span>\n );\n}\nfunction PaginationComponent(props: PaginationProps | PaginationRootProps) {\n return 'children' in props ? <PaginationRoot {...props} /> : <CompactPagination {...props} />;\n}\nexport const Pagination = /* @__PURE__ */ Object.assign(PaginationComponent, {\n Root: PaginationRoot,\n Content: PaginationContent,\n Item: PaginationItem,\n PageButton: PaginationPageButton,\n Previous: PaginationPrevious,\n Next: PaginationNext,\n Summary: PaginationSummary,\n Ellipsis: PaginationEllipsis,\n});\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useState,\n createElement,\n type ComponentProps,\n type ComponentType,\n type HTMLAttributes,\n type TableHTMLAttributes,\n type ThHTMLAttributes,\n type TdHTMLAttributes,\n type SVGAttributes,\n} from 'react';\nimport { composeRenderProps } from 'react-aria-components';\nimport { DialogTrigger, Dialog, Heading } from 'react-aria-components/Dialog';\nimport { Modal, ModalOverlay } from 'react-aria-components/Modal';\nimport { Button } from 'react-aria-components/Button';\nimport { Popover } from 'react-aria-components/Popover';\nimport { TooltipTrigger, Tooltip } from 'react-aria-components/Tooltip';\nimport {\n MenuTrigger,\n Menu,\n MenuItem,\n MenuSection,\n SubmenuTrigger,\n type MenuProps,\n} from 'react-aria-components/Menu';\nimport { Header } from 'react-aria-components/Header';\nimport { Separator } from 'react-aria-components/Separator';\nimport { Text } from 'react-aria-components/Text';\nimport { partClass } from './styling.js';\n\n/** Preserve the primitive's complete props, ref and state-based className contract. */\nfunction ariaPart<P extends { className?: string | ((state: never) => string) }>(\n Component: ComponentType<P>,\n base: string,\n) {\n return function Part({ className, ...props }: P) {\n return createElement(Component, {\n ...props,\n className:\n typeof className === 'function'\n ? (state: never) => partClass(base, className(state))\n : partClass(base, className),\n } as P);\n };\n}\nfunction divPart(base: string) {\n return function Part({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass(base, className)} />;\n };\n}\n\nexport type DialogRootProps = Omit<\n ComponentProps<typeof DialogTrigger>,\n 'isOpen' | 'defaultOpen'\n> & { open?: boolean; defaultOpen?: boolean };\nexport function DialogRoot({ open, defaultOpen, ...props }: DialogRootProps) {\n return <DialogTrigger {...props} isOpen={open} defaultOpen={defaultOpen} />;\n}\nexport const DialogTriggerPart = ariaPart(Button, 'button button--secondary');\nexport const DialogBackdrop = ariaPart(ModalOverlay, 'dialog__backdrop dialog__viewport');\nexport const DialogPanel = ariaPart(Modal, 'dialog__panel');\nconst OverlayDescriptionContext = createContext<((id: string) => () => void) | null>(null);\nfunction DescribedDialog({ base, ...props }: ComponentProps<typeof Dialog> & { base: string }) {\n const [descriptions, setDescriptions] = useState<string[]>([]);\n const register = useCallback((id: string) => {\n setDescriptions((current) => (current.includes(id) ? current : [...current, id]));\n return () => setDescriptions((current) => current.filter((value) => value !== id));\n }, []);\n const describedBy =\n [props['aria-describedby'], ...descriptions].filter(Boolean).join(' ') || undefined;\n return (\n <OverlayDescriptionContext.Provider value={register}>\n <Dialog\n {...props}\n aria-describedby={describedBy}\n className={partClass(base, props.className)}\n />\n </OverlayDescriptionContext.Provider>\n );\n}\nexport function DialogContent(props: ComponentProps<typeof Dialog>) {\n return <DescribedDialog {...props} base=\"dialog__content\" />;\n}\nfunction dividedPart(base: string) {\n return function Part({\n divided,\n className,\n ...props\n }: HTMLAttributes<HTMLDivElement> & { divided?: boolean }) {\n return (\n <div {...props} className={partClass(base, className)} data-divided={divided || undefined} />\n );\n };\n}\nexport const OverlayHeader = dividedPart('overlay__header');\nexport const OverlayBody = divPart('overlay__body');\nexport const OverlayFooter = dividedPart('overlay__footer');\nexport function OverlayHeading({\n level = 2,\n slot = 'title',\n ...props\n}: ComponentProps<typeof Heading>) {\n return (\n <Heading\n {...props}\n level={level}\n slot={slot}\n className={partClass('overlay__title', props.className)}\n />\n );\n}\nexport function OverlayDescription({\n className,\n slot = 'description',\n id,\n ...props\n}: ComponentProps<typeof Text>) {\n const generated = useId();\n const descriptionId = id ?? generated;\n const register = useContext(OverlayDescriptionContext);\n useEffect(() => register?.(descriptionId), [descriptionId, register]);\n return (\n <Text\n {...props}\n id={descriptionId}\n slot={slot}\n className={partClass('overlay__description', className)}\n />\n );\n}\nexport function DialogCloseButton({ slot = 'close', ...props }: ComponentProps<typeof Button>) {\n return (\n <Button\n {...props}\n slot={slot}\n className={composeRenderProps(props.className, (value) => partClass('dialog__close', value))}\n />\n );\n}\n\nexport const PopoverTrigger = DialogTriggerPart;\nexport const PopoverContent = ariaPart(Popover, 'popover__panel');\nexport function PopoverDialog(props: ComponentProps<typeof Dialog>) {\n return <DescribedDialog {...props} base=\"popover__content\" />;\n}\nexport function PopoverCloseButton({ slot = 'close', ...props }: ComponentProps<typeof Button>) {\n return (\n <Button\n {...props}\n slot={slot}\n className={composeRenderProps(props.className, (value) =>\n partClass('button button--secondary', value),\n )}\n />\n );\n}\n\nexport type TooltipRootProps = Omit<\n ComponentProps<typeof TooltipTrigger>,\n 'isOpen' | 'defaultOpen'\n> & { open?: boolean; defaultOpen?: boolean };\nexport function TooltipRoot({ open, defaultOpen, ...props }: TooltipRootProps) {\n return <TooltipTrigger {...props} isOpen={open} defaultOpen={defaultOpen} />;\n}\nexport const TooltipTriggerPart = DialogTriggerPart;\nexport const TooltipContent = ariaPart(Tooltip, 'tooltip__panel');\n\nexport type DropdownRootProps = Omit<\n ComponentProps<typeof MenuTrigger>,\n 'isOpen' | 'defaultOpen'\n> & { open?: boolean; defaultOpen?: boolean };\nexport function DropdownRoot({ open, defaultOpen, ...props }: DropdownRootProps) {\n return <MenuTrigger {...props} isOpen={open} defaultOpen={defaultOpen} />;\n}\nexport const DropdownTrigger = DialogTriggerPart;\nexport const DropdownPopover = ariaPart(Popover, 'menu__panel');\nexport function DropdownList<T extends object>(props: MenuProps<T>) {\n return (\n <Menu\n {...props}\n className={composeRenderProps(props.className, (value) => partClass('menu__list', value))}\n />\n );\n}\nexport const DropdownItem = ariaPart(MenuItem, 'menu__item');\nexport const DropdownSection = MenuSection;\nexport const DropdownHeading = ariaPart(Header, 'menu__heading');\nexport const DropdownSeparator = ariaPart(Separator, 'menu__separator');\nexport const DropdownSubmenuTrigger = SubmenuTrigger;\nexport function DropdownItemIndicator({\n className,\n children,\n ...props\n}: SVGAttributes<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n aria-hidden=\"true\"\n className={partClass('menu__check', className)}\n >\n {children ?? <path d=\"M3.5 8.5l3 3 6-6.5\" />}\n </svg>\n );\n}\nexport function DropdownSubmenuIndicator({\n className,\n children,\n ...props\n}: SVGAttributes<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n aria-hidden=\"true\"\n className={partClass('menu__arrow', className)}\n >\n {children ?? <path d=\"M4 6l4 4 4-4\" />}\n </svg>\n );\n}\n\nexport function TableRoot({ className, ...props }: TableHTMLAttributes<HTMLTableElement>) {\n return <table {...props} className={partClass('table', className)} />;\n}\nexport function TableScrollContainer({\n className,\n 'aria-label': label = 'Tabel / Table',\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n {...props}\n role=\"region\"\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- The named overflow region must be keyboard-scrollable.\n tabIndex={0}\n aria-label={label}\n className={partClass('table__scroll', className)}\n />\n );\n}\nexport function TableHeader(props: HTMLAttributes<HTMLTableSectionElement>) {\n return <thead {...props} />;\n}\nexport function TableBody(props: HTMLAttributes<HTMLTableSectionElement>) {\n return <tbody {...props} />;\n}\nexport function TableFooter(props: HTMLAttributes<HTMLTableSectionElement>) {\n return <tfoot {...props} />;\n}\nexport function TableRow(props: HTMLAttributes<HTMLTableRowElement>) {\n return <tr {...props} />;\n}\nexport function TableColumn({ scope = 'col', ...props }: ThHTMLAttributes<HTMLTableCellElement>) {\n return <th {...props} scope={scope} />;\n}\nexport function TableCell(props: TdHTMLAttributes<HTMLTableCellElement>) {\n return <td {...props} />;\n}\nexport function TableCaption({ className, ...props }: HTMLAttributes<HTMLTableCaptionElement>) {\n return <caption {...props} className={partClass('table__caption', className)} />;\n}\n","import type { TableHTMLAttributes } from 'react';\nimport { partClass, type StylingProps } from './styling.js';\nimport {\n TableRoot,\n TableScrollContainer,\n TableHeader,\n TableBody,\n TableFooter,\n TableRow,\n TableColumn,\n TableCell,\n TableCaption,\n} from './structural-parts.js';\nexport interface TableProps\n extends TableHTMLAttributes<HTMLTableElement>, StylingProps<'root' | 'scroll' | 'caption'> {\n caption: string;\n}\nfunction CompactTable({ caption, children, className, classNames, ...props }: TableProps) {\n return (\n <div\n className={partClass('table__scroll', classNames?.scroll)}\n role=\"region\"\n aria-label={caption}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- The named overflow region must be keyboard-scrollable.\n tabIndex={0}\n >\n <table {...props} className={partClass(partClass('table', classNames?.root), className)}>\n <caption className={partClass('table__caption', classNames?.caption)}>{caption}</caption>\n {children}\n </table>\n </div>\n );\n}\nexport const Table = /* @__PURE__ */ Object.assign(CompactTable, {\n Root: TableRoot,\n ScrollContainer: TableScrollContainer,\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Column: TableColumn,\n Cell: TableCell,\n Caption: TableCaption,\n});\n","import { useState } from 'react';\nexport function useDisclosure(\n open?: boolean,\n defaultOpen = false,\n onOpenChange?: (open: boolean) => void,\n) {\n const [local, setLocal] = useState(defaultOpen);\n const visible = open ?? local;\n function change(next: boolean) {\n if (next === visible) return;\n setLocal(next);\n onOpenChange?.(next);\n }\n return { visible, change };\n}\n","import {\n createContext,\n useContext,\n useId,\n type HTMLAttributes,\n type AnchorHTMLAttributes,\n type ButtonHTMLAttributes,\n type SVGAttributes,\n type ThHTMLAttributes,\n type TdHTMLAttributes,\n} from 'react';\nimport { useDisclosure } from './useDisclosure.js';\nimport { partClass } from './styling.js';\nimport type { TableSort } from './data-table-types.js';\n\nexport function EmptyRoot({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('empty', className)} />;\n}\nexport function EmptyTitle({\n className,\n headingLevel = 3,\n ...props\n}: HTMLAttributes<HTMLHeadingElement> & { headingLevel?: 2 | 3 | 4 | 5 | 6 }) {\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return <Heading {...props} className={partClass('empty__title', className)} />;\n}\nexport function EmptyDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('empty__description', className)} />;\n}\nexport function EmptyActions({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('empty__actions', className)} />;\n}\n\ninterface SidebarState {\n visible: boolean;\n change: (visible: boolean) => void;\n label: string;\n navId: string;\n}\nconst SidebarContext = createContext<SidebarState | null>(null);\nfunction useSidebar() {\n const state = useContext(SidebarContext);\n if (!state) throw new Error('Sidebar parts must be used inside Sidebar.Root.');\n return state;\n}\nexport interface SidebarRootProps extends HTMLAttributes<HTMLElement> {\n label: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\nexport function SidebarRoot({\n label,\n open,\n defaultOpen = true,\n onOpenChange,\n id,\n className,\n ...props\n}: SidebarRootProps) {\n const generated = useId();\n const { visible, change } = useDisclosure(open, defaultOpen, onOpenChange);\n return (\n <SidebarContext.Provider value={{ visible, change, label, navId: `${id ?? generated}-nav` }}>\n <aside {...props} id={id} className={partClass('sidebar', className)} />\n </SidebarContext.Provider>\n );\n}\nexport function SidebarHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('sidebar__header', className)} />;\n}\nexport function SidebarTitle({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} className={partClass('sidebar__title', className)} />;\n}\nexport function SidebarToggle({\n className,\n onClick,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const state = useSidebar();\n return (\n <button\n {...props}\n type=\"button\"\n className={partClass('sidebar__toggle', className)}\n aria-expanded={state.visible}\n aria-controls={state.navId}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) state.change(!state.visible);\n }}\n />\n );\n}\nexport function SidebarNavigation(props: HTMLAttributes<HTMLElement>) {\n const state = useSidebar();\n return <nav {...props} id={state.navId} aria-label={state.label} hidden={!state.visible} />;\n}\nexport function SidebarList(props: HTMLAttributes<HTMLUListElement>) {\n return <ul {...props} />;\n}\nexport function SidebarItem(props: HTMLAttributes<HTMLLIElement>) {\n return <li {...props} />;\n}\nexport function SidebarLink({\n className,\n isDisabled,\n href,\n onClick,\n children,\n ...props\n}: AnchorHTMLAttributes<HTMLAnchorElement> & { isDisabled?: boolean }) {\n return (\n <a\n {...props}\n href={isDisabled ? undefined : href}\n aria-disabled={isDisabled || props['aria-disabled']}\n tabIndex={isDisabled ? -1 : props.tabIndex}\n onClick={(event) => {\n if (isDisabled) event.preventDefault();\n else onClick?.(event);\n }}\n className={partClass('sidebar__link', className)}\n >\n {children}\n </a>\n );\n}\n\nexport function ChartRoot({ className, ...props }: HTMLAttributes<HTMLElement>) {\n return <figure {...props} className={partClass('chart', className)} />;\n}\nexport function ChartTitle({ className, ...props }: HTMLAttributes<HTMLElement>) {\n return <figcaption {...props} className={partClass('chart__title', className)} />;\n}\nexport function ChartDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('chart__description', className)} />;\n}\nexport function ChartPlot({ className, ...props }: SVGAttributes<SVGSVGElement>) {\n return (\n <svg\n {...props}\n aria-hidden=\"true\"\n focusable=\"false\"\n className={partClass('chart__plot', className)}\n />\n );\n}\n\ninterface DataTableState {\n sort: TableSort | null;\n onSortChange?: (sort: TableSort) => void;\n disabled: boolean;\n}\nconst DataTableContext = createContext<DataTableState | null>(null);\nexport interface DataTableRootProps extends HTMLAttributes<HTMLDivElement> {\n sort?: TableSort | null;\n onSortChange?: (sort: TableSort) => void;\n isLoading?: boolean;\n isDisabled?: boolean;\n}\nexport function DataTableRoot({\n sort = null,\n onSortChange,\n isLoading,\n isDisabled,\n className,\n ...props\n}: DataTableRootProps) {\n return (\n <DataTableContext.Provider\n value={{ sort, onSortChange, disabled: !!(isLoading || isDisabled) }}\n >\n <div\n {...props}\n aria-busy={isLoading || undefined}\n className={partClass('data-table', className)}\n />\n </DataTableContext.Provider>\n );\n}\nexport function DataTableSortButton({\n columnId,\n className,\n onClick,\n disabled,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement> & { columnId: string }) {\n const state = useContext(DataTableContext);\n if (!state) throw new Error('DataTable.SortButton must be used inside DataTable.Root.');\n return (\n <button\n {...props}\n type=\"button\"\n disabled={disabled || state.disabled}\n className={partClass('table__sort', className)}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented && !state.disabled)\n state.onSortChange?.({\n columnId,\n direction:\n state.sort?.columnId === columnId && state.sort.direction === 'ascending'\n ? 'descending'\n : 'ascending',\n });\n }}\n />\n );\n}\nexport function DataTableColumn({\n columnId,\n scope = 'col',\n ...props\n}: ThHTMLAttributes<HTMLTableCellElement> & { columnId?: string }) {\n const state = useContext(DataTableContext);\n const sort =\n columnId && state\n ? state.sort?.columnId === columnId\n ? state.sort.direction\n : 'none'\n : props['aria-sort'];\n return <th {...props} scope={scope} aria-sort={sort} />;\n}\nexport function DataTableEmpty({ className, ...props }: TdHTMLAttributes<HTMLTableCellElement>) {\n return <td {...props} className={partClass('table__empty', className)} />;\n}\nexport function DataTableStatus({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} role=\"status\" className={partClass('data-table__status', className)} />;\n}\nexport function DataTableError({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} role=\"alert\" className={partClass('input__error', className)} />;\n}\n","import {\n TableRoot,\n TableHeader,\n TableBody,\n TableFooter,\n TableRow,\n TableCell,\n TableCaption,\n TableScrollContainer,\n} from './structural-parts.js';\nimport {\n DataTableRoot,\n DataTableSortButton,\n DataTableStatus,\n DataTableError,\n DataTableColumn as DataTableColumnPart,\n DataTableEmpty,\n} from './layout-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { ReactNode } from 'react';\nimport { Table } from './Table.js';\nimport type { DataTableColumn, DataTableRow, TableSort } from './data-table-types.js';\nexport type DataTablePart =\n | 'root'\n | 'table'\n | 'scroll'\n | 'caption'\n | 'header'\n | 'body'\n | 'row'\n | 'column'\n | 'cell'\n | 'sort'\n | 'empty'\n | 'status'\n | 'error';\nexport interface DataTableProps extends StylingProps<DataTablePart> {\n caption: string;\n columns: DataTableColumn[];\n rows: DataTableRow[];\n sort?: TableSort | null;\n onSortChange?: (sort: TableSort) => void;\n isLoading?: boolean;\n isDisabled?: boolean;\n emptyMessage?: string;\n loadingMessage?: string;\n errorMessage?: string;\n renderCell?: (row: DataTableRow, column: DataTableColumn) => ReactNode;\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactDataTable({\n className,\n style,\n classNames,\n caption,\n columns,\n rows,\n sort = null,\n onSortChange,\n isLoading = false,\n isDisabled = false,\n emptyMessage = 'Tidak ada data.',\n loadingMessage = 'Memuat data...',\n errorMessage,\n renderCell,\n dir,\n id,\n}: DataTableProps) {\n function requestSort(column: DataTableColumn) {\n if (isLoading || isDisabled || !column.sortable) return;\n onSortChange?.({\n columnId: column.id,\n direction:\n sort?.columnId === column.id && sort.direction === 'ascending' ? 'descending' : 'ascending',\n });\n }\n return (\n <div\n className={partClass(partClass('data-table', classNames?.root), className)}\n style={style}\n dir={dir}\n id={id}\n >\n <Table\n className={classNames?.table}\n classNames={{ scroll: classNames?.scroll, caption: classNames?.caption }}\n caption={caption}\n aria-busy={isLoading || undefined}\n >\n <thead className={classNames?.header}>\n <tr className={classNames?.row}>\n {columns.map((column) => (\n <th\n className={classNames?.column}\n key={column.id}\n scope=\"col\"\n aria-sort={\n column.sortable\n ? sort?.columnId === column.id\n ? sort.direction\n : 'none'\n : undefined\n }\n >\n {column.sortable ? (\n <button\n type=\"button\"\n className={partClass('table__sort', classNames?.sort)}\n disabled={isLoading || isDisabled}\n onClick={() => requestSort(column)}\n >\n {column.label}\n <span aria-hidden=\"true\">\n {sort?.columnId === column.id\n ? sort.direction === 'ascending'\n ? '\\u2191'\n : '\\u2193'\n : '\\u2195'}\n </span>\n </button>\n ) : (\n column.label\n )}\n </th>\n ))}\n </tr>\n </thead>\n <tbody className={classNames?.body}>\n {rows.length ? (\n rows.map((row) => (\n <tr className={classNames?.row} key={row.id}>\n {columns.map((column) => (\n <td className={classNames?.cell} key={column.id}>\n {renderCell ? renderCell(row, column) : (row.cells[column.id] ?? '')}\n </td>\n ))}\n </tr>\n ))\n ) : (\n <tr className={classNames?.row}>\n <td\n colSpan={Math.max(1, columns.length)}\n className={partClass('table__empty', classNames?.empty)}\n >\n {isLoading ? loadingMessage : errorMessage || emptyMessage}\n </td>\n </tr>\n )}\n </tbody>\n </Table>\n {isLoading && (\n <p className={partClass('data-table__status', classNames?.status)} role=\"status\">\n {loadingMessage}\n </p>\n )}\n {errorMessage && !isLoading && (\n <p className={partClass('input__error', classNames?.error)} role=\"alert\">\n {errorMessage}\n </p>\n )}\n </div>\n );\n}\n\nfunction DataTableComponent(\n props: DataTableProps | import('./layout-parts.js').DataTableRootProps,\n) {\n return 'columns' in props ? <CompactDataTable {...props} /> : <DataTableRoot {...props} />;\n}\nexport const DataTable = /* @__PURE__ */ Object.assign(DataTableComponent, {\n Root: DataTableRoot,\n SortButton: DataTableSortButton,\n Status: DataTableStatus,\n Error: DataTableError,\n Table: TableRoot,\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Column: DataTableColumnPart,\n Empty: DataTableEmpty,\n Cell: TableCell,\n Caption: TableCaption,\n ScrollContainer: TableScrollContainer,\n});\n","import { partClass, type StylingProps } from './styling.js';\nimport type { ReactNode, HTMLAttributes } from 'react';\nimport type { BadgeTone } from './Badge.js';\nexport type AlertPart = 'root' | 'title' | 'description' | 'actions';\nexport interface AlertProps extends StylingProps<AlertPart> {\n title?: string;\n description?: string;\n tone?: BadgeTone;\n announcement?: 'off' | 'polite' | 'assertive';\n children?: ReactNode;\n actions?: ReactNode;\n id?: string;\n}\nfunction AlertRoot({\n className,\n style,\n classNames,\n title,\n description,\n tone = 'info',\n announcement = 'off',\n children,\n actions,\n id,\n}: AlertProps) {\n return (\n <div\n id={id}\n className={partClass(partClass('alert', classNames?.root), className)}\n style={style}\n data-tone={tone}\n role={\n announcement === 'polite' ? 'status' : announcement === 'assertive' ? 'alert' : undefined\n }\n >\n {title && <p className={partClass('alert__title', classNames?.title)}>{title}</p>}\n {description && (\n <p className={partClass('alert__description', classNames?.description)}>{description}</p>\n )}\n {children}\n {actions && <div className={partClass('alert__actions', classNames?.actions)}>{actions}</div>}\n </div>\n );\n}\nexport function AlertTitle({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('alert__title', className)} />;\n}\nexport function AlertDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('alert__description', className)} />;\n}\nexport function AlertContent({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('alert__content', className)} />;\n}\nexport function AlertActions({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('alert__actions', className)} />;\n}\nexport function AlertIndicator({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('alert__indicator', className)} />\n );\n}\nexport const Alert = /* @__PURE__ */ Object.assign(AlertRoot, {\n Root: AlertRoot,\n Title: AlertTitle,\n Description: AlertDescription,\n Content: AlertContent,\n Actions: AlertActions,\n Indicator: AlertIndicator,\n});\n","import { EmptyRoot, EmptyTitle, EmptyDescription, EmptyActions } from './layout-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { ReactNode } from 'react';\nexport type EmptyPart = 'root' | 'title' | 'description' | 'actions';\nexport interface EmptyProps extends StylingProps<EmptyPart> {\n title: string;\n description?: string;\n headingLevel?: 2 | 3 | 4 | 5 | 6;\n actions?: ReactNode;\n children?: ReactNode;\n id?: string;\n}\nfunction CompactEmpty({\n className,\n style,\n classNames,\n title,\n description,\n headingLevel = 3,\n actions,\n children,\n id,\n}: EmptyProps) {\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <div\n id={id}\n className={partClass(partClass('empty', classNames?.root), className)}\n style={style}\n >\n <Heading className={partClass('empty__title', classNames?.title)}>{title}</Heading>\n {description && (\n <p className={partClass('empty__description', classNames?.description)}>{description}</p>\n )}\n {children}\n {actions && <div className={partClass('empty__actions', classNames?.actions)}>{actions}</div>}\n </div>\n );\n}\n\nexport const Empty = /* @__PURE__ */ Object.assign(CompactEmpty, {\n Root: EmptyRoot,\n Title: EmptyTitle,\n Description: EmptyDescription,\n Actions: EmptyActions,\n});\n","import { partClass, type StylingProps } from './styling.js';\nimport type { BreadcrumbItem } from './dashboard-types.js';\nimport type { HTMLAttributes, AnchorHTMLAttributes } from 'react';\nexport type BreadcrumbPart = 'root' | 'list' | 'item' | 'separator' | 'link' | 'current';\nexport interface BreadcrumbProps extends StylingProps<BreadcrumbPart> {\n items: BreadcrumbItem[];\n label?: string;\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactBreadcrumb({\n className,\n style,\n classNames,\n items,\n label = 'Jejak halaman',\n dir,\n id,\n}: BreadcrumbProps) {\n return (\n <nav\n id={id}\n className={partClass(partClass('breadcrumb', classNames?.root), className)}\n style={style}\n aria-label={label}\n dir={dir}\n >\n <ol className={classNames?.list}>\n {items.map((item, index) => (\n <li className={classNames?.item} key={index}>\n {index > 0 && (\n <span\n className={partClass('breadcrumb__separator', classNames?.separator)}\n aria-hidden=\"true\"\n >\n /\n </span>\n )}\n {index === items.length - 1 ? (\n <span className={classNames?.current} aria-current=\"page\">\n {item.label}\n </span>\n ) : item.href ? (\n <a className={classNames?.link} href={item.href}>\n {item.label}\n </a>\n ) : (\n <span>{item.label}</span>\n )}\n </li>\n ))}\n </ol>\n </nav>\n );\n}\nexport function BreadcrumbRoot({\n className,\n label = 'Jejak halaman / Breadcrumbs',\n ...props\n}: HTMLAttributes<HTMLElement> & { label?: string }) {\n return <nav {...props} aria-label={label} className={partClass('breadcrumb', className)} />;\n}\nexport function BreadcrumbList(props: HTMLAttributes<HTMLOListElement>) {\n return <ol {...props} />;\n}\nexport function BreadcrumbItemPart(props: HTMLAttributes<HTMLLIElement>) {\n return <li {...props} />;\n}\nexport function BreadcrumbLink({ children, ...props }: AnchorHTMLAttributes<HTMLAnchorElement>) {\n return <a {...props}>{children}</a>;\n}\nexport function BreadcrumbCurrent(props: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} aria-current=\"page\" />;\n}\nexport function BreadcrumbSeparator({\n className,\n children = '/',\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('breadcrumb__separator', className)}>\n {children}\n </span>\n );\n}\nfunction BreadcrumbComponent(\n props: BreadcrumbProps | (HTMLAttributes<HTMLElement> & { label?: string }),\n) {\n return 'items' in props ? <CompactBreadcrumb {...props} /> : <BreadcrumbRoot {...props} />;\n}\nexport const Breadcrumb = /* @__PURE__ */ Object.assign(BreadcrumbComponent, {\n Root: BreadcrumbRoot,\n List: BreadcrumbList,\n Item: BreadcrumbItemPart,\n Link: BreadcrumbLink,\n Current: BreadcrumbCurrent,\n Separator: BreadcrumbSeparator,\n});\n","import {\n SidebarRoot,\n SidebarHeader,\n SidebarTitle,\n SidebarToggle,\n SidebarNavigation,\n SidebarList,\n SidebarItem,\n SidebarLink,\n} from './layout-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useId } from 'react';\nimport { useDisclosure } from './useDisclosure.js';\nimport type { NavigationItem } from './dashboard-types.js';\nexport type SidebarPart =\n 'root' | 'header' | 'title' | 'toggle' | 'navigation' | 'list' | 'item' | 'link';\nexport interface SidebarProps extends StylingProps<SidebarPart> {\n label: string;\n items: NavigationItem[];\n currentId?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n toggleLabel?: string;\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactSidebar({\n className,\n style,\n classNames,\n label,\n items,\n currentId,\n open,\n defaultOpen = true,\n onOpenChange,\n toggleLabel = 'Menu navigasi',\n dir,\n id,\n}: SidebarProps) {\n const generated = useId(),\n navId = `${id ?? generated}-nav`;\n const { visible, change } = useDisclosure(open, defaultOpen, onOpenChange);\n return (\n <aside\n id={id}\n className={partClass(partClass('sidebar', classNames?.root), className)}\n style={style}\n dir={dir}\n >\n <div className={partClass('sidebar__header', classNames?.header)}>\n <span className={partClass('sidebar__title', classNames?.title)}>{label}</span>\n <button\n type=\"button\"\n className={partClass('sidebar__toggle', classNames?.toggle)}\n aria-label={toggleLabel}\n aria-expanded={visible}\n aria-controls={navId}\n onClick={() => change(!visible)}\n >\n <span aria-hidden=\"true\">{visible ? '\\u2212' : '+'}</span>\n </button>\n </div>\n <nav className={classNames?.navigation} id={navId} aria-label={label} hidden={!visible}>\n <ul className={classNames?.list}>\n {items.map((item) => (\n <li className={classNames?.item} key={item.id}>\n {item.isDisabled ? (\n <span className={partClass('sidebar__link', classNames?.link)} aria-disabled=\"true\">\n {item.label}\n </span>\n ) : (\n <a\n className={partClass('sidebar__link', classNames?.link)}\n href={item.href}\n aria-current={item.id === currentId ? 'page' : undefined}\n >\n {item.label}\n </a>\n )}\n </li>\n ))}\n </ul>\n </nav>\n </aside>\n );\n}\n\nfunction SidebarComponent(props: SidebarProps | import('./layout-parts.js').SidebarRootProps) {\n return 'items' in props ? <CompactSidebar {...props} /> : <SidebarRoot {...props} />;\n}\nexport const Sidebar = /* @__PURE__ */ Object.assign(SidebarComponent, {\n Root: SidebarRoot,\n Header: SidebarHeader,\n Title: SidebarTitle,\n Toggle: SidebarToggle,\n Navigation: SidebarNavigation,\n List: SidebarList,\n Item: SidebarItem,\n Link: SidebarLink,\n});\n","import type { ChartDatum } from './dashboard-types.js';\nexport function chartModel(data: ChartDatum[]) {\n const valid = data.filter((item) => Number.isFinite(item.value));\n const scale = valid.reduce((max, item) => Math.max(max, Math.abs(item.value)), 1);\n const min = valid.reduce((min, item) => Math.min(min, item.value / scale), 0),\n max = valid.reduce((max, item) => Math.max(max, item.value / scale), 0);\n const span = max - min || 1,\n step = 560 / Math.max(1, valid.length);\n const y = (value: number) => 180 - ((value / scale - min) / span) * 160;\n return {\n items: valid.map((item, index) => ({\n ...item,\n x: 20 + step * (index + 0.5),\n y: y(item.value),\n })),\n baseline: y(0),\n barWidth: Math.min(40, step * 0.7),\n };\n}\n","import type { HTMLAttributes } from 'react';\nimport { ChartRoot, ChartTitle, ChartDescription, ChartPlot } from './layout-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useId } from 'react';\nimport { chartModel } from './chart-model.js';\nimport { Table } from './Table.js';\nimport { Empty } from './Empty.js';\nimport type { ChartDatum } from './dashboard-types.js';\nexport type ChartPart =\n 'root' | 'title' | 'description' | 'plot' | 'axis' | 'line' | 'bar' | 'label' | 'table' | 'empty';\nexport interface ChartProps extends StylingProps<ChartPart> {\n label: string;\n data: ChartDatum[];\n type?: 'bar' | 'line';\n description?: string;\n locale?: string;\n formatOptions?: Intl.NumberFormatOptions;\n categoryLabel?: string;\n valueLabel?: string;\n emptyMessage?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n}\nfunction CompactChart({\n className,\n style,\n classNames,\n label,\n data,\n type = 'bar',\n description,\n locale = 'id-ID',\n formatOptions,\n categoryLabel = 'Kategori',\n valueLabel = 'Nilai',\n emptyMessage = 'Belum ada data grafik.',\n id,\n dir,\n}: ChartProps) {\n const generated = useId(),\n labelId = `${id ?? generated}-label`,\n model = chartModel(data),\n format = new Intl.NumberFormat(locale, formatOptions);\n return (\n <figure\n id={id}\n className={partClass(partClass('chart', classNames?.root), className)}\n style={style}\n dir={dir}\n aria-labelledby={labelId}\n >\n <figcaption id={labelId} className={partClass('chart__title', classNames?.title)}>\n {label}\n </figcaption>\n {description && (\n <p className={partClass('chart__description', classNames?.description)}>{description}</p>\n )}\n {model.items.length ? (\n <>\n <svg\n className={partClass('chart__plot', classNames?.plot)}\n viewBox=\"0 0 600 210\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line\n className={partClass('chart__axis', classNames?.axis)}\n x1=\"20\"\n x2=\"580\"\n y1={model.baseline}\n y2={model.baseline}\n />\n {type === 'line' ? (\n <polyline\n className={partClass('chart__line', classNames?.line)}\n points={model.items.map((item) => `${item.x},${item.y}`).join(' ')}\n />\n ) : null}\n {model.items.map((item) => (\n <g key={item.id}>\n {type === 'bar' ? (\n <rect\n className={partClass('chart__bar', classNames?.bar)}\n x={item.x - model.barWidth / 2}\n y={Math.min(item.y, model.baseline)}\n width={model.barWidth}\n height={Math.abs(item.y - model.baseline)}\n />\n ) : (\n <circle\n className={partClass('chart__bar', classNames?.bar)}\n cx={item.x}\n cy={item.y}\n r=\"4\"\n />\n )}\n {model.items.length <= 12 && (\n <text\n className={partClass('chart__label', classNames?.label)}\n x={item.x}\n y=\"202\"\n textAnchor=\"middle\"\n >\n {item.label.slice(0, 12)}\n </text>\n )}\n </g>\n ))}\n </svg>\n <Table caption={label} className={classNames?.table}>\n <thead>\n <tr>\n <th scope=\"col\">{categoryLabel}</th>\n <th scope=\"col\">{valueLabel}</th>\n </tr>\n </thead>\n <tbody>\n {model.items.map((item) => (\n <tr key={item.id}>\n <th scope=\"row\">{item.label}</th>\n <td>{format.format(item.value)}</td>\n </tr>\n ))}\n </tbody>\n </Table>\n </>\n ) : (\n <Empty title={emptyMessage} className={classNames?.empty} />\n )}\n </figure>\n );\n}\n\nfunction ChartComponent(props: ChartProps | HTMLAttributes<HTMLElement>) {\n return 'data' in props ? <CompactChart {...props} /> : <ChartRoot {...props} />;\n}\nexport const Chart = /* @__PURE__ */ Object.assign(ChartComponent, {\n Root: ChartRoot,\n Title: ChartTitle,\n Description: ChartDescription,\n Plot: ChartPlot,\n});\n","import type { DialogRootProps } from './structural-parts.js';\nimport {\n OverlayHeader,\n OverlayHeading,\n DialogTriggerPart,\n OverlayFooter,\n DialogCloseButton,\n DialogRoot,\n OverlayBody,\n DialogPanel,\n DialogBackdrop as DialogBackdropPart,\n DialogContent,\n OverlayDescription,\n} from './structural-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { useId, type ReactNode } from 'react';\nimport { DialogTrigger, Dialog as AriaDialog, Heading } from 'react-aria-components/Dialog';\nimport { ModalOverlay, Modal } from 'react-aria-components/Modal';\nimport { Button } from 'react-aria-components/Button';\nimport { useDisclosure } from './useDisclosure.js';\nimport { CloseIcon } from './icons.js';\nimport type { ButtonVariant } from './Button.js';\nimport type { DialogSize, DialogPlacement, DialogScroll, DialogBackdrop } from './overlay-model.js';\nexport type DialogPart =\n | 'root'\n | 'trigger'\n | 'backdrop'\n | 'panel'\n | 'content'\n | 'header'\n | 'title'\n | 'description'\n | 'body'\n | 'footer'\n | 'close'\n | 'footerClose';\nexport interface DialogProps extends StylingProps<DialogPart> {\n triggerLabel: string;\n title: string;\n description?: string;\n children?: ReactNode;\n footer?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n closeLabel?: string;\n dir?: 'ltr' | 'rtl';\n triggerContent?: ReactNode;\n triggerIconOnly?: boolean;\n triggerVariant?: ButtonVariant;\n size?: DialogSize;\n placement?: DialogPlacement;\n scroll?: DialogScroll;\n backdrop?: DialogBackdrop;\n isDismissable?: boolean;\n isKeyboardDismissDisabled?: boolean;\n showCloseButton?: boolean;\n showFooterClose?: boolean;\n closeIconLabel?: string;\n /** Full-width divider below the header; content keeps its padding. */\n dividedHeader?: boolean;\n /** Full-width divider above the footer, when a footer is rendered. */\n dividedFooter?: boolean;\n}\nfunction CompactDialog(props: DialogProps) {\n const { className, style, classNames } = props;\n const {\n triggerLabel,\n title,\n description,\n children,\n footer,\n isDisabled = false,\n closeLabel = 'Tutup',\n dir,\n size = 'md',\n placement = 'center',\n scroll = 'outside',\n backdrop = 'opaque',\n isDismissable = true,\n isKeyboardDismissDisabled = false,\n showCloseButton = true,\n showFooterClose = true,\n } = props;\n const { visible, change } = useDisclosure(\n props.open,\n props.defaultOpen ?? false,\n props.onOpenChange,\n );\n const descriptionId = useId();\n return (\n <OverlayDirection dir={dir}>\n <DialogTrigger isOpen={visible} onOpenChange={change}>\n <Button\n className={partClass(\n `button button--${props.triggerVariant ?? 'secondary'}${props.triggerIconOnly ? ' button--icon-only' : ''}`,\n classNames?.trigger,\n )}\n aria-label={triggerLabel}\n isDisabled={isDisabled}\n >\n {props.triggerContent ?? triggerLabel}\n </Button>\n <ModalOverlay\n className={partClass('dialog__backdrop dialog__viewport', classNames?.backdrop)}\n data-size={size}\n data-placement={placement}\n data-scroll={scroll}\n data-backdrop={backdrop}\n isDismissable={isDismissable}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n >\n <Modal className={partClass('dialog__panel', classNames?.panel)} dir={dir}>\n <AriaDialog\n className={partClass(\n partClass(partClass('dialog__content', classNames?.content), classNames?.root),\n className,\n )}\n style={style}\n aria-describedby={description ? descriptionId : undefined}\n >\n <div\n className={partClass('overlay__header', classNames?.header)}\n data-close-button={showCloseButton || undefined}\n data-divided={props.dividedHeader || undefined}\n >\n <Heading\n level={2}\n slot=\"title\"\n className={partClass('overlay__title', classNames?.title)}\n >\n {title}\n </Heading>\n {description && (\n <p\n id={descriptionId}\n className={partClass('overlay__description', classNames?.description)}\n >\n {description}\n </p>\n )}\n {showCloseButton && (\n <Button\n className={partClass('dialog__close', classNames?.close)}\n aria-label={props.closeIconLabel ?? `${closeLabel} dialog`}\n onPress={() => change(false)}\n >\n <CloseIcon />\n </Button>\n )}\n </div>\n <div className={partClass('overlay__body', classNames?.body)}>{children}</div>\n {(footer || showFooterClose) && (\n <div\n className={partClass('overlay__footer', classNames?.footer)}\n data-divided={props.dividedFooter || undefined}\n >\n {footer}\n {showFooterClose && (\n <Button\n className={partClass('button button--secondary', classNames?.footerClose)}\n onPress={() => change(false)}\n >\n {closeLabel}\n </Button>\n )}\n </div>\n )}\n </AriaDialog>\n </Modal>\n </ModalOverlay>\n </DialogTrigger>\n </OverlayDirection>\n );\n}\n\nfunction DialogComponent(props: DialogProps | DialogRootProps) {\n return 'triggerLabel' in props ? <CompactDialog {...props} /> : <DialogRoot {...props} />;\n}\nexport const Dialog = /* @__PURE__ */ Object.assign(DialogComponent, {\n Root: DialogRoot,\n Trigger: DialogTriggerPart,\n Backdrop: DialogBackdropPart,\n Panel: DialogPanel,\n Content: DialogContent,\n Header: OverlayHeader,\n Heading: OverlayHeading,\n Description: OverlayDescription,\n Body: OverlayBody,\n Footer: OverlayFooter,\n CloseButton: DialogCloseButton,\n});\n","import type { DropdownMenuItem } from './dashboard-types.js';\nexport type MenuSelectionMode = 'none' | 'single' | 'multiple';\nexport type MenuPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'left-start'\n | 'left-end'\n | 'right-start'\n | 'right-end';\nexport function menuGroups(items: DropdownMenuItem[]) {\n const groups: { key: string; label?: string; items: DropdownMenuItem[] }[] = [];\n for (const item of items) {\n const previous = groups.at(-1);\n if (!previous || previous.label !== item.section || item.separatorBefore)\n groups.push({ key: item.id, label: item.section, items: [item] });\n else previous.items.push(item);\n }\n return groups;\n}\nexport function menuLeaves(items: DropdownMenuItem[], disabled = false): DropdownMenuItem[] {\n return items.flatMap((item) =>\n item.children?.length\n ? menuLeaves(item.children, disabled || !!item.isDisabled)\n : [{ ...item, isDisabled: disabled || item.isDisabled }],\n );\n}\nexport function menuSelection(keys: string[], items: DropdownMenuItem[], mode: MenuSelectionMode) {\n const wanted = new Set(keys);\n const result = menuLeaves(items)\n .filter((item) => wanted.has(item.id))\n .map((item) => item.id);\n return mode === 'none' ? [] : mode === 'single' ? result.slice(0, 1) : result;\n}\nexport type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'cover' | 'full';\nexport type DialogPlacement = 'auto' | 'top' | 'center' | 'bottom';\nexport type DialogScroll = 'inside' | 'outside';\nexport type DialogBackdrop = 'opaque' | 'blur' | 'transparent';\n","import {\n DropdownItemIndicator,\n DropdownSubmenuTrigger,\n DropdownSubmenuIndicator,\n type DropdownRootProps,\n} from './structural-parts.js';\nimport {\n DropdownPopover,\n DropdownSeparator,\n DropdownRoot,\n DropdownItem,\n DropdownSection,\n DropdownList,\n DropdownHeading,\n DropdownTrigger,\n} from './structural-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useState, type ReactNode } from 'react';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport {\n MenuTrigger,\n Menu,\n MenuItem,\n MenuSection,\n SubmenuTrigger,\n} from 'react-aria-components/Menu';\nimport { Header } from 'react-aria-components/Header';\nimport { Separator } from 'react-aria-components/Separator';\nimport { Popover, type PopoverProps } from 'react-aria-components/Popover';\nimport { Button } from 'react-aria-components/Button';\nimport { useDisclosure } from './useDisclosure.js';\nimport { CheckIcon, ChevronIcon } from './icons.js';\nimport {\n menuGroups,\n menuLeaves,\n menuSelection,\n type MenuSelectionMode,\n type MenuPlacement,\n} from './overlay-model.js';\nimport type { DropdownMenuItem } from './dashboard-types.js';\nimport type { ButtonVariant, ButtonSize } from './Button.js';\nexport type DropdownMenuPart =\n | 'root'\n | 'trigger'\n | 'panel'\n | 'list'\n | 'item'\n | 'check'\n | 'icon'\n | 'text'\n | 'description'\n | 'shortcut'\n | 'arrow'\n | 'separator'\n | 'heading'\n | 'section';\nexport interface DropdownMenuProps extends StylingProps<DropdownMenuPart> {\n triggerLabel: string;\n items: DropdownMenuItem[];\n onAction?: (id: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n dir?: 'ltr' | 'rtl';\n triggerContent?: ReactNode;\n triggerIconOnly?: boolean;\n triggerVariant?: ButtonVariant;\n triggerSize?: ButtonSize;\n renderIcon?: (item: DropdownMenuItem) => ReactNode;\n selectionMode?: MenuSelectionMode;\n selectedKeys?: string[];\n defaultSelectedKeys?: string[];\n onSelectionChange?: (keys: string[]) => void;\n closeOnSelect?: boolean;\n placement?: MenuPlacement;\n}\nfunction CompactDropdownMenu(props: DropdownMenuProps) {\n const { className, style, classNames } = props;\n const {\n triggerLabel,\n items,\n isDisabled = false,\n dir,\n selectionMode = 'none',\n placement = 'bottom-start',\n } = props;\n const { visible, change } = useDisclosure(\n props.open,\n props.defaultOpen ?? false,\n props.onOpenChange,\n );\n const [local, setLocal] = useState(props.defaultSelectedKeys ?? []);\n const selected = menuSelection(props.selectedKeys ?? local, items, selectionMode);\n const [side, align] = placement.split('-');\n const popoverPlacement =\n `${side} ${side === 'left' || side === 'right' ? (align === 'start' ? 'top' : 'bottom') : align}` as PopoverProps['placement'];\n const closeOnSelect = props.closeOnSelect ?? selectionMode !== 'multiple';\n const leaves = menuLeaves(items, isDisabled);\n function action(id: string) {\n const item = leaves.find((item) => item.id === id);\n if (item && !item.isDisabled) props.onAction?.(id);\n }\n function select(keys: string[], level: DropdownMenuItem[]) {\n if (isDisabled || selectionMode === 'none') return;\n const levelIds = new Set(level.filter((item) => !item.children?.length).map((item) => item.id));\n const next = menuSelection(\n selectionMode === 'multiple'\n ? [...selected.filter((id) => !levelIds.has(id)), ...keys]\n : keys,\n items,\n selectionMode,\n );\n setLocal(next);\n props.onSelectionChange?.(next);\n }\n function content(item: DropdownMenuItem) {\n const icon = props.renderIcon?.(item);\n return (\n <>\n {selectionMode !== 'none' && !item.children?.length && (\n <CheckIcon className={partClass('menu__check', classNames?.check)} />\n )}\n {icon && (\n <span className={partClass('menu__icon', classNames?.icon)} aria-hidden=\"true\">\n {icon}\n </span>\n )}\n <span className={partClass('menu__text', classNames?.text)}>\n <span>{item.label}</span>\n {item.description && (\n <span className={partClass('menu__description', classNames?.description)}>\n {item.description}\n </span>\n )}\n </span>\n {item.shortcut && (\n <kbd className={partClass('menu__shortcut', classNames?.shortcut)} aria-hidden=\"true\">\n {item.shortcut}\n </kbd>\n )}\n {!!item.children?.length && (\n <ChevronIcon className={partClass('menu__arrow', classNames?.arrow)} />\n )}\n </>\n );\n }\n function renderMenu(level: DropdownMenuItem[], label: string, blocked = false): ReactNode {\n return (\n <Menu\n className={partClass('menu__list', classNames?.list)}\n aria-label={label}\n selectionMode={selectionMode}\n selectedKeys={selected}\n onSelectionChange={(keys) =>\n select(\n keys === 'all'\n ? level.filter((i) => !i.isDisabled && !i.children?.length).map((i) => i.id)\n : Array.from(keys, String),\n level,\n )\n }\n disallowEmptySelection={selectionMode === 'single'}\n shouldCloseOnSelect={closeOnSelect}\n onAction={(key) => action(String(key))}\n >\n {menuGroups(level).flatMap((group, index) => {\n const rows = group.items.map((item) => {\n const disabled = isDisabled || blocked || !!item.isDisabled;\n const row = (\n <MenuItem\n key={item.id}\n id={item.id}\n textValue={item.label}\n className={partClass('menu__item', classNames?.item)}\n isDisabled={disabled}\n data-tone={item.tone ?? 'default'}\n shouldCloseOnSelect={closeOnSelect}\n >\n {content(item)}\n </MenuItem>\n );\n return item.children?.length ? (\n <SubmenuTrigger key={item.id}>\n {row}\n <Popover\n className={partClass('menu__panel', classNames?.panel)}\n offset={4}\n containerPadding={16}\n dir={dir}\n >\n {renderMenu(item.children, item.label, disabled)}\n </Popover>\n </SubmenuTrigger>\n ) : (\n row\n );\n });\n return [\n index > 0 ? (\n <Separator\n key={`${group.key}-separator`}\n className={partClass('menu__separator', classNames?.separator)}\n />\n ) : null,\n <MenuSection key={group.key} aria-label={group.label}>\n {group.label && (\n <Header className={partClass('menu__heading', classNames?.heading)}>\n {group.label}\n </Header>\n )}\n {rows}\n </MenuSection>,\n ];\n })}\n </Menu>\n );\n }\n return (\n <OverlayDirection dir={dir}>\n <MenuTrigger isOpen={visible} onOpenChange={change}>\n <Button\n style={style}\n className={partClass(\n partClass(\n partClass(\n `button button--${props.triggerVariant ?? 'secondary'} button--${props.triggerSize ?? 'md'}${props.triggerIconOnly ? ' button--icon-only' : ''}`,\n classNames?.trigger,\n ),\n classNames?.root,\n ),\n className,\n )}\n aria-label={triggerLabel}\n isDisabled={isDisabled || !items.length}\n >\n {props.triggerContent ?? triggerLabel}\n </Button>\n <Popover\n className={partClass('menu__panel', classNames?.panel)}\n placement={popoverPlacement}\n offset={8}\n containerPadding={16}\n dir={dir}\n >\n {renderMenu(items, triggerLabel)}\n </Popover>\n </MenuTrigger>\n </OverlayDirection>\n );\n}\n\nfunction DropdownMenuComponent(props: DropdownMenuProps | DropdownRootProps) {\n return 'triggerLabel' in props ? <CompactDropdownMenu {...props} /> : <DropdownRoot {...props} />;\n}\nexport const DropdownMenu = /* @__PURE__ */ Object.assign(DropdownMenuComponent, {\n Root: DropdownRoot,\n Trigger: DropdownTrigger,\n Popover: DropdownPopover,\n Menu: DropdownList,\n Item: DropdownItem,\n Section: DropdownSection,\n Heading: DropdownHeading,\n Separator: DropdownSeparator,\n ItemIndicator: DropdownItemIndicator,\n SubmenuTrigger: DropdownSubmenuTrigger,\n SubmenuIndicator: DropdownSubmenuIndicator,\n});\n","import type { DialogRootProps } from './structural-parts.js';\nimport {\n PopoverDialog,\n OverlayHeader,\n OverlayHeading,\n PopoverContent,\n OverlayFooter,\n DialogRoot,\n OverlayBody,\n PopoverTrigger,\n PopoverCloseButton,\n OverlayDescription,\n} from './structural-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { useId, type ReactNode } from 'react';\nimport { DialogTrigger, Dialog, Heading } from 'react-aria-components/Dialog';\nimport { Popover as AriaPopover } from 'react-aria-components/Popover';\nimport { Button } from 'react-aria-components/Button';\nimport { useDisclosure } from './useDisclosure.js';\nexport type PopoverPart =\n 'root' | 'trigger' | 'panel' | 'content' | 'title' | 'description' | 'body' | 'footer' | 'close';\nexport interface PopoverProps extends StylingProps<PopoverPart> {\n triggerLabel: string;\n title: string;\n description?: string;\n children?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n closeLabel?: string;\n dir?: 'ltr' | 'rtl';\n}\nfunction CompactPopover({\n className,\n style,\n classNames,\n triggerLabel,\n title,\n description,\n children,\n open,\n defaultOpen = false,\n onOpenChange,\n isDisabled = false,\n closeLabel = 'Tutup',\n dir,\n}: PopoverProps) {\n const { visible, change } = useDisclosure(open, defaultOpen, onOpenChange),\n descriptionId = useId();\n return (\n <OverlayDirection dir={dir}>\n <DialogTrigger isOpen={visible} onOpenChange={change}>\n <Button\n className={partClass('button button--secondary', classNames?.trigger)}\n isDisabled={isDisabled}\n >\n {triggerLabel}\n </Button>\n <AriaPopover\n className={partClass(\n partClass(partClass('popover__panel', classNames?.panel), classNames?.root),\n className,\n )}\n style={style}\n isNonModal\n placement=\"bottom start\"\n offset={8}\n containerPadding={16}\n dir={dir}\n >\n <Dialog\n className={partClass('popover__content', classNames?.content)}\n aria-describedby={description ? descriptionId : undefined}\n >\n <Heading\n level={2}\n slot=\"title\"\n className={partClass('overlay__title', classNames?.title)}\n >\n {title}\n </Heading>\n {description && (\n <p\n id={descriptionId}\n className={partClass('overlay__description', classNames?.description)}\n >\n {description}\n </p>\n )}\n <div className={partClass('overlay__body', classNames?.body)}>{children}</div>\n <div className={partClass('overlay__footer', classNames?.footer)}>\n <Button\n className={partClass('button button--secondary', classNames?.close)}\n onPress={() => change(false)}\n >\n {closeLabel}\n </Button>\n </div>\n </Dialog>\n </AriaPopover>\n </DialogTrigger>\n </OverlayDirection>\n );\n}\n\nfunction PopoverComponent(props: PopoverProps | DialogRootProps) {\n return 'triggerLabel' in props ? <CompactPopover {...props} /> : <DialogRoot {...props} />;\n}\nexport const Popover = /* @__PURE__ */ Object.assign(PopoverComponent, {\n Root: DialogRoot,\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n Dialog: PopoverDialog,\n Heading: OverlayHeading,\n Description: OverlayDescription,\n Header: OverlayHeader,\n Body: OverlayBody,\n Footer: OverlayFooter,\n CloseButton: PopoverCloseButton,\n});\n","import type { TooltipRootProps } from './structural-parts.js';\nimport { TooltipContent, TooltipTriggerPart, TooltipRoot } from './structural-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { ReactNode } from 'react';\nimport type { ButtonVariant, ButtonSize } from './Button.js';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { TooltipTrigger, Tooltip as AriaTooltip } from 'react-aria-components/Tooltip';\nimport { Button } from 'react-aria-components/Button';\nimport { useDisclosure } from './useDisclosure.js';\nexport type TooltipPart = 'root' | 'trigger' | 'panel';\nexport interface TooltipProps extends StylingProps<TooltipPart> {\n triggerLabel: string;\n text: string;\n triggerContent?: ReactNode;\n triggerIconOnly?: boolean;\n triggerVariant?: ButtonVariant;\n triggerSize?: ButtonSize;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n dir?: 'ltr' | 'rtl';\n}\nfunction CompactTooltip({\n className,\n style,\n classNames,\n triggerLabel,\n text,\n triggerContent,\n triggerIconOnly = false,\n triggerVariant = 'secondary',\n triggerSize = 'md',\n open,\n defaultOpen = false,\n onOpenChange,\n isDisabled = false,\n dir,\n}: TooltipProps) {\n const { visible, change } = useDisclosure(open, defaultOpen, onOpenChange);\n return (\n <OverlayDirection dir={dir}>\n <TooltipTrigger\n isOpen={visible}\n onOpenChange={change}\n delay={300}\n closeDelay={0}\n isDisabled={isDisabled}\n >\n <Button\n className={[\n 'button',\n classNames?.trigger,\n `button--${triggerVariant}`,\n triggerSize !== 'md' && `button--${triggerSize}`,\n triggerIconOnly && 'button--icon-only',\n ]\n .filter(Boolean)\n .join(' ')}\n aria-label={triggerLabel}\n isDisabled={isDisabled}\n >\n {triggerContent ?? triggerLabel}\n </Button>\n <AriaTooltip\n className={partClass(\n partClass(partClass('tooltip__panel', classNames?.panel), classNames?.root),\n className,\n )}\n style={style}\n placement=\"top\"\n offset={8}\n containerPadding={16}\n dir={dir}\n >\n {text}\n </AriaTooltip>\n </TooltipTrigger>\n </OverlayDirection>\n );\n}\n\nfunction TooltipComponent(props: TooltipProps | TooltipRootProps) {\n return 'triggerLabel' in props ? <CompactTooltip {...props} /> : <TooltipRoot {...props} />;\n}\nexport const Tooltip = /* @__PURE__ */ Object.assign(TooltipComponent, {\n Root: TooltipRoot,\n Trigger: TooltipTriggerPart,\n Content: TooltipContent,\n});\n","import { partClass, type StylingProps } from './styling.js';\nexport type SpinnerSize = 'sm' | 'md' | 'lg';\nexport type SpinnerColor = 'current' | 'primary';\nexport interface SpinnerProps extends StylingProps<'root' | 'track' | 'arc' | 'label'> {\n size?: SpinnerSize;\n color?: SpinnerColor;\n label?: string;\n id?: string;\n}\n/** Decorative by default. Use label for a standalone loading status; omit it inside a labeled Button. */\nexport function Spinner({\n size = 'md',\n color = 'current',\n label,\n id,\n className,\n style,\n classNames,\n}: SpinnerProps) {\n return (\n <span\n id={id}\n className={partClass(partClass(`spinner spinner--${size}`, classNames?.root), className)}\n style={style}\n data-color={color}\n role={label ? 'status' : undefined}\n aria-label={label || undefined}\n aria-hidden={!label || undefined}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\">\n <circle className={partClass('spinner__track', classNames?.track)} cx=\"10\" cy=\"10\" r=\"8\" />\n <circle\n className={partClass('spinner__arc', classNames?.arc)}\n cx=\"10\"\n cy=\"10\"\n r=\"8\"\n pathLength=\"100\"\n strokeDasharray=\"36 64\"\n />\n </svg>\n {label && <span className={partClass('spinner__label', classNames?.label)}>{label}</span>}\n </span>\n );\n}\n","import {\n ComboBox as AriaComboBox,\n ComboBoxStateContext,\n type ComboBoxProps,\n Input,\n Button,\n type InputProps,\n type ButtonProps,\n type PopoverProps,\n} from 'react-aria-components/ComboBox';\nimport {\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n useCallback,\n type HTMLAttributes,\n type RefAttributes,\n type RefObject,\n} from 'react';\nimport { Group, type GroupProps } from 'react-aria-components/Group';\nimport type { SelectSize, SelectVariant } from './Select.js';\nimport { SelectionPopover } from './selection-popover.js';\nimport { partClass } from './styling.js';\nimport { CloseIcon, ChevronIcon } from './icons.js';\n\nexport type ComboboxCompositionProps = Omit<\n ComboBoxProps<object>,\n 'className' | 'onChange' | 'value' | 'defaultValue'\n> & {\n className?: string;\n options?: never;\n label?: never;\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n size?: SelectSize;\n variant?: SelectVariant;\n hideLabel?: boolean;\n fullWidth?: boolean;\n selectOnFocus?: boolean;\n disallowEmptySelection?: boolean;\n maxHeight?: number;\n};\nconst ComboboxPolicyContext = createContext({\n inputRef: { current: null } as RefObject<HTMLInputElement | null>,\n disabled: false,\n selectOnFocus: false,\n disallowEmptySelection: false,\n menuTrigger: 'input' as 'input' | 'focus' | 'manual',\n maxHeight: undefined as number | undefined,\n manageReset: false,\n controlled: false,\n resetting: { current: false },\n resetLocal: () => {},\n});\nfunction useComboState() {\n return useContext(ComboBoxStateContext);\n}\nexport function ComboboxComposition({\n className,\n onChange,\n size = 'md',\n variant = 'primary',\n hideLabel,\n fullWidth = true,\n selectOnFocus = false,\n disallowEmptySelection = false,\n maxHeight,\n ...props\n}: ComboboxCompositionProps) {\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const resetting = useRef(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const resetLocal = useCallback(() => setLocal(props.defaultValue ?? null), [props.defaultValue]);\n const value = props.value !== undefined ? props.value : local;\n return (\n <ComboboxPolicyContext.Provider\n value={{\n inputRef,\n disabled: !!props.isDisabled,\n selectOnFocus,\n disallowEmptySelection,\n menuTrigger: props.menuTrigger ?? 'input',\n maxHeight,\n manageReset: props.inputValue === undefined,\n controlled: props.value !== undefined,\n resetting,\n resetLocal,\n }}\n >\n <AriaComboBox\n {...props}\n {...(disallowEmptySelection ? { value } : {})}\n onChange={(key) => {\n if (resetting.current) return;\n if (disallowEmptySelection && key == null) return;\n const next = key == null ? null : String(key);\n setLocal(next);\n onChange?.(next);\n }}\n onInputChange={(text) => {\n if (!resetting.current) props.onInputChange?.(text);\n }}\n className={partClass(\n `select combobox select--${size} select--${variant}${hideLabel ? ' select--label-hidden' : ''}${!fullWidth ? ' select--fit' : ''}`,\n className,\n )}\n />\n </ComboboxPolicyContext.Provider>\n );\n}\nexport function ComboboxInputGroup({\n className,\n ...props\n}: Omit<GroupProps, 'className'> & RefAttributes<HTMLDivElement> & { className?: string }) {\n const state = useComboState();\n return (\n <Group\n {...props}\n className={partClass('combobox__control', className)}\n onKeyDownCapture={(event) => {\n props.onKeyDownCapture?.(event);\n if (\n !event.defaultPrevented &&\n event.key === 'Escape' &&\n state?.isOpen &&\n !event.nativeEvent.isComposing\n ) {\n event.preventDefault();\n event.stopPropagation();\n state.revert();\n }\n }}\n />\n );\n}\nexport function ComboboxInput({\n className,\n ...props\n}: Omit<InputProps, 'className'> & RefAttributes<HTMLInputElement> & { className?: string }) {\n const policy = useContext(ComboboxPolicyContext);\n const state = useComboState();\n const inputRef = useRef<HTMLInputElement | null>(null);\n const focused = useRef(false);\n const selectClick = useRef(false);\n const forwardedRef = props.ref;\n const captureRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n policy.inputRef.current = node;\n if (typeof forwardedRef === 'function') return forwardedRef(node);\n if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef, policy.inputRef],\n );\n useEffect(() => {\n const form = inputRef.current?.form;\n if (!form || !policy.manageReset || !state) return;\n const onReset = (event: Event) => {\n const value = state.value;\n const text = state.inputValue;\n policy.resetting.current = true;\n queueMicrotask(() => {\n if (event.defaultPrevented || policy.controlled) {\n state.setValue(value);\n state.setInputValue(text);\n } else policy.resetLocal();\n policy.resetting.current = false;\n });\n };\n form.addEventListener('reset', onReset, true);\n return () => form.removeEventListener('reset', onReset, true);\n }, [policy, state]);\n return (\n <Input\n {...props}\n ref={captureRef}\n className={partClass('combobox__input', className)}\n onFocus={(event) => {\n const wasFocused = focused.current;\n focused.current = true;\n props.onFocus?.(event);\n // React Aria may restore virtual focus without a matching DOM blur.\n if (!wasFocused && policy.selectOnFocus && !policy.disabled) event.currentTarget.select();\n }}\n onBlur={(event) => {\n focused.current = false;\n props.onBlur?.(event);\n }}\n onPointerDown={(event) => {\n props.onPointerDown?.(event);\n selectClick.current =\n policy.selectOnFocus && document.activeElement !== event.currentTarget;\n if (selectClick.current && !event.defaultPrevented && !policy.disabled) {\n event.preventDefault();\n event.currentTarget.focus();\n event.currentTarget.select();\n }\n }}\n onClick={(event) => {\n props.onClick?.(event);\n if (selectClick.current && !event.defaultPrevented && !policy.disabled)\n event.currentTarget.select();\n selectClick.current = false;\n if (\n !event.defaultPrevented &&\n !policy.disabled &&\n policy.menuTrigger === 'focus' &&\n !state?.isOpen\n )\n state?.open(null, 'focus');\n }}\n />\n );\n}\nexport function ComboboxTrigger({\n className,\n children,\n ...props\n}: Omit<ButtonProps, 'className'> & { className?: string }) {\n const policy = useContext(ComboboxPolicyContext);\n const state = useComboState();\n return (\n <Button\n aria-label=\"Buka pilihan\"\n {...props}\n className={partClass('combobox__toggle', className)}\n onPressStart={(event) => {\n props.onPressStart?.(event);\n // Match React Aria's opening phase: touch activates on release.\n if (\n event.pointerType !== 'touch' &&\n !state?.isOpen &&\n policy.selectOnFocus &&\n !policy.disabled\n )\n policy.inputRef.current?.select();\n }}\n onPress={(event) => {\n props.onPress?.(event);\n if (\n event.pointerType === 'touch' &&\n !state?.isOpen &&\n policy.selectOnFocus &&\n !policy.disabled\n )\n policy.inputRef.current?.select();\n }}\n >\n {children ?? <ChevronIcon className=\"select__icon\" />}\n </Button>\n );\n}\nexport function ComboboxPopover({\n className,\n ...props\n}: Omit<PopoverProps, 'className'> & { className?: string }) {\n const policy = useContext(ComboboxPolicyContext);\n return (\n <SelectionPopover\n maxHeight={policy.maxHeight}\n {...props}\n className={partClass('select__popover combobox__popover', className)}\n />\n );\n}\nexport function ComboboxClearButton({\n className,\n children,\n 'aria-label': label = 'Hapus pilihan',\n ...props\n}: Omit<HTMLAttributes<HTMLButtonElement>, 'onClick'>) {\n const state = useContext(ComboBoxStateContext);\n const { disabled, disallowEmptySelection } = useContext(ComboboxPolicyContext);\n if (disallowEmptySelection) return null;\n return (\n <button\n {...props}\n type=\"button\"\n className={partClass('combobox__clear', className)}\n aria-label={label}\n disabled={disabled || (state?.value == null && !state?.inputValue)}\n onClick={() => {\n state?.setValue(null);\n state?.setInputValue('');\n }}\n >\n {children ?? <CloseIcon className=\"selection__close-icon\" />}\n </button>\n );\n}\n","import {\n ComboboxComposition,\n ComboboxInputGroup,\n ComboboxInput,\n ComboboxTrigger,\n ComboboxPopover,\n ComboboxClearButton,\n type ComboboxCompositionProps,\n} from './combobox-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useRef, useState, type ReactNode } from 'react';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { Label, ListBox, ListBoxItem } from 'react-aria-components/ComboBox';\nimport type { SelectSize, SelectVariant } from './Select.js';\nimport { CloseIcon, ChevronIcon, CheckIcon } from './icons.js';\nimport { useFeedback } from './field.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { filterOptions, selectionIds, type SelectOption } from './selection-options.js';\nexport interface ComboboxProps extends StylingProps<\n | 'root'\n | 'label'\n | 'required'\n | 'control'\n | 'leading'\n | 'input'\n | 'clearButton'\n | 'clearIcon'\n | 'trigger'\n | 'indicator'\n | 'popover'\n | 'list'\n | 'empty'\n | 'item'\n | 'itemLabel'\n | 'itemDescription'\n | 'itemIndicator'\n | 'description'\n | 'error'\n> {\n label: string;\n size?: SelectSize;\n variant?: SelectVariant;\n hideLabel?: boolean;\n fullWidth?: boolean;\n maxHeight?: number;\n menuTrigger?: 'input' | 'focus' | 'manual';\n selectOnFocus?: boolean;\n disallowEmptySelection?: boolean;\n options: SelectOption[];\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n /** Decorative noninteractive icon before the value/input. */\n startContent?: ReactNode;\n placeholder?: string;\n name?: string;\n isDisabled?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n description?: string;\n errorMessage?: string;\n requiredMessage?: string;\n isClearable?: boolean;\n clearLabel?: string;\n toggleLabel?: string;\n emptyMessage?: string;\n dir?: 'ltr' | 'rtl';\n renderOption?: (option: SelectOption) => ReactNode;\n}\n/** Searchable single selection. Draft text is never submitted as a value. */\nfunction CompactCombobox(props: ComboboxProps) {\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const [draft, setDraft] = useState<string | null>(null);\n const [tried, setTried] = useState(false);\n const resetting = useRef(false);\n const input = useRef<HTMLInputElement>(null);\n const id =\n selectionIds(props.value !== undefined ? props.value : local, props.options, false)[0] ?? null;\n const selected = props.options.find((o) => o.id === id);\n const [previous, setPrevious] = useState(selected);\n if (previous !== selected) {\n setPrevious(selected);\n setDraft(null);\n }\n const text = draft ?? selected?.label ?? '';\n const invalid = props.isInvalid || (tried && props.isRequired && !id);\n const { describedBy, feedback } = useFeedback({\n classNames: props.classNames,\n description: props.description,\n isInvalid: invalid,\n errorMessage:\n props.errorMessage ??\n (props.isRequired && !id ? (props.requiredMessage ?? 'Pilihan wajib diisi.') : undefined),\n });\n function change(value: unknown) {\n if (props.isDisabled || resetting.current) return;\n const next = selectionIds(value, props.options, false)[0] ?? null;\n setLocal(next);\n props.onChange?.(next);\n setDraft(null);\n }\n const content = (\n <ComboboxComposition\n className={partClass(partClass('select combobox', props.classNames?.root), props.className)}\n style={props.style}\n size={props.size}\n variant={props.variant}\n hideLabel={props.hideLabel}\n fullWidth={props.fullWidth}\n maxHeight={props.maxHeight}\n menuTrigger={props.menuTrigger}\n selectOnFocus={props.selectOnFocus}\n disallowEmptySelection={props.disallowEmptySelection}\n onOpenChange={(open) => {\n if (!open) setDraft(null);\n }}\n value={id}\n onChange={change}\n inputValue={text}\n onInputChange={(text) => {\n if (resetting.current) return;\n setDraft(text);\n if (text === '' && id && !props.disallowEmptySelection) {\n setLocal(null);\n props.onChange?.(null);\n }\n }}\n defaultItems={props.options}\n defaultFilter={(label, query) =>\n filterOptions(props.options, query).some((option) => option.label === label)\n }\n allowsEmptyCollection\n allowsCustomValue={false}\n isDisabled={props.isDisabled}\n isRequired={props.isRequired}\n isInvalid={!!invalid}\n validationBehavior=\"aria\"\n >\n <Label className={partClass('select__label', props.classNames?.label)}>\n {props.label}\n {props.isRequired && (\n <span\n className={partClass('selection__required', props.classNames?.required)}\n aria-hidden=\"true\"\n >\n {' '}\n *\n </span>\n )}\n </Label>\n <ComboboxInputGroup\n className={partClass('combobox__control', props.classNames?.control)}\n data-invalid={invalid || undefined}\n data-disabled={props.isDisabled || undefined}\n >\n {props.startContent && (\n <span\n className={partClass('selection__leading', props.classNames?.leading)}\n aria-hidden=\"true\"\n >\n {props.startContent}\n </span>\n )}\n <ComboboxInput\n ref={input}\n className={partClass('combobox__input', props.classNames?.input)}\n placeholder={props.placeholder}\n aria-describedby={describedBy}\n />\n {props.isClearable && !props.disallowEmptySelection && (\n <button\n type=\"button\"\n className={partClass('combobox__clear', props.classNames?.clearButton)}\n data-empty={(!id && !text) || undefined}\n aria-hidden={(!id && !text) || undefined}\n tabIndex={!id && !text ? -1 : undefined}\n disabled={props.isDisabled || (!id && !text)}\n aria-label={props.clearLabel ?? 'Hapus pilihan'}\n onClick={() => {\n change(null);\n input.current?.focus();\n }}\n >\n <CloseIcon\n className={partClass('selection__close-icon', props.classNames?.clearIcon)}\n />\n </button>\n )}\n <ComboboxTrigger\n className={partClass('combobox__toggle', props.classNames?.trigger)}\n aria-label={props.toggleLabel ?? 'Buka pilihan'}\n >\n <ChevronIcon className={partClass('select__icon', props.classNames?.indicator)} />\n </ComboboxTrigger>\n </ComboboxInputGroup>\n <ComboboxPopover\n className={partClass('select__popover combobox__popover', props.classNames?.popover)}\n >\n <ListBox<SelectOption>\n className={partClass('select__list', props.classNames?.list)}\n renderEmptyState={() => (\n <span className={partClass('selection__empty', props.classNames?.empty)}>\n {props.emptyMessage ?? 'Tidak ada pilihan.'}\n </span>\n )}\n >\n {(option) => (\n <ListBoxItem\n id={option.id}\n textValue={option.label}\n isDisabled={option.isDisabled}\n className={partClass('select__item', props.classNames?.item)}\n >\n <span className={partClass('select__item-label', props.classNames?.itemLabel)}>\n {props.renderOption?.(option) ?? (\n <>\n {option.label}\n {option.description && (\n <span\n className={partClass(\n 'selection__description',\n props.classNames?.itemDescription,\n )}\n >\n {option.description}\n </span>\n )}\n </>\n )}\n </span>\n <CheckIcon className={partClass('select__check', props.classNames?.itemIndicator)} />\n </ListBoxItem>\n )}\n </ListBox>\n </ComboboxPopover>\n {feedback}\n {props.name && (\n <input type=\"hidden\" name={props.name} value={id ?? ''} disabled={props.isDisabled} />\n )}\n <SelectionValidation\n hasValue={!!id}\n required={props.isRequired}\n disabled={props.isDisabled}\n onInvalid={() => {\n setTried(true);\n input.current?.focus();\n }}\n onResetStart={() => {\n resetting.current = true;\n }}\n onReset={(cancelled) => {\n resetting.current = false;\n if (!cancelled) {\n setTried(false);\n setDraft(null);\n if (props.value === undefined) setLocal(props.defaultValue ?? null);\n }\n }}\n />\n </ComboboxComposition>\n );\n return props.dir ? (\n <I18nProvider locale={props.dir === 'rtl' ? 'ar-EG' : 'en-US'}>{content}</I18nProvider>\n ) : (\n content\n );\n}\n\nfunction ComboboxRoot(props: ComboboxProps | ComboboxCompositionProps) {\n if ('options' in props && props.options) return <CompactCombobox {...(props as ComboboxProps)} />;\n return <ComboboxComposition {...(props as ComboboxCompositionProps)} />;\n}\nexport const Combobox = /* @__PURE__ */ Object.assign(ComboboxRoot, {\n Root: ComboboxComposition,\n InputGroup: ComboboxInputGroup,\n Input: ComboboxInput,\n Trigger: ComboboxTrigger,\n Popover: ComboboxPopover,\n ClearButton: ComboboxClearButton,\n});\nexport type { ComboboxCompositionProps } from './combobox-composition.js';\n","export interface ToggleGroupItem {\n id: string;\n label: string;\n isDisabled?: boolean;\n}\nexport type ToggleGroupMode = 'single' | 'multiple';\nexport type ToggleGroupVariant = 'outline' | 'ghost' | 'chip';\n/** Normalize IDs without discarding existing disabled selections. */\nexport function toggleIds(value: unknown, items: ToggleGroupItem[], multiple: boolean): string[] {\n const wanted = new Set(Array.isArray(value) ? value : typeof value === 'string' ? [value] : []);\n const result = [\n ...new Set(\n items.filter((item) => item.id !== '' && wanted.has(item.id)).map((item) => item.id),\n ),\n ];\n return multiple ? result : result.slice(0, 1);\n}\n","import {\n ToggleButtonGroup as ComposedToggleGroup,\n type ToggleButtonGroupProps,\n} from './ToggleButtonGroup.js';\nimport { ToggleButton as ComposedToggleItem } from './ToggleButton.js';\nimport { ButtonGroupSeparator } from './ButtonGroup.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useState, type ReactNode } from 'react';\nimport { ToggleButtonGroup } from 'react-aria-components/ToggleButtonGroup';\nimport { ToggleButton } from 'react-aria-components/ToggleButton';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { toggleIds, type ToggleGroupItem, type ToggleGroupVariant } from './toggle-group-model.js';\nimport type { ButtonSize } from './Button.js';\nexport type { ToggleGroupItem, ToggleGroupMode, ToggleGroupVariant } from './toggle-group-model.js';\ninterface ToggleGroupCommonProps extends StylingProps<'root' | 'item' | 'icon' | 'label'> {\n label: string;\n items: ToggleGroupItem[];\n isDisabled?: boolean;\n isIconOnly?: boolean;\n renderIcon?: (item: ToggleGroupItem) => ReactNode;\n disallowEmptySelection?: boolean;\n variant?: ToggleGroupVariant;\n size?: ButtonSize;\n orientation?: 'horizontal' | 'vertical';\n dir?: 'ltr' | 'rtl';\n}\nexport type ToggleGroupProps = ToggleGroupCommonProps &\n (\n | {\n selectionMode?: 'single';\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n }\n | {\n selectionMode: 'multiple';\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n }\n );\nfunction CompactToggleGroup(\n props: Extract<ToggleGroupProps, { selectionMode: 'multiple' }>,\n): ReactNode;\nfunction CompactToggleGroup(\n props: Exclude<ToggleGroupProps, { selectionMode: 'multiple' }>,\n): ReactNode;\nfunction CompactToggleGroup(props: ToggleGroupProps) {\n const multiple = props.selectionMode === 'multiple';\n const [local, setLocal] = useState<unknown>(props.defaultValue);\n const ids = toggleIds(props.value !== undefined ? props.value : local, props.items, multiple);\n function update(keys: Set<string | number>) {\n if (props.isDisabled) return;\n const requested = new Set(Array.from(keys, String));\n // Keep disabled values parent-owned; user interaction cannot toggle them.\n for (const item of props.items.filter((item) => item.isDisabled)) {\n if (multiple && ids.includes(item.id)) requested.add(item.id);\n else if (!ids.includes(item.id)) requested.delete(item.id);\n }\n const next = toggleIds([...requested], props.items, multiple);\n if (next.length === ids.length && next.every((id, index) => id === ids[index])) return;\n if (props.disallowEmptySelection && ids.length && !next.length) return;\n const value = multiple ? next : (next[0] ?? null);\n setLocal(value);\n if (props.selectionMode === 'multiple') props.onChange?.(next);\n else props.onChange?.(next[0] ?? null);\n }\n return (\n <OverlayDirection dir={props.dir}>\n <ToggleButtonGroup\n className={partClass(partClass('toggle-group', props.classNames?.root), props.className)}\n style={props.style}\n aria-label={props.label}\n dir={props.dir}\n selectionMode={multiple ? 'multiple' : 'single'}\n selectedKeys={ids}\n onSelectionChange={update}\n disallowEmptySelection={props.disallowEmptySelection}\n isDisabled={props.isDisabled}\n orientation={props.orientation ?? 'horizontal'}\n data-variant={props.variant ?? 'outline'}\n data-size={props.size ?? 'md'}\n data-icon-only={props.isIconOnly || undefined}\n >\n {props.items.map((item) => (\n <ToggleButton\n key={item.id}\n id={item.id}\n className={partClass('toggle-group__item', props.classNames?.item)}\n aria-label={item.label}\n isDisabled={props.isDisabled || item.isDisabled}\n >\n {props.renderIcon && (\n <span\n className={partClass('toggle-group__icon', props.classNames?.icon)}\n aria-hidden=\"true\"\n >\n {props.renderIcon(item)}\n </span>\n )}\n {!props.isIconOnly && <span className={props.classNames?.label}>{item.label}</span>}\n </ToggleButton>\n ))}\n </ToggleButtonGroup>\n </OverlayDirection>\n );\n}\n\nfunction ToggleGroupRoot(\n props:\n | Extract<ToggleGroupProps, { selectionMode: 'multiple' }>\n | Extract<ToggleButtonGroupProps, { selectionMode: 'multiple' }>,\n): ReactNode;\nfunction ToggleGroupRoot(\n props:\n | Exclude<ToggleGroupProps, { selectionMode: 'multiple' }>\n | Exclude<ToggleButtonGroupProps, { selectionMode: 'multiple' }>,\n): ReactNode;\nfunction ToggleGroupRoot(props: ToggleGroupProps | ToggleButtonGroupProps) {\n if ('items' in props)\n return props.selectionMode === 'multiple' ? (\n <CompactToggleGroup {...props} />\n ) : (\n <CompactToggleGroup {...props} />\n );\n return <ComposedToggleGroup {...props} />;\n}\nexport const ToggleGroup = /* @__PURE__ */ Object.assign(ToggleGroupRoot, {\n Root: ComposedToggleGroup,\n Item: ComposedToggleItem,\n Separator: ButtonGroupSeparator,\n});\n","import {\n createContext,\n useContext,\n type HTMLAttributes,\n type InputHTMLAttributes,\n type ButtonHTMLAttributes,\n type ReactNode,\n type RefObject,\n} from 'react';\nimport { Button, type ButtonProps } from 'react-aria-components/Button';\nimport { Popover, type PopoverProps } from 'react-aria-components/Popover';\nimport { Dialog } from 'react-aria-components/Dialog';\nimport type { DateRange } from './date-range-model.js';\nimport { partClass } from './styling.js';\nimport { ChevronIcon } from './icons.js';\n\nexport interface DateRangeCompositionContextValue {\n id: string;\n text: string;\n labels: { apply: string; clear: string; cancel: string };\n draft: DateRange;\n disabled: boolean;\n readOnly: boolean;\n invalid: boolean;\n feedbackId?: string;\n min?: string;\n max?: string;\n dir?: 'ltr' | 'rtl';\n trigger: RefObject<HTMLButtonElement | null>;\n calendar: ReactNode;\n panel: ReactNode;\n edit: (part: 'start' | 'end', value: string) => void;\n apply: () => void;\n clear: () => void;\n cancel: () => void;\n}\nexport const DateRangeCompositionContext = createContext<DateRangeCompositionContextValue | null>(\n null,\n);\nfunction useRange() {\n const context = useContext(DateRangeCompositionContext);\n if (!context) throw new Error('DateRangePicker parts must be used inside DateRangePicker.');\n return context;\n}\n\nexport function DateRangeTrigger({\n className,\n children,\n ...props\n}: Omit<ButtonProps, 'className'> & { className?: string }) {\n const range = useRange();\n return (\n <Button\n aria-labelledby={`${range.id}-label ${range.id}-value`}\n aria-describedby={range.feedbackId}\n aria-invalid={range.invalid || undefined}\n isDisabled={range.disabled}\n ref={range.trigger}\n {...props}\n className={partClass('date-range__trigger', className)}\n >\n {children ?? <DateRangeValue />}\n </Button>\n );\n}\nexport function DateRangeValue({ className, children, ...props }: HTMLAttributes<HTMLSpanElement>) {\n const range = useRange();\n return (\n <span id={`${range.id}-value`} {...props} className={partClass('date-range__value', className)}>\n {children ?? range.text}\n </span>\n );\n}\nexport function DateRangeIndicator({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span {...props} className={partClass('date-range__chevron', className)} aria-hidden=\"true\">\n {children ?? <ChevronIcon />}\n </span>\n );\n}\nexport function DateRangePopover({\n className,\n children,\n ...props\n}: Omit<PopoverProps, 'className'> & { className?: string }) {\n const range = useRange();\n return (\n <Popover\n placement=\"bottom start\"\n offset={8}\n dir={range.dir}\n {...props}\n className={partClass('date-range__panel', className)}\n >\n {(state) => (\n <Dialog aria-labelledby={`${range.id}-label`} className=\"date-range__dialog\">\n {typeof children === 'function' ? children(state) : (children ?? range.panel)}\n </Dialog>\n )}\n </Popover>\n );\n}\n/** Render the standard model-bound panel, or compose a custom panel through children. */\nexport function DateRangeContent({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n const range = useRange();\n return (\n <div {...props} className={className}>\n {children ?? range.panel}\n </div>\n );\n}\nexport function DateRangeCalendar({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n const range = useRange();\n return (\n <div {...props} className={className}>\n {range.calendar}\n </div>\n );\n}\nexport function DateRangeInput({\n part,\n className,\n onChange,\n ...props\n}: Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue'> & {\n part: 'start' | 'end';\n}) {\n const range = useRange();\n return (\n <input\n type=\"date\"\n form=\"\"\n min={range.min}\n max={range.max}\n disabled={range.disabled}\n readOnly={range.readOnly}\n aria-invalid={range.invalid || undefined}\n {...props}\n className={partClass('input__control', className)}\n value={range.draft[part]}\n onChange={(event) => {\n onChange?.(event);\n if (!event.defaultPrevented) range.edit(part, event.target.value);\n }}\n />\n );\n}\nexport function DateRangeApplyButton({\n className,\n onClick,\n children,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const range = useRange();\n return (\n <button\n type=\"button\"\n {...props}\n className={partClass('button button--primary button--sm', className)}\n disabled={range.disabled || range.readOnly || range.invalid || props.disabled}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) range.apply();\n }}\n >\n {children ?? range.labels.apply}\n </button>\n );\n}\nexport function DateRangeClearButton({\n className,\n onClick,\n children,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const range = useRange();\n return (\n <button\n type=\"button\"\n {...props}\n className={partClass('button button--ghost button--sm', className)}\n disabled={range.disabled || range.readOnly || props.disabled}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) range.clear();\n }}\n >\n {children ?? range.labels.clear}\n </button>\n );\n}\nexport function DateRangeCancelButton({\n className,\n onClick,\n children,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const range = useRange();\n return (\n <button\n type=\"button\"\n {...props}\n className={partClass('button button--secondary button--sm', className)}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) range.cancel();\n }}\n >\n {children ?? range.labels.cancel}\n </button>\n );\n}\n","import { useContext, useState, useEffect, useRef, type HTMLAttributes } from 'react';\nimport {\n Calendar as AriaCalendar,\n CalendarStateContext,\n CalendarGrid,\n CalendarGridHeader,\n CalendarGridBody,\n CalendarHeaderCell,\n CalendarCell,\n} from 'react-aria-components/Calendar';\nimport {\n RangeCalendar as AriaRangeCalendar,\n RangeCalendarStateContext,\n} from 'react-aria-components/RangeCalendar';\nimport { Button } from 'react-aria-components/Button';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { parseDate, today, CalendarDate, GregorianCalendar } from '@internationalized/date';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { TemporalRange } from './temporal-model.js';\n\nfunction date(value?: string | null) {\n try {\n return value ? parseDate(value) : undefined;\n } catch {\n return undefined;\n }\n}\nfunction monthName(year: number, month: number, locale: string) {\n return new Intl.DateTimeFormat(locale, {\n month: 'long',\n timeZone: 'UTC',\n calendar: 'gregory',\n }).format(new CalendarDate(year, month, 1).toDate('UTC'));\n}\nexport interface MonthPickerProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n value?: number;\n year?: number;\n onChange?: (month: number) => void;\n locale?: string;\n minDate?: string;\n maxDate?: string;\n isDisabled?: boolean;\n}\nexport function MonthPicker({\n value,\n year = today('UTC').year,\n onChange,\n locale = 'id-ID',\n minDate,\n maxDate,\n isDisabled,\n className,\n ...props\n}: MonthPickerProps) {\n return (\n <div\n {...props}\n className={partClass('calendar__choices', className)}\n role=\"group\"\n aria-label={locale.startsWith('id') ? 'Pilih bulan' : 'Choose month'}\n >\n {Array.from({ length: 12 }, (_, i) => i + 1).map((month) => {\n const start = new CalendarDate(year, month, 1);\n const end = start.add({ months: 1 }).subtract({ days: 1 });\n return (\n <button\n key={month}\n type=\"button\"\n disabled={\n isDisabled ||\n !!(date(minDate) && end.compare(date(minDate)!) < 0) ||\n !!(date(maxDate) && start.compare(date(maxDate)!) > 0)\n }\n aria-pressed={value === month}\n onClick={() => onChange?.(month)}\n >\n {monthName(year, month, locale)}\n </button>\n );\n })}\n </div>\n );\n}\nexport interface YearPickerProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n value?: number;\n onChange?: (year: number) => void;\n locale?: string;\n minDate?: string;\n maxDate?: string;\n isDisabled?: boolean;\n}\nexport function YearPicker({\n value = today('UTC').year,\n onChange,\n locale = 'id-ID',\n minDate,\n maxDate,\n isDisabled,\n className,\n ...props\n}: YearPickerProps) {\n const min = date(minDate)?.year ?? 1,\n max = date(maxDate)?.year ?? 9999;\n const [page, setPage] = useState(\n Math.max(min, Math.min(max, Math.floor((value - 1) / 12) * 12 + 1)),\n );\n return (\n <div {...props} className={partClass('calendar__years', className)}>\n <div className=\"calendar__year-navigation\">\n <button\n type=\"button\"\n aria-label={locale.startsWith('id') ? 'Tahun sebelumnya' : 'Previous years'}\n disabled={isDisabled || page <= min}\n onClick={() => setPage(Math.max(min, page - 12))}\n >\n ‹\n </button>\n <span>\n {page}–{Math.min(page + 11, max)}\n </span>\n <button\n type=\"button\"\n aria-label={locale.startsWith('id') ? 'Tahun berikutnya' : 'Next years'}\n disabled={isDisabled || page + 11 >= max}\n onClick={() => setPage(Math.max(min, Math.min(max - 11, page + 12)))}\n >\n ›\n </button>\n </div>\n <div\n className=\"calendar__choices\"\n role=\"group\"\n aria-label={locale.startsWith('id') ? 'Pilih tahun' : 'Choose year'}\n >\n {Array.from({ length: 12 }, (_, i) => page + i)\n .filter((year) => year <= 9999)\n .map((year) => (\n <button\n type=\"button\"\n key={year}\n disabled={isDisabled || year < min || year > max}\n aria-pressed={value === year}\n onClick={() => onChange?.(year)}\n >\n {year}\n </button>\n ))}\n </div>\n </div>\n );\n}\nexport interface MonthYearNavigationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n value: string;\n onChange: (value: string) => void;\n locale?: string;\n minDate?: string;\n maxDate?: string;\n isDisabled?: boolean;\n}\nexport function MonthYearNavigation({\n value,\n onChange,\n locale = 'id-ID',\n minDate,\n maxDate,\n isDisabled,\n className,\n ...props\n}: MonthYearNavigationProps) {\n const current = date(value) ?? today('UTC');\n const [view, setView] = useState<'month' | 'year' | null>(null);\n const header = useRef<HTMLDivElement>(null),\n lastToggle = useRef<'month' | 'year'>('month'),\n previousView = useRef<typeof view>(null);\n useEffect(() => {\n if (view) {\n (\n header.current?.querySelector<HTMLButtonElement>(\n '.calendar__view [aria-pressed=\"true\"]:not(:disabled)',\n ) ??\n header.current?.querySelector<HTMLButtonElement>('.calendar__view button:not(:disabled)')\n )?.focus();\n } else if (previousView.current) {\n header.current\n ?.querySelectorAll<HTMLButtonElement>('.date-range__heading > button')\n [lastToggle.current === 'month' ? 0 : 1]?.focus();\n }\n previousView.current = view;\n }, [view]);\n useEffect(() => {\n if (!view) return;\n const grid = header.current\n ?.closest('.date-range__month')\n ?.querySelector<HTMLElement>('.date-range__grid');\n if (!grid) return;\n const inert = grid.hasAttribute('inert'),\n hidden = grid.getAttribute('aria-hidden');\n grid.inert = true;\n grid.setAttribute('inert', '');\n grid.setAttribute('aria-hidden', 'true');\n return () => {\n grid.inert = inert;\n if (!inert) grid.removeAttribute('inert');\n if (hidden === null) grid.removeAttribute('aria-hidden');\n else grid.setAttribute('aria-hidden', hidden);\n };\n }, [view]);\n const navigate = (year: number, month: number) => {\n let next = new CalendarDate(year, month, 1);\n const min = date(minDate),\n max = date(maxDate);\n if (min && next.compare(min) < 0) next = min;\n if (max && next.compare(max) > 0) next = max;\n onChange(next.toString());\n };\n return (\n <div {...props} ref={header} className={partClass('calendar__header', className)}>\n <div className=\"date-range__heading\">\n <button\n type=\"button\"\n disabled={isDisabled}\n aria-expanded={view === 'month'}\n onClick={() => {\n lastToggle.current = 'month';\n setView(view === 'month' ? null : 'month');\n }}\n >\n {monthName(current.year, current.month, locale)}\n </button>\n <button\n type=\"button\"\n disabled={isDisabled}\n aria-expanded={view === 'year'}\n onClick={() => {\n lastToggle.current = 'year';\n setView(view === 'year' ? null : 'year');\n }}\n >\n {current.year}\n </button>\n </div>\n {view && (\n <div\n className=\"calendar__view\"\n role=\"group\"\n aria-label={\n view === 'year'\n ? locale.startsWith('id')\n ? 'Pilih tahun'\n : 'Choose year'\n : locale.startsWith('id')\n ? 'Pilih bulan'\n : 'Choose month'\n }\n onKeyDownCapture={(e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n setView(null);\n }\n }}\n >\n {view === 'month' ? (\n <MonthPicker\n value={current.month}\n year={current.year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n isDisabled={isDisabled}\n onChange={(month) => {\n navigate(current.year, month);\n setView(null);\n }}\n />\n ) : (\n <YearPicker\n value={current.year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n isDisabled={isDisabled}\n onChange={(year) => {\n navigate(year, current.month);\n setView('month');\n }}\n />\n )}\n <button type=\"button\" className=\"calendar__back\" onClick={() => setView(null)}>\n {locale.startsWith('id') ? 'Kembali' : 'Back'}\n </button>\n </div>\n )}\n </div>\n );\n}\n/** Reads actual visibleRange rather than assuming the focused day is the first panel. */\nexport function CalendarViewHeader({\n offset = 0,\n onNavigate,\n ...props\n}: Omit<MonthYearNavigationProps, 'value' | 'onChange'> & {\n offset?: number;\n onNavigate: (value: CalendarDate) => void;\n}) {\n const single = useContext(CalendarStateContext),\n range = useContext(RangeCalendarStateContext);\n const state = range ?? single;\n const visible = state?.visibleRange.start ?? today('UTC');\n return (\n <MonthYearNavigation\n {...props}\n value={visible.add({ months: offset }).toString()}\n onChange={(value) => onNavigate(parseDate(value).subtract({ months: offset }))}\n />\n );\n}\nexport interface CalendarProps extends StylingProps<'header' | 'grid' | 'day' | 'month'> {\n label?: string;\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n locale?: string;\n dir?: 'ltr' | 'rtl';\n minDate?: string;\n maxDate?: string;\n isDateUnavailable?: (value: string) => boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n weekStartsOn?: 0 | 1;\n visibleMonths?: 1 | 2;\n referenceDate?: string;\n}\nexport interface RangeCalendarProps extends Omit<\n CalendarProps,\n 'value' | 'defaultValue' | 'onChange'\n> {\n value?: TemporalRange | null;\n defaultValue?: TemporalRange | null;\n onChange?: (value: TemporalRange | null) => void;\n}\nfunction CalendarBody({\n props,\n onNavigate,\n}: {\n props: CalendarProps;\n onNavigate: (date: CalendarDate) => void;\n}) {\n return (\n <>\n <div className=\"date-range__navigation\">\n <Button\n slot=\"previous\"\n className=\"date-range__nav\"\n aria-label={props.locale?.startsWith('id') ? 'Bulan sebelumnya' : 'Previous month'}\n >\n ‹\n </Button>\n <Button\n slot=\"next\"\n className=\"date-range__nav\"\n aria-label={props.locale?.startsWith('id') ? 'Bulan berikutnya' : 'Next month'}\n >\n ›\n </Button>\n </div>\n <div className=\"date-range__months\">\n {Array.from({ length: props.visibleMonths ?? 1 }, (_, i) => (\n <div className={partClass('date-range__month', props.classNames?.month)} key={i}>\n <CalendarViewHeader\n offset={i}\n onNavigate={onNavigate}\n locale={props.locale}\n minDate={props.minDate}\n maxDate={props.maxDate}\n isDisabled={props.isDisabled}\n className={props.classNames?.header}\n />\n <CalendarGrid\n offset={{ months: i }}\n className={partClass('date-range__grid', props.classNames?.grid)}\n weekdayStyle=\"short\"\n >\n <CalendarGridHeader>\n {(day) => (\n <CalendarHeaderCell className=\"date-range__weekday\">{day}</CalendarHeaderCell>\n )}\n </CalendarGridHeader>\n <CalendarGridBody>\n {(day) => (\n <CalendarCell\n date={day}\n className={partClass('date-range__day', props.classNames?.day)}\n />\n )}\n </CalendarGridBody>\n </CalendarGrid>\n </div>\n ))}\n </div>\n </>\n );\n}\nexport function Calendar(props: CalendarProps) {\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const value = props.value === undefined ? local : props.value;\n useEffect(() => {\n const next = date(value);\n if (next) setFocused(next);\n }, [value]);\n const [focused, setFocused] = useState(\n () => date(value) ?? date(props.referenceDate) ?? date(props.minDate) ?? today('UTC'),\n );\n return (\n <I18nProvider locale={props.locale ?? 'id-ID'}>\n <AriaCalendar\n className={partClass(\n partClass('date-range__calendar calendar', props.classNames?.root),\n props.className,\n )}\n style={props.style}\n aria-label={props.label ?? 'Calendar'}\n dir={props.dir}\n value={date(value) ?? null}\n focusedValue={focused}\n onFocusChange={setFocused}\n createCalendar={() => new GregorianCalendar()}\n visibleDuration={{ months: props.visibleMonths ?? 1 }}\n pageBehavior=\"single\"\n firstDayOfWeek={props.weekStartsOn === 0 ? 'sun' : 'mon'}\n minValue={date(props.minDate)}\n maxValue={date(props.maxDate)}\n isDisabled={props.isDisabled}\n isReadOnly={props.isReadOnly}\n isDateUnavailable={(v) => props.isDateUnavailable?.(v.toString()) ?? false}\n onChange={(v) => {\n const next = v?.toString() ?? null;\n setLocal(next);\n props.onChange?.(next);\n }}\n >\n <CalendarBody props={props} onNavigate={setFocused} />\n </AriaCalendar>\n </I18nProvider>\n );\n}\nexport function RangeCalendar(props: RangeCalendarProps) {\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const value = props.value === undefined ? local : props.value;\n const selectedStart = value?.start;\n useEffect(() => {\n const next = date(selectedStart);\n if (next) setFocused(next);\n }, [selectedStart]);\n const [focused, setFocused] = useState(\n () => date(value?.start) ?? date(props.referenceDate) ?? date(props.minDate) ?? today('UTC'),\n );\n const selected =\n date(value?.start) && date(value?.end)\n ? { start: date(value?.start)!, end: date(value?.end)! }\n : null;\n return (\n <I18nProvider locale={props.locale ?? 'id-ID'}>\n <AriaRangeCalendar\n className={partClass(\n partClass('date-range__calendar calendar', props.classNames?.root),\n props.className,\n )}\n style={props.style}\n aria-label={props.label ?? 'Calendar'}\n dir={props.dir}\n value={selected}\n focusedValue={focused}\n onFocusChange={setFocused}\n createCalendar={() => new GregorianCalendar()}\n visibleDuration={{ months: props.visibleMonths ?? 2 }}\n pageBehavior=\"single\"\n firstDayOfWeek={props.weekStartsOn === 0 ? 'sun' : 'mon'}\n minValue={date(props.minDate)}\n maxValue={date(props.maxDate)}\n isDisabled={props.isDisabled}\n isReadOnly={props.isReadOnly}\n isDateUnavailable={(v) => props.isDateUnavailable?.(v.toString()) ?? false}\n onChange={(v) => {\n const next = v ? { start: v.start.toString(), end: v.end.toString() } : null;\n setLocal(next);\n props.onChange?.(next);\n }}\n >\n <CalendarBody\n props={{\n ...props,\n visibleMonths: props.visibleMonths ?? 2,\n value: null,\n defaultValue: null,\n onChange: undefined,\n }}\n onNavigate={setFocused}\n />\n </AriaRangeCalendar>\n </I18nProvider>\n );\n}\n","import {\n parseDate,\n today,\n getLocalTimeZone,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n} from '@internationalized/date';\n\nexport interface DateRange {\n start: string;\n end: string;\n}\nexport interface DateRangePreset {\n id: string;\n label: string;\n value: DateRange;\n}\nexport interface DateRangeConstraints {\n minDate?: string;\n maxDate?: string;\n minDays?: number;\n maxDays?: number;\n isDateUnavailable?: (date: string) => boolean;\n}\nexport type DateRangeSize = 'sm' | 'md' | 'lg';\nexport type DateRangeVariant = 'primary' | 'secondary' | 'outline';\nexport interface DateRangeOptions extends DateRangeConstraints {\n label: string;\n defaultValue?: DateRange | null;\n size?: DateRangeSize;\n variant?: DateRangeVariant;\n hideLabel?: boolean;\n fullWidth?: boolean;\n locale?: string;\n dir?: 'ltr' | 'rtl';\n visibleMonths?: 1 | 2;\n weekStartsOn?: 0 | 1;\n display?: 'popover' | 'inline' | 'dialog' | 'auto';\n commitMode?: 'apply' | 'immediate';\n showActions?: boolean;\n showInputs?: boolean;\n showMonthYearPicker?: boolean;\n triggerDisplay?: 'text' | 'icon';\n /** Matching labels for the committed trigger value. Render period shortcuts in an external Select. */\n presets?: DateRangePreset[];\n labels?: Partial<DateRangeLabels>;\n formatRange?: (value: DateRange, locale: string) => string;\n description?: string;\n errorMessage?: string;\n name?: string;\n referenceDate?: string;\n open?: boolean;\n defaultOpen?: boolean;\n}\nexport type DateRangeError = 'incomplete' | 'order' | 'bounds' | 'unavailable' | 'length';\nexport interface DateRangeLabels {\n title: string;\n start: string;\n end: string;\n apply: string;\n cancel: string;\n clear: string;\n previousMonth: string;\n nextMonth: string;\n presets: string;\n placeholder: string;\n incomplete: string;\n order: string;\n bounds: string;\n unavailable: string;\n length: string;\n required: string;\n}\nexport function dateRangeLabels(locale = 'id-ID'): DateRangeLabels {\n return locale.startsWith('id')\n ? {\n title: 'Pilih rentang tanggal',\n start: 'Tanggal mulai',\n end: 'Tanggal akhir',\n apply: 'Terapkan',\n cancel: 'Batal',\n clear: 'Kosongkan',\n previousMonth: 'Bulan sebelumnya',\n nextMonth: 'Bulan berikutnya',\n presets: 'Pilihan cepat',\n placeholder: 'Pilih tanggal',\n incomplete: 'Lengkapi tanggal mulai dan akhir.',\n order: 'Tanggal akhir harus setelah atau sama dengan tanggal mulai.',\n bounds: 'Tanggal berada di luar batas yang diizinkan.',\n unavailable: 'Rentang memuat tanggal yang tidak tersedia.',\n length: 'Durasi rentang tidak sesuai batas yang diizinkan.',\n required: 'Rentang tanggal wajib diisi.',\n }\n : {\n title: 'Select date range',\n start: 'Start date',\n end: 'End date',\n apply: 'Apply',\n cancel: 'Cancel',\n clear: 'Clear',\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n presets: 'Quick selections',\n placeholder: 'Choose dates',\n incomplete: 'Enter both start and end dates.',\n order: 'End date must be on or after start date.',\n bounds: 'Dates are outside the allowed limits.',\n unavailable: 'The range includes an unavailable date.',\n length: 'The range duration is outside the allowed limits.',\n required: 'A date range is required.',\n };\n}\nexport function validDate(value: string): boolean {\n if (!/^(?!0000)\\d{4}-\\d{2}-\\d{2}$/.test(value)) return false;\n try {\n return parseDate(value).toString() === value;\n } catch {\n return false;\n }\n}\nexport function asDate(value?: string) {\n return value && validDate(value) ? parseDate(value) : undefined;\n}\nexport function currentDate() {\n return today(getLocalTimeZone()).toString();\n}\nexport function rangeError(\n value: DateRange | null,\n constraints: DateRangeConstraints = {},\n): DateRangeError | null {\n if (!value) return null;\n if (!validDate(value.start) || !validDate(value.end)) return 'incomplete';\n if (value.end < value.start) return 'order';\n if (\n (constraints.minDate && value.start < constraints.minDate) ||\n (constraints.maxDate && value.end > constraints.maxDate)\n )\n return 'bounds';\n const start = parseDate(value.start),\n end = parseDate(value.end);\n const days = end.calendar.toJulianDay(end) - start.calendar.toJulianDay(start) + 1;\n if (\n (constraints.minDays && days < constraints.minDays) ||\n (constraints.maxDays && days > constraints.maxDays)\n )\n return 'length';\n if (constraints.isDateUnavailable) {\n for (let day = start; day.compare(end) <= 0; day = day.add({ days: 1 })) {\n if (constraints.isDateUnavailable(day.toString())) return 'unavailable';\n if (day.compare(end) === 0) break;\n }\n }\n return null;\n}\nexport function rangeText(value: DateRange | null, locale = 'id-ID'): string {\n if (!value || !validDate(value.start) || !validDate(value.end)) return '';\n const formatter = new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n timeZone: 'UTC',\n calendar: 'gregory',\n });\n const date = (s: string) => parseDate(s).toDate('UTC');\n return value.start === value.end\n ? formatter.format(date(value.start))\n : `${formatter.format(date(value.start))} – ${formatter.format(date(value.end))}`;\n}\nexport function createDateRangePresets(\n referenceDate = currentDate(),\n locale = 'id-ID',\n weekStartsOn: 0 | 1 = 1,\n): DateRangePreset[] {\n const day = parseDate(referenceDate),\n week = startOfWeek(day, locale, weekStartsOn === 1 ? 'mon' : 'sun');\n const id = locale.startsWith('id');\n return [\n {\n id: 'this-week',\n label: id ? 'Minggu ini' : 'This Week',\n start: week,\n end: week.add({ days: 6 }),\n },\n {\n id: 'last-week',\n label: id ? 'Minggu lalu' : 'Last Week',\n start: week.subtract({ days: 7 }),\n end: week.subtract({ days: 1 }),\n },\n {\n id: 'last-7-days',\n label: id ? '7 hari terakhir' : 'Last 7 Days',\n start: day.subtract({ days: 6 }),\n end: day,\n },\n {\n id: 'last-30-days',\n label: id ? '30 hari terakhir' : 'Last 30 Days',\n start: day.subtract({ days: 29 }),\n end: day,\n },\n {\n id: 'this-month',\n label: id ? 'Bulan ini' : 'Current Month',\n start: startOfMonth(day),\n end: endOfMonth(day),\n },\n {\n id: 'next-month',\n label: id ? 'Bulan depan' : 'Next Month',\n start: startOfMonth(day.add({ months: 1 })),\n end: endOfMonth(day.add({ months: 1 })),\n },\n ].map(({ id, label, start, end }) => ({\n id,\n label,\n value: { start: start.toString(), end: end.toString() },\n }));\n}\n","import {\n DateRangeCompositionContext,\n DateRangeTrigger,\n DateRangeValue,\n DateRangeIndicator,\n DateRangePopover,\n DateRangeContent,\n DateRangeCalendar,\n DateRangeInput,\n DateRangeApplyButton,\n DateRangeClearButton,\n DateRangeCancelButton,\n} from './date-range-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useContext, useEffect, useId, useRef, useState, type ReactNode } from 'react';\nimport { I18nProvider, useLocale } from 'react-aria-components/I18nProvider';\nimport { Dialog, DialogTrigger } from 'react-aria-components/Dialog';\nimport { Modal, ModalOverlay } from 'react-aria-components/Modal';\nimport { Popover } from 'react-aria-components/Popover';\nimport { Button } from 'react-aria-components/Button';\nimport {\n RangeCalendar,\n RangeCalendarStateContext,\n CalendarGrid,\n CalendarGridHeader,\n CalendarGridBody,\n CalendarHeaderCell,\n CalendarCell,\n} from 'react-aria-components/RangeCalendar';\nimport { GregorianCalendar } from '@internationalized/date';\nimport { CalendarViewHeader } from './Calendar.js';\nimport { useDisclosure } from './useDisclosure.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { ChevronIcon } from './icons.js';\nimport {\n asDate,\n currentDate,\n dateRangeLabels,\n rangeError,\n rangeText,\n type DateRange,\n type DateRangeOptions,\n} from './date-range-model.js';\n\nexport interface DateRangePickerProps\n extends\n DateRangeOptions,\n StylingProps<\n | 'root'\n | 'content'\n | 'intro'\n | 'summary'\n | 'body'\n | 'presets'\n | 'preset'\n | 'main'\n | 'inputs'\n | 'field'\n | 'input'\n | 'inputLabel'\n | 'monthSelect'\n | 'yearInput'\n | 'title'\n | 'draftError'\n | 'jump'\n | 'calendar'\n | 'navigation'\n | 'navigationButton'\n | 'months'\n | 'month'\n | 'heading'\n | 'grid'\n | 'weekday'\n | 'day'\n | 'validation'\n | 'footer'\n | 'clearButton'\n | 'cancelButton'\n | 'applyButton'\n | 'label'\n | 'panel'\n | 'trigger'\n | 'icon'\n | 'value'\n | 'chevron'\n | 'dialog'\n | 'description'\n | 'error'\n > {\n value?: DateRange | null;\n onChange?: (value: DateRange | null) => void;\n children?: ReactNode;\n onApply?: (value: DateRange | null) => void;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n}\nconst empty = (): DateRange => ({ start: '', end: '' });\nfunction CalendarContent({\n onPending,\n dir,\n children,\n}: {\n onPending: (pending: boolean) => void;\n dir?: 'ltr' | 'rtl';\n children: ReactNode;\n}) {\n const state = useContext(RangeCalendarStateContext);\n const { direction } = useLocale();\n const pending = !!state?.anchorDate;\n useEffect(() => onPending(pending), [pending, onPending]);\n // Some WebKit Intl versions ignore an explicit locale script when inferring direction.\n // Keep the headless calendar's focus methods, overriding only mismatched horizontal keys.\n return (\n <div\n onKeyDownCapture={(event) => {\n if (\n !state ||\n !dir ||\n dir === direction ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey ||\n !['ArrowLeft', 'ArrowRight'].includes(event.key) ||\n !(event.target as HTMLElement).closest('.date-range__day')\n )\n return;\n event.preventDefault();\n event.stopPropagation();\n if ((event.key === 'ArrowRight') === (dir === 'rtl')) state.focusPreviousDay();\n else state.focusNextDay();\n }}\n >\n {children}\n </div>\n );\n}\nfunction DateRangePickerRoot(props: DateRangePickerProps) {\n const {\n label,\n locale = 'id-ID',\n dir,\n size = 'md',\n variant = 'primary',\n fullWidth = true,\n hideLabel = false,\n visibleMonths = 2,\n weekStartsOn = 1,\n display = 'auto',\n showInputs = true,\n presets = [],\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n } = props;\n const labels = { ...dateRangeLabels(locale), ...props.labels };\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const committed = props.value !== undefined ? props.value : local;\n const start = committed?.start ?? '',\n end = committed?.end ?? '';\n const [draft, setDraft] = useState<DateRange>({ start, end });\n const initialFocus = () => {\n const date = asDate(start) ?? asDate(props.referenceDate) ?? asDate(currentDate())!;\n const min = asDate(props.minDate),\n max = asDate(props.maxDate);\n return min && date.compare(min) < 0 ? min : max && date.compare(max) > 0 ? max : date;\n };\n const [focused, setFocused] = useState(initialFocus);\n const [formError, setFormError] = useState(false);\n const [pending, setPending] = useState(false),\n [calendarKey, setCalendarKey] = useState(0);\n const trigger = useRef<HTMLButtonElement>(null);\n const [mobile, setMobile] = useState(false);\n useEffect(() => {\n const query = window.matchMedia('(max-width: 640px)');\n const change = () => setMobile(query.matches);\n change();\n query.addEventListener('change', change);\n return () => query.removeEventListener('change', change);\n }, []);\n const isDialog = display === 'dialog' || (display === 'auto' && mobile);\n const id = useId();\n const disclosure = useDisclosure(props.open, props.defaultOpen, props.onOpenChange);\n const visible = disclosure.visible && !isDisabled;\n useEffect(() => setDraft({ start, end }), [start, end]);\n function replaceDraft(next: DateRange) {\n setDraft(next);\n setPending(false);\n setCalendarKey((k) => k + 1);\n }\n function updateDraft(next: DateRange) {\n if (isDisabled || isReadOnly) return;\n setDraft(next);\n const value = next.start || next.end ? next : null;\n if (props.commitMode === 'immediate' && !rangeError(value, props)) {\n setLocal(value);\n setFormError(false);\n props.onChange?.(value);\n }\n }\n function clearDraft() {\n replaceDraft(empty());\n if (props.commitMode === 'immediate' && !isDisabled && !isReadOnly) {\n setLocal(null);\n props.onChange?.(null);\n }\n }\n function resetDraft() {\n replaceDraft({ start, end });\n setFocused(initialFocus());\n }\n function changeOpen(next: boolean) {\n if (isDisabled && next) return;\n resetDraft();\n disclosure.change(next);\n }\n const nullableDraft = draft.start || draft.end ? draft : null;\n const errorCode = pending\n ? 'incomplete'\n : (rangeError(nullableDraft, props) ?? (isRequired && !nullableDraft ? 'required' : null));\n const error = errorCode ? labels[errorCode] : undefined;\n const committedError = rangeError(committed, props);\n const outerError = props.isInvalid || committedError || formError;\n const matchingPreset = presets.find((p) => p.value.start === start && p.value.end === end);\n const text = committed\n ? (props.formatRange?.(committed, locale) ??\n matchingPreset?.label ??\n rangeText(committed, locale))\n : labels.placeholder;\n const feedbackId = outerError\n ? `${id}-error`\n : props.description\n ? `${id}-description`\n : undefined;\n function apply() {\n if (isDisabled || isReadOnly || errorCode) return;\n const next = nullableDraft ? { ...nullableDraft } : null;\n setLocal(next);\n setFormError(false);\n props.onChange?.(next);\n props.onApply?.(next);\n disclosure.change(false);\n }\n function edit(part: 'start' | 'end', value: string) {\n if (isDisabled || isReadOnly) return;\n replaceDraft({ ...draft, [part]: value });\n updateDraft({ ...draft, [part]: value });\n if (asDate(value)) setFocused(asDate(value)!);\n }\n const calendarValue =\n asDate(draft.start) && asDate(draft.end) && draft.start <= draft.end\n ? { start: asDate(draft.start)!, end: asDate(draft.end)! }\n : null;\n const calendar = (\n <RangeCalendar\n dir={dir}\n key={calendarKey}\n className={partClass('date-range__calendar', props.classNames?.calendar)}\n aria-label={labels.title}\n value={calendarValue}\n focusedValue={focused}\n onFocusChange={setFocused}\n createCalendar={() => new GregorianCalendar()}\n onChange={(v) => {\n if (v) updateDraft({ start: v.start.toString(), end: v.end.toString() });\n }}\n visibleDuration={{ months: visibleMonths }}\n firstDayOfWeek={weekStartsOn === 1 ? 'mon' : 'sun'}\n pageBehavior=\"single\"\n minValue={asDate(props.minDate)}\n maxValue={asDate(props.maxDate)}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isDateUnavailable={\n props.isDateUnavailable ? (d) => props.isDateUnavailable!(d.toString()) : undefined\n }\n >\n <CalendarContent onPending={setPending} dir={dir}>\n <div className={partClass('date-range__navigation', props.classNames?.navigation)}>\n <Button\n slot=\"previous\"\n className={partClass(\n 'date-range__nav date-range__nav--previous',\n props.classNames?.navigationButton,\n )}\n aria-label={labels.previousMonth}\n >\n <ChevronIcon />\n </Button>\n <Button\n slot=\"next\"\n className={partClass(\n 'date-range__nav date-range__nav--next',\n props.classNames?.navigationButton,\n )}\n aria-label={labels.nextMonth}\n >\n <ChevronIcon />\n </Button>\n </div>\n <div className={partClass('date-range__months', props.classNames?.months)}>\n {Array.from({ length: visibleMonths }, (_, i) => (\n <div className={partClass('date-range__month', props.classNames?.month)} key={i}>\n <CalendarViewHeader\n offset={i}\n onNavigate={setFocused}\n locale={locale}\n minDate={props.minDate}\n maxDate={props.maxDate}\n isDisabled={isDisabled}\n className={props.classNames?.heading}\n />\n <CalendarGrid\n offset={{ months: i }}\n className={partClass('date-range__grid', props.classNames?.grid)}\n weekdayStyle=\"short\"\n >\n <CalendarGridHeader>\n {(day) => (\n <CalendarHeaderCell\n className={partClass('date-range__weekday', props.classNames?.weekday)}\n >\n {day}\n </CalendarHeaderCell>\n )}\n </CalendarGridHeader>\n <CalendarGridBody>\n {(date) => (\n <CalendarCell\n date={date}\n className={partClass('date-range__day', props.classNames?.day)}\n />\n )}\n </CalendarGridBody>\n </CalendarGrid>\n </div>\n ))}\n </div>\n </CalendarContent>\n </RangeCalendar>\n );\n const panel = (\n <div\n className={partClass('date-range__content', props.classNames?.content)}\n data-readonly={isReadOnly || undefined}\n >\n <header className={partClass('date-range__intro temporal__sr-only', props.classNames?.intro)}>\n <h2 id={`${id}-title`} className={props.classNames?.title}>\n {labels.title}\n </h2>\n <p\n className={partClass('date-range__summary', props.classNames?.summary)}\n aria-live=\"polite\"\n >\n {pending ? labels.incomplete : rangeText(nullableDraft, locale) || labels.incomplete}\n </p>\n </header>\n <div className={partClass('date-range__body', props.classNames?.body)}>\n <div className={partClass('date-range__main', props.classNames?.main)}>\n {showInputs && (\n <div className={partClass('date-range__inputs', props.classNames?.inputs)}>\n {(['start', 'end'] as const).map((part) => (\n <label\n key={part}\n className={partClass('date-range__field', props.classNames?.field)}\n >\n <span className={props.classNames?.inputLabel}>{labels[part]}</span>\n <input\n className={props.classNames?.input}\n type=\"date\"\n form=\"\"\n value={draft[part]}\n min={props.minDate}\n max={props.maxDate}\n disabled={isDisabled}\n readOnly={isReadOnly}\n aria-invalid={!!errorCode}\n aria-describedby={error ? `${id}-draft-error` : undefined}\n onChange={(e) => edit(part, e.target.value)}\n />\n </label>\n ))}\n </div>\n )}\n {props.showMonthYearPicker && (\n <div className={partClass('date-range__jump', props.classNames?.jump)}>\n <label>\n <span>{locale.startsWith('id') ? 'Bulan' : 'Month'}</span>\n <select\n className={props.classNames?.monthSelect}\n form=\"\"\n disabled={isDisabled}\n aria-label={locale.startsWith('id') ? 'Bulan' : 'Month'}\n value={focused.month}\n onChange={(e) => setFocused(focused.set({ month: Number(e.target.value) }))}\n >\n {Array.from({ length: 12 }, (_, i) => (\n <option key={i} value={i + 1}>\n {new Intl.DateTimeFormat(locale, {\n month: 'long',\n timeZone: 'UTC',\n calendar: 'gregory',\n }).format(focused.set({ month: i + 1, day: 1 }).toDate('UTC'))}\n </option>\n ))}\n </select>\n </label>\n <label>\n <span>{locale.startsWith('id') ? 'Tahun' : 'Year'}</span>\n <input\n className={props.classNames?.yearInput}\n key={focused.year}\n type=\"number\"\n form=\"\"\n disabled={isDisabled}\n min={asDate(props.minDate)?.year ?? 1}\n max={asDate(props.maxDate)?.year ?? 9999}\n defaultValue={focused.year}\n onBlur={(e) => {\n const year = Number(e.target.value);\n if (Number.isInteger(year) && year >= 1 && year <= 9999)\n setFocused(focused.set({ year }));\n else e.target.value = String(focused.year);\n }}\n />\n </label>\n </div>\n )}\n {calendar}\n <div\n className={partClass('date-range__validation', props.classNames?.validation)}\n aria-live=\"polite\"\n >\n {error && (\n <p id={`${id}-draft-error`} role=\"alert\" className={props.classNames?.draftError}>\n {error}\n </p>\n )}\n </div>\n </div>\n </div>\n {props.showActions !== false && (\n <footer className={partClass('date-range__footer', props.classNames?.footer)}>\n <button\n type=\"button\"\n className={partClass('button button--ghost button--sm', props.classNames?.clearButton)}\n disabled={isDisabled || isReadOnly}\n onClick={clearDraft}\n >\n {labels.clear}\n </button>\n <div>\n <button\n type=\"button\"\n className={partClass(\n 'button button--secondary button--sm',\n props.classNames?.cancelButton,\n )}\n onClick={() => changeOpen(false)}\n >\n {labels.cancel}\n </button>\n {props.commitMode !== 'immediate' && (\n <button\n type=\"button\"\n className={partClass(\n 'button button--primary button--sm',\n props.classNames?.applyButton,\n )}\n disabled={isDisabled || isReadOnly || !!errorCode}\n onClick={apply}\n >\n {labels.apply}\n </button>\n )}\n </div>\n </footer>\n )}\n </div>\n );\n return (\n <I18nProvider\n locale={new Intl.Locale(locale, {\n calendar: 'gregory',\n ...(dir ? { script: dir === 'rtl' ? 'Arab' : 'Latn' } : {}),\n }).toString()}\n >\n <DateRangeCompositionContext.Provider\n value={{\n id,\n text,\n labels,\n draft,\n disabled: isDisabled,\n readOnly: isReadOnly,\n invalid: !!errorCode,\n feedbackId,\n min: props.minDate,\n max: props.maxDate,\n dir,\n trigger,\n calendar,\n panel,\n edit,\n apply,\n clear: clearDraft,\n cancel: () => changeOpen(false),\n }}\n >\n <div\n className={[\n 'date-range',\n props.classNames?.root,\n props.className,\n `date-range--${size}`,\n `date-range--${variant}`,\n !fullWidth && 'date-range--fit',\n hideLabel && 'date-range--label-hidden',\n props.triggerDisplay === 'icon' && 'date-range--icon-trigger',\n ]\n .filter(Boolean)\n .join(' ')}\n style={props.style}\n dir={dir}\n data-disabled={isDisabled || undefined}\n >\n <span\n id={`${id}-label`}\n className={partClass('date-range__label', props.classNames?.label)}\n >\n {label}\n {isRequired && <span aria-hidden=\"true\"> *</span>}\n </span>\n {props.children ? (\n <DialogTrigger isOpen={visible} onOpenChange={changeOpen}>\n {props.children}\n </DialogTrigger>\n ) : display === 'inline' ? (\n <section\n className={partClass('date-range__panel date-range__inline', props.classNames?.panel)}\n aria-labelledby={`${id}-title`}\n dir={dir}\n >\n {panel}\n </section>\n ) : (\n <DialogTrigger isOpen={visible} onOpenChange={changeOpen}>\n <Button\n ref={trigger}\n className={partClass('date-range__trigger', props.classNames?.trigger)}\n isDisabled={isDisabled}\n aria-labelledby={`${id}-label ${id}-value`}\n aria-describedby={feedbackId}\n aria-invalid={!!outerError}\n >\n <svg\n className={partClass('date-range__icon', props.classNames?.icon)}\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n >\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\" />\n <path d=\"M7 3v4m10-4v4M3 10h18\" />\n </svg>\n <span\n id={`${id}-value`}\n className={partClass('date-range__value', props.classNames?.value)}\n data-placeholder={!committed || undefined}\n >\n {text}\n </span>\n <ChevronIcon\n className={partClass('date-range__chevron', props.classNames?.chevron)}\n />\n </Button>\n {isDialog ? (\n <ModalOverlay className=\"temporal-picker__overlay\">\n <Modal className=\"date-range__panel temporal-picker__modal\">\n <Dialog aria-labelledby={`${id}-title`} className=\"date-range__dialog\">\n {panel}\n </Dialog>\n </Modal>\n </ModalOverlay>\n ) : (\n <Popover\n className={partClass('date-range__panel', props.classNames?.panel)}\n placement=\"bottom start\"\n offset={8}\n containerPadding={16}\n dir={dir}\n >\n <Dialog\n className={partClass('date-range__dialog', props.classNames?.dialog)}\n aria-labelledby={`${id}-title`}\n >\n {panel}\n </Dialog>\n </Popover>\n )}\n </DialogTrigger>\n )}\n {props.description && (\n <span\n id={`${id}-description`}\n className={partClass('input__description', props.classNames?.description)}\n >\n {props.description}\n </span>\n )}\n {outerError && (\n <span\n id={`${id}-error`}\n className={partClass('input__error', props.classNames?.error)}\n role=\"alert\"\n >\n {props.errorMessage ?? (committedError ? labels[committedError] : labels.required)}\n </span>\n )}\n {props.name && (\n <>\n <input\n type=\"hidden\"\n name={`${props.name}.start`}\n value={start}\n disabled={isDisabled}\n />\n <input type=\"hidden\" name={`${props.name}.end`} value={end} disabled={isDisabled} />\n </>\n )}\n <SelectionValidation\n hasValue={!!committed && !committedError}\n required={isRequired || !!committedError}\n disabled={isDisabled}\n onInvalid={() => {\n setFormError(true);\n trigger.current?.focus();\n }}\n onResetStart={() => {}}\n onReset={(cancelled) => {\n if (!cancelled) {\n if (props.value === undefined) setLocal(props.defaultValue ?? null);\n setFormError(false);\n changeOpen(false);\n }\n }}\n />\n </div>\n </DateRangeCompositionContext.Provider>\n </I18nProvider>\n );\n}\n\nexport const DateRangePicker = /* @__PURE__ */ Object.assign(DateRangePickerRoot, {\n Root: DateRangePickerRoot,\n Trigger: DateRangeTrigger,\n Value: DateRangeValue,\n Indicator: DateRangeIndicator,\n Popover: DateRangePopover,\n Content: DateRangeContent,\n Calendar: DateRangeCalendar,\n Input: DateRangeInput,\n ApplyButton: DateRangeApplyButton,\n ClearButton: DateRangeClearButton,\n CancelButton: DateRangeCancelButton,\n});\n","export type ToastTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';\nexport type ToastPlacement =\n 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end';\nexport type ToastCloseReason =\n 'timeout' | 'dismiss' | 'action' | 'cancel' | 'swipe' | 'clear' | 'unmount';\nexport interface ToastAction {\n label: string;\n altText: string;\n onAction: () => void;\n dismiss?: boolean;\n}\nexport interface ToastOptions {\n id?: string;\n title: string;\n description?: string;\n tone?: ToastTone;\n duration?: number;\n isLoading?: boolean;\n action?: ToastAction;\n cancel?: ToastAction;\n onClose?: (reason: ToastCloseReason) => void;\n}\nexport interface ToastEntry extends Readonly<ToastOptions> {\n readonly id: string;\n readonly tone: ToastTone;\n readonly duration: number;\n readonly isLoading: boolean;\n readonly generation: number;\n readonly state: 'open' | 'closing';\n readonly createdAt: number;\n readonly visibleAt: number | null;\n readonly remaining: number;\n readonly paused: boolean;\n}\nexport interface ToastManagerOptions {\n maxVisible?: number;\n maxPending?: number;\n duration?: number;\n exitDuration?: number;\n}\ntype ToastMessage = string | ToastOptions;\nexport interface ToastPromiseMessages<T> {\n loading: ToastMessage;\n success: ToastMessage | ((value: T) => ToastMessage);\n error: ToastMessage | ((error: unknown) => ToastMessage);\n}\nexport interface ToastManager {\n add(options: ToastOptions): string | null;\n update(id: string, options: Partial<ToastOptions>): boolean;\n dismiss(id: string, reason?: ToastCloseReason): void;\n clear(reason?: ToastCloseReason): void;\n pause(reason: string): void;\n resume(reason: string): void;\n attach(): () => void;\n dispose(): void;\n subscribe(listener: () => void): () => void;\n getSnapshot(): readonly ToastEntry[];\n getServerSnapshot(): readonly ToastEntry[];\n promise<T>(\n promise: Promise<T>,\n messages: ToastPromiseMessages<T>,\n options?: Partial<ToastOptions>,\n ): { id: string | null; promise: Promise<T> };\n}\n\ninterface RecordState {\n entry: ToastEntry;\n timer?: ReturnType<typeof setTimeout>;\n startedAt: number | null;\n exitRemaining: number;\n}\nconst EMPTY: readonly ToastEntry[] = Object.freeze([]);\nconst messageOptions = (message: ToastMessage): ToastOptions =>\n typeof message === 'string' ? { title: message } : message;\nconst milliseconds = (value: number, fallback: number) =>\n Number.isFinite(value) && value >= 0 ? value : fallback;\n\n/** Complete required notifications/cleanup before reporting user callback failures. */\nconst complete = (operations: readonly (() => void)[]) => {\n const errors: unknown[] = [];\n for (const operation of operations) {\n try {\n operation();\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length === 1) throw errors[0];\n if (errors.length > 1) throw new AggregateError(errors, 'Toast lifecycle callbacks failed.');\n};\n\n/** Create per application/provider; no browser globals or timers are used until attached. */\nexport function createToastManager(options: ToastManagerOptions = {}): ToastManager {\n const maxVisible = Math.max(1, Math.floor(options.maxVisible ?? 3));\n const maxPending = Math.max(0, Math.floor(options.maxPending ?? 50));\n const duration = milliseconds(options.duration ?? 5000, 5000);\n const exitDuration = milliseconds(options.exitDuration ?? 200, 200);\n const records = new Map<string, RecordState>();\n const visible: string[] = [];\n const pending: string[] = [];\n const listeners = new Set<() => void>();\n const pauses = new Map<string, number>();\n let snapshot = EMPTY;\n let attached = false;\n let disposed = false;\n let sequence = 0;\n let generation = 0;\n const paused = () => !attached || pauses.size > 0;\n const freeze = (entry: ToastEntry): ToastEntry =>\n Object.freeze({\n ...entry,\n action: entry.action ? Object.freeze({ ...entry.action }) : undefined,\n cancel: entry.cancel ? Object.freeze({ ...entry.cancel }) : undefined,\n });\n const publish = () => {\n const next = visible.map((id) => records.get(id)!.entry);\n if (next.length === snapshot.length && next.every((entry, index) => entry === snapshot[index]))\n return;\n snapshot = Object.freeze(next);\n complete([...listeners]);\n };\n const stop = (record: RecordState) => {\n if (record.timer !== undefined) clearTimeout(record.timer);\n record.timer = undefined;\n if (record.startedAt !== null) {\n const elapsed = Math.max(0, Date.now() - record.startedAt);\n if (record.entry.state === 'closing')\n record.exitRemaining = Math.max(0, record.exitRemaining - elapsed);\n else\n record.entry = freeze({\n ...record.entry,\n remaining: Math.max(0, record.entry.remaining - elapsed),\n });\n }\n record.startedAt = null;\n };\n const promote = () => {\n while (visible.length < maxVisible && pending.length) {\n const id = pending.shift()!;\n const record = records.get(id)!;\n visible.push(id);\n record.entry = freeze({ ...record.entry, visibleAt: Date.now(), paused: paused() });\n start(record);\n }\n };\n const remove = (id: string) => {\n const record = records.get(id);\n if (!record) return;\n stop(record);\n records.delete(id);\n const index = visible.indexOf(id);\n if (index >= 0) visible.splice(index, 1);\n const waiting = pending.indexOf(id);\n if (waiting >= 0) pending.splice(waiting, 1);\n promote();\n publish();\n };\n const start = (record: RecordState) => {\n if (!attached || record.entry.visibleAt === null || record.timer !== undefined) return;\n const closing = record.entry.state === 'closing';\n if (!closing && (paused() || record.entry.isLoading || record.entry.duration === 0)) return;\n record.startedAt = Date.now();\n record.timer = setTimeout(\n () => {\n record.timer = undefined;\n record.startedAt = null;\n if (closing) remove(record.entry.id);\n else manager.dismiss(record.entry.id, 'timeout');\n },\n closing ? record.exitRemaining : record.entry.remaining,\n );\n };\n const refreshPause = () => {\n for (const id of visible) {\n const record = records.get(id)!;\n stop(record);\n record.entry = freeze({\n ...record.entry,\n paused: paused() || record.entry.state === 'closing',\n });\n start(record);\n }\n publish();\n };\n const update = (\n id: string,\n changes: Partial<ToastOptions>,\n invalidate: boolean,\n onGeneration?: (value: number) => void,\n ) => {\n const record = records.get(id);\n if (!record || record.entry.state === 'closing' || disposed) return false;\n stop(record);\n const before = record.entry;\n const settled = before.isLoading && changes.isLoading === false;\n const nextDuration =\n changes.duration !== undefined\n ? milliseconds(changes.duration, duration)\n : settled\n ? duration\n : before.duration;\n record.entry = freeze({\n ...before,\n ...changes,\n id,\n tone: changes.tone ?? before.tone,\n duration: nextDuration,\n isLoading: changes.isLoading ?? before.isLoading,\n remaining: changes.duration !== undefined || settled ? nextDuration : before.remaining,\n generation: invalidate ? ++generation : before.generation,\n });\n onGeneration?.(record.entry.generation);\n start(record);\n publish();\n return true;\n };\n const add = (value: ToastOptions, onGeneration?: (value: number) => void): string | null => {\n if (disposed) return null;\n if (value.id !== undefined && records.has(value.id))\n return update(value.id, value, true, onGeneration) ? value.id : null;\n if (visible.length >= maxVisible && pending.length >= maxPending) return null;\n let id = value.id;\n if (id === undefined) {\n do {\n id = `toast-${++sequence}`;\n } while (records.has(id));\n }\n const entry = freeze({\n ...value,\n id,\n tone: value.tone ?? 'neutral',\n duration: milliseconds(value.duration ?? duration, duration),\n isLoading: value.isLoading ?? false,\n generation: ++generation,\n state: 'open',\n createdAt: Date.now(),\n visibleAt: visible.length < maxVisible ? Date.now() : null,\n remaining: milliseconds(value.duration ?? duration, duration),\n paused: paused(),\n });\n const record: RecordState = { entry, startedAt: null, exitRemaining: exitDuration };\n records.set(id, record);\n if (visible.length < maxVisible) {\n visible.push(id);\n start(record);\n } else pending.push(id);\n onGeneration?.(entry.generation);\n publish();\n return id;\n };\n const manager: ToastManager = {\n add,\n update: (id, changes) => update(id, changes, true),\n dismiss(id, reason = 'dismiss') {\n const record = records.get(id);\n if (!record || record.entry.state === 'closing') return;\n stop(record);\n record.entry = freeze({\n ...record.entry,\n state: 'closing',\n paused: true,\n remaining: reason === 'timeout' ? 0 : record.entry.remaining,\n });\n complete([\n () => {\n if (record.entry.visibleAt === null) remove(id);\n else {\n start(record);\n publish();\n }\n },\n () => record.entry.onClose?.(reason),\n ]);\n },\n clear(reason = 'clear') {\n // Remove waiting entries first so visible exits cannot promote cleared work.\n complete([...pending, ...visible].map((id) => () => manager.dismiss(id, reason)));\n },\n pause(reason) {\n if (disposed) return;\n pauses.set(reason, (pauses.get(reason) ?? 0) + 1);\n if (pauses.size === 1 && pauses.get(reason) === 1) refreshPause();\n },\n resume(reason) {\n const count = pauses.get(reason);\n if (!count || disposed) return;\n if (count === 1) pauses.delete(reason);\n else pauses.set(reason, count - 1);\n if (!pauses.size) refreshPause();\n },\n attach() {\n if (disposed) throw new Error('Cannot attach a disposed ToastManager.');\n if (attached) throw new Error('A ToastManager may attach to only one provider.');\n attached = true;\n try {\n refreshPause();\n } catch (error) {\n attached = false;\n // Rollback also publishes the detached snapshot; report all subscriber failures.\n complete([\n () => {\n throw error;\n },\n refreshPause,\n ]);\n }\n let detached = false;\n return () => {\n if (detached || disposed) return;\n detached = true;\n attached = false;\n refreshPause();\n };\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n attached = false;\n const closing = [...records.values()].filter((record) => record.entry.state === 'open');\n for (const record of records.values()) stop(record);\n records.clear();\n visible.length = 0;\n pending.length = 0;\n pauses.clear();\n complete([\n publish,\n () => listeners.clear(),\n ...closing.map((record) => () => record.entry.onClose?.('unmount')),\n ]);\n },\n subscribe(listener) {\n if (!disposed) listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n getSnapshot: () => snapshot,\n getServerSnapshot: () => EMPTY,\n promise(task, messages, promiseOptions = {}) {\n let expected: number | undefined;\n const id = add(\n {\n ...promiseOptions,\n ...messageOptions(messages.loading),\n isLoading: true,\n },\n (value) => {\n expected = value;\n },\n );\n const settle = (message: ToastMessage | (() => ToastMessage), tone: ToastTone) => {\n if (\n id === null ||\n records.get(id)?.entry.generation !== expected ||\n records.get(id)?.entry.state !== 'open'\n )\n return;\n const content = typeof message === 'function' ? message() : message;\n // Result factories may reentrantly update, dismiss, dispose, or reuse this ID.\n if (\n records.get(id)?.entry.generation !== expected ||\n records.get(id)?.entry.state !== 'open'\n )\n return;\n update(\n id,\n {\n tone,\n duration: promiseOptions.duration ?? duration,\n ...messageOptions(content),\n isLoading: false,\n },\n false,\n );\n };\n return {\n id,\n promise: task.then(\n (value) => {\n const message = messages.success;\n settle(typeof message === 'function' ? () => message(value) : message, 'success');\n return value;\n },\n (error: unknown) => {\n const message = messages.error;\n settle(typeof message === 'function' ? () => message(error) : message, 'danger');\n throw error;\n },\n ),\n };\n },\n };\n return manager;\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport {\n createContext,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useSyncExternalStore,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type HTMLAttributes,\n type ComponentProps,\n} from 'react';\nimport {\n Button,\n I18nProvider,\n Text,\n UNSTABLE_Toast as AriaToast,\n UNSTABLE_ToastContent as ToastContent,\n UNSTABLE_ToastList as ToastList,\n UNSTABLE_ToastQueue as ToastQueue,\n UNSTABLE_ToastRegion as ToastRegion,\n} from 'react-aria-components';\nimport {\n createToastManager,\n type ToastAction,\n type ToastEntry,\n type ToastManager,\n type ToastPlacement,\n} from './toast-model.js';\n\n/** Keeps upstream accessibility/focus behavior while Kazee owns every timer and queue decision. */\nclass QueueAdapter extends ToastQueue<ToastEntry> {\n private regionPaused = false;\n constructor(private manager: ToastManager) {\n super();\n this.refresh();\n }\n private refresh() {\n this.visibleToasts = this.manager\n .getSnapshot()\n .map((content) => ({ key: content.id, content }));\n }\n override subscribe(listener: () => void) {\n return this.manager.subscribe(() => {\n this.refresh();\n listener();\n });\n }\n override add(content: ToastEntry): string {\n return this.manager.add(content) ?? '';\n }\n override close(key: string) {\n this.manager.dismiss(key);\n }\n override clear() {\n this.manager.clear();\n }\n override pauseAll() {\n if (!this.regionPaused) {\n this.regionPaused = true;\n this.manager.pause('region');\n }\n }\n override resumeAll() {\n if (this.regionPaused) {\n this.regionPaused = false;\n this.manager.resume('region');\n }\n }\n}\n\ninterface ToastContextValue {\n manager: ToastManager;\n closeLabel: string;\n placement: ToastPlacement;\n dir: 'ltr' | 'rtl';\n showProgress: boolean;\n showCloseButton: boolean;\n swipeThreshold: number;\n restoreFocus: () => void;\n}\nconst ToastContext = createContext<ToastContextValue | null>(null);\nexport interface ToastProviderProps extends StylingProps<'root' | 'list'> {\n children?: ReactNode;\n manager?: ToastManager;\n placement?: ToastPlacement;\n label?: string;\n closeLabel?: string;\n /** Modifier names followed by a key. An empty array disables the shortcut. */\n hotkey?: readonly string[];\n dir?: 'ltr' | 'rtl';\n showProgress?: boolean;\n /** Show the dismiss button. Hidden by default; timers and keyboard dismissal still work. */\n showCloseButton?: boolean;\n swipeThreshold?: number;\n /** Customize presentation with the exported Toast component, retaining region behavior. */\n renderToast?: (entry: ToastEntry) => ReactNode;\n}\n\nexport function ToastProvider({\n className,\n classNames,\n style,\n children,\n manager: suppliedManager,\n placement = 'bottom-end',\n label = 'Notifikasi / Notifications',\n closeLabel = 'Tutup notifikasi / Close notification',\n hotkey = ['Alt', 't'],\n dir = 'ltr',\n showProgress = false,\n showCloseButton = false,\n swipeThreshold = 50,\n renderToast,\n}: ToastProviderProps) {\n const [ownedManager] = useState(() => createToastManager());\n const manager = suppliedManager ?? ownedManager;\n const queue = useMemo(() => new QueueAdapter(manager), [manager]);\n const region = useRef<HTMLDivElement>(null);\n const entries = useSyncExternalStore(\n manager.subscribe,\n manager.getSnapshot,\n manager.getServerSnapshot,\n );\n const positions = useRef(new Map<string, number>());\n useLayoutEffect(() => {\n const nodes = region.current?.querySelectorAll<HTMLElement>('.toast');\n const previous = positions.current;\n const next = new Map<string, number>();\n const animations: Animation[] = [];\n const regionTop = region.current?.getBoundingClientRect().top ?? 0;\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n for (const node of nodes ?? []) {\n const id = node.dataset.toastId;\n if (!id) continue;\n // Fixed bottom placement changes the region origin as its height grows.\n // Include that origin so a stationary toast does not falsely animate.\n const top = node.offsetTop + regionTop;\n next.set(id, top);\n const before = previous.get(id);\n if (\n before !== undefined &&\n before !== top &&\n node.dataset.state === 'open' &&\n !reducedMotion &&\n node.animate\n ) {\n const style = getComputedStyle(node);\n const token = style.getPropertyValue('--ds-motion-duration-normal').trim();\n const duration = token.endsWith('ms') ? parseFloat(token) : parseFloat(token) * 1000;\n animations.push(\n node.animate([{ translate: `0 ${before - top}px` }, { translate: '0 0' }], {\n duration: Number.isFinite(duration) ? duration : 160,\n easing: style.getPropertyValue('--ds-motion-ease-standard').trim() || 'ease-out',\n }),\n );\n }\n }\n positions.current = next;\n return () => {\n for (const animation of animations) animation.cancel();\n };\n }, [entries]);\n const lastFocused = useRef<HTMLElement | null>(null);\n const lifetime = useRef({ generation: 0 });\n const hotkeySignature = hotkey.join('+');\n useEffect(() => {\n const keys = hotkeySignature ? hotkeySignature.split('+') : [];\n const detach = manager.attach();\n let documentPaused = false;\n let windowPaused = false;\n const visibility = () => {\n if (document.hidden && !documentPaused) {\n documentPaused = true;\n manager.pause('document');\n } else if (!document.hidden && documentPaused) {\n documentPaused = false;\n manager.resume('document');\n }\n };\n const blur = () => {\n if (!windowPaused) {\n windowPaused = true;\n manager.pause('window');\n }\n };\n const focus = () => {\n if (windowPaused) {\n windowPaused = false;\n manager.resume('window');\n }\n };\n visibility();\n const keydown = (event: KeyboardEvent) => {\n if (event.defaultPrevented) return;\n if (event.key === 'Escape' && region.current?.contains(event.target as Node)) {\n const target = event.target as HTMLElement;\n if (target.closest('input,textarea,select,[contenteditable=\"true\"]')) return;\n const focused = target.closest<HTMLElement>('.toast[data-state=\"open\"]');\n const latest = [...manager.getSnapshot()].reverse().find((entry) => entry.state === 'open');\n const id = focused?.dataset.toastId ?? latest?.id;\n if (id) {\n event.preventDefault();\n event.stopPropagation();\n manager.dismiss(id);\n }\n return;\n }\n if (!keys.length || typeof event.key !== 'string') return;\n const key = keys[keys.length - 1].toLowerCase();\n const modifiers = keys.slice(0, -1).map((value) => value.toLowerCase());\n if (\n event.key.toLowerCase() === key &&\n event.altKey === modifiers.includes('alt') &&\n event.ctrlKey === modifiers.includes('control') &&\n event.metaKey === modifiers.includes('meta') &&\n event.shiftKey === modifiers.includes('shift')\n ) {\n const target = region.current?.querySelector<HTMLElement>('.toast[data-state=\"open\"]');\n if (target) {\n event.preventDefault();\n target.focus();\n }\n }\n };\n const focusIn = (event: FocusEvent) => {\n if (\n region.current?.contains(event.target as Node) &&\n !region.current.contains(event.relatedTarget as Node | null)\n )\n lastFocused.current = event.relatedTarget as HTMLElement | null;\n };\n document.addEventListener('focusin', focusIn);\n document.addEventListener('visibilitychange', visibility);\n document.addEventListener('keydown', keydown);\n window.addEventListener('blur', blur);\n window.addEventListener('focus', focus);\n return () => {\n document.removeEventListener('focusin', focusIn);\n document.removeEventListener('visibilitychange', visibility);\n document.removeEventListener('keydown', keydown);\n window.removeEventListener('blur', blur);\n window.removeEventListener('focus', focus);\n detach();\n if (documentPaused) manager.resume('document');\n if (windowPaused) manager.resume('window');\n queue.resumeAll();\n };\n }, [manager, hotkeySignature, queue]);\n useEffect(() => {\n const lifecycle = lifetime.current;\n const token = ++lifecycle.generation;\n return () => {\n // React StrictMode immediately mounts again; only a real unmount disposes owned state.\n queueMicrotask(() => {\n if (lifecycle.generation === token) ownedManager.dispose();\n });\n };\n }, [ownedManager]);\n const context = {\n manager,\n closeLabel,\n placement,\n dir,\n showProgress,\n showCloseButton,\n swipeThreshold,\n restoreFocus: () => {\n const next = region.current?.querySelector<HTMLElement>('.toast[data-state=\"open\"]');\n if (next) next.focus();\n else if (lastFocused.current?.isConnected) lastFocused.current.focus();\n },\n };\n return (\n <ToastContext.Provider value={context}>\n {children}\n <I18nProvider locale={dir === 'rtl' ? 'ar' : 'en'}>\n <ToastRegion\n queue={queue}\n ref={region}\n className={partClass(partClass('toast-region', classNames?.root), className)}\n style={style}\n data-placement={placement}\n aria-label={label}\n aria-keyshortcuts={hotkey.length ? hotkey.join('+') : undefined}\n >\n <ToastList<ToastEntry> className={partClass('toast-list', classNames?.list)}>\n {({ toast }) => (\n <>{renderToast ? renderToast(toast.content) : <Toast entry={toast.content} />}</>\n )}\n </ToastList>\n </ToastRegion>\n </I18nProvider>\n </ToastContext.Provider>\n );\n}\n\nexport function useToast(): ToastManager {\n const context = useContext(ToastContext);\n if (!context) throw new Error('useToast must be used within a ToastProvider.');\n return context.manager;\n}\nexport interface ToastProps extends StylingProps<\n | 'root'\n | 'indicator'\n | 'body'\n | 'title'\n | 'description'\n | 'actions'\n | 'action'\n | 'close'\n | 'progress'\n> {\n entry: ToastEntry;\n /** Override the provider's close button visibility for this toast. */\n showCloseButton?: boolean;\n /** Override the provider's progress visibility for this toast. */\n showProgress?: boolean;\n indicator?: ReactNode;\n children?: ReactNode;\n}\n\ninterface ToastPresentationState {\n entry: ToastEntry;\n closing: boolean;\n closeLabel: string;\n invoke: (cancel: boolean) => void;\n}\nconst ToastPresentationContext = createContext<ToastPresentationState | null>(null);\nfunction useToastPresentation() {\n const state = useContext(ToastPresentationContext);\n if (!state) throw new Error('Toast parts must be used inside Toast.Root.');\n return state;\n}\n\nexport function ToastRoot(props: ToastProps) {\n return <ToastRenderer {...props} composed />;\n}\nexport function ToastIndicator({ className, children, ...props }: HTMLAttributes<HTMLSpanElement>) {\n const { entry } = useToastPresentation();\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('toast__indicator', className)}>\n {children ?? <Indicator entry={entry} />}\n </span>\n );\n}\nexport function ToastBody({ className, ...props }: ComponentProps<typeof ToastContent>) {\n return (\n <ToastContent\n {...props}\n role=\"status\"\n aria-live=\"polite\"\n className={partClass('toast__body', className)}\n />\n );\n}\nexport function ToastTitle({ className, children, ...props }: ComponentProps<typeof Text>) {\n const { entry } = useToastPresentation();\n return (\n <Text {...props} slot=\"title\" className={partClass('toast__title', className)}>\n {children ?? entry.title}\n </Text>\n );\n}\nexport function ToastDescription({ className, children, ...props }: ComponentProps<typeof Text>) {\n const { entry } = useToastPresentation();\n if (!children && !entry.description) return null;\n return (\n <Text {...props} slot=\"description\" className={partClass('toast__description', className)}>\n {children ?? entry.description}\n </Text>\n );\n}\nexport function ToastActions({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('toast__actions', className)} />;\n}\nexport function ToastActionButton({\n className,\n children,\n cancel = false,\n onPress,\n ...props\n}: ComponentProps<typeof Button> & { cancel?: boolean }) {\n const state = useToastPresentation();\n const id = useId();\n const action = cancel ? state.entry.cancel : state.entry.action;\n if (!action) return null;\n return (\n <>\n <span id={id} hidden>\n {action.altText}\n </span>\n <Button\n {...props}\n aria-describedby={[props['aria-describedby'], id].filter(Boolean).join(' ')}\n isDisabled={props.isDisabled || state.closing}\n className={\n typeof className === 'function'\n ? (values) => partClass('toast__action', className(values))\n : partClass('toast__action', className)\n }\n onPress={(event) => {\n onPress?.(event);\n if (!state.closing) state.invoke(cancel);\n }}\n >\n {children ?? action.label}\n </Button>\n </>\n );\n}\nexport function ToastCloseButton({\n className,\n children = '×',\n ...props\n}: ComponentProps<typeof Button>) {\n const state = useToastPresentation();\n return (\n <Button\n {...props}\n slot=\"close\"\n aria-label={props['aria-label'] ?? state.closeLabel}\n isDisabled={props.isDisabled || state.closing}\n className={\n typeof className === 'function'\n ? (values) => partClass('toast__close', className(values))\n : partClass('toast__close', className)\n }\n >\n {children}\n </Button>\n );\n}\nexport function ToastProgress({ className, style, ...props }: HTMLAttributes<HTMLSpanElement>) {\n const { entry } = useToastPresentation();\n if (entry.duration <= 0 || entry.isLoading) return null;\n return (\n <span\n {...props}\n key={`${entry.generation}-${entry.remaining}-${entry.paused}`}\n className={partClass('toast__progress', className)}\n aria-hidden=\"true\"\n style={\n {\n ...style,\n '--toast-progress': entry.remaining / entry.duration,\n '--toast-remaining': `${entry.remaining}ms`,\n } as CSSProperties\n }\n />\n );\n}\nfunction CompactToast(props: ToastProps) {\n return <ToastRenderer {...props} />;\n}\nexport const Toast = /* @__PURE__ */ Object.assign(CompactToast, {\n Root: ToastRoot,\n Provider: ToastProvider,\n Indicator: ToastIndicator,\n Content: ToastBody,\n Title: ToastTitle,\n Description: ToastDescription,\n Actions: ToastActions,\n ActionButton: ToastActionButton,\n CloseButton: ToastCloseButton,\n Progress: ToastProgress,\n});\n\nfunction Indicator({ entry }: { entry: ToastEntry }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n aria-hidden=\"true\"\n >\n {entry.isLoading ? (\n <circle cx=\"12\" cy=\"12\" r=\"8\" strokeDasharray=\"36 14\" />\n ) : entry.tone === 'success' ? (\n <path d=\"m5 12 4 4L19 6\" />\n ) : entry.tone === 'warning' || entry.tone === 'danger' ? (\n <>\n <path d=\"m12 3 10 18H2L12 3Z\" />\n <path d=\"M12 9v5m0 3v1\" />\n </>\n ) : (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <path d=\"M12 10v7m0-11v1\" />\n </>\n )}\n </svg>\n );\n}\n\nfunction ToastRenderer({\n composed = false,\n style,\n classNames,\n entry,\n indicator,\n children,\n className,\n showCloseButton: closeOverride,\n showProgress: progressOverride,\n}: ToastProps & { composed?: boolean }) {\n const actionDescriptionId = useId();\n const cancelDescriptionId = useId();\n const context = useContext(ToastContext);\n if (!context) throw new Error('Toast must be used within a ToastProvider region.');\n const { manager, closeLabel, placement, dir, swipeThreshold, restoreFocus } = context;\n const showCloseButton = closeOverride ?? context.showCloseButton;\n const showProgress = progressOverride ?? context.showProgress;\n const ref = useRef<HTMLDivElement>(null);\n const drag = useRef<{\n x: number;\n y: number;\n id: number;\n cancelled: boolean;\n offset: number;\n } | null>(null);\n const [offset, setOffset] = useState(0);\n const [swipe, setSwipe] = useState<'move' | 'cancel' | 'end'>();\n const closing = entry.state === 'closing';\n const direction = (placement.endsWith('start') ? -1 : 1) * (dir === 'rtl' ? -1 : 1);\n useEffect(() => {\n if (closing && ref.current?.contains(document.activeElement)) restoreFocus?.();\n }, [closing, restoreFocus]);\n const action = (item: ToastAction, reason: 'action' | 'cancel') => {\n item.onAction();\n if (item.dismiss !== false) manager.dismiss(entry.id, reason);\n };\n const finishSwipe = (commit: boolean) => {\n const current = drag.current;\n drag.current = null;\n if (!current) return;\n if (current && !current.cancelled) manager.resume('swipe');\n if (commit && !current.cancelled && current.offset * direction >= swipeThreshold) {\n setSwipe('end');\n setOffset(current.offset);\n manager.dismiss(entry.id, 'swipe');\n } else {\n setSwipe('cancel');\n setOffset(0);\n }\n };\n useEffect(() => {\n const node = ref.current;\n if (!node) return;\n const handlers = {\n pointerdown: (event: PointerEvent) => {\n if (\n closing ||\n drag.current ||\n event.button !== 0 ||\n (event.target as HTMLElement).closest(\n 'button,a,input,textarea,select,[role=\"button\"],[contenteditable=\"true\"]',\n )\n )\n return;\n // WebKit starts native text selection/drag before a later pointermove can\n // establish a swipe. Preserve touch pan-y, but suppress mouse text dragging.\n if (event.pointerType === 'mouse') event.preventDefault();\n drag.current = {\n x: event.clientX,\n y: event.clientY,\n id: event.pointerId,\n cancelled: false,\n offset: 0,\n };\n ref.current?.setPointerCapture?.(event.pointerId);\n manager.pause('swipe');\n },\n selectstart: (event: Event) => {\n if (drag.current && !drag.current.cancelled) event.preventDefault();\n },\n dragstart: (event: Event) => {\n if (drag.current && !drag.current.cancelled) event.preventDefault();\n },\n pointermove: (event: PointerEvent) => {\n const current = drag.current;\n if (!current || current.id !== event.pointerId || current.cancelled) return;\n const x = event.clientX - current.x;\n const y = event.clientY - current.y;\n if (Math.abs(y) > Math.abs(x) && Math.abs(y) > 8) {\n current.cancelled = true;\n setOffset(0);\n manager.resume('swipe');\n return;\n }\n if (Math.abs(x) > 8) {\n current.offset = Math.max(0, x * direction) * direction;\n setSwipe('move');\n setOffset(current.offset);\n }\n },\n pointerup: () => finishSwipe(true),\n pointercancel: () => finishSwipe(false),\n lostpointercapture: () => {\n if (drag.current) finishSwipe(false);\n },\n };\n for (const [name, handler] of Object.entries(handlers))\n node.addEventListener(name, handler as EventListener);\n return () => {\n for (const [name, handler] of Object.entries(handlers))\n node.removeEventListener(name, handler as EventListener);\n };\n });\n useEffect(\n () => () => {\n if (drag.current) {\n const active = !drag.current.cancelled;\n drag.current = null;\n if (active) manager.resume('swipe');\n }\n },\n [manager],\n );\n return (\n <ToastPresentationContext.Provider\n value={{\n entry,\n closing,\n closeLabel,\n invoke: (cancel) => {\n const item = cancel ? entry.cancel : entry.action;\n if (item) action(item, cancel ? 'cancel' : 'action');\n },\n }}\n >\n <AriaToast\n toast={{ key: entry.id, content: entry }}\n ref={ref}\n className={partClass(partClass('toast', classNames?.root), className)}\n data-toast-id={entry.id}\n data-tone={entry.tone}\n data-has-close={showCloseButton || undefined}\n data-loading={entry.isLoading || undefined}\n data-state={entry.state}\n data-placement={placement}\n data-paused={entry.paused || undefined}\n data-swipe={swipe}\n inert={closing || undefined}\n aria-hidden={closing || undefined}\n style={\n { ...style, '--toast-swipe-x': `${offset}px`, touchAction: 'pan-y' } as CSSProperties\n }\n >\n {composed ? (\n children\n ) : (\n <>\n <span\n className={partClass('toast__indicator', classNames?.indicator)}\n aria-hidden=\"true\"\n >\n {indicator ?? <Indicator entry={entry} />}\n </span>\n <ToastContent\n className={partClass('toast__body', classNames?.body)}\n role=\"status\"\n aria-live=\"polite\"\n >\n <Text slot=\"title\" className={partClass('toast__title', classNames?.title)}>\n {entry.title}\n </Text>\n {entry.description && (\n <Text\n slot=\"description\"\n className={partClass('toast__description', classNames?.description)}\n >\n {entry.description}\n </Text>\n )}\n {children}\n {(entry.action || entry.cancel) && (\n <div className={partClass('toast__actions', classNames?.actions)}>\n {entry.action && (\n <span id={actionDescriptionId} hidden>\n {entry.action.altText}\n </span>\n )}\n {entry.cancel && (\n <span id={cancelDescriptionId} hidden>\n {entry.cancel.altText}\n </span>\n )}\n {entry.action && (\n <Button\n className={partClass('toast__action', classNames?.action)}\n aria-describedby={actionDescriptionId}\n isDisabled={closing}\n onPress={() => action(entry.action!, 'action')}\n >\n {entry.action.label}\n </Button>\n )}\n {entry.cancel && (\n <Button\n className={partClass('toast__action', classNames?.action)}\n data-cancel\n aria-describedby={cancelDescriptionId}\n isDisabled={closing}\n onPress={() => action(entry.cancel!, 'cancel')}\n >\n {entry.cancel.label}\n </Button>\n )}\n </div>\n )}\n </ToastContent>\n {showCloseButton && (\n <Button\n slot=\"close\"\n className={partClass('toast__close', classNames?.close)}\n aria-label={closeLabel}\n isDisabled={closing}\n >\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"m6 6 12 12M6 18 18 6\" />\n </svg>\n </Button>\n )}\n {showProgress && entry.duration > 0 && !entry.isLoading && (\n <span\n key={`${entry.generation}-${entry.remaining}-${entry.paused}`}\n className={partClass('toast__progress', classNames?.progress)}\n aria-hidden=\"true\"\n style={\n {\n '--toast-progress': entry.remaining / entry.duration,\n '--toast-remaining': `${entry.remaining}ms`,\n } as CSSProperties\n }\n />\n )}\n </>\n )}\n </AriaToast>\n </ToastPresentationContext.Provider>\n );\n}\n","import {\n parseDate,\n parseTime,\n parseDateTime,\n parseZonedDateTime,\n parseAbsolute,\n toZoned,\n toCalendarDateTime,\n} from '@internationalized/date';\n\nexport type TemporalKind = 'date' | 'time' | 'datetime';\nexport interface TemporalRange {\n start: string;\n end: string;\n}\nexport type TemporalError =\n 'invalid' | 'required' | 'incomplete' | 'order' | 'bounds' | 'unavailable' | 'step';\nexport interface TemporalConstraints {\n kind: TemporalKind;\n minDate?: string;\n maxDate?: string;\n minTime?: string;\n maxTime?: string;\n minDateTime?: string;\n maxDateTime?: string;\n isDateUnavailable?: (date: string) => boolean;\n isTimeUnavailable?: (time: string) => boolean;\n isRequired?: boolean;\n hourStep?: number;\n minuteStep?: number;\n secondStep?: number;\n granularity?: 'hour' | 'minute' | 'second';\n timeZone?: string;\n disambiguation?: 'compatible' | 'earlier' | 'later' | 'reject';\n}\n\n/** Wall time is resolved explicitly; DST gaps/overlaps reject by default. */\nexport function toZonedValue(\n value: string,\n timeZone = 'UTC',\n disambiguation: TemporalConstraints['disambiguation'] = 'reject',\n) {\n return toZoned(parseDateTime(value), timeZone, disambiguation).toString();\n}\nexport function toLocalValue(value: string, timeZone = 'UTC', seconds = false): string {\n if (!value) return '';\n const zoned = value.includes('[') ? parseZonedDateTime(value) : parseAbsolute(value, timeZone);\n // Normalize offset/bracket input to the requested display zone, preserving the instant.\n const display = parseAbsolute(zoned.toAbsoluteString(), timeZone);\n return toCalendarDateTime(display)\n .toString()\n .slice(0, seconds ? 19 : 16);\n}\nfunction orderedValue(value: string, kind: TemporalKind): number {\n if (kind === 'datetime')\n return (value.includes('[') ? parseZonedDateTime(value) : parseAbsolute(value, 'UTC'))\n .toDate()\n .getTime();\n if (kind === 'time') {\n const t = parseTime(value);\n return t.hour * 3600 + t.minute * 60 + t.second;\n }\n return parseDate(value).toDate('UTC').getTime();\n}\nfunction step(value: number | undefined) {\n if (value !== undefined && (!Number.isInteger(value) || value <= 0))\n throw new RangeError('Time steps must be positive integers.');\n return value ?? 1;\n}\nexport function temporalError(\n value: string | null,\n options: TemporalConstraints,\n): TemporalError | null {\n if (!value) return options.isRequired ? 'required' : null;\n let date = '',\n time = '';\n try {\n if (options.kind === 'date') {\n if (!/^(?!0000)\\d{4}-\\d{2}-\\d{2}$/.test(value) || parseDate(value).toString() !== value)\n return 'invalid';\n date = value;\n } else if (options.kind === 'time') {\n if (!/^\\d{2}:\\d{2}(:\\d{2})?$/.test(value)) return 'invalid';\n parseTime(value);\n time = value;\n } else {\n orderedValue(value, 'datetime');\n const local = toLocalValue(value, options.timeZone, true);\n date = local.slice(0, 10);\n time = local.slice(11);\n }\n if (\n date &&\n ((options.minDate && date < options.minDate) || (options.maxDate && date > options.maxDate))\n )\n return 'bounds';\n if (\n time &&\n ((options.minTime && orderedValue(time, 'time') < orderedValue(options.minTime, 'time')) ||\n (options.maxTime && orderedValue(time, 'time') > orderedValue(options.maxTime, 'time')))\n )\n return 'bounds';\n if (\n options.kind === 'datetime' &&\n ((options.minDateTime &&\n orderedValue(value, 'datetime') < orderedValue(options.minDateTime, 'datetime')) ||\n (options.maxDateTime &&\n orderedValue(value, 'datetime') > orderedValue(options.maxDateTime, 'datetime')))\n )\n return 'bounds';\n if (date && options.isDateUnavailable?.(date)) return 'unavailable';\n if (time && options.isTimeUnavailable?.(time)) return 'unavailable';\n if (time) {\n const t = parseTime(time);\n if (\n t.hour % step(options.hourStep) ||\n t.minute % step(options.minuteStep) ||\n t.second % step(options.secondStep)\n )\n return 'step';\n }\n return null;\n } catch {\n return 'invalid';\n }\n}\nexport function temporalRangeError(\n value: TemporalRange | null,\n options: TemporalConstraints,\n): TemporalError | null {\n if (!value || (!value.start && !value.end)) return options.isRequired ? 'required' : null;\n if (!value.start || !value.end) return 'incomplete';\n const error = temporalError(value.start, options) ?? temporalError(value.end, options);\n if (error) return error;\n if (orderedValue(value.start, options.kind) > orderedValue(value.end, options.kind))\n return 'order';\n if (options.kind !== 'time' && options.isDateUnavailable) {\n const first = parseDate(\n options.kind === 'date'\n ? value.start\n : toLocalValue(value.start, options.timeZone).slice(0, 10),\n );\n const last = parseDate(\n options.kind === 'date' ? value.end : toLocalValue(value.end, options.timeZone).slice(0, 10),\n );\n for (let day = first.add({ days: 1 }); day.compare(last) < 0; day = day.add({ days: 1 })) {\n if (options.isDateUnavailable(day.toString())) return 'unavailable';\n }\n }\n return null;\n}\n/** Project instant boundaries into the selected display zone for disabled calendar/time options. */\nexport function temporalDisplayBounds(options: TemporalConstraints, selectedDate?: string) {\n let minDate = options.minDate,\n maxDate = options.maxDate,\n minTime = options.minTime,\n maxTime = options.maxTime;\n if (options.kind === 'datetime') {\n try {\n const min = options.minDateTime\n ? toLocalValue(options.minDateTime, options.timeZone, true)\n : '',\n max = options.maxDateTime ? toLocalValue(options.maxDateTime, options.timeZone, true) : '';\n if (min) {\n const day = min.slice(0, 10);\n if (!minDate || day > minDate) minDate = day;\n if (\n selectedDate === day &&\n (!minTime || orderedValue(min.slice(11), 'time') > orderedValue(minTime, 'time'))\n )\n minTime = min.slice(11);\n }\n if (max) {\n const day = max.slice(0, 10);\n if (!maxDate || day < maxDate) maxDate = day;\n if (\n selectedDate === day &&\n (!maxTime || orderedValue(max.slice(11), 'time') < orderedValue(maxTime, 'time'))\n )\n maxTime = max.slice(11);\n }\n } catch {\n /* Invalid bounds are reported by temporalError; rendering still remains usable. */\n }\n }\n return { minDate, maxDate, minTime, maxTime };\n}\n/** Minute-granularity list; seconds are edited with TimeField/TimeClock to avoid 86k DOM options. */\nexport function timeChoices(options: TemporalConstraints): string[] {\n const hours = step(options.hourStep),\n minutes = options.granularity === 'hour' ? 60 : step(options.minuteStep ?? 30);\n const values: string[] = [];\n for (let hour = 0; hour < 24; hour += hours)\n for (let minute = 0; minute < 60; minute += minutes) {\n const value = `${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}`;\n if (!temporalError(value, options)) values.push(value);\n }\n return values;\n}\n/** User edits zero units hidden by the configured field granularity. */\nexport function normalizeTime(\n value: string,\n granularity: TemporalConstraints['granularity'] = 'minute',\n): string {\n const time = parseTime(value);\n return time\n .set({\n minute: granularity === 'hour' ? 0 : time.minute,\n second: granularity === 'second' ? time.second : 0,\n millisecond: 0,\n })\n .toString()\n .slice(0, granularity === 'second' ? 8 : 5);\n}\nexport function normalizeWallDateTime(\n value: string,\n granularity: TemporalConstraints['granularity'] = 'minute',\n): string {\n const date = parseDateTime(value);\n return date.toString().slice(0, 10) + 'T' + normalizeTime(date.toString().slice(11), granularity);\n}\n/** Keep the selected unit and choose the nearest complete valid time for the other units. */\nexport function resolveTimeUnit(\n value: string,\n part: 'hour' | 'minute' | 'second',\n selected: number,\n options: TemporalConstraints,\n): string | null {\n let initial;\n try {\n initial = parseTime(value || options.minTime || '00:00');\n } catch {\n initial = parseTime('00:00');\n }\n const desired = initial.set({ [part]: selected });\n let best: string | null = null,\n distance = Infinity;\n const hours = step(options.hourStep),\n minutes = step(options.minuteStep),\n seconds = step(options.secondStep);\n for (let hour = 0; hour < 24; hour += hours) {\n if (part === 'hour' && hour !== selected) continue;\n for (let minute = 0; minute < 60; minute += options.granularity === 'hour' ? 60 : minutes) {\n if (part === 'minute' && minute !== selected) continue;\n for (let second = 0; second < 60; second += options.granularity === 'second' ? seconds : 60) {\n if (part === 'second' && second !== selected) continue;\n const next = normalizeTime(\n `${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}:${String(second).padStart(2, '0')}`,\n options.granularity,\n );\n if (temporalError(next, { ...options, kind: 'time' })) continue;\n const delta = Math.abs(\n orderedValue(next, 'time') - (desired.hour * 3600 + desired.minute * 60 + desired.second),\n );\n if (delta < distance) {\n best = next;\n distance = delta;\n }\n }\n }\n }\n return best;\n}\nexport function temporalMessages(locale = 'id-ID'): Record<TemporalError, string> {\n return locale.startsWith('id')\n ? {\n invalid: 'Nilai tanggal atau waktu tidak valid.',\n required: 'Nilai wajib diisi.',\n incomplete: 'Lengkapi nilai mulai dan akhir.',\n order: 'Nilai akhir harus setelah atau sama dengan nilai mulai.',\n bounds: 'Nilai berada di luar batas yang diizinkan.',\n unavailable: 'Nilai tidak tersedia.',\n step: 'Nilai tidak sesuai interval yang diizinkan.',\n }\n : {\n invalid: 'Invalid date or time.',\n required: 'A value is required.',\n incomplete: 'Enter both start and end values.',\n order: 'End must be on or after start.',\n bounds: 'Value is outside the allowed limits.',\n unavailable: 'Value is unavailable.',\n step: 'Value does not match the allowed interval.',\n };\n}\n","import { useEffect, useId, useState } from 'react';\nimport {\n DateField as AriaDateField,\n DateInput,\n DateSegment,\n} from 'react-aria-components/DateField';\nimport { TimeField as AriaTimeField } from 'react-aria-components/TimeField';\nimport { Label } from 'react-aria-components/Label';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport {\n parseDate,\n parseTime,\n parseDateTime,\n type DateValue,\n type Time,\n} from '@internationalized/date';\nimport {\n temporalError,\n temporalRangeError,\n temporalMessages,\n toLocalValue,\n toZonedValue,\n normalizeTime,\n normalizeWallDateTime,\n type TemporalConstraints,\n type TemporalKind,\n} from './temporal-model.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { partClass, type StylingProps } from './styling.js';\n\nexport interface TemporalFieldProps\n extends\n Omit<TemporalConstraints, 'kind'>,\n StylingProps<'label' | 'input' | 'segment' | 'description' | 'error'> {\n label: string;\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n onError?: (error: string | null) => void;\n locale?: string;\n dir?: 'ltr' | 'rtl';\n hourCycle?: 12 | 24;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isInvalid?: boolean;\n name?: string;\n id?: string;\n description?: string;\n errorMessage?: string;\n hideLabel?: boolean;\n /** Disable only when this field edits an uncommitted picker draft. */\n formValidation?: boolean;\n}\nfunction parsed(value: string | null, kind: TemporalKind, zone?: string) {\n try {\n return value\n ? kind === 'time'\n ? parseTime(value)\n : kind === 'date'\n ? parseDate(value)\n : parseDateTime(toLocalValue(value, zone, true))\n : null;\n } catch {\n return null;\n }\n}\nexport function TemporalField({ kind, ...props }: TemporalFieldProps & { kind: TemporalKind }) {\n const [local, setLocal] = useState(props.defaultValue ?? null),\n [editError, setEditError] = useState<string | null>(null);\n const value = props.value === undefined ? local : props.value;\n const id = useId();\n const error = editError ?? temporalError(value, { ...props, kind });\n useEffect(() => {\n setEditError(null);\n }, [value]);\n function change(v: DateValue | Time | null) {\n if (props.isDisabled || props.isReadOnly) return;\n let next: string | null;\n try {\n next = v\n ? kind === 'datetime'\n ? toZonedValue(\n normalizeWallDateTime(v.toString(), props.granularity),\n props.timeZone,\n props.disambiguation,\n )\n : kind === 'time'\n ? normalizeTime(v.toString(), props.granularity)\n : v.toString().slice(0, 10)\n : null;\n } catch {\n const message = temporalMessages(props.locale).invalid;\n setEditError(message);\n props.onError?.(message);\n return;\n }\n setEditError(null);\n setLocal(next);\n props.onChange?.(next);\n props.onError?.(temporalError(next, { ...props, kind }));\n }\n const fieldContent = (\n <>\n <Label\n className={partClass(\n props.hideLabel ? 'temporal__sr-only' : 'input__label',\n props.classNames?.label,\n )}\n >\n {props.label}\n </Label>\n <DateInput\n className={partClass('temporal-field__input input__control', props.classNames?.input)}\n >\n {(segment) => (\n <DateSegment\n segment={segment}\n className={partClass('temporal-field__segment', props.classNames?.segment)}\n />\n )}\n </DateInput>\n </>\n );\n const shared = {\n id: props.id ?? id,\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n isRequired: props.isRequired,\n isInvalid: props.isInvalid || !!error,\n validationBehavior: 'aria' as const,\n 'aria-describedby':\n [\n props.description ? `${id}-description` : undefined,\n props.isInvalid || error ? `${id}-error` : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n };\n return (\n <I18nProvider locale={props.locale ?? 'id-ID'}>\n <div\n className={partClass(\n partClass('input temporal-field', props.classNames?.root),\n props.className,\n )}\n style={props.style}\n dir={props.dir}\n >\n {kind === 'time' ? (\n <AriaTimeField\n {...shared}\n value={parsed(value, kind, props.timeZone) as Time | null}\n onChange={change}\n granularity={props.granularity ?? 'minute'}\n hourCycle={props.hourCycle}\n >\n {fieldContent}\n </AriaTimeField>\n ) : (\n <AriaDateField\n {...shared}\n value={parsed(value, kind, props.timeZone) as DateValue | null}\n onChange={change}\n granularity={kind === 'date' ? 'day' : (props.granularity ?? 'minute')}\n hourCycle={props.hourCycle}\n >\n {fieldContent}\n </AriaDateField>\n )}\n {props.description && (\n <span\n id={`${id}-description`}\n className={partClass('input__description', props.classNames?.description)}\n >\n {props.description}\n </span>\n )}\n {(props.isInvalid || error) && (\n <span\n id={`${id}-error`}\n className={partClass('input__error', props.classNames?.error)}\n role=\"alert\"\n >\n {props.errorMessage ??\n (error && error in temporalMessages(props.locale)\n ? temporalMessages(props.locale)[error as keyof ReturnType<typeof temporalMessages>]\n : (error ?? temporalMessages(props.locale).invalid))}\n </span>\n )}\n {props.name && (\n <input type=\"hidden\" name={props.name} value={value ?? ''} disabled={props.isDisabled} />\n )}\n <SelectionValidation\n hasValue={!!value && !error}\n required={props.isRequired || !!error}\n disabled={props.isDisabled || props.formValidation === false}\n onInvalid={() => props.onError?.(error ?? 'required')}\n onResetStart={() => {}}\n onReset={(cancelled) => {\n if (!cancelled && props.value === undefined) {\n setLocal(props.defaultValue ?? null);\n setEditError(null);\n }\n }}\n />\n </div>\n </I18nProvider>\n );\n}\nexport function DateField(props: TemporalFieldProps) {\n return <TemporalField {...props} kind=\"date\" />;\n}\nexport function TimeField(props: TemporalFieldProps) {\n return <TemporalField {...props} kind=\"time\" />;\n}\nexport function DateTimeField(props: TemporalFieldProps) {\n return <TemporalField {...props} kind=\"datetime\" />;\n}\nexport interface TemporalRangeFieldProps extends Omit<\n TemporalFieldProps,\n 'value' | 'defaultValue' | 'onChange'\n> {\n value?: import('./temporal-model.js').TemporalRange | null;\n defaultValue?: import('./temporal-model.js').TemporalRange | null;\n onChange?: (value: import('./temporal-model.js').TemporalRange | null) => void;\n}\nfunction TemporalRangeField({ kind, ...props }: TemporalRangeFieldProps & { kind: TemporalKind }) {\n const groupId = useId();\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const value = props.value === undefined ? local : props.value;\n const error = temporalRangeError(value, { ...props, kind });\n const fields = (\n <div className=\"temporal-picker__fields\">\n {(['start', 'end'] as const).map((part) => (\n <TemporalField\n {...props}\n id={props.id ? `${props.id}-${part}` : undefined}\n className={undefined}\n style={undefined}\n classNames={{ ...props.classNames, root: undefined }}\n kind={kind}\n key={part}\n value={value?.[part] ?? null}\n defaultValue={undefined}\n formValidation={false}\n name={props.name ? `${props.name}.${part}` : undefined}\n label={`${props.label} ${part === 'start' ? (props.locale?.startsWith('id') ? 'Mulai' : 'Start') : props.locale?.startsWith('id') ? 'Akhir' : 'End'}`}\n onChange={(next) => {\n const result = { ...(value ?? { start: '', end: '' }), [part]: next ?? '' };\n setLocal(result);\n props.onChange?.(result);\n }}\n />\n ))}\n </div>\n );\n return (\n <div\n id={props.id ?? groupId}\n role=\"group\"\n aria-label={props.label}\n aria-describedby={error ? `${groupId}-error` : undefined}\n className={partClass(\n partClass('temporal-range-field', props.classNames?.root),\n props.className,\n )}\n style={props.style}\n >\n {fields}\n {error && (\n <span id={`${groupId}-error`} role=\"alert\" className=\"input__error\">\n {props.errorMessage ?? temporalMessages(props.locale)[error]}\n </span>\n )}\n <SelectionValidation\n hasValue={!!value && !error}\n required={props.isRequired || !!error}\n disabled={props.isDisabled || props.formValidation === false}\n onInvalid={() => props.onError?.(error ?? 'required')}\n onResetStart={() => {}}\n onReset={(cancelled) => {\n if (!cancelled && props.value === undefined) setLocal(props.defaultValue ?? null);\n }}\n />\n </div>\n );\n}\nexport function DateRangeField(props: TemporalRangeFieldProps) {\n return <TemporalRangeField {...props} kind=\"date\" />;\n}\nexport function TimeRangeField(props: TemporalRangeFieldProps) {\n return <TemporalRangeField {...props} kind=\"time\" />;\n}\nexport function DateTimeRangeField(props: TemporalRangeFieldProps) {\n return <TemporalRangeField {...props} kind=\"datetime\" />;\n}\n","import { useState, type HTMLAttributes } from 'react';\nimport { parseTime } from '@internationalized/date';\nimport { partClass } from './styling.js';\nimport { timeChoices, resolveTimeUnit, type TemporalConstraints } from './temporal-model.js';\nexport interface TimeControlProps\n extends\n Omit<TemporalConstraints, 'kind'>,\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string) => void;\n label?: string;\n locale?: string;\n hourCycle?: 12 | 24;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n}\nfunction format(value: string, locale: string, hourCycle?: 12 | 24) {\n const time = parseTime(value);\n const date = new Date(Date.UTC(2000, 0, 1, time.hour, time.minute, time.second));\n return new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hourCycle: hourCycle === 12 ? 'h12' : 'h23',\n timeZone: 'UTC',\n }).format(date);\n}\nexport function TimeList({\n value,\n defaultValue,\n onChange,\n label = 'Time',\n locale = 'id-ID',\n hourCycle,\n isDisabled,\n isReadOnly,\n className,\n minTime,\n maxTime,\n hourStep,\n minuteStep,\n secondStep,\n granularity,\n isTimeUnavailable,\n ...props\n}: TimeControlProps) {\n const [local, setLocal] = useState(defaultValue ?? '');\n const actual = value === undefined ? local : (value ?? '');\n const options = {\n kind: 'time' as const,\n minTime,\n maxTime,\n hourStep,\n minuteStep,\n secondStep,\n granularity,\n isTimeUnavailable,\n };\n return (\n <div {...props} className={partClass('time-list', className)}>\n <select\n aria-label={label}\n size={6}\n value={actual}\n disabled={isDisabled}\n aria-readonly={isReadOnly || undefined}\n onChange={(event) => {\n if (isReadOnly) {\n event.currentTarget.value = actual;\n return;\n }\n setLocal(event.target.value);\n onChange?.(event.target.value);\n }}\n >\n <option value=\"\" disabled>\n {locale.startsWith('id') ? 'Pilih waktu' : 'Choose time'}\n </option>\n {timeChoices(options).map((time) => (\n <option key={time} value={time}>\n {format(time, locale, hourCycle)}\n </option>\n ))}\n </select>\n </div>\n );\n}\nexport function TimeClock({\n value,\n defaultValue,\n onChange,\n label = 'Time',\n locale = 'id-ID',\n hourCycle = 24,\n isDisabled,\n isReadOnly,\n className,\n minTime,\n maxTime,\n hourStep = 1,\n minuteStep = 1,\n secondStep = 1,\n granularity = 'minute',\n isTimeUnavailable,\n ...props\n}: TimeControlProps) {\n const [local, setLocal] = useState(defaultValue ?? minTime ?? '00:00');\n const actual = value === undefined ? local : value || minTime || '00:00';\n let time;\n try {\n time = parseTime(actual);\n } catch {\n time = parseTime('00:00');\n }\n const id = locale.startsWith('id');\n const parts =\n granularity === 'hour'\n ? (['hour'] as const)\n : granularity === 'second'\n ? (['hour', 'minute', 'second'] as const)\n : (['hour', 'minute'] as const);\n return (\n <div {...props} role=\"group\" aria-label={label} className={partClass('time-clock', className)}>\n {parts.map((part) => {\n const step = part === 'hour' ? hourStep : part === 'minute' ? minuteStep : secondStep;\n const count = part === 'hour' ? 24 : 60;\n const values = Array.from(\n { length: Math.ceil(count / Math.max(1, step)) },\n (_, i) => i * Math.max(1, step),\n ).filter((n) => n < count);\n return (\n <label key={part}>\n <span>\n {part === 'hour'\n ? id\n ? 'Jam'\n : 'Hours'\n : part === 'minute'\n ? id\n ? 'Menit'\n : 'Minutes'\n : id\n ? 'Detik'\n : 'Seconds'}\n </span>\n <select\n value={time[part]}\n disabled={isDisabled}\n aria-readonly={isReadOnly || undefined}\n onChange={(event) => {\n if (isReadOnly) {\n event.currentTarget.value = String(time[part]);\n return;\n }\n const next = resolveTimeUnit(time.toString(), part, Number(event.target.value), {\n kind: 'time',\n minTime,\n maxTime,\n hourStep,\n minuteStep,\n secondStep,\n granularity,\n isTimeUnavailable,\n });\n if (!next) return;\n setLocal(next);\n onChange?.(next);\n }}\n >\n {values.map((n) => (\n <option key={n} value={n}>\n {part === 'hour' && hourCycle === 12\n ? `${n % 12 || 12} ${n < 12 ? 'AM' : 'PM'}`\n : String(n).padStart(2, '0')}\n </option>\n ))}\n </select>\n </label>\n );\n })}\n </div>\n );\n}\n","import {\n createContext,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n type ReactNode,\n type HTMLAttributes,\n type ButtonHTMLAttributes,\n} from 'react';\nimport { Dialog, DialogTrigger } from 'react-aria-components/Dialog';\nimport { Modal, ModalOverlay } from 'react-aria-components/Modal';\nimport { Popover } from 'react-aria-components/Popover';\nimport { Button, type ButtonProps } from 'react-aria-components/Button';\nimport { Calendar, RangeCalendar, MonthPicker, YearPicker } from './Calendar.js';\nimport { DateField, TimeField, DateTimeField, type TemporalFieldProps } from './TemporalField.js';\nimport { TimeList, TimeClock } from './TimeControls.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { useDisclosure } from './useDisclosure.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { today, now } from '@internationalized/date';\nimport {\n temporalError,\n temporalRangeError,\n temporalMessages,\n temporalDisplayBounds,\n toLocalValue,\n toZonedValue,\n type TemporalConstraints,\n type TemporalRange,\n type TemporalKind,\n} from './temporal-model.js';\n\nexport type TemporalValue = string | TemporalRange;\nexport interface TemporalPreset<T> {\n id: string;\n label: string;\n value: T | null;\n}\nexport interface TemporalPickerOptions\n extends\n Omit<TemporalConstraints, 'kind'>,\n StylingProps<\n | 'label'\n | 'trigger'\n | 'value'\n | 'panel'\n | 'content'\n | 'field'\n | 'calendar'\n | 'time'\n | 'footer'\n | 'applyButton'\n | 'cancelButton'\n | 'clearButton'\n | 'preset'\n | 'description'\n | 'error'\n > {\n label: string;\n locale?: string;\n dir?: 'ltr' | 'rtl';\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n hourCycle?: 12 | 24;\n display?: 'inline' | 'popover' | 'dialog' | 'auto';\n commitMode?: 'apply' | 'immediate';\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isInvalid?: boolean;\n hideLabel?: boolean;\n name?: string;\n description?: string;\n errorMessage?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n onError?: (error: string | null) => void;\n visibleMonths?: 1 | 2;\n weekStartsOn?: 0 | 1;\n referenceDate?: string;\n timePresentation?: 'list' | 'clock';\n showInputs?: boolean;\n showActions?: boolean;\n children?: ReactNode;\n formatValue?: (value: TemporalValue, locale: string) => string;\n}\nexport interface TemporalPickerProps<\n T extends TemporalValue = string,\n> extends TemporalPickerOptions {\n value?: T | null;\n defaultValue?: T | null;\n onChange?: (value: T | null) => void;\n onApply?: (value: T | null) => void;\n presets?: TemporalPreset<T>[];\n}\ninterface Context {\n invalid: boolean;\n describedBy?: string;\n options: TemporalPickerOptions;\n kind: TemporalKind;\n range: boolean;\n draft: TemporalValue | null;\n error: string | null;\n id: string;\n text: string;\n edit: (value: TemporalValue | null, part?: string) => void;\n inputError: (part: string, error: string | null) => void;\n apply: () => void;\n cancel: () => void;\n clear: () => void;\n panel: ReactNode;\n}\nconst PickerContext = createContext<Context | null>(null);\nfunction usePicker() {\n const context = useContext(PickerContext);\n if (!context) throw new Error('Picker parts must be inside their picker Root.');\n return context;\n}\nfunction labels(locale = 'id-ID') {\n return locale.startsWith('id')\n ? {\n apply: 'Terapkan',\n cancel: 'Batal',\n clear: 'Kosongkan',\n today: 'Hari ini',\n now: 'Sekarang',\n start: 'Mulai',\n end: 'Akhir',\n choose: 'Pilih tanggal atau waktu',\n }\n : {\n apply: 'Apply',\n cancel: 'Cancel',\n clear: 'Clear',\n today: 'Today',\n now: 'Now',\n start: 'Start',\n end: 'End',\n choose: 'Choose date or time',\n };\n}\nfunction localValue(value: string, kind: TemporalKind, options: TemporalPickerOptions) {\n try {\n return kind === 'datetime'\n ? toLocalValue(value, options.timeZone, options.granularity === 'second')\n : value;\n } catch {\n return '';\n }\n}\nfunction datePart(value: string, kind: TemporalKind, options: TemporalPickerOptions) {\n return localValue(value, kind, options).slice(0, 10);\n}\nfunction combineDate(date: string, time: string, options: TemporalPickerOptions) {\n try {\n return toZonedValue(`${date}T${time || '00:00'}`, options.timeZone, options.disambiguation);\n } catch {\n return '';\n }\n}\nfunction displayText(\n value: TemporalValue | null,\n kind: TemporalKind,\n options: TemporalPickerOptions,\n): string {\n if (!value) return labels(options.locale).choose;\n if (options.formatValue) return options.formatValue(value, options.locale ?? 'id-ID');\n const one = (v: string) => {\n if (!v) return '—';\n try {\n if (kind === 'time')\n return new Intl.DateTimeFormat(options.locale ?? 'id-ID', {\n hour: '2-digit',\n minute: '2-digit',\n second: options.granularity === 'second' ? '2-digit' : undefined,\n hourCycle: options.hourCycle === 12 ? 'h12' : 'h23',\n timeZone: 'UTC',\n }).format(new Date(`2000-01-01T${v}Z`));\n if (kind === 'date')\n return new Intl.DateTimeFormat(options.locale ?? 'id-ID', {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n timeZone: 'UTC',\n }).format(new Date(`${v}T12:00:00Z`));\n return `${localValue(v, kind, options).replace('T', ' ')} ${options.timeZone ?? 'UTC'}`;\n } catch {\n return v;\n }\n };\n return typeof value === 'string' ? one(value) : `${one(value.start)} – ${one(value.end)}`;\n}\nexport function TemporalPickerField({\n part = 'start',\n ...props\n}: Partial<TemporalFieldProps> & { part?: 'start' | 'end' }) {\n const context = usePicker(),\n o = context.options,\n l = labels(o.locale);\n const Field =\n context.kind === 'date' ? DateField : context.kind === 'time' ? TimeField : DateTimeField;\n const value = typeof context.draft === 'string' ? context.draft : (context.draft?.[part] ?? null);\n return (\n <Field\n {...o}\n {...props}\n className={partClass(o.classNames?.field ?? '', props.className)}\n style={props.style}\n classNames={undefined}\n label={props.label ?? (context.range ? `${o.label} ${l[part]}` : o.label)}\n value={value}\n name={undefined}\n formValidation={false}\n isRequired={false}\n onError={(error) => context.inputError(part, error)}\n onChange={(next) =>\n context.edit(\n context.range\n ? {\n ...(typeof context.draft === 'object' && context.draft\n ? context.draft\n : { start: '', end: '' }),\n [part]: next ?? '',\n }\n : next,\n part,\n )\n }\n />\n );\n}\nexport function TemporalPickerCalendar(props: HTMLAttributes<HTMLDivElement>) {\n const c = usePicker(),\n o = c.options;\n const selected = typeof c.draft === 'string' ? c.draft : '';\n const onSingle = (value: string | null) => {\n if (c.kind === 'date') c.edit(value);\n else {\n const next = value ? combineDate(value, localValue(selected, c.kind, o).slice(11), o) : null;\n if (value && !next) {\n c.inputError('date', 'invalid');\n return;\n }\n c.edit(next);\n }\n };\n const bounds = temporalDisplayBounds({ ...o, kind: c.kind });\n const range = typeof c.draft === 'object' && c.draft ? c.draft : { start: '', end: '' };\n return (\n <div {...props} className={partClass('temporal-picker__calendar', props.className)}>\n {c.kind !== 'time' &&\n (c.range ? (\n <RangeCalendar\n {...o}\n minDate={bounds.minDate}\n maxDate={bounds.maxDate}\n style={undefined}\n className={undefined}\n classNames={undefined}\n value={{ start: datePart(range.start, c.kind, o), end: datePart(range.end, c.kind, o) }}\n onChange={(v) => {\n if (!v || c.kind === 'date') {\n c.edit(v);\n return;\n }\n const start = v.start\n ? combineDate(v.start, localValue(range.start, c.kind, o).slice(11), o)\n : '',\n end = v.end\n ? combineDate(v.end, localValue(range.end, c.kind, o).slice(11), o)\n : '';\n if ((v.start && !start) || (v.end && !end)) {\n c.inputError('date', 'invalid');\n return;\n }\n c.edit({ start, end });\n }}\n />\n ) : (\n <Calendar\n {...o}\n minDate={bounds.minDate}\n maxDate={bounds.maxDate}\n style={undefined}\n className={undefined}\n classNames={undefined}\n value={datePart(selected, c.kind, o)}\n onChange={onSingle}\n />\n ))}\n </div>\n );\n}\nexport function TemporalPickerTime({\n part = 'start',\n ...props\n}: HTMLAttributes<HTMLDivElement> & { part?: 'start' | 'end' }) {\n const c = usePicker(),\n o = c.options,\n l = labels(o.locale);\n const value = typeof c.draft === 'string' ? c.draft : (c.draft?.[part] ?? '');\n const wall = localValue(value, c.kind, o);\n const time = c.kind === 'time' ? wall : wall.slice(11);\n const bounds = temporalDisplayBounds({ ...o, kind: c.kind }, wall.slice(0, 10));\n const Control = o.timePresentation === 'clock' ? TimeClock : TimeList;\n return (\n <div {...props} className={partClass('temporal-picker__time', props.className)}>\n <Control\n locale={o.locale}\n hourCycle={o.hourCycle}\n minTime={bounds.minTime}\n maxTime={bounds.maxTime}\n hourStep={o.hourStep}\n minuteStep={o.minuteStep}\n secondStep={o.secondStep}\n granularity={o.granularity}\n isTimeUnavailable={o.isTimeUnavailable}\n isDisabled={o.isDisabled}\n isReadOnly={o.isReadOnly}\n label={c.range ? `${o.label} ${l[part]}` : o.label}\n value={time}\n onChange={(next) => {\n const result =\n c.kind === 'time'\n ? next\n : combineDate(\n wall.slice(0, 10) || o.referenceDate || today(o.timeZone ?? 'UTC').toString(),\n next,\n o,\n );\n if (!result) {\n c.inputError(part, 'invalid');\n return;\n }\n c.edit(\n c.range\n ? {\n ...(typeof c.draft === 'object' && c.draft ? c.draft : { start: '', end: '' }),\n [part]: result,\n }\n : result,\n part,\n );\n }}\n />\n </div>\n );\n}\nexport function TemporalPickerValue({\n children,\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const c = usePicker();\n return (\n <span {...props} id={`${c.id}-value`} className={partClass('date-range__value', className)}>\n {children ?? c.text}\n </span>\n );\n}\nexport function TemporalPickerTrigger({\n children,\n className,\n ...props\n}: Omit<ButtonProps, 'children' | 'className'> & { children?: ReactNode; className?: string }) {\n const c = usePicker();\n return (\n <Button\n {...props}\n isDisabled={c.options.isDisabled}\n className={partClass('date-range__trigger', className)}\n aria-labelledby={`${c.id}-label ${c.id}-value`}\n aria-invalid={c.invalid || undefined}\n aria-describedby={c.describedBy}\n >\n {children ?? <TemporalPickerValue />}\n </Button>\n );\n}\nexport function TemporalPickerContent({\n children,\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n const c = usePicker();\n return (\n <div {...props} className={className}>\n {children ?? c.panel}\n </div>\n );\n}\nexport function TemporalPickerPopover({\n children,\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n const c = usePicker();\n return (\n <Popover\n className={partClass('date-range__panel temporal-picker__panel', className)}\n placement=\"bottom start\"\n offset={8}\n >\n <Dialog aria-labelledby={`${c.id}-label`} className=\"date-range__dialog\">\n <div {...props}>{children ?? c.panel}</div>\n </Dialog>\n </Popover>\n );\n}\nfunction action(type: 'apply' | 'cancel' | 'clear') {\n return function PickerAction({\n children,\n className,\n onClick,\n ...props\n }: ButtonHTMLAttributes<HTMLButtonElement>) {\n const c = usePicker();\n return (\n <button\n type=\"button\"\n {...props}\n className={partClass(\n `button button--${type === 'apply' ? 'primary' : 'ghost'} button--sm`,\n className,\n )}\n disabled={\n props.disabled ||\n (type !== 'cancel' && (c.options.isDisabled || c.options.isReadOnly)) ||\n (type === 'apply' && !!c.error)\n }\n onClick={(e) => {\n onClick?.(e);\n if (!e.defaultPrevented) c[type]();\n }}\n >\n {children ?? labels(c.options.locale)[type]}\n </button>\n );\n };\n}\nexport const TemporalPickerApplyButton = /* @__PURE__ */ action('apply'),\n TemporalPickerCancelButton = /* @__PURE__ */ action('cancel'),\n TemporalPickerClearButton = /* @__PURE__ */ action('clear');\nfunction Root<T extends TemporalValue>({\n kind,\n range,\n ...props\n}: TemporalPickerProps<T> & { kind: TemporalKind; range: boolean }) {\n const [local, setLocal] = useState<T | null>(props.defaultValue ?? null);\n const committed = props.value === undefined ? local : props.value;\n const [draft, setDraft] = useState<TemporalValue | null>(committed),\n [inputErrors, setInputErrors] = useState<Record<string, string | null>>({}),\n [formError, setFormError] = useState(false),\n [mobile, setMobile] = useState(false);\n const id = useId(),\n trigger = useRef<HTMLButtonElement>(null);\n const disclosure = useDisclosure(props.open, props.defaultOpen, props.onOpenChange);\n const l = labels(props.locale);\n const committedKey = JSON.stringify(committed),\n lastCommitted = useRef(committedKey);\n useEffect(() => {\n if (lastCommitted.current === committedKey) return;\n lastCommitted.current = committedKey;\n setDraft(committed);\n setInputErrors({});\n }, [committed, committedKey]);\n useEffect(() => {\n const media = window.matchMedia('(max-width: 640px)');\n const update = () => setMobile(media.matches);\n update();\n media.addEventListener('change', update);\n return () => media.removeEventListener('change', update);\n }, []);\n const constraints = { ...props, kind };\n const validate = (value: TemporalValue | null) =>\n range\n ? temporalRangeError(typeof value === 'object' ? value : null, constraints)\n : temporalError(typeof value === 'string' ? value : null, constraints);\n const code = Object.values(inputErrors).find(Boolean) ?? validate(draft);\n const error = code\n ? code in temporalMessages(props.locale)\n ? temporalMessages(props.locale)[code as keyof ReturnType<typeof temporalMessages>]\n : code\n : null;\n const committedError = validate(committed);\n const errorCallback = useRef(props.onError);\n useEffect(() => {\n errorCallback.current = props.onError;\n }, [props.onError]);\n useEffect(() => {\n errorCallback.current?.(error);\n }, [error]);\n function changeOpen(next: boolean) {\n if (props.isDisabled && next) return;\n setDraft(committed);\n setInputErrors({});\n disclosure.change(next);\n }\n function commit(value: TemporalValue | null, close: boolean) {\n if (props.isDisabled || props.isReadOnly || validate(value)) return;\n setLocal(value as T | null);\n setFormError(false);\n props.onChange?.(value as T | null);\n if (close) {\n props.onApply?.(value as T | null);\n disclosure.change(false);\n }\n }\n function edit(value: TemporalValue | null, part?: string) {\n if (props.isDisabled || props.isReadOnly) return;\n setDraft(value);\n const remaining = part ? { ...inputErrors, [part]: null } : {};\n setInputErrors(remaining);\n if (props.commitMode === 'immediate' && !Object.values(remaining).some(Boolean))\n commit(value, false);\n }\n function clear() {\n if (props.isDisabled || props.isReadOnly) return;\n setDraft(null);\n setInputErrors({});\n if (props.commitMode === 'immediate') {\n setLocal(null);\n props.onChange?.(null);\n }\n }\n const context: Context = {\n options: props,\n kind,\n range,\n draft,\n error,\n id,\n invalid: props.isInvalid || !!committedError || formError,\n describedBy:\n [\n props.description ? `${id}-description` : undefined,\n props.isInvalid || committedError || formError ? `${id}-error` : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n text: displayText(committed, kind, props),\n edit,\n inputError: (part, error) =>\n setInputErrors((current) =>\n current[part] === error ? current : { ...current, [part]: error },\n ),\n apply: () => {\n if (!error) commit(draft, true);\n },\n cancel: () => changeOpen(false),\n clear,\n panel: null,\n };\n const current =\n kind === 'date'\n ? today(props.timeZone ?? 'UTC').toString()\n : kind === 'time'\n ? now(props.timeZone ?? 'UTC')\n .toString()\n .slice(11, props.granularity === 'second' ? 19 : 16)\n : now(props.timeZone ?? 'UTC').toString();\n const panel = (\n <div className={partClass('temporal-picker__content', props.classNames?.content)}>\n <h2 className=\"temporal-picker__title\">{props.label}</h2>\n {!!props.presets?.length && (\n <div className=\"temporal-picker__presets\">\n {props.presets.map((p) => (\n <button\n key={p.id}\n type=\"button\"\n className={partClass('date-range__preset', props.classNames?.preset)}\n disabled={props.isDisabled || props.isReadOnly || !!validate(p.value)}\n onClick={() => edit(p.value)}\n >\n {p.label}\n </button>\n ))}\n </div>\n )}\n {props.showInputs !== false && (\n <div className=\"temporal-picker__fields\">\n <TemporalPickerField />\n {range && <TemporalPickerField part=\"end\" />}\n </div>\n )}\n <div className=\"temporal-picker__views\">\n {kind !== 'time' && <TemporalPickerCalendar className={props.classNames?.calendar} />}{' '}\n {kind !== 'date' && (\n <div className=\"temporal-picker__times\">\n <TemporalPickerTime className={props.classNames?.time} />\n {range && <TemporalPickerTime part=\"end\" className={props.classNames?.time} />}\n </div>\n )}\n </div>\n {error && (\n <span className=\"input__error\" role=\"alert\">\n {error}\n </span>\n )}\n <button\n type=\"button\"\n className=\"button button--ghost button--sm\"\n disabled={props.isDisabled || props.isReadOnly || !!temporalError(current, constraints)}\n onClick={() => edit(range ? { start: current, end: current } : current)}\n >\n {kind === 'date' ? l.today : l.now}\n </button>\n {props.showActions !== false && (\n <footer className={partClass('date-range__footer', props.classNames?.footer)}>\n <TemporalPickerClearButton className={props.classNames?.clearButton} />\n <div>\n <TemporalPickerCancelButton className={props.classNames?.cancelButton} />\n {props.commitMode !== 'immediate' && (\n <TemporalPickerApplyButton className={props.classNames?.applyButton} />\n )}\n </div>\n </footer>\n )}\n </div>\n );\n context.panel = panel;\n const dialog =\n props.display === 'dialog' ||\n (props.display !== 'inline' && props.display !== 'popover' && mobile);\n return (\n <PickerContext.Provider value={context}>\n <div\n className={partClass(\n partClass(\n `date-range temporal-picker date-range--${props.size ?? 'md'}`,\n props.classNames?.root,\n ),\n props.className,\n )}\n style={props.style}\n dir={props.dir}\n >\n <span\n id={`${id}-label`}\n className={partClass(\n props.hideLabel ? 'temporal__sr-only' : 'date-range__label',\n props.classNames?.label,\n )}\n >\n {props.label}\n </span>\n {props.display === 'inline' ? (\n <section\n className={partClass('date-range__panel date-range__inline', props.classNames?.panel)}\n aria-labelledby={`${id}-label`}\n >\n {props.children ?? panel}\n </section>\n ) : (\n <DialogTrigger isOpen={disclosure.visible && !props.isDisabled} onOpenChange={changeOpen}>\n {props.children ?? (\n <>\n <Button\n ref={trigger}\n className={partClass('date-range__trigger', props.classNames?.trigger)}\n isDisabled={props.isDisabled}\n aria-labelledby={`${id}-label ${id}-value`}\n aria-invalid={context.invalid || undefined}\n aria-describedby={context.describedBy}\n >\n <TemporalPickerValue className={props.classNames?.value} />\n </Button>\n {dialog ? (\n <ModalOverlay className=\"temporal-picker__overlay\">\n <Modal className=\"date-range__panel temporal-picker__modal\">\n <Dialog aria-labelledby={`${id}-label`}>{panel}</Dialog>\n </Modal>\n </ModalOverlay>\n ) : (\n <TemporalPickerPopover className={props.classNames?.panel} />\n )}\n </>\n )}\n </DialogTrigger>\n )}\n {props.description && (\n <span\n id={`${id}-description`}\n className={partClass('input__description', props.classNames?.description)}\n >\n {props.description}\n </span>\n )}\n {(props.isInvalid || committedError || formError) && (\n <span\n id={`${id}-error`}\n role=\"alert\"\n className={partClass('input__error', props.classNames?.error)}\n >\n {props.errorMessage ??\n temporalMessages(props.locale)[\n committedError ?? (props.isInvalid ? 'invalid' : 'required')\n ]}\n </span>\n )}\n {props.name &&\n (range ? (\n <>\n <input\n type=\"hidden\"\n name={`${props.name}.start`}\n value={typeof committed === 'object' && committed ? committed.start : ''}\n disabled={props.isDisabled}\n />\n <input\n type=\"hidden\"\n name={`${props.name}.end`}\n value={typeof committed === 'object' && committed ? committed.end : ''}\n disabled={props.isDisabled}\n />\n </>\n ) : (\n <input\n type=\"hidden\"\n name={props.name}\n value={typeof committed === 'string' ? committed : ''}\n disabled={props.isDisabled}\n />\n ))}\n <SelectionValidation\n hasValue={!!committed && !committedError}\n required={props.isRequired || !!committedError}\n disabled={props.isDisabled}\n onInvalid={() => {\n setFormError(true);\n trigger.current?.focus();\n }}\n onResetStart={() => {}}\n onReset={(cancelled) => {\n if (!cancelled) {\n if (props.value === undefined) setLocal(props.defaultValue ?? null);\n setDraft(props.value === undefined ? (props.defaultValue ?? null) : committed);\n setInputErrors({});\n setFormError(false);\n disclosure.change(false);\n }\n }}\n />\n </div>\n </PickerContext.Provider>\n );\n}\nfunction picker<T extends TemporalValue>(kind: TemporalKind, range: boolean) {\n const Component = (props: TemporalPickerProps<T>) => (\n <Root {...props} kind={kind} range={range} />\n );\n return Object.assign(Component, {\n Root: Component,\n Trigger: TemporalPickerTrigger,\n Value: TemporalPickerValue,\n Popover: TemporalPickerPopover,\n Content: TemporalPickerContent,\n Field: TemporalPickerField,\n Calendar: TemporalPickerCalendar,\n Time: TemporalPickerTime,\n MonthPicker,\n YearPicker,\n ApplyButton: TemporalPickerApplyButton,\n CancelButton: TemporalPickerCancelButton,\n ClearButton: TemporalPickerClearButton,\n });\n}\nexport const DatePicker = /* @__PURE__ */ picker<string>('date', false);\nexport const TimePicker = /* @__PURE__ */ picker<string>('time', false);\nexport const TimeRangePicker = /* @__PURE__ */ picker<TemporalRange>('time', true);\nexport const DateTimePicker = /* @__PURE__ */ picker<string>('datetime', false);\nexport const DateTimeRangePicker = /* @__PURE__ */ picker<TemporalRange>('datetime', true);\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["AriaButton","_Fragment","Root","AriaToggleButton","Root","AriaToggleButtonGroup","Popover","AriaSelect","Button","AriaListBox","ListBoxItem","AriaFieldError","AriaTextField","AriaInput","_Fragment","AriaSelect","Label","Button","ListBox","_Fragment","AriaInput","Label","Text","FieldError","Label","AriaTextArea","Text","FieldError","AriaLabel","AriaCheckbox","AriaRadioGroup","AriaCheckbox","_Fragment","AriaRadioGroup","Label","_Fragment","_Fragment","Text","FieldError","ListBox","ListBoxItem","AriaNumberField","Group","Input","Button","AriaNumberField","_Fragment","Label","Group","Button","Input","Text","FieldError","_Fragment","AriaTabs","Button","Dialog","Popover","Tooltip","Header","Separator","DataTableColumnPart","_Fragment","Button","AriaDialog","DialogBackdropPart","_Fragment","Popover","Separator","Header","Button","Button","AriaPopover","Dialog","Button","AriaTooltip","AriaComboBox","Input","Button","Label","ListBox","ListBoxItem","_Fragment","ToggleButtonGroup","ToggleButton","ComposedToggleGroup","ComposedToggleItem","Button","Popover","Dialog","_Fragment","Button","CalendarGrid","CalendarGridHeader","CalendarHeaderCell","CalendarGridBody","CalendarCell","AriaCalendar","AriaRangeCalendar","RangeCalendar","Button","Dialog","Popover","_Fragment","ToastQueue","I18nProvider","ToastRegion","ToastList","_Fragment","ToastContent","Text","Button","AriaToast","_Fragment","Label","AriaTimeField","AriaDateField","Button","Popover","Dialog","_Fragment"],"sources":["../src/Button.tsx","../src/styling.ts","../src/ButtonGroup.tsx","../src/ToggleButton.tsx","../src/OverlayDirection.tsx","../src/ToggleButtonGroup.tsx","../src/selection-popover.tsx","../src/popover-position.ts","../src/label-context.ts","../src/icons.tsx","../src/input-clear.tsx","../src/control-composition.tsx","../src/field.tsx","../src/SelectionValidation.tsx","../src/selection-options.ts","../src/Select.tsx","../src/SelectGroup.tsx","../src/Input.tsx","../src/Textarea.tsx","../src/Label.tsx","../src/switch-visual.tsx","../src/choice-composition.tsx","../src/Checkbox.tsx","../src/RadioGroup.tsx","../src/Switch.tsx","../src/form-context.ts","../src/FieldComponent.tsx","../src/Form.tsx","../src/listbox-selection.ts","../src/Listbox.tsx","../src/number-composition.tsx","../src/NumberField.tsx","../src/Card.tsx","../src/visual-slot.tsx","../src/Badge.tsx","../src/Avatar.tsx","../src/AvatarGroup.tsx","../src/Skeleton.tsx","../src/Separator.tsx","../src/tabs-indicator.ts","../src/Tabs.tsx","../src/pagination-model.ts","../src/Pagination.tsx","../src/structural-parts.tsx","../src/Table.tsx","../src/useDisclosure.ts","../src/layout-parts.tsx","../src/DataTable.tsx","../src/Alert.tsx","../src/Empty.tsx","../src/Breadcrumb.tsx","../src/Sidebar.tsx","../src/chart-model.ts","../src/Chart.tsx","../src/Dialog.tsx","../src/overlay-model.ts","../src/DropdownMenu.tsx","../src/Popover.tsx","../src/Tooltip.tsx","../src/Spinner.tsx","../src/combobox-composition.tsx","../src/Combobox.tsx","../src/toggle-group-model.ts","../src/ToggleGroup.tsx","../src/date-range-composition.tsx","../src/Calendar.tsx","../src/date-range-model.ts","../src/DateRangePicker.tsx","../src/toast-model.ts","../src/Toast.tsx","../src/temporal-model.ts","../src/TemporalField.tsx","../src/TimeControls.tsx","../src/TemporalPicker.tsx"],"sourcesContent":["import { type StylingProps } from './styling.js';\nimport {\n Button as AriaButton,\n type ButtonProps as AriaButtonProps,\n} from 'react-aria-components/Button';\nimport { useContext, type ReactNode } from 'react';\nimport { ProgressBarContext } from 'react-aria-components/ProgressBar';\n\nfunction PendingLabelAnchor() {\n const context = useContext(ProgressBarContext);\n const id = context && 'id' in context ? context.id : undefined;\n return id ? <span id={id} hidden aria-hidden=\"true\" /> : null;\n}\n\nexport type ButtonVariant =\n 'primary' | 'secondary' | 'danger' | 'outline' | 'tertiary' | 'ghost' | 'danger-soft' | 'ai';\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/** The event passed to `onPress`: pointer type, modifier keys, and the target element. */\nexport type ButtonPressEvent = Parameters<NonNullable<AriaButtonProps['onPress']>>[0];\n\n/** Public flags supplied to the Button render function. */\nexport interface ButtonRenderProps {\n isPending: boolean;\n isDisabled: boolean;\n isHovered: boolean;\n isPressed: boolean;\n isFocused: boolean;\n isFocusVisible: boolean;\n}\n/**\n * The props the design system supports on `Button`. Anything not listed here is not part of the\n * public API, even if the underlying React Aria button would accept it.\n */\nexport interface ButtonProps extends StylingProps {\n /** Label or content of the button. */\n children?: ReactNode | ((state: ButtonRenderProps) => ReactNode);\n /** Square icon button. Supply aria-label or aria-labelledby. */\n isIconOnly?: boolean;\n /** Blocks actions while retaining focus. Render a Spinner through children if desired. */\n isPending?: boolean;\n /** Visual style. Use `danger` for destructive actions such as delete. */\n variant?: ButtonVariant;\n /** Size of the button. */\n size?: ButtonSize;\n /** Fill the container width. Icon-only buttons retain their square shape. */\n fullWidth?: boolean;\n /** Disables the button. The button is not focusable and `onPress` is not called. */\n isDisabled?: boolean;\n /**\n * Called when the button is activated by mouse, touch, keyboard, or screen reader. Use this\n * instead of `onClick`.\n */\n onPress?: (event: ButtonPressEvent) => void;\n /** Button type inside a form. Defaults to `button`. */\n type?: 'button' | 'submit' | 'reset';\n /** Accessible name when the button has no visible text, such as an icon-only button. */\n 'aria-label'?: string;\n /** Id of an element that labels the button. */\n 'aria-labelledby'?: string;\n /** Id of an element that describes the button. */\n 'aria-describedby'?: string;\n /** Id of the button element. */\n id?: string;\n /** Focuses the button when it first renders. */\n autoFocus?: boolean;\n}\n\nexport function Button({\n variant = 'primary',\n size = 'md',\n isIconOnly = false,\n isPending = false,\n isDisabled = false,\n fullWidth = false,\n type = 'button',\n children,\n className: consumerClassName,\n classNames,\n style,\n ...props\n}: ButtonProps) {\n const className = [\n 'button',\n classNames?.root,\n consumerClassName,\n `button--${variant}`,\n size !== 'md' && `button--${size}`,\n isIconOnly && 'button--icon-only',\n fullWidth && !isIconOnly && 'button--full-width',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <AriaButton\n {...props}\n type={isPending ? 'button' : type}\n className={className}\n style={style}\n isDisabled={isDisabled}\n isPending={isPending}\n >\n {(state) => (\n <>\n {typeof children === 'function'\n ? children({\n isPending: state.isPending,\n isDisabled: state.isDisabled,\n isHovered: state.isHovered,\n isPressed: state.isPressed,\n isFocused: state.isFocused,\n isFocusVisible: state.isFocusVisible,\n })\n : children}\n {isPending && <PendingLabelAnchor />}\n </>\n )}\n </AriaButton>\n );\n}\n","import type { CSSProperties } from 'react';\n\n/** Stable public styling slots; classes are applied directly to their owning element. */\nexport interface StylingProps<Part extends string = never> {\n className?: string;\n style?: CSSProperties;\n classNames?: Partial<Record<Part | 'root', string>>;\n}\n\nexport function partClass(base: string, override?: string): string {\n return override ? `${base} ${override}` : base;\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport {\n Children,\n Fragment,\n cloneElement,\n isValidElement,\n type ReactNode,\n type ReactElement,\n} from 'react';\nimport { Button, type ButtonProps, type ButtonSize, type ButtonVariant } from './Button.js';\n\nexport interface ButtonGroupProps extends StylingProps {\n label: string;\n children: ReactNode;\n variant?: ButtonVariant;\n size?: ButtonSize;\n isDisabled?: boolean;\n fullWidth?: boolean;\n orientation?: 'horizontal' | 'vertical';\n dir?: 'ltr' | 'rtl';\n}\nexport function ButtonGroupSeparator({ className, style, classNames }: StylingProps = {}) {\n return (\n <span\n className={partClass(partClass('button-group__separator', classNames?.root), className)}\n style={style}\n aria-hidden=\"true\"\n />\n );\n}\nfunction Root({\n children,\n label,\n variant,\n size,\n isDisabled,\n fullWidth,\n orientation = 'horizontal',\n dir,\n className,\n style,\n classNames,\n}: ButtonGroupProps) {\n function defaults(nodes: ReactNode): ReactNode {\n return Children.map(nodes, (child) => {\n if (!isValidElement(child)) return child;\n if (child.type === Fragment)\n return cloneElement(\n child as ReactElement<{ children: ReactNode }>,\n {},\n defaults((child.props as { children: ReactNode }).children),\n );\n if (child.type !== Button) return child;\n const button = child as ReactElement<ButtonProps>;\n return cloneElement(button, {\n variant: button.props.variant ?? variant,\n size: button.props.size ?? size,\n isDisabled: button.props.isDisabled ?? isDisabled,\n });\n });\n }\n return (\n <div\n role=\"group\"\n aria-label={label}\n dir={dir}\n data-orientation={orientation}\n className={partClass(\n partClass(`button-group${fullWidth ? ' button-group--full-width' : ''}`, classNames?.root),\n className,\n )}\n style={style}\n >\n {defaults(children)}\n </div>\n );\n}\nexport const ButtonGroup = /* @__PURE__ */ Object.assign(Root, { Separator: ButtonGroupSeparator });\n","import { type StylingProps } from './styling.js';\nimport { createContext, useContext, type ReactNode } from 'react';\nimport {\n ToggleButton as AriaToggleButton,\n type ToggleButtonRenderProps as AriaRenderProps,\n} from 'react-aria-components/ToggleButton';\nimport type { ButtonPressEvent, ButtonSize } from './Button.js';\n\nexport type ToggleButtonVariant = 'default' | 'ghost' | 'chip';\nexport type ToggleButtonRenderProps = Omit<AriaRenderProps, 'state'>;\nexport interface ToggleButtonProps extends StylingProps {\n id?: string;\n children?: ReactNode | ((state: ToggleButtonRenderProps) => ReactNode);\n variant?: ToggleButtonVariant;\n size?: ButtonSize;\n isIconOnly?: boolean;\n isSelected?: boolean;\n defaultSelected?: boolean;\n isDisabled?: boolean;\n onChange?: (selected: boolean) => void;\n onPress?: (event: ButtonPressEvent) => void;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n autoFocus?: boolean;\n}\nexport const ToggleButtonSizeContext = createContext<ButtonSize>('md');\nexport const ToggleButtonVariantContext = createContext<ToggleButtonVariant>('default');\nexport function ToggleButton({\n children,\n variant,\n size,\n isIconOnly,\n className: consumerClassName,\n classNames,\n style,\n ...props\n}: ToggleButtonProps) {\n const inheritedSize = useContext(ToggleButtonSizeContext);\n const inheritedVariant = useContext(ToggleButtonVariantContext);\n const resolvedSize = size ?? inheritedSize;\n return (\n <AriaToggleButton\n {...props}\n style={style}\n className={[\n 'button',\n classNames?.root,\n consumerClassName,\n 'toggle-button',\n `toggle-button--${variant ?? inheritedVariant}`,\n resolvedSize !== 'md' && `button--${resolvedSize}`,\n isIconOnly && 'button--icon-only',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {({ isSelected, isPressed, isHovered, isFocused, isFocusVisible, isDisabled }) =>\n typeof children === 'function'\n ? children({ isSelected, isPressed, isHovered, isFocused, isFocusVisible, isDisabled })\n : children\n }\n </AriaToggleButton>\n );\n}\n","import type { ReactNode } from 'react';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nexport function OverlayDirection({ dir, children }: { dir?: 'ltr' | 'rtl'; children: ReactNode }) {\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{children}</I18nProvider>\n ) : (\n children\n );\n}\n","import { type StylingProps } from './styling.js';\nimport type { ReactNode } from 'react';\nimport { ToggleButtonGroup as AriaToggleButtonGroup } from 'react-aria-components/ToggleButtonGroup';\nimport type { ButtonSize } from './Button.js';\nimport {\n ToggleButtonSizeContext,\n ToggleButtonVariantContext,\n type ToggleButtonVariant,\n} from './ToggleButton.js';\nimport { ButtonGroupSeparator } from './ButtonGroup.js';\nimport { OverlayDirection } from './OverlayDirection.js';\n\ninterface Common extends StylingProps {\n label: string;\n children: ReactNode;\n size?: ButtonSize;\n variant?: ToggleButtonVariant;\n isDisabled?: boolean;\n isDetached?: boolean;\n fullWidth?: boolean;\n orientation?: 'horizontal' | 'vertical';\n dir?: 'ltr' | 'rtl';\n disallowEmptySelection?: boolean;\n}\nexport type ToggleButtonGroupProps = Common &\n (\n | {\n selectionMode?: 'single';\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n }\n | {\n selectionMode: 'multiple';\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n }\n );\nconst keys = (value: string | string[] | null | undefined) =>\n Array.isArray(value) ? value : value ? [value] : [];\nfunction Root(props: ToggleButtonGroupProps) {\n return (\n <OverlayDirection dir={props.dir}>\n <ToggleButtonSizeContext.Provider value={props.size ?? 'md'}>\n <ToggleButtonVariantContext.Provider value={props.variant ?? 'default'}>\n <AriaToggleButtonGroup\n aria-label={props.label}\n dir={props.dir}\n className={[\n 'button-group',\n props.classNames?.root,\n props.className,\n 'toggle-button-group',\n (props.isDetached ?? props.variant === 'chip') && 'button-group--detached',\n props.fullWidth && 'button-group--full-width',\n ]\n .filter(Boolean)\n .join(' ')}\n style={props.style}\n orientation={props.orientation ?? 'horizontal'}\n selectionMode={props.selectionMode ?? 'single'}\n selectedKeys={props.value === undefined ? undefined : keys(props.value)}\n defaultSelectedKeys={keys(props.defaultValue)}\n onSelectionChange={(selected) => {\n if (props.isDisabled) return;\n const next = Array.from(selected, String);\n if (props.selectionMode === 'multiple') props.onChange?.(next);\n else props.onChange?.(next[0] ?? null);\n }}\n isDisabled={props.isDisabled}\n disallowEmptySelection={props.disallowEmptySelection}\n >\n {props.children}\n </AriaToggleButtonGroup>\n </ToggleButtonVariantContext.Provider>\n </ToggleButtonSizeContext.Provider>\n </OverlayDirection>\n );\n}\nexport const ToggleButtonGroup = /* @__PURE__ */ Object.assign(Root, {\n Separator: ButtonGroupSeparator,\n});\n","import { useLayoutEffect, useState } from 'react';\nimport { Popover, type PopoverProps } from 'react-aria-components/Popover';\n\n/** Positioning must receive the cap: its available-space inline style wins over CSS. */\nexport function SelectionPopover({ maxHeight, ...props }: PopoverProps) {\n const [remHeight, setRemHeight] = useState(256);\n useLayoutEffect(() => {\n if (maxHeight !== undefined && Number.isFinite(maxHeight) && maxHeight > 0) return;\n const root = document.documentElement;\n const update = () => setRemHeight((parseFloat(getComputedStyle(root).fontSize) || 16) * 16);\n update();\n const resize = new ResizeObserver(update);\n resize.observe(root);\n const mutation = new MutationObserver(update);\n mutation.observe(root, { attributes: true, attributeFilter: ['style', 'class', 'data-theme'] });\n window.addEventListener('resize', update);\n return () => {\n resize.disconnect();\n mutation.disconnect();\n window.removeEventListener('resize', update);\n };\n }, [maxHeight]);\n const limit =\n maxHeight !== undefined && Number.isFinite(maxHeight) && maxHeight > 0 ? maxHeight : remHeight;\n return <Popover {...props} maxHeight={limit} />;\n}\n","import type { PopoverProps } from 'react-aria-components/Popover';\n\n/** Logical trigger edge the popover aligns to; `end` is the left edge in RTL. */\nexport type PopoverAlign = 'start' | 'center' | 'end';\n/** `trigger` matches the trigger width and wraps long options; `content` grows with its options. */\nexport type PopoverWidth = 'trigger' | 'content';\n/** React Aria positioning options forwarded to the popover. */\nexport type PopoverPositionProps = Pick<\n PopoverProps,\n 'placement' | 'offset' | 'crossOffset' | 'shouldFlip' | 'containerPadding'\n>;\nexport interface PopoverPositionOptions {\n /** Trigger edge the popover aligns to. Defaults to `start`. */\n popoverAlign?: PopoverAlign;\n /** Positioning passthrough; `placement` here wins over `popoverAlign`. */\n popoverProps?: PopoverPositionProps;\n}\n\nconst placements = {\n start: 'bottom start',\n center: 'bottom',\n end: 'bottom end',\n} as const satisfies Record<PopoverAlign, PopoverProps['placement']>;\n\n/** Merge defaults, the alignment shortcut and the passthrough, ignoring undefined passthrough keys. */\nexport function popoverPosition(\n { popoverAlign, popoverProps }: PopoverPositionOptions,\n defaults: PopoverPositionProps = {},\n): PopoverPositionProps {\n const result: PopoverPositionProps = {\n ...defaults,\n placement: popoverAlign ? placements[popoverAlign] : (defaults.placement ?? 'bottom start'),\n };\n for (const [key, value] of Object.entries(popoverProps ?? {}))\n if (value !== undefined) (result as Record<string, unknown>)[key] = value;\n return result;\n}\n\nexport function popoverWidthClass(width: PopoverWidth) {\n return `select__popover--${width}-width`;\n}\n","import { createContext } from 'react';\n\n/** Item labels use Text slots rather than introducing native label elements. */\nexport const ItemLabelContext = createContext(false);\n\n/** Field feedback parts share styling without coupling labels to a specific control. */\nexport const FieldPartClassesContext = createContext<{\n label?: string;\n description?: string;\n error?: string;\n}>({});\n","interface IconProps {\n className?: string;\n}\n\nexport function ChevronIcon({ className }: IconProps) {\n return (\n <svg\n className={className}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n );\n}\n\nexport function CheckIcon({ className }: IconProps) {\n return (\n <svg\n className={className}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M3.5 8.5l3 3 6-6.5\" />\n </svg>\n );\n}\n\nexport function CloseIcon({ className }: IconProps) {\n return (\n <svg\n className={className}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M4 4l8 8M12 4l-8 8\" />\n </svg>\n );\n}\n","import {\n createContext,\n useContext,\n useEffect,\n useState,\n type RefObject,\n type ButtonHTMLAttributes,\n} from 'react';\nimport { partClass } from './styling.js';\nimport { CloseIcon } from './icons.js';\nexport const InputClearContext = createContext<{\n value: string;\n disabled?: boolean;\n readOnly?: boolean;\n clear: () => void;\n} | null>(null);\nexport function useClearableInput(\n {\n value,\n defaultValue = '',\n onChange,\n isDisabled,\n isReadOnly,\n }: {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n },\n element: RefObject<HTMLElement | null>,\n) {\n const [local, setLocal] = useState(defaultValue);\n const current = value === undefined ? local : value;\n const update = (next: string) => {\n if (!isDisabled && !isReadOnly) {\n if (value === undefined) setLocal(next);\n onChange?.(next);\n }\n };\n useEffect(() => {\n const input =\n element.current instanceof HTMLInputElement || element.current instanceof HTMLTextAreaElement\n ? element.current\n : element.current?.querySelector<HTMLInputElement | HTMLTextAreaElement>('input,textarea');\n const form = input?.form;\n const reset = (event: Event) => {\n queueMicrotask(() => {\n if (!event.defaultPrevented && value === undefined) setLocal(defaultValue);\n });\n };\n form?.addEventListener('reset', reset);\n return () => form?.removeEventListener('reset', reset);\n }, [element, value, defaultValue]);\n return {\n value: current,\n update,\n context: {\n value: current,\n disabled: isDisabled,\n readOnly: isReadOnly,\n clear: () => {\n if (isDisabled || isReadOnly) return;\n update('');\n const input =\n element.current instanceof HTMLInputElement ||\n element.current instanceof HTMLTextAreaElement\n ? element.current\n : element.current?.querySelector<HTMLInputElement | HTMLTextAreaElement>(\n 'input,textarea',\n );\n input?.focus();\n },\n },\n };\n}\nexport function InputClearButton({\n className,\n children,\n onClick,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const context = useContext(InputClearContext);\n if (!context) throw new Error('Input.ClearButton requires Input.Root.');\n if (!context.value || context.readOnly) return null;\n return (\n <button\n aria-label=\"Hapus input / Clear input\"\n {...props}\n type=\"button\"\n className={partClass('input__clear', className)}\n disabled={context.disabled || props.disabled}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) context.clear();\n }}\n >\n {children ?? <CloseIcon />}\n </button>\n );\n}\n","import { SelectionPopover } from './selection-popover.js';\nimport { FieldPartClassesContext, ItemLabelContext } from './label-context.js';\nimport {\n createContext,\n forwardRef,\n useImperativeHandle,\n useRef,\n useContext,\n useEffect,\n useState,\n type Ref,\n type RefObject,\n type ComponentProps,\n type HTMLAttributes,\n} from 'react';\nimport { Button } from 'react-aria-components/Button';\nimport {\n Select as AriaSelect,\n SelectStateContext,\n SelectValue,\n type SelectProps as AriaSelectProps,\n type SelectValueProps,\n} from 'react-aria-components/Select';\nimport { type PopoverProps } from 'react-aria-components/Popover';\nimport {\n ListBox as AriaListBox,\n ListBoxItem,\n ListBoxSection,\n type ListBoxProps,\n type ListBoxItemProps,\n type ListBoxSectionProps,\n} from 'react-aria-components/ListBox';\nimport { Text, type TextProps } from 'react-aria-components/Text';\nimport { Header } from 'react-aria-components/Header';\nimport {\n FieldError as AriaFieldError,\n type FieldErrorProps,\n} from 'react-aria-components/FieldError';\nimport {\n TextField as AriaTextField,\n Input as AriaInput,\n type TextFieldProps,\n type InputProps as AriaInputProps,\n} from 'react-aria-components/TextField';\nimport { Group, type GroupProps } from 'react-aria-components/Group';\nimport { CloseIcon, ChevronIcon, CheckIcon } from './icons.js';\nimport { InputClearContext, useClearableInput } from './input-clear.js';\nimport { partClass, type StylingProps } from './styling.js';\n\nexport type SelectPart =\n | 'root'\n | 'label'\n | 'control'\n | 'trigger'\n | 'value'\n | 'indicator'\n | 'clearButton'\n | 'popover'\n | 'list'\n | 'item'\n | 'itemIndicator'\n | 'description'\n | 'error';\nexport type SelectCompositionProps<M extends 'single' | 'multiple' = 'single'> = Omit<\n AriaSelectProps<object, M>,\n 'className' | 'style' | 'onChange' | 'value' | 'defaultValue'\n> &\n StylingProps<SelectPart> & {\n options?: never;\n label?: never;\n value?: AriaSelectProps<object, M>['value'];\n defaultValue?: AriaSelectProps<object, M>['defaultValue'];\n onChange?: (value: M extends 'multiple' ? string[] : string | null) => void;\n onClear?: () => void;\n size?: import('./Select.js').SelectSize;\n variant?: import('./Select.js').SelectVariant;\n fullWidth?: boolean;\n hideLabel?: boolean;\n };\n\nconst SelectPartsContext = createContext<{\n classNames?: StylingProps<SelectPart>['classNames'];\n onClear?: () => void;\n disabled?: boolean;\n clearButtons: number;\n registerClear: () => () => void;\n triggerRef?: RefObject<HTMLButtonElement | null>;\n}>({ clearButtons: 0, registerClear: () => () => {} });\nconst InSelectTrigger = createContext(false);\n\nexport function SelectComposition<M extends 'single' | 'multiple' = 'single'>({\n className,\n style,\n classNames,\n onClear,\n onChange,\n size = 'md',\n variant = 'primary',\n fullWidth = true,\n hideLabel = false,\n ...props\n}: SelectCompositionProps<M>) {\n const [clearButtons, setClearButtons] = useState(0);\n const triggerRef = useRef<HTMLButtonElement>(null);\n // A stable callback avoids repeatedly registering mounted clear affordances.\n const [registerClear] = useState(() => () => {\n setClearButtons((count) => count + 1);\n return () => setClearButtons((count) => count - 1);\n });\n return (\n <SelectPartsContext.Provider\n value={{\n classNames,\n onClear,\n disabled: props.isDisabled,\n clearButtons,\n registerClear,\n triggerRef,\n }}\n >\n <FieldPartClassesContext.Provider value={classNames ?? {}}>\n <AriaSelect<object, M>\n {...props}\n data-multiple={props.selectionMode === 'multiple' || undefined}\n className={partClass(\n partClass(\n `select select--${size} select--${variant}${fullWidth ? '' : ' select--fit'}${hideLabel ? ' select--label-hidden' : ''}`,\n classNames?.root,\n ),\n className,\n )}\n style={style}\n onChange={(value) => {\n if (props.isDisabled) return;\n if (Array.isArray(value))\n (onChange as ((value: string[]) => void) | undefined)?.(value.map(String));\n else\n (onChange as ((value: string | null) => void) | undefined)?.(\n value == null ? null : String(value),\n );\n }}\n />\n </FieldPartClassesContext.Provider>\n </SelectPartsContext.Provider>\n );\n}\n\nexport function SelectControl({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n const { classNames, clearButtons } = useContext(SelectPartsContext);\n return (\n <div\n {...props}\n data-clearable={clearButtons > 0 || undefined}\n className={partClass(partClass('select__control', classNames?.control), className)}\n />\n );\n}\n\nexport function SelectTrigger({\n ref,\n className,\n children,\n onKeyDown,\n ...props\n}: Omit<ComponentProps<typeof Button>, 'className'> & { className?: string }) {\n const state = useContext(SelectStateContext);\n const context = useContext(SelectPartsContext);\n const element = useRef<HTMLButtonElement>(null);\n useImperativeHandle(ref, () => element.current!);\n useImperativeHandle(context.triggerRef, () => element.current!);\n const clear = () => {\n state?.setValue(Array.isArray(state.value) ? [] : null);\n context.onClear?.();\n };\n return (\n <Button\n {...props}\n ref={element}\n className={partClass(\n partClass('select__trigger select__composed-trigger', context.classNames?.trigger),\n className,\n )}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n if (\n !event.defaultPrevented &&\n !context.disabled &&\n context.clearButtons > 0 &&\n !state?.isOpen &&\n (event.key === 'Backspace' || event.key === 'Delete') &&\n state?.value != null &&\n (!Array.isArray(state.value) || state.value.length > 0)\n ) {\n event.preventDefault();\n clear();\n }\n }}\n >\n {(state) => (\n <InSelectTrigger.Provider value>\n {typeof children === 'function' ? children(state) : children}\n </InSelectTrigger.Provider>\n )}\n </Button>\n );\n}\n\nexport function SelectValuePart<T>({\n className,\n ...props\n}: Omit<SelectValueProps<T>, 'className'> & { className?: string }) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <SelectValue<T>\n {...props}\n className={partClass(partClass('select__value', classNames?.value), className)}\n />\n );\n}\n\nexport function SelectIndicator({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <span\n {...props}\n className={partClass(partClass('select__icon', classNames?.indicator), className)}\n aria-hidden=\"true\"\n >\n {children ?? <ChevronIcon />}\n </span>\n );\n}\n\n/** Nested clear is decorative to AT; Backspace/Delete on the trigger supplies keyboard clearing. Outside Trigger it is a named native button. */\nexport function SelectClearButton({\n className,\n children,\n 'aria-label': label = 'Hapus pilihan',\n ...props\n}: Pick<\n HTMLAttributes<HTMLSpanElement>,\n 'className' | 'children' | 'style' | 'aria-label' | 'id'\n>) {\n const state = useContext(SelectStateContext);\n const context = useContext(SelectPartsContext);\n const nested = useContext(InSelectTrigger);\n const registerClear = context.registerClear;\n useEffect(() => registerClear(), [registerClear]);\n const empty = state?.value == null || (Array.isArray(state.value) && state.value.length === 0);\n const disabled = context.disabled || empty;\n const classes = partClass(\n partClass('selection__clear', context.classNames?.clearButton),\n className,\n );\n const clear = () => {\n if (disabled) return;\n state?.setValue(Array.isArray(state.value) ? [] : null);\n context.onClear?.();\n context.triggerRef?.current?.focus();\n };\n const content = children ?? <CloseIcon className=\"selection__close-icon\" />;\n if (nested)\n return (\n <span\n {...props}\n className={classes}\n aria-hidden=\"true\"\n data-empty={empty || undefined}\n onPointerDown={(event) => event.stopPropagation()}\n onClick={(event) => {\n event.stopPropagation();\n if (event.button === 0) clear();\n }}\n >\n {content}\n </span>\n );\n return (\n <button\n {...props}\n type=\"button\"\n className={classes}\n aria-label={label}\n disabled={disabled}\n data-empty={empty || undefined}\n onClick={clear}\n >\n {content}\n </button>\n );\n}\n\nexport function SelectPopover({\n className,\n ...props\n}: Omit<PopoverProps, 'className'> & { className?: string }) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <SelectionPopover\n {...props}\n className={partClass(partClass('select__popover', classNames?.popover), className)}\n />\n );\n}\n\nexport function ListBoxRoot<T extends object>({\n className,\n ...props\n}: Omit<ListBoxProps<T>, 'className'> & { className?: string }) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <AriaListBox\n {...props}\n className={partClass(partClass('listbox__list select__list', classNames?.list), className)}\n />\n );\n}\nexport function ListBoxItemPart<T extends object>({\n className,\n children,\n ...props\n}: Omit<ListBoxItemProps<T>, 'className'> & { className?: string }) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <ListBoxItem\n {...props}\n textValue={\n props.textValue ??\n (typeof children === 'string' || typeof children === 'number'\n ? String(children)\n : undefined)\n }\n className={partClass(partClass('listbox__item select__item', classNames?.item), className)}\n >\n {(state) => (\n <ItemLabelContext.Provider value>\n {typeof children === 'function' ? children(state) : children}\n </ItemLabelContext.Provider>\n )}\n </ListBoxItem>\n );\n}\nexport function ListBoxSectionPart<T extends object>({\n className,\n ...props\n}: ListBoxSectionProps<T>) {\n return <ListBoxSection {...props} className={partClass('listbox__section', className)} />;\n}\nexport function ListBoxItemIndicator({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const { classNames } = useContext(SelectPartsContext);\n return (\n <span\n {...props}\n className={partClass(\n partClass('listbox__check select__check', classNames?.itemIndicator),\n className,\n )}\n aria-hidden=\"true\"\n >\n {children ?? <CheckIcon />}\n </span>\n );\n}\nexport const ListBox = /* @__PURE__ */ Object.assign(ListBoxRoot, {\n Item: ListBoxItemPart,\n Section: ListBoxSectionPart,\n ItemIndicator: ListBoxItemIndicator,\n});\n\nexport function Description({ className, ...props }: TextProps) {\n const fieldClasses = useContext(FieldPartClassesContext);\n const inItem = useContext(ItemLabelContext);\n return (\n <Text\n slot=\"description\"\n {...props}\n className={partClass(\n partClass('input__description', inItem ? undefined : fieldClasses.description),\n className,\n )}\n />\n );\n}\nexport function FieldError({\n className,\n ...props\n}: Omit<FieldErrorProps, 'className'> & { className?: string }) {\n const fieldClasses = useContext(FieldPartClassesContext);\n return (\n <AriaFieldError\n {...props}\n className={partClass(partClass('input__error', fieldClasses.error), className)}\n />\n );\n}\nexport type InputCompositionProps = Omit<TextFieldProps, 'className'> & {\n className?: string;\n label?: never;\n size?: import('./Input.js').InputSize;\n variant?: import('./Input.js').InputVariant;\n hideLabel?: boolean;\n};\nexport function InputRoot({\n className,\n size = 'md',\n variant = 'primary',\n hideLabel = false,\n value,\n defaultValue,\n onChange,\n ...props\n}: Omit<InputCompositionProps, 'label'>) {\n const root = useRef<HTMLDivElement>(null);\n const clearable = useClearableInput(\n { value, defaultValue, onChange, isDisabled: props.isDisabled, isReadOnly: props.isReadOnly },\n root,\n );\n return (\n <InputClearContext.Provider value={clearable.context}>\n <AriaTextField\n {...props}\n ref={root}\n value={clearable.value}\n onChange={clearable.update}\n className={partClass(\n `input input--${size} input--${variant}${hideLabel ? ' input--label-hidden' : ''}`,\n className,\n )}\n />\n </InputClearContext.Provider>\n );\n}\nexport const InputControlRefContext = createContext<Ref<HTMLInputElement> | undefined>(undefined);\nexport const InputControl = /* @__PURE__ */ forwardRef<\n HTMLInputElement,\n Omit<AriaInputProps, 'className'> & { className?: string }\n>(function InputControl({ className, ...props }, ref) {\n const inheritedRef = useContext(InputControlRefContext);\n const control = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => control.current!);\n useImperativeHandle(inheritedRef, () => control.current!);\n return <AriaInput {...props} ref={control} className={partClass('input__control', className)} />;\n});\nexport function InputGroup({\n className,\n ...props\n}: Omit<GroupProps, 'className'> & { className?: string }) {\n return <Group {...props} className={partClass('input__group', className)} />;\n}\nexport function InputPrefix({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} className={partClass('input__prefix', className)} />;\n}\nexport function InputSuffix({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} className={partClass('input__suffix', className)} />;\n}\nexport { Header };\n","import { partClass } from './styling.js';\nimport { useId } from 'react';\n\nexport interface FieldFeedbackProps {\n description?: string;\n errorMessage?: string;\n isInvalid?: boolean;\n}\n\nexport function useFeedback({\n description,\n errorMessage,\n isInvalid,\n classNames,\n}: FieldFeedbackProps & { classNames?: { description?: string; error?: string } }) {\n const id = useId();\n const descriptionId = `${id}-description`;\n const errorId = `${id}-error`;\n const showError = !!(isInvalid && errorMessage);\n return {\n describedBy:\n [description && descriptionId, showError && errorId].filter(Boolean).join(' ') || undefined,\n feedback: (\n <>\n {description && (\n <span\n id={descriptionId}\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </span>\n )}\n {showError && (\n <span id={errorId} className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </span>\n )}\n </>\n ),\n };\n}\n","import { useEffect, useRef } from 'react';\nexport function SelectionValidation({\n hasValue,\n required,\n disabled,\n onInvalid,\n onReset,\n onResetStart,\n}: {\n hasValue: boolean;\n required?: boolean;\n disabled?: boolean;\n onInvalid: () => void;\n onReset: (cancelled: boolean) => void;\n onResetStart: () => void;\n}) {\n const ref = useRef<HTMLInputElement>(null);\n useEffect(() => {\n const form = ref.current?.form;\n const reset = (event: Event) => {\n // Capture before headless controls react to reset; only commit after cancellation is known.\n onResetStart();\n // A new task is required: browser microtasks can run between capture and bubble listeners.\n setTimeout(() => onReset(event.defaultPrevented), 0);\n };\n form?.addEventListener('reset', reset, true);\n return () => form?.removeEventListener('reset', reset, true);\n }, [onReset, onResetStart]);\n return (\n <input\n ref={ref}\n className=\"selection__validation\"\n type=\"text\"\n tabIndex={-1}\n aria-hidden=\"true\"\n autoComplete=\"off\"\n required={required}\n disabled={disabled}\n value={hasValue ? 'selected' : ''}\n onChange={() => {}}\n onInvalid={(event) => {\n event.preventDefault();\n onInvalid();\n }}\n />\n );\n}\n","export interface SelectOption {\n id: string;\n label: string;\n description?: string;\n isDisabled?: boolean;\n}\nexport function selectionIds(value: unknown, options: SelectOption[], multiple: boolean): string[] {\n const requested = new Set(\n Array.isArray(value) ? value : typeof value === 'string' ? [value] : [],\n );\n const ids = [\n ...new Set(options.filter((o) => o.id !== '' && requested.has(o.id)).map((o) => o.id)),\n ];\n return multiple ? ids : ids.slice(0, 1);\n}\nexport function filterOptions(options: SelectOption[], query: string): SelectOption[] {\n const fold = (text: string) => text.normalize('NFD').replace(/\\p{M}/gu, '').toLowerCase();\n const search = fold(query.trim());\n return options.filter((o) => fold(`${o.label} ${o.description ?? ''}`).includes(search));\n}\n","import { SelectionPopover } from './selection-popover.js';\nimport {\n popoverPosition,\n popoverWidthClass,\n type PopoverPositionOptions,\n type PopoverWidth,\n} from './popover-position.js';\nimport {\n SelectComposition,\n SelectControl,\n SelectTrigger,\n SelectValuePart,\n SelectIndicator,\n SelectClearButton,\n SelectPopover,\n type SelectCompositionProps,\n} from './control-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useRef, useState, type ReactNode } from 'react';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport {\n Button,\n Label,\n ListBox,\n ListBoxItem,\n Select as AriaSelect,\n SelectValue,\n} from 'react-aria-components/Select';\nimport { CloseIcon, CheckIcon, ChevronIcon } from './icons.js';\nimport { useFeedback } from './field.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { selectionIds, type SelectOption } from './selection-options.js';\nexport type { SelectOption } from './selection-options.js';\nexport type SelectSize = 'xs' | 'sm' | 'dense' | 'md' | 'lg' | 'xl';\nexport type SelectVariant = 'primary' | 'secondary' | 'outline' | 'flat';\ninterface SelectCommonProps\n extends\n PopoverPositionOptions,\n StylingProps<\n | 'root'\n | 'label'\n | 'required'\n | 'control'\n | 'trigger'\n | 'leading'\n | 'value'\n | 'indicator'\n | 'clearButton'\n | 'clearIcon'\n | 'popover'\n | 'list'\n | 'item'\n | 'itemLabel'\n | 'itemDescription'\n | 'itemIndicator'\n | 'description'\n | 'error'\n > {\n /** Activates an option even when it is already selected (for linked editors). */\n onAction?: (value: string) => void;\n label: string;\n options: SelectOption[];\n maxHeight?: number;\n /** `content` (default) grows with the options; `trigger` matches the trigger and wraps them. */\n popoverWidth?: PopoverWidth;\n size?: SelectSize;\n variant?: SelectVariant;\n /** Hide visually while retaining the accessible label. */\n hideLabel?: boolean;\n /** Defaults to true to preserve the existing full-width trigger. */\n fullWidth?: boolean;\n /** Decorative noninteractive icon before the value/input. */\n startContent?: ReactNode;\n placeholder?: string;\n isDisabled?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n description?: string;\n errorMessage?: string;\n requiredMessage?: string;\n name?: string;\n dir?: 'ltr' | 'rtl';\n isClearable?: boolean;\n clearLabel?: string;\n onClear?: () => void;\n renderOption?: (option: SelectOption) => ReactNode;\n renderValue?: (selected: SelectOption[]) => ReactNode;\n}\nexport type SelectProps = SelectCommonProps &\n (\n | {\n selectionMode?: 'single';\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string) => void;\n }\n | {\n selectionMode: 'multiple';\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n }\n );\nfunction SelectCompact(props: Extract<SelectProps, { selectionMode: 'multiple' }>): ReactNode;\nfunction SelectCompact(props: Exclude<SelectProps, { selectionMode: 'multiple' }>): ReactNode;\nfunction SelectCompact(props: SelectProps) {\n const {\n label,\n options,\n placeholder,\n isDisabled,\n isRequired,\n isClearable,\n clearLabel = 'Hapus pilihan',\n dir,\n } = props;\n const multiple = props.selectionMode === 'multiple';\n const [local, setLocal] = useState<unknown>(props.defaultValue);\n const [tried, setTried] = useState(false);\n const resetting = useRef(false);\n const trigger = useRef<HTMLButtonElement>(null);\n const ids = selectionIds(props.value !== undefined ? props.value : local, options, multiple);\n const selected = options.filter((o) => ids.includes(o.id));\n const invalid = props.isInvalid || (tried && isRequired && ids.length === 0);\n const { describedBy, feedback } = useFeedback({\n classNames: props.classNames,\n description: props.description,\n isInvalid: invalid,\n errorMessage:\n props.errorMessage ??\n (isRequired && ids.length === 0\n ? (props.requiredMessage ?? 'Pilihan wajib diisi.')\n : undefined),\n });\n function update(value: unknown) {\n if (isDisabled || resetting.current) return;\n const next = selectionIds(value, options, multiple);\n setLocal(multiple ? next : (next[0] ?? null));\n if (props.selectionMode === 'multiple') props.onChange?.(next);\n else if (next[0] !== undefined) props.onChange?.(next[0]);\n }\n function clear() {\n if (isDisabled || resetting.current) return;\n setLocal(multiple ? [] : null);\n if (props.selectionMode === 'multiple') props.onChange?.([]);\n props.onClear?.();\n trigger.current?.focus();\n }\n const select = (\n <AriaSelect<SelectOption, 'single' | 'multiple'>\n className={[\n 'select',\n props.classNames?.root,\n props.className,\n `select--${props.size ?? 'md'}`,\n `select--${props.variant ?? 'primary'}`,\n props.hideLabel && 'select--label-hidden',\n props.fullWidth === false && 'select--fit',\n ]\n .filter(Boolean)\n .join(' ')}\n style={props.style}\n data-multiple={multiple || undefined}\n selectionMode={multiple ? 'multiple' : 'single'}\n value={multiple ? ids : (ids[0] ?? null)}\n onChange={update}\n placeholder={placeholder}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isInvalid={!!invalid}\n validationBehavior=\"aria\"\n aria-describedby={describedBy}\n >\n <Label className={partClass('select__label', props.classNames?.label)}>\n {label}\n {isRequired && (\n <span\n className={partClass('selection__required', props.classNames?.required)}\n aria-hidden=\"true\"\n >\n {' '}\n *\n </span>\n )}\n </Label>\n <div\n className={partClass('select__control', props.classNames?.control)}\n data-clearable={isClearable || undefined}\n >\n <Button\n ref={trigger}\n className={partClass('select__trigger', props.classNames?.trigger)}\n aria-describedby={describedBy}\n >\n {props.startContent && (\n <span\n className={partClass('selection__leading', props.classNames?.leading)}\n aria-hidden=\"true\"\n >\n {props.startContent}\n </span>\n )}\n <SelectValue className={partClass('select__value', props.classNames?.value)}>\n {() =>\n selected.length\n ? (props.renderValue?.(selected) ?? selected.map((o) => o.label).join(', '))\n : placeholder\n }\n </SelectValue>\n <ChevronIcon className={partClass('select__icon', props.classNames?.indicator)} />\n </Button>\n {isClearable && (\n <button\n type=\"button\"\n className={partClass('selection__clear', props.classNames?.clearButton)}\n data-empty={ids.length === 0 || undefined}\n aria-hidden={ids.length === 0 || undefined}\n tabIndex={ids.length === 0 ? -1 : undefined}\n aria-label={clearLabel}\n disabled={isDisabled || ids.length === 0}\n onClick={clear}\n >\n <CloseIcon\n className={partClass('selection__close-icon', props.classNames?.clearIcon)}\n />\n </button>\n )}\n </div>\n <SelectionPopover\n {...popoverPosition(props)}\n maxHeight={props.maxHeight}\n className={partClass(\n `select__popover ${popoverWidthClass(props.popoverWidth ?? 'content')}`,\n props.classNames?.popover,\n )}\n >\n <ListBox className={partClass('select__list', props.classNames?.list)}>\n {options.map((option) => (\n <ListBoxItem\n onPress={props.onAction ? () => props.onAction!(option.id) : undefined}\n key={option.id}\n id={option.id}\n textValue={option.label}\n isDisabled={option.isDisabled}\n className={partClass('select__item', props.classNames?.item)}\n >\n <span className={partClass('select__item-label', props.classNames?.itemLabel)}>\n {props.renderOption?.(option) ?? (\n <>\n {option.label}\n {option.description && (\n <span\n className={partClass(\n 'selection__description',\n props.classNames?.itemDescription,\n )}\n >\n {option.description}\n </span>\n )}\n </>\n )}\n </span>\n <CheckIcon className={partClass('select__check', props.classNames?.itemIndicator)} />\n </ListBoxItem>\n ))}\n </ListBox>\n </SelectionPopover>\n {feedback}\n {props.name &&\n (multiple ? ids : [ids[0] ?? '']).map((id, i) => (\n <input key={i} type=\"hidden\" name={props.name} value={id} disabled={isDisabled} />\n ))}\n <SelectionValidation\n hasValue={ids.length > 0}\n required={isRequired}\n disabled={isDisabled}\n onInvalid={() => {\n setTried(true);\n trigger.current?.focus();\n }}\n onResetStart={() => {\n resetting.current = true;\n }}\n onReset={(cancelled) => {\n resetting.current = false;\n if (!cancelled) {\n setTried(false);\n if (props.value === undefined) setLocal(props.defaultValue);\n }\n }}\n />\n </AriaSelect>\n );\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{select}</I18nProvider>\n ) : (\n select\n );\n}\n\nfunction SelectRoot(\n props: Extract<SelectProps, { selectionMode: 'multiple' }> | SelectCompositionProps<'multiple'>,\n): ReactNode;\nfunction SelectRoot(\n props: Exclude<SelectProps, { selectionMode: 'multiple' }> | SelectCompositionProps<'single'>,\n): ReactNode;\nfunction SelectRoot(\n props: SelectProps | SelectCompositionProps<'single'> | SelectCompositionProps<'multiple'>,\n) {\n if (props.options)\n return props.selectionMode === 'multiple' ? (\n <SelectCompact {...props} />\n ) : (\n <SelectCompact {...props} />\n );\n if (props.selectionMode === 'multiple') return <SelectComposition<'multiple'> {...props} />;\n return <SelectComposition<'single'> {...(props as SelectCompositionProps<'single'>)} />;\n}\nexport const Select = /* @__PURE__ */ Object.assign(SelectRoot, {\n Root: SelectComposition,\n Control: SelectControl,\n Trigger: SelectTrigger,\n Value: SelectValuePart,\n Indicator: SelectIndicator,\n ClearButton: SelectClearButton,\n Popover: SelectPopover,\n});\nexport type { SelectCompositionProps } from './control-composition.js';\n","import { partClass, type StylingProps } from './styling.js';\nimport {\n Children,\n Fragment,\n cloneElement,\n isValidElement,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { Select, type SelectProps, type SelectSize, type SelectVariant } from './Select.js';\nexport interface SelectGroupProps extends StylingProps<'root' | 'label' | 'controls'> {\n label: string;\n children: ReactNode;\n size?: SelectSize;\n variant?: SelectVariant;\n fullWidth?: boolean;\n isDisabled?: boolean;\n dir?: 'ltr' | 'rtl';\n}\n/** Joins direct Select children. Each child retains its own value and accessible label. */\nexport function SelectGroup({\n label,\n children,\n size,\n variant,\n fullWidth = true,\n isDisabled,\n dir,\n className,\n style,\n classNames,\n}: SelectGroupProps) {\n function defaults(nodes: ReactNode): ReactNode {\n return Children.map(nodes, (child) => {\n if (!isValidElement(child)) return child;\n if (child.type === Fragment)\n return cloneElement(\n child as ReactElement<{ children: ReactNode }>,\n {},\n defaults((child.props as { children: ReactNode }).children),\n );\n if (child.type !== Select) return child;\n const select = child as ReactElement<SelectProps>;\n return cloneElement(select, {\n size: select.props.size ?? size,\n variant: select.props.variant ?? variant,\n hideLabel: select.props.hideLabel ?? true,\n fullWidth: select.props.fullWidth ?? fullWidth,\n isDisabled: !!isDisabled || select.props.isDisabled,\n dir: select.props.dir ?? dir,\n });\n });\n }\n return (\n <fieldset\n className={['select-group', !fullWidth && 'select-group--fit', classNames?.root, className]\n .filter(Boolean)\n .join(' ')}\n style={style}\n disabled={isDisabled}\n dir={dir}\n >\n <legend className={partClass('select-group__legend', classNames?.label)}>{label}</legend>\n <div className={partClass('select-group__controls', classNames?.controls)}>\n {defaults(children)}\n </div>\n </fieldset>\n );\n}\n","import {\n InputRoot,\n InputControl,\n InputGroup,\n InputPrefix,\n InputSuffix,\n InputControlRefContext,\n type InputCompositionProps,\n} from './control-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { InputClearButton, InputClearContext, useClearableInput } from './input-clear.js';\nimport {\n FieldError,\n Input as AriaInput,\n Label,\n Text,\n TextField,\n} from 'react-aria-components/TextField';\nimport {\n forwardRef,\n useImperativeHandle,\n useRef,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type ReactNode,\n} from 'react';\n\nexport type InputSize = 'xs' | 'sm' | 'dense' | 'md' | 'lg' | 'xl';\nexport type InputType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url';\nexport type InputVariant = 'primary' | 'secondary' | 'flat' | 'sunken';\nexport type InputMode =\n 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';\nexport type InputEnterKeyHint = 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';\n\n/** A labeled single-line string field. Numeric/date parsing is a separate contract. */\nexport interface InputProps extends StylingProps<\n | 'root'\n | 'input'\n | 'control'\n | 'label'\n | 'boundary'\n | 'prefix'\n | 'suffix'\n | 'description'\n | 'error'\n | 'group'\n | 'clearButton'\n> {\n label: string;\n value?: string;\n defaultValue?: string;\n /** Receives the string value, not a DOM event. Clear with an empty string. */\n onChange?: (value: string) => void;\n description?: string;\n /** Shown only when isInvalid is true; the application owns validation. */\n errorMessage?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n placeholder?: string;\n type?: InputType;\n size?: InputSize;\n variant?: InputVariant;\n /** Fill the available width. Defaults to true to preserve the existing field layout. */\n fullWidth?: boolean;\n hideLabel?: boolean;\n isClearable?: boolean;\n clearLabel?: string;\n /** Leading/trailing content. Mark decorative icons aria-hidden; name interactive buttons. */\n prefix?: ReactNode;\n suffix?: ReactNode;\n name?: string;\n id?: string;\n autoComplete?: string;\n maxLength?: number;\n minLength?: number;\n pattern?: string;\n inputMode?: InputMode;\n enterKeyHint?: InputEnterKeyHint;\n autoFocus?: boolean;\n spellCheck?: boolean;\n form?: string;\n onFocus?: FocusEventHandler<HTMLInputElement>;\n onBlur?: FocusEventHandler<HTMLInputElement>;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n onKeyUp?: KeyboardEventHandler<HTMLInputElement>;\n dir?: 'ltr' | 'rtl';\n}\n\nconst CompactInput = /* @__PURE__ */ forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n label,\n value,\n defaultValue,\n onChange,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n placeholder,\n type = 'text',\n size = 'md',\n variant = 'primary',\n fullWidth = true,\n hideLabel = false,\n isClearable = false,\n clearLabel,\n prefix,\n suffix,\n name,\n id,\n autoComplete,\n maxLength,\n minLength,\n pattern,\n inputMode,\n enterKeyHint,\n autoFocus,\n spellCheck,\n form,\n onFocus,\n onBlur,\n onKeyDown,\n onKeyUp,\n dir,\n className,\n style,\n classNames,\n }: InputProps,\n ref,\n) {\n const control = useRef<HTMLInputElement>(null);\n const clearable = useClearableInput(\n { value, defaultValue, onChange, isDisabled, isReadOnly },\n control,\n );\n useImperativeHandle(ref, () => control.current!);\n const hasAdornment = prefix != null || suffix != null || isClearable;\n /* eslint-disable jsx-a11y/no-autofocus -- This forwards the caller's explicit opt-in; autofocus is never enabled by default. */\n const input = (\n <AriaInput\n ref={control}\n className={partClass(partClass('input__control', classNames?.input), classNames?.control)}\n placeholder={placeholder}\n required={isRequired}\n minLength={minLength}\n pattern={pattern}\n inputMode={inputMode}\n enterKeyHint={enterKeyHint}\n autoFocus={autoFocus}\n spellCheck={spellCheck}\n form={form}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n />\n );\n /* eslint-enable jsx-a11y/no-autofocus */\n return (\n <InputClearContext.Provider value={clearable.context}>\n <TextField\n className={partClass(\n partClass(\n `input input--${size} input--${variant}${fullWidth ? '' : ' input--fit'}${hideLabel ? ' input--label-hidden' : ''}`,\n classNames?.root,\n ),\n className,\n )}\n style={style}\n value={clearable.value}\n onChange={clearable.update}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n validationBehavior=\"aria\"\n type={type}\n name={name}\n id={id}\n autoComplete={autoComplete}\n maxLength={maxLength}\n dir={dir}\n >\n <Label className={partClass('input__label', classNames?.label)}>{label}</Label>\n <fieldset\n className={partClass('input__boundary', classNames?.boundary)}\n role=\"presentation\"\n disabled={isDisabled}\n >\n <div\n className={partClass(hasAdornment ? 'input__group' : 'input__plain', classNames?.group)}\n data-invalid={isInvalid || undefined}\n data-readonly={isReadOnly || undefined}\n onPointerDown={(event) => {\n if (\n !isDisabled &&\n !(event.target as Element).closest(\n 'input,button,a,select,textarea,[tabindex],[contenteditable]',\n )\n ) {\n event.preventDefault();\n control.current?.focus();\n }\n }}\n >\n {prefix != null && (\n <span className={partClass('input__prefix', classNames?.prefix)}>{prefix}</span>\n )}\n {input}\n {isClearable && (\n <InputClearButton\n aria-label={clearLabel ?? 'Hapus input / Clear input'}\n className={classNames?.clearButton}\n />\n )}\n {suffix != null && (\n <span className={partClass('input__suffix', classNames?.suffix)}>{suffix}</span>\n )}\n </div>\n </fieldset>\n {description && (\n <Text\n slot=\"description\"\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </Text>\n )}\n {isInvalid && errorMessage && (\n <FieldError className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </FieldError>\n )}\n </TextField>\n </InputClearContext.Provider>\n );\n});\n\nconst InputWithComposition = /* @__PURE__ */ forwardRef<\n HTMLInputElement,\n InputProps | InputCompositionProps\n>(function InputWithComposition(props, ref) {\n if ('label' in props && props.label !== undefined)\n return <CompactInput {...(props as InputProps)} ref={ref} />;\n return (\n <InputControlRefContext.Provider value={ref}>\n <InputRoot {...(props as InputCompositionProps)} />\n </InputControlRefContext.Provider>\n );\n});\nexport const Input = /* @__PURE__ */ Object.assign(InputWithComposition, {\n Root: InputRoot,\n Control: InputControl,\n Group: InputGroup,\n Prefix: InputPrefix,\n Suffix: InputSuffix,\n ClearButton: InputClearButton,\n});\n","import { InputRoot, type InputCompositionProps } from './control-composition.js';\nimport type { TextAreaProps as AriaTextAreaProps } from 'react-aria-components/TextField';\nimport { partClass, type StylingProps } from './styling.js';\nimport {\n FieldError,\n TextArea as AriaTextArea,\n Label,\n Text,\n TextField,\n} from 'react-aria-components/TextField';\n\n/** A labeled multiline string field; validation is owned by the application. */\nexport interface TextareaProps extends StylingProps<\n 'root' | 'label' | 'input' | 'description' | 'error'\n> {\n label: string;\n value?: string;\n defaultValue?: string;\n /** Receives the string value, not a DOM event. Clear with an empty string. */\n onChange?: (value: string) => void;\n description?: string;\n /** Shown only when isInvalid is true; the application owns validation. */\n errorMessage?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n placeholder?: string;\n rows?: number;\n resize?: 'vertical' | 'none';\n name?: string;\n id?: string;\n autoComplete?: string;\n maxLength?: number;\n dir?: 'ltr' | 'rtl';\n}\n\nfunction CompactTextarea({\n label,\n value,\n defaultValue,\n onChange,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n placeholder,\n rows = 3,\n resize = 'vertical',\n name,\n id,\n autoComplete,\n maxLength,\n dir,\n className,\n style,\n classNames,\n}: TextareaProps) {\n return (\n <TextField\n className={partClass(partClass('input textarea', classNames?.root), className)}\n style={style}\n data-resize={resize}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n validationBehavior=\"aria\"\n name={name}\n id={id}\n autoComplete={autoComplete}\n maxLength={maxLength}\n dir={dir}\n >\n <Label className={partClass('input__label', classNames?.label)}>{label}</Label>\n <AriaTextArea\n className={partClass('input__control textarea__control', classNames?.input)}\n rows={rows}\n placeholder={placeholder}\n required={isRequired}\n />\n {description && (\n <Text\n slot=\"description\"\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </Text>\n )}\n {isInvalid && errorMessage && (\n <FieldError className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </FieldError>\n )}\n </TextField>\n );\n}\n\nfunction TextareaControl({\n className,\n ...props\n}: Omit<AriaTextAreaProps, 'className'> & { className?: string }) {\n return (\n <AriaTextArea {...props} className={partClass('input__control textarea__control', className)} />\n );\n}\nfunction TextareaRoot(props: TextareaProps | InputCompositionProps) {\n if ('label' in props && props.label !== undefined)\n return <CompactTextarea {...(props as TextareaProps)} />;\n return <InputRoot {...(props as InputCompositionProps)} />;\n}\nexport const Textarea = /* @__PURE__ */ Object.assign(TextareaRoot, {\n Root: InputRoot,\n Control: TextareaControl,\n});\n","import { partClass, type StylingProps } from './styling.js';\nimport { useContext, type ReactNode } from 'react';\nimport { Label as AriaLabel } from 'react-aria-components/Label';\nimport { Text } from 'react-aria-components/Text';\nimport { FieldPartClassesContext, ItemLabelContext } from './label-context.js';\n\nexport interface LabelProps extends StylingProps<'root'> {\n children: ReactNode;\n htmlFor?: string;\n id?: string;\n}\n\n/** Associates visible text with a separately rendered control. */\nexport function Label({ children, htmlFor, id, className, style, classNames }: LabelProps) {\n const inItem = useContext(ItemLabelContext);\n const fieldClasses = useContext(FieldPartClassesContext);\n if (inItem)\n return (\n <Text\n slot=\"label\"\n id={id}\n className={partClass(partClass('label', classNames?.root), className)}\n style={style}\n >\n {children}\n </Text>\n );\n return (\n <AriaLabel\n className={partClass(\n partClass(partClass('label', fieldClasses.label), classNames?.root),\n className,\n )}\n style={style}\n htmlFor={htmlFor}\n id={id}\n >\n {children}\n </AriaLabel>\n );\n}\n","import { createContext, useContext, type HTMLAttributes } from 'react';\nimport type { Tone, ComponentSize } from './visual.js';\nimport { partClass } from './styling.js';\nexport interface SwitchVisualProps {\n size?: ComponentSize;\n tone?: Tone;\n variant?: 'default' | 'outline';\n}\nexport const SwitchVisualContext = createContext<SwitchVisualProps & { isDisabled?: boolean }>({});\nexport function SwitchGroup({\n size,\n tone,\n variant,\n isDisabled,\n orientation = 'vertical',\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement> &\n SwitchVisualProps & {\n label?: string;\n orientation?: 'horizontal' | 'vertical';\n isDisabled?: boolean;\n }) {\n const { label, ...native } = props;\n return (\n <SwitchVisualContext.Provider value={{ size, tone, variant, isDisabled }}>\n <div\n {...native}\n role=\"group\"\n aria-label={label ?? props['aria-label']}\n className={partClass('switch-group', className)}\n data-orientation={orientation}\n />\n </SwitchVisualContext.Provider>\n );\n}\nexport function useSwitchVisual(props: SwitchVisualProps) {\n const inherited = useContext(SwitchVisualContext);\n return {\n size: props.size ?? inherited.size ?? 'md',\n tone: props.tone ?? inherited.tone ?? 'primary',\n variant: props.variant ?? inherited.variant ?? 'default',\n disabled: inherited.isDisabled,\n };\n}\n","import { ItemLabelContext } from './label-context.js';\nimport { createContext, useContext, type HTMLAttributes } from 'react';\nimport {\n Checkbox as AriaCheckbox,\n type CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components/Checkbox';\nimport { SwitchField, SwitchButton, type SwitchFieldProps } from 'react-aria-components/Switch';\nimport {\n RadioGroup as AriaRadioGroup,\n Radio,\n type RadioGroupProps as AriaRadioGroupProps,\n type RadioProps,\n} from 'react-aria-components/RadioGroup';\nimport { CheckIcon } from './icons.js';\nimport { partClass } from './styling.js';\nimport { SwitchVisualContext, useSwitchVisual, type SwitchVisualProps } from './switch-visual.js';\n\ninterface ChoiceState {\n isSelected: boolean;\n isDisabled: boolean;\n isInvalid?: boolean;\n isIndeterminate?: boolean;\n isFocusVisible?: boolean;\n}\nconst ChoiceStateContext = createContext<ChoiceState>({ isSelected: false, isDisabled: false });\ntype ChoiceElementProps = HTMLAttributes<HTMLSpanElement>;\n\nexport type CheckboxCompositionProps = Omit<AriaCheckboxProps, 'className'> & {\n className?: string;\n label?: never;\n};\nexport function CheckboxComposition({ className, children, ...props }: CheckboxCompositionProps) {\n return (\n <AriaCheckbox {...props} className={partClass('choice', className)}>\n {(state) => (\n <ChoiceStateContext.Provider value={state}>\n <ItemLabelContext.Provider value>\n {typeof children === 'function' ? children(state) : children}\n </ItemLabelContext.Provider>\n </ChoiceStateContext.Provider>\n )}\n </AriaCheckbox>\n );\n}\nexport function CheckboxControl({ className, ...props }: ChoiceElementProps) {\n const state = useContext(ChoiceStateContext);\n return (\n <span\n {...props}\n className={partClass('checkbox__control', className)}\n aria-hidden=\"true\"\n data-state={\n state.isIndeterminate ? 'indeterminate' : state.isSelected ? 'checked' : 'unchecked'\n }\n data-disabled={state.isDisabled || undefined}\n data-invalid={state.isInvalid || undefined}\n data-focus-visible={state.isFocusVisible || undefined}\n />\n );\n}\nexport function CheckboxIndicator({ className, children, ...props }: ChoiceElementProps) {\n const state = useContext(ChoiceStateContext);\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('checkbox__indicator', className)}>\n {children ??\n (state.isIndeterminate ? (\n <span className=\"checkbox__dash\" />\n ) : (\n <CheckIcon className=\"checkbox__check\" />\n ))}\n </span>\n );\n}\nexport function ChoiceContent({ className, ...props }: ChoiceElementProps) {\n return <span {...props} className={partClass('choice__label', className)} />;\n}\n\nexport type SwitchCompositionProps = Omit<SwitchFieldProps, 'className' | 'children'> &\n SwitchVisualProps & {\n className?: string;\n label?: never;\n children?:\n | import('react').ReactNode\n | ((\n state: import('react-aria-components/Switch').SwitchFieldRenderProps &\n Partial<import('react-aria-components/Switch').SwitchButtonRenderProps>,\n ) => import('react').ReactNode);\n };\nexport function SwitchComposition({\n className,\n children,\n size,\n tone,\n variant,\n ...props\n}: SwitchCompositionProps) {\n const visual = useSwitchVisual({ size, tone, variant });\n return (\n <SwitchVisualContext.Provider value={visual}>\n <SwitchField\n {...props}\n isDisabled={props.isDisabled ?? visual.disabled}\n className={partClass('input', className)}\n >\n {(fieldState) => (\n <SwitchButton className=\"choice\">\n {(state) => (\n <ChoiceStateContext.Provider value={state}>\n <ItemLabelContext.Provider value>\n {typeof children === 'function'\n ? children({ ...fieldState, ...state })\n : children}\n </ItemLabelContext.Provider>\n </ChoiceStateContext.Provider>\n )}\n </SwitchButton>\n )}\n </SwitchField>\n </SwitchVisualContext.Provider>\n );\n}\nexport function SwitchControl({ className, ...props }: ChoiceElementProps) {\n const state = useContext(ChoiceStateContext);\n const visual = useSwitchVisual({});\n return (\n <span\n {...props}\n className={partClass('switch__control', className)}\n data-size={visual.size}\n data-tone={visual.tone}\n data-variant={visual.variant}\n aria-hidden=\"true\"\n data-state={state.isSelected ? 'checked' : 'unchecked'}\n data-disabled={state.isDisabled || undefined}\n data-invalid={state.isInvalid || undefined}\n data-focus-visible={state.isFocusVisible || undefined}\n />\n );\n}\nexport function SwitchThumb({ className, ...props }: ChoiceElementProps) {\n return <span {...props} className={partClass('switch__thumb', className)} aria-hidden=\"true\" />;\n}\nexport function SwitchIcon({ className, ...props }: ChoiceElementProps) {\n return <span {...props} className={partClass('switch__icon', className)} aria-hidden=\"true\" />;\n}\n\nexport type RadioGroupCompositionProps = Omit<AriaRadioGroupProps, 'className'> & {\n className?: string;\n options?: never;\n label?: never;\n};\nexport function RadioGroupComposition({ className, ...props }: RadioGroupCompositionProps) {\n return <AriaRadioGroup {...props} className={partClass('input radio-group', className)} />;\n}\nexport function RadioItem({\n className,\n children,\n ...props\n}: Omit<RadioProps, 'className'> & { className?: string }) {\n return (\n <Radio {...props} className={partClass('choice', className)}>\n {(state) => (\n <ChoiceStateContext.Provider value={state}>\n {typeof children === 'function' ? children(state) : children}\n </ChoiceStateContext.Provider>\n )}\n </Radio>\n );\n}\nexport function RadioControl({ className, ...props }: ChoiceElementProps) {\n const state = useContext(ChoiceStateContext);\n return (\n <span\n {...props}\n className={partClass('radio__control', className)}\n aria-hidden=\"true\"\n data-state={state.isSelected ? 'checked' : 'unchecked'}\n data-disabled={state.isDisabled || undefined}\n data-focus-visible={state.isFocusVisible || undefined}\n />\n );\n}\nexport function RadioIndicator({ className, ...props }: ChoiceElementProps) {\n return <span {...props} className={partClass('radio__dot', className)} aria-hidden=\"true\" />;\n}\n","import {\n CheckboxComposition,\n CheckboxControl,\n CheckboxIndicator,\n ChoiceContent,\n type CheckboxCompositionProps,\n} from './choice-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { Checkbox as AriaCheckbox } from 'react-aria-components/Checkbox';\nimport { CheckIcon } from './icons.js';\nimport { useFeedback, type FieldFeedbackProps } from './field.js';\n\nexport interface CheckboxProps\n extends\n FieldFeedbackProps,\n StylingProps<\n 'root' | 'choice' | 'control' | 'indicator' | 'dash' | 'label' | 'description' | 'error'\n > {\n label: string;\n isSelected?: boolean;\n defaultSelected?: boolean;\n onChange?: (selected: boolean) => void;\n isDisabled?: boolean;\n isRequired?: boolean;\n /** Presentational mixed state; the application clears it after a change. */\n isIndeterminate?: boolean;\n name?: string;\n value?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nfunction CompactCheckbox({\n label,\n description,\n errorMessage,\n isInvalid = false,\n isSelected,\n defaultSelected,\n onChange,\n isDisabled = false,\n isRequired = false,\n isIndeterminate = false,\n name,\n value = 'on',\n id,\n dir,\n className,\n style,\n classNames,\n}: CheckboxProps) {\n const { describedBy, feedback } = useFeedback({\n classNames: classNames,\n description,\n errorMessage,\n isInvalid,\n });\n return (\n <div\n className={partClass(partClass('input', classNames?.root), className)}\n style={style}\n dir={dir}\n >\n <AriaCheckbox\n className={partClass('choice', classNames?.choice)}\n isSelected={isSelected}\n defaultSelected={defaultSelected}\n onChange={onChange}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isInvalid={isInvalid}\n isIndeterminate={isIndeterminate}\n validationBehavior=\"aria\"\n name={name}\n value={value}\n id={id}\n aria-describedby={describedBy}\n aria-invalid={isInvalid || undefined}\n >\n {({ isSelected: selected, isDisabled: disabled, isFocusVisible }) => (\n <>\n <span\n aria-hidden=\"true\"\n className={partClass('checkbox__control', classNames?.control)}\n data-state={isIndeterminate ? 'indeterminate' : selected ? 'checked' : 'unchecked'}\n data-disabled={disabled || undefined}\n data-invalid={isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n >\n <CheckIcon className={partClass('checkbox__check', classNames?.indicator)} />\n <span className={partClass('checkbox__dash', classNames?.dash)} />\n </span>\n <span className={partClass('choice__label', classNames?.label)}>{label}</span>\n </>\n )}\n </AriaCheckbox>\n {feedback}\n </div>\n );\n}\n\nfunction CheckboxRoot(props: CheckboxProps | CheckboxCompositionProps) {\n if ('label' in props) return <CompactCheckbox {...(props as CheckboxProps)} />;\n return <CheckboxComposition {...(props as CheckboxCompositionProps)} />;\n}\nexport const Checkbox = /* @__PURE__ */ Object.assign(CheckboxRoot, {\n Root: CheckboxComposition,\n Control: CheckboxControl,\n Indicator: CheckboxIndicator,\n Content: ChoiceContent,\n});\nexport type { CheckboxCompositionProps } from './choice-composition.js';\n","import {\n RadioGroupComposition,\n RadioItem,\n RadioControl,\n RadioIndicator,\n ChoiceContent,\n type RadioGroupCompositionProps,\n} from './choice-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { Label, Radio, RadioGroup as AriaRadioGroup } from 'react-aria-components/RadioGroup';\nimport { useFeedback, type FieldFeedbackProps } from './field.js';\n\nexport interface RadioOption {\n id: string;\n label: string;\n isDisabled?: boolean;\n}\nexport interface RadioGroupProps\n extends\n FieldFeedbackProps,\n StylingProps<\n | 'root'\n | 'label'\n | 'items'\n | 'item'\n | 'control'\n | 'indicator'\n | 'itemLabel'\n | 'description'\n | 'error'\n > {\n label: string;\n options: RadioOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n isDisabled?: boolean;\n isRequired?: boolean;\n name?: string;\n id?: string;\n orientation?: 'vertical' | 'horizontal';\n dir?: 'ltr' | 'rtl';\n}\n\nfunction CompactRadioGroup({\n label,\n options,\n value,\n defaultValue,\n onChange,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isRequired = false,\n name,\n id,\n orientation = 'vertical',\n dir,\n className,\n style,\n classNames,\n}: RadioGroupProps) {\n const { describedBy, feedback } = useFeedback({\n classNames: classNames,\n description,\n errorMessage,\n isInvalid,\n });\n const group = (\n <AriaRadioGroup\n className={partClass(partClass('input radio-group', classNames?.root), className)}\n style={style}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isInvalid={isInvalid}\n validationBehavior=\"aria\"\n name={name}\n id={id}\n orientation={orientation}\n dir={dir}\n aria-describedby={describedBy}\n >\n <Label className={partClass('label', classNames?.label)}>{label}</Label>\n <div\n className={partClass('radio-group__items', classNames?.items)}\n data-orientation={orientation}\n >\n {options.map((option) => (\n <Radio\n key={option.id}\n value={option.id}\n isDisabled={option.isDisabled}\n className={partClass('choice', classNames?.item)}\n >\n {({ isSelected, isDisabled: disabled, isFocusVisible }) => (\n <>\n <span\n aria-hidden=\"true\"\n className={partClass('radio__control', classNames?.control)}\n data-state={isSelected ? 'checked' : 'unchecked'}\n data-disabled={disabled || undefined}\n data-invalid={isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n >\n <span className={partClass('radio__dot', classNames?.indicator)} />\n </span>\n <span className={partClass('choice__label', classNames?.itemLabel)}>\n {option.label}\n </span>\n </>\n )}\n </Radio>\n ))}\n </div>\n {feedback}\n </AriaRadioGroup>\n );\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{group}</I18nProvider>\n ) : (\n group\n );\n}\n\nfunction RadioGroupRoot(props: RadioGroupProps | RadioGroupCompositionProps) {\n if ('options' in props && props.options)\n return <CompactRadioGroup {...(props as RadioGroupProps)} />;\n return <RadioGroupComposition {...(props as RadioGroupCompositionProps)} />;\n}\nexport const RadioGroup = /* @__PURE__ */ Object.assign(RadioGroupRoot, {\n Root: RadioGroupComposition,\n Item: RadioItem,\n Control: RadioControl,\n Indicator: RadioIndicator,\n Content: ChoiceContent,\n});\nexport type { RadioGroupCompositionProps } from './choice-composition.js';\n","import {\n SwitchComposition,\n SwitchControl,\n SwitchThumb,\n SwitchIcon,\n ChoiceContent,\n type SwitchCompositionProps,\n} from './choice-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { FieldError, SwitchField, SwitchButton, Text } from 'react-aria-components/Switch';\n\nimport type { FieldFeedbackProps } from './field.js';\nimport { useSwitchVisual, type SwitchVisualProps } from './switch-visual.js';\nexport { SwitchGroup } from './switch-visual.js';\n\nexport interface SwitchProps\n extends\n FieldFeedbackProps,\n SwitchVisualProps,\n StylingProps<'root' | 'choice' | 'control' | 'thumb' | 'label' | 'description' | 'error'> {\n label: string;\n isSelected?: boolean;\n defaultSelected?: boolean;\n onChange?: (selected: boolean) => void;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n validate?: import('react-aria-components/Switch').SwitchFieldProps['validate'];\n validationBehavior?: 'native' | 'aria';\n\n name?: string;\n value?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nfunction CompactSwitch({\n label,\n description,\n errorMessage,\n isInvalid = false,\n isSelected,\n defaultSelected,\n onChange,\n isDisabled,\n isReadOnly = false,\n isRequired = false,\n validate,\n validationBehavior = 'aria',\n size,\n tone,\n variant,\n name,\n value = 'on',\n id,\n dir,\n className,\n style,\n classNames,\n}: SwitchProps) {\n const visual = useSwitchVisual({ size, tone, variant });\n return (\n <SwitchField\n className={partClass(partClass('input', classNames?.root), className)}\n style={style}\n dir={dir}\n isSelected={isSelected}\n defaultSelected={defaultSelected}\n onChange={onChange}\n isDisabled={isDisabled ?? visual.disabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n validate={validate}\n isInvalid={isInvalid}\n validationBehavior={validationBehavior}\n name={name}\n value={value}\n id={id}\n >\n <SwitchButton className={partClass('choice', classNames?.choice)}>\n {({ isSelected: selected, isDisabled: disabled, isFocusVisible }) => (\n <>\n <span\n aria-hidden=\"true\"\n className={partClass('switch__control', classNames?.control)}\n data-size={visual.size}\n data-tone={visual.tone}\n data-variant={visual.variant}\n data-state={selected ? 'checked' : 'unchecked'}\n data-disabled={disabled || undefined}\n data-invalid={isInvalid || undefined}\n data-focus-visible={isFocusVisible || undefined}\n >\n <span className={partClass('switch__thumb', classNames?.thumb)} />\n </span>\n <span className={partClass('choice__label', classNames?.label)}>{label}</span>\n </>\n )}\n </SwitchButton>\n {description && (\n <Text\n slot=\"description\"\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </Text>\n )}\n {isInvalid && errorMessage && (\n <FieldError className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </FieldError>\n )}\n </SwitchField>\n );\n}\n\nfunction SwitchRoot(props: SwitchProps | SwitchCompositionProps) {\n if ('label' in props) return <CompactSwitch {...(props as SwitchProps)} />;\n return <SwitchComposition {...(props as SwitchCompositionProps)} />;\n}\nexport const Switch = /* @__PURE__ */ Object.assign(SwitchRoot, {\n Root: SwitchComposition,\n Control: SwitchControl,\n Thumb: SwitchThumb,\n Icon: SwitchIcon,\n Content: ChoiceContent,\n});\nexport type { SwitchCompositionProps } from './choice-composition.js';\n","import { createContext } from 'react';\n\n/** Application-owned errors, keyed by the Field name. Clear entries explicitly. */\nexport type ValidationErrors = Readonly<Record<string, string | undefined>>;\nexport const FormErrorsContext = /* @__PURE__ */ createContext<ValidationErrors>({});\n","import { partClass, type StylingProps } from './styling.js';\nimport { useContext, useId, type ReactNode } from 'react';\nimport { Label } from './Label.js';\nimport { useFeedback } from './field.js';\nimport { FormErrorsContext } from './form-context.js';\n\n/** Bind these props to exactly one native input, textarea, or select. */\nexport interface FieldControlProps {\n id: string;\n name: string;\n className: string;\n disabled: boolean;\n readOnly: boolean;\n required: boolean;\n 'aria-required': true | undefined;\n 'aria-invalid': true | undefined;\n 'aria-describedby': string | undefined;\n}\nexport interface FieldRenderProps {\n controlProps: FieldControlProps;\n isInvalid: boolean;\n errorMessage: string | undefined;\n}\n/** Experimental composition API; the application owns the control value. */\nexport interface FieldProps extends StylingProps<\n 'root' | 'description' | 'error' | 'label' | 'input'\n> {\n label: string;\n name: string;\n children: (field: FieldRenderProps) => ReactNode;\n id?: string;\n description?: string;\n errorMessage?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n dir?: 'ltr' | 'rtl';\n}\n\nexport function Field({\n label,\n name,\n children,\n id,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n dir,\n className,\n style,\n classNames,\n}: FieldProps) {\n const errors = useContext(FormErrorsContext);\n const error =\n Object.hasOwn(errors, name) && typeof errors[name] === 'string'\n ? errors[name] || undefined\n : undefined;\n const invalid = isInvalid || !!error;\n const message = (isInvalid && errorMessage) || error || undefined;\n const generated = useId();\n const controlId = id ?? generated;\n const { describedBy, feedback } = useFeedback({\n classNames: classNames,\n description,\n isInvalid: invalid,\n errorMessage: message,\n });\n const controlProps: FieldControlProps = {\n id: controlId,\n name,\n className: partClass('input__control field__control', classNames?.input),\n disabled: isDisabled,\n readOnly: isReadOnly,\n required: isRequired,\n 'aria-required': isRequired || undefined,\n 'aria-invalid': invalid || undefined,\n 'aria-describedby': describedBy,\n };\n return (\n <div\n className={partClass(partClass('input field', classNames?.root), className)}\n style={style}\n dir={dir}\n >\n <Label htmlFor={controlId} className={classNames?.label}>\n {label}\n </Label>\n {children({ controlProps, isInvalid: invalid, errorMessage: message })}\n {feedback}\n </div>\n );\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport type { FormEvent, ReactNode } from 'react';\nimport { FormErrorsContext, type ValidationErrors } from './form-context.js';\n\n/** Experimental client form. Submission always prevents page navigation. */\nexport interface FormProps extends StylingProps<'root'> {\n children: ReactNode;\n validationErrors?: ValidationErrors;\n onSubmit?: (data: FormData, event: FormEvent<HTMLFormElement>) => void;\n /** Prevent default and reset application state when using controlled values. */\n onReset?: (event: FormEvent<HTMLFormElement>) => void;\n /** Skips browser constraints; explicit aria-invalid state still blocks submission. */\n noValidate?: boolean;\n id?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nexport function Form({\n children,\n validationErrors = {},\n onSubmit,\n onReset,\n noValidate = false,\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': labelledBy,\n dir,\n className,\n style,\n classNames,\n}: FormProps) {\n function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const form = event.currentTarget;\n if (!noValidate && !form.checkValidity()) {\n form.reportValidity();\n return;\n }\n // ARIA validation is application-owned and also applies to labeled Kazee controls.\n for (const element of form.querySelectorAll<HTMLElement>('[aria-invalid=\"true\"]')) {\n const selector = 'input:not([type=\"hidden\"]), textarea, select, button, [role=\"listbox\"]';\n const controls = element.matches(selector)\n ? [element]\n : [...element.querySelectorAll<HTMLElement>(selector)];\n const invalid = controls.find(\n (control) => !control.matches(':disabled, [aria-disabled=\"true\"]'),\n );\n if (invalid) {\n invalid.focus();\n return;\n }\n }\n onSubmit?.(new FormData(form, (event.nativeEvent as SubmitEvent).submitter), event);\n }\n return (\n <FormErrorsContext.Provider value={validationErrors}>\n <form\n className={partClass(partClass('form', classNames?.root), className)}\n style={style}\n id={id}\n dir={dir}\n aria-label={ariaLabel}\n aria-labelledby={labelledBy}\n noValidate={noValidate}\n onSubmit={submit}\n onReset={onReset}\n >\n {children}\n </form>\n </FormErrorsContext.Provider>\n );\n}\n","export interface ListboxOption {\n id: string;\n label: string;\n isDisabled?: boolean;\n}\nexport type ListboxSelectionMode = 'single' | 'multiple';\n/** Stable option order, unique enabled IDs, and at most one ID in single mode. */\nexport function listboxSelection(\n value: readonly string[],\n options: ListboxOption[],\n mode: ListboxSelectionMode,\n): string[] {\n const requested = new Set(value);\n const seen = new Set<string>();\n const result: string[] = [];\n for (const option of options) {\n if (option.id && !option.isDisabled && requested.has(option.id) && !seen.has(option.id)) {\n seen.add(option.id);\n result.push(option.id);\n if (mode === 'single') break;\n }\n }\n return result;\n}\n","import {\n ListBoxRoot,\n ListBoxItemPart,\n ListBoxSectionPart,\n ListBoxItemIndicator,\n} from './control-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useId, useRef, useState } from 'react';\nimport { ListBox, ListBoxItem, type Selection } from 'react-aria-components/ListBox';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { CheckIcon } from './icons.js';\nimport { useFeedback, type FieldFeedbackProps } from './field.js';\nimport {\n listboxSelection,\n type ListboxOption,\n type ListboxSelectionMode,\n} from './listbox-selection.js';\n\nexport interface ListboxProps\n extends\n FieldFeedbackProps,\n StylingProps<\n | 'root'\n | 'label'\n | 'list'\n | 'empty'\n | 'item'\n | 'itemLabel'\n | 'indicator'\n | 'description'\n | 'error'\n > {\n label: string;\n options: ListboxOption[];\n /** Always an array; empty selection is []. */\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n selectionMode?: ListboxSelectionMode;\n isDisabled?: boolean;\n name?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n emptyMessage?: string;\n}\nfunction CompactListbox({\n label,\n options,\n value,\n defaultValue = [],\n onChange,\n selectionMode = 'single',\n isDisabled = false,\n description,\n errorMessage,\n isInvalid = false,\n name,\n id,\n dir,\n emptyMessage = 'Tidak ada pilihan.',\n className,\n style,\n classNames,\n}: ListboxProps) {\n const [local, setLocal] = useState(defaultValue);\n const selected = listboxSelection(value ?? local, options, selectionMode);\n const nodeRef = useRef<HTMLDivElement | null>(null);\n const tabIndexBeforeDisable = useRef<string | null | undefined>(undefined);\n function listRef(node: HTMLDivElement | null) {\n if (!node) return;\n if (nodeRef.current !== node) tabIndexBeforeDisable.current = undefined;\n nodeRef.current = node;\n // The public ListBox ref bridges ARIA props currently overwritten by its field hook.\n if (isInvalid) node.setAttribute('aria-invalid', 'true');\n else node.removeAttribute('aria-invalid');\n if (isDisabled) {\n node.setAttribute('aria-disabled', 'true');\n if (tabIndexBeforeDisable.current === undefined)\n tabIndexBeforeDisable.current = node.getAttribute('tabindex');\n node.tabIndex = -1;\n } else {\n node.removeAttribute('aria-disabled');\n if (tabIndexBeforeDisable.current !== undefined) {\n if (tabIndexBeforeDisable.current === null) node.removeAttribute('tabindex');\n else node.setAttribute('tabindex', tabIndexBeforeDisable.current);\n tabIndexBeforeDisable.current = undefined;\n }\n }\n }\n const generated = useId();\n const labelId = `${id ?? generated}-label`;\n const { describedBy, feedback } = useFeedback({\n classNames: classNames,\n description,\n errorMessage,\n isInvalid,\n });\n function change(keys: Selection) {\n if (isDisabled || keys === 'all') return;\n const next = listboxSelection([...keys].map(String), options, selectionMode);\n if (next.length === selected.length && next.every((key, index) => key === selected[index]))\n return;\n setLocal(next);\n onChange?.(next);\n }\n const list = (\n <div\n className={partClass(partClass('input listbox', classNames?.root), className)}\n style={style}\n dir={dir}\n >\n <span id={labelId} className={partClass('label', classNames?.label)}>\n {label}\n </span>\n <ListBox\n ref={listRef}\n id={id}\n className={partClass('listbox__list', classNames?.list)}\n aria-labelledby={labelId}\n aria-describedby={describedBy}\n aria-invalid={isInvalid || undefined}\n aria-disabled={isDisabled || undefined}\n selectionMode={selectionMode}\n selectionBehavior={selectionMode === 'single' ? 'replace' : 'toggle'}\n disallowEmptySelection={selectionMode === 'single'}\n selectedKeys={selected}\n onSelectionChange={change}\n disabledKeys={options\n .filter((option) => isDisabled || option.isDisabled)\n .map((option) => option.id)}\n renderEmptyState={() => (\n <span className={partClass('listbox__empty', classNames?.empty)}>{emptyMessage}</span>\n )}\n >\n {options.map((option) => (\n <ListBoxItem\n key={option.id}\n id={option.id}\n textValue={option.label}\n isDisabled={isDisabled || option.isDisabled}\n className={partClass('listbox__item', classNames?.item)}\n >\n <span className={partClass('listbox__text', classNames?.itemLabel)}>\n {option.label}\n </span>\n <CheckIcon className={partClass('listbox__check', classNames?.indicator)} />\n </ListBoxItem>\n ))}\n </ListBox>\n {feedback}\n {name &&\n selected.map((key) => (\n <input key={key} type=\"hidden\" name={name} value={key} disabled={isDisabled} />\n ))}\n </div>\n );\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{list}</I18nProvider>\n ) : (\n list\n );\n}\n\nfunction ListboxRoot(props: ListboxProps | Parameters<typeof ListBoxRoot>[0]) {\n if ('options' in props) return <CompactListbox {...props} />;\n return <ListBoxRoot {...props} />;\n}\nexport const Listbox = /* @__PURE__ */ Object.assign(ListboxRoot, {\n Root: ListBoxRoot,\n Item: ListBoxItemPart,\n Section: ListBoxSectionPart,\n ItemIndicator: ListBoxItemIndicator,\n});\n","import {\n NumberField as AriaNumberField,\n type NumberFieldProps as AriaNumberFieldProps,\n Input,\n Group,\n Button,\n type GroupProps,\n type InputProps,\n type ButtonProps,\n} from 'react-aria-components/NumberField';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { partClass } from './styling.js';\n\nexport type NumberFieldCompositionProps = Omit<\n AriaNumberFieldProps,\n 'className' | 'value' | 'defaultValue' | 'onChange' | 'minValue' | 'maxValue'\n> & {\n className?: string;\n label?: never;\n locale?: string;\n value?: number | null;\n defaultValue?: number | null;\n onChange?: (value: number | null) => void;\n min?: number;\n max?: number;\n};\nexport function NumberFieldComposition({\n className,\n locale = 'id-ID',\n value,\n defaultValue,\n onChange,\n min,\n max,\n ...props\n}: NumberFieldCompositionProps) {\n return (\n <I18nProvider locale={locale}>\n <AriaNumberField\n {...props}\n minValue={min}\n maxValue={max}\n value={value === undefined ? undefined : (value ?? Number.NaN)}\n defaultValue={defaultValue ?? Number.NaN}\n onChange={(next) => onChange?.(Number.isFinite(next) ? next : null)}\n className={partClass('input number-field', className)}\n />\n </I18nProvider>\n );\n}\nexport function NumberFieldGroup({\n className,\n ...props\n}: Omit<GroupProps, 'className'> & { className?: string }) {\n return <Group {...props} className={partClass('number-field__group', className)} />;\n}\nexport function NumberFieldInput({\n className,\n ...props\n}: Omit<InputProps, 'className'> & { className?: string }) {\n return <Input {...props} className={partClass('number-field__control', className)} />;\n}\nexport function NumberFieldIncrement({\n className,\n ...props\n}: Omit<ButtonProps, 'className' | 'slot'> & { className?: string }) {\n return (\n <Button\n aria-label=\"Tambah\"\n {...props}\n slot=\"increment\"\n className={partClass('number-field__step', className)}\n />\n );\n}\nexport function NumberFieldDecrement({\n className,\n ...props\n}: Omit<ButtonProps, 'className' | 'slot'> & { className?: string }) {\n return (\n <Button\n aria-label=\"Kurangi\"\n {...props}\n slot=\"decrement\"\n className={partClass('number-field__step', className)}\n />\n );\n}\n","import {\n NumberFieldComposition,\n NumberFieldGroup,\n NumberFieldInput,\n NumberFieldIncrement,\n NumberFieldDecrement,\n type NumberFieldCompositionProps,\n} from './number-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useId, useRef, useState } from 'react';\nimport {\n NumberField as AriaNumberField,\n Input,\n Label,\n Group,\n Button,\n Text,\n FieldError,\n} from 'react-aria-components/NumberField';\nimport { ButtonContext } from 'react-aria-components/Button';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nexport interface NumberFieldProps extends StylingProps<\n | 'root'\n | 'label'\n | 'group'\n | 'input'\n | 'button'\n | 'decrementButton'\n | 'incrementButton'\n | 'description'\n | 'error'\n> {\n label: string;\n value?: number | null;\n defaultValue?: number | null;\n /** Committed numeric value; empty or non-finite values become null. */\n onChange?: (value: number | null) => void;\n min?: number;\n max?: number;\n step?: number;\n locale?: string;\n formatOptions?: Intl.NumberFormatOptions;\n description?: string;\n errorMessage?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n name?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n incrementLabel?: string;\n decrementLabel?: string;\n}\nfunction finite(value: number | null | undefined): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n}\nfunction CompactNumberField({\n label,\n value,\n defaultValue = null,\n onChange,\n min,\n max,\n step = 1,\n locale = 'id-ID',\n formatOptions,\n description,\n errorMessage,\n isInvalid = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n name,\n id,\n dir,\n incrementLabel,\n decrementLabel,\n className,\n style,\n classNames,\n}: NumberFieldProps) {\n const buttonId = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const [local, setLocal] = useState(() => finite(defaultValue));\n const selected = finite(value === undefined ? local : value);\n function change(next: number) {\n if (isDisabled || isReadOnly) return;\n const number = finite(next);\n setLocal(number);\n onChange?.(number);\n }\n return (\n <I18nProvider locale={locale}>\n <AriaNumberField\n className={partClass(partClass('input number-field', classNames?.root), className)}\n style={style}\n id={id}\n dir={dir}\n value={selected ?? Number.NaN}\n onChange={change}\n minValue={min}\n maxValue={max}\n step={step}\n formatOptions={formatOptions}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n isInvalid={isInvalid}\n validationBehavior=\"aria\"\n isWheelDisabled\n >\n {({ state }) => {\n const empty = state.inputValue.trim() === '';\n // Reka starts empty stepping at min (or zero); use the public state API to match it.\n function startEmpty() {\n const start = Math.min(max ?? Infinity, Math.max(min ?? -Infinity, min ?? 0));\n state.setNumberValue(start);\n inputRef.current?.focus();\n }\n return (\n <>\n <Label className={partClass('label', classNames?.label)}>{label}</Label>\n <Group\n className={partClass('number-field__group', classNames?.group)}\n onKeyDownCapture={(event) => {\n if (\n isDisabled ||\n isReadOnly ||\n !empty ||\n !['ArrowUp', 'ArrowDown', 'PageUp', 'PageDown'].includes(event.key)\n )\n return;\n event.preventDefault();\n event.stopPropagation();\n startEmpty();\n }}\n >\n <ButtonContext.Consumer>\n {(buttonContext) => (\n <ButtonContext.Provider value={empty ? null : buttonContext}>\n <Button\n slot={empty ? undefined : 'decrement'}\n onPress={empty ? startEmpty : undefined}\n isDisabled={empty ? isDisabled || isReadOnly : undefined}\n preventFocusOnPress\n className={partClass(\n partClass('number-field__step', classNames?.button),\n classNames?.decrementButton,\n )}\n aria-label={decrementLabel ?? `Kurangi ${label}`}\n aria-labelledby={`${buttonId}-decrement`}\n excludeFromTabOrder\n >\n <span id={`${buttonId}-decrement`} hidden>\n {decrementLabel ?? `Kurangi ${label}`}\n </span>\n {'\\u2212'}\n </Button>\n <Input\n ref={inputRef}\n className={partClass('number-field__control', classNames?.input)}\n required={isRequired}\n />\n <Button\n slot={empty ? undefined : 'increment'}\n onPress={empty ? startEmpty : undefined}\n isDisabled={empty ? isDisabled || isReadOnly : undefined}\n preventFocusOnPress\n className={partClass(\n partClass('number-field__step', classNames?.button),\n classNames?.incrementButton,\n )}\n aria-label={incrementLabel ?? `Tambah ${label}`}\n aria-labelledby={`${buttonId}-increment`}\n excludeFromTabOrder\n >\n <span id={`${buttonId}-increment`} hidden>\n {incrementLabel ?? `Tambah ${label}`}\n </span>\n +\n </Button>\n </ButtonContext.Provider>\n )}\n </ButtonContext.Consumer>\n </Group>\n {description && (\n <Text\n slot=\"description\"\n className={partClass('input__description', classNames?.description)}\n >\n {description}\n </Text>\n )}\n {isInvalid && errorMessage && (\n <FieldError className={partClass('input__error', classNames?.error)}>\n {errorMessage}\n </FieldError>\n )}\n {name && (\n <input\n type=\"hidden\"\n name={name}\n value={selected === null ? '' : String(selected)}\n disabled={isDisabled}\n />\n )}\n </>\n );\n }}\n </AriaNumberField>\n </I18nProvider>\n );\n}\n\nfunction NumberFieldRoot(props: NumberFieldProps | NumberFieldCompositionProps) {\n if ('label' in props) return <CompactNumberField {...(props as NumberFieldProps)} />;\n return <NumberFieldComposition {...(props as NumberFieldCompositionProps)} />;\n}\nexport const NumberField = /* @__PURE__ */ Object.assign(NumberFieldRoot, {\n Root: NumberFieldComposition,\n Group: NumberFieldGroup,\n Input: NumberFieldInput,\n IncrementButton: NumberFieldIncrement,\n DecrementButton: NumberFieldDecrement,\n});\nexport type { NumberFieldCompositionProps } from './number-composition.js';\n","import type { HTMLAttributes, ReactNode, AnchorHTMLAttributes, ButtonHTMLAttributes } from 'react';\nimport { createContext, useContext, useId } from 'react';\nimport { partClass, type StylingProps } from './styling.js';\n\nexport type CardPart =\n | 'root'\n | 'action'\n | 'header'\n | 'heading'\n | 'titleRow'\n | 'title'\n | 'description'\n | 'actions'\n | 'content'\n | 'footer';\n\nexport interface CardInteractionProps {\n density?: 'default' | 'compact';\n href?: string;\n target?: AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n rel?: string;\n onPress?: () => void;\n isDisabled?: boolean;\n /** Controlled toggle state for the native action button; omitted for ordinary actions. */\n isSelected?: boolean;\n actionLabel?: string;\n actionLabelledBy?: string;\n actionClassName?: string;\n /** Compose a router link using the supplied native anchor props. */\n renderLink?: (props: AnchorHTMLAttributes<HTMLAnchorElement>) => ReactNode;\n}\nexport interface CardProps\n extends HTMLAttributes<HTMLDivElement>, StylingProps<CardPart>, CardInteractionProps {\n title?: string;\n description?: string;\n headingLevel?: 2 | 3 | 4 | 5 | 6;\n /** Custom leading header content; replaces title/description, preserving actions. */\n header?: ReactNode;\n /** Badge or supplementary controls next to the title, outside its heading. */\n titleExtras?: ReactNode;\n actions?: ReactNode;\n footer?: ReactNode;\n headerAlign?: 'start' | 'center' | 'end';\n dividedHeader?: boolean;\n flushFooter?: boolean;\n}\n\n/** Native primary action is a sibling of content, so nested controls remain valid HTML. */\nconst CardTitleIdContext = createContext<string | undefined>(undefined);\nfunction CardAction({\n href,\n target,\n rel,\n onPress,\n isDisabled,\n isSelected,\n actionLabel,\n actionLabelledBy,\n actionClassName,\n renderLink,\n}: CardInteractionProps) {\n if (!href && !onPress) return null;\n if (href) {\n const props: AnchorHTMLAttributes<HTMLAnchorElement> = {\n className: partClass('card__action', actionClassName),\n href: isDisabled ? undefined : href,\n target,\n rel: rel ?? (target === '_blank' ? 'noopener noreferrer' : undefined),\n 'aria-label': actionLabel,\n 'aria-disabled': isDisabled || undefined,\n 'aria-labelledby': actionLabelledBy,\n role: isDisabled ? 'link' : undefined,\n tabIndex: isDisabled ? -1 : undefined,\n onClick: (event) => {\n if (isDisabled) event.preventDefault();\n else onPress?.();\n },\n };\n return renderLink ? (\n renderLink(props)\n ) : (\n <a {...props} aria-label={actionLabel} aria-labelledby={actionLabelledBy} />\n );\n }\n const props: ButtonHTMLAttributes<HTMLButtonElement> = {\n type: 'button',\n className: partClass('card__action', actionClassName),\n 'aria-label': actionLabel,\n 'aria-labelledby': actionLabelledBy,\n 'aria-pressed': isSelected,\n disabled: isDisabled,\n onClick: () => onPress?.(),\n };\n return <button {...props} />;\n}\nfunction CompactCard({\n title,\n description,\n headingLevel = 3,\n actions,\n header,\n titleExtras,\n footer,\n children,\n className,\n classNames,\n density,\n href,\n target,\n rel,\n onPress,\n isDisabled,\n isSelected,\n actionLabel,\n actionLabelledBy,\n actionClassName,\n renderLink,\n headerAlign,\n dividedHeader,\n flushFooter,\n ...props\n}: CardProps) {\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <div\n {...props}\n data-density={density}\n data-interactive={!!(href || onPress) || undefined}\n data-disabled={isDisabled || undefined}\n data-selected={isSelected || undefined}\n className={partClass(partClass('card', classNames?.root), className)}\n >\n <CardAction\n {...{ href, target, rel, onPress, isDisabled, isSelected, renderLink }}\n actionClassName={partClass(classNames?.action ?? '', actionClassName)}\n actionLabelledBy={actionLabelledBy ?? props['aria-labelledby']}\n actionLabel={actionLabel ?? title ?? props['aria-label']}\n />\n {(title || description || actions || header || titleExtras) && (\n <div\n data-align={headerAlign}\n data-divided={dividedHeader || undefined}\n className={partClass('card__header', classNames?.header)}\n >\n {(title || description || header || titleExtras) && (\n <div className={partClass('card__heading', classNames?.heading)}>\n {header ?? (\n <>\n {titleExtras ? (\n <div className={partClass('card__title-row', classNames?.titleRow)}>\n {title && (\n <Heading className={partClass('card__title', classNames?.title)}>\n {title}\n </Heading>\n )}\n {titleExtras}\n </div>\n ) : (\n title && (\n <Heading className={partClass('card__title', classNames?.title)}>\n {title}\n </Heading>\n )\n )}\n {description && (\n <p className={partClass('card__description', classNames?.description)}>\n {description}\n </p>\n )}\n </>\n )}\n </div>\n )}\n {actions && (\n <div className={partClass('card__actions', classNames?.actions)}>{actions}</div>\n )}\n </div>\n )}\n <div className={partClass('card__content', classNames?.content)}>{children}</div>\n {footer && (\n <div\n data-flush={flushFooter || undefined}\n className={partClass('card__footer', classNames?.footer)}\n >\n {footer}\n </div>\n )}\n </div>\n );\n}\n\nexport function CardRoot({\n className,\n classNames,\n children,\n density,\n href,\n target,\n rel,\n onPress,\n isDisabled,\n isSelected,\n actionLabel,\n actionLabelledBy,\n actionClassName,\n renderLink,\n ...props\n}: HTMLAttributes<HTMLDivElement> & CardInteractionProps & StylingProps<'action'>) {\n const titleId = useId();\n const label = actionLabel ?? props['aria-label'];\n return (\n <CardTitleIdContext.Provider value={titleId}>\n <div\n {...props}\n data-density={density}\n data-interactive={!!(href || onPress) || undefined}\n data-disabled={isDisabled || undefined}\n data-selected={isSelected || undefined}\n className={partClass(partClass('card', classNames?.root), className)}\n >\n <CardAction\n {...{ href, target, rel, onPress, isDisabled, isSelected, renderLink }}\n actionClassName={partClass(classNames?.action ?? '', actionClassName)}\n actionLabel={label}\n actionLabelledBy={\n actionLabelledBy ?? props['aria-labelledby'] ?? (label ? undefined : titleId)\n }\n />\n {children}\n </div>\n </CardTitleIdContext.Provider>\n );\n}\nexport function CardHeader({\n className,\n align,\n divided,\n ...props\n}: HTMLAttributes<HTMLDivElement> & { align?: 'start' | 'center' | 'end'; divided?: boolean }) {\n return (\n <div\n {...props}\n data-align={align}\n data-divided={divided || undefined}\n className={partClass('card__header', className)}\n />\n );\n}\nexport function CardHeading({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('card__heading', className)} />;\n}\nexport function CardTitleRow({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('card__title-row', className)} />;\n}\nexport function CardTitle({\n className,\n headingLevel = 3,\n ...props\n}: HTMLAttributes<HTMLHeadingElement> & { headingLevel?: 2 | 3 | 4 | 5 | 6 }) {\n const titleId = useContext(CardTitleIdContext);\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return <Heading id={titleId} {...props} className={partClass('card__title', className)} />;\n}\nexport function CardDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('card__description', className)} />;\n}\nexport function CardActions({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('card__actions', className)} />;\n}\nexport function CardContent({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('card__content', className)} />;\n}\nexport function CardFooter({\n className,\n flush,\n ...props\n}: HTMLAttributes<HTMLDivElement> & { flush?: boolean }) {\n return (\n <div\n {...props}\n data-flush={flush || undefined}\n className={partClass('card__footer', className)}\n />\n );\n}\nexport const Card = /* @__PURE__ */ Object.assign(CompactCard, {\n Root: CardRoot,\n Header: CardHeader,\n Heading: CardHeading,\n TitleRow: CardTitleRow,\n Title: CardTitle,\n Description: CardDescription,\n Actions: CardActions,\n Content: CardContent,\n Footer: CardFooter,\n});\n","import { Children, cloneElement, type ReactElement, type ReactNode, type Ref } from 'react';\n\n/** Decorate one child while preserving its handlers and ref. */\nexport function visualSlot(children: ReactNode, props: Record<string, unknown>) {\n const child = Children.only(children) as ReactElement<Record<string, unknown>>;\n const merged = { ...child.props, ...props };\n merged.className = [props.className, child.props.className].filter(Boolean).join(' ');\n merged.style = { ...(props.style as object), ...(child.props.style as object) };\n for (const key of Object.keys(props)) {\n if (\n /^on[A-Z]/.test(key) &&\n typeof child.props[key] === 'function' &&\n typeof props[key] === 'function'\n ) {\n merged[key] = (...args: unknown[]) => {\n (child.props[key] as (...args: unknown[]) => void)(...args);\n (props[key] as (...args: unknown[]) => void)(...args);\n };\n }\n }\n if (child.props.ref && props.ref) {\n merged.ref = (node: unknown) => {\n const cleanups: (() => void)[] = [];\n for (const ref of [child.props.ref, props.ref] as Ref<unknown>[]) {\n if (typeof ref === 'function') {\n const cleanup = ref(node);\n cleanups.push(\n typeof cleanup === 'function'\n ? cleanup\n : () => {\n ref(null);\n },\n );\n } else if (ref) {\n ref.current = node;\n cleanups.push(() => {\n ref.current = null;\n });\n }\n }\n return () => {\n for (const cleanup of cleanups) cleanup();\n };\n };\n }\n return cloneElement(child, merged);\n}\n","import { createContext, useContext, type HTMLAttributes, type Ref } from 'react';\nimport { partClass } from './styling.js';\nimport type { ComponentSize, IndicatorPlacement, Tone } from './visual.js';\nimport { visualSlot } from './visual-slot.js';\nexport type BadgeTone = Tone;\nexport type BadgeVariant = 'default' | 'solid' | 'soft' | 'outline' | 'ghost' | 'link';\nconst AnchorContext = createContext(false);\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n classNames?: Partial<Record<'root' | 'label', string>>;\n tone?: BadgeTone;\n size?: ComponentSize;\n variant?: BadgeVariant;\n placement?: IndicatorPlacement;\n asChild?: boolean;\n ref?: Ref<HTMLSpanElement>;\n}\n/** Static status text; wrap in Badge.Anchor to position it relative to another element. */\nexport function BadgeRoot({\n tone = 'neutral',\n size = 'md',\n variant = 'default',\n placement = 'top-right',\n asChild,\n children,\n className,\n classNames,\n ...props\n}: BadgeProps) {\n const anchored = useContext(AnchorContext);\n const attributes = {\n ...props,\n className: partClass(partClass('badge', classNames?.root), className),\n 'data-tone': tone,\n 'data-size': size,\n 'data-variant': variant,\n 'data-placement': anchored ? placement : undefined,\n 'data-anchored': anchored || undefined,\n 'data-dot': (anchored && children == null) || undefined,\n };\n return asChild ? (\n visualSlot(children, attributes)\n ) : (\n <span {...attributes}>\n {classNames?.label ? (\n <span className={partClass('badge__label', classNames.label)}>{children}</span>\n ) : (\n children\n )}\n </span>\n );\n}\nexport function BadgeAnchor({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement> & { ref?: Ref<HTMLSpanElement> }) {\n return (\n <AnchorContext.Provider value={true}>\n <span {...props} className={partClass('badge-anchor badge__anchor', className)} />\n </AnchorContext.Provider>\n );\n}\nexport function BadgeLabel({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement> & { ref?: Ref<HTMLSpanElement> }) {\n return <span {...props} className={partClass('badge__label', className)} />;\n}\nexport const Badge = /* @__PURE__ */ Object.assign(BadgeRoot, {\n Root: BadgeRoot,\n Anchor: BadgeAnchor,\n Label: BadgeLabel,\n});\n","import {\n createContext,\n useContext,\n useEffect,\n useState,\n useRef,\n type HTMLAttributes,\n type ImgHTMLAttributes,\n type Ref,\n type SyntheticEvent,\n} from 'react';\nimport { partClass, type StylingProps } from './styling.js';\nimport type {\n AvatarVariant,\n ComponentSize,\n ImageLoadingStatus,\n IndicatorPlacement,\n Tone,\n} from './visual.js';\nimport { visualSlot } from './visual-slot.js';\n\nexport const AvatarGroupContext = createContext<{\n size?: ComponentSize;\n tone?: Tone;\n variant?: AvatarVariant;\n}>({});\nconst AvatarContext = createContext<{\n status: ImageLoadingStatus;\n setStatus: (status: ImageLoadingStatus) => void;\n size: ComponentSize;\n classNames?: AvatarProps['classNames'];\n} | null>(null);\nexport interface AvatarProps\n extends HTMLAttributes<HTMLSpanElement>, StylingProps<'image' | 'fallback' | 'badge'> {\n size?: ComponentSize;\n tone?: Tone;\n variant?: AvatarVariant;\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n asChild?: boolean;\n ref?: Ref<HTMLSpanElement>;\n}\nexport function AvatarRoot({\n size,\n tone,\n variant,\n radius = 'full',\n asChild,\n children,\n className,\n classNames,\n ...props\n}: AvatarProps) {\n const group = useContext(AvatarGroupContext);\n const [status, setStatus] = useState<ImageLoadingStatus>('idle');\n const actualSize = size ?? group.size ?? 'md';\n const attributes = {\n ...props,\n className: partClass(partClass('avatar', classNames?.root), className),\n 'data-size': actualSize,\n 'data-tone': tone ?? group.tone ?? 'neutral',\n 'data-variant': variant ?? group.variant ?? 'default',\n 'data-radius': radius,\n 'data-image-status': status,\n };\n return (\n <AvatarContext.Provider value={{ status, setStatus, size: actualSize, classNames }}>\n {asChild ? visualSlot(children, attributes) : <span {...attributes}>{children}</span>}\n </AvatarContext.Provider>\n );\n}\nexport interface AvatarImageProps extends ImgHTMLAttributes<HTMLImageElement> {\n asChild?: boolean;\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void;\n ref?: Ref<HTMLImageElement>;\n}\nexport function AvatarImage(props: AvatarImageProps) {\n return (\n <AvatarImageLoader\n key={`${props.src ?? ''}|${props.srcSet ?? ''}|${props.sizes ?? ''}`}\n {...props}\n />\n );\n}\nfunction AvatarImageLoader({\n src,\n srcSet,\n sizes,\n alt,\n asChild,\n children,\n className,\n onLoad,\n onError,\n onLoadingStatusChange,\n ref,\n ...props\n}: AvatarImageProps) {\n const context = useContext(AvatarContext);\n const setStatus = context?.setStatus;\n const imageRef = useRef<HTMLImageElement | null>(null);\n const [result, setResult] = useState<{ source: string; status: ImageLoadingStatus }>({\n source: '',\n status: 'idle',\n });\n const source = `${src ?? ''}|${srcSet ?? ''}|${sizes ?? ''}`;\n const status = result.source === source ? result.status : src || srcSet ? 'loading' : 'error';\n const statusCallback = useRef(onLoadingStatusChange);\n useEffect(() => {\n statusCallback.current = onLoadingStatusChange;\n });\n useEffect(() => {\n setStatus?.(status);\n statusCallback.current?.(status);\n }, [status, setStatus]);\n useEffect(() => () => setStatus?.('idle'), [setStatus]);\n useEffect(() => {\n if (imageRef.current?.complete && imageRef.current.naturalWidth > 0)\n setResult({ source, status: 'loaded' });\n }, [source]);\n const attributes = {\n ...props,\n src,\n srcSet,\n sizes,\n className: partClass(partClass('avatar__image', context?.classNames?.image), className),\n 'data-status': status,\n 'aria-hidden': status !== 'loaded' || undefined,\n ref: (node: HTMLImageElement | null) => {\n imageRef.current = node;\n if (typeof ref === 'function') return ref(node);\n else if (ref) ref.current = node;\n },\n onLoad: (event: SyntheticEvent<HTMLImageElement>) => {\n if (event.currentTarget !== imageRef.current) return;\n setResult({ source, status: 'loaded' });\n onLoad?.(event);\n },\n onError: (event: SyntheticEvent<HTMLImageElement>) => {\n if (event.currentTarget !== imageRef.current) return;\n setResult({ source, status: 'error' });\n onError?.(event);\n },\n };\n return asChild ? (\n visualSlot(children, { ...attributes, ...(alt !== undefined ? { alt } : {}) })\n ) : (\n <img key={source} {...attributes} alt={alt ?? ''} />\n );\n}\nexport interface AvatarFallbackProps extends HTMLAttributes<HTMLSpanElement> {\n delayMs?: number;\n tone?: Tone;\n ref?: Ref<HTMLSpanElement>;\n}\nexport function AvatarFallback({ delayMs = 0, tone, className, ...props }: AvatarFallbackProps) {\n const context = useContext(AvatarContext);\n const [ready, setReady] = useState(delayMs <= 0);\n useEffect(() => {\n setReady(delayMs <= 0);\n if (delayMs <= 0) return;\n const timer = setTimeout(() => setReady(true), delayMs);\n return () => clearTimeout(timer);\n }, [delayMs, context?.status]);\n if (context?.status === 'loaded' || !ready) return null;\n return (\n <span\n {...props}\n className={partClass(partClass('avatar__fallback', context?.classNames?.fallback), className)}\n data-tone={tone}\n />\n );\n}\nexport interface AvatarBadgeProps extends HTMLAttributes<HTMLSpanElement> {\n size?: ComponentSize;\n tone?: Tone;\n placement?: IndicatorPlacement;\n ref?: Ref<HTMLSpanElement>;\n}\nexport function AvatarBadge({\n size,\n tone = 'primary',\n placement = 'bottom-right',\n className,\n children,\n ...props\n}: AvatarBadgeProps) {\n const context = useContext(AvatarContext);\n return (\n <span\n {...props}\n className={partClass(partClass('avatar__badge', context?.classNames?.badge), className)}\n data-size={size ?? context?.size ?? 'md'}\n data-tone={tone}\n data-placement={placement}\n data-dot={children == null || undefined}\n >\n {children}\n </span>\n );\n}\nexport const Avatar = /* @__PURE__ */ Object.assign(AvatarRoot, {\n Root: AvatarRoot,\n Image: AvatarImage,\n Fallback: AvatarFallback,\n Badge: AvatarBadge,\n});\n","import {\n Children,\n Fragment,\n cloneElement,\n isValidElement,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { Avatar, AvatarGroupContext, type AvatarProps } from './Avatar.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { AvatarVariant, ComponentSize, Tone } from './visual.js';\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement>, StylingProps<'count'> {\n size?: ComponentSize;\n tone?: Tone;\n variant?: AvatarVariant;\n max?: number;\n isGrid?: boolean;\n overlap?: 'clip' | 'ring';\n}\nfunction flatten(children: ReactNode, prefix = ''): ReactNode[] {\n return Children.toArray(children).flatMap((child, index) => {\n const key = `${prefix}/${isValidElement(child) ? (child.key ?? index) : index}`;\n return isValidElement(child) && child.type === Fragment\n ? flatten((child.props as { children: ReactNode }).children, key)\n : isValidElement(child)\n ? [cloneElement(child, { key })]\n : [];\n });\n}\nexport function AvatarGroupCount({ className, ...props }: AvatarProps) {\n return (\n <Avatar {...props} className={partClass('avatar-group__count', className)}>\n <Avatar.Fallback>{props.children}</Avatar.Fallback>\n </Avatar>\n );\n}\nexport function AvatarGroupRoot({\n size = 'md',\n tone = 'neutral',\n variant = 'default',\n max,\n isGrid = false,\n overlap = 'clip',\n className,\n classNames,\n children,\n ...props\n}: AvatarGroupProps) {\n const items = flatten(children);\n const counts = items.filter((item) => isValidElement(item) && item.type === AvatarGroupCount);\n const avatars = items.filter((item) => !counts.includes(item));\n const limit =\n max === undefined || !Number.isFinite(max) ? avatars.length : Math.max(0, Math.floor(max));\n const hidden = Math.max(0, avatars.length - limit);\n return (\n <AvatarGroupContext.Provider value={{ size, tone, variant }}>\n <div\n {...props}\n className={partClass(partClass('avatar-group', classNames?.root), className)}\n data-size={size}\n data-grid={isGrid || undefined}\n data-overlap={overlap}\n >\n {avatars.slice(0, limit)}\n {counts.length ? (\n counts\n ) : hidden > 0 ? (\n <AvatarGroupCount className={classNames?.count} aria-label={`${hidden} more`}>\n +{hidden}\n </AvatarGroupCount>\n ) : null}\n </div>\n </AvatarGroupContext.Provider>\n );\n}\nexport const AvatarGroup = /* @__PURE__ */ Object.assign(AvatarGroupRoot, {\n Root: AvatarGroupRoot,\n Count: AvatarGroupCount,\n});\n","import { partClass } from './styling.js';\nimport type { HTMLAttributes } from 'react';\nexport interface SkeletonProps extends Omit<\n HTMLAttributes<HTMLSpanElement>,\n 'children' | 'aria-hidden'\n> {\n classNames?: Partial<Record<'root', string>>;\n shape?: 'rectangle' | 'circle';\n animated?: boolean;\n}\n/** Decorative placeholder. Set aria-busy and loading text on the surrounding content. */\nexport function Skeleton({\n shape = 'rectangle',\n animated = true,\n className,\n classNames,\n ...props\n}: SkeletonProps) {\n return (\n <span\n {...props}\n className={partClass(partClass('skeleton', classNames?.root), className)}\n data-shape={shape}\n data-animated={animated ? 'true' : undefined}\n aria-hidden=\"true\"\n />\n );\n}\n","import { partClass } from './styling.js';\nimport type { HTMLAttributes } from 'react';\nexport interface SeparatorProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'children' | 'role' | 'aria-hidden' | 'aria-orientation'\n> {\n classNames?: Partial<Record<'root', string>>;\n orientation?: 'horizontal' | 'vertical';\n decorative?: boolean;\n}\nexport function Separator({\n orientation = 'horizontal',\n decorative = true,\n className,\n classNames,\n ...props\n}: SeparatorProps) {\n return (\n <div\n {...props}\n className={partClass(partClass('separator', classNames?.root), className)}\n data-orientation={orientation}\n role={decorative ? 'presentation' : 'separator'}\n aria-hidden={decorative ? 'true' : undefined}\n aria-orientation={decorative ? undefined : orientation}\n />\n );\n}\n","// Framework-neutral DOM behavior. Keep in sync with packages/vue/src/tabs-indicator.ts.\nexport function mountTabsIndicator(container: HTMLElement): () => void {\n const list = container.querySelector<HTMLElement>('[role=\"tablist\"]');\n if (!list) return () => {};\n let frame = 0,\n disposed = false,\n previous: Element | null = null,\n armed = false;\n const prev = container.querySelector<HTMLButtonElement>('[data-tabs-scroll=\"prev\"]');\n const next = container.querySelector<HTMLButtonElement>('[data-tabs-scroll=\"next\"]');\n const vertical = () => list.getAttribute('aria-orientation') === 'vertical';\n const reduced = () => window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n function measure() {\n if (disposed) return;\n const selected = list!.querySelector<HTMLElement>('[role=\"tab\"][aria-selected=\"true\"]');\n const rect = list!.getBoundingClientRect();\n if (selected && rect.width > 0 && rect.height > 0) {\n const tab = selected.getBoundingClientRect();\n const border = getComputedStyle(list!);\n list!.style.setProperty(\n '--tabs-indicator-x',\n `${tab.left - rect.left + list!.scrollLeft - (parseFloat(border.borderLeftWidth) || 0)}px`,\n );\n list!.style.setProperty(\n '--tabs-indicator-y',\n `${tab.top - rect.top + list!.scrollTop - (parseFloat(border.borderTopWidth) || 0)}px`,\n );\n list!.style.setProperty('--tabs-indicator-width', `${tab.width}px`);\n list!.style.setProperty('--tabs-indicator-height', `${tab.height}px`);\n list!.dataset.indicatorReady = 'true';\n if (!armed) {\n armed = true;\n requestAnimationFrame(() => {\n if (!disposed) list!.dataset.indicatorAnimated = 'true';\n });\n }\n if (selected !== previous && previous && typeof list!.scrollBy === 'function') {\n const delta = vertical()\n ? tab.top < rect.top\n ? tab.top - rect.top\n : tab.bottom > rect.bottom\n ? tab.bottom - rect.bottom\n : 0\n : tab.left < rect.left\n ? tab.left - rect.left\n : tab.right > rect.right\n ? tab.right - rect.right\n : 0;\n if (delta)\n list!.scrollBy({\n [vertical() ? 'top' : 'left']: delta,\n behavior: reduced() ? 'instant' : 'smooth',\n });\n }\n } else list!.dataset.indicatorReady = 'false';\n previous = selected;\n const max = vertical()\n ? list!.scrollHeight - list!.clientHeight\n : list!.scrollWidth - list!.clientWidth;\n const position = Math.abs(vertical() ? list!.scrollTop : list!.scrollLeft);\n list!.dataset.overflow = String(max > 1);\n if (prev) {\n prev.hidden = max <= 1;\n prev.disabled = position <= 1;\n }\n if (next) {\n next.hidden = max <= 1;\n next.disabled = position >= max - 1;\n }\n }\n function schedule() {\n if (disposed) return;\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(measure);\n }\n function scroll(direction: number) {\n if (typeof list!.scrollBy !== 'function') return;\n const rtl = !vertical() && getComputedStyle(list!).direction === 'rtl';\n const amount =\n (vertical() ? list!.clientHeight : list!.clientWidth) * 0.7 * direction * (rtl ? -1 : 1);\n list!.scrollBy({\n [vertical() ? 'top' : 'left']: amount,\n behavior: reduced() ? 'instant' : 'smooth',\n });\n }\n const backward = () => scroll(-1),\n forward = () => scroll(1);\n prev?.addEventListener('click', backward);\n next?.addEventListener('click', forward);\n list.addEventListener('scroll', schedule, { passive: true });\n window.addEventListener('resize', schedule);\n const observer = new MutationObserver(schedule);\n observer.observe(list, {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['aria-selected', 'aria-orientation', 'aria-disabled', 'disabled'],\n });\n const resize = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(schedule);\n resize?.observe(list);\n for (const tab of list.querySelectorAll('[role=\"tab\"]')) resize?.observe(tab);\n void document.fonts?.ready.then(schedule);\n schedule();\n return () => {\n disposed = true;\n cancelAnimationFrame(frame);\n observer.disconnect();\n resize?.disconnect();\n prev?.removeEventListener('click', backward);\n next?.removeEventListener('click', forward);\n list.removeEventListener('scroll', schedule);\n window.removeEventListener('resize', schedule);\n };\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport type { ButtonSize } from './Button.js';\nimport { useEffect, useRef, useState, type ReactNode, type HTMLAttributes } from 'react';\nimport { composeRenderProps } from 'react-aria-components';\nimport type {\n TabsProps as AriaTabsProps,\n TabListProps,\n TabProps,\n TabPanelProps,\n} from 'react-aria-components/Tabs';\nimport { Tabs as AriaTabs, TabList, Tab, TabPanel } from 'react-aria-components/Tabs';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { mountTabsIndicator } from './tabs-indicator.js';\nexport interface TabItem {\n id: string;\n label: string;\n isDisabled?: boolean;\n}\n/** `enclosed` is horizontal only; vertical Tabs render it as `secondary`. */\nexport type TabsVariant = 'primary' | 'secondary' | 'default' | 'pill' | 'enclosed';\nfunction variantClass(variant: TabsVariant, orientation?: 'horizontal' | 'vertical') {\n if (variant === 'default') return 'tabs--primary';\n if (variant === 'enclosed' && orientation === 'vertical') return 'tabs--secondary';\n return `tabs--${variant}`;\n}\nexport type TabsPart =\n | 'root'\n | 'listContainer'\n | 'list'\n | 'tab'\n | 'separator'\n | 'icon'\n | 'label'\n | 'panel'\n | 'toolbar'\n | 'navigation'\n | 'extras'\n | 'actions'\n | 'scrollButton';\nexport interface TabsProps extends StylingProps<TabsPart> {\n label: string;\n variant?: TabsVariant;\n size?: ButtonSize;\n indicatorShadow?: boolean;\n orientation?: 'horizontal' | 'vertical';\n align?: 'start' | 'center' | 'end';\n fullWidth?: boolean;\n /** Remove track inset and gaps. Pill uses an outlined track in this mode. */\n inset?: 'default' | 'none';\n showSeparators?: boolean;\n renderIcon?: (item: TabItem) => ReactNode;\n previousLabel?: string;\n nextLabel?: string;\n extras?: ReactNode;\n actions?: ReactNode;\n items: TabItem[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n renderPanel: (item: TabItem) => ReactNode;\n activationMode?: 'automatic' | 'manual';\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactTabs({\n className,\n style,\n classNames,\n label,\n variant = 'primary',\n size = 'md',\n indicatorShadow = true,\n orientation = 'horizontal',\n align = 'center',\n fullWidth = false,\n inset = 'default',\n showSeparators = false,\n renderIcon,\n previousLabel = 'Tab sebelumnya / Previous tabs',\n nextLabel = 'Tab berikutnya / Next tabs',\n extras,\n actions,\n items,\n value,\n defaultValue,\n onChange,\n renderPanel,\n activationMode = 'manual',\n dir,\n id,\n}: TabsProps) {\n const container = useRef<HTMLDivElement>(null);\n const hasToolbar = !!(extras || actions);\n useEffect(\n () => (container.current ? mountTabsIndicator(container.current) : undefined),\n [items.length, hasToolbar],\n );\n const [local, setLocal] = useState(defaultValue);\n const selected =\n items.find((item) => item.id === (value ?? local) && !item.isDisabled)?.id ??\n items.find((item) => !item.isDisabled)?.id;\n const list =\n items.length > 0 ? (\n <div className={partClass('tabs__list-container', classNames?.listContainer)} ref={container}>\n <button\n type=\"button\"\n className={partClass(\n 'tabs__scroll-button tabs__scroll-button--prev',\n classNames?.scrollButton,\n )}\n data-tabs-scroll=\"prev\"\n hidden\n aria-label={previousLabel}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m14 6-6 6 6 6\" />\n </svg>\n </button>\n <TabList className={partClass('tabs__list', classNames?.list)} aria-label={label}>\n {items.map((item, index) => (\n <Tab\n className={partClass('tabs__trigger', classNames?.tab)}\n key={item.id}\n id={item.id}\n isDisabled={item.isDisabled}\n >\n {showSeparators && index > 0 && (\n <span\n className={partClass('tabs__separator', classNames?.separator)}\n aria-hidden=\"true\"\n />\n )}\n {renderIcon && (\n <span className={partClass('tabs__icon', classNames?.icon)} aria-hidden=\"true\">\n {renderIcon(item)}\n </span>\n )}\n <span className={partClass('tabs__label', classNames?.label)}>{item.label}</span>\n </Tab>\n ))}\n </TabList>\n <button\n type=\"button\"\n className={partClass(\n 'tabs__scroll-button tabs__scroll-button--next',\n classNames?.scrollButton,\n )}\n data-tabs-scroll=\"next\"\n hidden\n aria-label={nextLabel}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m10 6 6 6-6 6\" />\n </svg>\n </button>\n </div>\n ) : null;\n const content = (\n <AriaTabs\n data-indicator-shadow={indicatorShadow}\n className={[\n 'tabs',\n classNames?.root,\n className,\n variantClass(variant, orientation),\n `tabs--align-${align}`,\n fullWidth && 'tabs--full-width',\n inset === 'none' && 'tabs--flush',\n size !== 'md' && `tabs--${size}`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n id={id}\n orientation={orientation}\n dir={dir}\n selectedKey={selected ?? ''}\n keyboardActivation={activationMode}\n disabledKeys={items.filter((item) => item.isDisabled).map((item) => item.id)}\n onSelectionChange={(key) => {\n const next = String(key);\n if (next !== selected && items.some((item) => item.id === next && !item.isDisabled)) {\n setLocal(next);\n onChange?.(next);\n }\n }}\n >\n {extras || actions ? (\n <div className={partClass('tabs__toolbar', classNames?.toolbar)}>\n <div className={partClass('tabs__navigation', classNames?.navigation)}>\n {list}\n {extras && (\n <div className={partClass('tabs__extras', classNames?.extras)}>{extras}</div>\n )}\n </div>\n {actions && (\n <div className={partClass('tabs__actions', classNames?.actions)}>{actions}</div>\n )}\n </div>\n ) : (\n list\n )}\n {items.map((item) => (\n <TabPanel\n key={item.id}\n id={item.id}\n className={partClass('tabs__panel', classNames?.panel)}\n >\n {renderPanel(item)}\n </TabPanel>\n ))}\n </AriaTabs>\n );\n return dir ? (\n <I18nProvider locale={dir === 'rtl' ? 'ar-EG' : 'en-US'}>{content}</I18nProvider>\n ) : (\n content\n );\n}\n\nexport interface TabsRootProps\n extends\n Omit<\n AriaTabsProps,\n | 'selectedKey'\n | 'defaultSelectedKey'\n | 'onSelectionChange'\n | 'className'\n | 'style'\n | 'children'\n >,\n StylingProps<'root'> {\n children?: ReactNode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n variant?: TabsVariant;\n size?: ButtonSize;\n indicatorShadow?: boolean;\n align?: 'start' | 'center' | 'end';\n fullWidth?: boolean;\n}\nexport function TabsRoot({\n className,\n classNames,\n value,\n defaultValue,\n onChange,\n variant = 'primary',\n size = 'md',\n align = 'center',\n fullWidth,\n indicatorShadow = true,\n ...props\n}: TabsRootProps) {\n return (\n <AriaTabs\n {...props}\n data-indicator-shadow={indicatorShadow}\n selectedKey={value}\n defaultSelectedKey={defaultValue}\n onSelectionChange={onChange ? (key) => onChange(String(key)) : undefined}\n className={[\n 'tabs',\n variantClass(variant, props.orientation),\n `tabs--align-${align}`,\n size !== 'md' && `tabs--${size}`,\n fullWidth && 'tabs--full-width',\n classNames?.root,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n />\n );\n}\nexport function TabsListContainer({\n className,\n children,\n previousLabel = 'Tab sebelumnya / Previous tabs',\n nextLabel = 'Tab berikutnya / Next tabs',\n ...props\n}: HTMLAttributes<HTMLDivElement> & { previousLabel?: string; nextLabel?: string }) {\n const ref = useRef<HTMLDivElement>(null);\n useEffect(() => (ref.current ? mountTabsIndicator(ref.current) : undefined), []);\n return (\n <div {...props} ref={ref} className={partClass('tabs__list-container', className)}>\n <button\n type=\"button\"\n className=\"tabs__scroll-button tabs__scroll-button--prev\"\n data-tabs-scroll=\"prev\"\n hidden\n aria-label={previousLabel}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m14 6-6 6 6 6\" />\n </svg>\n </button>\n {children}\n <button\n type=\"button\"\n className=\"tabs__scroll-button tabs__scroll-button--next\"\n data-tabs-scroll=\"next\"\n hidden\n aria-label={nextLabel}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m10 6 6 6-6 6\" />\n </svg>\n </button>\n </div>\n );\n}\nexport function TabsList<T extends object>(props: TabListProps<T>) {\n return (\n <TabList\n {...props}\n className={composeRenderProps(props.className, (value) => partClass('tabs__list', value))}\n />\n );\n}\nexport function TabsTab(props: TabProps) {\n return (\n <Tab\n {...props}\n className={composeRenderProps(props.className, (value) => partClass('tabs__trigger', value))}\n />\n );\n}\nexport function TabsPanel(props: TabPanelProps) {\n return (\n <TabPanel\n {...props}\n className={composeRenderProps(props.className, (value) => partClass('tabs__panel', value))}\n />\n );\n}\nexport function TabsIndicator({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} aria-hidden=\"true\" className={partClass('tabs__indicator', className)} />;\n}\nexport function TabsSeparator({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} aria-hidden=\"true\" className={partClass('tabs__separator', className)} />;\n}\nfunction TabsComponent(props: TabsProps | TabsRootProps) {\n return 'items' in props ? <CompactTabs {...props} /> : <TabsRoot {...props} />;\n}\nexport const Tabs = /* @__PURE__ */ Object.assign(TabsComponent, {\n Root: TabsRoot,\n ListContainer: TabsListContainer,\n List: TabsList,\n Tab: TabsTab,\n Panel: TabsPanel,\n Indicator: TabsIndicator,\n Separator: TabsSeparator,\n});\n","export function paginationModel(\n totalItems: number,\n pageSize: number,\n value: number,\n siblingCount = 1,\n) {\n const total = Number.isFinite(totalItems)\n ? Math.min(Number.MAX_SAFE_INTEGER, Math.max(0, Math.floor(totalItems)))\n : 0;\n const size = Number.isFinite(pageSize) ? Math.max(1, Math.floor(pageSize)) : 10;\n const count = Math.max(1, Math.ceil(total / size));\n const current = Math.min(count, Math.max(1, Number.isFinite(value) ? Math.floor(value) : 1));\n const siblings = Number.isFinite(siblingCount)\n ? Math.min(2, Math.max(0, Math.floor(siblingCount)))\n : 1;\n const pages = new Set([1, count, current]);\n for (let offset = 1; offset <= siblings; offset++) {\n if (current - offset > 1) pages.add(current - offset);\n if (current + offset < count) pages.add(current + offset);\n }\n const ordered = [...pages].sort((a, b) => a - b);\n const entries: (number | string)[] = [];\n ordered.forEach((page, index) => {\n if (index && page - ordered[index - 1] > 1) entries.push(`gap-${page}`);\n entries.push(page);\n });\n return { current, count, entries };\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport {\n createContext,\n useContext,\n useState,\n type HTMLAttributes,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { paginationModel } from './pagination-model.js';\nexport type PaginationPart = 'root' | 'button' | 'gap' | 'summary';\nexport interface PaginationProps extends StylingProps<PaginationPart> {\n totalItems: number;\n pageSize?: number;\n value?: number;\n defaultValue?: number;\n onChange?: (page: number) => void;\n isDisabled?: boolean;\n siblingCount?: number;\n label?: string;\n previousLabel?: string;\n nextLabel?: string;\n pageLabel?: string;\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactPagination({\n className,\n style,\n classNames,\n totalItems,\n pageSize = 10,\n value,\n defaultValue = 1,\n onChange,\n isDisabled = false,\n siblingCount = 1,\n label = 'Navigasi halaman',\n previousLabel = 'Sebelumnya',\n nextLabel = 'Berikutnya',\n pageLabel = 'Halaman',\n dir,\n id,\n}: PaginationProps) {\n const [local, setLocal] = useState(defaultValue);\n const { current, count, entries } = paginationModel(\n totalItems,\n pageSize,\n value ?? local,\n siblingCount,\n );\n function change(next: number) {\n if (isDisabled || next === current || next < 1 || next > count) return;\n setLocal(next);\n onChange?.(next);\n }\n return (\n <nav\n className={partClass(partClass('pagination', classNames?.root), className)}\n style={style}\n aria-label={label}\n dir={dir}\n id={id}\n >\n <button\n type=\"button\"\n className={partClass('pagination__button', classNames?.button)}\n disabled={isDisabled || current === 1}\n onClick={() => change(current - 1)}\n >\n {previousLabel}\n </button>\n {entries.map((entry) =>\n typeof entry === 'string' ? (\n <span\n className={partClass('pagination__gap', classNames?.gap)}\n aria-hidden=\"true\"\n key={entry}\n >\n ...\n </span>\n ) : (\n <button\n type=\"button\"\n key={entry}\n className={partClass('pagination__button', classNames?.button)}\n aria-label={`${pageLabel} ${entry}`}\n aria-current={entry === current ? 'page' : undefined}\n disabled={isDisabled}\n onClick={() => change(entry)}\n >\n {entry}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className={partClass('pagination__button', classNames?.button)}\n disabled={isDisabled || current === count}\n onClick={() => change(current + 1)}\n >\n {nextLabel}\n </button>\n <span className={partClass('pagination__summary', classNames?.summary)} aria-live=\"polite\">\n {current} / {count}\n </span>\n </nav>\n );\n}\n\ninterface PaginationState {\n current: number;\n count: number;\n disabled: boolean;\n change: (page: number) => void;\n}\nconst PaginationContext = createContext<PaginationState | null>(null);\nfunction usePagination() {\n const context = useContext(PaginationContext);\n if (!context) throw new Error('Pagination parts must be used inside Pagination.Root.');\n return context;\n}\nexport interface PaginationRootProps extends Omit<\n PaginationProps,\n 'previousLabel' | 'nextLabel' | 'pageLabel'\n> {\n children?: ReactNode;\n}\nexport function PaginationRoot({\n totalItems,\n pageSize = 10,\n value,\n defaultValue = 1,\n onChange,\n isDisabled = false,\n siblingCount = 1,\n label = 'Navigasi halaman / Pagination',\n className,\n classNames,\n style,\n dir,\n id,\n children,\n}: PaginationRootProps) {\n const [local, setLocal] = useState(defaultValue);\n const { current, count } = paginationModel(totalItems, pageSize, value ?? local, siblingCount);\n function change(page: number) {\n if (isDisabled || !Number.isInteger(page) || page < 1 || page > count || page === current)\n return;\n setLocal(page);\n onChange?.(page);\n }\n return (\n <PaginationContext.Provider value={{ current, count, disabled: isDisabled, change }}>\n <nav\n id={id}\n dir={dir}\n style={style}\n aria-label={label}\n className={partClass(partClass('pagination', classNames?.root), className)}\n >\n {children}\n </nav>\n </PaginationContext.Provider>\n );\n}\nexport function PaginationPageButton({\n page,\n className,\n onClick,\n disabled,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement> & { page: number }) {\n const state = usePagination();\n return (\n <button\n {...props}\n type=\"button\"\n className={partClass('pagination__button', className)}\n disabled={\n disabled || state.disabled || !Number.isInteger(page) || page < 1 || page > state.count\n }\n aria-current={page === state.current ? 'page' : undefined}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) state.change(page);\n }}\n />\n );\n}\nexport function PaginationPrevious(props: ButtonHTMLAttributes<HTMLButtonElement>) {\n const state = usePagination();\n return (\n <PaginationPageButton\n aria-label={props.children ? undefined : 'Halaman sebelumnya / Previous page'}\n {...props}\n page={state.current - 1}\n />\n );\n}\nexport function PaginationNext(props: ButtonHTMLAttributes<HTMLButtonElement>) {\n const state = usePagination();\n return (\n <PaginationPageButton\n aria-label={props.children ? undefined : 'Halaman berikutnya / Next page'}\n {...props}\n page={state.current + 1}\n />\n );\n}\nexport function PaginationSummary({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const state = usePagination();\n return (\n <span {...props} aria-live=\"polite\" className={partClass('pagination__summary', className)}>\n {children ?? `${state.current} / ${state.count}`}\n </span>\n );\n}\nexport function PaginationContent(props: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} />;\n}\nexport function PaginationItem(props: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} />;\n}\nexport function PaginationEllipsis({\n className,\n children = '…',\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('pagination__gap', className)}>\n {children}\n </span>\n );\n}\nfunction PaginationComponent(props: PaginationProps | PaginationRootProps) {\n return 'children' in props ? <PaginationRoot {...props} /> : <CompactPagination {...props} />;\n}\nexport const Pagination = /* @__PURE__ */ Object.assign(PaginationComponent, {\n Root: PaginationRoot,\n Content: PaginationContent,\n Item: PaginationItem,\n PageButton: PaginationPageButton,\n Previous: PaginationPrevious,\n Next: PaginationNext,\n Summary: PaginationSummary,\n Ellipsis: PaginationEllipsis,\n});\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useState,\n createElement,\n type ComponentProps,\n type ComponentType,\n type HTMLAttributes,\n type TableHTMLAttributes,\n type ThHTMLAttributes,\n type TdHTMLAttributes,\n type SVGAttributes,\n} from 'react';\nimport { composeRenderProps } from 'react-aria-components';\nimport { DialogTrigger, Dialog, Heading } from 'react-aria-components/Dialog';\nimport { Modal, ModalOverlay } from 'react-aria-components/Modal';\nimport { Button } from 'react-aria-components/Button';\nimport { Popover } from 'react-aria-components/Popover';\nimport { TooltipTrigger, Tooltip } from 'react-aria-components/Tooltip';\nimport {\n MenuTrigger,\n Menu,\n MenuItem,\n MenuSection,\n SubmenuTrigger,\n type MenuProps,\n} from 'react-aria-components/Menu';\nimport { Header } from 'react-aria-components/Header';\nimport { Separator } from 'react-aria-components/Separator';\nimport { Text } from 'react-aria-components/Text';\nimport { partClass } from './styling.js';\n\n/** Preserve the primitive's complete props, ref and state-based className contract. */\nfunction ariaPart<P extends { className?: string | ((state: never) => string) }>(\n Component: ComponentType<P>,\n base: string,\n) {\n return function Part({ className, ...props }: P) {\n return createElement(Component, {\n ...props,\n className:\n typeof className === 'function'\n ? (state: never) => partClass(base, className(state))\n : partClass(base, className),\n } as P);\n };\n}\nfunction divPart(base: string) {\n return function Part({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass(base, className)} />;\n };\n}\n\nexport type DialogRootProps = Omit<\n ComponentProps<typeof DialogTrigger>,\n 'isOpen' | 'defaultOpen'\n> & { open?: boolean; defaultOpen?: boolean };\nexport function DialogRoot({ open, defaultOpen, ...props }: DialogRootProps) {\n return <DialogTrigger {...props} isOpen={open} defaultOpen={defaultOpen} />;\n}\nexport const DialogTriggerPart = ariaPart(Button, 'button button--secondary');\nexport const DialogBackdrop = ariaPart(ModalOverlay, 'dialog__backdrop dialog__viewport');\nexport const DialogPanel = ariaPart(Modal, 'dialog__panel');\nconst OverlayDescriptionContext = createContext<((id: string) => () => void) | null>(null);\nfunction DescribedDialog({ base, ...props }: ComponentProps<typeof Dialog> & { base: string }) {\n const [descriptions, setDescriptions] = useState<string[]>([]);\n const register = useCallback((id: string) => {\n setDescriptions((current) => (current.includes(id) ? current : [...current, id]));\n return () => setDescriptions((current) => current.filter((value) => value !== id));\n }, []);\n const describedBy =\n [props['aria-describedby'], ...descriptions].filter(Boolean).join(' ') || undefined;\n return (\n <OverlayDescriptionContext.Provider value={register}>\n <Dialog\n {...props}\n aria-describedby={describedBy}\n className={partClass(base, props.className)}\n />\n </OverlayDescriptionContext.Provider>\n );\n}\nexport function DialogContent(props: ComponentProps<typeof Dialog>) {\n return <DescribedDialog {...props} base=\"dialog__content\" />;\n}\nfunction dividedPart(base: string) {\n return function Part({\n divided,\n className,\n ...props\n }: HTMLAttributes<HTMLDivElement> & { divided?: boolean }) {\n return (\n <div {...props} className={partClass(base, className)} data-divided={divided || undefined} />\n );\n };\n}\nexport const OverlayHeader = dividedPart('overlay__header');\nexport const OverlayBody = divPart('overlay__body');\nexport const OverlayFooter = dividedPart('overlay__footer');\nexport function OverlayHeading({\n level = 2,\n slot = 'title',\n ...props\n}: ComponentProps<typeof Heading>) {\n return (\n <Heading\n {...props}\n level={level}\n slot={slot}\n className={partClass('overlay__title', props.className)}\n />\n );\n}\nexport function OverlayDescription({\n className,\n slot = 'description',\n id,\n ...props\n}: ComponentProps<typeof Text>) {\n const generated = useId();\n const descriptionId = id ?? generated;\n const register = useContext(OverlayDescriptionContext);\n useEffect(() => register?.(descriptionId), [descriptionId, register]);\n return (\n <Text\n {...props}\n id={descriptionId}\n slot={slot}\n className={partClass('overlay__description', className)}\n />\n );\n}\nexport function DialogCloseButton({ slot = 'close', ...props }: ComponentProps<typeof Button>) {\n return (\n <Button\n {...props}\n slot={slot}\n className={composeRenderProps(props.className, (value) => partClass('dialog__close', value))}\n />\n );\n}\n\nexport const PopoverTrigger = DialogTriggerPart;\nexport const PopoverContent = ariaPart(Popover, 'popover__panel');\nexport function PopoverDialog(props: ComponentProps<typeof Dialog>) {\n return <DescribedDialog {...props} base=\"popover__content\" />;\n}\nexport function PopoverCloseButton({ slot = 'close', ...props }: ComponentProps<typeof Button>) {\n return (\n <Button\n {...props}\n slot={slot}\n className={composeRenderProps(props.className, (value) =>\n partClass('button button--secondary', value),\n )}\n />\n );\n}\n\nexport type TooltipRootProps = Omit<\n ComponentProps<typeof TooltipTrigger>,\n 'isOpen' | 'defaultOpen'\n> & { open?: boolean; defaultOpen?: boolean };\nexport function TooltipRoot({ open, defaultOpen, ...props }: TooltipRootProps) {\n return <TooltipTrigger {...props} isOpen={open} defaultOpen={defaultOpen} />;\n}\nexport const TooltipTriggerPart = DialogTriggerPart;\nexport const TooltipContent = ariaPart(Tooltip, 'tooltip__panel');\n\nexport type DropdownRootProps = Omit<\n ComponentProps<typeof MenuTrigger>,\n 'isOpen' | 'defaultOpen'\n> & { open?: boolean; defaultOpen?: boolean };\nexport function DropdownRoot({ open, defaultOpen, ...props }: DropdownRootProps) {\n return <MenuTrigger {...props} isOpen={open} defaultOpen={defaultOpen} />;\n}\nexport const DropdownTrigger = DialogTriggerPart;\nexport const DropdownPopover = ariaPart(Popover, 'menu__panel');\nexport function DropdownList<T extends object>(props: MenuProps<T>) {\n return (\n <Menu\n {...props}\n className={composeRenderProps(props.className, (value) => partClass('menu__list', value))}\n />\n );\n}\nexport const DropdownItem = ariaPart(MenuItem, 'menu__item');\nexport const DropdownSection = MenuSection;\nexport const DropdownHeading = ariaPart(Header, 'menu__heading');\nexport const DropdownSeparator = ariaPart(Separator, 'menu__separator');\nexport const DropdownSubmenuTrigger = SubmenuTrigger;\nexport function DropdownItemIndicator({\n className,\n children,\n ...props\n}: SVGAttributes<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n aria-hidden=\"true\"\n className={partClass('menu__check', className)}\n >\n {children ?? <path d=\"M3.5 8.5l3 3 6-6.5\" />}\n </svg>\n );\n}\nexport function DropdownSubmenuIndicator({\n className,\n children,\n ...props\n}: SVGAttributes<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n aria-hidden=\"true\"\n className={partClass('menu__arrow', className)}\n >\n {children ?? <path d=\"M4 6l4 4 4-4\" />}\n </svg>\n );\n}\n\nexport function TableRoot({ className, ...props }: TableHTMLAttributes<HTMLTableElement>) {\n return <table {...props} className={partClass('table', className)} />;\n}\nexport function TableScrollContainer({\n className,\n 'aria-label': label = 'Tabel / Table',\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n {...props}\n role=\"region\"\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- The named overflow region must be keyboard-scrollable.\n tabIndex={0}\n aria-label={label}\n className={partClass('table__scroll', className)}\n />\n );\n}\nexport function TableHeader(props: HTMLAttributes<HTMLTableSectionElement>) {\n return <thead {...props} />;\n}\nexport function TableBody(props: HTMLAttributes<HTMLTableSectionElement>) {\n return <tbody {...props} />;\n}\nexport function TableFooter(props: HTMLAttributes<HTMLTableSectionElement>) {\n return <tfoot {...props} />;\n}\nexport function TableRow(props: HTMLAttributes<HTMLTableRowElement>) {\n return <tr {...props} />;\n}\nexport function TableColumn({ scope = 'col', ...props }: ThHTMLAttributes<HTMLTableCellElement>) {\n return <th {...props} scope={scope} />;\n}\nexport function TableCell(props: TdHTMLAttributes<HTMLTableCellElement>) {\n return <td {...props} />;\n}\nexport function TableCaption({ className, ...props }: HTMLAttributes<HTMLTableCaptionElement>) {\n return <caption {...props} className={partClass('table__caption', className)} />;\n}\n","import type { TableHTMLAttributes } from 'react';\nimport { partClass, type StylingProps } from './styling.js';\nimport {\n TableRoot,\n TableScrollContainer,\n TableHeader,\n TableBody,\n TableFooter,\n TableRow,\n TableColumn,\n TableCell,\n TableCaption,\n} from './structural-parts.js';\nexport interface TableProps\n extends TableHTMLAttributes<HTMLTableElement>, StylingProps<'root' | 'scroll' | 'caption'> {\n caption: string;\n}\nfunction CompactTable({ caption, children, className, classNames, ...props }: TableProps) {\n return (\n <div\n className={partClass('table__scroll', classNames?.scroll)}\n role=\"region\"\n aria-label={caption}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- The named overflow region must be keyboard-scrollable.\n tabIndex={0}\n >\n <table {...props} className={partClass(partClass('table', classNames?.root), className)}>\n <caption className={partClass('table__caption', classNames?.caption)}>{caption}</caption>\n {children}\n </table>\n </div>\n );\n}\nexport const Table = /* @__PURE__ */ Object.assign(CompactTable, {\n Root: TableRoot,\n ScrollContainer: TableScrollContainer,\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Column: TableColumn,\n Cell: TableCell,\n Caption: TableCaption,\n});\n","import { useState } from 'react';\nexport function useDisclosure(\n open?: boolean,\n defaultOpen = false,\n onOpenChange?: (open: boolean) => void,\n) {\n const [local, setLocal] = useState(defaultOpen);\n const visible = open ?? local;\n function change(next: boolean) {\n if (next === visible) return;\n setLocal(next);\n onOpenChange?.(next);\n }\n return { visible, change };\n}\n","import {\n createContext,\n useContext,\n useId,\n type HTMLAttributes,\n type AnchorHTMLAttributes,\n type ButtonHTMLAttributes,\n type SVGAttributes,\n type ThHTMLAttributes,\n type TdHTMLAttributes,\n} from 'react';\nimport { useDisclosure } from './useDisclosure.js';\nimport { partClass } from './styling.js';\nimport type { TableSort } from './data-table-types.js';\n\nexport function EmptyRoot({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('empty', className)} />;\n}\nexport function EmptyTitle({\n className,\n headingLevel = 3,\n ...props\n}: HTMLAttributes<HTMLHeadingElement> & { headingLevel?: 2 | 3 | 4 | 5 | 6 }) {\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return <Heading {...props} className={partClass('empty__title', className)} />;\n}\nexport function EmptyDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('empty__description', className)} />;\n}\nexport function EmptyActions({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('empty__actions', className)} />;\n}\n\ninterface SidebarState {\n visible: boolean;\n change: (visible: boolean) => void;\n label: string;\n navId: string;\n}\nconst SidebarContext = createContext<SidebarState | null>(null);\nfunction useSidebar() {\n const state = useContext(SidebarContext);\n if (!state) throw new Error('Sidebar parts must be used inside Sidebar.Root.');\n return state;\n}\nexport interface SidebarRootProps extends HTMLAttributes<HTMLElement> {\n label: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\nexport function SidebarRoot({\n label,\n open,\n defaultOpen = true,\n onOpenChange,\n id,\n className,\n ...props\n}: SidebarRootProps) {\n const generated = useId();\n const { visible, change } = useDisclosure(open, defaultOpen, onOpenChange);\n return (\n <SidebarContext.Provider value={{ visible, change, label, navId: `${id ?? generated}-nav` }}>\n <aside {...props} id={id} className={partClass('sidebar', className)} />\n </SidebarContext.Provider>\n );\n}\nexport function SidebarHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('sidebar__header', className)} />;\n}\nexport function SidebarTitle({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} className={partClass('sidebar__title', className)} />;\n}\nexport function SidebarToggle({\n className,\n onClick,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const state = useSidebar();\n return (\n <button\n {...props}\n type=\"button\"\n className={partClass('sidebar__toggle', className)}\n aria-expanded={state.visible}\n aria-controls={state.navId}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) state.change(!state.visible);\n }}\n />\n );\n}\nexport function SidebarNavigation(props: HTMLAttributes<HTMLElement>) {\n const state = useSidebar();\n return <nav {...props} id={state.navId} aria-label={state.label} hidden={!state.visible} />;\n}\nexport function SidebarList(props: HTMLAttributes<HTMLUListElement>) {\n return <ul {...props} />;\n}\nexport function SidebarItem(props: HTMLAttributes<HTMLLIElement>) {\n return <li {...props} />;\n}\nexport function SidebarLink({\n className,\n isDisabled,\n href,\n onClick,\n children,\n ...props\n}: AnchorHTMLAttributes<HTMLAnchorElement> & { isDisabled?: boolean }) {\n return (\n <a\n {...props}\n href={isDisabled ? undefined : href}\n aria-disabled={isDisabled || props['aria-disabled']}\n tabIndex={isDisabled ? -1 : props.tabIndex}\n onClick={(event) => {\n if (isDisabled) event.preventDefault();\n else onClick?.(event);\n }}\n className={partClass('sidebar__link', className)}\n >\n {children}\n </a>\n );\n}\n\nexport function ChartRoot({ className, ...props }: HTMLAttributes<HTMLElement>) {\n return <figure {...props} className={partClass('chart', className)} />;\n}\nexport function ChartTitle({ className, ...props }: HTMLAttributes<HTMLElement>) {\n return <figcaption {...props} className={partClass('chart__title', className)} />;\n}\nexport function ChartDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('chart__description', className)} />;\n}\nexport function ChartPlot({ className, ...props }: SVGAttributes<SVGSVGElement>) {\n return (\n <svg\n {...props}\n aria-hidden=\"true\"\n focusable=\"false\"\n className={partClass('chart__plot', className)}\n />\n );\n}\n\ninterface DataTableState {\n sort: TableSort | null;\n onSortChange?: (sort: TableSort) => void;\n disabled: boolean;\n}\nconst DataTableContext = createContext<DataTableState | null>(null);\nexport interface DataTableRootProps extends HTMLAttributes<HTMLDivElement> {\n sort?: TableSort | null;\n onSortChange?: (sort: TableSort) => void;\n isLoading?: boolean;\n isDisabled?: boolean;\n}\nexport function DataTableRoot({\n sort = null,\n onSortChange,\n isLoading,\n isDisabled,\n className,\n ...props\n}: DataTableRootProps) {\n return (\n <DataTableContext.Provider\n value={{ sort, onSortChange, disabled: !!(isLoading || isDisabled) }}\n >\n <div\n {...props}\n aria-busy={isLoading || undefined}\n className={partClass('data-table', className)}\n />\n </DataTableContext.Provider>\n );\n}\nexport function DataTableSortButton({\n columnId,\n className,\n onClick,\n disabled,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement> & { columnId: string }) {\n const state = useContext(DataTableContext);\n if (!state) throw new Error('DataTable.SortButton must be used inside DataTable.Root.');\n return (\n <button\n {...props}\n type=\"button\"\n disabled={disabled || state.disabled}\n className={partClass('table__sort', className)}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented && !state.disabled)\n state.onSortChange?.({\n columnId,\n direction:\n state.sort?.columnId === columnId && state.sort.direction === 'ascending'\n ? 'descending'\n : 'ascending',\n });\n }}\n />\n );\n}\nexport function DataTableColumn({\n columnId,\n scope = 'col',\n ...props\n}: ThHTMLAttributes<HTMLTableCellElement> & { columnId?: string }) {\n const state = useContext(DataTableContext);\n const sort =\n columnId && state\n ? state.sort?.columnId === columnId\n ? state.sort.direction\n : 'none'\n : props['aria-sort'];\n return <th {...props} scope={scope} aria-sort={sort} />;\n}\nexport function DataTableEmpty({ className, ...props }: TdHTMLAttributes<HTMLTableCellElement>) {\n return <td {...props} className={partClass('table__empty', className)} />;\n}\nexport function DataTableStatus({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} role=\"status\" className={partClass('data-table__status', className)} />;\n}\nexport function DataTableError({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} role=\"alert\" className={partClass('input__error', className)} />;\n}\n","import {\n TableRoot,\n TableHeader,\n TableBody,\n TableFooter,\n TableRow,\n TableCell,\n TableCaption,\n TableScrollContainer,\n} from './structural-parts.js';\nimport {\n DataTableRoot,\n DataTableSortButton,\n DataTableStatus,\n DataTableError,\n DataTableColumn as DataTableColumnPart,\n DataTableEmpty,\n} from './layout-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { ReactNode } from 'react';\nimport { Table } from './Table.js';\nimport type { DataTableColumn, DataTableRow, TableSort } from './data-table-types.js';\nexport type DataTablePart =\n | 'root'\n | 'table'\n | 'scroll'\n | 'caption'\n | 'header'\n | 'body'\n | 'row'\n | 'column'\n | 'cell'\n | 'sort'\n | 'empty'\n | 'status'\n | 'error';\nexport interface DataTableProps extends StylingProps<DataTablePart> {\n caption: string;\n columns: DataTableColumn[];\n rows: DataTableRow[];\n sort?: TableSort | null;\n onSortChange?: (sort: TableSort) => void;\n isLoading?: boolean;\n isDisabled?: boolean;\n emptyMessage?: string;\n loadingMessage?: string;\n errorMessage?: string;\n renderCell?: (row: DataTableRow, column: DataTableColumn) => ReactNode;\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactDataTable({\n className,\n style,\n classNames,\n caption,\n columns,\n rows,\n sort = null,\n onSortChange,\n isLoading = false,\n isDisabled = false,\n emptyMessage = 'Tidak ada data.',\n loadingMessage = 'Memuat data...',\n errorMessage,\n renderCell,\n dir,\n id,\n}: DataTableProps) {\n function requestSort(column: DataTableColumn) {\n if (isLoading || isDisabled || !column.sortable) return;\n onSortChange?.({\n columnId: column.id,\n direction:\n sort?.columnId === column.id && sort.direction === 'ascending' ? 'descending' : 'ascending',\n });\n }\n return (\n <div\n className={partClass(partClass('data-table', classNames?.root), className)}\n style={style}\n dir={dir}\n id={id}\n >\n <Table\n className={classNames?.table}\n classNames={{ scroll: classNames?.scroll, caption: classNames?.caption }}\n caption={caption}\n aria-busy={isLoading || undefined}\n >\n <thead className={classNames?.header}>\n <tr className={classNames?.row}>\n {columns.map((column) => (\n <th\n className={classNames?.column}\n key={column.id}\n scope=\"col\"\n aria-sort={\n column.sortable\n ? sort?.columnId === column.id\n ? sort.direction\n : 'none'\n : undefined\n }\n >\n {column.sortable ? (\n <button\n type=\"button\"\n className={partClass('table__sort', classNames?.sort)}\n disabled={isLoading || isDisabled}\n onClick={() => requestSort(column)}\n >\n {column.label}\n <span aria-hidden=\"true\">\n {sort?.columnId === column.id\n ? sort.direction === 'ascending'\n ? '\\u2191'\n : '\\u2193'\n : '\\u2195'}\n </span>\n </button>\n ) : (\n column.label\n )}\n </th>\n ))}\n </tr>\n </thead>\n <tbody className={classNames?.body}>\n {rows.length ? (\n rows.map((row) => (\n <tr className={classNames?.row} key={row.id}>\n {columns.map((column) => (\n <td className={classNames?.cell} key={column.id}>\n {renderCell ? renderCell(row, column) : (row.cells[column.id] ?? '')}\n </td>\n ))}\n </tr>\n ))\n ) : (\n <tr className={classNames?.row}>\n <td\n colSpan={Math.max(1, columns.length)}\n className={partClass('table__empty', classNames?.empty)}\n >\n {isLoading ? loadingMessage : errorMessage || emptyMessage}\n </td>\n </tr>\n )}\n </tbody>\n </Table>\n {isLoading && (\n <p className={partClass('data-table__status', classNames?.status)} role=\"status\">\n {loadingMessage}\n </p>\n )}\n {errorMessage && !isLoading && (\n <p className={partClass('input__error', classNames?.error)} role=\"alert\">\n {errorMessage}\n </p>\n )}\n </div>\n );\n}\n\nfunction DataTableComponent(\n props: DataTableProps | import('./layout-parts.js').DataTableRootProps,\n) {\n return 'columns' in props ? <CompactDataTable {...props} /> : <DataTableRoot {...props} />;\n}\nexport const DataTable = /* @__PURE__ */ Object.assign(DataTableComponent, {\n Root: DataTableRoot,\n SortButton: DataTableSortButton,\n Status: DataTableStatus,\n Error: DataTableError,\n Table: TableRoot,\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Column: DataTableColumnPart,\n Empty: DataTableEmpty,\n Cell: TableCell,\n Caption: TableCaption,\n ScrollContainer: TableScrollContainer,\n});\n","import { partClass, type StylingProps } from './styling.js';\nimport type { ReactNode, HTMLAttributes } from 'react';\nimport type { BadgeTone } from './Badge.js';\nexport type AlertPart = 'root' | 'title' | 'description' | 'actions';\nexport interface AlertProps extends StylingProps<AlertPart> {\n title?: string;\n description?: string;\n tone?: BadgeTone;\n announcement?: 'off' | 'polite' | 'assertive';\n children?: ReactNode;\n actions?: ReactNode;\n id?: string;\n}\nfunction AlertRoot({\n className,\n style,\n classNames,\n title,\n description,\n tone = 'info',\n announcement = 'off',\n children,\n actions,\n id,\n}: AlertProps) {\n return (\n <div\n id={id}\n className={partClass(partClass('alert', classNames?.root), className)}\n style={style}\n data-tone={tone}\n role={\n announcement === 'polite' ? 'status' : announcement === 'assertive' ? 'alert' : undefined\n }\n >\n {title && <p className={partClass('alert__title', classNames?.title)}>{title}</p>}\n {description && (\n <p className={partClass('alert__description', classNames?.description)}>{description}</p>\n )}\n {children}\n {actions && <div className={partClass('alert__actions', classNames?.actions)}>{actions}</div>}\n </div>\n );\n}\nexport function AlertTitle({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('alert__title', className)} />;\n}\nexport function AlertDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n return <p {...props} className={partClass('alert__description', className)} />;\n}\nexport function AlertContent({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('alert__content', className)} />;\n}\nexport function AlertActions({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('alert__actions', className)} />;\n}\nexport function AlertIndicator({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('alert__indicator', className)} />\n );\n}\nexport const Alert = /* @__PURE__ */ Object.assign(AlertRoot, {\n Root: AlertRoot,\n Title: AlertTitle,\n Description: AlertDescription,\n Content: AlertContent,\n Actions: AlertActions,\n Indicator: AlertIndicator,\n});\n","import { EmptyRoot, EmptyTitle, EmptyDescription, EmptyActions } from './layout-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { ReactNode } from 'react';\nexport type EmptyPart = 'root' | 'title' | 'description' | 'actions';\nexport interface EmptyProps extends StylingProps<EmptyPart> {\n title: string;\n description?: string;\n headingLevel?: 2 | 3 | 4 | 5 | 6;\n actions?: ReactNode;\n children?: ReactNode;\n id?: string;\n}\nfunction CompactEmpty({\n className,\n style,\n classNames,\n title,\n description,\n headingLevel = 3,\n actions,\n children,\n id,\n}: EmptyProps) {\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <div\n id={id}\n className={partClass(partClass('empty', classNames?.root), className)}\n style={style}\n >\n <Heading className={partClass('empty__title', classNames?.title)}>{title}</Heading>\n {description && (\n <p className={partClass('empty__description', classNames?.description)}>{description}</p>\n )}\n {children}\n {actions && <div className={partClass('empty__actions', classNames?.actions)}>{actions}</div>}\n </div>\n );\n}\n\nexport const Empty = /* @__PURE__ */ Object.assign(CompactEmpty, {\n Root: EmptyRoot,\n Title: EmptyTitle,\n Description: EmptyDescription,\n Actions: EmptyActions,\n});\n","import { partClass, type StylingProps } from './styling.js';\nimport type { BreadcrumbItem } from './dashboard-types.js';\nimport type { HTMLAttributes, AnchorHTMLAttributes } from 'react';\nexport type BreadcrumbPart = 'root' | 'list' | 'item' | 'separator' | 'link' | 'current';\nexport interface BreadcrumbProps extends StylingProps<BreadcrumbPart> {\n items: BreadcrumbItem[];\n label?: string;\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactBreadcrumb({\n className,\n style,\n classNames,\n items,\n label = 'Jejak halaman',\n dir,\n id,\n}: BreadcrumbProps) {\n return (\n <nav\n id={id}\n className={partClass(partClass('breadcrumb', classNames?.root), className)}\n style={style}\n aria-label={label}\n dir={dir}\n >\n <ol className={classNames?.list}>\n {items.map((item, index) => (\n <li className={classNames?.item} key={index}>\n {index > 0 && (\n <span\n className={partClass('breadcrumb__separator', classNames?.separator)}\n aria-hidden=\"true\"\n >\n /\n </span>\n )}\n {index === items.length - 1 ? (\n <span className={classNames?.current} aria-current=\"page\">\n {item.label}\n </span>\n ) : item.href ? (\n <a className={classNames?.link} href={item.href}>\n {item.label}\n </a>\n ) : (\n <span>{item.label}</span>\n )}\n </li>\n ))}\n </ol>\n </nav>\n );\n}\nexport function BreadcrumbRoot({\n className,\n label = 'Jejak halaman / Breadcrumbs',\n ...props\n}: HTMLAttributes<HTMLElement> & { label?: string }) {\n return <nav {...props} aria-label={label} className={partClass('breadcrumb', className)} />;\n}\nexport function BreadcrumbList(props: HTMLAttributes<HTMLOListElement>) {\n return <ol {...props} />;\n}\nexport function BreadcrumbItemPart(props: HTMLAttributes<HTMLLIElement>) {\n return <li {...props} />;\n}\nexport function BreadcrumbLink({ children, ...props }: AnchorHTMLAttributes<HTMLAnchorElement>) {\n return <a {...props}>{children}</a>;\n}\nexport function BreadcrumbCurrent(props: HTMLAttributes<HTMLSpanElement>) {\n return <span {...props} aria-current=\"page\" />;\n}\nexport function BreadcrumbSeparator({\n className,\n children = '/',\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('breadcrumb__separator', className)}>\n {children}\n </span>\n );\n}\nfunction BreadcrumbComponent(\n props: BreadcrumbProps | (HTMLAttributes<HTMLElement> & { label?: string }),\n) {\n return 'items' in props ? <CompactBreadcrumb {...props} /> : <BreadcrumbRoot {...props} />;\n}\nexport const Breadcrumb = /* @__PURE__ */ Object.assign(BreadcrumbComponent, {\n Root: BreadcrumbRoot,\n List: BreadcrumbList,\n Item: BreadcrumbItemPart,\n Link: BreadcrumbLink,\n Current: BreadcrumbCurrent,\n Separator: BreadcrumbSeparator,\n});\n","import {\n SidebarRoot,\n SidebarHeader,\n SidebarTitle,\n SidebarToggle,\n SidebarNavigation,\n SidebarList,\n SidebarItem,\n SidebarLink,\n} from './layout-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useId } from 'react';\nimport { useDisclosure } from './useDisclosure.js';\nimport type { NavigationItem } from './dashboard-types.js';\nexport type SidebarPart =\n 'root' | 'header' | 'title' | 'toggle' | 'navigation' | 'list' | 'item' | 'link';\nexport interface SidebarProps extends StylingProps<SidebarPart> {\n label: string;\n items: NavigationItem[];\n currentId?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n toggleLabel?: string;\n dir?: 'ltr' | 'rtl';\n id?: string;\n}\nfunction CompactSidebar({\n className,\n style,\n classNames,\n label,\n items,\n currentId,\n open,\n defaultOpen = true,\n onOpenChange,\n toggleLabel = 'Menu navigasi',\n dir,\n id,\n}: SidebarProps) {\n const generated = useId(),\n navId = `${id ?? generated}-nav`;\n const { visible, change } = useDisclosure(open, defaultOpen, onOpenChange);\n return (\n <aside\n id={id}\n className={partClass(partClass('sidebar', classNames?.root), className)}\n style={style}\n dir={dir}\n >\n <div className={partClass('sidebar__header', classNames?.header)}>\n <span className={partClass('sidebar__title', classNames?.title)}>{label}</span>\n <button\n type=\"button\"\n className={partClass('sidebar__toggle', classNames?.toggle)}\n aria-label={toggleLabel}\n aria-expanded={visible}\n aria-controls={navId}\n onClick={() => change(!visible)}\n >\n <span aria-hidden=\"true\">{visible ? '\\u2212' : '+'}</span>\n </button>\n </div>\n <nav className={classNames?.navigation} id={navId} aria-label={label} hidden={!visible}>\n <ul className={classNames?.list}>\n {items.map((item) => (\n <li className={classNames?.item} key={item.id}>\n {item.isDisabled ? (\n <span className={partClass('sidebar__link', classNames?.link)} aria-disabled=\"true\">\n {item.label}\n </span>\n ) : (\n <a\n className={partClass('sidebar__link', classNames?.link)}\n href={item.href}\n aria-current={item.id === currentId ? 'page' : undefined}\n >\n {item.label}\n </a>\n )}\n </li>\n ))}\n </ul>\n </nav>\n </aside>\n );\n}\n\nfunction SidebarComponent(props: SidebarProps | import('./layout-parts.js').SidebarRootProps) {\n return 'items' in props ? <CompactSidebar {...props} /> : <SidebarRoot {...props} />;\n}\nexport const Sidebar = /* @__PURE__ */ Object.assign(SidebarComponent, {\n Root: SidebarRoot,\n Header: SidebarHeader,\n Title: SidebarTitle,\n Toggle: SidebarToggle,\n Navigation: SidebarNavigation,\n List: SidebarList,\n Item: SidebarItem,\n Link: SidebarLink,\n});\n","import type { ChartDatum } from './dashboard-types.js';\nexport function chartModel(data: ChartDatum[]) {\n const valid = data.filter((item) => Number.isFinite(item.value));\n const scale = valid.reduce((max, item) => Math.max(max, Math.abs(item.value)), 1);\n const min = valid.reduce((min, item) => Math.min(min, item.value / scale), 0),\n max = valid.reduce((max, item) => Math.max(max, item.value / scale), 0);\n const span = max - min || 1,\n step = 560 / Math.max(1, valid.length);\n const y = (value: number) => 180 - ((value / scale - min) / span) * 160;\n return {\n items: valid.map((item, index) => ({\n ...item,\n x: 20 + step * (index + 0.5),\n y: y(item.value),\n })),\n baseline: y(0),\n barWidth: Math.min(40, step * 0.7),\n };\n}\n","import type { HTMLAttributes } from 'react';\nimport { ChartRoot, ChartTitle, ChartDescription, ChartPlot } from './layout-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useId } from 'react';\nimport { chartModel } from './chart-model.js';\nimport { Table } from './Table.js';\nimport { Empty } from './Empty.js';\nimport type { ChartDatum } from './dashboard-types.js';\nexport type ChartPart =\n 'root' | 'title' | 'description' | 'plot' | 'axis' | 'line' | 'bar' | 'label' | 'table' | 'empty';\nexport interface ChartProps extends StylingProps<ChartPart> {\n label: string;\n data: ChartDatum[];\n type?: 'bar' | 'line';\n description?: string;\n locale?: string;\n formatOptions?: Intl.NumberFormatOptions;\n categoryLabel?: string;\n valueLabel?: string;\n emptyMessage?: string;\n id?: string;\n dir?: 'ltr' | 'rtl';\n}\nfunction CompactChart({\n className,\n style,\n classNames,\n label,\n data,\n type = 'bar',\n description,\n locale = 'id-ID',\n formatOptions,\n categoryLabel = 'Kategori',\n valueLabel = 'Nilai',\n emptyMessage = 'Belum ada data grafik.',\n id,\n dir,\n}: ChartProps) {\n const generated = useId(),\n labelId = `${id ?? generated}-label`,\n model = chartModel(data),\n format = new Intl.NumberFormat(locale, formatOptions);\n return (\n <figure\n id={id}\n className={partClass(partClass('chart', classNames?.root), className)}\n style={style}\n dir={dir}\n aria-labelledby={labelId}\n >\n <figcaption id={labelId} className={partClass('chart__title', classNames?.title)}>\n {label}\n </figcaption>\n {description && (\n <p className={partClass('chart__description', classNames?.description)}>{description}</p>\n )}\n {model.items.length ? (\n <>\n <svg\n className={partClass('chart__plot', classNames?.plot)}\n viewBox=\"0 0 600 210\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <line\n className={partClass('chart__axis', classNames?.axis)}\n x1=\"20\"\n x2=\"580\"\n y1={model.baseline}\n y2={model.baseline}\n />\n {type === 'line' ? (\n <polyline\n className={partClass('chart__line', classNames?.line)}\n points={model.items.map((item) => `${item.x},${item.y}`).join(' ')}\n />\n ) : null}\n {model.items.map((item) => (\n <g key={item.id}>\n {type === 'bar' ? (\n <rect\n className={partClass('chart__bar', classNames?.bar)}\n x={item.x - model.barWidth / 2}\n y={Math.min(item.y, model.baseline)}\n width={model.barWidth}\n height={Math.abs(item.y - model.baseline)}\n />\n ) : (\n <circle\n className={partClass('chart__bar', classNames?.bar)}\n cx={item.x}\n cy={item.y}\n r=\"4\"\n />\n )}\n {model.items.length <= 12 && (\n <text\n className={partClass('chart__label', classNames?.label)}\n x={item.x}\n y=\"202\"\n textAnchor=\"middle\"\n >\n {item.label.slice(0, 12)}\n </text>\n )}\n </g>\n ))}\n </svg>\n <Table caption={label} className={classNames?.table}>\n <thead>\n <tr>\n <th scope=\"col\">{categoryLabel}</th>\n <th scope=\"col\">{valueLabel}</th>\n </tr>\n </thead>\n <tbody>\n {model.items.map((item) => (\n <tr key={item.id}>\n <th scope=\"row\">{item.label}</th>\n <td>{format.format(item.value)}</td>\n </tr>\n ))}\n </tbody>\n </Table>\n </>\n ) : (\n <Empty title={emptyMessage} className={classNames?.empty} />\n )}\n </figure>\n );\n}\n\nfunction ChartComponent(props: ChartProps | HTMLAttributes<HTMLElement>) {\n return 'data' in props ? <CompactChart {...props} /> : <ChartRoot {...props} />;\n}\nexport const Chart = /* @__PURE__ */ Object.assign(ChartComponent, {\n Root: ChartRoot,\n Title: ChartTitle,\n Description: ChartDescription,\n Plot: ChartPlot,\n});\n","import type { DialogRootProps } from './structural-parts.js';\nimport {\n OverlayHeader,\n OverlayHeading,\n DialogTriggerPart,\n OverlayFooter,\n DialogCloseButton,\n DialogRoot,\n OverlayBody,\n DialogPanel,\n DialogBackdrop as DialogBackdropPart,\n DialogContent,\n OverlayDescription,\n} from './structural-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { useId, type ReactNode } from 'react';\nimport { DialogTrigger, Dialog as AriaDialog, Heading } from 'react-aria-components/Dialog';\nimport { ModalOverlay, Modal } from 'react-aria-components/Modal';\nimport { Button } from 'react-aria-components/Button';\nimport { useDisclosure } from './useDisclosure.js';\nimport { CloseIcon } from './icons.js';\nimport type { ButtonVariant } from './Button.js';\nimport type { DialogSize, DialogPlacement, DialogScroll, DialogBackdrop } from './overlay-model.js';\nexport type DialogPart =\n | 'root'\n | 'trigger'\n | 'backdrop'\n | 'panel'\n | 'content'\n | 'header'\n | 'title'\n | 'description'\n | 'body'\n | 'footer'\n | 'close'\n | 'footerClose';\nexport interface DialogProps extends StylingProps<DialogPart> {\n triggerLabel: string;\n title: string;\n description?: string;\n children?: ReactNode;\n footer?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n closeLabel?: string;\n dir?: 'ltr' | 'rtl';\n triggerContent?: ReactNode;\n triggerIconOnly?: boolean;\n triggerVariant?: ButtonVariant;\n size?: DialogSize;\n placement?: DialogPlacement;\n scroll?: DialogScroll;\n backdrop?: DialogBackdrop;\n isDismissable?: boolean;\n isKeyboardDismissDisabled?: boolean;\n showCloseButton?: boolean;\n showFooterClose?: boolean;\n closeIconLabel?: string;\n /** Full-width divider below the header; content keeps its padding. */\n dividedHeader?: boolean;\n /** Full-width divider above the footer, when a footer is rendered. */\n dividedFooter?: boolean;\n}\nfunction CompactDialog(props: DialogProps) {\n const { className, style, classNames } = props;\n const {\n triggerLabel,\n title,\n description,\n children,\n footer,\n isDisabled = false,\n closeLabel = 'Tutup',\n dir,\n size = 'md',\n placement = 'center',\n scroll = 'outside',\n backdrop = 'opaque',\n isDismissable = true,\n isKeyboardDismissDisabled = false,\n showCloseButton = true,\n showFooterClose = true,\n } = props;\n const { visible, change } = useDisclosure(\n props.open,\n props.defaultOpen ?? false,\n props.onOpenChange,\n );\n const descriptionId = useId();\n return (\n <OverlayDirection dir={dir}>\n <DialogTrigger isOpen={visible} onOpenChange={change}>\n <Button\n className={partClass(\n `button button--${props.triggerVariant ?? 'secondary'}${props.triggerIconOnly ? ' button--icon-only' : ''}`,\n classNames?.trigger,\n )}\n aria-label={triggerLabel}\n isDisabled={isDisabled}\n >\n {props.triggerContent ?? triggerLabel}\n </Button>\n <ModalOverlay\n className={partClass('dialog__backdrop dialog__viewport', classNames?.backdrop)}\n data-size={size}\n data-placement={placement}\n data-scroll={scroll}\n data-backdrop={backdrop}\n isDismissable={isDismissable}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n >\n <Modal className={partClass('dialog__panel', classNames?.panel)} dir={dir}>\n <AriaDialog\n className={partClass(\n partClass(partClass('dialog__content', classNames?.content), classNames?.root),\n className,\n )}\n style={style}\n aria-describedby={description ? descriptionId : undefined}\n >\n <div\n className={partClass('overlay__header', classNames?.header)}\n data-close-button={showCloseButton || undefined}\n data-divided={props.dividedHeader || undefined}\n >\n <Heading\n level={2}\n slot=\"title\"\n className={partClass('overlay__title', classNames?.title)}\n >\n {title}\n </Heading>\n {description && (\n <p\n id={descriptionId}\n className={partClass('overlay__description', classNames?.description)}\n >\n {description}\n </p>\n )}\n {showCloseButton && (\n <Button\n className={partClass('dialog__close', classNames?.close)}\n aria-label={props.closeIconLabel ?? `${closeLabel} dialog`}\n onPress={() => change(false)}\n >\n <CloseIcon />\n </Button>\n )}\n </div>\n <div className={partClass('overlay__body', classNames?.body)}>{children}</div>\n {(footer || showFooterClose) && (\n <div\n className={partClass('overlay__footer', classNames?.footer)}\n data-divided={props.dividedFooter || undefined}\n >\n {footer}\n {showFooterClose && (\n <Button\n className={partClass('button button--secondary', classNames?.footerClose)}\n onPress={() => change(false)}\n >\n {closeLabel}\n </Button>\n )}\n </div>\n )}\n </AriaDialog>\n </Modal>\n </ModalOverlay>\n </DialogTrigger>\n </OverlayDirection>\n );\n}\n\nfunction DialogComponent(props: DialogProps | DialogRootProps) {\n return 'triggerLabel' in props ? <CompactDialog {...props} /> : <DialogRoot {...props} />;\n}\nexport const Dialog = /* @__PURE__ */ Object.assign(DialogComponent, {\n Root: DialogRoot,\n Trigger: DialogTriggerPart,\n Backdrop: DialogBackdropPart,\n Panel: DialogPanel,\n Content: DialogContent,\n Header: OverlayHeader,\n Heading: OverlayHeading,\n Description: OverlayDescription,\n Body: OverlayBody,\n Footer: OverlayFooter,\n CloseButton: DialogCloseButton,\n});\n","import type { DropdownMenuItem } from './dashboard-types.js';\nexport type MenuSelectionMode = 'none' | 'single' | 'multiple';\nexport type MenuPlacement =\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'left-start'\n | 'left-end'\n | 'right-start'\n | 'right-end';\nexport function menuGroups(items: DropdownMenuItem[]) {\n const groups: { key: string; label?: string; items: DropdownMenuItem[] }[] = [];\n for (const item of items) {\n const previous = groups.at(-1);\n if (!previous || previous.label !== item.section || item.separatorBefore)\n groups.push({ key: item.id, label: item.section, items: [item] });\n else previous.items.push(item);\n }\n return groups;\n}\nexport function menuLeaves(items: DropdownMenuItem[], disabled = false): DropdownMenuItem[] {\n return items.flatMap((item) =>\n item.children?.length\n ? menuLeaves(item.children, disabled || !!item.isDisabled)\n : [{ ...item, isDisabled: disabled || item.isDisabled }],\n );\n}\nexport function menuSelection(keys: string[], items: DropdownMenuItem[], mode: MenuSelectionMode) {\n const wanted = new Set(keys);\n const result = menuLeaves(items)\n .filter((item) => wanted.has(item.id))\n .map((item) => item.id);\n return mode === 'none' ? [] : mode === 'single' ? result.slice(0, 1) : result;\n}\nexport type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'cover' | 'full';\nexport type DialogPlacement = 'auto' | 'top' | 'center' | 'bottom';\nexport type DialogScroll = 'inside' | 'outside';\nexport type DialogBackdrop = 'opaque' | 'blur' | 'transparent';\n","import {\n DropdownItemIndicator,\n DropdownSubmenuTrigger,\n DropdownSubmenuIndicator,\n type DropdownRootProps,\n} from './structural-parts.js';\nimport {\n DropdownPopover,\n DropdownSeparator,\n DropdownRoot,\n DropdownItem,\n DropdownSection,\n DropdownList,\n DropdownHeading,\n DropdownTrigger,\n} from './structural-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useState, type ReactNode } from 'react';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport {\n MenuTrigger,\n Menu,\n MenuItem,\n MenuSection,\n SubmenuTrigger,\n} from 'react-aria-components/Menu';\nimport { Header } from 'react-aria-components/Header';\nimport { Separator } from 'react-aria-components/Separator';\nimport { Popover, type PopoverProps } from 'react-aria-components/Popover';\nimport { Button } from 'react-aria-components/Button';\nimport { useDisclosure } from './useDisclosure.js';\nimport { CheckIcon, ChevronIcon } from './icons.js';\nimport {\n menuGroups,\n menuLeaves,\n menuSelection,\n type MenuSelectionMode,\n type MenuPlacement,\n} from './overlay-model.js';\nimport type { DropdownMenuItem } from './dashboard-types.js';\nimport type { ButtonVariant, ButtonSize } from './Button.js';\nexport type DropdownMenuPart =\n | 'root'\n | 'trigger'\n | 'panel'\n | 'list'\n | 'item'\n | 'check'\n | 'icon'\n | 'text'\n | 'description'\n | 'shortcut'\n | 'arrow'\n | 'separator'\n | 'heading'\n | 'section';\nexport interface DropdownMenuProps extends StylingProps<DropdownMenuPart> {\n triggerLabel: string;\n items: DropdownMenuItem[];\n onAction?: (id: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n dir?: 'ltr' | 'rtl';\n triggerContent?: ReactNode;\n triggerIconOnly?: boolean;\n triggerVariant?: ButtonVariant;\n triggerSize?: ButtonSize;\n renderIcon?: (item: DropdownMenuItem) => ReactNode;\n selectionMode?: MenuSelectionMode;\n selectedKeys?: string[];\n defaultSelectedKeys?: string[];\n onSelectionChange?: (keys: string[]) => void;\n closeOnSelect?: boolean;\n placement?: MenuPlacement;\n}\nfunction CompactDropdownMenu(props: DropdownMenuProps) {\n const { className, style, classNames } = props;\n const {\n triggerLabel,\n items,\n isDisabled = false,\n dir,\n selectionMode = 'none',\n placement = 'bottom-start',\n } = props;\n const { visible, change } = useDisclosure(\n props.open,\n props.defaultOpen ?? false,\n props.onOpenChange,\n );\n const [local, setLocal] = useState(props.defaultSelectedKeys ?? []);\n const selected = menuSelection(props.selectedKeys ?? local, items, selectionMode);\n const [side, align] = placement.split('-');\n const popoverPlacement =\n `${side} ${side === 'left' || side === 'right' ? (align === 'start' ? 'top' : 'bottom') : align}` as PopoverProps['placement'];\n const closeOnSelect = props.closeOnSelect ?? selectionMode !== 'multiple';\n const leaves = menuLeaves(items, isDisabled);\n function action(id: string) {\n const item = leaves.find((item) => item.id === id);\n if (item && !item.isDisabled) props.onAction?.(id);\n }\n function select(keys: string[], level: DropdownMenuItem[]) {\n if (isDisabled || selectionMode === 'none') return;\n const levelIds = new Set(level.filter((item) => !item.children?.length).map((item) => item.id));\n const next = menuSelection(\n selectionMode === 'multiple'\n ? [...selected.filter((id) => !levelIds.has(id)), ...keys]\n : keys,\n items,\n selectionMode,\n );\n setLocal(next);\n props.onSelectionChange?.(next);\n }\n function content(item: DropdownMenuItem) {\n const icon = props.renderIcon?.(item);\n return (\n <>\n {selectionMode !== 'none' && !item.children?.length && (\n <CheckIcon className={partClass('menu__check', classNames?.check)} />\n )}\n {icon && (\n <span className={partClass('menu__icon', classNames?.icon)} aria-hidden=\"true\">\n {icon}\n </span>\n )}\n <span className={partClass('menu__text', classNames?.text)}>\n <span>{item.label}</span>\n {item.description && (\n <span className={partClass('menu__description', classNames?.description)}>\n {item.description}\n </span>\n )}\n </span>\n {item.shortcut && (\n <kbd className={partClass('menu__shortcut', classNames?.shortcut)} aria-hidden=\"true\">\n {item.shortcut}\n </kbd>\n )}\n {!!item.children?.length && (\n <ChevronIcon className={partClass('menu__arrow', classNames?.arrow)} />\n )}\n </>\n );\n }\n function renderMenu(level: DropdownMenuItem[], label: string, blocked = false): ReactNode {\n return (\n <Menu\n className={partClass('menu__list', classNames?.list)}\n aria-label={label}\n selectionMode={selectionMode}\n selectedKeys={selected}\n onSelectionChange={(keys) =>\n select(\n keys === 'all'\n ? level.filter((i) => !i.isDisabled && !i.children?.length).map((i) => i.id)\n : Array.from(keys, String),\n level,\n )\n }\n disallowEmptySelection={selectionMode === 'single'}\n shouldCloseOnSelect={closeOnSelect}\n onAction={(key) => action(String(key))}\n >\n {menuGroups(level).flatMap((group, index) => {\n const rows = group.items.map((item) => {\n const disabled = isDisabled || blocked || !!item.isDisabled;\n const row = (\n <MenuItem\n key={item.id}\n id={item.id}\n textValue={item.label}\n className={partClass('menu__item', classNames?.item)}\n isDisabled={disabled}\n data-tone={item.tone ?? 'default'}\n shouldCloseOnSelect={closeOnSelect}\n >\n {content(item)}\n </MenuItem>\n );\n return item.children?.length ? (\n <SubmenuTrigger key={item.id}>\n {row}\n <Popover\n className={partClass('menu__panel', classNames?.panel)}\n offset={4}\n containerPadding={16}\n dir={dir}\n >\n {renderMenu(item.children, item.label, disabled)}\n </Popover>\n </SubmenuTrigger>\n ) : (\n row\n );\n });\n return [\n index > 0 ? (\n <Separator\n key={`${group.key}-separator`}\n className={partClass('menu__separator', classNames?.separator)}\n />\n ) : null,\n <MenuSection key={group.key} aria-label={group.label}>\n {group.label && (\n <Header className={partClass('menu__heading', classNames?.heading)}>\n {group.label}\n </Header>\n )}\n {rows}\n </MenuSection>,\n ];\n })}\n </Menu>\n );\n }\n return (\n <OverlayDirection dir={dir}>\n <MenuTrigger isOpen={visible} onOpenChange={change}>\n <Button\n style={style}\n className={partClass(\n partClass(\n partClass(\n `button button--${props.triggerVariant ?? 'secondary'} button--${props.triggerSize ?? 'md'}${props.triggerIconOnly ? ' button--icon-only' : ''}`,\n classNames?.trigger,\n ),\n classNames?.root,\n ),\n className,\n )}\n aria-label={triggerLabel}\n isDisabled={isDisabled || !items.length}\n >\n {props.triggerContent ?? triggerLabel}\n </Button>\n <Popover\n className={partClass('menu__panel', classNames?.panel)}\n placement={popoverPlacement}\n offset={8}\n containerPadding={16}\n dir={dir}\n >\n {renderMenu(items, triggerLabel)}\n </Popover>\n </MenuTrigger>\n </OverlayDirection>\n );\n}\n\nfunction DropdownMenuComponent(props: DropdownMenuProps | DropdownRootProps) {\n return 'triggerLabel' in props ? <CompactDropdownMenu {...props} /> : <DropdownRoot {...props} />;\n}\nexport const DropdownMenu = /* @__PURE__ */ Object.assign(DropdownMenuComponent, {\n Root: DropdownRoot,\n Trigger: DropdownTrigger,\n Popover: DropdownPopover,\n Menu: DropdownList,\n Item: DropdownItem,\n Section: DropdownSection,\n Heading: DropdownHeading,\n Separator: DropdownSeparator,\n ItemIndicator: DropdownItemIndicator,\n SubmenuTrigger: DropdownSubmenuTrigger,\n SubmenuIndicator: DropdownSubmenuIndicator,\n});\n","import type { DialogRootProps } from './structural-parts.js';\nimport {\n PopoverDialog,\n OverlayHeader,\n OverlayHeading,\n PopoverContent,\n OverlayFooter,\n DialogRoot,\n OverlayBody,\n PopoverTrigger,\n PopoverCloseButton,\n OverlayDescription,\n} from './structural-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { useId, type ReactNode } from 'react';\nimport { DialogTrigger, Dialog, Heading } from 'react-aria-components/Dialog';\nimport { Popover as AriaPopover } from 'react-aria-components/Popover';\nimport { Button } from 'react-aria-components/Button';\nimport { useDisclosure } from './useDisclosure.js';\nexport type PopoverPart =\n 'root' | 'trigger' | 'panel' | 'content' | 'title' | 'description' | 'body' | 'footer' | 'close';\nexport interface PopoverProps extends StylingProps<PopoverPart> {\n triggerLabel: string;\n title: string;\n description?: string;\n children?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n closeLabel?: string;\n dir?: 'ltr' | 'rtl';\n}\nfunction CompactPopover({\n className,\n style,\n classNames,\n triggerLabel,\n title,\n description,\n children,\n open,\n defaultOpen = false,\n onOpenChange,\n isDisabled = false,\n closeLabel = 'Tutup',\n dir,\n}: PopoverProps) {\n const { visible, change } = useDisclosure(open, defaultOpen, onOpenChange),\n descriptionId = useId();\n return (\n <OverlayDirection dir={dir}>\n <DialogTrigger isOpen={visible} onOpenChange={change}>\n <Button\n className={partClass('button button--secondary', classNames?.trigger)}\n isDisabled={isDisabled}\n >\n {triggerLabel}\n </Button>\n <AriaPopover\n className={partClass(\n partClass(partClass('popover__panel', classNames?.panel), classNames?.root),\n className,\n )}\n style={style}\n isNonModal\n placement=\"bottom start\"\n offset={8}\n containerPadding={16}\n dir={dir}\n >\n <Dialog\n className={partClass('popover__content', classNames?.content)}\n aria-describedby={description ? descriptionId : undefined}\n >\n <Heading\n level={2}\n slot=\"title\"\n className={partClass('overlay__title', classNames?.title)}\n >\n {title}\n </Heading>\n {description && (\n <p\n id={descriptionId}\n className={partClass('overlay__description', classNames?.description)}\n >\n {description}\n </p>\n )}\n <div className={partClass('overlay__body', classNames?.body)}>{children}</div>\n <div className={partClass('overlay__footer', classNames?.footer)}>\n <Button\n className={partClass('button button--secondary', classNames?.close)}\n onPress={() => change(false)}\n >\n {closeLabel}\n </Button>\n </div>\n </Dialog>\n </AriaPopover>\n </DialogTrigger>\n </OverlayDirection>\n );\n}\n\nfunction PopoverComponent(props: PopoverProps | DialogRootProps) {\n return 'triggerLabel' in props ? <CompactPopover {...props} /> : <DialogRoot {...props} />;\n}\nexport const Popover = /* @__PURE__ */ Object.assign(PopoverComponent, {\n Root: DialogRoot,\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n Dialog: PopoverDialog,\n Heading: OverlayHeading,\n Description: OverlayDescription,\n Header: OverlayHeader,\n Body: OverlayBody,\n Footer: OverlayFooter,\n CloseButton: PopoverCloseButton,\n});\n","import type { TooltipRootProps } from './structural-parts.js';\nimport { TooltipContent, TooltipTriggerPart, TooltipRoot } from './structural-parts.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { ReactNode } from 'react';\nimport type { ButtonVariant, ButtonSize } from './Button.js';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { TooltipTrigger, Tooltip as AriaTooltip } from 'react-aria-components/Tooltip';\nimport { Button } from 'react-aria-components/Button';\nimport { useDisclosure } from './useDisclosure.js';\nexport type TooltipPart = 'root' | 'trigger' | 'panel';\nexport interface TooltipProps extends StylingProps<TooltipPart> {\n triggerLabel: string;\n text: string;\n triggerContent?: ReactNode;\n triggerIconOnly?: boolean;\n triggerVariant?: ButtonVariant;\n triggerSize?: ButtonSize;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n dir?: 'ltr' | 'rtl';\n}\nfunction CompactTooltip({\n className,\n style,\n classNames,\n triggerLabel,\n text,\n triggerContent,\n triggerIconOnly = false,\n triggerVariant = 'secondary',\n triggerSize = 'md',\n open,\n defaultOpen = false,\n onOpenChange,\n isDisabled = false,\n dir,\n}: TooltipProps) {\n const { visible, change } = useDisclosure(open, defaultOpen, onOpenChange);\n return (\n <OverlayDirection dir={dir}>\n <TooltipTrigger\n isOpen={visible}\n onOpenChange={change}\n delay={300}\n closeDelay={0}\n isDisabled={isDisabled}\n >\n <Button\n className={[\n 'button',\n classNames?.trigger,\n `button--${triggerVariant}`,\n triggerSize !== 'md' && `button--${triggerSize}`,\n triggerIconOnly && 'button--icon-only',\n ]\n .filter(Boolean)\n .join(' ')}\n aria-label={triggerLabel}\n isDisabled={isDisabled}\n >\n {triggerContent ?? triggerLabel}\n </Button>\n <AriaTooltip\n className={partClass(\n partClass(partClass('tooltip__panel', classNames?.panel), classNames?.root),\n className,\n )}\n style={style}\n placement=\"top\"\n offset={8}\n containerPadding={16}\n dir={dir}\n >\n {text}\n </AriaTooltip>\n </TooltipTrigger>\n </OverlayDirection>\n );\n}\n\nfunction TooltipComponent(props: TooltipProps | TooltipRootProps) {\n return 'triggerLabel' in props ? <CompactTooltip {...props} /> : <TooltipRoot {...props} />;\n}\nexport const Tooltip = /* @__PURE__ */ Object.assign(TooltipComponent, {\n Root: TooltipRoot,\n Trigger: TooltipTriggerPart,\n Content: TooltipContent,\n});\n","import { partClass, type StylingProps } from './styling.js';\nexport type SpinnerSize = 'sm' | 'md' | 'lg';\nexport type SpinnerColor = 'current' | 'primary';\nexport interface SpinnerProps extends StylingProps<'root' | 'track' | 'arc' | 'label'> {\n size?: SpinnerSize;\n color?: SpinnerColor;\n label?: string;\n id?: string;\n}\n/** Decorative by default. Use label for a standalone loading status; omit it inside a labeled Button. */\nexport function Spinner({\n size = 'md',\n color = 'current',\n label,\n id,\n className,\n style,\n classNames,\n}: SpinnerProps) {\n return (\n <span\n id={id}\n className={partClass(partClass(`spinner spinner--${size}`, classNames?.root), className)}\n style={style}\n data-color={color}\n role={label ? 'status' : undefined}\n aria-label={label || undefined}\n aria-hidden={!label || undefined}\n >\n <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\">\n <circle className={partClass('spinner__track', classNames?.track)} cx=\"10\" cy=\"10\" r=\"8\" />\n <circle\n className={partClass('spinner__arc', classNames?.arc)}\n cx=\"10\"\n cy=\"10\"\n r=\"8\"\n pathLength=\"100\"\n strokeDasharray=\"36 64\"\n />\n </svg>\n {label && <span className={partClass('spinner__label', classNames?.label)}>{label}</span>}\n </span>\n );\n}\n","import {\n ComboBox as AriaComboBox,\n ComboBoxStateContext,\n type ComboBoxProps,\n Input,\n Button,\n type InputProps,\n type ButtonProps,\n type PopoverProps,\n} from 'react-aria-components/ComboBox';\nimport {\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n useCallback,\n type HTMLAttributes,\n type RefAttributes,\n type RefObject,\n} from 'react';\nimport { Group, type GroupProps } from 'react-aria-components/Group';\nimport type { SelectSize, SelectVariant } from './Select.js';\nimport { SelectionPopover } from './selection-popover.js';\nimport { partClass } from './styling.js';\nimport { CloseIcon, ChevronIcon } from './icons.js';\n\nexport type ComboboxCompositionProps = Omit<\n ComboBoxProps<object>,\n 'className' | 'onChange' | 'value' | 'defaultValue'\n> & {\n className?: string;\n options?: never;\n label?: never;\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n size?: SelectSize;\n variant?: SelectVariant;\n hideLabel?: boolean;\n fullWidth?: boolean;\n selectOnFocus?: boolean;\n disallowEmptySelection?: boolean;\n maxHeight?: number;\n};\nconst ComboboxPolicyContext = createContext({\n inputRef: { current: null } as RefObject<HTMLInputElement | null>,\n disabled: false,\n selectOnFocus: false,\n disallowEmptySelection: false,\n menuTrigger: 'input' as 'input' | 'focus' | 'manual',\n maxHeight: undefined as number | undefined,\n manageReset: false,\n controlled: false,\n resetting: { current: false },\n resetLocal: () => {},\n});\nfunction useComboState() {\n return useContext(ComboBoxStateContext);\n}\nexport function ComboboxComposition({\n className,\n onChange,\n size = 'md',\n variant = 'primary',\n hideLabel,\n fullWidth = true,\n selectOnFocus = false,\n disallowEmptySelection = false,\n maxHeight,\n ...props\n}: ComboboxCompositionProps) {\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const resetting = useRef(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const resetLocal = useCallback(() => setLocal(props.defaultValue ?? null), [props.defaultValue]);\n const value = props.value !== undefined ? props.value : local;\n return (\n <ComboboxPolicyContext.Provider\n value={{\n inputRef,\n disabled: !!props.isDisabled,\n selectOnFocus,\n disallowEmptySelection,\n menuTrigger: props.menuTrigger ?? 'input',\n maxHeight,\n manageReset: props.inputValue === undefined,\n controlled: props.value !== undefined,\n resetting,\n resetLocal,\n }}\n >\n <AriaComboBox\n {...props}\n {...(disallowEmptySelection ? { value } : {})}\n onChange={(key) => {\n if (resetting.current) return;\n if (disallowEmptySelection && key == null) return;\n const next = key == null ? null : String(key);\n setLocal(next);\n onChange?.(next);\n }}\n onInputChange={(text) => {\n if (!resetting.current) props.onInputChange?.(text);\n }}\n className={partClass(\n `select combobox select--${size} select--${variant}${hideLabel ? ' select--label-hidden' : ''}${!fullWidth ? ' select--fit' : ''}`,\n className,\n )}\n />\n </ComboboxPolicyContext.Provider>\n );\n}\nexport function ComboboxInputGroup({\n className,\n ...props\n}: Omit<GroupProps, 'className'> & RefAttributes<HTMLDivElement> & { className?: string }) {\n const state = useComboState();\n return (\n <Group\n {...props}\n className={partClass('combobox__control', className)}\n onKeyDownCapture={(event) => {\n props.onKeyDownCapture?.(event);\n if (\n !event.defaultPrevented &&\n event.key === 'Escape' &&\n state?.isOpen &&\n !event.nativeEvent.isComposing\n ) {\n event.preventDefault();\n event.stopPropagation();\n state.revert();\n }\n }}\n />\n );\n}\nexport function ComboboxInput({\n className,\n ...props\n}: Omit<InputProps, 'className'> & RefAttributes<HTMLInputElement> & { className?: string }) {\n const policy = useContext(ComboboxPolicyContext);\n const state = useComboState();\n const inputRef = useRef<HTMLInputElement | null>(null);\n const focused = useRef(false);\n const selectClick = useRef(false);\n const forwardedRef = props.ref;\n const captureRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n policy.inputRef.current = node;\n if (typeof forwardedRef === 'function') return forwardedRef(node);\n if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef, policy.inputRef],\n );\n useEffect(() => {\n const form = inputRef.current?.form;\n if (!form || !policy.manageReset || !state) return;\n const onReset = (event: Event) => {\n const value = state.value;\n const text = state.inputValue;\n policy.resetting.current = true;\n queueMicrotask(() => {\n if (event.defaultPrevented || policy.controlled) {\n state.setValue(value);\n state.setInputValue(text);\n } else policy.resetLocal();\n policy.resetting.current = false;\n });\n };\n form.addEventListener('reset', onReset, true);\n return () => form.removeEventListener('reset', onReset, true);\n }, [policy, state]);\n return (\n <Input\n {...props}\n ref={captureRef}\n className={partClass('combobox__input', className)}\n onFocus={(event) => {\n const wasFocused = focused.current;\n focused.current = true;\n props.onFocus?.(event);\n // React Aria may restore virtual focus without a matching DOM blur.\n if (!wasFocused && policy.selectOnFocus && !policy.disabled) event.currentTarget.select();\n }}\n onBlur={(event) => {\n focused.current = false;\n props.onBlur?.(event);\n }}\n onPointerDown={(event) => {\n props.onPointerDown?.(event);\n selectClick.current =\n policy.selectOnFocus && document.activeElement !== event.currentTarget;\n if (selectClick.current && !event.defaultPrevented && !policy.disabled) {\n event.preventDefault();\n event.currentTarget.focus();\n event.currentTarget.select();\n }\n }}\n onClick={(event) => {\n props.onClick?.(event);\n if (selectClick.current && !event.defaultPrevented && !policy.disabled)\n event.currentTarget.select();\n selectClick.current = false;\n if (\n !event.defaultPrevented &&\n !policy.disabled &&\n policy.menuTrigger === 'focus' &&\n !state?.isOpen\n )\n state?.open(null, 'focus');\n }}\n />\n );\n}\nexport function ComboboxTrigger({\n className,\n children,\n ...props\n}: Omit<ButtonProps, 'className'> & { className?: string }) {\n const policy = useContext(ComboboxPolicyContext);\n const state = useComboState();\n return (\n <Button\n aria-label=\"Buka pilihan\"\n {...props}\n className={partClass('combobox__toggle', className)}\n onPressStart={(event) => {\n props.onPressStart?.(event);\n // Match React Aria's opening phase: touch activates on release.\n if (\n event.pointerType !== 'touch' &&\n !state?.isOpen &&\n policy.selectOnFocus &&\n !policy.disabled\n )\n policy.inputRef.current?.select();\n }}\n onPress={(event) => {\n props.onPress?.(event);\n if (\n event.pointerType === 'touch' &&\n !state?.isOpen &&\n policy.selectOnFocus &&\n !policy.disabled\n )\n policy.inputRef.current?.select();\n }}\n >\n {children ?? <ChevronIcon className=\"select__icon\" />}\n </Button>\n );\n}\nexport function ComboboxPopover({\n className,\n ...props\n}: Omit<PopoverProps, 'className'> & { className?: string }) {\n const policy = useContext(ComboboxPolicyContext);\n return (\n <SelectionPopover\n maxHeight={policy.maxHeight}\n {...props}\n className={partClass('select__popover combobox__popover', className)}\n />\n );\n}\nexport function ComboboxClearButton({\n className,\n children,\n 'aria-label': label = 'Hapus pilihan',\n ...props\n}: Omit<HTMLAttributes<HTMLButtonElement>, 'onClick'>) {\n const state = useContext(ComboBoxStateContext);\n const { disabled, disallowEmptySelection } = useContext(ComboboxPolicyContext);\n if (disallowEmptySelection) return null;\n return (\n <button\n {...props}\n type=\"button\"\n className={partClass('combobox__clear', className)}\n aria-label={label}\n disabled={disabled || (state?.value == null && !state?.inputValue)}\n onClick={() => {\n state?.setValue(null);\n state?.setInputValue('');\n }}\n >\n {children ?? <CloseIcon className=\"selection__close-icon\" />}\n </button>\n );\n}\n","import {\n ComboboxComposition,\n ComboboxInputGroup,\n ComboboxInput,\n ComboboxTrigger,\n ComboboxPopover,\n ComboboxClearButton,\n type ComboboxCompositionProps,\n} from './combobox-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport {\n popoverPosition,\n popoverWidthClass,\n type PopoverPositionOptions,\n type PopoverWidth,\n} from './popover-position.js';\nimport { useRef, useState, type ReactNode } from 'react';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { Label, ListBox, ListBoxItem } from 'react-aria-components/ComboBox';\nimport type { SelectSize, SelectVariant } from './Select.js';\nimport { CloseIcon, ChevronIcon, CheckIcon } from './icons.js';\nimport { useFeedback } from './field.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { filterOptions, selectionIds, type SelectOption } from './selection-options.js';\nexport interface ComboboxProps\n extends\n PopoverPositionOptions,\n StylingProps<\n | 'root'\n | 'label'\n | 'required'\n | 'control'\n | 'leading'\n | 'input'\n | 'clearButton'\n | 'clearIcon'\n | 'trigger'\n | 'indicator'\n | 'popover'\n | 'list'\n | 'empty'\n | 'item'\n | 'itemLabel'\n | 'itemDescription'\n | 'itemIndicator'\n | 'description'\n | 'error'\n > {\n label: string;\n size?: SelectSize;\n variant?: SelectVariant;\n hideLabel?: boolean;\n fullWidth?: boolean;\n maxHeight?: number;\n /** `trigger` (default) matches the input group; `content` grows with the options. */\n popoverWidth?: PopoverWidth;\n menuTrigger?: 'input' | 'focus' | 'manual';\n selectOnFocus?: boolean;\n disallowEmptySelection?: boolean;\n options: SelectOption[];\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n /** Decorative noninteractive icon before the value/input. */\n startContent?: ReactNode;\n placeholder?: string;\n name?: string;\n isDisabled?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n description?: string;\n errorMessage?: string;\n requiredMessage?: string;\n isClearable?: boolean;\n clearLabel?: string;\n toggleLabel?: string;\n emptyMessage?: string;\n dir?: 'ltr' | 'rtl';\n renderOption?: (option: SelectOption) => ReactNode;\n}\n/** Searchable single selection. Draft text is never submitted as a value. */\nfunction CompactCombobox(props: ComboboxProps) {\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const [draft, setDraft] = useState<string | null>(null);\n const [tried, setTried] = useState(false);\n const resetting = useRef(false);\n const input = useRef<HTMLInputElement>(null);\n const id =\n selectionIds(props.value !== undefined ? props.value : local, props.options, false)[0] ?? null;\n const selected = props.options.find((o) => o.id === id);\n const [previous, setPrevious] = useState(selected);\n if (previous !== selected) {\n setPrevious(selected);\n setDraft(null);\n }\n const text = draft ?? selected?.label ?? '';\n const invalid = props.isInvalid || (tried && props.isRequired && !id);\n const { describedBy, feedback } = useFeedback({\n classNames: props.classNames,\n description: props.description,\n isInvalid: invalid,\n errorMessage:\n props.errorMessage ??\n (props.isRequired && !id ? (props.requiredMessage ?? 'Pilihan wajib diisi.') : undefined),\n });\n function change(value: unknown) {\n if (props.isDisabled || resetting.current) return;\n const next = selectionIds(value, props.options, false)[0] ?? null;\n setLocal(next);\n props.onChange?.(next);\n setDraft(null);\n }\n const content = (\n <ComboboxComposition\n className={partClass(partClass('select combobox', props.classNames?.root), props.className)}\n style={props.style}\n size={props.size}\n variant={props.variant}\n hideLabel={props.hideLabel}\n fullWidth={props.fullWidth}\n maxHeight={props.maxHeight}\n menuTrigger={props.menuTrigger}\n selectOnFocus={props.selectOnFocus}\n disallowEmptySelection={props.disallowEmptySelection}\n onOpenChange={(open) => {\n if (!open) setDraft(null);\n }}\n value={id}\n onChange={change}\n inputValue={text}\n onInputChange={(text) => {\n if (resetting.current) return;\n setDraft(text);\n if (text === '' && id && !props.disallowEmptySelection) {\n setLocal(null);\n props.onChange?.(null);\n }\n }}\n defaultItems={props.options}\n defaultFilter={(label, query) =>\n filterOptions(props.options, query).some((option) => option.label === label)\n }\n allowsEmptyCollection\n allowsCustomValue={false}\n isDisabled={props.isDisabled}\n isRequired={props.isRequired}\n isInvalid={!!invalid}\n validationBehavior=\"aria\"\n >\n <Label className={partClass('select__label', props.classNames?.label)}>\n {props.label}\n {props.isRequired && (\n <span\n className={partClass('selection__required', props.classNames?.required)}\n aria-hidden=\"true\"\n >\n {' '}\n *\n </span>\n )}\n </Label>\n <ComboboxInputGroup\n className={partClass('combobox__control', props.classNames?.control)}\n data-invalid={invalid || undefined}\n data-disabled={props.isDisabled || undefined}\n >\n {props.startContent && (\n <span\n className={partClass('selection__leading', props.classNames?.leading)}\n aria-hidden=\"true\"\n >\n {props.startContent}\n </span>\n )}\n <ComboboxInput\n ref={input}\n className={partClass('combobox__input', props.classNames?.input)}\n placeholder={props.placeholder}\n aria-describedby={describedBy}\n />\n {props.isClearable && !props.disallowEmptySelection && (\n <button\n type=\"button\"\n className={partClass('combobox__clear', props.classNames?.clearButton)}\n data-empty={(!id && !text) || undefined}\n aria-hidden={(!id && !text) || undefined}\n tabIndex={!id && !text ? -1 : undefined}\n disabled={props.isDisabled || (!id && !text)}\n aria-label={props.clearLabel ?? 'Hapus pilihan'}\n onClick={() => {\n change(null);\n input.current?.focus();\n }}\n >\n <CloseIcon\n className={partClass('selection__close-icon', props.classNames?.clearIcon)}\n />\n </button>\n )}\n <ComboboxTrigger\n className={partClass('combobox__toggle', props.classNames?.trigger)}\n aria-label={props.toggleLabel ?? 'Buka pilihan'}\n >\n <ChevronIcon className={partClass('select__icon', props.classNames?.indicator)} />\n </ComboboxTrigger>\n </ComboboxInputGroup>\n <ComboboxPopover\n {...popoverPosition(props)}\n className={partClass(\n popoverWidthClass(props.popoverWidth ?? 'trigger'),\n props.classNames?.popover,\n )}\n >\n <ListBox<SelectOption>\n className={partClass('select__list', props.classNames?.list)}\n renderEmptyState={() => (\n <span className={partClass('selection__empty', props.classNames?.empty)}>\n {props.emptyMessage ?? 'Tidak ada pilihan.'}\n </span>\n )}\n >\n {(option) => (\n <ListBoxItem\n id={option.id}\n textValue={option.label}\n isDisabled={option.isDisabled}\n className={partClass('select__item', props.classNames?.item)}\n >\n <span className={partClass('select__item-label', props.classNames?.itemLabel)}>\n {props.renderOption?.(option) ?? (\n <>\n {option.label}\n {option.description && (\n <span\n className={partClass(\n 'selection__description',\n props.classNames?.itemDescription,\n )}\n >\n {option.description}\n </span>\n )}\n </>\n )}\n </span>\n <CheckIcon className={partClass('select__check', props.classNames?.itemIndicator)} />\n </ListBoxItem>\n )}\n </ListBox>\n </ComboboxPopover>\n {feedback}\n {props.name && (\n <input type=\"hidden\" name={props.name} value={id ?? ''} disabled={props.isDisabled} />\n )}\n <SelectionValidation\n hasValue={!!id}\n required={props.isRequired}\n disabled={props.isDisabled}\n onInvalid={() => {\n setTried(true);\n input.current?.focus();\n }}\n onResetStart={() => {\n resetting.current = true;\n }}\n onReset={(cancelled) => {\n resetting.current = false;\n if (!cancelled) {\n setTried(false);\n setDraft(null);\n if (props.value === undefined) setLocal(props.defaultValue ?? null);\n }\n }}\n />\n </ComboboxComposition>\n );\n return props.dir ? (\n <I18nProvider locale={props.dir === 'rtl' ? 'ar-EG' : 'en-US'}>{content}</I18nProvider>\n ) : (\n content\n );\n}\n\nfunction ComboboxRoot(props: ComboboxProps | ComboboxCompositionProps) {\n if ('options' in props && props.options) return <CompactCombobox {...(props as ComboboxProps)} />;\n return <ComboboxComposition {...(props as ComboboxCompositionProps)} />;\n}\nexport const Combobox = /* @__PURE__ */ Object.assign(ComboboxRoot, {\n Root: ComboboxComposition,\n InputGroup: ComboboxInputGroup,\n Input: ComboboxInput,\n Trigger: ComboboxTrigger,\n Popover: ComboboxPopover,\n ClearButton: ComboboxClearButton,\n});\nexport type { ComboboxCompositionProps } from './combobox-composition.js';\n","export interface ToggleGroupItem {\n id: string;\n label: string;\n isDisabled?: boolean;\n}\nexport type ToggleGroupMode = 'single' | 'multiple';\nexport type ToggleGroupVariant = 'outline' | 'ghost' | 'chip';\n/** Normalize IDs without discarding existing disabled selections. */\nexport function toggleIds(value: unknown, items: ToggleGroupItem[], multiple: boolean): string[] {\n const wanted = new Set(Array.isArray(value) ? value : typeof value === 'string' ? [value] : []);\n const result = [\n ...new Set(\n items.filter((item) => item.id !== '' && wanted.has(item.id)).map((item) => item.id),\n ),\n ];\n return multiple ? result : result.slice(0, 1);\n}\n","import {\n ToggleButtonGroup as ComposedToggleGroup,\n type ToggleButtonGroupProps,\n} from './ToggleButtonGroup.js';\nimport { ToggleButton as ComposedToggleItem } from './ToggleButton.js';\nimport { ButtonGroupSeparator } from './ButtonGroup.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useState, type ReactNode } from 'react';\nimport { ToggleButtonGroup } from 'react-aria-components/ToggleButtonGroup';\nimport { ToggleButton } from 'react-aria-components/ToggleButton';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { toggleIds, type ToggleGroupItem, type ToggleGroupVariant } from './toggle-group-model.js';\nimport type { ButtonSize } from './Button.js';\nexport type { ToggleGroupItem, ToggleGroupMode, ToggleGroupVariant } from './toggle-group-model.js';\ninterface ToggleGroupCommonProps extends StylingProps<'root' | 'item' | 'icon' | 'label'> {\n label: string;\n items: ToggleGroupItem[];\n isDisabled?: boolean;\n isIconOnly?: boolean;\n renderIcon?: (item: ToggleGroupItem) => ReactNode;\n disallowEmptySelection?: boolean;\n variant?: ToggleGroupVariant;\n size?: ButtonSize;\n orientation?: 'horizontal' | 'vertical';\n dir?: 'ltr' | 'rtl';\n}\nexport type ToggleGroupProps = ToggleGroupCommonProps &\n (\n | {\n selectionMode?: 'single';\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n }\n | {\n selectionMode: 'multiple';\n value?: string[];\n defaultValue?: string[];\n onChange?: (value: string[]) => void;\n }\n );\nfunction CompactToggleGroup(\n props: Extract<ToggleGroupProps, { selectionMode: 'multiple' }>,\n): ReactNode;\nfunction CompactToggleGroup(\n props: Exclude<ToggleGroupProps, { selectionMode: 'multiple' }>,\n): ReactNode;\nfunction CompactToggleGroup(props: ToggleGroupProps) {\n const multiple = props.selectionMode === 'multiple';\n const [local, setLocal] = useState<unknown>(props.defaultValue);\n const ids = toggleIds(props.value !== undefined ? props.value : local, props.items, multiple);\n function update(keys: Set<string | number>) {\n if (props.isDisabled) return;\n const requested = new Set(Array.from(keys, String));\n // Keep disabled values parent-owned; user interaction cannot toggle them.\n for (const item of props.items.filter((item) => item.isDisabled)) {\n if (multiple && ids.includes(item.id)) requested.add(item.id);\n else if (!ids.includes(item.id)) requested.delete(item.id);\n }\n const next = toggleIds([...requested], props.items, multiple);\n if (next.length === ids.length && next.every((id, index) => id === ids[index])) return;\n if (props.disallowEmptySelection && ids.length && !next.length) return;\n const value = multiple ? next : (next[0] ?? null);\n setLocal(value);\n if (props.selectionMode === 'multiple') props.onChange?.(next);\n else props.onChange?.(next[0] ?? null);\n }\n return (\n <OverlayDirection dir={props.dir}>\n <ToggleButtonGroup\n className={partClass(partClass('toggle-group', props.classNames?.root), props.className)}\n style={props.style}\n aria-label={props.label}\n dir={props.dir}\n selectionMode={multiple ? 'multiple' : 'single'}\n selectedKeys={ids}\n onSelectionChange={update}\n disallowEmptySelection={props.disallowEmptySelection}\n isDisabled={props.isDisabled}\n orientation={props.orientation ?? 'horizontal'}\n data-variant={props.variant ?? 'outline'}\n data-size={props.size ?? 'md'}\n data-icon-only={props.isIconOnly || undefined}\n >\n {props.items.map((item) => (\n <ToggleButton\n key={item.id}\n id={item.id}\n className={partClass('toggle-group__item', props.classNames?.item)}\n aria-label={item.label}\n isDisabled={props.isDisabled || item.isDisabled}\n >\n {props.renderIcon && (\n <span\n className={partClass('toggle-group__icon', props.classNames?.icon)}\n aria-hidden=\"true\"\n >\n {props.renderIcon(item)}\n </span>\n )}\n {!props.isIconOnly && <span className={props.classNames?.label}>{item.label}</span>}\n </ToggleButton>\n ))}\n </ToggleButtonGroup>\n </OverlayDirection>\n );\n}\n\nfunction ToggleGroupRoot(\n props:\n | Extract<ToggleGroupProps, { selectionMode: 'multiple' }>\n | Extract<ToggleButtonGroupProps, { selectionMode: 'multiple' }>,\n): ReactNode;\nfunction ToggleGroupRoot(\n props:\n | Exclude<ToggleGroupProps, { selectionMode: 'multiple' }>\n | Exclude<ToggleButtonGroupProps, { selectionMode: 'multiple' }>,\n): ReactNode;\nfunction ToggleGroupRoot(props: ToggleGroupProps | ToggleButtonGroupProps) {\n if ('items' in props)\n return props.selectionMode === 'multiple' ? (\n <CompactToggleGroup {...props} />\n ) : (\n <CompactToggleGroup {...props} />\n );\n return <ComposedToggleGroup {...props} />;\n}\nexport const ToggleGroup = /* @__PURE__ */ Object.assign(ToggleGroupRoot, {\n Root: ComposedToggleGroup,\n Item: ComposedToggleItem,\n Separator: ButtonGroupSeparator,\n});\n","import {\n createContext,\n useContext,\n type HTMLAttributes,\n type InputHTMLAttributes,\n type ButtonHTMLAttributes,\n type ReactNode,\n type RefObject,\n} from 'react';\nimport { Button, type ButtonProps } from 'react-aria-components/Button';\nimport { Popover, type PopoverProps } from 'react-aria-components/Popover';\nimport { Dialog } from 'react-aria-components/Dialog';\nimport { I18nProvider, useLocale } from 'react-aria-components/I18nProvider';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport type { DateRange } from './date-range-model.js';\nimport { partClass } from './styling.js';\nimport { ChevronIcon } from './icons.js';\n\nexport interface DateRangeCompositionContextValue {\n id: string;\n text: string;\n labels: { apply: string; clear: string; cancel: string };\n draft: DateRange;\n disabled: boolean;\n readOnly: boolean;\n invalid: boolean;\n feedbackId?: string;\n min?: string;\n max?: string;\n dir?: 'ltr' | 'rtl';\n trigger: RefObject<HTMLButtonElement | null>;\n calendar: ReactNode;\n panel: ReactNode;\n edit: (part: 'start' | 'end', value: string) => void;\n apply: () => void;\n clear: () => void;\n cancel: () => void;\n}\nexport const DateRangeCompositionContext = createContext<DateRangeCompositionContextValue | null>(\n null,\n);\nfunction useRange() {\n const context = useContext(DateRangeCompositionContext);\n if (!context) throw new Error('DateRangePicker parts must be used inside DateRangePicker.');\n return context;\n}\n\nexport function DateRangeTrigger({\n className,\n children,\n ...props\n}: Omit<ButtonProps, 'className'> & { className?: string }) {\n const range = useRange();\n return (\n <Button\n aria-labelledby={`${range.id}-label ${range.id}-value`}\n aria-describedby={range.feedbackId}\n aria-invalid={range.invalid || undefined}\n isDisabled={range.disabled}\n ref={range.trigger}\n {...props}\n className={partClass('date-range__trigger', className)}\n >\n {children ?? <DateRangeValue />}\n </Button>\n );\n}\nexport function DateRangeValue({ className, children, ...props }: HTMLAttributes<HTMLSpanElement>) {\n const range = useRange();\n return (\n <span id={`${range.id}-value`} {...props} className={partClass('date-range__value', className)}>\n {children ?? range.text}\n </span>\n );\n}\nexport function DateRangeIndicator({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span {...props} className={partClass('date-range__chevron', className)} aria-hidden=\"true\">\n {children ?? <ChevronIcon />}\n </span>\n );\n}\nexport function DateRangePopover({\n className,\n children,\n ...props\n}: Omit<PopoverProps, 'className'> & { className?: string }) {\n const range = useRange();\n const { locale } = useLocale();\n // WebKit reads `id-Arab` as LTR, so positioning gets a direction-only locale and the\n // panel gets the range locale back.\n return (\n <OverlayDirection dir={range.dir}>\n <Popover\n placement=\"bottom start\"\n offset={8}\n dir={range.dir}\n {...props}\n className={partClass('date-range__panel', className)}\n >\n {(state) => (\n <I18nProvider locale={locale}>\n <Dialog aria-labelledby={`${range.id}-label`} className=\"date-range__dialog\">\n {typeof children === 'function' ? children(state) : (children ?? range.panel)}\n </Dialog>\n </I18nProvider>\n )}\n </Popover>\n </OverlayDirection>\n );\n}\n/** Render the standard model-bound panel, or compose a custom panel through children. */\nexport function DateRangeContent({\n className,\n children,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n const range = useRange();\n return (\n <div {...props} className={className}>\n {children ?? range.panel}\n </div>\n );\n}\nexport function DateRangeCalendar({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n const range = useRange();\n return (\n <div {...props} className={className}>\n {range.calendar}\n </div>\n );\n}\nexport function DateRangeInput({\n part,\n className,\n onChange,\n ...props\n}: Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue'> & {\n part: 'start' | 'end';\n}) {\n const range = useRange();\n return (\n <input\n type=\"date\"\n form=\"\"\n min={range.min}\n max={range.max}\n disabled={range.disabled}\n readOnly={range.readOnly}\n aria-invalid={range.invalid || undefined}\n {...props}\n className={partClass('input__control', className)}\n value={range.draft[part]}\n onChange={(event) => {\n onChange?.(event);\n if (!event.defaultPrevented) range.edit(part, event.target.value);\n }}\n />\n );\n}\nexport function DateRangeApplyButton({\n className,\n onClick,\n children,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const range = useRange();\n return (\n <button\n type=\"button\"\n {...props}\n className={partClass('button button--primary button--sm', className)}\n disabled={range.disabled || range.readOnly || range.invalid || props.disabled}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) range.apply();\n }}\n >\n {children ?? range.labels.apply}\n </button>\n );\n}\nexport function DateRangeClearButton({\n className,\n onClick,\n children,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const range = useRange();\n return (\n <button\n type=\"button\"\n {...props}\n className={partClass('button button--ghost button--sm', className)}\n disabled={range.disabled || range.readOnly || props.disabled}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) range.clear();\n }}\n >\n {children ?? range.labels.clear}\n </button>\n );\n}\nexport function DateRangeCancelButton({\n className,\n onClick,\n children,\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement>) {\n const range = useRange();\n return (\n <button\n type=\"button\"\n {...props}\n className={partClass('button button--secondary button--sm', className)}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) range.cancel();\n }}\n >\n {children ?? range.labels.cancel}\n </button>\n );\n}\n","import { useContext, useState, useEffect, useRef, type HTMLAttributes } from 'react';\nimport {\n Calendar as AriaCalendar,\n CalendarStateContext,\n CalendarGrid,\n CalendarGridHeader,\n CalendarGridBody,\n CalendarHeaderCell,\n CalendarCell,\n} from 'react-aria-components/Calendar';\nimport {\n RangeCalendar as AriaRangeCalendar,\n RangeCalendarStateContext,\n} from 'react-aria-components/RangeCalendar';\nimport { Button } from 'react-aria-components/Button';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport { parseDate, today, CalendarDate, GregorianCalendar } from '@internationalized/date';\nimport { partClass, type StylingProps } from './styling.js';\nimport type { TemporalRange } from './temporal-model.js';\n\nfunction date(value?: string | null) {\n try {\n return value ? parseDate(value) : undefined;\n } catch {\n return undefined;\n }\n}\nfunction monthName(year: number, month: number, locale: string) {\n return new Intl.DateTimeFormat(locale, {\n month: 'long',\n timeZone: 'UTC',\n calendar: 'gregory',\n }).format(new CalendarDate(year, month, 1).toDate('UTC'));\n}\nexport interface MonthPickerProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n value?: number;\n year?: number;\n onChange?: (month: number) => void;\n locale?: string;\n minDate?: string;\n maxDate?: string;\n isDisabled?: boolean;\n}\nexport function MonthPicker({\n value,\n year = today('UTC').year,\n onChange,\n locale = 'id-ID',\n minDate,\n maxDate,\n isDisabled,\n className,\n ...props\n}: MonthPickerProps) {\n return (\n <div\n {...props}\n className={partClass('calendar__choices', className)}\n role=\"group\"\n aria-label={locale.startsWith('id') ? 'Pilih bulan' : 'Choose month'}\n >\n {Array.from({ length: 12 }, (_, i) => i + 1).map((month) => {\n const start = new CalendarDate(year, month, 1);\n const end = start.add({ months: 1 }).subtract({ days: 1 });\n return (\n <button\n key={month}\n type=\"button\"\n disabled={\n isDisabled ||\n !!(date(minDate) && end.compare(date(minDate)!) < 0) ||\n !!(date(maxDate) && start.compare(date(maxDate)!) > 0)\n }\n aria-pressed={value === month}\n onClick={() => onChange?.(month)}\n >\n {monthName(year, month, locale)}\n </button>\n );\n })}\n </div>\n );\n}\nexport interface YearPickerProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n value?: number;\n onChange?: (year: number) => void;\n locale?: string;\n minDate?: string;\n maxDate?: string;\n isDisabled?: boolean;\n}\nexport function YearPicker({\n value = today('UTC').year,\n onChange,\n locale = 'id-ID',\n minDate,\n maxDate,\n isDisabled,\n className,\n ...props\n}: YearPickerProps) {\n const min = date(minDate)?.year ?? 1,\n max = date(maxDate)?.year ?? 9999;\n const [page, setPage] = useState(\n Math.max(min, Math.min(max, Math.floor((value - 1) / 12) * 12 + 1)),\n );\n return (\n <div {...props} className={partClass('calendar__years', className)}>\n <div className=\"calendar__year-navigation\">\n <button\n type=\"button\"\n aria-label={locale.startsWith('id') ? 'Tahun sebelumnya' : 'Previous years'}\n disabled={isDisabled || page <= min}\n onClick={() => setPage(Math.max(min, page - 12))}\n >\n ‹\n </button>\n <span>\n {page}–{Math.min(page + 11, max)}\n </span>\n <button\n type=\"button\"\n aria-label={locale.startsWith('id') ? 'Tahun berikutnya' : 'Next years'}\n disabled={isDisabled || page + 11 >= max}\n onClick={() => setPage(Math.max(min, Math.min(max - 11, page + 12)))}\n >\n ›\n </button>\n </div>\n <div\n className=\"calendar__choices\"\n role=\"group\"\n aria-label={locale.startsWith('id') ? 'Pilih tahun' : 'Choose year'}\n >\n {Array.from({ length: 12 }, (_, i) => page + i)\n .filter((year) => year <= 9999)\n .map((year) => (\n <button\n type=\"button\"\n key={year}\n disabled={isDisabled || year < min || year > max}\n aria-pressed={value === year}\n onClick={() => onChange?.(year)}\n >\n {year}\n </button>\n ))}\n </div>\n </div>\n );\n}\nexport interface MonthYearNavigationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n value: string;\n onChange: (value: string) => void;\n locale?: string;\n minDate?: string;\n maxDate?: string;\n isDisabled?: boolean;\n}\nexport function MonthYearNavigation({\n value,\n onChange,\n locale = 'id-ID',\n minDate,\n maxDate,\n isDisabled,\n className,\n ...props\n}: MonthYearNavigationProps) {\n const current = date(value) ?? today('UTC');\n const [view, setView] = useState<'month' | 'year' | null>(null);\n const header = useRef<HTMLDivElement>(null),\n lastToggle = useRef<'month' | 'year'>('month'),\n previousView = useRef<typeof view>(null);\n useEffect(() => {\n if (view) {\n (\n header.current?.querySelector<HTMLButtonElement>(\n '.calendar__view [aria-pressed=\"true\"]:not(:disabled)',\n ) ??\n header.current?.querySelector<HTMLButtonElement>('.calendar__view button:not(:disabled)')\n )?.focus();\n } else if (previousView.current) {\n header.current\n ?.querySelectorAll<HTMLButtonElement>('.date-range__heading > button')\n [lastToggle.current === 'month' ? 0 : 1]?.focus();\n }\n previousView.current = view;\n }, [view]);\n useEffect(() => {\n if (!view) return;\n const grid = header.current\n ?.closest('.date-range__month')\n ?.querySelector<HTMLElement>('.date-range__grid');\n if (!grid) return;\n const inert = grid.hasAttribute('inert'),\n hidden = grid.getAttribute('aria-hidden');\n grid.inert = true;\n grid.setAttribute('inert', '');\n grid.setAttribute('aria-hidden', 'true');\n return () => {\n grid.inert = inert;\n if (!inert) grid.removeAttribute('inert');\n if (hidden === null) grid.removeAttribute('aria-hidden');\n else grid.setAttribute('aria-hidden', hidden);\n };\n }, [view]);\n const navigate = (year: number, month: number) => {\n let next = new CalendarDate(year, month, 1);\n const min = date(minDate),\n max = date(maxDate);\n if (min && next.compare(min) < 0) next = min;\n if (max && next.compare(max) > 0) next = max;\n onChange(next.toString());\n };\n return (\n <div {...props} ref={header} className={partClass('calendar__header', className)}>\n <div className=\"date-range__heading\">\n <button\n type=\"button\"\n disabled={isDisabled}\n aria-expanded={view === 'month'}\n onClick={() => {\n lastToggle.current = 'month';\n setView(view === 'month' ? null : 'month');\n }}\n >\n {monthName(current.year, current.month, locale)}\n </button>\n <button\n type=\"button\"\n disabled={isDisabled}\n aria-expanded={view === 'year'}\n onClick={() => {\n lastToggle.current = 'year';\n setView(view === 'year' ? null : 'year');\n }}\n >\n {current.year}\n </button>\n </div>\n {view && (\n <div\n className=\"calendar__view\"\n role=\"group\"\n aria-label={\n view === 'year'\n ? locale.startsWith('id')\n ? 'Pilih tahun'\n : 'Choose year'\n : locale.startsWith('id')\n ? 'Pilih bulan'\n : 'Choose month'\n }\n onKeyDownCapture={(e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n setView(null);\n }\n }}\n >\n {view === 'month' ? (\n <MonthPicker\n value={current.month}\n year={current.year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n isDisabled={isDisabled}\n onChange={(month) => {\n navigate(current.year, month);\n setView(null);\n }}\n />\n ) : (\n <YearPicker\n value={current.year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n isDisabled={isDisabled}\n onChange={(year) => {\n navigate(year, current.month);\n setView('month');\n }}\n />\n )}\n <button type=\"button\" className=\"calendar__back\" onClick={() => setView(null)}>\n {locale.startsWith('id') ? 'Kembali' : 'Back'}\n </button>\n </div>\n )}\n </div>\n );\n}\n/** Reads actual visibleRange rather than assuming the focused day is the first panel. */\nexport function CalendarViewHeader({\n offset = 0,\n onNavigate,\n ...props\n}: Omit<MonthYearNavigationProps, 'value' | 'onChange'> & {\n offset?: number;\n onNavigate: (value: CalendarDate) => void;\n}) {\n const single = useContext(CalendarStateContext),\n range = useContext(RangeCalendarStateContext);\n const state = range ?? single;\n const visible = state?.visibleRange.start ?? today('UTC');\n return (\n <MonthYearNavigation\n {...props}\n value={visible.add({ months: offset }).toString()}\n onChange={(value) => onNavigate(parseDate(value).subtract({ months: offset }))}\n />\n );\n}\nexport interface CalendarProps extends StylingProps<'header' | 'grid' | 'day' | 'month'> {\n label?: string;\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n locale?: string;\n dir?: 'ltr' | 'rtl';\n minDate?: string;\n maxDate?: string;\n isDateUnavailable?: (value: string) => boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n weekStartsOn?: 0 | 1;\n visibleMonths?: 1 | 2;\n referenceDate?: string;\n}\nexport interface RangeCalendarProps extends Omit<\n CalendarProps,\n 'value' | 'defaultValue' | 'onChange'\n> {\n value?: TemporalRange | null;\n defaultValue?: TemporalRange | null;\n onChange?: (value: TemporalRange | null) => void;\n}\nfunction CalendarBody({\n props,\n onNavigate,\n}: {\n props: CalendarProps;\n onNavigate: (date: CalendarDate) => void;\n}) {\n return (\n <>\n <div className=\"date-range__navigation\">\n <Button\n slot=\"previous\"\n className=\"date-range__nav\"\n aria-label={props.locale?.startsWith('id') ? 'Bulan sebelumnya' : 'Previous month'}\n >\n ‹\n </Button>\n <Button\n slot=\"next\"\n className=\"date-range__nav\"\n aria-label={props.locale?.startsWith('id') ? 'Bulan berikutnya' : 'Next month'}\n >\n ›\n </Button>\n </div>\n <div className=\"date-range__months\">\n {Array.from({ length: props.visibleMonths ?? 1 }, (_, i) => (\n <div className={partClass('date-range__month', props.classNames?.month)} key={i}>\n <CalendarViewHeader\n offset={i}\n onNavigate={onNavigate}\n locale={props.locale}\n minDate={props.minDate}\n maxDate={props.maxDate}\n isDisabled={props.isDisabled}\n className={props.classNames?.header}\n />\n <CalendarGrid\n offset={{ months: i }}\n className={partClass('date-range__grid', props.classNames?.grid)}\n weekdayStyle=\"short\"\n >\n <CalendarGridHeader>\n {(day) => (\n <CalendarHeaderCell className=\"date-range__weekday\">{day}</CalendarHeaderCell>\n )}\n </CalendarGridHeader>\n <CalendarGridBody>\n {(day) => (\n <CalendarCell\n date={day}\n className={partClass('date-range__day', props.classNames?.day)}\n />\n )}\n </CalendarGridBody>\n </CalendarGrid>\n </div>\n ))}\n </div>\n </>\n );\n}\nexport function Calendar(props: CalendarProps) {\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const value = props.value === undefined ? local : props.value;\n useEffect(() => {\n const next = date(value);\n if (next) setFocused(next);\n }, [value]);\n const [focused, setFocused] = useState(\n () => date(value) ?? date(props.referenceDate) ?? date(props.minDate) ?? today('UTC'),\n );\n return (\n <I18nProvider locale={props.locale ?? 'id-ID'}>\n <AriaCalendar\n className={partClass(\n partClass('date-range__calendar calendar', props.classNames?.root),\n props.className,\n )}\n style={props.style}\n aria-label={props.label ?? 'Calendar'}\n dir={props.dir}\n value={date(value) ?? null}\n focusedValue={focused}\n onFocusChange={setFocused}\n createCalendar={() => new GregorianCalendar()}\n visibleDuration={{ months: props.visibleMonths ?? 1 }}\n pageBehavior=\"single\"\n firstDayOfWeek={props.weekStartsOn === 0 ? 'sun' : 'mon'}\n minValue={date(props.minDate)}\n maxValue={date(props.maxDate)}\n isDisabled={props.isDisabled}\n isReadOnly={props.isReadOnly}\n isDateUnavailable={(v) => props.isDateUnavailable?.(v.toString()) ?? false}\n onChange={(v) => {\n const next = v?.toString() ?? null;\n setLocal(next);\n props.onChange?.(next);\n }}\n >\n <CalendarBody props={props} onNavigate={setFocused} />\n </AriaCalendar>\n </I18nProvider>\n );\n}\nexport function RangeCalendar(props: RangeCalendarProps) {\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const value = props.value === undefined ? local : props.value;\n const selectedStart = value?.start;\n useEffect(() => {\n const next = date(selectedStart);\n if (next) setFocused(next);\n }, [selectedStart]);\n const [focused, setFocused] = useState(\n () => date(value?.start) ?? date(props.referenceDate) ?? date(props.minDate) ?? today('UTC'),\n );\n const selected =\n date(value?.start) && date(value?.end)\n ? { start: date(value?.start)!, end: date(value?.end)! }\n : null;\n return (\n <I18nProvider locale={props.locale ?? 'id-ID'}>\n <AriaRangeCalendar\n className={partClass(\n partClass('date-range__calendar calendar', props.classNames?.root),\n props.className,\n )}\n style={props.style}\n aria-label={props.label ?? 'Calendar'}\n dir={props.dir}\n value={selected}\n focusedValue={focused}\n onFocusChange={setFocused}\n createCalendar={() => new GregorianCalendar()}\n visibleDuration={{ months: props.visibleMonths ?? 2 }}\n pageBehavior=\"single\"\n firstDayOfWeek={props.weekStartsOn === 0 ? 'sun' : 'mon'}\n minValue={date(props.minDate)}\n maxValue={date(props.maxDate)}\n isDisabled={props.isDisabled}\n isReadOnly={props.isReadOnly}\n isDateUnavailable={(v) => props.isDateUnavailable?.(v.toString()) ?? false}\n onChange={(v) => {\n const next = v ? { start: v.start.toString(), end: v.end.toString() } : null;\n setLocal(next);\n props.onChange?.(next);\n }}\n >\n <CalendarBody\n props={{\n ...props,\n visibleMonths: props.visibleMonths ?? 2,\n value: null,\n defaultValue: null,\n onChange: undefined,\n }}\n onNavigate={setFocused}\n />\n </AriaRangeCalendar>\n </I18nProvider>\n );\n}\n","import {\n parseDate,\n today,\n getLocalTimeZone,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n} from '@internationalized/date';\n\nexport interface DateRange {\n start: string;\n end: string;\n}\nexport interface DateRangePreset {\n id: string;\n label: string;\n value: DateRange;\n}\nexport interface DateRangeConstraints {\n minDate?: string;\n maxDate?: string;\n minDays?: number;\n maxDays?: number;\n isDateUnavailable?: (date: string) => boolean;\n}\nexport type DateRangeSize = 'sm' | 'md' | 'lg';\nexport type DateRangeVariant = 'primary' | 'secondary' | 'outline';\nexport interface DateRangeOptions extends DateRangeConstraints {\n label: string;\n defaultValue?: DateRange | null;\n size?: DateRangeSize;\n variant?: DateRangeVariant;\n hideLabel?: boolean;\n fullWidth?: boolean;\n locale?: string;\n dir?: 'ltr' | 'rtl';\n visibleMonths?: 1 | 2;\n weekStartsOn?: 0 | 1;\n display?: 'popover' | 'inline' | 'dialog' | 'auto';\n commitMode?: 'apply' | 'immediate';\n showActions?: boolean;\n showInputs?: boolean;\n showMonthYearPicker?: boolean;\n triggerDisplay?: 'text' | 'icon';\n /** Matching labels for the committed trigger value. Render period shortcuts in an external Select. */\n presets?: DateRangePreset[];\n labels?: Partial<DateRangeLabels>;\n formatRange?: (value: DateRange, locale: string) => string;\n description?: string;\n errorMessage?: string;\n name?: string;\n referenceDate?: string;\n open?: boolean;\n defaultOpen?: boolean;\n}\nexport type DateRangeError = 'incomplete' | 'order' | 'bounds' | 'unavailable' | 'length';\nexport interface DateRangeLabels {\n title: string;\n start: string;\n end: string;\n apply: string;\n cancel: string;\n clear: string;\n previousMonth: string;\n nextMonth: string;\n presets: string;\n placeholder: string;\n incomplete: string;\n order: string;\n bounds: string;\n unavailable: string;\n length: string;\n required: string;\n}\nexport function dateRangeLabels(locale = 'id-ID'): DateRangeLabels {\n return locale.startsWith('id')\n ? {\n title: 'Pilih rentang tanggal',\n start: 'Tanggal mulai',\n end: 'Tanggal akhir',\n apply: 'Terapkan',\n cancel: 'Batal',\n clear: 'Kosongkan',\n previousMonth: 'Bulan sebelumnya',\n nextMonth: 'Bulan berikutnya',\n presets: 'Pilihan cepat',\n placeholder: 'Pilih tanggal',\n incomplete: 'Lengkapi tanggal mulai dan akhir.',\n order: 'Tanggal akhir harus setelah atau sama dengan tanggal mulai.',\n bounds: 'Tanggal berada di luar batas yang diizinkan.',\n unavailable: 'Rentang memuat tanggal yang tidak tersedia.',\n length: 'Durasi rentang tidak sesuai batas yang diizinkan.',\n required: 'Rentang tanggal wajib diisi.',\n }\n : {\n title: 'Select date range',\n start: 'Start date',\n end: 'End date',\n apply: 'Apply',\n cancel: 'Cancel',\n clear: 'Clear',\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n presets: 'Quick selections',\n placeholder: 'Choose dates',\n incomplete: 'Enter both start and end dates.',\n order: 'End date must be on or after start date.',\n bounds: 'Dates are outside the allowed limits.',\n unavailable: 'The range includes an unavailable date.',\n length: 'The range duration is outside the allowed limits.',\n required: 'A date range is required.',\n };\n}\nexport function validDate(value: string): boolean {\n if (!/^(?!0000)\\d{4}-\\d{2}-\\d{2}$/.test(value)) return false;\n try {\n return parseDate(value).toString() === value;\n } catch {\n return false;\n }\n}\nexport function asDate(value?: string) {\n return value && validDate(value) ? parseDate(value) : undefined;\n}\nexport function currentDate() {\n return today(getLocalTimeZone()).toString();\n}\nexport function rangeError(\n value: DateRange | null,\n constraints: DateRangeConstraints = {},\n): DateRangeError | null {\n if (!value) return null;\n if (!validDate(value.start) || !validDate(value.end)) return 'incomplete';\n if (value.end < value.start) return 'order';\n if (\n (constraints.minDate && value.start < constraints.minDate) ||\n (constraints.maxDate && value.end > constraints.maxDate)\n )\n return 'bounds';\n const start = parseDate(value.start),\n end = parseDate(value.end);\n const days = end.calendar.toJulianDay(end) - start.calendar.toJulianDay(start) + 1;\n if (\n (constraints.minDays && days < constraints.minDays) ||\n (constraints.maxDays && days > constraints.maxDays)\n )\n return 'length';\n if (constraints.isDateUnavailable) {\n for (let day = start; day.compare(end) <= 0; day = day.add({ days: 1 })) {\n if (constraints.isDateUnavailable(day.toString())) return 'unavailable';\n if (day.compare(end) === 0) break;\n }\n }\n return null;\n}\nexport function rangeText(value: DateRange | null, locale = 'id-ID'): string {\n if (!value || !validDate(value.start) || !validDate(value.end)) return '';\n const formatter = new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n timeZone: 'UTC',\n calendar: 'gregory',\n });\n const date = (s: string) => parseDate(s).toDate('UTC');\n return value.start === value.end\n ? formatter.format(date(value.start))\n : `${formatter.format(date(value.start))} – ${formatter.format(date(value.end))}`;\n}\nexport function createDateRangePresets(\n referenceDate = currentDate(),\n locale = 'id-ID',\n weekStartsOn: 0 | 1 = 1,\n): DateRangePreset[] {\n const day = parseDate(referenceDate),\n week = startOfWeek(day, locale, weekStartsOn === 1 ? 'mon' : 'sun');\n const id = locale.startsWith('id');\n return [\n {\n id: 'this-week',\n label: id ? 'Minggu ini' : 'This Week',\n start: week,\n end: week.add({ days: 6 }),\n },\n {\n id: 'last-week',\n label: id ? 'Minggu lalu' : 'Last Week',\n start: week.subtract({ days: 7 }),\n end: week.subtract({ days: 1 }),\n },\n {\n id: 'last-7-days',\n label: id ? '7 hari terakhir' : 'Last 7 Days',\n start: day.subtract({ days: 6 }),\n end: day,\n },\n {\n id: 'last-30-days',\n label: id ? '30 hari terakhir' : 'Last 30 Days',\n start: day.subtract({ days: 29 }),\n end: day,\n },\n {\n id: 'this-month',\n label: id ? 'Bulan ini' : 'Current Month',\n start: startOfMonth(day),\n end: endOfMonth(day),\n },\n {\n id: 'next-month',\n label: id ? 'Bulan depan' : 'Next Month',\n start: startOfMonth(day.add({ months: 1 })),\n end: endOfMonth(day.add({ months: 1 })),\n },\n ].map(({ id, label, start, end }) => ({\n id,\n label,\n value: { start: start.toString(), end: end.toString() },\n }));\n}\n","import {\n DateRangeCompositionContext,\n DateRangeTrigger,\n DateRangeValue,\n DateRangeIndicator,\n DateRangePopover,\n DateRangeContent,\n DateRangeCalendar,\n DateRangeInput,\n DateRangeApplyButton,\n DateRangeClearButton,\n DateRangeCancelButton,\n} from './date-range-composition.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { useContext, useEffect, useId, useRef, useState, type ReactNode } from 'react';\nimport { I18nProvider, useLocale } from 'react-aria-components/I18nProvider';\nimport { Dialog, DialogTrigger } from 'react-aria-components/Dialog';\nimport { Modal, ModalOverlay } from 'react-aria-components/Modal';\nimport { Popover } from 'react-aria-components/Popover';\nimport { popoverPosition, type PopoverPositionOptions } from './popover-position.js';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport { Button } from 'react-aria-components/Button';\nimport {\n RangeCalendar,\n RangeCalendarStateContext,\n CalendarGrid,\n CalendarGridHeader,\n CalendarGridBody,\n CalendarHeaderCell,\n CalendarCell,\n} from 'react-aria-components/RangeCalendar';\nimport { GregorianCalendar } from '@internationalized/date';\nimport { CalendarViewHeader } from './Calendar.js';\nimport { useDisclosure } from './useDisclosure.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { ChevronIcon } from './icons.js';\nimport {\n asDate,\n currentDate,\n dateRangeLabels,\n rangeError,\n rangeText,\n type DateRange,\n type DateRangeOptions,\n} from './date-range-model.js';\n\nexport interface DateRangePickerProps\n extends\n DateRangeOptions,\n PopoverPositionOptions,\n StylingProps<\n | 'root'\n | 'content'\n | 'intro'\n | 'summary'\n | 'body'\n | 'presets'\n | 'preset'\n | 'main'\n | 'inputs'\n | 'field'\n | 'input'\n | 'inputLabel'\n | 'monthSelect'\n | 'yearInput'\n | 'title'\n | 'draftError'\n | 'jump'\n | 'calendar'\n | 'navigation'\n | 'navigationButton'\n | 'months'\n | 'month'\n | 'heading'\n | 'grid'\n | 'weekday'\n | 'day'\n | 'validation'\n | 'footer'\n | 'clearButton'\n | 'cancelButton'\n | 'applyButton'\n | 'label'\n | 'panel'\n | 'trigger'\n | 'icon'\n | 'value'\n | 'chevron'\n | 'dialog'\n | 'description'\n | 'error'\n > {\n value?: DateRange | null;\n onChange?: (value: DateRange | null) => void;\n children?: ReactNode;\n onApply?: (value: DateRange | null) => void;\n onOpenChange?: (open: boolean) => void;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n}\nconst empty = (): DateRange => ({ start: '', end: '' });\nfunction CalendarContent({\n onPending,\n dir,\n children,\n}: {\n onPending: (pending: boolean) => void;\n dir?: 'ltr' | 'rtl';\n children: ReactNode;\n}) {\n const state = useContext(RangeCalendarStateContext);\n const { direction } = useLocale();\n const pending = !!state?.anchorDate;\n useEffect(() => onPending(pending), [pending, onPending]);\n // Some WebKit Intl versions ignore an explicit locale script when inferring direction.\n // Keep the headless calendar's focus methods, overriding only mismatched horizontal keys.\n return (\n <div\n onKeyDownCapture={(event) => {\n if (\n !state ||\n !dir ||\n dir === direction ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey ||\n !['ArrowLeft', 'ArrowRight'].includes(event.key) ||\n !(event.target as HTMLElement).closest('.date-range__day')\n )\n return;\n event.preventDefault();\n event.stopPropagation();\n if ((event.key === 'ArrowRight') === (dir === 'rtl')) state.focusPreviousDay();\n else state.focusNextDay();\n }}\n >\n {children}\n </div>\n );\n}\nfunction DateRangePickerRoot(props: DateRangePickerProps) {\n const {\n label,\n locale = 'id-ID',\n dir,\n size = 'md',\n variant = 'primary',\n fullWidth = true,\n hideLabel = false,\n visibleMonths = 2,\n weekStartsOn = 1,\n display = 'auto',\n showInputs = true,\n presets = [],\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n } = props;\n const labels = { ...dateRangeLabels(locale), ...props.labels };\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const committed = props.value !== undefined ? props.value : local;\n const start = committed?.start ?? '',\n end = committed?.end ?? '';\n const [draft, setDraft] = useState<DateRange>({ start, end });\n const initialFocus = () => {\n const date = asDate(start) ?? asDate(props.referenceDate) ?? asDate(currentDate())!;\n const min = asDate(props.minDate),\n max = asDate(props.maxDate);\n return min && date.compare(min) < 0 ? min : max && date.compare(max) > 0 ? max : date;\n };\n const [focused, setFocused] = useState(initialFocus);\n const [formError, setFormError] = useState(false);\n const [pending, setPending] = useState(false),\n [calendarKey, setCalendarKey] = useState(0);\n const trigger = useRef<HTMLButtonElement>(null);\n const [mobile, setMobile] = useState(false);\n useEffect(() => {\n const query = window.matchMedia('(max-width: 640px)');\n const change = () => setMobile(query.matches);\n change();\n query.addEventListener('change', change);\n return () => query.removeEventListener('change', change);\n }, []);\n const isDialog = display === 'dialog' || (display === 'auto' && mobile);\n const id = useId();\n const disclosure = useDisclosure(props.open, props.defaultOpen, props.onOpenChange);\n const visible = disclosure.visible && !isDisabled;\n useEffect(() => setDraft({ start, end }), [start, end]);\n function replaceDraft(next: DateRange) {\n setDraft(next);\n setPending(false);\n setCalendarKey((k) => k + 1);\n }\n function updateDraft(next: DateRange) {\n if (isDisabled || isReadOnly) return;\n setDraft(next);\n const value = next.start || next.end ? next : null;\n if (props.commitMode === 'immediate' && !rangeError(value, props)) {\n setLocal(value);\n setFormError(false);\n props.onChange?.(value);\n }\n }\n function clearDraft() {\n replaceDraft(empty());\n if (props.commitMode === 'immediate' && !isDisabled && !isReadOnly) {\n setLocal(null);\n props.onChange?.(null);\n }\n }\n function resetDraft() {\n replaceDraft({ start, end });\n setFocused(initialFocus());\n }\n function changeOpen(next: boolean) {\n if (isDisabled && next) return;\n resetDraft();\n disclosure.change(next);\n }\n const nullableDraft = draft.start || draft.end ? draft : null;\n const errorCode = pending\n ? 'incomplete'\n : (rangeError(nullableDraft, props) ?? (isRequired && !nullableDraft ? 'required' : null));\n const error = errorCode ? labels[errorCode] : undefined;\n const committedError = rangeError(committed, props);\n const outerError = props.isInvalid || committedError || formError;\n const matchingPreset = presets.find((p) => p.value.start === start && p.value.end === end);\n const text = committed\n ? (props.formatRange?.(committed, locale) ??\n matchingPreset?.label ??\n rangeText(committed, locale))\n : labels.placeholder;\n const feedbackId = outerError\n ? `${id}-error`\n : props.description\n ? `${id}-description`\n : undefined;\n function apply() {\n if (isDisabled || isReadOnly || errorCode) return;\n const next = nullableDraft ? { ...nullableDraft } : null;\n setLocal(next);\n setFormError(false);\n props.onChange?.(next);\n props.onApply?.(next);\n disclosure.change(false);\n }\n function edit(part: 'start' | 'end', value: string) {\n if (isDisabled || isReadOnly) return;\n replaceDraft({ ...draft, [part]: value });\n updateDraft({ ...draft, [part]: value });\n if (asDate(value)) setFocused(asDate(value)!);\n }\n const calendarValue =\n asDate(draft.start) && asDate(draft.end) && draft.start <= draft.end\n ? { start: asDate(draft.start)!, end: asDate(draft.end)! }\n : null;\n const calendar = (\n <RangeCalendar\n dir={dir}\n key={calendarKey}\n className={partClass('date-range__calendar', props.classNames?.calendar)}\n aria-label={labels.title}\n value={calendarValue}\n focusedValue={focused}\n onFocusChange={setFocused}\n createCalendar={() => new GregorianCalendar()}\n onChange={(v) => {\n if (v) updateDraft({ start: v.start.toString(), end: v.end.toString() });\n }}\n visibleDuration={{ months: visibleMonths }}\n firstDayOfWeek={weekStartsOn === 1 ? 'mon' : 'sun'}\n pageBehavior=\"single\"\n minValue={asDate(props.minDate)}\n maxValue={asDate(props.maxDate)}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isDateUnavailable={\n props.isDateUnavailable ? (d) => props.isDateUnavailable!(d.toString()) : undefined\n }\n >\n <CalendarContent onPending={setPending} dir={dir}>\n <div className={partClass('date-range__navigation', props.classNames?.navigation)}>\n <Button\n slot=\"previous\"\n className={partClass(\n 'date-range__nav date-range__nav--previous',\n props.classNames?.navigationButton,\n )}\n aria-label={labels.previousMonth}\n >\n <ChevronIcon />\n </Button>\n <Button\n slot=\"next\"\n className={partClass(\n 'date-range__nav date-range__nav--next',\n props.classNames?.navigationButton,\n )}\n aria-label={labels.nextMonth}\n >\n <ChevronIcon />\n </Button>\n </div>\n <div className={partClass('date-range__months', props.classNames?.months)}>\n {Array.from({ length: visibleMonths }, (_, i) => (\n <div className={partClass('date-range__month', props.classNames?.month)} key={i}>\n <CalendarViewHeader\n offset={i}\n onNavigate={setFocused}\n locale={locale}\n minDate={props.minDate}\n maxDate={props.maxDate}\n isDisabled={isDisabled}\n className={props.classNames?.heading}\n />\n <CalendarGrid\n offset={{ months: i }}\n className={partClass('date-range__grid', props.classNames?.grid)}\n weekdayStyle=\"short\"\n >\n <CalendarGridHeader>\n {(day) => (\n <CalendarHeaderCell\n className={partClass('date-range__weekday', props.classNames?.weekday)}\n >\n {day}\n </CalendarHeaderCell>\n )}\n </CalendarGridHeader>\n <CalendarGridBody>\n {(date) => (\n <CalendarCell\n date={date}\n className={partClass('date-range__day', props.classNames?.day)}\n />\n )}\n </CalendarGridBody>\n </CalendarGrid>\n </div>\n ))}\n </div>\n </CalendarContent>\n </RangeCalendar>\n );\n const panel = (\n <div\n className={partClass('date-range__content', props.classNames?.content)}\n data-readonly={isReadOnly || undefined}\n >\n <header className={partClass('date-range__intro temporal__sr-only', props.classNames?.intro)}>\n <h2 id={`${id}-title`} className={props.classNames?.title}>\n {labels.title}\n </h2>\n <p\n className={partClass('date-range__summary', props.classNames?.summary)}\n aria-live=\"polite\"\n >\n {pending ? labels.incomplete : rangeText(nullableDraft, locale) || labels.incomplete}\n </p>\n </header>\n <div className={partClass('date-range__body', props.classNames?.body)}>\n <div className={partClass('date-range__main', props.classNames?.main)}>\n {showInputs && (\n <div className={partClass('date-range__inputs', props.classNames?.inputs)}>\n {(['start', 'end'] as const).map((part) => (\n <label\n key={part}\n className={partClass('date-range__field', props.classNames?.field)}\n >\n <span className={props.classNames?.inputLabel}>{labels[part]}</span>\n <input\n className={props.classNames?.input}\n type=\"date\"\n form=\"\"\n value={draft[part]}\n min={props.minDate}\n max={props.maxDate}\n disabled={isDisabled}\n readOnly={isReadOnly}\n aria-invalid={!!errorCode}\n aria-describedby={error ? `${id}-draft-error` : undefined}\n onChange={(e) => edit(part, e.target.value)}\n />\n </label>\n ))}\n </div>\n )}\n {props.showMonthYearPicker && (\n <div className={partClass('date-range__jump', props.classNames?.jump)}>\n <label>\n <span>{locale.startsWith('id') ? 'Bulan' : 'Month'}</span>\n <select\n className={props.classNames?.monthSelect}\n form=\"\"\n disabled={isDisabled}\n aria-label={locale.startsWith('id') ? 'Bulan' : 'Month'}\n value={focused.month}\n onChange={(e) => setFocused(focused.set({ month: Number(e.target.value) }))}\n >\n {Array.from({ length: 12 }, (_, i) => (\n <option key={i} value={i + 1}>\n {new Intl.DateTimeFormat(locale, {\n month: 'long',\n timeZone: 'UTC',\n calendar: 'gregory',\n }).format(focused.set({ month: i + 1, day: 1 }).toDate('UTC'))}\n </option>\n ))}\n </select>\n </label>\n <label>\n <span>{locale.startsWith('id') ? 'Tahun' : 'Year'}</span>\n <input\n className={props.classNames?.yearInput}\n key={focused.year}\n type=\"number\"\n form=\"\"\n disabled={isDisabled}\n min={asDate(props.minDate)?.year ?? 1}\n max={asDate(props.maxDate)?.year ?? 9999}\n defaultValue={focused.year}\n onBlur={(e) => {\n const year = Number(e.target.value);\n if (Number.isInteger(year) && year >= 1 && year <= 9999)\n setFocused(focused.set({ year }));\n else e.target.value = String(focused.year);\n }}\n />\n </label>\n </div>\n )}\n {calendar}\n <div\n className={partClass('date-range__validation', props.classNames?.validation)}\n aria-live=\"polite\"\n >\n {error && (\n <p id={`${id}-draft-error`} role=\"alert\" className={props.classNames?.draftError}>\n {error}\n </p>\n )}\n </div>\n </div>\n </div>\n {props.showActions !== false && (\n <footer className={partClass('date-range__footer', props.classNames?.footer)}>\n <button\n type=\"button\"\n className={partClass('button button--ghost button--sm', props.classNames?.clearButton)}\n disabled={isDisabled || isReadOnly}\n onClick={clearDraft}\n >\n {labels.clear}\n </button>\n <div>\n <button\n type=\"button\"\n className={partClass(\n 'button button--secondary button--sm',\n props.classNames?.cancelButton,\n )}\n onClick={() => changeOpen(false)}\n >\n {labels.cancel}\n </button>\n {props.commitMode !== 'immediate' && (\n <button\n type=\"button\"\n className={partClass(\n 'button button--primary button--sm',\n props.classNames?.applyButton,\n )}\n disabled={isDisabled || isReadOnly || !!errorCode}\n onClick={apply}\n >\n {labels.apply}\n </button>\n )}\n </div>\n </footer>\n )}\n </div>\n );\n const rangeLocale = new Intl.Locale(locale, {\n calendar: 'gregory',\n ...(dir ? { script: dir === 'rtl' ? 'Arab' : 'Latn' } : {}),\n }).toString();\n return (\n <I18nProvider locale={rangeLocale}>\n <DateRangeCompositionContext.Provider\n value={{\n id,\n text,\n labels,\n draft,\n disabled: isDisabled,\n readOnly: isReadOnly,\n invalid: !!errorCode,\n feedbackId,\n min: props.minDate,\n max: props.maxDate,\n dir,\n trigger,\n calendar,\n panel,\n edit,\n apply,\n clear: clearDraft,\n cancel: () => changeOpen(false),\n }}\n >\n <div\n className={[\n 'date-range',\n props.classNames?.root,\n props.className,\n `date-range--${size}`,\n `date-range--${variant}`,\n !fullWidth && 'date-range--fit',\n hideLabel && 'date-range--label-hidden',\n props.triggerDisplay === 'icon' && 'date-range--icon-trigger',\n ]\n .filter(Boolean)\n .join(' ')}\n style={props.style}\n dir={dir}\n data-disabled={isDisabled || undefined}\n >\n <span\n id={`${id}-label`}\n className={partClass('date-range__label', props.classNames?.label)}\n >\n {label}\n {isRequired && <span aria-hidden=\"true\"> *</span>}\n </span>\n {props.children ? (\n <DialogTrigger isOpen={visible} onOpenChange={changeOpen}>\n {props.children}\n </DialogTrigger>\n ) : display === 'inline' ? (\n <section\n className={partClass('date-range__panel date-range__inline', props.classNames?.panel)}\n aria-labelledby={`${id}-title`}\n dir={dir}\n >\n {panel}\n </section>\n ) : (\n <DialogTrigger isOpen={visible} onOpenChange={changeOpen}>\n <Button\n ref={trigger}\n className={partClass('date-range__trigger', props.classNames?.trigger)}\n isDisabled={isDisabled}\n aria-labelledby={`${id}-label ${id}-value`}\n aria-describedby={feedbackId}\n aria-invalid={!!outerError}\n >\n <svg\n className={partClass('date-range__icon', props.classNames?.icon)}\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n >\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\" />\n <path d=\"M7 3v4m10-4v4M3 10h18\" />\n </svg>\n <span\n id={`${id}-value`}\n className={partClass('date-range__value', props.classNames?.value)}\n data-placeholder={!committed || undefined}\n >\n {text}\n </span>\n <ChevronIcon\n className={partClass('date-range__chevron', props.classNames?.chevron)}\n />\n </Button>\n {isDialog ? (\n <ModalOverlay className=\"temporal-picker__overlay\">\n <Modal className=\"date-range__panel temporal-picker__modal\">\n <Dialog aria-labelledby={`${id}-title`} className=\"date-range__dialog\">\n {panel}\n </Dialog>\n </Modal>\n </ModalOverlay>\n ) : (\n // WebKit reads `id-Arab` as LTR, so positioning gets a direction-only\n // locale and the panel gets the range locale back.\n <OverlayDirection dir={dir}>\n <Popover\n className={partClass('date-range__panel', props.classNames?.panel)}\n {...popoverPosition(props, {\n placement: 'bottom start',\n offset: 8,\n containerPadding: 16,\n })}\n dir={dir}\n >\n <I18nProvider locale={rangeLocale}>\n <Dialog\n className={partClass('date-range__dialog', props.classNames?.dialog)}\n aria-labelledby={`${id}-title`}\n >\n {panel}\n </Dialog>\n </I18nProvider>\n </Popover>\n </OverlayDirection>\n )}\n </DialogTrigger>\n )}\n {props.description && (\n <span\n id={`${id}-description`}\n className={partClass('input__description', props.classNames?.description)}\n >\n {props.description}\n </span>\n )}\n {outerError && (\n <span\n id={`${id}-error`}\n className={partClass('input__error', props.classNames?.error)}\n role=\"alert\"\n >\n {props.errorMessage ?? (committedError ? labels[committedError] : labels.required)}\n </span>\n )}\n {props.name && (\n <>\n <input\n type=\"hidden\"\n name={`${props.name}.start`}\n value={start}\n disabled={isDisabled}\n />\n <input type=\"hidden\" name={`${props.name}.end`} value={end} disabled={isDisabled} />\n </>\n )}\n <SelectionValidation\n hasValue={!!committed && !committedError}\n required={isRequired || !!committedError}\n disabled={isDisabled}\n onInvalid={() => {\n setFormError(true);\n trigger.current?.focus();\n }}\n onResetStart={() => {}}\n onReset={(cancelled) => {\n if (!cancelled) {\n if (props.value === undefined) setLocal(props.defaultValue ?? null);\n setFormError(false);\n changeOpen(false);\n }\n }}\n />\n </div>\n </DateRangeCompositionContext.Provider>\n </I18nProvider>\n );\n}\n\nexport const DateRangePicker = /* @__PURE__ */ Object.assign(DateRangePickerRoot, {\n Root: DateRangePickerRoot,\n Trigger: DateRangeTrigger,\n Value: DateRangeValue,\n Indicator: DateRangeIndicator,\n Popover: DateRangePopover,\n Content: DateRangeContent,\n Calendar: DateRangeCalendar,\n Input: DateRangeInput,\n ApplyButton: DateRangeApplyButton,\n ClearButton: DateRangeClearButton,\n CancelButton: DateRangeCancelButton,\n});\n","export type ToastTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';\nexport type ToastPlacement =\n 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end';\nexport type ToastCloseReason =\n 'timeout' | 'dismiss' | 'action' | 'cancel' | 'swipe' | 'clear' | 'unmount';\nexport interface ToastAction {\n label: string;\n altText: string;\n onAction: () => void;\n dismiss?: boolean;\n}\nexport interface ToastOptions {\n id?: string;\n title: string;\n description?: string;\n tone?: ToastTone;\n duration?: number;\n isLoading?: boolean;\n action?: ToastAction;\n cancel?: ToastAction;\n onClose?: (reason: ToastCloseReason) => void;\n}\nexport interface ToastEntry extends Readonly<ToastOptions> {\n readonly id: string;\n readonly tone: ToastTone;\n readonly duration: number;\n readonly isLoading: boolean;\n readonly generation: number;\n readonly state: 'open' | 'closing';\n readonly createdAt: number;\n readonly visibleAt: number | null;\n readonly remaining: number;\n readonly paused: boolean;\n}\nexport interface ToastManagerOptions {\n maxVisible?: number;\n maxPending?: number;\n duration?: number;\n exitDuration?: number;\n}\ntype ToastMessage = string | ToastOptions;\nexport interface ToastPromiseMessages<T> {\n loading: ToastMessage;\n success: ToastMessage | ((value: T) => ToastMessage);\n error: ToastMessage | ((error: unknown) => ToastMessage);\n}\nexport interface ToastManager {\n add(options: ToastOptions): string | null;\n update(id: string, options: Partial<ToastOptions>): boolean;\n dismiss(id: string, reason?: ToastCloseReason): void;\n clear(reason?: ToastCloseReason): void;\n pause(reason: string): void;\n resume(reason: string): void;\n attach(): () => void;\n dispose(): void;\n subscribe(listener: () => void): () => void;\n getSnapshot(): readonly ToastEntry[];\n getServerSnapshot(): readonly ToastEntry[];\n promise<T>(\n promise: Promise<T>,\n messages: ToastPromiseMessages<T>,\n options?: Partial<ToastOptions>,\n ): { id: string | null; promise: Promise<T> };\n}\n\ninterface RecordState {\n entry: ToastEntry;\n timer?: ReturnType<typeof setTimeout>;\n startedAt: number | null;\n exitRemaining: number;\n}\nconst EMPTY: readonly ToastEntry[] = Object.freeze([]);\nconst messageOptions = (message: ToastMessage): ToastOptions =>\n typeof message === 'string' ? { title: message } : message;\nconst milliseconds = (value: number, fallback: number) =>\n Number.isFinite(value) && value >= 0 ? value : fallback;\n\n/** Complete required notifications/cleanup before reporting user callback failures. */\nconst complete = (operations: readonly (() => void)[]) => {\n const errors: unknown[] = [];\n for (const operation of operations) {\n try {\n operation();\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length === 1) throw errors[0];\n if (errors.length > 1) throw new AggregateError(errors, 'Toast lifecycle callbacks failed.');\n};\n\n/** Create per application/provider; no browser globals or timers are used until attached. */\nexport function createToastManager(options: ToastManagerOptions = {}): ToastManager {\n const maxVisible = Math.max(1, Math.floor(options.maxVisible ?? 3));\n const maxPending = Math.max(0, Math.floor(options.maxPending ?? 50));\n const duration = milliseconds(options.duration ?? 5000, 5000);\n const exitDuration = milliseconds(options.exitDuration ?? 200, 200);\n const records = new Map<string, RecordState>();\n const visible: string[] = [];\n const pending: string[] = [];\n const listeners = new Set<() => void>();\n const pauses = new Map<string, number>();\n let snapshot = EMPTY;\n let attached = false;\n let disposed = false;\n let sequence = 0;\n let generation = 0;\n const paused = () => !attached || pauses.size > 0;\n const freeze = (entry: ToastEntry): ToastEntry =>\n Object.freeze({\n ...entry,\n action: entry.action ? Object.freeze({ ...entry.action }) : undefined,\n cancel: entry.cancel ? Object.freeze({ ...entry.cancel }) : undefined,\n });\n const publish = () => {\n const next = visible.map((id) => records.get(id)!.entry);\n if (next.length === snapshot.length && next.every((entry, index) => entry === snapshot[index]))\n return;\n snapshot = Object.freeze(next);\n complete([...listeners]);\n };\n const stop = (record: RecordState) => {\n if (record.timer !== undefined) clearTimeout(record.timer);\n record.timer = undefined;\n if (record.startedAt !== null) {\n const elapsed = Math.max(0, Date.now() - record.startedAt);\n if (record.entry.state === 'closing')\n record.exitRemaining = Math.max(0, record.exitRemaining - elapsed);\n else\n record.entry = freeze({\n ...record.entry,\n remaining: Math.max(0, record.entry.remaining - elapsed),\n });\n }\n record.startedAt = null;\n };\n const promote = () => {\n while (visible.length < maxVisible && pending.length) {\n const id = pending.shift()!;\n const record = records.get(id)!;\n visible.push(id);\n record.entry = freeze({ ...record.entry, visibleAt: Date.now(), paused: paused() });\n start(record);\n }\n };\n const remove = (id: string) => {\n const record = records.get(id);\n if (!record) return;\n stop(record);\n records.delete(id);\n const index = visible.indexOf(id);\n if (index >= 0) visible.splice(index, 1);\n const waiting = pending.indexOf(id);\n if (waiting >= 0) pending.splice(waiting, 1);\n promote();\n publish();\n };\n const start = (record: RecordState) => {\n if (!attached || record.entry.visibleAt === null || record.timer !== undefined) return;\n const closing = record.entry.state === 'closing';\n if (!closing && (paused() || record.entry.isLoading || record.entry.duration === 0)) return;\n record.startedAt = Date.now();\n record.timer = setTimeout(\n () => {\n record.timer = undefined;\n record.startedAt = null;\n if (closing) remove(record.entry.id);\n else manager.dismiss(record.entry.id, 'timeout');\n },\n closing ? record.exitRemaining : record.entry.remaining,\n );\n };\n const refreshPause = () => {\n for (const id of visible) {\n const record = records.get(id)!;\n stop(record);\n record.entry = freeze({\n ...record.entry,\n paused: paused() || record.entry.state === 'closing',\n });\n start(record);\n }\n publish();\n };\n const update = (\n id: string,\n changes: Partial<ToastOptions>,\n invalidate: boolean,\n onGeneration?: (value: number) => void,\n ) => {\n const record = records.get(id);\n if (!record || record.entry.state === 'closing' || disposed) return false;\n stop(record);\n const before = record.entry;\n const settled = before.isLoading && changes.isLoading === false;\n const nextDuration =\n changes.duration !== undefined\n ? milliseconds(changes.duration, duration)\n : settled\n ? duration\n : before.duration;\n record.entry = freeze({\n ...before,\n ...changes,\n id,\n tone: changes.tone ?? before.tone,\n duration: nextDuration,\n isLoading: changes.isLoading ?? before.isLoading,\n remaining: changes.duration !== undefined || settled ? nextDuration : before.remaining,\n generation: invalidate ? ++generation : before.generation,\n });\n onGeneration?.(record.entry.generation);\n start(record);\n publish();\n return true;\n };\n const add = (value: ToastOptions, onGeneration?: (value: number) => void): string | null => {\n if (disposed) return null;\n if (value.id !== undefined && records.has(value.id))\n return update(value.id, value, true, onGeneration) ? value.id : null;\n if (visible.length >= maxVisible && pending.length >= maxPending) return null;\n let id = value.id;\n if (id === undefined) {\n do {\n id = `toast-${++sequence}`;\n } while (records.has(id));\n }\n const entry = freeze({\n ...value,\n id,\n tone: value.tone ?? 'neutral',\n duration: milliseconds(value.duration ?? duration, duration),\n isLoading: value.isLoading ?? false,\n generation: ++generation,\n state: 'open',\n createdAt: Date.now(),\n visibleAt: visible.length < maxVisible ? Date.now() : null,\n remaining: milliseconds(value.duration ?? duration, duration),\n paused: paused(),\n });\n const record: RecordState = { entry, startedAt: null, exitRemaining: exitDuration };\n records.set(id, record);\n if (visible.length < maxVisible) {\n visible.push(id);\n start(record);\n } else pending.push(id);\n onGeneration?.(entry.generation);\n publish();\n return id;\n };\n const manager: ToastManager = {\n add,\n update: (id, changes) => update(id, changes, true),\n dismiss(id, reason = 'dismiss') {\n const record = records.get(id);\n if (!record || record.entry.state === 'closing') return;\n stop(record);\n record.entry = freeze({\n ...record.entry,\n state: 'closing',\n paused: true,\n remaining: reason === 'timeout' ? 0 : record.entry.remaining,\n });\n complete([\n () => {\n if (record.entry.visibleAt === null) remove(id);\n else {\n start(record);\n publish();\n }\n },\n () => record.entry.onClose?.(reason),\n ]);\n },\n clear(reason = 'clear') {\n // Remove waiting entries first so visible exits cannot promote cleared work.\n complete([...pending, ...visible].map((id) => () => manager.dismiss(id, reason)));\n },\n pause(reason) {\n if (disposed) return;\n pauses.set(reason, (pauses.get(reason) ?? 0) + 1);\n if (pauses.size === 1 && pauses.get(reason) === 1) refreshPause();\n },\n resume(reason) {\n const count = pauses.get(reason);\n if (!count || disposed) return;\n if (count === 1) pauses.delete(reason);\n else pauses.set(reason, count - 1);\n if (!pauses.size) refreshPause();\n },\n attach() {\n if (disposed) throw new Error('Cannot attach a disposed ToastManager.');\n if (attached) throw new Error('A ToastManager may attach to only one provider.');\n attached = true;\n try {\n refreshPause();\n } catch (error) {\n attached = false;\n // Rollback also publishes the detached snapshot; report all subscriber failures.\n complete([\n () => {\n throw error;\n },\n refreshPause,\n ]);\n }\n let detached = false;\n return () => {\n if (detached || disposed) return;\n detached = true;\n attached = false;\n refreshPause();\n };\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n attached = false;\n const closing = [...records.values()].filter((record) => record.entry.state === 'open');\n for (const record of records.values()) stop(record);\n records.clear();\n visible.length = 0;\n pending.length = 0;\n pauses.clear();\n complete([\n publish,\n () => listeners.clear(),\n ...closing.map((record) => () => record.entry.onClose?.('unmount')),\n ]);\n },\n subscribe(listener) {\n if (!disposed) listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n getSnapshot: () => snapshot,\n getServerSnapshot: () => EMPTY,\n promise(task, messages, promiseOptions = {}) {\n let expected: number | undefined;\n const id = add(\n {\n ...promiseOptions,\n ...messageOptions(messages.loading),\n isLoading: true,\n },\n (value) => {\n expected = value;\n },\n );\n const settle = (message: ToastMessage | (() => ToastMessage), tone: ToastTone) => {\n if (\n id === null ||\n records.get(id)?.entry.generation !== expected ||\n records.get(id)?.entry.state !== 'open'\n )\n return;\n const content = typeof message === 'function' ? message() : message;\n // Result factories may reentrantly update, dismiss, dispose, or reuse this ID.\n if (\n records.get(id)?.entry.generation !== expected ||\n records.get(id)?.entry.state !== 'open'\n )\n return;\n update(\n id,\n {\n tone,\n duration: promiseOptions.duration ?? duration,\n ...messageOptions(content),\n isLoading: false,\n },\n false,\n );\n };\n return {\n id,\n promise: task.then(\n (value) => {\n const message = messages.success;\n settle(typeof message === 'function' ? () => message(value) : message, 'success');\n return value;\n },\n (error: unknown) => {\n const message = messages.error;\n settle(typeof message === 'function' ? () => message(error) : message, 'danger');\n throw error;\n },\n ),\n };\n },\n };\n return manager;\n}\n","import { partClass, type StylingProps } from './styling.js';\nimport {\n createContext,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useSyncExternalStore,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type HTMLAttributes,\n type ComponentProps,\n} from 'react';\nimport {\n Button,\n I18nProvider,\n Text,\n UNSTABLE_Toast as AriaToast,\n UNSTABLE_ToastContent as ToastContent,\n UNSTABLE_ToastList as ToastList,\n UNSTABLE_ToastQueue as ToastQueue,\n UNSTABLE_ToastRegion as ToastRegion,\n} from 'react-aria-components';\nimport {\n createToastManager,\n type ToastAction,\n type ToastEntry,\n type ToastManager,\n type ToastPlacement,\n} from './toast-model.js';\n\n/** Keeps upstream accessibility/focus behavior while Kazee owns every timer and queue decision. */\nclass QueueAdapter extends ToastQueue<ToastEntry> {\n private regionPaused = false;\n constructor(private manager: ToastManager) {\n super();\n this.refresh();\n }\n private refresh() {\n this.visibleToasts = this.manager\n .getSnapshot()\n .map((content) => ({ key: content.id, content }));\n }\n override subscribe(listener: () => void) {\n return this.manager.subscribe(() => {\n this.refresh();\n listener();\n });\n }\n override add(content: ToastEntry): string {\n return this.manager.add(content) ?? '';\n }\n override close(key: string) {\n this.manager.dismiss(key);\n }\n override clear() {\n this.manager.clear();\n }\n override pauseAll() {\n if (!this.regionPaused) {\n this.regionPaused = true;\n this.manager.pause('region');\n }\n }\n override resumeAll() {\n if (this.regionPaused) {\n this.regionPaused = false;\n this.manager.resume('region');\n }\n }\n}\n\ninterface ToastContextValue {\n manager: ToastManager;\n closeLabel: string;\n placement: ToastPlacement;\n dir: 'ltr' | 'rtl';\n showProgress: boolean;\n showCloseButton: boolean;\n swipeThreshold: number;\n restoreFocus: () => void;\n}\nconst ToastContext = createContext<ToastContextValue | null>(null);\nexport interface ToastProviderProps extends StylingProps<'root' | 'list'> {\n children?: ReactNode;\n manager?: ToastManager;\n placement?: ToastPlacement;\n label?: string;\n closeLabel?: string;\n /** Modifier names followed by a key. An empty array disables the shortcut. */\n hotkey?: readonly string[];\n dir?: 'ltr' | 'rtl';\n showProgress?: boolean;\n /** Show the dismiss button. Hidden by default; timers and keyboard dismissal still work. */\n showCloseButton?: boolean;\n swipeThreshold?: number;\n /** Customize presentation with the exported Toast component, retaining region behavior. */\n renderToast?: (entry: ToastEntry) => ReactNode;\n}\n\nexport function ToastProvider({\n className,\n classNames,\n style,\n children,\n manager: suppliedManager,\n placement = 'bottom-end',\n label = 'Notifikasi / Notifications',\n closeLabel = 'Tutup notifikasi / Close notification',\n hotkey = ['Alt', 't'],\n dir = 'ltr',\n showProgress = false,\n showCloseButton = false,\n swipeThreshold = 50,\n renderToast,\n}: ToastProviderProps) {\n const [ownedManager] = useState(() => createToastManager());\n const manager = suppliedManager ?? ownedManager;\n const queue = useMemo(() => new QueueAdapter(manager), [manager]);\n const region = useRef<HTMLDivElement>(null);\n const entries = useSyncExternalStore(\n manager.subscribe,\n manager.getSnapshot,\n manager.getServerSnapshot,\n );\n const positions = useRef(new Map<string, number>());\n useLayoutEffect(() => {\n const nodes = region.current?.querySelectorAll<HTMLElement>('.toast');\n const previous = positions.current;\n const next = new Map<string, number>();\n const animations: Animation[] = [];\n const regionTop = region.current?.getBoundingClientRect().top ?? 0;\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n for (const node of nodes ?? []) {\n const id = node.dataset.toastId;\n if (!id) continue;\n // Fixed bottom placement changes the region origin as its height grows.\n // Include that origin so a stationary toast does not falsely animate.\n const top = node.offsetTop + regionTop;\n next.set(id, top);\n const before = previous.get(id);\n if (\n before !== undefined &&\n before !== top &&\n node.dataset.state === 'open' &&\n !reducedMotion &&\n node.animate\n ) {\n const style = getComputedStyle(node);\n const token = style.getPropertyValue('--ds-motion-duration-normal').trim();\n const duration = token.endsWith('ms') ? parseFloat(token) : parseFloat(token) * 1000;\n animations.push(\n node.animate([{ translate: `0 ${before - top}px` }, { translate: '0 0' }], {\n duration: Number.isFinite(duration) ? duration : 160,\n easing: style.getPropertyValue('--ds-motion-ease-standard').trim() || 'ease-out',\n }),\n );\n }\n }\n positions.current = next;\n return () => {\n for (const animation of animations) animation.cancel();\n };\n }, [entries]);\n const lastFocused = useRef<HTMLElement | null>(null);\n const lifetime = useRef({ generation: 0 });\n const hotkeySignature = hotkey.join('+');\n useEffect(() => {\n const keys = hotkeySignature ? hotkeySignature.split('+') : [];\n const detach = manager.attach();\n let documentPaused = false;\n let windowPaused = false;\n const visibility = () => {\n if (document.hidden && !documentPaused) {\n documentPaused = true;\n manager.pause('document');\n } else if (!document.hidden && documentPaused) {\n documentPaused = false;\n manager.resume('document');\n }\n };\n const blur = () => {\n if (!windowPaused) {\n windowPaused = true;\n manager.pause('window');\n }\n };\n const focus = () => {\n if (windowPaused) {\n windowPaused = false;\n manager.resume('window');\n }\n };\n visibility();\n const keydown = (event: KeyboardEvent) => {\n if (event.defaultPrevented) return;\n if (event.key === 'Escape' && region.current?.contains(event.target as Node)) {\n const target = event.target as HTMLElement;\n if (target.closest('input,textarea,select,[contenteditable=\"true\"]')) return;\n const focused = target.closest<HTMLElement>('.toast[data-state=\"open\"]');\n const latest = [...manager.getSnapshot()].reverse().find((entry) => entry.state === 'open');\n const id = focused?.dataset.toastId ?? latest?.id;\n if (id) {\n event.preventDefault();\n event.stopPropagation();\n manager.dismiss(id);\n }\n return;\n }\n if (!keys.length || typeof event.key !== 'string') return;\n const key = keys[keys.length - 1].toLowerCase();\n const modifiers = keys.slice(0, -1).map((value) => value.toLowerCase());\n if (\n event.key.toLowerCase() === key &&\n event.altKey === modifiers.includes('alt') &&\n event.ctrlKey === modifiers.includes('control') &&\n event.metaKey === modifiers.includes('meta') &&\n event.shiftKey === modifiers.includes('shift')\n ) {\n const target = region.current?.querySelector<HTMLElement>('.toast[data-state=\"open\"]');\n if (target) {\n event.preventDefault();\n target.focus();\n }\n }\n };\n const focusIn = (event: FocusEvent) => {\n if (\n region.current?.contains(event.target as Node) &&\n !region.current.contains(event.relatedTarget as Node | null)\n )\n lastFocused.current = event.relatedTarget as HTMLElement | null;\n };\n document.addEventListener('focusin', focusIn);\n document.addEventListener('visibilitychange', visibility);\n document.addEventListener('keydown', keydown);\n window.addEventListener('blur', blur);\n window.addEventListener('focus', focus);\n return () => {\n document.removeEventListener('focusin', focusIn);\n document.removeEventListener('visibilitychange', visibility);\n document.removeEventListener('keydown', keydown);\n window.removeEventListener('blur', blur);\n window.removeEventListener('focus', focus);\n detach();\n if (documentPaused) manager.resume('document');\n if (windowPaused) manager.resume('window');\n queue.resumeAll();\n };\n }, [manager, hotkeySignature, queue]);\n useEffect(() => {\n const lifecycle = lifetime.current;\n const token = ++lifecycle.generation;\n return () => {\n // React StrictMode immediately mounts again; only a real unmount disposes owned state.\n queueMicrotask(() => {\n if (lifecycle.generation === token) ownedManager.dispose();\n });\n };\n }, [ownedManager]);\n const context = {\n manager,\n closeLabel,\n placement,\n dir,\n showProgress,\n showCloseButton,\n swipeThreshold,\n restoreFocus: () => {\n const next = region.current?.querySelector<HTMLElement>('.toast[data-state=\"open\"]');\n if (next) next.focus();\n else if (lastFocused.current?.isConnected) lastFocused.current.focus();\n },\n };\n return (\n <ToastContext.Provider value={context}>\n {children}\n <I18nProvider locale={dir === 'rtl' ? 'ar' : 'en'}>\n <ToastRegion\n queue={queue}\n ref={region}\n className={partClass(partClass('toast-region', classNames?.root), className)}\n style={style}\n data-placement={placement}\n aria-label={label}\n aria-keyshortcuts={hotkey.length ? hotkey.join('+') : undefined}\n >\n <ToastList<ToastEntry> className={partClass('toast-list', classNames?.list)}>\n {({ toast }) => (\n <>{renderToast ? renderToast(toast.content) : <Toast entry={toast.content} />}</>\n )}\n </ToastList>\n </ToastRegion>\n </I18nProvider>\n </ToastContext.Provider>\n );\n}\n\nexport function useToast(): ToastManager {\n const context = useContext(ToastContext);\n if (!context) throw new Error('useToast must be used within a ToastProvider.');\n return context.manager;\n}\nexport interface ToastProps extends StylingProps<\n | 'root'\n | 'indicator'\n | 'body'\n | 'title'\n | 'description'\n | 'actions'\n | 'action'\n | 'close'\n | 'progress'\n> {\n entry: ToastEntry;\n /** Override the provider's close button visibility for this toast. */\n showCloseButton?: boolean;\n /** Override the provider's progress visibility for this toast. */\n showProgress?: boolean;\n indicator?: ReactNode;\n children?: ReactNode;\n}\n\ninterface ToastPresentationState {\n entry: ToastEntry;\n closing: boolean;\n closeLabel: string;\n invoke: (cancel: boolean) => void;\n}\nconst ToastPresentationContext = createContext<ToastPresentationState | null>(null);\nfunction useToastPresentation() {\n const state = useContext(ToastPresentationContext);\n if (!state) throw new Error('Toast parts must be used inside Toast.Root.');\n return state;\n}\n\nexport function ToastRoot(props: ToastProps) {\n return <ToastRenderer {...props} composed />;\n}\nexport function ToastIndicator({ className, children, ...props }: HTMLAttributes<HTMLSpanElement>) {\n const { entry } = useToastPresentation();\n return (\n <span {...props} aria-hidden=\"true\" className={partClass('toast__indicator', className)}>\n {children ?? <Indicator entry={entry} />}\n </span>\n );\n}\nexport function ToastBody({ className, ...props }: ComponentProps<typeof ToastContent>) {\n return (\n <ToastContent\n {...props}\n role=\"status\"\n aria-live=\"polite\"\n className={partClass('toast__body', className)}\n />\n );\n}\nexport function ToastTitle({ className, children, ...props }: ComponentProps<typeof Text>) {\n const { entry } = useToastPresentation();\n return (\n <Text {...props} slot=\"title\" className={partClass('toast__title', className)}>\n {children ?? entry.title}\n </Text>\n );\n}\nexport function ToastDescription({ className, children, ...props }: ComponentProps<typeof Text>) {\n const { entry } = useToastPresentation();\n if (!children && !entry.description) return null;\n return (\n <Text {...props} slot=\"description\" className={partClass('toast__description', className)}>\n {children ?? entry.description}\n </Text>\n );\n}\nexport function ToastActions({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div {...props} className={partClass('toast__actions', className)} />;\n}\nexport function ToastActionButton({\n className,\n children,\n cancel = false,\n onPress,\n ...props\n}: ComponentProps<typeof Button> & { cancel?: boolean }) {\n const state = useToastPresentation();\n const id = useId();\n const action = cancel ? state.entry.cancel : state.entry.action;\n if (!action) return null;\n return (\n <>\n <span id={id} hidden>\n {action.altText}\n </span>\n <Button\n {...props}\n aria-describedby={[props['aria-describedby'], id].filter(Boolean).join(' ')}\n isDisabled={props.isDisabled || state.closing}\n className={\n typeof className === 'function'\n ? (values) => partClass('toast__action', className(values))\n : partClass('toast__action', className)\n }\n onPress={(event) => {\n onPress?.(event);\n if (!state.closing) state.invoke(cancel);\n }}\n >\n {children ?? action.label}\n </Button>\n </>\n );\n}\nexport function ToastCloseButton({\n className,\n children = '×',\n ...props\n}: ComponentProps<typeof Button>) {\n const state = useToastPresentation();\n return (\n <Button\n {...props}\n slot=\"close\"\n aria-label={props['aria-label'] ?? state.closeLabel}\n isDisabled={props.isDisabled || state.closing}\n className={\n typeof className === 'function'\n ? (values) => partClass('toast__close', className(values))\n : partClass('toast__close', className)\n }\n >\n {children}\n </Button>\n );\n}\nexport function ToastProgress({ className, style, ...props }: HTMLAttributes<HTMLSpanElement>) {\n const { entry } = useToastPresentation();\n if (entry.duration <= 0 || entry.isLoading) return null;\n return (\n <span\n {...props}\n key={`${entry.generation}-${entry.remaining}-${entry.paused}`}\n className={partClass('toast__progress', className)}\n aria-hidden=\"true\"\n style={\n {\n ...style,\n '--toast-progress': entry.remaining / entry.duration,\n '--toast-remaining': `${entry.remaining}ms`,\n } as CSSProperties\n }\n />\n );\n}\nfunction CompactToast(props: ToastProps) {\n return <ToastRenderer {...props} />;\n}\nexport const Toast = /* @__PURE__ */ Object.assign(CompactToast, {\n Root: ToastRoot,\n Provider: ToastProvider,\n Indicator: ToastIndicator,\n Content: ToastBody,\n Title: ToastTitle,\n Description: ToastDescription,\n Actions: ToastActions,\n ActionButton: ToastActionButton,\n CloseButton: ToastCloseButton,\n Progress: ToastProgress,\n});\n\nfunction Indicator({ entry }: { entry: ToastEntry }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n aria-hidden=\"true\"\n >\n {entry.isLoading ? (\n <circle cx=\"12\" cy=\"12\" r=\"8\" strokeDasharray=\"36 14\" />\n ) : entry.tone === 'success' ? (\n <path d=\"m5 12 4 4L19 6\" />\n ) : entry.tone === 'warning' || entry.tone === 'danger' ? (\n <>\n <path d=\"m12 3 10 18H2L12 3Z\" />\n <path d=\"M12 9v5m0 3v1\" />\n </>\n ) : (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <path d=\"M12 10v7m0-11v1\" />\n </>\n )}\n </svg>\n );\n}\n\nfunction ToastRenderer({\n composed = false,\n style,\n classNames,\n entry,\n indicator,\n children,\n className,\n showCloseButton: closeOverride,\n showProgress: progressOverride,\n}: ToastProps & { composed?: boolean }) {\n const actionDescriptionId = useId();\n const cancelDescriptionId = useId();\n const context = useContext(ToastContext);\n if (!context) throw new Error('Toast must be used within a ToastProvider region.');\n const { manager, closeLabel, placement, dir, swipeThreshold, restoreFocus } = context;\n const showCloseButton = closeOverride ?? context.showCloseButton;\n const showProgress = progressOverride ?? context.showProgress;\n const ref = useRef<HTMLDivElement>(null);\n const drag = useRef<{\n x: number;\n y: number;\n id: number;\n cancelled: boolean;\n offset: number;\n } | null>(null);\n const [offset, setOffset] = useState(0);\n const [swipe, setSwipe] = useState<'move' | 'cancel' | 'end'>();\n const closing = entry.state === 'closing';\n const direction = (placement.endsWith('start') ? -1 : 1) * (dir === 'rtl' ? -1 : 1);\n useEffect(() => {\n if (closing && ref.current?.contains(document.activeElement)) restoreFocus?.();\n }, [closing, restoreFocus]);\n const action = (item: ToastAction, reason: 'action' | 'cancel') => {\n item.onAction();\n if (item.dismiss !== false) manager.dismiss(entry.id, reason);\n };\n const finishSwipe = (commit: boolean) => {\n const current = drag.current;\n drag.current = null;\n if (!current) return;\n if (current && !current.cancelled) manager.resume('swipe');\n if (commit && !current.cancelled && current.offset * direction >= swipeThreshold) {\n setSwipe('end');\n setOffset(current.offset);\n manager.dismiss(entry.id, 'swipe');\n } else {\n setSwipe('cancel');\n setOffset(0);\n }\n };\n useEffect(() => {\n const node = ref.current;\n if (!node) return;\n const handlers = {\n pointerdown: (event: PointerEvent) => {\n if (\n closing ||\n drag.current ||\n event.button !== 0 ||\n (event.target as HTMLElement).closest(\n 'button,a,input,textarea,select,[role=\"button\"],[contenteditable=\"true\"]',\n )\n )\n return;\n // WebKit starts native text selection/drag before a later pointermove can\n // establish a swipe. Preserve touch pan-y, but suppress mouse text dragging.\n if (event.pointerType === 'mouse') event.preventDefault();\n drag.current = {\n x: event.clientX,\n y: event.clientY,\n id: event.pointerId,\n cancelled: false,\n offset: 0,\n };\n ref.current?.setPointerCapture?.(event.pointerId);\n manager.pause('swipe');\n },\n selectstart: (event: Event) => {\n if (drag.current && !drag.current.cancelled) event.preventDefault();\n },\n dragstart: (event: Event) => {\n if (drag.current && !drag.current.cancelled) event.preventDefault();\n },\n pointermove: (event: PointerEvent) => {\n const current = drag.current;\n if (!current || current.id !== event.pointerId || current.cancelled) return;\n const x = event.clientX - current.x;\n const y = event.clientY - current.y;\n if (Math.abs(y) > Math.abs(x) && Math.abs(y) > 8) {\n current.cancelled = true;\n setOffset(0);\n manager.resume('swipe');\n return;\n }\n if (Math.abs(x) > 8) {\n current.offset = Math.max(0, x * direction) * direction;\n setSwipe('move');\n setOffset(current.offset);\n }\n },\n pointerup: () => finishSwipe(true),\n pointercancel: () => finishSwipe(false),\n lostpointercapture: () => {\n if (drag.current) finishSwipe(false);\n },\n };\n for (const [name, handler] of Object.entries(handlers))\n node.addEventListener(name, handler as EventListener);\n return () => {\n for (const [name, handler] of Object.entries(handlers))\n node.removeEventListener(name, handler as EventListener);\n };\n });\n useEffect(\n () => () => {\n if (drag.current) {\n const active = !drag.current.cancelled;\n drag.current = null;\n if (active) manager.resume('swipe');\n }\n },\n [manager],\n );\n return (\n <ToastPresentationContext.Provider\n value={{\n entry,\n closing,\n closeLabel,\n invoke: (cancel) => {\n const item = cancel ? entry.cancel : entry.action;\n if (item) action(item, cancel ? 'cancel' : 'action');\n },\n }}\n >\n <AriaToast\n toast={{ key: entry.id, content: entry }}\n ref={ref}\n className={partClass(partClass('toast', classNames?.root), className)}\n data-toast-id={entry.id}\n data-tone={entry.tone}\n data-has-close={showCloseButton || undefined}\n data-loading={entry.isLoading || undefined}\n data-state={entry.state}\n data-placement={placement}\n data-paused={entry.paused || undefined}\n data-swipe={swipe}\n inert={closing || undefined}\n aria-hidden={closing || undefined}\n style={\n { ...style, '--toast-swipe-x': `${offset}px`, touchAction: 'pan-y' } as CSSProperties\n }\n >\n {composed ? (\n children\n ) : (\n <>\n <span\n className={partClass('toast__indicator', classNames?.indicator)}\n aria-hidden=\"true\"\n >\n {indicator ?? <Indicator entry={entry} />}\n </span>\n <ToastContent\n className={partClass('toast__body', classNames?.body)}\n role=\"status\"\n aria-live=\"polite\"\n >\n <Text slot=\"title\" className={partClass('toast__title', classNames?.title)}>\n {entry.title}\n </Text>\n {entry.description && (\n <Text\n slot=\"description\"\n className={partClass('toast__description', classNames?.description)}\n >\n {entry.description}\n </Text>\n )}\n {children}\n {(entry.action || entry.cancel) && (\n <div className={partClass('toast__actions', classNames?.actions)}>\n {entry.action && (\n <span id={actionDescriptionId} hidden>\n {entry.action.altText}\n </span>\n )}\n {entry.cancel && (\n <span id={cancelDescriptionId} hidden>\n {entry.cancel.altText}\n </span>\n )}\n {entry.action && (\n <Button\n className={partClass('toast__action', classNames?.action)}\n aria-describedby={actionDescriptionId}\n isDisabled={closing}\n onPress={() => action(entry.action!, 'action')}\n >\n {entry.action.label}\n </Button>\n )}\n {entry.cancel && (\n <Button\n className={partClass('toast__action', classNames?.action)}\n data-cancel\n aria-describedby={cancelDescriptionId}\n isDisabled={closing}\n onPress={() => action(entry.cancel!, 'cancel')}\n >\n {entry.cancel.label}\n </Button>\n )}\n </div>\n )}\n </ToastContent>\n {showCloseButton && (\n <Button\n slot=\"close\"\n className={partClass('toast__close', classNames?.close)}\n aria-label={closeLabel}\n isDisabled={closing}\n >\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"m6 6 12 12M6 18 18 6\" />\n </svg>\n </Button>\n )}\n {showProgress && entry.duration > 0 && !entry.isLoading && (\n <span\n key={`${entry.generation}-${entry.remaining}-${entry.paused}`}\n className={partClass('toast__progress', classNames?.progress)}\n aria-hidden=\"true\"\n style={\n {\n '--toast-progress': entry.remaining / entry.duration,\n '--toast-remaining': `${entry.remaining}ms`,\n } as CSSProperties\n }\n />\n )}\n </>\n )}\n </AriaToast>\n </ToastPresentationContext.Provider>\n );\n}\n","import {\n parseDate,\n parseTime,\n parseDateTime,\n parseZonedDateTime,\n parseAbsolute,\n toZoned,\n toCalendarDateTime,\n} from '@internationalized/date';\n\nexport type TemporalKind = 'date' | 'time' | 'datetime';\nexport interface TemporalRange {\n start: string;\n end: string;\n}\nexport type TemporalError =\n 'invalid' | 'required' | 'incomplete' | 'order' | 'bounds' | 'unavailable' | 'step';\nexport interface TemporalConstraints {\n kind: TemporalKind;\n minDate?: string;\n maxDate?: string;\n minTime?: string;\n maxTime?: string;\n minDateTime?: string;\n maxDateTime?: string;\n isDateUnavailable?: (date: string) => boolean;\n isTimeUnavailable?: (time: string) => boolean;\n isRequired?: boolean;\n hourStep?: number;\n minuteStep?: number;\n secondStep?: number;\n granularity?: 'hour' | 'minute' | 'second';\n timeZone?: string;\n disambiguation?: 'compatible' | 'earlier' | 'later' | 'reject';\n}\n\n/** Wall time is resolved explicitly; DST gaps/overlaps reject by default. */\nexport function toZonedValue(\n value: string,\n timeZone = 'UTC',\n disambiguation: TemporalConstraints['disambiguation'] = 'reject',\n) {\n return toZoned(parseDateTime(value), timeZone, disambiguation).toString();\n}\nexport function toLocalValue(value: string, timeZone = 'UTC', seconds = false): string {\n if (!value) return '';\n const zoned = value.includes('[') ? parseZonedDateTime(value) : parseAbsolute(value, timeZone);\n // Normalize offset/bracket input to the requested display zone, preserving the instant.\n const display = parseAbsolute(zoned.toAbsoluteString(), timeZone);\n return toCalendarDateTime(display)\n .toString()\n .slice(0, seconds ? 19 : 16);\n}\nfunction orderedValue(value: string, kind: TemporalKind): number {\n if (kind === 'datetime')\n return (value.includes('[') ? parseZonedDateTime(value) : parseAbsolute(value, 'UTC'))\n .toDate()\n .getTime();\n if (kind === 'time') {\n const t = parseTime(value);\n return t.hour * 3600 + t.minute * 60 + t.second;\n }\n return parseDate(value).toDate('UTC').getTime();\n}\nfunction step(value: number | undefined) {\n if (value !== undefined && (!Number.isInteger(value) || value <= 0))\n throw new RangeError('Time steps must be positive integers.');\n return value ?? 1;\n}\nexport function temporalError(\n value: string | null,\n options: TemporalConstraints,\n): TemporalError | null {\n if (!value) return options.isRequired ? 'required' : null;\n let date = '',\n time = '';\n try {\n if (options.kind === 'date') {\n if (!/^(?!0000)\\d{4}-\\d{2}-\\d{2}$/.test(value) || parseDate(value).toString() !== value)\n return 'invalid';\n date = value;\n } else if (options.kind === 'time') {\n if (!/^\\d{2}:\\d{2}(:\\d{2})?$/.test(value)) return 'invalid';\n parseTime(value);\n time = value;\n } else {\n orderedValue(value, 'datetime');\n const local = toLocalValue(value, options.timeZone, true);\n date = local.slice(0, 10);\n time = local.slice(11);\n }\n if (\n date &&\n ((options.minDate && date < options.minDate) || (options.maxDate && date > options.maxDate))\n )\n return 'bounds';\n if (\n time &&\n ((options.minTime && orderedValue(time, 'time') < orderedValue(options.minTime, 'time')) ||\n (options.maxTime && orderedValue(time, 'time') > orderedValue(options.maxTime, 'time')))\n )\n return 'bounds';\n if (\n options.kind === 'datetime' &&\n ((options.minDateTime &&\n orderedValue(value, 'datetime') < orderedValue(options.minDateTime, 'datetime')) ||\n (options.maxDateTime &&\n orderedValue(value, 'datetime') > orderedValue(options.maxDateTime, 'datetime')))\n )\n return 'bounds';\n if (date && options.isDateUnavailable?.(date)) return 'unavailable';\n if (time && options.isTimeUnavailable?.(time)) return 'unavailable';\n if (time) {\n const t = parseTime(time);\n if (\n t.hour % step(options.hourStep) ||\n t.minute % step(options.minuteStep) ||\n t.second % step(options.secondStep)\n )\n return 'step';\n }\n return null;\n } catch {\n return 'invalid';\n }\n}\nexport function temporalRangeError(\n value: TemporalRange | null,\n options: TemporalConstraints,\n): TemporalError | null {\n if (!value || (!value.start && !value.end)) return options.isRequired ? 'required' : null;\n if (!value.start || !value.end) return 'incomplete';\n const error = temporalError(value.start, options) ?? temporalError(value.end, options);\n if (error) return error;\n if (orderedValue(value.start, options.kind) > orderedValue(value.end, options.kind))\n return 'order';\n if (options.kind !== 'time' && options.isDateUnavailable) {\n const first = parseDate(\n options.kind === 'date'\n ? value.start\n : toLocalValue(value.start, options.timeZone).slice(0, 10),\n );\n const last = parseDate(\n options.kind === 'date' ? value.end : toLocalValue(value.end, options.timeZone).slice(0, 10),\n );\n for (let day = first.add({ days: 1 }); day.compare(last) < 0; day = day.add({ days: 1 })) {\n if (options.isDateUnavailable(day.toString())) return 'unavailable';\n }\n }\n return null;\n}\n/** Project instant boundaries into the selected display zone for disabled calendar/time options. */\nexport function temporalDisplayBounds(options: TemporalConstraints, selectedDate?: string) {\n let minDate = options.minDate,\n maxDate = options.maxDate,\n minTime = options.minTime,\n maxTime = options.maxTime;\n if (options.kind === 'datetime') {\n try {\n const min = options.minDateTime\n ? toLocalValue(options.minDateTime, options.timeZone, true)\n : '',\n max = options.maxDateTime ? toLocalValue(options.maxDateTime, options.timeZone, true) : '';\n if (min) {\n const day = min.slice(0, 10);\n if (!minDate || day > minDate) minDate = day;\n if (\n selectedDate === day &&\n (!minTime || orderedValue(min.slice(11), 'time') > orderedValue(minTime, 'time'))\n )\n minTime = min.slice(11);\n }\n if (max) {\n const day = max.slice(0, 10);\n if (!maxDate || day < maxDate) maxDate = day;\n if (\n selectedDate === day &&\n (!maxTime || orderedValue(max.slice(11), 'time') < orderedValue(maxTime, 'time'))\n )\n maxTime = max.slice(11);\n }\n } catch {\n /* Invalid bounds are reported by temporalError; rendering still remains usable. */\n }\n }\n return { minDate, maxDate, minTime, maxTime };\n}\n/** Minute-granularity list; seconds are edited with TimeField/TimeClock to avoid 86k DOM options. */\nexport function timeChoices(options: TemporalConstraints): string[] {\n const hours = step(options.hourStep),\n minutes = options.granularity === 'hour' ? 60 : step(options.minuteStep ?? 30);\n const values: string[] = [];\n for (let hour = 0; hour < 24; hour += hours)\n for (let minute = 0; minute < 60; minute += minutes) {\n const value = `${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}`;\n if (!temporalError(value, options)) values.push(value);\n }\n return values;\n}\n/** User edits zero units hidden by the configured field granularity. */\nexport function normalizeTime(\n value: string,\n granularity: TemporalConstraints['granularity'] = 'minute',\n): string {\n const time = parseTime(value);\n return time\n .set({\n minute: granularity === 'hour' ? 0 : time.minute,\n second: granularity === 'second' ? time.second : 0,\n millisecond: 0,\n })\n .toString()\n .slice(0, granularity === 'second' ? 8 : 5);\n}\nexport function normalizeWallDateTime(\n value: string,\n granularity: TemporalConstraints['granularity'] = 'minute',\n): string {\n const date = parseDateTime(value);\n return date.toString().slice(0, 10) + 'T' + normalizeTime(date.toString().slice(11), granularity);\n}\n/** Keep the selected unit and choose the nearest complete valid time for the other units. */\nexport function resolveTimeUnit(\n value: string,\n part: 'hour' | 'minute' | 'second',\n selected: number,\n options: TemporalConstraints,\n): string | null {\n let initial;\n try {\n initial = parseTime(value || options.minTime || '00:00');\n } catch {\n initial = parseTime('00:00');\n }\n const desired = initial.set({ [part]: selected });\n let best: string | null = null,\n distance = Infinity;\n const hours = step(options.hourStep),\n minutes = step(options.minuteStep),\n seconds = step(options.secondStep);\n for (let hour = 0; hour < 24; hour += hours) {\n if (part === 'hour' && hour !== selected) continue;\n for (let minute = 0; minute < 60; minute += options.granularity === 'hour' ? 60 : minutes) {\n if (part === 'minute' && minute !== selected) continue;\n for (let second = 0; second < 60; second += options.granularity === 'second' ? seconds : 60) {\n if (part === 'second' && second !== selected) continue;\n const next = normalizeTime(\n `${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}:${String(second).padStart(2, '0')}`,\n options.granularity,\n );\n if (temporalError(next, { ...options, kind: 'time' })) continue;\n const delta = Math.abs(\n orderedValue(next, 'time') - (desired.hour * 3600 + desired.minute * 60 + desired.second),\n );\n if (delta < distance) {\n best = next;\n distance = delta;\n }\n }\n }\n }\n return best;\n}\nexport function temporalMessages(locale = 'id-ID'): Record<TemporalError, string> {\n return locale.startsWith('id')\n ? {\n invalid: 'Nilai tanggal atau waktu tidak valid.',\n required: 'Nilai wajib diisi.',\n incomplete: 'Lengkapi nilai mulai dan akhir.',\n order: 'Nilai akhir harus setelah atau sama dengan nilai mulai.',\n bounds: 'Nilai berada di luar batas yang diizinkan.',\n unavailable: 'Nilai tidak tersedia.',\n step: 'Nilai tidak sesuai interval yang diizinkan.',\n }\n : {\n invalid: 'Invalid date or time.',\n required: 'A value is required.',\n incomplete: 'Enter both start and end values.',\n order: 'End must be on or after start.',\n bounds: 'Value is outside the allowed limits.',\n unavailable: 'Value is unavailable.',\n step: 'Value does not match the allowed interval.',\n };\n}\n","import { useEffect, useId, useState } from 'react';\nimport {\n DateField as AriaDateField,\n DateInput,\n DateSegment,\n} from 'react-aria-components/DateField';\nimport { TimeField as AriaTimeField } from 'react-aria-components/TimeField';\nimport { Label } from 'react-aria-components/Label';\nimport { I18nProvider } from 'react-aria-components/I18nProvider';\nimport {\n parseDate,\n parseTime,\n parseDateTime,\n type DateValue,\n type Time,\n} from '@internationalized/date';\nimport {\n temporalError,\n temporalRangeError,\n temporalMessages,\n toLocalValue,\n toZonedValue,\n normalizeTime,\n normalizeWallDateTime,\n type TemporalConstraints,\n type TemporalKind,\n} from './temporal-model.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { partClass, type StylingProps } from './styling.js';\n\nexport interface TemporalFieldProps\n extends\n Omit<TemporalConstraints, 'kind'>,\n StylingProps<'label' | 'input' | 'segment' | 'description' | 'error'> {\n label: string;\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string | null) => void;\n onError?: (error: string | null) => void;\n locale?: string;\n dir?: 'ltr' | 'rtl';\n hourCycle?: 12 | 24;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isInvalid?: boolean;\n name?: string;\n id?: string;\n description?: string;\n errorMessage?: string;\n hideLabel?: boolean;\n /** Disable only when this field edits an uncommitted picker draft. */\n formValidation?: boolean;\n}\nfunction parsed(value: string | null, kind: TemporalKind, zone?: string) {\n try {\n return value\n ? kind === 'time'\n ? parseTime(value)\n : kind === 'date'\n ? parseDate(value)\n : parseDateTime(toLocalValue(value, zone, true))\n : null;\n } catch {\n return null;\n }\n}\nexport function TemporalField({ kind, ...props }: TemporalFieldProps & { kind: TemporalKind }) {\n const [local, setLocal] = useState(props.defaultValue ?? null),\n [editError, setEditError] = useState<string | null>(null);\n const value = props.value === undefined ? local : props.value;\n const id = useId();\n const error = editError ?? temporalError(value, { ...props, kind });\n useEffect(() => {\n setEditError(null);\n }, [value]);\n function change(v: DateValue | Time | null) {\n if (props.isDisabled || props.isReadOnly) return;\n let next: string | null;\n try {\n next = v\n ? kind === 'datetime'\n ? toZonedValue(\n normalizeWallDateTime(v.toString(), props.granularity),\n props.timeZone,\n props.disambiguation,\n )\n : kind === 'time'\n ? normalizeTime(v.toString(), props.granularity)\n : v.toString().slice(0, 10)\n : null;\n } catch {\n const message = temporalMessages(props.locale).invalid;\n setEditError(message);\n props.onError?.(message);\n return;\n }\n setEditError(null);\n setLocal(next);\n props.onChange?.(next);\n props.onError?.(temporalError(next, { ...props, kind }));\n }\n const fieldContent = (\n <>\n <Label\n className={partClass(\n props.hideLabel ? 'temporal__sr-only' : 'input__label',\n props.classNames?.label,\n )}\n >\n {props.label}\n </Label>\n <DateInput\n className={partClass('temporal-field__input input__control', props.classNames?.input)}\n >\n {(segment) => (\n <DateSegment\n segment={segment}\n className={partClass('temporal-field__segment', props.classNames?.segment)}\n />\n )}\n </DateInput>\n </>\n );\n const shared = {\n id: props.id ?? id,\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n isRequired: props.isRequired,\n isInvalid: props.isInvalid || !!error,\n validationBehavior: 'aria' as const,\n 'aria-describedby':\n [\n props.description ? `${id}-description` : undefined,\n props.isInvalid || error ? `${id}-error` : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n };\n return (\n <I18nProvider locale={props.locale ?? 'id-ID'}>\n <div\n className={partClass(\n partClass('input temporal-field', props.classNames?.root),\n props.className,\n )}\n style={props.style}\n dir={props.dir}\n >\n {kind === 'time' ? (\n <AriaTimeField\n {...shared}\n value={parsed(value, kind, props.timeZone) as Time | null}\n onChange={change}\n granularity={props.granularity ?? 'minute'}\n hourCycle={props.hourCycle}\n >\n {fieldContent}\n </AriaTimeField>\n ) : (\n <AriaDateField\n {...shared}\n value={parsed(value, kind, props.timeZone) as DateValue | null}\n onChange={change}\n granularity={kind === 'date' ? 'day' : (props.granularity ?? 'minute')}\n hourCycle={props.hourCycle}\n >\n {fieldContent}\n </AriaDateField>\n )}\n {props.description && (\n <span\n id={`${id}-description`}\n className={partClass('input__description', props.classNames?.description)}\n >\n {props.description}\n </span>\n )}\n {(props.isInvalid || error) && (\n <span\n id={`${id}-error`}\n className={partClass('input__error', props.classNames?.error)}\n role=\"alert\"\n >\n {props.errorMessage ??\n (error && error in temporalMessages(props.locale)\n ? temporalMessages(props.locale)[error as keyof ReturnType<typeof temporalMessages>]\n : (error ?? temporalMessages(props.locale).invalid))}\n </span>\n )}\n {props.name && (\n <input type=\"hidden\" name={props.name} value={value ?? ''} disabled={props.isDisabled} />\n )}\n <SelectionValidation\n hasValue={!!value && !error}\n required={props.isRequired || !!error}\n disabled={props.isDisabled || props.formValidation === false}\n onInvalid={() => props.onError?.(error ?? 'required')}\n onResetStart={() => {}}\n onReset={(cancelled) => {\n if (!cancelled && props.value === undefined) {\n setLocal(props.defaultValue ?? null);\n setEditError(null);\n }\n }}\n />\n </div>\n </I18nProvider>\n );\n}\nexport function DateField(props: TemporalFieldProps) {\n return <TemporalField {...props} kind=\"date\" />;\n}\nexport function TimeField(props: TemporalFieldProps) {\n return <TemporalField {...props} kind=\"time\" />;\n}\nexport function DateTimeField(props: TemporalFieldProps) {\n return <TemporalField {...props} kind=\"datetime\" />;\n}\nexport interface TemporalRangeFieldProps extends Omit<\n TemporalFieldProps,\n 'value' | 'defaultValue' | 'onChange'\n> {\n value?: import('./temporal-model.js').TemporalRange | null;\n defaultValue?: import('./temporal-model.js').TemporalRange | null;\n onChange?: (value: import('./temporal-model.js').TemporalRange | null) => void;\n}\nfunction TemporalRangeField({ kind, ...props }: TemporalRangeFieldProps & { kind: TemporalKind }) {\n const groupId = useId();\n const [local, setLocal] = useState(props.defaultValue ?? null);\n const value = props.value === undefined ? local : props.value;\n const error = temporalRangeError(value, { ...props, kind });\n const fields = (\n <div className=\"temporal-picker__fields\">\n {(['start', 'end'] as const).map((part) => (\n <TemporalField\n {...props}\n id={props.id ? `${props.id}-${part}` : undefined}\n className={undefined}\n style={undefined}\n classNames={{ ...props.classNames, root: undefined }}\n kind={kind}\n key={part}\n value={value?.[part] ?? null}\n defaultValue={undefined}\n formValidation={false}\n name={props.name ? `${props.name}.${part}` : undefined}\n label={`${props.label} ${part === 'start' ? (props.locale?.startsWith('id') ? 'Mulai' : 'Start') : props.locale?.startsWith('id') ? 'Akhir' : 'End'}`}\n onChange={(next) => {\n const result = { ...(value ?? { start: '', end: '' }), [part]: next ?? '' };\n setLocal(result);\n props.onChange?.(result);\n }}\n />\n ))}\n </div>\n );\n return (\n <div\n id={props.id ?? groupId}\n role=\"group\"\n aria-label={props.label}\n aria-describedby={error ? `${groupId}-error` : undefined}\n className={partClass(\n partClass('temporal-range-field', props.classNames?.root),\n props.className,\n )}\n style={props.style}\n >\n {fields}\n {error && (\n <span id={`${groupId}-error`} role=\"alert\" className=\"input__error\">\n {props.errorMessage ?? temporalMessages(props.locale)[error]}\n </span>\n )}\n <SelectionValidation\n hasValue={!!value && !error}\n required={props.isRequired || !!error}\n disabled={props.isDisabled || props.formValidation === false}\n onInvalid={() => props.onError?.(error ?? 'required')}\n onResetStart={() => {}}\n onReset={(cancelled) => {\n if (!cancelled && props.value === undefined) setLocal(props.defaultValue ?? null);\n }}\n />\n </div>\n );\n}\nexport function DateRangeField(props: TemporalRangeFieldProps) {\n return <TemporalRangeField {...props} kind=\"date\" />;\n}\nexport function TimeRangeField(props: TemporalRangeFieldProps) {\n return <TemporalRangeField {...props} kind=\"time\" />;\n}\nexport function DateTimeRangeField(props: TemporalRangeFieldProps) {\n return <TemporalRangeField {...props} kind=\"datetime\" />;\n}\n","import { useState, type HTMLAttributes } from 'react';\nimport { parseTime } from '@internationalized/date';\nimport { partClass } from './styling.js';\nimport { timeChoices, resolveTimeUnit, type TemporalConstraints } from './temporal-model.js';\nexport interface TimeControlProps\n extends\n Omit<TemporalConstraints, 'kind'>,\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n value?: string | null;\n defaultValue?: string | null;\n onChange?: (value: string) => void;\n label?: string;\n locale?: string;\n hourCycle?: 12 | 24;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n}\nfunction format(value: string, locale: string, hourCycle?: 12 | 24) {\n const time = parseTime(value);\n const date = new Date(Date.UTC(2000, 0, 1, time.hour, time.minute, time.second));\n return new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hourCycle: hourCycle === 12 ? 'h12' : 'h23',\n timeZone: 'UTC',\n }).format(date);\n}\nexport function TimeList({\n value,\n defaultValue,\n onChange,\n label = 'Time',\n locale = 'id-ID',\n hourCycle,\n isDisabled,\n isReadOnly,\n className,\n minTime,\n maxTime,\n hourStep,\n minuteStep,\n secondStep,\n granularity,\n isTimeUnavailable,\n ...props\n}: TimeControlProps) {\n const [local, setLocal] = useState(defaultValue ?? '');\n const actual = value === undefined ? local : (value ?? '');\n const options = {\n kind: 'time' as const,\n minTime,\n maxTime,\n hourStep,\n minuteStep,\n secondStep,\n granularity,\n isTimeUnavailable,\n };\n return (\n <div {...props} className={partClass('time-list', className)}>\n <select\n aria-label={label}\n size={6}\n value={actual}\n disabled={isDisabled}\n aria-readonly={isReadOnly || undefined}\n onChange={(event) => {\n if (isReadOnly) {\n event.currentTarget.value = actual;\n return;\n }\n setLocal(event.target.value);\n onChange?.(event.target.value);\n }}\n >\n <option value=\"\" disabled>\n {locale.startsWith('id') ? 'Pilih waktu' : 'Choose time'}\n </option>\n {timeChoices(options).map((time) => (\n <option key={time} value={time}>\n {format(time, locale, hourCycle)}\n </option>\n ))}\n </select>\n </div>\n );\n}\nexport function TimeClock({\n value,\n defaultValue,\n onChange,\n label = 'Time',\n locale = 'id-ID',\n hourCycle = 24,\n isDisabled,\n isReadOnly,\n className,\n minTime,\n maxTime,\n hourStep = 1,\n minuteStep = 1,\n secondStep = 1,\n granularity = 'minute',\n isTimeUnavailable,\n ...props\n}: TimeControlProps) {\n const [local, setLocal] = useState(defaultValue ?? minTime ?? '00:00');\n const actual = value === undefined ? local : value || minTime || '00:00';\n let time;\n try {\n time = parseTime(actual);\n } catch {\n time = parseTime('00:00');\n }\n const id = locale.startsWith('id');\n const parts =\n granularity === 'hour'\n ? (['hour'] as const)\n : granularity === 'second'\n ? (['hour', 'minute', 'second'] as const)\n : (['hour', 'minute'] as const);\n return (\n <div {...props} role=\"group\" aria-label={label} className={partClass('time-clock', className)}>\n {parts.map((part) => {\n const step = part === 'hour' ? hourStep : part === 'minute' ? minuteStep : secondStep;\n const count = part === 'hour' ? 24 : 60;\n const values = Array.from(\n { length: Math.ceil(count / Math.max(1, step)) },\n (_, i) => i * Math.max(1, step),\n ).filter((n) => n < count);\n return (\n <label key={part}>\n <span>\n {part === 'hour'\n ? id\n ? 'Jam'\n : 'Hours'\n : part === 'minute'\n ? id\n ? 'Menit'\n : 'Minutes'\n : id\n ? 'Detik'\n : 'Seconds'}\n </span>\n <select\n value={time[part]}\n disabled={isDisabled}\n aria-readonly={isReadOnly || undefined}\n onChange={(event) => {\n if (isReadOnly) {\n event.currentTarget.value = String(time[part]);\n return;\n }\n const next = resolveTimeUnit(time.toString(), part, Number(event.target.value), {\n kind: 'time',\n minTime,\n maxTime,\n hourStep,\n minuteStep,\n secondStep,\n granularity,\n isTimeUnavailable,\n });\n if (!next) return;\n setLocal(next);\n onChange?.(next);\n }}\n >\n {values.map((n) => (\n <option key={n} value={n}>\n {part === 'hour' && hourCycle === 12\n ? `${n % 12 || 12} ${n < 12 ? 'AM' : 'PM'}`\n : String(n).padStart(2, '0')}\n </option>\n ))}\n </select>\n </label>\n );\n })}\n </div>\n );\n}\n","import {\n createContext,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n type ReactNode,\n type HTMLAttributes,\n type ButtonHTMLAttributes,\n} from 'react';\nimport { Dialog, DialogTrigger } from 'react-aria-components/Dialog';\nimport { Modal, ModalOverlay } from 'react-aria-components/Modal';\nimport { Popover } from 'react-aria-components/Popover';\nimport { OverlayDirection } from './OverlayDirection.js';\nimport {\n popoverPosition,\n type PopoverPositionOptions,\n type PopoverPositionProps,\n} from './popover-position.js';\nimport { Button, type ButtonProps } from 'react-aria-components/Button';\nimport { Calendar, RangeCalendar, MonthPicker, YearPicker } from './Calendar.js';\nimport { DateField, TimeField, DateTimeField, type TemporalFieldProps } from './TemporalField.js';\nimport { TimeList, TimeClock } from './TimeControls.js';\nimport { SelectionValidation } from './SelectionValidation.js';\nimport { useDisclosure } from './useDisclosure.js';\nimport { partClass, type StylingProps } from './styling.js';\nimport { today, now } from '@internationalized/date';\nimport {\n temporalError,\n temporalRangeError,\n temporalMessages,\n temporalDisplayBounds,\n toLocalValue,\n toZonedValue,\n type TemporalConstraints,\n type TemporalRange,\n type TemporalKind,\n} from './temporal-model.js';\n\nexport type TemporalValue = string | TemporalRange;\nexport interface TemporalPreset<T> {\n id: string;\n label: string;\n value: T | null;\n}\nexport interface TemporalPickerOptions\n extends\n Omit<TemporalConstraints, 'kind'>,\n PopoverPositionOptions,\n StylingProps<\n | 'label'\n | 'trigger'\n | 'value'\n | 'panel'\n | 'content'\n | 'field'\n | 'calendar'\n | 'time'\n | 'footer'\n | 'applyButton'\n | 'cancelButton'\n | 'clearButton'\n | 'preset'\n | 'description'\n | 'error'\n > {\n label: string;\n locale?: string;\n dir?: 'ltr' | 'rtl';\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n hourCycle?: 12 | 24;\n display?: 'inline' | 'popover' | 'dialog' | 'auto';\n commitMode?: 'apply' | 'immediate';\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isInvalid?: boolean;\n hideLabel?: boolean;\n name?: string;\n description?: string;\n errorMessage?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n onError?: (error: string | null) => void;\n visibleMonths?: 1 | 2;\n weekStartsOn?: 0 | 1;\n referenceDate?: string;\n timePresentation?: 'list' | 'clock';\n showInputs?: boolean;\n showActions?: boolean;\n children?: ReactNode;\n formatValue?: (value: TemporalValue, locale: string) => string;\n}\nexport interface TemporalPickerProps<\n T extends TemporalValue = string,\n> extends TemporalPickerOptions {\n value?: T | null;\n defaultValue?: T | null;\n onChange?: (value: T | null) => void;\n onApply?: (value: T | null) => void;\n presets?: TemporalPreset<T>[];\n}\ninterface Context {\n invalid: boolean;\n describedBy?: string;\n options: TemporalPickerOptions;\n kind: TemporalKind;\n range: boolean;\n draft: TemporalValue | null;\n error: string | null;\n id: string;\n text: string;\n edit: (value: TemporalValue | null, part?: string) => void;\n inputError: (part: string, error: string | null) => void;\n apply: () => void;\n cancel: () => void;\n clear: () => void;\n panel: ReactNode;\n}\nconst PickerContext = createContext<Context | null>(null);\nfunction usePicker() {\n const context = useContext(PickerContext);\n if (!context) throw new Error('Picker parts must be inside their picker Root.');\n return context;\n}\nfunction labels(locale = 'id-ID') {\n return locale.startsWith('id')\n ? {\n apply: 'Terapkan',\n cancel: 'Batal',\n clear: 'Kosongkan',\n today: 'Hari ini',\n now: 'Sekarang',\n start: 'Mulai',\n end: 'Akhir',\n choose: 'Pilih tanggal atau waktu',\n }\n : {\n apply: 'Apply',\n cancel: 'Cancel',\n clear: 'Clear',\n today: 'Today',\n now: 'Now',\n start: 'Start',\n end: 'End',\n choose: 'Choose date or time',\n };\n}\nfunction localValue(value: string, kind: TemporalKind, options: TemporalPickerOptions) {\n try {\n return kind === 'datetime'\n ? toLocalValue(value, options.timeZone, options.granularity === 'second')\n : value;\n } catch {\n return '';\n }\n}\nfunction datePart(value: string, kind: TemporalKind, options: TemporalPickerOptions) {\n return localValue(value, kind, options).slice(0, 10);\n}\nfunction combineDate(date: string, time: string, options: TemporalPickerOptions) {\n try {\n return toZonedValue(`${date}T${time || '00:00'}`, options.timeZone, options.disambiguation);\n } catch {\n return '';\n }\n}\nfunction displayText(\n value: TemporalValue | null,\n kind: TemporalKind,\n options: TemporalPickerOptions,\n): string {\n if (!value) return labels(options.locale).choose;\n if (options.formatValue) return options.formatValue(value, options.locale ?? 'id-ID');\n const one = (v: string) => {\n if (!v) return '—';\n try {\n if (kind === 'time')\n return new Intl.DateTimeFormat(options.locale ?? 'id-ID', {\n hour: '2-digit',\n minute: '2-digit',\n second: options.granularity === 'second' ? '2-digit' : undefined,\n hourCycle: options.hourCycle === 12 ? 'h12' : 'h23',\n timeZone: 'UTC',\n }).format(new Date(`2000-01-01T${v}Z`));\n if (kind === 'date')\n return new Intl.DateTimeFormat(options.locale ?? 'id-ID', {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n timeZone: 'UTC',\n }).format(new Date(`${v}T12:00:00Z`));\n return `${localValue(v, kind, options).replace('T', ' ')} ${options.timeZone ?? 'UTC'}`;\n } catch {\n return v;\n }\n };\n return typeof value === 'string' ? one(value) : `${one(value.start)} – ${one(value.end)}`;\n}\nexport function TemporalPickerField({\n part = 'start',\n ...props\n}: Partial<TemporalFieldProps> & { part?: 'start' | 'end' }) {\n const context = usePicker(),\n o = context.options,\n l = labels(o.locale);\n const Field =\n context.kind === 'date' ? DateField : context.kind === 'time' ? TimeField : DateTimeField;\n const value = typeof context.draft === 'string' ? context.draft : (context.draft?.[part] ?? null);\n return (\n <Field\n {...o}\n {...props}\n className={partClass(o.classNames?.field ?? '', props.className)}\n style={props.style}\n classNames={undefined}\n label={props.label ?? (context.range ? `${o.label} ${l[part]}` : o.label)}\n value={value}\n name={undefined}\n formValidation={false}\n isRequired={false}\n onError={(error) => context.inputError(part, error)}\n onChange={(next) =>\n context.edit(\n context.range\n ? {\n ...(typeof context.draft === 'object' && context.draft\n ? context.draft\n : { start: '', end: '' }),\n [part]: next ?? '',\n }\n : next,\n part,\n )\n }\n />\n );\n}\nexport function TemporalPickerCalendar(props: HTMLAttributes<HTMLDivElement>) {\n const c = usePicker(),\n o = c.options;\n const selected = typeof c.draft === 'string' ? c.draft : '';\n const onSingle = (value: string | null) => {\n if (c.kind === 'date') c.edit(value);\n else {\n const next = value ? combineDate(value, localValue(selected, c.kind, o).slice(11), o) : null;\n if (value && !next) {\n c.inputError('date', 'invalid');\n return;\n }\n c.edit(next);\n }\n };\n const bounds = temporalDisplayBounds({ ...o, kind: c.kind });\n const range = typeof c.draft === 'object' && c.draft ? c.draft : { start: '', end: '' };\n return (\n <div {...props} className={partClass('temporal-picker__calendar', props.className)}>\n {c.kind !== 'time' &&\n (c.range ? (\n <RangeCalendar\n {...o}\n minDate={bounds.minDate}\n maxDate={bounds.maxDate}\n style={undefined}\n className={undefined}\n classNames={undefined}\n value={{ start: datePart(range.start, c.kind, o), end: datePart(range.end, c.kind, o) }}\n onChange={(v) => {\n if (!v || c.kind === 'date') {\n c.edit(v);\n return;\n }\n const start = v.start\n ? combineDate(v.start, localValue(range.start, c.kind, o).slice(11), o)\n : '',\n end = v.end\n ? combineDate(v.end, localValue(range.end, c.kind, o).slice(11), o)\n : '';\n if ((v.start && !start) || (v.end && !end)) {\n c.inputError('date', 'invalid');\n return;\n }\n c.edit({ start, end });\n }}\n />\n ) : (\n <Calendar\n {...o}\n minDate={bounds.minDate}\n maxDate={bounds.maxDate}\n style={undefined}\n className={undefined}\n classNames={undefined}\n value={datePart(selected, c.kind, o)}\n onChange={onSingle}\n />\n ))}\n </div>\n );\n}\nexport function TemporalPickerTime({\n part = 'start',\n ...props\n}: HTMLAttributes<HTMLDivElement> & { part?: 'start' | 'end' }) {\n const c = usePicker(),\n o = c.options,\n l = labels(o.locale);\n const value = typeof c.draft === 'string' ? c.draft : (c.draft?.[part] ?? '');\n const wall = localValue(value, c.kind, o);\n const time = c.kind === 'time' ? wall : wall.slice(11);\n const bounds = temporalDisplayBounds({ ...o, kind: c.kind }, wall.slice(0, 10));\n const Control = o.timePresentation === 'clock' ? TimeClock : TimeList;\n return (\n <div {...props} className={partClass('temporal-picker__time', props.className)}>\n <Control\n locale={o.locale}\n hourCycle={o.hourCycle}\n minTime={bounds.minTime}\n maxTime={bounds.maxTime}\n hourStep={o.hourStep}\n minuteStep={o.minuteStep}\n secondStep={o.secondStep}\n granularity={o.granularity}\n isTimeUnavailable={o.isTimeUnavailable}\n isDisabled={o.isDisabled}\n isReadOnly={o.isReadOnly}\n label={c.range ? `${o.label} ${l[part]}` : o.label}\n value={time}\n onChange={(next) => {\n const result =\n c.kind === 'time'\n ? next\n : combineDate(\n wall.slice(0, 10) || o.referenceDate || today(o.timeZone ?? 'UTC').toString(),\n next,\n o,\n );\n if (!result) {\n c.inputError(part, 'invalid');\n return;\n }\n c.edit(\n c.range\n ? {\n ...(typeof c.draft === 'object' && c.draft ? c.draft : { start: '', end: '' }),\n [part]: result,\n }\n : result,\n part,\n );\n }}\n />\n </div>\n );\n}\nexport function TemporalPickerValue({\n children,\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const c = usePicker();\n return (\n <span {...props} id={`${c.id}-value`} className={partClass('date-range__value', className)}>\n {children ?? c.text}\n </span>\n );\n}\nexport function TemporalPickerTrigger({\n children,\n className,\n ...props\n}: Omit<ButtonProps, 'children' | 'className'> & { children?: ReactNode; className?: string }) {\n const c = usePicker();\n return (\n <Button\n {...props}\n isDisabled={c.options.isDisabled}\n className={partClass('date-range__trigger', className)}\n aria-labelledby={`${c.id}-label ${c.id}-value`}\n aria-invalid={c.invalid || undefined}\n aria-describedby={c.describedBy}\n >\n {children ?? <TemporalPickerValue />}\n </Button>\n );\n}\nexport function TemporalPickerContent({\n children,\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n const c = usePicker();\n return (\n <div {...props} className={className}>\n {children ?? c.panel}\n </div>\n );\n}\n/** Position props set on this part win over the picker's `popoverAlign` / `popoverProps`. */\nexport function TemporalPickerPopover({\n children,\n className,\n placement,\n offset,\n crossOffset,\n shouldFlip,\n containerPadding,\n ...props\n}: HTMLAttributes<HTMLDivElement> & PopoverPositionProps) {\n const c = usePicker();\n const position = popoverPosition(\n {\n popoverAlign: c.options.popoverAlign,\n popoverProps: {\n ...c.options.popoverProps,\n ...Object.fromEntries(\n Object.entries({ placement, offset, crossOffset, shouldFlip, containerPadding }).filter(\n ([, value]) => value !== undefined,\n ),\n ),\n },\n },\n { placement: 'bottom start', offset: 8 },\n );\n const popover = (\n <Popover\n className={partClass('date-range__panel temporal-picker__panel', className)}\n {...position}\n >\n <Dialog aria-labelledby={`${c.id}-label`} className=\"date-range__dialog\">\n <div {...props}>{children ?? c.panel}</div>\n </Dialog>\n </Popover>\n );\n // React Aria positions logical `start` / `end` from the locale direction; the panel\n // parts set their own locale.\n return <OverlayDirection dir={c.options.dir}>{popover}</OverlayDirection>;\n}\nfunction action(type: 'apply' | 'cancel' | 'clear') {\n return function PickerAction({\n children,\n className,\n onClick,\n ...props\n }: ButtonHTMLAttributes<HTMLButtonElement>) {\n const c = usePicker();\n return (\n <button\n type=\"button\"\n {...props}\n className={partClass(\n `button button--${type === 'apply' ? 'primary' : 'ghost'} button--sm`,\n className,\n )}\n disabled={\n props.disabled ||\n (type !== 'cancel' && (c.options.isDisabled || c.options.isReadOnly)) ||\n (type === 'apply' && !!c.error)\n }\n onClick={(e) => {\n onClick?.(e);\n if (!e.defaultPrevented) c[type]();\n }}\n >\n {children ?? labels(c.options.locale)[type]}\n </button>\n );\n };\n}\nexport const TemporalPickerApplyButton = /* @__PURE__ */ action('apply'),\n TemporalPickerCancelButton = /* @__PURE__ */ action('cancel'),\n TemporalPickerClearButton = /* @__PURE__ */ action('clear');\nfunction Root<T extends TemporalValue>({\n kind,\n range,\n ...props\n}: TemporalPickerProps<T> & { kind: TemporalKind; range: boolean }) {\n const [local, setLocal] = useState<T | null>(props.defaultValue ?? null);\n const committed = props.value === undefined ? local : props.value;\n const [draft, setDraft] = useState<TemporalValue | null>(committed),\n [inputErrors, setInputErrors] = useState<Record<string, string | null>>({}),\n [formError, setFormError] = useState(false),\n [mobile, setMobile] = useState(false);\n const id = useId(),\n trigger = useRef<HTMLButtonElement>(null);\n const disclosure = useDisclosure(props.open, props.defaultOpen, props.onOpenChange);\n const l = labels(props.locale);\n const committedKey = JSON.stringify(committed),\n lastCommitted = useRef(committedKey);\n useEffect(() => {\n if (lastCommitted.current === committedKey) return;\n lastCommitted.current = committedKey;\n setDraft(committed);\n setInputErrors({});\n }, [committed, committedKey]);\n useEffect(() => {\n const media = window.matchMedia('(max-width: 640px)');\n const update = () => setMobile(media.matches);\n update();\n media.addEventListener('change', update);\n return () => media.removeEventListener('change', update);\n }, []);\n const constraints = { ...props, kind };\n const validate = (value: TemporalValue | null) =>\n range\n ? temporalRangeError(typeof value === 'object' ? value : null, constraints)\n : temporalError(typeof value === 'string' ? value : null, constraints);\n const code = Object.values(inputErrors).find(Boolean) ?? validate(draft);\n const error = code\n ? code in temporalMessages(props.locale)\n ? temporalMessages(props.locale)[code as keyof ReturnType<typeof temporalMessages>]\n : code\n : null;\n const committedError = validate(committed);\n const errorCallback = useRef(props.onError);\n useEffect(() => {\n errorCallback.current = props.onError;\n }, [props.onError]);\n useEffect(() => {\n errorCallback.current?.(error);\n }, [error]);\n function changeOpen(next: boolean) {\n if (props.isDisabled && next) return;\n setDraft(committed);\n setInputErrors({});\n disclosure.change(next);\n }\n function commit(value: TemporalValue | null, close: boolean) {\n if (props.isDisabled || props.isReadOnly || validate(value)) return;\n setLocal(value as T | null);\n setFormError(false);\n props.onChange?.(value as T | null);\n if (close) {\n props.onApply?.(value as T | null);\n disclosure.change(false);\n }\n }\n function edit(value: TemporalValue | null, part?: string) {\n if (props.isDisabled || props.isReadOnly) return;\n setDraft(value);\n const remaining = part ? { ...inputErrors, [part]: null } : {};\n setInputErrors(remaining);\n if (props.commitMode === 'immediate' && !Object.values(remaining).some(Boolean))\n commit(value, false);\n }\n function clear() {\n if (props.isDisabled || props.isReadOnly) return;\n setDraft(null);\n setInputErrors({});\n if (props.commitMode === 'immediate') {\n setLocal(null);\n props.onChange?.(null);\n }\n }\n const context: Context = {\n options: props,\n kind,\n range,\n draft,\n error,\n id,\n invalid: props.isInvalid || !!committedError || formError,\n describedBy:\n [\n props.description ? `${id}-description` : undefined,\n props.isInvalid || committedError || formError ? `${id}-error` : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n text: displayText(committed, kind, props),\n edit,\n inputError: (part, error) =>\n setInputErrors((current) =>\n current[part] === error ? current : { ...current, [part]: error },\n ),\n apply: () => {\n if (!error) commit(draft, true);\n },\n cancel: () => changeOpen(false),\n clear,\n panel: null,\n };\n const current =\n kind === 'date'\n ? today(props.timeZone ?? 'UTC').toString()\n : kind === 'time'\n ? now(props.timeZone ?? 'UTC')\n .toString()\n .slice(11, props.granularity === 'second' ? 19 : 16)\n : now(props.timeZone ?? 'UTC').toString();\n const panel = (\n <div className={partClass('temporal-picker__content', props.classNames?.content)}>\n <h2 className=\"temporal-picker__title\">{props.label}</h2>\n {!!props.presets?.length && (\n <div className=\"temporal-picker__presets\">\n {props.presets.map((p) => (\n <button\n key={p.id}\n type=\"button\"\n className={partClass('date-range__preset', props.classNames?.preset)}\n disabled={props.isDisabled || props.isReadOnly || !!validate(p.value)}\n onClick={() => edit(p.value)}\n >\n {p.label}\n </button>\n ))}\n </div>\n )}\n {props.showInputs !== false && (\n <div className=\"temporal-picker__fields\">\n <TemporalPickerField />\n {range && <TemporalPickerField part=\"end\" />}\n </div>\n )}\n <div className=\"temporal-picker__views\">\n {kind !== 'time' && <TemporalPickerCalendar className={props.classNames?.calendar} />}{' '}\n {kind !== 'date' && (\n <div className=\"temporal-picker__times\">\n <TemporalPickerTime className={props.classNames?.time} />\n {range && <TemporalPickerTime part=\"end\" className={props.classNames?.time} />}\n </div>\n )}\n </div>\n {error && (\n <span className=\"input__error\" role=\"alert\">\n {error}\n </span>\n )}\n <button\n type=\"button\"\n className=\"button button--ghost button--sm\"\n disabled={props.isDisabled || props.isReadOnly || !!temporalError(current, constraints)}\n onClick={() => edit(range ? { start: current, end: current } : current)}\n >\n {kind === 'date' ? l.today : l.now}\n </button>\n {props.showActions !== false && (\n <footer className={partClass('date-range__footer', props.classNames?.footer)}>\n <TemporalPickerClearButton className={props.classNames?.clearButton} />\n <div>\n <TemporalPickerCancelButton className={props.classNames?.cancelButton} />\n {props.commitMode !== 'immediate' && (\n <TemporalPickerApplyButton className={props.classNames?.applyButton} />\n )}\n </div>\n </footer>\n )}\n </div>\n );\n context.panel = panel;\n const dialog =\n props.display === 'dialog' ||\n (props.display !== 'inline' && props.display !== 'popover' && mobile);\n return (\n <PickerContext.Provider value={context}>\n <div\n className={partClass(\n partClass(\n `date-range temporal-picker date-range--${props.size ?? 'md'}`,\n props.classNames?.root,\n ),\n props.className,\n )}\n style={props.style}\n dir={props.dir}\n >\n <span\n id={`${id}-label`}\n className={partClass(\n props.hideLabel ? 'temporal__sr-only' : 'date-range__label',\n props.classNames?.label,\n )}\n >\n {props.label}\n </span>\n {props.display === 'inline' ? (\n <section\n className={partClass('date-range__panel date-range__inline', props.classNames?.panel)}\n aria-labelledby={`${id}-label`}\n >\n {props.children ?? panel}\n </section>\n ) : (\n <DialogTrigger isOpen={disclosure.visible && !props.isDisabled} onOpenChange={changeOpen}>\n {props.children ?? (\n <>\n <Button\n ref={trigger}\n className={partClass('date-range__trigger', props.classNames?.trigger)}\n isDisabled={props.isDisabled}\n aria-labelledby={`${id}-label ${id}-value`}\n aria-invalid={context.invalid || undefined}\n aria-describedby={context.describedBy}\n >\n <TemporalPickerValue className={props.classNames?.value} />\n </Button>\n {dialog ? (\n <ModalOverlay className=\"temporal-picker__overlay\">\n <Modal className=\"date-range__panel temporal-picker__modal\">\n <Dialog aria-labelledby={`${id}-label`}>{panel}</Dialog>\n </Modal>\n </ModalOverlay>\n ) : (\n <TemporalPickerPopover className={props.classNames?.panel} />\n )}\n </>\n )}\n </DialogTrigger>\n )}\n {props.description && (\n <span\n id={`${id}-description`}\n className={partClass('input__description', props.classNames?.description)}\n >\n {props.description}\n </span>\n )}\n {(props.isInvalid || committedError || formError) && (\n <span\n id={`${id}-error`}\n role=\"alert\"\n className={partClass('input__error', props.classNames?.error)}\n >\n {props.errorMessage ??\n temporalMessages(props.locale)[\n committedError ?? (props.isInvalid ? 'invalid' : 'required')\n ]}\n </span>\n )}\n {props.name &&\n (range ? (\n <>\n <input\n type=\"hidden\"\n name={`${props.name}.start`}\n value={typeof committed === 'object' && committed ? committed.start : ''}\n disabled={props.isDisabled}\n />\n <input\n type=\"hidden\"\n name={`${props.name}.end`}\n value={typeof committed === 'object' && committed ? committed.end : ''}\n disabled={props.isDisabled}\n />\n </>\n ) : (\n <input\n type=\"hidden\"\n name={props.name}\n value={typeof committed === 'string' ? committed : ''}\n disabled={props.isDisabled}\n />\n ))}\n <SelectionValidation\n hasValue={!!committed && !committedError}\n required={props.isRequired || !!committedError}\n disabled={props.isDisabled}\n onInvalid={() => {\n setFormError(true);\n trigger.current?.focus();\n }}\n onResetStart={() => {}}\n onReset={(cancelled) => {\n if (!cancelled) {\n if (props.value === undefined) setLocal(props.defaultValue ?? null);\n setDraft(props.value === undefined ? (props.defaultValue ?? null) : committed);\n setInputErrors({});\n setFormError(false);\n disclosure.change(false);\n }\n }}\n />\n </div>\n </PickerContext.Provider>\n );\n}\nfunction picker<T extends TemporalValue>(kind: TemporalKind, range: boolean) {\n const Component = (props: TemporalPickerProps<T>) => (\n <Root {...props} kind={kind} range={range} />\n );\n return Object.assign(Component, {\n Root: Component,\n Trigger: TemporalPickerTrigger,\n Value: TemporalPickerValue,\n Popover: TemporalPickerPopover,\n Content: TemporalPickerContent,\n Field: TemporalPickerField,\n Calendar: TemporalPickerCalendar,\n Time: TemporalPickerTime,\n MonthPicker,\n YearPicker,\n ApplyButton: TemporalPickerApplyButton,\n CancelButton: TemporalPickerCancelButton,\n ClearButton: TemporalPickerClearButton,\n });\n}\nexport const DatePicker = /* @__PURE__ */ picker<string>('date', false);\nexport const TimePicker = /* @__PURE__ */ picker<string>('time', false);\nexport const TimeRangePicker = /* @__PURE__ */ picker<TemporalRange>('time', true);\nexport const DateTimePicker = /* @__PURE__ */ picker<string>('datetime', false);\nexport const DateTimeRangePicker = /* @__PURE__ */ picker<TemporalRange>('datetime', true);\n"],"mappings":"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"}