Commit Graph

60 Commits

Author SHA1 Message Date
7073936e6c feat: migrate to Radix UI and implement dark mode with next-themes
Replace @headlessui/react and @heroicons/react with @radix-ui/themes and
@radix-ui/react-icons for a more comprehensive component library. Add
next-themes for dark mode support with a new ThemeToggle component. Update
all components to use Radix UI primitives and theming system, including
AbstractCard, DynamicDate, ErrorCard, Property, PropertyList, LookupInput,
and all card components (AutnumCard, DomainCard, EntityCard, IPCard,
NameserverCard). Update global styles and app configuration to support theme
switching.
2025-10-22 11:59:52 -05:00
611074b546 feat: implement Entity and Nameserver cards with type safety improvements
- Add EntityCard component to display entity information with handle, roles, and public IDs
- Add NameserverCard component to display nameserver details
- Integrate new cards into Generic component for proper object rendering
- Remove unused dependencies (immutability-helper, type-fest)
- Enhance type safety in LookupInput with Zod validation
- Replace console.log statements with appropriate comments
- Initialize registryDataRef with proper typed default values
- Remove unused code and debug logging from rdap.ts and useLookup hook
- Update Object.entries type definition without external dependency
2025-10-22 11:02:50 -05:00
c17f733da1 ci: implement comprehensive CI/CD and workflow automation
- Add GitHub Actions workflows for CI, release, and deployment
- Configure Renovate for automated dependency updates
- Set up Husky pre-commit hooks with lint-staged
- Add commitlint for enforcing Conventional Commits
- Configure semantic-release for automated versioning
- Add Prettier configuration for consistent formatting
- Reformat codebase with new formatting rules
2025-10-22 02:48:18 -05:00
2c1f882cd9 refactor: replace Google Fonts with FontSource packages and migrate to cn utility
- Replace Google Fonts CDN with self-hosted FontSource packages
- Add @fontsource-variable/inter for variable Inter font
- Add @fontsource/ibm-plex-mono with weight 400 for monospace font
- Create src/lib/utils.ts with shadcn's cn utility function
- Install tailwind-merge for intelligent Tailwind class merging
- Replace all clsx usages with cn utility across components
  - LookupInput.tsx: 7 replacements
  - ErrorCard.tsx: 1 replacement
  - Property.tsx: 2 replacements
- Remove Google Fonts URL import from globals.css
2025-10-22 02:22:39 -05:00
771a27da29 build: upgrade Tailwind CSS from v3 to v4
- Migrate from Tailwind CSS 3.x to 4.1.15
- Replace autoprefixer with @tailwindcss/postcss 4.1.15
- Update PostCSS configuration for Tailwind v4 compatibility
- Convert globals.scss to globals.css for CSS-first configuration
- Remove legacy tailwind.config.cjs in favor of CSS-based config
- Update all component imports to use new globals.css
- Remove old.tsx.disabled file
2025-10-22 02:11:09 -05:00
66bf588647 feat: upgrade to Next.js 15, React 19, and migrate to ESLint 9 flat config
Major framework upgrades:
- Next.js 13 → 15.5.6
- React 18.2.0 → 19.2.0
- ESLint 8 → 9 with flat config migration

Dependency updates:
- @headlessui/react, date-fns, zod, true-myth, usehooks-ts
- @typescript-eslint packages to v8
- TypeScript to v5.9.3
- Prettier to v3.6.2

Breaking changes:
- Migrate from .eslintrc.json to eslint.config.mjs
- Remove deprecated swcMinify option from next.config.mjs
- Update all React type definitions
2025-10-22 01:53:58 -05:00
5fb095a498 test: add comprehensive testing infrastructure with critical bug fixes
- Add Vitest testing framework with 88 passing tests across 4 test files
- Fix critical entity validator bug (service array index)
- Implement validator architecture with 'matched but invalid' state support
- Add strict IPv4/IPv6 validation with detailed error messages
- Add case-insensitive domain and ASN matching
- Add explicit validator priority ordering (url→json→tld→ip→domain)
- Add integration tests with real IANA registry validation
- Add AutnumCard component for AS number display
- Update dependencies: prettier 2.8.1→2.8.8

Test coverage:
- helpers.test.ts: IPv4/IPv6 CIDR matching (27 tests)
- helpers.asn.test.ts: ASN range validation (22 tests)
- rdap.test.ts: Type detection with edge cases (36 tests)
- rdap.integration.test.ts: Real IANA registry tests (3 tests)

