Repository: actifyjs/actify Branch: main Commit: bde0f0b00bf4 Files: 416 Total size: 784.0 KB Directory structure: gitextract_0nomnhu6/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── custom.md │ │ └── feature_request.md │ └── workflows/ │ └── docs-deploy.yml ├── .gitignore ├── .npmrc ├── .prettierrc ├── LICENSE.md ├── README.md ├── apps/ │ └── docs/ │ ├── .gitignore │ ├── content/ │ │ ├── components/ │ │ │ ├── accordion.md │ │ │ ├── app-bars/ │ │ │ │ ├── bottom-app-bar.md │ │ │ │ └── top-app-bar.md │ │ │ ├── autocomplete.md │ │ │ ├── avatar.md │ │ │ ├── badges.md │ │ │ ├── before-after.md │ │ │ ├── buttons/ │ │ │ │ ├── button.md │ │ │ │ ├── fab.md │ │ │ │ ├── icon-button.md │ │ │ │ └── segmented-button.md │ │ │ ├── cards.md │ │ │ ├── carousel.md │ │ │ ├── checkbox.md │ │ │ ├── chips.md │ │ │ ├── date-pickers.md │ │ │ ├── dialogs.md │ │ │ ├── divider.md │ │ │ ├── focus-ring.md │ │ │ ├── label.md │ │ │ ├── lists.md │ │ │ ├── menus.md │ │ │ ├── navigation/ │ │ │ │ ├── navigation-bar.md │ │ │ │ ├── navigation-drawer.md │ │ │ │ └── navigation-rail.md │ │ │ ├── pagination.md │ │ │ ├── progress/ │ │ │ │ ├── circular-progress.md │ │ │ │ └── linear-progress.md │ │ │ ├── radio.md │ │ │ ├── ripple.md │ │ │ ├── select.md │ │ │ ├── sheets/ │ │ │ │ ├── bottom-sheets.md │ │ │ │ └── side-sheets.md │ │ │ ├── sliders.md │ │ │ ├── snackbar.md │ │ │ ├── swiper.md │ │ │ ├── switch.md │ │ │ ├── table.md │ │ │ ├── tabs.md │ │ │ ├── terminal.md │ │ │ ├── text-fields.md │ │ │ ├── time-pickers.md │ │ │ └── tooltips.md │ │ └── getting-started/ │ │ ├── icons.md │ │ ├── installation.md │ │ ├── theme.md │ │ └── why-actify.md │ ├── next.config.mjs │ ├── package.json │ ├── postcss.config.mjs │ ├── src/ │ │ ├── app/ │ │ │ ├── (docs)/ │ │ │ │ ├── [...slug]/ │ │ │ │ │ └── page.tsx │ │ │ │ └── layout.tsx │ │ │ ├── app.css │ │ │ ├── fonts.ts │ │ │ ├── layout.tsx │ │ │ ├── page.tsx │ │ │ └── template.tsx │ │ ├── components/ │ │ │ ├── App.tsx │ │ │ ├── AppDrawer.tsx │ │ │ ├── Aside.tsx │ │ │ ├── Console.tsx │ │ │ ├── DocPreview.tsx │ │ │ ├── DocTabs.tsx │ │ │ ├── DocUsage.tsx │ │ │ ├── Dropdown.tsx │ │ │ ├── EditOnGitHub.tsx │ │ │ ├── Footer.tsx │ │ │ ├── GettingStarted.tsx │ │ │ ├── Header.tsx │ │ │ ├── Logo.tsx │ │ │ ├── Markdown.tsx │ │ │ ├── NavLink.tsx │ │ │ ├── NgrokerLogo.tsx │ │ │ ├── OpenInCodeSandbox.tsx │ │ │ ├── OpenInStackblitz.tsx │ │ │ ├── QzyLogo.tsx │ │ │ ├── Search.tsx │ │ │ ├── Sponsors.tsx │ │ │ ├── SyntaxHighlighter.tsx │ │ │ ├── TableOfContents.tsx │ │ │ ├── TaildoorLogo.tsx │ │ │ ├── ThemeChanger.tsx │ │ │ └── ViewSource.tsx │ │ ├── hooks/ │ │ │ ├── useAutoTheme.ts │ │ │ └── useMounted.ts │ │ ├── lib/ │ │ │ ├── doc.ts │ │ │ └── raw.ts │ │ ├── usages/ │ │ │ ├── accordion.tsx │ │ │ ├── app-bars/ │ │ │ │ ├── bottom-app-bar.tsx │ │ │ │ └── top-app-bar.tsx │ │ │ ├── autocomplete.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badges.tsx │ │ │ ├── before-after.tsx │ │ │ ├── buttons/ │ │ │ │ ├── button.tsx │ │ │ │ ├── fab.tsx │ │ │ │ ├── icon-button.tsx │ │ │ │ └── segmented-button.tsx │ │ │ ├── cards.tsx │ │ │ ├── carousel.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── chips.tsx │ │ │ ├── dialogs.tsx │ │ │ ├── divider.tsx │ │ │ ├── focus-ring.tsx │ │ │ ├── lists.tsx │ │ │ ├── menus.tsx │ │ │ ├── navigation/ │ │ │ │ ├── navigation-bar.tsx │ │ │ │ ├── navigation-drawer.tsx │ │ │ │ └── navigation-rail.tsx │ │ │ ├── pagination.tsx │ │ │ ├── progress/ │ │ │ │ ├── circular-progress.tsx │ │ │ │ └── linear-progress.tsx │ │ │ ├── radio.tsx │ │ │ ├── ripple.tsx │ │ │ ├── select.tsx │ │ │ ├── sheets/ │ │ │ │ ├── bottom-sheets.tsx │ │ │ │ └── side-sheets.tsx │ │ │ ├── sliders.tsx │ │ │ ├── snackbar.tsx │ │ │ ├── swiper.tsx │ │ │ ├── switch.tsx │ │ │ ├── table.tsx │ │ │ ├── tabs.tsx │ │ │ ├── terminal.tsx │ │ │ ├── text-fields.tsx │ │ │ └── tooltips.tsx │ │ ├── utils/ │ │ │ ├── apply-theme-string.ts │ │ │ ├── cn.ts │ │ │ ├── material-color-helpers.ts │ │ │ └── theme.ts │ │ └── views/ │ │ ├── icon.tsx │ │ ├── icons.json │ │ └── theme.tsx │ └── tsconfig.json ├── biome.json ├── package.json ├── packages/ │ ├── actify/ │ │ ├── package.json │ │ ├── rollup.config.mjs │ │ ├── src/ │ │ │ ├── animations/ │ │ │ │ └── index.ts │ │ │ ├── components/ │ │ │ │ ├── Accordion/ │ │ │ │ │ ├── Accordion.tsx │ │ │ │ │ ├── AccordionContent.tsx │ │ │ │ │ ├── AccordionContext.tsx │ │ │ │ │ ├── AccordionHeader.tsx │ │ │ │ │ ├── AccordionItem.tsx │ │ │ │ │ ├── accordion.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── ActionMenu/ │ │ │ │ │ ├── ActionMenu.tsx │ │ │ │ │ ├── Menu.tsx │ │ │ │ │ ├── MenuItem.tsx │ │ │ │ │ ├── MenuItems.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── menu.module.css │ │ │ │ ├── Autocomplete/ │ │ │ │ │ ├── Autocomplete.tsx │ │ │ │ │ ├── autocomplete.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Avatar/ │ │ │ │ │ ├── Avatar.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Badges/ │ │ │ │ │ ├── Badges.tsx │ │ │ │ │ ├── badges.module.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── BeforeAfter/ │ │ │ │ │ ├── BeforeAfter.tsx │ │ │ │ │ ├── before-after.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── BottomAppBar/ │ │ │ │ │ ├── BottomAppBar.tsx │ │ │ │ │ ├── BottomAppBarFab.tsx │ │ │ │ │ ├── BottomAppBarIcons.tsx │ │ │ │ │ ├── bottom-app-bar.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── BottomSheets/ │ │ │ │ │ ├── BottomSheets.tsx │ │ │ │ │ ├── BottomSheetsActivator.tsx │ │ │ │ │ ├── BottomSheetsContent.tsx │ │ │ │ │ ├── BottomSheetsContext.tsx │ │ │ │ │ ├── bottom-sheets.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Buttons/ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ ├── Fab.tsx │ │ │ │ │ ├── IconButton.tsx │ │ │ │ │ ├── LinkButton.tsx │ │ │ │ │ ├── fab.module.css │ │ │ │ │ ├── icon-button.module.css │ │ │ │ │ ├── index.ts │ │ │ │ │ └── styles/ │ │ │ │ │ ├── button.module.css │ │ │ │ │ ├── color.module.css │ │ │ │ │ └── variant.module.css │ │ │ │ ├── Cards/ │ │ │ │ │ ├── Card.tsx │ │ │ │ │ ├── card.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Carousel/ │ │ │ │ │ ├── Carousel.tsx │ │ │ │ │ ├── CarouselContent.tsx │ │ │ │ │ ├── CarouselContext.tsx │ │ │ │ │ ├── CarouselControl.tsx │ │ │ │ │ ├── CarouselIndicator.tsx │ │ │ │ │ ├── CarouselItem.tsx │ │ │ │ │ ├── carousel-control.module.css │ │ │ │ │ ├── carousel-indicator.module.css │ │ │ │ │ ├── carousel.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Checkbox/ │ │ │ │ │ ├── Checkbox.tsx │ │ │ │ │ ├── CheckboxGroup.tsx │ │ │ │ │ ├── checkbox-group.module.css │ │ │ │ │ ├── checkbox.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Chips/ │ │ │ │ │ ├── Chip.tsx │ │ │ │ │ ├── ChipGroup.tsx │ │ │ │ │ ├── chip-group.module.css │ │ │ │ │ ├── chip.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── CircularProgress/ │ │ │ │ │ ├── CircularProgress.tsx │ │ │ │ │ ├── circular-progress.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Dialogs/ │ │ │ │ │ ├── Dialog.tsx │ │ │ │ │ ├── DialogActivator.tsx │ │ │ │ │ ├── animation.ts │ │ │ │ │ ├── dialog.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Divider/ │ │ │ │ │ ├── Divider.tsx │ │ │ │ │ ├── divider.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Elevation/ │ │ │ │ │ ├── Elevation.tsx │ │ │ │ │ ├── elevation.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Field/ │ │ │ │ │ ├── Field.tsx │ │ │ │ │ ├── FilledField.tsx │ │ │ │ │ ├── OutlinedField.tsx │ │ │ │ │ ├── SupportingText.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── styles/ │ │ │ │ │ ├── field.module.css │ │ │ │ │ └── supporting.module.css │ │ │ │ ├── FocusRing/ │ │ │ │ │ ├── FocusRing.tsx │ │ │ │ │ ├── focusring.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Icon/ │ │ │ │ │ ├── Icon.tsx │ │ │ │ │ ├── icon.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── Item/ │ │ │ │ │ ├── Item.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── item.module.css │ │ │ │ ├── Label/ │ │ │ │ │ ├── Label.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LinearProgress/ │ │ │ │ │ ├── LinearProgress.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── linear-progress.module.css │ │ │ │ ├── ListBox/ │ │ │ │ │ ├── ListBox.tsx │ │ │ │ │ ├── ListBoxOption.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── listbox.module.css │ │ │ │ │ └── option.module.css │ │ │ │ ├── Lists/ │ │ │ │ │ ├── List.tsx │ │ │ │ │ ├── ListContext.tsx │ │ │ │ │ ├── ListGroup.tsx │ │ │ │ │ ├── ListItem.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── list-group.module.css │ │ │ │ │ ├── list-item.module.css │ │ │ │ │ └── list.module.css │ │ │ │ ├── Menus/ │ │ │ │ │ ├── ListBox.tsx │ │ │ │ │ ├── ListBoxItem.tsx │ │ │ │ │ ├── Menu.tsx │ │ │ │ │ ├── MenuButton.tsx │ │ │ │ │ ├── MenuItem.tsx │ │ │ │ │ ├── MenuPopover.tsx │ │ │ │ │ ├── Submenu.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── listbox-item.module.css │ │ │ │ │ ├── listbox.module.css │ │ │ │ │ ├── menu-popover.module.css │ │ │ │ │ └── menu.module.css │ │ │ │ ├── Modal/ │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── modal.module.css │ │ │ │ ├── NavigationBar/ │ │ │ │ │ ├── NavigationBar.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── navigation-bar.module.css │ │ │ │ ├── NavigationDrawer/ │ │ │ │ │ ├── DrawerActivator.tsx │ │ │ │ │ ├── DrawerContent.tsx │ │ │ │ │ ├── DrawerContext.tsx │ │ │ │ │ ├── NavigationDrawer.tsx │ │ │ │ │ ├── drawer.module.css │ │ │ │ │ └── index.ts │ │ │ │ ├── NavigationRail/ │ │ │ │ │ ├── NavigationRail.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── navigation-rail.module.css │ │ │ │ ├── Pagination/ │ │ │ │ │ ├── Pagination.tsx │ │ │ │ │ ├── PaginationNumber.tsx │ │ │ │ │ ├── generatePagination.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── pagination.module.css │ │ │ │ ├── Popover/ │ │ │ │ │ ├── Popover.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── popover.module.css │ │ │ │ ├── PopoverMenu/ │ │ │ │ │ ├── PopoverMenu.tsx │ │ │ │ │ ├── PopoverMenuItem.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── menu.module.css │ │ │ │ ├── Radio/ │ │ │ │ │ ├── Radio.tsx │ │ │ │ │ ├── RadioGroup.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── radio-group.module.css │ │ │ │ │ └── radio.module.css │ │ │ │ ├── Ripple/ │ │ │ │ │ ├── Ripple.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── ripple.module.css │ │ │ │ ├── SegmentedButton/ │ │ │ │ │ ├── SegmentedButton.tsx │ │ │ │ │ ├── SegmentedButtonSet.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── segmented-buttont.module.css │ │ │ │ ├── Select/ │ │ │ │ │ ├── FilledField.tsx │ │ │ │ │ ├── OutlinedField.tsx │ │ │ │ │ ├── Select.tsx │ │ │ │ │ ├── SelectOption.tsx │ │ │ │ │ ├── TrailingIcon.tsx │ │ │ │ │ ├── filled-field.module.css │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── outlined-field.module.css │ │ │ │ │ ├── select.module.css │ │ │ │ │ └── trailingIcon.module.css │ │ │ │ ├── SideSheets/ │ │ │ │ │ ├── SideSheets.tsx │ │ │ │ │ ├── SideSheetsAction.tsx │ │ │ │ │ ├── SideSheetsActivator.tsx │ │ │ │ │ ├── SideSheetsBody.tsx │ │ │ │ │ ├── SideSheetsContent.tsx │ │ │ │ │ ├── SideSheetsContext.tsx │ │ │ │ │ ├── SideSheetsHeader.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── side-sheets.module.css │ │ │ │ ├── Sliders/ │ │ │ │ │ ├── Slider.tsx │ │ │ │ │ ├── Thumb.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── slider.module.css │ │ │ │ ├── Slot/ │ │ │ │ │ ├── Slot.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Snackbar/ │ │ │ │ │ ├── Toast.tsx │ │ │ │ │ ├── ToastProvider.tsx │ │ │ │ │ ├── ToastRegion.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── toast.module.css │ │ │ │ ├── Spacer/ │ │ │ │ │ ├── Spacer.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Swiper/ │ │ │ │ │ ├── Swiper.tsx │ │ │ │ │ ├── SwiperItem.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── swiper.module.css │ │ │ │ ├── Switch/ │ │ │ │ │ ├── Switch.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── switch.module.css │ │ │ │ ├── Table/ │ │ │ │ │ ├── Table.tsx │ │ │ │ │ ├── TableCell.tsx │ │ │ │ │ ├── TableCheckboxCell.tsx │ │ │ │ │ ├── TableColumnHeader.tsx │ │ │ │ │ ├── TableHeader.tsx │ │ │ │ │ ├── TableHeaderRow.tsx │ │ │ │ │ ├── TableRow.tsx │ │ │ │ │ ├── TableRowGroup.tsx │ │ │ │ │ ├── TableSelectAllCell.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── table.module.css │ │ │ │ ├── Tabs/ │ │ │ │ │ ├── Tab.tsx │ │ │ │ │ ├── TabPanel.tsx │ │ │ │ │ ├── Tabs.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── tabs.module.css │ │ │ │ ├── Terminal/ │ │ │ │ │ ├── Terminal.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── terminal.module.css │ │ │ │ ├── Text/ │ │ │ │ │ ├── Text.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TextFields/ │ │ │ │ │ ├── TextField.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── text-field.module.css │ │ │ │ ├── Tooltips/ │ │ │ │ │ ├── OverlayArrow.tsx │ │ │ │ │ ├── Tooltip.tsx │ │ │ │ │ ├── TooltipGroup.tsx │ │ │ │ │ ├── TooltipInner.tsx │ │ │ │ │ ├── TooltipTrigger.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TopAppBar/ │ │ │ │ │ ├── TopAppBar.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── top-app-bar.module.css │ │ │ │ └── VisuallyHidden/ │ │ │ │ ├── VisuallyHidden.tsx │ │ │ │ ├── index.ts │ │ │ │ └── visually-hidden.module.css │ │ │ ├── css-module.d.ts │ │ │ ├── hooks/ │ │ │ │ ├── index.ts │ │ │ │ ├── mergeRefs.tsx │ │ │ │ ├── useAttachable.ts │ │ │ │ ├── useControllable.ts │ │ │ │ ├── useControllableState.ts │ │ │ │ ├── useDebounce.ts │ │ │ │ ├── useInputState.tsx │ │ │ │ ├── useInterval.ts │ │ │ │ ├── useOnClickOutside.ts │ │ │ │ ├── usePrevious.ts │ │ │ │ └── useResizeObserver.tsx │ │ │ ├── index.ts │ │ │ ├── themes/ │ │ │ │ └── index.ts │ │ │ └── utils/ │ │ │ ├── index.ts │ │ │ └── utils.tsx │ │ ├── tsconfig.json │ │ └── tsconfig.rollup.json │ └── create-actify/ │ ├── index.ts │ └── package.json ├── pnpm-workspace.yaml ├── todo.md ├── turbo.json └── vercel.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.md ================================================ --- name: Bug report about: Create a report to help us improve title: '' labels: '' assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. iOS] - Browser [e.g. chrome, safari] - Version [e.g. 22] **Smartphone (please complete the following information):** - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - Browser [e.g. stock browser, safari] - Version [e.g. 22] **Additional context** Add any other context about the problem here. ================================================ FILE: .github/ISSUE_TEMPLATE/custom.md ================================================ --- name: Custom issue template about: Describe this issue template's purpose here. title: '' labels: '' assignees: '' --- ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.md ================================================ --- name: Feature request about: Suggest an idea for this project title: '' labels: '' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. ================================================ FILE: .github/workflows/docs-deploy.yml ================================================ name: Deploy Next.js SSG site to Pages on: # Runs on pushes targeting the default branch push: branches: ['main'] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: 'pages' cancel-in-progress: false jobs: # Build job build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 with: version: 9.5.0 - name: Setup Node uses: actions/setup-node@v4 with: node-version: '20' cache: 'pnpm' - name: Setup Pages uses: actions/configure-pages@v5 - name: Install dependencies run: pnpm install - name: Build Next.js run: | cd apps/docs pnpm build - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: ./apps/docs/dist - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 ================================================ FILE: .gitignore ================================================ # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log* node_modules dist dist-ssr *.local # Editor directories and files .vscode/* !.vscode/extensions.json .idea .DS_Store *.suo *.ntvs* *.njsproj *.sln *.sw? .next .turbo # Contentlayer .contentlayer ================================================ FILE: .npmrc ================================================ auto-install-peers = true node-linker=hoisted ================================================ FILE: .prettierrc ================================================ { "tabWidth": 2, "semi": false, "printWidth": 80, "singleQuote": true, "trailingComma": "none", "bracketSameLine": false } ================================================ FILE: LICENSE.md ================================================ The MIT License (MIT) Copyright (c) 2023 Lerte Smith Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================

