1
0
Fork
You've already forked 6layer
0
No description
  • Swift 94.6%
  • Python 3.9%
  • Shell 1.4%
Drew Schatt 561d10cb29 Make all standalone drop-in functions and aliases public
Made the following functions public to ensure they're accessible outside the framework:
- platformVStack, platformHStack, platformZStack (aliases)
- platformTextField (both overloads)
- platformSecureField
- platformToggle
- platformForm
- platformTextEditor
These were previously internal by default, making them inaccessible to framework users.
2026年01月10日 13:40:49 -08:00
.cursor Fix platform capability detection and form progress format string 2025年12月19日 09:43:46 -08:00
.github Add migration documentation and update AI agent guides 2025年12月15日 10:59:07 -08:00
.swiftpm/xcode/package.xcworkspace Added workspace files 2025年12月06日 14:05:26 -08:00
Development Add @MainActor audit issues to v7.3.0 release notes 2026年01月09日 17:59:52 -08:00
fastlane Fix compiler warnings: remove unnecessary await, fix nil comparisons, fix type checks 2025年12月01日 14:09:04 -08:00
Framework Make all standalone drop-in functions and aliases public 2026年01月10日 13:40:49 -08:00
Hints Implement type-only form generation from fully declarative hints 2025年12月08日 10:06:32 -08:00
possible-features Move PlatformRecommendationEngine tests to possible-features/ 2025年11月05日 11:38:05 -08:00
scripts Implement Color Resolution System from Hints Files (Issue #144 ) 2026年01月07日 15:28:17 -08:00
SixLayerFramework.xcodeproj committing changed xcscheme file 2026年01月10日 08:22:46 -08:00
.cursorrules Add 'commits are cheap' principle to git workflow rules 2026年01月03日 11:01:20 -08:00
.gitattributes Add .gitattributes for export-ignore (though this won't fix IDE display issue) 2025年09月01日 08:52:57 -07:00
.gitignore Added workspace files 2025年12月06日 14:05:26 -08:00
.gitmodules Remove empty .gitmodules file 2025年12月06日 13:53:51 -08:00
.swift-version Fix Core Data introspection bug in DataIntrospectionEngine 2025年10月27日 14:47:03 -07:00
ACCESSIBILITY_IDENTIFIER_INVESTIGATION.md Update README Current Status to v7.0.1 2026年01月06日 19:47:51 -08:00
AGENT0_SHARED_INFRA_REVIEW.md Agent 0: Complete shared infrastructure review 2025年11月10日 13:52:39 -08:00
all_project_files.txt Fix remaining test cases for runtime capability detection 2026年01月03日 14:56:24 -08:00
analyze_test_performance.py Fix xcodebuild destination warning by specifying architecture 2025年12月19日 09:44:25 -08:00
bug_report_empty_state_add_button.md Fix v2.9.0 breaking changes and restore missing functionality 2025年09月18日 09:28:47 -07:00
buildconfig.yml Fix remaining test cases for runtime capability detection 2026年01月03日 14:56:24 -08:00
capture_test_errors_xcodebuild.sh Fix accessibility identifier generation issues 2025年12月20日 09:14:52 -08:00
CHANGELOG.md docs: Add release notes for v5.5.0 - SwiftUI Map Support 2025年11月20日 11:40:53 -08:00
create_test_plans.sh Fix accessibility identifier generation issues 2025年12月20日 09:14:52 -08:00
CRITICAL_TEST_AUDIT_FINDINGS.md Fix automatic accessibility identifiers for Layers 2-6 2025年10月05日 15:29:18 -07:00
files_needing_foundation.txt Fix missing Foundation imports for CFAbsoluteTimeGetCurrent 2025年10月16日 12:03:07 -07:00
files_needing_foundation_types.txt Fix missing Foundation imports for UUID and UIImage 2025年10月16日 12:05:15 -07:00
FINAL_STATUS.md Final status: Multi-agent green phase substantially complete 2025年11月10日 14:44:47 -08:00
fixing_broken_tests.md Fix compilation errors: main actor isolation, parameterized tests, and data race issues 2025年10月23日 10:46:19 -07:00
FunctionIndex_6layer_..md v2.3.2: Fix CarPlay detection compilation error 2025年09月06日 18:01:38 -07:00
Gemfile Fix compiler warnings: remove unnecessary await, fix nil comparisons, fix type checks 2025年12月01日 14:09:04 -08:00
Gemfile.lock Bump aws-sdk-s3 in the bundler group across 1 directory 2025年12月18日 19:37:20 +00:00
GREEN_PHASE_COMPLETION_SUMMARY.md Complete multi-agent green phase implementation 2025年11月10日 14:44:29 -08:00
issue_5_resolution.md Docs: add v4.9.1 release notes; update CHANGELOG; add Issue 5 resolution note. 2025年10月30日 14:10:50 -07:00
L1_MAINACTOR_AUDIT_PLAN.md Refactor AccessibilityIdentifierConfig and remove unnecessary @MainActor 2026年01月09日 17:23:47 -08:00
L4_MAINACTOR_AUDIT.md Refactor AccessibilityIdentifierConfig and remove unnecessary @MainActor 2026年01月09日 17:23:47 -08:00
LICENSE Fix compilation errors and update license contact information 2025年11月20日 11:40:32 -08:00
localization_missing_keys_report.txt Fix test environment crashes and main actor isolation in VisualDesignSystem 2025年12月15日 12:56:14 -08:00
Makefile Update Makefile script paths to Development/scripts directory 2025年11月30日 11:58:45 -08:00
MANDATORY_TESTING_RULES.md Clarify release script usage requires release type specification 2025年12月08日 17:42:24 -08:00
MULTI_AGENT_PROGRESS.md Document multi-agent green phase progress 2025年11月10日 13:57:07 -08:00
open Fix compilation errors in test suite - remove unused variables, fix syntax errors, add missing braces, fix string literals, and make test classes inherit from BaseTestClass 2025年11月07日 09:37:32 -08:00
Package.swift Complete v7.3.0 release documentation 2026年01月09日 13:46:33 -08:00
project.yml Exclude ViewInspectorTests from UnitTestsOnly schemes 2026年01月05日 13:49:42 -08:00
PROJECT_RULES.md Refactor roadmap tracking: rename todo.md to ROADMAP.md 2026年01月02日 10:35:52 -08:00
README.md Complete v7.3.0 release documentation 2026年01月09日 13:46:33 -08:00
README_TEST_PLANS.md Update test documentation to reflect reorganization 2026年01月01日 13:12:25 -08:00
RELEASE_NOTES_v4.7.0.md Prepare v4.7.0 release: Core Data introspection fix 2025年10月28日 12:12:00 -07:00
RELEASE_NOTES_v4.9.0.md Release v4.9.0: IntelligentDetailView Edit Button + Swift 6 Actor Isolation 2025年10月30日 12:10:56 -07:00
RELEASE_NOTES_v4.9.1.md Docs: add v4.9.1 release notes; update CHANGELOG; add Issue 5 resolution note. 2025年10月30日 14:10:50 -07:00
RELEASE_NOTES_v5.0.0.md Docs: Document split view issues #18 and #19 in release notes 2025年11月11日 13:50:53 -08:00
RELEASE_NOTES_v5.0.1.md Release v5.0.1: Bug fixes and priority order improvements 2025年11月13日 11:17:19 -08:00
RELEASE_NOTES_v5.5.0.md Add cross-platform settings URL opening support (Issue #26 ) 2025年11月20日 12:56:35 -08:00
RELEASE_NOTES_v5.6.0.md Complete v5.6.0 release preparation 2025年11月30日 12:32:16 -08:00
RELEASE_NOTES_v5.9.0.md Implement intelligent device-aware app navigation (Issue #51 ) 2025年12月06日 10:14:53 -08:00
RELEASE_NOTES_v6.0.0.md Complete Issue #51 : Rename Layer 4 navigation functions and deprecate platformNavigationContainer 2025年12月06日 12:01:42 -08:00
RELEASE_NOTES_v6.0.2.md Prepare v6.0.2 release 2025年12月08日 15:27:28 -08:00
RELEASE_NOTES_v6.0.3.md Fix additional infinite recursion crashes in accessibility identifier generation 2025年12月08日 15:49:03 -08:00
RELEASE_NOTES_v6.0.5.md Release v6.0.5: Fix infinite recursion in HIG compliance modifiers 2025年12月08日 16:39:10 -08:00
RELEASE_SUMMARY_v4.9.0.md Release v4.9.0: IntelligentDetailView Edit Button + Swift 6 Actor Isolation 2025年10月30日 12:10:56 -07:00
remove_async_inits.py Remove init() async throws that create data - convert to helper methods 2025年11月17日 12:25:02 -08:00
remove_debug_prints.py Fix all test failures - update tests to verify platform-appropriate values 2025年11月18日 09:20:01 -08:00
remove_mainactor_wrappers.py Remove unnecessary MainActor.run wrappers and Task.sleep delays 2025年11月17日 13:21:29 -08:00
remove_singletons_from_inits.py Remove ALL singleton access from test init() methods 2025年11月17日 12:17:45 -08:00
run_tests.sh Fix accessibility identifier generation issues 2025年12月20日 09:14:52 -08:00
run_tests_spm.sh Fix accessibility identifier generation issues 2025年12月20日 09:14:52 -08:00
simple_green_test.swift Fix compilation errors in test suite - remove unused variables, fix syntax errors, add missing braces, fix string literals, and make test classes inherit from BaseTestClass 2025年11月07日 09:37:32 -08:00
SINGLETON_ANALYSIS.md Continue fixing accessibility tests: PlatformInternationalizationL1Tests and ModalFormViewTests 2025年11月02日 10:33:20 -08:00
slow_test_suites.json Commit remaining uncommitted changes 2025年11月18日 12:45:11 -08:00
test.sh Release v2.0.8: Intelligent Card Expansion System 2025年09月06日 10:24:58 -07:00
TEST_14_SECOND_TIMEOUT_INVESTIGATION.md Profile 14-second test timeout - found it's xcodebuild overhead 2025年11月10日 10:14:19 -08:00
TEST_COMPILATION_ERRORS_SUMMARY.md refactor: TDD REFACTOR phase - optimize layout hints implementation 2025年11月05日 12:32:05 -08:00
TEST_CONDITIONS_ANALYSIS.md Green-phase: Fix InternationalizationServiceAccessibilityTests to use isolated testConfig 2025年11月03日 09:53:51 -08:00
TEST_DELAY_ANALYSIS.md Consolidate accessibility tests - 337/546 tests added (61.7% complete) 2025年11月26日 17:51:41 -08:00
TEST_FAILURE_CATEGORIZATION.md Add @Suite annotations to test classes for Xcode test navigator 2025年10月31日 11:24:24 -07:00
test_keyboardtype_manual.swift Complete v5.6.0 release preparation 2025年11月30日 12:32:16 -08:00
test_performance_analysis.log Fix all test failures - update tests to verify platform-appropriate values 2025年11月18日 09:20:01 -08:00
TEST_PERFORMANCE_ANALYSIS.md Fix infinite recursion in sixLayerAccessibilityIdentifier() and update performance analysis 2025年11月10日 07:52:46 -08:00
TEST_PERFORMANCE_OPTIMIZATION_PLAN.md Enhance test performance analysis script and update documentation 2025年11月18日 12:04:24 -08:00
TODO.md Add shared TODO tracking file for development tasks 2025年12月18日 10:10:10 -08:00
todos.md Update todos.md: Mark PR #44 accessibility work as complete (Issue #31 ) 2025年12月05日 07:59:06 -08:00
update_deprecated_accessibility_calls.py Update all deprecated .automaticAccessibilityIdentifiers() calls to .automaticCompliance() 2025年11月14日 13:15:33 -08:00
ViewGenerationTestAssumptionsAnalysis.md Fix accessibility test patterns and test helper behavior 2025年10月31日 13:02:13 -07:00

SixLayer Framework Repository

This repository contains the SixLayer Framework, a comprehensive SwiftUI framework implementing a six-layer architecture for cross-platform development.

📁 Repository Structure

6layer/
├── Framework/ ← **This is the Swift Package**
│ ├── Sources/ ← Framework source code
│ ├── Package.swift ← Package definition
│ ├── README.md ← Framework documentation
│ └── Stubs/ ← Framework stubs
└── Development/ ← Development files (not in package)
 ├── ROADMAP.md ← Project roadmap
 ├── PROJECT_STATUS.md ← Current status
 ├── Tests/ ← Test suite
 ├── docs/ ← Technical documentation
 └── Examples/ ← Usage examples

🚀 Getting Started

For Users (Consuming the Framework):

Navigate to the Framework/ directory and use it as a Swift Package:

// In your Package.swift
dependencies: [
 .package(url: "https://github.com/schatt/sixlayer.git", from: "7.3.0")
]

For Developers (Contributing):

  • Framework Code: Framework/Sources/
  • Documentation: Framework/docs/
  • Project Status: Development/ROADMAP.md
  • Tests: Development/Tests/

📦 Swift Package

The framework is distributed as a Swift Package from the Framework/ directory. This ensures that only the essential framework code is included when other projects consume it.

🆕 Latest Release: v7.3.0

Convenience Aliases and Code Quality Improvements

🆕 Platform Container Stack Aliases: Added shorter convenience aliases platformVStack, platformHStack, and platformZStack for more intuitive API names. Refactored iCloud availability checks for improved code clarity.

Previous Release: v7.2.0 - Configurable Photo Sources for OCR Scanner

🆕 FieldActionOCRScanner Enhancement: Added configurable photo source options. Developers can now choose whether to offer camera, photo library, or both options to end users, with automatic device capability detection and graceful fallbacks.

Previous Release: v7.1.0 - Color Resolution System from Hints Files

🆕 ItemBadge and ItemIcon Components: New components that automatically resolve colors from hints files. Supports colorName and fileExtension provider types. Card components now support optional badge content.

Previous Release: v7.0.2 - Hints File Presentation Properties Support

🆕 Presentation Properties in Hints Files: Added support for _dataType, _complexity, _context, _customPreferences, and _presentationPreference in .hints files. All PresentationHints properties can now be configured declaratively in hints files, matching code-based functionality.

Previous Release: v7.0.1 - Hints File Color Configuration Support

🆕 Color Configuration in Hints Files: Added support for _defaultColor and _colorMapping in .hints files. Color configuration can now be stored in hints files and automatically loaded when creating PresentationHints from model names.

Previous Release: v7.0.0 - Breaking Changes

⚠️ BREAKING CHANGE: CardDisplayable protocol no longer includes cardColor property. Color configuration is now done via PresentationHints at the presentation layer. Models are now SwiftUI-free and can be used in Intent extensions.

🆕 PresentationHints Color Configuration: Added type-based color mapping, per-item color provider, and default color support. Color decisions are now made at the presentation layer, following 6-layer architecture principles.

Previous Release: v6.8.0 - DRY Improvements - Platform Switch Consolidation

🔧 PlatformStrategy Module: Consolidated 19 platform switch statements into a centralized PlatformStrategy module. Eliminated 4 duplicate functions. Total: 23 code duplications eliminated. Single source of truth for platform-specific simple values.

🔄 Runtime Check Pattern Consistency: Established consistent pattern for runtime capability checks in PlatformStrategy. Ensures platform-specific values are only returned when capabilities are actually available.

Previous Release: v6.7.0 - Test Fixes & Count-Based Presentation

🆕 Count-Based Automatic Presentation: Added intelligent count-aware presentation strategy selection. .automatic presentation preference now considers item count for generic/collection content, with platform-aware thresholds. Added .countBased(lowCount:highCount:threshold:) enum case for explicit control.

🔧 Touch Target Test Fixes: Fixed touch target minimum tests to correctly validate Apple HIG compliance. Tests now correctly expect 44.0 minimum touch target when touch is enabled, with tolerance-based floating point comparison.

🧪 Test Infrastructure Improvements: Added frame size safety checks, fixed resource warnings in Swift Package Manager builds, removed platform mocking code from tests, and cleaned up test warnings.

Previous Release: v6.6.3 - ScrollView Wrapper Fixes

🔧 Collection View Scrolling: Fixed missing ScrollView wrappers in all collection views. GridCollectionView, ListCollectionView, ExpandableCardCollectionView, and MasonryCollectionView now properly scroll when content exceeds view bounds, maintaining the framework's abstraction layer.

Previous Release: v6.6.2 - Swift 6 Compilation Fixes

🔧 Swift 6 Compatibility: Fixed Swift 6 compilation errors and deprecation warnings. Includes main actor isolation fixes, iOS 17+ API updates, switch exhaustiveness fixes, and removal of unnecessary availability checks.

Previous Release: v6.6.1 - SPM Bundle Name Fix

🔧 Bundle Resource Access: Fixed Swift Package Manager bundle name issue. Updated to use Bundle.module for Swift Package builds with proper fallback for Xcode framework builds. Fixed CFBundleName in Info.plist.

Previous Release: v6.6.0 - Platform Capability Detection Fixes

🔧 Apple HIG Compliance: Fixed platform capability detection to align with Apple Human Interface Guidelines. minTouchTarget is now platform-based (44.0 for iOS/watchOS, 0.0 for others), supportsAssistiveTouch correctly checks platform availability, and tests use runtime platform detection for better accuracy.

Previous Release: v6.5.0 - Swift 6 Compilation Fixes & Test Infrastructure

🔧 Swift 6 Compatibility: Fixed all compilation errors and actor isolation issues for full Swift 6 compatibility. Includes fixes for CloudKitService, test kit examples, and design system tests. Test infrastructure improved with proper async setup/teardown and actor isolation.

Previous Release: v6.4.2 - Platform Bottom-Bar Toolbar Placement Helper

🔧 Cross-Platform Toolbar Placement: Added platformBottomBarPlacement() function for bottom-aligned toolbar items. Returns .bottomBar on iOS and .automatic on macOS/other platforms. Resolves Issue #125.

Previous Release: v6.4.1 - NotificationService Bug Fix

🐛 Compilation Fix: Fixed optional Bool unwrapping in NotificationService.checkIOSDoNotDisturbStatusAsync() (Issue #124). Function now properly handles nil Focus status values with conservative default.

Previous Release: v6.4.0 - Design System Bridge & Developer Experience

🎨 Design System Bridge: Framework-level abstraction for mapping external design tokens to SixLayer components with theme injection.
🧪 SixLayerTestKit: Comprehensive testing utilities for framework consumers with service mocks and test helpers.
📚 Sample Applications: Canonical TaskManager sample app demonstrating proper SixLayer architecture patterns.
🌐 Localization Improvements: .xcstrings support and localization completeness checking.
🔧 Developer Experience: Stable extension surface and migration tooling.

Previous Release: v6.1.1 - Color.named() Extensions

🎨 Color API improvements: Extended Color.named() to support systemBackground and other commonly used color names (cardBackground, label, secondaryLabel, tertiaryLabel, separator).
🔧 Convenience method: Added Color.named(_:default:) that returns a non-optional Color with a fallback, preventing compiler type-checking issues.
🐛 Bug fixes: Resolved compiler type-checking timeouts when chaining multiple optionals with Color.named().

Previous Release: v6.1.0 - Form UX Enhancements & Platform Extensions

📝 Form improvements: Collapsible sections, required field indicators, character counters, validation summary, Stepper field type, and Link component for URLs.
🔍 OCR enhancements: Batch OCR workflow for filling multiple fields from single scan, declarative field hints with Mirror fallback.
🎨 UI enhancements: Semantic background colors via Color.named(), barcode scanning support.
🛠️ Platform extensions: Sidebar pull indicator, container extensions, list toolbar extension, animation system extensions, string sanitization function.

Previous Release: v6.0.0 - Intelligent Device-Aware Navigation & Cross-Platform Utilities

🧭 Intelligent navigation: Device-aware app navigation with automatic pattern selection (NavigationSplitView vs detail-only).
🖨️ Cross-platform printing: Unified printing API supporting text, images, PDFs, and SwiftUI views.
📁 File system utilities: Comprehensive file system utilities with iCloud Drive support.
🔧 Toolbar placement: Platform-specific toolbar placement helpers for cross-platform apps.
📏 HIG-compliant spacing: Refactored spacing system aligned with macOS HIG 8pt grid guidelines.
Accessibility: Automatic accessibility identifiers and full VoiceOver support.
🧪 Comprehensive testing: Full test coverage for all new features.
📚 Complete documentation: Full guides with usage examples and best practices.

Previous Release: v5.7.2 – Intelligent Decimal Correction & Enhanced Range Validation

🔧 Intelligent decimal correction: Automatically corrects missing decimal points using expected ranges and calculation groups as heuristics.
📊 Range inference: Infers ranges from calculation groups for fields without explicit ranges.
⚠️ Field adjustment tracking: OCRResult.adjustedFields tracks which fields were adjusted or calculated for user verification.
📈 Enhanced range validation: Expected ranges are now guidelines (not hard requirements) - out-of-range values are kept but flagged.
📊 Field averages: Apps can provide typical/average values to flag unusual values even within range.
🔄 Bidirectional pattern matching: Handles both "Gallons 9.022" and "9.022 Gallons" patterns.
🧪 Comprehensive testing: Range validation tests cover boundaries, precedence, and edge cases.

Previous Release: v5.7.0 – Automatic OCR Hints & Structured Extraction Intelligence

📄 Configurable entity mapping: OCRContext now accepts entityName so projects choose which .hints file to load.
🤖 Automatic hints loading: OCRService loads {entityName}.hints, converts ocrHints to regex patterns, and merges them with built-in/custom hints.
🧮 Calculation group evaluation: Structured extraction automatically derives missing values (e.g., price-per-gallon) using hint-defined formulas.

Previous Release: v5.6.0 – Enhanced Layer 1 Functions & KeyboardType Extensions

🎨 Custom View Support: Layer 1 functions gained optional custom view wrappers while preserving framework benefits.
⌨️ KeyboardType Extensions: Cross-platform View extension for all 11 keyboard types with proper platform mappings.
🧪 Comprehensive Testing: 32+ new tests covering custom view usage and keyboard behaviors.

Highlights:

  • Complete TDD Implementation - Strict Test-Driven Development throughout
  • Advanced Accessibility System - Automatic identifier generation for all components
  • 800+ Comprehensive Tests - Full platform coverage with behavioral verification
  • Apple HIG Compliance - Complete compliance with Human Interface Guidelines
  • Platform Capability Detection - Accurate runtime detection for all platforms
  • Component Architecture - All components support automatic accessibility
  • Testing Infrastructure - Suite organization with Xcode test navigator integration
  • Cross-Platform Validation - Enhanced testing across iOS, macOS, visionOS

See Field Hints Complete Guide for full documentation

Example:

platformPresentItemCollection_L1(
 items: products,
 hints: hints,
 customItemView: { product in
 MyCustomProductView(product: product)
 }
)

🤖 For AI Assistants

This framework has a specific architecture that requires careful understanding. Please read the AI Agent Guide first before attempting to help with this framework:

These guides contain critical information about the Layer 1 Semantic Intent philosophy, correct usage patterns, and common mistakes to avoid.

📋 Current Status

Version: v7.3.0 (Convenience Aliases and Code Quality Improvements) Phase: Minor Release Next: TBD

🤝 Contributing

Please read the development documentation in the Development/ directory before contributing. The framework follows a strict six-layer architecture pattern.


Note: This repository structure separates framework code from development files, ensuring clean package distribution while maintaining development transparency.