@wildo-ai/presets-components 1.1.3 → 1.1.4

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 (47) hide show
  1. package/dist/esm/components/ai-elements/decision/approval.d.ts +24 -4
  2. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  3. package/dist/esm/components/ai-elements/decision/approval.js +35 -7
  4. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  5. package/dist/esm/components/app/public-layout-main-container.d.ts.map +1 -1
  6. package/dist/esm/components/app/public-layout-main-container.js +1 -1
  7. package/dist/esm/components/app/public-layout-main-container.js.map +1 -1
  8. package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
  9. package/dist/esm/components/feedback/empty-state.js +11 -1
  10. package/dist/esm/components/feedback/empty-state.js.map +1 -1
  11. package/dist/esm/components/feedback/notification-center.js +1 -1
  12. package/dist/esm/components/feedback/notification-center.js.map +1 -1
  13. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts +52 -0
  14. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts.map +1 -0
  15. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js +157 -0
  16. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js.map +1 -0
  17. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts +16 -0
  18. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts.map +1 -0
  19. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js +20 -0
  20. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js.map +1 -0
  21. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts +37 -0
  22. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts.map +1 -0
  23. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js +125 -0
  24. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js.map +1 -0
  25. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts +16 -0
  26. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts.map +1 -0
  27. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js +20 -0
  28. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js.map +1 -0
  29. package/dist/esm/components/navigation/app-level/utility-panel.d.ts.map +1 -1
  30. package/dist/esm/components/navigation/app-level/utility-panel.js +9 -2
  31. package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -1
  32. package/dist/esm/components/sections/tabs.d.ts.map +1 -1
  33. package/dist/esm/components/sections/tabs.js +5 -1
  34. package/dist/esm/components/sections/tabs.js.map +1 -1
  35. package/dist/esm/index.d.ts +1 -0
  36. package/dist/esm/index.d.ts.map +1 -1
  37. package/dist/esm/index.js +1 -0
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/registration/register-default-presets.d.ts.map +1 -1
  40. package/dist/esm/registration/register-default-presets.js +4 -0
  41. package/dist/esm/registration/register-default-presets.js.map +1 -1
  42. package/dist/esm/registration/register-provider-components.d.ts +31 -0
  43. package/dist/esm/registration/register-provider-components.d.ts.map +1 -0
  44. package/dist/esm/registration/register-provider-components.js +45 -0
  45. package/dist/esm/registration/register-provider-components.js.map +1 -0
  46. package/dist/tsconfig.build.tsbuildinfo +1 -1
  47. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../../../src/components/sections/tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\n\nimport {\n TabsCompound,\n createCompoundPreset,\n cn,\n useUI,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { FrontendComponentType, SelectableVariant, SurfaceVariant, UIBehavior } from \"@wildo-ai/presets-components-models\"\n\n/**\n * Orientation shared from TabsRoot down to List/Trigger so each sub-component can\n * choose the right `SELECTABLE` recipe. Radix exposes orientation only as a\n * `data-orientation` DOM attribute, but a recipe's utility strings (which already\n * carry `data-[state=active]:…`) can't be re-scoped per orientation from a class\n * list — so the choice is made in JS here.\n *\n * Horizontal tabs use `UNDERLINE` (a bottom-border indicator on separated items —\n * the canonical modern-SaaS navigation-tab look: \"separated = tabs, connected by\n * a track = segmented control\"). The vertical rail keeps `FILLED` (a soft fill on\n * the selected rail item).\n */\nconst TabsOrientationContext = React.createContext<'horizontal' | 'vertical'>('horizontal')\n\nfunction TabsRoot({\n className,\n orientation = 'horizontal',\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>): React.JSX.Element {\n const resolved = orientation === 'vertical' ? 'vertical' : 'horizontal'\n return (\n <TabsOrientationContext.Provider value={resolved}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n orientation={orientation}\n className={cn(\"flex flex-col gap-element data-[orientation=vertical]:flex-row data-[orientation=vertical]:gap-card\", className)}\n {...props}\n />\n </TabsOrientationContext.Provider>\n )\n}\n\n/**\n * Overflow state of the horizontal scrollport — which edges have more content.\n *\n * Updated from three signals, because each misses a case the others catch: the\n * `scroll` listener (user scrolled), a `ResizeObserver` on the list (viewport\n * grew/shrank — the common \"window resized\" case), and a per-render effect\n * (tab COUNT changed — children resizing does not move the list's own box, so\n * the observer cannot see it).\n */\nfunction useHorizontalOverflow(ref: React.RefObject<HTMLElement | null>): { start: boolean; end: boolean } {\n const [overflow, setOverflow] = React.useState({ start: false, end: false })\n\n const update = React.useCallback(() => {\n const el = ref.current\n if (!el) return\n // 1px slack: fractional layout widths make scrollLeft/scrollWidth disagree by <1.\n const start = el.scrollLeft > 1\n const end = el.scrollLeft + el.clientWidth < el.scrollWidth - 1\n setOverflow((prev) => (prev.start === start && prev.end === end ? prev : { start, end }))\n }, [ref])\n\n React.useEffect(() => {\n const el = ref.current\n if (!el) return\n el.addEventListener('scroll', update, { passive: true })\n const observer = new ResizeObserver(update)\n observer.observe(el)\n return () => {\n el.removeEventListener('scroll', update)\n observer.disconnect()\n }\n }, [ref, update])\n\n // No dependency array on purpose — re-measures after every render, which is\n // what catches content-only changes (a tab added/removed, a label resolving\n // from i18n). Three numeric reads; cheap enough not to gate.\n React.useEffect(update)\n\n return overflow\n}\n\n/** Width of each fade/affordance zone. One constant so the mask and the button agree. */\nconst TABS_FADE_ZONE = '2.5rem'\n\n/**\n * The edge fade, as a MASK on the strip rather than a gradient painted over it.\n *\n * A painted gradient has to name the colour it fades FROM, and no colour is\n * right: measured on the workbench, the strip sits on `bg-surface-raised`\n * (oklch 0.208) while `--background` is oklch 0.129, so an overlay fading to\n * the background token washed a visibly wrong band across the strip — and it\n * would be wrong differently on every surface a tab strip can sit on (card,\n * dialog, panel) and in every theme.\n *\n * Masking fades the CONTENT to transparency instead, revealing whatever is\n * actually behind it. It needs no colour token, so it is correct on every\n * surface and every theme by construction.\n */\nfunction edgeFadeMask(overflow: { start: boolean; end: boolean }): string | undefined {\n if (!overflow.start && !overflow.end) return undefined\n const stops = [\n overflow.start ? `transparent 0, black ${TABS_FADE_ZONE}` : 'black 0',\n overflow.end ? `black calc(100% - ${TABS_FADE_ZONE}), transparent 100%` : 'black 100%',\n ]\n return `linear-gradient(to right, ${stops.join(', ')})`\n}\n\n/**\n * One edge's slide affordance: the DISCREET control the design asks for — a\n * quiet chevron over the faded zone, with no box and no background of its own\n * (the mask above is what makes room for it). Mouse-only by intent\n * (`aria-hidden`, unfocusable): keyboard users already reach every tab through\n * the tab list's roving arrow-key focus, so exposing this to the tab order\n * would add a stop that does nothing arrows don't.\n */\nfunction TabsListSlideAffordance({ side, onSlide }: { side: 'start' | 'end'; onSlide: () => void }): React.JSX.Element {\n const Chevron = side === 'start' ? ChevronLeft : ChevronRight\n return (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n data-slot=\"tabs-list-slide\"\n data-side={side}\n onClick={onSlide}\n style={{ width: TABS_FADE_ZONE }}\n className={cn(\n \"absolute inset-y-0 z-10 flex cursor-pointer items-center border-0 bg-transparent p-0\",\n side === 'start' ? \"left-0 justify-start\" : \"right-0 justify-end\",\n )}\n >\n <Chevron className=\"size-4 text-muted-foreground opacity-60 transition-opacity hover:opacity-100\" />\n </button>\n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>): React.JSX.Element {\n const isVertical = React.useContext(TabsOrientationContext) === 'vertical'\n const listRef = React.useRef<HTMLDivElement>(null)\n const overflow = useHorizontalOverflow(listRef)\n\n /*\n * Vertical wheel input slides the strip horizontally — the strip is a\n * one-axis surface, so a wheel over it can only mean \"move along it\". A\n * NATIVE non-passive listener, not React `onWheel`: React registers wheel\n * passively at the root, so `preventDefault()` there is ignored and every\n * translated tick would also scroll the page behind the strip.\n */\n React.useEffect(() => {\n const el = listRef.current\n if (!el || isVertical) return\n const onWheel = (event: WheelEvent) => {\n if (el.scrollWidth <= el.clientWidth) return\n const delta = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY\n if (delta === 0) return\n el.scrollLeft += delta\n event.preventDefault()\n }\n el.addEventListener('wheel', onWheel, { passive: false })\n return () => el.removeEventListener('wheel', onWheel)\n }, [isVertical])\n\n const fadeMask = edgeFadeMask(overflow)\n\n const slideBy = React.useCallback((direction: 1 | -1) => {\n const el = listRef.current\n if (!el) return\n el.scrollBy({ left: direction * el.clientWidth * 0.6, behavior: 'smooth' })\n }, [])\n\n if (isVertical) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n // Vertical: clean nav rail (column of items, no boxed container).\n className={cn(\"flex flex-col items-stretch justify-start gap-item-xs\", className)}\n {...props}\n />\n )\n }\n\n /*\n * Horizontal: underline tab bar that SCROLLS when it overflows, instead of\n * widening the page (measured on the workbench artifact list, whose concern\n * tabs outgrew the viewport).\n *\n * ## Why the bottom rule is a wrapper layer, not `border-b` on the list\n *\n * Becoming a scrollport is what forces the restructure: `overflow-x: auto`\n * makes `overflow-y` compute to a clipping value, and the old geometry —\n * `border-b` on the list with `-mb-px` triggers overlapping their 2px\n * indicator onto the 1px rule — needs the trigger to paint one pixel PAST\n * the list's content edge, which a scrollport clips. So the rule is drawn by\n * a non-scrolling absolutely-positioned layer in a wrapper, the triggers\n * drop the overlap trick, and the indicator's bottom pixel lands on the rule\n * because both sit on the wrapper's last pixel row. Same rendered result,\n * scroll-safe.\n *\n * The scrollbar itself is suppressed on every engine (`scrollbar-width` for\n * Firefox, the `::-webkit-scrollbar` pseudo elsewhere): a native horizontal\n * scrollbar under a tab strip — Windows most visibly — reads as a broken\n * layout, and the gradient affordances + wheel translation replace what it\n * afforded.\n */\n return (\n <div data-slot=\"tabs-list-scrollport\" className=\"relative w-full\">\n {/* The full-width rule lives OUTSIDE the masked strip, so the edge fade never eats it. */}\n <span aria-hidden=\"true\" className=\"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-border\" />\n <TabsPrimitive.List\n ref={listRef}\n data-slot=\"tabs-list\"\n style={{ maskImage: fadeMask, WebkitMaskImage: fadeMask }}\n className={cn(\n \"relative flex w-full items-center gap-card overflow-x-auto overscroll-x-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\n className\n )}\n {...props}\n />\n {overflow.start && <TabsListSlideAffordance side=\"start\" onSlide={() => slideBy(-1)} />}\n {overflow.end && <TabsListSlideAffordance side=\"end\" onSlide={() => slideBy(1)} />}\n </div>\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>): React.JSX.Element {\n const isVertical = React.useContext(TabsOrientationContext) === 'vertical'\n const { getRecipe } = useUI()\n // Vertical rail → FILLED (soft fill on select); horizontal → UNDERLINE.\n const recipe = getRecipe(UIBehavior.SELECTABLE, isVertical ? SelectableVariant.FILLED : SelectableVariant.UNDERLINE)\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"inline-flex items-center gap-1.5 text-sm font-medium whitespace-nowrap [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n isVertical\n // Vertical: full-width, left-aligned rail item (FILLED recipe fills it).\n ? \"w-full justify-start rounded-md px-card-sm py-item\"\n // Horizontal: content-width underline tab (UNDERLINE recipe draws the\n // bottom border). No `-mb-px` overlap here: the list is a scrollport\n // (which would clip it) and the 1px rule is the wrapper's own layer,\n // sharing the wrapper's last pixel row with this indicator.\n : \"justify-center px-card-sm py-item\",\n // Style from the orientation-appropriate SELECTABLE recipe.\n recipe.base,\n recipe.states.focus,\n recipe.states.selected,\n recipe.states.disabled,\n recipe.motion.transition,\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>): React.JSX.Element {\n return (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.TAB_PANEL}>\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n </Surface>\n )\n}\n\nexport const Tabs = createCompoundPreset<TabsCompound>(TabsRoot, { List: TabsList, Trigger: TabsTrigger, Content: TabsContent })\n"]}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../../src/components/sections/tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\n\nimport {\n TabsCompound,\n createCompoundPreset,\n cn,\n useUI,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { FrontendComponentType, SelectableVariant, SurfaceVariant, UIBehavior } from \"@wildo-ai/presets-components-models\"\n\n/**\n * Orientation shared from TabsRoot down to List/Trigger so each sub-component can\n * choose the right `SELECTABLE` recipe. Radix exposes orientation only as a\n * `data-orientation` DOM attribute, but a recipe's utility strings (which already\n * carry `data-[state=active]:…`) can't be re-scoped per orientation from a class\n * list — so the choice is made in JS here.\n *\n * Horizontal tabs use `UNDERLINE` (a bottom-border indicator on separated items —\n * the canonical modern-SaaS navigation-tab look: \"separated = tabs, connected by\n * a track = segmented control\"). The vertical rail keeps `FILLED` (a soft fill on\n * the selected rail item).\n */\nconst TabsOrientationContext = React.createContext<'horizontal' | 'vertical'>('horizontal')\n\nfunction TabsRoot({\n className,\n orientation = 'horizontal',\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>): React.JSX.Element {\n const resolved = orientation === 'vertical' ? 'vertical' : 'horizontal'\n return (\n <TabsOrientationContext.Provider value={resolved}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n orientation={orientation}\n className={cn(\"flex flex-col gap-element data-[orientation=vertical]:flex-row data-[orientation=vertical]:gap-card\", className)}\n {...props}\n />\n </TabsOrientationContext.Provider>\n )\n}\n\n/**\n * Overflow state of the horizontal scrollport — which edges have more content.\n *\n * Updated from three signals, because each misses a case the others catch: the\n * `scroll` listener (user scrolled), a `ResizeObserver` on the list (viewport\n * grew/shrank — the common \"window resized\" case), and a per-render effect\n * (tab COUNT changed — children resizing does not move the list's own box, so\n * the observer cannot see it).\n */\nfunction useHorizontalOverflow(ref: React.RefObject<HTMLElement | null>): { start: boolean; end: boolean } {\n const [overflow, setOverflow] = React.useState({ start: false, end: false })\n\n const update = React.useCallback(() => {\n const el = ref.current\n if (!el) return\n // 1px slack: fractional layout widths make scrollLeft/scrollWidth disagree by <1.\n const start = el.scrollLeft > 1\n const end = el.scrollLeft + el.clientWidth < el.scrollWidth - 1\n setOverflow((prev) => (prev.start === start && prev.end === end ? prev : { start, end }))\n }, [ref])\n\n React.useEffect(() => {\n const el = ref.current\n if (!el) return\n el.addEventListener('scroll', update, { passive: true })\n const observer = new ResizeObserver(update)\n observer.observe(el)\n return () => {\n el.removeEventListener('scroll', update)\n observer.disconnect()\n }\n }, [ref, update])\n\n // No dependency array on purpose — re-measures after every render, which is\n // what catches content-only changes (a tab added/removed, a label resolving\n // from i18n). Three numeric reads; cheap enough not to gate.\n React.useEffect(update)\n\n return overflow\n}\n\n/** Width of each fade/affordance zone. One constant so the mask and the button agree. */\nconst TABS_FADE_ZONE = '2.5rem'\n\n/**\n * The edge fade, as a MASK on the strip rather than a gradient painted over it.\n *\n * A painted gradient has to name the colour it fades FROM, and no colour is\n * right: measured on the workbench, the strip sits on `bg-surface-raised`\n * (oklch 0.208) while `--background` is oklch 0.129, so an overlay fading to\n * the background token washed a visibly wrong band across the strip — and it\n * would be wrong differently on every surface a tab strip can sit on (card,\n * dialog, panel) and in every theme.\n *\n * Masking fades the CONTENT to transparency instead, revealing whatever is\n * actually behind it. It needs no colour token, so it is correct on every\n * surface and every theme by construction.\n */\nfunction edgeFadeMask(overflow: { start: boolean; end: boolean }): string | undefined {\n if (!overflow.start && !overflow.end) return undefined\n const stops = [\n overflow.start ? `transparent 0, black ${TABS_FADE_ZONE}` : 'black 0',\n overflow.end ? `black calc(100% - ${TABS_FADE_ZONE}), transparent 100%` : 'black 100%',\n ]\n return `linear-gradient(to right, ${stops.join(', ')})`\n}\n\n/**\n * One edge's slide affordance: the DISCREET control the design asks for — a\n * quiet chevron over the faded zone, with no box and no background of its own\n * (the mask above is what makes room for it). Mouse-only by intent\n * (`aria-hidden`, unfocusable): keyboard users already reach every tab through\n * the tab list's roving arrow-key focus, so exposing this to the tab order\n * would add a stop that does nothing arrows don't.\n */\nfunction TabsListSlideAffordance({ side, onSlide }: { side: 'start' | 'end'; onSlide: () => void }): React.JSX.Element {\n const Chevron = side === 'start' ? ChevronLeft : ChevronRight\n return (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n data-slot=\"tabs-list-slide\"\n data-side={side}\n onClick={onSlide}\n style={{ width: TABS_FADE_ZONE }}\n className={cn(\n \"absolute inset-y-0 z-10 flex cursor-pointer items-center border-0 bg-transparent p-0\",\n side === 'start' ? \"left-0 justify-start\" : \"right-0 justify-end\",\n )}\n >\n <Chevron className=\"size-4 text-muted-foreground opacity-60 transition-opacity hover:opacity-100\" />\n </button>\n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>): React.JSX.Element {\n const isVertical = React.useContext(TabsOrientationContext) === 'vertical'\n const listRef = React.useRef<HTMLDivElement>(null)\n const overflow = useHorizontalOverflow(listRef)\n\n /*\n * Vertical wheel input slides the strip horizontally — the strip is a\n * one-axis surface, so a wheel over it can only mean \"move along it\". A\n * NATIVE non-passive listener, not React `onWheel`: React registers wheel\n * passively at the root, so `preventDefault()` there is ignored and every\n * translated tick would also scroll the page behind the strip.\n */\n React.useEffect(() => {\n const el = listRef.current\n if (!el || isVertical) return\n const onWheel = (event: WheelEvent) => {\n if (el.scrollWidth <= el.clientWidth) return\n const delta = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY\n if (delta === 0) return\n el.scrollLeft += delta\n event.preventDefault()\n }\n el.addEventListener('wheel', onWheel, { passive: false })\n return () => el.removeEventListener('wheel', onWheel)\n }, [isVertical])\n\n const fadeMask = edgeFadeMask(overflow)\n\n const slideBy = React.useCallback((direction: 1 | -1) => {\n const el = listRef.current\n if (!el) return\n el.scrollBy({ left: direction * el.clientWidth * 0.6, behavior: 'smooth' })\n }, [])\n\n if (isVertical) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n // Vertical: clean nav rail (column of items, no boxed container).\n className={cn(\"flex flex-col items-stretch justify-start gap-item-xs\", className)}\n {...props}\n />\n )\n }\n\n /*\n * Horizontal: underline tab bar that SCROLLS when it overflows, instead of\n * widening the page (measured on the workbench artifact list, whose concern\n * tabs outgrew the viewport).\n *\n * ## Why the bottom rule is a wrapper layer, not `border-b` on the list\n *\n * Becoming a scrollport is what forces the restructure: `overflow-x: auto`\n * makes `overflow-y` compute to a clipping value, and the old geometry —\n * `border-b` on the list with `-mb-px` triggers overlapping their 2px\n * indicator onto the 1px rule — needs the trigger to paint one pixel PAST\n * the list's content edge, which a scrollport clips. So the rule is drawn by\n * a non-scrolling absolutely-positioned layer in a wrapper, the triggers\n * drop the overlap trick, and the indicator's bottom pixel lands on the rule\n * because both sit on the wrapper's last pixel row. Same rendered result,\n * scroll-safe.\n *\n * The scrollbar itself is suppressed on every engine (`scrollbar-width` for\n * Firefox, the `::-webkit-scrollbar` pseudo elsewhere): a native horizontal\n * scrollbar under a tab strip — Windows most visibly — reads as a broken\n * layout, and the gradient affordances + wheel translation replace what it\n * afforded.\n */\n return (\n <div data-slot=\"tabs-list-scrollport\" className=\"relative w-full\">\n {/* The full-width rule lives OUTSIDE the masked strip, so the edge fade never eats it. */}\n <span aria-hidden=\"true\" className=\"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-border\" />\n <TabsPrimitive.List\n ref={listRef}\n data-slot=\"tabs-list\"\n style={{ maskImage: fadeMask, WebkitMaskImage: fadeMask }}\n className={cn(\n \"relative flex w-full items-center gap-card overflow-x-auto overscroll-x-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\n className\n )}\n {...props}\n />\n {overflow.start && <TabsListSlideAffordance side=\"start\" onSlide={() => slideBy(-1)} />}\n {overflow.end && <TabsListSlideAffordance side=\"end\" onSlide={() => slideBy(1)} />}\n </div>\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>): React.JSX.Element {\n const isVertical = React.useContext(TabsOrientationContext) === 'vertical'\n const { getRecipe } = useUI()\n // Vertical rail → FILLED (soft fill on select); horizontal → UNDERLINE.\n const recipe = getRecipe(UIBehavior.SELECTABLE, isVertical ? SelectableVariant.FILLED : SelectableVariant.UNDERLINE)\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n // `cursor-pointer` sits here rather than in the recipe, matching the\n // accordion trigger: an element that switches the visible panel must\n // read as clickable whatever the theme dresses it in.\n \"inline-flex cursor-pointer items-center gap-1.5 text-sm font-medium whitespace-nowrap [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n isVertical\n // Vertical: full-width, left-aligned rail item (FILLED recipe fills it).\n ? \"w-full justify-start rounded-md px-card-sm py-item\"\n // Horizontal: content-width underline tab (UNDERLINE recipe draws the\n // bottom border). No `-mb-px` overlap here: the list is a scrollport\n // (which would clip it) and the 1px rule is the wrapper's own layer,\n // sharing the wrapper's last pixel row with this indicator.\n : \"justify-center px-card-sm py-item\",\n // Style from the orientation-appropriate SELECTABLE recipe.\n recipe.base,\n recipe.states.focus,\n recipe.states.selected,\n recipe.states.disabled,\n recipe.motion.transition,\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>): React.JSX.Element {\n return (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.TAB_PANEL}>\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n </Surface>\n )\n}\n\nexport const Tabs = createCompoundPreset<TabsCompound>(TabsRoot, { List: TabsList, Trigger: TabsTrigger, Content: TabsContent })\n"]}
@@ -169,6 +169,7 @@ export * from './components/ai-elements/decision/approval';
169
169
  export * from './components/ai-elements/decision/decision-request';
170
170
  export * from './components/ai-elements/stream/execution-stream';
171
171
  export * from './registration/register-default-presets';
172
+ export * from './registration/register-provider-components';
172
173
  export * from './registration/register-default-icons';
173
174
  export * from './registration/register-default-animations';
174
175
  export * from './registration/register-common-enums';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -189,6 +189,7 @@ export * from './components/ai-elements/decision/approval.js';
189
189
  export * from './components/ai-elements/decision/decision-request.js';
190
190
  export * from './components/ai-elements/stream/execution-stream.js';
191
191
  export * from './registration/register-default-presets.js';
192
+ export * from './registration/register-provider-components.js';
192
193
  export * from './registration/register-default-icons.js';
193
194
  export * from './registration/register-default-animations.js';
194
195
  export * from './registration/register-common-enums.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Preset Components\n *\n * Default component implementations for the Wildo AI framework.\n * Depends on saas-frontend-lib for contracts, registry, and infrastructure.\n *\n * This library contains:\n * - All core preset implementations (registered via registerDefaultPresets)\n * - Theme variants (glass, neo-brutalist)\n *\n * Used by:\n * - App entry points (via registerDefaultPresets() in componentLoader)\n * - apps-custom (can override presets or add custom variants)\n */\n\n// Actions\nexport * from './components/actions/action-bar';\nexport * from './components/actions/action-button';\nexport * from './components/actions/button';\nexport * from './components/actions/button-group';\n\n// Data Display\nexport * from './components/data-display/pdf-viewer/pdf-viewer.lazy';\nexport * from './components/data-display/avatar';\nexport * from './components/data-display/badge';\nexport * from './components/data-display/description-list';\nexport * from './components/data-display/markdown-content';\nexport * from './components/data-display/formatters/display-field-bigdecimal';\nexport * from './components/data-display/formatters/display-field-boolean';\nexport * from './components/data-display/formatters/display-field-code';\nexport * from './components/data-display/formatters/display-field-enum';\nexport * from './components/data-display/formatters/display-field-file';\nexport * from './components/data-display/formatters/display-field-file-image';\nexport * from './components/data-display/formatters/display-field-file-video';\nexport * from './components/data-display/formatters/display-field-file-audio';\nexport * from './components/data-display/formatters/display-field-file-document';\nexport * from './components/data-display/formatters/display-field-file-gallery';\nexport * from './components/data-display/formatters/display-field-money';\nexport * from './components/data-display/formatters/display-field-duration';\nexport * from './components/data-display/formatters/display-field-phone';\nexport * from './components/data-display/formatters/display-field-number';\nexport * from './components/data-display/formatters/display-field-range-bigdecimal';\nexport * from './components/data-display/formatters/display-field-range-money';\nexport * from './components/data-display/formatters/display-field-date';\nexport * from './components/data-display/formatters/display-field-datetime';\nexport * from './components/data-display/formatters/display-field-time';\nexport * from './components/data-display/formatters/display-field-range-number';\nexport * from './components/data-display/formatters/display-field-range-date';\nexport * from './components/data-display/formatters/display-field-range-datetime';\nexport * from './components/data-display/formatters/display-field-range-time';\nexport * from './components/data-display/formatters/display-field-string';\n\n// Feedback\nexport * from './components/feedback/danger-zone';\nexport * from './components/feedback/error-display';\nexport * from './components/feedback/features/feature-unavailable-prompt';\nexport * from './components/feedback/features/feature-unavailable-dialog';\nexport * from './components/feedback/features/feature-lock-badge';\nexport * from './components/feedback/features/feature-limit-indicator';\nexport * from './components/feedback/operations-confirm-critical';\n\n// Billing\nexport * from './components/billing/billing-pricing-table';\nexport * from './components/billing/billing-subscription-status';\nexport * from './components/billing/billing-usage-dashboard';\nexport * from './components/billing/billing-portal-link';\nexport * from './components/billing/billing-invoice-history';\nexport * from './components/feedback/empty-state';\nexport * from './components/feedback/celebration-overlay';\nexport * from './components/feedback/notification-center';\nexport * from './components/feedback/progress';\nexport * from './components/feedback/skeleton';\nexport * from './components/feedback/toast';\n\n// Form\nexport * from './components/form/autosave-indicator';\nexport * from './components/form/combobox';\nexport * from './components/form/chromes/field';\nexport * from './components/form/controls/date-time/calendar';\nexport * from './components/form/controls/boolean/checkbox';\nexport * from './components/form/controls/string/color-input';\n// Code-editor surfaces: only the LAZY wrapper and the presets are public.\n// Never `export * from './components/form/controls/code-editor/cm6-editor'` —\n// a root re-export of the heavy CodeMirror module would merge its payload into\n// the eager entry chunk (guarded by `pnpm check:lazy-boundaries`).\nexport * from './components/form/controls/code-editor/cm6-editor-appearance';\nexport * from './components/form/controls/code-editor/cm6-editor.lazy';\nexport * from './components/form/controls/code-editor/form-field-code';\nexport * from './components/form/controls/code-editor/markdown-editor';\nexport * from './components/form/controls/string/inline-edit-text';\nexport * from './components/form/controls/date-time/date-range-picker';\nexport * from './components/form/controls/date-time/datepicker';\nexport * from './components/form/controls/date-time/datetime-picker';\nexport * from './components/form/controls/date-time/datetime-range-picker';\nexport * from './components/form/controls/file/file-upload';\nexport * from './components/form/controls/file/image-crop';\nexport * from './components/form/controls/input';\nexport * from './components/form/controls/input-group';\nexport * from './components/form/controls/string/input-otp';\nexport * from './components/form/controls/string/password-input';\nexport * from './components/form/controls/enum/radio';\nexport * from './components/form/controls/enum/select';\nexport * from './components/form/controls/enum/select-multiple';\nexport * from './components/form/controls/number/slider';\nexport * from './components/form/controls/boolean/switch';\nexport * from './components/form/controls/string/textarea';\nexport * from './components/form/controls/date-time/time-picker';\nexport * from './components/form/controls/date-time/time-range-picker';\nexport * from './components/form/controls/boolean/toggle';\nexport * from './components/form/controls/enum/toggle-group';\nexport * from './components/form/controls/boolean/toggle-group-boolean';\nexport * from './components/form/controls/form-field-checkbox-group';\n\n// Layout\nexport * from './components/layout/aspect-ratio';\nexport * from './components/layout/carousel';\nexport * from './components/layout/divider';\nexport * from './components/layout/resizable';\nexport * from './components/layout/scroll-area';\nexport * from './components/layout/separator';\n\n// Navigation\nexport * from './components/navigation/breadcrumb';\nexport * from './components/navigation/command';\nexport * from './components/navigation/menu-bar';\nexport * from './components/navigation/navbar';\nexport * from './components/navigation/sidebar';\n\n// Overlays\nexport * from './components/overlays/containers/alert';\nexport * from './components/overlays/containers/alert-dialog';\nexport * from './components/overlays/containers/dialog';\nexport * from './components/overlays/containers/drawer';\nexport * from './components/overlays/containers/sheet';\nexport * from './components/overlays/floating/context-menu';\nexport * from './components/overlays/floating/dropdown-menu';\nexport * from './components/overlays/floating/hover-card';\nexport * from './components/overlays/floating/popover';\nexport * from './components/overlays/floating/tooltip';\n\n// Sections\nexport * from './components/sections/accordion';\nexport * from './components/sections/card';\nexport * from './components/sections/collapsible';\nexport * from './components/sections/pagination';\nexport * from './components/sections/stacked-layout';\nexport * from './components/sections/stepper';\nexport * from './components/sections/table';\nexport * from './components/sections/tabs';\n\n// Typography\nexport * from './components/typography/heading';\nexport * from './components/typography/label';\nexport * from './components/typography/link';\nexport * from './components/typography/text';\nexport * from './components/typography/truncated-text';\n\n// AI Elements\nexport * from './components/ai-elements/artifacts/artifact';\nexport * from './components/ai-elements/artifacts/artifact-browser';\nexport * from './components/ai-elements/artifacts/code-block';\nexport * from './components/ai-elements/artifacts/image';\nexport * from './components/ai-elements/artifacts/web-preview';\nexport * from './components/ai-elements/chat/conversation';\nexport * from './components/ai-elements/chat/message';\nexport * from './components/ai-elements/chat/prompt-input';\nexport * from './components/ai-elements/chat/sources';\nexport * from './components/ai-elements/chat/suggestion';\nexport * from './components/ai-elements/execution/confirmation';\nexport * from './components/ai-elements/execution/queue';\n\n// Resource preset surfaces\nexport * from './config/resources';\nexport * from './components/ai-elements/execution/task';\nexport * from './components/ai-elements/execution/tool';\n/**\n * The graph subtree is exported ONLY through its lazy door. The eager leaves beneath it\n * (`canvas`, `connection`, `controls`, `edge`, `node`, `panel`, `toolbar`) pull in\n * `@xyflow/react` and — via `canvas` — `@xyflow/react/dist/style.css`, which no Node ESM loader\n * can resolve. Exporting them here made this package's root unloadable in Node (and therefore\n * `@wildo-ai/saas-specifications`, the dev companion and the CLI), and put the whole graph\n * library in every application's main bundle. See `graph/graph-runtime.ts`.\n */\nexport * from './components/ai-elements/graph/graph.lazy';\nexport * from './components/ai-elements/meta/agent';\n// The LAZY door, never the module: `meta/context` prices token usage through `tokenlens`,\n// whose model catalogue is 55.2 kB gzipped. Exporting the module here would put it back in\n// first load for every application. See `context.lazy.tsx`.\nexport * from './components/ai-elements/meta/context.lazy';\nexport * from './components/ai-elements/meta/model-selector';\nexport * from './components/ai-elements/meta/open-in-chat';\nexport * from './components/ai-elements/shared/loader';\nexport * from './components/ai-elements/shared/shimmer';\nexport * from './components/ai-elements/trace/chain-of-thought';\nexport * from './components/ai-elements/trace/checkpoint';\nexport * from './components/ai-elements/trace/inline-citation';\nexport * from './components/ai-elements/trace/plan';\nexport * from './components/ai-elements/trace/reasoning';\n\n// AI Elements — Generic Decision & Stream (preset-level)\nexport * from './components/ai-elements/decision/approval';\nexport * from './components/ai-elements/decision/decision-request';\nexport * from './components/ai-elements/stream/execution-stream';\n\nexport * from './registration/register-default-presets';\nexport * from './registration/register-default-icons';\nexport * from './registration/register-default-animations';\nexport * from './registration/register-common-enums';\n\n// Preset Frontend Configuration\nexport * from './config';\nexport * from './config/resources/identity.resource-presets';\nexport * from './config/resources/organizations.resource-presets';\nexport * from './config/resources/application.resource-presets';\nexport * from './config/resources/security.resource-presets';\nexport * from './config/resources/billing.resource-presets';\nexport * from './config/resources/webhooks.resource-presets';\nexport * from './config/resources/guidance.resource-presets';\n\n// Theme variants (no intermediary barrel)\nexport { neoBrutalistTheme } from './themes/neo-brutalist.theme';\nexport { denseTheme } from './themes/dense.theme';\nexport { glassTheme } from './themes/glass.theme';\nexport { editorialTheme } from './themes/editorial.theme';\nexport { terminalTheme } from './themes/terminal.theme';\nexport { cozyTheme } from './themes/cozy.theme';\nexport { tradingTheme } from './themes/trading.theme';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Preset Components\n *\n * Default component implementations for the Wildo AI framework.\n * Depends on saas-frontend-lib for contracts, registry, and infrastructure.\n *\n * This library contains:\n * - All core preset implementations (registered via registerDefaultPresets)\n * - Theme variants (glass, neo-brutalist)\n *\n * Used by:\n * - App entry points (via registerDefaultPresets() in componentLoader)\n * - apps-custom (can override presets or add custom variants)\n */\n\n// Actions\nexport * from './components/actions/action-bar';\nexport * from './components/actions/action-button';\nexport * from './components/actions/button';\nexport * from './components/actions/button-group';\n\n// Data Display\nexport * from './components/data-display/pdf-viewer/pdf-viewer.lazy';\nexport * from './components/data-display/avatar';\nexport * from './components/data-display/badge';\nexport * from './components/data-display/description-list';\nexport * from './components/data-display/markdown-content';\nexport * from './components/data-display/formatters/display-field-bigdecimal';\nexport * from './components/data-display/formatters/display-field-boolean';\nexport * from './components/data-display/formatters/display-field-code';\nexport * from './components/data-display/formatters/display-field-enum';\nexport * from './components/data-display/formatters/display-field-file';\nexport * from './components/data-display/formatters/display-field-file-image';\nexport * from './components/data-display/formatters/display-field-file-video';\nexport * from './components/data-display/formatters/display-field-file-audio';\nexport * from './components/data-display/formatters/display-field-file-document';\nexport * from './components/data-display/formatters/display-field-file-gallery';\nexport * from './components/data-display/formatters/display-field-money';\nexport * from './components/data-display/formatters/display-field-duration';\nexport * from './components/data-display/formatters/display-field-phone';\nexport * from './components/data-display/formatters/display-field-number';\nexport * from './components/data-display/formatters/display-field-range-bigdecimal';\nexport * from './components/data-display/formatters/display-field-range-money';\nexport * from './components/data-display/formatters/display-field-date';\nexport * from './components/data-display/formatters/display-field-datetime';\nexport * from './components/data-display/formatters/display-field-time';\nexport * from './components/data-display/formatters/display-field-range-number';\nexport * from './components/data-display/formatters/display-field-range-date';\nexport * from './components/data-display/formatters/display-field-range-datetime';\nexport * from './components/data-display/formatters/display-field-range-time';\nexport * from './components/data-display/formatters/display-field-string';\n\n// Feedback\nexport * from './components/feedback/danger-zone';\nexport * from './components/feedback/error-display';\nexport * from './components/feedback/features/feature-unavailable-prompt';\nexport * from './components/feedback/features/feature-unavailable-dialog';\nexport * from './components/feedback/features/feature-lock-badge';\nexport * from './components/feedback/features/feature-limit-indicator';\nexport * from './components/feedback/operations-confirm-critical';\n\n// Billing\nexport * from './components/billing/billing-pricing-table';\nexport * from './components/billing/billing-subscription-status';\nexport * from './components/billing/billing-usage-dashboard';\nexport * from './components/billing/billing-portal-link';\nexport * from './components/billing/billing-invoice-history';\nexport * from './components/feedback/empty-state';\nexport * from './components/feedback/celebration-overlay';\nexport * from './components/feedback/notification-center';\nexport * from './components/feedback/progress';\nexport * from './components/feedback/skeleton';\nexport * from './components/feedback/toast';\n\n// Form\nexport * from './components/form/autosave-indicator';\nexport * from './components/form/combobox';\nexport * from './components/form/chromes/field';\nexport * from './components/form/controls/date-time/calendar';\nexport * from './components/form/controls/boolean/checkbox';\nexport * from './components/form/controls/string/color-input';\n// Code-editor surfaces: only the LAZY wrapper and the presets are public.\n// Never `export * from './components/form/controls/code-editor/cm6-editor'` —\n// a root re-export of the heavy CodeMirror module would merge its payload into\n// the eager entry chunk (guarded by `pnpm check:lazy-boundaries`).\nexport * from './components/form/controls/code-editor/cm6-editor-appearance';\nexport * from './components/form/controls/code-editor/cm6-editor.lazy';\nexport * from './components/form/controls/code-editor/form-field-code';\nexport * from './components/form/controls/code-editor/markdown-editor';\nexport * from './components/form/controls/string/inline-edit-text';\nexport * from './components/form/controls/date-time/date-range-picker';\nexport * from './components/form/controls/date-time/datepicker';\nexport * from './components/form/controls/date-time/datetime-picker';\nexport * from './components/form/controls/date-time/datetime-range-picker';\nexport * from './components/form/controls/file/file-upload';\nexport * from './components/form/controls/file/image-crop';\nexport * from './components/form/controls/input';\nexport * from './components/form/controls/input-group';\nexport * from './components/form/controls/string/input-otp';\nexport * from './components/form/controls/string/password-input';\nexport * from './components/form/controls/enum/radio';\nexport * from './components/form/controls/enum/select';\nexport * from './components/form/controls/enum/select-multiple';\nexport * from './components/form/controls/number/slider';\nexport * from './components/form/controls/boolean/switch';\nexport * from './components/form/controls/string/textarea';\nexport * from './components/form/controls/date-time/time-picker';\nexport * from './components/form/controls/date-time/time-range-picker';\nexport * from './components/form/controls/boolean/toggle';\nexport * from './components/form/controls/enum/toggle-group';\nexport * from './components/form/controls/boolean/toggle-group-boolean';\nexport * from './components/form/controls/form-field-checkbox-group';\n\n// Layout\nexport * from './components/layout/aspect-ratio';\nexport * from './components/layout/carousel';\nexport * from './components/layout/divider';\nexport * from './components/layout/resizable';\nexport * from './components/layout/scroll-area';\nexport * from './components/layout/separator';\n\n// Navigation\nexport * from './components/navigation/breadcrumb';\nexport * from './components/navigation/command';\nexport * from './components/navigation/menu-bar';\nexport * from './components/navigation/navbar';\nexport * from './components/navigation/sidebar';\n\n// Overlays\nexport * from './components/overlays/containers/alert';\nexport * from './components/overlays/containers/alert-dialog';\nexport * from './components/overlays/containers/dialog';\nexport * from './components/overlays/containers/drawer';\nexport * from './components/overlays/containers/sheet';\nexport * from './components/overlays/floating/context-menu';\nexport * from './components/overlays/floating/dropdown-menu';\nexport * from './components/overlays/floating/hover-card';\nexport * from './components/overlays/floating/popover';\nexport * from './components/overlays/floating/tooltip';\n\n// Sections\nexport * from './components/sections/accordion';\nexport * from './components/sections/card';\nexport * from './components/sections/collapsible';\nexport * from './components/sections/pagination';\nexport * from './components/sections/stacked-layout';\nexport * from './components/sections/stepper';\nexport * from './components/sections/table';\nexport * from './components/sections/tabs';\n\n// Typography\nexport * from './components/typography/heading';\nexport * from './components/typography/label';\nexport * from './components/typography/link';\nexport * from './components/typography/text';\nexport * from './components/typography/truncated-text';\n\n// AI Elements\nexport * from './components/ai-elements/artifacts/artifact';\nexport * from './components/ai-elements/artifacts/artifact-browser';\nexport * from './components/ai-elements/artifacts/code-block';\nexport * from './components/ai-elements/artifacts/image';\nexport * from './components/ai-elements/artifacts/web-preview';\nexport * from './components/ai-elements/chat/conversation';\nexport * from './components/ai-elements/chat/message';\nexport * from './components/ai-elements/chat/prompt-input';\nexport * from './components/ai-elements/chat/sources';\nexport * from './components/ai-elements/chat/suggestion';\nexport * from './components/ai-elements/execution/confirmation';\nexport * from './components/ai-elements/execution/queue';\n\n// Resource preset surfaces\nexport * from './config/resources';\nexport * from './components/ai-elements/execution/task';\nexport * from './components/ai-elements/execution/tool';\n/**\n * The graph subtree is exported ONLY through its lazy door. The eager leaves beneath it\n * (`canvas`, `connection`, `controls`, `edge`, `node`, `panel`, `toolbar`) pull in\n * `@xyflow/react` and — via `canvas` — `@xyflow/react/dist/style.css`, which no Node ESM loader\n * can resolve. Exporting them here made this package's root unloadable in Node (and therefore\n * `@wildo-ai/saas-specifications`, the dev companion and the CLI), and put the whole graph\n * library in every application's main bundle. See `graph/graph-runtime.ts`.\n */\nexport * from './components/ai-elements/graph/graph.lazy';\nexport * from './components/ai-elements/meta/agent';\n// The LAZY door, never the module: `meta/context` prices token usage through `tokenlens`,\n// whose model catalogue is 55.2 kB gzipped. Exporting the module here would put it back in\n// first load for every application. See `context.lazy.tsx`.\nexport * from './components/ai-elements/meta/context.lazy';\nexport * from './components/ai-elements/meta/model-selector';\nexport * from './components/ai-elements/meta/open-in-chat';\nexport * from './components/ai-elements/shared/loader';\nexport * from './components/ai-elements/shared/shimmer';\nexport * from './components/ai-elements/trace/chain-of-thought';\nexport * from './components/ai-elements/trace/checkpoint';\nexport * from './components/ai-elements/trace/inline-citation';\nexport * from './components/ai-elements/trace/plan';\nexport * from './components/ai-elements/trace/reasoning';\n\n// AI Elements — Generic Decision & Stream (preset-level)\nexport * from './components/ai-elements/decision/approval';\nexport * from './components/ai-elements/decision/decision-request';\nexport * from './components/ai-elements/stream/execution-stream';\n\nexport * from './registration/register-default-presets';\nexport * from './registration/register-provider-components';\nexport * from './registration/register-default-icons';\nexport * from './registration/register-default-animations';\nexport * from './registration/register-common-enums';\n\n// Preset Frontend Configuration\nexport * from './config';\nexport * from './config/resources/identity.resource-presets';\nexport * from './config/resources/organizations.resource-presets';\nexport * from './config/resources/application.resource-presets';\nexport * from './config/resources/security.resource-presets';\nexport * from './config/resources/billing.resource-presets';\nexport * from './config/resources/webhooks.resource-presets';\nexport * from './config/resources/guidance.resource-presets';\n\n// Theme variants (no intermediary barrel)\nexport { neoBrutalistTheme } from './themes/neo-brutalist.theme';\nexport { denseTheme } from './themes/dense.theme';\nexport { glassTheme } from './themes/glass.theme';\nexport { editorialTheme } from './themes/editorial.theme';\nexport { terminalTheme } from './themes/terminal.theme';\nexport { cozyTheme } from './themes/cozy.theme';\nexport { tradingTheme } from './themes/trading.theme';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"register-default-presets.d.ts","sourceRoot":"","sources":["../../../src/registration/register-default-presets.ts"],"names":[],"mappings":"AA2OA,wBAAgB,sBAAsB,IAAI,IAAI,CAmS7C"}
1
+ {"version":3,"file":"register-default-presets.d.ts","sourceRoot":"","sources":["../../../src/registration/register-default-presets.ts"],"names":[],"mappings":"AA4OA,wBAAgB,sBAAsB,IAAI,IAAI,CAsS7C"}
@@ -1,5 +1,6 @@
1
1
  import { FrontendComponentType, CorePresetNames } from '@wildo-ai/presets-components-models';
2
2
  import { ComponentRegistryService } from '@wildo-ai/saas-frontend-lib';
3
+ import { registerProviderComponents } from './register-provider-components.js';
3
4
  // === Actions ===
4
5
  import { ActionBar } from '../components/actions/action-bar.js';
5
6
  import { ActionButton } from '../components/actions/action-button.js';
@@ -197,6 +198,9 @@ import { AI_InlineCitation } from '../components/ai-elements/trace/inline-citati
197
198
  import { AI_Plan } from '../components/ai-elements/trace/plan.js';
198
199
  import { AI_Reasoning } from '../components/ai-elements/trace/reasoning.js';
199
200
  export function registerDefaultPresets() {
201
+ // Provider-contributed components ride with the presets: the app calls this
202
+ // once, and the file pickers this library ships are registered here too.
203
+ registerProviderComponents();
200
204
  // === Actions ===
201
205
  ComponentRegistryService.register(FrontendComponentType.LOW_LEVEL_ACTION_BAR, CorePresetNames.DEFAULT, ActionBar, { isConfigurable: true });
202
206
  ComponentRegistryService.register(FrontendComponentType.LOW_LEVEL_ACTION_BUTTON, CorePresetNames.DEFAULT, ActionButton, { isConfigurable: true });