Actify Logo

License visitors

--- ## 🌟Overview Welcome to Actify, an open-source React Components Library designed to accelerate your React application development. Actify leverages TypeScript, Tailwind CSS, Reat-Aria, Framer Motion, Material Design 3, and more to provide a comprehensive set of modern and customizable UI components. ## ✨ Features - **TypeScript**: Benefit from enhanced developer experience and static typing. - **Tailwind CSS**: Embrace a utility-first CSS framework for effortless and flexible styling. - **React-Aria**: React Aria implements accessibility support according to the WAI-ARIA specification, published by the W3C. - **Framer Motion**: Bring fluid animations and transitions to your components with Framer Motion. - **Material Design 3**: Implement the latest Material Design principles for a cohesive and visually appealing interface. ## 🚀 Getting Started ### 📦 Installation ```bash # with pnpm pnpm add actify # with yarn yarn add actify # with npm npm install actify ``` ### 💻 Usage ```jsx import { Button } from 'actify' export default () => { return } ``` Refer to the [documentation](https://actifyjs.com/getting-started/installation) for in-depth information on each component and their usage. ## 📚 Documentation Explore our [documentation](https://actifyjs.com/getting-started/installation) for detailed insights, examples, and customization options for each component in the Actify library. ## 🚥 Roadmap Our goals is convert all [Material Web](https://github.com/material-components/material-web) components to React Components, not just a React wrapped components. | Component | Web component | React Component | | ------------------- | ------------- | --------------- | | Ripple | | ✅ | | Elevation | | ✅ | | Focus ring | | ✅ | | Icon | | ✅ | | Button | | ✅ | | Icon button | | ✅ | | Checkbox | | ✅ | | Slider | | ✅ | | Switch | | ✅ | | TextField | | ✅ | | Progress indicators | | ✅ | | Radio | | ✅ | | Divider | | ✅ | | Menu | | ✅ | | Dialog | | ✅ | | Select | | ✅ | | SegmentedButton | | ✅ | | SegmentedButtonSet | | ✅ | ## 🤝 Contributing Contributions are always welcome! Thanks to everyone who has already contributed to `actify` ! ## 📜 License Actify React Components Library is licensed under the MIT License - see the [MIT licensed](./LICENSE.md) file for details.. ## 🙏 Acknowledgments - Special thanks to our contributors and the open-source community for making Actify possible. - Highly inspired by [Vuetify](https://vuetifyjs.com) for its impactful contributions to UI design and development trends. ## 📧 Support If you have any questions or need assistance, feel free to reach out to us at [hello@actifyjs.com](mailto:hello@actifyjs.com). Happy coding with Actify! 🚀 ================================================ FILE: apps/docs/.gitignore ================================================ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies /node_modules /.pnp .pnp.js .yarn/install-state.gz # testing /coverage # next.js /.next/ /out/ /dist/ # production /build # misc .DS_Store *.pem # debug npm-debug.log* yarn-debug.log* yarn-error.log* # local env files .env*.local # vercel .vercel # typescript *.tsbuildinfo next-env.d.ts ================================================ FILE: apps/docs/content/components/accordion.md ================================================ --- title: Accordion description: Accordion display a list of high-level options that can expand/collapse to reveal more information. --- ## Usage ## Tips `asChild` prop can use to override `Header` style and `Content` style ## Props | Props | Type | Description | Default | | ---------- | --------- | ---------------------------------------------------------------------------- | ----------- | | `open` | `array` | Set which index item is open. eg. [,true] stands for the second item is open | `[]` | | `multiple` | `boolean` | Allow multiple items to be expanded at the same time. | `undefined` | ================================================ FILE: apps/docs/content/components/app-bars/bottom-app-bar.md ================================================ --- title: Bottom app bar description: Bottom app bars display navigation and key actions at the bottom of mobile and tablet screens --- ## Usage ================================================ FILE: apps/docs/content/components/app-bars/top-app-bar.md ================================================ --- title: Top app bars description: The top app bar displays information and actions relating to the current screen. --- ## Usage ================================================ FILE: apps/docs/content/components/autocomplete.md ================================================ --- title: Autocomplete description: Autocomplete component offers simple and flexible type-ahead functionality. This is useful when searching large sets of data or even dynamically requesting information from an API. --- ## Usage ================================================ FILE: apps/docs/content/components/avatar.md ================================================ --- title: Avatar description: Avatar is a component that can be used to display a user's avatar. --- ## Usage ================================================ FILE: apps/docs/content/components/badges.md ================================================ --- title: Badge description: Badges show notifications, counts, or status information on navigation items and icons --- ## Usage ## Props | Props | Type | Description | Default | | ------- | ----------------- | ------------------------- | ------- | | `value` | `string` `number` | The content of the badge. | `null` | | `color` | `string` | The color of the badge. | `error` | ================================================ FILE: apps/docs/content/components/before-after.md ================================================ --- title: Before After description: Before after show a before and after image of a product. --- ## Usage ## Props | Props | Type | Description | Default | | --------- | ----- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------ | | `before` | `url` | original image url | `null` | | `after` | `url` | after image url | `null` | | `bgImage` | `url` | after image background image | | ================================================ FILE: apps/docs/content/components/buttons/button.md ================================================ --- title: Button description: Buttons have label text that describes the action that will occur if a user taps a button. --- ## Usage > Notice! Button component under react-router Link component will cause refresh page. - Solution 1: add onPress(e=>e.preventDefault()) to Button component - Solution 2: put Link component under Button component ## Props | Name | Type | Default | Description | | ------------------- | --------------------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | | form | `string` | — | The
element to associate the button with. The value of this attribute must be the id of a in the same document. | | formAction | `string` | — | The URL that processes the information submitted by the button. Overrides the action attribute of the button's form owner. | | formEncType | `string` | — | Indicates how to encode the form data that is submitted. | | formMethod | `string` | — | Indicates the HTTP method used to submit the form. | | formNoValidate | `boolean` | — | Indicates that the form is not to be validated when it is submitted. | | formTarget | `string` | — | Overrides the target attribute of the button's form owner. | | name | `string` | — | Submitted as a pair with the button's value as part of the form data. | | value | `string` | — | The value associated with the button's name when it's submitted with the form data. | | isPending | `boolean` | — | Whether the button is in a pending state. This disables press and hover events while retaining focusability, and announces the pending state to screen readers. | | isDisabled | `boolean` | — | Whether the button is disabled. | | autoFocus | `boolean` | — | Whether the element should receive focus on render. | | type | `button` `submit` `reset` | 'button' | The behavior of the button when used in an HTML form. | | preventFocusOnPress | `boolean` | — | Whether to prevent focus from moving to the button when pressing it. | | children | `React.ReactNode` | — | The children of the component. A function may be provided to alter the children based on component state. | | className | `string` | — | The CSS className for the element. A function may be provided to compute the class based on component state. | | style | `React.CSSProperties` | — | The inline style for the element. A function may be provided to compute the style based on component state. | | color | `primary` `secondary` `tertiary` `error` | 'primary' | | | variant | `elevated` `filled` `tonal` `outlined` `text` | 'filled' | | ## Events | Name | Type | Description | | --------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | | `onPress` | `(e: PressEvent) => void` | Handler that is called when the press is released over the target. | | `onPressStart` | `(e: PressEvent) => void` | Handler that is called when a press interaction starts. | | `onPressEnd` | `(e: PressEvent) => void` | Handler that is called when a press interaction ends, either over the target or when the pointer leaves the target. | | `onPressChange` | `(e: PressEvent) => void` | Handler that is called when the press state changes. | | `onPressUp` | `(e: PressEvent) => void` | Handler that is called when a press is released over the target, regardless of whether it started on the target or not. | | `onFocus` | `(e: FocusEvent) => void` | Handler that is called when the element receives focus. | | `onBlur` | `(e: FocusEvent) => void` | Handler that is called when the element loses focus. | | `onFocusChange` | `(isFocused: boolean) => void` | Handler that is called when the element's focus status changes. | | `onKeyDown` | `(e: KeyboardEvent) => void` | Handler that is called when a key is pressed. | | `onKeyUp` | `(e: KeyboardEvent) => void` | Handler that is called when a key is released. | | `onHoverStart` | `(e: HoverEvent) => void` | Handler that is called when a hover interaction starts. | | `onHoverEnd` | `(e: HoverEvent) => void` | Handler that is called when a hover interaction ends. | | `onHoverChange` | `(isHovering: boolean) => void` | Handler that is called when the hover state changes. | ### Layout | Name | Type | Description | | ------ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `slot` | `string` `null` | A slot name for the component. Slots allow the component to receive props from a parent component. An explicit null value indicates that the local props completely override all props received from a parent. | ================================================ FILE: apps/docs/content/components/buttons/fab.md ================================================ --- title: Floating action buttons description: Floating action buttons (FABs) help people take primary actions --- ## Usage ================================================ FILE: apps/docs/content/components/buttons/icon-button.md ================================================ --- title: Icon buttons description: Icon buttons help people take minor actions with one tap --- ## Usage ================================================ FILE: apps/docs/content/components/buttons/segmented-button.md ================================================ --- title: Segmented button description: Segmented buttons help people select options, switch views, or sort elements --- ## Usage ## Props | Props | Type | Description | Default | | -------- | --------- | ----------- | ------- | | selected | `boolean` | | `false` | ================================================ FILE: apps/docs/content/components/cards.md ================================================ --- title: Cards description: Cards display content and actions about a single subject --- ## Usage ## With Ripple ## Props | Props | Type | Description | Default | | ------ | ------------------- | --------------------- | ------- | | `type` | `filled` `outlined` | The type of the Card. | null | ================================================ FILE: apps/docs/content/components/carousel.md ================================================ --- title: Carousel description: Carousels show a collection of items that can be scrolled on and off the screen --- ## Usage ## Props | Props | Type | Description | Default | | ---------- | ------------------ | ----------------------------------------------------------- | ------- | | autoPlay | `boolean` | Sets the autoplay mode for carousel | `false` | | control | `boolean` | Show prev and next button for carousel | `false` | | current | `number` | Sets carousel start play index | `0` | | indicator | `boolean` | Show the indicator for carousel | `false` | | infinite | `boolean` | Sets the infinite mode for carousel | `false` | | interval | `number` | Sets the interval duration for autoplay mode in miliseconds | `3000` | | `children` | `React.React.Node` | | `null` | ================================================ FILE: apps/docs/content/components/checkbox.md ================================================ --- title: Checkbox description: Checkboxes let users select one or more items from a list, or turn an item on or off --- ## Usage ## Props | Props | Type | Description | Default | | ----------------- | ----------------------------------------- | ---------------------------------------- | ------- | | `color` | `primary` `secondary` `tertiaray` `error` | The color of the checkbox | `null` | | `value` | `boolean` | Checkbox value | `null` | | `isDisabled` | `boolean` | Whether the checkbox is disabled | `false` | | `isSelected` | `boolean` | whether the checkbox is selected | `false` | | `isIndeterminate` | `boolean` | whether the item is toggled on or off. | `false` | | `defaultSelected` | `boolean` | whether the checkbox is default selected | `false` | ## Events | Events | Description | | ---------- | ------------------------ | | `onChange` | fired when value changed | ================================================ FILE: apps/docs/content/components/chips.md ================================================ --- title: Chips description: Chips help people enter information, make selections, filter content, or trigger actions --- ## Usage ## Props | Prop | Type | Description | Default | | -------- | -------- | ---------------------- | ------- | | `lable` | `string` | The label of the chip | `null` | | `type` | `string` | The type of the chip | `null` | | `href` | `string` | The href of the chip | `null` | | `target` | `string` | The target of the chip | `null` | ================================================ FILE: apps/docs/content/components/date-pickers.md ================================================ --- title: Date pickers description: Date pickers let people select a date, or a range of dates --- ## Usage ## Props | Props | Type | Description | Default | | ---------------- | --------- | ---------------------------- | ------------ | | `asSingle` | `boolean` | render as single date picker | `false` | | `useRange` | `boolean` | use range mode | `true` | | `placeholder` | `string` | placeholder text | `null` | | `separator` | `string` | separator between range date | `~` | | `showShortcuts` | `boolean` | show left shortcuts date | `false` | | `showFooter` | `boolean` | show footer actions | `false` | | `displayFormat` | `string` | display format of date | `DD/MM/YYYY` | | `readOnly` | `boolean` | readonly mode | `false` | | `disabled` | `boolean` | disabled mode | `false` | | `inputClassName` | `string` | input class name | `null` | | `startFrom` | `Date` | start date for range mode | `new Date()` | | `minDate` | `Date` | min date | `null` | | `maxDate` | `Date` | max date | `null` | ================================================ FILE: apps/docs/content/components/dialogs.md ================================================ --- title: Dialogs description: Dialogs provide important prompts in a user flow --- ## Usage ================================================ FILE: apps/docs/content/components/divider.md ================================================ --- title: Divider description: Dividers are thin lines that group content in lists or other containers --- ## Usage ## Props | Name | Type | Description | Default | | ------------ | --------- | ------------------------------------------------------- | ----------- | | `inset` | `boolean` | add 16px to padding-inline-start and padding-inline-end | `undefined` | | `insetStart` | `boolean` | add 16px to padding-inline-start | `undefined` | | `insetEnd` | `boolean` | add 16px to padding-inline-end | `undefined` | ================================================ FILE: apps/docs/content/components/focus-ring.md ================================================ --- title: Focus Ring --- ## Usage ## Props | Name | Type | Description | Default | | --------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------- | | type | `outward` `inward` | The way the focus ring is animated and positioned. | `outward` | | as | `keyof HTMLElementTagNameMap` `React.ElementType` | Allows for more flexibility when supporting different elements that can act as a FocusRing. | `span` | | style | `React.CSSProperties` | — | — | | className | `string` | — | — | ================================================ FILE: apps/docs/content/components/label.md ================================================ --- title: Label description: Use original html label tag, but prevented text selection when double clicked --- ## Usage with Checkbox ## Usage with Raido ================================================ FILE: apps/docs/content/components/lists.md ================================================ --- title: Lists description: Lists are continuous, vertical indexes of text and images --- ## Usage ## Props | Name | Type | Description | Default | | ------------ | ----------------- | --------------------------------------------------------------------------------------------------------------------------- | ------- | | `transition` | `Object` | Item hover trantisition is framer motion transition | `null` | | `children` | `React.ReactNode` | children | `null` | ## Child | Name | Description | | --------- | ----------- | | ListItem | List item | | ListGroup | List group | ================================================ FILE: apps/docs/content/components/menus.md ================================================ --- title: Menus description: Menus display a list of choices on a temporary surface --- ## Usage ## Props ### MenuButton | Name | Type | Description | Default | | ------------------- | ------------------- | --------------------------------------------------------------------------- | ------- | | `label` | `React.ReactNode` | The text to show on the menu button. | — | | `popoverProps` | `PopoverProps` | Props that allow changing the popover placement, flip behavior, style etc. | — | ### MenuItem | Name | Type | Description | Default | | ------------------- | --------------------- | --------------------------------------------------------------------------------- | ------- | | `textValue` | `string` | A string representation of the item's contents, used for features like typeahead. | — | | `isDisabled` | `boolean` | Whether the item is disabled. | `false` | | `className` | `string` | — | — | | `style` | `React.CSSProperties` | — | — | ## Events ### MenuItem | Name | Type | Description | | ----------------- | --------------------------------- | -------------------------------------------------------- | | `onAction` | `() => void` | Handler that is called when the item is selected. | | `onHoverChange` | `(isHovering: boolean) => void` | Handler that is called when the hover state changes. | | `onHoverStart` | `(e: HoverEvent) => void` | Handler that is called when a hover interaction starts. | | `onHoverEnd` | `(e: HoverEvent) => void` | Handler that is called when a hover interaction ends. | ================================================ FILE: apps/docs/content/components/navigation/navigation-bar.md ================================================ --- title: Navigation bar description: Navigation bars let people switch between UI views on smaller devices --- ## Usage ================================================ FILE: apps/docs/content/components/navigation/navigation-drawer.md ================================================ --- title: Navigation drawer description: Navigation drawers let people switch between UI views on larger devices --- ## Usage ## Props | Props | Type | Description | Default | | ----------- | ----------------------------- | ------------------------------------------ | ------- | | `open` | `boolean` | Whether the drawer is open or not | `false` | | `placement` | `top` `right` `bottom` `left` | Where the drawer should be placed | `left` | | `asChild` | `boolean` | set true pass any element as the activator | `false` | ================================================ FILE: apps/docs/content/components/navigation/navigation-rail.md ================================================ --- title: Navigation rail description: Navigation rails let people switch between UI views on mid-sized devices --- ## Usage ================================================ FILE: apps/docs/content/components/pagination.md ================================================ --- title: Pagination description: Pagination is a component that allows users to navigate between multiple pages. --- ## Usage ## Props | Props | Type | Description | Default | | ------------- | -------- | ------------ | ----------- | | `currentPage` | `number` | current page | `undefined` | | `totalPages` | `number` | total page | `undefined` | ## Events | Events | Description | | -------------- | ------------------------------- | | `onPageChange` | fired when current page changed | ================================================ FILE: apps/docs/content/components/progress/circular-progress.md ================================================ --- title: CircularProgress description: Circular progress is a visual indicator that communicates the status of a process. --- ## Usage ## Props | Name | Type | Description | Default | | ----------------- | ----------------------------------------- | ----------------------------------------------- | ----------- | | `size` | `xs` `sm` `md` `lg` `xl` `2xl` | The size of the circle | `sm` | | `value` | `number` | set the value of progress 0-100 | `undefined` | | `color` | `primary` `secondary` `tertiaray` `error` | set the color of progress circle | `primary` | | `isIndeterminate` | `boolean` | whether determinate circular progress indicator | `false` | ================================================ FILE: apps/docs/content/components/progress/linear-progress.md ================================================ --- title: LinearProgress description: Linear progress indicators visualize the linear progress of a task, where the progress is displayed as a bar. --- ## Usage ## Props | Name | Type | Description | Default | | ----------------- | ----------------------------------------- | --------------------------------------------- | ----------- | | `value` | `number` | set the value of progress 0-100 | `undefined` | | `color` | `primary` `secondary` `tertiaray` `error` | set the color of progress bar | `primary` | | `isIndeterminate` | `boolean` | whether determinate linear progress indicator | `false` | ================================================ FILE: apps/docs/content/components/radio.md ================================================ --- title: Radio button description: Radio buttons let people select one option from a set of options --- ## Usage ## Props | Props | Type | Description | Default | | ------------- | ----------------------- | ----------------------------------------------------------------- | ----------- | | `value` | `string` | The value of the radio button, used when submitting an HTML form. | `null` | | `children` | `ReactNode` | The label for the Radio. Accepts any renderable node. | `undefined` | | `isDisabled` | `boolean` | Whether the radio button is disabled or not. | `undefined` | | `orientation` | `horizontal` `vertical` | The axis the Radio should align with. | `vertical` | ================================================ FILE: apps/docs/content/components/ripple.md ================================================ --- title: Ripple description: Ripples are state layers used to communicate the status of a component or interactive element. --- ================================================ FILE: apps/docs/content/components/select.md ================================================ --- title: Select description: Select fields components are used for collecting user provided information from a list of options. --- ## Usage ## Props | Name | Type | Default | Description | | --------------------- | --------------------- | -------------- | ------------------------------------------------------------------------------------------------------------- | | `label` | `React.ReactNode` | — | The content to display as the label. | | `selectedKey` | `Key` | — | The currently selected key in the collection (controlled). | | `disabledKeys` | `Iterable` | — | The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with. | | `isOpen` | `boolean` | `false` | Sets the open state of the menu. | | `isDisabled` | `boolean` | `false` | Whether the input is disabled. | | `isRequired` | `boolean` | `false` | Whether user input is required on the input before form submission. | | `isInvalid` | `boolean` | `false` | Whether the input value is invalid. | | `validationBehavior` | `aria` `native` | `aria` | Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA. | | `validate` | `(value: Key) => ValidationError` `true` | — | A function that returns an error message if a given value is invalid. Validation errors are displayed to the user when the form is submitted if validationBehavior="native". For realtime validation, use the isInvalid prop instead. | | `variant` | `filled` `outlined` | `filled` | The type of the Select. | | `popoverProps` | `PopoverProps` | — | Props that allow changing the popover placement, flip behavior, style etc. | | `className` | `string` | — | — | | `style` | `React.CSSProperties` | — | — | ## Events | Name | Type | Description | | ------------------- | ------------------------------- | ----------------------------------------------------------------- | | `onSelectionChange` | `(key: Key) => void` | Handler that is called when the selection changes. | | `onBlur` | `(e: React.FocusEvent) => void` | Handler that is called when the element loses focus. | | `onFocus` | `(e: React.FocusEvent) => void` | Handler that is called when the element receives focus. | | `onFocusChange` | `(isFocused: boolean) => void` | Handler that is called when the element's focus status changes. | | `onOpenChange` | `(isOpened: boolean) => void` | Method that is called when the open state of the menu changes. | ================================================ FILE: apps/docs/content/components/sheets/bottom-sheets.md ================================================ --- title: Bottom sheets description: Bottom sheets show secondary content anchored to the bottom of the screen --- ## Usage ## Activator Props | Props | Type | Description | Default | | --------- | --------- | ------------------------------------------ | ------- | | `asChild` | `boolean` | set true pass any element as the activator | `false` | | `open` | `boolean` | Whether the sheets is open or not | `false` | ================================================ FILE: apps/docs/content/components/sheets/side-sheets.md ================================================ --- title: Side sheets description: Side sheets are surfaces containing supplementary content or actions to support tasks as part of a flow. They are typically anchored on the right edge of larger screens like tablets and desktops. --- ## Usage ## Props | Props | Type | Description | Default | | --------- | --------- | ---------------------------- | ------- | | `divider` | `boolean` | show divider in body content | `false` | ## Activator Props | Props | Type | Description | Default | | --------- | --------- | ------------------------------------------ | ------- | | `asChild` | `boolean` | set true pass any element as the activator | `false` | | `open` | `boolean` | Whether the sheets is open or not | `false` | ================================================ FILE: apps/docs/content/components/sliders.md ================================================ --- title: Sliders description: Sliders let users make selections from a range of values --- ## Usage ## Props | Props | Type | Description | Default | | -------------- | ----------------------------------------- | -------------------- | ----------- | | `color` | `primary` `secondary` `tertiaray` `error` | color | `primary` | | `label` | `string` | label | `undefined` | | `value` | `number` `number[]` | slider value | `undefined` | | `labeled ` | `boolean` | show label on thumb | `undefined` | | `isDisabled` | `boolean` | disable slider | `undefined` | | `defaultValue` | `number` `number[]` | default slider value | `undefined` | ## Events | Events | Description | | ---------- | ------------------------ | | `onChange` | fired when value changed | ================================================ FILE: apps/docs/content/components/snackbar.md ================================================ --- title: Snackbar description: Snackbars show short updates about app processes at the bottom of the screen --- ## Usage ================================================ FILE: apps/docs/content/components/swiper.md ================================================ --- title: Swiper description: Swiper is simple banner slider with a lot of features. --- ## Usage ================================================ FILE: apps/docs/content/components/switch.md ================================================ --- title: Switch description: Switches toggle the state of an item on or off --- ## Usage ## Props | Name | Type | Default | Description | | ----------------- | ------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `icons` | `boolean` | — | Show x or √ icon | | `color` | `primary` `secondary` `tertiaray` `error` | — | The color of the switch | | `defaultSelected` | `boolean` | — | Whether the Switch should be selected (uncontrolled). | | `isSelected` | `boolean` | — | Whether the Switch should be selected (controlled). | | `isDisabled` | `boolean` | — | Whether the input is disabled. | | `isReadOnly` | `boolean` | — | Whether the input can be selected but not changed by the user. | | `autoFocus` | `boolean` | — | Whether the element should receive focus on render. | | `name` | `string` | — | The name of the input element, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname). | | `children` | `string` `React.ReactNode` | — | The children of the component. A function may be provided to alter the children based on component state. | | `className` | `string` `(values: SwitchRenderProps & { defaultClassName: string \| undefined}) => string` | — | The CSS className for the element. A function may be provided to compute the class based on component state. | | `style` | `React.CSSProperties` | — | The inline style for the element. A function may be provided to compute the style based on component state. | ## Events | Name | Type | Description | | --------------- | --------------------------------- | ----------------------------------------------------------------- | | `onChange` | `(isSelected: boolean) => void` | Handler that is called when the Switch's selection state changes. | | `onFocus` | `(e: FocusEvent) => void` | Handler that is called when the element receives focus. | | `onBlur` | `(e: FocusEvent) => void` | Handler that is called when the element loses focus. | | `onFocusChange` | `(isFocused: boolean) => void` | Handler that is called when the element's focus status changes. | | `onKeyDown` | `(e: KeyboardEvent) => void` | Handler that is called when a key is pressed. | | `onKeyUp` | `(e: KeyboardEvent) => void` | Handler that is called when a key is released. | | `onHoverStart` | `(e: HoverEvent) => void` | Handler that is called when a hover interaction starts. | | `onHoverEnd` | `(e: HoverEvent) => void` | Handler that is called when a hover interaction ends. | | `onHoverChange` | `(isHovering: boolean) => void` | Handler that is called when the hover state changes. | ================================================ FILE: apps/docs/content/components/table.md ================================================ --- title: Table description: Table is a component that allows you to display tabular data. --- ## Usage ## Props ### Table | Name | Type | Default | Description | | ---------------------- | ------------------------ | ----------- | ------------------------------------------------------------------------------------------------------------ | | children | `ReactNode` | — | The elements that make up the table. Includes the TableHeader, TableBody, Columns, and Rows. | | selectionBehavior | `SelectionBehavior` | 'toggle' | How multiple selection should behave in the collection. | | disabledBehavior | `DisabledBehavior` | 'selection' | Whether disabledKeys applies to all interactions, or only selection. | | dragAndDropHooks | `DragAndDropHooks` | — | The drag and drop hooks returned by useDragAndDrop used to enable drag and drop behavior for the Table. | | disabledKeys | `Iterable` | — | A list of row keys to disable. | | selectionMode | `SelectionMode` | — | The type of selection that is allowed in the collection. | | disallowEmptySelection | `boolean` | — | Whether the collection allows empty selection. | | selectedKeys | `'all' \| Iterable` | — | The currently selected keys in the collection (controlled). | | defaultSelectedKeys | `'all' \| Iterable` | — | The initial selected keys in the collection (uncontrolled). | | sortDescriptor | `SortDescriptor` | — | The current sorted column and direction. | | className | `string` | — | The CSS className for the element. A function may be provided to compute the class based on component state. | | style | `React.CSSProperties` | — | The inline style for the element. A function may be provided to compute the style based on component state. | ### Events | Name | Type | Description | | ----------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | onRowAction | `(key: Key) => void` | Handler that is called when a user performs an action on the row. | | onSelectionChange | `(keys: Selection) => void` | Handler that is called when the selection changes. | | onSortChange | `(descriptor: SortDescriptor) => any` | Handler that is called when the sorted column or direction changes. | | onScroll | `(e: UIEvent) => void` | Handler that is called when a user scrolls. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Element/scroll_event). | ### TableHeader | Name | Type | Description | | ------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | columns | `object[]` | A list of table columns. | | children | `ReactNode \| (item: object) => ReactElement` | A list of Column(s) or a function. If the latter, a list of columns must be provided using the columns prop. | | dependencies | `any[]` | Values that should invalidate the column cache when using dynamic collections. | | className | `string` | The CSS className for the element. A function may be provided to compute the class based on component state. | | style | `React.CSSProperties` | The inline style for the element. A function may be provided to compute the style based on component state. | ================================================ FILE: apps/docs/content/components/tabs.md ================================================ --- title: Tabs description: Tabs organize content across different screens and views --- ## Usage ## Props | Props | Type | Description | Default | | -------------------- | ----------------------- | --------------------------- | ------------ | | `orientation` | `horizontal` `vertical` | The orientation of the tabs | `horizontal` | | `keyboardActivation` | `automatic` `manual` | keyboard activation | `automatic` | | `defaultSelectedKey` | `string` \| `number` | default selected key | `undefined` | ## Events | Events | Description | | ------------------- | --------------------------- | | `onSelectionChange` | fired when selected changed | ================================================ FILE: apps/docs/content/components/terminal.md ================================================ --- title: Terminal description: Tabs organize content across different screens and views --- ## Usage ## Props | Props | Type | Description | Default | | ----------- | ----------------- | -------------- | ------------------- | | `title` | `string` | terminal title | `Terminal` | | `lastlogin` | `Date` | last login | `new Date()` | | `hostname` | `string` | hostname | `Lerte-MacBook-Pro` | | `username` | `string` | username | `lerte` | | `children` | `React.ReactNode` | | `null` | ================================================ FILE: apps/docs/content/components/text-fields.md ================================================ --- title: Text fields description: Text fields let users enter text into a UI --- ## Usage ## Props ### TextField | Name | Type | Default | Description | | -------------------- | ----------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `label` | `string` | — | Input label | | `isInvalid` | `boolean` | — | Whether the value is invalid. | | `isDisabled` | `boolean` | — | Whether the input is disabled. | | `isReadOnly` | `boolean` | — | Whether the input can be selected but not changed by the user. | | `isRequired` | `boolean` | — | Whether user input is required on the input before form submission. | | `validate` | `(value: string) => ValidationError \| true \| null \| undefined` | — | A function that returns an error message if a given value is invalid. Validation errors are displayed to the user when the form is submitted if validationBehavior="native". For realtime validation, use the isInvalid prop instead. | | `autoFocus` | `boolean` | — | Whether the element should receive focus on render. | | `value` | `string` | — | The current value (controlled). | | `defaultValue` | `string` | — | The default value (uncontrolled). | | `autoComplete` | `string` | — | Describes the type of autocomplete functionality the input should provide if any. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautocomplete). | | `maxLength` | `number` | — | The maximum number of characters supported by the input. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefmaxlength). | | `minLength` | `number` | — | The minimum number of characters required by the input. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefminlength). | | `pattern` | `string` | — | Regex pattern that the value of the input must match to be valid. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefpattern). | | `type` | `text` `textarea` `search` `url` `tel` `email` `password` `string & {}` | 'text' | The type of input to render. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdeftype). | | `inputMode` | `none` `text` `tel` `url` `email` `numeric` `decimal` `search` | — | Hints at the type of data that might be entered by the user while editing the element or its contents. See [MDN](https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute). | | `name` | `string` | — | The name of the input element, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname). | | `validationBehavior` | `native` `aria` | 'native' | Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA. | | `children` | `React.ReactNode` | — | The children of the component. A function may be provided to alter the children based on component state. | | `className` | `string` | — | The CSS className for the element. A function may be provided to compute the class based on component state. | | `style` | `React.CSSProperties` | — | The inline style for the element. A function may be provided to compute the style based on component state. | | `variant` | `filled` `outlined` | 'filled' | | | `suffixText` | `string` | — | | | `prefixText` | `string` | — | | | `leadingIcon` | `React.ReactNode` | — | | | `trailingIcon` | `React.ReactNode` | — | | ## Events | Name | Type | Description | | -------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `onFocus` | `(e: FocusEvent) => void` | Handler that is called when the element receives focus. | | `onBlur` | `(e: FocusEvent) => void` | Handler that is called when the element loses focus. | | `onFocusChange` | `(isFocused: boolean) => void` | Handler that is called when the element's focus status changes. | | `onKeyUp` | `(e: KeyboardEvent) => void` | Handler that is called when a key is released. | | `onChange` | `(value: T) => void` | Handler that is called when the value changes. | | `onCopy` | `ClipboardEventHandler` | Handler that is called when the user copies text. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/copy_event). | | `onPaste` | `ClipboardEventHandler` | Handler that is called when the user pastes text. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/paste_event). | | `onCompositionStart` | `CompositionEventHandler` | Handler that is called when a text composition system starts a new text composition session. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Element/compositionstart_event). | | `onSelect` | `ReactEventHandler` | Handler that is called when text in the input is selected. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select_event). | | `onBeforeInput` | `FormEventHandler` | Handler that is called when the input value is about to be modified. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Element/beforeinput_event). | | `onInput` | `FormEventHandler` | Handler that is called when the input value is modified. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event). | ================================================ FILE: apps/docs/content/components/time-pickers.md ================================================ --- title: Time pickers description: Time pickers help users select and set a specific time --- ## Usage ================================================ FILE: apps/docs/content/components/tooltips.md ================================================ --- title: Tooltips description: Tooltips display brief labels or messages --- ## Usage ## Props ### TooltipTrigger | Name | Type | Default | Description | | ----------- | ----------- | ------- | ------------------------------------------------------------------------------- | | children | `ReactNode` | — | | | isDisabled | `boolean` | — | Whether the tooltip should be disabled, independent from the trigger. | | delay | `number` | 1500 | The delay time for the tooltip to show up. | | closeDelay | `number` | 500 | The delay time for the tooltip to close. | | trigger | `focus` | — | By default, opens for both focus and hover. Can be made to open only for focus. | | isOpen | `boolean` | 12 | Whether the overlay is open by default (controlled). | | defaultOpen | `boolean` | 0 | Whether the overlay is open by default (uncontrolled). | ### Tooltip | Name | Type | Default | Description | | ------------------------ | -------------------------------------------------------------------------------------------------------------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | triggerRef | `RefObject` | — | The ref for the element which the tooltip positions itself with respect to. When used within a TooltipTrigger this is set automatically. It is only required when used standalone. | | isEntering | `boolean` | — | Whether the tooltip is currently performing an entry animation. | | isExiting | `boolean` | — | Whether the tooltip is currently performing an exit animation. | | UNSTABLE_portalContainer | `Element` | document.body | The container element in which the overlay portal will be placed. This may have unknown behavior depending on where it is portalled to. | | placement | `Placement` | 'top' | The placement of the tooltip with respect to the trigger. | | containerPadding | `number` | 12 | The placement padding that should be applied between the element and its surrounding container. | | offset | `number` | 0 | The additional offset applied along the main axis between the element and its anchor element. | | crossOffset | `number` | 0 | The additional offset applied along the cross axis between the element and its anchor element. | | shouldFlip | `boolean` | true | Whether the element should flip its orientation (e.g. top to bottom or left to right) when there is insufficient room for it to render completely. | | isOpen | `boolean` | — | Whether the element is rendered. | | arrowBoundaryOffset | `number` | 0 | The minimum distance the arrow's edge should be from the edge of the overlay element. | | defaultOpen | `boolean` | — | Whether the overlay is open by default (uncontrolled). | | children | `ReactNode \| (values: TooltipRenderProps & { defaultChildren: ReactNode \| undefined }) => ReactNode` | — | The children of the component. A function may be provided to alter the children based on component state. | | className | `string \| (values: TooltipRenderProps & { defaultClassName: string \| undefined}) => string` | — | The CSS className for the element. A function may be provided to compute the class based on component state. | | style | `CSSProperties \| (values: TooltipRenderProps & {defaultStyle: CSSProperties}) => CSSProperties \| undefined` | — | The inline style for the element. A function may be provided to compute the style based on component state. | ================================================ FILE: apps/docs/content/getting-started/icons.md ================================================ --- title: Icon --- > Icons are based on Material Icons ================================================ FILE: apps/docs/content/getting-started/installation.md ================================================ --- title: Installation --- ## Prerequisites > Actify is working with Tailwind CSS classes and you need to have Tailwind CSS installed on your project - Tailwind CSS Installation Guide. ## Install ## app.css ```css @import 'tailwindcss'; :root { --md-sys-color-background: #18130b; --md-sys-color-on-background: #ede1d3; --md-sys-color-surface: #18130b; --md-sys-color-surface-dim: #18130b; --md-sys-color-surface-bright: #3f382f; --md-sys-color-surface-container-lowest: #120d06; --md-sys-color-surface-container-low: #201b12; --md-sys-color-surface-container: #251f16; --md-sys-color-surface-container-high: #2f2920; --md-sys-color-surface-container-highest: #3b342a; --md-sys-color-on-surface: #ede1d3; --md-sys-color-surface-variant: #504534; --md-sys-color-on-surface-variant: #d5c4ae; --md-sys-color-inverse-surface: #ede1d3; --md-sys-color-inverse-on-surface: #362f26; --md-sys-color-outline: #9d8f7b; --md-sys-color-outline-variant: #504534; --md-sys-color-shadow: #000000; --md-sys-color-scrim: #000000; --md-sys-color-surface-tint: #ffba3e; --md-sys-color-primary: #ffc971; --md-sys-color-on-primary: #432c00; --md-sys-color-primary-container: #ecaa2e; --md-sys-color-on-primary-container: #614100; --md-sys-color-inverse-primary: #7f5700; --md-sys-color-secondary: #e6c188; --md-sys-color-on-secondary: #432c02; --md-sys-color-secondary-container: #5e4518; --md-sys-color-on-secondary-container: #d7b37c; --md-sys-color-tertiary: #c7dc64; --md-sys-color-on-tertiary: #2c3400; --md-sys-color-tertiary-container: #acc04b; --md-sys-color-on-tertiary-container: #414d00; --md-sys-color-error: #ffb4ab; --md-sys-color-on-error: #690005; --md-sys-color-error-container: #93000a; --md-sys-color-on-error-container: #ffdad6; } @theme { --color-background: var(--md-sys-color-background); --color-on-background: var(--md-sys-color-on-background); --color-surface: var(--md-sys-color-surface); --color-surface-dim: var(--md-sys-color-surface-dim); --color-surface-bright: var(--md-sys-color-surface-bright); --color-surface-container-lowest: var( --md-sys-color-surface-container-lowest ); --color-surface-container-low: var(--md-sys-color-surface-container-low); --color-surface-container: var(--md-sys-color-surface-container); --color-surface-container-high: var(--md-sys-color-surface-container-high); --color-surface-container-highest: var( --md-sys-color-surface-container-highest ); --color-on-surface: var(--md-sys-color-on-surface); --color-surface-variant: var(--md-sys-color-surface-variant); --color-on-surface-variant: var(--md-sys-color-on-surface-variant); --color-inverse-surface: var(--md-sys-color-inverse-surface); --color-inverse-on-surface: var(--md-sys-color-inverse-on-surface); --color-outline: var(--md-sys-color-outline); --color-outline-variant: var(--md-sys-color-outline-variant); --color-shadow: var(--md-sys-color-shadow); --color-scrim: var(--md-sys-color-scrim); --color-surface-tint: var(--md-sys-color-surface-tint); --color-primary: var(--md-sys-color-primary); --color-on-primary: var(--md-sys-color-on-primary); --color-primary-container: var(--md-sys-color-primary-container); --color-on-primary-container: var(--md-sys-color-on-primary-container); --color-inverse-primary: var(--md-sys-color-inverse-primary); --color-secondary: var(--md-sys-color-secondary); --color-on-secondary: var(--md-sys-color-on-secondary); --color-secondary-container: var(--md-sys-color-secondary-container); --color-on-secondary-container: var(--md-sys-color-on-secondary-container); --color-tertiary: var(--md-sys-color-tertiary); --color-on-tertiary: var(--md-sys-color-on-tertiary); --color-tertiary-container: var(--md-sys-color-tertiary-container); --color-on-tertiary-container: var(--md-sys-color-on-tertiary-container); --color-error: var(--md-sys-color-error); --color-on-error: var(--md-sys-color-on-error); --color-error-container: var(--md-sys-color-error-container); --color-on-error-container: var(--md-sys-color-on-error-container); } ``` ## Example ```jsx import { Button } from 'actify' export default () => { return } ``` ================================================ FILE: apps/docs/content/getting-started/theme.md ================================================ --- title: Theme --- ================================================ FILE: apps/docs/content/getting-started/why-actify.md ================================================ --- title: Why Actify --- ## What is Actify? Actify is an open source react component library written in Vite + React + Tailwind CSS based on Google's [Material Design 3](https://m3.material.io/). Highly inspired by [Vuetify](https://www.vuetifyjs.com). You can use it for write react pages. ## Getting started For a complete list of installation options please navigate to the [Installation page](/getting-started/installation) ## Why Actify? Actify is a powerful React Component Library built from the ground up to be easy to learn and rewarding to master. Our collection of UI components maintain a consistent style throughout your application with enough customization options to meet any use-case. ## It’s free Actify is an Open Source project available for free under the [MIT licensed](http://opensource.org/licenses/MIT) . Additionally, Actify’s source code is available on GitHub, allowing developers to modify and contribute to its development if they choose to do so. ================================================ FILE: apps/docs/next.config.mjs ================================================ /** @type {import('next').NextConfig} */ const nextConfig = { distDir: 'dist', output: 'export' } export default nextConfig ================================================ FILE: apps/docs/package.json ================================================ { "name": "docs", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint" }, "dependencies": { "@docsearch/react": "^3.9.0", "@material/material-color-utilities": "^0.3.0", "actify": "workspace:*", "codesandbox": "^2.2.3", "date-fns": "^3.6.0", "gray-matter": "^4.0.3", "next": "^15.1.0", "next-themes": "^0.4.3", "react": "catalog:", "react-dom": "catalog:", "react-markdown": "^9.0.1", "rehype-autolink-headings": "^7.1.0", "rehype-raw": "^7.0.0", "rehype-slug": "^6.0.0", "remark-gfm": "^4.0.0", "shiki": "^1.6.1", "sonner": "^1.7.0" }, "devDependencies": { "@tailwindcss/postcss": "^4.1.4", "@tailwindcss/typography": "^0.5.16", "@types/node": "^20.12.12", "@types/react": "catalog:", "@types/react-dom": "catalog:", "clsx": "^2.1.1", "postcss": "^8.5.3", "react-live": "^4.1.6", "tailwind-merge": "^2.5.4", "tailwind-variants": "^0.2.1", "tailwindcss": "^4.1.4", "typescript": "^5.4.5" } } ================================================ FILE: apps/docs/postcss.config.mjs ================================================ const config = { plugins: { '@tailwindcss/postcss': {} } } export default config ================================================ FILE: apps/docs/src/app/(docs)/[...slug]/page.tsx ================================================ import { getAllDocSlugs, getDocData } from '@/lib/doc' import Markdown from '@/components/Markdown' import TableOfContents from '@/components/TableOfContents' import { getFileRaw } from '@/lib/raw' type PageProps = { params: Promise<{ slug: string[] }> } export const generateMetadata = async (props: PageProps) => { const params = await props.params const { slug } = params const docs = getDocData(slug) return { title: docs?.title, description: docs?.description } } export async function generateStaticParams() { const slugs = getAllDocSlugs() return slugs } export default async function PageLayout(props: PageProps) { const params = await props.params const { slug } = params const docs = getDocData(slug) const filepath = slug.join('/').replace('components/', '') const content = await getFileRaw(`./src/usages/${filepath}.tsx`) return (
) } ================================================ FILE: apps/docs/src/app/(docs)/layout.tsx ================================================ 'use client' import Aside from '@/components/Aside' import EditOnGitHub from '@/components/EditOnGitHub' import { tv } from 'tailwind-variants' import { usePathname } from 'next/navigation' const base = tv({ base: [ 'flex', 'flex-col', 'bg-surface', 'text-on-surface', 'pl-0', 'md:pl-60', 'col-end-3', 'col-start-1' ] }) export default function DocLayout({ children }: { children: React.ReactNode }) { const pathname = usePathname() return ( <>