Bug fixes:
- Entity validator now correctly uses service[1] for tags (0=email, 1=tags, 2=urls)
- IPv4 validation rejects octets >255 with specific error messages
- IPv6 validation checks for invalid hex chars and multiple ::
- Domain regex supports multi-label domains (a.b.c.d.example.net)
- Type detection priority prevents URL/JSON false matches as domains
2025-10-22 01:23:15 -05:00
09cd0bf49b build: migrate to pnpm and add vitest testing infrastructure
- Replace Yarn with pnpm as package manager
- Add Vitest with React Testing Library and happy-dom
- Configure test setup and add test scripts (test, test:ui, test:run)
- Add IPCard component and update lookup components
- Remove unused react-ogp dependency
- Add type-check script
2025-10-22 00:34:53 -05:00
b3048086c3 Add await registry-informed getTypes method with smart entity tag validation
fuck type coloring madness
2024-05-12 02:10:15 -05:00
c6a31f341c fix entity placeholder, pulse animate autodetected target, remove completed todo 2024-05-11 05:27:21 -05:00
abb6df7383 Add lock icon to non-autodetect target types 2024-05-11 01:33:16 -05:00
19c3442144 type/import fixes, improve placeholder examples 2024-05-11 01:19:57 -05:00
83402d54f5 Update 'next' and '@headlessui/react'
Using latest v2 of HeadlessUI
Also removed unused text-left class on LookupInputButton
2024-05-11 01:19:35 -05:00
34a3c8efa6 Use placeholders constants with SimplifiedTargetType 2024-05-10 05:58:35 -05:00
29e294d951 Add actions: copy to clipboard, download response file 2024-05-10 05:43:55 -05:00
06e1b603fc Fix selectable targets type 2024-05-10 02:36:02 -05:00
4ff929105e cut down additional padding
useful for mobile viewports
2024-05-10 02:35:47 -05:00
1f93c8568f fix minor linting/type errors 2024-05-10 02:25:44 -05:00
00088afa5c Make search icon clickable button 2024-05-10 02:25:17 -05:00
2f2a34efcf provide shorthand precise target type naming, fix ip / ip4-6 issue with LookupInput under refined TargetType definition 2024-05-10 02:15:10 -05:00
d819920f8a Use .dashed class instead of global attribute selector for title indication 2024-05-10 01:47:09 -05:00
5390c697e2 reduce card header padding on mobile viewport 2024-05-10 01:38:10 -05:00
3fa293a237 allow x scrolling on overflowing viewports (mobile) 2024-05-09 23:08:54 -05:00
bd49b57376 begin adding URL, link action on AbstractCard 2024-05-09 23:08:32 -05:00
28f58a362f clerical: import/doc/format fixes 2024-05-09 23:07:40 -05:00
590908ac68 notate domain card type in rendered html 2024-05-09 23:06:44 -05:00
1b026e6af4 implement detectedType, fix wrapping inside listbox button 2024-05-09 23:06:10 -05:00
757adcf385 Use react-timeago for DynamicDate component, improve relative timing display 2024-05-09 22:09:42 -05:00
c1dbc78c3f reformatting, improve name/docs 2024-05-09 21:45:46 -05:00
cb798c4ec1 Add proper isLoading implementation/spinning icon, detectedType prop stub 2024-05-09 21:45:23 -05:00
ec4036a45b reorganize/document, add detectedType prop for LookupInput 2024-05-09 20:19:32 -05:00
3e21193f64 Improve text sizing/width for dropdown on mobile/smaller viewports 2024-05-09 02:32:20 -05:00
49832cf8e7 Switch all classNames helpers to clsx 2024-05-09 02:29:44 -05:00
47bb9cb7f3 Reduce the spacing, add scrolling ability to ErrorCard 2024-05-09 02:19:20 -05:00
f37e6f87a2 add clsx, add bottom padding for ErrorCard 2024-05-09 02:15:11 -05:00
c3fe5691c6 fix: format zod errors better, format newlines correctly in error card 2024-05-09 02:11:46 -05:00
425240e39b Add separate description prop for ErrorCard, lighten header line, fix typo 2023-08-26 00:18:18 -05:00
cb424781e6 Create ErrorCard component for displaying errors better 2023-08-26 00:09:05 -05:00
0554413195 Blue checkbox accents, darken checkbox label text slightly 2023-08-25 23:56:27 -05:00
d3419713c8 Add manual target type selection ListBox, add targetType to onChange return, autodetect interface 2023-08-25 23:55:32 -05:00
116821aaf0 Add thin scrollbar for AbstractCard raw JSON visual 2023-08-25 23:51:13 -05:00
392cd8f760 Use AbstractCard for Generic 'unimplemented' case 2023-05-23 23:41:21 -05:00
d7bf8f067c Add onChange prop to LookupInput, add default value to 'target' in useForm hook 2023-05-23 23:40:41 -05:00
aac898c89d Add raw JSON viewing ability to AbstractCard 2023-05-23 23:39:38 -05:00
3b20643892 AbstractCard for universal card styling, use AbstractCard & PropertyList for DomainCard 2023-05-23 22:54:57 -05:00
dc1ad36cc9 PropertyList with composed React subcomponents implementation 2023-05-23 22:53:43 -05:00
dbdbf78522 Support ultra low width viewports in search bar & option checkboxes 2023-05-23 20:36:04 -05:00
ece0ffc7a0 Commit latest design, styling & functionality 2023-05-23 20:00:16 -05:00
8da615a8c1 Rounded card styling 2023-05-23 19:59:36 -05:00
f588a87235 Remove card classes, improve padding/margin spacing, styling general 2023-05-22 09:10:08 -05:00