@viax.io/uxm 4.36.0 → 4.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +74 -31
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.ts +3 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/previews/index.cjs +3 -0
  7. package/dist/previews/index.cjs.map +1 -1
  8. package/dist/previews/index.d.ts +3 -2
  9. package/dist/previews/index.d.ts.map +1 -1
  10. package/dist/previews/index.js +2 -0
  11. package/dist/previews/index.js.map +1 -1
  12. package/dist/studio/index.cjs.map +1 -1
  13. package/dist/studio/index.d.ts +2 -2
  14. package/dist/studio/index.js.map +1 -1
  15. package/dist/studio/lib/registry/app.cjs +52 -0
  16. package/dist/studio/lib/registry/app.cjs.map +1 -1
  17. package/dist/studio/lib/registry/app.d.ts.map +1 -1
  18. package/dist/studio/lib/registry/app.js +52 -0
  19. package/dist/studio/lib/registry/app.js.map +1 -1
  20. package/dist/studio/lib/registry/buttons.cjs +2 -2
  21. package/dist/studio/lib/registry/buttons.cjs.map +1 -1
  22. package/dist/studio/lib/registry/buttons.js +2 -2
  23. package/dist/studio/lib/registry/buttons.js.map +1 -1
  24. package/dist/studio/lib/registry/composite.cjs +1 -1
  25. package/dist/studio/lib/registry/composite.cjs.map +1 -1
  26. package/dist/studio/lib/registry/composite.js +1 -1
  27. package/dist/studio/lib/registry/composite.js.map +1 -1
  28. package/dist/studio/lib/registry/diagram.cjs +1 -1
  29. package/dist/studio/lib/registry/diagram.cjs.map +1 -1
  30. package/dist/studio/lib/registry/diagram.js +1 -1
  31. package/dist/studio/lib/registry/diagram.js.map +1 -1
  32. package/dist/studio/lib/registry/display.cjs +2 -2
  33. package/dist/studio/lib/registry/display.cjs.map +1 -1
  34. package/dist/studio/lib/registry/display.js +2 -2
  35. package/dist/studio/lib/registry/display.js.map +1 -1
  36. package/dist/studio/lib/registry/feedback.cjs +3 -3
  37. package/dist/studio/lib/registry/feedback.cjs.map +1 -1
  38. package/dist/studio/lib/registry/feedback.js +3 -3
  39. package/dist/studio/lib/registry/feedback.js.map +1 -1
  40. package/dist/studio/lib/registry/inputs.cjs +12 -12
  41. package/dist/studio/lib/registry/inputs.cjs.map +1 -1
  42. package/dist/studio/lib/registry/inputs.js +12 -12
  43. package/dist/studio/lib/registry/inputs.js.map +1 -1
  44. package/dist/studio/lib/types.cjs.map +1 -1
  45. package/dist/studio/persistence/generate-css.cjs +15 -0
  46. package/dist/studio/persistence/generate-css.cjs.map +1 -1
  47. package/dist/studio/persistence/generate-css.d.ts.map +1 -1
  48. package/dist/studio/persistence/generate-css.js +15 -0
  49. package/dist/studio/persistence/generate-css.js.map +1 -1
  50. package/dist/studio/shell/canvas.cjs +1 -0
  51. package/dist/studio/shell/canvas.cjs.map +1 -1
  52. package/dist/studio/shell/canvas.d.ts.map +1 -1
  53. package/dist/studio/shell/canvas.js +2 -0
  54. package/dist/studio/shell/canvas.js.map +1 -1
  55. package/dist/ui/bulk-action-bar/bulk-action-bar.css +3 -0
  56. package/dist/ui/calendar/calendar.cjs +3 -1
  57. package/dist/ui/calendar/calendar.cjs.map +1 -1
  58. package/dist/ui/calendar/calendar.css +2 -1
  59. package/dist/ui/calendar/calendar.d.ts +6 -2
  60. package/dist/ui/calendar/calendar.d.ts.map +1 -1
  61. package/dist/ui/calendar/calendar.js +3 -1
  62. package/dist/ui/calendar/calendar.js.map +1 -1
  63. package/dist/ui/currency-input/currency-input.cjs +3 -1
  64. package/dist/ui/currency-input/currency-input.cjs.map +1 -1
  65. package/dist/ui/currency-input/currency-input.d.ts +4 -2
  66. package/dist/ui/currency-input/currency-input.d.ts.map +1 -1
  67. package/dist/ui/currency-input/currency-input.js +3 -1
  68. package/dist/ui/currency-input/currency-input.js.map +1 -1
  69. package/dist/ui/date-input/date-input.cjs +2 -1
  70. package/dist/ui/date-input/date-input.cjs.map +1 -1
  71. package/dist/ui/date-input/date-input.css +1 -1
  72. package/dist/ui/date-input/date-input.d.ts +11 -1
  73. package/dist/ui/date-input/date-input.d.ts.map +1 -1
  74. package/dist/ui/date-input/date-input.js +2 -1
  75. package/dist/ui/date-input/date-input.js.map +1 -1
  76. package/dist/ui/editable-cell/editable-cell.cjs +20 -6
  77. package/dist/ui/editable-cell/editable-cell.cjs.map +1 -1
  78. package/dist/ui/editable-cell/editable-cell.d.ts +24 -1
  79. package/dist/ui/editable-cell/editable-cell.d.ts.map +1 -1
  80. package/dist/ui/editable-cell/editable-cell.js +20 -6
  81. package/dist/ui/editable-cell/editable-cell.js.map +1 -1
  82. package/dist/ui/file-upload/file-upload.cjs +36 -9
  83. package/dist/ui/file-upload/file-upload.cjs.map +1 -1
  84. package/dist/ui/file-upload/file-upload.d.ts +46 -4
  85. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  86. package/dist/ui/file-upload/file-upload.js +36 -9
  87. package/dist/ui/file-upload/file-upload.js.map +1 -1
  88. package/dist/ui/index.cjs +12 -2
  89. package/dist/ui/index.cjs.map +1 -1
  90. package/dist/ui/index.d.ts +5 -1
  91. package/dist/ui/index.d.ts.map +1 -1
  92. package/dist/ui/index.js +7 -1
  93. package/dist/ui/index.js.map +1 -1
  94. package/dist/ui/input/input.cjs +8 -4
  95. package/dist/ui/input/input.cjs.map +1 -1
  96. package/dist/ui/input/input.css +4 -0
  97. package/dist/ui/input/input.d.ts.map +1 -1
  98. package/dist/ui/input/input.js +8 -4
  99. package/dist/ui/input/input.js.map +1 -1
  100. package/dist/ui/language-switcher/index.cjs +29 -0
  101. package/dist/ui/language-switcher/index.cjs.map +1 -0
  102. package/dist/ui/language-switcher/index.d.ts +3 -0
  103. package/dist/ui/language-switcher/index.d.ts.map +1 -0
  104. package/dist/ui/language-switcher/index.js +5 -0
  105. package/dist/ui/language-switcher/index.js.map +1 -0
  106. package/dist/ui/language-switcher/language-switcher-preview.cjs +137 -0
  107. package/dist/ui/language-switcher/language-switcher-preview.cjs.map +1 -0
  108. package/dist/ui/language-switcher/language-switcher-preview.d.ts +3 -0
  109. package/dist/ui/language-switcher/language-switcher-preview.d.ts.map +1 -0
  110. package/dist/ui/language-switcher/language-switcher-preview.js +113 -0
  111. package/dist/ui/language-switcher/language-switcher-preview.js.map +1 -0
  112. package/dist/ui/language-switcher/language-switcher.cjs +127 -0
  113. package/dist/ui/language-switcher/language-switcher.cjs.map +1 -0
  114. package/dist/ui/language-switcher/language-switcher.css +95 -0
  115. package/dist/ui/language-switcher/language-switcher.d.ts +73 -0
  116. package/dist/ui/language-switcher/language-switcher.d.ts.map +1 -0
  117. package/dist/ui/language-switcher/language-switcher.js +103 -0
  118. package/dist/ui/language-switcher/language-switcher.js.map +1 -0
  119. package/dist/ui/locale/index.cjs +33 -0
  120. package/dist/ui/locale/index.cjs.map +1 -0
  121. package/dist/ui/locale/index.d.ts +3 -0
  122. package/dist/ui/locale/index.d.ts.map +1 -0
  123. package/dist/ui/locale/index.js +7 -0
  124. package/dist/ui/locale/index.js.map +1 -0
  125. package/dist/ui/locale/locale.cjs +43 -0
  126. package/dist/ui/locale/locale.cjs.map +1 -0
  127. package/dist/ui/locale/locale.d.ts +49 -0
  128. package/dist/ui/locale/locale.d.ts.map +1 -0
  129. package/dist/ui/locale/locale.js +17 -0
  130. package/dist/ui/locale/locale.js.map +1 -0
  131. package/dist/ui/page-shell/page-shell.cjs.map +1 -1
  132. package/dist/ui/page-shell/page-shell.d.ts +1 -1
  133. package/dist/ui/page-shell/page-shell.d.ts.map +1 -1
  134. package/dist/ui/page-shell/page-shell.js.map +1 -1
  135. package/dist/ui/range-slider/range-slider.cjs +7 -3
  136. package/dist/ui/range-slider/range-slider.cjs.map +1 -1
  137. package/dist/ui/range-slider/range-slider.d.ts +17 -1
  138. package/dist/ui/range-slider/range-slider.d.ts.map +1 -1
  139. package/dist/ui/range-slider/range-slider.js +7 -3
  140. package/dist/ui/range-slider/range-slider.js.map +1 -1
  141. package/dist/ui/stat-card/stat-card.cjs +1 -1
  142. package/dist/ui/stat-card/stat-card.cjs.map +1 -1
  143. package/dist/ui/stat-card/stat-card.css +4 -0
  144. package/dist/ui/stat-card/stat-card.js +1 -1
  145. package/dist/ui/stat-card/stat-card.js.map +1 -1
  146. package/dist/ui/styles.css +2 -1
  147. package/dist/ui/toast/toast.css +3 -1
  148. package/package.json +4 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/index.ts"],"sourcesContent":["export { AppSidebar, DEFAULT_SIDEBAR_ICON_COLORS } from './app-sidebar';\nexport type {\n AppSidebarBrand,\n AppSidebarIconColor,\n AppSidebarNavItem,\n AppSidebarProps,\n AppSidebarSection,\n} from './app-sidebar';\nexport { AppTopBar } from './app-top-bar';\nexport type { AppTopBarProps } from './app-top-bar';\nexport { Avatar } from './avatar';\nexport type { AvatarProps, AvatarSize, AvatarType } from './avatar';\nexport { BackLink } from './back-link';\nexport type { BackLinkProps } from './back-link';\nexport { Badge } from './badge';\nexport type { BadgeMode, BadgeProps, BadgeType } from './badge';\nexport { Banner } from './banner';\nexport type { BannerProps, BannerVariant } from './banner';\nexport { BulkActionBar } from './bulk-action-bar';\nexport type { BulkAction, BulkActionBarProps } from './bulk-action-bar';\nexport { Breadcrumb } from './breadcrumb';\nexport type { BreadcrumbCrumb, BreadcrumbProps, BreadcrumbSeparator } from './breadcrumb';\nexport { ButtonDanger, ButtonGhost, ButtonPrimary, ButtonSecondary, ButtonTertiary } from './button';\nexport type { ButtonProps } from './button';\nexport { ButtonGroup } from './button-group';\nexport type { ButtonGroupOption, ButtonGroupProps } from './button-group';\nexport { ButtonIcon } from './button-icon';\nexport type { ButtonIconProps } from './button-icon';\nexport { ButtonWithIcon } from './button-with-icon';\nexport type { ButtonWithIconProps } from './button-with-icon';\nexport { Calendar } from './calendar';\nexport type { CalendarProps, CalendarValue } from './calendar';\nexport { Card } from './card';\nexport type { CardProps } from './card';\nexport { Checkbox } from './checkbox';\nexport type { CheckboxProps } from './checkbox';\nexport { Chip } from './chip';\nexport type { ChipMode, ChipProps } from './chip';\nexport { Cluster } from './cluster';\nexport type { ClusterProps } from './cluster';\nexport { CodeBlock, CodeEditor } from './code-editor';\nexport type { CodeBlockProps, CodeEditorProps } from './code-editor';\nexport { ComponentRow } from './component-row';\nexport type { ComponentRowProps } from './component-row';\nexport { ConfigComponentRow } from './config-component-row';\nexport type { ConfigComponentRowProps } from './config-component-row';\nexport { ConfigSegmentItem } from './config-segment-item';\nexport type { ConfigSegmentItemProps } from './config-segment-item';\nexport { ContentTooltip, Tooltip } from './tooltip';\nexport type { ContentTooltipProps, TooltipPlacement, TooltipProps } from './tooltip';\nexport { DataTable } from './data-table';\nexport type { DataTableColumn, DataTableDensity, DataTableProps } from './data-table';\nexport { DateInput } from './date-input';\nexport type { DateInputFormat, DateInputMode, DateInputProps } from './date-input';\nexport { DetailSection } from './detail-section';\nexport type { DetailSectionProps } from './detail-section';\nexport { Dialog } from './dialog';\nexport type { DialogProps } from './dialog';\nexport { Disclosure } from './disclosure';\nexport type { DisclosureProps } from './disclosure';\nexport { Divider } from './divider';\nexport type { DividerProps } from './divider';\nexport { EditableCell } from './editable-cell';\nexport type { EditableCellAlign, EditableCellOption, EditableCellProps, EditableCellSize, EditableCellType, EditableCellValue } from './editable-cell';\nexport { EmptyState } from './empty-state';\nexport type { EmptyStateProps } from './empty-state';\nexport { ErrorPage } from './error-page';\nexport type { ErrorPageProps } from './error-page';\nexport { ExplorerListItem } from './explorer-list-item';\nexport type { ExplorerListItemProps } from './explorer-list-item';\nexport { ExplorerSection } from './explorer-section';\nexport type { ExplorerSectionProps } from './explorer-section';\nexport { FieldError } from './field-error';\nexport type { FieldErrorProps } from './field-error';\nexport { FilterTabs } from './filter-tabs';\nexport type { FilterTabsOption, FilterTabsProps } from './filter-tabs';\nexport { Icon } from './icon';\nexport type { IconProps } from './icon';\nexport { IconButton } from './icon-button';\nexport type { IconButtonProps } from './icon-button';\nexport { IconTile } from './icon-tile';\nexport type { IconTileProps } from './icon-tile';\nexport { LifecycleConnector } from './lifecycle-connector';\nexport type {\n LifecycleConnectorArrowhead,\n LifecycleConnectorProps,\n LifecycleConnectorRouting,\n LifecycleConnectorState,\n} from './lifecycle-connector';\nexport { LifecycleDropSlot } from './lifecycle-drop-slot';\nexport type {\n LifecycleDropSlotProps,\n LifecycleDropSlotShape,\n} from './lifecycle-drop-slot';\nexport { LifecycleEdgeLabel } from './lifecycle-edge-label';\nexport type {\n LifecycleEdgeLabelProps,\n LifecycleEdgeLabelVariant,\n} from './lifecycle-edge-label';\nexport { LifecycleGroupBox } from './lifecycle-group-box';\nexport type { LifecycleGroupBoxProps } from './lifecycle-group-box';\nexport { LifecycleMinimap } from './lifecycle-minimap';\nexport type {\n LifecycleMinimapNode,\n LifecycleMinimapProps,\n LifecycleMinimapViewport,\n} from './lifecycle-minimap';\nexport { LifecycleNodeCard } from './lifecycle-node-card';\nexport type {\n LifecycleNodeCardProps,\n LifecycleNodeKind,\n} from './lifecycle-node-card';\nexport { LifecycleTerminal } from './lifecycle-terminal';\nexport type { LifecycleTerminalProps } from './lifecycle-terminal';\nexport { LifecycleZoomControl } from './lifecycle-zoom-control';\nexport type { LifecycleZoomControlProps } from './lifecycle-zoom-control';\nexport { MetaRow } from './meta-row';\nexport type { MetaRowProps } from './meta-row';\nexport { Modal } from './modal';\nexport type { ModalHeaderProps, ModalProps, ModalSize } from './modal';\nexport { InlineAction } from './inline-action';\nexport type { InlineActionProps } from './inline-action';\nexport { InlineFilter } from './inline-filter';\nexport type { InlineFilterProps } from './inline-filter';\nexport { ColorInput, ColorInputPopover } from './color-input';\nexport type { ColorFormat, ColorInputPopoverProps, ColorInputProps } from './color-input';\nexport { InputWithIcon } from './input-with-icon';\nexport type { InputWithIconProps } from './input-with-icon';\nexport { Select, Textarea, TextInput } from './input';\nexport type { SelectProps, SelectSingleProps, SelectMultiProps, TextareaProps, TextInputProps } from './input';\nexport { Link } from './link';\nexport type { LinkProps, LinkUnderline } from './link';\nexport { List, ListItem } from './list';\nexport type { ListItemProps, ListProps } from './list';\nexport { SEARCHABLE_AUTO_THRESHOLD, Listbox, MultiListbox } from './listbox';\nexport type {\n ListboxProps,\n ListboxRenderItemState,\n ListboxRenderTriggerState,\n ListboxTriggerProps,\n MultiListboxProps,\n} from './listbox';\nexport { Loader } from './loader';\nexport type { LoaderLayout, LoaderProps, LoaderVariant } from './loader';\nexport { Menu } from './menu';\nexport type {\n MenuProps,\n MenuItem,\n MenuSeparator,\n MenuEntry,\n MenuTriggerProps,\n} from './menu';\nexport { NumberStepper } from './number-stepper';\nexport type { NumberStepperProps } from './number-stepper';\nexport { PageHeader } from './page-header';\nexport type { PageHeaderProps } from './page-header';\nexport { PageShell } from './page-shell';\nexport type { PageShellProps, PageShellVariant } from './page-shell';\nexport { CurrencyInput } from './currency-input';\nexport type { CurrencyInputProps, CurrencyValue } from './currency-input';\nexport { FileUpload } from './file-upload';\nexport type {\n FileStatus,\n FileUploadFileMeta,\n FileUploadProps,\n FileUploadState,\n} from './file-upload';\nexport { FormField } from './form-field';\nexport type { FormFieldLabelPosition, FormFieldLabelTint, FormFieldLabelVariant, FormFieldProps } from './form-field';\nexport { HoverTooltip } from './hover-tooltip';\nexport type { HoverTooltipProps } from './hover-tooltip';\nexport { NumberInput } from './number-input';\nexport type { NumberInputProps } from './number-input';\nexport { PasswordInput } from './password-input';\nexport type { PasswordInputProps } from './password-input';\nexport { PhoneInput } from './phone-input';\nexport type { PhoneInputProps, PhoneValue } from './phone-input';\nexport { TimeInput } from './time-input';\nexport type { TimeInputFormat, TimeInputProps } from './time-input';\nexport { PillSelect } from './pill-select';\nexport type { PillSelectProps } from './pill-select';\nexport { Popover } from './popover';\nexport type { PopoverPlacement, PopoverProps } from './popover';\nexport { ProgressBar } from './progress-bar';\nexport type { ProgressBarProps, ProgressBarVariant } from './progress-bar';\nexport { PropertyField, PropertyGrid } from './property-field';\nexport type { PropertyFieldProps, PropertyGridProps } from './property-field';\nexport { RadioGroup, RadioOption } from './radio-group';\nexport type { RadioGroupDirection, RadioGroupProps, RadioOptionProps } from './radio-group';\nexport { RangeSlider } from './range-slider';\nexport type { RangeSliderProps } from './range-slider';\nexport { ResponsiveGrid } from './responsive-grid';\nexport type { ResponsiveGridProps } from './responsive-grid';\nexport { SearchDropdown } from './search-dropdown';\nexport type { SearchDropdownOption, SearchDropdownProps } from './search-dropdown';\nexport { SideFlexpane } from './side-flexpane';\nexport type { SideFlexpaneProps } from './side-flexpane';\nexport { SectionHeader } from './section-header';\nexport type { SectionHeaderProps } from './section-header';\nexport { SegmentCard } from './segment-card';\nexport type { SegmentCardProps } from './segment-card';\nexport { SegmentRow } from './segment-row';\nexport type { SegmentRowProps } from './segment-row';\nexport { OptionList } from './option-list';\nexport type { OptionListItem, OptionListProps } from './option-list';\nexport { SidebarNavItem } from './sidebar-nav-item';\nexport type { SidebarNavItemProps } from './sidebar-nav-item';\nexport { SidebarNavTrigger } from './sidebar-nav-trigger';\nexport type {\n SidebarNavTriggerCaptionPlacement,\n SidebarNavTriggerProps,\n SidebarNavTriggerVariant,\n} from './sidebar-nav-trigger';\nexport { Slider } from './slider';\nexport type { SliderProps } from './slider';\nexport { Stack } from './stack';\nexport type { StackProps } from './stack';\nexport { StatCard } from './stat-card';\nexport type { StatCardProps, StatCardTrend } from './stat-card';\nexport { Tabs } from './tabs';\nexport type { TabsOption, TabsProps } from './tabs';\nexport { TabsUnderline } from './tabs-underline';\nexport type { TabsUnderlineOption, TabsUnderlineProps } from './tabs-underline';\nexport { Tag } from './tag';\nexport type { TagProps, TagSize, TagType } from './tag';\nexport { Thumbnail } from './thumbnail';\nexport type { ThumbnailFit, ThumbnailProps } from './thumbnail';\nexport { TimelineEntry } from './timeline-entry';\nexport type { TimelineDotState, TimelineEntryProps } from './timeline-entry';\nexport { Toast, Toaster, toast } from './toast';\nexport type {\n ToastPosition,\n ToasterProps,\n ToastProps,\n ToastVariant,\n} from './toast';\nexport { TypeOverviewCard } from './type-overview-card';\nexport type { TypeOverviewCardProps } from './type-overview-card';\nexport { ToggleSwitch } from './toggle-switch';\nexport type { ToggleSwitchProps } from './toggle-switch';\nexport { ViewSwitcher } from './view-switcher';\nexport type { ViewSwitcherOption, ViewSwitcherProps } from './view-switcher';\n\n// Icon registry — useful for shell-style tooling that needs to enumerate icons,\n// surface them in a picker, or look one up by id.\nexport { ICONS, ICON_OPTIONS, getIcon } from '../lib/icons';\nexport type { IconDef } from '../lib/icons';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAwD;AAQxD,yBAA0B;AAE1B,oBAAuB;AAEvB,uBAAyB;AAEzB,mBAAsB;AAEtB,oBAAuB;AAEvB,6BAA8B;AAE9B,wBAA2B;AAE3B,oBAA0F;AAE1F,0BAA4B;AAE5B,yBAA2B;AAE3B,8BAA+B;AAE/B,sBAAyB;AAEzB,kBAAqB;AAErB,sBAAyB;AAEzB,kBAAqB;AAErB,qBAAwB;AAExB,yBAAsC;AAEtC,2BAA6B;AAE7B,kCAAmC;AAEnC,iCAAkC;AAElC,qBAAwC;AAExC,wBAA0B;AAE1B,wBAA0B;AAE1B,4BAA8B;AAE9B,oBAAuB;AAEvB,wBAA2B;AAE3B,qBAAwB;AAExB,2BAA6B;AAE7B,yBAA2B;AAE3B,wBAA0B;AAE1B,gCAAiC;AAEjC,8BAAgC;AAEhC,yBAA2B;AAE3B,yBAA2B;AAE3B,kBAAqB;AAErB,yBAA2B;AAE3B,uBAAyB;AAEzB,iCAAmC;AAOnC,iCAAkC;AAKlC,kCAAmC;AAKnC,iCAAkC;AAElC,+BAAiC;AAMjC,iCAAkC;AAKlC,gCAAkC;AAElC,oCAAqC;AAErC,sBAAwB;AAExB,mBAAsB;AAEtB,2BAA6B;AAE7B,2BAA6B;AAE7B,yBAA8C;AAE9C,6BAA8B;AAE9B,mBAA4C;AAE5C,kBAAqB;AAErB,kBAA+B;AAE/B,qBAAiE;AAQjE,oBAAuB;AAEvB,kBAAqB;AAQrB,4BAA8B;AAE9B,yBAA2B;AAE3B,wBAA0B;AAE1B,4BAA8B;AAE9B,yBAA2B;AAO3B,wBAA0B;AAE1B,2BAA6B;AAE7B,0BAA4B;AAE5B,4BAA8B;AAE9B,yBAA2B;AAE3B,wBAA0B;AAE1B,yBAA2B;AAE3B,qBAAwB;AAExB,0BAA4B;AAE5B,4BAA4C;AAE5C,yBAAwC;AAExC,0BAA4B;AAE5B,6BAA+B;AAE/B,6BAA+B;AAE/B,2BAA6B;AAE7B,4BAA8B;AAE9B,0BAA4B;AAE5B,yBAA2B;AAE3B,yBAA2B;AAE3B,8BAA+B;AAE/B,iCAAkC;AAMlC,oBAAuB;AAEvB,mBAAsB;AAEtB,uBAAyB;AAEzB,kBAAqB;AAErB,4BAA8B;AAE9B,iBAAoB;AAEpB,uBAA0B;AAE1B,4BAA8B;AAE9B,mBAAsC;AAOtC,gCAAiC;AAEjC,2BAA6B;AAE7B,2BAA6B;AAK7B,mBAA6C;","names":[]}
