@optimum-intelligence/opti-ui 0.0.0-stage → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +244 -2
  3. package/dist/components/accordion/Accordion.d.ts +17 -0
  4. package/dist/components/accordion/Accordion.js +204 -0
  5. package/dist/components/accordion/Accordion.js.map +1 -0
  6. package/dist/components/alert/Alert.d.ts +18 -0
  7. package/dist/components/alert/Alert.js +164 -0
  8. package/dist/components/alert/Alert.js.map +1 -0
  9. package/dist/components/app-shell/AppShell.d.ts +97 -0
  10. package/dist/components/app-shell/AppShell.js +689 -0
  11. package/dist/components/app-shell/AppShell.js.map +1 -0
  12. package/dist/components/avatar/Avatar.d.ts +21 -0
  13. package/dist/components/avatar/Avatar.js +190 -0
  14. package/dist/components/avatar/Avatar.js.map +1 -0
  15. package/dist/components/badge/Badge.d.ts +16 -0
  16. package/dist/components/badge/Badge.js +94 -0
  17. package/dist/components/badge/Badge.js.map +1 -0
  18. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
  19. package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
  20. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  21. package/dist/components/button/Button.d.ts +23 -0
  22. package/dist/components/button/Button.js +159 -0
  23. package/dist/components/button/Button.js.map +1 -0
  24. package/dist/components/calendar/Calendar.d.ts +59 -0
  25. package/dist/components/calendar/Calendar.js +709 -0
  26. package/dist/components/calendar/Calendar.js.map +1 -0
  27. package/dist/components/calendar/date-utils.d.ts +32 -0
  28. package/dist/components/calendar/date-utils.js +112 -0
  29. package/dist/components/calendar/date-utils.js.map +1 -0
  30. package/dist/components/card/Card.d.ts +42 -0
  31. package/dist/components/card/Card.js +82 -0
  32. package/dist/components/card/Card.js.map +1 -0
  33. package/dist/components/choice/Choice.d.ts +32 -0
  34. package/dist/components/choice/Choice.js +371 -0
  35. package/dist/components/choice/Choice.js.map +1 -0
  36. package/dist/components/collapsible/Collapsible.d.ts +15 -0
  37. package/dist/components/collapsible/Collapsible.js +155 -0
  38. package/dist/components/collapsible/Collapsible.js.map +1 -0
  39. package/dist/components/combobox/Combobox.d.ts +68 -0
  40. package/dist/components/combobox/Combobox.js +752 -0
  41. package/dist/components/combobox/Combobox.js.map +1 -0
  42. package/dist/components/command-palette/CommandPalette.d.ts +52 -0
  43. package/dist/components/command-palette/CommandPalette.js +328 -0
  44. package/dist/components/command-palette/CommandPalette.js.map +1 -0
  45. package/dist/components/data-table/DataTable.d.ts +73 -0
  46. package/dist/components/data-table/DataTable.js +478 -0
  47. package/dist/components/data-table/DataTable.js.map +1 -0
  48. package/dist/components/data-table/DataTableContent.d.ts +35 -0
  49. package/dist/components/data-table/DataTableContent.js +550 -0
  50. package/dist/components/data-table/DataTableContent.js.map +1 -0
  51. package/dist/components/data-table/DataTableFilters.d.ts +15 -0
  52. package/dist/components/data-table/DataTableFilters.js +284 -0
  53. package/dist/components/data-table/DataTableFilters.js.map +1 -0
  54. package/dist/components/data-table/DataTableRow.d.ts +33 -0
  55. package/dist/components/data-table/DataTableRow.js +552 -0
  56. package/dist/components/data-table/DataTableRow.js.map +1 -0
  57. package/dist/components/data-table/context.d.ts +5 -0
  58. package/dist/components/data-table/context.js +14 -0
  59. package/dist/components/data-table/context.js.map +1 -0
  60. package/dist/components/data-table/layout.d.ts +60 -0
  61. package/dist/components/data-table/layout.js +272 -0
  62. package/dist/components/data-table/layout.js.map +1 -0
  63. package/dist/components/data-table/types.d.ts +319 -0
  64. package/dist/components/data-table/useDataTable.d.ts +9 -0
  65. package/dist/components/data-table/useDataTable.js +666 -0
  66. package/dist/components/data-table/useDataTable.js.map +1 -0
  67. package/dist/components/date-picker/DatePicker.d.ts +50 -0
  68. package/dist/components/date-picker/DatePicker.js +485 -0
  69. package/dist/components/date-picker/DatePicker.js.map +1 -0
  70. package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
  71. package/dist/components/date-picker/DateRangePicker.js +339 -0
  72. package/dist/components/date-picker/DateRangePicker.js.map +1 -0
  73. package/dist/components/date-picker/PickerField.d.ts +38 -0
  74. package/dist/components/date-picker/PickerField.js +238 -0
  75. package/dist/components/date-picker/PickerField.js.map +1 -0
  76. package/dist/components/dialog/Dialog.d.ts +70 -0
  77. package/dist/components/dialog/Dialog.js +354 -0
  78. package/dist/components/dialog/Dialog.js.map +1 -0
  79. package/dist/components/drawer/Drawer.d.ts +39 -0
  80. package/dist/components/drawer/Drawer.js +225 -0
  81. package/dist/components/drawer/Drawer.js.map +1 -0
  82. package/dist/components/empty-state/EmptyState.d.ts +12 -0
  83. package/dist/components/empty-state/EmptyState.js +116 -0
  84. package/dist/components/empty-state/EmptyState.js.map +1 -0
  85. package/dist/components/field/Field.d.ts +36 -0
  86. package/dist/components/field/Field.js +337 -0
  87. package/dist/components/field/Field.js.map +1 -0
  88. package/dist/components/file-upload/FileUpload.d.ts +91 -0
  89. package/dist/components/file-upload/FileUpload.js +714 -0
  90. package/dist/components/file-upload/FileUpload.js.map +1 -0
  91. package/dist/components/input/Input.d.ts +49 -0
  92. package/dist/components/input/Input.js +538 -0
  93. package/dist/components/input/Input.js.map +1 -0
  94. package/dist/components/link/Link.d.ts +17 -0
  95. package/dist/components/link/Link.js +91 -0
  96. package/dist/components/link/Link.js.map +1 -0
  97. package/dist/components/menu/Menu.d.ts +79 -0
  98. package/dist/components/menu/Menu.js +615 -0
  99. package/dist/components/menu/Menu.js.map +1 -0
  100. package/dist/components/number-field/NumberField.d.ts +16 -0
  101. package/dist/components/number-field/NumberField.js +188 -0
  102. package/dist/components/number-field/NumberField.js.map +1 -0
  103. package/dist/components/pagination/Pagination.d.ts +34 -0
  104. package/dist/components/pagination/Pagination.js +244 -0
  105. package/dist/components/pagination/Pagination.js.map +1 -0
  106. package/dist/components/popover/Popover.d.ts +22 -0
  107. package/dist/components/popover/Popover.js +186 -0
  108. package/dist/components/popover/Popover.js.map +1 -0
  109. package/dist/components/preview-card/PreviewCard.d.ts +20 -0
  110. package/dist/components/preview-card/PreviewCard.js +114 -0
  111. package/dist/components/preview-card/PreviewCard.js.map +1 -0
  112. package/dist/components/progress/Progress.d.ts +20 -0
  113. package/dist/components/progress/Progress.js +169 -0
  114. package/dist/components/progress/Progress.js.map +1 -0
  115. package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
  116. package/dist/components/scroll-area/ScrollArea.js +112 -0
  117. package/dist/components/scroll-area/ScrollArea.js.map +1 -0
  118. package/dist/components/search-input/SearchInput.d.ts +14 -0
  119. package/dist/components/search-input/SearchInput.js +114 -0
  120. package/dist/components/search-input/SearchInput.js.map +1 -0
  121. package/dist/components/select/Select.d.ts +66 -0
  122. package/dist/components/select/Select.js +601 -0
  123. package/dist/components/select/Select.js.map +1 -0
  124. package/dist/components/separator/Separator.d.ts +4 -0
  125. package/dist/components/separator/Separator.js +46 -0
  126. package/dist/components/separator/Separator.js.map +1 -0
  127. package/dist/components/skeleton/Skeleton.d.ts +16 -0
  128. package/dist/components/skeleton/Skeleton.js +135 -0
  129. package/dist/components/skeleton/Skeleton.js.map +1 -0
  130. package/dist/components/slider/Slider.d.ts +11 -0
  131. package/dist/components/slider/Slider.js +107 -0
  132. package/dist/components/slider/Slider.js.map +1 -0
  133. package/dist/components/spinner/Spinner.d.ts +9 -0
  134. package/dist/components/spinner/Spinner.js +78 -0
  135. package/dist/components/spinner/Spinner.js.map +1 -0
  136. package/dist/components/stack/Stack.d.ts +23 -0
  137. package/dist/components/stack/Stack.js +79 -0
  138. package/dist/components/stack/Stack.js.map +1 -0
  139. package/dist/components/stat-card/StatCard.d.ts +22 -0
  140. package/dist/components/stat-card/StatCard.js +153 -0
  141. package/dist/components/stat-card/StatCard.js.map +1 -0
  142. package/dist/components/stepper/Stepper.d.ts +30 -0
  143. package/dist/components/stepper/Stepper.js +131 -0
  144. package/dist/components/stepper/Stepper.js.map +1 -0
  145. package/dist/components/table/Table.d.ts +53 -0
  146. package/dist/components/table/Table.js +221 -0
  147. package/dist/components/table/Table.js.map +1 -0
  148. package/dist/components/tabs/Tabs.d.ts +19 -0
  149. package/dist/components/tabs/Tabs.js +183 -0
  150. package/dist/components/tabs/Tabs.js.map +1 -0
  151. package/dist/components/tag/Tag.d.ts +22 -0
  152. package/dist/components/tag/Tag.js +121 -0
  153. package/dist/components/tag/Tag.js.map +1 -0
  154. package/dist/components/toast/Toast.d.ts +34 -0
  155. package/dist/components/toast/Toast.js +187 -0
  156. package/dist/components/toast/Toast.js.map +1 -0
  157. package/dist/components/toggle/Toggle.d.ts +31 -0
  158. package/dist/components/toggle/Toggle.js +197 -0
  159. package/dist/components/toggle/Toggle.js.map +1 -0
  160. package/dist/components/toolbar/Toolbar.d.ts +21 -0
  161. package/dist/components/toolbar/Toolbar.js +239 -0
  162. package/dist/components/toolbar/Toolbar.js.map +1 -0
  163. package/dist/components/tooltip/Tooltip.d.ts +33 -0
  164. package/dist/components/tooltip/Tooltip.js +182 -0
  165. package/dist/components/tooltip/Tooltip.js.map +1 -0
  166. package/dist/components/typography/Typography.d.ts +32 -0
  167. package/dist/components/typography/Typography.js +183 -0
  168. package/dist/components/typography/Typography.js.map +1 -0
  169. package/dist/fonts.css +3 -0
  170. package/dist/icons/index.d.ts +133 -0
  171. package/dist/icons/index.js +182 -0
  172. package/dist/icons/index.js.map +1 -0
  173. package/dist/index.d.ts +55 -0
  174. package/dist/index.js +58 -0
  175. package/dist/opti-ui.css +5692 -0
  176. package/dist/theme/ThemeProvider.d.ts +22 -0
  177. package/dist/theme/ThemeProvider.js +115 -0
  178. package/dist/theme/ThemeProvider.js.map +1 -0
  179. package/dist/theme/index.d.ts +2 -0
  180. package/dist/utils/cx.d.ts +10 -0
  181. package/dist/utils/cx.js +18 -0
  182. package/dist/utils/cx.js.map +1 -0
  183. package/dist/utils/index.d.ts +2 -0
  184. package/dist/utils/portal.d.ts +8 -0
  185. package/dist/utils/portal.js +16 -0
  186. package/dist/utils/portal.js.map +1 -0
  187. package/dist/utils/primitive.d.ts +13 -0
  188. package/dist/utils/primitive.js +61 -0
  189. package/dist/utils/primitive.js.map +1 -0
  190. package/dist/utils/search.d.ts +4 -0
  191. package/dist/utils/search.js +15 -0
  192. package/dist/utils/search.js.map +1 -0
  193. package/package.json +71 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppShell.js","names":["React","Dialog","BaseDialog","useRender","mergeProps","cx","createPrimitive","usePortalContainer","ChevronLeftIcon","MenuIcon","XIcon","NavbarVariant","NavbarState","variant","collapsed","peek","NavbarProps","ComponentProps","collapsible","defaultCollapsed","onCollapsedChange","expandOnHover","collapseLabel","expandLabel","NavbarCollapsedContext","createContext","NavbarDrawerContext","Navbar","t0","$","_c","t1","t2","collapsedProp","t3","t4","t5","t6","render","children","ref","props","undefined","inDrawer","useContext","canCollapse","internal","setInternal","useState","label","pointerInside","setPointerInside","hovered","setHovered","t7","t8","timer","setTimeout","clearTimeout","useEffect","t9","Symbol","for","endHover","t10","toggle","t11","event","pointerType","onPointerEnter","t12","t13","state","t14","t15","t16","t17","className","onPointerLeave","t18","defaultTagName","element","t19","t20","NavbarHeader","NavbarFooter","NavbarSection","NavbarSectionLabel","NavbarBrandProps","Omit","logo","ReactNode","title","subtitle","NavbarBrand","NavbarItemState","active","NavbarItemProps","icon","badge","NavbarItem","AppShellProps","HTMLAttributes","HTMLDivElement","Ref","navbar","mobileBrand","mobileActions","menuLabel","mainProps","HTMLElement","AppShell","open","setOpen","container","target","closest","closeOnNavigate","PageHeaderProps","breadcrumbs","eyebrow","description","actions","PageHeader","GridProps","columns","gap","Grid","_c","_Fragment","BaseDialog"],"sources":["../../../src/components/app-shell/AppShell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { usePortalContainer } from '../../utils/portal';\nimport { ChevronLeftIcon, MenuIcon, XIcon } from '../../icons';\n\n// ─── Navbar ─────────────────────────────────────────────────────────────────\n\nexport type NavbarVariant = 'inverse' | 'surface';\n\nexport type NavbarState = { variant: NavbarVariant; collapsed: boolean; peek: boolean };\n\nexport interface NavbarProps extends useRender.ComponentProps<'nav', NavbarState> {\n /** `inverse` (brand-colored, default) or `surface` (light panel). */\n variant?: NavbarVariant;\n /** Shows a toggle in the top right that shrinks the navbar to an icon rail. Defaults to `true`. */\n collapsible?: boolean;\n /** Controlled collapsed state. */\n collapsed?: boolean;\n defaultCollapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n /** Temporarily opens a collapsed navbar while the mouse is over it. Defaults to `true`. */\n expandOnHover?: boolean;\n /** Accessible names for the icon-only toggle. */\n collapseLabel?: string;\n expandLabel?: string;\n}\n\nconst NavbarCollapsedContext = React.createContext(false);\n// True inside the AppShell drawer, where the navbar always shows in full.\nconst NavbarDrawerContext = React.createContext(false);\n\nexport function Navbar({\n variant = 'inverse',\n collapsible = true,\n collapsed: collapsedProp,\n defaultCollapsed = false,\n onCollapsedChange,\n expandOnHover = true,\n collapseLabel = 'Collapse',\n expandLabel = 'Expand',\n render,\n children,\n ref,\n ...props\n}: NavbarProps) {\n const inDrawer = React.useContext(NavbarDrawerContext);\n const canCollapse = collapsible && !inDrawer;\n const [internal, setInternal] = React.useState(defaultCollapsed);\n const collapsed = canCollapse && (collapsedProp ?? internal);\n const label = collapsed ? expandLabel : collapseLabel;\n\n // Hover peek: shown in full once the mouse has rested over a collapsed navbar.\n const [pointerInside, setPointerInside] = React.useState(false);\n const [hovered, setHovered] = React.useState(false);\n React.useEffect(() => {\n if (!pointerInside) return;\n const timer = setTimeout(() => setHovered(true), 120);\n return () => clearTimeout(timer);\n }, [pointerInside]);\n const peek = collapsed && expandOnHover && hovered;\n\n const endHover = () => {\n setPointerInside(false);\n setHovered(false);\n };\n\n const toggle = () => {\n // Collapsing with the mouse still inside must not peek straight back open.\n endHover();\n if (collapsedProp === undefined) setInternal(!collapsed);\n onCollapsedChange?.(!collapsed);\n };\n\n const onPointerEnter = (event: React.PointerEvent) => {\n if (event.pointerType === 'mouse') setPointerInside(true);\n };\n\n const state: NavbarState = { variant, collapsed: collapsed && !peek, peek };\n const element = useRender({\n defaultTagName: 'nav',\n render,\n ref,\n state,\n props: mergeProps<'nav'>(\n {\n className: 'oui-navbar',\n onPointerEnter: collapsed && expandOnHover ? onPointerEnter : undefined,\n onPointerLeave: collapsed && expandOnHover ? endHover : undefined,\n children: (\n <>\n {canCollapse && (\n <button\n type=\"button\"\n className=\"oui-navbar__toggle\"\n aria-label={label}\n aria-expanded={!collapsed}\n title={label}\n onClick={toggle}\n >\n <ChevronLeftIcon />\n </button>\n )}\n {children}\n </>\n ),\n },\n props,\n ),\n });\n return <NavbarCollapsedContext value={collapsed && !peek}>{element}</NavbarCollapsedContext>;\n}\n\nexport const NavbarHeader = createPrimitive('div', 'oui-navbar__header', 'NavbarHeader');\nexport const NavbarFooter = createPrimitive('div', 'oui-navbar__footer', 'NavbarFooter');\nexport const NavbarSection = createPrimitive('div', 'oui-navbar__section', 'NavbarSection');\nexport const NavbarSectionLabel = createPrimitive('div', 'oui-navbar__section-label', 'NavbarSectionLabel');\n\nexport interface NavbarBrandProps extends Omit<useRender.ComponentProps<'div'>, 'title'> {\n logo?: React.ReactNode;\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n}\n\nexport function NavbarBrand({ logo, title, subtitle, render, ref, ...props }: NavbarBrandProps) {\n return useRender({\n defaultTagName: 'div',\n render,\n ref,\n props: mergeProps<'div'>(\n {\n className: 'oui-navbar__brand',\n children: (\n <>\n {logo && <span className=\"oui-navbar__logo\">{logo}</span>}\n <span className=\"oui-navbar__brand-text\">\n <span className=\"oui-navbar__brand-title\">{title}</span>\n {subtitle && <span className=\"oui-navbar__brand-subtitle\">{subtitle}</span>}\n </span>\n </>\n ),\n },\n props,\n ),\n });\n}\n\nexport type NavbarItemState = { active: boolean };\n\nexport interface NavbarItemProps extends useRender.ComponentProps<'a', NavbarItemState> {\n icon?: React.ReactNode;\n /** Marks the current page (sets aria-current). */\n active?: boolean;\n /** Trailing content such as a count badge. */\n badge?: React.ReactNode;\n}\n\n/**\n * Navigation link. Renders an `<a>`; use `render={<Link to=\"…\" />}` for a\n * router link or `render={<button />}` for an action.\n */\nexport function NavbarItem({ icon, active = false, badge, render, children, ref, ...props }: NavbarItemProps) {\n const collapsed = React.useContext(NavbarCollapsedContext);\n const state: NavbarItemState = { active };\n return useRender({\n defaultTagName: 'a',\n render,\n ref,\n state,\n props: mergeProps<'a'>(\n {\n className: 'oui-navbar__item',\n 'aria-current': active ? 'page' : undefined,\n title: collapsed && typeof children === 'string' ? children : undefined,\n children: (\n <>\n {icon && <span className=\"oui-navbar__item-icon\">{icon}</span>}\n <span className=\"oui-navbar__item-label\">{children}</span>\n {badge != null && <span className=\"oui-navbar__item-badge\">{badge}</span>}\n </>\n ),\n },\n props,\n ),\n });\n}\n\n// ─── App shell ───────────────────────────────────────────────────────────────\n\nexport interface AppShellProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement>;\n /** Navbar content (usually a `<Navbar>`). Rendered in a drawer on small screens. */\n navbar: React.ReactNode;\n /** Brand shown in the mobile top bar. */\n mobileBrand?: React.ReactNode;\n /** Extra content on the right of the mobile top bar. */\n mobileActions?: React.ReactNode;\n menuLabel?: string;\n /** Props for the scrolling `<main>` element. */\n mainProps?: React.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Full-height layout with a fixed navbar and an internally scrolling main\n * area. Below 900px the navbar moves into a slide-in drawer.\n * Customize width with `--oui-navbar-width` and `--oui-navbar-collapsed-width`.\n */\nexport function AppShell({\n navbar,\n mobileBrand,\n mobileActions,\n menuLabel = 'Open navigation',\n mainProps,\n className,\n children,\n ref,\n ...props\n}: AppShellProps) {\n const [open, setOpen] = React.useState(false);\n const container = usePortalContainer();\n\n const closeOnNavigate = (event: React.MouseEvent) => {\n if ((event.target as HTMLElement).closest('a, .oui-navbar__item')) setOpen(false);\n };\n\n return (\n <div ref={ref} className={cx('oui-app-shell', className)} {...props}>\n <div className=\"oui-app-shell__navbar\">{navbar}</div>\n\n <BaseDialog.Root open={open} onOpenChange={setOpen}>\n <header className=\"oui-app-shell__mobile-bar\">\n <BaseDialog.Trigger className=\"oui-app-shell__menu-button\" aria-label={menuLabel}>\n <MenuIcon />\n </BaseDialog.Trigger>\n <div className=\"oui-app-shell__mobile-brand\">{mobileBrand}</div>\n {mobileActions}\n </header>\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className=\"oui-dialog__backdrop\" />\n <BaseDialog.Popup className=\"oui-app-shell__drawer\" aria-label=\"Navigation\" onClick={closeOnNavigate}>\n <BaseDialog.Close className=\"oui-app-shell__drawer-close\" aria-label=\"Close navigation\">\n <XIcon />\n </BaseDialog.Close>\n <NavbarDrawerContext value={true}>{navbar}</NavbarDrawerContext>\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n\n <main {...mainProps} className={cx('oui-app-shell__main', mainProps?.className)}>\n {children}\n </main>\n </div>\n );\n}\n\n// ─── Page layout helpers ─────────────────────────────────────────────────────\n\nexport interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n ref?: React.Ref<HTMLElement>;\n /** Trail shown above the title, usually `<Breadcrumbs>`. */\n breadcrumbs?: React.ReactNode;\n eyebrow?: React.ReactNode;\n title: React.ReactNode;\n description?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\nexport function PageHeader({\n breadcrumbs,\n eyebrow,\n title,\n description,\n actions,\n className,\n ref,\n ...props\n}: PageHeaderProps) {\n return (\n <header ref={ref} className={cx('oui-page-header', className)} {...props}>\n <div className=\"oui-page-header__text\">\n {breadcrumbs && <div className=\"oui-page-header__breadcrumbs\">{breadcrumbs}</div>}\n {eyebrow && <span className=\"oui-eyebrow\">{eyebrow}</span>}\n <h1 className=\"oui-page-header__title\">{title}</h1>\n {description && <p className=\"oui-page-header__description\">{description}</p>}\n </div>\n {actions && <div className=\"oui-page-header__actions\">{actions}</div>}\n </header>\n );\n}\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement>;\n /** Columns on wide screens; collapses to 2 below 1200px (for 4+) and 1 below 900px. */\n columns?: 1 | 2 | 3 | 4 | 5 | 6;\n gap?: 'sm' | 'md' | 'lg';\n}\n\n/** Responsive dashboard grid. */\nexport function Grid({ columns = 3, gap = 'md', className, ref, ...props }: GridProps) {\n return <div ref={ref} className={cx('oui-grid', className)} data-columns={columns} data-gap={gap} {...props} />;\n}\n"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { Avatar as BaseAvatar } from '@base-ui/react/avatar';
