ui-lab-registry 0.3.0 → 0.3.2
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/dist/component-dependencies.d.ts +0 -11
- package/dist/component-dependencies.d.ts.map +1 -1
- package/dist/component-dependencies.js +4 -4
- package/dist/component-dependencies.js.map +1 -1
- package/dist/component-order.js +3 -3
- package/dist/component-order.js.map +1 -1
- package/dist/components/Anchor/index.d.ts +1 -1
- package/dist/components/Anchor/index.d.ts.map +1 -1
- package/dist/components/Anchor/index.js.map +1 -1
- package/dist/components/Badge/index.d.ts +1 -1
- package/dist/components/Badge/index.d.ts.map +1 -1
- package/dist/components/Badge/index.js.map +1 -1
- package/dist/components/Banner/index.d.ts +1 -1
- package/dist/components/Banner/index.d.ts.map +1 -1
- package/dist/components/Banner/index.js.map +1 -1
- package/dist/components/Button/index.d.ts +1 -1
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Card/index.d.ts +1 -1
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js.map +1 -1
- package/dist/components/Checkbox/examples/index.d.ts +4 -4
- package/dist/components/Checkbox/examples/index.d.ts.map +1 -1
- package/dist/components/Checkbox/examples/index.js.map +1 -1
- package/dist/components/Checkbox/index.d.ts +1 -1
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/Color/examples/03-format-switching.d.ts +0 -4
- package/dist/components/Color/examples/03-format-switching.d.ts.map +1 -1
- package/dist/components/Color/examples/03-format-switching.js +2 -2
- package/dist/components/Color/examples/03-format-switching.js.map +1 -1
- package/dist/components/Color/examples/index.d.ts +3 -3
- package/dist/components/Color/examples/index.d.ts.map +1 -1
- package/dist/components/Color/examples/index.js.map +1 -1
- package/dist/components/Color/examples.json +0 -5
- package/dist/components/Color/index.d.ts +1 -1
- package/dist/components/Color/index.d.ts.map +1 -1
- package/dist/components/Color/index.js.map +1 -1
- package/dist/components/Command/examples/01-basic-command.js +1 -1
- package/dist/components/Command/examples/01-basic-command.js.map +1 -1
- package/dist/components/Command/examples/index.d.ts +2 -2
- package/dist/components/Command/examples/index.d.ts.map +1 -1
- package/dist/components/Command/examples/index.js.map +1 -1
- package/dist/components/Command/examples.json +1 -1
- package/dist/components/Command/index.d.ts +1 -1
- package/dist/components/Command/index.d.ts.map +1 -1
- package/dist/components/Command/index.js +3 -3
- package/dist/components/Command/index.js.map +1 -1
- package/dist/components/Confirm/examples/index.d.ts +2 -2
- package/dist/components/Confirm/examples/index.d.ts.map +1 -1
- package/dist/components/Confirm/examples/index.js.map +1 -1
- package/dist/components/Confirm/index.d.ts +1 -1
- package/dist/components/Confirm/index.d.ts.map +1 -1
- package/dist/components/Confirm/index.js.map +1 -1
- package/dist/components/Date/index.js.map +1 -1
- package/dist/components/Divider/examples/02-pattern-variants.js +1 -1
- package/dist/components/Divider/examples.json +1 -1
- package/dist/components/Divider/index.d.ts +1 -1
- package/dist/components/Divider/index.d.ts.map +1 -1
- package/dist/components/Divider/index.js.map +1 -1
- package/dist/components/Expand/index.d.ts +1 -1
- package/dist/components/Expand/index.d.ts.map +1 -1
- package/dist/components/Expand/index.js.map +1 -1
- package/dist/components/Flex/index.d.ts +1 -1
- package/dist/components/Flex/index.d.ts.map +1 -1
- package/dist/components/Flex/index.js.map +1 -1
- package/dist/components/Frame/index.d.ts +1 -1
- package/dist/components/Frame/index.d.ts.map +1 -1
- package/dist/components/Frame/index.js.map +1 -1
- package/dist/components/Gallery/index.d.ts +1 -1
- package/dist/components/Gallery/index.d.ts.map +1 -1
- package/dist/components/Gallery/index.js.map +1 -1
- package/dist/components/Grid/examples/01-basic-grid.js +1 -1
- package/dist/components/Grid/examples/01-basic-grid.js.map +1 -1
- package/dist/components/Grid/examples.json +1 -1
- package/dist/components/Grid/index.d.ts +1 -1
- package/dist/components/Grid/index.d.ts.map +1 -1
- package/dist/components/Grid/index.js +2 -2
- package/dist/components/Grid/index.js.map +1 -1
- package/dist/components/Group/index.d.ts +1 -1
- package/dist/components/Group/index.d.ts.map +1 -1
- package/dist/components/Group/index.js.map +1 -1
- package/dist/components/Input/examples/02-validation.js +1 -1
- package/dist/components/Input/examples/02-validation.js.map +1 -1
- package/dist/components/Input/examples.json +1 -1
- package/dist/components/Input/index.d.ts +1 -1
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/Label/index.d.ts +1 -1
- package/dist/components/Label/index.d.ts.map +1 -1
- package/dist/components/Label/index.js.map +1 -1
- package/dist/components/List/index.d.ts +1 -1
- package/dist/components/List/index.d.ts.map +1 -1
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/Mask/index.d.ts +1 -1
- package/dist/components/Mask/index.d.ts.map +1 -1
- package/dist/components/Mask/index.js.map +1 -1
- package/dist/components/Menu/index.d.ts +1 -1
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js.map +1 -1
- package/dist/components/Modal/index.d.ts +1 -1
- package/dist/components/Modal/index.d.ts.map +1 -1
- package/dist/components/Modal/index.js.map +1 -1
- package/dist/components/Path/examples.json +0 -5
- package/dist/components/Path/index.d.ts +1 -1
- package/dist/components/Path/index.d.ts.map +1 -1
- package/dist/components/Path/index.js.map +1 -1
- package/dist/components/Popover/index.d.ts +1 -1
- package/dist/components/Popover/index.d.ts.map +1 -1
- package/dist/components/Popover/index.js.map +1 -1
- package/dist/components/Progress/index.d.ts +1 -1
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js.map +1 -1
- package/dist/components/Radio/index.d.ts +1 -1
- package/dist/components/Radio/index.d.ts.map +1 -1
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/Radio/index.js.map +1 -1
- package/dist/components/Scroll/index.d.ts +1 -1
- package/dist/components/Scroll/index.d.ts.map +1 -1
- package/dist/components/Scroll/index.js.map +1 -1
- package/dist/components/Select/examples/02-searchable-select.js +1 -1
- package/dist/components/Select/examples/02-searchable-select.js.map +1 -1
- package/dist/components/Select/examples.json +1 -1
- package/dist/components/Select/index.d.ts +1 -1
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/Slider/index.d.ts +1 -1
- package/dist/components/Slider/index.d.ts.map +1 -1
- package/dist/components/Slider/index.js.map +1 -1
- package/dist/components/Switch/index.d.ts +1 -1
- package/dist/components/Switch/index.d.ts.map +1 -1
- package/dist/components/Switch/index.js.map +1 -1
- package/dist/components/Table/index.d.ts +1 -1
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Tabs/examples/01-basic-tabs.js +2 -2
- package/dist/components/Tabs/examples/01-basic-tabs.js.map +1 -1
- package/dist/components/Tabs/examples/02-vertical-tabs.js +2 -2
- package/dist/components/Tabs/examples/02-vertical-tabs.js.map +1 -1
- package/dist/components/Tabs/examples.json +2 -2
- package/dist/components/Tabs/index.d.ts +1 -1
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +11 -11
- package/dist/components/Tabs/index.js.map +1 -1
- package/dist/components/Textarea/index.d.ts +1 -1
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js.map +1 -1
- package/dist/components/Toast/index.d.ts +1 -1
- package/dist/components/Toast/index.d.ts.map +1 -1
- package/dist/components/Toast/index.js.map +1 -1
- package/dist/components/Tooltip/index.d.ts +1 -1
- package/dist/components/Tooltip/index.d.ts.map +1 -1
- package/dist/components/Tooltip/index.js.map +1 -1
- package/dist/elements/AI/AIChatInput/index.d.ts +1 -1
- package/dist/elements/AI/AIChatInput/index.d.ts.map +1 -1
- package/dist/elements/AI/AIChatInput/index.js +1 -1
- package/dist/elements/AI/AIChatInput/variations/01-basic/index.js.map +1 -1
- package/dist/elements/AI/AIChatInput/variations/02-with-suggestions/index.js +1 -1
- package/dist/elements/AI/AIChatInput/variations/02-with-suggestions/index.js.map +1 -1
- package/dist/elements/AI/AIChatInput/variations/02-with-suggestions/layout/PromptInputWithSuggestions.js +1 -1
- package/dist/elements/AI/AIChatInput/variations.json +3 -3
- package/dist/elements/AI/ChainOfThought/index.d.ts +1 -1
- package/dist/elements/AI/ChainOfThought/index.d.ts.map +1 -1
- package/dist/elements/AI/ChainOfThought/index.js +1 -1
- package/dist/elements/AI/ChainOfThought/variations/01-basic/index.js.map +1 -1
- package/dist/elements/AI/ChainOfThought/variations/02-with-details/index.js.map +1 -1
- package/dist/elements/AI/ChainOfThought/variations.json +2 -2
- package/dist/elements/AI/Chat/index.d.ts +1 -1
- package/dist/elements/AI/Chat/index.d.ts.map +1 -1
- package/dist/elements/AI/Chat/index.js +1 -1
- package/dist/elements/AI/Chat/variations/01-basic/index.js.map +1 -1
- package/dist/elements/AI/Chat/variations/02-with-actions/index.js +1 -1
- package/dist/elements/AI/Chat/variations/02-with-actions/index.js.map +1 -1
- package/dist/elements/AI/Chat/variations.json +2 -2
- package/dist/elements/Documentation/CopyPage/index.d.ts +1 -1
- package/dist/elements/Documentation/CopyPage/index.d.ts.map +1 -1
- package/dist/elements/Documentation/CopyPage/index.js +1 -1
- package/dist/elements/Documentation/CopyPage/variations/01-basic/index.js.map +1 -1
- package/dist/elements/Documentation/CopyPage/variations/02-with-success/index.js.map +1 -1
- package/dist/elements/Documentation/CopyPage/variations.json +2 -2
- package/dist/elements/Documentation/NextArticle/index.d.ts +1 -1
- package/dist/elements/Documentation/NextArticle/index.d.ts.map +1 -1
- package/dist/elements/Documentation/NextArticle/index.js +1 -1
- package/dist/elements/Documentation/NextArticle/variations/01-basic/index.js.map +1 -1
- package/dist/elements/Documentation/NextArticle/variations/01-basic/layout/NextArticleCard.js +1 -1
- package/dist/elements/Documentation/NextArticle/variations/02-with-icon/index.js.map +1 -1
- package/dist/elements/Documentation/NextArticle/variations/02-with-icon/layout/NextArticleWithIconCard.js +1 -1
- package/dist/elements/Documentation/NextArticle/variations.json +4 -4
- package/dist/elements/Documentation/TOC/index.d.ts +1 -1
- package/dist/elements/Documentation/TOC/index.d.ts.map +1 -1
- package/dist/elements/Documentation/TOC/index.js +1 -1
- package/dist/elements/Documentation/TOC/variations/01-basic/index.js.map +1 -1
- package/dist/elements/Documentation/TOC/variations/02-expanded/index.js.map +1 -1
- package/dist/elements/Documentation/TOC/variations.json +2 -2
- package/dist/elements/Elements/Carousel/index.d.ts +1 -1
- package/dist/elements/Elements/Carousel/index.d.ts.map +1 -1
- package/dist/elements/Elements/Rating/index.d.ts +1 -1
- package/dist/elements/Elements/Rating/index.d.ts.map +1 -1
- package/dist/elements/Elements/Timeline/index.d.ts +1 -1
- package/dist/elements/Elements/Timeline/index.d.ts.map +1 -1
- package/dist/elements/Elements/TreeView/index.d.ts +1 -1
- package/dist/elements/Elements/TreeView/index.d.ts.map +1 -1
- package/dist/elements/categories.d.ts +1 -1
- package/dist/elements/categories.d.ts.map +1 -1
- package/dist/elements/foundation/Header/index.d.ts +1 -1
- package/dist/elements/foundation/Header/index.d.ts.map +1 -1
- package/dist/elements/foundation/Header/variations/01-basic/index.js.map +1 -1
- package/dist/elements/foundation/Header/variations.json +1 -1
- package/dist/elements/foundation/Page/index.d.ts +1 -1
- package/dist/elements/foundation/Page/index.d.ts.map +1 -1
- package/dist/elements/foundation/Page/variations/01-basic/index.js.map +1 -1
- package/dist/elements/foundation/Page/variations.json +1 -1
- package/dist/elements/foundation/Sidebar/index.d.ts +1 -1
- package/dist/elements/foundation/Sidebar/index.d.ts.map +1 -1
- package/dist/elements/foundation/Sidebar/variations/01-basic/index.js.map +1 -1
- package/dist/elements/foundation/Sidebar/variations.json +1 -1
- package/dist/generated-controls.d.ts +3 -0
- package/dist/generated-controls.d.ts.map +1 -0
- package/dist/generated-controls.js +161 -0
- package/dist/generated-controls.js.map +1 -0
- package/dist/generated-data.d.ts.map +1 -1
- package/dist/generated-data.js +214 -948
- package/dist/generated-data.js.map +1 -1
- package/dist/generated-styles.d.ts.map +1 -1
- package/dist/generated-styles.js +177 -69
- package/dist/generated-styles.js.map +1 -1
- package/dist/generated-styles.json +177 -69
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/patterns/data/data-table-row/metadata.json +3 -3
- package/dist/patterns/data/data-table-row/variations/expandable/index.js +1 -1
- package/dist/patterns/data/data-table-row/variations/main/index.js +1 -1
- package/dist/patterns/data/data-table-row/variations/selectable/index.js +1 -1
- package/dist/patterns/data/progress-metric/metadata.json +3 -3
- package/dist/patterns/data/progress-metric/variations/colored/index.js +1 -1
- package/dist/patterns/data/progress-metric/variations/main/index.js +1 -1
- package/dist/patterns/data/progress-metric/variations/stacked/index.js +1 -1
- package/dist/patterns/form/labeled-field/metadata.json +4 -4
- package/dist/patterns/form/labeled-field/variations/main/index.js +1 -1
- package/dist/patterns/form/labeled-field/variations/with-error/index.js +1 -1
- package/dist/patterns/form/labeled-field/variations/with-hint/index.js +1 -1
- package/dist/patterns/form/select-row/metadata.json +2 -2
- package/dist/patterns/form/select-row/variations/main/index.js +1 -1
- package/dist/patterns/form/select-row/variations/with-icon/index.js +1 -1
- package/dist/patterns/form/toggle-setting-row/metadata.json +2 -2
- package/dist/patterns/form/toggle-setting-row/variations/destructive/index.js +1 -1
- package/dist/patterns/form/toggle-setting-row/variations/main/index.js +1 -1
- package/dist/patterns/interaction/icon-action-bar/variations/compact/index.js +1 -1
- package/dist/patterns/layout/media-object/metadata.json +1 -1
- package/dist/patterns/layout/media-object/variations/sm/index.js +1 -1
- package/dist/patterns/layout/split-row/metadata.json +3 -3
- package/dist/patterns/layout/split-row/variations/actions/index.js +1 -1
- package/dist/patterns/layout/split-row/variations/main/index.js +1 -1
- package/dist/patterns/layout/split-row/variations/meta/index.js +1 -1
- package/dist/patterns/layout/stat-block/metadata.json +3 -3
- package/dist/patterns/layout/stat-block/variations/compact/index.js +1 -1
- package/dist/patterns/layout/stat-block/variations/main/index.js +1 -1
- package/dist/patterns/layout/stat-block/variations/with-icon/index.js +1 -1
- package/dist/providers/Theme/examples/01-provider-setup.d.ts +1 -1
- package/dist/providers/Theme/examples/index.d.ts +3 -3
- package/dist/providers/Theme/examples/index.d.ts.map +1 -1
- package/dist/providers/Theme/examples/index.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +18 -28
- package/dist/registry.js.map +1 -1
- package/dist/sections/CTA/index.d.ts +1 -1
- package/dist/sections/CTA/index.d.ts.map +1 -1
- package/dist/sections/CTA/variations/02-split/index.js +1 -1
- package/dist/sections/CTA/variations.json +1 -1
- package/dist/sections/Features/index.d.ts +1 -1
- package/dist/sections/Features/index.d.ts.map +1 -1
- package/dist/sections/Hero/index.d.ts +1 -1
- package/dist/sections/Hero/index.d.ts.map +1 -1
- package/dist/sections/Pricing/index.d.ts +1 -1
- package/dist/sections/Pricing/index.d.ts.map +1 -1
- package/dist/sections/Pricing/variations/01-cards/index.js +1 -1
- package/dist/sections/Pricing/variations/02-comparison/index.js +1 -1
- package/dist/sections/Pricing/variations.json +2 -2
- package/dist/sections/Testimonials/index.d.ts +1 -1
- package/dist/sections/Testimonials/index.d.ts.map +1 -1
- package/dist/sections/categories.d.ts +0 -11
- package/dist/sections/categories.d.ts.map +1 -1
- package/dist/sections/categories.js +2 -2
- package/dist/sections/categories.js.map +1 -1
- package/dist/starters/Astro/index.d.ts +1 -1
- package/dist/starters/Astro/index.d.ts.map +1 -1
- package/dist/starters/Blog/index.d.ts +1 -1
- package/dist/starters/Blog/index.d.ts.map +1 -1
- package/dist/starters/CRM/index.d.ts +1 -1
- package/dist/starters/CRM/index.d.ts.map +1 -1
- package/dist/starters/Documentation/index.d.ts +1 -1
- package/dist/starters/Documentation/index.d.ts.map +1 -1
- package/dist/starters/NextJS/index.d.ts +1 -1
- package/dist/starters/NextJS/index.d.ts.map +1 -1
- package/dist/starters/NextJS/index.js +1 -1
- package/dist/starters/Productivity/index.d.ts +1 -1
- package/dist/starters/Productivity/index.d.ts.map +1 -1
- package/dist/starters/Tauri/index.d.ts +1 -1
- package/dist/starters/Tauri/index.d.ts.map +1 -1
- package/dist/starters/Vite/index.d.ts +1 -1
- package/dist/starters/Vite/index.d.ts.map +1 -1
- package/dist/types.d.ts +0 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/get-category-icon.d.ts +1 -1
- package/dist/utils/get-category-icon.d.ts.map +1 -1
- package/dist/utils/load-component-examples.d.ts +3 -2
- package/dist/utils/load-component-examples.d.ts.map +1 -1
- package/package.json +3 -7
- package/src/component-dependencies.ts +4 -4
- package/src/component-order.ts +3 -3
- package/src/components/Anchor/index.tsx +2 -2
- package/src/components/Anchor/metadata.json +1 -1
- package/src/components/Badge/index.tsx +2 -2
- package/src/components/Banner/index.tsx +2 -2
- package/src/components/Banner/metadata.json +1 -1
- package/src/components/Button/index.tsx +2 -2
- package/src/components/Card/index.tsx +2 -2
- package/src/components/Card/metadata.json +1 -1
- package/src/components/Checkbox/examples/index.ts +4 -4
- package/src/components/Checkbox/index.tsx +2 -2
- package/src/components/Code/metadata.json +1 -1
- package/src/components/Color/examples/03-format-switching.tsx +3 -3
- package/src/components/Color/examples/index.ts +3 -3
- package/src/components/Color/examples.json +0 -5
- package/src/components/Color/index.tsx +2 -2
- package/src/components/Command/examples/01-basic-command.tsx +1 -1
- package/src/components/Command/examples/index.ts +2 -2
- package/src/components/Command/examples.json +1 -1
- package/src/components/Command/index.tsx +5 -5
- package/src/components/Confirm/examples/index.ts +2 -2
- package/src/components/Confirm/index.tsx +2 -2
- package/src/components/Date/index.tsx +1 -1
- package/src/components/Date/metadata.json +1 -1
- package/src/components/Divider/examples/02-pattern-variants.tsx +3 -3
- package/src/components/Divider/examples.json +1 -1
- package/src/components/Divider/index.tsx +2 -2
- package/src/components/Expand/index.tsx +2 -2
- package/src/components/Flex/index.tsx +2 -2
- package/src/components/Flex/metadata.json +1 -1
- package/src/components/Frame/index.tsx +2 -2
- package/src/components/Gallery/index.tsx +2 -2
- package/src/components/Gallery/metadata.json +1 -1
- package/src/components/Grid/examples/01-basic-grid.tsx +1 -1
- package/src/components/Grid/examples.json +1 -1
- package/src/components/Grid/index.tsx +5 -5
- package/src/components/Group/index.tsx +2 -2
- package/src/components/Group/metadata.json +1 -1
- package/src/components/Input/examples/02-validation.tsx +2 -2
- package/src/components/Input/examples.json +1 -1
- package/src/components/Input/index.tsx +2 -2
- package/src/components/Label/index.tsx +2 -2
- package/src/components/List/index.tsx +2 -2
- package/src/components/List/metadata.json +1 -1
- package/src/components/Mask/index.tsx +2 -2
- package/src/components/Menu/index.tsx +2 -2
- package/src/components/Modal/index.tsx +2 -2
- package/src/components/Page/metadata.json +1 -1
- package/src/components/Panel/metadata.json +2 -2
- package/src/components/Path/examples.json +0 -5
- package/src/components/Path/index.tsx +2 -2
- package/src/components/Popover/index.tsx +2 -2
- package/src/components/Progress/index.tsx +3 -3
- package/src/components/Radio/index.tsx +5 -5
- package/src/components/Scroll/index.tsx +2 -2
- package/src/components/Select/examples/02-searchable-select.tsx +1 -1
- package/src/components/Select/examples.json +1 -1
- package/src/components/Select/index.tsx +2 -2
- package/src/components/Slider/index.tsx +2 -2
- package/src/components/Switch/index.tsx +2 -2
- package/src/components/Table/index.tsx +2 -2
- package/src/components/Tabs/examples/01-basic-tabs.tsx +12 -12
- package/src/components/Tabs/examples/02-vertical-tabs.tsx +19 -19
- package/src/components/Tabs/examples.json +2 -2
- package/src/components/Tabs/index.tsx +47 -47
- package/src/components/Textarea/index.tsx +2 -2
- package/src/components/Toast/index.tsx +2 -2
- package/src/components/Tooltip/index.tsx +2 -2
- package/src/elements/AI/AIChatInput/index.tsx +3 -3
- package/src/elements/AI/AIChatInput/variations/01-basic/index.tsx +1 -1
- package/src/elements/AI/AIChatInput/variations/02-with-suggestions/index.tsx +2 -2
- package/src/elements/AI/AIChatInput/variations/02-with-suggestions/layout/PromptInputWithSuggestions.tsx +1 -1
- package/src/elements/AI/AIChatInput/variations.json +3 -3
- package/src/elements/AI/ChainOfThought/index.tsx +2 -2
- package/src/elements/AI/ChainOfThought/variations/01-basic/index.tsx +1 -1
- package/src/elements/AI/ChainOfThought/variations/02-with-details/index.tsx +1 -1
- package/src/elements/AI/ChainOfThought/variations.json +2 -2
- package/src/elements/AI/Chat/index.tsx +5 -5
- package/src/elements/AI/Chat/variations/01-basic/index.tsx +3 -3
- package/src/elements/AI/Chat/variations/02-with-actions/index.tsx +6 -6
- package/src/elements/AI/Chat/variations.json +2 -2
- package/src/elements/Documentation/CopyPage/index.tsx +2 -2
- package/src/elements/Documentation/CopyPage/variations/01-basic/index.tsx +1 -1
- package/src/elements/Documentation/CopyPage/variations/02-with-success/index.tsx +1 -1
- package/src/elements/Documentation/CopyPage/variations.json +2 -2
- package/src/elements/Documentation/NextArticle/index.tsx +2 -2
- package/src/elements/Documentation/NextArticle/variations/01-basic/index.tsx +1 -1
- package/src/elements/Documentation/NextArticle/variations/01-basic/layout/NextArticleCard.tsx +1 -1
- package/src/elements/Documentation/NextArticle/variations/02-with-icon/index.tsx +1 -1
- package/src/elements/Documentation/NextArticle/variations/02-with-icon/layout/NextArticleWithIconCard.tsx +1 -1
- package/src/elements/Documentation/NextArticle/variations.json +4 -4
- package/src/elements/Documentation/TOC/index.tsx +5 -5
- package/src/elements/Documentation/TOC/variations/01-basic/index.tsx +1 -1
- package/src/elements/Documentation/TOC/variations/02-expanded/index.tsx +1 -1
- package/src/elements/Documentation/TOC/variations.json +2 -2
- package/src/elements/Elements/Carousel/index.tsx +1 -1
- package/src/elements/Elements/Rating/index.tsx +1 -1
- package/src/elements/Elements/Timeline/index.tsx +1 -1
- package/src/elements/Elements/TreeView/index.tsx +1 -1
- package/src/elements/categories.ts +1 -1
- package/src/elements/foundation/Header/index.tsx +1 -1
- package/src/elements/foundation/Header/variations/01-basic/index.tsx +1 -1
- package/src/elements/foundation/Header/variations.json +1 -1
- package/src/elements/foundation/Page/index.tsx +1 -1
- package/src/elements/foundation/Page/variations/01-basic/index.tsx +1 -1
- package/src/elements/foundation/Page/variations.json +1 -1
- package/src/elements/foundation/Sidebar/index.tsx +1 -1
- package/src/elements/foundation/Sidebar/variations/01-basic/index.tsx +1 -1
- package/src/elements/foundation/Sidebar/variations.json +1 -1
- package/src/generated-controls.ts +194 -0
- package/src/generated-data.ts +214 -948
- package/src/generated-styles.ts +177 -69
- package/src/index.ts +1 -0
- package/src/patterns/data/data-table-row/metadata.json +4 -4
- package/src/patterns/data/data-table-row/variations/expandable/index.tsx +3 -3
- package/src/patterns/data/data-table-row/variations/main/index.tsx +2 -2
- package/src/patterns/data/data-table-row/variations/selectable/index.tsx +2 -2
- package/src/patterns/data/progress-metric/metadata.json +4 -4
- package/src/patterns/data/progress-metric/variations/colored/index.tsx +2 -2
- package/src/patterns/data/progress-metric/variations/main/index.tsx +2 -2
- package/src/patterns/data/progress-metric/variations/stacked/index.tsx +2 -2
- package/src/patterns/form/labeled-field/metadata.json +5 -5
- package/src/patterns/form/labeled-field/variations/main/index.tsx +1 -1
- package/src/patterns/form/labeled-field/variations/with-error/index.tsx +1 -1
- package/src/patterns/form/labeled-field/variations/with-hint/index.tsx +1 -1
- package/src/patterns/form/select-row/metadata.json +3 -3
- package/src/patterns/form/select-row/variations/main/index.tsx +1 -1
- package/src/patterns/form/select-row/variations/with-icon/index.tsx +1 -1
- package/src/patterns/form/toggle-setting-row/metadata.json +3 -3
- package/src/patterns/form/toggle-setting-row/variations/destructive/index.tsx +1 -1
- package/src/patterns/form/toggle-setting-row/variations/main/index.tsx +1 -1
- package/src/patterns/interaction/icon-action-bar/variations/compact/index.tsx +1 -1
- package/src/patterns/layout/media-object/metadata.json +2 -2
- package/src/patterns/layout/media-object/variations/sm/index.tsx +2 -2
- package/src/patterns/layout/split-row/metadata.json +4 -4
- package/src/patterns/layout/split-row/variations/actions/index.tsx +1 -1
- package/src/patterns/layout/split-row/variations/main/index.tsx +2 -2
- package/src/patterns/layout/split-row/variations/meta/index.tsx +3 -3
- package/src/patterns/layout/stat-block/metadata.json +4 -4
- package/src/patterns/layout/stat-block/variations/compact/index.tsx +1 -1
- package/src/patterns/layout/stat-block/variations/main/index.tsx +1 -1
- package/src/patterns/layout/stat-block/variations/with-icon/index.tsx +1 -1
- package/src/registry.ts +18 -28
- package/src/sections/CTA/index.tsx +1 -1
- package/src/sections/CTA/variations/02-split/index.tsx +1 -1
- package/src/sections/CTA/variations.json +1 -1
- package/src/sections/Features/index.tsx +1 -1
- package/src/sections/Hero/index.tsx +1 -1
- package/src/sections/Pricing/index.tsx +1 -1
- package/src/sections/Pricing/variations/01-cards/index.tsx +1 -1
- package/src/sections/Pricing/variations/02-comparison/index.tsx +1 -1
- package/src/sections/Pricing/variations.json +2 -2
- package/src/sections/Testimonials/index.tsx +1 -1
- package/src/sections/categories.ts +2 -2
- package/src/starters/Astro/index.tsx +1 -1
- package/src/starters/Blog/index.tsx +1 -1
- package/src/starters/CRM/index.tsx +1 -1
- package/src/starters/Documentation/index.tsx +1 -1
- package/src/starters/NextJS/index.tsx +3 -3
- package/src/starters/Productivity/index.tsx +1 -1
- package/src/starters/Tauri/index.tsx +1 -1
- package/src/starters/Vite/index.tsx +1 -1
- package/src/types.ts +1 -2
- package/src/utils/get-category-icon.tsx +1 -1
- package/src/utils/load-component-examples.ts +2 -2
- package/dist/components/Button/examples/02-joined-toggle-buttons.d.ts +0 -6
- package/dist/components/Button/examples/02-joined-toggle-buttons.d.ts.map +0 -1
- package/dist/components/Button/examples/02-joined-toggle-buttons.js +0 -15
- package/dist/components/Button/examples/02-joined-toggle-buttons.js.map +0 -1
- package/dist/components/Button/examples/03-split-action-button.d.ts +0 -6
- package/dist/components/Button/examples/03-split-action-button.d.ts.map +0 -1
- package/dist/components/Button/examples/03-split-action-button.js +0 -11
- package/dist/components/Button/examples/03-split-action-button.js.map +0 -1
- package/dist/components/Button/examples/04-toolbar-buttons.d.ts +0 -6
- package/dist/components/Button/examples/04-toolbar-buttons.d.ts.map +0 -1
- package/dist/components/Button/examples/04-toolbar-buttons.js +0 -11
- package/dist/components/Button/examples/04-toolbar-buttons.js.map +0 -1
- package/dist/components/Button/examples/05-pagination-controls.d.ts +0 -6
- package/dist/components/Button/examples/05-pagination-controls.d.ts.map +0 -1
- package/dist/components/Button/examples/05-pagination-controls.js +0 -16
- package/dist/components/Button/examples/05-pagination-controls.js.map +0 -1
- package/dist/components/Card/examples/02-user-profile-card.d.ts +0 -6
- package/dist/components/Card/examples/02-user-profile-card.d.ts.map +0 -1
- package/dist/components/Card/examples/02-user-profile-card.js +0 -12
- package/dist/components/Card/examples/02-user-profile-card.js.map +0 -1
- package/dist/components/Card/examples/03-settings-panel-card.d.ts +0 -6
- package/dist/components/Card/examples/03-settings-panel-card.d.ts.map +0 -1
- package/dist/components/Card/examples/03-settings-panel-card.js +0 -17
- package/dist/components/Card/examples/03-settings-panel-card.js.map +0 -1
- package/dist/components/Card/examples/04-task-progress-card.d.ts +0 -6
- package/dist/components/Card/examples/04-task-progress-card.d.ts.map +0 -1
- package/dist/components/Card/examples/04-task-progress-card.js +0 -12
- package/dist/components/Card/examples/04-task-progress-card.js.map +0 -1
- package/dist/components/Card/examples/05-data-summary-card.d.ts +0 -6
- package/dist/components/Card/examples/05-data-summary-card.d.ts.map +0 -1
- package/dist/components/Card/examples/05-data-summary-card.js +0 -12
- package/dist/components/Card/examples/05-data-summary-card.js.map +0 -1
- package/dist/components/CodeBlock/index.d.ts +0 -3
- package/dist/components/CodeBlock/index.d.ts.map +0 -1
- package/dist/components/CodeBlock/index.js +0 -58
- package/dist/components/CodeBlock/index.js.map +0 -1
- package/dist/components/Fold/examples/01-basic-fold.d.ts +0 -6
- package/dist/components/Fold/examples/01-basic-fold.d.ts.map +0 -1
- package/dist/components/Fold/examples/01-basic-fold.js +0 -11
- package/dist/components/Fold/examples/01-basic-fold.js.map +0 -1
- package/dist/components/Fold/examples/index.d.ts +0 -3
- package/dist/components/Fold/examples/index.d.ts.map +0 -1
- package/dist/components/Fold/examples/index.js +0 -4
- package/dist/components/Fold/examples/index.js.map +0 -1
- package/dist/components/Fold/examples.json +0 -7
- package/dist/components/Fold/index.d.ts +0 -6
- package/dist/components/Fold/index.d.ts.map +0 -1
- package/dist/components/Fold/index.js +0 -68
- package/dist/components/Fold/index.js.map +0 -1
- package/dist/components/Group/examples/02-active-buttons.d.ts +0 -6
- package/dist/components/Group/examples/02-active-buttons.d.ts.map +0 -1
- package/dist/components/Group/examples/02-active-buttons.js +0 -13
- package/dist/components/Group/examples/02-active-buttons.js.map +0 -1
- package/dist/components/Layout/index.d.ts +0 -5
- package/dist/components/Layout/index.d.ts.map +0 -1
- package/dist/components/Layout/index.js +0 -85
- package/dist/components/Layout/index.js.map +0 -1
- package/dist/components/Toast/examples/03-destructive-toast.d.ts +0 -6
- package/dist/components/Toast/examples/03-destructive-toast.d.ts.map +0 -1
- package/dist/components/Toast/examples/03-destructive-toast.js +0 -15
- package/dist/components/Toast/examples/03-destructive-toast.js.map +0 -1
- package/dist/patterns/content/feature-grid/example.d.ts +0 -6
- package/dist/patterns/content/feature-grid/example.d.ts.map +0 -1
- package/dist/patterns/content/feature-grid/example.js +0 -44
- package/dist/patterns/content/feature-grid/example.js.map +0 -1
- package/dist/patterns/content/feature-grid/metadata.json +0 -17
- package/dist/patterns/content/pricing-cards/example.d.ts +0 -6
- package/dist/patterns/content/pricing-cards/example.d.ts.map +0 -1
- package/dist/patterns/content/pricing-cards/example.js +0 -65
- package/dist/patterns/content/pricing-cards/example.js.map +0 -1
- package/dist/patterns/content/pricing-cards/metadata.json +0 -17
- package/dist/patterns/forms/settings-form-layout/example.d.ts +0 -6
- package/dist/patterns/forms/settings-form-layout/example.d.ts.map +0 -1
- package/dist/patterns/forms/settings-form-layout/example.js +0 -11
- package/dist/patterns/forms/settings-form-layout/example.js.map +0 -1
- package/dist/patterns/forms/settings-form-layout/metadata.json +0 -17
- package/dist/patterns/hero-landing/hero-with-cta/example.d.ts +0 -6
- package/dist/patterns/hero-landing/hero-with-cta/example.d.ts.map +0 -1
- package/dist/patterns/hero-landing/hero-with-cta/example.js +0 -11
- package/dist/patterns/hero-landing/hero-with-cta/example.js.map +0 -1
- package/dist/patterns/hero-landing/hero-with-cta/metadata.json +0 -17
- package/dist/patterns/navigation/sticky-header/example.d.ts +0 -6
- package/dist/patterns/navigation/sticky-header/example.d.ts.map +0 -1
- package/dist/patterns/navigation/sticky-header/example.js +0 -12
- package/dist/patterns/navigation/sticky-header/example.js.map +0 -1
- package/dist/patterns/navigation/sticky-header/metadata.json +0 -17
- package/dist/styles.css +0 -2042
- package/src/components/Path/examples/01-basic-breadcrumbs.tsx +0 -17
- package/src/providers/Theme/examples/01-provider-setup.tsx +0 -37
- package/src/providers/Theme/examples/02-toggle-component.tsx +0 -52
- package/src/providers/Theme/examples/03-advanced-patterns.tsx +0 -138
- package/src/providers/Theme/examples/index.ts +0 -3
- package/src/src/generated-styles.ts +0 -1359
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
{
|
|
9
9
|
"filename": "index.tsx",
|
|
10
10
|
"language": "typescript",
|
|
11
|
-
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { PromptInput } from './layout/PromptInput';\n\nexport function BasicAIChatInput() {\n const [prompt, setPrompt] = useState('');\n\n const handleSubmit = (value: string) => {\n console.log('Prompt submitted:', value);\n setPrompt('');\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto\">\n <h1 className=\"text-3xl font-bold text-foreground-50 mb-8\">AI Chat Input</h1>\n\n <div className=\"space-y-8\">\n <div>\n <p className=\"text-foreground-400 mb-4\">Ask the AI anything:</p>\n <PromptInput\n value={prompt}\n onChange={setPrompt}\n onSubmit={handleSubmit}\n placeholder=\"Enter your prompt...\"\n />\n </div>\n\n {prompt && (\n <div className=\"bg-background-800 rounded-md border border-background-700 p-6\">\n <p className=\"text-sm text-foreground-400 mb-2\">Current prompt:</p>\n <p className=\"text-foreground-50\">{prompt}</p>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n",
|
|
11
|
+
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { PromptInput } from './layout/PromptInput.js';\n\nexport function BasicAIChatInput() {\n const [prompt, setPrompt] = useState('');\n\n const handleSubmit = (value: string) => {\n console.log('Prompt submitted:', value);\n setPrompt('');\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto\">\n <h1 className=\"text-3xl font-bold text-foreground-50 mb-8\">AI Chat Input</h1>\n\n <div className=\"space-y-8\">\n <div>\n <p className=\"text-foreground-400 mb-4\">Ask the AI anything:</p>\n <PromptInput\n value={prompt}\n onChange={setPrompt}\n onSubmit={handleSubmit}\n placeholder=\"Enter your prompt...\"\n />\n </div>\n\n {prompt && (\n <div className=\"bg-background-800 rounded-md border border-background-700 p-6\">\n <p className=\"text-sm text-foreground-400 mb-2\">Current prompt:</p>\n <p className=\"text-foreground-50\">{prompt}</p>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n",
|
|
12
12
|
"isEntryPoint": true
|
|
13
13
|
},
|
|
14
14
|
{
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
{
|
|
29
29
|
"filename": "index.tsx",
|
|
30
30
|
"language": "typescript",
|
|
31
|
-
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { PromptInputWithSuggestions } from './layout/PromptInputWithSuggestions';\n\nexport function AIChatInputWithSuggestions() {\n const [prompt, setPrompt] = useState('');\n const [selectedSuggestion, setSelectedSuggestion] = useState<string | null>(null);\n\n const suggestions = [\n 'Explain this concept in simple terms',\n 'Write a code example',\n 'What are the best practices?',\n 'How do I debug this?',\n ];\n\n const handleSubmit = (value: string) => {\n console.log('Prompt submitted:', value);\n setPrompt('');\n setSelectedSuggestion(null);\n };\n\n const handleSuggestionClick = (suggestion: string) => {\n setSelectedSuggestion(suggestion);\n setPrompt(suggestion);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto\">\n <h1 className=\"text-3xl font-bold text-foreground-50 mb-8\">Chat with AI</h1>\n\n <div className=\"space-y-6\">\n {prompt.length === 0 && (\n <div>\n <p className=\"text-sm text-foreground-400 mb-3\">Quick suggestions:</p>\n <div className=\"grid grid-cols-2 gap-2\">\n {suggestions.map((suggestion) => (\n <button\n key={suggestion}\n onClick={() => handleSuggestionClick(suggestion)}\n className=\"text-left px-3 py-2 bg-background-800 border border-background-700 rounded hover:border-accent-500 hover:bg-background-700/80 transition-colors text-sm text-foreground-300 hover:text-foreground-200\"\n >\n {suggestion}\n </button>\n ))}\n </div>\n </div>\n )}\n\n <PromptInputWithSuggestions\n value={prompt}\n onChange={setPrompt}\n onSubmit={handleSubmit}\n placeholder=\"Enter your prompt or use a suggestion...\"\n />\n\n {selectedSuggestion && (\n <div className=\"p-4 bg-background-800 border border-accent-500/30 rounded-md\">\n <p className=\"text-
|
|
31
|
+
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { PromptInputWithSuggestions } from './layout/PromptInputWithSuggestions.js';\n\nexport function AIChatInputWithSuggestions() {\n const [prompt, setPrompt] = useState('');\n const [selectedSuggestion, setSelectedSuggestion] = useState<string | null>(null);\n\n const suggestions = [\n 'Explain this concept in simple terms',\n 'Write a code example',\n 'What are the best practices?',\n 'How do I debug this?',\n ];\n\n const handleSubmit = (value: string) => {\n console.log('Prompt submitted:', value);\n setPrompt('');\n setSelectedSuggestion(null);\n };\n\n const handleSuggestionClick = (suggestion: string) => {\n setSelectedSuggestion(suggestion);\n setPrompt(suggestion);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto\">\n <h1 className=\"text-3xl font-bold text-foreground-50 mb-8\">Chat with AI</h1>\n\n <div className=\"space-y-6\">\n {prompt.length === 0 && (\n <div>\n <p className=\"text-sm text-foreground-400 mb-3\">Quick suggestions:</p>\n <div className=\"grid grid-cols-2 gap-2\">\n {suggestions.map((suggestion) => (\n <button\n key={suggestion}\n onClick={() => handleSuggestionClick(suggestion)}\n className=\"text-left px-3 py-2 bg-background-800 border border-background-700 rounded hover:border-accent-500 hover:bg-background-700/80 transition-colors text-sm text-foreground-300 hover:text-foreground-200\"\n >\n {suggestion}\n </button>\n ))}\n </div>\n </div>\n )}\n\n <PromptInputWithSuggestions\n value={prompt}\n onChange={setPrompt}\n onSubmit={handleSubmit}\n placeholder=\"Enter your prompt or use a suggestion...\"\n />\n\n {selectedSuggestion && (\n <div className=\"p-4 bg-background-800 border border-accent-500/30 rounded-md\">\n <p className=\"text-sm text-foreground-400 mb-1\">Using suggestion:</p>\n <p className=\"text-foreground-50\">{selectedSuggestion}</p>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n",
|
|
32
32
|
"isEntryPoint": true
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"filename": "PromptInputWithSuggestions.tsx",
|
|
36
36
|
"language": "typescript",
|
|
37
|
-
"code": "import React, { useRef, useEffect } from 'react';\n\ninterface PromptInputWithSuggestionsProps {\n value: string;\n onChange: (value: string) => void;\n onSubmit: (value: string) => void;\n placeholder?: string;\n}\n\nexport function PromptInputWithSuggestions({\n value,\n onChange,\n onSubmit,\n placeholder = 'Ask AI...',\n}: PromptInputWithSuggestionsProps) {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = 'auto';\n textareaRef.current.style.height = `${Math.min(textareaRef.current.scrollHeight, 150)}px`;\n }\n }, [value]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n if (value.trim()) {\n onSubmit(value);\n }\n }\n };\n\n return (\n <div className=\"flex gap-3 p-4 bg-background-800 border border-background-700 rounded-md\">\n <textarea\n ref={textareaRef}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n className=\"flex-1 bg-transparent border-0 text-foreground-50 placeholder-foreground-400 focus:outline-none resize-none\"\n rows={1}\n />\n <div className=\"flex flex-col gap-2\">\n <button\n onClick={() => {\n if (value.trim()) {\n onSubmit(value);\n }\n }}\n disabled={!value.trim()}\n className=\"px-4 py-2 bg-accent-500 text-foreground-50 rounded font-medium hover:bg-accent-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex-shrink-0 text-sm\"\n >\n Send\n </button>\n <button className=\"px-2 py-1 text-foreground-400 hover:text-foreground-200 text-
|
|
37
|
+
"code": "import React, { useRef, useEffect } from 'react';\n\ninterface PromptInputWithSuggestionsProps {\n value: string;\n onChange: (value: string) => void;\n onSubmit: (value: string) => void;\n placeholder?: string;\n}\n\nexport function PromptInputWithSuggestions({\n value,\n onChange,\n onSubmit,\n placeholder = 'Ask AI...',\n}: PromptInputWithSuggestionsProps) {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = 'auto';\n textareaRef.current.style.height = `${Math.min(textareaRef.current.scrollHeight, 150)}px`;\n }\n }, [value]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n if (value.trim()) {\n onSubmit(value);\n }\n }\n };\n\n return (\n <div className=\"flex gap-3 p-4 bg-background-800 border border-background-700 rounded-md\">\n <textarea\n ref={textareaRef}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n className=\"flex-1 bg-transparent border-0 text-foreground-50 placeholder-foreground-400 focus:outline-none resize-none\"\n rows={1}\n />\n <div className=\"flex flex-col gap-2\">\n <button\n onClick={() => {\n if (value.trim()) {\n onSubmit(value);\n }\n }}\n disabled={!value.trim()}\n className=\"px-4 py-2 bg-accent-500 text-foreground-50 rounded font-medium hover:bg-accent-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex-shrink-0 text-sm\"\n >\n Send\n </button>\n <button className=\"px-2 py-1 text-foreground-400 hover:text-foreground-200 text-sm rounded border border-background-700 hover:border-background-600 transition-colors\">\n ⌘K\n </button>\n </div>\n </div>\n );\n}\n",
|
|
38
38
|
"isEntryPoint": false
|
|
39
39
|
}
|
|
40
40
|
]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ElementMetadata } from '../../../types';
|
|
2
|
+
import type { ElementMetadata } from '../../../types.js';
|
|
3
3
|
import variationsData from './variations.json' with { type: 'json' };
|
|
4
4
|
|
|
5
5
|
const baseMetadata = {
|
|
@@ -29,7 +29,7 @@ const elementMetadata: ElementMetadata = {
|
|
|
29
29
|
export function getPreview(): React.ReactNode {
|
|
30
30
|
return (
|
|
31
31
|
<div className="flex flex-col gap-2 w-full h-full p-3 bg-background-900 rounded-sm border border-background-700">
|
|
32
|
-
<div className="space-y-2 text-
|
|
32
|
+
<div className="space-y-2 text-sm">
|
|
33
33
|
<div className="flex items-start gap-2">
|
|
34
34
|
<span className="text-accent-500 font-bold">1.</span>
|
|
35
35
|
<div className="text-foreground-400">Analyzing the problem</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import { ExpandableThoughtStep } from './layout/ExpandableThoughtStep';
|
|
3
|
+
import { ExpandableThoughtStep } from './layout/ExpandableThoughtStep.js';
|
|
4
4
|
|
|
5
5
|
export function ChainOfThoughtWithDetails() {
|
|
6
6
|
const [expandedSteps, setExpandedSteps] = useState<Set<number>>(new Set([1]));
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
{
|
|
9
9
|
"filename": "index.tsx",
|
|
10
10
|
"language": "typescript",
|
|
11
|
-
"code": "\"use client\"\nimport React from 'react';\nimport { ThoughtStep } from './layout/ThoughtStep';\n\nexport function BasicChainOfThought() {\n const steps = [\n {\n number: 1,\n title: 'Problem Analysis',\n description: 'Breaking down the problem into manageable parts',\n },\n {\n number: 2,\n title: 'Strategy Development',\n description: 'Developing a strategy to solve the problem',\n },\n {\n number: 3,\n title: 'Implementation',\n description: 'Implementing the solution step by step',\n },\n {\n number: 4,\n title: 'Validation',\n description: 'Validating the solution and checking results',\n },\n ];\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto\">\n <h1 className=\"text-3xl font-bold text-foreground-50 mb-2\">AI Reasoning Process</h1>\n <p className=\"text-foreground-400 mb-8\">Here's how the AI is thinking through the problem:</p>\n\n <div className=\"space-y-4\">\n {steps.map((step) => (\n <ThoughtStep key={step.number} {...step} />\n ))}\n </div>\n\n <div className=\"mt-8 p-4 bg-background-800 border border-background-700 rounded-md\">\n <p className=\"text-sm text-foreground-300\">\n The chain of thought shows the reasoning process, making it easier to understand how the AI arrived at the conclusion.\n </p>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
11
|
+
"code": "\"use client\"\nimport React from 'react';\nimport { ThoughtStep } from './layout/ThoughtStep.js';\n\nexport function BasicChainOfThought() {\n const steps = [\n {\n number: 1,\n title: 'Problem Analysis',\n description: 'Breaking down the problem into manageable parts',\n },\n {\n number: 2,\n title: 'Strategy Development',\n description: 'Developing a strategy to solve the problem',\n },\n {\n number: 3,\n title: 'Implementation',\n description: 'Implementing the solution step by step',\n },\n {\n number: 4,\n title: 'Validation',\n description: 'Validating the solution and checking results',\n },\n ];\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto\">\n <h1 className=\"text-3xl font-bold text-foreground-50 mb-2\">AI Reasoning Process</h1>\n <p className=\"text-foreground-400 mb-8\">Here's how the AI is thinking through the problem:</p>\n\n <div className=\"space-y-4\">\n {steps.map((step) => (\n <ThoughtStep key={step.number} {...step} />\n ))}\n </div>\n\n <div className=\"mt-8 p-4 bg-background-800 border border-background-700 rounded-md\">\n <p className=\"text-sm text-foreground-300\">\n The chain of thought shows the reasoning process, making it easier to understand how the AI arrived at the conclusion.\n </p>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
12
12
|
"isEntryPoint": true
|
|
13
13
|
},
|
|
14
14
|
{
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
{
|
|
29
29
|
"filename": "index.tsx",
|
|
30
30
|
"language": "typescript",
|
|
31
|
-
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { ExpandableThoughtStep } from './layout/ExpandableThoughtStep';\n\nexport function ChainOfThoughtWithDetails() {\n const [expandedSteps, setExpandedSteps] = useState<Set<number>>(new Set([1]));\n\n const steps = [\n {\n number: 1,\n title: 'Understanding the Request',\n description: 'Parsing and understanding what the user is asking for',\n details: [\n 'Identified key requirements from the input',\n 'Recognized the problem domain',\n 'Determined necessary context and constraints',\n ],\n },\n {\n number: 2,\n title: 'Analyzing Available Approaches',\n description: 'Evaluating different methods to solve the problem',\n details: [\n 'Approach A: Direct computation (Fast but limited)',\n 'Approach B: Iterative refinement (Balanced)',\n 'Approach C: Machine learning (Slow but accurate)',\n ],\n },\n {\n number: 3,\n title: 'Selecting Optimal Strategy',\n description: 'Choosing the best approach based on constraints',\n details: [\n 'Evaluated trade-offs between speed and accuracy',\n 'Considered resource constraints',\n 'Selected Approach B for optimal balance',\n ],\n },\n {\n number: 4,\n title: 'Generating Solution',\n description: 'Implementing the chosen strategy step by step',\n details: [\n 'Breaking down into sub-tasks',\n 'Validating intermediate results',\n 'Optimizing for performance',\n ],\n },\n ];\n\n const toggleStep = (number: number) => {\n const newExpanded = new Set(expandedSteps);\n if (newExpanded.has(number)) {\n newExpanded.delete(number);\n } else {\n newExpanded.add(number);\n }\n setExpandedSteps(newExpanded);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto\">\n <h1 className=\"text-3xl font-bold text-foreground-50 mb-2\">Detailed AI Reasoning</h1>\n <p className=\"text-foreground-400 mb-8\">Click steps to see detailed reasoning:</p>\n\n <div className=\"space-y-3\">\n {steps.map((step) => (\n <ExpandableThoughtStep\n key={step.number}\n {...step}\n isExpanded={expandedSteps.has(step.number)}\n onToggle={() => toggleStep(step.number)}\n />\n ))}\n </div>\n </div>\n </div>\n );\n}\n",
|
|
31
|
+
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { ExpandableThoughtStep } from './layout/ExpandableThoughtStep.js';\n\nexport function ChainOfThoughtWithDetails() {\n const [expandedSteps, setExpandedSteps] = useState<Set<number>>(new Set([1]));\n\n const steps = [\n {\n number: 1,\n title: 'Understanding the Request',\n description: 'Parsing and understanding what the user is asking for',\n details: [\n 'Identified key requirements from the input',\n 'Recognized the problem domain',\n 'Determined necessary context and constraints',\n ],\n },\n {\n number: 2,\n title: 'Analyzing Available Approaches',\n description: 'Evaluating different methods to solve the problem',\n details: [\n 'Approach A: Direct computation (Fast but limited)',\n 'Approach B: Iterative refinement (Balanced)',\n 'Approach C: Machine learning (Slow but accurate)',\n ],\n },\n {\n number: 3,\n title: 'Selecting Optimal Strategy',\n description: 'Choosing the best approach based on constraints',\n details: [\n 'Evaluated trade-offs between speed and accuracy',\n 'Considered resource constraints',\n 'Selected Approach B for optimal balance',\n ],\n },\n {\n number: 4,\n title: 'Generating Solution',\n description: 'Implementing the chosen strategy step by step',\n details: [\n 'Breaking down into sub-tasks',\n 'Validating intermediate results',\n 'Optimizing for performance',\n ],\n },\n ];\n\n const toggleStep = (number: number) => {\n const newExpanded = new Set(expandedSteps);\n if (newExpanded.has(number)) {\n newExpanded.delete(number);\n } else {\n newExpanded.add(number);\n }\n setExpandedSteps(newExpanded);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto\">\n <h1 className=\"text-3xl font-bold text-foreground-50 mb-2\">Detailed AI Reasoning</h1>\n <p className=\"text-foreground-400 mb-8\">Click steps to see detailed reasoning:</p>\n\n <div className=\"space-y-3\">\n {steps.map((step) => (\n <ExpandableThoughtStep\n key={step.number}\n {...step}\n isExpanded={expandedSteps.has(step.number)}\n onToggle={() => toggleStep(step.number)}\n />\n ))}\n </div>\n </div>\n </div>\n );\n}\n",
|
|
32
32
|
"isEntryPoint": true
|
|
33
33
|
},
|
|
34
34
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ElementMetadata } from '../../../types';
|
|
2
|
+
import type { ElementMetadata } from '../../../types.js';
|
|
3
3
|
import variationsData from './variations.json' with { type: 'json' };
|
|
4
4
|
|
|
5
5
|
const baseMetadata = {
|
|
@@ -31,23 +31,23 @@ export function getPreview(): React.ReactNode {
|
|
|
31
31
|
<div className="flex flex-col h-full w-full bg-background-900 rounded-sm border border-background-700 overflow-hidden">
|
|
32
32
|
<div className="flex-1 overflow-y-auto space-y-3 p-3">
|
|
33
33
|
<div className="flex justify-start">
|
|
34
|
-
<div className="bg-background-700 rounded px-3 py-2 max-w-xs text-
|
|
34
|
+
<div className="bg-background-700 rounded px-3 py-2 max-w-xs text-sm text-foreground-400">
|
|
35
35
|
Hello, how can I help?
|
|
36
36
|
</div>
|
|
37
37
|
</div>
|
|
38
38
|
<div className="flex justify-end">
|
|
39
|
-
<div className="bg-accent-500 rounded px-3 py-2 max-w-xs text-
|
|
39
|
+
<div className="bg-accent-500 rounded px-3 py-2 max-w-xs text-sm text-foreground-50">
|
|
40
40
|
I need some assistance
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
43
43
|
<div className="flex justify-start">
|
|
44
|
-
<div className="bg-background-700 rounded px-3 py-2 max-w-xs text-
|
|
44
|
+
<div className="bg-background-700 rounded px-3 py-2 max-w-xs text-sm text-foreground-400">
|
|
45
45
|
I'm here to help!
|
|
46
46
|
</div>
|
|
47
47
|
</div>
|
|
48
48
|
</div>
|
|
49
49
|
<div className="border-t border-background-700 p-2 bg-background-800">
|
|
50
|
-
<div className="h-6 bg-background-700 rounded text-
|
|
50
|
+
<div className="h-6 bg-background-700 rounded text-sm flex items-center px-2 text-foreground-400">
|
|
51
51
|
Type a message...
|
|
52
52
|
</div>
|
|
53
53
|
</div>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import { ChatContainer } from './layout/ChatContainer';
|
|
4
|
-
import { ChatMessage } from './layout/ChatMessage';
|
|
5
|
-
import { ChatInput } from './layout/ChatInput';
|
|
3
|
+
import { ChatContainer } from './layout/ChatContainer.js';
|
|
4
|
+
import { ChatMessage } from './layout/ChatMessage.js';
|
|
5
|
+
import { ChatInput } from './layout/ChatInput.js';
|
|
6
6
|
|
|
7
7
|
interface Message {
|
|
8
8
|
id: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import { ChatContainerWithActions } from './layout/ChatContainerWithActions';
|
|
4
|
-
import { ChatMessage } from './layout/ChatMessage';
|
|
5
|
-
import { ChatInputWithActions } from './layout/ChatInputWithActions';
|
|
3
|
+
import { ChatContainerWithActions } from './layout/ChatContainerWithActions.js';
|
|
4
|
+
import { ChatMessage } from './layout/ChatMessage.js';
|
|
5
|
+
import { ChatInputWithActions } from './layout/ChatInputWithActions.js';
|
|
6
6
|
|
|
7
7
|
interface Message {
|
|
8
8
|
id: string;
|
|
@@ -57,19 +57,19 @@ export function ChatWithActions() {
|
|
|
57
57
|
<div className="flex gap-2 mb-3 flex-wrap">
|
|
58
58
|
<button
|
|
59
59
|
onClick={() => handleAction('Copy code')}
|
|
60
|
-
className="px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-
|
|
60
|
+
className="px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-sm transition-colors"
|
|
61
61
|
>
|
|
62
62
|
📋 Copy
|
|
63
63
|
</button>
|
|
64
64
|
<button
|
|
65
65
|
onClick={() => handleAction('Explain')}
|
|
66
|
-
className="px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-
|
|
66
|
+
className="px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-sm transition-colors"
|
|
67
67
|
>
|
|
68
68
|
💡 Explain
|
|
69
69
|
</button>
|
|
70
70
|
<button
|
|
71
71
|
onClick={() => handleAction('Refactor')}
|
|
72
|
-
className="px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-
|
|
72
|
+
className="px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-sm transition-colors"
|
|
73
73
|
>
|
|
74
74
|
✨ Refactor
|
|
75
75
|
</button>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
{
|
|
9
9
|
"filename": "index.tsx",
|
|
10
10
|
"language": "typescript",
|
|
11
|
-
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { ChatContainer } from './layout/ChatContainer';\nimport { ChatMessage } from './layout/ChatMessage';\nimport { ChatInput } from './layout/ChatInput';\n\ninterface Message {\n id: string;\n content: string;\n sender: 'ai' | 'user';\n}\n\nexport function BasicChat() {\n const [messages, setMessages] = useState<Message[]>([\n { id: '1', content: 'Hello! How can I assist you today?', sender: 'ai' },\n { id: '2', content: 'I need help with my project', sender: 'user' },\n { id: '3', content: 'Sure! Tell me more about what you need help with.', sender: 'ai' },\n ]);\n\n const handleSendMessage = (content: string) => {\n const userMessage = {\n id: String(messages.length + 1),\n content,\n sender: 'user' as const,\n };\n setMessages([...messages, userMessage]);\n\n setTimeout(() => {\n const aiMessage = {\n id: String(messages.length + 2),\n content: 'That sounds interesting! I can help you with that.',\n sender: 'ai' as const,\n };\n setMessages((prev) => [...prev, aiMessage]);\n }, 500);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto h-96\">\n <ChatContainer>\n <div className=\"flex-1 overflow-y-auto space-y-4 p-4\">\n {messages.map((message) => (\n <ChatMessage key={message.id} message={message.content} sender={message.sender} />\n ))}\n </div>\n <div className=\"border-t border-background-700 p-4\">\n <ChatInput onSendMessage={handleSendMessage} />\n </div>\n </ChatContainer>\n </div>\n </div>\n );\n}\n",
|
|
11
|
+
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { ChatContainer } from './layout/ChatContainer.js';\nimport { ChatMessage } from './layout/ChatMessage.js';\nimport { ChatInput } from './layout/ChatInput.js';\n\ninterface Message {\n id: string;\n content: string;\n sender: 'ai' | 'user';\n}\n\nexport function BasicChat() {\n const [messages, setMessages] = useState<Message[]>([\n { id: '1', content: 'Hello! How can I assist you today?', sender: 'ai' },\n { id: '2', content: 'I need help with my project', sender: 'user' },\n { id: '3', content: 'Sure! Tell me more about what you need help with.', sender: 'ai' },\n ]);\n\n const handleSendMessage = (content: string) => {\n const userMessage = {\n id: String(messages.length + 1),\n content,\n sender: 'user' as const,\n };\n setMessages([...messages, userMessage]);\n\n setTimeout(() => {\n const aiMessage = {\n id: String(messages.length + 2),\n content: 'That sounds interesting! I can help you with that.',\n sender: 'ai' as const,\n };\n setMessages((prev) => [...prev, aiMessage]);\n }, 500);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto h-96\">\n <ChatContainer>\n <div className=\"flex-1 overflow-y-auto space-y-4 p-4\">\n {messages.map((message) => (\n <ChatMessage key={message.id} message={message.content} sender={message.sender} />\n ))}\n </div>\n <div className=\"border-t border-background-700 p-4\">\n <ChatInput onSendMessage={handleSendMessage} />\n </div>\n </ChatContainer>\n </div>\n </div>\n );\n}\n",
|
|
12
12
|
"isEntryPoint": true
|
|
13
13
|
},
|
|
14
14
|
{
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
{
|
|
41
41
|
"filename": "index.tsx",
|
|
42
42
|
"language": "typescript",
|
|
43
|
-
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { ChatContainerWithActions } from './layout/ChatContainerWithActions';\nimport { ChatMessage } from './layout/ChatMessage';\nimport { ChatInputWithActions } from './layout/ChatInputWithActions';\n\ninterface Message {\n id: string;\n content: string;\n sender: 'ai' | 'user';\n}\n\nexport function ChatWithActions() {\n const [messages, setMessages] = useState<Message[]>([\n { id: '1', content: 'Hello! I can help you with questions or tasks.', sender: 'ai' },\n { id: '2', content: 'Can you help me with debugging?', sender: 'user' },\n { id: '3', content: 'Absolutely! I can help you debug your code. What issue are you facing?', sender: 'ai' },\n ]);\n\n const handleSendMessage = (content: string) => {\n const userMessage = {\n id: String(messages.length + 1),\n content,\n sender: 'user' as const,\n };\n setMessages([...messages, userMessage]);\n\n setTimeout(() => {\n const aiMessage = {\n id: String(messages.length + 2),\n content: 'I can help with that. Let me analyze your code.',\n sender: 'ai' as const,\n };\n setMessages((prev) => [...prev, aiMessage]);\n }, 500);\n };\n\n const handleAction = (action: string) => {\n const actionMessage = {\n id: String(messages.length + 1),\n content: `[Action: ${action}]`,\n sender: 'user' as const,\n };\n setMessages([...messages, actionMessage]);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto h-96\">\n <ChatContainerWithActions>\n <div className=\"flex-1 overflow-y-auto space-y-4 p-4\">\n {messages.map((message) => (\n <ChatMessage key={message.id} message={message.content} sender={message.sender} />\n ))}\n </div>\n <div className=\"border-t border-background-700 p-4 bg-background-700/50\">\n <div className=\"flex gap-2 mb-3 flex-wrap\">\n <button\n onClick={() => handleAction('Copy code')}\n className=\"px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-
|
|
43
|
+
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { ChatContainerWithActions } from './layout/ChatContainerWithActions.js';\nimport { ChatMessage } from './layout/ChatMessage.js';\nimport { ChatInputWithActions } from './layout/ChatInputWithActions.js';\n\ninterface Message {\n id: string;\n content: string;\n sender: 'ai' | 'user';\n}\n\nexport function ChatWithActions() {\n const [messages, setMessages] = useState<Message[]>([\n { id: '1', content: 'Hello! I can help you with questions or tasks.', sender: 'ai' },\n { id: '2', content: 'Can you help me with debugging?', sender: 'user' },\n { id: '3', content: 'Absolutely! I can help you debug your code. What issue are you facing?', sender: 'ai' },\n ]);\n\n const handleSendMessage = (content: string) => {\n const userMessage = {\n id: String(messages.length + 1),\n content,\n sender: 'user' as const,\n };\n setMessages([...messages, userMessage]);\n\n setTimeout(() => {\n const aiMessage = {\n id: String(messages.length + 2),\n content: 'I can help with that. Let me analyze your code.',\n sender: 'ai' as const,\n };\n setMessages((prev) => [...prev, aiMessage]);\n }, 500);\n };\n\n const handleAction = (action: string) => {\n const actionMessage = {\n id: String(messages.length + 1),\n content: `[Action: ${action}]`,\n sender: 'user' as const,\n };\n setMessages([...messages, actionMessage]);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-2xl mx-auto h-96\">\n <ChatContainerWithActions>\n <div className=\"flex-1 overflow-y-auto space-y-4 p-4\">\n {messages.map((message) => (\n <ChatMessage key={message.id} message={message.content} sender={message.sender} />\n ))}\n </div>\n <div className=\"border-t border-background-700 p-4 bg-background-700/50\">\n <div className=\"flex gap-2 mb-3 flex-wrap\">\n <button\n onClick={() => handleAction('Copy code')}\n className=\"px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-sm transition-colors\"\n >\n 📋 Copy\n </button>\n <button\n onClick={() => handleAction('Explain')}\n className=\"px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-sm transition-colors\"\n >\n 💡 Explain\n </button>\n <button\n onClick={() => handleAction('Refactor')}\n className=\"px-2 py-1 bg-background-700 hover:bg-background-600 text-foreground-400 hover:text-foreground-300 rounded text-sm transition-colors\"\n >\n ✨ Refactor\n </button>\n </div>\n <ChatInputWithActions onSendMessage={handleSendMessage} />\n </div>\n </ChatContainerWithActions>\n </div>\n </div>\n );\n}\n",
|
|
44
44
|
"isEntryPoint": true
|
|
45
45
|
},
|
|
46
46
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ElementMetadata } from '../../../types';
|
|
2
|
+
import type { ElementMetadata } from '../../../types.js';
|
|
3
3
|
import variationsData from './variations.json' with { type: 'json' };
|
|
4
4
|
|
|
5
5
|
const baseMetadata = {
|
|
@@ -29,7 +29,7 @@ const elementMetadata: ElementMetadata = {
|
|
|
29
29
|
export function getPreview(): React.ReactNode {
|
|
30
30
|
return (
|
|
31
31
|
<div className="flex items-center justify-center w-full h-full p-3 bg-background-900 rounded-sm border border-background-700">
|
|
32
|
-
<button className="px-3 py-2 bg-accent-500 text-foreground-50 text-
|
|
32
|
+
<button className="px-3 py-2 bg-accent-500 text-foreground-50 text-sm font-medium rounded hover:bg-accent-600 transition-colors flex items-center gap-2">
|
|
33
33
|
<span>📋</span>
|
|
34
34
|
Copy
|
|
35
35
|
</button>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import { CopyButtonWithToast } from './layout/CopyButtonWithToast';
|
|
3
|
+
import { CopyButtonWithToast } from './layout/CopyButtonWithToast.js';
|
|
4
4
|
|
|
5
5
|
export function CopyPageWithSuccess() {
|
|
6
6
|
const [notification, setNotification] = useState<string | null>(null);
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
{
|
|
9
9
|
"filename": "index.tsx",
|
|
10
10
|
"language": "typescript",
|
|
11
|
-
"code": "\"use client\"\nimport React from 'react';\nimport { CopyButton } from './layout/CopyButton';\n\nexport function BasicCopyPage() {\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-4xl mx-auto\">\n <div className=\"flex items-center justify-between mb-8\">\n <h1 className=\"text-3xl font-bold text-foreground-50\">Documentation Page</h1>\n <CopyButton />\n </div>\n\n <div className=\"bg-background-800 rounded-md border border-background-700 p-8\">\n <div className=\"prose prose-invert space-y-6\">\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Overview</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-50\" />\n </div>\n </section>\n\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Getting Started</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Features</h2>\n <div className=\"space-y-3\">\n <div className=\"flex gap-3\">\n <div className=\"w-2 h-2 rounded-full bg-accent-500 mt-1.5 flex-shrink-0\" />\n <div className=\"space-y-1\">\n <div className=\"h-3 bg-background-700 rounded w-32 opacity-50\" />\n </div>\n </div>\n <div className=\"flex gap-3\">\n <div className=\"w-2 h-2 rounded-full bg-accent-500 mt-1.5 flex-shrink-0\" />\n <div className=\"space-y-1\">\n <div className=\"h-3 bg-background-700 rounded w-40 opacity-50\" />\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
11
|
+
"code": "\"use client\"\nimport React from 'react';\nimport { CopyButton } from './layout/CopyButton.js';\n\nexport function BasicCopyPage() {\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-4xl mx-auto\">\n <div className=\"flex items-center justify-between mb-8\">\n <h1 className=\"text-3xl font-bold text-foreground-50\">Documentation Page</h1>\n <CopyButton />\n </div>\n\n <div className=\"bg-background-800 rounded-md border border-background-700 p-8\">\n <div className=\"prose prose-invert space-y-6\">\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Overview</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-50\" />\n </div>\n </section>\n\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Getting Started</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Features</h2>\n <div className=\"space-y-3\">\n <div className=\"flex gap-3\">\n <div className=\"w-2 h-2 rounded-full bg-accent-500 mt-1.5 flex-shrink-0\" />\n <div className=\"space-y-1\">\n <div className=\"h-3 bg-background-700 rounded w-32 opacity-50\" />\n </div>\n </div>\n <div className=\"flex gap-3\">\n <div className=\"w-2 h-2 rounded-full bg-accent-500 mt-1.5 flex-shrink-0\" />\n <div className=\"space-y-1\">\n <div className=\"h-3 bg-background-700 rounded w-40 opacity-50\" />\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
12
12
|
"isEntryPoint": true
|
|
13
13
|
},
|
|
14
14
|
{
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
{
|
|
29
29
|
"filename": "index.tsx",
|
|
30
30
|
"language": "typescript",
|
|
31
|
-
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { CopyButtonWithToast } from './layout/CopyButtonWithToast';\n\nexport function CopyPageWithSuccess() {\n const [notification, setNotification] = useState<string | null>(null);\n\n const handleCopySuccess = () => {\n setNotification('Page content copied to clipboard!');\n setTimeout(() => setNotification(null), 3000);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-4xl mx-auto\">\n <div className=\"flex items-center justify-between mb-8\">\n <h1 className=\"text-3xl font-bold text-foreground-50\">Share & Copy Documentation</h1>\n <CopyButtonWithToast onCopySuccess={handleCopySuccess} />\n </div>\n\n {notification && (\n <div className=\"mb-6 px-4 py-3 bg-success-500 bg-opacity-20 border border-success-500 rounded-md text-success-200 flex items-center gap-3\">\n <span>✓</span>\n <span>{notification}</span>\n </div>\n )}\n\n <div className=\"bg-background-800 rounded-md border border-background-700 p-8\">\n <div className=\"space-y-6\">\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Content Section 1</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n\n <div className=\"border-t border-background-700 pt-6\" />\n\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Content Section 2</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-50\" />\n </div>\n </section>\n\n <div className=\"border-t border-background-700 pt-6\" />\n\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Content Section 3</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-3/4 opacity-50\" />\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
31
|
+
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { CopyButtonWithToast } from './layout/CopyButtonWithToast.js';\n\nexport function CopyPageWithSuccess() {\n const [notification, setNotification] = useState<string | null>(null);\n\n const handleCopySuccess = () => {\n setNotification('Page content copied to clipboard!');\n setTimeout(() => setNotification(null), 3000);\n };\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-4xl mx-auto\">\n <div className=\"flex items-center justify-between mb-8\">\n <h1 className=\"text-3xl font-bold text-foreground-50\">Share & Copy Documentation</h1>\n <CopyButtonWithToast onCopySuccess={handleCopySuccess} />\n </div>\n\n {notification && (\n <div className=\"mb-6 px-4 py-3 bg-success-500 bg-opacity-20 border border-success-500 rounded-md text-success-200 flex items-center gap-3\">\n <span>✓</span>\n <span>{notification}</span>\n </div>\n )}\n\n <div className=\"bg-background-800 rounded-md border border-background-700 p-8\">\n <div className=\"space-y-6\">\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Content Section 1</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n\n <div className=\"border-t border-background-700 pt-6\" />\n\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Content Section 2</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-50\" />\n </div>\n </section>\n\n <div className=\"border-t border-background-700 pt-6\" />\n\n <section>\n <h2 className=\"text-xl font-semibold text-foreground-50 mb-4\">Content Section 3</h2>\n <div className=\"space-y-2 text-foreground-300\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-3/4 opacity-50\" />\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
32
32
|
"isEntryPoint": true
|
|
33
33
|
},
|
|
34
34
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ElementMetadata } from '../../../types';
|
|
2
|
+
import type { ElementMetadata } from '../../../types.js';
|
|
3
3
|
import variationsData from './variations.json' with { type: 'json' };
|
|
4
4
|
|
|
5
5
|
const baseMetadata = {
|
|
@@ -30,7 +30,7 @@ export function getPreview(): React.ReactNode {
|
|
|
30
30
|
return (
|
|
31
31
|
<div className="flex items-center justify-between w-full h-full p-4 bg-background-900 rounded-sm border border-background-700 cursor-pointer hover:bg-background-800 transition-colors">
|
|
32
32
|
<div className="flex-1">
|
|
33
|
-
<div className="text-
|
|
33
|
+
<div className="text-sm text-foreground-400 mb-1">Next Article</div>
|
|
34
34
|
<div className="text-sm font-medium text-foreground-200">Advanced Setup Guide</div>
|
|
35
35
|
</div>
|
|
36
36
|
<div className="text-foreground-400">→</div>
|
package/src/elements/Documentation/NextArticle/variations/01-basic/layout/NextArticleCard.tsx
CHANGED
|
@@ -12,7 +12,7 @@ export function NextArticleCard({ title, description, href }: NextArticleCardPro
|
|
|
12
12
|
>
|
|
13
13
|
<div className="flex items-center justify-between">
|
|
14
14
|
<div className="flex-1">
|
|
15
|
-
<div className="text-
|
|
15
|
+
<div className="text-sm text-foreground-400 mb-1">Next Article</div>
|
|
16
16
|
<h3 className="text-lg font-semibold text-foreground-50 mb-2 group-hover:text-accent-400 transition-colors">
|
|
17
17
|
{title}
|
|
18
18
|
</h3>
|
|
@@ -20,7 +20,7 @@ export function NextArticleWithIconCard({
|
|
|
20
20
|
>
|
|
21
21
|
<div className="text-3xl flex-shrink-0 mt-1">{icon}</div>
|
|
22
22
|
<div className="flex-1 min-w-0">
|
|
23
|
-
<div className="text-
|
|
23
|
+
<div className="text-sm text-accent-400 font-medium mb-1">{category}</div>
|
|
24
24
|
<h3 className="text-lg font-semibold text-foreground-50 mb-1 group-hover:text-accent-400 transition-colors">
|
|
25
25
|
{title}
|
|
26
26
|
</h3>
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
{
|
|
9
9
|
"filename": "index.tsx",
|
|
10
10
|
"language": "typescript",
|
|
11
|
-
"code": "\"use client\"\nimport React from 'react';\nimport { NextArticleCard } from './layout/NextArticleCard';\n\nexport function BasicNextArticle() {\n const articles = [\n {\n title: 'Getting Started with Components',\n description: 'Learn how to install and use UI Lab components in your project.',\n href: '#getting-started',\n },\n {\n title: 'Advanced Component Patterns',\n description: 'Explore advanced patterns and best practices for using components.',\n href: '#advanced',\n },\n ];\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-4xl mx-auto space-y-12\">\n <div>\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-6\">Documentation Sections</h2>\n <div className=\"space-y-6\">\n {articles.map((article, index) => (\n <div key={index}>\n <div className=\"bg-background-800 rounded-md border border-background-700 p-8 mb-4\">\n <div className=\"space-y-2 mb-6\">\n <div className=\"h-4 bg-background-700 rounded w-3/4 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-40\" />\n </div>\n </div>\n <NextArticleCard {...article} />\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
11
|
+
"code": "\"use client\"\nimport React from 'react';\nimport { NextArticleCard } from './layout/NextArticleCard.js';\n\nexport function BasicNextArticle() {\n const articles = [\n {\n title: 'Getting Started with Components',\n description: 'Learn how to install and use UI Lab components in your project.',\n href: '#getting-started',\n },\n {\n title: 'Advanced Component Patterns',\n description: 'Explore advanced patterns and best practices for using components.',\n href: '#advanced',\n },\n ];\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-4xl mx-auto space-y-12\">\n <div>\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-6\">Documentation Sections</h2>\n <div className=\"space-y-6\">\n {articles.map((article, index) => (\n <div key={index}>\n <div className=\"bg-background-800 rounded-md border border-background-700 p-8 mb-4\">\n <div className=\"space-y-2 mb-6\">\n <div className=\"h-4 bg-background-700 rounded w-3/4 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-40\" />\n </div>\n </div>\n <NextArticleCard {...article} />\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
12
12
|
"isEntryPoint": true
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"filename": "NextArticleCard.tsx",
|
|
16
16
|
"language": "typescript",
|
|
17
|
-
"code": "interface NextArticleCardProps {\n title: string;\n description: string;\n href: string;\n}\n\nexport function NextArticleCard({ title, description, href }: NextArticleCardProps) {\n return (\n <a\n href={href}\n className=\"block bg-background-700 border border-background-600 rounded-md p-4 hover:border-accent-500 hover:bg-background-700/80 transition-colors group\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex-1\">\n <div className=\"text-
|
|
17
|
+
"code": "interface NextArticleCardProps {\n title: string;\n description: string;\n href: string;\n}\n\nexport function NextArticleCard({ title, description, href }: NextArticleCardProps) {\n return (\n <a\n href={href}\n className=\"block bg-background-700 border border-background-600 rounded-md p-4 hover:border-accent-500 hover:bg-background-700/80 transition-colors group\"\n >\n <div className=\"flex items-center justify-between\">\n <div className=\"flex-1\">\n <div className=\"text-sm text-foreground-400 mb-1\">Next Article</div>\n <h3 className=\"text-lg font-semibold text-foreground-50 mb-2 group-hover:text-accent-400 transition-colors\">\n {title}\n </h3>\n <p className=\"text-sm text-foreground-400\">{description}</p>\n </div>\n <div className=\"ml-4 text-xl text-foreground-400 group-hover:text-accent-400 transition-colors flex-shrink-0\">\n →\n </div>\n </div>\n </a>\n );\n}\n",
|
|
18
18
|
"isEntryPoint": false
|
|
19
19
|
}
|
|
20
20
|
]
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
{
|
|
29
29
|
"filename": "index.tsx",
|
|
30
30
|
"language": "typescript",
|
|
31
|
-
"code": "\"use client\"\nimport React from 'react';\nimport { NextArticleWithIconCard } from './layout/NextArticleWithIconCard';\n\nexport function NextArticleWithIcon() {\n const articles = [\n {\n icon: '🚀',\n title: 'Quick Start Guide',\n description: 'Get up and running in 5 minutes with our quick start guide.',\n href: '#quickstart',\n category: 'Getting Started',\n },\n {\n icon: '⚙️',\n title: 'Configuration Options',\n description: 'Learn about all available configuration options and customization.',\n href: '#config',\n category: 'Advanced',\n },\n ];\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-4xl mx-auto space-y-12\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-8\">Continue Reading</h2>\n\n <div className=\"space-y-4\">\n {articles.map((article, index) => (\n <NextArticleWithIconCard key={index} {...article} />\n ))}\n </div>\n\n <div className=\"bg-background-800 rounded-md border border-background-700 p-8 mt-12\">\n <div className=\"space-y-3\">\n <div className=\"h-4 bg-background-700 rounded w-2/3 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-full opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n </div>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
31
|
+
"code": "\"use client\"\nimport React from 'react';\nimport { NextArticleWithIconCard } from './layout/NextArticleWithIconCard.js';\n\nexport function NextArticleWithIcon() {\n const articles = [\n {\n icon: '🚀',\n title: 'Quick Start Guide',\n description: 'Get up and running in 5 minutes with our quick start guide.',\n href: '#quickstart',\n category: 'Getting Started',\n },\n {\n icon: '⚙️',\n title: 'Configuration Options',\n description: 'Learn about all available configuration options and customization.',\n href: '#config',\n category: 'Advanced',\n },\n ];\n\n return (\n <div className=\"min-h-screen bg-background-950 p-8\">\n <div className=\"max-w-4xl mx-auto space-y-12\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-8\">Continue Reading</h2>\n\n <div className=\"space-y-4\">\n {articles.map((article, index) => (\n <NextArticleWithIconCard key={index} {...article} />\n ))}\n </div>\n\n <div className=\"bg-background-800 rounded-md border border-background-700 p-8 mt-12\">\n <div className=\"space-y-3\">\n <div className=\"h-4 bg-background-700 rounded w-2/3 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-full opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n </div>\n </div>\n </div>\n </div>\n );\n}\n",
|
|
32
32
|
"isEntryPoint": true
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"filename": "NextArticleWithIconCard.tsx",
|
|
36
36
|
"language": "typescript",
|
|
37
|
-
"code": "interface NextArticleWithIconCardProps {\n icon: string;\n title: string;\n description: string;\n category: string;\n href: string;\n}\n\nexport function NextArticleWithIconCard({\n icon,\n title,\n description,\n category,\n href,\n}: NextArticleWithIconCardProps) {\n return (\n <a\n href={href}\n className=\"flex items-start gap-4 p-4 bg-background-700 border border-background-600 rounded-md hover:border-accent-500 hover:bg-background-700/80 transition-colors group\"\n >\n <div className=\"text-3xl flex-shrink-0 mt-1\">{icon}</div>\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-
|
|
37
|
+
"code": "interface NextArticleWithIconCardProps {\n icon: string;\n title: string;\n description: string;\n category: string;\n href: string;\n}\n\nexport function NextArticleWithIconCard({\n icon,\n title,\n description,\n category,\n href,\n}: NextArticleWithIconCardProps) {\n return (\n <a\n href={href}\n className=\"flex items-start gap-4 p-4 bg-background-700 border border-background-600 rounded-md hover:border-accent-500 hover:bg-background-700/80 transition-colors group\"\n >\n <div className=\"text-3xl flex-shrink-0 mt-1\">{icon}</div>\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm text-accent-400 font-medium mb-1\">{category}</div>\n <h3 className=\"text-lg font-semibold text-foreground-50 mb-1 group-hover:text-accent-400 transition-colors\">\n {title}\n </h3>\n <p className=\"text-sm text-foreground-400\">{description}</p>\n </div>\n <div className=\"text-foreground-400 group-hover:text-accent-400 transition-colors flex-shrink-0 text-lg\">\n →\n </div>\n </a>\n );\n}\n",
|
|
38
38
|
"isEntryPoint": false
|
|
39
39
|
}
|
|
40
40
|
]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ElementMetadata } from '../../../types';
|
|
2
|
+
import type { ElementMetadata } from '../../../types.js';
|
|
3
3
|
import variationsData from './variations.json' with { type: 'json' };
|
|
4
4
|
|
|
5
5
|
const baseMetadata = {
|
|
@@ -29,14 +29,14 @@ const elementMetadata: ElementMetadata = {
|
|
|
29
29
|
export function getPreview(): React.ReactNode {
|
|
30
30
|
return (
|
|
31
31
|
<div className="flex flex-col gap-2 w-full h-full p-3 bg-background-900 rounded-sm border border-background-700">
|
|
32
|
-
<div className="space-y-2 text-
|
|
32
|
+
<div className="space-y-2 text-sm">
|
|
33
33
|
<div className="font-semibold text-foreground-200 mb-2">Contents</div>
|
|
34
34
|
<div className="text-foreground-400">• Introduction</div>
|
|
35
|
-
<div className="ml-3 text-foreground-400 text-
|
|
36
|
-
<div className="ml-3 text-foreground-400 text-
|
|
35
|
+
<div className="ml-3 text-foreground-400 text-sm">◦ Overview</div>
|
|
36
|
+
<div className="ml-3 text-foreground-400 text-sm">◦ Getting Started</div>
|
|
37
37
|
<div className="text-foreground-400">• Installation</div>
|
|
38
38
|
<div className="text-foreground-400">• Usage</div>
|
|
39
|
-
<div className="ml-3 text-foreground-400 text-
|
|
39
|
+
<div className="ml-3 text-foreground-400 text-sm">◦ Basic</div>
|
|
40
40
|
</div>
|
|
41
41
|
</div>
|
|
42
42
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import { ExpandableTableOfContents } from './layout/ExpandableTableOfContents';
|
|
3
|
+
import { ExpandableTableOfContents } from './layout/ExpandableTableOfContents.js';
|
|
4
4
|
|
|
5
5
|
export function ExpandedTOC() {
|
|
6
6
|
const [activeSection, setActiveSection] = useState('intro');
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
{
|
|
9
9
|
"filename": "index.tsx",
|
|
10
10
|
"language": "typescript",
|
|
11
|
-
"code": "\"use client\"\nimport React from 'react';\nimport { TableOfContents } from './layout/TableOfContents';\n\nexport function BasicTOC() {\n return (\n <div className=\"flex gap-8 min-h-screen bg-background-950 p-8\">\n <div className=\"flex-1\">\n <article className=\"space-y-8\">\n <section>\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Introduction</h2>\n <p className=\"text-foreground-300 mb-4\">\n This document provides a comprehensive guide to getting started with UI Lab components.\n </p>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-50\" />\n </div>\n </section>\n\n <section>\n <h3 className=\"text-xl font-bold text-foreground-50 mb-4\">Overview</h3>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n </div>\n </section>\n\n <section>\n <h3 className=\"text-xl font-bold text-foreground-50 mb-4\">Getting Started</h3>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-40\" />\n </div>\n </section>\n\n <section>\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Installation</h2>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n\n <section>\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Usage</h2>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-3/4 opacity-50\" />\n </div>\n </section>\n </article>\n </div>\n\n <aside className=\"w-64 sticky top-8 h-fit\">\n <TableOfContents />\n </aside>\n </div>\n );\n}\n",
|
|
11
|
+
"code": "\"use client\"\nimport React from 'react';\nimport { TableOfContents } from './layout/TableOfContents.js';\n\nexport function BasicTOC() {\n return (\n <div className=\"flex gap-8 min-h-screen bg-background-950 p-8\">\n <div className=\"flex-1\">\n <article className=\"space-y-8\">\n <section>\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Introduction</h2>\n <p className=\"text-foreground-300 mb-4\">\n This document provides a comprehensive guide to getting started with UI Lab components.\n </p>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-50\" />\n </div>\n </section>\n\n <section>\n <h3 className=\"text-xl font-bold text-foreground-50 mb-4\">Overview</h3>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n </div>\n </section>\n\n <section>\n <h3 className=\"text-xl font-bold text-foreground-50 mb-4\">Getting Started</h3>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-40\" />\n </div>\n </section>\n\n <section>\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Installation</h2>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n\n <section>\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Usage</h2>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-3/4 opacity-50\" />\n </div>\n </section>\n </article>\n </div>\n\n <aside className=\"w-64 sticky top-8 h-fit\">\n <TableOfContents />\n </aside>\n </div>\n );\n}\n",
|
|
12
12
|
"isEntryPoint": true
|
|
13
13
|
},
|
|
14
14
|
{
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
{
|
|
29
29
|
"filename": "index.tsx",
|
|
30
30
|
"language": "typescript",
|
|
31
|
-
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { ExpandableTableOfContents } from './layout/ExpandableTableOfContents';\n\nexport function ExpandedTOC() {\n const [activeSection, setActiveSection] = useState('intro');\n\n return (\n <div className=\"flex gap-8 min-h-screen bg-background-950 p-8\">\n <div className=\"flex-1\">\n <article className=\"space-y-8\">\n <section id=\"intro\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Introduction</h2>\n <p className=\"text-foreground-300 mb-4\">\n Comprehensive guide with expandable table of contents showing active section.\n </p>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n\n <section id=\"concepts\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Core Concepts</h2>\n <div className=\"space-y-6\">\n <div>\n <h3 className=\"text-lg font-semibold text-foreground-50 mb-3\">Fundamentals</h3>\n <div className=\"space-y-2 ml-4\">\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n </div>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold text-foreground-50 mb-3\">Advanced Topics</h3>\n <div className=\"space-y-2 ml-4\">\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n </div>\n </div>\n </div>\n </section>\n\n <section id=\"implementation\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Implementation</h2>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-50\" />\n </div>\n </section>\n\n <section id=\"examples\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Examples</h2>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n </article>\n </div>\n\n <aside className=\"w-72 sticky top-8 h-fit\">\n <ExpandableTableOfContents activeSection={activeSection} />\n </aside>\n </div>\n );\n}\n",
|
|
31
|
+
"code": "\"use client\"\nimport React, { useState } from 'react';\nimport { ExpandableTableOfContents } from './layout/ExpandableTableOfContents.js';\n\nexport function ExpandedTOC() {\n const [activeSection, setActiveSection] = useState('intro');\n\n return (\n <div className=\"flex gap-8 min-h-screen bg-background-950 p-8\">\n <div className=\"flex-1\">\n <article className=\"space-y-8\">\n <section id=\"intro\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Introduction</h2>\n <p className=\"text-foreground-300 mb-4\">\n Comprehensive guide with expandable table of contents showing active section.\n </p>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n\n <section id=\"concepts\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Core Concepts</h2>\n <div className=\"space-y-6\">\n <div>\n <h3 className=\"text-lg font-semibold text-foreground-50 mb-3\">Fundamentals</h3>\n <div className=\"space-y-2 ml-4\">\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n </div>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold text-foreground-50 mb-3\">Advanced Topics</h3>\n <div className=\"space-y-2 ml-4\">\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-40\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-40\" />\n </div>\n </div>\n </div>\n </section>\n\n <section id=\"implementation\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Implementation</h2>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-4/5 opacity-50\" />\n </div>\n </section>\n\n <section id=\"examples\">\n <h2 className=\"text-2xl font-bold text-foreground-50 mb-4\">Examples</h2>\n <div className=\"space-y-3\">\n <div className=\"h-3 bg-background-700 rounded w-full opacity-50\" />\n <div className=\"h-3 bg-background-700 rounded w-5/6 opacity-50\" />\n </div>\n </section>\n </article>\n </div>\n\n <aside className=\"w-72 sticky top-8 h-fit\">\n <ExpandableTableOfContents activeSection={activeSection} />\n </aside>\n </div>\n );\n}\n",
|
|
32
32
|
"isEntryPoint": true
|
|
33
33
|
},
|
|
34
34
|
{
|