1
+ {"version":3,"sources":["../../src/ui/index.ts"],"sourcesContent":["export { AppSidebar, DEFAULT_SIDEBAR_ICON_COLORS } from './app-sidebar';\nexport type {\n AppSidebarBrand,\n AppSidebarIconColor,\n AppSidebarNavItem,\n AppSidebarProps,\n AppSidebarSection,\n} from './app-sidebar';\nexport { AppTopBar } from './app-top-bar';\nexport type { AppTopBarProps } from './app-top-bar';\nexport { Avatar } from './avatar';\nexport type { AvatarProps, AvatarSize, AvatarType } from './avatar';\nexport { BackLink } from './back-link';\nexport type { BackLinkProps } from './back-link';\nexport { Badge } from './badge';\nexport type { BadgeMode, BadgeProps, BadgeType } from './badge';\nexport { Banner } from './banner';\nexport type { BannerProps, BannerVariant } from './banner';\nexport { BulkActionBar } from './bulk-action-bar';\nexport type { BulkAction, BulkActionBarProps } from './bulk-action-bar';\nexport { Breadcrumb } from './breadcrumb';\nexport type { BreadcrumbCrumb, BreadcrumbProps, BreadcrumbSeparator } from './breadcrumb';\nexport { ButtonDanger, ButtonGhost, ButtonPrimary, ButtonSecondary, ButtonTertiary } from './button';\nexport type { ButtonProps } from './button';\nexport { ButtonGroup } from './button-group';\nexport type { ButtonGroupOption, ButtonGroupProps } from './button-group';\nexport { ButtonIcon } from './button-icon';\nexport type { ButtonIconProps } from './button-icon';\nexport { ButtonWithIcon } from './button-with-icon';\nexport type { ButtonWithIconProps } from './button-with-icon';\nexport { Calendar } from './calendar';\nexport type { CalendarProps, CalendarValue } from './calendar';\nexport { Card } from './card';\nexport type { CardProps } from './card';\nexport { Checkbox } from './checkbox';\nexport type { CheckboxProps } from './checkbox';\nexport { Chip } from './chip';\nexport type { ChipMode, ChipProps } from './chip';\nexport { Cluster } from './cluster';\nexport type { ClusterProps } from './cluster';\nexport { CodeBlock, CodeEditor } from './code-editor';\nexport type { CodeBlockProps, CodeEditorProps } from './code-editor';\nexport { ComponentRow } from './component-row';\nexport type { ComponentRowProps } from './component-row';\nexport { ConfigComponentRow } from './config-component-row';\nexport type { ConfigComponentRowProps } from './config-component-row';\nexport { ConfigSegmentItem } from './config-segment-item';\nexport type { ConfigSegmentItemProps } from './config-segment-item';\nexport { ContentTooltip, Tooltip } from './tooltip';\nexport type { ContentTooltipProps, TooltipPlacement, TooltipProps } from './tooltip';\nexport { DataTable } from './data-table';\nexport type { DataTableColumn, DataTableDensity, DataTableProps } from './data-table';\nexport { DateInput } from './date-input';\nexport type { DateInputFormat, DateInputMode, DateInputProps } from './date-input';\nexport { DetailSection } from './detail-section';\nexport type { DetailSectionProps } from './detail-section';\nexport { Dialog } from './dialog';\nexport type { DialogProps } from './dialog';\nexport { Disclosure } from './disclosure';\nexport type { DisclosureProps } from './disclosure';\nexport { Divider } from './divider';\nexport type { DividerProps } from './divider';\nexport { EditableCell } from './editable-cell';\nexport type { EditableCellAlign, EditableCellOption, EditableCellProps, EditableCellSize, EditableCellType, EditableCellValue } from './editable-cell';\nexport { EmptyState } from './empty-state';\nexport type { EmptyStateProps } from './empty-state';\nexport { ErrorPage } from './error-page';\nexport type { ErrorPageProps } from './error-page';\nexport { ExplorerListItem } from './explorer-list-item';\nexport type { ExplorerListItemProps } from './explorer-list-item';\nexport { ExplorerSection } from './explorer-section';\nexport type { ExplorerSectionProps } from './explorer-section';\nexport { FieldError } from './field-error';\nexport type { FieldErrorProps } from './field-error';\nexport { FilterTabs } from './filter-tabs';\nexport type { FilterTabsOption, FilterTabsProps } from './filter-tabs';\nexport { Icon } from './icon';\nexport type { IconProps } from './icon';\nexport { IconButton } from './icon-button';\nexport type { IconButtonProps } from './icon-button';\nexport { IconTile } from './icon-tile';\nexport type { IconTileProps } from './icon-tile';\nexport { LifecycleConnector } from './lifecycle-connector';\nexport type {\n LifecycleConnectorArrowhead,\n LifecycleConnectorProps,\n LifecycleConnectorRouting,\n LifecycleConnectorState,\n} from './lifecycle-connector';\nexport { LifecycleDropSlot } from './lifecycle-drop-slot';\nexport type {\n LifecycleDropSlotProps,\n LifecycleDropSlotShape,\n} from './lifecycle-drop-slot';\nexport { LifecycleEdgeLabel } from './lifecycle-edge-label';\nexport type {\n LifecycleEdgeLabelProps,\n LifecycleEdgeLabelVariant,\n} from './lifecycle-edge-label';\nexport { LifecycleGroupBox } from './lifecycle-group-box';\nexport type { LifecycleGroupBoxProps } from './lifecycle-group-box';\nexport { LifecycleMinimap } from './lifecycle-minimap';\nexport type {\n LifecycleMinimapNode,\n LifecycleMinimapProps,\n LifecycleMinimapViewport,\n} from './lifecycle-minimap';\nexport { LifecycleNodeCard } from './lifecycle-node-card';\nexport type {\n LifecycleNodeCardProps,\n LifecycleNodeKind,\n} from './lifecycle-node-card';\nexport { LifecycleTerminal } from './lifecycle-terminal';\nexport type { LifecycleTerminalProps } from './lifecycle-terminal';\nexport { LifecycleZoomControl } from './lifecycle-zoom-control';\nexport type { LifecycleZoomControlProps } from './lifecycle-zoom-control';\nexport { MetaRow } from './meta-row';\nexport type { MetaRowProps } from './meta-row';\nexport { Modal } from './modal';\nexport type { ModalHeaderProps, ModalProps, ModalSize } from './modal';\nexport { InlineAction } from './inline-action';\nexport type { InlineActionProps } from './inline-action';\nexport { InlineFilter } from './inline-filter';\nexport type { InlineFilterProps } from './inline-filter';\nexport { ColorInput, ColorInputPopover } from './color-input';\nexport type { ColorFormat, ColorInputPopoverProps, ColorInputProps } from './color-input';\nexport { InputWithIcon } from './input-with-icon';\nexport type { InputWithIconProps } from './input-with-icon';\nexport { Select, Textarea, TextInput } from './input';\nexport type { SelectProps, SelectSingleProps, SelectMultiProps, TextareaProps, TextInputProps } from './input';\nexport { LanguageSwitcher } from './language-switcher';\nexport type { LanguageSwitcherProps, LanguageSwitcherVariant } from './language-switcher';\nexport { Link } from './link';\nexport type { LinkProps, LinkUnderline } from './link';\nexport { List, ListItem } from './list';\nexport type { ListItemProps, ListProps } from './list';\nexport { SEARCHABLE_AUTO_THRESHOLD, Listbox, MultiListbox } from './listbox';\nexport type {\n ListboxProps,\n ListboxRenderItemState,\n ListboxRenderTriggerState,\n ListboxTriggerProps,\n MultiListboxProps,\n} from './listbox';\nexport { DEFAULT_UXM_LOCALE, UxmLocaleProvider, useUxmLocale } from './locale';\nexport type { UxmLocaleProviderProps } from './locale';\nexport { Loader } from './loader';\nexport type { LoaderLayout, LoaderProps, LoaderVariant } from './loader';\nexport { Menu } from './menu';\nexport type {\n MenuProps,\n MenuItem,\n MenuSeparator,\n MenuEntry,\n MenuTriggerProps,\n} from './menu';\nexport { NumberStepper } from './number-stepper';\nexport type { NumberStepperProps } from './number-stepper';\nexport { PageHeader } from './page-header';\nexport type { PageHeaderProps } from './page-header';\nexport { PageShell } from './page-shell';\nexport type { PageShellProps, PageShellVariant } from './page-shell';\nexport { CurrencyInput } from './currency-input';\nexport type { CurrencyInputProps, CurrencyValue } from './currency-input';\nexport { FileUpload } from './file-upload';\nexport type {\n FileStatus,\n FileUploadFileMeta,\n FileUploadLabels,\n FileUploadProps,\n FileUploadState,\n} from './file-upload';\nexport { FormField } from './form-field';\nexport type { FormFieldLabelPosition, FormFieldLabelTint, FormFieldLabelVariant, FormFieldProps } from './form-field';\nexport { HoverTooltip } from './hover-tooltip';\nexport type { HoverTooltipProps } from './hover-tooltip';\nexport { NumberInput } from './number-input';\nexport type { NumberInputProps } from './number-input';\nexport { PasswordInput } from './password-input';\nexport type { PasswordInputProps } from './password-input';\nexport { PhoneInput } from './phone-input';\nexport type { PhoneInputProps, PhoneValue } from './phone-input';\nexport { TimeInput } from './time-input';\nexport type { TimeInputFormat, TimeInputProps } from './time-input';\nexport { PillSelect } from './pill-select';\nexport type { PillSelectProps } from './pill-select';\nexport { Popover } from './popover';\nexport type { PopoverPlacement, PopoverProps } from './popover';\nexport { ProgressBar } from './progress-bar';\nexport type { ProgressBarProps, ProgressBarVariant } from './progress-bar';\nexport { PropertyField, PropertyGrid } from './property-field';\nexport type { PropertyFieldProps, PropertyGridProps } from './property-field';\nexport { RadioGroup, RadioOption } from './radio-group';\nexport type { RadioGroupDirection, RadioGroupProps, RadioOptionProps } from './radio-group';\nexport { RangeSlider } from './range-slider';\nexport type { RangeSliderProps } from './range-slider';\nexport { ResponsiveGrid } from './responsive-grid';\nexport type { ResponsiveGridProps } from './responsive-grid';\nexport { SearchDropdown } from './search-dropdown';\nexport type { SearchDropdownOption, SearchDropdownProps } from './search-dropdown';\nexport { SideFlexpane } from './side-flexpane';\nexport type { SideFlexpaneProps } from './side-flexpane';\nexport { SectionHeader } from './section-header';\nexport type { SectionHeaderProps } from './section-header';\nexport { SegmentCard } from './segment-card';\nexport type { SegmentCardProps } from './segment-card';\nexport { SegmentRow } from './segment-row';\nexport type { SegmentRowProps } from './segment-row';\nexport { OptionList } from './option-list';\nexport type { OptionListItem, OptionListProps } from './option-list';\nexport { SidebarNavItem } from './sidebar-nav-item';\nexport type { SidebarNavItemProps } from './sidebar-nav-item';\nexport { SidebarNavTrigger } from './sidebar-nav-trigger';\nexport type {\n SidebarNavTriggerCaptionPlacement,\n SidebarNavTriggerProps,\n SidebarNavTriggerVariant,\n} from './sidebar-nav-trigger';\nexport { Slider } from './slider';\nexport type { SliderProps } from './slider';\nexport { Stack } from './stack';\nexport type { StackProps } from './stack';\nexport { StatCard } from './stat-card';\nexport type { StatCardProps, StatCardTrend } from './stat-card';\nexport { Tabs } from './tabs';\nexport type { TabsOption, TabsProps } from './tabs';\nexport { TabsUnderline } from './tabs-underline';\nexport type { TabsUnderlineOption, TabsUnderlineProps } from './tabs-underline';\nexport { Tag } from './tag';\nexport type { TagProps, TagSize, TagType } from './tag';\nexport { Thumbnail } from './thumbnail';\nexport type { ThumbnailFit, ThumbnailProps } from './thumbnail';\nexport { TimelineEntry } from './timeline-entry';\nexport type { TimelineDotState, TimelineEntryProps } from './timeline-entry';\nexport { Toast, Toaster, toast } from './toast';\nexport type {\n ToastPosition,\n ToasterProps,\n ToastProps,\n ToastVariant,\n} from './toast';\nexport { TypeOverviewCard } from './type-overview-card';\nexport type { TypeOverviewCardProps } from './type-overview-card';\nexport { ToggleSwitch } from './toggle-switch';\nexport type { ToggleSwitchProps } from './toggle-switch';\nexport { ViewSwitcher } from './view-switcher';\nexport type { ViewSwitcherOption, ViewSwitcherProps } from './view-switcher';\n\n// Icon registry — useful for shell-style tooling that needs to enumerate icons,\n// surface them in a picker, or look one up by id.\nexport { ICONS, ICON_OPTIONS, getIcon } from '../lib/icons';\nexport type { IconDef } from '../lib/icons';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAwD;AAQxD,yBAA0B;AAE1B,oBAAuB;AAEvB,uBAAyB;AAEzB,mBAAsB;AAEtB,oBAAuB;AAEvB,6BAA8B;AAE9B,wBAA2B;AAE3B,oBAA0F;AAE1F,0BAA4B;AAE5B,yBAA2B;AAE3B,8BAA+B;AAE/B,sBAAyB;AAEzB,kBAAqB;AAErB,sBAAyB;AAEzB,kBAAqB;AAErB,qBAAwB;AAExB,yBAAsC;AAEtC,2BAA6B;AAE7B,kCAAmC;AAEnC,iCAAkC;AAElC,qBAAwC;AAExC,wBAA0B;AAE1B,wBAA0B;AAE1B,4BAA8B;AAE9B,oBAAuB;AAEvB,wBAA2B;AAE3B,qBAAwB;AAExB,2BAA6B;AAE7B,yBAA2B;AAE3B,wBAA0B;AAE1B,gCAAiC;AAEjC,8BAAgC;AAEhC,yBAA2B;AAE3B,yBAA2B;AAE3B,kBAAqB;AAErB,yBAA2B;AAE3B,uBAAyB;AAEzB,iCAAmC;AAOnC,iCAAkC;AAKlC,kCAAmC;AAKnC,iCAAkC;AAElC,+BAAiC;AAMjC,iCAAkC;AAKlC,gCAAkC;AAElC,oCAAqC;AAErC,sBAAwB;AAExB,mBAAsB;AAEtB,2BAA6B;AAE7B,2BAA6B;AAE7B,yBAA8C;AAE9C,6BAA8B;AAE9B,mBAA4C;AAE5C,+BAAiC;AAEjC,kBAAqB;AAErB,kBAA+B;AAE/B,qBAAiE;AAQjE,oBAAoE;AAEpE,oBAAuB;AAEvB,kBAAqB;AAQrB,4BAA8B;AAE9B,yBAA2B;AAE3B,wBAA0B;AAE1B,4BAA8B;AAE9B,yBAA2B;AAQ3B,wBAA0B;AAE1B,2BAA6B;AAE7B,0BAA4B;AAE5B,4BAA8B;AAE9B,yBAA2B;AAE3B,wBAA0B;AAE1B,yBAA2B;AAE3B,qBAAwB;AAExB,0BAA4B;AAE5B,4BAA4C;AAE5C,yBAAwC;AAExC,0BAA4B;AAE5B,6BAA+B;AAE/B,6BAA+B;AAE/B,2BAA6B;AAE7B,4BAA8B;AAE9B,0BAA4B;AAE5B,yBAA2B;AAE3B,yBAA2B;AAE3B,8BAA+B;AAE/B,iCAAkC;AAMlC,oBAAuB;AAEvB,mBAAsB;AAEtB,uBAAyB;AAEzB,kBAAqB;AAErB,4BAA8B;AAE9B,iBAAoB;AAEpB,uBAA0B;AAE1B,4BAA8B;AAE9B,mBAAsC;AAOtC,gCAAiC;AAEjC,2BAA6B;AAE7B,2BAA6B;AAK7B,mBAA6C;","names":[]}
@@ -104,12 +104,16 @@ export { InputWithIcon } from './input-with-icon/index.js';
104
104
  export type { InputWithIconProps } from './input-with-icon/index.js';
105
105
  export { Select, Textarea, TextInput } from './input/index.js';
106
106
  export type { SelectProps, SelectSingleProps, SelectMultiProps, TextareaProps, TextInputProps } from './input/index.js';
107
+ export { LanguageSwitcher } from './language-switcher/index.js';
108
+ export type { LanguageSwitcherProps, LanguageSwitcherVariant } from './language-switcher/index.js';
107
109
  export { Link } from './link/index.js';
108
110
  export type { LinkProps, LinkUnderline } from './link/index.js';
109
111
  export { List, ListItem } from './list/index.js';
110
112
  export type { ListItemProps, ListProps } from './list/index.js';
111
113
  export { SEARCHABLE_AUTO_THRESHOLD, Listbox, MultiListbox } from './listbox/index.js';
112
114
  export type { ListboxProps, ListboxRenderItemState, ListboxRenderTriggerState, ListboxTriggerProps, MultiListboxProps, } from './listbox/index.js';
115
+ export { DEFAULT_UXM_LOCALE, UxmLocaleProvider, useUxmLocale } from './locale/index.js';
116
+ export type { UxmLocaleProviderProps } from './locale/index.js';
113
117
  export { Loader } from './loader/index.js';
114
118
  export type { LoaderLayout, LoaderProps, LoaderVariant } from './loader/index.js';
115
119
  export { Menu } from './menu/index.js';
@@ -123,7 +127,7 @@ export type { PageShellProps, PageShellVariant } from './page-shell/index.js';
123
127
  export { CurrencyInput } from './currency-input/index.js';
124
128
  export type { CurrencyInputProps, CurrencyValue } from './currency-input/index.js';
125
129
  export { FileUpload } from './file-upload/index.js';
126
- export type { FileStatus, FileUploadFileMeta, FileUploadProps, FileUploadState, } from './file-upload/index.js';
130
+ export type { FileStatus, FileUploadFileMeta, FileUploadLabels, FileUploadProps, FileUploadState, } from './file-upload/index.js';
127
131
  export { FormField } from './form-field/index.js';
128
132
  export type { FormFieldLabelPosition, FormFieldLabelTint, FormFieldLabelVariant, FormFieldProps } from './form-field/index.js';
129
133
  export { HoverTooltip } from './hover-tooltip/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"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"}
package/dist/ui/index.js CHANGED
@@ -51,9 +51,11 @@ import { InlineFilter } from "./inline-filter/index.js";
51
51
  import { ColorInput, ColorInputPopover } from "./color-input/index.js";
52
52
  import { InputWithIcon } from "./input-with-icon/index.js";
53
53
  import { Select, Textarea, TextInput } from "./input/index.js";
54
+ import { LanguageSwitcher } from "./language-switcher/index.js";
54
55
  import { Link } from "./link/index.js";
55
56
  import { List, ListItem } from "./list/index.js";
56
57
  import { SEARCHABLE_AUTO_THRESHOLD, Listbox, MultiListbox } from "./listbox/index.js";
58
+ import { DEFAULT_UXM_LOCALE, UxmLocaleProvider, useUxmLocale } from "./locale/index.js";
57
59
  import { Loader } from "./loader/index.js";
58
60
  import { Menu } from "./menu/index.js";
59
61
  import { NumberStepper } from "./number-stepper/index.js";
@@ -127,6 +129,7 @@ export {
127
129
  ContentTooltip,
128
130
  CurrencyInput,
129
131
  DEFAULT_SIDEBAR_ICON_COLORS,
132
+ DEFAULT_UXM_LOCALE,
130
133
  DataTable,
131
134
  DateInput,
132
135
  DetailSection,
@@ -151,6 +154,7 @@ export {
151
154
  InlineAction,
152
155
  InlineFilter,
153
156
  InputWithIcon,
157
+ LanguageSwitcher,
154
158
  LifecycleConnector,
155
159
  LifecycleDropSlot,
156
160
  LifecycleEdgeLabel,
@@ -209,8 +213,10 @@ export {
209
213
  ToggleSwitch,
210
214
  Tooltip,
211
215
  TypeOverviewCard,
216
+ UxmLocaleProvider,
212
217
  ViewSwitcher,
213
218
  getIcon,
214
- toast
219
+ toast,
220
+ useUxmLocale
215
221
  };
216
222
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/index.ts"],"sourcesContent":["export { AppSidebar, DEFAULT_SIDEBAR_ICON_COLORS } from './app-sidebar';\nexport type {\n AppSidebarBrand,\n AppSidebarIconColor,\n AppSidebarNavItem,\n AppSidebarProps,\n AppSidebarSection,\n} from './app-sidebar';\nexport { AppTopBar } from './app-top-bar';\nexport type { AppTopBarProps } from './app-top-bar';\nexport { Avatar } from './avatar';\nexport type { AvatarProps, AvatarSize, AvatarType } from './avatar';\nexport { BackLink } from './back-link';\nexport type { BackLinkProps } from './back-link';\nexport { Badge } from './badge';\nexport type { BadgeMode, BadgeProps, BadgeType } from './badge';\nexport { Banner } from './banner';\nexport type { BannerProps, BannerVariant } from './banner';\nexport { BulkActionBar } from './bulk-action-bar';\nexport type { BulkAction, BulkActionBarProps } from './bulk-action-bar';\nexport { Breadcrumb } from './breadcrumb';\nexport type { BreadcrumbCrumb, BreadcrumbProps, BreadcrumbSeparator } from './breadcrumb';\nexport { ButtonDanger, ButtonGhost, ButtonPrimary, ButtonSecondary, ButtonTertiary } from './button';\nexport type { ButtonProps } from './button';\nexport { ButtonGroup } from './button-group';\nexport type { ButtonGroupOption, ButtonGroupProps } from './button-group';\nexport { ButtonIcon } from './button-icon';\nexport type { ButtonIconProps } from './button-icon';\nexport { ButtonWithIcon } from './button-with-icon';\nexport type { ButtonWithIconProps } from './button-with-icon';\nexport { Calendar } from './calendar';\nexport type { CalendarProps, CalendarValue } from './calendar';\nexport { Card } from './card';\nexport type { CardProps } from './card';\nexport { Checkbox } from './checkbox';\nexport type { CheckboxProps } from './checkbox';\nexport { Chip } from './chip';\nexport type { ChipMode, ChipProps } from './chip';\nexport { Cluster } from './cluster';\nexport type { ClusterProps } from './cluster';\nexport { CodeBlock, CodeEditor } from './code-editor';\nexport type { CodeBlockProps, CodeEditorProps } from './code-editor';\nexport { ComponentRow } from './component-row';\nexport type { ComponentRowProps } from './component-row';\nexport { ConfigComponentRow } from './config-component-row';\nexport type { ConfigComponentRowProps } from './config-component-row';\nexport { ConfigSegmentItem } from './config-segment-item';\nexport type { ConfigSegmentItemProps } from './config-segment-item';\nexport { ContentTooltip, Tooltip } from './tooltip';\nexport type { ContentTooltipProps, TooltipPlacement, TooltipProps } from './tooltip';\nexport { DataTable } from './data-table';\nexport type { DataTableColumn, DataTableDensity, DataTableProps } from './data-table';\nexport { DateInput } from './date-input';\nexport type { DateInputFormat, DateInputMode, DateInputProps } from './date-input';\nexport { DetailSection } from './detail-section';\nexport type { DetailSectionProps } from './detail-section';\nexport { Dialog } from './dialog';\nexport type { DialogProps } from './dialog';\nexport { Disclosure } from './disclosure';\nexport type { DisclosureProps } from './disclosure';\nexport { Divider } from './divider';\nexport type { DividerProps } from './divider';\nexport { EditableCell } from './editable-cell';\nexport type { EditableCellAlign, EditableCellOption, EditableCellProps, EditableCellSize, EditableCellType, EditableCellValue } from './editable-cell';\nexport { EmptyState } from './empty-state';\nexport type { EmptyStateProps } from './empty-state';\nexport { ErrorPage } from './error-page';\nexport type { ErrorPageProps } from './error-page';\nexport { ExplorerListItem } from './explorer-list-item';\nexport type { ExplorerListItemProps } from './explorer-list-item';\nexport { ExplorerSection } from './explorer-section';\nexport type { ExplorerSectionProps } from './explorer-section';\nexport { FieldError } from './field-error';\nexport type { FieldErrorProps } from './field-error';\nexport { FilterTabs } from './filter-tabs';\nexport type { FilterTabsOption, FilterTabsProps } from './filter-tabs';\nexport { Icon } from './icon';\nexport type { IconProps } from './icon';\nexport { IconButton } from './icon-button';\nexport type { IconButtonProps } from './icon-button';\nexport { IconTile } from './icon-tile';\nexport type { IconTileProps } from './icon-tile';\nexport { LifecycleConnector } from './lifecycle-connector';\nexport type {\n LifecycleConnectorArrowhead,\n LifecycleConnectorProps,\n LifecycleConnectorRouting,\n LifecycleConnectorState,\n} from './lifecycle-connector';\nexport { LifecycleDropSlot } from './lifecycle-drop-slot';\nexport type {\n LifecycleDropSlotProps,\n LifecycleDropSlotShape,\n} from './lifecycle-drop-slot';\nexport { LifecycleEdgeLabel } from './lifecycle-edge-label';\nexport type {\n LifecycleEdgeLabelProps,\n LifecycleEdgeLabelVariant,\n} from './lifecycle-edge-label';\nexport { LifecycleGroupBox } from './lifecycle-group-box';\nexport type { LifecycleGroupBoxProps } from './lifecycle-group-box';\nexport { LifecycleMinimap } from './lifecycle-minimap';\nexport type {\n LifecycleMinimapNode,\n LifecycleMinimapProps,\n LifecycleMinimapViewport,\n} from './lifecycle-minimap';\nexport { LifecycleNodeCard } from './lifecycle-node-card';\nexport type {\n LifecycleNodeCardProps,\n LifecycleNodeKind,\n} from './lifecycle-node-card';\nexport { LifecycleTerminal } from './lifecycle-terminal';\nexport type { LifecycleTerminalProps } from './lifecycle-terminal';\nexport { LifecycleZoomControl } from './lifecycle-zoom-control';\nexport type { LifecycleZoomControlProps } from './lifecycle-zoom-control';\nexport { MetaRow } from './meta-row';\nexport type { MetaRowProps } from './meta-row';\nexport { Modal } from './modal';\nexport type { ModalHeaderProps, ModalProps, ModalSize } from './modal';\nexport { InlineAction } from './inline-action';\nexport type { InlineActionProps } from './inline-action';\nexport { InlineFilter } from './inline-filter';\nexport type { InlineFilterProps } from './inline-filter';\nexport { ColorInput, ColorInputPopover } from './color-input';\nexport type { ColorFormat, ColorInputPopoverProps, ColorInputProps } from './color-input';\nexport { InputWithIcon } from './input-with-icon';\nexport type { InputWithIconProps } from './input-with-icon';\nexport { Select, Textarea, TextInput } from './input';\nexport type { SelectProps, SelectSingleProps, SelectMultiProps, TextareaProps, TextInputProps } from './input';\nexport { Link } from './link';\nexport type { LinkProps, LinkUnderline } from './link';\nexport { List, ListItem } from './list';\nexport type { ListItemProps, ListProps } from './list';\nexport { SEARCHABLE_AUTO_THRESHOLD, Listbox, MultiListbox } from './listbox';\nexport type {\n ListboxProps,\n ListboxRenderItemState,\n ListboxRenderTriggerState,\n ListboxTriggerProps,\n MultiListboxProps,\n} from './listbox';\nexport { Loader } from './loader';\nexport type { LoaderLayout, LoaderProps, LoaderVariant } from './loader';\nexport { Menu } from './menu';\nexport type {\n MenuProps,\n MenuItem,\n MenuSeparator,\n MenuEntry,\n MenuTriggerProps,\n} from './menu';\nexport { NumberStepper } from './number-stepper';\nexport type { NumberStepperProps } from './number-stepper';\nexport { PageHeader } from './page-header';\nexport type { PageHeaderProps } from './page-header';\nexport { PageShell } from './page-shell';\nexport type { PageShellProps, PageShellVariant } from './page-shell';\nexport { CurrencyInput } from './currency-input';\nexport type { CurrencyInputProps, CurrencyValue } from './currency-input';\nexport { FileUpload } from './file-upload';\nexport type {\n FileStatus,\n FileUploadFileMeta,\n FileUploadProps,\n FileUploadState,\n} from './file-upload';\nexport { FormField } from './form-field';\nexport type { FormFieldLabelPosition, FormFieldLabelTint, FormFieldLabelVariant, FormFieldProps } from './form-field';\nexport { HoverTooltip } from './hover-tooltip';\nexport type { HoverTooltipProps } from './hover-tooltip';\nexport { NumberInput } from './number-input';\nexport type { NumberInputProps } from './number-input';\nexport { PasswordInput } from './password-input';\nexport type { PasswordInputProps } from './password-input';\nexport { PhoneInput } from './phone-input';\nexport type { PhoneInputProps, PhoneValue } from './phone-input';\nexport { TimeInput } from './time-input';\nexport type { TimeInputFormat, TimeInputProps } from './time-input';\nexport { PillSelect } from './pill-select';\nexport type { PillSelectProps } from './pill-select';\nexport { Popover } from './popover';\nexport type { PopoverPlacement, PopoverProps } from './popover';\nexport { ProgressBar } from './progress-bar';\nexport type { ProgressBarProps, ProgressBarVariant } from './progress-bar';\nexport { PropertyField, PropertyGrid } from './property-field';\nexport type { PropertyFieldProps, PropertyGridProps } from './property-field';\nexport { RadioGroup, RadioOption } from './radio-group';\nexport type { RadioGroupDirection, RadioGroupProps, RadioOptionProps } from './radio-group';\nexport { RangeSlider } from './range-slider';\nexport type { RangeSliderProps } from './range-slider';\nexport { ResponsiveGrid } from './responsive-grid';\nexport type { ResponsiveGridProps } from './responsive-grid';\nexport { SearchDropdown } from './search-dropdown';\nexport type { SearchDropdownOption, SearchDropdownProps } from './search-dropdown';\nexport { SideFlexpane } from './side-flexpane';\nexport type { SideFlexpaneProps } from './side-flexpane';\nexport { SectionHeader } from './section-header';\nexport type { SectionHeaderProps } from './section-header';\nexport { SegmentCard } from './segment-card';\nexport type { SegmentCardProps } from './segment-card';\nexport { SegmentRow } from './segment-row';\nexport type { SegmentRowProps } from './segment-row';\nexport { OptionList } from './option-list';\nexport type { OptionListItem, OptionListProps } from './option-list';\nexport { SidebarNavItem } from './sidebar-nav-item';\nexport type { SidebarNavItemProps } from './sidebar-nav-item';\nexport { SidebarNavTrigger } from './sidebar-nav-trigger';\nexport type {\n SidebarNavTriggerCaptionPlacement,\n SidebarNavTriggerProps,\n SidebarNavTriggerVariant,\n} from './sidebar-nav-trigger';\nexport { Slider } from './slider';\nexport type { SliderProps } from './slider';\nexport { Stack } from './stack';\nexport type { StackProps } from './stack';\nexport { StatCard } from './stat-card';\nexport type { StatCardProps, StatCardTrend } from './stat-card';\nexport { Tabs } from './tabs';\nexport type { TabsOption, TabsProps } from './tabs';\nexport { TabsUnderline } from './tabs-underline';\nexport type { TabsUnderlineOption, TabsUnderlineProps } from './tabs-underline';\nexport { Tag } from './tag';\nexport type { TagProps, TagSize, TagType } from './tag';\nexport { Thumbnail } from './thumbnail';\nexport type { ThumbnailFit, ThumbnailProps } from './thumbnail';\nexport { TimelineEntry } from './timeline-entry';\nexport type { TimelineDotState, TimelineEntryProps } from './timeline-entry';\nexport { Toast, Toaster, toast } from './toast';\nexport type {\n ToastPosition,\n ToasterProps,\n ToastProps,\n ToastVariant,\n} from './toast';\nexport { TypeOverviewCard } from './type-overview-card';\nexport type { TypeOverviewCardProps } from './type-overview-card';\nexport { ToggleSwitch } from './toggle-switch';\nexport type { ToggleSwitchProps } from './toggle-switch';\nexport { ViewSwitcher } from './view-switcher';\nexport type { ViewSwitcherOption, ViewSwitcherProps } from './view-switcher';\n\n// Icon registry — useful for shell-style tooling that needs to enumerate icons,\n// surface them in a picker, or look one up by id.\nexport { ICONS, ICON_OPTIONS, getIcon } from '../lib/icons';\nexport type { IconDef } from '../lib/icons';\n"],"mappings":"AAAA,SAAS,YAAY,mCAAmC;AAQxD,SAAS,iBAAiB;AAE1B,SAAS,cAAc;AAEvB,SAAS,gBAAgB;AAEzB,SAAS,aAAa;AAEtB,SAAS,cAAc;AAEvB,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAE3B,SAAS,cAAc,aAAa,eAAe,iBAAiB,sBAAsB;AAE1F,SAAS,mBAAmB;AAE5B,SAAS,kBAAkB;AAE3B,SAAS,sBAAsB;AAE/B,SAAS,gBAAgB;AAEzB,SAAS,YAAY;AAErB,SAAS,gBAAgB;AAEzB,SAAS,YAAY;AAErB,SAAS,eAAe;AAExB,SAAS,WAAW,kBAAkB;AAEtC,SAAS,oBAAoB;AAE7B,SAAS,0BAA0B;AAEnC,SAAS,yBAAyB;AAElC,SAAS,gBAAgB,eAAe;AAExC,SAAS,iBAAiB;AAE1B,SAAS,iBAAiB;AAE1B,SAAS,qBAAqB;AAE9B,SAAS,cAAc;AAEvB,SAAS,kBAAkB;AAE3B,SAAS,eAAe;AAExB,SAAS,oBAAoB;AAE7B,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAE1B,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAEhC,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAE3B,SAAS,YAAY;AAErB,SAAS,kBAAkB;AAE3B,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AAOnC,SAAS,yBAAyB;AAKlC,SAAS,0BAA0B;AAKnC,SAAS,yBAAyB;AAElC,SAAS,wBAAwB;AAMjC,SAAS,yBAAyB;AAKlC,SAAS,yBAAyB;AAElC,SAAS,4BAA4B;AAErC,SAAS,eAAe;AAExB,SAAS,aAAa;AAEtB,SAAS,oBAAoB;AAE7B,SAAS,oBAAoB;AAE7B,SAAS,YAAY,yBAAyB;AAE9C,SAAS,qBAAqB;AAE9B,SAAS,QAAQ,UAAU,iBAAiB;AAE5C,SAAS,YAAY;AAErB,SAAS,MAAM,gBAAgB;AAE/B,SAAS,2BAA2B,SAAS,oBAAoB;AAQjE,SAAS,cAAc;AAEvB,SAAS,YAAY;AAQrB,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAE1B,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAO3B,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;AAE7B,SAAS,mBAAmB;AAE5B,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAE1B,SAAS,kBAAkB;AAE3B,SAAS,eAAe;AAExB,SAAS,mBAAmB;AAE5B,SAAS,eAAe,oBAAoB;AAE5C,SAAS,YAAY,mBAAmB;AAExC,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;AAE/B,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAE7B,SAAS,qBAAqB;AAE9B,SAAS,mBAAmB;AAE5B,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAE3B,SAAS,sBAAsB;AAE/B,SAAS,yBAAyB;AAMlC,SAAS,cAAc;AAEvB,SAAS,aAAa;AAEtB,SAAS,gBAAgB;AAEzB,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAE9B,SAAS,WAAW;AAEpB,SAAS,iBAAiB;AAE1B,SAAS,qBAAqB;AAE9B,SAAS,OAAO,SAAS,aAAa;AAOtC,SAAS,wBAAwB;AAEjC,SAAS,oBAAoB;AAE7B,SAAS,oBAAoB;AAK7B,SAAS,OAAO,cAAc,eAAe;","names":[]}
1
+ {"version":3,"sources":["../../src/ui/index.ts"],"sourcesContent":["export { AppSidebar, DEFAULT_SIDEBAR_ICON_COLORS } from './app-sidebar';\nexport type {\n AppSidebarBrand,\n AppSidebarIconColor,\n AppSidebarNavItem,\n AppSidebarProps,\n AppSidebarSection,\n} from './app-sidebar';\nexport { AppTopBar } from './app-top-bar';\nexport type { AppTopBarProps } from './app-top-bar';\nexport { Avatar } from './avatar';\nexport type { AvatarProps, AvatarSize, AvatarType } from './avatar';\nexport { BackLink } from './back-link';\nexport type { BackLinkProps } from './back-link';\nexport { Badge } from './badge';\nexport type { BadgeMode, BadgeProps, BadgeType } from './badge';\nexport { Banner } from './banner';\nexport type { BannerProps, BannerVariant } from './banner';\nexport { BulkActionBar } from './bulk-action-bar';\nexport type { BulkAction, BulkActionBarProps } from './bulk-action-bar';\nexport { Breadcrumb } from './breadcrumb';\nexport type { BreadcrumbCrumb, BreadcrumbProps, BreadcrumbSeparator } from './breadcrumb';\nexport { ButtonDanger, ButtonGhost, ButtonPrimary, ButtonSecondary, ButtonTertiary } from './button';\nexport type { ButtonProps } from './button';\nexport { ButtonGroup } from './button-group';\nexport type { ButtonGroupOption, ButtonGroupProps } from './button-group';\nexport { ButtonIcon } from './button-icon';\nexport type { ButtonIconProps } from './button-icon';\nexport { ButtonWithIcon } from './button-with-icon';\nexport type { ButtonWithIconProps } from './button-with-icon';\nexport { Calendar } from './calendar';\nexport type { CalendarProps, CalendarValue } from './calendar';\nexport { Card } from './card';\nexport type { CardProps } from './card';\nexport { Checkbox } from './checkbox';\nexport type { CheckboxProps } from './checkbox';\nexport { Chip } from './chip';\nexport type { ChipMode, ChipProps } from './chip';\nexport { Cluster } from './cluster';\nexport type { ClusterProps } from './cluster';\nexport { CodeBlock, CodeEditor } from './code-editor';\nexport type { CodeBlockProps, CodeEditorProps } from './code-editor';\nexport { ComponentRow } from './component-row';\nexport type { ComponentRowProps } from './component-row';\nexport { ConfigComponentRow } from './config-component-row';\nexport type { ConfigComponentRowProps } from './config-component-row';\nexport { ConfigSegmentItem } from './config-segment-item';\nexport type { ConfigSegmentItemProps } from './config-segment-item';\nexport { ContentTooltip, Tooltip } from './tooltip';\nexport type { ContentTooltipProps, TooltipPlacement, TooltipProps } from './tooltip';\nexport { DataTable } from './data-table';\nexport type { DataTableColumn, DataTableDensity, DataTableProps } from './data-table';\nexport { DateInput } from './date-input';\nexport type { DateInputFormat, DateInputMode, DateInputProps } from './date-input';\nexport { DetailSection } from './detail-section';\nexport type { DetailSectionProps } from './detail-section';\nexport { Dialog } from './dialog';\nexport type { DialogProps } from './dialog';\nexport { Disclosure } from './disclosure';\nexport type { DisclosureProps } from './disclosure';\nexport { Divider } from './divider';\nexport type { DividerProps } from './divider';\nexport { EditableCell } from './editable-cell';\nexport type { EditableCellAlign, EditableCellOption, EditableCellProps, EditableCellSize, EditableCellType, EditableCellValue } from './editable-cell';\nexport { EmptyState } from './empty-state';\nexport type { EmptyStateProps } from './empty-state';\nexport { ErrorPage } from './error-page';\nexport type { ErrorPageProps } from './error-page';\nexport { ExplorerListItem } from './explorer-list-item';\nexport type { ExplorerListItemProps } from './explorer-list-item';\nexport { ExplorerSection } from './explorer-section';\nexport type { ExplorerSectionProps } from './explorer-section';\nexport { FieldError } from './field-error';\nexport type { FieldErrorProps } from './field-error';\nexport { FilterTabs } from './filter-tabs';\nexport type { FilterTabsOption, FilterTabsProps } from './filter-tabs';\nexport { Icon } from './icon';\nexport type { IconProps } from './icon';\nexport { IconButton } from './icon-button';\nexport type { IconButtonProps } from './icon-button';\nexport { IconTile } from './icon-tile';\nexport type { IconTileProps } from './icon-tile';\nexport { LifecycleConnector } from './lifecycle-connector';\nexport type {\n LifecycleConnectorArrowhead,\n LifecycleConnectorProps,\n LifecycleConnectorRouting,\n LifecycleConnectorState,\n} from './lifecycle-connector';\nexport { LifecycleDropSlot } from './lifecycle-drop-slot';\nexport type {\n LifecycleDropSlotProps,\n LifecycleDropSlotShape,\n} from './lifecycle-drop-slot';\nexport { LifecycleEdgeLabel } from './lifecycle-edge-label';\nexport type {\n LifecycleEdgeLabelProps,\n LifecycleEdgeLabelVariant,\n} from './lifecycle-edge-label';\nexport { LifecycleGroupBox } from './lifecycle-group-box';\nexport type { LifecycleGroupBoxProps } from './lifecycle-group-box';\nexport { LifecycleMinimap } from './lifecycle-minimap';\nexport type {\n LifecycleMinimapNode,\n LifecycleMinimapProps,\n LifecycleMinimapViewport,\n} from './lifecycle-minimap';\nexport { LifecycleNodeCard } from './lifecycle-node-card';\nexport type {\n LifecycleNodeCardProps,\n LifecycleNodeKind,\n} from './lifecycle-node-card';\nexport { LifecycleTerminal } from './lifecycle-terminal';\nexport type { LifecycleTerminalProps } from './lifecycle-terminal';\nexport { LifecycleZoomControl } from './lifecycle-zoom-control';\nexport type { LifecycleZoomControlProps } from './lifecycle-zoom-control';\nexport { MetaRow } from './meta-row';\nexport type { MetaRowProps } from './meta-row';\nexport { Modal } from './modal';\nexport type { ModalHeaderProps, ModalProps, ModalSize } from './modal';\nexport { InlineAction } from './inline-action';\nexport type { InlineActionProps } from './inline-action';\nexport { InlineFilter } from './inline-filter';\nexport type { InlineFilterProps } from './inline-filter';\nexport { ColorInput, ColorInputPopover } from './color-input';\nexport type { ColorFormat, ColorInputPopoverProps, ColorInputProps } from './color-input';\nexport { InputWithIcon } from './input-with-icon';\nexport type { InputWithIconProps } from './input-with-icon';\nexport { Select, Textarea, TextInput } from './input';\nexport type { SelectProps, SelectSingleProps, SelectMultiProps, TextareaProps, TextInputProps } from './input';\nexport { LanguageSwitcher } from './language-switcher';\nexport type { LanguageSwitcherProps, LanguageSwitcherVariant } from './language-switcher';\nexport { Link } from './link';\nexport type { LinkProps, LinkUnderline } from './link';\nexport { List, ListItem } from './list';\nexport type { ListItemProps, ListProps } from './list';\nexport { SEARCHABLE_AUTO_THRESHOLD, Listbox, MultiListbox } from './listbox';\nexport type {\n ListboxProps,\n ListboxRenderItemState,\n ListboxRenderTriggerState,\n ListboxTriggerProps,\n MultiListboxProps,\n} from './listbox';\nexport { DEFAULT_UXM_LOCALE, UxmLocaleProvider, useUxmLocale } from './locale';\nexport type { UxmLocaleProviderProps } from './locale';\nexport { Loader } from './loader';\nexport type { LoaderLayout, LoaderProps, LoaderVariant } from './loader';\nexport { Menu } from './menu';\nexport type {\n MenuProps,\n MenuItem,\n MenuSeparator,\n MenuEntry,\n MenuTriggerProps,\n} from './menu';\nexport { NumberStepper } from './number-stepper';\nexport type { NumberStepperProps } from './number-stepper';\nexport { PageHeader } from './page-header';\nexport type { PageHeaderProps } from './page-header';\nexport { PageShell } from './page-shell';\nexport type { PageShellProps, PageShellVariant } from './page-shell';\nexport { CurrencyInput } from './currency-input';\nexport type { CurrencyInputProps, CurrencyValue } from './currency-input';\nexport { FileUpload } from './file-upload';\nexport type {\n FileStatus,\n FileUploadFileMeta,\n FileUploadLabels,\n FileUploadProps,\n FileUploadState,\n} from './file-upload';\nexport { FormField } from './form-field';\nexport type { FormFieldLabelPosition, FormFieldLabelTint, FormFieldLabelVariant, FormFieldProps } from './form-field';\nexport { HoverTooltip } from './hover-tooltip';\nexport type { HoverTooltipProps } from './hover-tooltip';\nexport { NumberInput } from './number-input';\nexport type { NumberInputProps } from './number-input';\nexport { PasswordInput } from './password-input';\nexport type { PasswordInputProps } from './password-input';\nexport { PhoneInput } from './phone-input';\nexport type { PhoneInputProps, PhoneValue } from './phone-input';\nexport { TimeInput } from './time-input';\nexport type { TimeInputFormat, TimeInputProps } from './time-input';\nexport { PillSelect } from './pill-select';\nexport type { PillSelectProps } from './pill-select';\nexport { Popover } from './popover';\nexport type { PopoverPlacement, PopoverProps } from './popover';\nexport { ProgressBar } from './progress-bar';\nexport type { ProgressBarProps, ProgressBarVariant } from './progress-bar';\nexport { PropertyField, PropertyGrid } from './property-field';\nexport type { PropertyFieldProps, PropertyGridProps } from './property-field';\nexport { RadioGroup, RadioOption } from './radio-group';\nexport type { RadioGroupDirection, RadioGroupProps, RadioOptionProps } from './radio-group';\nexport { RangeSlider } from './range-slider';\nexport type { RangeSliderProps } from './range-slider';\nexport { ResponsiveGrid } from './responsive-grid';\nexport type { ResponsiveGridProps } from './responsive-grid';\nexport { SearchDropdown } from './search-dropdown';\nexport type { SearchDropdownOption, SearchDropdownProps } from './search-dropdown';\nexport { SideFlexpane } from './side-flexpane';\nexport type { SideFlexpaneProps } from './side-flexpane';\nexport { SectionHeader } from './section-header';\nexport type { SectionHeaderProps } from './section-header';\nexport { SegmentCard } from './segment-card';\nexport type { SegmentCardProps } from './segment-card';\nexport { SegmentRow } from './segment-row';\nexport type { SegmentRowProps } from './segment-row';\nexport { OptionList } from './option-list';\nexport type { OptionListItem, OptionListProps } from './option-list';\nexport { SidebarNavItem } from './sidebar-nav-item';\nexport type { SidebarNavItemProps } from './sidebar-nav-item';\nexport { SidebarNavTrigger } from './sidebar-nav-trigger';\nexport type {\n SidebarNavTriggerCaptionPlacement,\n SidebarNavTriggerProps,\n SidebarNavTriggerVariant,\n} from './sidebar-nav-trigger';\nexport { Slider } from './slider';\nexport type { SliderProps } from './slider';\nexport { Stack } from './stack';\nexport type { StackProps } from './stack';\nexport { StatCard } from './stat-card';\nexport type { StatCardProps, StatCardTrend } from './stat-card';\nexport { Tabs } from './tabs';\nexport type { TabsOption, TabsProps } from './tabs';\nexport { TabsUnderline } from './tabs-underline';\nexport type { TabsUnderlineOption, TabsUnderlineProps } from './tabs-underline';\nexport { Tag } from './tag';\nexport type { TagProps, TagSize, TagType } from './tag';\nexport { Thumbnail } from './thumbnail';\nexport type { ThumbnailFit, ThumbnailProps } from './thumbnail';\nexport { TimelineEntry } from './timeline-entry';\nexport type { TimelineDotState, TimelineEntryProps } from './timeline-entry';\nexport { Toast, Toaster, toast } from './toast';\nexport type {\n ToastPosition,\n ToasterProps,\n ToastProps,\n ToastVariant,\n} from './toast';\nexport { TypeOverviewCard } from './type-overview-card';\nexport type { TypeOverviewCardProps } from './type-overview-card';\nexport { ToggleSwitch } from './toggle-switch';\nexport type { ToggleSwitchProps } from './toggle-switch';\nexport { ViewSwitcher } from './view-switcher';\nexport type { ViewSwitcherOption, ViewSwitcherProps } from './view-switcher';\n\n// Icon registry — useful for shell-style tooling that needs to enumerate icons,\n// surface them in a picker, or look one up by id.\nexport { ICONS, ICON_OPTIONS, getIcon } from '../lib/icons';\nexport type { IconDef } from '../lib/icons';\n"],"mappings":"AAAA,SAAS,YAAY,mCAAmC;AAQxD,SAAS,iBAAiB;AAE1B,SAAS,cAAc;AAEvB,SAAS,gBAAgB;AAEzB,SAAS,aAAa;AAEtB,SAAS,cAAc;AAEvB,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAE3B,SAAS,cAAc,aAAa,eAAe,iBAAiB,sBAAsB;AAE1F,SAAS,mBAAmB;AAE5B,SAAS,kBAAkB;AAE3B,SAAS,sBAAsB;AAE/B,SAAS,gBAAgB;AAEzB,SAAS,YAAY;AAErB,SAAS,gBAAgB;AAEzB,SAAS,YAAY;AAErB,SAAS,eAAe;AAExB,SAAS,WAAW,kBAAkB;AAEtC,SAAS,oBAAoB;AAE7B,SAAS,0BAA0B;AAEnC,SAAS,yBAAyB;AAElC,SAAS,gBAAgB,eAAe;AAExC,SAAS,iBAAiB;AAE1B,SAAS,iBAAiB;AAE1B,SAAS,qBAAqB;AAE9B,SAAS,cAAc;AAEvB,SAAS,kBAAkB;AAE3B,SAAS,eAAe;AAExB,SAAS,oBAAoB;AAE7B,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAE1B,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAEhC,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAE3B,SAAS,YAAY;AAErB,SAAS,kBAAkB;AAE3B,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AAOnC,SAAS,yBAAyB;AAKlC,SAAS,0BAA0B;AAKnC,SAAS,yBAAyB;AAElC,SAAS,wBAAwB;AAMjC,SAAS,yBAAyB;AAKlC,SAAS,yBAAyB;AAElC,SAAS,4BAA4B;AAErC,SAAS,eAAe;AAExB,SAAS,aAAa;AAEtB,SAAS,oBAAoB;AAE7B,SAAS,oBAAoB;AAE7B,SAAS,YAAY,yBAAyB;AAE9C,SAAS,qBAAqB;AAE9B,SAAS,QAAQ,UAAU,iBAAiB;AAE5C,SAAS,wBAAwB;AAEjC,SAAS,YAAY;AAErB,SAAS,MAAM,gBAAgB;AAE/B,SAAS,2BAA2B,SAAS,oBAAoB;AAQjE,SAAS,oBAAoB,mBAAmB,oBAAoB;AAEpE,SAAS,cAAc;AAEvB,SAAS,YAAY;AAQrB,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAE1B,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAQ3B,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;AAE7B,SAAS,mBAAmB;AAE5B,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAE1B,SAAS,kBAAkB;AAE3B,SAAS,eAAe;AAExB,SAAS,mBAAmB;AAE5B,SAAS,eAAe,oBAAoB;AAE5C,SAAS,YAAY,mBAAmB;AAExC,SAAS,mBAAmB;AAE5B,SAAS,sBAAsB;AAE/B,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAE7B,SAAS,qBAAqB;AAE9B,SAAS,mBAAmB;AAE5B,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAE3B,SAAS,sBAAsB;AAE/B,SAAS,yBAAyB;AAMlC,SAAS,cAAc;AAEvB,SAAS,aAAa;AAEtB,SAAS,gBAAgB;AAEzB,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAE9B,SAAS,WAAW;AAEpB,SAAS,iBAAiB;AAE1B,SAAS,qBAAqB;AAE9B,SAAS,OAAO,SAAS,aAAa;AAOtC,SAAS,wBAAwB;AAEjC,SAAS,oBAAoB;AAE7B,SAAS,oBAAoB;AAK7B,SAAS,OAAO,cAAc,eAAe;","names":[]}
@@ -364,8 +364,10 @@ function SelectSingle({
364
364
  {
365
365
  glyph: "chevron-down",
366
366
  size: 14,
367
- className: "uxm-select-dropdown__trigger-chevron",
368
- style: { transform: open ? "rotate(180deg)" : "none" }
367
+ className: (0, import_helpers.cn)(
368
+ "uxm-select-dropdown__trigger-chevron",
369
+ open && "uxm-select-dropdown__trigger-chevron--open"
370
+ )
369
371
  }
370
372
  )
371
373
  ]
@@ -490,8 +492,10 @@ function SelectMulti({
490
492
  {
491
493
  glyph: "chevron-down",
492
494
  size: 14,
493
- className: "uxm-select-dropdown__trigger-chevron",
494
- style: { transform: open ? "rotate(180deg)" : "none" }
495
+ className: (0, import_helpers.cn)(
496
+ "uxm-select-dropdown__trigger-chevron",
497
+ open && "uxm-select-dropdown__trigger-chevron--open"
498
+ )
495
499
  }
496
500
  )
497
501
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ui/input/input.tsx"],"sourcesContent":["import {\n Children,\n isValidElement,\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type HTMLAttributes,\n type InputHTMLAttributes,\n type ReactNode,\n type Ref,\n type SelectHTMLAttributes,\n type TextareaHTMLAttributes,\n} from 'react';\n\nimport { cn, mergeDescribedBy, mergeRefs } from '@/helpers';\n\nimport { ButtonGhost } from '../button';\nimport { FieldError } from '../field-error';\nimport { Icon } from '../icon';\nimport { IconButton } from '../icon-button';\nimport { DEFAULT_MULTI_REQUIRED_MESSAGE, Listbox, MultiListbox } from '../listbox';\n\nimport { clearFieldValue } from './clear-field-value';\n\nexport interface TextInputProps extends InputHTMLAttributes<HTMLInputElement> {\n /**\n * When set to a non-empty string, the field renders in its error state:\n * red border (`.uxm-input-text--error`), `aria-invalid`, and the message\n * rendered below the input. Omit (or pass an empty string) for the normal\n * state. The atom owns the message so it works standalone — search bars,\n * inline edits, custom layouts — without requiring a `FormField` wrapper.\n */\n error?: string;\n /**\n * Show a clear (✕) button at the trailing edge when the input has content.\n * **Defaults to `true`** — a free-text field is always safe to clear (you\n * can type/delete anyway), so the affordance is on by default; pass\n * `clearable={false}` to opt out. The ✕ self-clears (resets the field and\n * fires `onChange` with \"\"), so no `onClear` is needed — any controlled\n * `value` + `onChange` usage gets it for free.\n */\n clearable?: boolean;\n /**\n * Optional override for the clear action. By default the field clears\n * itself (and notifies via `onChange`); pass `onClear` only when you need\n * custom reset logic beyond emptying the value.\n */\n onClear?: () => void;\n /** Accessible name for the clear button. Default `\"Clear\"`. */\n clearLabel?: string;\n /**\n * Handle to the underlying `<input>` element, merged with the atom's own\n * internal ref (the self-clear keeps working). Use this to focus, select,\n * measure, or insert text at the caret from a consumer. A plain React `ref`\n * on `<TextInput>` does NOT reach the element — it's consumed by `{...rest}`\n * and overridden by the managed ref — so pass `inputRef` instead.\n */\n inputRef?: Ref<HTMLInputElement>;\n}\n\n\nexport function TextInput({\n className,\n type = 'text',\n error,\n clearable = true,\n onClear,\n clearLabel = 'Clear',\n value,\n defaultValue,\n onChange,\n disabled,\n inputRef,\n ...rest\n}: TextInputProps) {\n const errorId = useId();\n const innerRef = useRef<HTMLInputElement>(null);\n const isControlled = value !== undefined;\n const [hasTextUncontrolled, setHasTextUncontrolled] = useState(\n () => typeof defaultValue === 'string' && defaultValue.length > 0,\n );\n const hasValue = isControlled ? String(value).length > 0 : hasTextUncontrolled;\n const showClear = !!clearable && hasValue && !disabled;\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setHasTextUncontrolled(e.target.value.length > 0);\n onChange?.(e);\n };\n const handleClear = () => {\n // Self-clear path (clearFieldValue) already refocuses the field; only the\n // onClear-override path needs an explicit focus. Avoids a double focus().\n if (onClear) {\n onClear();\n innerRef.current?.focus();\n } else {\n clearFieldValue(innerRef.current);\n }\n if (!isControlled) setHasTextUncontrolled(false);\n };\n\n // Merge the consumer's `inputRef` with the atom's `innerRef` (the self-clear\n // relies on `innerRef`), so both get the element. Memoised on `inputRef` so\n // the callback identity is stable and React doesn't detach/reattach.\n const setInputRef = useMemo(() => mergeRefs(innerRef, inputRef), [inputRef]);\n\n const input = (\n // `{...rest}` is spread FIRST so the managed props below always win — a raw\n // consumer `ref` can't clobber the merged ref (which the self-clear relies\n // on); the sanctioned handle is `inputRef`, merged in via `setInputRef`.\n // `defaultValue` is only forwarded when uncontrolled, so value+defaultValue\n // are never both set.\n <input\n {...rest}\n ref={setInputRef}\n type={type}\n value={value}\n defaultValue={isControlled ? undefined : defaultValue}\n onChange={handleChange}\n disabled={disabled}\n className={cn(\n 'uxm-input-text',\n error && 'uxm-input-text--error',\n clearable && 'uxm-input-text--clearable',\n className,\n )}\n aria-invalid={error ? true : undefined}\n aria-describedby={mergeDescribedBy(rest['aria-describedby'], error ? errorId : undefined)}\n />\n );\n\n return (\n <>\n {clearable ? (\n // Layout-only wrapper so the clear button can sit absolutely at the\n // trailing edge. The visible chrome stays on `.uxm-input-text` (the\n // input itself), so save-emitted `--uxm-input-text-*` vars still land.\n <div className=\"uxm-input-text__wrap\">\n {input}\n {showClear && (\n <IconButton\n onClick={handleClear}\n className=\"uxm-field-clear uxm-input-text__clear\"\n aria-label={clearLabel}\n >\n <Icon glyph=\"close\" />\n </IconButton>\n )}\n </div>\n ) : (\n input\n )}\n {error && (\n <FieldError id={errorId} className=\"uxm-input-text__error-message\">\n {error}\n </FieldError>\n )}\n </>\n );\n}\n// Static marker so FormField only forwards its `error` prop into children\n// that accept one (avoids React unknown-prop warnings on non-input children).\nTextInput.hasError = true;\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /** See `TextInputProps.error`. */\n error?: string;\n /** See `TextInputProps.clearable`. Defaults to `true`; ✕ sits at the top-right corner. */\n clearable?: boolean;\n /** See `TextInputProps.onClear` — optional override; the field self-clears otherwise. */\n onClear?: () => void;\n /** See `TextInputProps.clearLabel`. Default `\"Clear\"`. */\n clearLabel?: string;\n /**\n * Handle to the underlying `<textarea>` element, merged with the atom's own\n * internal ref (the self-clear keeps working). Use it to focus, select, or\n * insert text at the caret (e.g. drop-a-variable-into-a-formula). A plain\n * React `ref` on `<Textarea>` does NOT reach the element — pass\n * `textareaRef` instead.\n */\n textareaRef?: Ref<HTMLTextAreaElement>;\n}\n\nexport function Textarea({\n className,\n error,\n clearable = true,\n onClear,\n clearLabel = 'Clear',\n value,\n defaultValue,\n onChange,\n disabled,\n textareaRef,\n ...rest\n}: TextareaProps) {\n const errorId = useId();\n const innerRef = useRef<HTMLTextAreaElement>(null);\n const isControlled = value !== undefined;\n const [hasTextUncontrolled, setHasTextUncontrolled] = useState(\n () => typeof defaultValue === 'string' && defaultValue.length > 0,\n );\n const hasValue = isControlled ? String(value).length > 0 : hasTextUncontrolled;\n const showClear = !!clearable && hasValue && !disabled;\n\n const handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) setHasTextUncontrolled(e.target.value.length > 0);\n onChange?.(e);\n };\n const handleClear = () => {\n // See TextInput: clearFieldValue refocuses; only onClear needs explicit focus.\n if (onClear) {\n onClear();\n innerRef.current?.focus();\n } else {\n clearFieldValue(innerRef.current);\n }\n if (!isControlled) setHasTextUncontrolled(false);\n };\n\n // Merge the consumer's `textareaRef` with the atom's `innerRef` — see TextInput.\n const setTextareaRef = useMemo(() => mergeRefs(innerRef, textareaRef), [textareaRef]);\n\n const textarea = (\n // `{...rest}` first so managed props win; the sanctioned element handle is\n // `textareaRef`, merged in via `setTextareaRef`. `defaultValue` only when\n // uncontrolled — never both value+defaultValue.\n <textarea\n {...rest}\n ref={setTextareaRef}\n value={value}\n defaultValue={isControlled ? undefined : defaultValue}\n onChange={handleChange}\n disabled={disabled}\n className={cn(\n 'uxm-textarea',\n error && 'uxm-textarea--error',\n clearable && 'uxm-textarea--clearable',\n className,\n )}\n aria-invalid={error ? true : undefined}\n aria-describedby={mergeDescribedBy(rest['aria-describedby'], error ? errorId : undefined)}\n />\n );\n\n return (\n <>\n {clearable ? (\n <div className=\"uxm-textarea__wrap\">\n {textarea}\n {showClear && (\n <IconButton\n onClick={handleClear}\n className=\"uxm-field-clear uxm-textarea__clear\"\n aria-label={clearLabel}\n >\n <Icon glyph=\"close\" />\n </IconButton>\n )}\n </div>\n ) : (\n textarea\n )}\n {error && (\n <FieldError id={errorId} className=\"uxm-textarea__error-message\">\n {error}\n </FieldError>\n )}\n </>\n );\n}\nTextarea.hasError = true;\n\n/**\n * Native `<select>` attributes the atom still accepts verbatim. The five\n * omitted keys are the ones `mode` re-shapes: `value` / `defaultValue` /\n * `onChange` differ per mode, `required` gains its own message prop, and\n * `multiple` is replaced by `mode=\"multi\"`. Keeping this base means existing\n * `<Select onBlur={…} autoFocus data-testid={…}>` call sites — and any\n * `Omit<SelectProps, …>` in consumer code — keep compiling.\n */\ntype SelectNativeProps = Omit<\n SelectHTMLAttributes<HTMLSelectElement>,\n 'value' | 'defaultValue' | 'onChange' | 'required' | 'multiple'\n>;\n\n/** Props shared by both single- and multi-select modes. */\ninterface SelectCommonProps extends SelectNativeProps {\n /** `<option>` children — parsed into items (and a placeholder from `<option value=\"\" disabled>`). */\n children?: ReactNode;\n /**\n * When set to a non-empty string, the trigger renders in its error\n * state: red border (`.uxm-select-dropdown--error`), `aria-invalid` on\n * the combobox, and the message below the trigger. Omit (or pass an\n * empty string) for the normal state.\n */\n error?: string;\n /**\n * Whether the dropdown panel includes a search box. Forwarded to the\n * internal Listbox: `true`/`false` force it, `\"auto\"` (the default)\n * shows it only once the option count crosses the shared threshold —\n * short lists stay a plain picker, long ones become filterable, with no\n * change to the trigger. (For a search-first combobox with its own\n * trigger chrome — icon glyphs, dial codes — use SearchDropdown.)\n */\n searchable?: boolean | 'auto';\n /**\n * Require a selection. Clearing to empty is still allowed (input-family,\n * live model) but flags the error immediately. An explicit `error` prop\n * takes precedence. Single mode is only clearable with a placeholder\n * option; multi mode uses `clearable`.\n */\n required?: boolean;\n /**\n * Override the default required message. Defaults are per-mode:\n * single → `\"Select an option\"`, multi → `\"Select at least one option\"`\n * (the shared `DEFAULT_MULTI_REQUIRED_MESSAGE`).\n */\n requiredMessage?: string;\n /**\n * Accessible name for the trigger's clear button. Defaults are per-mode:\n * single → `\"Clear selection\"`, multi → `\"Clear all selections\"`.\n */\n clearLabel?: string;\n}\n\nexport interface SelectSingleProps extends SelectCommonProps {\n /** Single-choice (default) — one value, cleared only when a placeholder option exists. */\n mode?: 'single';\n value?: string;\n defaultValue?: string;\n /** Fires a synthesized `ChangeEvent` (native-`<select>`-compatible) so `e.target.value` works. */\n onChange?: (event: ChangeEvent<HTMLSelectElement>) => void;\n}\n\nexport interface SelectMultiProps extends SelectCommonProps {\n /** Multi-choice — an array value with a \"N selected\" trigger, live commit, checkbox rows. */\n mode: 'multi';\n value?: string[];\n defaultValue?: string[];\n /** Fires the full selected-value array on every toggle (live). */\n onChange?: (next: string[]) => void;\n /** Show a clear-all ✕ on the trigger AND a \"Clear all\" in the panel. */\n clearable?: boolean;\n}\n\nexport type SelectProps = SelectSingleProps | SelectMultiProps;\n\ninterface SelectItem {\n value: string;\n label: string;\n disabled: boolean;\n}\n\n/**\n * Parse `<option>` children into Listbox-friendly items. HTML semantics:\n * - `<option value=\"x\">Label</option>` → value \"x\", label \"Label\"\n * - `<option>Label</option>` → value \"Label\", label \"Label\" (label IS the value)\n * - `<option value=\"\" disabled>Placeholder</option>` → reserved as the\n * trigger placeholder text, not added to items (matches the common\n * React Select pattern).\n */\nfunction parseSelectOptions(children: ReactNode): {\n items: SelectItem[];\n placeholder: string | undefined;\n} {\n const items: SelectItem[] = [];\n let placeholder: string | undefined;\n\n Children.forEach(children, (child) => {\n if (\n !isValidElement<{\n value?: string | number;\n children?: ReactNode;\n disabled?: boolean;\n }>(child)\n ) {\n return;\n }\n if (child.type !== 'option') return;\n\n const text = String(child.props.children ?? '');\n const val = child.props.value !== undefined ? String(child.props.value) : text;\n const label = text || val;\n const disabled = child.props.disabled ?? false;\n\n if (val === '' && disabled && placeholder === undefined) {\n placeholder = label;\n return;\n }\n items.push({ value: val, label, disabled });\n });\n\n return { items, placeholder };\n}\n\n/**\n * Select Dropdown — internally a Listbox-backed picker. Its public\n * API stays compatible with the previous native-`<select>` shape:\n * pass `<option>` children, controlled (`value`) or uncontrolled\n * (`defaultValue`) state, and an `onChange(e)` handler that reads\n * `e.target.value`.\n *\n * The visible trigger keeps the same `.uxm-select-dropdown` class\n * (and all its registry-tuned visual chrome — bg, border, radius,\n * padding, font, per-state colors). The OPEN-state UI swaps from the\n * browser's native dropdown to a `<Listbox>` panel so it looks\n * identical across browsers and inherits the shared panel theming\n * from the `listbox` registry entry.\n *\n * `onChange` receives a synthetic `ChangeEvent` shape — most React\n * callers only read `e.target.value`, which is set correctly. For\n * new code, consider using `<Listbox>` directly with its native\n * `(item: T | null) => void` callback.\n */\nfunction SelectSingle({\n className,\n children,\n value,\n defaultValue,\n onChange,\n disabled,\n style,\n name,\n id,\n error,\n searchable = 'auto',\n required = false,\n requiredMessage,\n clearLabel = 'Clear selection',\n 'aria-label': ariaLabel,\n ...rest\n}: SelectSingleProps) {\n const errorId = useId();\n // Required is flagged (not blocked) on clear — input-family live model.\n // An explicit `error` prop wins over the internal required one.\n const [reqError, setReqError] = useState<string | null>(null);\n const shownError = error ?? reqError ?? undefined;\n // Uncontrolled state — only used when `value` is not provided. Matches\n // the native `<select>`'s controlled/uncontrolled duality.\n const [internal, setInternal] = useState<string>(() => String(defaultValue ?? ''));\n const isControlled = value !== undefined;\n const current = String(isControlled ? value : internal);\n\n const { items, placeholder } = useMemo(() => parseSelectOptions(children), [children]);\n const selected = useMemo(() => items.find((o) => o.value === current) ?? null, [items, current]);\n\n const commit = useCallback(\n (nextValue: string) => {\n if (!isControlled) setInternal(nextValue);\n if (required) setReqError(nextValue === '' ? (requiredMessage ?? 'Select an option') : null);\n if (onChange) {\n // Synthesize a ChangeEvent so callers using\n // `onChange={(e) => set(e.target.value)}` keep working. Listbox\n // doesn't fire native events; we fabricate the minimum surface\n // most React callers actually read (`target.value`,\n // `currentTarget.value`, `type`, `name`).\n const target = { value: nextValue, name } as unknown as EventTarget & HTMLSelectElement;\n const event = {\n target,\n currentTarget: target,\n type: 'change',\n bubbles: true,\n cancelable: false,\n defaultPrevented: false,\n preventDefault() {},\n stopPropagation() {},\n isDefaultPrevented: () => false,\n isPropagationStopped: () => false,\n persist() {},\n timeStamp: 0,\n nativeEvent: {} as Event,\n } as unknown as ChangeEvent<HTMLSelectElement>;\n onChange(event);\n }\n },\n [isControlled, onChange, name, required, requiredMessage],\n );\n\n return (\n <>\n <Listbox<SelectItem>\n items={items}\n getKey={(o) => o.value}\n getLabel={(o) => o.label}\n value={selected}\n onChange={(next) => {\n // Listbox's onChange is `(T | null) => void` to support\n // consumer-driven clearing. Select doesn't expose a clear\n // affordance — defensive ignore if null arrives.\n if (next) commit(next.value);\n }}\n isItemDisabled={(o) => o.disabled}\n disabled={disabled}\n searchable={searchable}\n aria-label={ariaLabel}\n // Clear inside the panel (input-family convention: clear on the trigger\n // AND in the dropdown). Shown when a value is picked and the field can be\n // empty (has a placeholder option). Mirrors the trailing ✕ on the trigger.\n footer={selected && placeholder !== undefined && !disabled\n ? ({ close }: { close: () => void }) => (\n <ButtonGhost\n className=\"uxm-listbox__footer-clear-option\"\n onClick={() => { commit(''); close(); }}\n >\n <Icon glyph=\"close\" size={12} />\n Clear\n </ButtonGhost>\n )\n : undefined}\n renderTrigger={({ open, triggerProps }) => (\n // Trigger uses `<div role=\"combobox\">` — gives us a focusable\n // surface that can carry the same `.uxm-select-dropdown` chrome\n // the native `<select>` had. `aria-disabled` drives the disabled\n // visual (CSS targets the attribute since `<div>` doesn't honor\n // `:disabled`).\n // `rest` = the leftover native-select attributes (`onBlur`, `autoFocus`,\n // `form`, `data-*`, …). It goes FIRST so `triggerProps` and the atom's\n // own props always win; the cast only bridges the element generic —\n // the trigger is a `<div>`, not a `<select>`.\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props -- aria-expanded (always) and aria-controls (while open) arrive via the triggerProps spread; the rule can't see through it\n <div role=\"combobox\"\n {...(rest as HTMLAttributes<HTMLDivElement>)}\n {...triggerProps}\n tabIndex={disabled ? -1 : 0}\n // The trigger is what lands in the tab order, so it needs the name.\n // `aria-label` is destructured out of `rest` above and forwarded to\n // the Listbox, which puts it on the popup panel — naming the popup,\n // not the control. A `<div role=\"combobox\">` also can't be named by a\n // wrapping `<label>` (a div isn't labelable), so without this the\n // control announces as an unnamed combobox.\n aria-label={ariaLabel}\n aria-disabled={disabled || undefined}\n aria-required={required || undefined}\n aria-invalid={shownError ? true : undefined}\n aria-describedby={mergeDescribedBy(rest['aria-describedby'], shownError ? errorId : undefined)}\n id={id}\n style={style}\n className={cn(\n 'uxm-select-dropdown',\n open && 'uxm-select-dropdown--open',\n shownError && 'uxm-select-dropdown--error',\n className,\n )}\n >\n <span\n className={cn(\n 'uxm-select-dropdown__trigger-label',\n !selected && 'uxm-select-dropdown__trigger-label--empty',\n )}\n >\n {selected ? selected.label : (placeholder ?? '')}\n </span>\n {/* Clear ✕ shows only when the field CAN be empty — i.e. it has a\n placeholder option (`<option value=\"\" disabled>`), which stands\n for the \"no selection\" state. A select without a placeholder is\n mandatory (a value is always picked, native-<select> style), so\n clearing to empty makes no sense and no ✕ is rendered. */}\n {selected && !disabled && placeholder !== undefined && (\n <IconButton\n aria-label={clearLabel}\n onClick={(e) => {\n // Stop click from bubbling to the trigger div (which\n // would toggle the popover back open).\n e.stopPropagation();\n commit('');\n }}\n onMouseDown={(e) => {\n // Stop mousedown too — the atom's Popover wires its\n // click-outside detection to mousedown.\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n }\n }}\n className=\"uxm-field-clear uxm-select-dropdown__trigger-clear\"\n >\n <Icon glyph=\"close\" />\n </IconButton>\n )}\n <Icon\n glyph=\"chevron-down\"\n size={14}\n className=\"uxm-select-dropdown__trigger-chevron\"\n style={{ transform: open ? 'rotate(180deg)' : 'none' }}\n />\n </div>\n )}\n renderItem={(o) => o.label}\n />\n {shownError && (\n <FieldError id={errorId} className=\"uxm-select-dropdown__error-message\">\n {shownError}\n </FieldError>\n )}\n </>\n );\n}\n\n/**\n * Multi-select mode — same `.uxm-select-dropdown` trigger chrome as single,\n * but backed by MultiListbox: an array value, a \"N selected\" trigger, checkbox\n * rows, live commit, and (input-family) a clear ✕ on the trigger AND in the\n * panel. Required flags an empty selection without blocking.\n */\nfunction SelectMulti({\n className,\n children,\n value,\n defaultValue,\n onChange,\n disabled,\n style,\n id,\n error,\n searchable = 'auto',\n required = false,\n requiredMessage,\n clearable = false,\n clearLabel = 'Clear all selections',\n 'aria-label': ariaLabel,\n ...rest\n}: SelectMultiProps) {\n const errorId = useId();\n const [reqError, setReqError] = useState<string | null>(null);\n const shownError = error ?? reqError ?? undefined;\n const [internal, setInternal] = useState<string[]>(() => defaultValue ?? []);\n const isControlled = value !== undefined;\n const current = isControlled ? value : internal;\n\n const { items, placeholder } = useMemo(() => parseSelectOptions(children), [children]);\n const selectedItems = useMemo(\n () => items.filter((o) => current.includes(o.value)),\n [items, current],\n );\n\n const commit = useCallback(\n (next: string[]) => {\n if (!isControlled) setInternal(next);\n if (required) {\n setReqError(next.length === 0 ? (requiredMessage ?? DEFAULT_MULTI_REQUIRED_MESSAGE) : null);\n }\n onChange?.(next);\n },\n [isControlled, onChange, required, requiredMessage],\n );\n\n return (\n <>\n <MultiListbox<SelectItem>\n items={items}\n getKey={(o) => o.value}\n getLabel={(o) => o.label}\n value={selectedItems}\n onChange={(next) => commit(next.map((o) => o.value))}\n // Relies on MultiListbox's default `commitMode=\"change\"` — the\n // \"N selected\" count has to track each toggle.\n isItemDisabled={(o) => o.disabled}\n disabled={disabled}\n searchable={searchable}\n aria-label={ariaLabel}\n footer={clearable\n ? ({ clear, selected }) =>\n selected.length > 0 ? (\n <ButtonGhost className=\"uxm-listbox__footer-clear-option\" onClick={clear}>\n <Icon glyph=\"close\" size={12} />\n Clear all\n </ButtonGhost>\n ) : null\n : undefined}\n renderTrigger={({ open, triggerProps }) => (\n // `rest` (leftover native-select attributes) goes first so\n // `triggerProps` and the atom's own props win — see SelectSingle.\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props -- aria-expanded/controls arrive via the triggerProps spread\n <div role=\"combobox\"\n {...(rest as HTMLAttributes<HTMLDivElement>)}\n {...triggerProps}\n tabIndex={disabled ? -1 : 0}\n // Names the control itself, not just the popup — see SelectSingle.\n aria-label={ariaLabel}\n aria-disabled={disabled || undefined}\n aria-required={required || undefined}\n aria-invalid={shownError ? true : undefined}\n aria-describedby={mergeDescribedBy(rest['aria-describedby'], shownError ? errorId : undefined)}\n id={id}\n style={style}\n className={cn(\n 'uxm-select-dropdown',\n open && 'uxm-select-dropdown--open',\n shownError && 'uxm-select-dropdown--error',\n className,\n )}\n >\n <span\n className={cn(\n 'uxm-select-dropdown__trigger-label',\n current.length === 0 && 'uxm-select-dropdown__trigger-label--empty',\n )}\n >\n {current.length === 0 ? (placeholder ?? '') : `${current.length} selected`}\n </span>\n {clearable && current.length > 0 && !disabled && (\n <IconButton\n aria-label={clearLabel}\n className=\"uxm-field-clear uxm-select-dropdown__trigger-clear\"\n onClick={(e) => { e.stopPropagation(); commit([]); }}\n onMouseDown={(e) => e.stopPropagation()}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') e.stopPropagation(); }}\n >\n <Icon glyph=\"close\" />\n </IconButton>\n )}\n <Icon\n glyph=\"chevron-down\"\n size={14}\n className=\"uxm-select-dropdown__trigger-chevron\"\n style={{ transform: open ? 'rotate(180deg)' : 'none' }}\n />\n </div>\n )}\n renderItem={(o) => o.label}\n />\n {shownError && (\n <FieldError id={errorId} className=\"uxm-select-dropdown__error-message\">\n {shownError}\n </FieldError>\n )}\n </>\n );\n}\n\n/**\n * Select dropdown atom. `mode=\"single\"` (default) picks one value;\n * `mode=\"multi\"` picks an array. Both share the same trigger chrome and\n * `<option>` children API — only the value/onChange shape differs.\n */\nexport function Select(props: SelectProps) {\n return props.mode === 'multi' ? <SelectMulti {...props} /> : <SelectSingle {...props} />;\n}\nSelect.hasError = true;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkHI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAlHJ,mBAeO;AAEP,qBAAgD;AAEhD,oBAA4B;AAC5B,yBAA2B;AAC3B,kBAAqB;AACrB,yBAA2B;AAC3B,qBAAsE;AAEtE,+BAAgC;AAuCzB,SAAS,UAAU;AAAA,EACxB;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAmB;AACjB,QAAM,cAAU,oBAAM;AACtB,QAAM,eAAW,qBAAyB,IAAI;AAC9C,QAAM,eAAe,UAAU;AAC/B,QAAM,CAAC,qBAAqB,sBAAsB,QAAI;AAAA,IACpD,MAAM,OAAO,iBAAiB,YAAY,aAAa,SAAS;AAAA,EAClE;AACA,QAAM,WAAW,eAAe,OAAO,KAAK,EAAE,SAAS,IAAI;AAC3D,QAAM,YAAY,CAAC,CAAC,aAAa,YAAY,CAAC;AAE9C,QAAM,eAAe,CAAC,MAAqC;AACzD,QAAI,CAAC,aAAc,wBAAuB,EAAE,OAAO,MAAM,SAAS,CAAC;AACnE,eAAW,CAAC;AAAA,EACd;AACA,QAAM,cAAc,MAAM;AAGxB,QAAI,SAAS;AACX,cAAQ;AACR,eAAS,SAAS,MAAM;AAAA,IAC1B,OAAO;AACL,oDAAgB,SAAS,OAAO;AAAA,IAClC;AACA,QAAI,CAAC,aAAc,wBAAuB,KAAK;AAAA,EACjD;AAKA,QAAM,kBAAc,sBAAQ,UAAM,0BAAU,UAAU,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAE3E,QAAM,QAMJ;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,cAAc,eAAe,SAAY;AAAA,MACzC,UAAU;AAAA,MACV;AAAA,MACA,eAAW;AAAA,QACT;AAAA,QACA,SAAS;AAAA,QACT,aAAa;AAAA,QACb;AAAA,MACF;AAAA,MACA,gBAAc,QAAQ,OAAO;AAAA,MAC7B,wBAAkB,iCAAiB,KAAK,kBAAkB,GAAG,QAAQ,UAAU,MAAS;AAAA;AAAA,EAC1F;AAGF,SACE,4EACG;AAAA;AAAA;AAAA;AAAA;AAAA,MAIC,6CAAC,SAAI,WAAU,wBACZ;AAAA;AAAA,QACA,aACC;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,WAAU;AAAA,YACV,cAAY;AAAA,YAEZ,sDAAC,oBAAK,OAAM,SAAQ;AAAA;AAAA,QACtB;AAAA,SAEJ;AAAA,QAEA;AAAA,IAED,SACC,4CAAC,iCAAW,IAAI,SAAS,WAAU,iCAChC,iBACH;AAAA,KAEJ;AAEJ;AAGA,UAAU,WAAW;AAqBd,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAkB;AAChB,QAAM,cAAU,oBAAM;AACtB,QAAM,eAAW,qBAA4B,IAAI;AACjD,QAAM,eAAe,UAAU;AAC/B,QAAM,CAAC,qBAAqB,sBAAsB,QAAI;AAAA,IACpD,MAAM,OAAO,iBAAiB,YAAY,aAAa,SAAS;AAAA,EAClE;AACA,QAAM,WAAW,eAAe,OAAO,KAAK,EAAE,SAAS,IAAI;AAC3D,QAAM,YAAY,CAAC,CAAC,aAAa,YAAY,CAAC;AAE9C,QAAM,eAAe,CAAC,MAAwC;AAC5D,QAAI,CAAC,aAAc,wBAAuB,EAAE,OAAO,MAAM,SAAS,CAAC;AACnE,eAAW,CAAC;AAAA,EACd;AACA,QAAM,cAAc,MAAM;AAExB,QAAI,SAAS;AACX,cAAQ;AACR,eAAS,SAAS,MAAM;AAAA,IAC1B,OAAO;AACL,oDAAgB,SAAS,OAAO;AAAA,IAClC;AACA,QAAI,CAAC,aAAc,wBAAuB,KAAK;AAAA,EACjD;AAGA,QAAM,qBAAiB,sBAAQ,UAAM,0BAAU,UAAU,WAAW,GAAG,CAAC,WAAW,CAAC;AAEpF,QAAM;AAAA;AAAA;AAAA;AAAA,IAIJ;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,KAAK;AAAA,QACL;AAAA,QACA,cAAc,eAAe,SAAY;AAAA,QACzC,UAAU;AAAA,QACV;AAAA,QACA,eAAW;AAAA,UACT;AAAA,UACA,SAAS;AAAA,UACT,aAAa;AAAA,UACb;AAAA,QACF;AAAA,QACA,gBAAc,QAAQ,OAAO;AAAA,QAC7B,wBAAkB,iCAAiB,KAAK,kBAAkB,GAAG,QAAQ,UAAU,MAAS;AAAA;AAAA,IAC1F;AAAA;AAGF,SACE,4EACG;AAAA,gBACC,6CAAC,SAAI,WAAU,sBACZ;AAAA;AAAA,MACA,aACC;AAAA,QAAC;AAAA;AAAA,UACC,SAAS;AAAA,UACT,WAAU;AAAA,UACV,cAAY;AAAA,UAEZ,sDAAC,oBAAK,OAAM,SAAQ;AAAA;AAAA,MACtB;AAAA,OAEJ,IAEA;AAAA,IAED,SACC,4CAAC,iCAAW,IAAI,SAAS,WAAU,+BAChC,iBACH;AAAA,KAEJ;AAEJ;AACA,SAAS,WAAW;AA2FpB,SAAS,mBAAmB,UAG1B;AACA,QAAM,QAAsB,CAAC;AAC7B,MAAI;AAEJ,wBAAS,QAAQ,UAAU,CAAC,UAAU;AACpC,QACE,KAAC,6BAIE,KAAK,GACR;AACA;AAAA,IACF;AACA,QAAI,MAAM,SAAS,SAAU;AAE7B,UAAM,OAAO,OAAO,MAAM,MAAM,YAAY,EAAE;AAC9C,UAAM,MAAM,MAAM,MAAM,UAAU,SAAY,OAAO,MAAM,MAAM,KAAK,IAAI;AAC1E,UAAM,QAAQ,QAAQ;AACtB,UAAM,WAAW,MAAM,MAAM,YAAY;AAEzC,QAAI,QAAQ,MAAM,YAAY,gBAAgB,QAAW;AACvD,oBAAc;AACd;AAAA,IACF;AACA,UAAM,KAAK,EAAE,OAAO,KAAK,OAAO,SAAS,CAAC;AAAA,EAC5C,CAAC;AAED,SAAO,EAAE,OAAO,YAAY;AAC9B;AAqBA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,WAAW;AAAA,EACX;AAAA,EACA,aAAa;AAAA,EACb,cAAc;AAAA,EACd,GAAG;AACL,GAAsB;AACpB,QAAM,cAAU,oBAAM;AAGtB,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAwB,IAAI;AAC5D,QAAM,aAAa,SAAS,YAAY;AAGxC,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAiB,MAAM,OAAO,gBAAgB,EAAE,CAAC;AACjF,QAAM,eAAe,UAAU;AAC/B,QAAM,UAAU,OAAO,eAAe,QAAQ,QAAQ;AAEtD,QAAM,EAAE,OAAO,YAAY,QAAI,sBAAQ,MAAM,mBAAmB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AACrF,QAAM,eAAW,sBAAQ,MAAM,MAAM,KAAK,CAAC,MAAM,EAAE,UAAU,OAAO,KAAK,MAAM,CAAC,OAAO,OAAO,CAAC;AAE/F,QAAM,aAAS;AAAA,IACb,CAAC,cAAsB;AACrB,UAAI,CAAC,aAAc,aAAY,SAAS;AACxC,UAAI,SAAU,aAAY,cAAc,KAAM,mBAAmB,qBAAsB,IAAI;AAC3F,UAAI,UAAU;AAMZ,cAAM,SAAS,EAAE,OAAO,WAAW,KAAK;AACxC,cAAM,QAAQ;AAAA,UACZ;AAAA,UACA,eAAe;AAAA,UACf,MAAM;AAAA,UACN,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,kBAAkB;AAAA,UAClB,iBAAiB;AAAA,UAAC;AAAA,UAClB,kBAAkB;AAAA,UAAC;AAAA,UACnB,oBAAoB,MAAM;AAAA,UAC1B,sBAAsB,MAAM;AAAA,UAC5B,UAAU;AAAA,UAAC;AAAA,UACX,WAAW;AAAA,UACX,aAAa,CAAC;AAAA,QAChB;AACA,iBAAS,KAAK;AAAA,MAChB;AAAA,IACF;AAAA,IACA,CAAC,cAAc,UAAU,MAAM,UAAU,eAAe;AAAA,EAC1D;AAEA,SACE,4EACA;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,QAAQ,CAAC,MAAM,EAAE;AAAA,QACjB,UAAU,CAAC,MAAM,EAAE;AAAA,QACnB,OAAO;AAAA,QACP,UAAU,CAAC,SAAS;AAIlB,cAAI,KAAM,QAAO,KAAK,KAAK;AAAA,QAC7B;AAAA,QACA,gBAAgB,CAAC,MAAM,EAAE;AAAA,QACzB;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QAIZ,QAAQ,YAAY,gBAAgB,UAAa,CAAC,WAC9C,CAAC,EAAE,MAAM,MACP;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,SAAS,MAAM;AAAE,qBAAO,EAAE;AAAG,oBAAM;AAAA,YAAG;AAAA,YAEtC;AAAA,0DAAC,oBAAK,OAAM,SAAQ,MAAM,IAAI;AAAA,cAAE;AAAA;AAAA;AAAA,QAElC,IAEF;AAAA,QACJ,eAAe,CAAC,EAAE,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWnC;AAAA,YAAC;AAAA;AAAA,cAAI,MAAK;AAAA,cACP,GAAI;AAAA,cACJ,GAAG;AAAA,cACJ,UAAU,WAAW,KAAK;AAAA,cAO1B,cAAY;AAAA,cACZ,iBAAe,YAAY;AAAA,cAC3B,iBAAe,YAAY;AAAA,cAC3B,gBAAc,aAAa,OAAO;AAAA,cAClC,wBAAkB,iCAAiB,KAAK,kBAAkB,GAAG,aAAa,UAAU,MAAS;AAAA,cAC7F;AAAA,cACA;AAAA,cACA,eAAW;AAAA,gBACT;AAAA,gBACA,QAAQ;AAAA,gBACR,cAAc;AAAA,gBACd;AAAA,cACF;AAAA,cAEA;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,eAAW;AAAA,sBACT;AAAA,sBACA,CAAC,YAAY;AAAA,oBACf;AAAA,oBAEC,qBAAW,SAAS,QAAS,eAAe;AAAA;AAAA,gBAC/C;AAAA,gBAMC,YAAY,CAAC,YAAY,gBAAgB,UACxC;AAAA,kBAAC;AAAA;AAAA,oBACC,cAAY;AAAA,oBACZ,SAAS,CAAC,MAAM;AAGd,wBAAE,gBAAgB;AAClB,6BAAO,EAAE;AAAA,oBACX;AAAA,oBACA,aAAa,CAAC,MAAM;AAGlB,wBAAE,gBAAgB;AAAA,oBACpB;AAAA,oBACA,WAAW,CAAC,MAAM;AAChB,0BAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,0BAAE,gBAAgB;AAAA,sBACpB;AAAA,oBACF;AAAA,oBACA,WAAU;AAAA,oBAEV,sDAAC,oBAAK,OAAM,SAAQ;AAAA;AAAA,gBACtB;AAAA,gBAEF;AAAA,kBAAC;AAAA;AAAA,oBACC,OAAM;AAAA,oBACN,MAAM;AAAA,oBACN,WAAU;AAAA,oBACV,OAAO,EAAE,WAAW,OAAO,mBAAmB,OAAO;AAAA;AAAA,gBACvD;AAAA;AAAA;AAAA,UACF;AAAA;AAAA,QAEF,YAAY,CAAC,MAAM,EAAE;AAAA;AAAA,IACvB;AAAA,IACC,cACC,4CAAC,iCAAW,IAAI,SAAS,WAAU,sCAChC,sBACH;AAAA,KAEF;AAEJ;AAQA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,WAAW;AAAA,EACX;AAAA,EACA,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,GAAG;AACL,GAAqB;AACnB,QAAM,cAAU,oBAAM;AACtB,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAwB,IAAI;AAC5D,QAAM,aAAa,SAAS,YAAY;AACxC,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAmB,MAAM,gBAAgB,CAAC,CAAC;AAC3E,QAAM,eAAe,UAAU;AAC/B,QAAM,UAAU,eAAe,QAAQ;AAEvC,QAAM,EAAE,OAAO,YAAY,QAAI,sBAAQ,MAAM,mBAAmB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AACrF,QAAM,oBAAgB;AAAA,IACpB,MAAM,MAAM,OAAO,CAAC,MAAM,QAAQ,SAAS,EAAE,KAAK,CAAC;AAAA,IACnD,CAAC,OAAO,OAAO;AAAA,EACjB;AAEA,QAAM,aAAS;AAAA,IACb,CAAC,SAAmB;AAClB,UAAI,CAAC,aAAc,aAAY,IAAI;AACnC,UAAI,UAAU;AACZ,oBAAY,KAAK,WAAW,IAAK,mBAAmB,gDAAkC,IAAI;AAAA,MAC5F;AACA,iBAAW,IAAI;AAAA,IACjB;AAAA,IACA,CAAC,cAAc,UAAU,UAAU,eAAe;AAAA,EACpD;AAEA,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,QAAQ,CAAC,MAAM,EAAE;AAAA,QACjB,UAAU,CAAC,MAAM,EAAE;AAAA,QACnB,OAAO;AAAA,QACP,UAAU,CAAC,SAAS,OAAO,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAAA,QAGnD,gBAAgB,CAAC,MAAM,EAAE;AAAA,QACzB;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QACZ,QAAQ,YACJ,CAAC,EAAE,OAAO,SAAS,MACjB,SAAS,SAAS,IAChB,6CAAC,6BAAY,WAAU,oCAAmC,SAAS,OACjE;AAAA,sDAAC,oBAAK,OAAM,SAAQ,MAAM,IAAI;AAAA,UAAE;AAAA,WAElC,IACE,OACN;AAAA,QACJ,eAAe,CAAC,EAAE,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA,UAInC;AAAA,YAAC;AAAA;AAAA,cAAI,MAAK;AAAA,cACP,GAAI;AAAA,cACJ,GAAG;AAAA,cACJ,UAAU,WAAW,KAAK;AAAA,cAE1B,cAAY;AAAA,cACZ,iBAAe,YAAY;AAAA,cAC3B,iBAAe,YAAY;AAAA,cAC3B,gBAAc,aAAa,OAAO;AAAA,cAClC,wBAAkB,iCAAiB,KAAK,kBAAkB,GAAG,aAAa,UAAU,MAAS;AAAA,cAC7F;AAAA,cACA;AAAA,cACA,eAAW;AAAA,gBACT;AAAA,gBACA,QAAQ;AAAA,gBACR,cAAc;AAAA,gBACd;AAAA,cACF;AAAA,cAEA;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,eAAW;AAAA,sBACT;AAAA,sBACA,QAAQ,WAAW,KAAK;AAAA,oBAC1B;AAAA,oBAEC,kBAAQ,WAAW,IAAK,eAAe,KAAM,GAAG,QAAQ,MAAM;AAAA;AAAA,gBACjE;AAAA,gBACC,aAAa,QAAQ,SAAS,KAAK,CAAC,YACnC;AAAA,kBAAC;AAAA;AAAA,oBACC,cAAY;AAAA,oBACZ,WAAU;AAAA,oBACV,SAAS,CAAC,MAAM;AAAE,wBAAE,gBAAgB;AAAG,6BAAO,CAAC,CAAC;AAAA,oBAAG;AAAA,oBACnD,aAAa,CAAC,MAAM,EAAE,gBAAgB;AAAA,oBACtC,WAAW,CAAC,MAAM;AAAE,0BAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,IAAK,GAAE,gBAAgB;AAAA,oBAAG;AAAA,oBAEjF,sDAAC,oBAAK,OAAM,SAAQ;AAAA;AAAA,gBACtB;AAAA,gBAEF;AAAA,kBAAC;AAAA;AAAA,oBACC,OAAM;AAAA,oBACN,MAAM;AAAA,oBACN,WAAU;AAAA,oBACV,OAAO,EAAE,WAAW,OAAO,mBAAmB,OAAO;AAAA;AAAA,gBACvD;AAAA;AAAA;AAAA,UACF;AAAA;AAAA,QAEF,YAAY,CAAC,MAAM,EAAE;AAAA;AAAA,IACvB;AAAA,IACC,cACC,4CAAC,iCAAW,IAAI,SAAS,WAAU,sCAChC,sBACH;AAAA,KAEJ;AAEJ;AAOO,SAAS,OAAO,OAAoB;AACzC,SAAO,MAAM,SAAS,UAAU,4CAAC,eAAa,GAAG,OAAO,IAAK,4CAAC,gBAAc,GAAG,OAAO;AACxF;AACA,OAAO,WAAW;","names":[]}
1
+ {"version":3,"sources":["../../../src/ui/input/input.tsx"],"sourcesContent":["import {\n Children,\n isValidElement,\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type HTMLAttributes,\n type InputHTMLAttributes,\n type ReactNode,\n type Ref,\n type SelectHTMLAttributes,\n type TextareaHTMLAttributes,\n} from 'react';\n\nimport { cn, mergeDescribedBy, mergeRefs } from '@/helpers';\n\nimport { ButtonGhost } from '../button';\nimport { FieldError } from '../field-error';\nimport { Icon } from '../icon';\nimport { IconButton } from '../icon-button';\nimport { DEFAULT_MULTI_REQUIRED_MESSAGE, Listbox, MultiListbox } from '../listbox';\n\nimport { clearFieldValue } from './clear-field-value';\n\nexport interface TextInputProps extends InputHTMLAttributes<HTMLInputElement> {\n /**\n * When set to a non-empty string, the field renders in its error state:\n * red border (`.uxm-input-text--error`), `aria-invalid`, and the message\n * rendered below the input. Omit (or pass an empty string) for the normal\n * state. The atom owns the message so it works standalone — search bars,\n * inline edits, custom layouts — without requiring a `FormField` wrapper.\n */\n error?: string;\n /**\n * Show a clear (✕) button at the trailing edge when the input has content.\n * **Defaults to `true`** — a free-text field is always safe to clear (you\n * can type/delete anyway), so the affordance is on by default; pass\n * `clearable={false}` to opt out. The ✕ self-clears (resets the field and\n * fires `onChange` with \"\"), so no `onClear` is needed — any controlled\n * `value` + `onChange` usage gets it for free.\n */\n clearable?: boolean;\n /**\n * Optional override for the clear action. By default the field clears\n * itself (and notifies via `onChange`); pass `onClear` only when you need\n * custom reset logic beyond emptying the value.\n */\n onClear?: () => void;\n /** Accessible name for the clear button. Default `\"Clear\"`. */\n clearLabel?: string;\n /**\n * Handle to the underlying `<input>` element, merged with the atom's own\n * internal ref (the self-clear keeps working). Use this to focus, select,\n * measure, or insert text at the caret from a consumer. A plain React `ref`\n * on `<TextInput>` does NOT reach the element — it's consumed by `{...rest}`\n * and overridden by the managed ref — so pass `inputRef` instead.\n */\n inputRef?: Ref<HTMLInputElement>;\n}\n\n\nexport function TextInput({\n className,\n type = 'text',\n error,\n clearable = true,\n onClear,\n clearLabel = 'Clear',\n value,\n defaultValue,\n onChange,\n disabled,\n inputRef,\n ...rest\n}: TextInputProps) {\n const errorId = useId();\n const innerRef = useRef<HTMLInputElement>(null);\n const isControlled = value !== undefined;\n const [hasTextUncontrolled, setHasTextUncontrolled] = useState(\n () => typeof defaultValue === 'string' && defaultValue.length > 0,\n );\n const hasValue = isControlled ? String(value).length > 0 : hasTextUncontrolled;\n const showClear = !!clearable && hasValue && !disabled;\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setHasTextUncontrolled(e.target.value.length > 0);\n onChange?.(e);\n };\n const handleClear = () => {\n // Self-clear path (clearFieldValue) already refocuses the field; only the\n // onClear-override path needs an explicit focus. Avoids a double focus().\n if (onClear) {\n onClear();\n innerRef.current?.focus();\n } else {\n clearFieldValue(innerRef.current);\n }\n if (!isControlled) setHasTextUncontrolled(false);\n };\n\n // Merge the consumer's `inputRef` with the atom's `innerRef` (the self-clear\n // relies on `innerRef`), so both get the element. Memoised on `inputRef` so\n // the callback identity is stable and React doesn't detach/reattach.\n const setInputRef = useMemo(() => mergeRefs(innerRef, inputRef), [inputRef]);\n\n const input = (\n // `{...rest}` is spread FIRST so the managed props below always win — a raw\n // consumer `ref` can't clobber the merged ref (which the self-clear relies\n // on); the sanctioned handle is `inputRef`, merged in via `setInputRef`.\n // `defaultValue` is only forwarded when uncontrolled, so value+defaultValue\n // are never both set.\n <input\n {...rest}\n ref={setInputRef}\n type={type}\n value={value}\n defaultValue={isControlled ? undefined : defaultValue}\n onChange={handleChange}\n disabled={disabled}\n className={cn(\n 'uxm-input-text',\n error && 'uxm-input-text--error',\n clearable && 'uxm-input-text--clearable',\n className,\n )}\n aria-invalid={error ? true : undefined}\n aria-describedby={mergeDescribedBy(rest['aria-describedby'], error ? errorId : undefined)}\n />\n );\n\n return (\n <>\n {clearable ? (\n // Layout-only wrapper so the clear button can sit absolutely at the\n // trailing edge. The visible chrome stays on `.uxm-input-text` (the\n // input itself), so save-emitted `--uxm-input-text-*` vars still land.\n <div className=\"uxm-input-text__wrap\">\n {input}\n {showClear && (\n <IconButton\n onClick={handleClear}\n className=\"uxm-field-clear uxm-input-text__clear\"\n aria-label={clearLabel}\n >\n <Icon glyph=\"close\" />\n </IconButton>\n )}\n </div>\n ) : (\n input\n )}\n {error && (\n <FieldError id={errorId} className=\"uxm-input-text__error-message\">\n {error}\n </FieldError>\n )}\n </>\n );\n}\n// Static marker so FormField only forwards its `error` prop into children\n// that accept one (avoids React unknown-prop warnings on non-input children).\nTextInput.hasError = true;\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /** See `TextInputProps.error`. */\n error?: string;\n /** See `TextInputProps.clearable`. Defaults to `true`; ✕ sits at the top-right corner. */\n clearable?: boolean;\n /** See `TextInputProps.onClear` — optional override; the field self-clears otherwise. */\n onClear?: () => void;\n /** See `TextInputProps.clearLabel`. Default `\"Clear\"`. */\n clearLabel?: string;\n /**\n * Handle to the underlying `<textarea>` element, merged with the atom's own\n * internal ref (the self-clear keeps working). Use it to focus, select, or\n * insert text at the caret (e.g. drop-a-variable-into-a-formula). A plain\n * React `ref` on `<Textarea>` does NOT reach the element — pass\n * `textareaRef` instead.\n */\n textareaRef?: Ref<HTMLTextAreaElement>;\n}\n\nexport function Textarea({\n className,\n error,\n clearable = true,\n onClear,\n clearLabel = 'Clear',\n value,\n defaultValue,\n onChange,\n disabled,\n textareaRef,\n ...rest\n}: TextareaProps) {\n const errorId = useId();\n const innerRef = useRef<HTMLTextAreaElement>(null);\n const isControlled = value !== undefined;\n const [hasTextUncontrolled, setHasTextUncontrolled] = useState(\n () => typeof defaultValue === 'string' && defaultValue.length > 0,\n );\n const hasValue = isControlled ? String(value).length > 0 : hasTextUncontrolled;\n const showClear = !!clearable && hasValue && !disabled;\n\n const handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) setHasTextUncontrolled(e.target.value.length > 0);\n onChange?.(e);\n };\n const handleClear = () => {\n // See TextInput: clearFieldValue refocuses; only onClear needs explicit focus.\n if (onClear) {\n onClear();\n innerRef.current?.focus();\n } else {\n clearFieldValue(innerRef.current);\n }\n if (!isControlled) setHasTextUncontrolled(false);\n };\n\n // Merge the consumer's `textareaRef` with the atom's `innerRef` — see TextInput.\n const setTextareaRef = useMemo(() => mergeRefs(innerRef, textareaRef), [textareaRef]);\n\n const textarea = (\n // `{...rest}` first so managed props win; the sanctioned element handle is\n // `textareaRef`, merged in via `setTextareaRef`. `defaultValue` only when\n // uncontrolled — never both value+defaultValue.\n <textarea\n {...rest}\n ref={setTextareaRef}\n value={value}\n defaultValue={isControlled ? undefined : defaultValue}\n onChange={handleChange}\n disabled={disabled}\n className={cn(\n 'uxm-textarea',\n error && 'uxm-textarea--error',\n clearable && 'uxm-textarea--clearable',\n className,\n )}\n aria-invalid={error ? true : undefined}\n aria-describedby={mergeDescribedBy(rest['aria-describedby'], error ? errorId : undefined)}\n />\n );\n\n return (\n <>\n {clearable ? (\n <div className=\"uxm-textarea__wrap\">\n {textarea}\n {showClear && (\n <IconButton\n onClick={handleClear}\n className=\"uxm-field-clear uxm-textarea__clear\"\n aria-label={clearLabel}\n >\n <Icon glyph=\"close\" />\n </IconButton>\n )}\n </div>\n ) : (\n textarea\n )}\n {error && (\n <FieldError id={errorId} className=\"uxm-textarea__error-message\">\n {error}\n </FieldError>\n )}\n </>\n );\n}\nTextarea.hasError = true;\n\n/**\n * Native `<select>` attributes the atom still accepts verbatim. The five\n * omitted keys are the ones `mode` re-shapes: `value` / `defaultValue` /\n * `onChange` differ per mode, `required` gains its own message prop, and\n * `multiple` is replaced by `mode=\"multi\"`. Keeping this base means existing\n * `<Select onBlur={…} autoFocus data-testid={…}>` call sites — and any\n * `Omit<SelectProps, …>` in consumer code — keep compiling.\n */\ntype SelectNativeProps = Omit<\n SelectHTMLAttributes<HTMLSelectElement>,\n 'value' | 'defaultValue' | 'onChange' | 'required' | 'multiple'\n>;\n\n/** Props shared by both single- and multi-select modes. */\ninterface SelectCommonProps extends SelectNativeProps {\n /** `<option>` children — parsed into items (and a placeholder from `<option value=\"\" disabled>`). */\n children?: ReactNode;\n /**\n * When set to a non-empty string, the trigger renders in its error\n * state: red border (`.uxm-select-dropdown--error`), `aria-invalid` on\n * the combobox, and the message below the trigger. Omit (or pass an\n * empty string) for the normal state.\n */\n error?: string;\n /**\n * Whether the dropdown panel includes a search box. Forwarded to the\n * internal Listbox: `true`/`false` force it, `\"auto\"` (the default)\n * shows it only once the option count crosses the shared threshold —\n * short lists stay a plain picker, long ones become filterable, with no\n * change to the trigger. (For a search-first combobox with its own\n * trigger chrome — icon glyphs, dial codes — use SearchDropdown.)\n */\n searchable?: boolean | 'auto';\n /**\n * Require a selection. Clearing to empty is still allowed (input-family,\n * live model) but flags the error immediately. An explicit `error` prop\n * takes precedence. Single mode is only clearable with a placeholder\n * option; multi mode uses `clearable`.\n */\n required?: boolean;\n /**\n * Override the default required message. Defaults are per-mode:\n * single → `\"Select an option\"`, multi → `\"Select at least one option\"`\n * (the shared `DEFAULT_MULTI_REQUIRED_MESSAGE`).\n */\n requiredMessage?: string;\n /**\n * Accessible name for the trigger's clear button. Defaults are per-mode:\n * single → `\"Clear selection\"`, multi → `\"Clear all selections\"`.\n */\n clearLabel?: string;\n}\n\nexport interface SelectSingleProps extends SelectCommonProps {\n /** Single-choice (default) — one value, cleared only when a placeholder option exists. */\n mode?: 'single';\n value?: string;\n defaultValue?: string;\n /** Fires a synthesized `ChangeEvent` (native-`<select>`-compatible) so `e.target.value` works. */\n onChange?: (event: ChangeEvent<HTMLSelectElement>) => void;\n}\n\nexport interface SelectMultiProps extends SelectCommonProps {\n /** Multi-choice — an array value with a \"N selected\" trigger, live commit, checkbox rows. */\n mode: 'multi';\n value?: string[];\n defaultValue?: string[];\n /** Fires the full selected-value array on every toggle (live). */\n onChange?: (next: string[]) => void;\n /** Show a clear-all ✕ on the trigger AND a \"Clear all\" in the panel. */\n clearable?: boolean;\n}\n\nexport type SelectProps = SelectSingleProps | SelectMultiProps;\n\ninterface SelectItem {\n value: string;\n label: string;\n disabled: boolean;\n}\n\n/**\n * Parse `<option>` children into Listbox-friendly items. HTML semantics:\n * - `<option value=\"x\">Label</option>` → value \"x\", label \"Label\"\n * - `<option>Label</option>` → value \"Label\", label \"Label\" (label IS the value)\n * - `<option value=\"\" disabled>Placeholder</option>` → reserved as the\n * trigger placeholder text, not added to items (matches the common\n * React Select pattern).\n */\nfunction parseSelectOptions(children: ReactNode): {\n items: SelectItem[];\n placeholder: string | undefined;\n} {\n const items: SelectItem[] = [];\n let placeholder: string | undefined;\n\n Children.forEach(children, (child) => {\n if (\n !isValidElement<{\n value?: string | number;\n children?: ReactNode;\n disabled?: boolean;\n }>(child)\n ) {\n return;\n }\n if (child.type !== 'option') return;\n\n const text = String(child.props.children ?? '');\n const val = child.props.value !== undefined ? String(child.props.value) : text;\n const label = text || val;\n const disabled = child.props.disabled ?? false;\n\n if (val === '' && disabled && placeholder === undefined) {\n placeholder = label;\n return;\n }\n items.push({ value: val, label, disabled });\n });\n\n return { items, placeholder };\n}\n\n/**\n * Select Dropdown — internally a Listbox-backed picker. Its public\n * API stays compatible with the previous native-`<select>` shape:\n * pass `<option>` children, controlled (`value`) or uncontrolled\n * (`defaultValue`) state, and an `onChange(e)` handler that reads\n * `e.target.value`.\n *\n * The visible trigger keeps the same `.uxm-select-dropdown` class\n * (and all its registry-tuned visual chrome — bg, border, radius,\n * padding, font, per-state colors). The OPEN-state UI swaps from the\n * browser's native dropdown to a `<Listbox>` panel so it looks\n * identical across browsers and inherits the shared panel theming\n * from the `listbox` registry entry.\n *\n * `onChange` receives a synthetic `ChangeEvent` shape — most React\n * callers only read `e.target.value`, which is set correctly. For\n * new code, consider using `<Listbox>` directly with its native\n * `(item: T | null) => void` callback.\n */\nfunction SelectSingle({\n className,\n children,\n value,\n defaultValue,\n onChange,\n disabled,\n style,\n name,\n id,\n error,\n searchable = 'auto',\n required = false,\n requiredMessage,\n clearLabel = 'Clear selection',\n 'aria-label': ariaLabel,\n ...rest\n}: SelectSingleProps) {\n const errorId = useId();\n // Required is flagged (not blocked) on clear — input-family live model.\n // An explicit `error` prop wins over the internal required one.\n const [reqError, setReqError] = useState<string | null>(null);\n const shownError = error ?? reqError ?? undefined;\n // Uncontrolled state — only used when `value` is not provided. Matches\n // the native `<select>`'s controlled/uncontrolled duality.\n const [internal, setInternal] = useState<string>(() => String(defaultValue ?? ''));\n const isControlled = value !== undefined;\n const current = String(isControlled ? value : internal);\n\n const { items, placeholder } = useMemo(() => parseSelectOptions(children), [children]);\n const selected = useMemo(() => items.find((o) => o.value === current) ?? null, [items, current]);\n\n const commit = useCallback(\n (nextValue: string) => {\n if (!isControlled) setInternal(nextValue);\n if (required) setReqError(nextValue === '' ? (requiredMessage ?? 'Select an option') : null);\n if (onChange) {\n // Synthesize a ChangeEvent so callers using\n // `onChange={(e) => set(e.target.value)}` keep working. Listbox\n // doesn't fire native events; we fabricate the minimum surface\n // most React callers actually read (`target.value`,\n // `currentTarget.value`, `type`, `name`).\n const target = { value: nextValue, name } as unknown as EventTarget & HTMLSelectElement;\n const event = {\n target,\n currentTarget: target,\n type: 'change',\n bubbles: true,\n cancelable: false,\n defaultPrevented: false,\n preventDefault() {},\n stopPropagation() {},\n isDefaultPrevented: () => false,\n isPropagationStopped: () => false,\n persist() {},\n timeStamp: 0,\n nativeEvent: {} as Event,\n } as unknown as ChangeEvent<HTMLSelectElement>;\n onChange(event);\n }\n },\n [isControlled, onChange, name, required, requiredMessage],\n );\n\n return (\n <>\n <Listbox<SelectItem>\n items={items}\n getKey={(o) => o.value}\n getLabel={(o) => o.label}\n value={selected}\n onChange={(next) => {\n // Listbox's onChange is `(T | null) => void` to support\n // consumer-driven clearing. Select doesn't expose a clear\n // affordance — defensive ignore if null arrives.\n if (next) commit(next.value);\n }}\n isItemDisabled={(o) => o.disabled}\n disabled={disabled}\n searchable={searchable}\n aria-label={ariaLabel}\n // Clear inside the panel (input-family convention: clear on the trigger\n // AND in the dropdown). Shown when a value is picked and the field can be\n // empty (has a placeholder option). Mirrors the trailing ✕ on the trigger.\n footer={selected && placeholder !== undefined && !disabled\n ? ({ close }: { close: () => void }) => (\n <ButtonGhost\n className=\"uxm-listbox__footer-clear-option\"\n onClick={() => { commit(''); close(); }}\n >\n <Icon glyph=\"close\" size={12} />\n Clear\n </ButtonGhost>\n )\n : undefined}\n renderTrigger={({ open, triggerProps }) => (\n // Trigger uses `<div role=\"combobox\">` — gives us a focusable\n // surface that can carry the same `.uxm-select-dropdown` chrome\n // the native `<select>` had. `aria-disabled` drives the disabled\n // visual (CSS targets the attribute since `<div>` doesn't honor\n // `:disabled`).\n // `rest` = the leftover native-select attributes (`onBlur`, `autoFocus`,\n // `form`, `data-*`, …). It goes FIRST so `triggerProps` and the atom's\n // own props always win; the cast only bridges the element generic —\n // the trigger is a `<div>`, not a `<select>`.\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props -- aria-expanded (always) and aria-controls (while open) arrive via the triggerProps spread; the rule can't see through it\n <div role=\"combobox\"\n {...(rest as HTMLAttributes<HTMLDivElement>)}\n {...triggerProps}\n tabIndex={disabled ? -1 : 0}\n // The trigger is what lands in the tab order, so it needs the name.\n // `aria-label` is destructured out of `rest` above and forwarded to\n // the Listbox, which puts it on the popup panel — naming the popup,\n // not the control. A `<div role=\"combobox\">` also can't be named by a\n // wrapping `<label>` (a div isn't labelable), so without this the\n // control announces as an unnamed combobox.\n aria-label={ariaLabel}\n aria-disabled={disabled || undefined}\n aria-required={required || undefined}\n aria-invalid={shownError ? true : undefined}\n aria-describedby={mergeDescribedBy(rest['aria-describedby'], shownError ? errorId : undefined)}\n id={id}\n style={style}\n className={cn(\n 'uxm-select-dropdown',\n open && 'uxm-select-dropdown--open',\n shownError && 'uxm-select-dropdown--error',\n className,\n )}\n >\n <span\n className={cn(\n 'uxm-select-dropdown__trigger-label',\n !selected && 'uxm-select-dropdown__trigger-label--empty',\n )}\n >\n {selected ? selected.label : (placeholder ?? '')}\n </span>\n {/* Clear ✕ shows only when the field CAN be empty — i.e. it has a\n placeholder option (`<option value=\"\" disabled>`), which stands\n for the \"no selection\" state. A select without a placeholder is\n mandatory (a value is always picked, native-<select> style), so\n clearing to empty makes no sense and no ✕ is rendered. */}\n {selected && !disabled && placeholder !== undefined && (\n <IconButton\n aria-label={clearLabel}\n onClick={(e) => {\n // Stop click from bubbling to the trigger div (which\n // would toggle the popover back open).\n e.stopPropagation();\n commit('');\n }}\n onMouseDown={(e) => {\n // Stop mousedown too — the atom's Popover wires its\n // click-outside detection to mousedown.\n e.stopPropagation();\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n }\n }}\n className=\"uxm-field-clear uxm-select-dropdown__trigger-clear\"\n >\n <Icon glyph=\"close\" />\n </IconButton>\n )}\n <Icon\n glyph=\"chevron-down\"\n size={14}\n className={cn(\n 'uxm-select-dropdown__trigger-chevron',\n open && 'uxm-select-dropdown__trigger-chevron--open',\n )}\n />\n </div>\n )}\n renderItem={(o) => o.label}\n />\n {shownError && (\n <FieldError id={errorId} className=\"uxm-select-dropdown__error-message\">\n {shownError}\n </FieldError>\n )}\n </>\n );\n}\n\n/**\n * Multi-select mode — same `.uxm-select-dropdown` trigger chrome as single,\n * but backed by MultiListbox: an array value, a \"N selected\" trigger, checkbox\n * rows, live commit, and (input-family) a clear ✕ on the trigger AND in the\n * panel. Required flags an empty selection without blocking.\n */\nfunction SelectMulti({\n className,\n children,\n value,\n defaultValue,\n onChange,\n disabled,\n style,\n id,\n error,\n searchable = 'auto',\n required = false,\n requiredMessage,\n clearable = false,\n clearLabel = 'Clear all selections',\n 'aria-label': ariaLabel,\n ...rest\n}: SelectMultiProps) {\n const errorId = useId();\n const [reqError, setReqError] = useState<string | null>(null);\n const shownError = error ?? reqError ?? undefined;\n const [internal, setInternal] = useState<string[]>(() => defaultValue ?? []);\n const isControlled = value !== undefined;\n const current = isControlled ? value : internal;\n\n const { items, placeholder } = useMemo(() => parseSelectOptions(children), [children]);\n const selectedItems = useMemo(\n () => items.filter((o) => current.includes(o.value)),\n [items, current],\n );\n\n const commit = useCallback(\n (next: string[]) => {\n if (!isControlled) setInternal(next);\n if (required) {\n setReqError(next.length === 0 ? (requiredMessage ?? DEFAULT_MULTI_REQUIRED_MESSAGE) : null);\n }\n onChange?.(next);\n },\n [isControlled, onChange, required, requiredMessage],\n );\n\n return (\n <>\n <MultiListbox<SelectItem>\n items={items}\n getKey={(o) => o.value}\n getLabel={(o) => o.label}\n value={selectedItems}\n onChange={(next) => commit(next.map((o) => o.value))}\n // Relies on MultiListbox's default `commitMode=\"change\"` — the\n // \"N selected\" count has to track each toggle.\n isItemDisabled={(o) => o.disabled}\n disabled={disabled}\n searchable={searchable}\n aria-label={ariaLabel}\n footer={clearable\n ? ({ clear, selected }) =>\n selected.length > 0 ? (\n <ButtonGhost className=\"uxm-listbox__footer-clear-option\" onClick={clear}>\n <Icon glyph=\"close\" size={12} />\n Clear all\n </ButtonGhost>\n ) : null\n : undefined}\n renderTrigger={({ open, triggerProps }) => (\n // `rest` (leftover native-select attributes) goes first so\n // `triggerProps` and the atom's own props win — see SelectSingle.\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props -- aria-expanded/controls arrive via the triggerProps spread\n <div role=\"combobox\"\n {...(rest as HTMLAttributes<HTMLDivElement>)}\n {...triggerProps}\n tabIndex={disabled ? -1 : 0}\n // Names the control itself, not just the popup — see SelectSingle.\n aria-label={ariaLabel}\n aria-disabled={disabled || undefined}\n aria-required={required || undefined}\n aria-invalid={shownError ? true : undefined}\n aria-describedby={mergeDescribedBy(rest['aria-describedby'], shownError ? errorId : undefined)}\n id={id}\n style={style}\n className={cn(\n 'uxm-select-dropdown',\n open && 'uxm-select-dropdown--open',\n shownError && 'uxm-select-dropdown--error',\n className,\n )}\n >\n <span\n className={cn(\n 'uxm-select-dropdown__trigger-label',\n current.length === 0 && 'uxm-select-dropdown__trigger-label--empty',\n )}\n >\n {current.length === 0 ? (placeholder ?? '') : `${current.length} selected`}\n </span>\n {clearable && current.length > 0 && !disabled && (\n <IconButton\n aria-label={clearLabel}\n className=\"uxm-field-clear uxm-select-dropdown__trigger-clear\"\n onClick={(e) => { e.stopPropagation(); commit([]); }}\n onMouseDown={(e) => e.stopPropagation()}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') e.stopPropagation(); }}\n >\n <Icon glyph=\"close\" />\n </IconButton>\n )}\n <Icon\n glyph=\"chevron-down\"\n size={14}\n className={cn(\n 'uxm-select-dropdown__trigger-chevron',\n open && 'uxm-select-dropdown__trigger-chevron--open',\n )}\n />\n </div>\n )}\n renderItem={(o) => o.label}\n />\n {shownError && (\n <FieldError id={errorId} className=\"uxm-select-dropdown__error-message\">\n {shownError}\n </FieldError>\n )}\n </>\n );\n}\n\n/**\n * Select dropdown atom. `mode=\"single\"` (default) picks one value;\n * `mode=\"multi\"` picks an array. Both share the same trigger chrome and\n * `<option>` children API — only the value/onChange shape differs.\n */\nexport function Select(props: SelectProps) {\n return props.mode === 'multi' ? <SelectMulti {...props} /> : <SelectSingle {...props} />;\n}\nSelect.hasError = true;\n"],"mappings":"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","names":[]}
@@ -171,6 +171,10 @@
171
171
  transition: transform 0.15s;
172
172
  }
173
173
 
174
+ .uxm-select-dropdown__trigger-chevron--open {
175
+ transform: rotate(180deg);
176
+ }
177
+
174
178
  /* Clear ✕ inside the trigger — rendered when a value is selected AND the
175
179
  field can be empty (it has a placeholder option). Mandatory selects (no
176
180
  placeholder, a value is always picked) don't render it. Shared chrome
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/ui/input/input.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/ui/input/input.tsx"],"names":[],"mappings":"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"}
@@ -347,8 +347,10 @@ function SelectSingle({
347
347
  {
348
348
  glyph: "chevron-down",
349
349
  size: 14,
350
- className: "uxm-select-dropdown__trigger-chevron",
351
- style: { transform: open ? "rotate(180deg)" : "none" }
350
+ className: cn(
351
+ "uxm-select-dropdown__trigger-chevron",
352
+ open && "uxm-select-dropdown__trigger-chevron--open"
353
+ )
352
354
  }
353
355
  )
354
356
  ]
@@ -473,8 +475,10 @@ function SelectMulti({
473
475
  {
474
476
  glyph: "chevron-down",
475
477
  size: 14,
476
- className: "uxm-select-dropdown__trigger-chevron",
477
- style: { transform: open ? "rotate(180deg)" : "none" }
478
+ className: cn(
479
+ "uxm-select-dropdown__trigger-chevron",
480
+ open && "uxm-select-dropdown__trigger-chevron--open"
481
+ )
478
482
  }
479
483
  )
480
484
  ]