3
+ export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ export interface AvatarProps extends BaseAvatar.Root.Props {
5
+ src?: string;
6
+ alt?: string;
7
+ /** Name used for initials when the image is missing. */
8
+ name?: string;
9
+ /** Explicit fallback content (overrides initials). */
10
+ fallback?: React.ReactNode;
11
+ size?: AvatarSize;
12
+ shape?: 'circle' | 'rounded';
13
+ }
14
+ export declare function Avatar({ src, alt, name, fallback, size, shape, className, ref, ...props }: AvatarProps): React.JSX.Element;
15
+ export interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {
16
+ ref?: React.Ref<HTMLDivElement>;
17
+ /** Show at most this many avatars, then a "+N" counter. */
18
+ max?: number;
19
+ size?: AvatarSize;
20
+ }
21
+ export declare function AvatarGroup({ max, size, className, children, ref, ...props }: AvatarGroupProps): React.JSX.Element;
@@ -0,0 +1,190 @@
1
+ "use client";
2
+ import { cx, withClass } from "../../utils/cx.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { Avatar } from "@base-ui/react/avatar";
7
+ //#region src/components/avatar/Avatar.tsx
8
+ function initials(name) {
9
+ if (!name) return "";
10
+ const parts = name.trim().split(/\s+/);
11
+ return ((parts[0]?.[0] ?? "") + (parts.length > 1 ? parts[parts.length - 1]?.[0] ?? "" : "")).toUpperCase();
12
+ }
13
+ function Avatar$1(t0) {
14
+ const $ = c(30);
15
+ let alt;
16
+ let className;
17
+ let fallback;
18
+ let name;
19
+ let props;
20
+ let ref;
21
+ let src;
22
+ let t1;
23
+ let t2;
24
+ if ($[0] !== t0) {
25
+ ({src, alt, name, fallback, size: t1, shape: t2, className, ref, ...props} = t0);
26
+ $[0] = t0;
27
+ $[1] = alt;
28
+ $[2] = className;
29
+ $[3] = fallback;
30
+ $[4] = name;
31
+ $[5] = props;
32
+ $[6] = ref;
33
+ $[7] = src;
34
+ $[8] = t1;
35
+ $[9] = t2;
36
+ } else {
37
+ alt = $[1];
38
+ className = $[2];
39
+ fallback = $[3];
40
+ name = $[4];
41
+ props = $[5];
42
+ ref = $[6];
43
+ src = $[7];
44
+ t1 = $[8];
45
+ t2 = $[9];
46
+ }
47
+ const size = t1 === void 0 ? "md" : t1;
48
+ const shape = t2 === void 0 ? "circle" : t2;
49
+ let t3;
50
+ if ($[10] !== className) {
51
+ t3 = withClass("oui-avatar", className);
52
+ $[10] = className;
53
+ $[11] = t3;
54
+ } else t3 = $[11];
55
+ let t4;
56
+ if ($[12] !== alt || $[13] !== name || $[14] !== src) {
57
+ t4 = src && /* @__PURE__ */ jsx(Avatar.Image, {
58
+ className: "oui-avatar__image",
59
+ src,
60
+ alt: alt ?? name ?? ""
61
+ });
62
+ $[12] = alt;
63
+ $[13] = name;
64
+ $[14] = src;
65
+ $[15] = t4;
66
+ } else t4 = $[15];
67
+ let t5;
68
+ if ($[16] !== fallback || $[17] !== name) {
69
+ t5 = fallback ?? initials(name);
70
+ $[16] = fallback;
71
+ $[17] = name;
72
+ $[18] = t5;
73
+ } else t5 = $[18];
74
+ let t6;
75
+ if ($[19] !== name || $[20] !== t5) {
76
+ t6 = /* @__PURE__ */ jsx(Avatar.Fallback, {
77
+ className: "oui-avatar__fallback",
78
+ "aria-label": name,
79
+ children: t5
80
+ });
81
+ $[19] = name;
82
+ $[20] = t5;
83
+ $[21] = t6;
84
+ } else t6 = $[21];
85
+ let t7;
86
+ if ($[22] !== props || $[23] !== ref || $[24] !== shape || $[25] !== size || $[26] !== t3 || $[27] !== t4 || $[28] !== t6) {
87
+ t7 = /* @__PURE__ */ jsxs(Avatar.Root, {
88
+ ref,
89
+ className: t3,
90
+ "data-size": size,
91
+ "data-shape": shape,
92
+ ...props,
93
+ children: [t4, t6]
94
+ });
95
+ $[22] = props;
96
+ $[23] = ref;
97
+ $[24] = shape;
98
+ $[25] = size;
99
+ $[26] = t3;
100
+ $[27] = t4;
101
+ $[28] = t6;
102
+ $[29] = t7;
103
+ } else t7 = $[29];
104
+ return t7;
105
+ }
106
+ function AvatarGroup(t0) {
107
+ const $ = c(23);
108
+ let children;
109
+ let className;
110
+ let max;
111
+ let props;
112
+ let ref;
113
+ let t1;
114
+ if ($[0] !== t0) {
115
+ ({max, size: t1, className, children, ref, ...props} = t0);
116
+ $[0] = t0;
117
+ $[1] = children;
118
+ $[2] = className;
119
+ $[3] = max;
120
+ $[4] = props;
121
+ $[5] = ref;
122
+ $[6] = t1;
123
+ } else {
124
+ children = $[1];
125
+ className = $[2];
126
+ max = $[3];
127
+ props = $[4];
128
+ ref = $[5];
129
+ t1 = $[6];
130
+ }
131
+ const size = t1 === void 0 ? "md" : t1;
132
+ let items;
133
+ let t2;
134
+ if ($[7] !== children || $[8] !== max) {
135
+ items = React.Children.toArray(children);
136
+ t2 = max != null ? items.slice(0, max) : items;
137
+ $[7] = children;
138
+ $[8] = max;
139
+ $[9] = items;
140
+ $[10] = t2;
141
+ } else {
142
+ items = $[9];
143
+ t2 = $[10];
144
+ }
145
+ const visible = t2;
146
+ const hidden = items.length - visible.length;
147
+ let t3;
148
+ if ($[11] !== className) {
149
+ t3 = cx("oui-avatar-group", className);
150
+ $[11] = className;
151
+ $[12] = t3;
152
+ } else t3 = $[12];
153
+ let t4;
154
+ if ($[13] !== hidden || $[14] !== size) {
155
+ t4 = hidden > 0 && /* @__PURE__ */ jsx("span", {
156
+ className: "oui-avatar oui-avatar--count",
157
+ "data-size": size,
158
+ "data-shape": "circle",
159
+ children: /* @__PURE__ */ jsxs("span", {
160
+ className: "oui-avatar__fallback",
161
+ children: ["+", hidden]
162
+ })
163
+ });
164
+ $[13] = hidden;
165
+ $[14] = size;
166
+ $[15] = t4;
167
+ } else t4 = $[15];
168
+ let t5;
169
+ if ($[16] !== props || $[17] !== ref || $[18] !== size || $[19] !== t3 || $[20] !== t4 || $[21] !== visible) {
170
+ t5 = /* @__PURE__ */ jsxs("div", {
171
+ ref,
172
+ className: t3,
173
+ "data-size": size,
174
+ ...props,
175
+ children: [visible, t4]
176
+ });
177
+ $[16] = props;
178
+ $[17] = ref;
179
+ $[18] = size;
180
+ $[19] = t3;
181
+ $[20] = t4;
182
+ $[21] = visible;
183
+ $[22] = t5;
184
+ } else t5 = $[22];
185
+ return t5;
186
+ }
187
+ //#endregion
188
+ export { Avatar$1 as Avatar, AvatarGroup };
189
+
190
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","names":["React","Avatar","BaseAvatar","cx","withClass","AvatarSize","AvatarProps","Root","Props","src","alt","name","fallback","ReactNode","size","shape","initials","parts","trim","split","length","toUpperCase","t0","$","_c","className","props","ref","t1","t2","undefined","t3","t4","t5","t6","t7","AvatarGroupProps","HTMLAttributes","HTMLDivElement","Ref","max","AvatarGroup","children","items","Children","toArray","slice","visible","hidden","Avatar","_c","BaseAvatar"],"sources":["../../../src/components/avatar/Avatar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Avatar as BaseAvatar } from '@base-ui/react/avatar';\nimport { cx, withClass } from '../../utils/cx';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface AvatarProps extends BaseAvatar.Root.Props {\n src?: string;\n alt?: string;\n /** Name used for initials when the image is missing. */\n name?: string;\n /** Explicit fallback content (overrides initials). */\n fallback?: React.ReactNode;\n size?: AvatarSize;\n shape?: 'circle' | 'rounded';\n}\n\nfunction initials(name?: string) {\n if (!name) return '';\n const parts = name.trim().split(/\\s+/);\n return ((parts[0]?.[0] ?? '') + (parts.length > 1 ? (parts[parts.length - 1]?.[0] ?? '') : '')).toUpperCase();\n}\n\nexport function Avatar({\n src,\n alt,\n name,\n fallback,\n size = 'md',\n shape = 'circle',\n className,\n ref,\n ...props\n}: AvatarProps) {\n return (\n <BaseAvatar.Root\n ref={ref}\n className={withClass('oui-avatar', className)}\n data-size={size}\n data-shape={shape}\n {...props}\n >\n {src && <BaseAvatar.Image className=\"oui-avatar__image\" src={src} alt={alt ?? name ?? ''} />}\n <BaseAvatar.Fallback className=\"oui-avatar__fallback\" aria-label={name}>\n {fallback ?? initials(name)}\n </BaseAvatar.Fallback>\n </BaseAvatar.Root>\n );\n}\n\nexport interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement>;\n /** Show at most this many avatars, then a \"+N\" counter. */\n max?: number;\n size?: AvatarSize;\n}\n\nexport function AvatarGroup({ max, size = 'md', className, children, ref, ...props }: AvatarGroupProps) {\n const items = React.Children.toArray(children);\n const visible = max != null ? items.slice(0, max) : items;\n const hidden = items.length - visible.length;\n return (\n <div ref={ref} className={cx('oui-avatar-group', className)} data-size={size} {...props}>\n {visible}\n {hidden > 0 && (\n <span className=\"oui-avatar oui-avatar--count\" data-size={size} data-shape=\"circle\">\n <span className=\"oui-avatar__fallback\">+{hidden}</span>\n </span>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { useRender } from '@base-ui/react/use-render';
2
+ export type BadgeTone = 'neutral' | 'accent' | 'info' | 'success' | 'warning' | 'danger';
3
+ export type BadgeVariant = 'soft' | 'solid' | 'outline';
4
+ export type BadgeState = {
5
+ tone: BadgeTone;
6
+ variant: BadgeVariant;
7
+ size: 'sm' | 'md';
8
+ };
9
+ export interface BadgeProps extends useRender.ComponentProps<'span', BadgeState> {
10
+ tone?: BadgeTone;
11
+ variant?: BadgeVariant;
12
+ size?: 'sm' | 'md';
13
+ /** Leading status dot. */
14
+ dot?: boolean;
15
+ }
16
+ export declare function Badge({ tone, variant, size, dot, render, children, ref, ...props }: BadgeProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ import { c } from "react/compiler-runtime";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ import { useRender } from "@base-ui/react/use-render";
5
+ import { mergeProps } from "@base-ui/react/merge-props";
6
+ //#region src/components/badge/Badge.tsx
7
+ function Badge(t0) {
8
+ const $ = c(22);
9
+ let t1;
10
+ let t2;
11
+ let t3;
12
+ let t4;
13
+ let t5;
14
+ let t6;
15
+ if ($[0] !== t0) {
16
+ const { tone: t7, variant: t8, size: t9, dot, render, children, ref, ...props } = t0;
17
+ const tone = t7 === void 0 ? "neutral" : t7;
18
+ const variant = t8 === void 0 ? "soft" : t8;
19
+ const size = t9 === void 0 ? "md" : t9;
20
+ let t10;
21
+ if ($[7] !== size || $[8] !== tone || $[9] !== variant) {
22
+ t10 = {
23
+ tone,
24
+ variant,
25
+ size
26
+ };
27
+ $[7] = size;
28
+ $[8] = tone;
29
+ $[9] = variant;
30
+ $[10] = t10;
31
+ } else t10 = $[10];
32
+ const state = t10;
33
+ t6 = useRender;
34
+ t1 = "span";
35
+ t2 = render;
36
+ t3 = ref;
37
+ t4 = state;
38
+ let t11;
39
+ if ($[11] !== dot) {
40
+ t11 = dot && /* @__PURE__ */ jsx("span", {
41
+ className: "oui-badge__dot",
42
+ "aria-hidden": true
43
+ });
44
+ $[11] = dot;
45
+ $[12] = t11;
46
+ } else t11 = $[12];
47
+ let t12;
48
+ if ($[13] !== children || $[14] !== t11) {
49
+ t12 = /* @__PURE__ */ jsxs(Fragment, { children: [t11, children] });
50
+ $[13] = children;
51
+ $[14] = t11;
52
+ $[15] = t12;
53
+ } else t12 = $[15];
54
+ t5 = mergeProps({
55
+ className: "oui-badge",
56
+ children: t12
57
+ }, props);
58
+ $[0] = t0;
59
+ $[1] = t1;
60
+ $[2] = t2;
61
+ $[3] = t3;
62
+ $[4] = t4;
63
+ $[5] = t5;
64
+ $[6] = t6;
65
+ } else {
66
+ t1 = $[1];
67
+ t2 = $[2];
68
+ t3 = $[3];
69
+ t4 = $[4];
70
+ t5 = $[5];
71
+ t6 = $[6];
72
+ }
73
+ let t7;
74
+ if ($[16] !== t1 || $[17] !== t2 || $[18] !== t3 || $[19] !== t4 || $[20] !== t5) {
75
+ t7 = {
76
+ defaultTagName: t1,
77
+ render: t2,
78
+ ref: t3,
79
+ state: t4,
80
+ props: t5
81
+ };
82
+ $[16] = t1;
83
+ $[17] = t2;
84
+ $[18] = t3;
85
+ $[19] = t4;
86
+ $[20] = t5;
87
+ $[21] = t7;
88
+ } else t7 = $[21];
89
+ return t6(t7);
90
+ }
91
+ //#endregion
92
+ export { Badge };
93
+
94
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","names":["useRender","mergeProps","BadgeTone","BadgeVariant","BadgeState","tone","variant","size","BadgeProps","ComponentProps","dot","Badge","t0","$","_c","t1","t2","t3","t4","t5","t6","t7","t8","t9","render","children","ref","props","undefined","t10","state","t11","t12","className","defaultTagName","_c","_Fragment"],"sources":["../../../src/components/badge/Badge.tsx"],"sourcesContent":["import { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\n\nexport type BadgeTone = 'neutral' | 'accent' | 'info' | 'success' | 'warning' | 'danger';\nexport type BadgeVariant = 'soft' | 'solid' | 'outline';\n\nexport type BadgeState = {\n tone: BadgeTone;\n variant: BadgeVariant;\n size: 'sm' | 'md';\n};\n\nexport interface BadgeProps extends useRender.ComponentProps<'span', BadgeState> {\n tone?: BadgeTone;\n variant?: BadgeVariant;\n size?: 'sm' | 'md';\n /** Leading status dot. */\n dot?: boolean;\n}\n\nexport function Badge({\n tone = 'neutral',\n variant = 'soft',\n size = 'md',\n dot,\n render,\n children,\n ref,\n ...props\n}: BadgeProps) {\n const state: BadgeState = { tone, variant, size };\n return useRender({\n defaultTagName: 'span',\n render,\n ref,\n state,\n props: mergeProps<'span'>(\n {\n className: 'oui-badge',\n children: (\n <>\n {dot && <span className=\"oui-badge__dot\" aria-hidden />}\n {children}\n </>\n ),\n },\n props,\n ),\n });\n}\n"],"mappings":";;;;;;AAoBA,SAAOW,MAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAP,EAAA,OAAAD,IAAA;EAAe,MAAA,EAAAP,MAAAgB,IAAAf,SAAAgB,IAAAf,MAAAgB,IAAAb,KAAAc,QAAAC,UAAAC,KAAA,GAAAC,UAAAf;EACpB,MAAAP,OAAAgB,OAAAO,KAAAA,IAAA,YAAAP;EACA,MAAAf,UAAAgB,OAAAM,KAAAA,IAAA,SAAAN;EACA,MAAAf,OAAAgB,OAAAK,KAAAA,IAAA,OAAAL;EAAW,IAAAM;EAAA,IAAAhB,EAAA,OAAAN,QAAAM,EAAA,OAAAR,QAAAQ,EAAA,OAAAP,SAAA;GAOeuB,MAAA;IAAAxB;IAAAC;IAAAC;GAAsB;GAACM,EAAA,KAAAN;GAAAM,EAAA,KAAAR;GAAAQ,EAAA,KAAAP;GAAAO,EAAA,MAAAgB;EAAA,OAAAA,MAAAhB,EAAA;EAAjD,MAAAiB,QAA0BD;EACnB7B,KAAAA;EACWe,KAAA;EAChBS,KAAAA;EACAE,KAAAA;EACAI,KAAAA;EAAK,IAAAC;EAAA,IAAAlB,EAAA,QAAAH,KAAA;GAMIqB,MAAArB,OAAO,oBAAA,QAAA;IAAgB,WAAA;IAAiB,eAAA;GAAW,CAAA;GAAGG,EAAA,MAAAH;GAAAG,EAAA,MAAAkB;EAAA,OAAAA,MAAAlB,EAAA;EAAA,IAAAmB;EAAA,IAAAnB,EAAA,QAAAY,YAAAZ,EAAA,QAAAkB,KAAA;GADzDC,MAAA,qBAAAI,UAAA,EAAA,UAAA,CACGL,KACAN,QAAQ,EAAA,CAAA;GACRZ,EAAA,MAAAY;GAAAZ,EAAA,MAAAkB;GAAAlB,EAAA,MAAAmB;EAAA,OAAAA,MAAAnB,EAAA;EAPFM,KAAAlB,WACL;GAAAgC,WACa;GAAWR,UAEpBO;EAKJ,GACAL,KACF;EAACd,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAA;EAAAL,KAAAF,EAAA;EAAAG,KAAAH,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAAM,KAAAN,EAAA;EAAAO,KAAAP,EAAA;CAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,QAAAE,MAAAF,EAAA,QAAAG,MAAAH,EAAA,QAAAI,MAAAJ,EAAA,QAAAK,MAAAL,EAAA,QAAAM,IAAA;EAhBcE,KAAA;GAAAa,gBACCnB;GAAMS,QACtBA;GAAME,KACNA;GAAGI,OACHA;GAAKH,OACER;EAYT;EAACN,EAAA,MAAAE;EAAAF,EAAA,MAAAG;EAAAH,EAAA,MAAAI;EAAAJ,EAAA,MAAAK;EAAAL,EAAA,MAAAM;EAAAN,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAjBMb,GAAUqB,EAiBhB;AAAC"}
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ export interface BreadcrumbsProps extends React.HTMLAttributes<HTMLElement> {
4
+ ref?: React.Ref<HTMLElement>;
5
+ /** Shown between items. Defaults to a chevron. */
6
+ separator?: React.ReactNode;
7
+ }
8
+ /** Trail of links to the pages above the current one. Each child becomes one step. */
9
+ export declare function Breadcrumbs({ separator, 'aria-label': label, className, children, ref, ...props }: BreadcrumbsProps): React.JSX.Element;
10
+ export type BreadcrumbState = {
11
+ current: boolean;
12
+ };
13
+ export interface BreadcrumbProps extends useRender.ComponentProps<'a', BreadcrumbState> {
14
+ /** Marks the page the user is on; it renders as text instead of a link. */
15
+ current?: boolean;
16
+ }
17
+ /** One step of a breadcrumb trail. Pass a router link through `render`. */
18
+ export declare function Breadcrumb({ current, render, ref, ...props }: BreadcrumbProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
@@ -0,0 +1,154 @@
1
+ "use client";
2
+ import { cx } from "../../utils/cx.js";
3
+ import { ChevronRightIcon } from "../../icons/index.js";
4
+ import { c } from "react/compiler-runtime";
5
+ import * as React from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { useRender } from "@base-ui/react/use-render";
8
+ import { mergeProps } from "@base-ui/react/merge-props";
9
+ //#region src/components/breadcrumbs/Breadcrumbs.tsx
10
+ /** Trail of links to the pages above the current one. Each child becomes one step. */
11
+ function Breadcrumbs(t0) {
12
+ const $ = c(22);
13
+ let children;
14
+ let className;
15
+ let props;
16
+ let ref;
17
+ let separator;
18
+ let t1;
19
+ if ($[0] !== t0) {
20
+ ({separator, "aria-label": t1, className, children, ref, ...props} = t0);
21
+ $[0] = t0;
22
+ $[1] = children;
23
+ $[2] = className;
24
+ $[3] = props;
25
+ $[4] = ref;
26
+ $[5] = separator;
27
+ $[6] = t1;
28
+ } else {
29
+ children = $[1];
30
+ className = $[2];
31
+ props = $[3];
32
+ ref = $[4];
33
+ separator = $[5];
34
+ t1 = $[6];
35
+ }
36
+ const label = t1 === void 0 ? "Breadcrumb" : t1;
37
+ let t2;
38
+ if ($[7] !== className) {
39
+ t2 = cx("oui-breadcrumbs", className);
40
+ $[7] = className;
41
+ $[8] = t2;
42
+ } else t2 = $[8];
43
+ let t3;
44
+ if ($[9] !== children || $[10] !== separator) {
45
+ let t4;
46
+ if ($[12] !== separator) {
47
+ t4 = (child, index) => /* @__PURE__ */ jsxs("li", {
48
+ className: "oui-breadcrumbs__item",
49
+ children: [index > 0 && /* @__PURE__ */ jsx("span", {
50
+ className: "oui-breadcrumbs__separator",
51
+ "aria-hidden": true,
52
+ children: separator ?? /* @__PURE__ */ jsx(ChevronRightIcon, {})
53
+ }), child]
54
+ }, index);
55
+ $[12] = separator;
56
+ $[13] = t4;
57
+ } else t4 = $[13];
58
+ t3 = React.Children.toArray(children).map(t4);
59
+ $[9] = children;
60
+ $[10] = separator;
61
+ $[11] = t3;
62
+ } else t3 = $[11];
63
+ let t4;
64
+ if ($[14] !== t3) {
65
+ t4 = /* @__PURE__ */ jsx("ol", {
66
+ className: "oui-breadcrumbs__list",
67
+ children: t3
68
+ });
69
+ $[14] = t3;
70
+ $[15] = t4;
71
+ } else t4 = $[15];
72
+ let t5;
73
+ if ($[16] !== label || $[17] !== props || $[18] !== ref || $[19] !== t2 || $[20] !== t4) {
74
+ t5 = /* @__PURE__ */ jsx("nav", {
75
+ ref,
76
+ "aria-label": label,
77
+ className: t2,
78
+ ...props,
79
+ children: t4
80
+ });
81
+ $[16] = label;
82
+ $[17] = props;
83
+ $[18] = ref;
84
+ $[19] = t2;
85
+ $[20] = t4;
86
+ $[21] = t5;
87
+ } else t5 = $[21];
88
+ return t5;
89
+ }
90
+ /** One step of a breadcrumb trail. Pass a router link through `render`. */
91
+ function Breadcrumb(t0) {
92
+ const $ = c(15);
93
+ let t1;
94
+ let t2;
95
+ let t3;
96
+ let t4;
97
+ let t5;
98
+ let t6;
99
+ if ($[0] !== t0) {
100
+ const { current: t7, render, ref, ...props } = t0;
101
+ const current = t7 === void 0 ? false : t7;
102
+ let t8;
103
+ if ($[7] !== current) {
104
+ t8 = { current };
105
+ $[7] = current;
106
+ $[8] = t8;
107
+ } else t8 = $[8];
108
+ const state = t8;
109
+ t6 = useRender;
110
+ t1 = current ? "span" : "a";
111
+ t2 = render;
112
+ t3 = ref;
113
+ t4 = state;
114
+ t5 = mergeProps({
115
+ className: "oui-breadcrumbs__link",
116
+ "aria-current": current ? "page" : void 0
117
+ }, props);
118
+ $[0] = t0;
119
+ $[1] = t1;
120
+ $[2] = t2;
121
+ $[3] = t3;
122
+ $[4] = t4;
123
+ $[5] = t5;
124
+ $[6] = t6;
125
+ } else {
126
+ t1 = $[1];
127
+ t2 = $[2];
128
+ t3 = $[3];
129
+ t4 = $[4];
130
+ t5 = $[5];
131
+ t6 = $[6];
132
+ }
133
+ let t7;
134
+ if ($[9] !== t1 || $[10] !== t2 || $[11] !== t3 || $[12] !== t4 || $[13] !== t5) {
135
+ t7 = {
136
+ defaultTagName: t1,
137
+ render: t2,
138
+ ref: t3,
139
+ state: t4,
140
+ props: t5
141
+ };
142
+ $[9] = t1;
143
+ $[10] = t2;
144
+ $[11] = t3;
145
+ $[12] = t4;
146
+ $[13] = t5;
147
+ $[14] = t7;
148
+ } else t7 = $[14];
149
+ return t6(t7);
150
+ }
151
+ //#endregion
152
+ export { Breadcrumb, Breadcrumbs };
153
+
154
+ //# sourceMappingURL=Breadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.js","names":["React","useRender","mergeProps","cx","ChevronRightIcon","BreadcrumbsProps","HTMLAttributes","HTMLElement","ref","Ref","separator","ReactNode","Breadcrumbs","t0","$","_c","children","className","props","t1","label","undefined","t2","t3","t4","child","index","Children","toArray","map","t5","BreadcrumbState","current","BreadcrumbProps","ComponentProps","Breadcrumb","t6","t7","render","t8","state","defaultTagName","_c"],"sources":["../../../src/components/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { cx } from '../../utils/cx';\nimport { ChevronRightIcon } from '../../icons';\n\nexport interface BreadcrumbsProps extends React.HTMLAttributes<HTMLElement> {\n ref?: React.Ref<HTMLElement>;\n /** Shown between items. Defaults to a chevron. */\n separator?: React.ReactNode;\n}\n\n/** Trail of links to the pages above the current one. Each child becomes one step. */\nexport function Breadcrumbs({\n separator,\n 'aria-label': label = 'Breadcrumb',\n className,\n children,\n ref,\n ...props\n}: BreadcrumbsProps) {\n return (\n <nav ref={ref} aria-label={label} className={cx('oui-breadcrumbs', className)} {...props}>\n <ol className=\"oui-breadcrumbs__list\">\n {React.Children.toArray(children).map((child, index) => (\n <li key={index} className=\"oui-breadcrumbs__item\">\n {index > 0 && (\n <span className=\"oui-breadcrumbs__separator\" aria-hidden>\n {separator ?? <ChevronRightIcon />}\n </span>\n )}\n {child}\n </li>\n ))}\n </ol>\n </nav>\n );\n}\n\nexport type BreadcrumbState = { current: boolean };\n\nexport interface BreadcrumbProps extends useRender.ComponentProps<'a', BreadcrumbState> {\n /** Marks the page the user is on; it renders as text instead of a link. */\n current?: boolean;\n}\n\n/** One step of a breadcrumb trail. Pass a router link through `render`. */\nexport function Breadcrumb({ current = false, render, ref, ...props }: BreadcrumbProps) {\n const state: BreadcrumbState = { current };\n return useRender({\n defaultTagName: current ? 'span' : 'a',\n render,\n ref,\n state,\n props: mergeProps<'a'>({ className: 'oui-breadcrumbs__link', 'aria-current': current ? 'page' : undefined }, props),\n });\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAOY,YAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAV;CAAA,IAAAE;CAAA,IAAAS;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAqB,CAAA,CAAAH,WAAA,cAAAS,IAAAF,WAAAD,UAAAR,KAAA,GAAAU,SAAAL;EAOTC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAN;EAAAM,EAAA,KAAAJ;EAAAI,EAAA,KAAAK;CAAA,OAAA;EAAAH,WAAAF,EAAA;EAAAG,YAAAH,EAAA;EAAAI,QAAAJ,EAAA;EAAAN,MAAAM,EAAA;EAAAJ,YAAAI,EAAA;EAAAK,KAAAL,EAAA;CAAA;CALH,MAAAM,QAAAD,OAAAE,KAAAA,IAAA,eAAAF;CAAoB,IAAAG;CAAA,IAAAR,EAAA,OAAAG,WAAA;EAOaK,KAAAnB,GAAG,mBAAmBc,SAAS;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAS;CAAA,IAAAT,EAAA,OAAAE,YAAAF,EAAA,QAAAJ,WAAA;EAAA,IAAAc;EAAA,IAAAV,EAAA,QAAAJ,WAAA;GAEnCc,MAAAC,OAAAC,UACpC,qBAAA,MAAA;IAA0B,WAAA;IAA1B,UAAA,CACGA,QAAQ,KACP,oBAAA,QAAA;KAAgB,WAAA;KAA6B,eAAA;KAC1ChB,UAAAA,aAAa,oBAAC,kBAAD,CAAiB,CAAA;IAC1B,CAAA,GAERe,KACE;GAPIC,GAAAA,KAOJ;GACNZ,EAAA,MAAAJ;GAAAI,EAAA,MAAAU;EAAA,OAAAA,KAAAV,EAAA;EATAS,KAAAvB,MAAK2B,SAASC,QAASZ,QAAQ,CAAC,CAAAa,IAAKL,EASrC;EAACV,EAAA,KAAAE;EAAAF,EAAA,MAAAJ;EAAAI,EAAA,MAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,QAAAS,IAAA;EAVJC,KAAA,oBAAA,MAAA;GAAc,WAAA;GACXD,UAAAA;EAUE,CAAA;EAAAT,EAAA,MAAAS;EAAAT,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAgB;CAAA,IAAAhB,EAAA,QAAAM,SAAAN,EAAA,QAAAI,SAAAJ,EAAA,QAAAN,OAAAM,EAAA,QAAAQ,MAAAR,EAAA,QAAAU,IAAA;EAZPM,KAAA,oBAAA,OAAA;GAAUtB;GAAiBY,cAAAA;GAAkB,WAAAE;GAAgC,GAAMJ;GACjFM,UAAAA;EAYI,CAAA;EAAAV,EAAA,MAAAM;EAAAN,EAAA,MAAAI;EAAAJ,EAAA,MAAAN;EAAAM,EAAA,MAAAQ;EAAAR,EAAA,MAAAU;EAAAV,EAAA,MAAAgB;CAAA,OAAAA,KAAAhB,EAAA;CAAA,OAbNgB;AAaM;;AAYV,SAAOK,WAAAtB,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAI;CAAA,IAAAG;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAM;CAAA,IAAAM;CAAA,IAAAtB,EAAA,OAAAD,IAAA;EAAoB,MAAA,EAAAmB,SAAAK,IAAAC,QAAA9B,KAAA,GAAAU,UAAAL;EAAE,MAAAmB,UAAAK,OAAAhB,KAAAA,IAAA,QAAAgB;EAAe,IAAAE;EAAA,IAAAzB,EAAA,OAAAkB,SAAA;GACXO,KAAA,EAAAP,QAAU;GAAClB,EAAA,KAAAkB;GAAAlB,EAAA,KAAAyB;EAAA,OAAAA,KAAAzB,EAAA;EAA1C,MAAA0B,QAA+BD;EACxBtC,KAAAA;EACWkB,KAAAa,UAAA,SAAA;EAChBM,KAAAA;EACA9B,KAAAA;EACAgC,KAAAA;EACOV,KAAA5B,WAAgB;GAAAe,WAAa;GAAuB,gBAAkBe,UAAA,SAAAX,KAAAA;EAA6B,GAAGH,KAAK;EAACJ,EAAA,KAAAD;EAAAC,EAAA,KAAAK;EAAAL,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;EAAAT,EAAA,KAAAU;EAAAV,EAAA,KAAAgB;EAAAhB,EAAA,KAAAsB;CAAA,OAAA;EAAAjB,KAAAL,EAAA;EAAAQ,KAAAR,EAAA;EAAAS,KAAAT,EAAA;EAAAU,KAAAV,EAAA;EAAAgB,KAAAhB,EAAA;EAAAsB,KAAAtB,EAAA;CAAA;CAAA,IAAAuB;CAAA,IAAAvB,EAAA,OAAAK,MAAAL,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAgB,IAAA;EALpGO,KAAA;GAAAI,gBACCtB;GAAsBmB,QACtCA;GAAM9B,KACNA;GAAGgC,OACHA;GAAKtB,OACEY;EACT;EAAChB,EAAA,KAAAK;EAAAL,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAgB;EAAAhB,EAAA,MAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAA,OANMb,GAAUoC,EAMhB;AAAC"}
@@ -0,0 +1,23 @@
1
+ import { Button as BaseButton } from '@base-ui/react/button';
2
+ export type ButtonVariant = 'primary' | 'accent' | 'secondary' | 'soft' | 'ghost' | 'danger';
3
+ export type ButtonSize = 'sm' | 'md' | 'lg';
4
+ export type ButtonShape = 'pill' | 'rounded';
5
+ export interface ButtonProps extends BaseButton.Props {
6
+ /** Visual emphasis. */
7
+ variant?: ButtonVariant;
8
+ size?: ButtonSize;
9
+ /** `pill` (default) or `rounded` corners. Override with `--oui-button-radius`. */
10
+ shape?: ButtonShape;
11
+ /** Stretch to the container width. */
12
+ fullWidth?: boolean;
13
+ /** Shows a spinner and blocks interaction while keeping focus. */
14
+ loading?: boolean;
15
+ }
16
+ export declare function Button({ variant, size, shape, fullWidth, loading, disabled, className, children, ref, ...props }: ButtonProps): import("react").JSX.Element;
17
+ export interface IconButtonProps extends Omit<ButtonProps, 'shape' | 'fullWidth'> {
18
+ /** Required: icon-only buttons need an accessible name. */
19
+ 'aria-label': string;
20
+ shape?: 'rounded' | 'circle';
21
+ }
22
+ /** Square button for a single icon. Defaults to the compact ghost style. */
23
+ export declare function IconButton({ variant, size, shape, className, ref, ...props }: IconButtonProps): import("react").JSX.Element;