@optimum-intelligence/opti-ui 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +23 -0
- package/README.md +161 -2
- package/dist/components/accordion/Accordion.d.ts +17 -0
- package/dist/components/accordion/Accordion.js +204 -0
- package/dist/components/accordion/Accordion.js.map +1 -0
- package/dist/components/alert/Alert.d.ts +18 -0
- package/dist/components/alert/Alert.js +164 -0
- package/dist/components/alert/Alert.js.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +97 -0
- package/dist/components/app-shell/AppShell.js +689 -0
- package/dist/components/app-shell/AppShell.js.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +21 -0
- package/dist/components/avatar/Avatar.js +190 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +16 -0
- package/dist/components/badge/Badge.js +94 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/button/Button.d.ts +23 -0
- package/dist/components/button/Button.js +159 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/calendar/Calendar.d.ts +59 -0
- package/dist/components/calendar/Calendar.js +709 -0
- package/dist/components/calendar/Calendar.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +32 -0
- package/dist/components/calendar/date-utils.js +112 -0
- package/dist/components/calendar/date-utils.js.map +1 -0
- package/dist/components/card/Card.d.ts +42 -0
- package/dist/components/card/Card.js +82 -0
- package/dist/components/card/Card.js.map +1 -0
- package/dist/components/choice/Choice.d.ts +32 -0
- package/dist/components/choice/Choice.js +371 -0
- package/dist/components/choice/Choice.js.map +1 -0
- package/dist/components/collapsible/Collapsible.d.ts +15 -0
- package/dist/components/collapsible/Collapsible.js +155 -0
- package/dist/components/collapsible/Collapsible.js.map +1 -0
- package/dist/components/combobox/Combobox.d.ts +68 -0
- package/dist/components/combobox/Combobox.js +752 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/command-palette/CommandPalette.d.ts +52 -0
- package/dist/components/command-palette/CommandPalette.js +328 -0
- package/dist/components/command-palette/CommandPalette.js.map +1 -0
- package/dist/components/data-table/DataTable.d.ts +111 -0
- package/dist/components/data-table/DataTable.js +444 -0
- package/dist/components/data-table/DataTable.js.map +1 -0
- package/dist/components/date-picker/DatePicker.d.ts +50 -0
- package/dist/components/date-picker/DatePicker.js +485 -0
- package/dist/components/date-picker/DatePicker.js.map +1 -0
- package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
- package/dist/components/date-picker/DateRangePicker.js +339 -0
- package/dist/components/date-picker/DateRangePicker.js.map +1 -0
- package/dist/components/date-picker/PickerField.d.ts +38 -0
- package/dist/components/date-picker/PickerField.js +238 -0
- package/dist/components/date-picker/PickerField.js.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +70 -0
- package/dist/components/dialog/Dialog.js +354 -0
- package/dist/components/dialog/Dialog.js.map +1 -0
- package/dist/components/drawer/Drawer.d.ts +39 -0
- package/dist/components/drawer/Drawer.js +225 -0
- package/dist/components/drawer/Drawer.js.map +1 -0
- package/dist/components/empty-state/EmptyState.d.ts +12 -0
- package/dist/components/empty-state/EmptyState.js +116 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -0
- package/dist/components/field/Field.d.ts +36 -0
- package/dist/components/field/Field.js +337 -0
- package/dist/components/field/Field.js.map +1 -0
- package/dist/components/file-upload/FileUpload.d.ts +91 -0
- package/dist/components/file-upload/FileUpload.js +714 -0
- package/dist/components/file-upload/FileUpload.js.map +1 -0
- package/dist/components/input/Input.d.ts +49 -0
- package/dist/components/input/Input.js +538 -0
- package/dist/components/input/Input.js.map +1 -0
- package/dist/components/link/Link.d.ts +17 -0
- package/dist/components/link/Link.js +91 -0
- package/dist/components/link/Link.js.map +1 -0
- package/dist/components/menu/Menu.d.ts +79 -0
- package/dist/components/menu/Menu.js +615 -0
- package/dist/components/menu/Menu.js.map +1 -0
- package/dist/components/number-field/NumberField.d.ts +16 -0
- package/dist/components/number-field/NumberField.js +188 -0
- package/dist/components/number-field/NumberField.js.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +34 -0
- package/dist/components/pagination/Pagination.js +244 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/popover/Popover.d.ts +22 -0
- package/dist/components/popover/Popover.js +186 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/preview-card/PreviewCard.d.ts +20 -0
- package/dist/components/preview-card/PreviewCard.js +114 -0
- package/dist/components/preview-card/PreviewCard.js.map +1 -0
- package/dist/components/progress/Progress.d.ts +20 -0
- package/dist/components/progress/Progress.js +169 -0
- package/dist/components/progress/Progress.js.map +1 -0
- package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
- package/dist/components/scroll-area/ScrollArea.js +112 -0
- package/dist/components/scroll-area/ScrollArea.js.map +1 -0
- package/dist/components/search-input/SearchInput.d.ts +14 -0
- package/dist/components/search-input/SearchInput.js +114 -0
- package/dist/components/search-input/SearchInput.js.map +1 -0
- package/dist/components/select/Select.d.ts +66 -0
- package/dist/components/select/Select.js +601 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/separator/Separator.d.ts +4 -0
- package/dist/components/separator/Separator.js +46 -0
- package/dist/components/separator/Separator.js.map +1 -0
- package/dist/components/skeleton/Skeleton.d.ts +16 -0
- package/dist/components/skeleton/Skeleton.js +135 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +11 -0
- package/dist/components/slider/Slider.js +107 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/spinner/Spinner.d.ts +9 -0
- package/dist/components/spinner/Spinner.js +78 -0
- package/dist/components/spinner/Spinner.js.map +1 -0
- package/dist/components/stack/Stack.d.ts +23 -0
- package/dist/components/stack/Stack.js +79 -0
- package/dist/components/stack/Stack.js.map +1 -0
- package/dist/components/stat-card/StatCard.d.ts +22 -0
- package/dist/components/stat-card/StatCard.js +153 -0
- package/dist/components/stat-card/StatCard.js.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +30 -0
- package/dist/components/stepper/Stepper.js +131 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/table/Table.d.ts +53 -0
- package/dist/components/table/Table.js +221 -0
- package/dist/components/table/Table.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +19 -0
- package/dist/components/tabs/Tabs.js +183 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tag/Tag.d.ts +22 -0
- package/dist/components/tag/Tag.js +121 -0
- package/dist/components/tag/Tag.js.map +1 -0
- package/dist/components/toast/Toast.d.ts +34 -0
- package/dist/components/toast/Toast.js +187 -0
- package/dist/components/toast/Toast.js.map +1 -0
- package/dist/components/toggle/Toggle.d.ts +31 -0
- package/dist/components/toggle/Toggle.js +197 -0
- package/dist/components/toggle/Toggle.js.map +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +21 -0
- package/dist/components/toolbar/Toolbar.js +239 -0
- package/dist/components/toolbar/Toolbar.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +33 -0
- package/dist/components/tooltip/Tooltip.js +182 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/typography/Typography.d.ts +32 -0
- package/dist/components/typography/Typography.js +183 -0
- package/dist/components/typography/Typography.js.map +1 -0
- package/dist/fonts.css +3 -0
- package/dist/icons/index.d.ts +125 -0
- package/dist/icons/index.js +174 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.js +56 -0
- package/dist/opti-ui.css +5365 -0
- package/dist/theme/ThemeProvider.d.ts +22 -0
- package/dist/theme/ThemeProvider.js +115 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/utils/cx.d.ts +10 -0
- package/dist/utils/cx.js +18 -0
- package/dist/utils/cx.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/portal.d.ts +8 -0
- package/dist/utils/portal.js +16 -0
- package/dist/utils/portal.js.map +1 -0
- package/dist/utils/primitive.d.ts +13 -0
- package/dist/utils/primitive.js +61 -0
- package/dist/utils/primitive.js.map +1 -0
- package/dist/utils/search.d.ts +4 -0
- package/dist/utils/search.js +15 -0
- package/dist/utils/search.js.map +1 -0
- 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":";;;;;;;;;;;;AA+BA,IAAMwB,yBAAyBxB,MAAMyB,cAAc,KAAK;AAExD,IAAMC,sBAAsB1B,MAAMyB,cAAc,KAAK;AAErD,SAAOE,OAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAgB,MAAA,EAAAjB,SAAAkB,IAAAb,aAAAc,IAAAlB,WAAAmB,eAAAd,kBAAAe,IAAAd,mBAAAC,eAAAc,IAAAb,eAAAc,IAAAb,aAAAc,IAAAC,QAAAC,UAAAC,KAAA,GAAAC,UAAAb;CACrB,MAAAf,UAAAkB,OAAAW,KAAAA,IAAA,YAAAX;CACA,MAAAb,cAAAc,OAAAU,KAAAA,IAAA,OAAAV;CAEA,MAAAb,mBAAAe,OAAAQ,KAAAA,IAAA,QAAAR;CAEA,MAAAb,gBAAAc,OAAAO,KAAAA,IAAA,OAAAP;CACA,MAAAb,gBAAAc,OAAAM,KAAAA,IAAA,aAAAN;CACA,MAAAb,cAAAc,OAAAK,KAAAA,IAAA,WAAAL;CAMA,MAAAM,WAAiB3C,MAAK4C,WAAYlB,mBAAmB;CACrD,MAAAmB,cAAoB3B,eAAA,CAAgByB;CACpC,MAAA,CAAAG,UAAAC,eAAgC/C,MAAKgD,SAAU7B,gBAAgB;CAC/D,MAAAL,YAAkB+B,gBAAgBZ,iBAAAa;CAClC,MAAAG,QAAcnC,YAAAS,cAAAD;CAGd,MAAA,CAAA4B,eAAAC,oBAA0CnD,MAAKgD,SAAU,KAAK;CAC9D,MAAA,CAAAI,SAAAC,cAA8BrD,MAAKgD,SAAU,KAAK;CAAE,IAAAM;CAAA,IAAAC;CAAA,IAAA1B,EAAA,OAAAqB,eAAA;EACpCI,WAAA;GACd,IAAI,CAACJ,eAAa;GAClB,MAAAM,QAAcC,iBAAiBJ,WAAW,IAAI,GAAG,GAAG;GAAE,aACzCK,aAAaF,KAAK;EAAC;EAC/BD,KAAA,CAACL,aAAa;EAACrB,EAAA,KAAAqB;EAAArB,EAAA,KAAAyB;EAAAzB,EAAA,KAAA0B;CAAA,OAAA;EAAAD,KAAAzB,EAAA;EAAA0B,KAAA1B,EAAA;CAAA;CAJlB7B,MAAK2D,UAAWL,IAIbC,EAAe;CAClB,MAAAxC,OAAaD,aAAAO,iBAAA+B;CAAsC,IAAAQ;CAAA,IAAA/B,EAAA,OAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAElCF,WAAA;GACfT,iBAAiB,KAAK;GACtBE,WAAW,KAAK;EAAC;EAClBxB,EAAA,KAAA+B;CAAA,OAAAA,KAAA/B,EAAA;CAHD,MAAAkC,WAAiBH;CAGf,IAAAI;CAAA,IAAAnC,EAAA,OAAAf,aAAAe,EAAA,OAAAI,iBAAAJ,EAAA,OAAAT,mBAAA;EAEa4C,YAAA;GAEbD,SAAS;GACT,IAAI9B,kBAAkBS,KAAAA,GAAWK,YAAY,CAACjC,SAAS;GACvDM,oBAAoB,CAACN,SAAS;EAAC;EAChCe,EAAA,KAAAf;EAAAe,EAAA,KAAAI;EAAAJ,EAAA,KAAAT;EAAAS,EAAA,KAAAmC;CAAA,OAAAA,MAAAnC,EAAA;CALD,MAAAoC,SAAeD;CAKb,IAAAE;CAAA,IAAArC,EAAA,OAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAEqBI,OAAAC,UAAA;GACrB,IAAIA,MAAKC,gBAAiB,SAASjB,iBAAiB,IAAI;EAAE;EAC3DtB,EAAA,KAAAqC;CAAA,OAAAA,MAAArC,EAAA;CAFD,MAAAwC,iBAAuBH;CAI0B,MAAAI,MAAAxD,aAAA,CAAcC;CAAI,IAAAwD;CAAA,IAAA1C,EAAA,OAAAd,QAAAc,EAAA,QAAAyC,OAAAzC,EAAA,QAAAhB,SAAA;EAAxC0D,MAAA;GAAA1D;GAAAC,WAAsBwD;GAAkBvD;EAAO;EAACc,EAAA,KAAAd;EAAAc,EAAA,MAAAyC;EAAAzC,EAAA,MAAAhB;EAAAgB,EAAA,MAAA0C;CAAA,OAAAA,MAAA1C,EAAA;CAA3E,MAAA2C,QAA2BD;CAET,MAAAE,MAAA;CAAK,IAAAC;CAAA,IAAA7C,EAAA,QAAAgB,eAAAhB,EAAA,QAAAf,aAAAe,EAAA,QAAAoB,SAAApB,EAAA,QAAAoC,QAAA;EAWZS,MAAA7B,eACC,oBAAA,UAAA;GACO,MAAA;GACK,WAAA;GACEI,cAAAA;GACG,iBAAA,CAACnC;GACTmC,OAAAA;GACEgB,SAAAA;GAET,UAAA,oBAAC,iBAAD,CAAgB,CAAA;EACT,CAAA;EACVpC,EAAA,MAAAgB;EAAAhB,EAAA,MAAAf;EAAAe,EAAA,MAAAoB;EAAApB,EAAA,MAAAoC;EAAApC,EAAA,MAAA6C;CAAA,OAAAA,MAAA7C,EAAA;CAAA,IAAA8C;CAAA,IAAA9C,EAAA,QAAAU,YAAAV,EAAA,QAAA6C,KAAA;EAZHC,MAAA,qBAAAsD,UAAA,EAAA,UAAA,CACGvD,KAYAnC,QAAQ,EAAA,CAAA;EACRV,EAAA,MAAAU;EAAAV,EAAA,MAAA6C;EAAA7C,EAAA,MAAA8C;CAAA,OAAAA,MAAA9C,EAAA;CApBF,MAAA+C,MAAAxE,WACL;EAAAyE,WACa;EAAYR,gBACPvD,aAAAO,gBAAAgD,iBAAA3B,KAAAA;EAAuDoC,gBACvDhE,aAAAO,gBAAA0C,WAAArB,KAAAA;EAAiDH,UAE/DoC;CAgBJ,GACAlC,KACF;CAAC,IAAAsC;CAAA,IAAAlD,EAAA,QAAAW,OAAAX,EAAA,QAAAS,UAAAT,EAAA,QAAA2C,SAAA3C,EAAA,QAAA+C,KAAA;EA7BuBG,MAAA;GAAAC,gBACRP;GAAKnC;GAAAE;GAAAgC;GAAA/B,OAIdmC;EAyBT;EAAC/C,EAAA,MAAAW;EAAAX,EAAA,MAAAS;EAAAT,EAAA,MAAA2C;EAAA3C,EAAA,MAAA+C;EAAA/C,EAAA,MAAAkD;CAAA,OAAAA,MAAAlD,EAAA;CA9BD,MAAAoD,UAAgB9E,UAAU4E,GA8BzB;CACqC,MAAAG,MAAApE,aAAA,CAAcC;CAAI,IAAAoE;CAAA,IAAAtD,EAAA,QAAAoD,WAAApD,EAAA,QAAAqD,KAAA;EAAjDC,MAAA,oBAAC,wBAAD;GAA+B,OAAAD;GAAqBD,UAAAA;EAA7B,CAAA;EAA8DpD,EAAA,MAAAoD;EAAApD,EAAA,MAAAqD;EAAArD,EAAA,MAAAsD;CAAA,OAAAA,MAAAtD,EAAA;CAAA,OAArFsD;AAAqF;AAG9F,IAAaC,eAAe9E,gBAAgB,OAAO,sBAAsB,cAAc;AACvF,IAAa+E,eAAe/E,gBAAgB,OAAO,sBAAsB,cAAc;AACvF,IAAagF,gBAAgBhF,gBAAgB,OAAO,uBAAuB,eAAe;AAC1F,IAAaiF,qBAAqBjF,gBAAgB,OAAO,6BAA6B,oBAAoB;AAQ1G,SAAOwF,YAAAlE,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAE;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAP,EAAA,OAAAD,IAAA;EAAqB,MAAA,EAAA8D,MAAAE,OAAAC,UAAAvD,QAAAE,KAAA,GAAAC,UAAAb;EACnBzB,KAAAA;EACW4B,KAAA;EAChBO,KAAAA;EACAE,KAAAA;EAAG,IAAAH;EAAA,IAAAR,EAAA,OAAA6D,MAAA;GAMMrD,KAAAqD,QAAQ,oBAAA,QAAA;IAAgB,WAAA;IAAoBA,UAAAA;GAAY,CAAA;GAAA7D,EAAA,KAAA6D;GAAA7D,EAAA,KAAAQ;EAAA,OAAAA,KAAAR,EAAA;EAAA,IAAAyB;EAAA,IAAAzB,EAAA,OAAA+D,OAAA;GAEvDtC,KAAA,oBAAA,QAAA;IAAgB,WAAA;IAA2BsC,UAAAA;GAAa,CAAA;GAAA/D,EAAA,KAAA+D;GAAA/D,EAAA,KAAAyB;EAAA,OAAAA,KAAAzB,EAAA;EAAA,IAAA0B;EAAA,IAAA1B,EAAA,QAAAgE,UAAA;GACvDtC,KAAAsC,YAAY,oBAAA,QAAA;IAAgB,WAAA;IAA8BA,UAAAA;GAAgB,CAAA;GAAAhE,EAAA,MAAAgE;GAAAhE,EAAA,MAAA0B;EAAA,OAAAA,KAAA1B,EAAA;EAAA,IAAA+B;EAAA,IAAA/B,EAAA,QAAAyB,MAAAzB,EAAA,QAAA0B,IAAA;GAF7EK,KAAA,qBAAA,QAAA;IAAgB,WAAA;IAAhB,UAAA,CACEN,IACCC,EACI;;GAAA1B,EAAA,MAAAyB;GAAAzB,EAAA,MAAA0B;GAAA1B,EAAA,MAAA+B;EAAA,OAAAA,KAAA/B,EAAA;EAAA,IAAAmC;EAAA,IAAAnC,EAAA,QAAAQ,MAAAR,EAAA,QAAA+B,IAAA;GALTI,MAAA,qBAAAiE,UAAA,EAAA,UAAA,CACG5F,IACDuB,EAGO,EAAA,CAAA;GACN/B,EAAA,MAAAQ;GAAAR,EAAA,MAAA+B;GAAA/B,EAAA,MAAAmC;EAAA,OAAAA,MAAAnC,EAAA;EAVFM,KAAA/B,WACL;GAAAyE,WACa;GAAmBtC,UAE5ByB;EAQJ,GACAvB,KACF;EAACZ,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAK;EAAAL,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAA;EAAAL,KAAAF,EAAA;EAAAG,KAAAH,EAAA;EAAAK,KAAAL,EAAA;EAAAM,KAAAN,EAAA;EAAAO,KAAAP,EAAA;CAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,QAAAE,MAAAF,EAAA,QAAAG,MAAAH,EAAA,QAAAK,MAAAL,EAAA,QAAAM,IAAA;EAlBcE,KAAA;GAAA2C,gBACCjD;GAAKO,QACrBA;GAAME,KACNA;GAAGC,OACIN;EAeT;EAACN,EAAA,MAAAE;EAAAF,EAAA,MAAAG;EAAAH,EAAA,MAAAK;EAAAL,EAAA,MAAAM;EAAAN,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAnBM1B,GAAUkC,EAmBhB;AAAC;;;;;AAiBJ,SAAO+D,WAAAxE,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAoB,MAAA,EAAAoE,MAAAF,QAAAjE,IAAAoE,OAAA7D,QAAAC,UAAAC,KAAA,GAAAC,UAAAb;CAAQ,MAAAoE,SAAAjE,OAAAW,KAAAA,IAAA,QAAAX;CACjC,MAAAjB,YAAkBd,MAAK4C,WAAYpB,sBAAsB;CAAE,IAAAQ;CAAA,IAAAH,EAAA,OAAAmE,QAAA;EAC5BhE,KAAA,EAAAgE,OAAS;EAACnE,EAAA,KAAAmE;EAAAnE,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAzC,MAAA2C,QAA+BxC;CAEb,MAAAE,KAAA;CAAG,IAAAC;CAAA,IAAAN,EAAA,OAAAqE,MAAA;EAWV/D,KAAA+D,QAAQ,oBAAA,QAAA;GAAgB,WAAA;GAAyBA,UAAAA;EAAY,CAAA;EAAArE,EAAA,KAAAqE;EAAArE,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAU,UAAA;EAC9DH,KAAA,oBAAA,QAAA;GAAgB,WAAA;GAA0BG;EAAgB,CAAA;EAAAV,EAAA,KAAAU;EAAAV,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,OAAAsE,OAAA;EACzD9D,KAAA8D,SAAS,QAAQ,oBAAA,QAAA;GAAgB,WAAA;GAA0BA,UAAAA;EAAa,CAAA;EAAAtE,EAAA,KAAAsE;EAAAtE,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,OAAAM,MAAAN,EAAA,OAAAO,MAAAP,EAAA,QAAAQ,IAAA;EAH3EiB,KAAA,qBAAA2E,UAAA,EAAA,UAAA;GACG9F;GACDC;GACCC;EAAwE,EAAA,CAAA;EACxER,EAAA,KAAAM;EAAAN,EAAA,KAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAVF,MAAA0B,KAAAnD,WACL;EAAAyE,WACa;EAAkB,gBACbmB,SAAA,SAAAtD,KAAAA;EAA2BkD,OACpC9E,aAAa,OAAOyB,aAAa,WAAjCA,WAAAG,KAAAA;EAAgEH,UAErEe;CAMJ,GACAb,KACF;CAAC,IAAAmB;CAAA,IAAA/B,EAAA,QAAAW,OAAAX,EAAA,QAAAS,UAAAT,EAAA,QAAA2C,SAAA3C,EAAA,QAAA0B,IAAA;EAnBcK,KAAA;GAAAoB,gBACC9C;GAAGI;GAAAE;GAAAgC;GAAA/B,OAIZc;EAeT;EAAC1B,EAAA,MAAAW;EAAAX,EAAA,MAAAS;EAAAT,EAAA,MAAA2C;EAAA3C,EAAA,MAAA0B;EAAA1B,EAAA,MAAA+B;CAAA,OAAAA,KAAA/B,EAAA;CAAA,OApBM1B,UAAUyD,EAoBhB;AAAC;;;;;;AAuBJ,SAAOmD,SAAAnF,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAS;CAAA,IAAAsC;CAAA,IAAAgC;CAAA,IAAAF;CAAA,IAAAD;CAAA,IAAAD;CAAA,IAAAhE;CAAA,IAAAD;CAAA,IAAAT;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAkB,CAAA,CAAA6E,QAAAC,aAAAC,eAAAC,WAAA7E,IAAA8E,WAAAhC,WAAAtC,UAAAC,KAAA,GAAAC,SAAAb;EAUTC,EAAA,KAAAD;EAAAC,EAAA,KAAAU;EAAAV,EAAA,KAAAgD;EAAAhD,EAAA,KAAAgF;EAAAhF,EAAA,KAAA8E;EAAA9E,EAAA,KAAA6E;EAAA7E,EAAA,KAAA4E;EAAA5E,EAAA,KAAAY;EAAAZ,EAAA,KAAAW;EAAAX,EAAA,KAAAE;CAAA,OAAA;EAAAQ,WAAAV,EAAA;EAAAgD,YAAAhD,EAAA;EAAAgF,YAAAhF,EAAA;EAAA8E,gBAAA9E,EAAA;EAAA6E,cAAA7E,EAAA;EAAA4E,SAAA5E,EAAA;EAAAY,QAAAZ,EAAA;EAAAW,MAAAX,EAAA;EAAAE,KAAAF,EAAA;CAAA;CANd,MAAA+E,YAAA7E,OAAAW,KAAAA,IAAA,oBAAAX;CAOA,MAAA,CAAAiF,MAAAC,WAAwBjH,MAAKgD,SAAU,KAAK;CAC5C,MAAAkE,YAAkB3G,mBAAmB;CAAE,IAAAyB;CAAA,IAAAH,EAAA,QAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAEf9B,MAAAmC,UAAA;GACtB,IAAKA,MAAKgD,OAAsBC,QAAU,sBAAsB,GAAGH,QAAQ,KAAK;EAAE;EACnFpF,EAAA,MAAAG;CAAA,OAAAA,KAAAH,EAAA;CAFD,MAAAwF,kBAAwBrF;CAEtB,IAAAE;CAAA,IAAAL,EAAA,QAAAgD,WAAA;EAG0B3C,KAAA7B,GAAG,iBAAiBwE,SAAS;EAAChD,EAAA,MAAAgD;EAAAhD,EAAA,MAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,QAAA4E,QAAA;EACtDtE,KAAA,oBAAA,OAAA;GAAe,WAAA;GAAyBsE,UAAAA;EAAa,CAAA;EAAA5E,EAAA,MAAA4E;EAAA5E,EAAA,MAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,QAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAK/C1B,KAAA,oBAAC,UAAD,CAAS,CAAA;EAAGP,EAAA,MAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,QAAA+E,WAAA;EADdvE,KAAA,oBAAA6F,OAAA,SAAA;GAA8B,WAAA;GAAyCtB,cAAAA;GACrExE,UAAAA;EACF,CAAA;EAAqBP,EAAA,MAAA+E;EAAA/E,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,QAAA6E,aAAA;EACrBpD,KAAA,oBAAA,OAAA;GAAe,WAAA;GAA+BoD,UAAAA;EAAkB,CAAA;EAAA7E,EAAA,MAAA6E;EAAA7E,EAAA,MAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,QAAA8E,iBAAA9E,EAAA,QAAAQ,MAAAR,EAAA,QAAAyB,IAAA;EAJlEC,KAAA,qBAAA,UAAA;GAAkB,WAAA;GAAlB,UAAA;IACElB;IAGAiB;IACCqD;GACM;;EAAA9E,EAAA,MAAA8E;EAAA9E,EAAA,MAAAQ;EAAAR,EAAA,MAAAyB;EAAAzB,EAAA,MAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,IAAA+B;CAAA,IAAA/B,EAAA,QAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAEPF,KAAA,oBAAAsE,OAAA,UAAA,EAA+B,WAAA,uBAAsB,CAAA;EAAGrG,EAAA,MAAA+B;CAAA,OAAAA,KAAA/B,EAAA;CAAA,IAAAmC;CAAA,IAAAnC,EAAA,QAAAgC,OAAAC,IAAA,2BAAA,GAAA;EAEtDE,MAAA,oBAAAkE,OAAA,OAAA;GAA4B,WAAA;GAAyC,cAAA;GACnE,UAAA,oBAAC,OAAD,CAAM,CAAA;EACR,CAAA;EAAmBrG,EAAA,MAAAmC;CAAA,OAAAA,MAAAnC,EAAA;CAAA,IAAAqC;CAAA,IAAArC,EAAA,QAAA4E,QAAA;EAHrBvC,MAAA,qBAAAgE,OAAA,OAAA;GAA4B,WAAA;GAAmC,cAAA;GAAsBb,SAAAA;GAArF,UAAA,CACErD,KAGA,oBAAC,qBAAD;IAA4B,OAAA;IAAOyC,UAAAA;GAAf,CAAA,CACtB;;EAAmB5E,EAAA,MAAA4E;EAAA5E,EAAA,MAAAqC;CAAA,OAAAA,MAAArC,EAAA;CAAA,IAAAyC;CAAA,IAAAzC,EAAA,QAAAqF,aAAArF,EAAA,QAAAqC,KAAA;EAPrBI,MAAA,qBAAA4D,OAAA,QAAA;GAA8BhB;GAA9B,UAAA,CACEtD,IACAM,GAMF;;EAAoBrC,EAAA,MAAAqF;EAAArF,EAAA,MAAAqC;EAAArC,EAAA,MAAAyC;CAAA,OAAAA,MAAAzC,EAAA;CAAA,IAAA0C;CAAA,IAAA1C,EAAA,QAAAmF,QAAAnF,EAAA,QAAAyC,OAAAzC,EAAA,QAAA0B,IAAA;EAhBtBgB,MAAA,qBAAA2D,OAAA,MAAA;GAAuBlB;GAAoBC,cAAAA;GAA3C,UAAA,CACE1D,IAOAe,GASF;;EAAkBzC,EAAA,MAAAmF;EAAAnF,EAAA,MAAAyC;EAAAzC,EAAA,MAAA0B;EAAA1B,EAAA,MAAA0C;CAAA,OAAAA,MAAA1C,EAAA;CAEwC,MAAA4C,MAAAoC,WAAShC;CAAW,IAAAH;CAAA,IAAA7C,EAAA,QAAA4C,KAAA;EAA9CC,MAAArE,GAAG,uBAAuBoE,GAAoB;EAAC5C,EAAA,MAAA4C;EAAA5C,EAAA,MAAA6C;CAAA,OAAAA,MAAA7C,EAAA;CAAA,IAAA8C;CAAA,IAAA9C,EAAA,QAAAU,YAAAV,EAAA,QAAAgF,aAAAhF,EAAA,QAAA6C,KAAA;EAA/EC,MAAA,oBAAA,QAAA;GAEO,GAFGkC;GAAsB,WAAAnC;GAC7BnC;EACI,CAAA;EAAAV,EAAA,MAAAU;EAAAV,EAAA,MAAAgF;EAAAhF,EAAA,MAAA6C;EAAA7C,EAAA,MAAA8C;CAAA,OAAAA,MAAA9C,EAAA;CAAA,IAAA+C;CAAA,IAAA/C,EAAA,QAAAY,SAAAZ,EAAA,QAAAW,OAAAX,EAAA,QAAA0C,OAAA1C,EAAA,QAAA8C,OAAA9C,EAAA,QAAAK,MAAAL,EAAA,QAAAM,IAAA;EAxBTyC,MAAA,qBAAA,OAAA;GAAUpC;GAAgB,WAAAN;GAA8B,GAAMO;GAA9D,UAAA;IACEN;IAEAoC;IAmBAI;GAGI;;EAAA9C,EAAA,MAAAY;EAAAZ,EAAA,MAAAW;EAAAX,EAAA,MAAA0C;EAAA1C,EAAA,MAAA8C;EAAA9C,EAAA,MAAAK;EAAAL,EAAA,MAAAM;EAAAN,EAAA,MAAA+C;CAAA,OAAAA,MAAA/C,EAAA;CAAA,OAzBN+C;AAyBM;AAgBV,SAAO+C,WAAA/F,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAA4F;CAAA,IAAAH;CAAA,IAAA1C;CAAA,IAAA4C;CAAA,IAAAD;CAAA,IAAA/E;CAAA,IAAAD;CAAA,IAAAoD;CAAA,IAAA/D,EAAA,OAAAD,IAAA;EAAoB,CAAA,CAAA2F,aAAAC,SAAA5B,OAAA6B,aAAAC,SAAA7C,WAAArC,KAAA,GAAAC,SAAAb;EASTC,EAAA,KAAAD;EAAAC,EAAA,KAAA6F;EAAA7F,EAAA,KAAA0F;EAAA1F,EAAA,KAAAgD;EAAAhD,EAAA,KAAA4F;EAAA5F,EAAA,KAAA2F;EAAA3F,EAAA,KAAAY;EAAAZ,EAAA,KAAAW;EAAAX,EAAA,KAAA+D;CAAA,OAAA;EAAA8B,UAAA7F,EAAA;EAAA0F,cAAA1F,EAAA;EAAAgD,YAAAhD,EAAA;EAAA4F,cAAA5F,EAAA;EAAA2F,UAAA3F,EAAA;EAAAY,QAAAZ,EAAA;EAAAW,MAAAX,EAAA;EAAA+D,QAAA/D,EAAA;CAAA;CAAA,IAAAE;CAAA,IAAAF,EAAA,OAAAgD,WAAA;EAEe9C,KAAA1B,GAAG,mBAAmBwE,SAAS;EAAChD,EAAA,KAAAgD;EAAAhD,EAAA,MAAAE;CAAA,OAAAA,KAAAF,EAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,QAAA0F,aAAA;EAExDvF,KAAAuF,eAAe,oBAAA,OAAA;GAAe,WAAA;GAAgCA,UAAAA;EAAkB,CAAA;EAAA1F,EAAA,MAAA0F;EAAA1F,EAAA,MAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,QAAA2F,SAAA;EAChFtF,KAAAsF,WAAW,oBAAA,QAAA;GAAgB,WAAA;GAAeA,UAAAA;EAAe,CAAA;EAAA3F,EAAA,MAAA2F;EAAA3F,EAAA,MAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,QAAA+D,OAAA;EAC1DzD,KAAA,oBAAA,MAAA;GAAc,WAAA;GAA0ByD,UAAAA;EAAW,CAAA;EAAA/D,EAAA,MAAA+D;EAAA/D,EAAA,MAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,QAAA4F,aAAA;EAClDrF,KAAAqF,eAAe,oBAAA,KAAA;GAAa,WAAA;GAAgCA,UAAAA;EAAgB,CAAA;EAAA5F,EAAA,MAAA4F;EAAA5F,EAAA,MAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,QAAAG,MAAAH,EAAA,QAAAK,MAAAL,EAAA,QAAAM,MAAAN,EAAA,QAAAO,IAAA;EAJ/EC,KAAA,qBAAA,OAAA;GAAe,WAAA;GAAf,UAAA;IACGL;IACAE;IACDC;IACCC;GACG;;EAAAP,EAAA,MAAAG;EAAAH,EAAA,MAAAK;EAAAL,EAAA,MAAAM;EAAAN,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,QAAA6F,SAAA;EACLpE,KAAAoE,WAAW,oBAAA,OAAA;GAAe,WAAA;GAA4BA,UAAAA;EAAc,CAAA;EAAA7F,EAAA,MAAA6F;EAAA7F,EAAA,MAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,QAAAY,SAAAZ,EAAA,QAAAW,OAAAX,EAAA,QAAAE,MAAAF,EAAA,QAAAQ,MAAAR,EAAA,QAAAyB,IAAA;EAPvEC,KAAA,qBAAA,UAAA;GAAaf;GAAgB,WAAAT;GAAgC,GAAMU;GAAnE,UAAA,CACEJ,IAMCiB,EACM;;EAAAzB,EAAA,MAAAY;EAAAZ,EAAA,MAAAW;EAAAX,EAAA,MAAAE;EAAAF,EAAA,MAAAQ;EAAAR,EAAA,MAAAyB;EAAAzB,EAAA,MAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,OART0B;AAQS;;AAYb,SAAOwE,KAAAnG,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAA+C;CAAA,IAAApC;CAAA,IAAAD;CAAA,IAAAT;CAAA,IAAAC;CAAA,IAAAH,EAAA,OAAAD,IAAA;EAAc,CAAA,CAAAiG,SAAA9F,IAAA+F,KAAA9F,IAAA6C,WAAArC,KAAA,GAAAC,SAAAb;EAAgEC,EAAA,KAAAD;EAAAC,EAAA,KAAAgD;EAAAhD,EAAA,KAAAY;EAAAZ,EAAA,KAAAW;EAAAX,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAA;EAAA6C,YAAAhD,EAAA;EAAAY,QAAAZ,EAAA;EAAAW,MAAAX,EAAA;EAAAE,KAAAF,EAAA;EAAAG,KAAAH,EAAA;CAAA;CAA9D,MAAAgG,UAAA9F,OAAAW,KAAAA,IAAA,IAAAX;CAAa,MAAA+F,MAAA9F,OAAAU,KAAAA,IAAA,OAAAV;CAAU,IAAAE;CAAA,IAAAL,EAAA,OAAAgD,WAAA;EACX3C,KAAA7B,GAAG,YAAYwE,SAAS;EAAChD,EAAA,KAAAgD;EAAAhD,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,OAAAgG,WAAAhG,EAAA,OAAAiG,OAAAjG,EAAA,QAAAY,SAAAZ,EAAA,QAAAW,OAAAX,EAAA,QAAAK,IAAA;EAAnDC,KAAA,oBAAA,OAAA;GAAUK;GAAgB,WAAAN;GAAyC2F,gBAAAA;GAAmBC,YAAAA;GAAG,GAAMrF;EAAK,CAAA;EAAIZ,EAAA,KAAAgG;EAAAhG,EAAA,KAAAiG;EAAAjG,EAAA,MAAAY;EAAAZ,EAAA,MAAAW;EAAAX,EAAA,MAAAK;EAAAL,EAAA,MAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAAxGM;AAAwG"}
|
|
@@ -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":"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"}
|
|
@@ -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;
|