@once-ui-system/core 1.7.12 → 1.8.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/AGENTS.md +53 -0
- package/README.md +27 -0
- package/agent/once-ui-codegen.mdc +27 -0
- package/ai/catalog.json +195 -634
- package/ai/components/Banner.json +2 -2
- package/ai/components/BlobFx.json +2 -2
- package/ai/components/Carousel.json +1 -0
- package/ai/components/ChartHeader.json +2 -2
- package/ai/components/Checkbox.json +2 -1
- package/ai/components/CompareImage.json +2 -1
- package/ai/components/ContextMenu.json +2 -2
- package/ai/components/Dialog.json +2 -0
- package/ai/components/HoverCard.json +2 -2
- package/ai/components/InfiniteScroll.json +2 -2
- package/ai/components/OgCard.json +3 -2
- package/ai/components/RadioButton.json +2 -1
- package/ai/components/ScrollContainer.json +2 -2
- package/ai/components/SegmentedControl.json +2 -2
- package/ai/components/Select.json +1 -1
- package/ai/components/SplitView.json +2 -2
- package/ai/components/Swiper.json +1 -0
- package/ai/components/Table.json +17 -2
- package/ai/components/ThemeSwitcher.json +2 -2
- package/ai/components/Tooltip.json +2 -2
- package/ai/examples/blocks/content/chat1content.ts +2 -0
- package/ai/examples/dashboard.tsx +1 -1
- package/ai/examples/settings.tsx +32 -28
- package/ai/manifest.json +2 -2
- package/ai/spec.json +64 -68
- package/dist/AGENTS.md +53 -0
- package/dist/README.md +27 -0
- package/dist/agent/once-ui-codegen.mdc +27 -0
- package/dist/ai/catalog.json +195 -634
- package/dist/ai/components/Banner.json +2 -2
- package/dist/ai/components/BlobFx.json +2 -2
- package/dist/ai/components/Carousel.json +1 -0
- package/dist/ai/components/ChartHeader.json +2 -2
- package/dist/ai/components/Checkbox.json +2 -1
- package/dist/ai/components/CompareImage.json +2 -1
- package/dist/ai/components/ContextMenu.json +2 -2
- package/dist/ai/components/Dialog.json +2 -0
- package/dist/ai/components/HoverCard.json +2 -2
- package/dist/ai/components/InfiniteScroll.json +2 -2
- package/dist/ai/components/OgCard.json +3 -2
- package/dist/ai/components/RadioButton.json +2 -1
- package/dist/ai/components/ScrollContainer.json +2 -2
- package/dist/ai/components/SegmentedControl.json +2 -2
- package/dist/ai/components/Select.json +1 -1
- package/dist/ai/components/SplitView.json +2 -2
- package/dist/ai/components/Swiper.json +1 -0
- package/dist/ai/components/Table.json +17 -2
- package/dist/ai/components/ThemeSwitcher.json +2 -2
- package/dist/ai/components/Tooltip.json +2 -2
- package/dist/ai/manifest.json +2 -2
- package/dist/ai/spec.json +64 -68
- package/dist/components/Accordion.js +1 -1
- package/dist/components/Accordion.js.map +1 -1
- package/dist/components/AccordionGroup.d.ts +1 -1
- package/dist/components/AccordionGroup.d.ts.map +1 -1
- package/dist/components/AccordionGroup.js +3 -3
- package/dist/components/AccordionGroup.js.map +1 -1
- package/dist/components/Animation.d.ts +1 -1
- package/dist/components/Animation.d.ts.map +1 -1
- package/dist/components/Arrow.d.ts +1 -1
- package/dist/components/Arrow.d.ts.map +1 -1
- package/dist/components/Arrow.js +4 -4
- package/dist/components/Arrow.js.map +1 -1
- package/dist/components/ArrowNavigationContext.d.ts +2 -1
- package/dist/components/ArrowNavigationContext.d.ts.map +1 -1
- package/dist/components/ArrowNavigationContext.js +5 -3
- package/dist/components/ArrowNavigationContext.js.map +1 -1
- package/dist/components/Avatar.d.ts +2 -2
- package/dist/components/Avatar.d.ts.map +1 -1
- package/dist/components/AvatarGroup.js +1 -1
- package/dist/components/AvatarGroup.js.map +1 -1
- package/dist/components/Background.js +1 -1
- package/dist/components/Background.js.map +1 -1
- package/dist/components/Badge.js +1 -1
- package/dist/components/Badge.js.map +1 -1
- package/dist/components/Banner.d.ts.map +1 -1
- package/dist/components/Banner.js +1 -0
- package/dist/components/Banner.js.map +1 -1
- package/dist/components/BlobFx.d.ts +1 -1
- package/dist/components/BlobFx.d.ts.map +1 -1
- package/dist/components/BlobFx.js +3 -2
- package/dist/components/BlobFx.js.map +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Card.js +1 -1
- package/dist/components/Card.js.map +1 -1
- package/dist/components/Carousel.d.ts +3 -2
- package/dist/components/Carousel.d.ts.map +1 -1
- package/dist/components/Carousel.js +5 -5
- package/dist/components/Carousel.js.map +1 -1
- package/dist/components/Checkbox.d.ts +1 -0
- package/dist/components/Checkbox.d.ts.map +1 -1
- package/dist/components/Checkbox.js +5 -5
- package/dist/components/Checkbox.js.map +1 -1
- package/dist/components/Chip.js +1 -1
- package/dist/components/Chip.js.map +1 -1
- package/dist/components/ClientFlex.d.ts.map +1 -1
- package/dist/components/ClientFlex.js +124 -5
- package/dist/components/ClientFlex.js.map +1 -1
- package/dist/components/CompareImage.d.ts +2 -1
- package/dist/components/CompareImage.d.ts.map +1 -1
- package/dist/components/CompareImage.js +4 -4
- package/dist/components/CompareImage.js.map +1 -1
- package/dist/components/ContextMenu.d.ts +2 -2
- package/dist/components/ContextMenu.d.ts.map +1 -1
- package/dist/components/ContextMenu.js +3 -3
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/CountFx.d.ts +1 -1
- package/dist/components/CountFx.d.ts.map +1 -1
- package/dist/components/CountFx.js +6 -6
- package/dist/components/CountFx.js.map +1 -1
- package/dist/components/CountdownFx.d.ts +1 -1
- package/dist/components/CountdownFx.d.ts.map +1 -1
- package/dist/components/CountdownFx.js +4 -4
- package/dist/components/CountdownFx.js.map +1 -1
- package/dist/components/Cursor.d.ts +1 -1
- package/dist/components/Cursor.d.ts.map +1 -1
- package/dist/components/Cursor.js +6 -6
- package/dist/components/Cursor.js.map +1 -1
- package/dist/components/DateInput.d.ts +1 -1
- package/dist/components/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput.js +6 -5
- package/dist/components/DateInput.js.map +1 -1
- package/dist/components/DatePicker.d.ts.map +1 -1
- package/dist/components/DatePicker.js +5 -5
- package/dist/components/DatePicker.js.map +1 -1
- package/dist/components/DateRangeInput.d.ts +2 -2
- package/dist/components/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput.js +6 -4
- package/dist/components/DateRangeInput.js.map +1 -1
- package/dist/components/DateRangePicker.d.ts +1 -1
- package/dist/components/DateRangePicker.d.ts.map +1 -1
- package/dist/components/DateRangePicker.js +3 -3
- package/dist/components/DateRangePicker.js.map +1 -1
- package/dist/components/Dialog.d.ts +2 -0
- package/dist/components/Dialog.d.ts.map +1 -1
- package/dist/components/Dialog.js +32 -15
- package/dist/components/Dialog.js.map +1 -1
- package/dist/components/Dropdown.d.ts.map +1 -1
- package/dist/components/Dropdown.js +1 -1
- package/dist/components/Dropdown.js.map +1 -1
- package/dist/components/DropdownWrapper.d.ts.map +1 -1
- package/dist/components/DropdownWrapper.js +14 -11
- package/dist/components/DropdownWrapper.js.map +1 -1
- package/dist/components/ElementType.d.ts +1 -1
- package/dist/components/ElementType.d.ts.map +1 -1
- package/dist/components/ElementType.js +6 -4
- package/dist/components/ElementType.js.map +1 -1
- package/dist/components/EmojiPickerDropdown.d.ts +1 -1
- package/dist/components/EmojiPickerDropdown.d.ts.map +1 -1
- package/dist/components/EmojiPickerDropdown.js +4 -2
- package/dist/components/EmojiPickerDropdown.js.map +1 -1
- package/dist/components/Fade.js +1 -1
- package/dist/components/Fade.js.map +1 -1
- package/dist/components/FlipFx.d.ts.map +1 -1
- package/dist/components/FlipFx.js +2 -4
- package/dist/components/FlipFx.js.map +1 -1
- package/dist/components/FocusTrap.d.ts +1 -1
- package/dist/components/FocusTrap.d.ts.map +1 -1
- package/dist/components/FocusTrap.js +3 -3
- package/dist/components/FocusTrap.js.map +1 -1
- package/dist/components/GlitchFx.js +1 -1
- package/dist/components/GlitchFx.js.map +1 -1
- package/dist/components/Heading.js +1 -1
- package/dist/components/Heading.js.map +1 -1
- package/dist/components/HoloFx.d.ts +1 -1
- package/dist/components/HoloFx.d.ts.map +1 -1
- package/dist/components/HoloFx.js +17 -8
- package/dist/components/HoloFx.js.map +1 -1
- package/dist/components/Icon.js +1 -1
- package/dist/components/Icon.js.map +1 -1
- package/dist/components/IconButton.js +1 -1
- package/dist/components/IconButton.js.map +1 -1
- package/dist/components/InlineCode.js +1 -1
- package/dist/components/InlineCode.js.map +1 -1
- package/dist/components/Input.js +1 -1
- package/dist/components/Input.js.map +1 -1
- package/dist/components/LetterFx.js +1 -1
- package/dist/components/LetterFx.js.map +1 -1
- package/dist/components/ListItem.js +1 -1
- package/dist/components/ListItem.js.map +1 -1
- package/dist/components/Logo.d.ts +1 -1
- package/dist/components/Logo.d.ts.map +1 -1
- package/dist/components/Logo.js +6 -10
- package/dist/components/Logo.js.map +1 -1
- package/dist/components/LogoCloud.js +1 -1
- package/dist/components/LogoCloud.js.map +1 -1
- package/dist/components/Mask.js +1 -1
- package/dist/components/Mask.js.map +1 -1
- package/dist/components/MasonryGrid.js +1 -1
- package/dist/components/MasonryGrid.js.map +1 -1
- package/dist/components/Media.d.ts +1 -1
- package/dist/components/Media.d.ts.map +1 -1
- package/dist/components/Media.js +10 -7
- package/dist/components/Media.js.map +1 -1
- package/dist/components/MediaVideoPlayer.d.ts +12 -0
- package/dist/components/MediaVideoPlayer.d.ts.map +1 -0
- package/dist/components/MediaVideoPlayer.js +246 -0
- package/dist/components/MediaVideoPlayer.js.map +1 -0
- package/dist/components/MediaVideoPlayer.module.scss +90 -0
- package/dist/components/Modal.d.ts +1 -1
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Modal.js +3 -3
- package/dist/components/Modal.js.map +1 -1
- package/dist/components/NavIcon.js +1 -1
- package/dist/components/NavIcon.js.map +1 -1
- package/dist/components/NumberInput.js +1 -1
- package/dist/components/NumberInput.js.map +1 -1
- package/dist/components/OgCard.d.ts +3 -2
- package/dist/components/OgCard.d.ts.map +1 -1
- package/dist/components/OgCard.js +2 -2
- package/dist/components/OgCard.js.map +1 -1
- package/dist/components/Option.js +1 -1
- package/dist/components/Option.js.map +1 -1
- package/dist/components/ProgressBar.d.ts +1 -1
- package/dist/components/ProgressBar.d.ts.map +1 -1
- package/dist/components/ProgressBar.js +1 -1
- package/dist/components/ProgressBar.js.map +1 -1
- package/dist/components/RadioButton.d.ts +1 -0
- package/dist/components/RadioButton.d.ts.map +1 -1
- package/dist/components/RadioButton.js +6 -6
- package/dist/components/RadioButton.js.map +1 -1
- package/dist/components/ScrollContainer.d.ts +1 -1
- package/dist/components/ScrollContainer.d.ts.map +1 -1
- package/dist/components/ScrollContainer.js +3 -3
- package/dist/components/ScrollContainer.js.map +1 -1
- package/dist/components/ScrollLock.d.ts +6 -1
- package/dist/components/ScrollLock.d.ts.map +1 -1
- package/dist/components/ScrollLock.js +39 -13
- package/dist/components/ScrollLock.js.map +1 -1
- package/dist/components/ScrollToTop.d.ts +4 -1
- package/dist/components/ScrollToTop.d.ts.map +1 -1
- package/dist/components/ScrollToTop.js +2 -1
- package/dist/components/ScrollToTop.js.map +1 -1
- package/dist/components/Scroller.d.ts +2 -2
- package/dist/components/Scroller.d.ts.map +1 -1
- package/dist/components/Scroller.js +4 -4
- package/dist/components/Scroller.js.map +1 -1
- package/dist/components/SegmentedControl.d.ts +1 -1
- package/dist/components/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SegmentedControl.js +3 -3
- package/dist/components/SegmentedControl.js.map +1 -1
- package/dist/components/Select.d.ts +1 -1
- package/dist/components/Select.d.ts.map +1 -1
- package/dist/components/Select.js +1 -1
- package/dist/components/Select.js.map +1 -1
- package/dist/components/ServerFlex.d.ts.map +1 -1
- package/dist/components/ServerFlex.js +4 -2
- package/dist/components/ServerFlex.js.map +1 -1
- package/dist/components/ServerGrid.js +1 -1
- package/dist/components/ServerGrid.js.map +1 -1
- package/dist/components/SharedInteractiveStyles.module.scss +4 -0
- package/dist/components/ShineFx.d.ts +1 -1
- package/dist/components/ShineFx.d.ts.map +1 -1
- package/dist/components/ShineFx.js +4 -3
- package/dist/components/ShineFx.js.map +1 -1
- package/dist/components/Skeleton.js +1 -1
- package/dist/components/Skeleton.js.map +1 -1
- package/dist/components/Slider.js +1 -1
- package/dist/components/Slider.js.map +1 -1
- package/dist/components/Slider.module.scss +2 -2
- package/dist/components/SmartLink.js +1 -1
- package/dist/components/SmartLink.js.map +1 -1
- package/dist/components/Spinner.js +1 -1
- package/dist/components/Spinner.js.map +1 -1
- package/dist/components/StatusIndicator.js +1 -1
- package/dist/components/StatusIndicator.js.map +1 -1
- package/dist/components/StylePanel.js +1 -1
- package/dist/components/StylePanel.js.map +1 -1
- package/dist/components/Swiper.d.ts +2 -1
- package/dist/components/Swiper.d.ts.map +1 -1
- package/dist/components/Swiper.js +5 -5
- package/dist/components/Swiper.js.map +1 -1
- package/dist/components/Switch.js +1 -1
- package/dist/components/Switch.js.map +1 -1
- package/dist/components/Table.d.ts +37 -6
- package/dist/components/Table.d.ts.map +1 -1
- package/dist/components/Table.js +115 -30
- package/dist/components/Table.js.map +1 -1
- package/dist/components/Table.module.scss +174 -3
- package/dist/components/Tag.d.ts +1 -1
- package/dist/components/Tag.d.ts.map +1 -1
- package/dist/components/Tag.js +1 -1
- package/dist/components/Tag.js.map +1 -1
- package/dist/components/Text.js +1 -1
- package/dist/components/Text.js.map +1 -1
- package/dist/components/Textarea.d.ts.map +1 -1
- package/dist/components/Textarea.js +1 -2
- package/dist/components/Textarea.js.map +1 -1
- package/dist/components/ThemeInit.d.ts.map +1 -1
- package/dist/components/ThemeInit.js +6 -2
- package/dist/components/ThemeInit.js.map +1 -1
- package/dist/components/TiltFx.d.ts +1 -1
- package/dist/components/TiltFx.d.ts.map +1 -1
- package/dist/components/TiltFx.js +16 -7
- package/dist/components/TiltFx.js.map +1 -1
- package/dist/components/Timeline.d.ts +3 -3
- package/dist/components/Timeline.d.ts.map +1 -1
- package/dist/components/Timeline.js +19 -54
- package/dist/components/Timeline.js.map +1 -1
- package/dist/components/Toast.js +1 -1
- package/dist/components/Toast.js.map +1 -1
- package/dist/components/Toaster.d.ts +1 -1
- package/dist/components/Toaster.d.ts.map +1 -1
- package/dist/components/Toaster.js +4 -4
- package/dist/components/Toaster.js.map +1 -1
- package/dist/components/Toaster.module.scss +0 -2
- package/dist/components/ToggleButton.js +1 -1
- package/dist/components/ToggleButton.js.map +1 -1
- package/dist/components/Tooltip.js +1 -1
- package/dist/components/Tooltip.js.map +1 -1
- package/dist/components/TypeFx.d.ts +1 -1
- package/dist/components/TypeFx.d.ts.map +1 -1
- package/dist/components/TypeFx.js +3 -3
- package/dist/components/TypeFx.js.map +1 -1
- package/dist/components/User.js +1 -1
- package/dist/components/User.js.map +1 -1
- package/dist/components/UserMenu.d.ts +1 -1
- package/dist/components/UserMenu.d.ts.map +1 -1
- package/dist/components/UserMenu.js +4 -3
- package/dist/components/UserMenu.js.map +1 -1
- package/dist/css/styles.css +1 -1
- package/dist/css/styles.css.map +1 -1
- package/dist/css/tokens.css +1 -1
- package/dist/css/tokens.css.map +1 -1
- package/dist/data/emoji-data.json +8 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useArrowNavigation.d.ts.map +1 -1
- package/dist/hooks/useArrowNavigation.js +1 -0
- package/dist/hooks/useArrowNavigation.js.map +1 -1
- package/dist/hooks/useDebounce.d.ts +1 -1
- package/dist/hooks/useDebounce.d.ts.map +1 -1
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useResponsiveClasses.d.ts.map +1 -1
- package/dist/hooks/useResponsiveClasses.js +45 -2
- package/dist/hooks/useResponsiveClasses.js.map +1 -1
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +7 -2
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +21 -36
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/internal/scrollLockState.d.ts +2 -0
- package/dist/internal/scrollLockState.d.ts.map +1 -0
- package/dist/internal/scrollLockState.js +12 -0
- package/dist/internal/scrollLockState.js.map +1 -0
- package/dist/modules/code/CodeBlock.impl.d.ts +2 -0
- package/dist/modules/code/CodeBlock.impl.d.ts.map +1 -1
- package/dist/modules/code/CodeBlock.impl.js +57 -17
- package/dist/modules/code/CodeBlock.impl.js.map +1 -1
- package/dist/modules/data/BarChart.impl.js +1 -1
- package/dist/modules/data/BarChart.impl.js.map +1 -1
- package/dist/modules/data/LineBarChart.impl.js +1 -1
- package/dist/modules/data/LineBarChart.impl.js.map +1 -1
- package/dist/modules/data/LineChart.impl.js +1 -1
- package/dist/modules/data/LineChart.impl.js.map +1 -1
- package/dist/modules/data/PieChart.impl.js +1 -1
- package/dist/modules/data/PieChart.impl.js.map +1 -1
- package/dist/modules/data/utils/formatDate.js +1 -1
- package/dist/modules/data/utils/formatDate.js.map +1 -1
- package/dist/modules/index.d.ts +2 -1
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +2 -1
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/seo/Schema.d.ts.map +1 -1
- package/dist/modules/seo/Schema.js +3 -4
- package/dist/modules/seo/Schema.js.map +1 -1
- package/dist/package.json +38 -8
- package/dist/server/og-url-validation.d.ts +10 -0
- package/dist/server/og-url-validation.d.ts.map +1 -0
- package/dist/server/og-url-validation.js +234 -0
- package/dist/server/og-url-validation.js.map +1 -0
- package/dist/server/og-utils.d.ts +5 -2
- package/dist/server/og-utils.d.ts.map +1 -1
- package/dist/server/og-utils.js +39 -14
- package/dist/server/og-utils.js.map +1 -1
- package/dist/styles/typography.scss +8 -0
- package/dist/tokens/typography.scss +2 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/safe-html.d.ts +19 -0
- package/dist/utils/safe-html.d.ts.map +1 -0
- package/dist/utils/safe-html.js +43 -0
- package/dist/utils/safe-html.js.map +1 -0
- package/next-env.d.ts +5 -0
- package/package.json +55 -21
- package/scripts/copy-files.js +103 -0
- package/scripts/generate-ai-spec.js +464 -0
- package/scripts/generate-emoji-data.js +128 -0
- package/scripts/init-agent.js +156 -0
- package/scripts/validate-ai-code.js +149 -0
- package/.eslintrc.json +0 -3
- package/ai/catalog.seed.json +0 -411
- package/dist/ai/catalog.seed.json +0 -411
- package/next.config.mjs +0 -14
package/AGENTS.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# @once-ui-system/core — agent harness
|
|
2
|
+
|
|
3
|
+
This package ships an agent-first codegen harness under `ai/`. Use it when **writing Once UI code**, not full MDX documentation pages.
|
|
4
|
+
|
|
5
|
+
## Entry point
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
@once-ui-system/core/ai/manifest.json
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or from disk:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
node_modules/@once-ui-system/core/ai/manifest.json
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Bootstrap workflow
|
|
18
|
+
|
|
19
|
+
1. Read `ai/manifest.json`
|
|
20
|
+
2. Load bootstrap files: `ai/rules.compact.md` + `ai/catalog.json` (~6KB)
|
|
21
|
+
3. Match intent via `ai/tasks/index.json` → e.g. `ai/tasks/pricing.json`
|
|
22
|
+
4. Fetch component slices listed in the task bundle (`ai/components/*.json`)
|
|
23
|
+
5. Read the gold example referenced by the task; for production fidelity, read Pro blocks from `ai/examples/blocks/manifest.json`
|
|
24
|
+
6. Validate generated code: `npx once-ui-validate-ai-code path/to/file.tsx`
|
|
25
|
+
|
|
26
|
+
## npm exports
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
// Readable paths (version-pinned to your install)
|
|
30
|
+
import manifest from '@once-ui-system/core/ai/manifest.json';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# One-time project setup (writes AGENTS.md + Cursor rule in consumer app)
|
|
35
|
+
npx once-ui-init-agent
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Remote fallback
|
|
39
|
+
|
|
40
|
+
If you cannot read `node_modules`, use the docs host (may not match your installed version exactly):
|
|
41
|
+
|
|
42
|
+
- https://docs.once-ui.com/ai/manifest.json
|
|
43
|
+
- https://docs.once-ui.com/ai/rules.compact.md
|
|
44
|
+
- https://docs.once-ui.com/once-ui/ai-coding
|
|
45
|
+
|
|
46
|
+
## Key rules (summary)
|
|
47
|
+
|
|
48
|
+
- Use `Column` / `Row`, not `Flex` unless direction changes at breakpoints
|
|
49
|
+
- Use `fill`, not `fillWidth fillHeight`; use `center`, not `horizontal="center" vertical="center"`
|
|
50
|
+
- Static panels: `Column background="surface" border="neutral-alpha-weak" radius="l" padding="24"`
|
|
51
|
+
- `Card` is interactive only (`href` or `onClick`)
|
|
52
|
+
|
|
53
|
+
Full rules: `@once-ui-system/core/ai/rules.compact.md`
|
package/README.md
CHANGED
|
@@ -35,6 +35,33 @@ Learn how to set up and build with Once UI at [docs.once-ui.com](https://docs.on
|
|
|
35
35
|
npm install @once-ui-system/core
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
## AI codegen harness
|
|
39
|
+
|
|
40
|
+
This package includes an agent-first harness under `ai/` for generating Once UI code with minimal context (~6–10KB per task).
|
|
41
|
+
|
|
42
|
+
| Resource | Path |
|
|
43
|
+
|----------|------|
|
|
44
|
+
| Entry point | `@once-ui-system/core/ai/manifest.json` |
|
|
45
|
+
| Compact rules | `@once-ui-system/core/ai/rules.compact.md` |
|
|
46
|
+
| Component catalog | `@once-ui-system/core/ai/catalog.json` |
|
|
47
|
+
| Task bundles | `@once-ui-system/core/ai/tasks/index.json` |
|
|
48
|
+
|
|
49
|
+
**One-time setup in your app** (writes project `AGENTS.md` + Cursor rule):
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx once-ui-init-agent
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Validate generated code:**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx once-ui-validate-ai-code src/app/page.tsx
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Full guide: [docs.once-ui.com/once-ui/ai-coding](https://docs.once-ui.com/once-ui/ai-coding)
|
|
62
|
+
|
|
63
|
+
Machine-readable discovery: see the `onceUi` field in this package's `package.json`.
|
|
64
|
+
|
|
38
65
|
## Authors
|
|
39
66
|
|
|
40
67
|
Built and maintained by [**Lorant One**](https://lorant.one).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Load Once UI agent harness before generating UI code
|
|
3
|
+
globs: "**/*.{tsx,jsx}"
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Once UI codegen harness
|
|
8
|
+
|
|
9
|
+
Before generating or editing Once UI UI code in this project:
|
|
10
|
+
|
|
11
|
+
1. Read `@once-ui-system/core/ai/manifest.json` (or `node_modules/@once-ui-system/core/ai/manifest.json`)
|
|
12
|
+
2. Load bootstrap files from the manifest: `rules.compact.md` + `catalog.json`
|
|
13
|
+
3. Resolve intent via `ai/tasks/index.json` → fetch the matching task bundle
|
|
14
|
+
4. Fetch only the component slices listed in that task (`ai/components/*.json`)
|
|
15
|
+
5. Read the task's gold example; for production layouts, read matching Pro blocks from `ai/examples/blocks/manifest.json`
|
|
16
|
+
6. Validate output: `npx once-ui-validate-ai-code path/to/file.tsx`
|
|
17
|
+
|
|
18
|
+
## Do not
|
|
19
|
+
|
|
20
|
+
- Use full documentation MDX pages for codegen (too large; use the harness)
|
|
21
|
+
- Use `Flex direction="column"` when `Column` works; same for `Row`
|
|
22
|
+
- Use `fillWidth fillHeight` when `fill` works
|
|
23
|
+
- Use `Card` for static panels (use the surface recipe on `Column`)
|
|
24
|
+
|
|
25
|
+
## Remote fallback
|
|
26
|
+
|
|
27
|
+
https://docs.once-ui.com/ai/manifest.json
|